@amboss/design-system 3.48.12 → 3.49.0
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.
- package/build/cjs/components/Internal/Panel/Panel.d.ts +36 -0
- package/build/cjs/components/Internal/Panel/Panel.js +1 -0
- package/build/cjs/components/Internal/Panel/index.d.ts +2 -0
- package/build/cjs/components/Internal/Panel/index.js +1 -0
- package/build/cjs/components/Layout/-constants.d.ts +30 -0
- package/build/cjs/components/Layout/-constants.js +1 -0
- package/build/cjs/components/Layout/-types.d.ts +171 -0
- package/build/cjs/components/Layout/-types.js +1 -0
- package/build/cjs/components/Layout/Content.d.ts +7 -0
- package/build/cjs/components/Layout/Content.js +1 -0
- package/build/cjs/components/Layout/Layout.d.ts +17 -0
- package/build/cjs/components/Layout/Layout.js +1 -0
- package/build/cjs/components/Layout/LayoutProvider.d.ts +15 -0
- package/build/cjs/components/Layout/LayoutProvider.js +1 -0
- package/build/cjs/components/Layout/LayoutVars.d.ts +18 -0
- package/build/cjs/components/Layout/LayoutVars.js +1 -0
- package/build/cjs/components/Layout/RightPanel.d.ts +9 -0
- package/build/cjs/components/Layout/RightPanel.js +1 -0
- package/build/cjs/components/Layout/Sidebar.d.ts +8 -0
- package/build/cjs/components/Layout/Sidebar.js +1 -0
- package/build/cjs/components/Layout/Split.d.ts +7 -0
- package/build/cjs/components/Layout/Split.js +1 -0
- package/build/cjs/components/Layout/context.d.ts +22 -0
- package/build/cjs/components/Layout/context.js +1 -0
- package/build/cjs/components/Layout/index.d.ts +8 -0
- package/build/cjs/components/Layout/index.js +1 -0
- package/build/cjs/components/Layout/reducer.d.ts +5 -0
- package/build/cjs/components/Layout/reducer.js +1 -0
- package/build/cjs/components/Layout/registry.d.ts +31 -0
- package/build/cjs/components/Layout/registry.js +1 -0
- package/build/cjs/components/Layout/store.d.ts +10 -0
- package/build/cjs/components/Layout/store.js +1 -0
- package/build/cjs/components/Layout/useLayout.d.ts +7 -0
- package/build/cjs/components/Layout/useLayout.js +1 -0
- package/build/cjs/components/Layout/usePanelRefs.d.ts +19 -0
- package/build/cjs/components/Layout/usePanelRefs.js +1 -0
- package/build/cjs/components/Layout/usePortalContainerRefs.d.ts +20 -0
- package/build/cjs/components/Layout/usePortalContainerRefs.js +1 -0
- package/build/cjs/components/Layout/varStore.d.ts +17 -0
- package/build/cjs/components/Layout/varStore.js +1 -0
- package/build/cjs/components/NavBar/NavBarSubMenuContainer.js +1 -1
- package/build/cjs/components/NavBar/constants.d.ts +1 -0
- package/build/cjs/components/NavBar/constants.js +1 -1
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js +1 -1
- package/build/esm/components/Internal/Panel/Panel.d.ts +36 -0
- package/build/esm/components/Internal/Panel/Panel.js +1 -0
- package/build/esm/components/Internal/Panel/index.d.ts +2 -0
- package/build/esm/components/Internal/Panel/index.js +1 -0
- package/build/esm/components/Layout/-constants.d.ts +30 -0
- package/build/esm/components/Layout/-constants.js +1 -0
- package/build/esm/components/Layout/-types.d.ts +171 -0
- package/build/esm/components/Layout/-types.js +1 -0
- package/build/esm/components/Layout/Content.d.ts +7 -0
- package/build/esm/components/Layout/Content.js +1 -0
- package/build/esm/components/Layout/Layout.d.ts +17 -0
- package/build/esm/components/Layout/Layout.js +1 -0
- package/build/esm/components/Layout/LayoutProvider.d.ts +15 -0
- package/build/esm/components/Layout/LayoutProvider.js +1 -0
- package/build/esm/components/Layout/LayoutVars.d.ts +18 -0
- package/build/esm/components/Layout/LayoutVars.js +1 -0
- package/build/esm/components/Layout/RightPanel.d.ts +9 -0
- package/build/esm/components/Layout/RightPanel.js +1 -0
- package/build/esm/components/Layout/Sidebar.d.ts +8 -0
- package/build/esm/components/Layout/Sidebar.js +1 -0
- package/build/esm/components/Layout/Split.d.ts +7 -0
- package/build/esm/components/Layout/Split.js +1 -0
- package/build/esm/components/Layout/context.d.ts +22 -0
- package/build/esm/components/Layout/context.js +1 -0
- package/build/esm/components/Layout/index.d.ts +8 -0
- package/build/esm/components/Layout/index.js +1 -0
- package/build/esm/components/Layout/reducer.d.ts +5 -0
- package/build/esm/components/Layout/reducer.js +1 -0
- package/build/esm/components/Layout/registry.d.ts +31 -0
- package/build/esm/components/Layout/registry.js +1 -0
- package/build/esm/components/Layout/store.d.ts +10 -0
- package/build/esm/components/Layout/store.js +1 -0
- package/build/esm/components/Layout/useLayout.d.ts +7 -0
- package/build/esm/components/Layout/useLayout.js +1 -0
- package/build/esm/components/Layout/usePanelRefs.d.ts +19 -0
- package/build/esm/components/Layout/usePanelRefs.js +1 -0
- package/build/esm/components/Layout/usePortalContainerRefs.d.ts +20 -0
- package/build/esm/components/Layout/usePortalContainerRefs.js +1 -0
- package/build/esm/components/Layout/varStore.d.ts +17 -0
- package/build/esm/components/Layout/varStore.js +1 -0
- package/build/esm/components/NavBar/NavBarSubMenuContainer.js +1 -1
- package/build/esm/components/NavBar/constants.d.ts +1 -0
- package/build/esm/components/NavBar/constants.js +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"usePanelRefs",{enumerable:!0,get:function(){return usePanelRefs}});const _react=require("react");function usePanelRefs(keys){let[elements,setElements]=(0,_react.useState)({});return[elements,(0,_react.useMemo)(()=>{let map={};return keys.forEach(key=>{map[key]=el=>setElements(prev=>prev[key]===el?prev:{...prev,[key]:el})}),map},[keys])]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Track portal-container DOM elements by key, with stable per-key ref callbacks.
|
|
3
|
+
* Used by `Layout` to capture each panel's host `<div>` (the `createPortal`
|
|
4
|
+
* container) so markers can portal their content into it.
|
|
5
|
+
*
|
|
6
|
+
* Given a fixed list of keys, returns `[elements, refs]`:
|
|
7
|
+
* - `refs[key]` — a ref callback to attach to an element; captures it into
|
|
8
|
+
* `elements[key]` (and clears it to `null` on unmount).
|
|
9
|
+
* - `elements[key]` — the currently-attached element (undefined until set).
|
|
10
|
+
*
|
|
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 => …}`
|
|
13
|
+
* that calls setState would get a new identity each render and loop.)
|
|
14
|
+
*
|
|
15
|
+
* Generic over the key type, so it works for any fixed key set.
|
|
16
|
+
*/
|
|
17
|
+
export declare function usePortalContainerRefs<K extends string>(keys: readonly K[]): [
|
|
18
|
+
Partial<Record<K, HTMLElement | null>>,
|
|
19
|
+
Record<K, (el: HTMLElement | null) => void>
|
|
20
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"usePortalContainerRefs",{enumerable:!0,get:function(){return usePortalContainerRefs}});const _react=require("react");function usePortalContainerRefs(keys){let[elements,setElements]=(0,_react.useState)({});return[elements,(0,_react.useMemo)(()=>{let map={};return keys.forEach(key=>{map[key]=el=>setElements(prev=>prev[key]===el?prev:{...prev,[key]:el})}),map},[keys])]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiny pub/sub registry for the layout's CSS custom properties. Producers
|
|
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
|
|
5
|
+
* renders them all in ONE place. Mirrors the `LayoutStore` shape so it reads
|
|
6
|
+
* via the same `useSyncExternalStore` pattern.
|
|
7
|
+
*
|
|
8
|
+
* One name = one producer. The registry is keyed by name, so a second writer to
|
|
9
|
+
* the same name last-wins; don't share a name across unrelated producers.
|
|
10
|
+
*/
|
|
11
|
+
export type LayoutVarStore = {
|
|
12
|
+
getSnapshot: () => Record<string, string>;
|
|
13
|
+
set: (name: string, value: string) => void;
|
|
14
|
+
remove: (name: string) => void;
|
|
15
|
+
subscribe: (listener: () => void) => () => void;
|
|
16
|
+
};
|
|
17
|
+
export declare function createLayoutVarStore(): LayoutVarStore;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function createLayoutVarStore(){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,"createLayoutVarStore",{enumerable:!0,get:function(){return createLayoutVarStore}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get NavBarSubMenuContainer(){return NavBarSubMenuContainer},get StyledBorderContainer(){return StyledBorderContainer},get subThemeMapping(){return subThemeMapping}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});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")),_SubThemeProvider=require("../SubThemeProvider/SubThemeProvider"),_NavBarSlideDown=require("./NavBarSlideDown"),_NavBarContext=require("./NavBarContext"),StyledBorderContainer=(0,_styled.default)("div",{target:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get NavBarSubMenuContainer(){return NavBarSubMenuContainer},get StyledBorderContainer(){return StyledBorderContainer},get subThemeMapping(){return subThemeMapping}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});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")),_SubThemeProvider=require("../SubThemeProvider/SubThemeProvider"),_constants=require("../Layout/-constants"),_LayoutVars=require("../Layout/LayoutVars"),_constants1=require("./constants"),_NavBarSlideDown=require("./NavBarSlideDown"),_NavBarContext=require("./NavBarContext"),StyledBorderContainer=(0,_styled.default)("div",{target:"e1o502qf0",label:"StyledBorderContainer"})(({theme})=>({borderBottom:`1px solid ${theme.values.color.border.secondary.default}`}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTmF2QmFyL05hdkJhclN1Yk1lbnVDb250YWluZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9OYXZCYXIvTmF2QmFyU3ViTWVudUNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQge1xuICBTdWJUaGVtZVByb3ZpZGVyLFxuICB0eXBlIFN1YlRoZW1lUHJvdmlkZXJQcm9wcyxcbn0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuLy8gSW1wb3J0IHRoZSB2YXIgbmFtZSArIHB1Ymxpc2hlciBkaXJlY3RseSBmcm9tIExheW91dCdzIGZpbGVzIChub3QgaXRzIGJhcnJlbClcbi8vIHRvIGtlZXAgdGhlIGNvdXBsaW5nIG1pbmltYWwgYW5kIGF2b2lkIHB1bGxpbmcgaW4gdGhlIExheW91dCBtb2R1bGUgZ3JhcGguXG5pbXBvcnQgeyBTVUJOQVZfT0ZGU0VUX1ZBUiB9IGZyb20gXCIuLi9MYXlvdXQvLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0VmFyIH0gZnJvbSBcIi4uL0xheW91dC9MYXlvdXRWYXJzXCI7XG5pbXBvcnQgdHlwZSB7IE5hdkJhck5hbWUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgU1VCTkFWX0hFSUdIVCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTmF2QmFyU2xpZGVEb3duIH0gZnJvbSBcIi4vTmF2QmFyU2xpZGVEb3duXCI7XG5pbXBvcnQgeyB1c2VOYXZCYXJDb250ZXh0IH0gZnJvbSBcIi4vTmF2QmFyQ29udGV4dFwiO1xuXG50eXBlIE5hdkJhclN1Yk1lbnVDb250YWluZXJQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBDT05UQUlORVJfQk9SREVSX1dJRFRIID0gMTtcbmV4cG9ydCBjb25zdCBTdHlsZWRCb3JkZXJDb250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlckJvdHRvbTogYCR7Q09OVEFJTkVSX0JPUkRFUl9XSURUSH1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuc2Vjb25kYXJ5LmRlZmF1bHR9YCxcbn0pKTtcblxuY29uc3QgU3R5bGVkU3ViTWVudUNvbnRhaW5lciA9IHN0eWxlZChTdHlsZWRCb3JkZXJDb250YWluZXIpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJhY2tncm91bmRDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuYWNjZW50U3VidGxlLmRlZmF1bHQsXG4gIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvblsxXSxcbiAgXCImID4gZGl2XCI6IHtcbiAgICBtYXJnaW5Cb3R0b206IC1DT05UQUlORVJfQk9SREVSX1dJRFRILCAvLyBUYWJzIGJvcmRlciBzaG91bGQgYmUgYWJvdmUgb2YgU3R5bGVkQm9yZGVyQ29udGFpbmVyXG4gIH0sXG59KSk7XG5cbmV4cG9ydCBjb25zdCBzdWJUaGVtZU1hcHBpbmc6IFJlY29yZDxcbiAgTmF2QmFyTmFtZSxcbiAgU3ViVGhlbWVQcm92aWRlclByb3BzW1wibmFtZVwiXVxuPiA9IHtcbiAgbGVhcm5pbmc6IFwiYnJhbmRTdWJ0bGVcIixcbiAgY2xpbmljYWxDYXJlOiBcInVuc2V0XCIsXG4gIHRlYWNoaW5nOiBcImRpbW1lZFN1YnRsZVwiLFxuICB1bnNldDogXCJ1bnNldFwiLFxufTtcblxuZXhwb3J0IGNvbnN0IE5hdkJhclN1Yk1lbnVDb250YWluZXIgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgTmF2QmFyU3ViTWVudUNvbnRhaW5lclByb3BzXG4+KCh7IGNoaWxkcmVuLCBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCB9LCByZWYpID0+IHtcbiAgY29uc3QgeyBzdWJUaGVtZSwgaXNDb21wYWN0IH0gPSB1c2VOYXZCYXJDb250ZXh0KCk7XG4gIC8vIFRoZSBzdWJuYXYgb3ducyB0aGUgKndoeSo6IGl0cyBvZmZzZXQgaXMgaXRzIGhlaWdodCB3aGVuIGV4cGFuZGVkLCAwIHdoZW5cbiAgLy8gY29tcGFjdC4gSXQgcHVibGlzaGVzIGludG8gdGhlIGxheW91dCB2YXIgcmVnaXN0cnk7IHRoZSBzaW5nbGUgTGF5b3V0VmFyc1xuICAvLyBzaW5rIHJlbmRlcnMgaXQsIGFuZCBzbG90cyBsaWtlIExheW91dC5SaWdodFBhbmVsIHJlYWQgaXQuIFRoZSB2YXIgb25seVxuICAvLyBleGlzdHMgd2hpbGUgYSBzdWJuYXYgaXMgbW91bnRlZCAoYW5kIGEgTGF5b3V0LlByb3ZpZGVyIGlzIHByZXNlbnQpIOKAlCBzbG90c1xuICAvLyBkZWZhdWx0IHRvIDAgb3RoZXJ3aXNlLCBzbyBhIE5hdkJhciB3aXRoIG5vIHN1Ym5hdiBuZWVkcyBubyBvZmZzZXQuXG4gIHVzZUxheW91dFZhcihTVUJOQVZfT0ZGU0VUX1ZBUiwgaXNDb21wYWN0ID8gXCIwcHhcIiA6IFNVQk5BVl9IRUlHSFQpO1xuXG4gIHJldHVybiAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17c3ViVGhlbWVNYXBwaW5nW3N1YlRoZW1lXX0+XG4gICAgICA8TmF2QmFyU2xpZGVEb3duIGlzVmlzaWJsZT17IWlzQ29tcGFjdH0gcG9zaXRpb249XCJib3R0b21cIj5cbiAgICAgICAgPFN0eWxlZFN1Yk1lbnVDb250YWluZXIgcmVmPXtyZWZ9IGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9PlxuICAgICAgICAgIDxkaXY+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgICA8L1N0eWxlZFN1Yk1lbnVDb250YWluZXI+XG4gICAgICA8L05hdkJhclNsaWRlRG93bj5cbiAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICk7XG59KTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQnFDIn0= */"),StyledSubMenuContainer=(0,_styled.default)(StyledBorderContainer,{target:"e1o502qf1",label:"StyledSubMenuContainer"})(({theme})=>({backgroundColor:theme.values.color.background.accentSubtle.default,boxShadow:theme.values.elevation[1],"& > div":{marginBottom:-1}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTmF2QmFyL05hdkJhclN1Yk1lbnVDb250YWluZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9OYXZCYXIvTmF2QmFyU3ViTWVudUNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQge1xuICBTdWJUaGVtZVByb3ZpZGVyLFxuICB0eXBlIFN1YlRoZW1lUHJvdmlkZXJQcm9wcyxcbn0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuLy8gSW1wb3J0IHRoZSB2YXIgbmFtZSArIHB1Ymxpc2hlciBkaXJlY3RseSBmcm9tIExheW91dCdzIGZpbGVzIChub3QgaXRzIGJhcnJlbClcbi8vIHRvIGtlZXAgdGhlIGNvdXBsaW5nIG1pbmltYWwgYW5kIGF2b2lkIHB1bGxpbmcgaW4gdGhlIExheW91dCBtb2R1bGUgZ3JhcGguXG5pbXBvcnQgeyBTVUJOQVZfT0ZGU0VUX1ZBUiB9IGZyb20gXCIuLi9MYXlvdXQvLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0VmFyIH0gZnJvbSBcIi4uL0xheW91dC9MYXlvdXRWYXJzXCI7XG5pbXBvcnQgdHlwZSB7IE5hdkJhck5hbWUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgU1VCTkFWX0hFSUdIVCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTmF2QmFyU2xpZGVEb3duIH0gZnJvbSBcIi4vTmF2QmFyU2xpZGVEb3duXCI7XG5pbXBvcnQgeyB1c2VOYXZCYXJDb250ZXh0IH0gZnJvbSBcIi4vTmF2QmFyQ29udGV4dFwiO1xuXG50eXBlIE5hdkJhclN1Yk1lbnVDb250YWluZXJQcm9wcyA9IHtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBDT05UQUlORVJfQk9SREVSX1dJRFRIID0gMTtcbmV4cG9ydCBjb25zdCBTdHlsZWRCb3JkZXJDb250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlckJvdHRvbTogYCR7Q09OVEFJTkVSX0JPUkRFUl9XSURUSH1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuc2Vjb25kYXJ5LmRlZmF1bHR9YCxcbn0pKTtcblxuY29uc3QgU3R5bGVkU3ViTWVudUNvbnRhaW5lciA9IHN0eWxlZChTdHlsZWRCb3JkZXJDb250YWluZXIpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJhY2tncm91bmRDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJhY2tncm91bmQuYWNjZW50U3VidGxlLmRlZmF1bHQsXG4gIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLmVsZXZhdGlvblsxXSxcbiAgXCImID4gZGl2XCI6IHtcbiAgICBtYXJnaW5Cb3R0b206IC1DT05UQUlORVJfQk9SREVSX1dJRFRILCAvLyBUYWJzIGJvcmRlciBzaG91bGQgYmUgYWJvdmUgb2YgU3R5bGVkQm9yZGVyQ29udGFpbmVyXG4gIH0sXG59KSk7XG5cbmV4cG9ydCBjb25zdCBzdWJUaGVtZU1hcHBpbmc6IFJlY29yZDxcbiAgTmF2QmFyTmFtZSxcbiAgU3ViVGhlbWVQcm92aWRlclByb3BzW1wibmFtZVwiXVxuPiA9IHtcbiAgbGVhcm5pbmc6IFwiYnJhbmRTdWJ0bGVcIixcbiAgY2xpbmljYWxDYXJlOiBcInVuc2V0XCIsXG4gIHRlYWNoaW5nOiBcImRpbW1lZFN1YnRsZVwiLFxuICB1bnNldDogXCJ1bnNldFwiLFxufTtcblxuZXhwb3J0IGNvbnN0IE5hdkJhclN1Yk1lbnVDb250YWluZXIgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgTmF2QmFyU3ViTWVudUNvbnRhaW5lclByb3BzXG4+KCh7IGNoaWxkcmVuLCBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCB9LCByZWYpID0+IHtcbiAgY29uc3QgeyBzdWJUaGVtZSwgaXNDb21wYWN0IH0gPSB1c2VOYXZCYXJDb250ZXh0KCk7XG4gIC8vIFRoZSBzdWJuYXYgb3ducyB0aGUgKndoeSo6IGl0cyBvZmZzZXQgaXMgaXRzIGhlaWdodCB3aGVuIGV4cGFuZGVkLCAwIHdoZW5cbiAgLy8gY29tcGFjdC4gSXQgcHVibGlzaGVzIGludG8gdGhlIGxheW91dCB2YXIgcmVnaXN0cnk7IHRoZSBzaW5nbGUgTGF5b3V0VmFyc1xuICAvLyBzaW5rIHJlbmRlcnMgaXQsIGFuZCBzbG90cyBsaWtlIExheW91dC5SaWdodFBhbmVsIHJlYWQgaXQuIFRoZSB2YXIgb25seVxuICAvLyBleGlzdHMgd2hpbGUgYSBzdWJuYXYgaXMgbW91bnRlZCAoYW5kIGEgTGF5b3V0LlByb3ZpZGVyIGlzIHByZXNlbnQpIOKAlCBzbG90c1xuICAvLyBkZWZhdWx0IHRvIDAgb3RoZXJ3aXNlLCBzbyBhIE5hdkJhciB3aXRoIG5vIHN1Ym5hdiBuZWVkcyBubyBvZmZzZXQuXG4gIHVzZUxheW91dFZhcihTVUJOQVZfT0ZGU0VUX1ZBUiwgaXNDb21wYWN0ID8gXCIwcHhcIiA6IFNVQk5BVl9IRUlHSFQpO1xuXG4gIHJldHVybiAoXG4gICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17c3ViVGhlbWVNYXBwaW5nW3N1YlRoZW1lXX0+XG4gICAgICA8TmF2QmFyU2xpZGVEb3duIGlzVmlzaWJsZT17IWlzQ29tcGFjdH0gcG9zaXRpb249XCJib3R0b21cIj5cbiAgICAgICAgPFN0eWxlZFN1Yk1lbnVDb250YWluZXIgcmVmPXtyZWZ9IGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9PlxuICAgICAgICAgIDxkaXY+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgICA8L1N0eWxlZFN1Yk1lbnVDb250YWluZXI+XG4gICAgICA8L05hdkJhclNsaWRlRG93bj5cbiAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICk7XG59KTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QitCIn0= */"),subThemeMapping={learning:"brandSubtle",clinicalCare:"unset",teaching:"dimmedSubtle",unset:"unset"},NavBarSubMenuContainer=_react.default.forwardRef(({children,"data-e2e-test-id":dataE2eTestId},ref)=>{let{subTheme,isCompact}=(0,_NavBarContext.useNavBarContext)();return(0,_LayoutVars.useLayoutVar)(_constants.SUBNAV_OFFSET_VAR,isCompact?"0px":_constants1.SUBNAV_HEIGHT),_react.default.createElement(_SubThemeProvider.SubThemeProvider,{name:subThemeMapping[subTheme]},_react.default.createElement(_NavBarSlideDown.NavBarSlideDown,{isVisible:!isCompact,position:"bottom"},_react.default.createElement(StyledSubMenuContainer,{ref:ref,"data-e2e-test-id":dataE2eTestId},_react.default.createElement("div",null,children))))});
|
|
@@ -6,6 +6,7 @@ export declare const NAV_BAR_Z_INDEX: {
|
|
|
6
6
|
export declare const COMPACT_ATTR = "data-compact";
|
|
7
7
|
export declare const TRANSITIONING_ATTR = "data-transitioning";
|
|
8
8
|
export declare const TRANSITIONING_DATASET_KEY = "transitioning";
|
|
9
|
+
export declare const SUBNAV_HEIGHT = "48px";
|
|
9
10
|
export declare const whenExpandedAncestor = "[data-compact=\"false\"] &";
|
|
10
11
|
export declare const whenTransitioningAndCompact = "[data-transitioning][data-compact=\"true\"] &";
|
|
11
12
|
export declare const whenTransitioningAndExpanded = "[data-transitioning][data-compact=\"false\"] &";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get COMPACT_ATTR(){return COMPACT_ATTR},get NAV_BAR_Z_INDEX(){return NAV_BAR_Z_INDEX},get TRANSITIONING_ATTR(){return TRANSITIONING_ATTR},get TRANSITIONING_DATASET_KEY(){return TRANSITIONING_DATASET_KEY},get whenExpandedAncestor(){return whenExpandedAncestor},get whenTransitioningAndCompact(){return whenTransitioningAndCompact},get whenTransitioningAndExpanded(){return whenTransitioningAndExpanded}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const NAV_BAR_Z_INDEX={primary:1,overlay:2,overlayContent:3},COMPACT_ATTR="data-compact",TRANSITIONING_ATTR="data-transitioning",TRANSITIONING_DATASET_KEY="transitioning",whenExpandedAncestor=`[${COMPACT_ATTR}="false"] &`,whenTransitioningAndCompact=`[${TRANSITIONING_ATTR}][${COMPACT_ATTR}="true"] &`,whenTransitioningAndExpanded=`[${TRANSITIONING_ATTR}][${COMPACT_ATTR}="false"] &`;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get COMPACT_ATTR(){return COMPACT_ATTR},get NAV_BAR_Z_INDEX(){return NAV_BAR_Z_INDEX},get SUBNAV_HEIGHT(){return SUBNAV_HEIGHT},get TRANSITIONING_ATTR(){return TRANSITIONING_ATTR},get TRANSITIONING_DATASET_KEY(){return TRANSITIONING_DATASET_KEY},get whenExpandedAncestor(){return whenExpandedAncestor},get whenTransitioningAndCompact(){return whenTransitioningAndCompact},get whenTransitioningAndExpanded(){return whenTransitioningAndExpanded}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const NAV_BAR_Z_INDEX={primary:1,overlay:2,overlayContent:3},COMPACT_ATTR="data-compact",TRANSITIONING_ATTR="data-transitioning",TRANSITIONING_DATASET_KEY="transitioning",SUBNAV_HEIGHT="48px",whenExpandedAncestor=`[${COMPACT_ATTR}="false"] &`,whenTransitioningAndCompact=`[${TRANSITIONING_ATTR}][${COMPACT_ATTR}="true"] &`,whenTransitioningAndExpanded=`[${TRANSITIONING_ATTR}][${COMPACT_ATTR}="false"] &`;
|
package/build/cjs/index.d.ts
CHANGED
|
@@ -113,3 +113,4 @@ export * from "./components/Content/ContentTableModal/ContentTableModal";
|
|
|
113
113
|
export * from "./components/Content/DosageButton";
|
|
114
114
|
export * from "./components/Content/ReferenceButton";
|
|
115
115
|
export * from "./components/AIButton/AIButton";
|
|
116
|
+
export * from "./components/Layout";
|
package/build/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get CacheProvider(){return _react.CacheProvider},get ThemeProvider(){return _react.ThemeProvider},get createCache(){return _cache.default},get dark(){return dark},get light(){return light}};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"),_interop_require_default=require("@swc/helpers/_/_interop_require_default"),_visualConfig=require("./web-tokens/visualConfig"),_react=require("@emotion/react"),_cache=/*#__PURE__*/_interop_require_default._(require("@emotion/cache"));_export_star._(require("./components/AccessCardItem/AccessCardItem"),exports),_export_star._(require("./components/AIFloatingButton/AIFloatingButton"),exports),_export_star._(require("./components/Avatar/Avatar"),exports),_export_star._(require("./components/AvatarGroup/AvatarGroup"),exports),_export_star._(require("./components/Badge/Badge"),exports),_export_star._(require("./components/BinaryFeedback/BinaryFeedback"),exports),_export_star._(require("./components/Box/Box"),exports),_export_star._(require("./components/BulkActionsToolbar/BulkActionsToolbar"),exports),_export_star._(require("./components/Button/Button"),exports),_export_star._(require("./components/Callout/Callout"),exports),_export_star._(require("./components/Card/Card"),exports),_export_star._(require("./components/Card/CardBox"),exports),_export_star._(require("./components/CatalogCard/CatalogCard"),exports),_export_star._(require("./components/ChatMessage"),exports),_export_star._(require("./components/ChatResponse"),exports),_export_star._(require("./components/CheckboxCard/CheckboxCard"),exports),_export_star._(require("./components/Collapsible/Collapsible"),exports),_export_star._(require("./components/ColorIndicator/ColorIndicator"),exports),_export_star._(require("./components/ColorPicker/ColorPicker"),exports),_export_star._(require("./components/Column/Columns"),exports),_export_star._(require("./components/Container"),exports),_export_star._(require("./components/CountButton/CountButton"),exports),_export_star._(require("./components/DataTable"),exports),_export_star._(require("./components/Divider/Divider"),exports),_export_star._(require("./components/DropdownMenu/DropdownMenu"),exports),_export_star._(require("./components/EntityList"),exports),_export_star._(require("./components/EntityTree"),exports),_export_star._(require("./components/Composite/FilterDialog/FilterDialog"),exports),_export_star._(require("./components/Form/Checkbox/Checkbox"),exports),_export_star._(require("./components/Form/Combobox/Combobox"),exports),_export_star._(require("./components/Form/DateInput/DateInput"),exports),_export_star._(require("./components/Form/DatePicker"),exports),_export_star._(require("./components/Form/FormFieldGroup/FormFieldGroup"),exports),_export_star._(require("./components/Form/Input"),exports),_export_star._(require("./components/Form/MaskedInput/MaskedInput"),exports),_export_star._(require("./components/Form/PasswordInput"),exports),_export_star._(require("./components/Form/Radio/Radio"),exports),_export_star._(require("./components/Form/RadioButton/RadioButton"),exports),_export_star._(require("./components/Form/RangeInput/RangeInput"),exports),_export_star._(require("./components/Form/SearchInput/SearchInput"),exports),_export_star._(require("./components/Form/SegmentedControl/SegmentedControl"),exports),_export_star._(require("./components/Form/Select"),exports),_export_star._(require("./components/Form/ToolbarToggle/ToolbarToggle"),exports),_export_star._(require("./components/Form/Textarea/Textarea"),exports),_export_star._(require("./components/Form/Toggle/Toggle"),exports),_export_star._(require("./components/Form/ToggleButton/ToggleButton"),exports),_export_star._(require("./components/Grid/Grid"),exports),_export_star._(require("./components/Icon/Icon"),exports),_export_star._(require("./components/IconTile/IconTile"),exports),_export_star._(require("./components/Image/Image"),exports),_export_star._(require("./components/Inline/Inline"),exports),_export_star._(require("./components/InteractiveBox/InteractiveBox"),exports),_export_star._(require("./components/Lightbox/Lightbox"),exports),_export_star._(require("./components/Link/Link"),exports),_export_star._(require("./components/LoadingSpinner/LoadingSpinner"),exports),_export_star._(require("./components/Logo/Logo"),exports),_export_star._(require("./components/MediaItem"),exports),_export_star._(require("./components/MediaViewerBar/MediaViewerBar"),exports),_export_star._(require("./components/MediaViewerCarousel/MediaViewerCarousel"),exports),_export_star._(require("./components/NavBar"),exports),_export_star._(require("./components/Notification/Notification"),exports),_export_star._(require("./components/Pagination/Pagination"),exports),_export_star._(require("./components/Patterns/ButtonGroup/ButtonGroup"),exports),_export_star._(require("./components/Patterns/Modal/Modal"),exports),_export_star._(require("./components/PictogramButton/PictogramButton"),exports),_export_star._(require("./components/Popover/Popover"),exports),_export_star._(require("./components/ProgressBar/ProgressBar"),exports),_export_star._(require("./components/PromptButton/PromptButton"),exports),_export_star._(require("./components/PromptInput/PromptInput"),exports),_export_star._(require("./components/SplashCard/SplashCard"),exports),_export_star._(require("./components/SplashCardMedia/SplashCardMedia"),exports),_export_star._(require("./components/QBankRichText/QBankRichText"),exports),_export_star._(require("./components/RadioCard/RadioCard"),exports),_export_star._(require("./components/RoundButton/RoundButton"),exports),_export_star._(require("./components/SearchResult/SearchResult"),exports),_export_star._(require("./components/SegmentedProgressBar/SegmentedProgressBar"),exports),_export_star._(require("./components/Sheet/Sheet"),exports),_export_star._(require("./components/Stack/Stack"),exports),_export_star._(require("./components/SubThemeProvider/SubThemeProvider"),exports),_export_star._(require("./components/Tabs/Tabs"),exports),_export_star._(require("./components/Tag/Tag"),exports),_export_star._(require("./components/TagGroup/TagGroup"),exports),_export_star._(require("./components/Toast"),exports),_export_star._(require("./components/Toggletip/Toggletip"),exports),_export_star._(require("./components/Tooltip/Tooltip"),exports),_export_star._(require("./components/Tutorialtip/Tutorialtip"),exports),_export_star._(require("./components/Typography/Header"),exports),_export_star._(require("./components/Typography/StyledText/StyledText"),exports),_export_star._(require("./components/Typography/Text"),exports),_export_star._(require("./components/Typography/TextClamped/TextClamped"),exports),_export_star._(require("./components/UserHighlightTooltip/UserHighlightTooltip"),exports),_export_star._(require("./components/Utilities/AnimatedBorder/useAnimatedBorder"),exports),_export_star._(require("./components/Utilities/ContainerQuery/ContainerQuery"),exports),_export_star._(require("./components/Utilities/Expandable/Expandable"),exports),_export_star._(require("./components/Utilities/ScreenReaderText/ScreenReaderText"),exports),_export_star._(require("./components/Patterns/EmptyState/EmptyState"),exports),_export_star._(require("./components/Content/ContentBox/ContentBox"),exports),_export_star._(require("./components/Content/ContentCheckbox/ContentCheckbox"),exports),_export_star._(require("./components/Content/ContentFontResizer"),exports),_export_star._(require("./components/Content/ContentHeading/ContentHeading"),exports),_export_star._(require("./components/Content/ContentLink/ContentLink"),exports),_export_star._(require("./components/Content/ContentPictogramButton/ContentPictogramButton"),exports),_export_star._(require("./components/Content/ContentText/ContentText"),exports),_export_star._(require("./components/Content/ContentList"),exports),_export_star._(require("./components/Content/ContentTable"),exports),_export_star._(require("./components/Content/ContentTableModal/ContentTableModal"),exports),_export_star._(require("./components/Content/DosageButton"),exports),_export_star._(require("./components/Content/ReferenceButton"),exports),_export_star._(require("./components/AIButton/AIButton"),exports);const{dark,light}=_visualConfig.ambossVisualConfiguration;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get CacheProvider(){return _react.CacheProvider},get ThemeProvider(){return _react.ThemeProvider},get createCache(){return _cache.default},get dark(){return dark},get light(){return light}};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"),_interop_require_default=require("@swc/helpers/_/_interop_require_default"),_visualConfig=require("./web-tokens/visualConfig"),_react=require("@emotion/react"),_cache=/*#__PURE__*/_interop_require_default._(require("@emotion/cache"));_export_star._(require("./components/AccessCardItem/AccessCardItem"),exports),_export_star._(require("./components/AIFloatingButton/AIFloatingButton"),exports),_export_star._(require("./components/Avatar/Avatar"),exports),_export_star._(require("./components/AvatarGroup/AvatarGroup"),exports),_export_star._(require("./components/Badge/Badge"),exports),_export_star._(require("./components/BinaryFeedback/BinaryFeedback"),exports),_export_star._(require("./components/Box/Box"),exports),_export_star._(require("./components/BulkActionsToolbar/BulkActionsToolbar"),exports),_export_star._(require("./components/Button/Button"),exports),_export_star._(require("./components/Callout/Callout"),exports),_export_star._(require("./components/Card/Card"),exports),_export_star._(require("./components/Card/CardBox"),exports),_export_star._(require("./components/CatalogCard/CatalogCard"),exports),_export_star._(require("./components/ChatMessage"),exports),_export_star._(require("./components/ChatResponse"),exports),_export_star._(require("./components/CheckboxCard/CheckboxCard"),exports),_export_star._(require("./components/Collapsible/Collapsible"),exports),_export_star._(require("./components/ColorIndicator/ColorIndicator"),exports),_export_star._(require("./components/ColorPicker/ColorPicker"),exports),_export_star._(require("./components/Column/Columns"),exports),_export_star._(require("./components/Container"),exports),_export_star._(require("./components/CountButton/CountButton"),exports),_export_star._(require("./components/DataTable"),exports),_export_star._(require("./components/Divider/Divider"),exports),_export_star._(require("./components/DropdownMenu/DropdownMenu"),exports),_export_star._(require("./components/EntityList"),exports),_export_star._(require("./components/EntityTree"),exports),_export_star._(require("./components/Composite/FilterDialog/FilterDialog"),exports),_export_star._(require("./components/Form/Checkbox/Checkbox"),exports),_export_star._(require("./components/Form/Combobox/Combobox"),exports),_export_star._(require("./components/Form/DateInput/DateInput"),exports),_export_star._(require("./components/Form/DatePicker"),exports),_export_star._(require("./components/Form/FormFieldGroup/FormFieldGroup"),exports),_export_star._(require("./components/Form/Input"),exports),_export_star._(require("./components/Form/MaskedInput/MaskedInput"),exports),_export_star._(require("./components/Form/PasswordInput"),exports),_export_star._(require("./components/Form/Radio/Radio"),exports),_export_star._(require("./components/Form/RadioButton/RadioButton"),exports),_export_star._(require("./components/Form/RangeInput/RangeInput"),exports),_export_star._(require("./components/Form/SearchInput/SearchInput"),exports),_export_star._(require("./components/Form/SegmentedControl/SegmentedControl"),exports),_export_star._(require("./components/Form/Select"),exports),_export_star._(require("./components/Form/ToolbarToggle/ToolbarToggle"),exports),_export_star._(require("./components/Form/Textarea/Textarea"),exports),_export_star._(require("./components/Form/Toggle/Toggle"),exports),_export_star._(require("./components/Form/ToggleButton/ToggleButton"),exports),_export_star._(require("./components/Grid/Grid"),exports),_export_star._(require("./components/Icon/Icon"),exports),_export_star._(require("./components/IconTile/IconTile"),exports),_export_star._(require("./components/Image/Image"),exports),_export_star._(require("./components/Inline/Inline"),exports),_export_star._(require("./components/InteractiveBox/InteractiveBox"),exports),_export_star._(require("./components/Lightbox/Lightbox"),exports),_export_star._(require("./components/Link/Link"),exports),_export_star._(require("./components/LoadingSpinner/LoadingSpinner"),exports),_export_star._(require("./components/Logo/Logo"),exports),_export_star._(require("./components/MediaItem"),exports),_export_star._(require("./components/MediaViewerBar/MediaViewerBar"),exports),_export_star._(require("./components/MediaViewerCarousel/MediaViewerCarousel"),exports),_export_star._(require("./components/NavBar"),exports),_export_star._(require("./components/Notification/Notification"),exports),_export_star._(require("./components/Pagination/Pagination"),exports),_export_star._(require("./components/Patterns/ButtonGroup/ButtonGroup"),exports),_export_star._(require("./components/Patterns/Modal/Modal"),exports),_export_star._(require("./components/PictogramButton/PictogramButton"),exports),_export_star._(require("./components/Popover/Popover"),exports),_export_star._(require("./components/ProgressBar/ProgressBar"),exports),_export_star._(require("./components/PromptButton/PromptButton"),exports),_export_star._(require("./components/PromptInput/PromptInput"),exports),_export_star._(require("./components/SplashCard/SplashCard"),exports),_export_star._(require("./components/SplashCardMedia/SplashCardMedia"),exports),_export_star._(require("./components/QBankRichText/QBankRichText"),exports),_export_star._(require("./components/RadioCard/RadioCard"),exports),_export_star._(require("./components/RoundButton/RoundButton"),exports),_export_star._(require("./components/SearchResult/SearchResult"),exports),_export_star._(require("./components/SegmentedProgressBar/SegmentedProgressBar"),exports),_export_star._(require("./components/Sheet/Sheet"),exports),_export_star._(require("./components/Stack/Stack"),exports),_export_star._(require("./components/SubThemeProvider/SubThemeProvider"),exports),_export_star._(require("./components/Tabs/Tabs"),exports),_export_star._(require("./components/Tag/Tag"),exports),_export_star._(require("./components/TagGroup/TagGroup"),exports),_export_star._(require("./components/Toast"),exports),_export_star._(require("./components/Toggletip/Toggletip"),exports),_export_star._(require("./components/Tooltip/Tooltip"),exports),_export_star._(require("./components/Tutorialtip/Tutorialtip"),exports),_export_star._(require("./components/Typography/Header"),exports),_export_star._(require("./components/Typography/StyledText/StyledText"),exports),_export_star._(require("./components/Typography/Text"),exports),_export_star._(require("./components/Typography/TextClamped/TextClamped"),exports),_export_star._(require("./components/UserHighlightTooltip/UserHighlightTooltip"),exports),_export_star._(require("./components/Utilities/AnimatedBorder/useAnimatedBorder"),exports),_export_star._(require("./components/Utilities/ContainerQuery/ContainerQuery"),exports),_export_star._(require("./components/Utilities/Expandable/Expandable"),exports),_export_star._(require("./components/Utilities/ScreenReaderText/ScreenReaderText"),exports),_export_star._(require("./components/Patterns/EmptyState/EmptyState"),exports),_export_star._(require("./components/Content/ContentBox/ContentBox"),exports),_export_star._(require("./components/Content/ContentCheckbox/ContentCheckbox"),exports),_export_star._(require("./components/Content/ContentFontResizer"),exports),_export_star._(require("./components/Content/ContentHeading/ContentHeading"),exports),_export_star._(require("./components/Content/ContentLink/ContentLink"),exports),_export_star._(require("./components/Content/ContentPictogramButton/ContentPictogramButton"),exports),_export_star._(require("./components/Content/ContentText/ContentText"),exports),_export_star._(require("./components/Content/ContentList"),exports),_export_star._(require("./components/Content/ContentTable"),exports),_export_star._(require("./components/Content/ContentTableModal/ContentTableModal"),exports),_export_star._(require("./components/Content/DosageButton"),exports),_export_star._(require("./components/Content/ReferenceButton"),exports),_export_star._(require("./components/AIButton/AIButton"),exports),_export_star._(require("./components/Layout"),exports);const{dark,light}=_visualConfig.ambossVisualConfiguration;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { LayoutStorage } from "react-resizable-panels";
|
|
3
|
+
/** A size: plain number = pixels; unitless string = percentage ("10%"). */
|
|
4
|
+
type Size = number | string;
|
|
5
|
+
export type PanelItem = {
|
|
6
|
+
/** Stable id — used by react-resizable-panels to track the panel and persist
|
|
7
|
+
* its size, and passed back to `hostFor`/`onResize`/`onCollapse`. */
|
|
8
|
+
id: string;
|
|
9
|
+
defaultSize?: Size;
|
|
10
|
+
minSize?: Size;
|
|
11
|
+
maxSize?: Size;
|
|
12
|
+
/** Allow drag-to-collapse; collapsing fires `onCollapse(id)`. */
|
|
13
|
+
collapsible?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type PanelProps = {
|
|
16
|
+
/** Visible panels, left-to-right. Conditionally rendering items toggles a
|
|
17
|
+
* panel WITHOUT remounting the others (no `key` on the group). */
|
|
18
|
+
panels: PanelItem[];
|
|
19
|
+
/** Persist sizes (keyed by `persistenceKey` + the current panel-id set). */
|
|
20
|
+
persistenceKey?: string;
|
|
21
|
+
storage?: LayoutStorage;
|
|
22
|
+
/** Ref callback for a panel's content host `<div>` (consumer portals into it). */
|
|
23
|
+
hostFor: (id: string) => (el: HTMLElement | null) => void;
|
|
24
|
+
/** Reports a settled drag-resize (size as a "%" string). */
|
|
25
|
+
onResize: (id: string, size: string) => void;
|
|
26
|
+
/** Reports a drag past `minSize` on a collapsible panel. */
|
|
27
|
+
onCollapse: (id: string) => void;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Internal resizable panel row — the only wrapper around react-resizable-panels.
|
|
31
|
+
* Renders one Panel per item with a content host `<div>` (ref'd back via
|
|
32
|
+
* `hostFor`), persists sizes, and reports drag-resize / drag-to-collapse. The
|
|
33
|
+
* public `Layout` component is the intended consumer.
|
|
34
|
+
*/
|
|
35
|
+
export declare function Panel({ panels, persistenceKey, storage, hostFor, onResize, onCollapse, }: PanelProps): React.ReactElement;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{Group,Panel as ResizablePanel,Separator,useDefaultLayout}from"react-resizable-panels";let CustomGroup=styled(Group,{target:"e8gmbta0",label:"CustomGroup"})({height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvUGFuZWwvUGFuZWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9QYW5lbC9QYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQge1xuICBHcm91cCxcbiAgUGFuZWwgYXMgUmVzaXphYmxlUGFuZWwsXG4gIFNlcGFyYXRvcixcbiAgdXNlRGVmYXVsdExheW91dCxcbn0gZnJvbSBcInJlYWN0LXJlc2l6YWJsZS1wYW5lbHNcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0U3RvcmFnZSB9IGZyb20gXCJyZWFjdC1yZXNpemFibGUtcGFuZWxzXCI7XG5cbi8qKiBBIHNpemU6IHBsYWluIG51bWJlciA9IHBpeGVsczsgdW5pdGxlc3Mgc3RyaW5nID0gcGVyY2VudGFnZSAoXCIxMCVcIikuICovXG50eXBlIFNpemUgPSBudW1iZXIgfCBzdHJpbmc7XG5cbmNvbnN0IEN1c3RvbUdyb3VwID0gc3R5bGVkKEdyb3VwKSh7IGhlaWdodDogXCIxMDAlXCIsIHdpZHRoOiBcIjEwMCVcIiB9KTtcblxuLy8gSG9zdCBub2RlIOKAlCBjb250ZW50IGlzIHBvcnRhbGVkIGluIGJ5IHRoZSBjb25zdW1lci4gYHJlbGF0aXZlYCBzb1xuLy8gYWJzb2x1dGVseS1wb3NpdGlvbmVkIGNvbnRlbnQgcmVmbG93cyB3aXRoIHRoZSBwYW5lbC5cbmNvbnN0IFN0eWxlZFBvcnRhbENvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUGFuZWxJdGVtID0ge1xuICAvKiogU3RhYmxlIGlkIOKAlCB1c2VkIGJ5IHJlYWN0LXJlc2l6YWJsZS1wYW5lbHMgdG8gdHJhY2sgdGhlIHBhbmVsIGFuZCBwZXJzaXN0XG4gICAqICBpdHMgc2l6ZSwgYW5kIHBhc3NlZCBiYWNrIHRvIGBob3N0Rm9yYC9gb25SZXNpemVgL2BvbkNvbGxhcHNlYC4gKi9cbiAgaWQ6IHN0cmluZztcbiAgZGVmYXVsdFNpemU/OiBTaXplO1xuICBtaW5TaXplPzogU2l6ZTtcbiAgbWF4U2l6ZT86IFNpemU7XG4gIC8qKiBBbGxvdyBkcmFnLXRvLWNvbGxhcHNlOyBjb2xsYXBzaW5nIGZpcmVzIGBvbkNvbGxhcHNlKGlkKWAuICovXG4gIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhbmVsUHJvcHMgPSB7XG4gIC8qKiBWaXNpYmxlIHBhbmVscywgbGVmdC10by1yaWdodC4gQ29uZGl0aW9uYWxseSByZW5kZXJpbmcgaXRlbXMgdG9nZ2xlcyBhXG4gICAqICBwYW5lbCBXSVRIT1VUIHJlbW91bnRpbmcgdGhlIG90aGVycyAobm8gYGtleWAgb24gdGhlIGdyb3VwKS4gKi9cbiAgcGFuZWxzOiBQYW5lbEl0ZW1bXTtcbiAgLyoqIFBlcnNpc3Qgc2l6ZXMgKGtleWVkIGJ5IGBwZXJzaXN0ZW5jZUtleWAgKyB0aGUgY3VycmVudCBwYW5lbC1pZCBzZXQpLiAqL1xuICBwZXJzaXN0ZW5jZUtleT86IHN0cmluZztcbiAgc3RvcmFnZT86IExheW91dFN0b3JhZ2U7XG4gIC8qKiBSZWYgY2FsbGJhY2sgZm9yIGEgcGFuZWwncyBjb250ZW50IGhvc3QgYDxkaXY+YCAoY29uc3VtZXIgcG9ydGFscyBpbnRvIGl0KS4gKi9cbiAgaG9zdEZvcjogKGlkOiBzdHJpbmcpID0+IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogUmVwb3J0cyBhIHNldHRsZWQgZHJhZy1yZXNpemUgKHNpemUgYXMgYSBcIiVcIiBzdHJpbmcpLiAqL1xuICBvblJlc2l6ZTogKGlkOiBzdHJpbmcsIHNpemU6IHN0cmluZykgPT4gdm9pZDtcbiAgLyoqIFJlcG9ydHMgYSBkcmFnIHBhc3QgYG1pblNpemVgIG9uIGEgY29sbGFwc2libGUgcGFuZWwuICovXG4gIG9uQ29sbGFwc2U6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xufTtcblxuLy8gZmxleEdyb3cgYXQvYmVsb3cgdGhpcyBpcyB0cmVhdGVkIGFzIGEgZHJhZy10by1jb2xsYXBzZSBnZXN0dXJlLlxuY29uc3QgQ09MTEFQU0VfRVBTSUxPTiA9IDAuNTtcblxuLy8gcmVhY3QtcmVzaXphYmxlLXBhbmVscyBwZXJzaXN0cyBub3RoaW5nIHdoZW4gZ2l2ZW4gYSBuby1vcCBzdG9yYWdlLlxuY29uc3QgTk9PUF9TVE9SQUdFOiBMYXlvdXRTdG9yYWdlID0geyBnZXRJdGVtOiAoKSA9PiBudWxsLCBzZXRJdGVtOiAoKSA9PiB7fSB9O1xuXG4vKipcbiAqIFN0b3JhZ2UgZm9yIHNpemUgcGVyc2lzdGVuY2U6IHJlYWwgb25seSB3aGVuIEJPVEggYSBgcGVyc2lzdGVuY2VLZXlgIGFuZCBhXG4gKiBgc3RvcmFnZWAgYXJlIHByb3ZpZGVkLiBObyBpbXBsaWNpdCBgd2luZG93LmxvY2FsU3RvcmFnZWAgZmFsbGJhY2sg4oCUXG4gKiBwZXJzaXN0ZW5jZSBpcyBzdHJpY3RseSBvcHQtaW4uXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTaXplU3RvcmFnZShcbiAgcGVyc2lzdGVuY2VLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgc3RvcmFnZTogTGF5b3V0U3RvcmFnZSB8IHVuZGVmaW5lZFxuKTogTGF5b3V0U3RvcmFnZSB7XG4gIGlmICghcGVyc2lzdGVuY2VLZXkgfHwgIXN0b3JhZ2UpIHJldHVybiBOT09QX1NUT1JBR0U7XG4gIHJldHVybiBzdG9yYWdlO1xufVxuXG4vKipcbiAqIEludGVybmFsIHJlc2l6YWJsZSBwYW5lbCByb3cg4oCUIHRoZSBvbmx5IHdyYXBwZXIgYXJvdW5kIHJlYWN0LXJlc2l6YWJsZS1wYW5lbHMuXG4gKiBSZW5kZXJzIG9uZSBQYW5lbCBwZXIgaXRlbSB3aXRoIGEgY29udGVudCBob3N0IGA8ZGl2PmAgKHJlZidkIGJhY2sgdmlhXG4gKiBgaG9zdEZvcmApLCBwZXJzaXN0cyBzaXplcywgYW5kIHJlcG9ydHMgZHJhZy1yZXNpemUgLyBkcmFnLXRvLWNvbGxhcHNlLiBUaGVcbiAqIHB1YmxpYyBgTGF5b3V0YCBjb21wb25lbnQgaXMgdGhlIGludGVuZGVkIGNvbnN1bWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUGFuZWwoe1xuICBwYW5lbHMsXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxuICBob3N0Rm9yLFxuICBvblJlc2l6ZSxcbiAgb25Db2xsYXBzZSxcbn06IFBhbmVsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCB7IGRlZmF1bHRMYXlvdXQsIG9uTGF5b3V0Q2hhbmdlZDogcGVyc2lzdFNpemVzIH0gPSB1c2VEZWZhdWx0TGF5b3V0KHtcbiAgICBpZDogcGVyc2lzdGVuY2VLZXkgPz8gXCJkcy1sYXlvdXRcIixcbiAgICBwYW5lbElkczogcGFuZWxzLm1hcCgocCkgPT4gcC5pZCksXG4gICAgc3RvcmFnZTogcmVzb2x2ZVNpemVTdG9yYWdlKHBlcnNpc3RlbmNlS2V5LCBzdG9yYWdlKSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tR3JvdXBcbiAgICAgIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICBkZWZhdWx0TGF5b3V0PXtkZWZhdWx0TGF5b3V0fVxuICAgICAgb25MYXlvdXRDaGFuZ2VkPXsobGF5b3V0KSA9PiB7XG4gICAgICAgIHBlcnNpc3RTaXplcyhsYXlvdXQpOyAvLyBsaWJyYXJ5IHNhdmVzIHRoZSBzaXplc1xuICAgICAgICBwYW5lbHMuZm9yRWFjaCgoeyBpZCwgY29sbGFwc2libGUgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBjdCA9IGxheW91dFtpZF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBwY3QgIT09IFwibnVtYmVyXCIpIHJldHVybjtcbiAgICAgICAgICBpZiAoY29sbGFwc2libGUgJiYgcGN0IDwgQ09MTEFQU0VfRVBTSUxPTikge1xuICAgICAgICAgICAgb25Db2xsYXBzZShpZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwY3QgPj0gQ09MTEFQU0VfRVBTSUxPTikgb25SZXNpemUoaWQsIGAke3BjdH0lYCk7XG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7cGFuZWxzLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17aXRlbS5pZH0+XG4gICAgICAgICAge2luZGV4ID4gMCAmJiA8U2VwYXJhdG9yIC8+fVxuICAgICAgICAgIDxSZXNpemFibGVQYW5lbFxuICAgICAgICAgICAgaWQ9e2l0ZW0uaWR9XG4gICAgICAgICAgICBkZWZhdWx0U2l6ZT17aXRlbS5kZWZhdWx0U2l6ZX1cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlPXtpdGVtLmNvbGxhcHNpYmxlfVxuICAgICAgICAgICAgbWluU2l6ZT17aXRlbS5taW5TaXplfVxuICAgICAgICAgICAgbWF4U2l6ZT17aXRlbS5tYXhTaXplfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdHlsZWRQb3J0YWxDb250YWluZXIgcmVmPXtob3N0Rm9yKGl0ZW0uaWQpfSAvPlxuICAgICAgICAgIDwvUmVzaXphYmxlUGFuZWw+XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICApKX1cbiAgICA8L0N1c3RvbUdyb3VwPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFvQiJ9 */"),StyledPortalContainer=styled("div",{target:"e8gmbta1",label:"StyledPortalContainer"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvUGFuZWwvUGFuZWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9QYW5lbC9QYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQge1xuICBHcm91cCxcbiAgUGFuZWwgYXMgUmVzaXphYmxlUGFuZWwsXG4gIFNlcGFyYXRvcixcbiAgdXNlRGVmYXVsdExheW91dCxcbn0gZnJvbSBcInJlYWN0LXJlc2l6YWJsZS1wYW5lbHNcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0U3RvcmFnZSB9IGZyb20gXCJyZWFjdC1yZXNpemFibGUtcGFuZWxzXCI7XG5cbi8qKiBBIHNpemU6IHBsYWluIG51bWJlciA9IHBpeGVsczsgdW5pdGxlc3Mgc3RyaW5nID0gcGVyY2VudGFnZSAoXCIxMCVcIikuICovXG50eXBlIFNpemUgPSBudW1iZXIgfCBzdHJpbmc7XG5cbmNvbnN0IEN1c3RvbUdyb3VwID0gc3R5bGVkKEdyb3VwKSh7IGhlaWdodDogXCIxMDAlXCIsIHdpZHRoOiBcIjEwMCVcIiB9KTtcblxuLy8gSG9zdCBub2RlIOKAlCBjb250ZW50IGlzIHBvcnRhbGVkIGluIGJ5IHRoZSBjb25zdW1lci4gYHJlbGF0aXZlYCBzb1xuLy8gYWJzb2x1dGVseS1wb3NpdGlvbmVkIGNvbnRlbnQgcmVmbG93cyB3aXRoIHRoZSBwYW5lbC5cbmNvbnN0IFN0eWxlZFBvcnRhbENvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuZXhwb3J0IHR5cGUgUGFuZWxJdGVtID0ge1xuICAvKiogU3RhYmxlIGlkIOKAlCB1c2VkIGJ5IHJlYWN0LXJlc2l6YWJsZS1wYW5lbHMgdG8gdHJhY2sgdGhlIHBhbmVsIGFuZCBwZXJzaXN0XG4gICAqICBpdHMgc2l6ZSwgYW5kIHBhc3NlZCBiYWNrIHRvIGBob3N0Rm9yYC9gb25SZXNpemVgL2BvbkNvbGxhcHNlYC4gKi9cbiAgaWQ6IHN0cmluZztcbiAgZGVmYXVsdFNpemU/OiBTaXplO1xuICBtaW5TaXplPzogU2l6ZTtcbiAgbWF4U2l6ZT86IFNpemU7XG4gIC8qKiBBbGxvdyBkcmFnLXRvLWNvbGxhcHNlOyBjb2xsYXBzaW5nIGZpcmVzIGBvbkNvbGxhcHNlKGlkKWAuICovXG4gIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhbmVsUHJvcHMgPSB7XG4gIC8qKiBWaXNpYmxlIHBhbmVscywgbGVmdC10by1yaWdodC4gQ29uZGl0aW9uYWxseSByZW5kZXJpbmcgaXRlbXMgdG9nZ2xlcyBhXG4gICAqICBwYW5lbCBXSVRIT1VUIHJlbW91bnRpbmcgdGhlIG90aGVycyAobm8gYGtleWAgb24gdGhlIGdyb3VwKS4gKi9cbiAgcGFuZWxzOiBQYW5lbEl0ZW1bXTtcbiAgLyoqIFBlcnNpc3Qgc2l6ZXMgKGtleWVkIGJ5IGBwZXJzaXN0ZW5jZUtleWAgKyB0aGUgY3VycmVudCBwYW5lbC1pZCBzZXQpLiAqL1xuICBwZXJzaXN0ZW5jZUtleT86IHN0cmluZztcbiAgc3RvcmFnZT86IExheW91dFN0b3JhZ2U7XG4gIC8qKiBSZWYgY2FsbGJhY2sgZm9yIGEgcGFuZWwncyBjb250ZW50IGhvc3QgYDxkaXY+YCAoY29uc3VtZXIgcG9ydGFscyBpbnRvIGl0KS4gKi9cbiAgaG9zdEZvcjogKGlkOiBzdHJpbmcpID0+IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuICAvKiogUmVwb3J0cyBhIHNldHRsZWQgZHJhZy1yZXNpemUgKHNpemUgYXMgYSBcIiVcIiBzdHJpbmcpLiAqL1xuICBvblJlc2l6ZTogKGlkOiBzdHJpbmcsIHNpemU6IHN0cmluZykgPT4gdm9pZDtcbiAgLyoqIFJlcG9ydHMgYSBkcmFnIHBhc3QgYG1pblNpemVgIG9uIGEgY29sbGFwc2libGUgcGFuZWwuICovXG4gIG9uQ29sbGFwc2U6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xufTtcblxuLy8gZmxleEdyb3cgYXQvYmVsb3cgdGhpcyBpcyB0cmVhdGVkIGFzIGEgZHJhZy10by1jb2xsYXBzZSBnZXN0dXJlLlxuY29uc3QgQ09MTEFQU0VfRVBTSUxPTiA9IDAuNTtcblxuLy8gcmVhY3QtcmVzaXphYmxlLXBhbmVscyBwZXJzaXN0cyBub3RoaW5nIHdoZW4gZ2l2ZW4gYSBuby1vcCBzdG9yYWdlLlxuY29uc3QgTk9PUF9TVE9SQUdFOiBMYXlvdXRTdG9yYWdlID0geyBnZXRJdGVtOiAoKSA9PiBudWxsLCBzZXRJdGVtOiAoKSA9PiB7fSB9O1xuXG4vKipcbiAqIFN0b3JhZ2UgZm9yIHNpemUgcGVyc2lzdGVuY2U6IHJlYWwgb25seSB3aGVuIEJPVEggYSBgcGVyc2lzdGVuY2VLZXlgIGFuZCBhXG4gKiBgc3RvcmFnZWAgYXJlIHByb3ZpZGVkLiBObyBpbXBsaWNpdCBgd2luZG93LmxvY2FsU3RvcmFnZWAgZmFsbGJhY2sg4oCUXG4gKiBwZXJzaXN0ZW5jZSBpcyBzdHJpY3RseSBvcHQtaW4uXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTaXplU3RvcmFnZShcbiAgcGVyc2lzdGVuY2VLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgc3RvcmFnZTogTGF5b3V0U3RvcmFnZSB8IHVuZGVmaW5lZFxuKTogTGF5b3V0U3RvcmFnZSB7XG4gIGlmICghcGVyc2lzdGVuY2VLZXkgfHwgIXN0b3JhZ2UpIHJldHVybiBOT09QX1NUT1JBR0U7XG4gIHJldHVybiBzdG9yYWdlO1xufVxuXG4vKipcbiAqIEludGVybmFsIHJlc2l6YWJsZSBwYW5lbCByb3cg4oCUIHRoZSBvbmx5IHdyYXBwZXIgYXJvdW5kIHJlYWN0LXJlc2l6YWJsZS1wYW5lbHMuXG4gKiBSZW5kZXJzIG9uZSBQYW5lbCBwZXIgaXRlbSB3aXRoIGEgY29udGVudCBob3N0IGA8ZGl2PmAgKHJlZidkIGJhY2sgdmlhXG4gKiBgaG9zdEZvcmApLCBwZXJzaXN0cyBzaXplcywgYW5kIHJlcG9ydHMgZHJhZy1yZXNpemUgLyBkcmFnLXRvLWNvbGxhcHNlLiBUaGVcbiAqIHB1YmxpYyBgTGF5b3V0YCBjb21wb25lbnQgaXMgdGhlIGludGVuZGVkIGNvbnN1bWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUGFuZWwoe1xuICBwYW5lbHMsXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxuICBob3N0Rm9yLFxuICBvblJlc2l6ZSxcbiAgb25Db2xsYXBzZSxcbn06IFBhbmVsUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCB7IGRlZmF1bHRMYXlvdXQsIG9uTGF5b3V0Q2hhbmdlZDogcGVyc2lzdFNpemVzIH0gPSB1c2VEZWZhdWx0TGF5b3V0KHtcbiAgICBpZDogcGVyc2lzdGVuY2VLZXkgPz8gXCJkcy1sYXlvdXRcIixcbiAgICBwYW5lbElkczogcGFuZWxzLm1hcCgocCkgPT4gcC5pZCksXG4gICAgc3RvcmFnZTogcmVzb2x2ZVNpemVTdG9yYWdlKHBlcnNpc3RlbmNlS2V5LCBzdG9yYWdlKSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tR3JvdXBcbiAgICAgIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICBkZWZhdWx0TGF5b3V0PXtkZWZhdWx0TGF5b3V0fVxuICAgICAgb25MYXlvdXRDaGFuZ2VkPXsobGF5b3V0KSA9PiB7XG4gICAgICAgIHBlcnNpc3RTaXplcyhsYXlvdXQpOyAvLyBsaWJyYXJ5IHNhdmVzIHRoZSBzaXplc1xuICAgICAgICBwYW5lbHMuZm9yRWFjaCgoeyBpZCwgY29sbGFwc2libGUgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBjdCA9IGxheW91dFtpZF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBwY3QgIT09IFwibnVtYmVyXCIpIHJldHVybjtcbiAgICAgICAgICBpZiAoY29sbGFwc2libGUgJiYgcGN0IDwgQ09MTEFQU0VfRVBTSUxPTikge1xuICAgICAgICAgICAgb25Db2xsYXBzZShpZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwY3QgPj0gQ09MTEFQU0VfRVBTSUxPTikgb25SZXNpemUoaWQsIGAke3BjdH0lYCk7XG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7cGFuZWxzLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17aXRlbS5pZH0+XG4gICAgICAgICAge2luZGV4ID4gMCAmJiA8U2VwYXJhdG9yIC8+fVxuICAgICAgICAgIDxSZXNpemFibGVQYW5lbFxuICAgICAgICAgICAgaWQ9e2l0ZW0uaWR9XG4gICAgICAgICAgICBkZWZhdWx0U2l6ZT17aXRlbS5kZWZhdWx0U2l6ZX1cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlPXtpdGVtLmNvbGxhcHNpYmxlfVxuICAgICAgICAgICAgbWluU2l6ZT17aXRlbS5taW5TaXplfVxuICAgICAgICAgICAgbWF4U2l6ZT17aXRlbS5tYXhTaXplfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdHlsZWRQb3J0YWxDb250YWluZXIgcmVmPXtob3N0Rm9yKGl0ZW0uaWQpfSAvPlxuICAgICAgICAgIDwvUmVzaXphYmxlUGFuZWw+XG4gICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICApKX1cbiAgICA8L0N1c3RvbUdyb3VwPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCOEIifQ== */"),NOOP_STORAGE={getItem:()=>null,setItem:()=>{}};export function Panel({panels,persistenceKey,storage,hostFor,onResize,onCollapse}){let{defaultLayout,onLayoutChanged:persistSizes}=useDefaultLayout({id:persistenceKey??"ds-layout",panelIds:panels.map(p=>p.id),storage:persistenceKey&&storage?storage:NOOP_STORAGE});return React.createElement(CustomGroup,{orientation:"horizontal",defaultLayout:defaultLayout,onLayoutChanged:layout=>{persistSizes(layout),panels.forEach(({id,collapsible})=>{let pct=layout[id];if("number"==typeof pct){if(collapsible&&pct<.5)return void onCollapse(id);pct>=.5&&onResize(id,`${pct}%`)}})}},panels.map((item,index)=>React.createElement(React.Fragment,{key:item.id},index>0&&React.createElement(Separator,null),React.createElement(ResizablePanel,{id:item.id,defaultSize:item.defaultSize,collapsible:item.collapsible,minSize:item.minSize,maxSize:item.maxSize},React.createElement(StyledPortalContainer,{ref:hostFor(item.id)})))))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{Panel}from"./Panel";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slot keys — the single source of truth. The key *types* (`SlotKey`,
|
|
3
|
+
* `SidePanelKey`, `PanelKey`) are derived from these const values below and
|
|
4
|
+
* re-exported by `-types.ts`, so the literals are written exactly once.
|
|
5
|
+
*/
|
|
6
|
+
/** Slot keys as named constants — reference these instead of bare literals. */
|
|
7
|
+
export declare const Slot: {
|
|
8
|
+
readonly sidebar: "sidebar";
|
|
9
|
+
readonly content: "content";
|
|
10
|
+
readonly splitview: "splitview";
|
|
11
|
+
readonly rightPanel: "rightPanel";
|
|
12
|
+
};
|
|
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. */
|
|
16
|
+
export declare const PANELS: readonly ["content", "splitview"];
|
|
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"];
|
|
19
|
+
export type SlotKey = (typeof PANEL_ORDER)[number];
|
|
20
|
+
export type SidePanelKey = (typeof SIDE_PANELS)[number];
|
|
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
|
+
/** Vertical offset for the right panel — set this (e.g. to a sticky subnav's
|
|
29
|
+
* height) and the panel tracks it; defaults to `0` when unset. */
|
|
30
|
+
export declare const SUBNAV_OFFSET_VAR = "--ds-layout-subnav-offset";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const Slot={sidebar:"sidebar",content:"content",splitview:"splitview",rightPanel:"rightPanel"};export const SIDE_PANELS=[Slot.sidebar,Slot.rightPanel];export const PANELS=[Slot.content,Slot.splitview];export const PANEL_ORDER=[Slot.sidebar,Slot.content,Slot.splitview,Slot.rightPanel];export const SLIDE_VAR={duration:"--ds-layout-slide-duration",easing:"--ds-layout-slide-easing"};export const SUBNAV_OFFSET_VAR="--ds-layout-subnav-offset";
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { PanelKey, SidePanelKey, SlotKey } from "./-constants";
|
|
3
|
+
/**
|
|
4
|
+
* Surface = compound components (`Layout.Sidebar` / `Layout.RightPanel` /
|
|
5
|
+
* `Layout.Content` / `Layout.Split`) + one control hook
|
|
6
|
+
* (`useLayout()`). The manager owns the open/collapsed/size state; components
|
|
7
|
+
* render per that state. State engine is replaceable (see `LayoutStore`).
|
|
8
|
+
*
|
|
9
|
+
* Slots (max 4 panels, max 3 visible at once — budget enforcement deferred):
|
|
10
|
+
* sidebar | content | splitview | rightPanel
|
|
11
|
+
*/
|
|
12
|
+
/** A size: plain number = pixels; unitless string = percentage ("10%"). */
|
|
13
|
+
export type Size = number | string;
|
|
14
|
+
/**
|
|
15
|
+
* - `sidebar` — in-flow resizable panel.
|
|
16
|
+
* - `offcanvas` — detached desktop overlay. ⚠️ **RESERVED — not implemented yet.**
|
|
17
|
+
* Currently treated like `sidebar` (renders in-flow); the overlay
|
|
18
|
+
* implementation lands in a later commit.
|
|
19
|
+
*/
|
|
20
|
+
export type Variant = "sidebar" | "offcanvas";
|
|
21
|
+
export type { PanelKey, SidePanelKey, SlotKey };
|
|
22
|
+
export type SidePanelState = {
|
|
23
|
+
kind: "sidePanel";
|
|
24
|
+
/** Shown vs hidden. */
|
|
25
|
+
visible: boolean;
|
|
26
|
+
/** Whether it can collapse at all. */
|
|
27
|
+
collapsible: boolean;
|
|
28
|
+
/** Render style. */
|
|
29
|
+
variant: Variant;
|
|
30
|
+
/** Current size (px number or "%" string). */
|
|
31
|
+
size?: Size;
|
|
32
|
+
/** Constraint from config (component prop overrides). */
|
|
33
|
+
minSize?: Size;
|
|
34
|
+
maxSize?: Size;
|
|
35
|
+
};
|
|
36
|
+
export type PanelState = {
|
|
37
|
+
kind: "panel";
|
|
38
|
+
/** content is always visible; splitview is toggleable. */
|
|
39
|
+
visible: boolean;
|
|
40
|
+
size?: Size;
|
|
41
|
+
/** Constraint from config (component prop overrides). */
|
|
42
|
+
minSize?: Size;
|
|
43
|
+
maxSize?: Size;
|
|
44
|
+
};
|
|
45
|
+
export type LayoutState = {
|
|
46
|
+
sidebar: SidePanelState;
|
|
47
|
+
rightPanel: SidePanelState;
|
|
48
|
+
content: PanelState;
|
|
49
|
+
splitview: PanelState;
|
|
50
|
+
};
|
|
51
|
+
export type SidePanelConfig = {
|
|
52
|
+
defaultVisible?: boolean;
|
|
53
|
+
collapsible?: boolean;
|
|
54
|
+
variant?: Variant;
|
|
55
|
+
defaultSize?: Size;
|
|
56
|
+
minSize?: Size;
|
|
57
|
+
maxSize?: Size;
|
|
58
|
+
};
|
|
59
|
+
export type PanelConfig = {
|
|
60
|
+
defaultVisible?: boolean;
|
|
61
|
+
defaultSize?: Size;
|
|
62
|
+
minSize?: Size;
|
|
63
|
+
maxSize?: Size;
|
|
64
|
+
};
|
|
65
|
+
export type LayoutConfig = {
|
|
66
|
+
sidebar?: SidePanelConfig;
|
|
67
|
+
rightPanel?: SidePanelConfig;
|
|
68
|
+
content?: PanelConfig;
|
|
69
|
+
splitview?: PanelConfig;
|
|
70
|
+
};
|
|
71
|
+
export type LayoutAction = {
|
|
72
|
+
type: "setVisible";
|
|
73
|
+
slot: SlotKey;
|
|
74
|
+
visible: boolean;
|
|
75
|
+
} | {
|
|
76
|
+
type: "setVariant";
|
|
77
|
+
panel: SidePanelKey;
|
|
78
|
+
variant: Variant;
|
|
79
|
+
} | {
|
|
80
|
+
type: "resize";
|
|
81
|
+
slot: SlotKey;
|
|
82
|
+
size: Size;
|
|
83
|
+
}
|
|
84
|
+
/** Restore one slot (or all, if omitted) to its config-default state.
|
|
85
|
+
* Page panels default hidden, so this also hides them — handy on unmount. */
|
|
86
|
+
| {
|
|
87
|
+
type: "reset";
|
|
88
|
+
slot?: SlotKey;
|
|
89
|
+
};
|
|
90
|
+
export type LayoutReducer = (state: LayoutState, action: LayoutAction,
|
|
91
|
+
/** Config-default state, used by the `reset` action. */
|
|
92
|
+
initial?: LayoutState) => LayoutState;
|
|
93
|
+
/**
|
|
94
|
+
* Replaceable state engine. Matches `useSyncExternalStore` + zustand/redux
|
|
95
|
+
* conventions. The manager depends only on this interface, so a zustand-backed
|
|
96
|
+
* store can be injected via `<LayoutProvider store={…}>`.
|
|
97
|
+
*/
|
|
98
|
+
export type LayoutStore = {
|
|
99
|
+
getState: () => LayoutState;
|
|
100
|
+
dispatch: (action: LayoutAction) => void;
|
|
101
|
+
subscribe: (listener: () => void) => () => void;
|
|
102
|
+
};
|
|
103
|
+
export type LayoutStorage = {
|
|
104
|
+
getItem: (key: string) => string | null;
|
|
105
|
+
setItem: (key: string, value: string) => void;
|
|
106
|
+
};
|
|
107
|
+
export type SidePanelHandle = {
|
|
108
|
+
state: SidePanelState;
|
|
109
|
+
isVisible: boolean;
|
|
110
|
+
show: () => void;
|
|
111
|
+
hide: () => void;
|
|
112
|
+
resize: (size: Size) => void;
|
|
113
|
+
setVariant: (variant: Variant) => void;
|
|
114
|
+
/** Restore this slot to its config default (hides it for page panels). */
|
|
115
|
+
reset: () => void;
|
|
116
|
+
};
|
|
117
|
+
export type PanelHandle = {
|
|
118
|
+
state: PanelState;
|
|
119
|
+
isVisible: boolean;
|
|
120
|
+
show: () => void;
|
|
121
|
+
hide: () => void;
|
|
122
|
+
resize: (size: Size) => void;
|
|
123
|
+
/** Restore this slot to its config default (hides it for page panels). */
|
|
124
|
+
reset: () => void;
|
|
125
|
+
};
|
|
126
|
+
export type LayoutValue = {
|
|
127
|
+
state: LayoutState;
|
|
128
|
+
sidebar: SidePanelHandle;
|
|
129
|
+
rightPanel: SidePanelHandle;
|
|
130
|
+
content: PanelHandle;
|
|
131
|
+
splitview: PanelHandle;
|
|
132
|
+
};
|
|
133
|
+
export type SidePanelProps = {
|
|
134
|
+
children: React.ReactNode;
|
|
135
|
+
variant?: Variant;
|
|
136
|
+
collapsible?: boolean;
|
|
137
|
+
defaultSize?: Size;
|
|
138
|
+
minSize?: Size;
|
|
139
|
+
maxSize?: Size;
|
|
140
|
+
/** Called whenever the panel's visibility changes, with the new value. */
|
|
141
|
+
onVisibleChange?: (visible: boolean) => void;
|
|
142
|
+
};
|
|
143
|
+
export type ContentProps = {
|
|
144
|
+
children: React.ReactNode;
|
|
145
|
+
minSize?: Size;
|
|
146
|
+
maxSize?: Size;
|
|
147
|
+
};
|
|
148
|
+
export type SplitProps = {
|
|
149
|
+
children: React.ReactNode;
|
|
150
|
+
defaultSize?: Size;
|
|
151
|
+
minSize?: Size;
|
|
152
|
+
maxSize?: Size;
|
|
153
|
+
};
|
|
154
|
+
export type LayoutProviderProps = {
|
|
155
|
+
children: React.ReactNode;
|
|
156
|
+
config?: LayoutConfig;
|
|
157
|
+
store?: LayoutStore;
|
|
158
|
+
/** Persistence config for the whole layout namespace. The Provider does NOT
|
|
159
|
+
* read these — it publishes them to the nested `<Layout>` (which owns
|
|
160
|
+
* persistence). Kept here so consumers configure everything in one place. */
|
|
161
|
+
persistenceKey?: string;
|
|
162
|
+
storage?: LayoutStorage;
|
|
163
|
+
};
|
|
164
|
+
export type LayoutProps = {
|
|
165
|
+
children: React.ReactNode;
|
|
166
|
+
/** Persist panel SIZES (via react-resizable-panels), keyed by this. Open/
|
|
167
|
+
* visible/variant ("intent") persistence is separate and deferred. Falls
|
|
168
|
+
* back to the values on `Layout.Provider` when omitted. */
|
|
169
|
+
persistenceKey?: string;
|
|
170
|
+
storage?: LayoutStorage;
|
|
171
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { ContentProps } from "./-types";
|
|
3
|
+
/**
|
|
4
|
+
* Primary content panel. Always shown (never collapsible) and flexes to fill the
|
|
5
|
+
* space the side panels leave. Declares the `content` slot and portals into it.
|
|
6
|
+
*/
|
|
7
|
+
export declare const Content: React.FC<ContentProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Slot}from"./-constants";import{useDeclarePanel,useLayoutPortal}from"./registry";export const Content=({children,minSize,maxSize})=>(useDeclarePanel(Slot.content,{minSize,maxSize,collapsible:!1}),useLayoutPortal(Slot.content,children));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { LayoutProvider } from "./LayoutProvider";
|
|
3
|
+
import { Content } from "./Content";
|
|
4
|
+
import { RightPanel } from "./RightPanel";
|
|
5
|
+
import { Sidebar } from "./Sidebar";
|
|
6
|
+
import { Split } from "./Split";
|
|
7
|
+
import type { LayoutProps } from "./-types";
|
|
8
|
+
declare function LayoutBase({ children, persistenceKey, storage, }: LayoutProps): React.ReactElement;
|
|
9
|
+
type LayoutComponent = typeof LayoutBase & {
|
|
10
|
+
Provider: typeof LayoutProvider;
|
|
11
|
+
Sidebar: typeof Sidebar;
|
|
12
|
+
RightPanel: typeof RightPanel;
|
|
13
|
+
Content: typeof Content;
|
|
14
|
+
Split: typeof Split;
|
|
15
|
+
};
|
|
16
|
+
export declare const Layout: LayoutComponent;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React,{useMemo,useState}from"react";import styled from"@emotion/styled";import{Panel}from"../Internal/Panel/Panel";import{PANEL_ORDER,Slot}from"./-constants";import{useLayoutPersistence}from"./context";import{LayoutProvider}from"./LayoutProvider";import{Content}from"./Content";import{RightPanel}from"./RightPanel";import{Sidebar}from"./Sidebar";import{Split}from"./Split";import{LayoutPortalContext,PanelRegistryContext}from"./registry";import{usePortalContainerRefs}from"./usePortalContainerRefs";import{useLayout}from"./useLayout";let StyledLayout=styled("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=styled("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 */");export const Layout=function({children,persistenceKey,storage}){let[declared,setDeclared]=useState({}),{state:layoutState,...panelCallbacks}=useLayout(),persistence=useLayoutPersistence(),resolvedKey=persistenceKey??persistence.persistenceKey,resolvedStorage=storage??persistence.storage,isShown=slot=>layoutState[slot].visible,registry=useMemo(()=>({register:(slot,reg)=>setDeclared(prev=>({...prev,[slot]:reg})),unregister:slot=>setDeclared(prev=>{if(!(slot in prev))return prev;let next={...prev};return delete next[slot],next})}),[]),[nodes,hostRefs]=usePortalContainerRefs(PANEL_ORDER),declaredSlots=PANEL_ORDER.filter(slot=>declared[slot]),isSolo=declaredSlots.length<=1,soloSlot=declaredSlots[0],defaultSizeFor=slot=>{if(slot!==Slot.content)return declared[slot]?.defaultSize??layoutState[slot].size},panelItems=PANEL_ORDER.filter(slot=>declared[slot]&&isShown(slot)).map(slot=>({id:slot,defaultSize:defaultSizeFor(slot),minSize:declared[slot]?.minSize??layoutState[slot].minSize,maxSize:declared[slot]?.maxSize??layoutState[slot].maxSize,collapsible:slot!==Slot.content&&(declared[slot]?.collapsible??!0)}));return React.createElement(PanelRegistryContext.Provider,{value:registry},React.createElement(LayoutPortalContext.Provider,{value:nodes},React.createElement(StyledLayout,{"data-ds-id":"Layout"},isSolo?soloSlot&&isShown(soloSlot)&&React.createElement(StyledSoloHost,{ref:hostRefs[soloSlot]}):panelItems.length>0&&React.createElement(Panel,{key:resolvedKey,panels:panelItems,persistenceKey:resolvedKey,storage:resolvedStorage,hostFor:id=>hostRefs[id],onResize:(id,size)=>panelCallbacks[id].resize(size),onCollapse:id=>panelCallbacks[id].hide()}),children)))};Layout.Provider=LayoutProvider,Layout.Sidebar=Sidebar,Layout.RightPanel=RightPanel,Layout.Content=Content,Layout.Split=Split;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { LayoutProviderProps } from "./-types";
|
|
3
|
+
/**
|
|
4
|
+
* Owns the state engine + the public persistence-config surface. Mount once,
|
|
5
|
+
* above the router. Pass `store` to replace the default vanilla engine with a
|
|
6
|
+
* zustand/redux-backed one; otherwise a default store is built from `config`.
|
|
7
|
+
*
|
|
8
|
+
* `storage`/`persistenceKey` are accepted here so consumers configure the whole
|
|
9
|
+
* layout in one provider — but the Provider **never reads storage itself**.
|
|
10
|
+
* It publishes them to the nested, which owns persistence.
|
|
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).
|
|
13
|
+
* That deferral is the default store's; a bring-your-own store can persist intent itself.
|
|
14
|
+
*/
|
|
15
|
+
export declare function LayoutProvider({ children, config, store, persistenceKey, storage, }: LayoutProviderProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React,{useMemo,useRef}from"react";import{useTheme}from"@emotion/react";import{SLIDE_VAR}from"./-constants";import{LayoutPersistenceProvider,LayoutStoreProvider}from"./context";import{LayoutVars,LayoutVarStoreProvider,useLayoutVar}from"./LayoutVars";import{createLayoutVarStore}from"./varStore";import{createInitialState}from"./reducer";import{createLayoutStore}from"./store";function SlideVars(){let theme=useTheme(),open=theme.variables?.animation?.navSlide?.open;return useLayoutVar(SLIDE_VAR.duration,open?.duration??""),useLayoutVar(SLIDE_VAR.easing,open?.timingFunction??""),null}export function LayoutProvider({children,config,store,persistenceKey,storage}){let storeRef=useRef(null);null===storeRef.current&&(storeRef.current=store??createLayoutStore(createInitialState(config)));let varStoreRef=useRef(null);null===varStoreRef.current&&(varStoreRef.current=createLayoutVarStore());let persistence=useMemo(()=>({persistenceKey,storage}),[persistenceKey,storage]);return React.createElement(LayoutStoreProvider,{value:storeRef.current},React.createElement(LayoutPersistenceProvider,{value:persistence},React.createElement(LayoutVarStoreProvider,{value:varStoreRef.current},React.createElement(LayoutVars,null),React.createElement(SlideVars,null),children)))}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { LayoutVarStore } from "./varStore";
|
|
3
|
+
export declare const LayoutVarStoreProvider: React.Provider<LayoutVarStore>;
|
|
4
|
+
/**
|
|
5
|
+
* Publish one layout CSS var. Call it from the component that owns the logic of
|
|
6
|
+
* *why* the value changes (e.g. the subnav: `compact ? 0 : height`). The value
|
|
7
|
+
* is registered on mount/update and removed on unmount, so the var only exists
|
|
8
|
+
* while its producer is mounted. An empty-string value is treated as unset (the
|
|
9
|
+
* var is removed) — lets a producer opt out without breaking hook order. No-op
|
|
10
|
+
* outside a `Layout.Provider`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useLayoutVar(name: string, value: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* The single sink: renders every registered layout var in ONE place. Today it
|
|
15
|
+
* targets `:root`; to scope the vars to a host element later, change only this
|
|
16
|
+
* component — producers are untouched.
|
|
17
|
+
*/
|
|
18
|
+
export declare function LayoutVars(): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React,{createContext,useContext,useEffect,useSyncExternalStore}from"react";import{Global}from"@emotion/react";let LayoutVarStoreContext=createContext(null);export const LayoutVarStoreProvider=LayoutVarStoreContext.Provider;let EMPTY_VARS={},NOOP_SUBSCRIBE=()=>()=>{};export function useLayoutVar(name,value){let store=useContext(LayoutVarStoreContext);useEffect(()=>{if(store)return""===value?void store.remove(name):(store.set(name,value),()=>store.remove(name))},[store,name,value])}export function LayoutVars(){let vars=function(){let store=useContext(LayoutVarStoreContext);return useSyncExternalStore(store?.subscribe??NOOP_SUBSCRIBE,store?store.getSnapshot:()=>EMPTY_VARS,()=>EMPTY_VARS)}();return React.createElement(Global,{styles:[{":root":vars},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dFZhcnMudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvTGF5b3V0VmFycy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlU3luY0V4dGVybmFsU3RvcmUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgR2xvYmFsIH0gZnJvbSBcIkBlbW90aW9uL3JlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IExheW91dFZhclN0b3JlIH0gZnJvbSBcIi4vdmFyU3RvcmVcIjtcblxuLyoqXG4gKiBDb250ZXh0IGNhcnJpZXMgdGhlIFZBUi1TVE9SRSBSRUZFUkVOQ0UgKHN0YWJsZSBmb3IgdGhlIHByb3ZpZGVyJ3MgbGlmZXRpbWUpLFxuICogbm90IHRoZSB2YWx1ZXMg4oCUIHNhbWUgYXBwcm9hY2ggYXMgdGhlIGxheW91dCBzdG9yZS4gUHJvZHVjZXJzIHB1Ymxpc2ggdGhyb3VnaFxuICogYHVzZUxheW91dFZhcmA7IHRoZSBgPExheW91dFZhcnM+YCBzaW5rIHJlYWRzIHRoZSB3aG9sZSBtYXAuXG4gKi9cbmNvbnN0IExheW91dFZhclN0b3JlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8TGF5b3V0VmFyU3RvcmUgfCBudWxsPihudWxsKTtcblxuZXhwb3J0IGNvbnN0IExheW91dFZhclN0b3JlUHJvdmlkZXIgPSBMYXlvdXRWYXJTdG9yZUNvbnRleHQuUHJvdmlkZXI7XG5cbi8vIFN0YWJsZSBmYWxsYmFja3Mgc28gdGhlIGhvb2tzIGJlbG93IGFyZSBzYWZlIHRvIGNhbGwgb3V0c2lkZSBhIHByb3ZpZGVyLlxuY29uc3QgRU1QVFlfVkFSUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuY29uc3QgTk9PUF9TVUJTQ1JJQkUgPSAoKTogKCgpID0+IHZvaWQpID0+ICgpID0+IHt9O1xuXG4vKipcbiAqIFB1Ymxpc2ggb25lIGxheW91dCBDU1MgdmFyLiBDYWxsIGl0IGZyb20gdGhlIGNvbXBvbmVudCB0aGF0IG93bnMgdGhlIGxvZ2ljIG9mXG4gKiAqd2h5KiB0aGUgdmFsdWUgY2hhbmdlcyAoZS5nLiB0aGUgc3VibmF2OiBgY29tcGFjdCA/IDAgOiBoZWlnaHRgKS4gVGhlIHZhbHVlXG4gKiBpcyByZWdpc3RlcmVkIG9uIG1vdW50L3VwZGF0ZSBhbmQgcmVtb3ZlZCBvbiB1bm1vdW50LCBzbyB0aGUgdmFyIG9ubHkgZXhpc3RzXG4gKiB3aGlsZSBpdHMgcHJvZHVjZXIgaXMgbW91bnRlZC4gQW4gZW1wdHktc3RyaW5nIHZhbHVlIGlzIHRyZWF0ZWQgYXMgdW5zZXQgKHRoZVxuICogdmFyIGlzIHJlbW92ZWQpIOKAlCBsZXRzIGEgcHJvZHVjZXIgb3B0IG91dCB3aXRob3V0IGJyZWFraW5nIGhvb2sgb3JkZXIuIE5vLW9wXG4gKiBvdXRzaWRlIGEgYExheW91dC5Qcm92aWRlcmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VMYXlvdXRWYXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IHN0b3JlID0gdXNlQ29udGV4dChMYXlvdXRWYXJTdG9yZUNvbnRleHQpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc3RvcmUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHZhbHVlID09PSBcIlwiKSB7XG4gICAgICBzdG9yZS5yZW1vdmUobmFtZSk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBzdG9yZS5zZXQobmFtZSwgdmFsdWUpO1xuICAgIHJldHVybiAoKSA9PiBzdG9yZS5yZW1vdmUobmFtZSk7XG4gIH0sIFtzdG9yZSwgbmFtZSwgdmFsdWVdKTtcbn1cblxuZnVuY3Rpb24gdXNlTGF5b3V0VmFycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3Qgc3RvcmUgPSB1c2VDb250ZXh0KExheW91dFZhclN0b3JlQ29udGV4dCk7XG4gIHJldHVybiB1c2VTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICBzdG9yZT8uc3Vic2NyaWJlID8/IE5PT1BfU1VCU0NSSUJFLFxuICAgIHN0b3JlID8gc3RvcmUuZ2V0U25hcHNob3QgOiAoKSA9PiBFTVBUWV9WQVJTLFxuICAgICgpID0+IEVNUFRZX1ZBUlNcbiAgKTtcbn1cblxuLyoqXG4gKiBUaGUgc2luZ2xlIHNpbms6IHJlbmRlcnMgZXZlcnkgcmVnaXN0ZXJlZCBsYXlvdXQgdmFyIGluIE9ORSBwbGFjZS4gVG9kYXkgaXRcbiAqIHRhcmdldHMgYDpyb290YDsgdG8gc2NvcGUgdGhlIHZhcnMgdG8gYSBob3N0IGVsZW1lbnQgbGF0ZXIsIGNoYW5nZSBvbmx5IHRoaXNcbiAqIGNvbXBvbmVudCDigJQgcHJvZHVjZXJzIGFyZSB1bnRvdWNoZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMYXlvdXRWYXJzKCk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHZhcnMgPSB1c2VMYXlvdXRWYXJzKCk7XG4gIHJldHVybiA8R2xvYmFsIHN0eWxlcz17eyBcIjpyb290XCI6IHZhcnMgfX0gLz47XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkRVIn0= */"]})}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SidePanelProps } from "./-types";
|
|
3
|
+
/**
|
|
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
|
|
6
|
+
* offcanvas overlay / mobile sheet is deferred. Content is wrapped in a slot
|
|
7
|
+
* that tracks the `--ds-layout-subnav-offset` var.
|
|
8
|
+
*/
|
|
9
|
+
export declare const RightPanel: React.FC<SidePanelProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{SLIDE_VAR,Slot,SUBNAV_OFFSET_VAR}from"./-constants";import{useDeclarePanel,useLayoutPortal,useVisibleChange}from"./registry";import{useLayout}from"./useLayout";let StyledRightPanelSlot=styled("div",{target:"e1fidopn0",label:"StyledRightPanelSlot"})({position:"absolute",left:0,right:0,bottom:0,top:`var(${SUBNAV_OFFSET_VAR}, 0px)`,overflow:"hidden",transition:`top var(${SLIDE_VAR.duration}) var(${SLIDE_VAR.easing})`},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvUmlnaHRQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTTElERV9WQVIsIFNsb3QsIFNVQk5BVl9PRkZTRVRfVkFSIH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlRGVjbGFyZVBhbmVsLCB1c2VMYXlvdXRQb3J0YWwsIHVzZVZpc2libGVDaGFuZ2UgfSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0IH0gZnJvbSBcIi4vdXNlTGF5b3V0XCI7XG5pbXBvcnQgdHlwZSB7IFNpZGVQYW5lbFByb3BzIH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbi8vIEJ1aWx0LWluIHNsb3Q6IG9mZnNldHMgdGhlIHBhbmVsIGNvbnRlbnQgYnkgdGhlIHN1Ym5hdi1vZmZzZXQgdmFyICgwIHdoZW5cbi8vIHVuc2V0KSwgdHJhbnNpdGlvbmVkIHdpdGggdGhlIHNoYXJlZCBzbGlkZSB2YXJzIOKAlCBzbyB0aGUgcmlnaHQgcGFuZWwgdHJhY2tzIGFcbi8vIHN0aWNreSBzdWJuYXYgd2l0aCBubyB3aXJpbmcgb24gdGhlIGNvbnN1bWVyJ3Mgc2lkZS5cbmNvbnN0IFN0eWxlZFJpZ2h0UGFuZWxTbG90ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIGxlZnQ6IDAsXG4gIHJpZ2h0OiAwLFxuICBib3R0b206IDAsXG4gIHRvcDogYHZhcigke1NVQk5BVl9PRkZTRVRfVkFSfSwgMHB4KWAsXG4gIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICB0cmFuc2l0aW9uOiBgdG9wIHZhcigke1NMSURFX1ZBUi5kdXJhdGlvbn0pIHZhcigke1NMSURFX1ZBUi5lYXNpbmd9KWAsXG59KTtcblxuLyoqXG4gKiBSaWdodCBzaWRlIHBhbmVsLiBEZWNsYXJlcyB0aGUgYHJpZ2h0UGFuZWxgIHNsb3QgYW5kIHBvcnRhbHMgaXRzIGNvbnRlbnQgaW50b1xuICogdGhlIEdyb3VwJ3MgaG9zdCB3aGlsZSB2aXNpYmxlLiBSZW5kZXJzIGluLWZsb3cgKGEgcmVzaXphYmxlIGNvbHVtbikg4oCUIHRoZVxuICogb2ZmY2FudmFzIG92ZXJsYXkgLyBtb2JpbGUgc2hlZXQgaXMgZGVmZXJyZWQuIENvbnRlbnQgaXMgd3JhcHBlZCBpbiBhIHNsb3RcbiAqIHRoYXQgdHJhY2tzIHRoZSBgLS1kcy1sYXlvdXQtc3VibmF2LW9mZnNldGAgdmFyLlxuICovXG5leHBvcnQgY29uc3QgUmlnaHRQYW5lbDogUmVhY3QuRkM8U2lkZVBhbmVsUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGRlZmF1bHRTaXplLFxuICBtaW5TaXplLFxuICBtYXhTaXplLFxuICBjb2xsYXBzaWJsZSA9IGZhbHNlLFxuICBvblZpc2libGVDaGFuZ2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgaXNWaXNpYmxlIH0gPSB1c2VMYXlvdXQoKVtTbG90LnJpZ2h0UGFuZWxdO1xuICB1c2VEZWNsYXJlUGFuZWwoU2xvdC5yaWdodFBhbmVsLCB7XG4gICAgZGVmYXVsdFNpemUsXG4gICAgbWluU2l6ZSxcbiAgICBtYXhTaXplLFxuICAgIGNvbGxhcHNpYmxlLFxuICB9KTtcbiAgdXNlVmlzaWJsZUNoYW5nZShpc1Zpc2libGUsIG9uVmlzaWJsZUNoYW5nZSk7XG4gIHJldHVybiB1c2VMYXlvdXRQb3J0YWwoXG4gICAgU2xvdC5yaWdodFBhbmVsLFxuICAgIGlzVmlzaWJsZSA/IDxTdHlsZWRSaWdodFBhbmVsU2xvdD57Y2hpbGRyZW59PC9TdHlsZWRSaWdodFBhbmVsU2xvdD4gOiBudWxsXG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVU2QiJ9 */");export const RightPanel=({children,defaultSize,minSize,maxSize,collapsible=!1,onVisibleChange})=>{let{isVisible}=useLayout()[Slot.rightPanel];return useDeclarePanel(Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible}),useVisibleChange(isVisible,onVisibleChange),useLayoutPortal(Slot.rightPanel,isVisible?React.createElement(StyledRightPanelSlot,null,children):null)};
|