diff --git a/packages/calcite-components/src/components.d.ts b/packages/calcite-components/src/components.d.ts
index 4c11468a907..ac63d263b95 100644
--- a/packages/calcite-components/src/components.d.ts
+++ b/packages/calcite-components/src/components.d.ts
@@ -4518,12 +4518,12 @@ export namespace Components {
*/
"detached": boolean;
/**
- * When `displayMode` is `float`, specifies the maximum height of the component.
+ * When `displayMode` is `float-content`, specifies the maximum height of the component.
* @deprecated Use `heightScale` instead.
*/
"detachedHeightScale": Scale;
/**
- * Specifies the display mode of the component, where: `"dock"` displays at full height adjacent to center content, `"overlay"` displays at full height on top of center content, and `"float"` does not display at full height with content separately detached from `calcite-action-bar` on top of center content.
+ * Specifies the display mode of the component, where: `"dock"` displays at full height adjacent to center content, `"overlay"` displays at full height on top of center content, and `"float"` [Deprecated] does not display at full height with content separately detached from `calcite-action-bar` on top of center content. `"float-content"` does not display at full height with content separately detached from `calcite-action-bar` on top of center content. `"float-all"` detaches the `calcite-panel` and `calcite-action-bar` on top of center content.
*/
"displayMode": DisplayMode1;
/**
@@ -4547,7 +4547,7 @@ export namespace Components {
*/
"position": Extract<"start" | "end", Position>;
/**
- * When `true` and `displayMode` is not `float`, the component's content area is resizable.
+ * When `true` and `displayMode` is not `float-content`, the component's content area is resizable.
*/
"resizable": boolean;
/**
@@ -12638,12 +12638,12 @@ declare namespace LocalJSX {
*/
"detached"?: boolean;
/**
- * When `displayMode` is `float`, specifies the maximum height of the component.
+ * When `displayMode` is `float-content`, specifies the maximum height of the component.
* @deprecated Use `heightScale` instead.
*/
"detachedHeightScale"?: Scale;
/**
- * Specifies the display mode of the component, where: `"dock"` displays at full height adjacent to center content, `"overlay"` displays at full height on top of center content, and `"float"` does not display at full height with content separately detached from `calcite-action-bar` on top of center content.
+ * Specifies the display mode of the component, where: `"dock"` displays at full height adjacent to center content, `"overlay"` displays at full height on top of center content, and `"float"` [Deprecated] does not display at full height with content separately detached from `calcite-action-bar` on top of center content. `"float-content"` does not display at full height with content separately detached from `calcite-action-bar` on top of center content. `"float-all"` detaches the `calcite-panel` and `calcite-action-bar` on top of center content.
*/
"displayMode"?: DisplayMode1;
/**
@@ -12669,7 +12669,7 @@ declare namespace LocalJSX {
*/
"position"?: Extract<"start" | "end", Position>;
/**
- * When `true` and `displayMode` is not `float`, the component's content area is resizable.
+ * When `true` and `displayMode` is not `float-content`, the component's content area is resizable.
*/
"resizable"?: boolean;
/**
diff --git a/packages/calcite-components/src/components/shell-panel/interfaces.d.ts b/packages/calcite-components/src/components/shell-panel/interfaces.d.ts
index 6074d7ebd20..edd95048bba 100644
--- a/packages/calcite-components/src/components/shell-panel/interfaces.d.ts
+++ b/packages/calcite-components/src/components/shell-panel/interfaces.d.ts
@@ -1 +1 @@
-export type DisplayMode = "dock" | "float" | "overlay";
+export type DisplayMode = "dock" | "float" | "overlay" | "float-content" | "float-all";
diff --git a/packages/calcite-components/src/components/shell-panel/resources.ts b/packages/calcite-components/src/components/shell-panel/resources.ts
index 3ca2341628d..7f437f725b9 100644
--- a/packages/calcite-components/src/components/shell-panel/resources.ts
+++ b/packages/calcite-components/src/components/shell-panel/resources.ts
@@ -3,9 +3,11 @@ export const CSS = {
content: "content",
contentHeader: "content__header",
contentBody: "content__body",
- contentFloat: "content--float",
+ floatContent: "float--content",
contentOverlay: "content--overlay",
separator: "separator",
+ float: "float",
+ floatAll: "float-all",
};
export const SLOTS = {
diff --git a/packages/calcite-components/src/components/shell-panel/shell-panel.e2e.ts b/packages/calcite-components/src/components/shell-panel/shell-panel.e2e.ts
index fa936804f24..2df4cb585e2 100644
--- a/packages/calcite-components/src/components/shell-panel/shell-panel.e2e.ts
+++ b/packages/calcite-components/src/components/shell-panel/shell-panel.e2e.ts
@@ -147,7 +147,7 @@ describe("calcite-shell-panel", () => {
await page.setContent("content
");
- let detachedElement = await page.find(`calcite-shell-panel >>> .${CSS.contentFloat}`);
+ let detachedElement = await page.find(`calcite-shell-panel >>> .${CSS.floatContent}`);
expect(detachedElement).toBeNull();
@@ -155,13 +155,13 @@ describe("calcite-shell-panel", () => {
expect(await panel.getProperty("detached")).toBe(false);
- panel.setProperty("displayMode", "float");
+ panel.setProperty("displayMode", "float-content");
await page.waitForChanges();
expect(await panel.getProperty("detached")).toBe(true);
- detachedElement = await page.find(`calcite-shell-panel >>> .${CSS.contentFloat}`);
+ detachedElement = await page.find(`calcite-shell-panel >>> .${CSS.floatContent}`);
expect(detachedElement).not.toBeNull();
});
@@ -556,7 +556,7 @@ describe("calcite-shell-panel", () => {
const page = await newE2EPage();
await page.setContent(
`
-
+
`,
);
diff --git a/packages/calcite-components/src/components/shell-panel/shell-panel.scss b/packages/calcite-components/src/components/shell-panel/shell-panel.scss
index 5d84f593a0a..4a052668bbd 100755
--- a/packages/calcite-components/src/components/shell-panel/shell-panel.scss
+++ b/packages/calcite-components/src/components/shell-panel/shell-panel.scss
@@ -6,10 +6,10 @@
* @prop --calcite-shell-panel-width: Specifies the width of the component.
* @prop --calcite-shell-panel-max-width: Specifies the maximum width of the component.
* @prop --calcite-shell-panel-min-width: Specifies the minimum width of the component.
- * @prop --calcite-shell-panel-height: When `layout` is `horizontal`, or `layout` is `vertical` and `displayMode` is `float`, specifies the height of the component.
- * @prop --calcite-shell-panel-max-height: When `layout` is `horizontal`, or `layout` is `vertical` and `displayMode` is `float`, specifies the maximum height of the component.
- * @prop --calcite-shell-panel-min-height: When `layout` is `horizontal`, or `layout` is `vertical` and `displayMode` is `float`, specifies the minimum height of the component.
- * @prop --calcite-shell-panel-detached-max-height: [Deprecated] Use the `heightScale` property instead. When `displayMode` is `float`, specifies the maximum height of the component.
+ * @prop --calcite-shell-panel-height: When `layout` is `horizontal`, or `layout` is `vertical` and `displayMode` is `float-content` or `float`, specifies the height of the component.
+ * @prop --calcite-shell-panel-max-height: When `layout` is `horizontal`, or `layout` is `vertical` and `displayMode` is `float-content` or `float`, specifies the maximum height of the component.
+ * @prop --calcite-shell-panel-min-height: When `layout` is `horizontal`, or `layout` is `vertical` and `displayMode` is `float-content` or `float`, specifies the minimum height of the component.
+ * @prop --calcite-shell-panel-detached-max-height: [Deprecated] Use the `heightScale` property instead. When `displayMode` is `float-content` or `float`, specifies the maximum height of the component.
* @prop --calcite-shell-panel-z-index: Specifies the z-index value for the component.
*
*/
@@ -23,20 +23,20 @@
z-index: var(--calcite-shell-panel-z-index, theme("zIndex.default"));
--calcite-shell-panel-detached-max-height: unset;
--calcite-shell-panel-max-height: unset;
- --calcite-shell-panel-shadow-block-start-internal: 0 4px 8px -1px rgba(0, 0, 0, 0.08),
+ --calcite-internal-shell-panel-shadow-block-start: 0 4px 8px -1px rgba(0, 0, 0, 0.08),
0 2px 4px -1px rgba(0, 0, 0, 0.04);
- --calcite-shell-panel-shadow-block-end-internal: 0 -4px 8px -1px rgba(0, 0, 0, 0.08),
+ --calcite-internal-shell-panel-shadow-block-end: 0 -4px 8px -1px rgba(0, 0, 0, 0.08),
0 -2px 4px -1px rgba(0, 0, 0, 0.04);
- --calcite-shell-panel-shadow-inline-start-internal: 4px 0 8px -1px rgba(0, 0, 0, 0.08),
+ --calcite-internal-shell-panel-shadow-inline-start: 4px 0 8px -1px rgba(0, 0, 0, 0.08),
2px 0 4px -1px rgba(0, 0, 0, 0.04);
- --calcite-shell-panel-shadow-inline-end-internal: -4px 0 8px -1px rgba(0, 0, 0, 0.08),
+ --calcite-internal-shell-panel-shadow-inline-end: -4px 0 8px -1px rgba(0, 0, 0, 0.08),
-2px 0 4px -1px rgba(0, 0, 0, 0.04);
}
.calcite--rtl.content--overlay {
- --calcite-shell-panel-shadow-inline-start-internal: -4px 0 8px -1px rgba(0, 0, 0, 0.08),
+ --calcite-internal-shell-panel-shadow-inline-start: -4px 0 8px -1px rgba(0, 0, 0, 0.08),
-2px 0 4px -1px rgba(0, 0, 0, 0.04);
- --calcite-shell-panel-shadow-inline-end-internal: 4px 0 8px -1px rgba(0, 0, 0, 0.08),
+ --calcite-internal-shell-panel-shadow-inline-end: 4px 0 8px -1px rgba(0, 0, 0, 0.08),
2px 0 4px -1px rgba(0, 0, 0, 0.04);
}
@@ -48,41 +48,60 @@
z-index: var(--calcite-shell-panel-z-index, calc(theme("zIndex.header") + 1));
}
-:host([layout="vertical"][width-scale="s"]) .content {
- --calcite-shell-panel-width-internal: var(--calcite-shell-panel-width, 12vw);
- --calcite-shell-panel-max-width-internal: var(--calcite-shell-panel-max-width, 300px);
- --calcite-shell-panel-min-width-internal: var(--calcite-shell-panel-min-width, 150px);
+:host([layout="vertical"][display-mode="float-all"]) .content {
+ flex: 2;
}
-:host([layout="vertical"][width-scale="m"]) .content {
- --calcite-shell-panel-width-internal: var(--calcite-shell-panel-width, 20vw);
- --calcite-shell-panel-max-width-internal: var(--calcite-shell-panel-max-width, 420px);
- --calcite-shell-panel-min-width-internal: var(--calcite-shell-panel-min-width, 240px);
+:host([layout="vertical"][width-scale="s"]:not([display-mode="float-all"])) .content {
+ --calcite-internal-shell-panel-width: var(--calcite-shell-panel-width, 12vw);
+ --calcite-internal-shell-panel-max-width: var(--calcite-shell-panel-max-width, 300px);
+ --calcite-internal-shell-panel-min-width: var(--calcite-shell-panel-min-width, 150px);
}
-:host([layout="vertical"][width-scale="l"]) .content {
- --calcite-shell-panel-width-internal: var(--calcite-shell-panel-width, 45vw);
- --calcite-shell-panel-max-width-internal: var(--calcite-shell-panel-max-width, 680px);
- --calcite-shell-panel-min-width-internal: var(--calcite-shell-panel-min-width, 340px);
+:host([layout="vertical"][width-scale="s"][display-mode="float-all"]) .content {
+ --calcite-internal-shell-panel-width: var(--calcite-shell-panel-width, 12vw);
+ --calcite-internal-shell-panel-min-width: var(--calcite-shell-panel-min-width, 150px);
+}
+
+:host([layout="vertical"][width-scale="m"]:not([display-mode="float-all"])) .content {
+ --calcite-internal-shell-panel-width: var(--calcite-shell-panel-width, 20vw);
+ --calcite-internal-shell-panel-max-width: var(--calcite-shell-panel-max-width, 420px);
+ --calcite-internal-shell-panel-min-width: var(--calcite-shell-panel-min-width, 240px);
+}
+
+:host([layout="vertical"][width-scale="m"][display-mode="float-all"]) .content {
+ --calcite-internal-shell-panel-width: var(--calcite-shell-panel-width, 20vw);
+ --calcite-internal-shell-panel-min-width: var(--calcite-shell-panel-min-width, 240px);
+}
+
+:host([layout="vertical"][width-scale="l"]:not([display-mode="float-all"])) .content {
+ --calcite-internal-shell-panel-width: var(--calcite-shell-panel-width, 45vw);
+ --calcite-internal-shell-panel-max-width: var(--calcite-shell-panel-max-width, 680px);
+ --calcite-internal-shell-panel-min-width: var(--calcite-shell-panel-min-width, 340px);
+}
+
+:host([layout="vertical"][width-scale="l"][display-mode="float-all"]) .content {
+ --calcite-internal-shell-panel-width: var(--calcite-shell-panel-width, 45vw);
+ --calcite-internal-shell-panel-min-width: var(--calcite-shell-panel-min-width, 340px);
}
:host([layout="horizontal"][height-scale="s"]) .content {
- --calcite-shell-panel-max-height-internal: var(
+ --calcite-internal-shell-panel-max-height: var(
--calcite-shell-panel-max-height,
var(--calcite-shell-panel-detached-max-height, 20vh)
);
}
:host([layout="horizontal"]) .content {
- --calcite-shell-panel-min-height-internal: var(--calcite-shell-panel-min-height, 5vh);
- --calcite-shell-panel-max-height-internal: var(
+ --calcite-internal-shell-panel-min-height: var(--calcite-shell-panel-min-height, 5vh);
+ --calcite-internal-shell-panel-max-height: var(
--calcite-shell-panel-max-height,
var(--calcite-shell-panel-detached-max-height, 30vh)
);
}
:host([layout="horizontal"][height-scale="l"]) .content {
- --calcite-shell-panel-max-height-internal: var(
+ --calcite-internal-shell-panel-max-height: var(
--calcite-shell-panel-max-height,
var(--calcite-shell-panel-detached-max-height, 40vh)
);
@@ -101,6 +120,11 @@
* {
@apply box-border;
}
+
+ &.float-all {
+ margin-block: 0.5rem;
+ margin-inline: 0.5rem;
+ }
}
:host([layout="horizontal"]) .container {
@@ -193,16 +217,21 @@
max-inline-size var(--calcite-animation-timing);
}
-:host([layout="vertical"]) .content {
- inline-size: var(--calcite-shell-panel-width-internal);
- max-inline-size: var(--calcite-shell-panel-max-width-internal);
- min-inline-size: var(--calcite-shell-panel-min-width-internal);
+:host([layout="vertical"]:not([display-mode="float-all"])) .content {
+ inline-size: var(--calcite-internal-shell-panel-width);
+ max-inline-size: var(--calcite-internal-shell-panel-max-width);
+ min-inline-size: var(--calcite-internal-shell-panel-min-width);
+}
+
+:host([layout="vertical"][display-mode="float-all"]) .content {
+ inline-size: var(--calcite-internal-shell-panel-width);
+ min-inline-size: var(--calcite-internal-shell-panel-min-width);
}
:host([layout="horizontal"]) .content {
- block-size: var(--calcite-shell-panel-height-internal);
- max-block-size: var(--calcite-shell-panel-max-height-internal);
- min-block-size: var(--calcite-shell-panel-min-height-internal);
+ block-size: var(--calcite-internal-shell-panel-height);
+ max-block-size: var(--calcite-internal-shell-panel-max-height);
+ min-block-size: var(--calcite-internal-shell-panel-min-height);
}
.content__header {
@@ -235,25 +264,25 @@
:host([layout="vertical"][position="start"]) .content--overlay {
inset-inline-start: 100%;
- box-shadow: var(--calcite-shell-panel-shadow-inline-start-internal);
+ box-shadow: var(--calcite-internal-shell-panel-shadow-inline-start);
}
:host([layout="vertical"][position="end"]) .content--overlay {
inset-inline-end: 100%;
- box-shadow: var(--calcite-shell-panel-shadow-inline-end-internal);
+ box-shadow: var(--calcite-internal-shell-panel-shadow-inline-end);
}
:host([layout="horizontal"][position="start"]) .content--overlay {
inset-block-start: 100%;
- box-shadow: var(--calcite-shell-panel-shadow-block-start-internal);
+ box-shadow: var(--calcite-internal-shell-panel-shadow-block-start);
}
:host([layout="horizontal"][position="end"]) .content--overlay {
inset-block-end: 100%;
- box-shadow: var(--calcite-shell-panel-shadow-block-end-internal);
+ box-shadow: var(--calcite-internal-shell-panel-shadow-block-end);
}
-.content--float {
+.float--content {
@apply shadow-0
mx-2
mt-2
@@ -261,19 +290,19 @@
h-auto
overflow-hidden
rounded;
- max-block-size: var(--calcite-shell-panel-max-height-internal, calc(100% - 1rem));
+ max-block-size: var(--calcite-internal-shell-panel-max-height, calc(100% - 1rem));
::slotted(calcite-panel),
::slotted(calcite-flow) {
max-block-size: unset;
}
}
-:host([layout="horizontal"]) .content--float {
+:host([layout="horizontal"]) .float--content {
@apply my-2;
}
-:host([position="start"]) .content--float,
-:host([position="end"]) .content--float {
+:host([position="start"]) .float--content,
+:host([position="end"]) .float--content {
::slotted(calcite-panel),
::slotted(calcite-flow) {
@apply border-none;
@@ -290,7 +319,7 @@ slot[name="action-bar"]::slotted(calcite-action-bar),
@apply border-color-3 border border-solid;
}
-:host([position="start"]:not([slot="panel-end"])),
+:host([position="start"]:not([slot="panel-end"]):not([display-mode="float-all"])),
:host([position="end"][slot="panel-start"]) {
slot[name="action-bar"]::slotted(calcite-action-bar),
.content ::slotted(calcite-flow),
@@ -308,12 +337,12 @@ slot[name="action-bar"]::slotted(calcite-action-bar),
}
}
-:host([layout="horizontal"]) slot[name="action-bar"]::slotted(calcite-action-bar) {
+:host([layout="horizontal"]:not([display-mode="float-all"])) slot[name="action-bar"]::slotted(calcite-action-bar) {
border-inline: 0;
}
-:host([layout="horizontal"][position="start"]) .content ::slotted(calcite-flow),
-:host([layout="horizontal"][position="start"]) .content ::slotted(calcite-panel) {
+:host([layout="horizontal"][position="start"]:not([display-mode="float-all"])) .content ::slotted(calcite-flow),
+:host([layout="horizontal"][position="start"]:not([display-mode="float-all"])) .content ::slotted(calcite-panel) {
border-inline: 0;
border-block-start: 0;
}
diff --git a/packages/calcite-components/src/components/shell-panel/shell-panel.tsx b/packages/calcite-components/src/components/shell-panel/shell-panel.tsx
index 0ee7f5ba427..eaca7014097 100755
--- a/packages/calcite-components/src/components/shell-panel/shell-panel.tsx
+++ b/packages/calcite-components/src/components/shell-panel/shell-panel.tsx
@@ -68,8 +68,8 @@ export class ShellPanel implements ConditionalSlotComponent, LocalizedComponent,
@Watch("detached")
handleDetached(value: boolean): void {
if (value) {
- this.displayMode = "float";
- } else if (this.displayMode === "float") {
+ this.displayMode = "float-content";
+ } else if (this.displayMode === "float-content" || this.displayMode === "float") {
this.displayMode = "dock";
}
}
@@ -81,17 +81,21 @@ export class ShellPanel implements ConditionalSlotComponent, LocalizedComponent,
*
* `"overlay"` displays at full height on top of center content, and
*
- * `"float"` does not display at full height with content separately detached from `calcite-action-bar` on top of center content.
+ * `"float"` [Deprecated] does not display at full height with content separately detached from `calcite-action-bar` on top of center content.
+ *
+ * `"float-content"` does not display at full height with content separately detached from `calcite-action-bar` on top of center content.
+ *
+ * `"float-all"` detaches the `calcite-panel` and `calcite-action-bar` on top of center content.
*/
@Prop({ reflect: true }) displayMode: DisplayMode = "dock";
@Watch("displayMode")
handleDisplayMode(value: DisplayMode): void {
- this.detached = value === "float";
+ this.detached = value === "float-content" || value === "float";
}
/**
- * When `displayMode` is `float`, specifies the maximum height of the component.
+ * When `displayMode` is `float-content` or `float`, specifies the maximum height of the component.
*
* @deprecated Use `heightScale` instead.
*/
@@ -134,7 +138,7 @@ export class ShellPanel implements ConditionalSlotComponent, LocalizedComponent,
@Prop({ reflect: true }) position: Extract<"start" | "end", Position> = "start";
/**
- * When `true` and `displayMode` is not `float`, the component's content area is resizable.
+ * When `true` and `displayMode` is not `float-content` or `float`, the component's content area is resizable.
*/
@Prop({ reflect: true }) resizable = false;
@@ -280,7 +284,7 @@ export class ShellPanel implements ConditionalSlotComponent, LocalizedComponent,
const dir = getElementDir(this.el);
- const allowResizing = displayMode !== "float" && resizable;
+ const allowResizing = displayMode !== "float-content" && displayMode !== "float" && resizable;
const style = allowResizing
? layout === "horizontal"
@@ -301,8 +305,8 @@ export class ShellPanel implements ConditionalSlotComponent, LocalizedComponent,
aria-valuemin={layout == "horizontal" ? contentHeightMin : contentWidthMin}
aria-valuenow={
layout == "horizontal"
- ? contentHeight ?? initialContentHeight
- : contentWidth ?? initialContentWidth
+ ? (contentHeight ?? initialContentHeight)
+ : (contentWidth ?? initialContentWidth)
}
class={CSS.separator}
key="separator"
@@ -332,7 +336,7 @@ export class ShellPanel implements ConditionalSlotComponent, LocalizedComponent,
[CSS_UTILITY.rtl]: dir === "rtl",
[CSS.content]: true,
[CSS.contentOverlay]: displayMode === "overlay",
- [CSS.contentFloat]: displayMode === "float",
+ [CSS.floatContent]: displayMode === "float-content" || displayMode === "float",
[CSS_UTILITY.calciteAnimate]: displayMode === "overlay",
[getAnimationDir()]: displayMode === "overlay",
}}
@@ -359,7 +363,11 @@ export class ShellPanel implements ConditionalSlotComponent, LocalizedComponent,
mainNodes.reverse();
}
- return
{mainNodes}
;
+ return (
+
+ {mainNodes}
+
+ );
}
// --------------------------------------------------------------------------
diff --git a/packages/calcite-components/src/components/shell/shell.stories.ts b/packages/calcite-components/src/components/shell/shell.stories.ts
index d1583e947e4..db68285ae00 100644
--- a/packages/calcite-components/src/components/shell/shell.stories.ts
+++ b/packages/calcite-components/src/components/shell/shell.stories.ts
@@ -358,36 +358,41 @@ export const darkModeRTL_TestOnly = (): string => html`
darkModeRTL_TestOnly.parameters = { themes: modesDarkDefault };
-export const closedPanels = (): string =>
- html(`
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`);
+const closedPanelsHtml: string[] = [];
+["float", "float-content"].forEach((d, i) => {
+ closedPanelsHtml[i] = html(`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `);
+});
+export const closedPanelsFloat = (): string => closedPanelsHtml[0];
+export const closedPanelsFloatContent = (): string => closedPanelsHtml[1];
-export const endPanel_TestOnly = (): string =>
- html(`
+const endPanelHtml: string[] = [];
+["float", "float-content"].forEach((d, i) => {
+ endPanelHtml[i] = html(`
@@ -403,7 +408,7 @@ background-size: 20px 20px;
background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
"
>
-
+
@@ -552,6 +557,9 @@ background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
`);
+});
+export const endPanelFloat_TestOnly = (): string => endPanelHtml[0];
+export const endPanelFloatContent_TestOnly = (): string => endPanelHtml[1];
export const slottedModalAndAlert = (): string =>
html(`
@@ -722,8 +730,9 @@ export const slottedSheetOverlay = (): string =>
`);
-export const slottedSheetFloat = (): string =>
- html(`
+const slottedSheetHtml: string[] = [];
+["float", "float-content"].forEach((d, i) => {
+ slottedSheetHtml[i] = html(`
Other page content outside of shell
Master cleanse occupy lo-fi meh. Green juice williamsburg XOXO man bun ascot fit. Knausgaard heirloom four dollar
@@ -741,7 +750,7 @@ export const slottedSheetFloat = (): string =>
"
>
Header Example
-
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
@@ -812,6 +821,9 @@ export const slottedSheetFloat = (): string =>
});
`);
+});
+export const slottedSheetFloat = (): string => slottedSheetHtml[0];
+export const slottedSheetFloatContent = (): string => slottedSheetHtml[1];
export const contentBehind = (): string =>
html(`
@@ -848,29 +860,33 @@ export const slottedPanelTop_TestOnly = (): string =>
`);
-export const contentBehindPanelBottom = (): string =>
- html(`
-
- {
+ contentBehindPanelBottomHtml[i] = html(`
+
- ${bottomPanelHTML}
-
- `);
+ width:700px;
+ height:700px;
+ position:relative;
+ "
+ >
+
+ ${bottomPanelHTML}
+
+ `);
+});
+export const contentBehindPanelBottomFloat = (): string => contentBehindPanelBottomHtml[0];
+export const contentBehindPanelBottomFloatContent = (): string => contentBehindPanelBottomHtml[1];
export const slottedPanelBottom_TestOnly = (): string =>
html(`
@@ -1402,3 +1418,228 @@ export const panelEndWithPositionStart_TestOnly = (): string =>
`;
+
+export const panelTopFloatHorizontal_TestOnly = (): string =>
+ html`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dock
+ float content
+ overlay
+ float all
+
+
+ Vertical
+ Horizontal
+
+
+
+
+
+ `;
+
+export const panelTopFloatVertical_TestOnly = (): string =>
+ html`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dock
+ float content
+ overlay
+ float all
+
+
+ Vertical
+ Horizontal
+
+
+
+
+
+ `;
diff --git a/packages/calcite-components/src/demos/shell-panel.html b/packages/calcite-components/src/demos/shell-panel.html
index fe241d016af..5b7defea4ae 100644
--- a/packages/calcite-components/src/demos/shell-panel.html
+++ b/packages/calcite-components/src/demos/shell-panel.html
@@ -137,8 +137,9 @@
dock
- float
+ float content
overlay
+ float all
@@ -183,8 +184,9 @@
dock
- float
+ float content
overlay
+ float all
@@ -217,8 +219,14 @@
dock
+ float content
float
overlay
+ float all
+
+
+ Vertical
+ Horizontal
@@ -251,8 +259,9 @@
dock
- float
+ float content
overlay
+ float all
@@ -297,6 +306,13 @@
});
});
+ const chipsLayout = document.getElementById("chip-layout-panel-top");
+ chipsLayout.addEventListener("calciteChipGroupSelect", function (event) {
+ const shellPanel = event.target.closest("calcite-shell-panel");
+ const prop = event.target.selectedItems[0].value;
+ shellPanel.layout = prop;
+ });
+
const panelTop = document.getElementById("panel-top");
const panelBottom = document.getElementById("panel-bottom");
const panelStart = document.getElementById("panel-start");