@amboss/design-system 3.50.0 → 3.50.1

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 (82) hide show
  1. package/build/cjs/components/Layout/-constants.d.ts +15 -13
  2. package/build/cjs/components/Layout/-constants.js +1 -1
  3. package/build/cjs/components/Layout/-types.d.ts +22 -15
  4. package/build/cjs/components/Layout/Layout.d.ts +2 -2
  5. package/build/cjs/components/Layout/Layout.js +1 -1
  6. package/build/cjs/components/Layout/LayoutCssVars.d.ts +24 -0
  7. package/build/cjs/components/Layout/LayoutCssVars.js +1 -0
  8. package/build/cjs/components/Layout/LayoutProvider.d.ts +2 -2
  9. package/build/cjs/components/Layout/LayoutProvider.js +1 -1
  10. package/build/cjs/components/Layout/LeftPanel.d.ts +8 -0
  11. package/build/cjs/components/Layout/LeftPanel.js +1 -0
  12. package/build/cjs/components/Layout/RightPanel.d.ts +1 -1
  13. package/build/cjs/components/Layout/RightPanel.js +1 -1
  14. package/build/cjs/components/Layout/Split.d.ts +1 -1
  15. package/build/cjs/components/Layout/context.d.ts +2 -2
  16. package/build/cjs/components/Layout/{varStore.d.ts → cssVarStore.d.ts} +3 -3
  17. package/build/cjs/components/Layout/cssVarStore.js +1 -0
  18. package/build/cjs/components/Layout/index.d.ts +2 -2
  19. package/build/cjs/components/Layout/index.js +1 -1
  20. package/build/cjs/components/Layout/reducer.js +1 -1
  21. package/build/cjs/components/Layout/registry.d.ts +3 -3
  22. package/build/cjs/components/Layout/store.d.ts +1 -1
  23. package/build/cjs/components/Layout/useLayout.d.ts +1 -1
  24. package/build/cjs/components/Layout/useLayout.js +1 -1
  25. package/build/cjs/components/Layout/usePanelRefs.d.ts +4 -4
  26. package/build/cjs/components/Layout/usePortalContainerRefs.d.ts +3 -3
  27. package/build/cjs/components/NavBar/NavBarSubMenuContainer.js +1 -1
  28. package/build/cjs/components/PromptInput/PromptInput.js +1 -1
  29. package/build/cjs/web-tokens/assets/icons.json +4 -0
  30. package/build/cjs/web-tokens/assets/icons16.json +4 -0
  31. package/build/cjs/web-tokens/layout-vars.d.ts +7 -0
  32. package/build/cjs/web-tokens/layout-vars.js +1 -0
  33. package/build/cjs/web-tokens/layout-vars.ts +11 -0
  34. package/build/cjs/web-tokens/visualConfig.d.ts +17 -0
  35. package/build/cjs/web-tokens/visualConfig.js +1 -1
  36. package/build/esm/components/Layout/-constants.d.ts +15 -13
  37. package/build/esm/components/Layout/-constants.js +1 -1
  38. package/build/esm/components/Layout/-types.d.ts +22 -15
  39. package/build/esm/components/Layout/Layout.d.ts +2 -2
  40. package/build/esm/components/Layout/Layout.js +1 -1
  41. package/build/esm/components/Layout/LayoutCssVars.d.ts +24 -0
  42. package/build/esm/components/Layout/LayoutCssVars.js +1 -0
  43. package/build/esm/components/Layout/LayoutProvider.d.ts +2 -2
  44. package/build/esm/components/Layout/LayoutProvider.js +1 -1
  45. package/build/esm/components/Layout/LeftPanel.d.ts +8 -0
  46. package/build/esm/components/Layout/LeftPanel.js +1 -0
  47. package/build/esm/components/Layout/RightPanel.d.ts +1 -1
  48. package/build/esm/components/Layout/RightPanel.js +1 -1
  49. package/build/esm/components/Layout/Split.d.ts +1 -1
  50. package/build/esm/components/Layout/context.d.ts +2 -2
  51. package/build/esm/components/Layout/{varStore.d.ts → cssVarStore.d.ts} +3 -3
  52. package/build/esm/components/Layout/cssVarStore.js +1 -0
  53. package/build/esm/components/Layout/index.d.ts +2 -2
  54. package/build/esm/components/Layout/index.js +1 -1
  55. package/build/esm/components/Layout/reducer.js +1 -1
  56. package/build/esm/components/Layout/registry.d.ts +3 -3
  57. package/build/esm/components/Layout/store.d.ts +1 -1
  58. package/build/esm/components/Layout/useLayout.d.ts +1 -1
  59. package/build/esm/components/Layout/useLayout.js +1 -1
  60. package/build/esm/components/Layout/usePanelRefs.d.ts +4 -4
  61. package/build/esm/components/Layout/usePortalContainerRefs.d.ts +3 -3
  62. package/build/esm/components/NavBar/NavBarSubMenuContainer.js +1 -1
  63. package/build/esm/components/PromptInput/PromptInput.js +1 -1
  64. package/build/esm/web-tokens/assets/icons.json +4 -0
  65. package/build/esm/web-tokens/assets/icons16.json +4 -0
  66. package/build/esm/web-tokens/layout-vars.d.ts +7 -0
  67. package/build/esm/web-tokens/layout-vars.js +1 -0
  68. package/build/esm/web-tokens/layout-vars.ts +11 -0
  69. package/build/esm/web-tokens/visualConfig.d.ts +17 -0
  70. package/build/esm/web-tokens/visualConfig.js +1 -1
  71. package/build/scss/_layout.scss +6 -0
  72. package/package.json +1 -1
  73. package/build/cjs/components/Layout/LayoutVars.d.ts +0 -18
  74. package/build/cjs/components/Layout/LayoutVars.js +0 -1
  75. package/build/cjs/components/Layout/Sidebar.d.ts +0 -8
  76. package/build/cjs/components/Layout/Sidebar.js +0 -1
  77. package/build/cjs/components/Layout/varStore.js +0 -1
  78. package/build/esm/components/Layout/LayoutVars.d.ts +0 -18
  79. package/build/esm/components/Layout/LayoutVars.js +0 -1
  80. package/build/esm/components/Layout/Sidebar.d.ts +0 -8
  81. package/build/esm/components/Layout/Sidebar.js +0 -1
  82. package/build/esm/components/Layout/varStore.js +0 -1
@@ -1,30 +1,32 @@
1
1
  /**
2
- * Slot keys the single source of truth. The key *types* (`SlotKey`,
2
+ * Slot keys - the single source of truth. The key *types* (`SlotKey`,
3
3
  * `SidePanelKey`, `PanelKey`) are derived from these const values below and
4
4
  * re-exported by `-types.ts`, so the literals are written exactly once.
5
5
  */
6
- /** Slot keys as named constants reference these instead of bare literals. */
6
+ /** Slot keys as named constants - reference these instead of bare literals. */
7
7
  export declare const Slot: {
8
- readonly sidebar: "sidebar";
8
+ readonly leftPanel: "leftPanel";
9
9
  readonly content: "content";
10
10
  readonly splitview: "splitview";
11
11
  readonly rightPanel: "rightPanel";
12
12
  };
13
13
  /** Side panels (open/close), left + right. */
14
- export declare const SIDE_PANELS: readonly ["sidebar", "rightPanel"];
15
- /** Flex panels content is always shown; splitview toggles. */
14
+ export declare const SIDE_PANELS: readonly ["leftPanel", "rightPanel"];
15
+ /** Flex panels - content is always shown; splitview toggles. */
16
16
  export declare const PANELS: readonly ["content", "splitview"];
17
17
  /** Left-to-right panel order in the resizable row (the full slot set). */
18
- export declare const PANEL_ORDER: readonly ["sidebar", "content", "splitview", "rightPanel"];
18
+ export declare const PANEL_ORDER: readonly ["leftPanel", "content", "splitview", "rightPanel"];
19
19
  export type SlotKey = (typeof PANEL_ORDER)[number];
20
20
  export type SidePanelKey = (typeof SIDE_PANELS)[number];
21
21
  export type PanelKey = (typeof PANELS)[number];
22
- /** Slide-animation timing. Injected on `:root` by `Layout.Provider` (`SlideVars`)
23
- * from the theme's `navSlide` token; read by animated layout surfaces. */
24
- export declare const SLIDE_VAR: {
25
- readonly duration: "--ds-layout-slide-duration";
26
- readonly easing: "--ds-layout-slide-easing";
27
- };
28
22
  /** Vertical offset for the right panel — set this (e.g. to a sticky subnav's
29
23
  * height) and the panel tracks it; defaults to `0` when unset. */
