@starci/grammar 0.16.3 → 0.17.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.
Files changed (47) hide show
  1. package/README.md +42 -2
  2. package/dist/.build-stamp.json +4 -4
  3. package/dist/common/registry.d.ts +2 -1
  4. package/dist/common/registry.d.ts.map +1 -1
  5. package/dist/common/registry.js +2 -2
  6. package/dist/common/registry.js.map +1 -1
  7. package/dist/common/renderers.d.ts +3 -2
  8. package/dist/common/renderers.d.ts.map +1 -1
  9. package/dist/common/renderers.js +1 -0
  10. package/dist/common/renderers.js.map +1 -1
  11. package/dist/common/styles.css +154 -4
  12. package/dist/core/branch/ListBox/index.d.ts.map +1 -1
  13. package/dist/core/branch/ListBox/index.js +4 -2
  14. package/dist/core/branch/ListBox/index.js.map +1 -1
  15. package/dist/core/branch/Tabs/index.d.ts.map +1 -1
  16. package/dist/core/branch/Tabs/index.js +3 -1
  17. package/dist/core/branch/Tabs/index.js.map +1 -1
  18. package/dist/core/composite/FillViewport/index.d.ts +2 -6
  19. package/dist/core/composite/FillViewport/index.d.ts.map +1 -1
  20. package/dist/core/composite/FillViewport/index.js +3 -41
  21. package/dist/core/composite/FillViewport/index.js.map +1 -1
  22. package/dist/core/composite/FillViewport/useFillMeasure.d.ts +13 -0
  23. package/dist/core/composite/FillViewport/useFillMeasure.d.ts.map +1 -0
  24. package/dist/core/composite/FillViewport/useFillMeasure.js +51 -0
  25. package/dist/core/composite/FillViewport/useFillMeasure.js.map +1 -0
  26. package/dist/core/composition/Page/index.d.ts +19 -4
  27. package/dist/core/composition/Page/index.d.ts.map +1 -1
  28. package/dist/core/composition/Page/index.js +10 -2
  29. package/dist/core/composition/Page/index.js.map +1 -1
  30. package/dist/core/composition/PaneGrid/index.d.ts +12 -4
  31. package/dist/core/composition/PaneGrid/index.d.ts.map +1 -1
  32. package/dist/core/composition/PaneGrid/index.js +62 -11
  33. package/dist/core/composition/PaneGrid/index.js.map +1 -1
  34. package/dist/core/composition/PaneGrid/layout.d.ts +2 -0
  35. package/dist/core/composition/PaneGrid/layout.d.ts.map +1 -1
  36. package/dist/core/composition/PaneGrid/layout.js +5 -3
  37. package/dist/core/composition/PaneGrid/layout.js.map +1 -1
  38. package/dist/core/composition/PaneSection/index.d.ts +28 -0
  39. package/dist/core/composition/PaneSection/index.d.ts.map +1 -0
  40. package/dist/core/composition/PaneSection/index.js +31 -0
  41. package/dist/core/composition/PaneSection/index.js.map +1 -0
  42. package/dist/core/paneContext.d.ts +12 -0
  43. package/dist/core/paneContext.d.ts.map +1 -0
  44. package/dist/core/paneContext.js +6 -0
  45. package/dist/core/paneContext.js.map +1 -0
  46. package/dist/core/styles.css +1 -1
  47. package/package.json +1 -1
@@ -1,22 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useLayoutEffect, useRef } from "react";
4
- /**
5
- * Height of the Grammar chrome pinned to the bottom edge right now (WorkspaceShell's compact navigation, BottomNav,
6
- * PinnedActionBar mark themselves `data-grammar-bottom-chrome`): the tallest visible fixed or sticky one in the lower half.
7
- */
8
- export const bottomChromeHeight = () => {
9
- let tallest = 0;
10
- for (const node of Array.from(document.querySelectorAll('[data-grammar-bottom-chrome="true"]'))) {
11
- const rect = node.getBoundingClientRect();
12
- const position = getComputedStyle(node).position;
13
- if (rect.height > 0 && (position === "fixed" || position === "sticky") && rect.top >= window.innerHeight / 2)
14
- tallest = Math.max(tallest, rect.height);
15
- }
16
- return Math.round(tallest);
17
- };
18
- /** Layout effect on the client, plain effect during server rendering (no warning, nothing to measure there). */
19
- const useIsoLayoutEffect = typeof window === "undefined" ? () => { } : useLayoutEffect;
3
+ import { useFillMeasure } from "./useFillMeasure.js";
4
+ export { bottomChromeHeight } from "./useFillMeasure.js";
20
5
  /**
21
6
  * Makes its child fill the viewport height left below whatever chrome sits above it (top bar, page header, tabs), and
22
7
  * keeps that true when the chrome or the window changes. It measures its own top edge in document coordinates into
@@ -26,30 +11,7 @@ const useIsoLayoutEffect = typeof window === "undefined" ? () => { } : useLayout
26
11
  * PaneGrid).
27
12
  */
