@amboss/design-system 4.0.4 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/build/cjs/components/DataTable/DataTable.js +1 -1
  2. package/build/cjs/components/DataTable/TableBody.d.ts +4 -2
  3. package/build/cjs/components/DataTable/TableBody.js +1 -1
  4. package/build/cjs/components/DataTable/TableCell.d.ts +4 -3
  5. package/build/cjs/components/DataTable/TableCell.js +1 -1
  6. package/build/cjs/components/DataTable/header/SortableCellContent.d.ts +1 -4
  7. package/build/cjs/components/DataTable/header/TableHeader.d.ts +3 -1
  8. package/build/cjs/components/DataTable/header/TableHeader.js +1 -1
  9. package/build/cjs/components/DataTable/internal/DataTableDataRow.d.ts +20 -0
  10. package/build/cjs/components/DataTable/internal/DataTableDataRow.js +1 -0
  11. package/build/cjs/components/DataTable/internal/DataTableRowGroup.d.ts +2 -0
  12. package/build/cjs/components/DataTable/internal/DataTableRowGroup.js +1 -0
  13. package/build/cjs/components/DataTable/internal/buildInternalColumns.d.ts +9 -0
  14. package/build/cjs/components/DataTable/internal/buildInternalColumns.js +1 -0
  15. package/build/cjs/components/DataTable/internal/controlColumns/checkboxColumn.d.ts +2 -0
  16. package/build/cjs/components/DataTable/internal/controlColumns/checkboxColumn.js +1 -0
  17. package/build/cjs/components/DataTable/internal/getColumnSticky.d.ts +8 -0
  18. package/build/cjs/components/DataTable/internal/getColumnSticky.js +1 -0
  19. package/build/cjs/components/DataTable/internal/getVisibleColumnCount.d.ts +2 -0
  20. package/build/cjs/components/DataTable/internal/getVisibleColumnCount.js +1 -0
  21. package/build/cjs/components/DataTable/internal/resolveRowContext.d.ts +17 -0
  22. package/build/cjs/components/DataTable/internal/resolveRowContext.js +1 -0
  23. package/build/cjs/components/DataTable/internal/tablePrimitives.d.ts +35 -0
  24. package/build/cjs/components/DataTable/internal/tablePrimitives.js +1 -0
  25. package/build/cjs/components/DataTable/internal/types.d.ts +26 -0
  26. package/build/cjs/components/DataTable/internal/types.js +1 -0
  27. package/build/cjs/components/Internal/PanelHeader/PanelHeader.d.ts +31 -0
  28. package/build/cjs/components/Internal/PanelHeader/PanelHeader.js +1 -0
  29. package/build/cjs/components/Internal/Sandwich/-types.d.ts +10 -12
  30. package/build/cjs/components/Internal/Sandwich/Sandwich.d.ts +8 -8
  31. package/build/cjs/components/Internal/Sandwich/Sandwich.js +1 -1
  32. package/build/cjs/components/Internal/Sandwich/SandwichFooter.d.ts +1 -1
  33. package/build/cjs/components/Internal/Sandwich/SandwichFooter.js +1 -1
  34. package/build/cjs/components/Internal/Sandwich/SandwichHeader.d.ts +1 -1
  35. package/build/cjs/components/Internal/Sandwich/SandwichHeader.js +1 -1
  36. package/build/cjs/components/Internal/Sandwich/useSandwichContext.d.ts +3 -3
  37. package/build/cjs/components/Internal/Sandwich/useSandwichContext.js +1 -1
  38. package/build/cjs/components/Layout/-types.d.ts +63 -31
  39. package/build/{esm/components/Layout → cjs/components/Layout/Content}/Content.d.ts +1 -1
  40. package/build/cjs/components/Layout/Content/Content.js +1 -0
  41. package/build/cjs/components/Layout/Layout.d.ts +16 -4
  42. package/build/cjs/components/Layout/Layout.js +1 -1
  43. package/build/cjs/components/Layout/LeftPanel/LeftPanel.d.ts +10 -0
  44. package/build/cjs/components/Layout/LeftPanel/LeftPanel.js +1 -0
  45. package/build/cjs/components/Layout/LeftPanel/LeftPanelFooter.d.ts +7 -0
  46. package/build/cjs/components/Layout/LeftPanel/LeftPanelFooter.js +1 -0
  47. package/build/cjs/components/Layout/LeftPanel/LeftPanelHeader.d.ts +7 -0
  48. package/build/cjs/components/Layout/LeftPanel/LeftPanelHeader.js +1 -0
  49. package/build/cjs/components/Layout/PanelContainer.d.ts +9 -0
  50. package/build/cjs/components/Layout/PanelContainer.js +1 -0
  51. package/build/cjs/components/Layout/{RightPanel.d.ts → RightPanel/RightPanel.d.ts} +4 -2
  52. package/build/cjs/components/Layout/RightPanel/RightPanel.js +1 -0
  53. package/build/cjs/components/Layout/RightPanel/RightPanelFooter.d.ts +7 -0
  54. package/build/cjs/components/Layout/RightPanel/RightPanelFooter.js +1 -0
  55. package/build/cjs/components/Layout/RightPanel/RightPanelHeader.d.ts +10 -0
  56. package/build/cjs/components/Layout/RightPanel/RightPanelHeader.js +1 -0
  57. package/build/cjs/components/Layout/{Split.d.ts → Split/Split.d.ts} +4 -2
  58. package/build/cjs/components/Layout/Split/Split.js +1 -0
  59. package/build/cjs/components/Layout/Split/SplitFooter.d.ts +7 -0
  60. package/build/cjs/components/Layout/Split/SplitFooter.js +1 -0
  61. package/build/cjs/components/Layout/Split/SplitHeader.d.ts +7 -0
  62. package/build/cjs/components/Layout/Split/SplitHeader.js +1 -0
  63. package/build/cjs/components/Layout/index.d.ts +0 -1
  64. package/build/cjs/components/Layout/index.js +1 -1
  65. package/build/cjs/components/Link/Link.js +1 -1
  66. package/build/cjs/components/Link/LinkContext.d.ts +19 -0
  67. package/build/cjs/components/Link/LinkContext.js +1 -0
  68. package/build/cjs/components/Link/getLinkDecorationStyles.d.ts +20 -0
  69. package/build/cjs/components/Link/getLinkDecorationStyles.js +1 -0
  70. package/build/cjs/components/Typography/Text/Text.d.ts +10 -6
  71. package/build/cjs/components/Typography/Text/Text.js +1 -1
  72. package/build/esm/components/DataTable/DataTable.js +1 -1
  73. package/build/esm/components/DataTable/TableBody.d.ts +4 -2
  74. package/build/esm/components/DataTable/TableBody.js +1 -1
  75. package/build/esm/components/DataTable/TableCell.d.ts +4 -3
  76. package/build/esm/components/DataTable/TableCell.js +1 -1
  77. package/build/esm/components/DataTable/header/SortableCellContent.d.ts +1 -4
  78. package/build/esm/components/DataTable/header/TableHeader.d.ts +3 -1
  79. package/build/esm/components/DataTable/header/TableHeader.js +1 -1
  80. package/build/esm/components/DataTable/internal/DataTableDataRow.d.ts +20 -0
  81. package/build/esm/components/DataTable/internal/DataTableDataRow.js +1 -0
  82. package/build/esm/components/DataTable/internal/DataTableRowGroup.d.ts +2 -0
  83. package/build/esm/components/DataTable/internal/DataTableRowGroup.js +1 -0
  84. package/build/esm/components/DataTable/internal/buildInternalColumns.d.ts +9 -0
  85. package/build/esm/components/DataTable/internal/buildInternalColumns.js +1 -0
  86. package/build/esm/components/DataTable/internal/controlColumns/checkboxColumn.d.ts +2 -0
  87. package/build/esm/components/DataTable/internal/controlColumns/checkboxColumn.js +1 -0
  88. package/build/esm/components/DataTable/internal/getColumnSticky.d.ts +8 -0
  89. package/build/esm/components/DataTable/internal/getColumnSticky.js +1 -0
  90. package/build/esm/components/DataTable/internal/getVisibleColumnCount.d.ts +2 -0
  91. package/build/esm/components/DataTable/internal/getVisibleColumnCount.js +1 -0
  92. package/build/esm/components/DataTable/internal/resolveRowContext.d.ts +17 -0
  93. package/build/esm/components/DataTable/internal/resolveRowContext.js +1 -0
  94. package/build/esm/components/DataTable/internal/tablePrimitives.d.ts +35 -0
  95. package/build/esm/components/DataTable/internal/tablePrimitives.js +1 -0
  96. package/build/esm/components/DataTable/internal/types.d.ts +26 -0
  97. package/build/esm/components/DataTable/internal/types.js +1 -0
  98. package/build/esm/components/Internal/PanelHeader/PanelHeader.d.ts +31 -0
  99. package/build/esm/components/Internal/PanelHeader/PanelHeader.js +1 -0
  100. package/build/esm/components/Internal/Sandwich/-types.d.ts +10 -12
  101. package/build/esm/components/Internal/Sandwich/Sandwich.d.ts +8 -8
  102. package/build/esm/components/Internal/Sandwich/Sandwich.js +1 -1
  103. package/build/esm/components/Internal/Sandwich/SandwichFooter.d.ts +1 -1
  104. package/build/esm/components/Internal/Sandwich/SandwichFooter.js +1 -1
  105. package/build/esm/components/Internal/Sandwich/SandwichHeader.d.ts +1 -1
  106. package/build/esm/components/Internal/Sandwich/SandwichHeader.js +1 -1
  107. package/build/esm/components/Internal/Sandwich/useSandwichContext.d.ts +3 -3
  108. package/build/esm/components/Internal/Sandwich/useSandwichContext.js +1 -1
  109. package/build/esm/components/Layout/-types.d.ts +63 -31
  110. package/build/{cjs/components/Layout → esm/components/Layout/Content}/Content.d.ts +1 -1
  111. package/build/esm/components/Layout/Content/Content.js +1 -0
  112. package/build/esm/components/Layout/Layout.d.ts +16 -4
  113. package/build/esm/components/Layout/Layout.js +1 -1
  114. package/build/esm/components/Layout/LeftPanel/LeftPanel.d.ts +10 -0
  115. package/build/esm/components/Layout/LeftPanel/LeftPanel.js +1 -0
  116. package/build/esm/components/Layout/LeftPanel/LeftPanelFooter.d.ts +7 -0
  117. package/build/esm/components/Layout/LeftPanel/LeftPanelFooter.js +1 -0
  118. package/build/esm/components/Layout/LeftPanel/LeftPanelHeader.d.ts +7 -0
  119. package/build/esm/components/Layout/LeftPanel/LeftPanelHeader.js +1 -0
  120. package/build/esm/components/Layout/PanelContainer.d.ts +9 -0
  121. package/build/esm/components/Layout/PanelContainer.js +1 -0
  122. package/build/esm/components/Layout/{RightPanel.d.ts → RightPanel/RightPanel.d.ts} +4 -2
  123. package/build/esm/components/Layout/RightPanel/RightPanel.js +1 -0
  124. package/build/esm/components/Layout/RightPanel/RightPanelFooter.d.ts +7 -0
  125. package/build/esm/components/Layout/RightPanel/RightPanelFooter.js +1 -0
  126. package/build/esm/components/Layout/RightPanel/RightPanelHeader.d.ts +10 -0
  127. package/build/esm/components/Layout/RightPanel/RightPanelHeader.js +1 -0
  128. package/build/esm/components/Layout/{Split.d.ts → Split/Split.d.ts} +4 -2
  129. package/build/esm/components/Layout/Split/Split.js +1 -0
  130. package/build/esm/components/Layout/Split/SplitFooter.d.ts +7 -0
  131. package/build/esm/components/Layout/Split/SplitFooter.js +1 -0
  132. package/build/esm/components/Layout/Split/SplitHeader.d.ts +7 -0
  133. package/build/esm/components/Layout/Split/SplitHeader.js +1 -0
  134. package/build/esm/components/Layout/index.d.ts +0 -1
  135. package/build/esm/components/Layout/index.js +1 -1
  136. package/build/esm/components/Link/Link.js +1 -1
  137. package/build/esm/components/Link/LinkContext.d.ts +19 -0
  138. package/build/esm/components/Link/LinkContext.js +1 -0
  139. package/build/esm/components/Link/getLinkDecorationStyles.d.ts +20 -0
  140. package/build/esm/components/Link/getLinkDecorationStyles.js +1 -0
  141. package/build/esm/components/Typography/Text/Text.d.ts +10 -6
  142. package/build/esm/components/Typography/Text/Text.js +1 -1
  143. package/build/scss/_layout.scss +8 -3
  144. package/build/scss/_theming.scss +3 -0
  145. package/build/scss/_variables.scss +2 -0
  146. package/package.json +1 -1
  147. package/build/cjs/components/Internal/Sandwich/SandwichBody.d.ts +0 -3
  148. package/build/cjs/components/Internal/Sandwich/SandwichBody.js +0 -1
  149. package/build/cjs/components/Layout/Content.js +0 -1
  150. package/build/cjs/components/Layout/LeftPanel.d.ts +0 -8
  151. package/build/cjs/components/Layout/LeftPanel.js +0 -1
  152. package/build/cjs/components/Layout/RightPanel.js +0 -1
  153. package/build/cjs/components/Layout/RightPanelContainer.d.ts +0 -3
  154. package/build/cjs/components/Layout/RightPanelContainer.js +0 -1
  155. package/build/cjs/components/Layout/Split.js +0 -1
  156. package/build/esm/components/Internal/Sandwich/SandwichBody.d.ts +0 -3
  157. package/build/esm/components/Internal/Sandwich/SandwichBody.js +0 -1
  158. package/build/esm/components/Layout/Content.js +0 -1
  159. package/build/esm/components/Layout/LeftPanel.d.ts +0 -8
  160. package/build/esm/components/Layout/LeftPanel.js +0 -1
  161. package/build/esm/components/Layout/RightPanel.js +0 -1
  162. package/build/esm/components/Layout/RightPanelContainer.d.ts +0 -3
  163. package/build/esm/components/Layout/RightPanelContainer.js +0 -1
  164. package/build/esm/components/Layout/Split.js +0 -1
@@ -1,10 +1,13 @@
1
1
  import type React from "react";