30
- export declare const SUBNAV_OFFSET_VAR = "--ds-layout-subnav-offset";
24
+ export declare const SUBNAV_OFFSET_VAR: "--ds-layout-subnav-offset";
25
+ /** Live pixel width of a layout part. Always defined — falls back to `0px`
26
+ * while the part is hidden, so consumers don't need a `var(--x, 0px)` default:
27
+ * `width: calc(100% - var(--ds-layout-rightPanel-width))`.
28
+ * Keyed by slot; `usePanelWidthVars` publishes one var per entry. */
29
+ export declare const PANEL_WIDTH_VAR: {
30
+ readonly content: "--ds-layout-content-width";
31
+ readonly rightPanel: "--ds-layout-rightPanel-width";
32
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get PANELS(){return PANELS},get PANEL_ORDER(){return PANEL_ORDER},get SIDE_PANELS(){return SIDE_PANELS},get SLIDE_VAR(){return SLIDE_VAR},get SUBNAV_OFFSET_VAR(){return SUBNAV_OFFSET_VAR},get Slot(){return Slot}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const Slot={sidebar:"sidebar",content:"content",splitview:"splitview",rightPanel:"rightPanel"},SIDE_PANELS=[Slot.sidebar,Slot.rightPanel],PANELS=[Slot.content,Slot.splitview],PANEL_ORDER=[Slot.sidebar,Slot.content,Slot.splitview,Slot.rightPanel],SLIDE_VAR={duration:"--ds-layout-slide-duration",easing:"--ds-layout-slide-easing"},SUBNAV_OFFSET_VAR="--ds-layout-subnav-offset";
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get PANELS(){return PANELS},get PANEL_ORDER(){return PANEL_ORDER},get PANEL_WIDTH_VAR(){return PANEL_WIDTH_VAR},get SIDE_PANELS(){return SIDE_PANELS},get SUBNAV_OFFSET_VAR(){return SUBNAV_OFFSET_VAR},get Slot(){return Slot}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _layoutvars=require("../../web-tokens/layout-vars"),Slot={leftPanel:"leftPanel",content:"content",splitview:"splitview",rightPanel:"rightPanel"},SIDE_PANELS=[Slot.leftPanel,Slot.rightPanel],PANELS=[Slot.content,Slot.splitview],PANEL_ORDER=[Slot.leftPanel,Slot.content,Slot.splitview,Slot.rightPanel],SUBNAV_OFFSET_VAR=_layoutvars.LAYOUT_VARS.subnavOffset,PANEL_WIDTH_VAR={content:_layoutvars.LAYOUT_VARS.contentWidth,rightPanel:_layoutvars.LAYOUT_VARS.rightPanelWidth};
@@ -2,19 +2,19 @@ import type React from "react";
2
2
  import type { PanelKey, SidePanelKey, SlotKey } from "./-constants";
3
3
  import type { IconProps } from "../Icon/Icon";
4
4
  /**
5
- * Surface = compound components (`Layout.Sidebar` / `Layout.RightPanel` /
5
+ * Surface = compound components (`Layout.LeftPanel` / `Layout.RightPanel` /
6
6
  * `Layout.Content` / `Layout.Split`) + one control hook
7
7
  * (`useLayout()`). The manager owns the open/collapsed/size state; components
8
8
  * render per that state. State engine is replaceable (see `LayoutStore`).
9
9
  *
10
- * Slots (max 4 panels, max 3 visible at once budget enforcement deferred):
11
- * sidebar | content | splitview | rightPanel
10
+ * Slots (max 4 panels, max 3 visible at once - budget enforcement deferred):
11
+ * leftPanel | content | splitview | rightPanel
12
12
  */
13
13
  /** A size: plain number = pixels; unitless string = percentage ("10%"). */
14
14
  export type Size = number | string;
15
15
  /**
16
- * - `sidebar` in-flow resizable panel.
17
- * - `offcanvas` detached desktop overlay. ⚠️ **RESERVED not implemented yet.**
16
+ * - `sidebar` - in-flow resizable panel.
17
+ * - `offcanvas` - detached desktop overlay. ⚠️ **RESERVED - not implemented yet.**
18
18
  * Currently treated like `sidebar` (renders in-flow); the overlay
19
19
  * implementation lands in a later commit.
20
20
  */
@@ -44,7 +44,7 @@ export type PanelState = {
44
44
  maxSize?: Size;
45
45
  };
46
46
  export type LayoutState = {
47
- sidebar: SidePanelState;
47
+ leftPanel: SidePanelState;
48
48
  rightPanel: SidePanelState;
49
49
  content: PanelState;
50
50
  splitview: PanelState;
@@ -64,7 +64,7 @@ export type PanelConfig = {
64
64
  maxSize?: Size;
65
65
  };
66
66
  export type LayoutConfig = {
67
- sidebar?: SidePanelConfig;
67
+ leftPanel?: SidePanelConfig;
68
68
  rightPanel?: SidePanelConfig;
69
69
  content?: PanelConfig;
70
70
  splitview?: PanelConfig;
@@ -83,7 +83,7 @@ export type LayoutAction = {
83
83
  size: Size;
84
84
  }
85
85
  /** Restore one slot (or all, if omitted) to its config-default state.
86
- * Page panels default hidden, so this also hides them handy on unmount. */
86
+ * Page panels default hidden, so this also hides them - handy on unmount. */
87
87
  | {
88
88
  type: "reset";
89
89
  slot?: SlotKey;
@@ -106,11 +106,17 @@ export type LayoutStorage = {
106
106
  setItem: (key: string, value: string) => void;
107
107
  };
108
108
  export type SidePanelHandle = {
109
+ /** Live state for this slot (visibility, size, variant). */
109
110
  state: SidePanelState;
111
+ /** Whether the slot is currently shown. */
110
112
  isVisible: boolean;
113
+ /** Show the slot. */
111
114
  show: () => void;
115
+ /** Hide the slot. */
112
116
  hide: () => void;
117
+ /** Set the slot size (number = px, unitless string = %). */
113
118
  resize: (size: Size) => void;
119
+ /** Switch render variant (reserved - `offcanvas` not implemented). */
114
120
  setVariant: (variant: Variant) => void;
115
121
  /** Restore this slot to its config default (hides it for page panels). */
116
122
  reset: () => void;
@@ -126,7 +132,7 @@ export type PanelHandle = {
126
132
  };
127
133
  export type LayoutValue = {
128
134
  state: LayoutState;
129
- sidebar: SidePanelHandle;
135
+ leftPanel: SidePanelHandle;
130
136
  rightPanel: SidePanelHandle;
131
137
  content: PanelHandle;
132
138
  splitview: PanelHandle;
@@ -135,6 +141,7 @@ export type SidePanelProps = {
135
141
  children: React.ReactNode;
136
142
  variant?: Variant;
137
143
  collapsible?: boolean;
144
+ /** Number = pixels, unitless string = percent (e.g. `"30%"`). */
138
145
  defaultSize?: Size;
139
146
  minSize?: Size;
140
147
  maxSize?: Size;
@@ -143,31 +150,31 @@ export type SidePanelProps = {
143
150
  };
144
151
  export type ContentProps = {
145
152
  children: React.ReactNode;
153
+ /** Number = pixels, unitless string = percent (e.g. `"30%"`). */
146
154
  minSize?: Size;
147
155
  maxSize?: Size;
148
156
  };
149
157
  export type SplitProps = {
150
158
  children: React.ReactNode;
159
+ /** Number = pixels, unitless string = percent (e.g. `"30%"`). */
151
160
  defaultSize?: Size;
152
161
  minSize?: Size;
153
162
  maxSize?: Size;
154
163
  };
155
164
  export type LayoutProviderProps = {
156
165
  children: React.ReactNode;
166
+ /** Per-slot defaults (`leftPanel` / `rightPanel` / `content` / `splitview`) - e.g. `defaultVisible`, `defaultSize`, `minSize`, `maxSize`, `collapsible`. */
157
167
  config?: LayoutConfig;
158
168
  store?: LayoutStore;
159
- /** Persistence config for the whole layout namespace. The Provider does NOT
160
- * read these — it publishes them to the nested `<Layout>` (which owns
161
- * persistence). Kept here so consumers configure everything in one place. */
169
+ /** Persistence config for the whole layout namespace. */
162
170
  persistenceKey?: string;
163
171
  storage?: LayoutStorage;
164
172
  };
165
173
  export type LayoutProps = {
166
174
  children: React.ReactNode;
167
- /** Persist panel SIZES (via react-resizable-panels), keyed by this. Open/
168
- * visible/variant ("intent") persistence is separate and deferred. Falls
169
- * back to the values on `Layout.Provider` when omitted. */
175
+ /** Provide a unique key to save panel sizes on your domain, e.g. `layout-route`. */
170
176
  persistenceKey?: string;
177
+ /** Where to save sizes, e.g. `window.localStorage` or `window.sessionStorage`. */
171
178
  storage?: LayoutStorage;
172
179
  };
173
180
  /**
@@ -2,13 +2,13 @@ import React from "react";
2
2
  import { LayoutProvider } from "./LayoutProvider";
3
3
  import { Content } from "./Content";
4
4
  import { RightPanel } from "./RightPanel";
5
- import { Sidebar } from "./Sidebar";
5
+ import { LeftPanel } from "./LeftPanel";
6
6
  import { Split } from "./Split";
7
7
  import type { LayoutProps } from "./-types";
8
8
  declare function LayoutBase({ children, persistenceKey, storage, }: LayoutProps): React.ReactElement;
9
9
  type LayoutComponent = typeof LayoutBase & {
10
10
  Provider: typeof LayoutProvider;
11
- Sidebar: typeof Sidebar;
11
+ LeftPanel: typeof LeftPanel;
12
12
  RightPanel: typeof RightPanel;
13
13
  Content: typeof Content;
14
14
  Split: typeof Split;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Layout",{enumerable:!0,get:function(){return Layout}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Panel=require("../Internal/Panel/Panel"),_constants=require("./-constants"),_context=require("./context"),_LayoutProvider=require("./LayoutProvider"),_Content=require("./Content"),_RightPanel=require("./RightPanel"),_Sidebar=require("./Sidebar"),_Split=require("./Split"),_registry=require("./registry"),_usePortalContainerRefs=require("./usePortalContainerRefs"),_useLayout=require("./useLayout"),StyledLayout=(0,_styled.default)("div",{target:"eu1s17s0",label:"StyledLayout"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBQYW5lbCB9IGZyb20gXCIuLi9JbnRlcm5hbC9QYW5lbC9QYW5lbFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEl0ZW0gfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB7IFBBTkVMX09SREVSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQgeyBMYXlvdXRQcm92aWRlciB9IGZyb20gXCIuL0xheW91dFByb3ZpZGVyXCI7XG5pbXBvcnQgeyBDb250ZW50IH0gZnJvbSBcIi4vQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWxcIjtcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi9TaWRlYmFyXCI7XG5pbXBvcnQgeyBTcGxpdCB9IGZyb20gXCIuL1NwbGl0XCI7XG5pbXBvcnQge1xuICBMYXlvdXRQb3J0YWxDb250ZXh0LFxuICBQYW5lbFJlZ2lzdHJ5Q29udGV4dCxcbiAgdHlwZSBQYW5lbFJlZyxcbiAgdHlwZSBQYW5lbFJlZ2lzdHJ5LFxufSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlUG9ydGFsQ29udGFpbmVyUmVmcyB9IGZyb20gXCIuL3VzZVBvcnRhbENvbnRhaW5lclJlZnNcIjtcbmltcG9ydCB7IHVzZUxheW91dCB9IGZyb20gXCIuL3VzZUxheW91dFwiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRQcm9wcywgU2l6ZSwgU2xvdEtleSB9IGZyb20gXCIuLy10eXBlc1wiO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGF5b3V0IOKAlCByZWdpc3RyeSArIGhvc3RzOyBtYXJrZXJzIGRlY2xhcmUvcG9ydGFsOyB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5jb25zdCBTdHlsZWRMYXlvdXQgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIFNvbG8tbW9kZSBob3N0OiBhIGxvbmUgcGFuZWwgKG5vIHJlc2l6YWJsZSBzaWJsaW5nKSBpcyBob3N0ZWQgaGVyZSBpbnN0ZWFkIG9mXG4vLyBpbnNpZGUgcmVhY3QtcmVzaXphYmxlLXBhbmVscy4gTWF0Y2hlcyB0aGUgcGVyLXBhbmVsIGhvc3QgdGhlIEdyb3VwIHJlbmRlcnNcbi8vIChgcmVsYXRpdmVgICsgZnVsbC1ibGVlZCkgc28gY29udGVudCByZWZsb3dzL3Njcm9sbHMgaWRlbnRpY2FsbHkgZWl0aGVyIHdheS5cbmNvbnN0IFN0eWxlZFNvbG9Ib3N0ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5mdW5jdGlvbiBMYXlvdXRCYXNlKHtcbiAgY2hpbGRyZW4sXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxufTogTGF5b3V0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbZGVjbGFyZWQsIHNldERlY2xhcmVkXSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsUmVnPj4+KFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IHsgc3RhdGU6IGxheW91dFN0YXRlLCAuLi5wYW5lbENhbGxiYWNrcyB9ID0gdXNlTGF5b3V0KCk7XG4gIGNvbnN0IHBlcnNpc3RlbmNlID0gdXNlTGF5b3V0UGVyc2lzdGVuY2UoKTtcbiAgY29uc3QgcmVzb2x2ZWRLZXkgPSBwZXJzaXN0ZW5jZUtleSA/PyBwZXJzaXN0ZW5jZS5wZXJzaXN0ZW5jZUtleTtcbiAgY29uc3QgcmVzb2x2ZWRTdG9yYWdlID0gc3RvcmFnZSA/PyBwZXJzaXN0ZW5jZS5zdG9yYWdlO1xuXG4gIGNvbnN0IGlzU2hvd24gPSAoc2xvdDogU2xvdEtleSk6IGJvb2xlYW4gPT4gbGF5b3V0U3RhdGVbc2xvdF0udmlzaWJsZTtcblxuICBjb25zdCByZWdpc3RyeSA9IHVzZU1lbW88UGFuZWxSZWdpc3RyeT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIHJlZ2lzdGVyOiAoc2xvdCwgcmVnKSA9PlxuICAgICAgICBzZXREZWNsYXJlZCgocHJldikgPT4gKHsgLi4ucHJldiwgW3Nsb3RdOiByZWcgfSkpLFxuICAgICAgdW5yZWdpc3RlcjogKHNsb3QpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiB7XG4gICAgICAgICAgaWYgKCEoc2xvdCBpbiBwcmV2KSkgcmV0dXJuIHByZXY7XG4gICAgICAgICAgY29uc3QgbmV4dCA9IHsgLi4ucHJldiB9O1xuICAgICAgICAgIGRlbGV0ZSBuZXh0W3Nsb3RdO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9KSxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IFtub2RlcywgaG9zdFJlZnNdID0gdXNlUG9ydGFsQ29udGFpbmVyUmVmcyhQQU5FTF9PUkRFUik7XG5cbiAgLy8gUGFuZWxzIHRoYXQgZXhpc3QgaW4gdGhlIGxheW91dCwgcmVnYXJkbGVzcyBvZiB2aXNpYmlsaXR5LiBEcml2ZXMgdGhlXG4gIC8vIHNvbG8tdnMtcmVzaXphYmxlIGRlY2lzaW9uIGJlbG93IOKAlCBrZXllZCBvbiBERUNMQVJFRCAobm90IHNob3duKSBzbyB0aGF0XG4gIC8vIHNob3dpbmcvaGlkaW5nIGEgcGFuZWwgbmV2ZXIgZmxpcHMgdGhlIG1vZGUuXG4gIGNvbnN0IGRlY2xhcmVkU2xvdHMgPSBQQU5FTF9PUkRFUi5maWx0ZXIoKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdKTtcblxuICAvLyBTb2xvIG1vZGU6IGEgc2luZ2xlIHBhbmVsIGlzIGRlY2xhcmVkIChlLmcuIGp1c3QgYENvbnRlbnRgLCB3aXRoIG5vXG4gIC8vIFJpZ2h0UGFuZWwvU2lkZWJhci9TcGxpdCBpbiB0aGUgdHJlZSkg4oCUIG5vdGhpbmcgdG8gcmVzaXplIGFnYWluc3QsIHNvIGhvc3RcbiAgLy8gaXQgaW4gYSBwbGFpbiBkaXYgYW5kIHNraXAgcmVhY3QtcmVzaXphYmxlLXBhbmVscyBlbnRpcmVseS4gQmVjYXVzZSB0aGVcbiAgLy8gY2hlY2sgaXMgb24gREVDTEFSRUQgcGFuZWxzLCB0b2dnbGluZyBhICpkZWNsYXJlZCogcGFuZWwncyB2aXNpYmlsaXR5IGtlZXBzXG4gIC8vIHRoZSBtb2RlIHN0YWJsZSwgc28gYENvbnRlbnRgIGlzIG5ldmVyIHJlbW91bnRlZCBieSBhIHNob3cvaGlkZS4gVGhlIG1vZGVcbiAgLy8gb25seSBmbGlwcyB3aGVuIGEgcGFuZWwgbWFya2VyIGlzIGFkZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlIChhXG4gIC8vIHN0cnVjdHVyYWwgY2hhbmdlKSwgd2hlcmUgYSBvbmUtdGltZSByZW1vdW50IGlzIGFjY2VwdGFibGUuXG4gIGNvbnN0IGlzU29sbyA9IGRlY2xhcmVkU2xvdHMubGVuZ3RoIDw9IDE7XG4gIGNvbnN0IHNvbG9TbG90ID0gZGVjbGFyZWRTbG90c1swXTtcblxuICAvLyBjb250ZW50IGZsZXhlcyAobm8gZml4ZWQgc2l6ZSk7IG90aGVycyB1c2UgdGhlIGRlY2xhcmVkIGRlZmF1bHQsIGZhbGxpbmdcbiAgLy8gYmFjayB0byB0aGUgcGVyc2lzdGVkL2NvbmZpZyBzaXplLlxuICBjb25zdCBkZWZhdWx0U2l6ZUZvciA9IChzbG90OiBTbG90S2V5KTogU2l6ZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHNsb3QgPT09IFNsb3QuY29udGVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZGVjbGFyZWRbc2xvdF0/LmRlZmF1bHRTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLnNpemU7XG4gIH07XG5cbiAgLy8gT25seSB0aGUgcGFuZWxzIHRoYXQgYXJlIGRlY2xhcmVkIEFORCBjdXJyZW50bHkgc2hvd24uIENsb3NlZC9oaWRkZW4gcGFuZWxzXG4gIC8vIGFyZSBub3QgcmVuZGVyZWQgYXQgYWxsIOKAlCBubyByZXNlcnZlZCBzcGFjZS5cbiAgY29uc3QgcGFuZWxJdGVtczogUGFuZWxJdGVtW10gPSBQQU5FTF9PUkRFUi5maWx0ZXIoXG4gICAgKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdICYmIGlzU2hvd24oc2xvdClcbiAgKS5tYXAoKHNsb3QpID0+ICh7XG4gICAgaWQ6IHNsb3QsXG4gICAgZGVmYXVsdFNpemU6IGRlZmF1bHRTaXplRm9yKHNsb3QpLFxuICAgIG1pblNpemU6IGRlY2xhcmVkW3Nsb3RdPy5taW5TaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1pblNpemUsXG4gICAgbWF4U2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1heFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZTogc2xvdCAhPT0gU2xvdC5jb250ZW50ICYmIChkZWNsYXJlZFtzbG90XT8uY29sbGFwc2libGUgPz8gdHJ1ZSksXG4gIH0pKTtcblxuICByZXR1cm4gKFxuICAgIDxQYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17cmVnaXN0cnl9PlxuICAgICAgPExheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25vZGVzfT5cbiAgICAgICAgPFN0eWxlZExheW91dCBkYXRhLWRzLWlkPVwiTGF5b3V0XCI+XG4gICAgICAgICAge2lzU29sb1xuICAgICAgICAgICAgPyAvLyBMb25lIHBhbmVsIOKAlCBob3N0IGl0IGluIGEgcGxhaW4gZGl2LCBubyByZXNpemFibGUgR3JvdXAuIEhpZGRlblxuICAgICAgICAgICAgICAvLyBsb25lIHBhbmVscyByZW5kZXIgbm90aGluZyAoQ29udGVudCBpcyBhbHdheXMgc2hvd24pLlxuICAgICAgICAgICAgICBzb2xvU2xvdCAmJlxuICAgICAgICAgICAgICBpc1Nob3duKHNvbG9TbG90KSAmJiA8U3R5bGVkU29sb0hvc3QgcmVmPXtob3N0UmVmc1tzb2xvU2xvdF19IC8+XG4gICAgICAgICAgICA6IHBhbmVsSXRlbXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgLy8gYGtleWAgPSB0aGUgcGVyc2lzdGVuY2UgbmFtZXNwYWNlLiByZWFjdC1yZXNpemFibGUtcGFuZWxzXG4gICAgICAgICAgICAgICAgLy8gcmVhZHMgc3RvcmVkIHNpemVzIG9ubHkgb24gbW91bnQsIGFuZCB0aGlzIGdyb3VwIHN0YXlzXG4gICAgICAgICAgICAgICAgLy8gbW91bnRlZCBhY3Jvc3MgbmF2aWdhdGlvbiDigJQgc28gcmVtb3VudCBpdCB3aGVuIHRoZSBrZXlcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VzIHRvIGxvYWQgVEhBVCBpbnN0YW5jZSdzIHNpemVzLiBVc2UgY2FzZTpcbiAgICAgICAgICAgICAgICAvLyBwZXItcm91dGUvcGVyLWluc3RhbmNlIHNpemUgbWVtb3J5IChlLmcuXG4gICAgICAgICAgICAgICAgLy8gYHBlcnNpc3RlbmNlS2V5PXtgbGF5b3V0OiR7cm91dGVJZH1gfWApIOKAlCBkcmFnIHRoZSBjaGF0IHdpZGVcbiAgICAgICAgICAgICAgICAvLyBvbiBwYWdlIEEsIHN3aXRjaCB0byBwYWdlIEIgKGl0cyBvd24gd2lkdGhzKSwgY29tZSBiYWNrIHRvIEFcbiAgICAgICAgICAgICAgICAvLyBhbmQgZmluZCBBJ3Mgd2lkdGhzIHJlc3RvcmVkLiBUaGUga2V5IG9ubHkgY2hhbmdlcyBvblxuICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlIHN3aXRjaCwgbmV2ZXIgb24gcGFuZWwgb3Blbi9jbG9zZSwgc28gbm9ybWFsXG4gICAgICAgICAgICAgICAgLy8gdG9nZ2xpbmcgc3RheXMgcmVtb3VudC1mcmVlLlxuICAgICAgICAgICAgICAgIDxQYW5lbFxuICAgICAgICAgICAgICAgICAga2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHBhbmVscz17cGFuZWxJdGVtc31cbiAgICAgICAgICAgICAgICAgIHBlcnNpc3RlbmNlS2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHN0b3JhZ2U9e3Jlc29sdmVkU3RvcmFnZX1cbiAgICAgICAgICAgICAgICAgIGhvc3RGb3I9eyhpZCkgPT4gaG9zdFJlZnNbaWQgYXMgU2xvdEtleV19XG4gICAgICAgICAgICAgICAgICBvblJlc2l6ZT17KGlkLCBzaXplKSA9PlxuICAgICAgICAgICAgICAgICAgICBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5yZXNpemUoc2l6ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uQ29sbGFwc2U9eyhpZCkgPT4gcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0uaGlkZSgpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZExheW91dD5cbiAgICAgIDwvTGF5b3V0UG9ydGFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L1BhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHVibGljIExheW91dCDigJQgdGhlIHJlc2l6YWJsZSBwYW5lbCByb3cgKyBjb21wb3VuZCBwYXJ0cyBhcyBzdGF0aWNzICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnR5cGUgTGF5b3V0Q29tcG9uZW50ID0gdHlwZW9mIExheW91dEJhc2UgJiB7XG4gIFByb3ZpZGVyOiB0eXBlb2YgTGF5b3V0UHJvdmlkZXI7XG4gIFNpZGViYXI6IHR5cGVvZiBTaWRlYmFyO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgQ29udGVudDogdHlwZW9mIENvbnRlbnQ7XG4gIFNwbGl0OiB0eXBlb2YgU3BsaXQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0ID0gTGF5b3V0QmFzZSBhcyBMYXlvdXRDb21wb25lbnQ7XG5cbkxheW91dC5Qcm92aWRlciA9IExheW91dFByb3ZpZGVyO1xuTGF5b3V0LlNpZGViYXIgPSBTaWRlYmFyO1xuTGF5b3V0LlJpZ2h0UGFuZWwgPSBSaWdodFBhbmVsO1xuTGF5b3V0LkNvbnRlbnQgPSBDb250ZW50O1xuTGF5b3V0LlNwbGl0ID0gU3BsaXQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJxQiJ9 */"),StyledSoloHost=(0,_styled.default)("div",{target:"eu1s17s1",label:"StyledSoloHost"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBQYW5lbCB9IGZyb20gXCIuLi9JbnRlcm5hbC9QYW5lbC9QYW5lbFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEl0ZW0gfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB7IFBBTkVMX09SREVSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQgeyBMYXlvdXRQcm92aWRlciB9IGZyb20gXCIuL0xheW91dFByb3ZpZGVyXCI7XG5pbXBvcnQgeyBDb250ZW50IH0gZnJvbSBcIi4vQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWxcIjtcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi9TaWRlYmFyXCI7XG5pbXBvcnQgeyBTcGxpdCB9IGZyb20gXCIuL1NwbGl0XCI7XG5pbXBvcnQge1xuICBMYXlvdXRQb3J0YWxDb250ZXh0LFxuICBQYW5lbFJlZ2lzdHJ5Q29udGV4dCxcbiAgdHlwZSBQYW5lbFJlZyxcbiAgdHlwZSBQYW5lbFJlZ2lzdHJ5LFxufSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlUG9ydGFsQ29udGFpbmVyUmVmcyB9IGZyb20gXCIuL3VzZVBvcnRhbENvbnRhaW5lclJlZnNcIjtcbmltcG9ydCB7IHVzZUxheW91dCB9IGZyb20gXCIuL3VzZUxheW91dFwiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRQcm9wcywgU2l6ZSwgU2xvdEtleSB9IGZyb20gXCIuLy10eXBlc1wiO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGF5b3V0IOKAlCByZWdpc3RyeSArIGhvc3RzOyBtYXJrZXJzIGRlY2xhcmUvcG9ydGFsOyB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5jb25zdCBTdHlsZWRMYXlvdXQgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIFNvbG8tbW9kZSBob3N0OiBhIGxvbmUgcGFuZWwgKG5vIHJlc2l6YWJsZSBzaWJsaW5nKSBpcyBob3N0ZWQgaGVyZSBpbnN0ZWFkIG9mXG4vLyBpbnNpZGUgcmVhY3QtcmVzaXphYmxlLXBhbmVscy4gTWF0Y2hlcyB0aGUgcGVyLXBhbmVsIGhvc3QgdGhlIEdyb3VwIHJlbmRlcnNcbi8vIChgcmVsYXRpdmVgICsgZnVsbC1ibGVlZCkgc28gY29udGVudCByZWZsb3dzL3Njcm9sbHMgaWRlbnRpY2FsbHkgZWl0aGVyIHdheS5cbmNvbnN0IFN0eWxlZFNvbG9Ib3N0ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5mdW5jdGlvbiBMYXlvdXRCYXNlKHtcbiAgY2hpbGRyZW4sXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxufTogTGF5b3V0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbZGVjbGFyZWQsIHNldERlY2xhcmVkXSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsUmVnPj4+KFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IHsgc3RhdGU6IGxheW91dFN0YXRlLCAuLi5wYW5lbENhbGxiYWNrcyB9ID0gdXNlTGF5b3V0KCk7XG4gIGNvbnN0IHBlcnNpc3RlbmNlID0gdXNlTGF5b3V0UGVyc2lzdGVuY2UoKTtcbiAgY29uc3QgcmVzb2x2ZWRLZXkgPSBwZXJzaXN0ZW5jZUtleSA/PyBwZXJzaXN0ZW5jZS5wZXJzaXN0ZW5jZUtleTtcbiAgY29uc3QgcmVzb2x2ZWRTdG9yYWdlID0gc3RvcmFnZSA/PyBwZXJzaXN0ZW5jZS5zdG9yYWdlO1xuXG4gIGNvbnN0IGlzU2hvd24gPSAoc2xvdDogU2xvdEtleSk6IGJvb2xlYW4gPT4gbGF5b3V0U3RhdGVbc2xvdF0udmlzaWJsZTtcblxuICBjb25zdCByZWdpc3RyeSA9IHVzZU1lbW88UGFuZWxSZWdpc3RyeT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIHJlZ2lzdGVyOiAoc2xvdCwgcmVnKSA9PlxuICAgICAgICBzZXREZWNsYXJlZCgocHJldikgPT4gKHsgLi4ucHJldiwgW3Nsb3RdOiByZWcgfSkpLFxuICAgICAgdW5yZWdpc3RlcjogKHNsb3QpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiB7XG4gICAgICAgICAgaWYgKCEoc2xvdCBpbiBwcmV2KSkgcmV0dXJuIHByZXY7XG4gICAgICAgICAgY29uc3QgbmV4dCA9IHsgLi4ucHJldiB9O1xuICAgICAgICAgIGRlbGV0ZSBuZXh0W3Nsb3RdO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9KSxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IFtub2RlcywgaG9zdFJlZnNdID0gdXNlUG9ydGFsQ29udGFpbmVyUmVmcyhQQU5FTF9PUkRFUik7XG5cbiAgLy8gUGFuZWxzIHRoYXQgZXhpc3QgaW4gdGhlIGxheW91dCwgcmVnYXJkbGVzcyBvZiB2aXNpYmlsaXR5LiBEcml2ZXMgdGhlXG4gIC8vIHNvbG8tdnMtcmVzaXphYmxlIGRlY2lzaW9uIGJlbG93IOKAlCBrZXllZCBvbiBERUNMQVJFRCAobm90IHNob3duKSBzbyB0aGF0XG4gIC8vIHNob3dpbmcvaGlkaW5nIGEgcGFuZWwgbmV2ZXIgZmxpcHMgdGhlIG1vZGUuXG4gIGNvbnN0IGRlY2xhcmVkU2xvdHMgPSBQQU5FTF9PUkRFUi5maWx0ZXIoKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdKTtcblxuICAvLyBTb2xvIG1vZGU6IGEgc2luZ2xlIHBhbmVsIGlzIGRlY2xhcmVkIChlLmcuIGp1c3QgYENvbnRlbnRgLCB3aXRoIG5vXG4gIC8vIFJpZ2h0UGFuZWwvU2lkZWJhci9TcGxpdCBpbiB0aGUgdHJlZSkg4oCUIG5vdGhpbmcgdG8gcmVzaXplIGFnYWluc3QsIHNvIGhvc3RcbiAgLy8gaXQgaW4gYSBwbGFpbiBkaXYgYW5kIHNraXAgcmVhY3QtcmVzaXphYmxlLXBhbmVscyBlbnRpcmVseS4gQmVjYXVzZSB0aGVcbiAgLy8gY2hlY2sgaXMgb24gREVDTEFSRUQgcGFuZWxzLCB0b2dnbGluZyBhICpkZWNsYXJlZCogcGFuZWwncyB2aXNpYmlsaXR5IGtlZXBzXG4gIC8vIHRoZSBtb2RlIHN0YWJsZSwgc28gYENvbnRlbnRgIGlzIG5ldmVyIHJlbW91bnRlZCBieSBhIHNob3cvaGlkZS4gVGhlIG1vZGVcbiAgLy8gb25seSBmbGlwcyB3aGVuIGEgcGFuZWwgbWFya2VyIGlzIGFkZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlIChhXG4gIC8vIHN0cnVjdHVyYWwgY2hhbmdlKSwgd2hlcmUgYSBvbmUtdGltZSByZW1vdW50IGlzIGFjY2VwdGFibGUuXG4gIGNvbnN0IGlzU29sbyA9IGRlY2xhcmVkU2xvdHMubGVuZ3RoIDw9IDE7XG4gIGNvbnN0IHNvbG9TbG90ID0gZGVjbGFyZWRTbG90c1swXTtcblxuICAvLyBjb250ZW50IGZsZXhlcyAobm8gZml4ZWQgc2l6ZSk7IG90aGVycyB1c2UgdGhlIGRlY2xhcmVkIGRlZmF1bHQsIGZhbGxpbmdcbiAgLy8gYmFjayB0byB0aGUgcGVyc2lzdGVkL2NvbmZpZyBzaXplLlxuICBjb25zdCBkZWZhdWx0U2l6ZUZvciA9IChzbG90OiBTbG90S2V5KTogU2l6ZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHNsb3QgPT09IFNsb3QuY29udGVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZGVjbGFyZWRbc2xvdF0/LmRlZmF1bHRTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLnNpemU7XG4gIH07XG5cbiAgLy8gT25seSB0aGUgcGFuZWxzIHRoYXQgYXJlIGRlY2xhcmVkIEFORCBjdXJyZW50bHkgc2hvd24uIENsb3NlZC9oaWRkZW4gcGFuZWxzXG4gIC8vIGFyZSBub3QgcmVuZGVyZWQgYXQgYWxsIOKAlCBubyByZXNlcnZlZCBzcGFjZS5cbiAgY29uc3QgcGFuZWxJdGVtczogUGFuZWxJdGVtW10gPSBQQU5FTF9PUkRFUi5maWx0ZXIoXG4gICAgKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdICYmIGlzU2hvd24oc2xvdClcbiAgKS5tYXAoKHNsb3QpID0+ICh7XG4gICAgaWQ6IHNsb3QsXG4gICAgZGVmYXVsdFNpemU6IGRlZmF1bHRTaXplRm9yKHNsb3QpLFxuICAgIG1pblNpemU6IGRlY2xhcmVkW3Nsb3RdPy5taW5TaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1pblNpemUsXG4gICAgbWF4U2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1heFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZTogc2xvdCAhPT0gU2xvdC5jb250ZW50ICYmIChkZWNsYXJlZFtzbG90XT8uY29sbGFwc2libGUgPz8gdHJ1ZSksXG4gIH0pKTtcblxuICByZXR1cm4gKFxuICAgIDxQYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17cmVnaXN0cnl9PlxuICAgICAgPExheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25vZGVzfT5cbiAgICAgICAgPFN0eWxlZExheW91dCBkYXRhLWRzLWlkPVwiTGF5b3V0XCI+XG4gICAgICAgICAge2lzU29sb1xuICAgICAgICAgICAgPyAvLyBMb25lIHBhbmVsIOKAlCBob3N0IGl0IGluIGEgcGxhaW4gZGl2LCBubyByZXNpemFibGUgR3JvdXAuIEhpZGRlblxuICAgICAgICAgICAgICAvLyBsb25lIHBhbmVscyByZW5kZXIgbm90aGluZyAoQ29udGVudCBpcyBhbHdheXMgc2hvd24pLlxuICAgICAgICAgICAgICBzb2xvU2xvdCAmJlxuICAgICAgICAgICAgICBpc1Nob3duKHNvbG9TbG90KSAmJiA8U3R5bGVkU29sb0hvc3QgcmVmPXtob3N0UmVmc1tzb2xvU2xvdF19IC8+XG4gICAgICAgICAgICA6IHBhbmVsSXRlbXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgLy8gYGtleWAgPSB0aGUgcGVyc2lzdGVuY2UgbmFtZXNwYWNlLiByZWFjdC1yZXNpemFibGUtcGFuZWxzXG4gICAgICAgICAgICAgICAgLy8gcmVhZHMgc3RvcmVkIHNpemVzIG9ubHkgb24gbW91bnQsIGFuZCB0aGlzIGdyb3VwIHN0YXlzXG4gICAgICAgICAgICAgICAgLy8gbW91bnRlZCBhY3Jvc3MgbmF2aWdhdGlvbiDigJQgc28gcmVtb3VudCBpdCB3aGVuIHRoZSBrZXlcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VzIHRvIGxvYWQgVEhBVCBpbnN0YW5jZSdzIHNpemVzLiBVc2UgY2FzZTpcbiAgICAgICAgICAgICAgICAvLyBwZXItcm91dGUvcGVyLWluc3RhbmNlIHNpemUgbWVtb3J5IChlLmcuXG4gICAgICAgICAgICAgICAgLy8gYHBlcnNpc3RlbmNlS2V5PXtgbGF5b3V0OiR7cm91dGVJZH1gfWApIOKAlCBkcmFnIHRoZSBjaGF0IHdpZGVcbiAgICAgICAgICAgICAgICAvLyBvbiBwYWdlIEEsIHN3aXRjaCB0byBwYWdlIEIgKGl0cyBvd24gd2lkdGhzKSwgY29tZSBiYWNrIHRvIEFcbiAgICAgICAgICAgICAgICAvLyBhbmQgZmluZCBBJ3Mgd2lkdGhzIHJlc3RvcmVkLiBUaGUga2V5IG9ubHkgY2hhbmdlcyBvblxuICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlIHN3aXRjaCwgbmV2ZXIgb24gcGFuZWwgb3Blbi9jbG9zZSwgc28gbm9ybWFsXG4gICAgICAgICAgICAgICAgLy8gdG9nZ2xpbmcgc3RheXMgcmVtb3VudC1mcmVlLlxuICAgICAgICAgICAgICAgIDxQYW5lbFxuICAgICAgICAgICAgICAgICAga2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHBhbmVscz17cGFuZWxJdGVtc31cbiAgICAgICAgICAgICAgICAgIHBlcnNpc3RlbmNlS2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgICAgICAgICAgIHN0b3JhZ2U9e3Jlc29sdmVkU3RvcmFnZX1cbiAgICAgICAgICAgICAgICAgIGhvc3RGb3I9eyhpZCkgPT4gaG9zdFJlZnNbaWQgYXMgU2xvdEtleV19XG4gICAgICAgICAgICAgICAgICBvblJlc2l6ZT17KGlkLCBzaXplKSA9PlxuICAgICAgICAgICAgICAgICAgICBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5yZXNpemUoc2l6ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uQ29sbGFwc2U9eyhpZCkgPT4gcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0uaGlkZSgpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1N0eWxlZExheW91dD5cbiAgICAgIDwvTGF5b3V0UG9ydGFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L1BhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHVibGljIExheW91dCDigJQgdGhlIHJlc2l6YWJsZSBwYW5lbCByb3cgKyBjb21wb3VuZCBwYXJ0cyBhcyBzdGF0aWNzICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnR5cGUgTGF5b3V0Q29tcG9uZW50ID0gdHlwZW9mIExheW91dEJhc2UgJiB7XG4gIFByb3ZpZGVyOiB0eXBlb2YgTGF5b3V0UHJvdmlkZXI7XG4gIFNpZGViYXI6IHR5cGVvZiBTaWRlYmFyO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgQ29udGVudDogdHlwZW9mIENvbnRlbnQ7XG4gIFNwbGl0OiB0eXBlb2YgU3BsaXQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0ID0gTGF5b3V0QmFzZSBhcyBMYXlvdXRDb21wb25lbnQ7XG5cbkxheW91dC5Qcm92aWRlciA9IExheW91dFByb3ZpZGVyO1xuTGF5b3V0LlNpZGViYXIgPSBTaWRlYmFyO1xuTGF5b3V0LlJpZ2h0UGFuZWwgPSBSaWdodFBhbmVsO1xuTGF5b3V0LkNvbnRlbnQgPSBDb250ZW50O1xuTGF5b3V0LlNwbGl0ID0gU3BsaXQ7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0N1QiJ9 */"),Layout=function({children,persistenceKey,storage}){let[declared,setDeclared]=(0,_react.useState)({}),{state:layoutState,...panelCallbacks}=(0,_useLayout.useLayout)(),persistence=(0,_context.useLayoutPersistence)(),resolvedKey=persistenceKey??persistence.persistenceKey,resolvedStorage=storage??persistence.storage,isShown=slot=>layoutState[slot].visible,registry=(0,_react.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]=(0,_usePortalContainerRefs.usePortalContainerRefs)(_constants.PANEL_ORDER),declaredSlots=_constants.PANEL_ORDER.filter(slot=>declared[slot]),isSolo=declaredSlots.length<=1,soloSlot=declaredSlots[0],defaultSizeFor=slot=>{if(slot!==_constants.Slot.content)return declared[slot]?.defaultSize??layoutState[slot].size},panelItems=_constants.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!==_constants.Slot.content&&(declared[slot]?.collapsible??!0)}));return _react.default.createElement(_registry.PanelRegistryContext.Provider,{value:registry},_react.default.createElement(_registry.LayoutPortalContext.Provider,{value:nodes},_react.default.createElement(StyledLayout,{"data-ds-id":"Layout"},isSolo?soloSlot&&isShown(soloSlot)&&_react.default.createElement(StyledSoloHost,{ref:hostRefs[soloSlot]}):panelItems.length>0&&_react.default.createElement(_Panel.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.LayoutProvider,Layout.Sidebar=_Sidebar.Sidebar,Layout.RightPanel=_RightPanel.RightPanel,Layout.Content=_Content.Content,Layout.Split=_Split.Split;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Layout",{enumerable:!0,get:function(){return Layout}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Panel=require("../Internal/Panel/Panel"),_constants=require("./-constants"),_context=require("./context"),_LayoutProvider=require("./LayoutProvider"),_Content=require("./Content"),_RightPanel=require("./RightPanel"),_LeftPanel=require("./LeftPanel"),_Split=require("./Split"),_registry=require("./registry"),_usePortalContainerRefs=require("./usePortalContainerRefs"),_LayoutCssVars=require("./LayoutCssVars"),_useLayout=require("./useLayout"),useGlobalCssVariables=nodes=>{let contentWidthCssVar=(0,_LayoutCssVars.useLayoutVar)(_constants.PANEL_WIDTH_VAR.content),rightPanelWidthCssVar=(0,_LayoutCssVars.useLayoutVar)(_constants.PANEL_WIDTH_VAR.rightPanel);(0,_react.useEffect)(()=>{let targets=[[_constants.Slot.content,contentWidthCssVar],[_constants.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=(0,_styled.default)("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=(0,_styled.default)("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== */"),Layout=function({children,persistenceKey,storage}){let[declared,setDeclared]=(0,_react.useState)({}),{state:layoutState,...panelCallbacks}=(0,_useLayout.useLayout)(),persistence=(0,_context.useLayoutPersistence)(),resolvedKey=persistenceKey??persistence.persistenceKey,resolvedStorage=storage??persistence.storage,isShown=slot=>layoutState[slot].visible,registry=(0,_react.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]=(0,_usePortalContainerRefs.usePortalContainerRefs)(_constants.PANEL_ORDER);useGlobalCssVariables(nodes);let declaredSlots=_constants.PANEL_ORDER.filter(slot=>declared[slot]),isSolo=declaredSlots.length<=1,soloSlot=declaredSlots[0],defaultSizeFor=slot=>{if(slot!==_constants.Slot.content)return declared[slot]?.defaultSize??layoutState[slot].size},panelItems=_constants.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!==_constants.Slot.content&&(declared[slot]?.collapsible??!0)}));return _react.default.createElement(_registry.PanelRegistryContext.Provider,{value:registry},_react.default.createElement(_registry.LayoutPortalContext.Provider,{value:nodes},_react.default.createElement(StyledLayout,{"data-ds-id":"Layout"},isSolo?soloSlot&&isShown(soloSlot)&&_react.default.createElement(StyledSoloHost,{ref:hostRefs[soloSlot]}):panelItems.length>0&&_react.default.createElement(_Panel.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.LayoutProvider,Layout.LeftPanel=_LeftPanel.LeftPanel,Layout.RightPanel=_RightPanel.RightPanel,Layout.Content=_Content.Content,Layout.Split=_Split.Split;
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ import type { LayoutCssVarStore } from "./cssVarStore";
3
+ export declare const LayoutCssVarStoreProvider: React.Provider<LayoutCssVarStore>;
4
+ /** Imperative handle to one registered layout var. */
5
+ export type LayoutVarHandle = {
6
+ set: (value: string) => void;
7
+ remove: () => void;
8
+ };
9
+ /**
10
+ * Register one layout CSS var; returns a stable imperative handle. The var is
11
+ * removed on unmount, so it only exists while its producer is mounted. Call
12
+ * `.set()` from wherever the value is known — an effect (state-driven vars like
13
+ * the subnav offset) or a ResizeObserver (measured vars) — so updates publish
14
+ * straight to the single `<LayoutCssVars>` sink and never re-render the producer.
15
+ * No-op outside a `Layout.Provider`.
16
+ */
17
+ export declare const useLayoutVar: (name: string) => LayoutVarHandle;
18
+ /**
19
+ * The single sink: renders every registered layout var in ONE place. Producers
20
+ * live in the components that own each var (each a local `useGlobalCssVariables`
21
+ * hook); this just emits the whole map. Today it targets `:root`; to scope the
22
+ * vars to a host element later, change only the `<Global>` target below.
23
+ */
24
+ export declare function LayoutCssVars(): React.ReactElement;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get LayoutCssVarStoreProvider(){return LayoutCssVarStoreProvider},get LayoutCssVars(){return LayoutCssVars},get useLayoutVar(){return useLayoutVar}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_react1=require("@emotion/react"),LayoutCssVarStoreContext=(0,_react.createContext)(null),LayoutCssVarStoreProvider=LayoutCssVarStoreContext.Provider,EMPTY_VARS={},NOOP_SUBSCRIBE=()=>()=>{},useLayoutVar=name=>{let store=(0,_react.useContext)(LayoutCssVarStoreContext);return(0,_react.useEffect)(()=>()=>store?.remove(name),[store,name]),(0,_react.useMemo)(()=>({set:value=>""===value?store?.remove(name):store?.set(name,value),remove:()=>store?.remove(name)}),[store,name])};function LayoutCssVars(){let store=(0,_react.useContext)(LayoutCssVarStoreContext),vars=(0,_react.useSyncExternalStore)(store?.subscribe??NOOP_SUBSCRIBE,store?store.getSnapshot:()=>EMPTY_VARS,()=>EMPTY_VARS);return _react.default.createElement(_react1.Global,{styles:[{":root":vars},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dENzc1ZhcnMudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvTGF5b3V0Q3NzVmFycy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlU3luY0V4dGVybmFsU3RvcmUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgR2xvYmFsIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IExheW91dENzc1ZhclN0b3JlIH0gZnJvbSBcIi4vY3NzVmFyU3RvcmVcIjtcblxuLyoqXG4gKiBDb250ZXh0IGNhcnJpZXMgdGhlIFZBUi1TVE9SRSBSRUZFUkVOQ0UgKHN0YWJsZSBmb3IgdGhlIHByb3ZpZGVyJ3MgbGlmZXRpbWUpLFxuICogbm90IHRoZSB2YWx1ZXMg4oCUIHNhbWUgYXBwcm9hY2ggYXMgdGhlIGxheW91dCBzdG9yZS4gUHJvZHVjZXJzIHJlZ2lzdGVyIHZhcnNcbiAqIHRocm91Z2ggYHVzZUxheW91dFZhcmA7IHRoZSBgPExheW91dENzc1ZhcnM+YCBzaW5rIHJlYWRzIHRoZSB3aG9sZSBtYXAuXG4gKi9cbmNvbnN0IExheW91dENzc1ZhclN0b3JlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8TGF5b3V0Q3NzVmFyU3RvcmUgfCBudWxsPihudWxsKTtcblxuZXhwb3J0IGNvbnN0IExheW91dENzc1ZhclN0b3JlUHJvdmlkZXIgPSBMYXlvdXRDc3NWYXJTdG9yZUNvbnRleHQuUHJvdmlkZXI7XG5cbi8vIFN0YWJsZSBmYWxsYmFja3Mgc28gdGhlIGhvb2tzIGJlbG93IGFyZSBzYWZlIHRvIGNhbGwgb3V0c2lkZSBhIHByb3ZpZGVyLlxuY29uc3QgRU1QVFlfVkFSUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuY29uc3QgTk9PUF9TVUJTQ1JJQkUgPSAoKTogKCgpID0+IHZvaWQpID0+ICgpID0+IHt9O1xuXG4vKiogSW1wZXJhdGl2ZSBoYW5kbGUgdG8gb25lIHJlZ2lzdGVyZWQgbGF5b3V0IHZhci4gKi9cbmV4cG9ydCB0eXBlIExheW91dFZhckhhbmRsZSA9IHtcbiAgc2V0OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgcmVtb3ZlOiAoKSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWdpc3RlciBvbmUgbGF5b3V0IENTUyB2YXI7IHJldHVybnMgYSBzdGFibGUgaW1wZXJhdGl2ZSBoYW5kbGUuIFRoZSB2YXIgaXNcbiAqIHJlbW92ZWQgb24gdW5tb3VudCwgc28gaXQgb25seSBleGlzdHMgd2hpbGUgaXRzIHByb2R1Y2VyIGlzIG1vdW50ZWQuIENhbGxcbiAqIGAuc2V0KClgIGZyb20gd2hlcmV2ZXIgdGhlIHZhbHVlIGlzIGtub3duIOKAlCBhbiBlZmZlY3QgKHN0YXRlLWRyaXZlbiB2YXJzIGxpa2VcbiAqIHRoZSBzdWJuYXYgb2Zmc2V0KSBvciBhIFJlc2l6ZU9ic2VydmVyIChtZWFzdXJlZCB2YXJzKSDigJQgc28gdXBkYXRlcyBwdWJsaXNoXG4gKiBzdHJhaWdodCB0byB0aGUgc2luZ2xlIGA8TGF5b3V0Q3NzVmFycz5gIHNpbmsgYW5kIG5ldmVyIHJlLXJlbmRlciB0aGUgcHJvZHVjZXIuXG4gKiBOby1vcCBvdXRzaWRlIGEgYExheW91dC5Qcm92aWRlcmAuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VMYXlvdXRWYXIgPSAobmFtZTogc3RyaW5nKTogTGF5b3V0VmFySGFuZGxlID0+IHtcbiAgY29uc3Qgc3RvcmUgPSB1c2VDb250ZXh0KExheW91dENzc1ZhclN0b3JlQ29udGV4dCk7XG4gIHVzZUVmZmVjdCgoKSA9PiAoKSA9PiBzdG9yZT8ucmVtb3ZlKG5hbWUpLCBbc3RvcmUsIG5hbWVdKTtcbiAgcmV0dXJuIHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIC8vIFwiXCIgaXMgdHJlYXRlZCBhcyB1bnNldCAocmVtb3ZlcyB0aGUgdmFyKSDigJQgbGV0cyBhIHByb2R1Y2VyIG9wdCBvdXQuXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT5cbiAgICAgICAgdmFsdWUgPT09IFwiXCIgPyBzdG9yZT8ucmVtb3ZlKG5hbWUpIDogc3RvcmU/LnNldChuYW1lLCB2YWx1ZSksXG4gICAgICByZW1vdmU6ICgpID0+IHN0b3JlPy5yZW1vdmUobmFtZSksXG4gICAgfSksXG4gICAgW3N0b3JlLCBuYW1lXVxuICApO1xufTtcblxuLyoqXG4gKiBUaGUgc2luZ2xlIHNpbms6IHJlbmRlcnMgZXZlcnkgcmVnaXN0ZXJlZCBsYXlvdXQgdmFyIGluIE9ORSBwbGFjZS4gUHJvZHVjZXJzXG4gKiBsaXZlIGluIHRoZSBjb21wb25lbnRzIHRoYXQgb3duIGVhY2ggdmFyIChlYWNoIGEgbG9jYWwgYHVzZUdsb2JhbENzc1ZhcmlhYmxlc2BcbiAqIGhvb2spOyB0aGlzIGp1c3QgZW1pdHMgdGhlIHdob2xlIG1hcC4gVG9kYXkgaXQgdGFyZ2V0cyBgOnJvb3RgOyB0byBzY29wZSB0aGVcbiAqIHZhcnMgdG8gYSBob3N0IGVsZW1lbnQgbGF0ZXIsIGNoYW5nZSBvbmx5IHRoZSBgPEdsb2JhbD5gIHRhcmdldCBiZWxvdy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExheW91dENzc1ZhcnMoKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3Qgc3RvcmUgPSB1c2VDb250ZXh0KExheW91dENzc1ZhclN0b3JlQ29udGV4dCk7XG4gIGNvbnN0IHZhcnMgPSB1c2VTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICBzdG9yZT8uc3Vic2NyaWJlID8/IE5PT1BfU1VCU0NSSUJFLFxuICAgIHN0b3JlID8gc3RvcmUuZ2V0U25hcHNob3QgOiAoKSA9PiBFTVBUWV9WQVJTLFxuICAgICgpID0+IEVNUFRZX1ZBUlNcbiAgKTtcbiAgcmV0dXJuIDxHbG9iYWwgc3R5bGVzPXt7IFwiOnJvb3RcIjogdmFycyB9fSAvPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnRVUifQ== */"]})}
@@ -6,10 +6,10 @@ import type { LayoutProviderProps } from "./-types";
6
6
  * zustand/redux-backed one; otherwise a default store is built from `config`.
7
7
  *
8
8
  * `storage`/`persistenceKey` are accepted here so consumers configure the whole
9
- * layout in one provider but the Provider **never reads storage itself**.
9
+ * layout in one provider - but the Provider **never reads storage itself**.
10
10
  * It publishes them to the nested, which owns persistence.
11
11
  * Two tracks: panel sizes (via react-resizable-panels, working today) and the panels'
12
- * "intent" open/visible/variant (restore on mount + save on store.subscribe, still deferred).
12
+ * "intent" - open/visible/variant (restore on mount + save on store.subscribe, still deferred).
13
13
  * That deferral is the default store's; a bring-your-own store can persist intent itself.
14
14
  */
15
15
  export declare function LayoutProvider({ children, config, store, persistenceKey, storage, }: LayoutProviderProps): React.ReactElement;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"LayoutProvider",{enumerable:!0,get:function(){return LayoutProvider}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_react1=require("@emotion/react"),_constants=require("./-constants"),_context=require("./context"),_LayoutVars=require("./LayoutVars"),_varStore=require("./varStore"),_reducer=require("./reducer"),_store=require("./store");function SlideVars(){let theme=(0,_react1.useTheme)(),open=theme.variables?.animation?.navSlide?.open;return(0,_LayoutVars.useLayoutVar)(_constants.SLIDE_VAR.duration,open?.duration??""),(0,_LayoutVars.useLayoutVar)(_constants.SLIDE_VAR.easing,open?.timingFunction??""),null}function LayoutProvider({children,config,store,persistenceKey,storage}){let storeRef=(0,_react.useRef)(null);null===storeRef.current&&(storeRef.current=store??(0,_store.createLayoutStore)((0,_reducer.createInitialState)(config)));let varStoreRef=(0,_react.useRef)(null);null===varStoreRef.current&&(varStoreRef.current=(0,_varStore.createLayoutVarStore)());let persistence=(0,_react.useMemo)(()=>({persistenceKey,storage}),[persistenceKey,storage]);return _react.default.createElement(_context.LayoutStoreProvider,{value:storeRef.current},_react.default.createElement(_context.LayoutPersistenceProvider,{value:persistence},_react.default.createElement(_LayoutVars.LayoutVarStoreProvider,{value:varStoreRef.current},_react.default.createElement(_LayoutVars.LayoutVars,null),_react.default.createElement(SlideVars,null),children)))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"LayoutProvider",{enumerable:!0,get:function(){return LayoutProvider}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_context=require("./context"),_LayoutCssVars=require("./LayoutCssVars"),_cssVarStore=require("./cssVarStore"),_reducer=require("./reducer"),_store=require("./store");function LayoutProvider({children,config,store,persistenceKey,storage}){let storeRef=(0,_react.useRef)(null);null===storeRef.current&&(storeRef.current=store??(0,_store.createLayoutStore)((0,_reducer.createInitialState)(config)));let cssVarStoreRef=(0,_react.useRef)(null);null===cssVarStoreRef.current&&(cssVarStoreRef.current=(0,_cssVarStore.createLayoutCssVarStore)());let persistence=(0,_react.useMemo)(()=>({persistenceKey,storage}),[persistenceKey,storage]);return _react.default.createElement(_context.LayoutStoreProvider,{value:storeRef.current},_react.default.createElement(_context.LayoutPersistenceProvider,{value:persistence},_react.default.createElement(_LayoutCssVars.LayoutCssVarStoreProvider,{value:cssVarStoreRef.current},_react.default.createElement(_LayoutCssVars.LayoutCssVars,null),children)))}
@@ -0,0 +1,8 @@
1
+ import type 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.
7
+ */
8
+ export declare const LeftPanel: React.FC<SidePanelProps>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"LeftPanel",{enumerable:!0,get:function(){return LeftPanel}});const _constants=require("./-constants"),_registry=require("./registry"),_useLayout=require("./useLayout"),LeftPanel=({children,defaultSize,minSize,maxSize,collapsible=!0,onVisibleChange})=>{let{isVisible}=(0,_useLayout.useLayout)()[_constants.Slot.leftPanel];return(0,_registry.useDeclarePanel)(_constants.Slot.leftPanel,{defaultSize,minSize,maxSize,collapsible}),(0,_registry.useVisibleChange)(isVisible,onVisibleChange),(0,_registry.useLayoutPortal)(_constants.Slot.leftPanel,isVisible?children:null)};
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import type { RightPanelProps } from "./-types";
3
3
  /**
4
4
  * Right side panel. Declares the `rightPanel` slot and portals its content into
5
- * the Group's host while visible. Renders in-flow (a resizable column) the
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
7
  * that tracks the `--ds-layout-subnav-offset` var.
8
8
  */
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanel",{enumerable:!0,get:function(){return RightPanel}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_constants=require("./-constants"),_registry=require("./registry"),_useLayout=require("./useLayout"),_RightPanelContainer=require("./RightPanelContainer"),StyledRightPanelSlot=(0,_styled.default)("div",{target:"e1jmp3pg0",label:"StyledRightPanelSlot"})({position:"absolute",left:0,right:0,bottom:0,top:`var(${_constants.SUBNAV_OFFSET_VAR}, 0px)`,overflow:"hidden",transition:`top var(${_constants.SLIDE_VAR.duration}) var(${_constants.SLIDE_VAR.easing})`},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvUmlnaHRQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTTElERV9WQVIsIFNsb3QsIFNVQk5BVl9PRkZTRVRfVkFSIH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlRGVjbGFyZVBhbmVsLCB1c2VMYXlvdXRQb3J0YWwsIHVzZVZpc2libGVDaGFuZ2UgfSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0IH0gZnJvbSBcIi4vdXNlTGF5b3V0XCI7XG5pbXBvcnQgeyBSaWdodFBhbmVsQ29udGFpbmVyIH0gZnJvbSBcIi4vUmlnaHRQYW5lbENvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBSaWdodFBhbmVsUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLy8gQnVpbHQtaW4gc2xvdDogb2Zmc2V0cyB0aGUgcGFuZWwgY29udGVudCBieSB0aGUgc3VibmF2LW9mZnNldCB2YXIgKDAgd2hlblxuLy8gdW5zZXQpLCB0cmFuc2l0aW9uZWQgd2l0aCB0aGUgc2hhcmVkIHNsaWRlIHZhcnMg4oCUIHNvIHRoZSByaWdodCBwYW5lbCB0cmFja3MgYVxuLy8gc3RpY2t5IHN1Ym5hdiB3aXRoIG5vIHdpcmluZyBvbiB0aGUgY29uc3VtZXIncyBzaWRlLlxuY29uc3QgU3R5bGVkUmlnaHRQYW5lbFNsb3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgbGVmdDogMCxcbiAgcmlnaHQ6IDAsXG4gIGJvdHRvbTogMCxcbiAgdG9wOiBgdmFyKCR7U1VCTkFWX09GRlNFVF9WQVJ9LCAwcHgpYCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHRyYW5zaXRpb246IGB0b3AgdmFyKCR7U0xJREVfVkFSLmR1cmF0aW9ufSkgdmFyKCR7U0xJREVfVkFSLmVhc2luZ30pYCxcbn0pO1xuXG4vKipcbiAqIFJpZ2h0IHNpZGUgcGFuZWwuIERlY2xhcmVzIHRoZSBgcmlnaHRQYW5lbGAgc2xvdCBhbmQgcG9ydGFscyBpdHMgY29udGVudCBpbnRvXG4gKiB0aGUgR3JvdXAncyBob3N0IHdoaWxlIHZpc2libGUuIFJlbmRlcnMgaW4tZmxvdyAoYSByZXNpemFibGUgY29sdW1uKSDigJQgdGhlXG4gKiBvZmZjYW52YXMgb3ZlcmxheSAvIG1vYmlsZSBzaGVldCBpcyBkZWZlcnJlZC4gQ29udGVudCBpcyB3cmFwcGVkIGluIGEgc2xvdFxuICogdGhhdCB0cmFja3MgdGhlIGAtLWRzLWxheW91dC1zdWJuYXYtb2Zmc2V0YCB2YXIuXG4gKi9cbmV4cG9ydCBjb25zdCBSaWdodFBhbmVsOiBSZWFjdC5GQzxSaWdodFBhbmVsUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGRlZmF1bHRTaXplID0gMzc4LFxuICBtaW5TaXplID0gMzI4LFxuICBtYXhTaXplID0gXCIzMCVcIixcbiAgY29sbGFwc2libGUgPSBmYWxzZSxcbiAgb25WaXNpYmxlQ2hhbmdlLFxuICB0aXRsZSxcbiAgb25DbG9zZSxcbiAgc2xvdFByb3BzLFxuICBzY3JvbGxDb250YWluZXJSZWYsXG4gIG9uU2Nyb2xsLFxufSkgPT4ge1xuICBjb25zdCB7IGlzVmlzaWJsZSwgaGlkZSB9ID0gdXNlTGF5b3V0KClbU2xvdC5yaWdodFBhbmVsXTtcbiAgdXNlRGVjbGFyZVBhbmVsKFNsb3QucmlnaHRQYW5lbCwge1xuICAgIGRlZmF1bHRTaXplLFxuICAgIG1pblNpemUsXG4gICAgbWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZSxcbiAgfSk7XG4gIHVzZVZpc2libGVDaGFuZ2UoaXNWaXNpYmxlLCBvblZpc2libGVDaGFuZ2UpO1xuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpOiB2b2lkID0+IHtcbiAgICBoaWRlKCk7XG4gICAgb25DbG9zZT8uKCk7XG4gIH07XG4gIHJldHVybiB1c2VMYXlvdXRQb3J0YWwoXG4gICAgU2xvdC5yaWdodFBhbmVsLFxuICAgIGlzVmlzaWJsZSA/IChcbiAgICAgIDxTdHlsZWRSaWdodFBhbmVsU2xvdD5cbiAgICAgICAgPFJpZ2h0UGFuZWxDb250YWluZXJcbiAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgc2xvdFByb3BzPXtzbG90UHJvcHN9XG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyUmVmPXtzY3JvbGxDb250YWluZXJSZWZ9XG4gICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JpZ2h0UGFuZWxDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFJpZ2h0UGFuZWxTbG90PlxuICAgICkgOiBudWxsXG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVc2QiJ9 */"),RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,onVisibleChange,title,onClose,slotProps,scrollContainerRef,onScroll})=>{let{isVisible,hide}=(0,_useLayout.useLayout)()[_constants.Slot.rightPanel];return(0,_registry.useDeclarePanel)(_constants.Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible}),(0,_registry.useVisibleChange)(isVisible,onVisibleChange),(0,_registry.useLayoutPortal)(_constants.Slot.rightPanel,isVisible?_react.default.createElement(StyledRightPanelSlot,null,_react.default.createElement(_RightPanelContainer.RightPanelContainer,{title:title,onClose:()=>{hide(),onClose?.()},slotProps:slotProps,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children)):null)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanel",{enumerable:!0,get:function(){return RightPanel}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_constants=require("./-constants"),_registry=require("./registry"),_useLayout=require("./useLayout"),_RightPanelContainer=require("./RightPanelContainer"),StyledRightPanelSlot=(0,_styled.default)("div",{target:"e1u30w3d0",label:"StyledRightPanelSlot"})(({theme})=>({position:"absolute",left:0,right:0,bottom:0,top:`var(${_constants.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvUmlnaHRQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTbG90LCBTVUJOQVZfT0ZGU0VUX1ZBUiB9IGZyb20gXCIuLy1jb25zdGFudHNcIjtcbmltcG9ydCB7IHVzZURlY2xhcmVQYW5lbCwgdXNlTGF5b3V0UG9ydGFsLCB1c2VWaXNpYmxlQ2hhbmdlIH0gZnJvbSBcIi4vcmVnaXN0cnlcIjtcbmltcG9ydCB7IHVzZUxheW91dCB9IGZyb20gXCIuL3VzZUxheW91dFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbENvbnRhaW5lciB9IGZyb20gXCIuL1JpZ2h0UGFuZWxDb250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgUmlnaHRQYW5lbFByb3BzIH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbi8vIEJ1aWx0LWluIHNsb3Q6IG9mZnNldHMgdGhlIHBhbmVsIGNvbnRlbnQgYnkgdGhlIHN1Ym5hdi1vZmZzZXQgdmFyICgwIHdoZW5cbi8vIHVuc2V0KSwgdHJhbnNpdGlvbmVkIHdpdGggdGhlIHRoZW1lJ3MgYG5hdlNsaWRlYCB0aW1pbmcg4oCUIHNvIHRoZSByaWdodCBwYW5lbFxuLy8gdHJhY2tzIGEgc3RpY2t5IHN1Ym5hdiB3aXRoIG5vIHdpcmluZyBvbiB0aGUgY29uc3VtZXIncyBzaWRlLlxuY29uc3QgU3R5bGVkUmlnaHRQYW5lbFNsb3QgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIGxlZnQ6IDAsXG4gIHJpZ2h0OiAwLFxuICBib3R0b206IDAsXG4gIHRvcDogYHZhcigke1NVQk5BVl9PRkZTRVRfVkFSfSwgMHB4KWAsXG4gIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICB0cmFuc2l0aW9uOiBgdG9wICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5uYXZTbGlkZS5vcGVuLmR1cmF0aW9ufSAke3RoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ubmF2U2xpZGUub3Blbi50aW1pbmdGdW5jdGlvbn1gLFxufSkpO1xuXG4vKipcbiAqIFJpZ2h0IHNpZGUgcGFuZWwuIERlY2xhcmVzIHRoZSBgcmlnaHRQYW5lbGAgc2xvdCBhbmQgcG9ydGFscyBpdHMgY29udGVudCBpbnRvXG4gKiB0aGUgR3JvdXAncyBob3N0IHdoaWxlIHZpc2libGUuIFJlbmRlcnMgaW4tZmxvdyAoYSByZXNpemFibGUgY29sdW1uKSAtIHRoZVxuICogb2ZmY2FudmFzIG92ZXJsYXkgLyBtb2JpbGUgc2hlZXQgaXMgZGVmZXJyZWQuIENvbnRlbnQgaXMgd3JhcHBlZCBpbiBhIHNsb3RcbiAqIHRoYXQgdHJhY2tzIHRoZSBgLS1kcy1sYXlvdXQtc3VibmF2LW9mZnNldGAgdmFyLlxuICovXG5leHBvcnQgY29uc3QgUmlnaHRQYW5lbDogUmVhY3QuRkM8UmlnaHRQYW5lbFByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBkZWZhdWx0U2l6ZSA9IDM3OCxcbiAgbWluU2l6ZSA9IDMyOCxcbiAgbWF4U2l6ZSA9IFwiMzAlXCIsXG4gIGNvbGxhcHNpYmxlID0gZmFsc2UsXG4gIG9uVmlzaWJsZUNoYW5nZSxcbiAgdGl0bGUsXG4gIG9uQ2xvc2UsXG4gIHNsb3RQcm9wcyxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbn0pID0+IHtcbiAgY29uc3QgeyBpc1Zpc2libGUsIGhpZGUgfSA9IHVzZUxheW91dCgpW1Nsb3QucmlnaHRQYW5lbF07XG4gIHVzZURlY2xhcmVQYW5lbChTbG90LnJpZ2h0UGFuZWwsIHtcbiAgICBkZWZhdWx0U2l6ZSxcbiAgICBtaW5TaXplLFxuICAgIG1heFNpemUsXG4gICAgY29sbGFwc2libGUsXG4gIH0pO1xuICB1c2VWaXNpYmxlQ2hhbmdlKGlzVmlzaWJsZSwgb25WaXNpYmxlQ2hhbmdlKTtcbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoKTogdm9pZCA9PiB7XG4gICAgaGlkZSgpO1xuICAgIG9uQ2xvc2U/LigpO1xuICB9O1xuICByZXR1cm4gdXNlTGF5b3V0UG9ydGFsKFxuICAgIFNsb3QucmlnaHRQYW5lbCxcbiAgICBpc1Zpc2libGUgPyAoXG4gICAgICA8U3R5bGVkUmlnaHRQYW5lbFNsb3Q+XG4gICAgICAgIDxSaWdodFBhbmVsQ29udGFpbmVyXG4gICAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgIHNsb3RQcm9wcz17c2xvdFByb3BzfVxuICAgICAgICAgIHNjcm9sbENvbnRhaW5lclJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfVxuICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9SaWdodFBhbmVsQ29udGFpbmVyPlxuICAgICAgPC9TdHlsZWRSaWdodFBhbmVsU2xvdD5cbiAgICApIDogbnVsbFxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXNkIifQ== */"),RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,onVisibleChange,title,onClose,slotProps,scrollContainerRef,onScroll})=>{let{isVisible,hide}=(0,_useLayout.useLayout)()[_constants.Slot.rightPanel];return(0,_registry.useDeclarePanel)(_constants.Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible}),(0,_registry.useVisibleChange)(isVisible,onVisibleChange),(0,_registry.useLayoutPortal)(_constants.Slot.rightPanel,isVisible?_react.default.createElement(StyledRightPanelSlot,null,_react.default.createElement(_RightPanelContainer.RightPanelContainer,{title:title,onClose:()=>{hide(),onClose?.()},slotProps:slotProps,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children)):null)};
@@ -2,6 +2,6 @@ import type React from "react";
2
2
  import type { SplitProps } from "./-types";
3
3
  /**
4
4
  * Split view panel. Declares the `splitview` slot and portals its content while
5
- * visible a toggleable in-flow column beside `content`.
5
+ * visible - a toggleable in-flow column beside `content`.
6
6
  */
7
7
  export declare const Split: React.FC<SplitProps>;
@@ -5,7 +5,7 @@ export declare function useLayoutStore(): LayoutStore;
5
5
  /**
6
6
  * Persistence config for the layout namespace. Set on `Layout.Provider` (single
7
7
  * external surface) and read by the nested `<Layout>`. The Provider only
8
- * forwards it it never touches storage itself.
8
+ * forwards it - it never touches storage itself.
9
9
  */
10
10
  export type LayoutPersistence = {
11
11
  persistenceKey?: string;
@@ -16,7 +16,7 @@ export declare const LayoutPersistenceProvider: React.Provider<LayoutPersistence
16
16
  export declare function useLayoutPersistence(): LayoutPersistence;
17
17
  /**
18
18
  * Subscribe to a slice of layout state via `useSyncExternalStore`. The selector
19
- * should return a stable reference when nothing relevant changed the reducer
19
+ * should return a stable reference when nothing relevant changed - the reducer
20
20
  * preserves references for untouched positions, so slice selectors are safe.
21
21
  */
22
22
  export declare function useLayoutSelector<T>(selector: (state: LayoutState) => T): T;
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * Tiny pub/sub registry for the layout's CSS custom properties. Producers
3
3
  * publish a value by name (the component that owns the *why* — e.g. the NavBar
4
- * subnav publishing its offset); a single sink (`<LayoutVars>`) subscribes and
4
+ * subnav publishing its offset); a single sink (`<LayoutCssVars>`) subscribes and
5
5
  * renders them all in ONE place. Mirrors the `LayoutStore` shape so it reads
6
6
  * via the same `useSyncExternalStore` pattern.
7
7
  *
8
8
  * One name = one producer. The registry is keyed by name, so a second writer to
9
9
  * the same name last-wins; don't share a name across unrelated producers.
10
10
  */
11
- export type LayoutVarStore = {
11
+ export type LayoutCssVarStore = {
12
12
  getSnapshot: () => Record<string, string>;
13
13
  set: (name: string, value: string) => void;
14
14
  remove: (name: string) => void;
15
15
  subscribe: (listener: () => void) => () => void;
16
16
  };
17
- export declare function createLayoutVarStore(): LayoutVarStore;
17
+ export declare function createLayoutCssVarStore(): LayoutCssVarStore;
@@ -0,0 +1 @@
1
+ "use strict";function createLayoutCssVarStore(){let vars={},listeners=new Set,notify=()=>listeners.forEach(listener=>listener());return{getSnapshot:()=>vars,set:(name,value)=>{vars[name]!==value&&(vars={...vars,[name]:value},notify())},remove:name=>{if(!(name in vars))return;let next={...vars};delete next[name],vars=next,notify()},subscribe:listener=>(listeners.add(listener),()=>{listeners.delete(listener)})}}Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"createLayoutCssVarStore",{enumerable:!0,get:function(){return createLayoutCssVarStore}});
@@ -1,7 +1,7 @@
1
- export { SLIDE_VAR, SUBNAV_OFFSET_VAR } from "./-constants";
1
+ export { SUBNAV_OFFSET_VAR, PANEL_WIDTH_VAR } from "./-constants";
2
2
  export { Layout } from "./Layout";
3
3
  export { LayoutProvider } from "./LayoutProvider";
4
- export { useLayoutVar } from "./LayoutVars";
4
+ export { useLayoutVar } from "./LayoutCssVars";
5
5
  export { useLayout } from "./useLayout";
6
6
  export { useAutoScrollToBottom } from "./useAutoScrollToBottom";
7
7
  export { RightPanelContainer } from "./RightPanelContainer";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get Layout(){return _Layout.Layout},get LayoutProvider(){return _LayoutProvider.LayoutProvider},get RightPanelContainer(){return _RightPanelContainer.RightPanelContainer},get SLIDE_VAR(){return _constants.SLIDE_VAR},get SUBNAV_OFFSET_VAR(){return _constants.SUBNAV_OFFSET_VAR},get createInitialState(){return _reducer.createInitialState},get createLayoutStore(){return _store.createLayoutStore},get layoutReducer(){return _reducer.layoutReducer},get useAutoScrollToBottom(){return _useAutoScrollToBottom.useAutoScrollToBottom},get useLayout(){return _useLayout.useLayout},get useLayoutVar(){return _LayoutVars.useLayoutVar}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_constants=require("./-constants"),_Layout=require("./Layout"),_LayoutProvider=require("./LayoutProvider"),_LayoutVars=require("./LayoutVars"),_useLayout=require("./useLayout"),_useAutoScrollToBottom=require("./useAutoScrollToBottom"),_RightPanelContainer=require("./RightPanelContainer"),_store=require("./store"),_reducer=require("./reducer");_export_star._(require("./-types"),exports);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get Layout(){return _Layout.Layout},get LayoutProvider(){return _LayoutProvider.LayoutProvider},get PANEL_WIDTH_VAR(){return _constants.PANEL_WIDTH_VAR},get RightPanelContainer(){return _RightPanelContainer.RightPanelContainer},get SUBNAV_OFFSET_VAR(){return _constants.SUBNAV_OFFSET_VAR},get createInitialState(){return _reducer.createInitialState},get createLayoutStore(){return _store.createLayoutStore},get layoutReducer(){return _reducer.layoutReducer},get useAutoScrollToBottom(){return _useAutoScrollToBottom.useAutoScrollToBottom},get useLayout(){return _useLayout.useLayout},get useLayoutVar(){return _LayoutCssVars.useLayoutVar}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_constants=require("./-constants"),_Layout=require("./Layout"),_LayoutProvider=require("./LayoutProvider"),_LayoutCssVars=require("./LayoutCssVars"),_useLayout=require("./useLayout"),_useAutoScrollToBottom=require("./useAutoScrollToBottom"),_RightPanelContainer=require("./RightPanelContainer"),_store=require("./store"),_reducer=require("./reducer");_export_star._(require("./-types"),exports);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get createInitialState(){return createInitialState},get layoutReducer(){return layoutReducer}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});function sidePanel(config={}){return{kind:"sidePanel",visible:config.defaultVisible??!0,collapsible:config.collapsible??!0,variant:config.variant??"sidebar",size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function panelState(config={}){return{kind:"panel",visible:config.defaultVisible??!0,size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function createInitialState(config={}){return{sidebar:sidePanel(config.sidebar),rightPanel:sidePanel({defaultVisible:!1,...config.rightPanel}),content:panelState(config.content),splitview:panelState({defaultVisible:!1,...config.splitview})}}const layoutReducer=(state,action,initial)=>{switch(action.type){case"setVisible":{let slot=state[action.slot];if(slot.visible===action.visible)return state;return{...state,[action.slot]:{...slot,visible:action.visible}}}case"setVariant":{let panel=state[action.panel];if(panel.variant===action.variant)return state;return{...state,[action.panel]:{...panel,variant:action.variant}}}case"resize":{let slot=state[action.slot];if(slot.size===action.size)return state;return{...state,[action.slot]:{...slot,size:action.size}}}case"reset":if(!initial)return state;if(!action.slot)return initial;if(state[action.slot]===initial[action.slot])return state;return{...state,[action.slot]:initial[action.slot]};default:return state}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get createInitialState(){return createInitialState},get layoutReducer(){return layoutReducer}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});function sidePanel(config={}){return{kind:"sidePanel",visible:config.defaultVisible??!0,collapsible:config.collapsible??!0,variant:config.variant??"sidebar",size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function panelState(config={}){return{kind:"panel",visible:config.defaultVisible??!0,size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function createInitialState(config={}){return{leftPanel:sidePanel(config.leftPanel),rightPanel:sidePanel({defaultVisible:!1,...config.rightPanel}),content:panelState(config.content),splitview:panelState({defaultVisible:!1,...config.splitview})}}const layoutReducer=(state,action,initial)=>{switch(action.type){case"setVisible":{let slot=state[action.slot];if(slot.visible===action.visible)return state;return{...state,[action.slot]:{...slot,visible:action.visible}}}case"setVariant":{let panel=state[action.panel];if(panel.variant===action.variant)return state;return{...state,[action.panel]:{...panel,variant:action.variant}}}case"resize":{let slot=state[action.slot];if(slot.size===action.size)return state;return{...state,[action.slot]:{...slot,size:action.size}}}case"reset":if(!initial)return state;if(!action.slot)return initial;if(state[action.slot]===initial[action.slot])return state;return{...state,[action.slot]:initial[action.slot]};default:return state}};
@@ -1,16 +1,16 @@
1
1
  import { type ReactNode } from "react";
2
2
  import type { Size, SlotKey } from "./-types";
3
3
  export type HostNodes = Partial<Record<SlotKey, HTMLElement | null>>;
4
- export declare const LayoutPortalContext: React.Context<Partial<Record<"content" | "sidebar" | "splitview" | "rightPanel", HTMLElement>>>;
4
+ export declare const LayoutPortalContext: React.Context<Partial<Record<"content" | "leftPanel" | "splitview" | "rightPanel", HTMLElement>>>;
5
5
  /**
6
6
  * Portal `children` into the host DOM node registered for `slot`. Returns the
7
- * portal (or `null` if the host isn't mounted yet). Call unconditionally
7
+ * portal (or `null` if the host isn't mounted yet). Call unconditionally -
8
8
  * gate content by passing `null` as `children`, not by skipping the call.
9
9
  */
10
10
  export declare function useLayoutPortal(slot: SlotKey, children: ReactNode): ReactNode;
11
11
  /**
12
12
  * Panel descriptor a marker contributes. The Group renders one resizable Panel
13
- * per *declared* panel that is currently shown regardless of nesting depth.
13
+ * per *declared* panel that is currently shown - regardless of nesting depth.
14
14
  * So a page can drop `<Layout.Split>` deep in its tree and it joins the app's
15
15
  * single Layout as a panel; toggling a panel never remounts the others.
16
16
  */
@@ -5,6 +5,6 @@ import type { LayoutState, LayoutStore } from "./-types";
5
5
  * a no-op (reducer returns the same reference).
6
6
  *
7
7
  * Swap this for a zustand/redux-backed store by implementing the same
8
- * `LayoutStore` interface bindings and primitives are unaffected.
8
+ * `LayoutStore` interface - bindings and primitives are unaffected.
9
9
  */
10
10
  export declare function createLayoutStore(initial: LayoutState): LayoutStore;
@@ -1,7 +1,7 @@
1
1
  import type { LayoutValue } from "./-types";
2
2
  /**
3
3
  * The single control hook. Returns `state` plus a typed handle per slot. Works
4
- * from any descendant of `<LayoutProvider>` remote control without prop
4
+ * from any descendant of `<LayoutProvider>` - remote control without prop
5
5
  * drilling.
6
6
  */
7
7
  export declare function useLayout(): LayoutValue;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"useLayout",{enumerable:!0,get:function(){return useLayout}});const _context=require("./context"),selectAll=state=>state;function sidePanelHandle(panel,state,dispatch){let slot=state[panel];return{state:slot,isVisible:slot.visible,show:()=>dispatch({type:"setVisible",slot:panel,visible:!0}),hide:()=>dispatch({type:"setVisible",slot:panel,visible:!1}),resize:size=>dispatch({type:"resize",slot:panel,size}),setVariant:variant=>dispatch({type:"setVariant",panel,variant}),reset:()=>dispatch({type:"reset",slot:panel})}}function panelHandle(panel,state,dispatch){let slot=state[panel];return{state:slot,isVisible:slot.visible,show:()=>dispatch({type:"setVisible",slot:panel,visible:!0}),hide:()=>dispatch({type:"setVisible",slot:panel,visible:!1}),resize:size=>dispatch({type:"resize",slot:panel,size}),reset:()=>dispatch({type:"reset",slot:panel})}}function useLayout(){let store=(0,_context.useLayoutStore)(),state=(0,_context.useLayoutSelector)(selectAll),{dispatch}=store;return{state,sidebar:sidePanelHandle("sidebar",state,dispatch),rightPanel:sidePanelHandle("rightPanel",state,dispatch),content:panelHandle("content",state,dispatch),splitview:panelHandle("splitview",state,dispatch)}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"useLayout",{enumerable:!0,get:function(){return useLayout}});const _context=require("./context"),selectAll=state=>state;function sidePanelHandle(panel,state,dispatch){let slot=state[panel];return{state:slot,isVisible:slot.visible,show:()=>dispatch({type:"setVisible",slot:panel,visible:!0}),hide:()=>dispatch({type:"setVisible",slot:panel,visible:!1}),resize:size=>dispatch({type:"resize",slot:panel,size}),setVariant:variant=>dispatch({type:"setVariant",panel,variant}),reset:()=>dispatch({type:"reset",slot:panel})}}function panelHandle(panel,state,dispatch){let slot=state[panel];return{state:slot,isVisible:slot.visible,show:()=>dispatch({type:"setVisible",slot:panel,visible:!0}),hide:()=>dispatch({type:"setVisible",slot:panel,visible:!1}),resize:size=>dispatch({type:"resize",slot:panel,size}),reset:()=>dispatch({type:"reset",slot:panel})}}function useLayout(){let store=(0,_context.useLayoutStore)(),state=(0,_context.useLayoutSelector)(selectAll),{dispatch}=store;return{state,leftPanel:sidePanelHandle("leftPanel",state,dispatch),rightPanel:sidePanelHandle("rightPanel",state,dispatch),content:panelHandle("content",state,dispatch),splitview:panelHandle("splitview",state,dispatch)}}
@@ -2,15 +2,15 @@
2
2
  * Track a set of DOM elements by key, with stable per-key ref callbacks.
3
3
  *
4
4
  * Given a fixed list of keys, returns `[elements, refs]`:
5
- * - `refs[key]` a ref callback to attach to an element; captures it into
5
+ * - `refs[key]` - a ref callback to attach to an element; captures it into
6
6
  * `elements[key]` (and clears it to `null` on unmount).
7
- * - `elements[key]` the currently-attached element (undefined until set).
7
+ * - `elements[key]` - the currently-attached element (undefined until set).
8
8
  *
9
9
  * The callbacks are **stable** across renders, so React invokes them only on
10
- * mount/unmount not detach/attach every render. (An inline `ref={el => …}`
10
+ * mount/unmount - not detach/attach every render. (An inline `ref={el => …}`
11
11
  * that calls setState would get a new identity each render and loop.)
12
12
  *
13
- * Agnostic utility useful whenever something needs the live DOM node of a
13
+ * Agnostic utility - useful whenever something needs the live DOM node of a
14
14
  * child: portal targets, measurement, focus management, etc.
15
15
  */
16
16
  export declare function usePanelRefs<K extends string>(keys: readonly K[]): [
@@ -4,12 +4,12 @@
4
4
  * container) so markers can portal their content into it.
5
5
  *
6
6
  * Given a fixed list of keys, returns `[elements, refs]`:
7
- * - `refs[key]` a ref callback to attach to an element; captures it into
7
+ * - `refs[key]` - a ref callback to attach to an element; captures it into
8
8
  * `elements[key]` (and clears it to `null` on unmount).
9
- * - `elements[key]` the currently-attached element (undefined until set).
9
+ * - `elements[key]` - the currently-attached element (undefined until set).
10
10
  *
11
11
  * The callbacks are **stable** across renders, so React invokes them only on
12
- * mount/unmount not detach/attach every render. (An inline `ref={el => …}`
12
+ * mount/unmount - not detach/attach every render. (An inline `ref={el => …}`
13
13
  * that calls setState would get a new identity each render and loop.)
14
14
  *
15
15
  * Generic over the key type, so it works for any fixed key set.