28
13
  export const FillViewport = ({ children, minHeight = "md", bottomInset = "page", label }) => {
29
- const ref = useRef(null);
30
- useIsoLayoutEffect(() => {
31
- const node = ref.current;
32
- if (node === null)
33
- return undefined;
34
- let frame = 0;
35
- const measure = () => {
36
- cancelAnimationFrame(frame);
37
- frame = requestAnimationFrame(() => {
38
- const top = node.getBoundingClientRect().top + window.scrollY;
39
- node.style.setProperty("--starci-core-fill-top", `${Math.max(0, Math.round(top))}px`);
40
- node.style.setProperty("--starci-core-fill-bottom", `${bottomChromeHeight()}px`);
41
- });
42
- };
43
- measure();
44
- window.addEventListener("resize", measure);
45
- const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
46
- observer?.observe(document.body);
47
- return () => {
48
- cancelAnimationFrame(frame);
49
- window.removeEventListener("resize", measure);
50
- observer?.disconnect();
51
- };
52
- }, []);
14
+ const ref = useFillMeasure();
53
15
  return (_jsx("div", { ref: ref, className: "starci-core-fill-viewport", "data-component": "FillViewport", "data-tier": "composite", "data-contract": "LAYOUT-1 OVERFLOW-1", "data-grammar-fill-min": minHeight, "data-grammar-fill-inset": bottomInset, ...(label === undefined ? {} : { role: "region", "aria-label": label }), children: children }));
54
16
  };
55
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/FillViewport/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/FillViewport/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAiBxD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,KAAK,EAAqB,EAAE,EAAE;IAC3G,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAE5B,OAAO,CACH,cACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,2BAA2B,oBACtB,cAAc,eACnB,WAAW,mBACP,qBAAqB,2BACZ,SAAS,6BACP,WAAW,KAChC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,YAEvE,QAAQ,GACP,CACT,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { type RefObject } from "react";
2
+ /**
3
+ * Height of the Grammar chrome pinned to the bottom edge right now (WorkspaceShell's compact navigation, BottomNav,
4
+ * PinnedActionBar mark themselves `data-grammar-bottom-chrome`): the tallest visible fixed or sticky one in the lower half.
5
+ */
6
+ export declare const bottomChromeHeight: () => number;
7
+ /**
8
+ * The one measurer of a fill box, shared by FillViewport and Page `chrome="panes"`: it measures the returned ref's top
9
+ * edge in document coordinates into `--starci-core-fill-top` and any Grammar bottom chrome into
10
+ * `--starci-core-fill-bottom`, and re-measures on window resize and body size changes. CSS does the rest.
11
+ */
12
+ export declare const useFillMeasure: () => RefObject<HTMLDivElement | null>;
13
+ //# sourceMappingURL=useFillMeasure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFillMeasure.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/FillViewport/useFillMeasure.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE/D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAQrC,CAAA;AAKD;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAO,SAAS,CAAC,cAAc,GAAG,IAAI,CAyBhE,CAAA"}
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ import { useLayoutEffect, useRef } from "react";
3
+ /**
4
+ * Height of the Grammar chrome pinned to the bottom edge right now (WorkspaceShell's compact navigation, BottomNav,
5
+ * PinnedActionBar mark themselves `data-grammar-bottom-chrome`): the tallest visible fixed or sticky one in the lower half.
6
+ */
7
+ export const bottomChromeHeight = () => {
8
+ let tallest = 0;
9
+ for (const node of Array.from(document.querySelectorAll('[data-grammar-bottom-chrome="true"]'))) {
10
+ const rect = node.getBoundingClientRect();
11
+ const position = getComputedStyle(node).position;
12
+ if (rect.height > 0 && (position === "fixed" || position === "sticky") && rect.top >= window.innerHeight / 2)
13
+ tallest = Math.max(tallest, rect.height);
14
+ }
15
+ return Math.round(tallest);
16
+ };
17
+ /** Layout effect on the client, plain effect during server rendering (no warning, nothing to measure there). */
18
+ const useIsoLayoutEffect = typeof window === "undefined" ? () => { } : useLayoutEffect;
19
+ /**
20
+ * The one measurer of a fill box, shared by FillViewport and Page `chrome="panes"`: it measures the returned ref's top
21
+ * edge in document coordinates into `--starci-core-fill-top` and any Grammar bottom chrome into
22
+ * `--starci-core-fill-bottom`, and re-measures on window resize and body size changes. CSS does the rest.
23
+ */
24
+ export const useFillMeasure = () => {
25
+ const ref = useRef(null);
26
+ useIsoLayoutEffect(() => {
27
+ const node = ref.current;
28
+ if (node === null)
29
+ return undefined;
30
+ let frame = 0;
31
+ const measure = () => {
32
+ cancelAnimationFrame(frame);
33
+ frame = requestAnimationFrame(() => {
34
+ const top = node.getBoundingClientRect().top + window.scrollY;
35
+ node.style.setProperty("--starci-core-fill-top", `${Math.max(0, Math.round(top))}px`);
36
+ node.style.setProperty("--starci-core-fill-bottom", `${bottomChromeHeight()}px`);
37
+ });
38
+ };
39
+ measure();
40
+ window.addEventListener("resize", measure);
41
+ const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
42
+ observer?.observe(document.body);
43
+ return () => {
44
+ cancelAnimationFrame(frame);
45
+ window.removeEventListener("resize", measure);
46
+ observer?.disconnect();
47
+ };
48
+ }, []);
49
+ return ref;
50
+ };
51
+ //# sourceMappingURL=useFillMeasure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFillMeasure.js","sourceRoot":"","sources":["../../../../src/core/composite/FillViewport/useFillMeasure.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAA;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAW,EAAE;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAc,qCAAqC,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAA;QAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1J,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED,gHAAgH;AAChH,MAAM,kBAAkB,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAA;AAErF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqC,EAAE;IACjE,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IACxC,kBAAkB,CAAC,GAAG,EAAE;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAA;QACxB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAA;QACnC,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAC3B,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAA;gBAC7D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;gBACrF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAA;YACpF,CAAC,CAAC,CAAA;QACN,CAAC,CAAA;QACD,OAAO,EAAE,CAAA;QACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,OAAO,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3F,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChC,OAAO,GAAG,EAAE;YACR,oBAAoB,CAAC,KAAK,CAAC,CAAA;YAC3B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC7C,QAAQ,EAAE,UAAU,EAAE,CAAA;QAC1B,CAAC,CAAA;IACL,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,GAAG,CAAA;AACd,CAAC,CAAA"}
@@ -1,5 +1,7 @@
1
- import type { ReactNode } from "react";
1
+ import { type ReactElement, type ReactNode } from "react";
2
+ import type { FillViewportMinHeight } from "../../composite/FillViewport/index.js";
2
3
  import { type PageContainerProps } from "../../primitive/PageContainer/index.js";