2
2
  export type SandwichProps = {
3
+ /** Content in source order; `Sandwich.Header` / `Sandwich.Footer` children
4
+ * stick to the edges, everything else scrolls. */
3
5
  children: React.ReactNode;
4
- "data-e2e-test-id"?: string;
5
- /** Override the root's `data-ds-id` (e.g. when a wrapper component owns the node). */
6
- "data-ds-id"?: string;
7
- } & React.HTMLAttributes<HTMLDivElement>;
6
+ /** Forwarded scroll handler; fires after the internal edge measurement. */
7
+ onScroll?: React.UIEventHandler<HTMLDivElement>;
8
+ /** Forwarded to the scroll container element (e.g. for scroll restoration). */
9
+ scrollRef?: React.Ref<HTMLDivElement>;
10
+ };
8
11
  /**
9
12
  * Separator visibility:
10
13
  * - `auto`: show only while the content is scrolled away from the edge (default).
@@ -15,19 +18,14 @@ export type SandwichSeparator = "auto" | "always" | "never";
15
18
  export type SandwichHeaderProps = {
16
19
  children: React.ReactNode;
17
20
  showSeparator?: SandwichSeparator;
21
+ "data-e2e-test-id"?: string;
18
22
  };
19
23
  export type SandwichFooterProps = {
20
24
  children: React.ReactNode;
21
25
  showSeparator?: SandwichSeparator;
26
+ "data-e2e-test-id"?: string;
22
27
  };
23
- export type SandwichBodyProps = {
24
- children: React.ReactNode;
25
- /** Forwarded scroll handler; fires after the internal edge measurement. */
26
- onScroll?: React.UIEventHandler<HTMLDivElement>;
27
- /** Forwarded to the scroll container element (e.g. for scroll restoration). */
28
- scrollRef?: React.Ref<HTMLDivElement>;
29
- };
30
- /** Scroll-edge visibility published by `Body`, consumed by `Header` / `Footer`. */
28
+ /** Scroll-edge visibility published by the root, consumed by `Header` / `Footer`. */
31
29
  export type SandwichEdges = {
32
30
  /** Start of the scroll content is visible (not scrolled down). */
33
31
  atTop: boolean;
@@ -1,23 +1,23 @@
1
1
  import React from "react";
2
2
  import type { SandwichProps } from "./-types";
3
- import { SandwichBody } from "./SandwichBody";
4
3
  import { SandwichHeader } from "./SandwichHeader";
5
4
  import { SandwichFooter } from "./SandwichFooter";
6
5
  /**
7
- * Internal compound component: a scrollable middle region (`Sandwich.Body`)
8
- * flanked by a sticky `Sandwich.Header` / `Sandwich.Footer` that reveal a border
9
- * only while content is scrolled under them. Edge state is shared through
10
- * context (see `useSandwichContext.tsx`).
6
+ * Internal compound component: ONE scrollable region that hosts
7
+ * `Sandwich.Header` / `Sandwich.Footer` in the flow of its children —
8
+ * `position: sticky` pins them to the edges so consumers author
9
+ * `<Header />{body}<Footer />` in source order, with no slot extraction.
10
+ * Header/footer reveal a border only while content is scrolled under them;
11
+ * edge state is shared through context (see `useSandwichContext.tsx`).
11
12
  */
12
- declare function SandwichRoot({ children, ...rest }: SandwichProps): React.ReactElement;
13
+ declare function SandwichRoot({ children, scrollRef, onScroll, }: SandwichProps): React.ReactElement;
13
14
  /**
14
- * Compound export: `Sandwich` with `.Header`, `.Body`, `.Footer` attached.
15
+ * Compound export: `Sandwich` with `.Header` / `.Footer` attached.
15
16
  * Object.assign keeps the static sub-components typed on the root
16
17
  * (function-declaration statics don't type-check).
17
18
  */
18
19
  export declare const Sandwich: typeof SandwichRoot & {
19
20
  Header: typeof SandwichHeader;
20
- Body: typeof SandwichBody;
21
21
  Footer: typeof SandwichFooter;
22
22
  };
23
23
  export {};
@@ -1 +1 @@
1
- import React,{useCallback,useMemo,useState}from"react";import styled from"@emotion/styled";import{SandwichProvider}from"./useSandwichContext";import{SandwichBody}from"./SandwichBody";import{SandwichHeader}from"./SandwichHeader";import{SandwichFooter}from"./SandwichFooter";let StyledRoot=styled("div",{target:"e164s6zy0",label:"StyledRoot"})({display:"flex",flexDirection:"column",minHeight:0,height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2gudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoRWRnZXMsIFNhbmR3aWNoUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IFNhbmR3aWNoUHJvdmlkZXIgfSBmcm9tIFwiLi91c2VTYW5kd2ljaENvbnRleHRcIjtcbmltcG9ydCB7IFNhbmR3aWNoQm9keSB9IGZyb20gXCIuL1NhbmR3aWNoQm9keVwiO1xuaW1wb3J0IHsgU2FuZHdpY2hIZWFkZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEhlYWRlclwiO1xuaW1wb3J0IHsgU2FuZHdpY2hGb290ZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEZvb3RlclwiO1xuXG4vLyBDb2x1bW4gbGF5b3V0OiBoZWFkZXIvZm9vdGVyIHNpdCBhYm92ZS9iZWxvdyBhIHNpbmdsZSBzY3JvbGwgcmVnaW9uLiBUaGVcbi8vIHJvb3QgaXRzZWxmIGRvZXMgbm90IHNjcm9sbCDigJQgYEJvZHlgIG93bnMgdGhlIG92ZXJmbG93LlxuY29uc3QgU3R5bGVkUm9vdCA9IHN0eWxlZC5kaXYoe1xuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgbWluSGVpZ2h0OiAwLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLyoqXG4gKiBJbnRlcm5hbCBjb21wb3VuZCBjb21wb25lbnQ6IGEgc2Nyb2xsYWJsZSBtaWRkbGUgcmVnaW9uIChgU2FuZHdpY2guQm9keWApXG4gKiBmbGFua2VkIGJ5IGEgc3RpY2t5IGBTYW5kd2ljaC5IZWFkZXJgIC8gYFNhbmR3aWNoLkZvb3RlcmAgdGhhdCByZXZlYWwgYSBib3JkZXJcbiAqIG9ubHkgd2hpbGUgY29udGVudCBpcyBzY3JvbGxlZCB1bmRlciB0aGVtLiBFZGdlIHN0YXRlIGlzIHNoYXJlZCB0aHJvdWdoXG4gKiBjb250ZXh0IChzZWUgYHVzZVNhbmR3aWNoQ29udGV4dC50c3hgKS5cbiAqL1xuZnVuY3Rpb24gU2FuZHdpY2hSb290KHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IFNhbmR3aWNoUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICAvLyBEZWZhdWx0OiBldmVyeXRoaW5nIHZpc2libGUgKG5vIHNjcm9sbGluZyBuZWVkZWQpIOKGkiBubyBib3JkZXJzLlxuICBjb25zdCBbZWRnZXMsIHNldEVkZ2VzU3RhdGVdID0gdXNlU3RhdGU8U2FuZHdpY2hFZGdlcz4oe1xuICAgIGF0VG9wOiB0cnVlLFxuICAgIGF0Qm90dG9tOiB0cnVlLFxuICB9KTtcblxuICBjb25zdCBzZXRFZGdlcyA9IHVzZUNhbGxiYWNrKChuZXh0OiBQYXJ0aWFsPFNhbmR3aWNoRWRnZXM+KSA9PiB7XG4gICAgc2V0RWRnZXNTdGF0ZSgocHJldikgPT4ge1xuICAgICAgY29uc3QgbWVyZ2VkID0geyAuLi5wcmV2LCAuLi5uZXh0IH07XG4gICAgICBpZiAobWVyZ2VkLmF0VG9wID09PSBwcmV2LmF0VG9wICYmIG1lcmdlZC5hdEJvdHRvbSA9PT0gcHJldi5hdEJvdHRvbSkge1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgLi4uZWRnZXMsIHNldEVkZ2VzIH0pLCBbZWRnZXMsIHNldEVkZ2VzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U2FuZHdpY2hQcm92aWRlciB2YWx1ZT17dmFsdWV9PlxuICAgICAgPFN0eWxlZFJvb3QgZGF0YS1kcy1pZD1cIlNhbmR3aWNoXCIgey4uLnJlc3R9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N0eWxlZFJvb3Q+XG4gICAgPC9TYW5kd2ljaFByb3ZpZGVyPlxuICApO1xufVxuXG4vKipcbiAqIENvbXBvdW5kIGV4cG9ydDogYFNhbmR3aWNoYCB3aXRoIGAuSGVhZGVyYCwgYC5Cb2R5YCwgYC5Gb290ZXJgIGF0dGFjaGVkLlxuICogT2JqZWN0LmFzc2lnbiBrZWVwcyB0aGUgc3RhdGljIHN1Yi1jb21wb25lbnRzIHR5cGVkIG9uIHRoZSByb290XG4gKiAoZnVuY3Rpb24tZGVjbGFyYXRpb24gc3RhdGljcyBkb24ndCB0eXBlLWNoZWNrKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNhbmR3aWNoID0gT2JqZWN0LmFzc2lnbihTYW5kd2ljaFJvb3QsIHtcbiAgSGVhZGVyOiBTYW5kd2ljaEhlYWRlcixcbiAgQm9keTogU2FuZHdpY2hCb2R5LFxuICBGb290ZXI6IFNhbmR3aWNoRm9vdGVyLFxufSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVW1CIn0= */");export const Sandwich=Object.assign(function({children,...rest}){let[edges,setEdgesState]=useState({atTop:!0,atBottom:!0}),setEdges=useCallback(next=>{setEdgesState(prev=>{let merged={...prev,...next};return merged.atTop===prev.atTop&&merged.atBottom===prev.atBottom?prev:merged})},[]),value=useMemo(()=>({...edges,setEdges}),[edges,setEdges]);return React.createElement(SandwichProvider,{value:value},React.createElement(StyledRoot,{"data-ds-id":"Sandwich",...rest},children))},{Header:SandwichHeader,Body:SandwichBody,Footer:SandwichFooter});
1
+ import React,{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import styled from"@emotion/styled";import{SandwichProvider}from"./useSandwichContext";import{SandwichHeader}from"./SandwichHeader";import{SandwichFooter}from"./SandwichFooter";let useScrollEdgeTracking=({scrollRef,onScroll,setEdges})=>{let containerRef=useRef(null),contentRef=useRef(null),setContainerRef=useCallback(node=>{containerRef.current=node,"function"==typeof scrollRef?scrollRef(node):scrollRef&&(scrollRef.current=node)},[scrollRef]),recalculateEdges=useCallback(()=>{let el=containerRef.current;if(!el)return;let{scrollTop,scrollHeight,clientHeight}=el;setEdges({atTop:scrollTop<=1,atBottom:scrollTop+clientHeight>=scrollHeight-1})},[setEdges]),onContainerScroll=useCallback(event=>{recalculateEdges(),onScroll?.(event)},[recalculateEdges,onScroll]);return useLayoutEffect(recalculateEdges,[recalculateEdges]),useEffect(()=>{if("undefined"==typeof ResizeObserver)return;let observer=new ResizeObserver(()=>recalculateEdges());return containerRef.current&&observer.observe(containerRef.current),contentRef.current&&observer.observe(contentRef.current),()=>observer.disconnect()},[recalculateEdges]),{setContainerRef,contentRef,onContainerScroll}},useSandwichEdgesState=()=>{let[edges,setEdgesState]=useState({atTop:!0,atBottom:!0}),setEdges=useCallback(next=>{setEdgesState(prev=>{let merged={...prev,...next};return merged.atTop===prev.atTop&&merged.atBottom===prev.atBottom?prev:merged})},[]);return useMemo(()=>({...edges,setEdges}),[edges,setEdges])},StyledScrollRoot=styled("div",{target:"e1milkm30",label:"StyledScrollRoot"})({height:"100%",overflowY:"auto",position:"relative"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2gudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB0eXBlIHsgU2FuZHdpY2hFZGdlcywgU2FuZHdpY2hQcm9wcyB9IGZyb20gXCIuLy10eXBlc1wiO1xuaW1wb3J0IHsgU2FuZHdpY2hQcm92aWRlciB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBTYW5kd2ljaENvbnRleHRWYWx1ZSB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuaW1wb3J0IHsgU2FuZHdpY2hIZWFkZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEhlYWRlclwiO1xuaW1wb3J0IHsgU2FuZHdpY2hGb290ZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEZvb3RlclwiO1xuXG4vLyBweCB0b2xlcmFuY2Ug4oCUIHN1Yi1waXhlbCByb3VuZGluZyBzaG91bGRuJ3QgbGVhdmUgYSBkaXZpZGVyIHN0dWNrIG9uLlxuY29uc3QgRURHRV9USFJFU0hPTEQgPSAxO1xuXG50eXBlIFNjcm9sbEVkZ2VUcmFja2luZ1BhcmFtcyA9IHtcbiAgLyoqIENvbnN1bWVyIHJlZiBmb3J3YXJkZWQgdG8gdGhlIHNjcm9sbCBjb250YWluZXIgKHNjcm9sbCByZXN0b3JhdGlvbiBldGMuKS4gKi9cbiAgc2Nyb2xsUmVmPzogUmVhY3QuUmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgLyoqIENvbnN1bWVyIHNjcm9sbCBoYW5kbGVyOyBmaXJlcyBhZnRlciB0aGUgaW50ZXJuYWwgZWRnZSBtZWFzdXJlbWVudC4gKi9cbiAgb25TY3JvbGw/OiBSZWFjdC5VSUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBFZGdlIHNpbmsg4oCUIHRoZSByb290J3MgYHNldEVkZ2VzYC4gKi9cbiAgc2V0RWRnZXM6IChlZGdlczogUGFydGlhbDxTYW5kd2ljaEVkZ2VzPikgPT4gdm9pZDtcbn07XG5cbnR5cGUgU2Nyb2xsRWRnZVRyYWNraW5nID0ge1xuICAvKiogQ2FsbGJhY2sgcmVmIGZvciB0aGUgc2Nyb2xsIGNvbnRhaW5lciBlbGVtZW50LiAqL1xuICBzZXRDb250YWluZXJSZWY6IChub2RlOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG4gIC8qKiBSZWYgZm9yIHRoZSBjb250ZW50IGVsZW1lbnQgaW5zaWRlIHRoZSBjb250YWluZXIgKGdyb3d0aCB0cmFja2luZykuICovXG4gIGNvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgLyoqIFNjcm9sbCBoYW5kbGVyIGZvciB0aGUgY29udGFpbmVyOyBtZWFzdXJlcywgdGhlbiBjYWxscyBgb25TY3JvbGxgLiAqL1xuICBvbkNvbnRhaW5lclNjcm9sbDogUmVhY3QuVUlFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuLyoqXG4gKiBQdWJsaXNoZXMgdGhlIHNjcm9sbCBjb250YWluZXIncyBlZGdlIHZpc2liaWxpdHkgKGBhdFRvcGAgLyBgYXRCb3R0b21gKSB0b1xuICogYHNldEVkZ2VzYCDigJQgb24gbW91bnQsIG9uIHNjcm9sbCwgYW5kIG9uIHNpemUgY2hhbmdlcyBvZiB0aGUgY29udGFpbmVyIG9yXG4gKiBpdHMgY29udGVudCAodmlhIFJlc2l6ZU9ic2VydmVyKS5cbiAqL1xuY29uc3QgdXNlU2Nyb2xsRWRnZVRyYWNraW5nID0gKHtcbiAgc2Nyb2xsUmVmLFxuICBvblNjcm9sbCxcbiAgc2V0RWRnZXMsXG59OiBTY3JvbGxFZGdlVHJhY2tpbmdQYXJhbXMpOiBTY3JvbGxFZGdlVHJhY2tpbmcgPT4ge1xuICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29udGVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIC8vIEtlZXAgdGhlIGludGVybmFsIHJlZiAodXNlZCBmb3IgbWVhc3VyaW5nKSB3aGlsZSBhbHNvIGZvcndhcmRpbmcgdGhlIG5vZGUgdG9cbiAgLy8gdGhlIGNvbnN1bWVyJ3MgYHNjcm9sbFJlZmAg4oCUIGEgY2FsbGJhY2sgcmVmIGhhbmRsZXMgYm90aCBmb3Jtcy5cbiAgY29uc3Qgc2V0Q29udGFpbmVyUmVmID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgaWYgKHR5cGVvZiBzY3JvbGxSZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBzY3JvbGxSZWYobm9kZSk7XG4gICAgICB9IGVsc2UgaWYgKHNjcm9sbFJlZikge1xuICAgICAgICBjb25zdCBtdXRhYmxlUmVmID1cbiAgICAgICAgICBzY3JvbGxSZWYgYXMgUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICAgICAgICBtdXRhYmxlUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3Njcm9sbFJlZl1cbiAgKTtcblxuICBjb25zdCByZWNhbGN1bGF0ZUVkZ2VzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gZWw7XG4gICAgc2V0RWRnZXMoe1xuICAgICAgYXRUb3A6IHNjcm9sbFRvcCA8PSBFREdFX1RIUkVTSE9MRCxcbiAgICAgIGF0Qm90dG9tOiBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gRURHRV9USFJFU0hPTEQsXG4gICAgfSk7XG4gIH0sIFtzZXRFZGdlc10pO1xuXG4gIGNvbnN0IG9uQ29udGFpbmVyU2Nyb2xsID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgcmVjYWxjdWxhdGVFZGdlcygpO1xuICAgICAgb25TY3JvbGw/LihldmVudCk7XG4gICAgfSxcbiAgICBbcmVjYWxjdWxhdGVFZGdlcywgb25TY3JvbGxdXG4gICk7XG5cbiAgLy8gTWVhc3VyZSBvbiBtb3VudCBvbmx5IOKAlCB0aGUgUmVzaXplT2JzZXJ2ZXIgKyBzY3JvbGwgaGFuZGxlciBiZWxvdyBjb3ZlciB0aGVcbiAgLy8gcmVzdC4gRG8gTk9UIGRyb3AgdGhlIGRlcHM6IGEgZGVwLWxlc3MgZWZmZWN0IHJlLW1lYXN1cmVzIGV2ZXJ5IHJlbmRlciBhbmQgY2FuXG4gIC8vIGluZmluaXRlLWxvb3Agd2hlbiB0aGUgaGVpZ2h0IGlzIGJyaWVmbHkgdW5zdGFibGUgKHNldEVkZ2VzIOKGkiByZWZsb3cg4oaSIHJlcGVhdCkuXG4gIHVzZUxheW91dEVmZmVjdChyZWNhbGN1bGF0ZUVkZ2VzLCBbcmVjYWxjdWxhdGVFZGdlc10pO1xuXG4gIC8vIFJlLW1lYXN1cmUgb24gc2l6ZSBjaGFuZ2VzIHRoYXQgRE9OJ1QgdHJpZ2dlciBhIFJlYWN0IHJlbmRlcjogdGhlIGNvbnRlbnRcbiAgLy8gZ3Jvd2luZy9zaHJpbmtpbmcgKGltYWdlIGxvYWQsIGFjY29yZGlvbiBleHBhbmQsIHRleHQgcmVmbG93KSBhbmQgdGhlXG4gIC8vIHZpZXdwb3J0IGl0c2VsZiByZXNpemluZy4gT2JzZXJ2ZSBib3RoIG5vZGVzLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gcmVjYWxjdWxhdGVFZGdlcygpKTtcbiAgICBpZiAoY29udGFpbmVyUmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgIGlmIChjb250ZW50UmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGVudFJlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9LCBbcmVjYWxjdWxhdGVFZGdlc10pO1xuXG4gIHJldHVybiB7IHNldENvbnRhaW5lclJlZiwgY29udGVudFJlZiwgb25Db250YWluZXJTY3JvbGwgfTtcbn07XG5cbi8qKlxuICogT3ducyB0aGUgc2Nyb2xsLWVkZ2Ugc3RhdGUgdGhlIHJvb3QgcHJvdmlkZXMgdGhyb3VnaCBjb250ZXh0OiBldmVyeXRoaW5nXG4gKiB2aXNpYmxlIGJ5IGRlZmF1bHQgKG5vIHNjcm9sbGluZyBuZWVkZWQg4oaSIG5vIGJvcmRlcnMpLCBgc2V0RWRnZXNgIG1lcmdlc1xuICogcGFydGlhbCB1cGRhdGVzIGFuZCBiYWlscyBvdXQgd2hlbiBub3RoaW5nIGNoYW5nZWQgc28gc2Nyb2xsIGhhbmRsZXJzIGNhbid0XG4gKiByZS1yZW5kZXItbG9vcC5cbiAqL1xuY29uc3QgdXNlU2FuZHdpY2hFZGdlc1N0YXRlID0gKCk6IFNhbmR3aWNoQ29udGV4dFZhbHVlID0+IHtcbiAgY29uc3QgW2VkZ2VzLCBzZXRFZGdlc1N0YXRlXSA9IHVzZVN0YXRlPFNhbmR3aWNoRWRnZXM+KHtcbiAgICBhdFRvcDogdHJ1ZSxcbiAgICBhdEJvdHRvbTogdHJ1ZSxcbiAgfSk7XG5cbiAgY29uc3Qgc2V0RWRnZXMgPSB1c2VDYWxsYmFjaygobmV4dDogUGFydGlhbDxTYW5kd2ljaEVkZ2VzPikgPT4ge1xuICAgIHNldEVkZ2VzU3RhdGUoKHByZXYpID0+IHtcbiAgICAgIGNvbnN0IG1lcmdlZCA9IHsgLi4ucHJldiwgLi4ubmV4dCB9O1xuICAgICAgaWYgKG1lcmdlZC5hdFRvcCA9PT0gcHJldi5hdFRvcCAmJiBtZXJnZWQuYXRCb3R0b20gPT09IHByZXYuYXRCb3R0b20pIHtcbiAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWVyZ2VkO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gKHsgLi4uZWRnZXMsIHNldEVkZ2VzIH0pLCBbZWRnZXMsIHNldEVkZ2VzXSk7XG59O1xuXG5jb25zdCBTdHlsZWRTY3JvbGxSb290ID0gc3R5bGVkLmRpdih7XG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIG92ZXJmbG93WTogXCJhdXRvXCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxuLy8gYG1pbi1oZWlnaHRgIGxldHMgc2hvcnQgY29udGVudCBmaWxsIHRoZSBhcmVhIHdpdGhvdXQgY2xpcHBpbmcgdGFsbGVyXG4vLyBjb250ZW50LiBGbGV4IGNvbHVtbiBzbyBhIGBTYW5kd2ljaC5Gb290ZXJgIGNoaWxkIGNhbiBwaW4gaXRzZWxmIHRvIHRoZVxuLy8gYm90dG9tIHZpYSBgbWFyZ2luLXRvcDogYXV0b2AuXG5jb25zdCBTdHlsZWRTY3JvbGxDb250ZW50ID0gc3R5bGVkLmRpdih7XG4gIG1pbkhlaWdodDogXCIxMDAlXCIsXG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxufSk7XG5cbi8qKlxuICogSW50ZXJuYWwgY29tcG91bmQgY29tcG9uZW50OiBPTkUgc2Nyb2xsYWJsZSByZWdpb24gdGhhdCBob3N0c1xuICogYFNhbmR3aWNoLkhlYWRlcmAgLyBgU2FuZHdpY2guRm9vdGVyYCBpbiB0aGUgZmxvdyBvZiBpdHMgY2hpbGRyZW4g4oCUXG4gKiBgcG9zaXRpb246IHN0aWNreWAgcGlucyB0aGVtIHRvIHRoZSBlZGdlcyDigJQgc28gY29uc3VtZXJzIGF1dGhvclxuICogYDxIZWFkZXIgLz57Ym9keX08Rm9vdGVyIC8+YCBpbiBzb3VyY2Ugb3JkZXIsIHdpdGggbm8gc2xvdCBleHRyYWN0aW9uLlxuICogSGVhZGVyL2Zvb3RlciByZXZlYWwgYSBib3JkZXIgb25seSB3aGlsZSBjb250ZW50IGlzIHNjcm9sbGVkIHVuZGVyIHRoZW07XG4gKiBlZGdlIHN0YXRlIGlzIHNoYXJlZCB0aHJvdWdoIGNvbnRleHQgKHNlZSBgdXNlU2FuZHdpY2hDb250ZXh0LnRzeGApLlxuICovXG5mdW5jdGlvbiBTYW5kd2ljaFJvb3Qoe1xuICBjaGlsZHJlbixcbiAgc2Nyb2xsUmVmLFxuICBvblNjcm9sbCxcbn06IFNhbmR3aWNoUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBlZGdlc1ZhbHVlID0gdXNlU2FuZHdpY2hFZGdlc1N0YXRlKCk7XG4gIGNvbnN0IHsgc2V0Q29udGFpbmVyUmVmLCBjb250ZW50UmVmLCBvbkNvbnRhaW5lclNjcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxFZGdlVHJhY2tpbmcoe1xuICAgICAgc2Nyb2xsUmVmLFxuICAgICAgb25TY3JvbGwsXG4gICAgICBzZXRFZGdlczogZWRnZXNWYWx1ZS5zZXRFZGdlcyxcbiAgICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxTYW5kd2ljaFByb3ZpZGVyIHZhbHVlPXtlZGdlc1ZhbHVlfT5cbiAgICAgIHsvKiB0YWJJbmRleCBtYWtlcyB0aGUgc2Nyb2xsIHJlZ2lvbiBrZXlib2FyZC1hY2Nlc3NpYmxlIChhMTF5OiBzY3JvbGxhYmxlXG4gICAgICAgICAgcmVnaW9ucyBtdXN0IGJlIGZvY3VzYWJsZSBzbyBrZXlib2FyZCB1c2VycyBjYW4gc2Nyb2xsIHRoZW0pLiAqL31cbiAgICAgIDxTdHlsZWRTY3JvbGxSb290XG4gICAgICAgIHJlZj17c2V0Q29udGFpbmVyUmVmfVxuICAgICAgICBvblNjcm9sbD17b25Db250YWluZXJTY3JvbGx9XG4gICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICBkYXRhLWRzLWlkPVwiU2FuZHdpY2hcIlxuICAgICAgPlxuICAgICAgICA8U3R5bGVkU2Nyb2xsQ29udGVudCByZWY9e2NvbnRlbnRSZWZ9PntjaGlsZHJlbn08L1N0eWxlZFNjcm9sbENvbnRlbnQ+XG4gICAgICA8L1N0eWxlZFNjcm9sbFJvb3Q+XG4gICAgPC9TYW5kd2ljaFByb3ZpZGVyPlxuICApO1xufVxuXG4vKipcbiAqIENvbXBvdW5kIGV4cG9ydDogYFNhbmR3aWNoYCB3aXRoIGAuSGVhZGVyYCAvIGAuRm9vdGVyYCBhdHRhY2hlZC5cbiAqIE9iamVjdC5hc3NpZ24ga2VlcHMgdGhlIHN0YXRpYyBzdWItY29tcG9uZW50cyB0eXBlZCBvbiB0aGUgcm9vdFxuICogKGZ1bmN0aW9uLWRlY2xhcmF0aW9uIHN0YXRpY3MgZG9uJ3QgdHlwZS1jaGVjaykuXG4gKi9cbmV4cG9ydCBjb25zdCBTYW5kd2ljaCA9IE9iamVjdC5hc3NpZ24oU2FuZHdpY2hSb290LCB7XG4gIEhlYWRlcjogU2FuZHdpY2hIZWFkZXIsXG4gIEZvb3RlcjogU2FuZHdpY2hGb290ZXIsXG59KTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErSHlCIn0= */"),StyledScrollContent=styled("div",{target:"e1milkm31",label:"StyledScrollContent"})({minHeight:"100%",display:"flex",flexDirection:"column"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2gudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB0eXBlIHsgU2FuZHdpY2hFZGdlcywgU2FuZHdpY2hQcm9wcyB9IGZyb20gXCIuLy10eXBlc1wiO1xuaW1wb3J0IHsgU2FuZHdpY2hQcm92aWRlciB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBTYW5kd2ljaENvbnRleHRWYWx1ZSB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuaW1wb3J0IHsgU2FuZHdpY2hIZWFkZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEhlYWRlclwiO1xuaW1wb3J0IHsgU2FuZHdpY2hGb290ZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEZvb3RlclwiO1xuXG4vLyBweCB0b2xlcmFuY2Ug4oCUIHN1Yi1waXhlbCByb3VuZGluZyBzaG91bGRuJ3QgbGVhdmUgYSBkaXZpZGVyIHN0dWNrIG9uLlxuY29uc3QgRURHRV9USFJFU0hPTEQgPSAxO1xuXG50eXBlIFNjcm9sbEVkZ2VUcmFja2luZ1BhcmFtcyA9IHtcbiAgLyoqIENvbnN1bWVyIHJlZiBmb3J3YXJkZWQgdG8gdGhlIHNjcm9sbCBjb250YWluZXIgKHNjcm9sbCByZXN0b3JhdGlvbiBldGMuKS4gKi9cbiAgc2Nyb2xsUmVmPzogUmVhY3QuUmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgLyoqIENvbnN1bWVyIHNjcm9sbCBoYW5kbGVyOyBmaXJlcyBhZnRlciB0aGUgaW50ZXJuYWwgZWRnZSBtZWFzdXJlbWVudC4gKi9cbiAgb25TY3JvbGw/OiBSZWFjdC5VSUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIC8qKiBFZGdlIHNpbmsg4oCUIHRoZSByb290J3MgYHNldEVkZ2VzYC4gKi9cbiAgc2V0RWRnZXM6IChlZGdlczogUGFydGlhbDxTYW5kd2ljaEVkZ2VzPikgPT4gdm9pZDtcbn07XG5cbnR5cGUgU2Nyb2xsRWRnZVRyYWNraW5nID0ge1xuICAvKiogQ2FsbGJhY2sgcmVmIGZvciB0aGUgc2Nyb2xsIGNvbnRhaW5lciBlbGVtZW50LiAqL1xuICBzZXRDb250YWluZXJSZWY6IChub2RlOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG4gIC8qKiBSZWYgZm9yIHRoZSBjb250ZW50IGVsZW1lbnQgaW5zaWRlIHRoZSBjb250YWluZXIgKGdyb3d0aCB0cmFja2luZykuICovXG4gIGNvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgLyoqIFNjcm9sbCBoYW5kbGVyIGZvciB0aGUgY29udGFpbmVyOyBtZWFzdXJlcywgdGhlbiBjYWxscyBgb25TY3JvbGxgLiAqL1xuICBvbkNvbnRhaW5lclNjcm9sbDogUmVhY3QuVUlFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuLyoqXG4gKiBQdWJsaXNoZXMgdGhlIHNjcm9sbCBjb250YWluZXIncyBlZGdlIHZpc2liaWxpdHkgKGBhdFRvcGAgLyBgYXRCb3R0b21gKSB0b1xuICogYHNldEVkZ2VzYCDigJQgb24gbW91bnQsIG9uIHNjcm9sbCwgYW5kIG9uIHNpemUgY2hhbmdlcyBvZiB0aGUgY29udGFpbmVyIG9yXG4gKiBpdHMgY29udGVudCAodmlhIFJlc2l6ZU9ic2VydmVyKS5cbiAqL1xuY29uc3QgdXNlU2Nyb2xsRWRnZVRyYWNraW5nID0gKHtcbiAgc2Nyb2xsUmVmLFxuICBvblNjcm9sbCxcbiAgc2V0RWRnZXMsXG59OiBTY3JvbGxFZGdlVHJhY2tpbmdQYXJhbXMpOiBTY3JvbGxFZGdlVHJhY2tpbmcgPT4ge1xuICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29udGVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIC8vIEtlZXAgdGhlIGludGVybmFsIHJlZiAodXNlZCBmb3IgbWVhc3VyaW5nKSB3aGlsZSBhbHNvIGZvcndhcmRpbmcgdGhlIG5vZGUgdG9cbiAgLy8gdGhlIGNvbnN1bWVyJ3MgYHNjcm9sbFJlZmAg4oCUIGEgY2FsbGJhY2sgcmVmIGhhbmRsZXMgYm90aCBmb3Jtcy5cbiAgY29uc3Qgc2V0Q29udGFpbmVyUmVmID0gdXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgaWYgKHR5cGVvZiBzY3JvbGxSZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBzY3JvbGxSZWYobm9kZSk7XG4gICAgICB9IGVsc2UgaWYgKHNjcm9sbFJlZikge1xuICAgICAgICBjb25zdCBtdXRhYmxlUmVmID1cbiAgICAgICAgICBzY3JvbGxSZWYgYXMgUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICAgICAgICBtdXRhYmxlUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3Njcm9sbFJlZl1cbiAgKTtcblxuICBjb25zdCByZWNhbGN1bGF0ZUVkZ2VzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gZWw7XG4gICAgc2V0RWRnZXMoe1xuICAgICAgYXRUb3A6IHNjcm9sbFRvcCA8PSBFREdFX1RIUkVTSE9MRCxcbiAgICAgIGF0Qm90dG9tOiBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gRURHRV9USFJFU0hPTEQsXG4gICAgfSk7XG4gIH0sIFtzZXRFZGdlc10pO1xuXG4gIGNvbnN0IG9uQ29udGFpbmVyU2Nyb2xsID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgcmVjYWxjdWxhdGVFZGdlcygpO1xuICAgICAgb25TY3JvbGw/LihldmVudCk7XG4gICAgfSxcbiAgICBbcmVjYWxjdWxhdGVFZGdlcywgb25TY3JvbGxdXG4gICk7XG5cbiAgLy8gTWVhc3VyZSBvbiBtb3VudCBvbmx5IOKAlCB0aGUgUmVzaXplT2JzZXJ2ZXIgKyBzY3JvbGwgaGFuZGxlciBiZWxvdyBjb3ZlciB0aGVcbiAgLy8gcmVzdC4gRG8gTk9UIGRyb3AgdGhlIGRlcHM6IGEgZGVwLWxlc3MgZWZmZWN0IHJlLW1lYXN1cmVzIGV2ZXJ5IHJlbmRlciBhbmQgY2FuXG4gIC8vIGluZmluaXRlLWxvb3Agd2hlbiB0aGUgaGVpZ2h0IGlzIGJyaWVmbHkgdW5zdGFibGUgKHNldEVkZ2VzIOKGkiByZWZsb3cg4oaSIHJlcGVhdCkuXG4gIHVzZUxheW91dEVmZmVjdChyZWNhbGN1bGF0ZUVkZ2VzLCBbcmVjYWxjdWxhdGVFZGdlc10pO1xuXG4gIC8vIFJlLW1lYXN1cmUgb24gc2l6ZSBjaGFuZ2VzIHRoYXQgRE9OJ1QgdHJpZ2dlciBhIFJlYWN0IHJlbmRlcjogdGhlIGNvbnRlbnRcbiAgLy8gZ3Jvd2luZy9zaHJpbmtpbmcgKGltYWdlIGxvYWQsIGFjY29yZGlvbiBleHBhbmQsIHRleHQgcmVmbG93KSBhbmQgdGhlXG4gIC8vIHZpZXdwb3J0IGl0c2VsZiByZXNpemluZy4gT2JzZXJ2ZSBib3RoIG5vZGVzLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gcmVjYWxjdWxhdGVFZGdlcygpKTtcbiAgICBpZiAoY29udGFpbmVyUmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgIGlmIChjb250ZW50UmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGVudFJlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9LCBbcmVjYWxjdWxhdGVFZGdlc10pO1xuXG4gIHJldHVybiB7IHNldENvbnRhaW5lclJlZiwgY29udGVudFJlZiwgb25Db250YWluZXJTY3JvbGwgfTtcbn07XG5cbi8qKlxuICogT3ducyB0aGUgc2Nyb2xsLWVkZ2Ugc3RhdGUgdGhlIHJvb3QgcHJvdmlkZXMgdGhyb3VnaCBjb250ZXh0OiBldmVyeXRoaW5nXG4gKiB2aXNpYmxlIGJ5IGRlZmF1bHQgKG5vIHNjcm9sbGluZyBuZWVkZWQg4oaSIG5vIGJvcmRlcnMpLCBgc2V0RWRnZXNgIG1lcmdlc1xuICogcGFydGlhbCB1cGRhdGVzIGFuZCBiYWlscyBvdXQgd2hlbiBub3RoaW5nIGNoYW5nZWQgc28gc2Nyb2xsIGhhbmRsZXJzIGNhbid0XG4gKiByZS1yZW5kZXItbG9vcC5cbiAqL1xuY29uc3QgdXNlU2FuZHdpY2hFZGdlc1N0YXRlID0gKCk6IFNhbmR3aWNoQ29udGV4dFZhbHVlID0+IHtcbiAgY29uc3QgW2VkZ2VzLCBzZXRFZGdlc1N0YXRlXSA9IHVzZVN0YXRlPFNhbmR3aWNoRWRnZXM+KHtcbiAgICBhdFRvcDogdHJ1ZSxcbiAgICBhdEJvdHRvbTogdHJ1ZSxcbiAgfSk7XG5cbiAgY29uc3Qgc2V0RWRnZXMgPSB1c2VDYWxsYmFjaygobmV4dDogUGFydGlhbDxTYW5kd2ljaEVkZ2VzPikgPT4ge1xuICAgIHNldEVkZ2VzU3RhdGUoKHByZXYpID0+IHtcbiAgICAgIGNvbnN0IG1lcmdlZCA9IHsgLi4ucHJldiwgLi4ubmV4dCB9O1xuICAgICAgaWYgKG1lcmdlZC5hdFRvcCA9PT0gcHJldi5hdFRvcCAmJiBtZXJnZWQuYXRCb3R0b20gPT09IHByZXYuYXRCb3R0b20pIHtcbiAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWVyZ2VkO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gKHsgLi4uZWRnZXMsIHNldEVkZ2VzIH0pLCBbZWRnZXMsIHNldEVkZ2VzXSk7XG59O1xuXG5jb25zdCBTdHlsZWRTY3JvbGxSb290ID0gc3R5bGVkLmRpdih7XG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIG92ZXJmbG93WTogXCJhdXRvXCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxuLy8gYG1pbi1oZWlnaHRgIGxldHMgc2hvcnQgY29udGVudCBmaWxsIHRoZSBhcmVhIHdpdGhvdXQgY2xpcHBpbmcgdGFsbGVyXG4vLyBjb250ZW50LiBGbGV4IGNvbHVtbiBzbyBhIGBTYW5kd2ljaC5Gb290ZXJgIGNoaWxkIGNhbiBwaW4gaXRzZWxmIHRvIHRoZVxuLy8gYm90dG9tIHZpYSBgbWFyZ2luLXRvcDogYXV0b2AuXG5jb25zdCBTdHlsZWRTY3JvbGxDb250ZW50ID0gc3R5bGVkLmRpdih7XG4gIG1pbkhlaWdodDogXCIxMDAlXCIsXG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxufSk7XG5cbi8qKlxuICogSW50ZXJuYWwgY29tcG91bmQgY29tcG9uZW50OiBPTkUgc2Nyb2xsYWJsZSByZWdpb24gdGhhdCBob3N0c1xuICogYFNhbmR3aWNoLkhlYWRlcmAgLyBgU2FuZHdpY2guRm9vdGVyYCBpbiB0aGUgZmxvdyBvZiBpdHMgY2hpbGRyZW4g4oCUXG4gKiBgcG9zaXRpb246IHN0aWNreWAgcGlucyB0aGVtIHRvIHRoZSBlZGdlcyDigJQgc28gY29uc3VtZXJzIGF1dGhvclxuICogYDxIZWFkZXIgLz57Ym9keX08Rm9vdGVyIC8+YCBpbiBzb3VyY2Ugb3JkZXIsIHdpdGggbm8gc2xvdCBleHRyYWN0aW9uLlxuICogSGVhZGVyL2Zvb3RlciByZXZlYWwgYSBib3JkZXIgb25seSB3aGlsZSBjb250ZW50IGlzIHNjcm9sbGVkIHVuZGVyIHRoZW07XG4gKiBlZGdlIHN0YXRlIGlzIHNoYXJlZCB0aHJvdWdoIGNvbnRleHQgKHNlZSBgdXNlU2FuZHdpY2hDb250ZXh0LnRzeGApLlxuICovXG5mdW5jdGlvbiBTYW5kd2ljaFJvb3Qoe1xuICBjaGlsZHJlbixcbiAgc2Nyb2xsUmVmLFxuICBvblNjcm9sbCxcbn06IFNhbmR3aWNoUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBlZGdlc1ZhbHVlID0gdXNlU2FuZHdpY2hFZGdlc1N0YXRlKCk7XG4gIGNvbnN0IHsgc2V0Q29udGFpbmVyUmVmLCBjb250ZW50UmVmLCBvbkNvbnRhaW5lclNjcm9sbCB9ID1cbiAgICB1c2VTY3JvbGxFZGdlVHJhY2tpbmcoe1xuICAgICAgc2Nyb2xsUmVmLFxuICAgICAgb25TY3JvbGwsXG4gICAgICBzZXRFZGdlczogZWRnZXNWYWx1ZS5zZXRFZGdlcyxcbiAgICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxTYW5kd2ljaFByb3ZpZGVyIHZhbHVlPXtlZGdlc1ZhbHVlfT5cbiAgICAgIHsvKiB0YWJJbmRleCBtYWtlcyB0aGUgc2Nyb2xsIHJlZ2lvbiBrZXlib2FyZC1hY2Nlc3NpYmxlIChhMTF5OiBzY3JvbGxhYmxlXG4gICAgICAgICAgcmVnaW9ucyBtdXN0IGJlIGZvY3VzYWJsZSBzbyBrZXlib2FyZCB1c2VycyBjYW4gc2Nyb2xsIHRoZW0pLiAqL31cbiAgICAgIDxTdHlsZWRTY3JvbGxSb290XG4gICAgICAgIHJlZj17c2V0Q29udGFpbmVyUmVmfVxuICAgICAgICBvblNjcm9sbD17b25Db250YWluZXJTY3JvbGx9XG4gICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICBkYXRhLWRzLWlkPVwiU2FuZHdpY2hcIlxuICAgICAgPlxuICAgICAgICA8U3R5bGVkU2Nyb2xsQ29udGVudCByZWY9e2NvbnRlbnRSZWZ9PntjaGlsZHJlbn08L1N0eWxlZFNjcm9sbENvbnRlbnQ+XG4gICAgICA8L1N0eWxlZFNjcm9sbFJvb3Q+XG4gICAgPC9TYW5kd2ljaFByb3ZpZGVyPlxuICApO1xufVxuXG4vKipcbiAqIENvbXBvdW5kIGV4cG9ydDogYFNhbmR3aWNoYCB3aXRoIGAuSGVhZGVyYCAvIGAuRm9vdGVyYCBhdHRhY2hlZC5cbiAqIE9iamVjdC5hc3NpZ24ga2VlcHMgdGhlIHN0YXRpYyBzdWItY29tcG9uZW50cyB0eXBlZCBvbiB0aGUgcm9vdFxuICogKGZ1bmN0aW9uLWRlY2xhcmF0aW9uIHN0YXRpY3MgZG9uJ3QgdHlwZS1jaGVjaykuXG4gKi9cbmV4cG9ydCBjb25zdCBTYW5kd2ljaCA9IE9iamVjdC5hc3NpZ24oU2FuZHdpY2hSb290LCB7XG4gIEhlYWRlcjogU2FuZHdpY2hIZWFkZXIsXG4gIEZvb3RlcjogU2FuZHdpY2hGb290ZXIsXG59KTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3STRCIn0= */");export const Sandwich=Object.assign(function({children,scrollRef,onScroll}){let edgesValue=useSandwichEdgesState(),{setContainerRef,contentRef,onContainerScroll}=useScrollEdgeTracking({scrollRef,onScroll,setEdges:edgesValue.setEdges});return React.createElement(SandwichProvider,{value:edgesValue},React.createElement(StyledScrollRoot,{ref:setContainerRef,onScroll:onContainerScroll,tabIndex:0,"data-ds-id":"Sandwich"},React.createElement(StyledScrollContent,{ref:contentRef},children)))},{Header:SandwichHeader,Footer:SandwichFooter});
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import type { SandwichFooterProps } from "./-types";
3
- export declare function SandwichFooter({ children, showSeparator, }: SandwichFooterProps): React.ReactElement;
3
+ export declare function SandwichFooter({ children, showSeparator, "data-e2e-test-id": dataE2eTestId, }: SandwichFooterProps): React.ReactElement;
@@ -1 +1 @@
1
- import React from"react";import styled from"@emotion/styled";import{useSandwichContext}from"./useSandwichContext";let StyledFooter=styled("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"esecync0",label:"StyledFooter"})(({theme,showBorder})=>({position:"sticky",bottom:0,flex:"0 0 auto",zIndex:1,borderTopWidth:1,borderTopStyle:"solid",borderTopColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hGb290ZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoRm9vdGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRGb290ZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICBib3R0b206IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJUb3BXaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJUb3BTdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJUb3BDb2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEZvb3Rlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG59OiBTYW5kd2ljaEZvb3RlclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgeyBhdEJvdHRvbSB9ID0gdXNlU2FuZHdpY2hDb250ZXh0KCk7XG4gIC8vIERpdmlkZXIgd2hpbGUgY29udGVudCByZW1haW5zIGJlbG93IHRoZSBmb2xkIChvciBwZXIgYHNob3dTZXBhcmF0b3JgKS5cbiAgY29uc3Qgc2hvd0JvcmRlciA9XG4gICAgc2hvd1NlcGFyYXRvciA9PT0gXCJhbHdheXNcIiB8fCAoc2hvd1NlcGFyYXRvciA9PT0gXCJhdXRvXCIgJiYgIWF0Qm90dG9tKTtcbiAgcmV0dXJuIDxTdHlsZWRGb290ZXIgc2hvd0JvcmRlcj17c2hvd0JvcmRlcn0+e2NoaWxkcmVufTwvU3R5bGVkRm9vdGVyPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPcUIifQ== */");export function SandwichFooter({children,showSeparator="auto"}){let{atBottom}=useSandwichContext();return React.createElement(StyledFooter,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atBottom},children)}
1
+ import React from"react";import styled from"@emotion/styled";import{useSandwichContext}from"./useSandwichContext";let StyledFooter=styled("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"e6qp72i0",label:"StyledFooter"})(({theme,showBorder})=>({position:"sticky",bottom:0,flex:"0 0 auto",marginTop:"auto",zIndex:1,borderTopWidth:1,borderTopStyle:"solid",borderTopColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hGb290ZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoRm9vdGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRGb290ZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICBib3R0b206IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgLy8gUGlucyB0aGUgZm9vdGVyIHRvIHRoZSBjb250YWluZXIgYm90dG9tIHdoZW4gY29udGVudCBpcyBzaG9ydC5cbiAgbWFyZ2luVG9wOiBcImF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJUb3BXaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJUb3BTdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJUb3BDb2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEZvb3Rlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxufTogU2FuZHdpY2hGb290ZXJQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHsgYXRCb3R0b20gfSA9IHVzZVNhbmR3aWNoQ29udGV4dCgpO1xuICAvLyBEaXZpZGVyIHdoaWxlIGNvbnRlbnQgcmVtYWlucyBiZWxvdyB0aGUgZm9sZCAob3IgcGVyIGBzaG93U2VwYXJhdG9yYCkuXG4gIGNvbnN0IHNob3dCb3JkZXIgPVxuICAgIHNob3dTZXBhcmF0b3IgPT09IFwiYWx3YXlzXCIgfHwgKHNob3dTZXBhcmF0b3IgPT09IFwiYXV0b1wiICYmICFhdEJvdHRvbSk7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEZvb3RlciBzaG93Qm9yZGVyPXtzaG93Qm9yZGVyfSBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1N0eWxlZEZvb3Rlcj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPcUIifQ== */");export function SandwichFooter({children,showSeparator="auto","data-e2e-test-id":dataE2eTestId}){let{atBottom}=useSandwichContext();return React.createElement(StyledFooter,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atBottom,"data-e2e-test-id":dataE2eTestId},children)}
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import type { SandwichHeaderProps } from "./-types";
3
- export declare function SandwichHeader({ children, showSeparator, }: SandwichHeaderProps): React.ReactElement;
3
+ export declare function SandwichHeader({ children, showSeparator, "data-e2e-test-id": dataE2eTestId, }: SandwichHeaderProps): React.ReactElement;
@@ -1 +1 @@
1
- import React from"react";import styled from"@emotion/styled";import{useSandwichContext}from"./useSandwichContext";let StyledHeader=styled("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"erdgd190",label:"StyledHeader"})(({theme,showBorder})=>({position:"sticky",top:0,flex:"0 0 auto",zIndex:1,borderBottomWidth:1,borderBottomStyle:"solid",borderBottomColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hIZWFkZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEhlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoSGVhZGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRIZWFkZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICB0b3A6IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJCb3R0b21XaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJCb3R0b21TdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJCb3R0b21Db2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEhlYWRlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG59OiBTYW5kd2ljaEhlYWRlclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgeyBhdFRvcCB9ID0gdXNlU2FuZHdpY2hDb250ZXh0KCk7XG4gIC8vIERpdmlkZXIgb25jZSB0aGUgc3RhcnQgb2YgdGhlIGNvbnRlbnQgaXMgc2Nyb2xsZWQgYXdheSAob3IgcGVyIGBzaG93U2VwYXJhdG9yYCkuXG4gIGNvbnN0IHNob3dCb3JkZXIgPVxuICAgIHNob3dTZXBhcmF0b3IgPT09IFwiYWx3YXlzXCIgfHwgKHNob3dTZXBhcmF0b3IgPT09IFwiYXV0b1wiICYmICFhdFRvcCk7XG4gIHJldHVybiA8U3R5bGVkSGVhZGVyIHNob3dCb3JkZXI9e3Nob3dCb3JkZXJ9PntjaGlsZHJlbn08L1N0eWxlZEhlYWRlcj47XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT3FCIn0= */");export function SandwichHeader({children,showSeparator="auto"}){let{atTop}=useSandwichContext();return React.createElement(StyledHeader,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atTop},children)}
1
+ import React from"react";import styled from"@emotion/styled";import{useSandwichContext}from"./useSandwichContext";let StyledHeader=styled("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"e1k5spef0",label:"StyledHeader"})(({theme,showBorder})=>({position:"sticky",top:0,flex:"0 0 auto",zIndex:1,borderBottomWidth:1,borderBottomStyle:"solid",borderBottomColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hIZWFkZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEhlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoSGVhZGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRIZWFkZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICB0b3A6IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJCb3R0b21XaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJCb3R0b21TdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJCb3R0b21Db2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEhlYWRlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxufTogU2FuZHdpY2hIZWFkZXJQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHsgYXRUb3AgfSA9IHVzZVNhbmR3aWNoQ29udGV4dCgpO1xuICAvLyBEaXZpZGVyIG9uY2UgdGhlIHN0YXJ0IG9mIHRoZSBjb250ZW50IGlzIHNjcm9sbGVkIGF3YXkgKG9yIHBlciBgc2hvd1NlcGFyYXRvcmApLlxuICBjb25zdCBzaG93Qm9yZGVyID1cbiAgICBzaG93U2VwYXJhdG9yID09PSBcImFsd2F5c1wiIHx8IChzaG93U2VwYXJhdG9yID09PSBcImF1dG9cIiAmJiAhYXRUb3ApO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWRIZWFkZXIgc2hvd0JvcmRlcj17c2hvd0JvcmRlcn0gZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9TdHlsZWRIZWFkZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT3FCIn0= */");export function SandwichHeader({children,showSeparator="auto","data-e2e-test-id":dataE2eTestId}){let{atTop}=useSandwichContext();return React.createElement(StyledHeader,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atTop,"data-e2e-test-id":dataE2eTestId},children)}
@@ -1,8 +1,8 @@
1
1
  import type { SandwichEdges } from "./-types";
2
2
  /**
3
- * Context decouples the parts: `Body` reports edge visibility via `setEdges`,
4
- * `Header` / `Footer` read `atTop` / `atBottom`. The link is the context, not
5
- * child order, so the parts may be authored in any order.
3
+ * Context decouples the parts: the scrollable root reports edge visibility via
4
+ * `setEdges`, `Header` / `Footer` read `atTop` / `atBottom`. The link is the
5
+ * context, not child order, so the parts may be authored in any order.
6
6
  */
7
7
  export type SandwichContextValue = SandwichEdges & {
8
8
  setEdges: (edges: Partial<SandwichEdges>) => void;
@@ -1 +1 @@
1
- import{createContext,useContext}from"react";let SandwichContext=createContext(null);export const SandwichProvider=SandwichContext.Provider;export function useSandwichContext(){let ctx=useContext(SandwichContext);if(!ctx)throw Error("Sandwich.Header / Sandwich.Footer / Sandwich.Body must be used within <Sandwich>.");return ctx}
1
+ import{createContext,useContext}from"react";let SandwichContext=createContext(null);export const SandwichProvider=SandwichContext.Provider;export function useSandwichContext(){let ctx=useContext(SandwichContext);if(!ctx)throw Error("Sandwich.Header / Sandwich.Footer must be used within <Sandwich>.");return ctx}
@@ -1,6 +1,6 @@
1
1
  import type React from "react";
2
2
  import type { PanelKey, SidePanelKey, SlotKey } from "./-constants";
3
- import type { IconProps } from "../Icon/Icon";
3
+ import type { PanelHeaderTitle } from "../Internal/PanelHeader/PanelHeader";
4
4
  /**
5
5
  * Surface = compound components (`Layout.LeftPanel` / `Layout.RightPanel` /
6
6
  * `Layout.Content` / `Layout.Split`) + one control hook
@@ -138,7 +138,11 @@ export type LayoutValue = {
138
138
  splitview: PanelHandle;
139
139
  };
140
140
  export type SidePanelProps = {
141
+ /** Panel content in source order. Header/footer components
142
+ * (e.g. `<Layout.LeftPanelHeader />`) stick to the edges; the rest scrolls. */
141
143
  children: React.ReactNode;
144
+ /** Accessible name; when set, the panel renders as a `region` landmark. */
145
+ "aria-label"?: string;
142
146
  variant?: Variant;
143
147
  collapsible?: boolean;
144
148
  /** Number = pixels, unitless string = percent (e.g. `"30%"`). */
@@ -155,7 +159,11 @@ export type ContentProps = {
155
159
  maxSize?: Size;
156
160
  };
157
161
  export type SplitProps = {
162
+ /** Panel content in source order. `<Layout.SplitHeader />` /
163
+ * `<Layout.SplitFooter />` children stick to the edges; the rest scrolls. */
158
164
  children: React.ReactNode;
165
+ /** Accessible name; when set, the panel renders as a `region` landmark. */
166
+ "aria-label"?: string;
159
167
  /** Number = pixels, unitless string = percent (e.g. `"30%"`). */
160
168
  defaultSize?: Size;
161
169
  minSize?: Size;
@@ -178,44 +186,68 @@ export type LayoutProps = {
178
186
  storage?: LayoutStorage;
179
187
  };
180
188
  /**
181
- * Title shown in the panel header. `label` always provides the panel's
182
- * accessible name (even when the title block is visually hidden).
189
+ * Shared contract of the per-panel header components
190
+ * (`Layout.LeftPanelHeader` / `Layout.RightPanelHeader` / `Layout.SplitHeader`).
191
+ * Place among the panel's children; it sticks to the top.
183
192
  */
184
- export type RightPanelContainerTitle = {
185
- /** Visible label and the panel's accessible name. */
186
- label: string;
187
- /** Optional leading icon. Decorative — the visible title label names it. */
188
- icon?: Omit<IconProps, "size" | "aria-label" | "aria-labelledby" | "role">;
189
- /** Show the visible label+icon block. Default `true`. When `false` the block
190
- * is hidden but `label` is still exposed as the accessible name. */
191
- isVisible?: boolean;
192
- };
193
- export type RightPanelContainerSlotProps = {
194
- /** Header slots around the title. */
195
- header?: {
196
- /** Rendered at the header start, before the title. */
197
- leftSlot?: React.ReactNode;
198
- /** Rendered at the header end, after the title and before the close button. */
199
- rightSlot?: React.ReactNode;
200
- };
201
- /** Sticky footer content. Footer is omitted entirely when not provided. */
202
- footer?: React.ReactNode;
203
- /** Props for the always-rendered close button. */
193
+ export type PanelSlotHeaderProps = {
194
+ /** Rendered at the header start. */
195
+ leftSlot?: React.ReactNode;
196
+ /** Rendered at the header end. */
197
+ rightSlot?: React.ReactNode;
198
+ "data-e2e-test-id"?: string;
199
+ };
200
+ /**
201
+ * Shared contract of the per-panel footer components
202
+ * (`Layout.LeftPanelFooter` / `Layout.RightPanelFooter` / `Layout.SplitFooter`).
203
+ * Place among the panel's children; it sticks to the bottom.
204
+ */
205
+ export type PanelSlotFooterProps = {
206
+ children: React.ReactNode;
207
+ "data-e2e-test-id"?: string;
208
+ };
209
+ export type LeftPanelHeaderProps = PanelSlotHeaderProps;
210
+ export type LeftPanelFooterProps = PanelSlotFooterProps;
211
+ /**
212
+ * Title shown in the right panel header, after `leftSlot`. Visual only — the
213
+ * panel's accessible name comes from `Layout.RightPanel`'s `aria-label`.
214
+ */
215
+ export type RightPanelHeaderTitle = PanelHeaderTitle;
216
+ export type RightPanelHeaderSlotProps = {
217
+ /** Props for the built-in close button, rendered at the header end after
218
+ * `rightSlot`. Clicking it hides the panel. */
204
219
  closeButton: {
205
220
  "aria-label": string;
206
221
  };
207
222
  };
208
- export type RightPanelContainerProps = {
209
- title: RightPanelContainerTitle;
210
- /** Scrollable body content. */
223
+ export type RightPanelHeaderProps = PanelSlotHeaderProps & {
224
+ /** Title block (icon + heading), rendered after `leftSlot`. */
225
+ title?: RightPanelHeaderTitle;
226
+ /** Props forwarded to internal sub-components. */
227
+ slotProps: RightPanelHeaderSlotProps;
228
+ };
229
+ export type RightPanelFooterProps = PanelSlotFooterProps;
230
+ export type SplitHeaderProps = PanelSlotHeaderProps;
231
+ export type SplitFooterProps = PanelSlotFooterProps;
232
+ export type PanelContainerProps = {
233
+ /** Content in source order. Per-panel header/footer components stick to the
234
+ * edges; everything else scrolls. */
211
235
  children: React.ReactNode;
212
- /** Called when the (always rendered) close button is clicked. */
213
- onClose?: () => void;
214
- slotProps: RightPanelContainerSlotProps;
236
+ /** Accessible name; when set, the container renders as a `region` landmark. */
237
+ "aria-label"?: string;
238
+ /** Forwarded to the scroll container element (scroll restoration etc.). */
239
+ scrollContainerRef?: React.Ref<HTMLDivElement>;
240
+ /** Forwarded to the scroll container's scroll handler. */
241
+ onScroll?: React.UIEventHandler<HTMLDivElement>;
242
+ /** Draws a separator border on the panel's left edge. */
243
+ showBorderLeft?: boolean;
244
+ "data-e2e-test-id"?: string;
245
+ };
246
+ export type RightPanelProps = SidePanelProps & {
247
+ /** Accessible name for the panel's `region` landmark. */
248
+ "aria-label": string;
215
249
  /** Forwarded to the scrollable body element (scroll restoration etc.). */
216
250
  scrollContainerRef?: React.Ref<HTMLDivElement>;
217
251
  /** Forwarded to the scrollable body's scroll handler. */
218
252
  onScroll?: React.UIEventHandler<HTMLDivElement>;
219
- "data-e2e-test-id"?: string;
220
253
  };
221
- export type RightPanelProps = SidePanelProps & Omit<RightPanelContainerProps, "data-e2e-test-id">;
@@ -1,5 +1,5 @@
1
1
  import type React from "react";
2
- import type { ContentProps } from "./-types";
2
+ import type { ContentProps } from "../-types";
3
3
  /**
4
4
  * Primary content panel. Always shown (never collapsible) and flexes to fill the
5
5
  * space the side panels leave. Declares the `content` slot and portals into it.
@@ -0,0 +1 @@
1
+ import{Slot}from"../-constants";import{useDeclarePanel,useLayoutPortal}from"../registry";export const Content=({children,minSize,maxSize})=>(useDeclarePanel(Slot.content,{minSize,maxSize,collapsible:!1}),useLayoutPortal(Slot.content,children));
@@ -1,17 +1,29 @@
1
1
  import React from "react";
2
2
  import { LayoutProvider } from "./LayoutProvider";
3
- import { Content } from "./Content";
4
- import { RightPanel } from "./RightPanel";
5
- import { LeftPanel } from "./LeftPanel";
6
- import { Split } from "./Split";
3
+ import { Content } from "./Content/Content";
4
+ import { RightPanel } from "./RightPanel/RightPanel";
5
+ import { RightPanelHeader } from "./RightPanel/RightPanelHeader";
6
+ import { RightPanelFooter } from "./RightPanel/RightPanelFooter";
7
+ import { LeftPanel } from "./LeftPanel/LeftPanel";
8
+ import { LeftPanelHeader } from "./LeftPanel/LeftPanelHeader";
9
+ import { LeftPanelFooter } from "./LeftPanel/LeftPanelFooter";
10
+ import { Split } from "./Split/Split";
11
+ import { SplitHeader } from "./Split/SplitHeader";
12
+ import { SplitFooter } from "./Split/SplitFooter";
7
13
  import type { LayoutProps } from "./-types";
8
14
  declare function LayoutBase({ children, persistenceKey, storage, }: LayoutProps): React.ReactElement;
9
15
  type LayoutComponent = typeof LayoutBase & {
10
16
  Provider: typeof LayoutProvider;
11
17
  LeftPanel: typeof LeftPanel;
18
+ LeftPanelHeader: typeof LeftPanelHeader;
19
+ LeftPanelFooter: typeof LeftPanelFooter;
12
20
  RightPanel: typeof RightPanel;
21
+ RightPanelHeader: typeof RightPanelHeader;
22
+ RightPanelFooter: typeof RightPanelFooter;
13
23
  Content: typeof Content;
14
24
  Split: typeof Split;
25
+ SplitHeader: typeof SplitHeader;
26
+ SplitFooter: typeof SplitFooter;
15
27
  };
16
28
  export declare const Layout: LayoutComponent;
17
29
  export {};
@@ -1 +1 @@
1
- import React,{useEffect,useMemo,useState}from"react";import styled from"@emotion/styled";import{Panel}from"../Internal/Panel/Panel";import{PANEL_ORDER,PANEL_WIDTH_VAR,Slot}from"./-constants";import{useLayoutPersistence}from"./context";import{LayoutProvider}from"./LayoutProvider";import{Content}from"./Content";import{RightPanel}from"./RightPanel";import{LeftPanel}from"./LeftPanel";import{Split}from"./Split";import{LayoutPortalContext,PanelRegistryContext}from"./registry";import{usePortalContainerRefs}from"./usePortalContainerRefs";import{useLayoutVar}from"./LayoutCssVars";import{useLayout}from"./useLayout";let useGlobalCssVariables=nodes=>{let contentWidthCssVar=useLayoutVar(PANEL_WIDTH_VAR.content),rightPanelWidthCssVar=useLayoutVar(PANEL_WIDTH_VAR.rightPanel);useEffect(()=>{let targets=[[Slot.content,contentWidthCssVar],[Slot.rightPanel,rightPanelWidthCssVar]],observers=[];return targets.forEach(([slot,handle])=>{let node=nodes[slot]??null;if(!node)return void handle.set("0px");let publishNodeWidth=()=>handle.set(`${node.getBoundingClientRect().width}px`);if(publishNodeWidth(),"undefined"==typeof ResizeObserver)return;let observer=new ResizeObserver(publishNodeWidth);observer.observe(node),observers.push(observer)}),()=>observers.forEach(observer=>observer.disconnect())},[contentWidthCssVar,rightPanelWidthCssVar,nodes])},StyledLayout=styled("div",{target:"e1dnkj9b0",label:"StyledLayout"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFBhbmVsIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgdHlwZSB7IFBhbmVsSXRlbSB9IGZyb20gXCIuLi9JbnRlcm5hbC9QYW5lbC9QYW5lbFwiO1xuaW1wb3J0IHsgUEFORUxfT1JERVIsIFBBTkVMX1dJRFRIX1ZBUiwgU2xvdCB9IGZyb20gXCIuLy1jb25zdGFudHNcIjtcbmltcG9ydCB7IHVzZUxheW91dFBlcnNpc3RlbmNlIH0gZnJvbSBcIi4vY29udGV4dFwiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnRcIjtcbmltcG9ydCB7IFJpZ2h0UGFuZWwgfSBmcm9tIFwiLi9SaWdodFBhbmVsXCI7XG5pbXBvcnQgeyBMZWZ0UGFuZWwgfSBmcm9tIFwiLi9MZWZ0UGFuZWxcIjtcbmltcG9ydCB7IFNwbGl0IH0gZnJvbSBcIi4vU3BsaXRcIjtcbmltcG9ydCB7XG4gIExheW91dFBvcnRhbENvbnRleHQsXG4gIFBhbmVsUmVnaXN0cnlDb250ZXh0LFxuICB0eXBlIEhvc3ROb2RlcyxcbiAgdHlwZSBQYW5lbFJlZyxcbiAgdHlwZSBQYW5lbFJlZ2lzdHJ5LFxufSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlUG9ydGFsQ29udGFpbmVyUmVmcyB9IGZyb20gXCIuL3VzZVBvcnRhbENvbnRhaW5lclJlZnNcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIFNpemUsIFNsb3RLZXkgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLyoqXG4gKiBQdWJsaXNoZXMgZWFjaCBwYW5lbCdzIGxpdmUgcGl4ZWwgd2lkdGggYXMgYSBsYXlvdXQgQ1NTIHZhciAoZS5nLlxuICogYC0tZHMtbGF5b3V0LXJpZ2h0UGFuZWwtd2lkdGhgKSwgdHJhY2tpbmcgZHJhZy0gYW5kIHdpbmRvdy1yZXNpemVzLiBBIGhpZGRlblxuICogcGFydCAobm8gaG9zdCBub2RlKSByZWFkcyBgMHB4YCwgc28gdGhlIHZhciBpcyBhbHdheXMgZGVmaW5lZC4gT25lXG4gKiBgdXNlTGF5b3V0VmFyYCBwZXIgc2xvdCBpbiBgUEFORUxfV0lEVEhfVkFSYC5cbiAqL1xuY29uc3QgdXNlR2xvYmFsQ3NzVmFyaWFibGVzID0gKG5vZGVzOiBIb3N0Tm9kZXMpOiB2b2lkID0+IHtcbiAgY29uc3QgY29udGVudFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5jb250ZW50KTtcbiAgY29uc3QgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5yaWdodFBhbmVsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldHM6IFtTbG90S2V5LCBMYXlvdXRWYXJIYW5kbGVdW10gPSBbXG4gICAgICBbU2xvdC5jb250ZW50LCBjb250ZW50V2lkdGhDc3NWYXJdLFxuICAgICAgW1Nsb3QucmlnaHRQYW5lbCwgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyXSxcbiAgICBdO1xuICAgIGNvbnN0IG9ic2VydmVyczogUmVzaXplT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gICAgdGFyZ2V0cy5mb3JFYWNoKChbc2xvdCwgaGFuZGxlXSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW3Nsb3RdID8/IG51bGw7XG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgaGFuZGxlLnNldChcIjBweFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcHVibGlzaE5vZGVXaWR0aCA9ICgpOiB2b2lkID0+XG4gICAgICAgIGhhbmRsZS5zZXQoYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGApO1xuICAgICAgcHVibGlzaE5vZGVXaWR0aCgpO1xuICAgICAgLy8ganNkb20gKGFuZCBvbGQgYnJvd3NlcnMpIGxhY2sgUmVzaXplT2JzZXJ2ZXIg4oCUIHNraXAgbGl2ZSB0cmFja2luZyB0aGVyZS5cbiAgICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHB1Ymxpc2hOb2RlV2lkdGgpO1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShub2RlKTtcbiAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XG4gIH0sIFtjb250ZW50V2lkdGhDc3NWYXIsIHJpZ2h0UGFuZWxXaWR0aENzc1Zhciwgbm9kZXNdKTtcbn07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBMYXlvdXQgLSByZWdpc3RyeSArIGhvc3RzOyBtYXJrZXJzIGRlY2xhcmUvcG9ydGFsOyB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5jb25zdCBTdHlsZWRMYXlvdXQgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIFNvbG8tbW9kZSBob3N0OiBhIGxvbmUgcGFuZWwgKG5vIHJlc2l6YWJsZSBzaWJsaW5nKSBpcyBob3N0ZWQgaGVyZSBpbnN0ZWFkIG9mXG4vLyBpbnNpZGUgcmVhY3QtcmVzaXphYmxlLXBhbmVscy4gTWF0Y2hlcyB0aGUgcGVyLXBhbmVsIGhvc3QgdGhlIEdyb3VwIHJlbmRlcnNcbi8vIChgcmVsYXRpdmVgICsgZnVsbC1ibGVlZCkgc28gY29udGVudCByZWZsb3dzL3Njcm9sbHMgaWRlbnRpY2FsbHkgZWl0aGVyIHdheS5cbmNvbnN0IFN0eWxlZFNvbG9Ib3N0ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5mdW5jdGlvbiBMYXlvdXRCYXNlKHtcbiAgY2hpbGRyZW4sXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxufTogTGF5b3V0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbZGVjbGFyZWQsIHNldERlY2xhcmVkXSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsUmVnPj4+KFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IHsgc3RhdGU6IGxheW91dFN0YXRlLCAuLi5wYW5lbENhbGxiYWNrcyB9ID0gdXNlTGF5b3V0KCk7XG4gIGNvbnN0IHBlcnNpc3RlbmNlID0gdXNlTGF5b3V0UGVyc2lzdGVuY2UoKTtcbiAgY29uc3QgcmVzb2x2ZWRLZXkgPSBwZXJzaXN0ZW5jZUtleSA/PyBwZXJzaXN0ZW5jZS5wZXJzaXN0ZW5jZUtleTtcbiAgY29uc3QgcmVzb2x2ZWRTdG9yYWdlID0gc3RvcmFnZSA/PyBwZXJzaXN0ZW5jZS5zdG9yYWdlO1xuXG4gIGNvbnN0IGlzU2hvd24gPSAoc2xvdDogU2xvdEtleSk6IGJvb2xlYW4gPT4gbGF5b3V0U3RhdGVbc2xvdF0udmlzaWJsZTtcblxuICBjb25zdCByZWdpc3RyeSA9IHVzZU1lbW88UGFuZWxSZWdpc3RyeT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIHJlZ2lzdGVyOiAoc2xvdCwgcmVnKSA9PlxuICAgICAgICBzZXREZWNsYXJlZCgocHJldikgPT4gKHsgLi4ucHJldiwgW3Nsb3RdOiByZWcgfSkpLFxuICAgICAgdW5yZWdpc3RlcjogKHNsb3QpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiB7XG4gICAgICAgICAgaWYgKCEoc2xvdCBpbiBwcmV2KSkgcmV0dXJuIHByZXY7XG4gICAgICAgICAgY29uc3QgbmV4dCA9IHsgLi4ucHJldiB9O1xuICAgICAgICAgIGRlbGV0ZSBuZXh0W3Nsb3RdO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9KSxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IFtub2RlcywgaG9zdFJlZnNdID0gdXNlUG9ydGFsQ29udGFpbmVyUmVmcyhQQU5FTF9PUkRFUik7XG5cbiAgdXNlR2xvYmFsQ3NzVmFyaWFibGVzKG5vZGVzKTtcblxuICAvLyBQYW5lbHMgdGhhdCBleGlzdCBpbiB0aGUgbGF5b3V0LCByZWdhcmRsZXNzIG9mIHZpc2liaWxpdHkuIERyaXZlcyB0aGVcbiAgLy8gc29sby12cy1yZXNpemFibGUgZGVjaXNpb24gYmVsb3cgLSBrZXllZCBvbiBERUNMQVJFRCAobm90IHNob3duKSBzbyB0aGF0XG4gIC8vIHNob3dpbmcvaGlkaW5nIGEgcGFuZWwgbmV2ZXIgZmxpcHMgdGhlIG1vZGUuXG4gIGNvbnN0IGRlY2xhcmVkU2xvdHMgPSBQQU5FTF9PUkRFUi5maWx0ZXIoKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdKTtcblxuICAvLyBTb2xvIG1vZGU6IGEgc2luZ2xlIHBhbmVsIGlzIGRlY2xhcmVkIChlLmcuIGp1c3QgYENvbnRlbnRgLCB3aXRoIG5vXG4gIC8vIFJpZ2h0UGFuZWwvTGVmdFBhbmVsL1NwbGl0IGluIHRoZSB0cmVlKSAtIG5vdGhpbmcgdG8gcmVzaXplIGFnYWluc3QsIHNvIGhvc3RcbiAgLy8gaXQgaW4gYSBwbGFpbiBkaXYgYW5kIHNraXAgcmVhY3QtcmVzaXphYmxlLXBhbmVscyBlbnRpcmVseS4gQmVjYXVzZSB0aGVcbiAgLy8gY2hlY2sgaXMgb24gREVDTEFSRUQgcGFuZWxzLCB0b2dnbGluZyBhICpkZWNsYXJlZCogcGFuZWwncyB2aXNpYmlsaXR5IGtlZXBzXG4gIC8vIHRoZSBtb2RlIHN0YWJsZSwgc28gYENvbnRlbnRgIGlzIG5ldmVyIHJlbW91bnRlZCBieSBhIHNob3cvaGlkZS4gVGhlIG1vZGVcbiAgLy8gb25seSBmbGlwcyB3aGVuIGEgcGFuZWwgbWFya2VyIGlzIGFkZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlIChhXG4gIC8vIHN0cnVjdHVyYWwgY2hhbmdlKSwgd2hlcmUgYSBvbmUtdGltZSByZW1vdW50IGlzIGFjY2VwdGFibGUuXG4gIGNvbnN0IGlzU29sbyA9IGRlY2xhcmVkU2xvdHMubGVuZ3RoIDw9IDE7XG4gIGNvbnN0IHNvbG9TbG90ID0gZGVjbGFyZWRTbG90c1swXTtcblxuICAvLyBjb250ZW50IGZsZXhlcyAobm8gZml4ZWQgc2l6ZSk7IG90aGVycyB1c2UgdGhlIGRlY2xhcmVkIGRlZmF1bHQsIGZhbGxpbmdcbiAgLy8gYmFjayB0byB0aGUgcGVyc2lzdGVkL2NvbmZpZyBzaXplLlxuICBjb25zdCBkZWZhdWx0U2l6ZUZvciA9IChzbG90OiBTbG90S2V5KTogU2l6ZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHNsb3QgPT09IFNsb3QuY29udGVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZGVjbGFyZWRbc2xvdF0/LmRlZmF1bHRTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLnNpemU7XG4gIH07XG5cbiAgLy8gT25seSB0aGUgcGFuZWxzIHRoYXQgYXJlIGRlY2xhcmVkIEFORCBjdXJyZW50bHkgc2hvd24uIENsb3NlZC9oaWRkZW4gcGFuZWxzXG4gIC8vIGFyZSBub3QgcmVuZGVyZWQgYXQgYWxsIC0gbm8gcmVzZXJ2ZWQgc3BhY2UuXG4gIGNvbnN0IHBhbmVsSXRlbXM6IFBhbmVsSXRlbVtdID0gUEFORUxfT1JERVIuZmlsdGVyKFxuICAgIChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSAmJiBpc1Nob3duKHNsb3QpXG4gICkubWFwKChzbG90KSA9PiAoe1xuICAgIGlkOiBzbG90LFxuICAgIGRlZmF1bHRTaXplOiBkZWZhdWx0U2l6ZUZvcihzbG90KSxcbiAgICBtaW5TaXplOiBkZWNsYXJlZFtzbG90XT8ubWluU2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5taW5TaXplLFxuICAgIG1heFNpemU6IGRlY2xhcmVkW3Nsb3RdPy5tYXhTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1heFNpemUsXG4gICAgY29sbGFwc2libGU6IHNsb3QgIT09IFNsb3QuY29udGVudCAmJiAoZGVjbGFyZWRbc2xvdF0/LmNvbGxhcHNpYmxlID8/IHRydWUpLFxuICB9KSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UGFuZWxSZWdpc3RyeUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JlZ2lzdHJ5fT5cbiAgICAgIDxMYXlvdXRQb3J0YWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtub2Rlc30+XG4gICAgICAgIDxTdHlsZWRMYXlvdXQgZGF0YS1kcy1pZD1cIkxheW91dFwiPlxuICAgICAgICAgIHtpc1NvbG9cbiAgICAgICAgICAgID8gLy8gTG9uZSBwYW5lbCAtIGhvc3QgaXQgaW4gYSBwbGFpbiBkaXYsIG5vIHJlc2l6YWJsZSBHcm91cC4gSGlkZGVuXG4gICAgICAgICAgICAgIC8vIGxvbmUgcGFuZWxzIHJlbmRlciBub3RoaW5nIChDb250ZW50IGlzIGFsd2F5cyBzaG93bikuXG4gICAgICAgICAgICAgIHNvbG9TbG90ICYmXG4gICAgICAgICAgICAgIGlzU2hvd24oc29sb1Nsb3QpICYmIDxTdHlsZWRTb2xvSG9zdCByZWY9e2hvc3RSZWZzW3NvbG9TbG90XX0gLz5cbiAgICAgICAgICAgIDogcGFuZWxJdGVtcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAvLyBga2V5YCA9IHRoZSBwZXJzaXN0ZW5jZSBuYW1lc3BhY2UuIHJlYWN0LXJlc2l6YWJsZS1wYW5lbHNcbiAgICAgICAgICAgICAgICAvLyByZWFkcyBzdG9yZWQgc2l6ZXMgb25seSBvbiBtb3VudCwgYW5kIHRoaXMgZ3JvdXAgc3RheXNcbiAgICAgICAgICAgICAgICAvLyBtb3VudGVkIGFjcm9zcyBuYXZpZ2F0aW9uIC0gc28gcmVtb3VudCBpdCB3aGVuIHRoZSBrZXlcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VzIHRvIGxvYWQgVEhBVCBpbnN0YW5jZSdzIHNpemVzLiBVc2UgY2FzZTpcbiAgICAgICAgICAgICAgICAvLyBwZXItcm91dGUvcGVyLWluc3RhbmNlIHNpemUgbWVtb3J5IChlLmcuXG4gICAgICAgICAgICAgICAgLy8gYHBlcnNpc3RlbmNlS2V5PXtgbGF5b3V0OiR7cm91dGVJZH1gfWApIC0gZHJhZyB0aGUgY2hhdCB3aWRlXG4gICAgICAgICAgICAgICAgLy8gb24gcGFnZSBBLCBzd2l0Y2ggdG8gcGFnZSBCIChpdHMgb3duIHdpZHRocyksIGNvbWUgYmFjayB0byBBXG4gICAgICAgICAgICAgICAgLy8gYW5kIGZpbmQgQSdzIHdpZHRocyByZXN0b3JlZC4gVGhlIGtleSBvbmx5IGNoYW5nZXMgb25cbiAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZSBzd2l0Y2gsIG5ldmVyIG9uIHBhbmVsIG9wZW4vY2xvc2UsIHNvIG5vcm1hbFxuICAgICAgICAgICAgICAgIC8vIHRvZ2dsaW5nIHN0YXlzIHJlbW91bnQtZnJlZS5cbiAgICAgICAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgICAgICAgIGtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgICAgICAgICAgICBwYW5lbHM9e3BhbmVsSXRlbXN9XG4gICAgICAgICAgICAgICAgICBwZXJzaXN0ZW5jZUtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgICAgICAgICAgICBzdG9yYWdlPXtyZXNvbHZlZFN0b3JhZ2V9XG4gICAgICAgICAgICAgICAgICBob3N0Rm9yPXsoaWQpID0+IGhvc3RSZWZzW2lkIGFzIFNsb3RLZXldfVxuICAgICAgICAgICAgICAgICAgb25SZXNpemU9eyhpZCwgc2l6ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0ucmVzaXplKHNpemUpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvbkNvbGxhcHNlPXsoaWQpID0+IHBhbmVsQ2FsbGJhY2tzW2lkIGFzIFNsb3RLZXldLmhpZGUoKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRMYXlvdXQ+XG4gICAgICA8L0xheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9QYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFB1YmxpYyBMYXlvdXQgLSB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyArIGNvbXBvdW5kIHBhcnRzIGFzIHN0YXRpY3MgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxudHlwZSBMYXlvdXRDb21wb25lbnQgPSB0eXBlb2YgTGF5b3V0QmFzZSAmIHtcbiAgUHJvdmlkZXI6IHR5cGVvZiBMYXlvdXRQcm92aWRlcjtcbiAgTGVmdFBhbmVsOiB0eXBlb2YgTGVmdFBhbmVsO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgQ29udGVudDogdHlwZW9mIENvbnRlbnQ7XG4gIFNwbGl0OiB0eXBlb2YgU3BsaXQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0ID0gTGF5b3V0QmFzZSBhcyBMYXlvdXRDb21wb25lbnQ7XG5cbkxheW91dC5Qcm92aWRlciA9IExheW91dFByb3ZpZGVyO1xuTGF5b3V0LkxlZnRQYW5lbCA9IExlZnRQYW5lbDtcbkxheW91dC5SaWdodFBhbmVsID0gUmlnaHRQYW5lbDtcbkxheW91dC5Db250ZW50ID0gQ29udGVudDtcbkxheW91dC5TcGxpdCA9IFNwbGl0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFcUIifQ== */"),StyledSoloHost=styled("div",{target:"e1dnkj9b1",label:"StyledSoloHost"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFBhbmVsIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgdHlwZSB7IFBhbmVsSXRlbSB9IGZyb20gXCIuLi9JbnRlcm5hbC9QYW5lbC9QYW5lbFwiO1xuaW1wb3J0IHsgUEFORUxfT1JERVIsIFBBTkVMX1dJRFRIX1ZBUiwgU2xvdCB9IGZyb20gXCIuLy1jb25zdGFudHNcIjtcbmltcG9ydCB7IHVzZUxheW91dFBlcnNpc3RlbmNlIH0gZnJvbSBcIi4vY29udGV4dFwiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnRcIjtcbmltcG9ydCB7IFJpZ2h0UGFuZWwgfSBmcm9tIFwiLi9SaWdodFBhbmVsXCI7XG5pbXBvcnQgeyBMZWZ0UGFuZWwgfSBmcm9tIFwiLi9MZWZ0UGFuZWxcIjtcbmltcG9ydCB7IFNwbGl0IH0gZnJvbSBcIi4vU3BsaXRcIjtcbmltcG9ydCB7XG4gIExheW91dFBvcnRhbENvbnRleHQsXG4gIFBhbmVsUmVnaXN0cnlDb250ZXh0LFxuICB0eXBlIEhvc3ROb2RlcyxcbiAgdHlwZSBQYW5lbFJlZyxcbiAgdHlwZSBQYW5lbFJlZ2lzdHJ5LFxufSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlUG9ydGFsQ29udGFpbmVyUmVmcyB9IGZyb20gXCIuL3VzZVBvcnRhbENvbnRhaW5lclJlZnNcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIFNpemUsIFNsb3RLZXkgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLyoqXG4gKiBQdWJsaXNoZXMgZWFjaCBwYW5lbCdzIGxpdmUgcGl4ZWwgd2lkdGggYXMgYSBsYXlvdXQgQ1NTIHZhciAoZS5nLlxuICogYC0tZHMtbGF5b3V0LXJpZ2h0UGFuZWwtd2lkdGhgKSwgdHJhY2tpbmcgZHJhZy0gYW5kIHdpbmRvdy1yZXNpemVzLiBBIGhpZGRlblxuICogcGFydCAobm8gaG9zdCBub2RlKSByZWFkcyBgMHB4YCwgc28gdGhlIHZhciBpcyBhbHdheXMgZGVmaW5lZC4gT25lXG4gKiBgdXNlTGF5b3V0VmFyYCBwZXIgc2xvdCBpbiBgUEFORUxfV0lEVEhfVkFSYC5cbiAqL1xuY29uc3QgdXNlR2xvYmFsQ3NzVmFyaWFibGVzID0gKG5vZGVzOiBIb3N0Tm9kZXMpOiB2b2lkID0+IHtcbiAgY29uc3QgY29udGVudFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5jb250ZW50KTtcbiAgY29uc3QgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5yaWdodFBhbmVsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldHM6IFtTbG90S2V5LCBMYXlvdXRWYXJIYW5kbGVdW10gPSBbXG4gICAgICBbU2xvdC5jb250ZW50LCBjb250ZW50V2lkdGhDc3NWYXJdLFxuICAgICAgW1Nsb3QucmlnaHRQYW5lbCwgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyXSxcbiAgICBdO1xuICAgIGNvbnN0IG9ic2VydmVyczogUmVzaXplT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gICAgdGFyZ2V0cy5mb3JFYWNoKChbc2xvdCwgaGFuZGxlXSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW3Nsb3RdID8/IG51bGw7XG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgaGFuZGxlLnNldChcIjBweFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcHVibGlzaE5vZGVXaWR0aCA9ICgpOiB2b2lkID0+XG4gICAgICAgIGhhbmRsZS5zZXQoYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGApO1xuICAgICAgcHVibGlzaE5vZGVXaWR0aCgpO1xuICAgICAgLy8ganNkb20gKGFuZCBvbGQgYnJvd3NlcnMpIGxhY2sgUmVzaXplT2JzZXJ2ZXIg4oCUIHNraXAgbGl2ZSB0cmFja2luZyB0aGVyZS5cbiAgICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHB1Ymxpc2hOb2RlV2lkdGgpO1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShub2RlKTtcbiAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XG4gIH0sIFtjb250ZW50V2lkdGhDc3NWYXIsIHJpZ2h0UGFuZWxXaWR0aENzc1Zhciwgbm9kZXNdKTtcbn07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBMYXlvdXQgLSByZWdpc3RyeSArIGhvc3RzOyBtYXJrZXJzIGRlY2xhcmUvcG9ydGFsOyB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5jb25zdCBTdHlsZWRMYXlvdXQgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIFNvbG8tbW9kZSBob3N0OiBhIGxvbmUgcGFuZWwgKG5vIHJlc2l6YWJsZSBzaWJsaW5nKSBpcyBob3N0ZWQgaGVyZSBpbnN0ZWFkIG9mXG4vLyBpbnNpZGUgcmVhY3QtcmVzaXphYmxlLXBhbmVscy4gTWF0Y2hlcyB0aGUgcGVyLXBhbmVsIGhvc3QgdGhlIEdyb3VwIHJlbmRlcnNcbi8vIChgcmVsYXRpdmVgICsgZnVsbC1ibGVlZCkgc28gY29udGVudCByZWZsb3dzL3Njcm9sbHMgaWRlbnRpY2FsbHkgZWl0aGVyIHdheS5cbmNvbnN0IFN0eWxlZFNvbG9Ib3N0ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5mdW5jdGlvbiBMYXlvdXRCYXNlKHtcbiAgY2hpbGRyZW4sXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxufTogTGF5b3V0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbZGVjbGFyZWQsIHNldERlY2xhcmVkXSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsUmVnPj4+KFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IHsgc3RhdGU6IGxheW91dFN0YXRlLCAuLi5wYW5lbENhbGxiYWNrcyB9ID0gdXNlTGF5b3V0KCk7XG4gIGNvbnN0IHBlcnNpc3RlbmNlID0gdXNlTGF5b3V0UGVyc2lzdGVuY2UoKTtcbiAgY29uc3QgcmVzb2x2ZWRLZXkgPSBwZXJzaXN0ZW5jZUtleSA/PyBwZXJzaXN0ZW5jZS5wZXJzaXN0ZW5jZUtleTtcbiAgY29uc3QgcmVzb2x2ZWRTdG9yYWdlID0gc3RvcmFnZSA/PyBwZXJzaXN0ZW5jZS5zdG9yYWdlO1xuXG4gIGNvbnN0IGlzU2hvd24gPSAoc2xvdDogU2xvdEtleSk6IGJvb2xlYW4gPT4gbGF5b3V0U3RhdGVbc2xvdF0udmlzaWJsZTtcblxuICBjb25zdCByZWdpc3RyeSA9IHVzZU1lbW88UGFuZWxSZWdpc3RyeT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIHJlZ2lzdGVyOiAoc2xvdCwgcmVnKSA9PlxuICAgICAgICBzZXREZWNsYXJlZCgocHJldikgPT4gKHsgLi4ucHJldiwgW3Nsb3RdOiByZWcgfSkpLFxuICAgICAgdW5yZWdpc3RlcjogKHNsb3QpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiB7XG4gICAgICAgICAgaWYgKCEoc2xvdCBpbiBwcmV2KSkgcmV0dXJuIHByZXY7XG4gICAgICAgICAgY29uc3QgbmV4dCA9IHsgLi4ucHJldiB9O1xuICAgICAgICAgIGRlbGV0ZSBuZXh0W3Nsb3RdO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9KSxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IFtub2RlcywgaG9zdFJlZnNdID0gdXNlUG9ydGFsQ29udGFpbmVyUmVmcyhQQU5FTF9PUkRFUik7XG5cbiAgdXNlR2xvYmFsQ3NzVmFyaWFibGVzKG5vZGVzKTtcblxuICAvLyBQYW5lbHMgdGhhdCBleGlzdCBpbiB0aGUgbGF5b3V0LCByZWdhcmRsZXNzIG9mIHZpc2liaWxpdHkuIERyaXZlcyB0aGVcbiAgLy8gc29sby12cy1yZXNpemFibGUgZGVjaXNpb24gYmVsb3cgLSBrZXllZCBvbiBERUNMQVJFRCAobm90IHNob3duKSBzbyB0aGF0XG4gIC8vIHNob3dpbmcvaGlkaW5nIGEgcGFuZWwgbmV2ZXIgZmxpcHMgdGhlIG1vZGUuXG4gIGNvbnN0IGRlY2xhcmVkU2xvdHMgPSBQQU5FTF9PUkRFUi5maWx0ZXIoKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdKTtcblxuICAvLyBTb2xvIG1vZGU6IGEgc2luZ2xlIHBhbmVsIGlzIGRlY2xhcmVkIChlLmcuIGp1c3QgYENvbnRlbnRgLCB3aXRoIG5vXG4gIC8vIFJpZ2h0UGFuZWwvTGVmdFBhbmVsL1NwbGl0IGluIHRoZSB0cmVlKSAtIG5vdGhpbmcgdG8gcmVzaXplIGFnYWluc3QsIHNvIGhvc3RcbiAgLy8gaXQgaW4gYSBwbGFpbiBkaXYgYW5kIHNraXAgcmVhY3QtcmVzaXphYmxlLXBhbmVscyBlbnRpcmVseS4gQmVjYXVzZSB0aGVcbiAgLy8gY2hlY2sgaXMgb24gREVDTEFSRUQgcGFuZWxzLCB0b2dnbGluZyBhICpkZWNsYXJlZCogcGFuZWwncyB2aXNpYmlsaXR5IGtlZXBzXG4gIC8vIHRoZSBtb2RlIHN0YWJsZSwgc28gYENvbnRlbnRgIGlzIG5ldmVyIHJlbW91bnRlZCBieSBhIHNob3cvaGlkZS4gVGhlIG1vZGVcbiAgLy8gb25seSBmbGlwcyB3aGVuIGEgcGFuZWwgbWFya2VyIGlzIGFkZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlIChhXG4gIC8vIHN0cnVjdHVyYWwgY2hhbmdlKSwgd2hlcmUgYSBvbmUtdGltZSByZW1vdW50IGlzIGFjY2VwdGFibGUuXG4gIGNvbnN0IGlzU29sbyA9IGRlY2xhcmVkU2xvdHMubGVuZ3RoIDw9IDE7XG4gIGNvbnN0IHNvbG9TbG90ID0gZGVjbGFyZWRTbG90c1swXTtcblxuICAvLyBjb250ZW50IGZsZXhlcyAobm8gZml4ZWQgc2l6ZSk7IG90aGVycyB1c2UgdGhlIGRlY2xhcmVkIGRlZmF1bHQsIGZhbGxpbmdcbiAgLy8gYmFjayB0byB0aGUgcGVyc2lzdGVkL2NvbmZpZyBzaXplLlxuICBjb25zdCBkZWZhdWx0U2l6ZUZvciA9IChzbG90OiBTbG90S2V5KTogU2l6ZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHNsb3QgPT09IFNsb3QuY29udGVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZGVjbGFyZWRbc2xvdF0/LmRlZmF1bHRTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLnNpemU7XG4gIH07XG5cbiAgLy8gT25seSB0aGUgcGFuZWxzIHRoYXQgYXJlIGRlY2xhcmVkIEFORCBjdXJyZW50bHkgc2hvd24uIENsb3NlZC9oaWRkZW4gcGFuZWxzXG4gIC8vIGFyZSBub3QgcmVuZGVyZWQgYXQgYWxsIC0gbm8gcmVzZXJ2ZWQgc3BhY2UuXG4gIGNvbnN0IHBhbmVsSXRlbXM6IFBhbmVsSXRlbVtdID0gUEFORUxfT1JERVIuZmlsdGVyKFxuICAgIChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSAmJiBpc1Nob3duKHNsb3QpXG4gICkubWFwKChzbG90KSA9PiAoe1xuICAgIGlkOiBzbG90LFxuICAgIGRlZmF1bHRTaXplOiBkZWZhdWx0U2l6ZUZvcihzbG90KSxcbiAgICBtaW5TaXplOiBkZWNsYXJlZFtzbG90XT8ubWluU2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5taW5TaXplLFxuICAgIG1heFNpemU6IGRlY2xhcmVkW3Nsb3RdPy5tYXhTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1heFNpemUsXG4gICAgY29sbGFwc2libGU6IHNsb3QgIT09IFNsb3QuY29udGVudCAmJiAoZGVjbGFyZWRbc2xvdF0/LmNvbGxhcHNpYmxlID8/IHRydWUpLFxuICB9KSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UGFuZWxSZWdpc3RyeUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JlZ2lzdHJ5fT5cbiAgICAgIDxMYXlvdXRQb3J0YWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtub2Rlc30+XG4gICAgICAgIDxTdHlsZWRMYXlvdXQgZGF0YS1kcy1pZD1cIkxheW91dFwiPlxuICAgICAgICAgIHtpc1NvbG9cbiAgICAgICAgICAgID8gLy8gTG9uZSBwYW5lbCAtIGhvc3QgaXQgaW4gYSBwbGFpbiBkaXYsIG5vIHJlc2l6YWJsZSBHcm91cC4gSGlkZGVuXG4gICAgICAgICAgICAgIC8vIGxvbmUgcGFuZWxzIHJlbmRlciBub3RoaW5nIChDb250ZW50IGlzIGFsd2F5cyBzaG93bikuXG4gICAgICAgICAgICAgIHNvbG9TbG90ICYmXG4gICAgICAgICAgICAgIGlzU2hvd24oc29sb1Nsb3QpICYmIDxTdHlsZWRTb2xvSG9zdCByZWY9e2hvc3RSZWZzW3NvbG9TbG90XX0gLz5cbiAgICAgICAgICAgIDogcGFuZWxJdGVtcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAvLyBga2V5YCA9IHRoZSBwZXJzaXN0ZW5jZSBuYW1lc3BhY2UuIHJlYWN0LXJlc2l6YWJsZS1wYW5lbHNcbiAgICAgICAgICAgICAgICAvLyByZWFkcyBzdG9yZWQgc2l6ZXMgb25seSBvbiBtb3VudCwgYW5kIHRoaXMgZ3JvdXAgc3RheXNcbiAgICAgICAgICAgICAgICAvLyBtb3VudGVkIGFjcm9zcyBuYXZpZ2F0aW9uIC0gc28gcmVtb3VudCBpdCB3aGVuIHRoZSBrZXlcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VzIHRvIGxvYWQgVEhBVCBpbnN0YW5jZSdzIHNpemVzLiBVc2UgY2FzZTpcbiAgICAgICAgICAgICAgICAvLyBwZXItcm91dGUvcGVyLWluc3RhbmNlIHNpemUgbWVtb3J5IChlLmcuXG4gICAgICAgICAgICAgICAgLy8gYHBlcnNpc3RlbmNlS2V5PXtgbGF5b3V0OiR7cm91dGVJZH1gfWApIC0gZHJhZyB0aGUgY2hhdCB3aWRlXG4gICAgICAgICAgICAgICAgLy8gb24gcGFnZSBBLCBzd2l0Y2ggdG8gcGFnZSBCIChpdHMgb3duIHdpZHRocyksIGNvbWUgYmFjayB0byBBXG4gICAgICAgICAgICAgICAgLy8gYW5kIGZpbmQgQSdzIHdpZHRocyByZXN0b3JlZC4gVGhlIGtleSBvbmx5IGNoYW5nZXMgb25cbiAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZSBzd2l0Y2gsIG5ldmVyIG9uIHBhbmVsIG9wZW4vY2xvc2UsIHNvIG5vcm1hbFxuICAgICAgICAgICAgICAgIC8vIHRvZ2dsaW5nIHN0YXlzIHJlbW91bnQtZnJlZS5cbiAgICAgICAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgICAgICAgIGtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgICAgICAgICAgICBwYW5lbHM9e3BhbmVsSXRlbXN9XG4gICAgICAgICAgICAgICAgICBwZXJzaXN0ZW5jZUtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgICAgICAgICAgICBzdG9yYWdlPXtyZXNvbHZlZFN0b3JhZ2V9XG4gICAgICAgICAgICAgICAgICBob3N0Rm9yPXsoaWQpID0+IGhvc3RSZWZzW2lkIGFzIFNsb3RLZXldfVxuICAgICAgICAgICAgICAgICAgb25SZXNpemU9eyhpZCwgc2l6ZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0ucmVzaXplKHNpemUpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvbkNvbGxhcHNlPXsoaWQpID0+IHBhbmVsQ2FsbGJhY2tzW2lkIGFzIFNsb3RLZXldLmhpZGUoKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRMYXlvdXQ+XG4gICAgICA8L0xheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9QYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFB1YmxpYyBMYXlvdXQgLSB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyArIGNvbXBvdW5kIHBhcnRzIGFzIHN0YXRpY3MgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxudHlwZSBMYXlvdXRDb21wb25lbnQgPSB0eXBlb2YgTGF5b3V0QmFzZSAmIHtcbiAgUHJvdmlkZXI6IHR5cGVvZiBMYXlvdXRQcm92aWRlcjtcbiAgTGVmdFBhbmVsOiB0eXBlb2YgTGVmdFBhbmVsO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgQ29udGVudDogdHlwZW9mIENvbnRlbnQ7XG4gIFNwbGl0OiB0eXBlb2YgU3BsaXQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0ID0gTGF5b3V0QmFzZSBhcyBMYXlvdXRDb21wb25lbnQ7XG5cbkxheW91dC5Qcm92aWRlciA9IExheW91dFByb3ZpZGVyO1xuTGF5b3V0LkxlZnRQYW5lbCA9IExlZnRQYW5lbDtcbkxheW91dC5SaWdodFBhbmVsID0gUmlnaHRQYW5lbDtcbkxheW91dC5Db250ZW50ID0gQ29udGVudDtcbkxheW91dC5TcGxpdCA9IFNwbGl0O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlFdUIifQ== */");export const Layout=function({children,persistenceKey,storage}){let[declared,setDeclared]=useState({}),{state:layoutState,...panelCallbacks}=useLayout(),persistence=useLayoutPersistence(),resolvedKey=persistenceKey??persistence.persistenceKey,resolvedStorage=storage??persistence.storage,isShown=slot=>layoutState[slot].visible,registry=useMemo(()=>({register:(slot,reg)=>setDeclared(prev=>({...prev,[slot]:reg})),unregister:slot=>setDeclared(prev=>{if(!(slot in prev))return prev;let next={...prev};return delete next[slot],next})}),[]),[nodes,hostRefs]=usePortalContainerRefs(PANEL_ORDER);useGlobalCssVariables(nodes);let declaredSlots=PANEL_ORDER.filter(slot=>declared[slot]),isSolo=declaredSlots.length<=1,soloSlot=declaredSlots[0],defaultSizeFor=slot=>{if(slot!==Slot.content)return declared[slot]?.defaultSize??layoutState[slot].size},panelItems=PANEL_ORDER.filter(slot=>declared[slot]&&isShown(slot)).map(slot=>({id:slot,defaultSize:defaultSizeFor(slot),minSize:declared[slot]?.minSize??layoutState[slot].minSize,maxSize:declared[slot]?.maxSize??layoutState[slot].maxSize,collapsible:slot!==Slot.content&&(declared[slot]?.collapsible??!0)}));return React.createElement(PanelRegistryContext.Provider,{value:registry},React.createElement(LayoutPortalContext.Provider,{value:nodes},React.createElement(StyledLayout,{"data-ds-id":"Layout"},isSolo?soloSlot&&isShown(soloSlot)&&React.createElement(StyledSoloHost,{ref:hostRefs[soloSlot]}):panelItems.length>0&&React.createElement(Panel,{key:resolvedKey,panels:panelItems,persistenceKey:resolvedKey,storage:resolvedStorage,hostFor:id=>hostRefs[id],onResize:(id,size)=>panelCallbacks[id].resize(size),onCollapse:id=>panelCallbacks[id].hide()}),children)))};Layout.Provider=LayoutProvider,Layout.LeftPanel=LeftPanel,Layout.RightPanel=RightPanel,Layout.Content=Content,Layout.Split=Split;
1
+ import React,{useEffect,useMemo,useState}from"react";import styled from"@emotion/styled";import{Panel}from"../Internal/Panel/Panel";import{PANEL_ORDER,PANEL_WIDTH_VAR,Slot}from"./-constants";import{useLayoutPersistence}from"./context";import{LayoutProvider}from"./LayoutProvider";import{Content}from"./Content/Content";import{RightPanel}from"./RightPanel/RightPanel";import{RightPanelHeader}from"./RightPanel/RightPanelHeader";import{RightPanelFooter}from"./RightPanel/RightPanelFooter";import{LeftPanel}from"./LeftPanel/LeftPanel";import{LeftPanelHeader}from"./LeftPanel/LeftPanelHeader";import{LeftPanelFooter}from"./LeftPanel/LeftPanelFooter";import{Split}from"./Split/Split";import{SplitHeader}from"./Split/SplitHeader";import{SplitFooter}from"./Split/SplitFooter";import{LayoutPortalContext,PanelRegistryContext}from"./registry";import{usePortalContainerRefs}from"./usePortalContainerRefs";import{useLayoutVar}from"./LayoutCssVars";import{useLayout}from"./useLayout";let useGlobalCssVariables=nodes=>{let contentWidthCssVar=useLayoutVar(PANEL_WIDTH_VAR.content),rightPanelWidthCssVar=useLayoutVar(PANEL_WIDTH_VAR.rightPanel);useEffect(()=>{let targets=[[Slot.content,contentWidthCssVar],[Slot.rightPanel,rightPanelWidthCssVar]],observers=[];return targets.forEach(([slot,handle])=>{let node=nodes[slot]??null;if(!node)return void handle.set("0px");let publishNodeWidth=()=>handle.set(`${node.getBoundingClientRect().width}px`);if(publishNodeWidth(),"undefined"==typeof ResizeObserver)return;let observer=new ResizeObserver(publishNodeWidth);observer.observe(node),observers.push(observer)}),()=>observers.forEach(observer=>observer.disconnect())},[contentWidthCssVar,rightPanelWidthCssVar,nodes])},StyledLayout=styled("div",{target:"e13g6fyp0",label:"StyledLayout"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFBhbmVsIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgdHlwZSB7IFBhbmVsSXRlbSB9IGZyb20gXCIuLi9JbnRlcm5hbC9QYW5lbC9QYW5lbFwiO1xuaW1wb3J0IHsgUEFORUxfT1JERVIsIFBBTkVMX1dJRFRIX1ZBUiwgU2xvdCB9IGZyb20gXCIuLy1jb25zdGFudHNcIjtcbmltcG9ydCB7IHVzZUxheW91dFBlcnNpc3RlbmNlIH0gZnJvbSBcIi4vY29udGV4dFwiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIHR5cGUgSG9zdE5vZGVzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VQb3J0YWxDb250YWluZXJSZWZzIH0gZnJvbSBcIi4vdXNlUG9ydGFsQ29udGFpbmVyUmVmc1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0VmFyLCB0eXBlIExheW91dFZhckhhbmRsZSB9IGZyb20gXCIuL0xheW91dENzc1ZhcnNcIjtcbmltcG9ydCB7IHVzZUxheW91dCB9IGZyb20gXCIuL3VzZUxheW91dFwiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRQcm9wcywgU2l6ZSwgU2xvdEtleSB9IGZyb20gXCIuLy10eXBlc1wiO1xuXG4vKipcbiAqIFB1Ymxpc2hlcyBlYWNoIHBhbmVsJ3MgbGl2ZSBwaXhlbCB3aWR0aCBhcyBhIGxheW91dCBDU1MgdmFyIChlLmcuXG4gKiBgLS1kcy1sYXlvdXQtcmlnaHRQYW5lbC13aWR0aGApLCB0cmFja2luZyBkcmFnLSBhbmQgd2luZG93LXJlc2l6ZXMuIEEgaGlkZGVuXG4gKiBwYXJ0IChubyBob3N0IG5vZGUpIHJlYWRzIGAwcHhgLCBzbyB0aGUgdmFyIGlzIGFsd2F5cyBkZWZpbmVkLiBPbmVcbiAqIGB1c2VMYXlvdXRWYXJgIHBlciBzbG90IGluIGBQQU5FTF9XSURUSF9WQVJgLlxuICovXG5jb25zdCB1c2VHbG9iYWxDc3NWYXJpYWJsZXMgPSAobm9kZXM6IEhvc3ROb2Rlcyk6IHZvaWQgPT4ge1xuICBjb25zdCBjb250ZW50V2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLmNvbnRlbnQpO1xuICBjb25zdCByaWdodFBhbmVsV2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLnJpZ2h0UGFuZWwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0czogW1Nsb3RLZXksIExheW91dFZhckhhbmRsZV1bXSA9IFtcbiAgICAgIFtTbG90LmNvbnRlbnQsIGNvbnRlbnRXaWR0aENzc1Zhcl0sXG4gICAgICBbU2xvdC5yaWdodFBhbmVsLCByaWdodFBhbmVsV2lkdGhDc3NWYXJdLFxuICAgIF07XG4gICAgY29uc3Qgb2JzZXJ2ZXJzOiBSZXNpemVPYnNlcnZlcltdID0gW107XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKFtzbG90LCBoYW5kbGVdKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gbm9kZXNbc2xvdF0gPz8gbnVsbDtcbiAgICAgIGlmICghbm9kZSkge1xuICAgICAgICBoYW5kbGUuc2V0KFwiMHB4XCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBwdWJsaXNoTm9kZVdpZHRoID0gKCk6IHZvaWQgPT5cbiAgICAgICAgaGFuZGxlLnNldChgJHtub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4YCk7XG4gICAgICBwdWJsaXNoTm9kZVdpZHRoKCk7XG4gICAgICAvLyBqc2RvbSAoYW5kIG9sZCBicm93c2VycykgbGFjayBSZXNpemVPYnNlcnZlciDigJQgc2tpcCBsaXZlIHRyYWNraW5nIHRoZXJlLlxuICAgICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIocHVibGlzaE5vZGVXaWR0aCk7XG4gICAgICBvYnNlcnZlci5vYnNlcnZlKG5vZGUpO1xuICAgICAgb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXIpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVycy5mb3JFYWNoKChvYnNlcnZlcikgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpKTtcbiAgfSwgW2NvbnRlbnRXaWR0aENzc1ZhciwgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyLCBub2Rlc10pO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIExheW91dCAtIHJlZ2lzdHJ5ICsgaG9zdHM7IG1hcmtlcnMgZGVjbGFyZS9wb3J0YWw7IHRoZSByZXNpemFibGUgcGFuZWwgcm93ICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmNvbnN0IFN0eWxlZExheW91dCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLy8gU29sby1tb2RlIGhvc3Q6IGEgbG9uZSBwYW5lbCAobm8gcmVzaXphYmxlIHNpYmxpbmcpIGlzIGhvc3RlZCBoZXJlIGluc3RlYWQgb2Zcbi8vIGluc2lkZSByZWFjdC1yZXNpemFibGUtcGFuZWxzLiBNYXRjaGVzIHRoZSBwZXItcGFuZWwgaG9zdCB0aGUgR3JvdXAgcmVuZGVyc1xuLy8gKGByZWxhdGl2ZWAgKyBmdWxsLWJsZWVkKSBzbyBjb250ZW50IHJlZmxvd3Mvc2Nyb2xscyBpZGVudGljYWxseSBlaXRoZXIgd2F5LlxuY29uc3QgU3R5bGVkU29sb0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbmZ1bmN0aW9uIExheW91dEJhc2Uoe1xuICBjaGlsZHJlbixcbiAgcGVyc2lzdGVuY2VLZXksXG4gIHN0b3JhZ2UsXG59OiBMYXlvdXRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtkZWNsYXJlZCwgc2V0RGVjbGFyZWRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxSZWc+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgeyBzdGF0ZTogbGF5b3V0U3RhdGUsIC4uLnBhbmVsQ2FsbGJhY2tzIH0gPSB1c2VMYXlvdXQoKTtcbiAgY29uc3QgcGVyc2lzdGVuY2UgPSB1c2VMYXlvdXRQZXJzaXN0ZW5jZSgpO1xuICBjb25zdCByZXNvbHZlZEtleSA9IHBlcnNpc3RlbmNlS2V5ID8/IHBlcnNpc3RlbmNlLnBlcnNpc3RlbmNlS2V5O1xuICBjb25zdCByZXNvbHZlZFN0b3JhZ2UgPSBzdG9yYWdlID8/IHBlcnNpc3RlbmNlLnN0b3JhZ2U7XG5cbiAgY29uc3QgaXNTaG93biA9IChzbG90OiBTbG90S2V5KTogYm9vbGVhbiA9PiBsYXlvdXRTdGF0ZVtzbG90XS52aXNpYmxlO1xuXG4gIGNvbnN0IHJlZ2lzdHJ5ID0gdXNlTWVtbzxQYW5lbFJlZ2lzdHJ5PihcbiAgICAoKSA9PiAoe1xuICAgICAgcmVnaXN0ZXI6IChzbG90LCByZWcpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBbc2xvdF06IHJlZyB9KSksXG4gICAgICB1bnJlZ2lzdGVyOiAoc2xvdCkgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+IHtcbiAgICAgICAgICBpZiAoIShzbG90IGluIHByZXYpKSByZXR1cm4gcHJldjtcbiAgICAgICAgICBjb25zdCBuZXh0ID0geyAuLi5wcmV2IH07XG4gICAgICAgICAgZGVsZXRlIG5leHRbc2xvdF07XG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH0pLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgW25vZGVzLCBob3N0UmVmc10gPSB1c2VQb3J0YWxDb250YWluZXJSZWZzKFBBTkVMX09SREVSKTtcblxuICB1c2VHbG9iYWxDc3NWYXJpYWJsZXMobm9kZXMpO1xuXG4gIC8vIFBhbmVscyB0aGF0IGV4aXN0IGluIHRoZSBsYXlvdXQsIHJlZ2FyZGxlc3Mgb2YgdmlzaWJpbGl0eS4gRHJpdmVzIHRoZVxuICAvLyBzb2xvLXZzLXJlc2l6YWJsZSBkZWNpc2lvbiBiZWxvdyAtIGtleWVkIG9uIERFQ0xBUkVEIChub3Qgc2hvd24pIHNvIHRoYXRcbiAgLy8gc2hvd2luZy9oaWRpbmcgYSBwYW5lbCBuZXZlciBmbGlwcyB0aGUgbW9kZS5cbiAgY29uc3QgZGVjbGFyZWRTbG90cyA9IFBBTkVMX09SREVSLmZpbHRlcigoc2xvdCkgPT4gZGVjbGFyZWRbc2xvdF0pO1xuXG4gIC8vIFNvbG8gbW9kZTogYSBzaW5nbGUgcGFuZWwgaXMgZGVjbGFyZWQgKGUuZy4ganVzdCBgQ29udGVudGAsIHdpdGggbm9cbiAgLy8gUmlnaHRQYW5lbC9MZWZ0UGFuZWwvU3BsaXQgaW4gdGhlIHRyZWUpIC0gbm90aGluZyB0byByZXNpemUgYWdhaW5zdCwgc28gaG9zdFxuICAvLyBpdCBpbiBhIHBsYWluIGRpdiBhbmQgc2tpcCByZWFjdC1yZXNpemFibGUtcGFuZWxzIGVudGlyZWx5LiBCZWNhdXNlIHRoZVxuICAvLyBjaGVjayBpcyBvbiBERUNMQVJFRCBwYW5lbHMsIHRvZ2dsaW5nIGEgKmRlY2xhcmVkKiBwYW5lbCdzIHZpc2liaWxpdHkga2VlcHNcbiAgLy8gdGhlIG1vZGUgc3RhYmxlLCBzbyBgQ29udGVudGAgaXMgbmV2ZXIgcmVtb3VudGVkIGJ5IGEgc2hvdy9oaWRlLiBUaGUgbW9kZVxuICAvLyBvbmx5IGZsaXBzIHdoZW4gYSBwYW5lbCBtYXJrZXIgaXMgYWRkZWQgdG8gLyByZW1vdmVkIGZyb20gdGhlIHRyZWUgKGFcbiAgLy8gc3RydWN0dXJhbCBjaGFuZ2UpLCB3aGVyZSBhIG9uZS10aW1lIHJlbW91bnQgaXMgYWNjZXB0YWJsZS5cbiAgY29uc3QgaXNTb2xvID0gZGVjbGFyZWRTbG90cy5sZW5ndGggPD0gMTtcbiAgY29uc3Qgc29sb1Nsb3QgPSBkZWNsYXJlZFNsb3RzWzBdO1xuXG4gIC8vIGNvbnRlbnQgZmxleGVzIChubyBmaXhlZCBzaXplKTsgb3RoZXJzIHVzZSB0aGUgZGVjbGFyZWQgZGVmYXVsdCwgZmFsbGluZ1xuICAvLyBiYWNrIHRvIHRoZSBwZXJzaXN0ZWQvY29uZmlnIHNpemUuXG4gIGNvbnN0IGRlZmF1bHRTaXplRm9yID0gKHNsb3Q6IFNsb3RLZXkpOiBTaXplIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoc2xvdCA9PT0gU2xvdC5jb250ZW50KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBkZWNsYXJlZFtzbG90XT8uZGVmYXVsdFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0uc2l6ZTtcbiAgfTtcblxuICAvLyBPbmx5IHRoZSBwYW5lbHMgdGhhdCBhcmUgZGVjbGFyZWQgQU5EIGN1cnJlbnRseSBzaG93bi4gQ2xvc2VkL2hpZGRlbiBwYW5lbHNcbiAgLy8gYXJlIG5vdCByZW5kZXJlZCBhdCBhbGwgLSBubyByZXNlcnZlZCBzcGFjZS5cbiAgY29uc3QgcGFuZWxJdGVtczogUGFuZWxJdGVtW10gPSBQQU5FTF9PUkRFUi5maWx0ZXIoXG4gICAgKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdICYmIGlzU2hvd24oc2xvdClcbiAgKS5tYXAoKHNsb3QpID0+ICh7XG4gICAgaWQ6IHNsb3QsXG4gICAgZGVmYXVsdFNpemU6IGRlZmF1bHRTaXplRm9yKHNsb3QpLFxuICAgIG1pblNpemU6IGRlY2xhcmVkW3Nsb3RdPy5taW5TaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1pblNpemUsXG4gICAgbWF4U2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1heFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZTogc2xvdCAhPT0gU2xvdC5jb250ZW50ICYmIChkZWNsYXJlZFtzbG90XT8uY29sbGFwc2libGUgPz8gdHJ1ZSksXG4gIH0pKTtcblxuICByZXR1cm4gKFxuICAgIDxQYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17cmVnaXN0cnl9PlxuICAgICAgPExheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25vZGVzfT5cbiAgICAgICAgPFN0eWxlZExheW91dCBkYXRhLWRzLWlkPVwiTGF5b3V0XCI+XG4gICAgICAgICAge2lzU29sb1xuICAgICAgICAgICAgPyAvLyBMb25lIHBhbmVsIC0gaG9zdCBpdCBpbiBhIHBsYWluIGRpdiwgbm8gcmVzaXphYmxlIEdyb3VwLiBIaWRkZW5cbiAgICAgICAgICAgICAgLy8gbG9uZSBwYW5lbHMgcmVuZGVyIG5vdGhpbmcgKENvbnRlbnQgaXMgYWx3YXlzIHNob3duKS5cbiAgICAgICAgICAgICAgc29sb1Nsb3QgJiZcbiAgICAgICAgICAgICAgaXNTaG93bihzb2xvU2xvdCkgJiYgPFN0eWxlZFNvbG9Ib3N0IHJlZj17aG9zdFJlZnNbc29sb1Nsb3RdfSAvPlxuICAgICAgICAgICAgOiBwYW5lbEl0ZW1zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIC8vIGBrZXlgID0gdGhlIHBlcnNpc3RlbmNlIG5hbWVzcGFjZS4gcmVhY3QtcmVzaXphYmxlLXBhbmVsc1xuICAgICAgICAgICAgICAgIC8vIHJlYWRzIHN0b3JlZCBzaXplcyBvbmx5IG9uIG1vdW50LCBhbmQgdGhpcyBncm91cCBzdGF5c1xuICAgICAgICAgICAgICAgIC8vIG1vdW50ZWQgYWNyb3NzIG5hdmlnYXRpb24gLSBzbyByZW1vdW50IGl0IHdoZW4gdGhlIGtleVxuICAgICAgICAgICAgICAgIC8vIGNoYW5nZXMgdG8gbG9hZCBUSEFUIGluc3RhbmNlJ3Mgc2l6ZXMuIFVzZSBjYXNlOlxuICAgICAgICAgICAgICAgIC8vIHBlci1yb3V0ZS9wZXItaW5zdGFuY2Ugc2l6ZSBtZW1vcnkgKGUuZy5cbiAgICAgICAgICAgICAgICAvLyBgcGVyc2lzdGVuY2VLZXk9e2BsYXlvdXQ6JHtyb3V0ZUlkfWB9YCkgLSBkcmFnIHRoZSBjaGF0IHdpZGVcbiAgICAgICAgICAgICAgICAvLyBvbiBwYWdlIEEsIHN3aXRjaCB0byBwYWdlIEIgKGl0cyBvd24gd2lkdGhzKSwgY29tZSBiYWNrIHRvIEFcbiAgICAgICAgICAgICAgICAvLyBhbmQgZmluZCBBJ3Mgd2lkdGhzIHJlc3RvcmVkLiBUaGUga2V5IG9ubHkgY2hhbmdlcyBvblxuICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlIHN3aXRjaCwgbmV2ZXIgb24gcGFuZWwgb3Blbi9jbG9zZSwgc28gbm9ybWFsXG4gICAgICAgICAgICAgICAgLy8gdG9nZ2xpbmcgc3RheXMgcmVtb3VudC1mcmVlLlxuICAgICAgICAgICAgICAgIDxQYW5lbFxuICAgICAgICAgICAgICAgICAga2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHBhbmVscz17cGFuZWxJdGVtc31cbiAgICAgICAgICAgICAgICAgIHBlcnNpc3RlbmNlS2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHN0b3JhZ2U9e3Jlc29sdmVkU3RvcmFnZX1cbiAgICAgICAgICAgICAgICAgIGhvc3RGb3I9eyhpZCkgPT4gaG9zdFJlZnNbaWQgYXMgU2xvdEtleV19XG4gICAgICAgICAgICAgICAgICBvblJlc2l6ZT17KGlkLCBzaXplKSA9PlxuICAgICAgICAgICAgICAgICAgICBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5yZXNpemUoc2l6ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uQ29sbGFwc2U9eyhpZCkgPT4gcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0uaGlkZSgpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZExheW91dD5cbiAgICAgIDwvTGF5b3V0UG9ydGFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L1BhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHVibGljIExheW91dCAtIHRoZSByZXNpemFibGUgcGFuZWwgcm93ICsgY29tcG91bmQgcGFydHMgYXMgc3RhdGljcyAgICAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIExheW91dENvbXBvbmVudCA9IHR5cGVvZiBMYXlvdXRCYXNlICYge1xuICBQcm92aWRlcjogdHlwZW9mIExheW91dFByb3ZpZGVyO1xuICBMZWZ0UGFuZWw6IHR5cGVvZiBMZWZ0UGFuZWw7XG4gIExlZnRQYW5lbEhlYWRlcjogdHlwZW9mIExlZnRQYW5lbEhlYWRlcjtcbiAgTGVmdFBhbmVsRm9vdGVyOiB0eXBlb2YgTGVmdFBhbmVsRm9vdGVyO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgUmlnaHRQYW5lbEhlYWRlcjogdHlwZW9mIFJpZ2h0UGFuZWxIZWFkZXI7XG4gIFJpZ2h0UGFuZWxGb290ZXI6IHR5cGVvZiBSaWdodFBhbmVsRm9vdGVyO1xuICBDb250ZW50OiB0eXBlb2YgQ29udGVudDtcbiAgU3BsaXQ6IHR5cGVvZiBTcGxpdDtcbiAgU3BsaXRIZWFkZXI6IHR5cGVvZiBTcGxpdEhlYWRlcjtcbiAgU3BsaXRGb290ZXI6IHR5cGVvZiBTcGxpdEZvb3Rlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXlvdXQgPSBMYXlvdXRCYXNlIGFzIExheW91dENvbXBvbmVudDtcblxuTGF5b3V0LlByb3ZpZGVyID0gTGF5b3V0UHJvdmlkZXI7XG5MYXlvdXQuTGVmdFBhbmVsID0gTGVmdFBhbmVsO1xuTGF5b3V0LkxlZnRQYW5lbEhlYWRlciA9IExlZnRQYW5lbEhlYWRlcjtcbkxheW91dC5MZWZ0UGFuZWxGb290ZXIgPSBMZWZ0UGFuZWxGb290ZXI7XG5MYXlvdXQuUmlnaHRQYW5lbCA9IFJpZ2h0UGFuZWw7XG5MYXlvdXQuUmlnaHRQYW5lbEhlYWRlciA9IFJpZ2h0UGFuZWxIZWFkZXI7XG5MYXlvdXQuUmlnaHRQYW5lbEZvb3RlciA9IFJpZ2h0UGFuZWxGb290ZXI7XG5MYXlvdXQuQ29udGVudCA9IENvbnRlbnQ7XG5MYXlvdXQuU3BsaXQgPSBTcGxpdDtcbkxheW91dC5TcGxpdEhlYWRlciA9IFNwbGl0SGVhZGVyO1xuTGF5b3V0LlNwbGl0Rm9vdGVyID0gU3BsaXRGb290ZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0VxQiJ9 */"),StyledSoloHost=styled("div",{target:"e13g6fyp1",label:"StyledSoloHost"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFBhbmVsIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgdHlwZSB7IFBhbmVsSXRlbSB9IGZyb20gXCIuLi9JbnRlcm5hbC9QYW5lbC9QYW5lbFwiO1xuaW1wb3J0IHsgUEFORUxfT1JERVIsIFBBTkVMX1dJRFRIX1ZBUiwgU2xvdCB9IGZyb20gXCIuLy1jb25zdGFudHNcIjtcbmltcG9ydCB7IHVzZUxheW91dFBlcnNpc3RlbmNlIH0gZnJvbSBcIi4vY29udGV4dFwiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIHR5cGUgSG9zdE5vZGVzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VQb3J0YWxDb250YWluZXJSZWZzIH0gZnJvbSBcIi4vdXNlUG9ydGFsQ29udGFpbmVyUmVmc1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0VmFyLCB0eXBlIExheW91dFZhckhhbmRsZSB9IGZyb20gXCIuL0xheW91dENzc1ZhcnNcIjtcbmltcG9ydCB7IHVzZUxheW91dCB9IGZyb20gXCIuL3VzZUxheW91dFwiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRQcm9wcywgU2l6ZSwgU2xvdEtleSB9IGZyb20gXCIuLy10eXBlc1wiO1xuXG4vKipcbiAqIFB1Ymxpc2hlcyBlYWNoIHBhbmVsJ3MgbGl2ZSBwaXhlbCB3aWR0aCBhcyBhIGxheW91dCBDU1MgdmFyIChlLmcuXG4gKiBgLS1kcy1sYXlvdXQtcmlnaHRQYW5lbC13aWR0aGApLCB0cmFja2luZyBkcmFnLSBhbmQgd2luZG93LXJlc2l6ZXMuIEEgaGlkZGVuXG4gKiBwYXJ0IChubyBob3N0IG5vZGUpIHJlYWRzIGAwcHhgLCBzbyB0aGUgdmFyIGlzIGFsd2F5cyBkZWZpbmVkLiBPbmVcbiAqIGB1c2VMYXlvdXRWYXJgIHBlciBzbG90IGluIGBQQU5FTF9XSURUSF9WQVJgLlxuICovXG5jb25zdCB1c2VHbG9iYWxDc3NWYXJpYWJsZXMgPSAobm9kZXM6IEhvc3ROb2Rlcyk6IHZvaWQgPT4ge1xuICBjb25zdCBjb250ZW50V2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLmNvbnRlbnQpO1xuICBjb25zdCByaWdodFBhbmVsV2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLnJpZ2h0UGFuZWwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0czogW1Nsb3RLZXksIExheW91dFZhckhhbmRsZV1bXSA9IFtcbiAgICAgIFtTbG90LmNvbnRlbnQsIGNvbnRlbnRXaWR0aENzc1Zhcl0sXG4gICAgICBbU2xvdC5yaWdodFBhbmVsLCByaWdodFBhbmVsV2lkdGhDc3NWYXJdLFxuICAgIF07XG4gICAgY29uc3Qgb2JzZXJ2ZXJzOiBSZXNpemVPYnNlcnZlcltdID0gW107XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKFtzbG90LCBoYW5kbGVdKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gbm9kZXNbc2xvdF0gPz8gbnVsbDtcbiAgICAgIGlmICghbm9kZSkge1xuICAgICAgICBoYW5kbGUuc2V0KFwiMHB4XCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBwdWJsaXNoTm9kZVdpZHRoID0gKCk6IHZvaWQgPT5cbiAgICAgICAgaGFuZGxlLnNldChgJHtub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4YCk7XG4gICAgICBwdWJsaXNoTm9kZVdpZHRoKCk7XG4gICAgICAvLyBqc2RvbSAoYW5kIG9sZCBicm93c2VycykgbGFjayBSZXNpemVPYnNlcnZlciDigJQgc2tpcCBsaXZlIHRyYWNraW5nIHRoZXJlLlxuICAgICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIocHVibGlzaE5vZGVXaWR0aCk7XG4gICAgICBvYnNlcnZlci5vYnNlcnZlKG5vZGUpO1xuICAgICAgb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXIpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVycy5mb3JFYWNoKChvYnNlcnZlcikgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpKTtcbiAgfSwgW2NvbnRlbnRXaWR0aENzc1ZhciwgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyLCBub2Rlc10pO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIExheW91dCAtIHJlZ2lzdHJ5ICsgaG9zdHM7IG1hcmtlcnMgZGVjbGFyZS9wb3J0YWw7IHRoZSByZXNpemFibGUgcGFuZWwgcm93ICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmNvbnN0IFN0eWxlZExheW91dCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLy8gU29sby1tb2RlIGhvc3Q6IGEgbG9uZSBwYW5lbCAobm8gcmVzaXphYmxlIHNpYmxpbmcpIGlzIGhvc3RlZCBoZXJlIGluc3RlYWQgb2Zcbi8vIGluc2lkZSByZWFjdC1yZXNpemFibGUtcGFuZWxzLiBNYXRjaGVzIHRoZSBwZXItcGFuZWwgaG9zdCB0aGUgR3JvdXAgcmVuZGVyc1xuLy8gKGByZWxhdGl2ZWAgKyBmdWxsLWJsZWVkKSBzbyBjb250ZW50IHJlZmxvd3Mvc2Nyb2xscyBpZGVudGljYWxseSBlaXRoZXIgd2F5LlxuY29uc3QgU3R5bGVkU29sb0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbmZ1bmN0aW9uIExheW91dEJhc2Uoe1xuICBjaGlsZHJlbixcbiAgcGVyc2lzdGVuY2VLZXksXG4gIHN0b3JhZ2UsXG59OiBMYXlvdXRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtkZWNsYXJlZCwgc2V0RGVjbGFyZWRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxSZWc+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgeyBzdGF0ZTogbGF5b3V0U3RhdGUsIC4uLnBhbmVsQ2FsbGJhY2tzIH0gPSB1c2VMYXlvdXQoKTtcbiAgY29uc3QgcGVyc2lzdGVuY2UgPSB1c2VMYXlvdXRQZXJzaXN0ZW5jZSgpO1xuICBjb25zdCByZXNvbHZlZEtleSA9IHBlcnNpc3RlbmNlS2V5ID8/IHBlcnNpc3RlbmNlLnBlcnNpc3RlbmNlS2V5O1xuICBjb25zdCByZXNvbHZlZFN0b3JhZ2UgPSBzdG9yYWdlID8/IHBlcnNpc3RlbmNlLnN0b3JhZ2U7XG5cbiAgY29uc3QgaXNTaG93biA9IChzbG90OiBTbG90S2V5KTogYm9vbGVhbiA9PiBsYXlvdXRTdGF0ZVtzbG90XS52aXNpYmxlO1xuXG4gIGNvbnN0IHJlZ2lzdHJ5ID0gdXNlTWVtbzxQYW5lbFJlZ2lzdHJ5PihcbiAgICAoKSA9PiAoe1xuICAgICAgcmVnaXN0ZXI6IChzbG90LCByZWcpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBbc2xvdF06IHJlZyB9KSksXG4gICAgICB1bnJlZ2lzdGVyOiAoc2xvdCkgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+IHtcbiAgICAgICAgICBpZiAoIShzbG90IGluIHByZXYpKSByZXR1cm4gcHJldjtcbiAgICAgICAgICBjb25zdCBuZXh0ID0geyAuLi5wcmV2IH07XG4gICAgICAgICAgZGVsZXRlIG5leHRbc2xvdF07XG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH0pLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgW25vZGVzLCBob3N0UmVmc10gPSB1c2VQb3J0YWxDb250YWluZXJSZWZzKFBBTkVMX09SREVSKTtcblxuICB1c2VHbG9iYWxDc3NWYXJpYWJsZXMobm9kZXMpO1xuXG4gIC8vIFBhbmVscyB0aGF0IGV4aXN0IGluIHRoZSBsYXlvdXQsIHJlZ2FyZGxlc3Mgb2YgdmlzaWJpbGl0eS4gRHJpdmVzIHRoZVxuICAvLyBzb2xvLXZzLXJlc2l6YWJsZSBkZWNpc2lvbiBiZWxvdyAtIGtleWVkIG9uIERFQ0xBUkVEIChub3Qgc2hvd24pIHNvIHRoYXRcbiAgLy8gc2hvd2luZy9oaWRpbmcgYSBwYW5lbCBuZXZlciBmbGlwcyB0aGUgbW9kZS5cbiAgY29uc3QgZGVjbGFyZWRTbG90cyA9IFBBTkVMX09SREVSLmZpbHRlcigoc2xvdCkgPT4gZGVjbGFyZWRbc2xvdF0pO1xuXG4gIC8vIFNvbG8gbW9kZTogYSBzaW5nbGUgcGFuZWwgaXMgZGVjbGFyZWQgKGUuZy4ganVzdCBgQ29udGVudGAsIHdpdGggbm9cbiAgLy8gUmlnaHRQYW5lbC9MZWZ0UGFuZWwvU3BsaXQgaW4gdGhlIHRyZWUpIC0gbm90aGluZyB0byByZXNpemUgYWdhaW5zdCwgc28gaG9zdFxuICAvLyBpdCBpbiBhIHBsYWluIGRpdiBhbmQgc2tpcCByZWFjdC1yZXNpemFibGUtcGFuZWxzIGVudGlyZWx5LiBCZWNhdXNlIHRoZVxuICAvLyBjaGVjayBpcyBvbiBERUNMQVJFRCBwYW5lbHMsIHRvZ2dsaW5nIGEgKmRlY2xhcmVkKiBwYW5lbCdzIHZpc2liaWxpdHkga2VlcHNcbiAgLy8gdGhlIG1vZGUgc3RhYmxlLCBzbyBgQ29udGVudGAgaXMgbmV2ZXIgcmVtb3VudGVkIGJ5IGEgc2hvdy9oaWRlLiBUaGUgbW9kZVxuICAvLyBvbmx5IGZsaXBzIHdoZW4gYSBwYW5lbCBtYXJrZXIgaXMgYWRkZWQgdG8gLyByZW1vdmVkIGZyb20gdGhlIHRyZWUgKGFcbiAgLy8gc3RydWN0dXJhbCBjaGFuZ2UpLCB3aGVyZSBhIG9uZS10aW1lIHJlbW91bnQgaXMgYWNjZXB0YWJsZS5cbiAgY29uc3QgaXNTb2xvID0gZGVjbGFyZWRTbG90cy5sZW5ndGggPD0gMTtcbiAgY29uc3Qgc29sb1Nsb3QgPSBkZWNsYXJlZFNsb3RzWzBdO1xuXG4gIC8vIGNvbnRlbnQgZmxleGVzIChubyBmaXhlZCBzaXplKTsgb3RoZXJzIHVzZSB0aGUgZGVjbGFyZWQgZGVmYXVsdCwgZmFsbGluZ1xuICAvLyBiYWNrIHRvIHRoZSBwZXJzaXN0ZWQvY29uZmlnIHNpemUuXG4gIGNvbnN0IGRlZmF1bHRTaXplRm9yID0gKHNsb3Q6IFNsb3RLZXkpOiBTaXplIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoc2xvdCA9PT0gU2xvdC5jb250ZW50KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBkZWNsYXJlZFtzbG90XT8uZGVmYXVsdFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0uc2l6ZTtcbiAgfTtcblxuICAvLyBPbmx5IHRoZSBwYW5lbHMgdGhhdCBhcmUgZGVjbGFyZWQgQU5EIGN1cnJlbnRseSBzaG93bi4gQ2xvc2VkL2hpZGRlbiBwYW5lbHNcbiAgLy8gYXJlIG5vdCByZW5kZXJlZCBhdCBhbGwgLSBubyByZXNlcnZlZCBzcGFjZS5cbiAgY29uc3QgcGFuZWxJdGVtczogUGFuZWxJdGVtW10gPSBQQU5FTF9PUkRFUi5maWx0ZXIoXG4gICAgKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdICYmIGlzU2hvd24oc2xvdClcbiAgKS5tYXAoKHNsb3QpID0+ICh7XG4gICAgaWQ6IHNsb3QsXG4gICAgZGVmYXVsdFNpemU6IGRlZmF1bHRTaXplRm9yKHNsb3QpLFxuICAgIG1pblNpemU6IGRlY2xhcmVkW3Nsb3RdPy5taW5TaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1pblNpemUsXG4gICAgbWF4U2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1heFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZTogc2xvdCAhPT0gU2xvdC5jb250ZW50ICYmIChkZWNsYXJlZFtzbG90XT8uY29sbGFwc2libGUgPz8gdHJ1ZSksXG4gIH0pKTtcblxuICByZXR1cm4gKFxuICAgIDxQYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17cmVnaXN0cnl9PlxuICAgICAgPExheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25vZGVzfT5cbiAgICAgICAgPFN0eWxlZExheW91dCBkYXRhLWRzLWlkPVwiTGF5b3V0XCI+XG4gICAgICAgICAge2lzU29sb1xuICAgICAgICAgICAgPyAvLyBMb25lIHBhbmVsIC0gaG9zdCBpdCBpbiBhIHBsYWluIGRpdiwgbm8gcmVzaXphYmxlIEdyb3VwLiBIaWRkZW5cbiAgICAgICAgICAgICAgLy8gbG9uZSBwYW5lbHMgcmVuZGVyIG5vdGhpbmcgKENvbnRlbnQgaXMgYWx3YXlzIHNob3duKS5cbiAgICAgICAgICAgICAgc29sb1Nsb3QgJiZcbiAgICAgICAgICAgICAgaXNTaG93bihzb2xvU2xvdCkgJiYgPFN0eWxlZFNvbG9Ib3N0IHJlZj17aG9zdFJlZnNbc29sb1Nsb3RdfSAvPlxuICAgICAgICAgICAgOiBwYW5lbEl0ZW1zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIC8vIGBrZXlgID0gdGhlIHBlcnNpc3RlbmNlIG5hbWVzcGFjZS4gcmVhY3QtcmVzaXphYmxlLXBhbmVsc1xuICAgICAgICAgICAgICAgIC8vIHJlYWRzIHN0b3JlZCBzaXplcyBvbmx5IG9uIG1vdW50LCBhbmQgdGhpcyBncm91cCBzdGF5c1xuICAgICAgICAgICAgICAgIC8vIG1vdW50ZWQgYWNyb3NzIG5hdmlnYXRpb24gLSBzbyByZW1vdW50IGl0IHdoZW4gdGhlIGtleVxuICAgICAgICAgICAgICAgIC8vIGNoYW5nZXMgdG8gbG9hZCBUSEFUIGluc3RhbmNlJ3Mgc2l6ZXMuIFVzZSBjYXNlOlxuICAgICAgICAgICAgICAgIC8vIHBlci1yb3V0ZS9wZXItaW5zdGFuY2Ugc2l6ZSBtZW1vcnkgKGUuZy5cbiAgICAgICAgICAgICAgICAvLyBgcGVyc2lzdGVuY2VLZXk9e2BsYXlvdXQ6JHtyb3V0ZUlkfWB9YCkgLSBkcmFnIHRoZSBjaGF0IHdpZGVcbiAgICAgICAgICAgICAgICAvLyBvbiBwYWdlIEEsIHN3aXRjaCB0byBwYWdlIEIgKGl0cyBvd24gd2lkdGhzKSwgY29tZSBiYWNrIHRvIEFcbiAgICAgICAgICAgICAgICAvLyBhbmQgZmluZCBBJ3Mgd2lkdGhzIHJlc3RvcmVkLiBUaGUga2V5IG9ubHkgY2hhbmdlcyBvblxuICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlIHN3aXRjaCwgbmV2ZXIgb24gcGFuZWwgb3Blbi9jbG9zZSwgc28gbm9ybWFsXG4gICAgICAgICAgICAgICAgLy8gdG9nZ2xpbmcgc3RheXMgcmVtb3VudC1mcmVlLlxuICAgICAgICAgICAgICAgIDxQYW5lbFxuICAgICAgICAgICAgICAgICAga2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHBhbmVscz17cGFuZWxJdGVtc31cbiAgICAgICAgICAgICAgICAgIHBlcnNpc3RlbmNlS2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHN0b3JhZ2U9e3Jlc29sdmVkU3RvcmFnZX1cbiAgICAgICAgICAgICAgICAgIGhvc3RGb3I9eyhpZCkgPT4gaG9zdFJlZnNbaWQgYXMgU2xvdEtleV19XG4gICAgICAgICAgICAgICAgICBvblJlc2l6ZT17KGlkLCBzaXplKSA9PlxuICAgICAgICAgICAgICAgICAgICBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5yZXNpemUoc2l6ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uQ29sbGFwc2U9eyhpZCkgPT4gcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0uaGlkZSgpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZExheW91dD5cbiAgICAgIDwvTGF5b3V0UG9ydGFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L1BhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHVibGljIExheW91dCAtIHRoZSByZXNpemFibGUgcGFuZWwgcm93ICsgY29tcG91bmQgcGFydHMgYXMgc3RhdGljcyAgICAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIExheW91dENvbXBvbmVudCA9IHR5cGVvZiBMYXlvdXRCYXNlICYge1xuICBQcm92aWRlcjogdHlwZW9mIExheW91dFByb3ZpZGVyO1xuICBMZWZ0UGFuZWw6IHR5cGVvZiBMZWZ0UGFuZWw7XG4gIExlZnRQYW5lbEhlYWRlcjogdHlwZW9mIExlZnRQYW5lbEhlYWRlcjtcbiAgTGVmdFBhbmVsRm9vdGVyOiB0eXBlb2YgTGVmdFBhbmVsRm9vdGVyO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgUmlnaHRQYW5lbEhlYWRlcjogdHlwZW9mIFJpZ2h0UGFuZWxIZWFkZXI7XG4gIFJpZ2h0UGFuZWxGb290ZXI6IHR5cGVvZiBSaWdodFBhbmVsRm9vdGVyO1xuICBDb250ZW50OiB0eXBlb2YgQ29udGVudDtcbiAgU3BsaXQ6IHR5cGVvZiBTcGxpdDtcbiAgU3BsaXRIZWFkZXI6IHR5cGVvZiBTcGxpdEhlYWRlcjtcbiAgU3BsaXRGb290ZXI6IHR5cGVvZiBTcGxpdEZvb3Rlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXlvdXQgPSBMYXlvdXRCYXNlIGFzIExheW91dENvbXBvbmVudDtcblxuTGF5b3V0LlByb3ZpZGVyID0gTGF5b3V0UHJvdmlkZXI7XG5MYXlvdXQuTGVmdFBhbmVsID0gTGVmdFBhbmVsO1xuTGF5b3V0LkxlZnRQYW5lbEhlYWRlciA9IExlZnRQYW5lbEhlYWRlcjtcbkxheW91dC5MZWZ0UGFuZWxGb290ZXIgPSBMZWZ0UGFuZWxGb290ZXI7XG5MYXlvdXQuUmlnaHRQYW5lbCA9IFJpZ2h0UGFuZWw7XG5MYXlvdXQuUmlnaHRQYW5lbEhlYWRlciA9IFJpZ2h0UGFuZWxIZWFkZXI7XG5MYXlvdXQuUmlnaHRQYW5lbEZvb3RlciA9IFJpZ2h0UGFuZWxGb290ZXI7XG5MYXlvdXQuQ29udGVudCA9IENvbnRlbnQ7XG5MYXlvdXQuU3BsaXQgPSBTcGxpdDtcbkxheW91dC5TcGxpdEhlYWRlciA9IFNwbGl0SGVhZGVyO1xuTGF5b3V0LlNwbGl0Rm9vdGVyID0gU3BsaXRGb290ZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0V1QiJ9 */");export const Layout=function({children,persistenceKey,storage}){let[declared,setDeclared]=useState({}),{state:layoutState,...panelCallbacks}=useLayout(),persistence=useLayoutPersistence(),resolvedKey=persistenceKey??persistence.persistenceKey,resolvedStorage=storage??persistence.storage,isShown=slot=>layoutState[slot].visible,registry=useMemo(()=>({register:(slot,reg)=>setDeclared(prev=>({...prev,[slot]:reg})),unregister:slot=>setDeclared(prev=>{if(!(slot in prev))return prev;let next={...prev};return delete next[slot],next})}),[]),[nodes,hostRefs]=usePortalContainerRefs(PANEL_ORDER);useGlobalCssVariables(nodes);let declaredSlots=PANEL_ORDER.filter(slot=>declared[slot]),isSolo=declaredSlots.length<=1,soloSlot=declaredSlots[0],defaultSizeFor=slot=>{if(slot!==Slot.content)return declared[slot]?.defaultSize??layoutState[slot].size},panelItems=PANEL_ORDER.filter(slot=>declared[slot]&&isShown(slot)).map(slot=>({id:slot,defaultSize:defaultSizeFor(slot),minSize:declared[slot]?.minSize??layoutState[slot].minSize,maxSize:declared[slot]?.maxSize??layoutState[slot].maxSize,collapsible:slot!==Slot.content&&(declared[slot]?.collapsible??!0)}));return React.createElement(PanelRegistryContext.Provider,{value:registry},React.createElement(LayoutPortalContext.Provider,{value:nodes},React.createElement(StyledLayout,{"data-ds-id":"Layout"},isSolo?soloSlot&&isShown(soloSlot)&&React.createElement(StyledSoloHost,{ref:hostRefs[soloSlot]}):panelItems.length>0&&React.createElement(Panel,{key:resolvedKey,panels:panelItems,persistenceKey:resolvedKey,storage:resolvedStorage,hostFor:id=>hostRefs[id],onResize:(id,size)=>panelCallbacks[id].resize(size),onCollapse:id=>panelCallbacks[id].hide()}),children)))};Layout.Provider=LayoutProvider,Layout.LeftPanel=LeftPanel,Layout.LeftPanelHeader=LeftPanelHeader,Layout.LeftPanelFooter=LeftPanelFooter,Layout.RightPanel=RightPanel,Layout.RightPanelHeader=RightPanelHeader,Layout.RightPanelFooter=RightPanelFooter,Layout.Content=Content,Layout.Split=Split,Layout.SplitHeader=SplitHeader,Layout.SplitFooter=SplitFooter;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type { SidePanelProps } from "../-types";
3
+ /**
4
+ * Left side panel. Declares the `leftPanel` slot and portals its content into
5
+ * the Group's host while visible. Renders in-flow (a resizable column) - the
6
+ * offcanvas overlay / mobile sheet is deferred. `Layout.LeftPanelHeader` /
7
+ * `Layout.LeftPanelFooter` children stick to the panel edges; the remaining
8
+ * content scrolls.
9
+ */
10
+ export declare const LeftPanel: React.FC<SidePanelProps>;
@@ -0,0 +1 @@
1
+ import React from"react";import{Slot}from"../-constants";import{useDeclarePanel,useLayoutPortal,useVisibleChange}from"../registry";import{useLayout}from"../useLayout";import{PanelContainer}from"../PanelContainer";export const LeftPanel=({children,"aria-label":ariaLabel,defaultSize,minSize,maxSize,collapsible=!0,onVisibleChange})=>{let{isVisible}=useLayout()[Slot.leftPanel];return useDeclarePanel(Slot.leftPanel,{defaultSize,minSize,maxSize,collapsible}),useVisibleChange(isVisible,onVisibleChange),useLayoutPortal(Slot.leftPanel,isVisible?React.createElement(PanelContainer,{"aria-label":ariaLabel},children):null)};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { LeftPanelFooterProps } from "../-types";
3
+ /**
4
+ * Optional sticky footer for `Layout.LeftPanel` - place it among the panel's
5
+ * children; it sticks to the bottom while the rest of the content scrolls.
6
+ */
7
+ export declare function LeftPanelFooter({ children, "data-e2e-test-id": dataE2eTestId, }: LeftPanelFooterProps): React.ReactElement;
@@ -0,0 +1 @@
1
+ import React from"react";import{Sandwich}from"../../Internal/Sandwich/Sandwich";export function LeftPanelFooter({children,"data-e2e-test-id":dataE2eTestId}){return React.createElement(Sandwich.Footer,{"data-e2e-test-id":dataE2eTestId},children)}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { LeftPanelHeaderProps } from "../-types";
3
+ /**
4
+ * Optional sticky header for `Layout.LeftPanel` - place it among the panel's
5
+ * children; it sticks to the top while the rest of the content scrolls.
6
+ */
7
+ export declare function LeftPanelHeader({ leftSlot, rightSlot, "data-e2e-test-id": dataE2eTestId, }: LeftPanelHeaderProps): React.ReactElement;
@@ -0,0 +1 @@
1
+ import React from"react";import{Sandwich}from"../../Internal/Sandwich/Sandwich";import{PanelHeader}from"../../Internal/PanelHeader/PanelHeader";export function LeftPanelHeader({leftSlot,rightSlot,"data-e2e-test-id":dataE2eTestId}){return React.createElement(Sandwich.Header,{"data-e2e-test-id":dataE2eTestId},React.createElement(PanelHeader,{leftSlot:leftSlot,rightSlot:rightSlot}))}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { PanelContainerProps } from "./-types";
3
+ /**
4
+ * Shared shell of every layout panel: a flat, square-cornered Container
5
+ * hosting one scrollable region. Panel header/footer components
6
+ * (`Layout.LeftPanelHeader` etc.) render anywhere among `children` and stick
7
+ * to the edges; everything else scrolls.
8
+ */
9
+ export declare function PanelContainer({ children, "aria-label": ariaLabel, scrollContainerRef, onScroll, showBorderLeft, "data-e2e-test-id": dataE2eTestId, }: PanelContainerProps): React.ReactElement;
@@ -0,0 +1 @@
1
+ import React from"react";import styled from"@emotion/styled";import{Sandwich}from"../Internal/Sandwich/Sandwich";import{Container}from"../Container/Container";let CustomContainer=styled(Container,{shouldForwardProp:prop=>"showBorderLeft"!==prop,target:"e1wvnxfu0",label:"CustomContainer"})(({theme,showBorderLeft})=>({height:"100%",borderLeft:showBorderLeft?`1px solid ${theme.values.color.border.secondary.default}`:void 0}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1BhbmVsQ29udGFpbmVyLnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvTGF5b3V0L1BhbmVsQ29udGFpbmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFNhbmR3aWNoIH0gZnJvbSBcIi4uL0ludGVybmFsL1NhbmR3aWNoL1NhbmR3aWNoXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbENvbnRhaW5lclByb3BzIH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbmNvbnN0IEJPUkRFUl9XSURUSCA9IDE7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSBcInNob3dCb3JkZXJMZWZ0XCIsXG59KTx7XG4gIHJvbGU/OiBSZWFjdC5BcmlhUm9sZTtcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIHNob3dCb3JkZXJMZWZ0OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIHNob3dCb3JkZXJMZWZ0IH0pID0+ICh7XG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIGJvcmRlckxlZnQ6IHNob3dCb3JkZXJMZWZ0XG4gICAgPyBgJHtCT1JERVJfV0lEVEh9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnNlY29uZGFyeS5kZWZhdWx0fWBcbiAgICA6IHVuZGVmaW5lZCxcbn0pKTtcblxuLyoqXG4gKiBTaGFyZWQgc2hlbGwgb2YgZXZlcnkgbGF5b3V0IHBhbmVsOiBhIGZsYXQsIHNxdWFyZS1jb3JuZXJlZCBDb250YWluZXJcbiAqIGhvc3Rpbmcgb25lIHNjcm9sbGFibGUgcmVnaW9uLiBQYW5lbCBoZWFkZXIvZm9vdGVyIGNvbXBvbmVudHNcbiAqIChgTGF5b3V0LkxlZnRQYW5lbEhlYWRlcmAgZXRjLikgcmVuZGVyIGFueXdoZXJlIGFtb25nIGBjaGlsZHJlbmAgYW5kIHN0aWNrXG4gKiB0byB0aGUgZWRnZXM7IGV2ZXJ5dGhpbmcgZWxzZSBzY3JvbGxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUGFuZWxDb250YWluZXIoe1xuICBjaGlsZHJlbixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbiAgc2hvd0JvcmRlckxlZnQgPSBmYWxzZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBQYW5lbENvbnRhaW5lclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICBlbGV2YXRpb249ezB9XG4gICAgICBzcXVhcmVDb3JuZXJzXG4gICAgICByb2xlPXthcmlhTGFiZWwgPyBcInJlZ2lvblwiIDogdW5kZWZpbmVkfVxuICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgc2hvd0JvcmRlckxlZnQ9e3Nob3dCb3JkZXJMZWZ0fVxuICAgICAgZGF0YS1kcy1pZD1cIlBhbmVsQ29udGFpbmVyXCJcbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgPlxuICAgICAgPFNhbmR3aWNoIHNjcm9sbFJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfSBvblNjcm9sbD17b25TY3JvbGx9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1NhbmR3aWNoPlxuICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVF3QiJ9 */");export function PanelContainer({children,"aria-label":ariaLabel,scrollContainerRef,onScroll,showBorderLeft=!1,"data-e2e-test-id":dataE2eTestId}){return React.createElement(CustomContainer,{elevation:0,squareCorners:!0,role:ariaLabel?"region":void 0,"aria-label":ariaLabel,showBorderLeft:showBorderLeft,"data-ds-id":"PanelContainer","data-e2e-test-id":dataE2eTestId},React.createElement(Sandwich,{scrollRef:scrollContainerRef,onScroll:onScroll},children))}
@@ -1,9 +1,11 @@
1
1
  import React from "react";
2
- import type { RightPanelProps } from "./-types";
2
+ import type { RightPanelProps } from "../-types";
3
3
  /**
4
4
  * Right side panel. Declares the `rightPanel` slot and portals its content into
5
5
  * the Group's host while visible. Renders in-flow (a resizable column) - the
6
6
  * offcanvas overlay / mobile sheet is deferred. Content is wrapped in a slot
7
- * that tracks the `--ds-layout-subnav-offset` var.
7
+ * that tracks the `--ds-layout-subnav-offset` var. `Layout.RightPanelHeader`
8
+ * / `Layout.RightPanelFooter` children stick to the panel edges; the
9
+ * remaining content scrolls.
8
10
  */
9
11
  export declare const RightPanel: React.FC<RightPanelProps>;
@@ -0,0 +1 @@
1
+ import React from"react";import styled from"@emotion/styled";import{Slot,SUBNAV_OFFSET_VAR}from"../-constants";import{useDeclarePanel,useLayoutPortal,useVisibleChange}from"../registry";import{useLayout}from"../useLayout";import{PanelContainer}from"../PanelContainer";let StyledRightPanelSlot=styled("div",{target:"e4qhg680",label:"StyledRightPanelSlot"})(({theme})=>({position:"absolute",left:0,right:0,bottom:0,top:`var(${SUBNAV_OFFSET_VAR}, 0px)`,overflow:"hidden",transition:`top ${theme.variables.animation.navSlide.open.duration} ${theme.variables.animation.navSlide.open.timingFunction}`}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwvUmlnaHRQYW5lbC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9SaWdodFBhbmVsL1JpZ2h0UGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgU2xvdCwgU1VCTkFWX09GRlNFVF9WQVIgfSBmcm9tIFwiLi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgdXNlRGVjbGFyZVBhbmVsLFxuICB1c2VMYXlvdXRQb3J0YWwsXG4gIHVzZVZpc2libGVDaGFuZ2UsXG59IGZyb20gXCIuLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0IH0gZnJvbSBcIi4uL3VzZUxheW91dFwiO1xuaW1wb3J0IHsgUGFuZWxDb250YWluZXIgfSBmcm9tIFwiLi4vUGFuZWxDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgUmlnaHRQYW5lbFByb3BzIH0gZnJvbSBcIi4uLy10eXBlc1wiO1xuXG4vLyBCdWlsdC1pbiBzbG90OiBvZmZzZXRzIHRoZSBwYW5lbCBjb250ZW50IGJ5IHRoZSBzdWJuYXYtb2Zmc2V0IHZhciAoMCB3aGVuXG4vLyB1bnNldCksIHRyYW5zaXRpb25lZCB3aXRoIHRoZSB0aGVtZSdzIGBuYXZTbGlkZWAgdGltaW5nIOKAlCBzbyB0aGUgcmlnaHQgcGFuZWxcbi8vIHRyYWNrcyBhIHN0aWNreSBzdWJuYXYgd2l0aCBubyB3aXJpbmcgb24gdGhlIGNvbnN1bWVyJ3Mgc2lkZS5cbmNvbnN0IFN0eWxlZFJpZ2h0UGFuZWxTbG90ID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICBsZWZ0OiAwLFxuICByaWdodDogMCxcbiAgYm90dG9tOiAwLFxuICB0b3A6IGB2YXIoJHtTVUJOQVZfT0ZGU0VUX1ZBUn0sIDBweClgLFxuICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgdHJhbnNpdGlvbjogYHRvcCAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubmF2U2xpZGUub3Blbi5kdXJhdGlvbn0gJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm5hdlNsaWRlLm9wZW4udGltaW5nRnVuY3Rpb259YCxcbn0pKTtcblxuLyoqXG4gKiBSaWdodCBzaWRlIHBhbmVsLiBEZWNsYXJlcyB0aGUgYHJpZ2h0UGFuZWxgIHNsb3QgYW5kIHBvcnRhbHMgaXRzIGNvbnRlbnQgaW50b1xuICogdGhlIEdyb3VwJ3MgaG9zdCB3aGlsZSB2aXNpYmxlLiBSZW5kZXJzIGluLWZsb3cgKGEgcmVzaXphYmxlIGNvbHVtbikgLSB0aGVcbiAqIG9mZmNhbnZhcyBvdmVybGF5IC8gbW9iaWxlIHNoZWV0IGlzIGRlZmVycmVkLiBDb250ZW50IGlzIHdyYXBwZWQgaW4gYSBzbG90XG4gKiB0aGF0IHRyYWNrcyB0aGUgYC0tZHMtbGF5b3V0LXN1Ym5hdi1vZmZzZXRgIHZhci4gYExheW91dC5SaWdodFBhbmVsSGVhZGVyYFxuICogLyBgTGF5b3V0LlJpZ2h0UGFuZWxGb290ZXJgIGNoaWxkcmVuIHN0aWNrIHRvIHRoZSBwYW5lbCBlZGdlczsgdGhlXG4gKiByZW1haW5pbmcgY29udGVudCBzY3JvbGxzLlxuICovXG5leHBvcnQgY29uc3QgUmlnaHRQYW5lbDogUmVhY3QuRkM8UmlnaHRQYW5lbFByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBkZWZhdWx0U2l6ZSA9IDM3OCxcbiAgbWluU2l6ZSA9IDMyOCxcbiAgbWF4U2l6ZSA9IFwiMzAlXCIsXG4gIGNvbGxhcHNpYmxlID0gZmFsc2UsXG4gIG9uVmlzaWJsZUNoYW5nZSxcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbn0pID0+IHtcbiAgY29uc3QgeyBpc1Zpc2libGUgfSA9IHVzZUxheW91dCgpW1Nsb3QucmlnaHRQYW5lbF07XG4gIHVzZURlY2xhcmVQYW5lbChTbG90LnJpZ2h0UGFuZWwsIHtcbiAgICBkZWZhdWx0U2l6ZSxcbiAgICBtaW5TaXplLFxuICAgIG1heFNpemUsXG4gICAgY29sbGFwc2libGUsXG4gIH0pO1xuICB1c2VWaXNpYmxlQ2hhbmdlKGlzVmlzaWJsZSwgb25WaXNpYmxlQ2hhbmdlKTtcbiAgcmV0dXJuIHVzZUxheW91dFBvcnRhbChcbiAgICBTbG90LnJpZ2h0UGFuZWwsXG4gICAgaXNWaXNpYmxlID8gKFxuICAgICAgPFN0eWxlZFJpZ2h0UGFuZWxTbG90PlxuICAgICAgICA8UGFuZWxDb250YWluZXJcbiAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyUmVmPXtzY3JvbGxDb250YWluZXJSZWZ9XG4gICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgIHNob3dCb3JkZXJMZWZ0XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUGFuZWxDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFJpZ2h0UGFuZWxTbG90PlxuICAgICkgOiBudWxsXG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWU2QiJ9 */");export const RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,onVisibleChange,"aria-label":ariaLabel,scrollContainerRef,onScroll})=>{let{isVisible}=useLayout()[Slot.rightPanel];return useDeclarePanel(Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible}),useVisibleChange(isVisible,onVisibleChange),useLayoutPortal(Slot.rightPanel,isVisible?React.createElement(StyledRightPanelSlot,null,React.createElement(PanelContainer,{"aria-label":ariaLabel,scrollContainerRef:scrollContainerRef,onScroll:onScroll,showBorderLeft:!0},children)):null)};