@amboss/design-system 3.49.0 → 3.49.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/components/Internal/Sandwich/-types.d.ts +36 -0
- package/build/cjs/components/Internal/Sandwich/-types.js +1 -0
- package/build/cjs/components/Internal/Sandwich/Sandwich.d.ts +23 -0
- package/build/cjs/components/Internal/Sandwich/Sandwich.js +1 -0
- package/build/cjs/components/Internal/Sandwich/SandwichBody.d.ts +3 -0
- package/build/cjs/components/Internal/Sandwich/SandwichBody.js +1 -0
- package/build/cjs/components/Internal/Sandwich/SandwichFooter.d.ts +3 -0
- package/build/cjs/components/Internal/Sandwich/SandwichFooter.js +1 -0
- package/build/cjs/components/Internal/Sandwich/SandwichHeader.d.ts +3 -0
- package/build/cjs/components/Internal/Sandwich/SandwichHeader.js +1 -0
- package/build/cjs/components/Internal/Sandwich/useSandwichContext.d.ts +12 -0
- package/build/cjs/components/Internal/Sandwich/useSandwichContext.js +1 -0
- package/build/cjs/components/Layout/-types.d.ts +43 -0
- package/build/cjs/components/Layout/RightPanel.d.ts +2 -2
- package/build/cjs/components/Layout/RightPanel.js +1 -1
- package/build/cjs/components/Layout/RightPanelContainer.d.ts +3 -0
- package/build/cjs/components/Layout/RightPanelContainer.js +1 -0
- package/build/cjs/components/Layout/index.d.ts +1 -0
- package/build/cjs/components/Layout/index.js +1 -1
- package/build/esm/components/Internal/Sandwich/-types.d.ts +36 -0
- package/build/esm/components/Internal/Sandwich/-types.js +1 -0
- package/build/esm/components/Internal/Sandwich/Sandwich.d.ts +23 -0
- package/build/esm/components/Internal/Sandwich/Sandwich.js +1 -0
- package/build/esm/components/Internal/Sandwich/SandwichBody.d.ts +3 -0
- package/build/esm/components/Internal/Sandwich/SandwichBody.js +1 -0
- package/build/esm/components/Internal/Sandwich/SandwichFooter.d.ts +3 -0
- package/build/esm/components/Internal/Sandwich/SandwichFooter.js +1 -0
- package/build/esm/components/Internal/Sandwich/SandwichHeader.d.ts +3 -0
- package/build/esm/components/Internal/Sandwich/SandwichHeader.js +1 -0
- package/build/esm/components/Internal/Sandwich/useSandwichContext.d.ts +12 -0
- package/build/esm/components/Internal/Sandwich/useSandwichContext.js +1 -0
- package/build/esm/components/Layout/-types.d.ts +43 -0
- package/build/esm/components/Layout/RightPanel.d.ts +2 -2
- package/build/esm/components/Layout/RightPanel.js +1 -1
- package/build/esm/components/Layout/RightPanelContainer.d.ts +3 -0
- package/build/esm/components/Layout/RightPanelContainer.js +1 -0
- package/build/esm/components/Layout/index.d.ts +1 -0
- package/build/esm/components/Layout/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
export type SandwichProps = {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
"data-e2e-test-id"?: string;
|
|
5
|
+
/** Override the root's `data-ds-id` (e.g. when a wrapper component owns the node). */
|
|
6
|
+
"data-ds-id"?: string;
|
|
7
|
+
} & React.HTMLAttributes<HTMLDivElement>;
|
|
8
|
+
/**
|
|
9
|
+
* Separator visibility:
|
|
10
|
+
* - `auto`: show only while the content is scrolled away from the edge (default).
|
|
11
|
+
* - `always`: always visible.
|
|
12
|
+
* - `never`: never visible.
|
|
13
|
+
*/
|
|
14
|
+
export type SandwichSeparator = "auto" | "always" | "never";
|
|
15
|
+
export type SandwichHeaderProps = {
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
showSeparator?: SandwichSeparator;
|
|
18
|
+
};
|
|
19
|
+
export type SandwichFooterProps = {
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
showSeparator?: SandwichSeparator;
|
|
22
|
+
};
|
|
23
|
+
export type SandwichBodyProps = {
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
/** Forwarded scroll handler; fires after the internal edge measurement. */
|
|
26
|
+
onScroll?: React.UIEventHandler<HTMLDivElement>;
|
|
27
|
+
/** Forwarded to the scroll container element (e.g. for scroll restoration). */
|
|
28
|
+
scrollRef?: React.Ref<HTMLDivElement>;
|
|
29
|
+
};
|
|
30
|
+
/** Scroll-edge visibility published by `Body`, consumed by `Header` / `Footer`. */
|
|
31
|
+
export type SandwichEdges = {
|
|
32
|
+
/** Start of the scroll content is visible (not scrolled down). */
|
|
33
|
+
atTop: boolean;
|
|
34
|
+
/** End of the scroll content is visible (scrolled to bottom). */
|
|
35
|
+
atBottom: boolean;
|
|
36
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SandwichProps } from "./-types";
|
|
3
|
+
import { SandwichBody } from "./SandwichBody";
|
|
4
|
+
import { SandwichHeader } from "./SandwichHeader";
|
|
5
|
+
import { SandwichFooter } from "./SandwichFooter";
|
|
6
|
+
/**
|
|
7
|
+
* Internal compound component: a scrollable middle region (`Sandwich.Body`)
|
|
8
|
+
* flanked by a sticky `Sandwich.Header` / `Sandwich.Footer` that reveal a border
|
|
9
|
+
* only while content is scrolled under them. Edge state is shared through
|
|
10
|
+
* context (see `useSandwichContext.tsx`).
|
|
11
|
+
*/
|
|
12
|
+
declare function SandwichRoot({ children, ...rest }: SandwichProps): React.ReactElement;
|
|
13
|
+
/**
|
|
14
|
+
* Compound export: `Sandwich` with `.Header`, `.Body`, `.Footer` attached.
|
|
15
|
+
* Object.assign keeps the static sub-components typed on the root
|
|
16
|
+
* (function-declaration statics don't type-check).
|
|
17
|
+
*/
|
|
18
|
+
export declare const Sandwich: typeof SandwichRoot & {
|
|
19
|
+
Header: typeof SandwichHeader;
|
|
20
|
+
Body: typeof SandwichBody;
|
|
21
|
+
Footer: typeof SandwichFooter;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Sandwich",{enumerable:!0,get:function(){return Sandwich}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_useSandwichContext=require("./useSandwichContext"),_SandwichBody=require("./SandwichBody"),_SandwichHeader=require("./SandwichHeader"),_SandwichFooter=require("./SandwichFooter"),StyledRoot=(0,_styled.default)("div",{target:"e164s6zy0",label:"StyledRoot"})({display:"flex",flexDirection:"column",minHeight:0,height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2gudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoRWRnZXMsIFNhbmR3aWNoUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IFNhbmR3aWNoUHJvdmlkZXIgfSBmcm9tIFwiLi91c2VTYW5kd2ljaENvbnRleHRcIjtcbmltcG9ydCB7IFNhbmR3aWNoQm9keSB9IGZyb20gXCIuL1NhbmR3aWNoQm9keVwiO1xuaW1wb3J0IHsgU2FuZHdpY2hIZWFkZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEhlYWRlclwiO1xuaW1wb3J0IHsgU2FuZHdpY2hGb290ZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEZvb3RlclwiO1xuXG4vLyBDb2x1bW4gbGF5b3V0OiBoZWFkZXIvZm9vdGVyIHNpdCBhYm92ZS9iZWxvdyBhIHNpbmdsZSBzY3JvbGwgcmVnaW9uLiBUaGVcbi8vIHJvb3QgaXRzZWxmIGRvZXMgbm90IHNjcm9sbCDigJQgYEJvZHlgIG93bnMgdGhlIG92ZXJmbG93LlxuY29uc3QgU3R5bGVkUm9vdCA9IHN0eWxlZC5kaXYoe1xuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgbWluSGVpZ2h0OiAwLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLyoqXG4gKiBJbnRlcm5hbCBjb21wb3VuZCBjb21wb25lbnQ6IGEgc2Nyb2xsYWJsZSBtaWRkbGUgcmVnaW9uIChgU2FuZHdpY2guQm9keWApXG4gKiBmbGFua2VkIGJ5IGEgc3RpY2t5IGBTYW5kd2ljaC5IZWFkZXJgIC8gYFNhbmR3aWNoLkZvb3RlcmAgdGhhdCByZXZlYWwgYSBib3JkZXJcbiAqIG9ubHkgd2hpbGUgY29udGVudCBpcyBzY3JvbGxlZCB1bmRlciB0aGVtLiBFZGdlIHN0YXRlIGlzIHNoYXJlZCB0aHJvdWdoXG4gKiBjb250ZXh0IChzZWUgYHVzZVNhbmR3aWNoQ29udGV4dC50c3hgKS5cbiAqL1xuZnVuY3Rpb24gU2FuZHdpY2hSb290KHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IFNhbmR3aWNoUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICAvLyBEZWZhdWx0OiBldmVyeXRoaW5nIHZpc2libGUgKG5vIHNjcm9sbGluZyBuZWVkZWQpIOKGkiBubyBib3JkZXJzLlxuICBjb25zdCBbZWRnZXMsIHNldEVkZ2VzU3RhdGVdID0gdXNlU3RhdGU8U2FuZHdpY2hFZGdlcz4oe1xuICAgIGF0VG9wOiB0cnVlLFxuICAgIGF0Qm90dG9tOiB0cnVlLFxuICB9KTtcblxuICBjb25zdCBzZXRFZGdlcyA9IHVzZUNhbGxiYWNrKChuZXh0OiBQYXJ0aWFsPFNhbmR3aWNoRWRnZXM+KSA9PiB7XG4gICAgc2V0RWRnZXNTdGF0ZSgocHJldikgPT4ge1xuICAgICAgY29uc3QgbWVyZ2VkID0geyAuLi5wcmV2LCAuLi5uZXh0IH07XG4gICAgICBpZiAobWVyZ2VkLmF0VG9wID09PSBwcmV2LmF0VG9wICYmIG1lcmdlZC5hdEJvdHRvbSA9PT0gcHJldi5hdEJvdHRvbSkge1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgLi4uZWRnZXMsIHNldEVkZ2VzIH0pLCBbZWRnZXMsIHNldEVkZ2VzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U2FuZHdpY2hQcm92aWRlciB2YWx1ZT17dmFsdWV9PlxuICAgICAgPFN0eWxlZFJvb3QgZGF0YS1kcy1pZD1cIlNhbmR3aWNoXCIgey4uLnJlc3R9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N0eWxlZFJvb3Q+XG4gICAgPC9TYW5kd2ljaFByb3ZpZGVyPlxuICApO1xufVxuXG4vKipcbiAqIENvbXBvdW5kIGV4cG9ydDogYFNhbmR3aWNoYCB3aXRoIGAuSGVhZGVyYCwgYC5Cb2R5YCwgYC5Gb290ZXJgIGF0dGFjaGVkLlxuICogT2JqZWN0LmFzc2lnbiBrZWVwcyB0aGUgc3RhdGljIHN1Yi1jb21wb25lbnRzIHR5cGVkIG9uIHRoZSByb290XG4gKiAoZnVuY3Rpb24tZGVjbGFyYXRpb24gc3RhdGljcyBkb24ndCB0eXBlLWNoZWNrKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNhbmR3aWNoID0gT2JqZWN0LmFzc2lnbihTYW5kd2ljaFJvb3QsIHtcbiAgSGVhZGVyOiBTYW5kd2ljaEhlYWRlcixcbiAgQm9keTogU2FuZHdpY2hCb2R5LFxuICBGb290ZXI6IFNhbmR3aWNoRm9vdGVyLFxufSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVW1CIn0= */"),Sandwich=Object.assign(function({children,...rest}){let[edges,setEdgesState]=(0,_react.useState)({atTop:!0,atBottom:!0}),setEdges=(0,_react.useCallback)(next=>{setEdgesState(prev=>{let merged={...prev,...next};return merged.atTop===prev.atTop&&merged.atBottom===prev.atBottom?prev:merged})},[]),value=(0,_react.useMemo)(()=>({...edges,setEdges}),[edges,setEdges]);return _react.default.createElement(_useSandwichContext.SandwichProvider,{value:value},_react.default.createElement(StyledRoot,{"data-ds-id":"Sandwich",...rest},children))},{Header:_SandwichHeader.SandwichHeader,Body:_SandwichBody.SandwichBody,Footer:_SandwichFooter.SandwichFooter});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"SandwichBody",{enumerable:!0,get:function(){return SandwichBody}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_useSandwichContext=require("./useSandwichContext"),StyledBody=(0,_styled.default)("div",{target:"eog7fee0",label:"StyledBody"})({flex:"1 1 auto",minHeight:0,overflowY:"auto",position:"relative"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hCb2R5LnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hCb2R5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBTYW5kd2ljaEJvZHlQcm9wcyB9IGZyb20gXCIuLy10eXBlc1wiO1xuaW1wb3J0IHsgdXNlU2FuZHdpY2hDb250ZXh0IH0gZnJvbSBcIi4vdXNlU2FuZHdpY2hDb250ZXh0XCI7XG5cbmNvbnN0IFN0eWxlZEJvZHkgPSBzdHlsZWQuZGl2KHtcbiAgZmxleDogXCIxIDEgYXV0b1wiLFxuICBtaW5IZWlnaHQ6IDAsXG4gIG92ZXJmbG93WTogXCJhdXRvXCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxuLy8gcHggdG9sZXJhbmNlIOKAlCBzdWItcGl4ZWwgcm91bmRpbmcgc2hvdWxkbid0IGxlYXZlIGEgZGl2aWRlciBzdHVjayBvbi5cbmNvbnN0IEVER0VfVEhSRVNIT0xEID0gMTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNhbmR3aWNoQm9keSh7XG4gIGNoaWxkcmVuLFxuICBvblNjcm9sbCxcbiAgc2Nyb2xsUmVmLFxufTogU2FuZHdpY2hCb2R5UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCB7IHNldEVkZ2VzIH0gPSB1c2VTYW5kd2ljaENvbnRleHQoKTtcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAvLyBLZWVwIHRoZSBpbnRlcm5hbCByZWYgKHVzZWQgZm9yIG1lYXN1cmluZykgd2hpbGUgYWxzbyBmb3J3YXJkaW5nIHRoZSBub2RlIHRvXG4gIC8vIHRoZSBjb25zdW1lcidzIGBzY3JvbGxSZWZgIOKAlCBhIGNhbGxiYWNrIHJlZiBoYW5kbGVzIGJvdGggZm9ybXMuXG4gIGNvbnN0IHNldENvbnRhaW5lclJlZiA9IHVzZUNhbGxiYWNrKFxuICAgIChub2RlOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIGlmICh0eXBlb2Ygc2Nyb2xsUmVmID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgc2Nyb2xsUmVmKG5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChzY3JvbGxSZWYpIHtcbiAgICAgICAgY29uc3QgbXV0YWJsZVJlZiA9XG4gICAgICAgICAgc2Nyb2xsUmVmIGFzIFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICAgICAgbXV0YWJsZVJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzY3JvbGxSZWZdXG4gICk7XG5cbiAgY29uc3QgcmVjYWxjdWxhdGVFZGdlcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBlbCA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGVsO1xuICAgIHNldEVkZ2VzKHtcbiAgICAgIGF0VG9wOiBzY3JvbGxUb3AgPD0gRURHRV9USFJFU0hPTEQsXG4gICAgICBhdEJvdHRvbTogc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIEVER0VfVEhSRVNIT0xELFxuICAgIH0pO1xuICB9LCBbc2V0RWRnZXNdKTtcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LlVJRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICByZWNhbGN1bGF0ZUVkZ2VzKCk7XG4gICAgICBvblNjcm9sbD8uKGV2ZW50KTtcbiAgICB9LFxuICAgIFtyZWNhbGN1bGF0ZUVkZ2VzLCBvblNjcm9sbF1cbiAgKTtcblxuICAvLyBSZS1tZWFzdXJlIGFmdGVyIGV2ZXJ5IHJlbmRlciAobW91bnQgKyBjb250ZW50IGNoYW5nZXMgdmlhIFJlYWN0KS5cbiAgdXNlTGF5b3V0RWZmZWN0KHJlY2FsY3VsYXRlRWRnZXMpO1xuXG4gIC8vIFJlLW1lYXN1cmUgb24gc2l6ZSBjaGFuZ2VzIHRoYXQgRE9OJ1QgdHJpZ2dlciBhIFJlYWN0IHJlbmRlcjogdGhlIGNvbnRlbnRcbiAgLy8gZ3Jvd2luZy9zaHJpbmtpbmcgKGltYWdlIGxvYWQsIGFjY29yZGlvbiBleHBhbmQsIHRleHQgcmVmbG93KSBhbmQgdGhlXG4gIC8vIHZpZXdwb3J0IGl0c2VsZiByZXNpemluZy4gT2JzZXJ2ZSBib3RoIG5vZGVzLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gcmVjYWxjdWxhdGVFZGdlcygpKTtcbiAgICBpZiAoY29udGFpbmVyUmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgIGlmIChjb250ZW50UmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGVudFJlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9LCBbcmVjYWxjdWxhdGVFZGdlc10pO1xuXG4gIHJldHVybiAoXG4gICAgLy8gdGFiSW5kZXggbWFrZXMgdGhlIHNjcm9sbCByZWdpb24ga2V5Ym9hcmQtYWNjZXNzaWJsZSAoYTExeTogc2Nyb2xsYWJsZVxuICAgIC8vIHJlZ2lvbnMgbXVzdCBiZSBmb2N1c2FibGUgc28ga2V5Ym9hcmQgdXNlcnMgY2FuIHNjcm9sbCB0aGVtKS5cbiAgICA8U3R5bGVkQm9keSByZWY9e3NldENvbnRhaW5lclJlZn0gb25TY3JvbGw9e2hhbmRsZVNjcm9sbH0gdGFiSW5kZXg9ezB9PlxuICAgICAgPGRpdiByZWY9e2NvbnRlbnRSZWZ9PntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L1N0eWxlZEJvZHk+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS21CIn0= */");function SandwichBody({children,onScroll,scrollRef}){let{setEdges}=(0,_useSandwichContext.useSandwichContext)(),containerRef=(0,_react.useRef)(null),contentRef=(0,_react.useRef)(null),setContainerRef=(0,_react.useCallback)(node=>{containerRef.current=node,"function"==typeof scrollRef?scrollRef(node):scrollRef&&(scrollRef.current=node)},[scrollRef]),recalculateEdges=(0,_react.useCallback)(()=>{let el=containerRef.current;if(!el)return;let{scrollTop,scrollHeight,clientHeight}=el;setEdges({atTop:scrollTop<=1,atBottom:scrollTop+clientHeight>=scrollHeight-1})},[setEdges]),handleScroll=(0,_react.useCallback)(event=>{recalculateEdges(),onScroll?.(event)},[recalculateEdges,onScroll]);return(0,_react.useLayoutEffect)(recalculateEdges),(0,_react.useEffect)(()=>{if("undefined"==typeof ResizeObserver)return;let observer=new ResizeObserver(()=>recalculateEdges());return containerRef.current&&observer.observe(containerRef.current),contentRef.current&&observer.observe(contentRef.current),()=>observer.disconnect()},[recalculateEdges]),_react.default.createElement(StyledBody,{ref:setContainerRef,onScroll:handleScroll,tabIndex:0},_react.default.createElement("div",{ref:contentRef},children))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"SandwichFooter",{enumerable:!0,get:function(){return SandwichFooter}});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")),_useSandwichContext=require("./useSandwichContext"),StyledFooter=(0,_styled.default)("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"esecync0",label:"StyledFooter"})(({theme,showBorder})=>({position:"sticky",bottom:0,flex:"0 0 auto",zIndex:1,borderTopWidth:1,borderTopStyle:"solid",borderTopColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hGb290ZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoRm9vdGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRGb290ZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICBib3R0b206IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJUb3BXaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJUb3BTdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJUb3BDb2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEZvb3Rlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG59OiBTYW5kd2ljaEZvb3RlclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgeyBhdEJvdHRvbSB9ID0gdXNlU2FuZHdpY2hDb250ZXh0KCk7XG4gIC8vIERpdmlkZXIgd2hpbGUgY29udGVudCByZW1haW5zIGJlbG93IHRoZSBmb2xkIChvciBwZXIgYHNob3dTZXBhcmF0b3JgKS5cbiAgY29uc3Qgc2hvd0JvcmRlciA9XG4gICAgc2hvd1NlcGFyYXRvciA9PT0gXCJhbHdheXNcIiB8fCAoc2hvd1NlcGFyYXRvciA9PT0gXCJhdXRvXCIgJiYgIWF0Qm90dG9tKTtcbiAgcmV0dXJuIDxTdHlsZWRGb290ZXIgc2hvd0JvcmRlcj17c2hvd0JvcmRlcn0+e2NoaWxkcmVufTwvU3R5bGVkRm9vdGVyPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPcUIifQ== */");function SandwichFooter({children,showSeparator="auto"}){let{atBottom}=(0,_useSandwichContext.useSandwichContext)();return _react.default.createElement(StyledFooter,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atBottom},children)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"SandwichHeader",{enumerable:!0,get:function(){return SandwichHeader}});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")),_useSandwichContext=require("./useSandwichContext"),StyledHeader=(0,_styled.default)("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"erdgd190",label:"StyledHeader"})(({theme,showBorder})=>({position:"sticky",top:0,flex:"0 0 auto",zIndex:1,borderBottomWidth:1,borderBottomStyle:"solid",borderBottomColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hIZWFkZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEhlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoSGVhZGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRIZWFkZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICB0b3A6IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJCb3R0b21XaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJCb3R0b21TdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJCb3R0b21Db2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEhlYWRlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG59OiBTYW5kd2ljaEhlYWRlclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgeyBhdFRvcCB9ID0gdXNlU2FuZHdpY2hDb250ZXh0KCk7XG4gIC8vIERpdmlkZXIgb25jZSB0aGUgc3RhcnQgb2YgdGhlIGNvbnRlbnQgaXMgc2Nyb2xsZWQgYXdheSAob3IgcGVyIGBzaG93U2VwYXJhdG9yYCkuXG4gIGNvbnN0IHNob3dCb3JkZXIgPVxuICAgIHNob3dTZXBhcmF0b3IgPT09IFwiYWx3YXlzXCIgfHwgKHNob3dTZXBhcmF0b3IgPT09IFwiYXV0b1wiICYmICFhdFRvcCk7XG4gIHJldHVybiA8U3R5bGVkSGVhZGVyIHNob3dCb3JkZXI9e3Nob3dCb3JkZXJ9PntjaGlsZHJlbn08L1N0eWxlZEhlYWRlcj47XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT3FCIn0= */");function SandwichHeader({children,showSeparator="auto"}){let{atTop}=(0,_useSandwichContext.useSandwichContext)();return _react.default.createElement(StyledHeader,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atTop},children)}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SandwichEdges } from "./-types";
|
|
2
|
+
/**
|
|
3
|
+
* Context decouples the parts: `Body` reports edge visibility via `setEdges`,
|
|
4
|
+
* `Header` / `Footer` read `atTop` / `atBottom`. The link is the context, not
|
|
5
|
+
* child order, so the parts may be authored in any order.
|
|
6
|
+
*/
|
|
7
|
+
export type SandwichContextValue = SandwichEdges & {
|
|
8
|
+
setEdges: (edges: Partial<SandwichEdges>) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const SandwichProvider: React.Provider<SandwichContextValue>;
|
|
11
|
+
/** Read the Sandwich context, or throw if used outside `<Sandwich>`. */
|
|
12
|
+
export declare function useSandwichContext(): SandwichContextValue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get SandwichProvider(){return SandwichProvider},get useSandwichContext(){return useSandwichContext}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=require("react"),SandwichContext=(0,_react.createContext)(null),SandwichProvider=SandwichContext.Provider;function useSandwichContext(){let ctx=(0,_react.useContext)(SandwichContext);if(!ctx)throw Error("Sandwich.Header / Sandwich.Footer / Sandwich.Body must be used within <Sandwich>.");return ctx}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
2
|
import type { PanelKey, SidePanelKey, SlotKey } from "./-constants";
|
|
3
|
+
import type { IconProps } from "../Icon/Icon";
|
|
3
4
|
/**
|
|
4
5
|
* Surface = compound components (`Layout.Sidebar` / `Layout.RightPanel` /
|
|
5
6
|
* `Layout.Content` / `Layout.Split`) + one control hook
|
|
@@ -169,3 +170,45 @@ export type LayoutProps = {
|
|
|
169
170
|
persistenceKey?: string;
|
|
170
171
|
storage?: LayoutStorage;
|
|
171
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* Title shown in the panel header. `label` always provides the panel's
|
|
175
|
+
* accessible name (even when the title block is visually hidden).
|
|
176
|
+
*/
|
|
177
|
+
export type RightPanelContainerTitle = {
|
|
178
|
+
/** Visible label and the panel's accessible name. */
|
|
179
|
+
label: string;
|
|
180
|
+
/** Optional leading icon. */
|
|
181
|
+
icon?: IconProps;
|
|
182
|
+
/** Show the visible label+icon block. Default `true`. When `false` the block
|
|
183
|
+
* is hidden but `label` is still exposed as the accessible name. */
|
|
184
|
+
isVisible?: boolean;
|
|
185
|
+
};
|
|
186
|
+
export type RightPanelContainerSlotProps = {
|
|
187
|
+
/** Header slots around the title. */
|
|
188
|
+
header?: {
|
|
189
|
+
/** Rendered at the header start, before the title. */
|
|
190
|
+
leftSlot?: React.ReactNode;
|
|
191
|
+
/** Rendered at the header end, after the title and before the close button. */
|
|
192
|
+
rightSlot?: React.ReactNode;
|
|
193
|
+
};
|
|
194
|
+
/** Sticky footer content. Footer is omitted entirely when not provided. */
|
|
195
|
+
footer?: React.ReactNode;
|
|
196
|
+
/** Props for the always-rendered close button. */
|
|
197
|
+
closeButton: {
|
|
198
|
+
"aria-label": string;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
export type RightPanelContainerProps = {
|
|
202
|
+
title: RightPanelContainerTitle;
|
|
203
|
+
/** Scrollable body content. */
|
|
204
|
+
children: React.ReactNode;
|
|
205
|
+
/** Called when the (always rendered) close button is clicked. */
|
|
206
|
+
onClose?: () => void;
|
|
207
|
+
slotProps: RightPanelContainerSlotProps;
|
|
208
|
+
/** Forwarded to the scrollable body element (scroll restoration etc.). */
|
|
209
|
+
scrollContainerRef?: React.Ref<HTMLDivElement>;
|
|
210
|
+
/** Forwarded to the scrollable body's scroll handler. */
|
|
211
|
+
onScroll?: React.UIEventHandler<HTMLDivElement>;
|
|
212
|
+
"data-e2e-test-id"?: string;
|
|
213
|
+
};
|
|
214
|
+
export type RightPanelProps = SidePanelProps & Omit<RightPanelContainerProps, "data-e2e-test-id">;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type {
|
|
2
|
+
import type { RightPanelProps } from "./-types";
|
|
3
3
|
/**
|
|
4
4
|
* Right side panel. Declares the `rightPanel` slot and portals its content into
|
|
5
5
|
* the Group's host while visible. Renders in-flow (a resizable column) — the
|
|
6
6
|
* offcanvas overlay / mobile sheet is deferred. Content is wrapped in a slot
|
|
7
7
|
* that tracks the `--ds-layout-subnav-offset` var.
|
|
8
8
|
*/
|
|
9
|
-
export declare const RightPanel: React.FC<
|
|
9
|
+
export declare const RightPanel: React.FC<RightPanelProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanel",{enumerable:!0,get:function(){return RightPanel}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_constants=require("./-constants"),_registry=require("./registry"),_useLayout=require("./useLayout"),StyledRightPanelSlot=(0,_styled.default)("div",{target:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanel",{enumerable:!0,get:function(){return RightPanel}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_constants=require("./-constants"),_registry=require("./registry"),_useLayout=require("./useLayout"),_RightPanelContainer=require("./RightPanelContainer"),StyledRightPanelSlot=(0,_styled.default)("div",{target:"e1jmp3pg0",label:"StyledRightPanelSlot"})({position:"absolute",left:0,right:0,bottom:0,top:`var(${_constants.SUBNAV_OFFSET_VAR}, 0px)`,overflow:"hidden",transition:`top var(${_constants.SLIDE_VAR.duration}) var(${_constants.SLIDE_VAR.easing})`},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvUmlnaHRQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTTElERV9WQVIsIFNsb3QsIFNVQk5BVl9PRkZTRVRfVkFSIH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlRGVjbGFyZVBhbmVsLCB1c2VMYXlvdXRQb3J0YWwsIHVzZVZpc2libGVDaGFuZ2UgfSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0IH0gZnJvbSBcIi4vdXNlTGF5b3V0XCI7XG5pbXBvcnQgeyBSaWdodFBhbmVsQ29udGFpbmVyIH0gZnJvbSBcIi4vUmlnaHRQYW5lbENvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBSaWdodFBhbmVsUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLy8gQnVpbHQtaW4gc2xvdDogb2Zmc2V0cyB0aGUgcGFuZWwgY29udGVudCBieSB0aGUgc3VibmF2LW9mZnNldCB2YXIgKDAgd2hlblxuLy8gdW5zZXQpLCB0cmFuc2l0aW9uZWQgd2l0aCB0aGUgc2hhcmVkIHNsaWRlIHZhcnMg4oCUIHNvIHRoZSByaWdodCBwYW5lbCB0cmFja3MgYVxuLy8gc3RpY2t5IHN1Ym5hdiB3aXRoIG5vIHdpcmluZyBvbiB0aGUgY29uc3VtZXIncyBzaWRlLlxuY29uc3QgU3R5bGVkUmlnaHRQYW5lbFNsb3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgbGVmdDogMCxcbiAgcmlnaHQ6IDAsXG4gIGJvdHRvbTogMCxcbiAgdG9wOiBgdmFyKCR7U1VCTkFWX09GRlNFVF9WQVJ9LCAwcHgpYCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHRyYW5zaXRpb246IGB0b3AgdmFyKCR7U0xJREVfVkFSLmR1cmF0aW9ufSkgdmFyKCR7U0xJREVfVkFSLmVhc2luZ30pYCxcbn0pO1xuXG4vKipcbiAqIFJpZ2h0IHNpZGUgcGFuZWwuIERlY2xhcmVzIHRoZSBgcmlnaHRQYW5lbGAgc2xvdCBhbmQgcG9ydGFscyBpdHMgY29udGVudCBpbnRvXG4gKiB0aGUgR3JvdXAncyBob3N0IHdoaWxlIHZpc2libGUuIFJlbmRlcnMgaW4tZmxvdyAoYSByZXNpemFibGUgY29sdW1uKSDigJQgdGhlXG4gKiBvZmZjYW52YXMgb3ZlcmxheSAvIG1vYmlsZSBzaGVldCBpcyBkZWZlcnJlZC4gQ29udGVudCBpcyB3cmFwcGVkIGluIGEgc2xvdFxuICogdGhhdCB0cmFja3MgdGhlIGAtLWRzLWxheW91dC1zdWJuYXYtb2Zmc2V0YCB2YXIuXG4gKi9cbmV4cG9ydCBjb25zdCBSaWdodFBhbmVsOiBSZWFjdC5GQzxSaWdodFBhbmVsUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGRlZmF1bHRTaXplID0gMzc4LFxuICBtaW5TaXplID0gMzI4LFxuICBtYXhTaXplID0gXCIzMCVcIixcbiAgY29sbGFwc2libGUgPSBmYWxzZSxcbiAgb25WaXNpYmxlQ2hhbmdlLFxuICB0aXRsZSxcbiAgb25DbG9zZSxcbiAgc2xvdFByb3BzLFxuICBzY3JvbGxDb250YWluZXJSZWYsXG4gIG9uU2Nyb2xsLFxufSkgPT4ge1xuICBjb25zdCB7IGlzVmlzaWJsZSwgaGlkZSB9ID0gdXNlTGF5b3V0KClbU2xvdC5yaWdodFBhbmVsXTtcbiAgdXNlRGVjbGFyZVBhbmVsKFNsb3QucmlnaHRQYW5lbCwge1xuICAgIGRlZmF1bHRTaXplLFxuICAgIG1pblNpemUsXG4gICAgbWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZSxcbiAgfSk7XG4gIHVzZVZpc2libGVDaGFuZ2UoaXNWaXNpYmxlLCBvblZpc2libGVDaGFuZ2UpO1xuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpOiB2b2lkID0+IHtcbiAgICBoaWRlKCk7XG4gICAgb25DbG9zZT8uKCk7XG4gIH07XG4gIHJldHVybiB1c2VMYXlvdXRQb3J0YWwoXG4gICAgU2xvdC5yaWdodFBhbmVsLFxuICAgIGlzVmlzaWJsZSA/IChcbiAgICAgIDxTdHlsZWRSaWdodFBhbmVsU2xvdD5cbiAgICAgICAgPFJpZ2h0UGFuZWxDb250YWluZXJcbiAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgc2xvdFByb3BzPXtzbG90UHJvcHN9XG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyUmVmPXtzY3JvbGxDb250YWluZXJSZWZ9XG4gICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JpZ2h0UGFuZWxDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFJpZ2h0UGFuZWxTbG90PlxuICAgICkgOiBudWxsXG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVc2QiJ9 */"),RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,onVisibleChange,title,onClose,slotProps,scrollContainerRef,onScroll})=>{let{isVisible,hide}=(0,_useLayout.useLayout)()[_constants.Slot.rightPanel];return(0,_registry.useDeclarePanel)(_constants.Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible}),(0,_registry.useVisibleChange)(isVisible,onVisibleChange),(0,_registry.useLayoutPortal)(_constants.Slot.rightPanel,isVisible?_react.default.createElement(StyledRightPanelSlot,null,_react.default.createElement(_RightPanelContainer.RightPanelContainer,{title:title,onClose:()=>{hide(),onClose?.()},slotProps:slotProps,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children)):null)};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { RightPanelContainerProps } from "./-types";
|
|
3
|
+
export declare function RightPanelContainer({ title, children, onClose, slotProps, scrollContainerRef, onScroll, "data-e2e-test-id": dataE2eTestId, }: RightPanelContainerProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanelContainer",{enumerable:!0,get:function(){return RightPanelContainer}});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")),_Sandwich=require("../Internal/Sandwich/Sandwich"),_Icon=require("../Icon/Icon"),_Header=require("../Typography/Header/Header"),_Box=require("../Box/Box"),_Inline=require("../Inline/Inline"),_PictogramButton=require("../PictogramButton/PictogramButton"),_Divider=require("../Divider/Divider"),_Container=require("../Container/Container"),CustomContainer=(0,_styled.default)(_Container.Container,{target:"e5j03vd0",label:"CustomContainer"})({height:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWxDb250YWluZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvUmlnaHRQYW5lbENvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTYW5kd2ljaCB9IGZyb20gXCIuLi9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaFwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEg1IH0gZnJvbSBcIi4uL1R5cG9ncmFwaHkvSGVhZGVyL0hlYWRlclwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgRGl2aWRlciB9IGZyb20gXCIuLi9EaXZpZGVyL0RpdmlkZXJcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IFJpZ2h0UGFuZWxDb250YWluZXJQcm9wcyB9IGZyb20gXCIuLy10eXBlc1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKSh7XG4gIGhlaWdodDogXCIxMDAlXCIsXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIFJpZ2h0UGFuZWxDb250YWluZXIoe1xuICB0aXRsZSxcbiAgY2hpbGRyZW4sXG4gIG9uQ2xvc2UsXG4gIHNsb3RQcm9wcyxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBSaWdodFBhbmVsQ29udGFpbmVyUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCB7IGlzVmlzaWJsZTogaXNUaXRsZVZpc2libGUgPSB0cnVlIH0gPSB0aXRsZTtcbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICBlbGV2YXRpb249ezB9XG4gICAgICBzcXVhcmVDb3JuZXJzXG4gICAgICBkYXRhLWRzLWlkPVwiUmlnaHRQYW5lbENvbnRhaW5lclwiXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgID5cbiAgICAgIDxTYW5kd2ljaCByb2xlPVwicmVnaW9uXCIgYXJpYS1sYWJlbD17dGl0bGUubGFiZWx9PlxuICAgICAgICA8U2FuZHdpY2guSGVhZGVyIHNob3dTZXBhcmF0b3I9XCJhbHdheXNcIj5cbiAgICAgICAgICA8Qm94IHNwYWNlPVwic1wiIHZTcGFjZT1cInhzXCI+XG4gICAgICAgICAgICA8SW5saW5lXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIlxuICAgICAgICAgICAgICB2QWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIG5vV3JhcFxuICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIiBub1dyYXA+XG4gICAgICAgICAgICAgICAge3Nsb3RQcm9wcy5oZWFkZXI/LmxlZnRTbG90fVxuICAgICAgICAgICAgICAgIHtpc1RpdGxlVmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAge3RpdGxlLmljb24gJiYgPEljb24gey4uLnRpdGxlLmljb259IC8+fVxuICAgICAgICAgICAgICAgICAgICA8SDU+e3RpdGxlLmxhYmVsfTwvSDU+XG4gICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInh4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCIgbm9XcmFwPlxuICAgICAgICAgICAgICAgIHtzbG90UHJvcHMuaGVhZGVyPy5yaWdodFNsb3R9XG4gICAgICAgICAgICAgICAgey8qIGRpdmlkZXIgc2VwYXJhdGluZyBjb25zdW1lciBoZWFkZXIgYWN0aW9ucyBmcm9tIHRoZSBjbG9zZSBidXR0b24gKi99XG4gICAgICAgICAgICAgICAge3Nsb3RQcm9wcy5oZWFkZXI/LnJpZ2h0U2xvdCAmJiAoXG4gICAgICAgICAgICAgICAgICA8RGl2aWRlciBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxQaWN0b2dyYW1CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtzbG90UHJvcHMuY2xvc2VCdXR0b25bXCJhcmlhLWxhYmVsXCJdfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbG9zZT8uKCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgPC9TYW5kd2ljaC5IZWFkZXI+XG4gICAgICAgIDxTYW5kd2ljaC5Cb2R5IHNjcm9sbFJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfSBvblNjcm9sbD17b25TY3JvbGx9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TYW5kd2ljaC5Cb2R5PlxuICAgICAgICB7c2xvdFByb3BzLmZvb3RlciAmJiAoXG4gICAgICAgICAgPFNhbmR3aWNoLkZvb3RlciBzaG93U2VwYXJhdG9yPVwibmV2ZXJcIj5cbiAgICAgICAgICAgIHtzbG90UHJvcHMuZm9vdGVyfVxuICAgICAgICAgIDwvU2FuZHdpY2guRm9vdGVyPlxuICAgICAgICApfVxuICAgICAgPC9TYW5kd2ljaD5cbiAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZd0IifQ== */");function RightPanelContainer({title,children,onClose,slotProps,scrollContainerRef,onScroll,"data-e2e-test-id":dataE2eTestId}){let{isVisible:isTitleVisible=!0}=title;return _react.default.createElement(CustomContainer,{elevation:0,squareCorners:!0,"data-ds-id":"RightPanelContainer","data-e2e-test-id":dataE2eTestId},_react.default.createElement(_Sandwich.Sandwich,{role:"region","aria-label":title.label},_react.default.createElement(_Sandwich.Sandwich.Header,{showSeparator:"always"},_react.default.createElement(_Box.Box,{space:"s",vSpace:"xs"},_react.default.createElement(_Inline.Inline,{alignItems:"spaceBetween",vAlignItems:"center",noWrap:!0,fullWidth:!0},_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center",noWrap:!0},slotProps.header?.leftSlot,isTitleVisible&&_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center",noWrap:!0},title.icon&&_react.default.createElement(_Icon.Icon,title.icon),_react.default.createElement(_Header.H5,null,title.label))),_react.default.createElement(_Inline.Inline,{space:"xxs",vAlignItems:"center",noWrap:!0},slotProps.header?.rightSlot,slotProps.header?.rightSlot&&_react.default.createElement(_Divider.Divider,{orientation:"vertical"}),_react.default.createElement(_PictogramButton.PictogramButton,{icon:"x",size:"s",variant:"tertiary","aria-label":slotProps.closeButton["aria-label"],onClick:()=>onClose?.()}))))),_react.default.createElement(_Sandwich.Sandwich.Body,{scrollRef:scrollContainerRef,onScroll:onScroll},children),slotProps.footer&&_react.default.createElement(_Sandwich.Sandwich.Footer,{showSeparator:"never"},slotProps.footer)))}
|
|
@@ -3,6 +3,7 @@ export { Layout } from "./Layout";
|
|
|
3
3
|
export { LayoutProvider } from "./LayoutProvider";
|
|
4
4
|
export { useLayoutVar } from "./LayoutVars";
|
|
5
5
|
export { useLayout } from "./useLayout";
|
|
6
|
+
export { RightPanelContainer } from "./RightPanelContainer";
|
|
6
7
|
export { createLayoutStore } from "./store";
|
|
7
8
|
export { createInitialState, layoutReducer } from "./reducer";
|
|
8
9
|
export * from "./-types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get Layout(){return _Layout.Layout},get LayoutProvider(){return _LayoutProvider.LayoutProvider},get SLIDE_VAR(){return _constants.SLIDE_VAR},get SUBNAV_OFFSET_VAR(){return _constants.SUBNAV_OFFSET_VAR},get createInitialState(){return _reducer.createInitialState},get createLayoutStore(){return _store.createLayoutStore},get layoutReducer(){return _reducer.layoutReducer},get useLayout(){return _useLayout.useLayout},get useLayoutVar(){return _LayoutVars.useLayoutVar}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_constants=require("./-constants"),_Layout=require("./Layout"),_LayoutProvider=require("./LayoutProvider"),_LayoutVars=require("./LayoutVars"),_useLayout=require("./useLayout"),_store=require("./store"),_reducer=require("./reducer");_export_star._(require("./-types"),exports);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get Layout(){return _Layout.Layout},get LayoutProvider(){return _LayoutProvider.LayoutProvider},get RightPanelContainer(){return _RightPanelContainer.RightPanelContainer},get SLIDE_VAR(){return _constants.SLIDE_VAR},get SUBNAV_OFFSET_VAR(){return _constants.SUBNAV_OFFSET_VAR},get createInitialState(){return _reducer.createInitialState},get createLayoutStore(){return _store.createLayoutStore},get layoutReducer(){return _reducer.layoutReducer},get useLayout(){return _useLayout.useLayout},get useLayoutVar(){return _LayoutVars.useLayoutVar}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_constants=require("./-constants"),_Layout=require("./Layout"),_LayoutProvider=require("./LayoutProvider"),_LayoutVars=require("./LayoutVars"),_useLayout=require("./useLayout"),_RightPanelContainer=require("./RightPanelContainer"),_store=require("./store"),_reducer=require("./reducer");_export_star._(require("./-types"),exports);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
export type SandwichProps = {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
"data-e2e-test-id"?: string;
|
|
5
|
+
/** Override the root's `data-ds-id` (e.g. when a wrapper component owns the node). */
|
|
6
|
+
"data-ds-id"?: string;
|
|
7
|
+
} & React.HTMLAttributes<HTMLDivElement>;
|
|
8
|
+
/**
|
|
9
|
+
* Separator visibility:
|
|
10
|
+
* - `auto`: show only while the content is scrolled away from the edge (default).
|
|
11
|
+
* - `always`: always visible.
|
|
12
|
+
* - `never`: never visible.
|
|
13
|
+
*/
|
|
14
|
+
export type SandwichSeparator = "auto" | "always" | "never";
|
|
15
|
+
export type SandwichHeaderProps = {
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
showSeparator?: SandwichSeparator;
|
|
18
|
+
};
|
|
19
|
+
export type SandwichFooterProps = {
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
showSeparator?: SandwichSeparator;
|
|
22
|
+
};
|
|
23
|
+
export type SandwichBodyProps = {
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
/** Forwarded scroll handler; fires after the internal edge measurement. */
|
|
26
|
+
onScroll?: React.UIEventHandler<HTMLDivElement>;
|
|
27
|
+
/** Forwarded to the scroll container element (e.g. for scroll restoration). */
|
|
28
|
+
scrollRef?: React.Ref<HTMLDivElement>;
|
|
29
|
+
};
|
|
30
|
+
/** Scroll-edge visibility published by `Body`, consumed by `Header` / `Footer`. */
|
|
31
|
+
export type SandwichEdges = {
|
|
32
|
+
/** Start of the scroll content is visible (not scrolled down). */
|
|
33
|
+
atTop: boolean;
|
|
34
|
+
/** End of the scroll content is visible (scrolled to bottom). */
|
|
35
|
+
atBottom: boolean;
|
|
36
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SandwichProps } from "./-types";
|
|
3
|
+
import { SandwichBody } from "./SandwichBody";
|
|
4
|
+
import { SandwichHeader } from "./SandwichHeader";
|
|
5
|
+
import { SandwichFooter } from "./SandwichFooter";
|
|
6
|
+
/**
|
|
7
|
+
* Internal compound component: a scrollable middle region (`Sandwich.Body`)
|
|
8
|
+
* flanked by a sticky `Sandwich.Header` / `Sandwich.Footer` that reveal a border
|
|
9
|
+
* only while content is scrolled under them. Edge state is shared through
|
|
10
|
+
* context (see `useSandwichContext.tsx`).
|
|
11
|
+
*/
|
|
12
|
+
declare function SandwichRoot({ children, ...rest }: SandwichProps): React.ReactElement;
|
|
13
|
+
/**
|
|
14
|
+
* Compound export: `Sandwich` with `.Header`, `.Body`, `.Footer` attached.
|
|
15
|
+
* Object.assign keeps the static sub-components typed on the root
|
|
16
|
+
* (function-declaration statics don't type-check).
|
|
17
|
+
*/
|
|
18
|
+
export declare const Sandwich: typeof SandwichRoot & {
|
|
19
|
+
Header: typeof SandwichHeader;
|
|
20
|
+
Body: typeof SandwichBody;
|
|
21
|
+
Footer: typeof SandwichFooter;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React,{useCallback,useMemo,useState}from"react";import styled from"@emotion/styled";import{SandwichProvider}from"./useSandwichContext";import{SandwichBody}from"./SandwichBody";import{SandwichHeader}from"./SandwichHeader";import{SandwichFooter}from"./SandwichFooter";let StyledRoot=styled("div",{target:"e164s6zy0",label:"StyledRoot"})({display:"flex",flexDirection:"column",minHeight:0,height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2gudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoRWRnZXMsIFNhbmR3aWNoUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IFNhbmR3aWNoUHJvdmlkZXIgfSBmcm9tIFwiLi91c2VTYW5kd2ljaENvbnRleHRcIjtcbmltcG9ydCB7IFNhbmR3aWNoQm9keSB9IGZyb20gXCIuL1NhbmR3aWNoQm9keVwiO1xuaW1wb3J0IHsgU2FuZHdpY2hIZWFkZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEhlYWRlclwiO1xuaW1wb3J0IHsgU2FuZHdpY2hGb290ZXIgfSBmcm9tIFwiLi9TYW5kd2ljaEZvb3RlclwiO1xuXG4vLyBDb2x1bW4gbGF5b3V0OiBoZWFkZXIvZm9vdGVyIHNpdCBhYm92ZS9iZWxvdyBhIHNpbmdsZSBzY3JvbGwgcmVnaW9uLiBUaGVcbi8vIHJvb3QgaXRzZWxmIGRvZXMgbm90IHNjcm9sbCDigJQgYEJvZHlgIG93bnMgdGhlIG92ZXJmbG93LlxuY29uc3QgU3R5bGVkUm9vdCA9IHN0eWxlZC5kaXYoe1xuICBkaXNwbGF5OiBcImZsZXhcIixcbiAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgbWluSGVpZ2h0OiAwLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLyoqXG4gKiBJbnRlcm5hbCBjb21wb3VuZCBjb21wb25lbnQ6IGEgc2Nyb2xsYWJsZSBtaWRkbGUgcmVnaW9uIChgU2FuZHdpY2guQm9keWApXG4gKiBmbGFua2VkIGJ5IGEgc3RpY2t5IGBTYW5kd2ljaC5IZWFkZXJgIC8gYFNhbmR3aWNoLkZvb3RlcmAgdGhhdCByZXZlYWwgYSBib3JkZXJcbiAqIG9ubHkgd2hpbGUgY29udGVudCBpcyBzY3JvbGxlZCB1bmRlciB0aGVtLiBFZGdlIHN0YXRlIGlzIHNoYXJlZCB0aHJvdWdoXG4gKiBjb250ZXh0IChzZWUgYHVzZVNhbmR3aWNoQ29udGV4dC50c3hgKS5cbiAqL1xuZnVuY3Rpb24gU2FuZHdpY2hSb290KHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn06IFNhbmR3aWNoUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICAvLyBEZWZhdWx0OiBldmVyeXRoaW5nIHZpc2libGUgKG5vIHNjcm9sbGluZyBuZWVkZWQpIOKGkiBubyBib3JkZXJzLlxuICBjb25zdCBbZWRnZXMsIHNldEVkZ2VzU3RhdGVdID0gdXNlU3RhdGU8U2FuZHdpY2hFZGdlcz4oe1xuICAgIGF0VG9wOiB0cnVlLFxuICAgIGF0Qm90dG9tOiB0cnVlLFxuICB9KTtcblxuICBjb25zdCBzZXRFZGdlcyA9IHVzZUNhbGxiYWNrKChuZXh0OiBQYXJ0aWFsPFNhbmR3aWNoRWRnZXM+KSA9PiB7XG4gICAgc2V0RWRnZXNTdGF0ZSgocHJldikgPT4ge1xuICAgICAgY29uc3QgbWVyZ2VkID0geyAuLi5wcmV2LCAuLi5uZXh0IH07XG4gICAgICBpZiAobWVyZ2VkLmF0VG9wID09PSBwcmV2LmF0VG9wICYmIG1lcmdlZC5hdEJvdHRvbSA9PT0gcHJldi5hdEJvdHRvbSkge1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgLi4uZWRnZXMsIHNldEVkZ2VzIH0pLCBbZWRnZXMsIHNldEVkZ2VzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U2FuZHdpY2hQcm92aWRlciB2YWx1ZT17dmFsdWV9PlxuICAgICAgPFN0eWxlZFJvb3QgZGF0YS1kcy1pZD1cIlNhbmR3aWNoXCIgey4uLnJlc3R9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N0eWxlZFJvb3Q+XG4gICAgPC9TYW5kd2ljaFByb3ZpZGVyPlxuICApO1xufVxuXG4vKipcbiAqIENvbXBvdW5kIGV4cG9ydDogYFNhbmR3aWNoYCB3aXRoIGAuSGVhZGVyYCwgYC5Cb2R5YCwgYC5Gb290ZXJgIGF0dGFjaGVkLlxuICogT2JqZWN0LmFzc2lnbiBrZWVwcyB0aGUgc3RhdGljIHN1Yi1jb21wb25lbnRzIHR5cGVkIG9uIHRoZSByb290XG4gKiAoZnVuY3Rpb24tZGVjbGFyYXRpb24gc3RhdGljcyBkb24ndCB0eXBlLWNoZWNrKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNhbmR3aWNoID0gT2JqZWN0LmFzc2lnbihTYW5kd2ljaFJvb3QsIHtcbiAgSGVhZGVyOiBTYW5kd2ljaEhlYWRlcixcbiAgQm9keTogU2FuZHdpY2hCb2R5LFxuICBGb290ZXI6IFNhbmR3aWNoRm9vdGVyLFxufSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVW1CIn0= */");export const Sandwich=Object.assign(function({children,...rest}){let[edges,setEdgesState]=useState({atTop:!0,atBottom:!0}),setEdges=useCallback(next=>{setEdgesState(prev=>{let merged={...prev,...next};return merged.atTop===prev.atTop&&merged.atBottom===prev.atBottom?prev:merged})},[]),value=useMemo(()=>({...edges,setEdges}),[edges,setEdges]);return React.createElement(SandwichProvider,{value:value},React.createElement(StyledRoot,{"data-ds-id":"Sandwich",...rest},children))},{Header:SandwichHeader,Body:SandwichBody,Footer:SandwichFooter});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React,{useCallback,useEffect,useLayoutEffect,useRef}from"react";import styled from"@emotion/styled";import{useSandwichContext}from"./useSandwichContext";let StyledBody=styled("div",{target:"eog7fee0",label:"StyledBody"})({flex:"1 1 auto",minHeight:0,overflowY:"auto",position:"relative"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hCb2R5LnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hCb2R5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBTYW5kd2ljaEJvZHlQcm9wcyB9IGZyb20gXCIuLy10eXBlc1wiO1xuaW1wb3J0IHsgdXNlU2FuZHdpY2hDb250ZXh0IH0gZnJvbSBcIi4vdXNlU2FuZHdpY2hDb250ZXh0XCI7XG5cbmNvbnN0IFN0eWxlZEJvZHkgPSBzdHlsZWQuZGl2KHtcbiAgZmxleDogXCIxIDEgYXV0b1wiLFxuICBtaW5IZWlnaHQ6IDAsXG4gIG92ZXJmbG93WTogXCJhdXRvXCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxuLy8gcHggdG9sZXJhbmNlIOKAlCBzdWItcGl4ZWwgcm91bmRpbmcgc2hvdWxkbid0IGxlYXZlIGEgZGl2aWRlciBzdHVjayBvbi5cbmNvbnN0IEVER0VfVEhSRVNIT0xEID0gMTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNhbmR3aWNoQm9keSh7XG4gIGNoaWxkcmVuLFxuICBvblNjcm9sbCxcbiAgc2Nyb2xsUmVmLFxufTogU2FuZHdpY2hCb2R5UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCB7IHNldEVkZ2VzIH0gPSB1c2VTYW5kd2ljaENvbnRleHQoKTtcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAvLyBLZWVwIHRoZSBpbnRlcm5hbCByZWYgKHVzZWQgZm9yIG1lYXN1cmluZykgd2hpbGUgYWxzbyBmb3J3YXJkaW5nIHRoZSBub2RlIHRvXG4gIC8vIHRoZSBjb25zdW1lcidzIGBzY3JvbGxSZWZgIOKAlCBhIGNhbGxiYWNrIHJlZiBoYW5kbGVzIGJvdGggZm9ybXMuXG4gIGNvbnN0IHNldENvbnRhaW5lclJlZiA9IHVzZUNhbGxiYWNrKFxuICAgIChub2RlOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIGlmICh0eXBlb2Ygc2Nyb2xsUmVmID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgc2Nyb2xsUmVmKG5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChzY3JvbGxSZWYpIHtcbiAgICAgICAgY29uc3QgbXV0YWJsZVJlZiA9XG4gICAgICAgICAgc2Nyb2xsUmVmIGFzIFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICAgICAgbXV0YWJsZVJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzY3JvbGxSZWZdXG4gICk7XG5cbiAgY29uc3QgcmVjYWxjdWxhdGVFZGdlcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBlbCA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGVsO1xuICAgIHNldEVkZ2VzKHtcbiAgICAgIGF0VG9wOiBzY3JvbGxUb3AgPD0gRURHRV9USFJFU0hPTEQsXG4gICAgICBhdEJvdHRvbTogc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIEVER0VfVEhSRVNIT0xELFxuICAgIH0pO1xuICB9LCBbc2V0RWRnZXNdKTtcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LlVJRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICByZWNhbGN1bGF0ZUVkZ2VzKCk7XG4gICAgICBvblNjcm9sbD8uKGV2ZW50KTtcbiAgICB9LFxuICAgIFtyZWNhbGN1bGF0ZUVkZ2VzLCBvblNjcm9sbF1cbiAgKTtcblxuICAvLyBSZS1tZWFzdXJlIGFmdGVyIGV2ZXJ5IHJlbmRlciAobW91bnQgKyBjb250ZW50IGNoYW5nZXMgdmlhIFJlYWN0KS5cbiAgdXNlTGF5b3V0RWZmZWN0KHJlY2FsY3VsYXRlRWRnZXMpO1xuXG4gIC8vIFJlLW1lYXN1cmUgb24gc2l6ZSBjaGFuZ2VzIHRoYXQgRE9OJ1QgdHJpZ2dlciBhIFJlYWN0IHJlbmRlcjogdGhlIGNvbnRlbnRcbiAgLy8gZ3Jvd2luZy9zaHJpbmtpbmcgKGltYWdlIGxvYWQsIGFjY29yZGlvbiBleHBhbmQsIHRleHQgcmVmbG93KSBhbmQgdGhlXG4gIC8vIHZpZXdwb3J0IGl0c2VsZiByZXNpemluZy4gT2JzZXJ2ZSBib3RoIG5vZGVzLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gcmVjYWxjdWxhdGVFZGdlcygpKTtcbiAgICBpZiAoY29udGFpbmVyUmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgIGlmIChjb250ZW50UmVmLmN1cnJlbnQpIG9ic2VydmVyLm9ic2VydmUoY29udGVudFJlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9LCBbcmVjYWxjdWxhdGVFZGdlc10pO1xuXG4gIHJldHVybiAoXG4gICAgLy8gdGFiSW5kZXggbWFrZXMgdGhlIHNjcm9sbCByZWdpb24ga2V5Ym9hcmQtYWNjZXNzaWJsZSAoYTExeTogc2Nyb2xsYWJsZVxuICAgIC8vIHJlZ2lvbnMgbXVzdCBiZSBmb2N1c2FibGUgc28ga2V5Ym9hcmQgdXNlcnMgY2FuIHNjcm9sbCB0aGVtKS5cbiAgICA8U3R5bGVkQm9keSByZWY9e3NldENvbnRhaW5lclJlZn0gb25TY3JvbGw9e2hhbmRsZVNjcm9sbH0gdGFiSW5kZXg9ezB9PlxuICAgICAgPGRpdiByZWY9e2NvbnRlbnRSZWZ9PntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L1N0eWxlZEJvZHk+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS21CIn0= */");export function SandwichBody({children,onScroll,scrollRef}){let{setEdges}=useSandwichContext(),containerRef=useRef(null),contentRef=useRef(null),setContainerRef=useCallback(node=>{containerRef.current=node,"function"==typeof scrollRef?scrollRef(node):scrollRef&&(scrollRef.current=node)},[scrollRef]),recalculateEdges=useCallback(()=>{let el=containerRef.current;if(!el)return;let{scrollTop,scrollHeight,clientHeight}=el;setEdges({atTop:scrollTop<=1,atBottom:scrollTop+clientHeight>=scrollHeight-1})},[setEdges]),handleScroll=useCallback(event=>{recalculateEdges(),onScroll?.(event)},[recalculateEdges,onScroll]);return useLayoutEffect(recalculateEdges),useEffect(()=>{if("undefined"==typeof ResizeObserver)return;let observer=new ResizeObserver(()=>recalculateEdges());return containerRef.current&&observer.observe(containerRef.current),contentRef.current&&observer.observe(contentRef.current),()=>observer.disconnect()},[recalculateEdges]),React.createElement(StyledBody,{ref:setContainerRef,onScroll:handleScroll,tabIndex:0},React.createElement("div",{ref:contentRef},children))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{useSandwichContext}from"./useSandwichContext";let StyledFooter=styled("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"esecync0",label:"StyledFooter"})(({theme,showBorder})=>({position:"sticky",bottom:0,flex:"0 0 auto",zIndex:1,borderTopWidth:1,borderTopStyle:"solid",borderTopColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hGb290ZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoRm9vdGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRGb290ZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICBib3R0b206IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJUb3BXaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJUb3BTdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJUb3BDb2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEZvb3Rlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG59OiBTYW5kd2ljaEZvb3RlclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgeyBhdEJvdHRvbSB9ID0gdXNlU2FuZHdpY2hDb250ZXh0KCk7XG4gIC8vIERpdmlkZXIgd2hpbGUgY29udGVudCByZW1haW5zIGJlbG93IHRoZSBmb2xkIChvciBwZXIgYHNob3dTZXBhcmF0b3JgKS5cbiAgY29uc3Qgc2hvd0JvcmRlciA9XG4gICAgc2hvd1NlcGFyYXRvciA9PT0gXCJhbHdheXNcIiB8fCAoc2hvd1NlcGFyYXRvciA9PT0gXCJhdXRvXCIgJiYgIWF0Qm90dG9tKTtcbiAgcmV0dXJuIDxTdHlsZWRGb290ZXIgc2hvd0JvcmRlcj17c2hvd0JvcmRlcn0+e2NoaWxkcmVufTwvU3R5bGVkRm9vdGVyPjtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPcUIifQ== */");export function SandwichFooter({children,showSeparator="auto"}){let{atBottom}=useSandwichContext();return React.createElement(StyledFooter,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atBottom},children)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{useSandwichContext}from"./useSandwichContext";let StyledHeader=styled("div",{shouldForwardProp:prop=>"showBorder"!==prop,target:"erdgd190",label:"StyledHeader"})(({theme,showBorder})=>({position:"sticky",top:0,flex:"0 0 auto",zIndex:1,borderBottomWidth:1,borderBottomStyle:"solid",borderBottomColor:showBorder?theme.values.color.border.secondary.default:"transparent",transition:"border-color 0.15s ease"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvSW50ZXJuYWwvU2FuZHdpY2gvU2FuZHdpY2hIZWFkZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaEhlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFNhbmR3aWNoSGVhZGVyUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcbmltcG9ydCB7IHVzZVNhbmR3aWNoQ29udGV4dCB9IGZyb20gXCIuL3VzZVNhbmR3aWNoQ29udGV4dFwiO1xuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuXG5jb25zdCBTdHlsZWRIZWFkZXIgPSBzdHlsZWQoXCJkaXZcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwic2hvd0JvcmRlclwiLFxufSk8eyBzaG93Qm9yZGVyOiBib29sZWFuIH0+KCh7IHRoZW1lLCBzaG93Qm9yZGVyIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICB0b3A6IDAsXG4gIGZsZXg6IFwiMCAwIGF1dG9cIixcbiAgekluZGV4OiAxLFxuICAvLyBSZXNlcnZlIHRoZSBib3JkZXIgYm94IGF0IGFsbCB0aW1lczsgb25seSB0aGUgY29sb3IgdG9nZ2xlcyBzbyB0aGUgZGl2aWRlclxuICAvLyBhcHBlYXJzIHdpdGhvdXQgc2hpZnRpbmcgbGF5b3V0LlxuICBib3JkZXJCb3R0b21XaWR0aDogQk9SREVSX1dJRFRILFxuICBib3JkZXJCb3R0b21TdHlsZTogXCJzb2xpZFwiLFxuICBib3JkZXJCb3R0b21Db2xvcjogc2hvd0JvcmRlclxuICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5zZWNvbmRhcnkuZGVmYXVsdFxuICAgIDogXCJ0cmFuc3BhcmVudFwiLFxuICB0cmFuc2l0aW9uOiBcImJvcmRlci1jb2xvciAwLjE1cyBlYXNlXCIsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBTYW5kd2ljaEhlYWRlcih7XG4gIGNoaWxkcmVuLFxuICBzaG93U2VwYXJhdG9yID0gXCJhdXRvXCIsXG59OiBTYW5kd2ljaEhlYWRlclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgeyBhdFRvcCB9ID0gdXNlU2FuZHdpY2hDb250ZXh0KCk7XG4gIC8vIERpdmlkZXIgb25jZSB0aGUgc3RhcnQgb2YgdGhlIGNvbnRlbnQgaXMgc2Nyb2xsZWQgYXdheSAob3IgcGVyIGBzaG93U2VwYXJhdG9yYCkuXG4gIGNvbnN0IHNob3dCb3JkZXIgPVxuICAgIHNob3dTZXBhcmF0b3IgPT09IFwiYWx3YXlzXCIgfHwgKHNob3dTZXBhcmF0b3IgPT09IFwiYXV0b1wiICYmICFhdFRvcCk7XG4gIHJldHVybiA8U3R5bGVkSGVhZGVyIHNob3dCb3JkZXI9e3Nob3dCb3JkZXJ9PntjaGlsZHJlbn08L1N0eWxlZEhlYWRlcj47XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT3FCIn0= */");export function SandwichHeader({children,showSeparator="auto"}){let{atTop}=useSandwichContext();return React.createElement(StyledHeader,{showBorder:"always"===showSeparator||"auto"===showSeparator&&!atTop},children)}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SandwichEdges } from "./-types";
|
|
2
|
+
/**
|
|
3
|
+
* Context decouples the parts: `Body` reports edge visibility via `setEdges`,
|
|
4
|
+
* `Header` / `Footer` read `atTop` / `atBottom`. The link is the context, not
|
|
5
|
+
* child order, so the parts may be authored in any order.
|
|
6
|
+
*/
|
|
7
|
+
export type SandwichContextValue = SandwichEdges & {
|
|
8
|
+
setEdges: (edges: Partial<SandwichEdges>) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const SandwichProvider: React.Provider<SandwichContextValue>;
|
|
11
|
+
/** Read the Sandwich context, or throw if used outside `<Sandwich>`. */
|
|
12
|
+
export declare function useSandwichContext(): SandwichContextValue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createContext,useContext}from"react";let SandwichContext=createContext(null);export const SandwichProvider=SandwichContext.Provider;export function useSandwichContext(){let ctx=useContext(SandwichContext);if(!ctx)throw Error("Sandwich.Header / Sandwich.Footer / Sandwich.Body must be used within <Sandwich>.");return ctx}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
2
|
import type { PanelKey, SidePanelKey, SlotKey } from "./-constants";
|
|
3
|
+
import type { IconProps } from "../Icon/Icon";
|
|
3
4
|
/**
|
|
4
5
|
* Surface = compound components (`Layout.Sidebar` / `Layout.RightPanel` /
|
|
5
6
|
* `Layout.Content` / `Layout.Split`) + one control hook
|
|
@@ -169,3 +170,45 @@ export type LayoutProps = {
|
|
|
169
170
|
persistenceKey?: string;
|
|
170
171
|
storage?: LayoutStorage;
|
|
171
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* Title shown in the panel header. `label` always provides the panel's
|
|
175
|
+
* accessible name (even when the title block is visually hidden).
|
|
176
|
+
*/
|
|
177
|
+
export type RightPanelContainerTitle = {
|
|
178
|
+
/** Visible label and the panel's accessible name. */
|
|
179
|
+
label: string;
|
|
180
|
+
/** Optional leading icon. */
|
|
181
|
+
icon?: IconProps;
|
|
182
|
+
/** Show the visible label+icon block. Default `true`. When `false` the block
|
|
183
|
+
* is hidden but `label` is still exposed as the accessible name. */
|
|
184
|
+
isVisible?: boolean;
|
|
185
|
+
};
|
|
186
|
+
export type RightPanelContainerSlotProps = {
|
|
187
|
+
/** Header slots around the title. */
|
|
188
|
+
header?: {
|
|
189
|
+
/** Rendered at the header start, before the title. */
|
|
190
|
+
leftSlot?: React.ReactNode;
|
|
191
|
+
/** Rendered at the header end, after the title and before the close button. */
|
|
192
|
+
rightSlot?: React.ReactNode;
|
|
193
|
+
};
|
|
194
|
+
/** Sticky footer content. Footer is omitted entirely when not provided. */
|
|
195
|
+
footer?: React.ReactNode;
|
|
196
|
+
/** Props for the always-rendered close button. */
|
|
197
|
+
closeButton: {
|
|
198
|
+
"aria-label": string;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
export type RightPanelContainerProps = {
|
|
202
|
+
title: RightPanelContainerTitle;
|
|
203
|
+
/** Scrollable body content. */
|
|
204
|
+
children: React.ReactNode;
|
|
205
|
+
/** Called when the (always rendered) close button is clicked. */
|
|
206
|
+
onClose?: () => void;
|
|
207
|
+
slotProps: RightPanelContainerSlotProps;
|
|
208
|
+
/** Forwarded to the scrollable body element (scroll restoration etc.). */
|
|
209
|
+
scrollContainerRef?: React.Ref<HTMLDivElement>;
|
|
210
|
+
/** Forwarded to the scrollable body's scroll handler. */
|
|
211
|
+
onScroll?: React.UIEventHandler<HTMLDivElement>;
|
|
212
|
+
"data-e2e-test-id"?: string;
|
|
213
|
+
};
|
|
214
|
+
export type RightPanelProps = SidePanelProps & Omit<RightPanelContainerProps, "data-e2e-test-id">;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type {
|
|
2
|
+
import type { RightPanelProps } from "./-types";
|
|
3
3
|
/**
|
|
4
4
|
* Right side panel. Declares the `rightPanel` slot and portals its content into
|
|
5
5
|
* the Group's host while visible. Renders in-flow (a resizable column) — the
|
|
6
6
|
* offcanvas overlay / mobile sheet is deferred. Content is wrapped in a slot
|
|
7
7
|
* that tracks the `--ds-layout-subnav-offset` var.
|
|
8
8
|
*/
|
|
9
|
-
export declare const RightPanel: React.FC<
|
|
9
|
+
export declare const RightPanel: React.FC<RightPanelProps>;
|
|
@@ -1 +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:"
|
|
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";import{RightPanelContainer}from"./RightPanelContainer";let StyledRightPanelSlot=styled("div",{target:"e1jmp3pg0",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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvUmlnaHRQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTTElERV9WQVIsIFNsb3QsIFNVQk5BVl9PRkZTRVRfVkFSIH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlRGVjbGFyZVBhbmVsLCB1c2VMYXlvdXRQb3J0YWwsIHVzZVZpc2libGVDaGFuZ2UgfSBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0IH0gZnJvbSBcIi4vdXNlTGF5b3V0XCI7XG5pbXBvcnQgeyBSaWdodFBhbmVsQ29udGFpbmVyIH0gZnJvbSBcIi4vUmlnaHRQYW5lbENvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBSaWdodFBhbmVsUHJvcHMgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLy8gQnVpbHQtaW4gc2xvdDogb2Zmc2V0cyB0aGUgcGFuZWwgY29udGVudCBieSB0aGUgc3VibmF2LW9mZnNldCB2YXIgKDAgd2hlblxuLy8gdW5zZXQpLCB0cmFuc2l0aW9uZWQgd2l0aCB0aGUgc2hhcmVkIHNsaWRlIHZhcnMg4oCUIHNvIHRoZSByaWdodCBwYW5lbCB0cmFja3MgYVxuLy8gc3RpY2t5IHN1Ym5hdiB3aXRoIG5vIHdpcmluZyBvbiB0aGUgY29uc3VtZXIncyBzaWRlLlxuY29uc3QgU3R5bGVkUmlnaHRQYW5lbFNsb3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgbGVmdDogMCxcbiAgcmlnaHQ6IDAsXG4gIGJvdHRvbTogMCxcbiAgdG9wOiBgdmFyKCR7U1VCTkFWX09GRlNFVF9WQVJ9LCAwcHgpYCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHRyYW5zaXRpb246IGB0b3AgdmFyKCR7U0xJREVfVkFSLmR1cmF0aW9ufSkgdmFyKCR7U0xJREVfVkFSLmVhc2luZ30pYCxcbn0pO1xuXG4vKipcbiAqIFJpZ2h0IHNpZGUgcGFuZWwuIERlY2xhcmVzIHRoZSBgcmlnaHRQYW5lbGAgc2xvdCBhbmQgcG9ydGFscyBpdHMgY29udGVudCBpbnRvXG4gKiB0aGUgR3JvdXAncyBob3N0IHdoaWxlIHZpc2libGUuIFJlbmRlcnMgaW4tZmxvdyAoYSByZXNpemFibGUgY29sdW1uKSDigJQgdGhlXG4gKiBvZmZjYW52YXMgb3ZlcmxheSAvIG1vYmlsZSBzaGVldCBpcyBkZWZlcnJlZC4gQ29udGVudCBpcyB3cmFwcGVkIGluIGEgc2xvdFxuICogdGhhdCB0cmFja3MgdGhlIGAtLWRzLWxheW91dC1zdWJuYXYtb2Zmc2V0YCB2YXIuXG4gKi9cbmV4cG9ydCBjb25zdCBSaWdodFBhbmVsOiBSZWFjdC5GQzxSaWdodFBhbmVsUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGRlZmF1bHRTaXplID0gMzc4LFxuICBtaW5TaXplID0gMzI4LFxuICBtYXhTaXplID0gXCIzMCVcIixcbiAgY29sbGFwc2libGUgPSBmYWxzZSxcbiAgb25WaXNpYmxlQ2hhbmdlLFxuICB0aXRsZSxcbiAgb25DbG9zZSxcbiAgc2xvdFByb3BzLFxuICBzY3JvbGxDb250YWluZXJSZWYsXG4gIG9uU2Nyb2xsLFxufSkgPT4ge1xuICBjb25zdCB7IGlzVmlzaWJsZSwgaGlkZSB9ID0gdXNlTGF5b3V0KClbU2xvdC5yaWdodFBhbmVsXTtcbiAgdXNlRGVjbGFyZVBhbmVsKFNsb3QucmlnaHRQYW5lbCwge1xuICAgIGRlZmF1bHRTaXplLFxuICAgIG1pblNpemUsXG4gICAgbWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZSxcbiAgfSk7XG4gIHVzZVZpc2libGVDaGFuZ2UoaXNWaXNpYmxlLCBvblZpc2libGVDaGFuZ2UpO1xuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpOiB2b2lkID0+IHtcbiAgICBoaWRlKCk7XG4gICAgb25DbG9zZT8uKCk7XG4gIH07XG4gIHJldHVybiB1c2VMYXlvdXRQb3J0YWwoXG4gICAgU2xvdC5yaWdodFBhbmVsLFxuICAgIGlzVmlzaWJsZSA/IChcbiAgICAgIDxTdHlsZWRSaWdodFBhbmVsU2xvdD5cbiAgICAgICAgPFJpZ2h0UGFuZWxDb250YWluZXJcbiAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgc2xvdFByb3BzPXtzbG90UHJvcHN9XG4gICAgICAgICAgc2Nyb2xsQ29udGFpbmVyUmVmPXtzY3JvbGxDb250YWluZXJSZWZ9XG4gICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JpZ2h0UGFuZWxDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFJpZ2h0UGFuZWxTbG90PlxuICAgICkgOiBudWxsXG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVc2QiJ9 */");export const RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,onVisibleChange,title,onClose,slotProps,scrollContainerRef,onScroll})=>{let{isVisible,hide}=useLayout()[Slot.rightPanel];return useDeclarePanel(Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible}),useVisibleChange(isVisible,onVisibleChange),useLayoutPortal(Slot.rightPanel,isVisible?React.createElement(StyledRightPanelSlot,null,React.createElement(RightPanelContainer,{title:title,onClose:()=>{hide(),onClose?.()},slotProps:slotProps,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children)):null)};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { RightPanelContainerProps } from "./-types";
|
|
3
|
+
export declare function RightPanelContainer({ title, children, onClose, slotProps, scrollContainerRef, onScroll, "data-e2e-test-id": dataE2eTestId, }: RightPanelContainerProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{Sandwich}from"../Internal/Sandwich/Sandwich";import{Icon}from"../Icon/Icon";import{H5}from"../Typography/Header/Header";import{Box}from"../Box/Box";import{Inline}from"../Inline/Inline";import{PictogramButton}from"../PictogramButton/PictogramButton";import{Divider}from"../Divider/Divider";import{Container}from"../Container/Container";let CustomContainer=styled(Container,{target:"e5j03vd0",label:"CustomContainer"})({height:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWxDb250YWluZXIudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9MYXlvdXQvUmlnaHRQYW5lbENvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTYW5kd2ljaCB9IGZyb20gXCIuLi9JbnRlcm5hbC9TYW5kd2ljaC9TYW5kd2ljaFwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEg1IH0gZnJvbSBcIi4uL1R5cG9ncmFwaHkvSGVhZGVyL0hlYWRlclwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgRGl2aWRlciB9IGZyb20gXCIuLi9EaXZpZGVyL0RpdmlkZXJcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXIvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IFJpZ2h0UGFuZWxDb250YWluZXJQcm9wcyB9IGZyb20gXCIuLy10eXBlc1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKSh7XG4gIGhlaWdodDogXCIxMDAlXCIsXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIFJpZ2h0UGFuZWxDb250YWluZXIoe1xuICB0aXRsZSxcbiAgY2hpbGRyZW4sXG4gIG9uQ2xvc2UsXG4gIHNsb3RQcm9wcyxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBSaWdodFBhbmVsQ29udGFpbmVyUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCB7IGlzVmlzaWJsZTogaXNUaXRsZVZpc2libGUgPSB0cnVlIH0gPSB0aXRsZTtcbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICBlbGV2YXRpb249ezB9XG4gICAgICBzcXVhcmVDb3JuZXJzXG4gICAgICBkYXRhLWRzLWlkPVwiUmlnaHRQYW5lbENvbnRhaW5lclwiXG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgID5cbiAgICAgIDxTYW5kd2ljaCByb2xlPVwicmVnaW9uXCIgYXJpYS1sYWJlbD17dGl0bGUubGFiZWx9PlxuICAgICAgICA8U2FuZHdpY2guSGVhZGVyIHNob3dTZXBhcmF0b3I9XCJhbHdheXNcIj5cbiAgICAgICAgICA8Qm94IHNwYWNlPVwic1wiIHZTcGFjZT1cInhzXCI+XG4gICAgICAgICAgICA8SW5saW5lXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJzcGFjZUJldHdlZW5cIlxuICAgICAgICAgICAgICB2QWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIG5vV3JhcFxuICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIiBub1dyYXA+XG4gICAgICAgICAgICAgICAge3Nsb3RQcm9wcy5oZWFkZXI/LmxlZnRTbG90fVxuICAgICAgICAgICAgICAgIHtpc1RpdGxlVmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiIG5vV3JhcD5cbiAgICAgICAgICAgICAgICAgICAge3RpdGxlLmljb24gJiYgPEljb24gey4uLnRpdGxlLmljb259IC8+fVxuICAgICAgICAgICAgICAgICAgICA8SDU+e3RpdGxlLmxhYmVsfTwvSDU+XG4gICAgICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInh4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCIgbm9XcmFwPlxuICAgICAgICAgICAgICAgIHtzbG90UHJvcHMuaGVhZGVyPy5yaWdodFNsb3R9XG4gICAgICAgICAgICAgICAgey8qIGRpdmlkZXIgc2VwYXJhdGluZyBjb25zdW1lciBoZWFkZXIgYWN0aW9ucyBmcm9tIHRoZSBjbG9zZSBidXR0b24gKi99XG4gICAgICAgICAgICAgICAge3Nsb3RQcm9wcy5oZWFkZXI/LnJpZ2h0U2xvdCAmJiAoXG4gICAgICAgICAgICAgICAgICA8RGl2aWRlciBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxQaWN0b2dyYW1CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtzbG90UHJvcHMuY2xvc2VCdXR0b25bXCJhcmlhLWxhYmVsXCJdfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbG9zZT8uKCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgPC9TYW5kd2ljaC5IZWFkZXI+XG4gICAgICAgIDxTYW5kd2ljaC5Cb2R5IHNjcm9sbFJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfSBvblNjcm9sbD17b25TY3JvbGx9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TYW5kd2ljaC5Cb2R5PlxuICAgICAgICB7c2xvdFByb3BzLmZvb3RlciAmJiAoXG4gICAgICAgICAgPFNhbmR3aWNoLkZvb3RlciBzaG93U2VwYXJhdG9yPVwibmV2ZXJcIj5cbiAgICAgICAgICAgIHtzbG90UHJvcHMuZm9vdGVyfVxuICAgICAgICAgIDwvU2FuZHdpY2guRm9vdGVyPlxuICAgICAgICApfVxuICAgICAgPC9TYW5kd2ljaD5cbiAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZd0IifQ== */");export function RightPanelContainer({title,children,onClose,slotProps,scrollContainerRef,onScroll,"data-e2e-test-id":dataE2eTestId}){let{isVisible:isTitleVisible=!0}=title;return React.createElement(CustomContainer,{elevation:0,squareCorners:!0,"data-ds-id":"RightPanelContainer","data-e2e-test-id":dataE2eTestId},React.createElement(Sandwich,{role:"region","aria-label":title.label},React.createElement(Sandwich.Header,{showSeparator:"always"},React.createElement(Box,{space:"s",vSpace:"xs"},React.createElement(Inline,{alignItems:"spaceBetween",vAlignItems:"center",noWrap:!0,fullWidth:!0},React.createElement(Inline,{space:"xs",vAlignItems:"center",noWrap:!0},slotProps.header?.leftSlot,isTitleVisible&&React.createElement(Inline,{space:"xs",vAlignItems:"center",noWrap:!0},title.icon&&React.createElement(Icon,title.icon),React.createElement(H5,null,title.label))),React.createElement(Inline,{space:"xxs",vAlignItems:"center",noWrap:!0},slotProps.header?.rightSlot,slotProps.header?.rightSlot&&React.createElement(Divider,{orientation:"vertical"}),React.createElement(PictogramButton,{icon:"x",size:"s",variant:"tertiary","aria-label":slotProps.closeButton["aria-label"],onClick:()=>onClose?.()}))))),React.createElement(Sandwich.Body,{scrollRef:scrollContainerRef,onScroll:onScroll},children),slotProps.footer&&React.createElement(Sandwich.Footer,{showSeparator:"never"},slotProps.footer)))}
|
|
@@ -3,6 +3,7 @@ export { Layout } from "./Layout";
|
|
|
3
3
|
export { LayoutProvider } from "./LayoutProvider";
|
|
4
4
|
export { useLayoutVar } from "./LayoutVars";
|
|
5
5
|
export { useLayout } from "./useLayout";
|
|
6
|
+
export { RightPanelContainer } from "./RightPanelContainer";
|
|
6
7
|
export { createLayoutStore } from "./store";
|
|
7
8
|
export { createInitialState, layoutReducer } from "./reducer";
|
|
8
9
|
export * from "./-types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{SLIDE_VAR,SUBNAV_OFFSET_VAR}from"./-constants";export{Layout}from"./Layout";export{LayoutProvider}from"./LayoutProvider";export{useLayoutVar}from"./LayoutVars";export{useLayout}from"./useLayout";export{createLayoutStore}from"./store";export{createInitialState,layoutReducer}from"./reducer";export*from"./-types";
|
|
1
|
+
export{SLIDE_VAR,SUBNAV_OFFSET_VAR}from"./-constants";export{Layout}from"./Layout";export{LayoutProvider}from"./LayoutProvider";export{useLayoutVar}from"./LayoutVars";export{useLayout}from"./useLayout";export{RightPanelContainer}from"./RightPanelContainer";export{createLayoutStore}from"./store";export{createInitialState,layoutReducer}from"./reducer";export*from"./-types";
|