4
+ import { type PaneGridProps } from "../PaneGrid/index.js";
3
5
  import { type PageHeaderBreadcrumbs, type PageHeaderProps } from "../PageHeader/index.js";
4
6
  /** The page header Page draws: every `PageHeader` prop except the two Page owns, `measure` and `isSkeleton`. */
5
7
  export type PageHeaderContent = Omit<PageHeaderProps, "measure" | "isSkeleton" | "className">;
@@ -17,7 +19,7 @@ export type PageTrailContent = {
17
19
  * at the gutter. `bleed`: an app surface (a chat, a split editor) that fills the region edge to edge: no inline gutter, no
18
20
  * block padding, no clip, the body grows to the region's height, so a `FillViewport` in it keeps its own bottom inset.
19
21
  */
20
- export type PageChrome = "standard" | "bleed";
22
+ export type PageChrome = "standard" | "bleed" | "panes";
21
23
  type PageCommonProps = {
22
24
  /** The page body. In `standard` it sits inside the page measure and gutter; in `bleed` it fills the region. */
23
25
  readonly children: ReactNode;
@@ -43,7 +45,20 @@ export type PageBleedProps = PageCommonProps & {
43
45
  readonly chrome: "bleed";
44
46
  readonly header?: PageHeaderContent | PageTrailContent;
45
47
  };
46
- export type PageProps = PageStandardProps | PageBleedProps;
48
+ /**
49
+ * A tabbed app page: the header band (with or without `tabs`) or the trail, then exactly one PaneGrid attached flush to
50
+ * the band's separator, reaching both content edges and the viewport bottom (less any Grammar bottom chrome): no gap, no
51
+ * block padding, no card, no radius. Page measures the fill box itself.
52
+ */
53
+ export type PagePanesProps = PageCommonProps & {
54
+ readonly chrome: "panes";
55
+ readonly header?: PageHeaderContent | PageTrailContent;
56
+ /** Floor height of the grid on a short window, as `FillViewport`'s (default `md`). */
57
+ readonly minHeight?: FillViewportMinHeight;
58
+ /** Exactly one PaneGrid. */
59
+ readonly children: ReactElement<PaneGridProps>;
60
+ };
61
+ export type PageProps = PageStandardProps | PageBleedProps | PagePanesProps;
47
62
  /**
48
63
  * One route page: the header band across the region, then the body in the page measure and gutter, one region step
49
64
  * below it. Page is the single owner of the page inset and the page's vertical rhythm; layout frames (WorkspaceShell,
@@ -52,6 +67,6 @@ export type PageProps = PageStandardProps | PageBleedProps;
52
67
  * beside its Page (lint `route-page-is-one-page`). `chrome="bleed"` is the app surface: the body fills the region edge to
53
68
  * edge, under the trail alone or under a band.
54
69
  */
55
- export declare const Page: ({ chrome, header, children, measure, isSkeleton, className }: PageProps) => import("react").JSX.Element;
70
+ export declare const Page: (props: PageProps) => import("react").JSX.Element;
56
71
  export {};
57
72
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/Page/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC/F,OAAO,EAAc,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAErG,gHAAgH;AAChH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC,CAAA;AAE7F;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;CAAE,GAAG;IAC7E,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK;CAC7E,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,CAAA;AAE7C,KAAK,eAAe,GAAG;IACnB,+GAA+G;IAC/G,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,wGAAwG;IACxG,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAChD,4HAA4H;IAC5H,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CACtC,CAAA;AAED,iHAAiH;AACjH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,cAAc,CAAA;AAM1D;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,8DAA+F,SAAS,gCA8B5H,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/Page/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAClF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC/F,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAc,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAErG,gHAAgH;AAChH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC,CAAA;AAE7F;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;CAAE,GAAG;IAC7E,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK;CAC7E,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAA;AAEvD,KAAK,eAAe,GAAG;IACnB,+GAA+G;IAC/G,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,wGAAwG;IACxG,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAChD,4HAA4H;IAC5H,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CACtC,CAAA;AAED,iHAAiH;AACjH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAAA;CACzD,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAAA;IACtD,sFAAsF;IACtF,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;IAC1C,4BAA4B;IAC5B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,cAAc,GAAG,cAAc,CAAA;AAM3E;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCA4CpC,CAAA"}
@@ -1,7 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from "@heroui/react";
3
+ import { isValidElement } from "react";
3
4
  import { Breadcrumbs } from "../../composite/Breadcrumbs/index.js";
5
+ import { useFillMeasure } from "../../composite/FillViewport/useFillMeasure.js";
4
6
  import { PageContainer } from "../../primitive/PageContainer/index.js";
7
+ import { PaneGrid } from "../PaneGrid/index.js";
5
8
  import { PageHeader } from "../PageHeader/index.js";
6
9
  /** True when the header is a band: every standard header is, and a bleed header is when it carries the page heading. */
7
10
  const isBand = (chrome, header) => chrome === "standard" || header.title !== undefined;
@@ -13,9 +16,14 @@ const isBand = (chrome, header) => chrome === "standard" || header.title !== und
13
16
  * beside its Page (lint `route-page-is-one-page`). `chrome="bleed"` is the app surface: the body fills the region edge to
14
17
  * edge, under the trail alone or under a band.
15
18
  */
16
- export const Page = ({ chrome = "standard", header, children, measure = "product", isSkeleton = false, className }) => {
19
+ export const Page = (props) => {
20
+ const { chrome = "standard", header, children, measure = "product", isSkeleton = false, className } = props;
21
+ const fillRef = useFillMeasure();
22
+ if (props.chrome === "panes" && !(isValidElement(children) && children.type === PaneGrid)) {
23
+ throw new Error("PAGE_PANES_CHILD_NOT_PANE_GRID");
24
+ }
17
25
  const band = header !== undefined && isBand(chrome, header) ? header : undefined;
18
26
  const trail = header !== undefined && !isBand(chrome, header) ? header.breadcrumbs : undefined;
19
- return (_jsxs("div", { className: cn("starci-core-page", className), "data-component": "Page", "data-tier": "composition", "data-contract": chrome === "bleed" ? "LAYOUT-1" : "MARGIN-5 MEASURE-1", "data-grammar-page-chrome": chrome, "data-grammar-page-header": band === undefined ? "false" : "true", "data-grammar-page-trail": trail === undefined ? "false" : "true", children: [band === undefined ? null : _jsx(PageHeader, { ...band, measure: measure, isSkeleton: isSkeleton }), trail === undefined ? null : (_jsx("div", { className: "starci-core-page-trail", "data-grammar-page-trail-row": "true", children: _jsx(Breadcrumbs, { label: trail.label, items: trail.items, ...(trail.onAction === undefined ? {} : { onAction: trail.onAction }) }) })), chrome === "bleed" ? (_jsx("div", { className: "starci-core-page-body", "data-grammar-page-body": "true", children: children })) : (_jsx(PageContainer, { className: "starci-core-page-body", "data-grammar-page-body": "true", measure: measure, children: children }))] }));
27
+ return (_jsxs("div", { className: cn("starci-core-page", className), "data-component": "Page", "data-tier": "composition", "data-contract": chrome === "panes" ? "LAYOUT-1 BOUNDARY-1 GAP-0" : chrome === "bleed" ? "LAYOUT-1" : "MARGIN-5 MEASURE-1", "data-grammar-page-chrome": chrome, "data-grammar-page-header": band === undefined ? "false" : "true", "data-grammar-page-trail": trail === undefined ? "false" : "true", children: [band === undefined ? null : _jsx(PageHeader, { ...band, measure: measure, isSkeleton: isSkeleton }), trail === undefined ? null : (_jsx("div", { className: "starci-core-page-trail", "data-grammar-page-trail-row": "true", children: _jsx(Breadcrumbs, { label: trail.label, items: trail.items, ...(trail.onAction === undefined ? {} : { onAction: trail.onAction }) }) })), chrome === "panes" ? (_jsx("div", { ref: fillRef, className: "starci-core-page-body starci-core-page-panes-fill", "data-grammar-page-body": "true", "data-grammar-fill-min": props.chrome === "panes" ? props.minHeight ?? "md" : "md", children: children })) : chrome === "bleed" ? (_jsx("div", { className: "starci-core-page-body", "data-grammar-page-body": "true", children: children })) : (_jsx(PageContainer, { className: "starci-core-page-body", "data-grammar-page-body": "true", measure: measure, children: children }))] }));
20
28
  };
21
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/Page/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,OAAO,EAAE,aAAa,EAA2B,MAAM,wCAAwC,CAAA;AAC/F,OAAO,EAAE,UAAU,EAAoD,MAAM,wBAAwB,CAAA;AAkDrG,wHAAwH;AACxH,MAAM,MAAM,GAAG,CAAC,MAAkB,EAAE,MAA4C,EAA+B,EAAE,CAC7G,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAA;AAEvD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,UAAU,GAAG,KAAK,EAAE,SAAS,EAAa,EAAE,EAAE;IAC7H,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAChF,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9F,OAAO,CACH,eACI,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,oBAC7B,MAAM,eACX,aAAa,mBACR,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,8BAC3C,MAAM,8BACN,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,6BACtC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,aAE9D,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,UAAU,OAAK,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAI,EAC9F,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,cAAK,SAAS,EAAC,wBAAwB,iCAA6B,MAAM,YACtE,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAI,GAC7H,CACT,EACA,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAClB,cAAK,SAAS,EAAC,uBAAuB,4BAAwB,MAAM,YAC/D,QAAQ,GACP,CACT,CAAC,CAAC,CAAC,CACA,KAAC,aAAa,IAAC,SAAS,EAAC,uBAAuB,4BAAwB,MAAM,EAAC,OAAO,EAAE,OAAO,YAC1F,QAAQ,GACG,CACnB,IACC,CACT,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/Page/index.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,19 @@
1
1
  import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ import { type PaneInset } from "../../paneContext.js";
2
3
  import { type PaneResponsive, type PaneTrack } from "./layout.js";
4
+ export type { PaneInset } from "../../paneContext.js";
3
5
  export type { PaneBreakpoint, PaneByBreakpoint, PaneResponsive, PaneTrack } from "./layout.js";
4
6
  type PaneBaseProps = {
5
7
  /** The name of this pane in the grid's `areas`. */
6
8
  readonly area: string;
7
9
  /** `true`: the pane stands on the grammar surface ground (flat: no border, radius or shadow). Default: transparent on the host canvas. */
8
10
  readonly surface?: boolean;
9
- readonly className?: string;
10
- /** Rendered as given: the pane imposes no padding, layout or structure on it. */
11
+ /**
12
+ * `content` (default): the pane publishes the Grammar pane inset to its PaneSections. `flush`: zero inset, for a
13
+ * nested PaneGrid or a full-bleed canvas.
14
+ */
15
+ readonly inset?: PaneInset;
16
+ /** PaneSection elements, or one PaneGrid. */
11
17
  readonly children?: ReactNode;
12
18
  };
13
19
  type PaneScrollProps = {
@@ -43,7 +49,9 @@ type PaneCollapseProps = {
43
49
  export type PaneProps = PaneBaseProps & PaneScrollProps & PaneCollapseProps;
44
50
  /**
45
51
  * One pane of a PaneGrid, placed by `area`. Panes sit flush; the divider on its start edges is drawn from the grid's
46
- * layout at each breakpoint, and the pane paints nothing else unless `surface` is set.
52
+ * layout at each breakpoint, and the pane paints nothing else unless `surface` is set. The pane owns its content inset:
53
+ * it never pads itself, it publishes the inline and block insets (and whether its block end is the grid's outer edge or
54
+ * a divider) to its PaneSections, so dividers and scrollbars stay full-bleed. A pane takes no app class.
47
55
  */
48
56
  export declare const Pane: (props: PaneProps) => import("react").JSX.Element;
49
57
  export type PaneGridProps = Omit<ComponentPropsWithoutRef<"section">, "aria-label" | "children"> & {
@@ -60,7 +68,7 @@ export type PaneGridProps = Omit<ComponentPropsWithoutRef<"section">, "aria-labe
60
68
  readonly columns?: PaneResponsive<ReadonlyArray<PaneTrack>>;
61
69
  /** Row tracks, top to bottom (also per breakpoint); a missing track is `fill`. */
62
70
  readonly rows?: PaneResponsive<ReadonlyArray<PaneTrack>>;
63
- /** `Pane` elements as direct children. */
71
+ /** `Pane` elements as direct children (`null`, `false` and arrays of Panes are legal; anything else throws in development). */
64
72
  readonly children?: ReactNode;
65
73
  };
66
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAMH,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EACjB,MAAM,OAAO,CAAA;AAGd,OAAO,EAQH,KAAK,cAAc,EACnB,KAAK,SAAS,EACjB,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAO9F,KAAK,aAAa,GAAG;IACjB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0IAA0I;IAC1I,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAChC,CAAA;AAED,KAAK,eAAe,GACd;IACE,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,GACC;IACE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;IACvB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAEL,KAAK,iBAAiB,GAChB;IACE,kJAAkJ;IAClJ,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD,GACC;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAChC,CAAA;AAEL,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCA0CpC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG;IAC/F,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACrD,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3D,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;IACxD,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAChC,CAAA;AAqBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,gCA6C5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EASH,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EACjB,MAAM,OAAO,CAAA;AAGd,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACzG,OAAO,EAQH,KAAK,cAAc,EACnB,KAAK,SAAS,EACjB,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAO9F,KAAK,aAAa,GAAG;IACjB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0IAA0I;IAC1I,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAChC,CAAA;AAED,KAAK,eAAe,GACd;IACE,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,GACC;IACE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;IACvB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAEL,KAAK,iBAAiB,GAChB;IACE,kJAAkJ;IAClJ,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD,GACC;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAChC,CAAA;AAEL,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAA;AAqB3E;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCAiDpC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG;IAC/F,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACrD,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3D,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;IACxD,+HAA+H;IAC/H,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAChC,CAAA;AA8BD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,gCAoD5C,CAAA"}
@@ -1,19 +1,40 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { cn, Drawer } from "@heroui/react";
4
- import { Children, createContext, isValidElement, useContext, useMemo, } from "react";
4
+ import { Children, createContext, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, } from "react";
5
5
  import { VerticalScrollRegion } from "../../composite/VerticalScrollRegion/index.js";
6
6
  import { SurfaceNesting } from "../../surfaceContext.js";
7
+ import { PaneContext, usePaneContext } from "../../paneContext.js";
7
8
  import { buildResponsivePaneGridModels, paneBreakpoints, parseAreas, trackToCss, } from "./layout.js";
8
9
  const PaneModelsContext = createContext(undefined);
10
+ const isDevelopment = process.env.NODE_ENV !== "production";
11
+ /** A pane's section registry: PaneSection and a nested PaneGrid register on mount; a content pane with none is reported in development. */
12
+ const usePaneRegistry = (area, inset, checks) => {
13
+ const count = useRef(0);
14
+ const register = useCallback(() => {
15
+ count.current += 1;
16
+ return () => {
17
+ count.current -= 1;
18
+ };
19
+ }, []);
20
+ useEffect(() => {
21
+ if (isDevelopment && checks && inset === "content" && count.current === 0) {
22
+ console.error(`PANE_WITHOUT_SECTION: ${area}`);
23
+ }
24
+ }, [area, inset, checks]);
25
+ return useMemo(() => ({ area, inset, register }), [area, inset, register]);
26
+ };
9
27
  /**
10
28
  * One pane of a PaneGrid, placed by `area`. Panes sit flush; the divider on its start edges is drawn from the grid's
11
- * layout at each breakpoint, and the pane paints nothing else unless `surface` is set.
29
+ * layout at each breakpoint, and the pane paints nothing else unless `surface` is set. The pane owns its content inset:
30
+ * it never pads itself, it publishes the inline and block insets (and whether its block end is the grid's outer edge or
31
+ * a divider) to its PaneSections, so dividers and scrollbars stay full-bleed. A pane takes no app class.
12
32
  */
13
33
  export const Pane = (props) => {
14
- const { area, surface = false, className, label, scroll = false, children } = props;
34
+ const { area, surface = false, inset = "content", label, scroll = false, children } = props;
15
35
  const models = useContext(PaneModelsContext);
16
- const shown = scroll ? "flex" : "block";
36
+ const pane = usePaneRegistry(area, inset, true);
37
+ const shown = "flex";
17
38
  const vars = {};
18
39
  let hasEdge = false;
19
40
  if (models !== undefined) {
@@ -23,21 +44,27 @@ export const Pane = (props) => {
23
44
  vars[`--starci-core-pane-i-${breakpoint}`] = edges?.inline === true ? "1px" : "0px";
24
45
  vars[`--starci-core-pane-b-${breakpoint}`] = edges?.block === true ? "1px" : "0px";
25
46
  hasEdge = hasEdge || edges?.inline === true || edges?.block === true;
47
+ vars[`--starci-core-pane-be-${breakpoint}`] = edges?.blockEnd === "divider"
48
+ ? "var(--grammar-pane-inset-block-end-divider, 0.75rem)"
49
+ : "var(--grammar-pane-inset-block-end-outer, 1rem)";
26
50
  }
27
51
  }
28
52
  const style = { gridArea: area, ...vars };
53
+ const stack = _jsx("div", { className: "starci-core-pane-stack", "data-grammar-pane-stack": "true", children: children });
29
54
  const body = scroll
30
- ? (_jsx(VerticalScrollRegion, { "aria-label": label, className: "starci-core-pane-scroll", "data-contract": "OVERFLOW-4 OVERFLOW-5", isScrollable: true, children: children }))
31
- : children;
32
- const content = surface ? _jsx(SurfaceNesting, { children: body }) : body;
55
+ ? (_jsx(VerticalScrollRegion, { "aria-label": label, className: "starci-core-pane-scroll", "data-contract": "OVERFLOW-4 OVERFLOW-5", isScrollable: true, children: stack }))
56
+ : stack;
57
+ const surfaced = surface ? _jsx(SurfaceNesting, { children: body }) : body;
58
+ const content = _jsx(PaneContext.Provider, { value: pane, children: surfaced });
33
59
  const shared = {
34
- className: cn("starci-core-pane", className),
60
+ className: "starci-core-pane",
35
61
  "data-component": "Pane",
36
62
  "data-tier": "composition",
37
63
  "data-grammar-pane-area": area,
38
64
  "data-grammar-pane-surface": surface ? "true" : undefined,
39
65
  "data-grammar-pane-scroll": scroll ? "true" : undefined,
40
- "data-contract": hasEdge ? "BOUNDARY-1" : undefined,
66
+ "data-grammar-pane-inset": inset,
67
+ "data-contract": [hasEdge ? "BOUNDARY-1" : undefined, inset === "content" ? "PADDING-4 PADDING-3" : "PADDING-0"].filter((part) => part !== undefined).join(" "),
41
68
  style,
42
69
  };
43
70
  return label === undefined || scroll
@@ -45,6 +72,17 @@ export const Pane = (props) => {
45
72
  : _jsx("section", { ...shared, "aria-label": label, children: content });
46
73
  };
47
74
  const isPane = (child) => isValidElement(child) && child.type === Pane;
75
+ /** A readable name for a child that is not a Pane, for `PANE_GRID_CHILD_NOT_PANE`. */
76
+ const childTypeName = (child) => {
77
+ if (!isValidElement(child))
78
+ return typeof child;
79
+ const { type } = child;
80
+ if (typeof type === "string")
81
+ return type;
82
+ if (typeof type === "function")
83
+ return type.name === "" ? "component" : type.name;
84
+ return typeof type === "symbol" ? "Fragment" : "component";
85
+ };
48
86
  /** Whether the area is in the first grid column wherever it appears: its drawer then opens from the start side. */
49
87
  const isStartColumn = (models, area) => paneBreakpoints.some((breakpoint) => parseAreas(models[breakpoint].areas).some((row) => row[0] === area));
50
88
  const gridVars = (models, hasTrigger) => {
@@ -71,23 +109,36 @@ const gridVars = (models, hasTrigger) => {
71
109
  */
72
110
  export const PaneGrid = (props) => {
73
111
  const { label, areas, columns, rows, className, children, ...sectionProps } = props;
74
- const panes = Children.toArray(children).filter(isPane);
112
+ const flat = Children.toArray(children);
113
+ const parent = usePaneContext();
114
+ useEffect(() => parent?.register(), [parent]);
115
+ if (isDevelopment) {
116
+ const stray = flat.find((child) => !isPane(child));
117
+ if (stray !== undefined)
118
+ throw new Error(`PANE_GRID_CHILD_NOT_PANE: ${childTypeName(stray)}`);
119
+ }
120
+ const panes = flat.filter(isPane);
75
121
  const drawers = panes.filter((pane) => pane.props.collapse === "drawer");
76
122
  const collapsedKey = drawers.map((pane) => pane.props.area).join(" ");
77
123
  const models = useMemo(() => buildResponsivePaneGridModels(areas, columns, rows, new Set(collapsedKey === "" ? [] : collapsedKey.split(" "))), [areas, columns, rows, collapsedKey]);
78
124
  const style = gridVars(models, (breakpoint) => drawers.some((pane) => models[breakpoint].edges[pane.props.area] === undefined));
79
125
  return (_jsxs("section", { ...sectionProps, "aria-label": label, className: cn("starci-core-pane-grid", className), "data-component": "PaneGrid", "data-tier": "composition", "data-grammar-pane-grid": "true", children: [drawers.length === 0 ? null : (_jsx("div", { className: "starci-core-pane-grid-triggers", "data-contract": "BOUNDARY-1 PADDING-4 PADDING-2", style: style, children: drawers.map((pane) => (_jsx(PaneDrawer, { pane: pane, placement: isStartColumn(models, pane.props.area) ? "left" : "right", models: models }, pane.props.area))) })), _jsx(PaneModelsContext.Provider, { value: models, children: _jsx("div", { className: "starci-core-pane-grid-tracks", "data-contract": "GAP-0", style: style, children: panes }) })] }));
80
126
  };
127
+ /** The drawer's pane context: the content inset with the block end on the outer edge; nothing to register against. */
128
+ const drawerRegister = () => () => { };
81
129
  const PaneDrawer = ({ pane, placement, models }) => {
82
130
  const { props } = pane;
131
+ const drawerPane = useMemo(() => ({ area: props.area, inset: "content", register: drawerRegister }), [props.area]);
83
132
  if (props.collapse !== "drawer")
84
133
  return null;
134
+ const drawerVars = { "--starci-core-pane-be": "var(--grammar-pane-inset-block-end-outer, 1rem)" };
135
+ const drawerHeaderStyle = { paddingInline: "var(--grammar-pane-inset-inline, 1rem)" };
85
136
  const triggerStyle = {};
86
137
  const vars = {};
87
138
  for (const breakpoint of paneBreakpoints) {
88
139
  vars[`--starci-core-pane-trigger-${breakpoint}`] = models[breakpoint].edges[props.area] === undefined ? "inline-flex" : "none";
89
140
  }
90
141
  Object.assign(triggerStyle, vars);
91
- return (_jsxs(Drawer, { isOpen: props.isOpen, onOpenChange: props.onOpenChange, children: [_jsx(Drawer.Trigger, { className: "starci-core-pane-trigger", style: triggerStyle, "data-contract": "PADDING-3 SURFACE-2 FONT-2 TONE-1", children: props.openLabel }), _jsx(Drawer.Backdrop, { children: _jsx(Drawer.Content, { className: "starci-core-pane-drawer-content", placement: placement, children: _jsx(Drawer.Dialog, { className: "starci-core-pane-drawer-dialog", "data-grammar-nesting": "surface", children: _jsxs(SurfaceNesting, { children: [_jsx(Drawer.Header, { children: _jsx(Drawer.Heading, { children: props.collapseLabel }) }), _jsx(Drawer.CloseTrigger, { "aria-label": props.closeLabel, className: "starci-core-pane-drawer-close", "data-contract": "SURFACE-2 TONE-1" }), _jsx(Drawer.Body, { className: "starci-core-pane-drawer-body", "data-contract": "OVERFLOW-2 PADDING-0", children: _jsx(VerticalScrollRegion, { "aria-label": props.collapseLabel, className: "starci-core-pane-drawer-scroll", "data-contract": "OVERFLOW-4 OVERFLOW-5", "data-grammar-pane-area": props.area, isScrollable: true, children: props.children }) })] }) }) }) })] }));
142
+ return (_jsxs(Drawer, { isOpen: props.isOpen, onOpenChange: props.onOpenChange, children: [_jsx(Drawer.Trigger, { className: "starci-core-pane-trigger", style: triggerStyle, "data-contract": "PADDING-3 SURFACE-2 FONT-2 TONE-1", children: props.openLabel }), _jsx(Drawer.Backdrop, { children: _jsx(Drawer.Content, { className: "starci-core-pane-drawer-content", placement: placement, children: _jsx(Drawer.Dialog, { className: "starci-core-pane-drawer-dialog", "data-grammar-nesting": "surface", children: _jsxs(SurfaceNesting, { children: [_jsx(Drawer.Header, { className: "starci-core-pane-drawer-header", style: drawerHeaderStyle, children: _jsx(Drawer.Heading, { children: props.collapseLabel }) }), _jsx(Drawer.CloseTrigger, { "aria-label": props.closeLabel, className: "starci-core-pane-drawer-close", "data-contract": "SURFACE-2 TONE-1" }), _jsx(Drawer.Body, { className: "starci-core-pane-drawer-body", "data-contract": "OVERFLOW-2 PADDING-0", children: _jsx(VerticalScrollRegion, { "aria-label": props.collapseLabel, className: "starci-core-pane-drawer-scroll", "data-contract": "OVERFLOW-4 OVERFLOW-5", "data-grammar-pane-area": props.area, "data-grammar-pane-inset": "content", isScrollable: true, style: drawerVars, children: _jsx(PaneContext.Provider, { value: drawerPane, children: _jsx("div", { className: "starci-core-pane-stack", "data-grammar-pane-stack": "true", children: props.children }) }) }) })] }) }) }) })] }));
92
143
  };
93
144
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/index.tsx"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export type PaneEdges = {
15
15
  readonly inline: boolean;
16
16
  /** A pane sits above this one: the horizontal divider is drawn on its block-start edge. */
17
17
  readonly block: boolean;
18
+ /** What the pane's block-end edge faces: the grid's outer bottom edge, or a divider above another pane. */
19
+ readonly blockEnd: "outer" | "divider";
18
20
  };
19
21
  export type PaneGridModel = {
20
22
  readonly areas: ReadonlyArray<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/layout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;AAY/F,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,KAAG,MAAyB,CAAA;AAGvE,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,SAA8B,CAAA;AAInF,MAAM,MAAM,SAAS,GAAG;IACpB,oGAAoG;IACpG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC1C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,aAAa,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAChB,CAAA;AAK7E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,EAC7C,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,EAC1C,WAAW,WAAW,CAAC,MAAM,CAAC,KAC/B,aAsCF,CAAA;AAED,uIAAuI;AACvI,eAAO,MAAM,eAAe,qCAAsC,CAAA;AAClE,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAE3D,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAC9B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CACpB,CAAA;AAED,6DAA6D;AAC7D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAKvD,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,cAAc,KAAG,CAK1F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACtC,OAAO,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAC5C,SAAS,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,EAC7D,MAAM,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,EAC1D,WAAW,WAAW,CAAC,MAAM,CAAC,KAC/B,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAUhD,CAAA"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/layout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;AAY/F,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,KAAG,MAAyB,CAAA;AAGvE,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,SAA8B,CAAA;AAInF,MAAM,MAAM,SAAS,GAAG;IACpB,oGAAoG;IACpG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC1C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,aAAa,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAChB,CAAA;AAK7E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,EAC7C,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,EAC1C,WAAW,WAAW,CAAC,MAAM,CAAC,KAC/B,aAwCF,CAAA;AAED,uIAAuI;AACvI,eAAO,MAAM,eAAe,qCAAsC,CAAA;AAClE,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAE3D,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAC9B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;CACpB,CAAA;AAED,6DAA6D;AAC7D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAKvD,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,cAAc,KAAG,CAK1F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACtC,OAAO,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAC5C,SAAS,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,EAC7D,MAAM,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,EAC1D,WAAW,WAAW,CAAC,MAAM,CAAC,KAC/B,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAUhD,CAAA"}
@@ -39,16 +39,18 @@ export const buildPaneGridModel = (areas, columns, rows, collapsed) => {
39
39
  return;
40
40
  const known = box.get(cell);
41
41
  box.set(cell, known === undefined
42
- ? { r0: r, c0: c, c1: c }
43
- : { r0: Math.min(known.r0, r), c0: Math.min(known.c0, c), c1: Math.max(known.c1, c) });
42
+ ? { r0: r, r1: r, c0: c, c1: c }
43
+ : { r0: Math.min(known.r0, r), r1: Math.max(known.r1, r), c0: Math.min(known.c0, c), c1: Math.max(known.c1, c) });
44
44
  }));
45
45
  const edges = {};
46
- box.forEach(({ r0, c0, c1 }, name) => {
46
+ box.forEach(({ r0, r1, c0, c1 }, name) => {
47
47
  const left = kept[r0]?.[c0 - 1];
48
48
  const above = Array.from({ length: c1 - c0 + 1 }, (_, i) => kept[r0 - 1]?.[c0 + i]);
49
+ const below = Array.from({ length: c1 - c0 + 1 }, (_, i) => kept[r1 + 1]?.[c0 + i]);
49
50
  edges[name] = {
50
51
  inline: left !== undefined && left !== emptyCell,
51
52
  block: above.some((cell) => cell !== undefined && cell !== emptyCell),
53
+ blockEnd: below.some((cell) => cell !== undefined && cell !== emptyCell) ? "divider" : "outer",
52
54
  };
53
55
  });
54
56
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/core/composition/PaneGrid/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type ReactNode, type Ref } from "react";
2
+ export type PaneSectionProps = {
3
+ readonly children: ReactNode;
4
+ /** Takes the remaining block size of the pane (min-height 0). */
5
+ readonly grow?: boolean;
6
+ /** Its own vertical scroll owner (OVERFLOW-4/5) with the inset inside the scroller. Implies grow. */
7
+ readonly scroll?: {
8
+ readonly label: string;
9
+ readonly role?: "log" | "region";
10
+ readonly tone?: "surface" | "background";
11
+ readonly scrollRef?: Ref<HTMLDivElement>;
12
+ };
13
+ /** Head band centred in a shared grid row. Default `start`. */
14
+ readonly align?: "start" | "center";
15
+ /** `inline`: the one horizontal scroller in it reaches both pane edges and takes the inset as scroll padding. */
16
+ readonly bleed?: "inline";
17
+ /** Gap between its own children. Default `row`. */
18
+ readonly gap?: "inline" | "row" | "section";
19
+ readonly as?: "div" | "header" | "footer";
20
+ };
21
+ /**
22
+ * One band of a Pane: it pads inline by the pane's inset, the sections of a pane stack with the row gap between them,
23
+ * the first takes the pane's block-start inset and the last its block-end inset. With `scroll` the band is its own
24
+ * full-bleed scroll owner and the inset sits on its content, so the scrollbar stays on the pane edge. A section outside
25
+ * a Pane throws `PANE_SECTION_OUTSIDE_PANE`.
26
+ */
27
+ export declare const PaneSection: ({ children, grow, scroll, align, bleed, gap, as }: PaneSectionProps) => import("react").JSX.Element;
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/PaneSection/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AAI1E,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,qGAAqG;IACrG,QAAQ,CAAC,MAAM,CAAC,EAAE;QACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAAA;QACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;KAC3C,CAAA;IACD,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACnC,iHAAiH;IACjH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;IACzB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;CAC5C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,mDAAqF,gBAAgB,gCA8BhI,CAAA"}