@starci/grammar 0.1.0 → 0.3.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 (106) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +22 -20
  3. package/dist/common/index.d.ts +1 -69
  4. package/dist/common/index.d.ts.map +1 -1
  5. package/dist/common/index.js +5 -197
  6. package/dist/common/index.js.map +1 -1
  7. package/dist/common/styles.css +2 -2
  8. package/dist/core/LeadingNumber.d.ts +12 -0
  9. package/dist/core/LeadingNumber.d.ts.map +1 -0
  10. package/dist/core/LeadingNumber.js +10 -0
  11. package/dist/core/LeadingNumber.js.map +1 -0
  12. package/dist/core/OtpInput.d.ts +12 -0
  13. package/dist/core/OtpInput.d.ts.map +1 -0
  14. package/dist/core/OtpInput.js +21 -0
  15. package/dist/core/OtpInput.js.map +1 -0
  16. package/dist/core/StateMark.d.ts +3 -1
  17. package/dist/core/StateMark.d.ts.map +1 -1
  18. package/dist/core/StateMark.js +3 -2
  19. package/dist/core/StateMark.js.map +1 -1
  20. package/dist/core/branch/MarkdownArticle/classNames.d.ts +9 -0
  21. package/dist/core/branch/MarkdownArticle/classNames.d.ts.map +1 -0
  22. package/dist/core/branch/MarkdownArticle/classNames.js +10 -0
  23. package/dist/core/branch/MarkdownArticle/classNames.js.map +1 -0
  24. package/dist/core/branch/MarkdownArticle/index.d.ts +30 -0
  25. package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -0
  26. package/dist/core/branch/MarkdownArticle/index.js +12 -0
  27. package/dist/core/branch/MarkdownArticle/index.js.map +1 -0
  28. package/dist/core/branch/Rail/classNames.d.ts +9 -0
  29. package/dist/core/branch/Rail/classNames.d.ts.map +1 -0
  30. package/dist/core/branch/Rail/classNames.js +10 -0
  31. package/dist/core/branch/Rail/classNames.js.map +1 -0
  32. package/dist/core/branch/Rail/index.d.ts +15 -7
  33. package/dist/core/branch/Rail/index.d.ts.map +1 -1
  34. package/dist/core/branch/Rail/index.js +19 -3
  35. package/dist/core/branch/Rail/index.js.map +1 -1
  36. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts +15 -0
  37. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts.map +1 -0
  38. package/dist/core/branch/SurfaceAccordionCard/classNames.js +16 -0
  39. package/dist/core/branch/SurfaceAccordionCard/classNames.js.map +1 -0
  40. package/dist/core/branch/SurfaceAccordionCard/index.d.ts +37 -0
  41. package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -0
  42. package/dist/core/branch/SurfaceAccordionCard/index.js +24 -0
  43. package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -0
  44. package/dist/core/branch/SurfaceCard/classNames.d.ts +13 -0
  45. package/dist/core/branch/SurfaceCard/classNames.d.ts.map +1 -0
  46. package/dist/core/branch/SurfaceCard/classNames.js +14 -0
  47. package/dist/core/branch/SurfaceCard/classNames.js.map +1 -0
  48. package/dist/core/branch/SurfaceCard/index.d.ts +9 -6
  49. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  50. package/dist/core/branch/SurfaceCard/index.js +7 -3
  51. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  52. package/dist/core/branch/SurfaceListCard/classNames.d.ts +11 -0
  53. package/dist/core/branch/SurfaceListCard/classNames.d.ts.map +1 -0
  54. package/dist/core/branch/SurfaceListCard/classNames.js +12 -0
  55. package/dist/core/branch/SurfaceListCard/classNames.js.map +1 -0
  56. package/dist/core/branch/SurfaceListCard/index.d.ts +11 -15
  57. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  58. package/dist/core/branch/SurfaceListCard/index.js +6 -11
  59. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  60. package/dist/core/classNames.d.ts +23 -0
  61. package/dist/core/classNames.d.ts.map +1 -0
  62. package/dist/core/classNames.js +24 -0
  63. package/dist/core/classNames.js.map +1 -0
  64. package/dist/core/composite/HorizontalScrollRegion/index.d.ts +7 -0
  65. package/dist/core/composite/HorizontalScrollRegion/index.d.ts.map +1 -0
  66. package/dist/core/composite/HorizontalScrollRegion/index.js +7 -0
  67. package/dist/core/composite/HorizontalScrollRegion/index.js.map +1 -0
  68. package/dist/core/composite/StaticStateRow/index.d.ts +13 -0
  69. package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -0
  70. package/dist/core/composite/StaticStateRow/index.js +12 -0
  71. package/dist/core/composite/StaticStateRow/index.js.map +1 -0
  72. package/dist/core/composite/VerticalScrollRegion/index.d.ts +8 -0
  73. package/dist/core/composite/VerticalScrollRegion/index.d.ts.map +1 -0
  74. package/dist/core/composite/VerticalScrollRegion/index.js +10 -0
  75. package/dist/core/composite/VerticalScrollRegion/index.js.map +1 -0
  76. package/dist/core/index.d.ts +12 -7
  77. package/dist/core/index.d.ts.map +1 -1
  78. package/dist/core/index.js +11 -7
  79. package/dist/core/index.js.map +1 -1
  80. package/dist/core/scrollable-surfaces.spec.d.ts +2 -0
  81. package/dist/core/scrollable-surfaces.spec.d.ts.map +1 -0
  82. package/dist/core/scrollable-surfaces.spec.js +37 -0
  83. package/dist/core/scrollable-surfaces.spec.js.map +1 -0
  84. package/dist/core/state.d.ts +4 -4
  85. package/dist/core/state.d.ts.map +1 -1
  86. package/dist/core/state.js +3 -3
  87. package/dist/core/state.js.map +1 -1
  88. package/dist/core/styles.css +598 -193
  89. package/dist/offset-pop/styles.css +393 -393
  90. package/package.json +68 -72
  91. package/dist/core/contracts.d.ts +0 -190
  92. package/dist/core/contracts.d.ts.map +0 -1
  93. package/dist/core/contracts.js +0 -91
  94. package/dist/core/contracts.js.map +0 -1
  95. package/dist/core/grammar.d.ts +0 -18
  96. package/dist/core/grammar.d.ts.map +0 -1
  97. package/dist/core/grammar.js +0 -27
  98. package/dist/core/grammar.js.map +0 -1
  99. package/dist/core/rules.d.ts +0 -45
  100. package/dist/core/rules.d.ts.map +0 -1
  101. package/dist/core/rules.js +0 -45
  102. package/dist/core/rules.js.map +0 -1
  103. package/dist/offset-pop/index.d.ts +0 -266
  104. package/dist/offset-pop/index.d.ts.map +0 -1
  105. package/dist/offset-pop/index.js +0 -69
  106. package/dist/offset-pop/index.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { fencedCodeBlockClassName, fencedCodeHeaderClassName, markdownArticleClassName, markdownTableFrameClassName } from "./classNames.js";
3
+ /** Own the business-neutral reading rhythm for one semantic Markdown document. */
4
+ export const MarkdownArticle = (props) => (_jsx("div", { "aria-label": props.ariaLabel, className: markdownArticleClassName, "data-grammar-markdown-measure": props.measure ?? "reading", children: props.children }));
5
+ /** Own bounded code overflow while allowing a caller-supplied neutral action such as Copy. */
6
+ export const FencedCodeBlock = (props) => {
7
+ const body = "children" in props ? props.children : _jsx("pre", { children: _jsx("code", { children: props.code }) });
8
+ return (_jsxs("div", { className: fencedCodeBlockClassName, children: [props.language === undefined && props.action === undefined ? null : (_jsxs("div", { className: fencedCodeHeaderClassName, children: [props.language === undefined ? _jsx("span", {}) : _jsx("span", { children: props.language }), props.action] })), body] }));
9
+ };
10
+ /** Keep a vendor-rendered table inside the same bounded reading frame as semantic tables. */
11
+ export const MarkdownTableFrame = (props) => (_jsx("div", { className: markdownTableFrameClassName, children: props.children }));
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/MarkdownArticle/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AA6B5I,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE,CAAC,CAC5D,4BACgB,KAAK,CAAC,SAAS,EAC3B,SAAS,EAAE,wBAAwB,mCACJ,KAAK,CAAC,OAAO,IAAI,SAAS,YAExD,KAAK,CAAC,QAAQ,GACb,CACT,CAAA;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAK,yBAAO,KAAK,CAAC,IAAI,GAAQ,GAAM,CAAA;IACxF,OAAO,CACH,eACI,SAAS,EAAE,wBAAwB,aAElC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjE,eAAK,SAAS,EAAE,yBAAyB,aACpC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAQ,CAAC,CAAC,CAAC,yBAAO,KAAK,CAAC,QAAQ,GAAQ,EACvE,KAAK,CAAC,MAAM,IACX,CACT,EACA,IAAI,IACH,CACT,CAAA;AACL,CAAC,CAAA;AAED,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAE,EAAE,CAAC,CAClE,cACI,SAAS,EAAE,2BAA2B,YAErC,KAAK,CAAC,QAAQ,GACb,CACT,CAAA"}
@@ -0,0 +1,9 @@
1
+ /** Identifies the rail landmark wrapper. */
2
+ export declare const railClassName: import("tailwind-variants").CnReturn;
3
+ /** Identifies the rail's internal frame. */
4
+ export declare const railFrameClassName: import("tailwind-variants").CnReturn;
5
+ /** Identifies the rail's primary body region. */
6
+ export declare const railBodyClassName: import("tailwind-variants").CnReturn;
7
+ /** Identifies the optional rail footer region. */
8
+ export declare const railFooterClassName: import("tailwind-variants").CnReturn;
9
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Rail/classNames.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,eAAO,MAAM,aAAa,sCAAgB,CAAA;AAC1C,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,sCAAoC,CAAA;AACnE,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,sCAA0B,CAAA;AACxD,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,sCAA6B,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { cn } from "@heroui/react";
2
+ /** Identifies the rail landmark wrapper. */
3
+ export const railClassName = cn("min-w-0");
4
+ /** Identifies the rail's internal frame. */
5
+ export const railFrameClassName = cn("flex", "min-w-0", "flex-col");
6
+ /** Identifies the rail's primary body region. */
7
+ export const railBodyClassName = cn("min-w-0", "flex-1");
8
+ /** Identifies the optional rail footer region. */
9
+ export const railFooterClassName = cn("flex", "items-center");
10
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/branch/Rail/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAC1C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AACnE,iDAAiD;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AACxD,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA"}
@@ -1,17 +1,25 @@
1
1
  import { type ReactNode } from "react";
2
2
  import { type PresentationState } from "../../state.js";
3
- export type RailProps = {
3
+ type ComplementaryRailProps = {
4
4
  readonly label: string;
5
+ readonly landmark?: "complementary";
6
+ };
7
+ type ContentNavigationRailProps = {
8
+ readonly label?: never;
9
+ /** The child owns the single navigation landmark; Core must not wrap it in another landmark. */
10
+ readonly landmark: "content-navigation";
11
+ };
12
+ export type RailProps = (ComplementaryRailProps | ContentNavigationRailProps) & {
5
13
  readonly children: ReactNode;
6
14
  readonly footer?: ReactNode;
15
+ /** Whether the rail sizes to authored content or fills a height supplied by its layout host. */
16
+ readonly height?: "content" | "fill";
7
17
  readonly mode?: "flow" | "sticky";
8
18
  readonly width?: "compact" | "standard" | "wide";
9
19
  readonly state?: PresentationState;
20
+ readonly collapse?: "expanded" | "collapsed";
21
+ readonly motion?: "static" | "animated" | "reduced";
10
22
  };
11
- export declare const Rail: ({ label, children, footer, mode, width, state, }: RailProps) => import("react").JSX.Element;
12
- export declare const meta: {
13
- readonly shape: "branch";
14
- readonly grammar: "core";
15
- readonly contract: "core.branch.rail";
16
- };
23
+ export declare const Rail: (props: RailProps) => import("react").JSX.Element;
24
+ export {};
17
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Rail/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE9F,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,kDAOlB,SAAS,gCAwBX,CAAA;AAED,eAAO,MAAM,IAAI;;;;CAA8E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Rail/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAG9F,KAAK,sBAAsB,GAAG;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;CACtC,CAAA;AAED,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,sBAAsB,GAAG,0BAA0B,CAAC,GAAG;IAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,gGAAgG;IAChG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,CAAA;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCAgDpC,CAAA"}
@@ -1,11 +1,27 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
3
  import { assertPresentationState, treatmentFor } from "../../state.js";
4
- export const Rail = ({ label, children, footer, mode = "flow", width = "standard", state = "neutral", }) => {
4
+ import { railBodyClassName, railClassName, railFooterClassName, railFrameClassName } from "./classNames.js";
5
+ export const Rail = (props) => {
6
+ const { label, landmark = "complementary", children, footer, height = "content", mode = "flow", width = "standard", state = "neutral", collapse = "expanded", motion = "static", } = props;
5
7
  assertPresentationState(state);
6
8
  const headingId = useId();
7
9
  const treatment = treatmentFor(state);
8
- return (_jsx("aside", { "aria-labelledby": headingId, className: "starci-core-rail", "data-grammar-rail": "true", "data-grammar-rail-mode": mode, "data-grammar-rail-width": width, "data-grammar-state": state, "data-grammar-treatment": treatment.tone, children: _jsxs("div", { className: "starci-core-rail-frame", "data-grammar-rail-frame": "true", children: [_jsx("h2", { "data-grammar-rail-heading": "true", id: headingId, children: label }), _jsx("div", { className: "starci-core-rail-body", "data-grammar-rail-body": "true", children: children }), footer === undefined ? null : (_jsx("div", { className: "starci-core-rail-footer", "data-grammar-rail-footer": "true", children: footer }))] }) }));
10
+ const frame = (_jsxs("div", { className: railFrameClassName, "data-grammar-rail-frame": "true", children: [landmark === "content-navigation" ? null : _jsx("h2", { "data-grammar-rail-heading": "true", id: headingId, children: label }), _jsx("div", { className: railBodyClassName, "data-grammar-rail-body": "true", children: children }), footer === undefined ? null : (_jsx("div", { className: railFooterClassName, "data-grammar-rail-footer": "true", children: footer }))] }));
11
+ const shared = {
12
+ className: railClassName,
13
+ "data-grammar-collapse": collapse,
14
+ "data-grammar-landmark": landmark,
15
+ "data-grammar-rail-height": height,
16
+ "data-grammar-motion": motion,
17
+ "data-grammar-rail": "true",
18
+ "data-grammar-rail-mode": mode,
19
+ "data-grammar-rail-width": width,
20
+ "data-grammar-state": state,
21
+ "data-grammar-treatment": treatment.tone,
22
+ };
23
+ if (landmark === "content-navigation")
24
+ return _jsx("div", { ...shared, children: frame });
25
+ return (_jsx("aside", { "aria-labelledby": headingId, ...shared, children: frame }));
9
26
  };
10
- export const meta = { shape: "branch", grammar: "core", contract: "core.branch.rail" };
11
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Rail/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AAW9F,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EACjB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,GAAG,MAAM,EACb,KAAK,GAAG,UAAU,EAClB,KAAK,GAAG,SAAS,GACT,EAAE,EAAE;IACZ,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAA;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,OAAO,CACH,mCACqB,SAAS,EAC1B,SAAS,EAAC,kBAAkB,uBACV,MAAM,4BACA,IAAI,6BACH,KAAK,wBACV,KAAK,4BACD,SAAS,CAAC,IAAI,YAEtC,eAAK,SAAS,EAAC,wBAAwB,6BAAyB,MAAM,aAClE,0CAA8B,MAAM,EAAC,EAAE,EAAE,SAAS,YAAG,KAAK,GAAM,EAChE,cAAK,SAAS,EAAC,uBAAuB,4BAAwB,MAAM,YAAE,QAAQ,GAAO,EACpF,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,cAAK,SAAS,EAAC,yBAAyB,8BAA0B,MAAM,YAAE,MAAM,GAAO,CAC1F,IACC,GACF,CACX,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Rail/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AAC9F,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAyB3G,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAE,EAAE;IACrC,MAAM,EACF,KAAK,EACL,QAAQ,GAAG,eAAe,EAC1B,QAAQ,EACR,MAAM,EACN,MAAM,GAAG,SAAS,EAClB,IAAI,GAAG,MAAM,EACb,KAAK,GAAG,UAAU,EAClB,KAAK,GAAG,SAAS,EACjB,QAAQ,GAAG,UAAU,EACrB,MAAM,GAAG,QAAQ,GACpB,GAAG,KAAK,CAAA;IACT,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAA;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,KAAK,GAAG,CACV,eAAK,SAAS,EAAE,kBAAkB,6BAA0B,MAAM,aAC7D,QAAQ,KAAK,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA8B,MAAM,EAAC,EAAE,EAAE,SAAS,YAAG,KAAK,GAAM,EAC5G,cAAK,SAAS,EAAE,iBAAiB,4BAAyB,MAAM,YAAE,QAAQ,GAAO,EAChF,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,cAAK,SAAS,EAAE,mBAAmB,8BAA2B,MAAM,YAAE,MAAM,GAAO,CACtF,IACC,CACT,CAAA;IACD,MAAM,MAAM,GAAG;QACX,SAAS,EAAE,aAAa;QACxB,uBAAuB,EAAE,QAAQ;QACjC,uBAAuB,EAAE,QAAQ;QACjC,0BAA0B,EAAE,MAAM;QAClC,qBAAqB,EAAE,MAAM;QAC7B,mBAAmB,EAAE,MAAM;QAC3B,wBAAwB,EAAE,IAAI;QAC9B,yBAAyB,EAAE,KAAK;QAChC,oBAAoB,EAAE,KAAK;QAC3B,wBAAwB,EAAE,SAAS,CAAC,IAAI;KAClC,CAAA;IAEV,IAAI,QAAQ,KAAK,oBAAoB;QAAE,OAAO,iBAAS,MAAM,YAAG,KAAK,GAAO,CAAA;IAC5E,OAAO,CACH,mCACqB,SAAS,KACtB,MAAM,YAET,KAAK,GACF,CACX,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ /** Identifies the joined disclosure-card outer shell. */
2
+ export declare const accordionCardClassName: import("tailwind-variants").CnReturn;
3
+ /** Selects bounded or frameless disclosure surfaces. */
4
+ export declare const getAccordionShellClassName: (bounded: boolean) => import("tailwind-variants").CnReturn;
5
+ /** Identifies one disclosure row. */
6
+ export declare const accordionRowClassName: import("tailwind-variants").CnReturn;
7
+ /** Identifies the semantic disclosure heading. */
8
+ export declare const accordionHeadingClassName: import("tailwind-variants").CnReturn;
9
+ /** Identifies the disclosure trigger control. */
10
+ export declare const accordionTriggerClassName: import("tailwind-variants").CnReturn;
11
+ /** Identifies the expanded disclosure region. */
12
+ export declare const accordionPanelClassName: import("tailwind-variants").CnReturn;
13
+ /** Scroll owner around the joined disclosure rows. */
14
+ export declare const accordionScrollRegionClassName: import("tailwind-variants").CnReturn;
15
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceAccordionCard/classNames.ts"],"names":[],"mappings":"AAEA,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,sCAA0B,CAAA;AAC7D,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,GAAI,SAAS,OAAO,yCAE1D,CAAA;AACD,qCAAqC;AACrC,eAAO,MAAM,qBAAqB,sCAAe,CAAA;AACjD,kDAAkD;AAClD,eAAO,MAAM,yBAAyB,sCAAY,CAAA;AAClD,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,sCAA4B,CAAA;AAClE,iDAAiD;AACjD,eAAO,MAAM,uBAAuB,sCAA0B,CAAA;AAC9D,sDAAsD;AACtD,eAAO,MAAM,8BAA8B,sCAA0B,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { cn } from "@heroui/react";
2
+ /** Identifies the joined disclosure-card outer shell. */
3
+ export const accordionCardClassName = cn("w-full", "min-w-0");
4
+ /** Selects bounded or frameless disclosure surfaces. */
5
+ export const getAccordionShellClassName = (bounded) => cn("w-full", "min-w-0", bounded ? "overflow-hidden" : "border-0", bounded ? undefined : "shadow-none");
6
+ /** Identifies one disclosure row. */
7
+ export const accordionRowClassName = cn("w-full");
8
+ /** Identifies the semantic disclosure heading. */
9
+ export const accordionHeadingClassName = cn("m-0");
10
+ /** Identifies the disclosure trigger control. */
11
+ export const accordionTriggerClassName = cn("w-full", "text-left");
12
+ /** Identifies the expanded disclosure region. */
13
+ export const accordionPanelClassName = cn("w-full", "min-w-0");
14
+ /** Scroll owner around the joined disclosure rows. */
15
+ export const accordionScrollRegionClassName = cn("w-full", "min-w-0");
16
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceAccordionCard/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC7D,wDAAwD;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,EAAE,CAC9D,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CACrG,CAAA;AACD,qCAAqC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;AACjD,kDAAkD;AAClD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;AAClD,iDAAiD;AACjD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AAClE,iDAAiD;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC9D,sDAAsD;AACtD,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { type ReactNode } from "react";
2
+ export type SurfaceAccordionCardItem<Summary, Body> = {
3
+ readonly id: string;
4
+ readonly isOpen: boolean;
5
+ readonly isDisabled?: boolean;
6
+ readonly summaryRender: Summary;
7
+ readonly bodyRender: Body;
8
+ };
9
+ type SurfaceAccordionCardCommonProps<Summary, Body> = {
10
+ /** Top surfaces own elevation; nested surfaces own a subordinate border; omission is frameless. */
11
+ readonly depth?: "top" | "nested";
12
+ readonly renderSummary: (summary: Summary) => ReactNode;
13
+ readonly renderBody: (body: Body) => ReactNode;
14
+ /** Convenience capability: make the row region a HeroUI Vertical ScrollShadow. */
15
+ readonly isScrollable?: boolean;
16
+ };
17
+ export type SurfaceAccordionCardProps<Summary, Body> = SurfaceAccordionCardCommonProps<Summary, Body> & ({
18
+ readonly items: ReadonlyArray<SurfaceAccordionCardItem<Summary, Body>>;
19
+ readonly onItemOpenChange: (id: string, isOpen: boolean) => void;
20
+ readonly isOpen?: never;
21
+ readonly isDisabled?: never;
22
+ readonly summaryRender?: never;
23
+ readonly bodyRender?: never;
24
+ readonly onOpenChange?: never;
25
+ } | {
26
+ readonly items?: never;
27
+ readonly onItemOpenChange?: never;
28
+ readonly isOpen: boolean;
29
+ readonly isDisabled?: boolean;
30
+ readonly summaryRender: Summary;
31
+ readonly bodyRender: Body;
32
+ readonly onOpenChange: (isOpen: boolean) => void;
33
+ });
34
+ /** Draw one full-width joined disclosure surface whose reusable anatomy is owned by Core Grammar. */
35
+ export declare const SurfaceAccordionCard: <Summary, Body>(props: SurfaceAccordionCardProps<Summary, Body>) => import("react").JSX.Element;
36
+ export {};
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceAccordionCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAI7C,MAAM,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,IAAI;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;CAC5B,CAAA;AAED,KAAK,+BAA+B,CAAC,OAAO,EAAE,IAAI,IAAI;IAClD,mGAAmG;IACnG,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAA;IACvD,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAA;IAC9C,kFAAkF;IAClF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,OAAO,EAAE,IAAI,IAAI,+BAA+B,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;IACrG,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACtE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAChC,GAAG;IACA,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD,CAAC,CAAA;AA0EF,qGAAqG;AACrG,eAAO,MAAM,oBAAoB,GAAI,OAAO,EAAE,IAAI,EAAE,OAAO,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,gCAwB9F,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
3
+ import { VerticalScrollRegion } from "../../composite/VerticalScrollRegion/index.js";
4
+ import { accordionCardClassName, accordionHeadingClassName, accordionPanelClassName, accordionRowClassName, accordionScrollRegionClassName, getAccordionShellClassName, accordionTriggerClassName } from "./classNames.js";
5
+ const SurfaceAccordionRows = ({ depth, items, renderSummary, renderBody, onItemOpenChange, isScrollable = false, }) => {
6
+ const ownerId = useId();
7
+ const bounded = depth !== undefined;
8
+ return (_jsx("div", { className: accordionCardClassName, "data-grammar-surface-accordion-card": "true", children: _jsx("div", { className: getAccordionShellClassName(bounded), "data-grammar-accordion-shell": "true", "data-grammar-scroll": isScrollable ? "contained" : "page", "data-grammar-surface": bounded ? "true" : undefined, "data-grammar-surface-depth": depth, "data-surface-context": depth === "nested" ? "nested" : depth === "top" ? "page" : undefined, children: _jsx(VerticalScrollRegion, { className: accordionScrollRegionClassName, isScrollable: isScrollable, children: items.map((item, index) => {
9
+ const triggerId = `${ownerId}-trigger-${index}`;
10
+ const panelId = `${ownerId}-panel-${index}`;
11
+ return (_jsxs("div", { className: accordionRowClassName, "data-grammar-accordion-row": "true", "data-grammar-disclosure-state": item.isOpen ? "open" : "closed", children: [_jsx("h3", { className: accordionHeadingClassName, children: _jsx("button", { "aria-controls": panelId, "aria-expanded": item.isOpen, className: accordionTriggerClassName, disabled: item.isDisabled, id: triggerId, onClick: () => onItemOpenChange(item.id, !item.isOpen), type: "button", children: renderSummary(item.summaryRender) }) }), item.isOpen ? (_jsx("div", { "aria-labelledby": triggerId, className: accordionPanelClassName, id: panelId, role: "region", children: renderBody(item.bodyRender) })) : null] }, item.id));
12
+ }) }) }) }));
13
+ };
14
+ /** Draw one full-width joined disclosure surface whose reusable anatomy is owned by Core Grammar. */
15
+ export const SurfaceAccordionCard = (props) => props.items === undefined
16
+ ? (_jsx(SurfaceAccordionRows, { ...(props.depth === undefined ? {} : { depth: props.depth }), items: [{
17
+ id: "surface-accordion-item",
18
+ isOpen: props.isOpen,
19
+ ...(props.isDisabled === undefined ? {} : { isDisabled: props.isDisabled }),
20
+ summaryRender: props.summaryRender,
21
+ bodyRender: props.bodyRender,
22
+ }], renderSummary: props.renderSummary, renderBody: props.renderBody, onItemOpenChange: (_id, isOpen) => props.onOpenChange(isOpen) }))
23
+ : (_jsx(SurfaceAccordionRows, { ...(props.depth === undefined ? {} : { depth: props.depth }), items: props.items, renderSummary: props.renderSummary, renderBody: props.renderBody, onItemOpenChange: props.onItemOpenChange }));
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceAccordionCard/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AA0C1N,MAAM,oBAAoB,GAAG,CAAgB,EACzC,KAAK,EACL,KAAK,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,GAAG,KAAK,GACmB,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IACvB,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAA;IAEnC,OAAO,CACH,cACI,SAAS,EAAE,sBAAsB,yCACG,MAAM,YAE1C,cACI,SAAS,EAAE,0BAA0B,CAAC,OAAO,CAAC,kCACjB,MAAM,yBACd,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,0BAClC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,gCACtB,KAAK,0BACX,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YAE1F,KAAC,oBAAoB,IAAC,SAAS,EAAE,8BAA8B,EAAE,YAAY,EAAE,YAAY,YACtF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACvB,MAAM,SAAS,GAAG,GAAG,OAAO,YAAY,KAAK,EAAE,CAAA;oBAC/C,MAAM,OAAO,GAAG,GAAG,OAAO,UAAU,KAAK,EAAE,CAAA;oBAC3C,OAAO,CACH,eACI,SAAS,EAAE,qBAAqB,gCACL,MAAM,mCACF,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,aAG9D,aAAI,SAAS,EAAE,yBAAyB,YACpC,kCACmB,OAAO,mBACP,IAAI,CAAC,MAAM,EAC1B,SAAS,EAAE,yBAAyB,EACpC,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EACtD,IAAI,EAAC,QAAQ,YAEZ,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,GAC7B,GACR,EACJ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACX,iCACqB,SAAS,EAC1B,SAAS,EAAE,uBAAuB,EAClC,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,QAAQ,YAEZ,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAC1B,CACT,CAAC,CAAC,CAAC,IAAI,KAxBH,IAAI,CAAC,EAAE,CAyBV,CACT,CAAA;gBACL,CAAC,CAAC,GACiB,GACrB,GACJ,CACT,CAAA;AACL,CAAC,CAAA;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAgB,KAA+C,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;IAC7H,CAAC,CAAC,CACE,KAAC,oBAAoB,OACb,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAC7D,KAAK,EAAE,CAAC;gBACJ,EAAE,EAAE,wBAAwB;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC3E,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC/B,CAAC,EACF,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAC/D,CACL;IACD,CAAC,CAAC,CACE,KAAC,oBAAoB,OACb,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAC7D,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GAC1C,CACL,CAAA"}
@@ -0,0 +1,13 @@
1
+ /** Identifies the outer labelled surface-card anatomy. */
2
+ export declare const surfaceCardClassName: import("tailwind-variants").CnReturn;
3
+ /** Identifies the external label row of a surface card. */
4
+ export declare const surfaceLabelClassName: import("tailwind-variants").CnReturn;
5
+ /** Identifies the bounded surface content shell. */
6
+ export declare const surfaceClassName: import("tailwind-variants").CnReturn;
7
+ /** Identifies frameless surface content. */
8
+ export declare const framelessSurfaceClassName: import("tailwind-variants").CnReturn;
9
+ /** Identifies the content region inside a surface. */
10
+ export declare const surfaceContentClassName: import("tailwind-variants").CnReturn;
11
+ /** Selects the bounded or frameless surface treatment without changing anatomy. */
12
+ export declare const getSurfaceFrameClassName: (frame: "bounded" | "frameless") => import("tailwind-variants").CnReturn;
13
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/classNames.ts"],"names":[],"mappings":"AAEA,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,sCAAoC,CAAA;AACrE,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,sCAAyD,CAAA;AAC3F,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,sCAAmC,CAAA;AAChE,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB,sCAAmC,CAAA;AACzE,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,sCAAgB,CAAA;AAEpD,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,GAAI,OAAO,SAAS,GAAG,WAAW,yCAGtE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { cn } from "@heroui/react";
2
+ /** Identifies the outer labelled surface-card anatomy. */
3
+ export const surfaceCardClassName = cn("flex", "min-w-0", "flex-col");
4
+ /** Identifies the external label row of a surface card. */
5
+ export const surfaceLabelClassName = cn("flex", "items-center", "justify-between", "gap-2");
6
+ /** Identifies the bounded surface content shell. */
7
+ export const surfaceClassName = cn("min-w-0", "overflow-hidden");
8
+ /** Identifies frameless surface content. */
9
+ export const framelessSurfaceClassName = cn("min-w-0", "overflow-hidden");
10
+ /** Identifies the content region inside a surface. */
11
+ export const surfaceContentClassName = cn("min-w-0");
12
+ /** Selects the bounded or frameless surface treatment without changing anatomy. */
13
+ export const getSurfaceFrameClassName = (frame) => cn("min-w-0", "overflow-hidden", frame === "frameless" ? "border-0" : undefined, frame === "frameless" ? "shadow-none" : undefined);
14
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AACrE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAC3F,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;AAChE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;AACzE,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAEpD,mFAAmF;AACnF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAA8B,EAAE,EAAE,CAAC,EAAE,CAC1E,SAAS,EAAE,iBAAiB,EAAE,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC5E,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CACpD,CAAA"}
@@ -20,15 +20,18 @@ type SelfNamedSurfaceCard = {
20
20
  export type SurfaceCardProps = (LabelledSurfaceCard | SelfNamedSurfaceCard) & {
21
21
  readonly children: ReactNode;
22
22
  readonly fact?: string;
23
+ /** Optional content at the end of the external label row. It takes the fact's single place. */
24
+ readonly labelEnd?: ReactNode;
23
25
  readonly depth?: "top" | "nested";
24
26
  readonly state?: PresentationState;
25
27
  readonly wholeAction?: WholeCardAction;
28
+ /** Frameless content already owns its visible boundaries, so Core must not draw another shell. */
29
+ readonly frame?: "bounded" | "frameless";
30
+ /** Contained content has exactly one internal scroll owner. */
31
+ readonly scroll?: "page" | "contained";
32
+ /** Convenience capability: make the content region a HeroUI Vertical ScrollShadow. */
33
+ readonly isScrollable?: boolean;
26
34
  };
27
- export declare const SurfaceCard: ({ label, ariaLabel, children, fact, depth, state, wholeAction, }: SurfaceCardProps) => import("react").JSX.Element;
28
- export declare const meta: {
29
- readonly shape: "branch";
30
- readonly grammar: "core";
31
- readonly contract: "core.branch.surface-card";
32
- };
35
+ export declare const SurfaceCard: (props: SurfaceCardProps) => import("react").JSX.Element;
33
36
  export {};
34
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE9F,MAAM,MAAM,eAAe,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,GACC;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,CAAA;AAEL,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,GAAG;IAC1E,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,kEAQzB,gBAAgB,gCAiDlB,CAAA;AAED,eAAO,MAAM,IAAI;;;;CAAsF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAI9F,MAAM,MAAM,eAAe,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,GACC;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,CAAA;AAEL,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,GAAG;IAC1E,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,kGAAkG;IAClG,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IACxC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IACtC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,gCAwElD,CAAA"}
@@ -1,14 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
3
  import { assertPresentationState, treatmentFor } from "../../state.js";
4
- export const SurfaceCard = ({ label, ariaLabel, children, fact, depth = "top", state = "neutral", wholeAction, }) => {
4
+ import { VerticalScrollRegion } from "../../composite/VerticalScrollRegion/index.js";
5
+ import { getSurfaceFrameClassName, surfaceCardClassName, surfaceContentClassName, surfaceLabelClassName } from "./classNames.js";
6
+ export const SurfaceCard = (props) => {
7
+ const { label, ariaLabel, children, fact, labelEnd, depth = "top", state = "neutral", wholeAction, frame = "bounded", scroll = "page", isScrollable = false, } = props;
5
8
  assertPresentationState(state);
6
9
  const headingId = useId();
7
10
  const treatment = treatmentFor(state);
8
11
  const disabled = state === "unavailable" || state === "pending";
9
12
  const accessibleName = ariaLabel ?? label;
13
+ const contained = isScrollable || scroll === "contained";
10
14
  const action = wholeAction?.kind === "link" ? (_jsx("a", { "aria-disabled": disabled || undefined, "aria-label": wholeAction.label, "data-grammar-whole-action": "link", href: disabled ? undefined : wholeAction.href, tabIndex: disabled ? -1 : undefined })) : wholeAction?.kind === "button" ? (_jsx("button", { "aria-label": wholeAction.label, "data-grammar-whole-action": "button", disabled: disabled, onClick: wholeAction.press, type: "button" })) : null;
11
- return (_jsxs("section", { className: "starci-core-surface-card", "data-grammar-surface-card": "true", children: [label === undefined ? null : (_jsxs("div", { className: "starci-core-surface-label", "data-grammar-surface-label": "true", children: [_jsx("h3", { id: headingId, children: label }), fact === undefined ? null : _jsx("span", { children: fact })] })), _jsxs("div", { "aria-label": label === undefined ? accessibleName : undefined, "aria-labelledby": label === undefined ? undefined : headingId, className: "starci-core-surface", "data-grammar-state": state, "data-grammar-surface": "true", "data-grammar-surface-depth": depth, "data-grammar-treatment": treatment.tone, children: [_jsx("div", { className: "starci-core-surface-content", "data-grammar-surface-content": "true", children: children }), action] })] }));
15
+ const surface = (_jsxs("div", { "aria-label": label === undefined ? accessibleName : undefined, "aria-labelledby": label === undefined ? undefined : headingId, className: getSurfaceFrameClassName(frame), "data-grammar-frame": frame, "data-grammar-scroll": contained ? "contained" : "page", "data-grammar-state": state, "data-grammar-surface-depth": depth, "data-grammar-treatment": treatment.tone, children: [_jsx(VerticalScrollRegion, { className: surfaceContentClassName, "data-grammar-surface-content": "true", isScrollable: contained, children: children }), action] }));
16
+ return (_jsxs("section", { className: surfaceCardClassName, "data-grammar-frame": frame, "data-grammar-surface-card": "true", children: [label === undefined ? null : (_jsxs("div", { className: surfaceLabelClassName, "data-grammar-surface-label": "true", children: [_jsx("h3", { id: headingId, children: label }), labelEnd ?? (fact === undefined ? null : _jsx("span", { children: fact }))] })), surface] }));
12
17
  };
13
- export const meta = { shape: "branch", grammar: "core", contract: "core.branch.surface-card" };
14
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AAgC9F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EACxB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,KAAK,GAAG,KAAK,EACb,KAAK,GAAG,SAAS,EACjB,WAAW,GACI,EAAE,EAAE;IACnB,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAA;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,SAAS,CAAA;IAC/D,MAAM,cAAc,GAAG,SAAS,IAAI,KAAK,CAAA;IAEzC,MAAM,MAAM,GAAG,WAAW,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAC1C,6BACmB,QAAQ,IAAI,SAAS,gBACxB,WAAW,CAAC,KAAK,+BACH,MAAM,EAChC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAC7C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GACrC,CACL,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CACjC,+BACgB,WAAW,CAAC,KAAK,+BACH,QAAQ,EAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,CAAC,KAAK,EAC1B,IAAI,EAAC,QAAQ,GACf,CACL,CAAC,CAAC,CAAC,IAAI,CAAA;IAER,OAAO,CACH,mBAAS,SAAS,EAAC,0BAA0B,+BAA2B,MAAM,aACzE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,eAAK,SAAS,EAAC,2BAA2B,gCAA4B,MAAM,aACxE,aAAI,EAAE,EAAE,SAAS,YAAG,KAAK,GAAM,EAC9B,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAO,IAAI,GAAQ,IAC9C,CACT,EACD,6BACgB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,qBAC3C,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC5D,SAAS,EAAC,qBAAqB,wBACX,KAAK,0BACJ,MAAM,gCACC,KAAK,4BACT,SAAS,CAAC,IAAI,aAEtC,cAAK,SAAS,EAAC,6BAA6B,kCAA8B,MAAM,YAC3E,QAAQ,GACP,EACL,MAAM,IACL,IACA,CACb,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,EAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAA;AACpF,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAwChI,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;IACnD,MAAM,EACF,KAAK,EACL,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,GAAG,KAAK,EACb,KAAK,GAAG,SAAS,EACjB,WAAW,EACX,KAAK,GAAG,SAAS,EACjB,MAAM,GAAG,MAAM,EACf,YAAY,GAAG,KAAK,GACvB,GAAG,KAAK,CAAA;IACT,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAA;IACzB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,SAAS,CAAA;IAC/D,MAAM,cAAc,GAAG,SAAS,IAAI,KAAK,CAAA;IACzC,MAAM,SAAS,GAAG,YAAY,IAAI,MAAM,KAAK,WAAW,CAAA;IAExD,MAAM,MAAM,GAAG,WAAW,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAC1C,6BACmB,QAAQ,IAAI,SAAS,gBACxB,WAAW,CAAC,KAAK,+BACH,MAAM,EAChC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAC7C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GACrC,CACL,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CACjC,+BACgB,WAAW,CAAC,KAAK,+BACH,QAAQ,EAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,CAAC,KAAK,EAC1B,IAAI,EAAC,QAAQ,GACf,CACL,CAAC,CAAC,CAAC,IAAI,CAAA;IAER,MAAM,OAAO,GAAG,CACZ,6BACgB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,qBAC3C,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC5D,SAAS,EAAE,wBAAwB,CAAC,KAAK,CAAC,wBACtB,KAAK,yBACJ,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,wBACjC,KAAK,gCACG,KAAK,4BACT,SAAS,CAAC,IAAI,aAEtC,KAAC,oBAAoB,IAAC,SAAS,EAAE,uBAAuB,kCAA+B,MAAM,EAAC,YAAY,EAAE,SAAS,YAChH,QAAQ,GACU,EACtB,MAAM,IACL,CACT,CAAA;IAED,OAAO,CACH,mBACI,SAAS,EAAE,oBAAoB,wBACX,KAAK,+BACC,MAAM,aAE/B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,eAAK,SAAS,EAAE,qBAAqB,gCAA6B,MAAM,aACpE,aAAI,EAAE,EAAE,SAAS,YAAG,KAAK,GAAM,EAC9B,QAAQ,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAO,IAAI,GAAQ,CAAC,IAC5D,CACT,EACA,OAAO,IACF,CACb,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ /** Identifies the outer surface-list anatomy. */
2
+ export declare const surfaceListClassName: import("tailwind-variants").CnReturn;
3
+ /** Identifies the external label row shared by surface branches. */
4
+ export declare const surfaceLabelClassName: import("tailwind-variants").CnReturn;
5
+ /** Identifies the list's bounded surface shell. */
6
+ export declare const listShellClassName: import("tailwind-variants").CnReturn;
7
+ /** Identifies the optional footer region. */
8
+ export declare const surfaceFooterClassName: import("tailwind-variants").CnReturn;
9
+ /** Selects the collection treatment for verdict and ordinary lists. */
10
+ export declare const getCollectionClassName: (isVerdict: boolean) => import("tailwind-variants").CnReturn;
11
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceListCard/classNames.ts"],"names":[],"mappings":"AAEA,iDAAiD;AACjD,eAAO,MAAM,oBAAoB,sCAAoC,CAAA;AACrE,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,sCAAyD,CAAA;AAC3F,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,sCAAmC,CAAA;AAClE,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,sCAA6B,CAAA;AAChE,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,GAAI,WAAW,OAAO,yCAAyD,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { cn } from "@heroui/react";
2
+ /** Identifies the outer surface-list anatomy. */
3
+ export const surfaceListClassName = cn("flex", "min-w-0", "flex-col");
4
+ /** Identifies the external label row shared by surface branches. */
5
+ export const surfaceLabelClassName = cn("flex", "items-center", "justify-between", "gap-2");
6
+ /** Identifies the list's bounded surface shell. */
7
+ export const listShellClassName = cn("min-w-0", "overflow-hidden");
8
+ /** Identifies the optional footer region. */
9
+ export const surfaceFooterClassName = cn("flex", "items-center");
10
+ /** Selects the collection treatment for verdict and ordinary lists. */
11
+ export const getCollectionClassName = (isVerdict) => cn("w-full", isVerdict ? "rounded-none" : undefined);
12
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceListCard/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AACrE,oEAAoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAC3F,mDAAmD;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;AAClE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAChE,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA"}
@@ -1,10 +1,4 @@
1
- import { type PresentationState } from "../../state.js";
2
- export type SurfaceListItem = {
3
- readonly id: string;
4
- readonly label: string;
5
- readonly description?: string;
6
- readonly state?: PresentationState;
7
- };
1
+ import { type ReactNode } from "react";
8
2
  type LabelledSurfaceList = {
9
3
  readonly label: string;
10
4
  readonly ariaLabel?: string;
@@ -13,17 +7,19 @@ type SelfNamedSurfaceList = {
13
7
  readonly label?: undefined;
14
8
  readonly ariaLabel: string;
15
9
  };
16
- export type SurfaceListCardProps = (LabelledSurfaceList | SelfNamedSurfaceList) & {
17
- readonly items: ReadonlyArray<SurfaceListItem>;
10
+ type SurfaceListFrameProps = (LabelledSurfaceList | SelfNamedSurfaceList) & {
18
11
  readonly fact?: string;
12
+ readonly labelEnd?: ReactNode;
13
+ readonly labelHidden?: boolean;
14
+ readonly footer?: ReactNode;
19
15
  readonly depth?: "top" | "nested";
20
- readonly emptyLabel?: string;
16
+ readonly isLoading?: boolean;
17
+ readonly isVerdict?: boolean;
18
+ readonly isScrollable?: boolean;
21
19
  };
22
- export declare const SurfaceListCard: ({ label, ariaLabel, items, fact, depth, emptyLabel, }: SurfaceListCardProps) => import("react").JSX.Element;
23
- export declare const meta: {
24
- readonly shape: "branch";
25
- readonly grammar: "core";
26
- readonly contract: "core.branch.surface-list-card";
20
+ export type SurfaceListCardProps = SurfaceListFrameProps & {
21
+ readonly children: ReactNode;
27
22
  };
23
+ export declare const SurfaceListCard: (props: SurfaceListCardProps) => import("react").JSX.Element;
28
24
  export {};
29
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceListCard/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE9F,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;CACrC,CAAA;AAED,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,GAAG;IAC9E,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,uDAO7B,oBAAoB,gCA+CtB,CAAA;AAED,eAAO,MAAM,IAAI;;;;CAA2F,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceListCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAI7C,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,KAAK,qBAAqB,GAAG,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,GAAG;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG;IACvD,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,gCAqD1D,CAAA"}
@@ -1,16 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
- import { StateMark } from "../../StateMark.js";
4
- import { assertPresentationState, treatmentFor } from "../../state.js";
5
- export const SurfaceListCard = ({ label, ariaLabel, items, fact, depth = "top", emptyLabel = "No items", }) => {
3
+ import { VerticalScrollRegion } from "../../composite/VerticalScrollRegion/index.js";
4
+ import { getCollectionClassName, listShellClassName, surfaceFooterClassName, surfaceLabelClassName, surfaceListClassName } from "./classNames.js";
5
+ export const SurfaceListCard = (props) => {
6
+ const { label, ariaLabel, children, fact, labelEnd, labelHidden = false, footer, depth = "top", isLoading = false, isVerdict = false, isScrollable = false, } = props;
6
7
  const headingId = useId();
7
- for (const item of items)
8
- assertPresentationState(item.state ?? "neutral");
9
- return (_jsxs("section", { className: "starci-core-surface-list", "data-grammar-surface-list": "true", children: [label === undefined ? null : (_jsxs("div", { className: "starci-core-surface-label", "data-grammar-surface-label": "true", children: [_jsx("h3", { id: headingId, children: label }), fact === undefined ? null : _jsx("span", { children: fact })] })), _jsx("div", { "aria-label": label === undefined ? ariaLabel : undefined, "aria-labelledby": label === undefined ? undefined : headingId, className: "starci-core-surface starci-core-list-shell", "data-grammar-surface": "true", "data-grammar-surface-depth": depth, children: items.length === 0 ? (_jsx("p", { className: "starci-core-empty-row", "data-grammar-state": "neutral", children: emptyLabel })) : (_jsx("ul", { className: "starci-core-static-list", "data-grammar-list": "true", children: items.map((item) => {
10
- const state = item.state ?? "neutral";
11
- const treatment = treatmentFor(state);
12
- return (_jsxs("li", { className: "starci-core-static-row", "data-grammar-row": "true", "data-grammar-state": state, "data-grammar-treatment": treatment.tone, children: [_jsx(StateMark, { state: state }), _jsxs("span", { className: "starci-core-static-row-copy", children: [_jsx("span", { children: item.label }), item.description === undefined ? null : _jsx("span", { children: item.description })] })] }, item.id));
13
- }) })) })] }));
8
+ const accessibleName = ariaLabel ?? label;
9
+ return (_jsxs("section", { className: surfaceListClassName, "data-grammar-label-visibility": labelHidden ? "hidden" : "visible", "data-grammar-surface-list": "true", children: [label === undefined || labelHidden ? null : (_jsxs("div", { className: surfaceLabelClassName, "data-grammar-surface-label": "true", children: [_jsx("h3", { id: headingId, children: label }), labelEnd ?? (fact === undefined ? null : _jsx("span", { children: fact }))] })), _jsx("div", { "aria-label": labelHidden || label === undefined ? accessibleName : undefined, "aria-labelledby": !labelHidden && label !== undefined ? headingId : undefined, className: listShellClassName, "data-grammar-surface": "true", "data-grammar-scroll": isScrollable ? "contained" : "page", "data-grammar-surface-depth": depth, "data-surface-context": depth === "nested" ? "nested" : "page", "data-verdict": String(isVerdict), children: _jsx(VerticalScrollRegion, { className: getCollectionClassName(isVerdict), "data-grammar-list": "true", "data-loading": String(isLoading), isScrollable: isScrollable, children: children }) }), footer === undefined ? null : (_jsx("div", { className: surfaceFooterClassName, "data-grammar-surface-footer": "true", children: footer }))] }));
14
10
  };
15
- export const meta = { shape: "branch", grammar: "core", contract: "core.branch.surface-list-card" };
16
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceListCard/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AA0B9F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,KAAK,GAAG,KAAK,EACb,UAAU,GAAG,UAAU,GACJ,EAAE,EAAE;IACvB,MAAM,SAAS,GAAG,KAAK,EAAE,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;IAE1E,OAAO,CACH,mBAAS,SAAS,EAAC,0BAA0B,+BAA2B,MAAM,aACzE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,eAAK,SAAS,EAAC,2BAA2B,gCAA4B,MAAM,aACxE,aAAI,EAAE,EAAE,SAAS,YAAG,KAAK,GAAM,EAC9B,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAO,IAAI,GAAQ,IAC9C,CACT,EACD,4BACgB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,qBACtC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC5D,SAAS,EAAC,4CAA4C,0BACjC,MAAM,gCACC,KAAK,YAEhC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAClB,YAAG,SAAS,EAAC,uBAAuB,wBAAoB,SAAS,YAAE,UAAU,GAAK,CACrF,CAAC,CAAC,CAAC,CACA,aAAI,SAAS,EAAC,yBAAyB,uBAAmB,MAAM,YAC3D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAA;wBACrC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;wBACrC,OAAO,CACH,cACI,SAAS,EAAC,wBAAwB,sBACjB,MAAM,wBACH,KAAK,4BACD,SAAS,CAAC,IAAI,aAGtC,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,EAC3B,gBAAM,SAAS,EAAC,6BAA6B,aACzC,yBAAO,IAAI,CAAC,KAAK,GAAQ,EACxB,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAO,IAAI,CAAC,WAAW,GAAQ,IACrE,KANF,IAAI,CAAC,EAAE,CAOX,CACR,CAAA;oBACL,CAAC,CAAC,GACD,CACR,GACC,IACA,CACb,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,+BAA+B,EAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceListCard/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AA2BjJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC3D,MAAM,EACF,KAAK,EACL,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,WAAW,GAAG,KAAK,EACnB,MAAM,EACN,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,KAAK,EACjB,YAAY,GAAG,KAAK,GACvB,GAAG,KAAK,CAAA;IACT,MAAM,SAAS,GAAG,KAAK,EAAE,CAAA;IACzB,MAAM,cAAc,GAAG,SAAS,IAAI,KAAK,CAAA;IAEzC,OAAO,CACH,mBACI,SAAS,EAAE,oBAAoB,mCACA,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,+BACvC,MAAM,aAE/B,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzC,eAAK,SAAS,EAAE,qBAAqB,gCAA6B,MAAM,aACpE,aAAI,EAAE,EAAE,SAAS,YAAG,KAAK,GAAM,EAC9B,QAAQ,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAO,IAAI,GAAQ,CAAC,IAC5D,CACT,EACD,4BACgB,WAAW,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,qBAC1D,CAAC,WAAW,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC5E,SAAS,EAAE,kBAAkB,0BACR,MAAM,yBACN,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,gCAC5B,KAAK,0BACX,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,kBAC9C,MAAM,CAAC,SAAS,CAAC,YAE/B,KAAC,oBAAoB,IACjB,SAAS,EAAE,sBAAsB,CAAC,SAAS,CAAC,uBAC1B,MAAM,kBACV,MAAM,CAAC,SAAS,CAAC,EAC/B,YAAY,EAAE,YAAY,YAEzB,QAAQ,GACU,GACrB,EACL,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,cAAK,SAAS,EAAE,sBAAsB,iCAA8B,MAAM,YAAE,MAAM,GAAO,CAC5F,IACK,CACb,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,23 @@
1
+ /** Identifies the compact state mark in the offset-pop visual layer. */
2
+ export declare const stateMarkClassName: import("tailwind-variants").CnReturn;
3
+ /** Identifies the quiet ordinal prefix used by ordered content. */
4
+ export declare const leadingNumberClassName: import("tailwind-variants").CnReturn;
5
+ /** Identifies one static state row shell. */
6
+ export declare const staticRowClassName: import("tailwind-variants").CnReturn;
7
+ /** Identifies the text grouping inside a static state row. */
8
+ export declare const staticRowCopyClassName: import("tailwind-variants").CnReturn;
9
+ /** Identifies the full page that centres one compact form surface. */
10
+ export declare const formPageClassName: import("tailwind-variants").CnReturn;
11
+ /** Identifies the bounded viewport that owns form-surface scrolling under zoom. */
12
+ export declare const formScrollViewportClassName: import("tailwind-variants").CnReturn;
13
+ /** Identifies a form card whose inset belongs to its content region. */
14
+ export declare const formSurfaceClassName: import("tailwind-variants").CnReturn;
15
+ /** Narrows only a form state whose own content remains comfortable at the compact measure. */
16
+ export declare const formCompactSurfaceClassName: import("tailwind-variants").CnReturn;
17
+ /** Identifies the vertical label-control-help anatomy of one form field. */
18
+ export declare const formFieldClassName: import("tailwind-variants").CnReturn;
19
+ /** Identifies a semantic form label that remains available only to assistive technology. */
20
+ export declare const formScreenReaderLabelClassName: import("tailwind-variants").CnReturn;
21
+ /** Identifies content whose intrinsic inline measure must scroll instead of being compressed. */
22
+ export declare const horizontalScrollRegionClassName: import("tailwind-variants").CnReturn;
23
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../src/core/classNames.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,sCAA2B,CAAA;AAC1D,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,sCAAyC,CAAA;AAC5E,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB,sCAA6C,CAAA;AAC5E,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,sCAA6C,CAAA;AAEhF,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,sCAA8B,CAAA;AAC5D,mFAAmF;AACnF,eAAO,MAAM,2BAA2B,sCAAyC,CAAA;AACjF,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,sCAAiC,CAAA;AAClE,8FAA8F;AAC9F,eAAO,MAAM,2BAA2B,sCAA0C,CAAA;AAClF,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,sCAA+B,CAAA;AAC9D,4FAA4F;AAC5F,eAAO,MAAM,8BAA8B,sCAA8C,CAAA;AACzF,iGAAiG;AACjG,eAAO,MAAM,+BAA+B,sCAA6C,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { cn } from "@heroui/react";
2
+ /** Identifies the compact state mark in the offset-pop visual layer. */
3
+ export const stateMarkClassName = cn("size-5", "shrink-0");
4
+ /** Identifies the quiet ordinal prefix used by ordered content. */
5
+ export const leadingNumberClassName = cn("shrink-0", "font-mono", "text-sm");
6
+ /** Identifies one static state row shell. */
7
+ export const staticRowClassName = cn("flex", "items-start", "gap-2", "py-2");
8
+ /** Identifies the text grouping inside a static state row. */
9
+ export const staticRowCopyClassName = cn("flex", "min-w-0", "flex-col", "gap-1");
10
+ /** Identifies the full page that centres one compact form surface. */
11
+ export const formPageClassName = cn("starci-core-form-page");
12
+ /** Identifies the bounded viewport that owns form-surface scrolling under zoom. */
13
+ export const formScrollViewportClassName = cn("starci-core-form-scroll-viewport");
14
+ /** Identifies a form card whose inset belongs to its content region. */
15
+ export const formSurfaceClassName = cn("starci-core-form-surface");
16
+ /** Narrows only a form state whose own content remains comfortable at the compact measure. */
17
+ export const formCompactSurfaceClassName = cn("starci-core-form-surface--compact");
18
+ /** Identifies the vertical label-control-help anatomy of one form field. */
19
+ export const formFieldClassName = cn("starci-core-form-field");
20
+ /** Identifies a semantic form label that remains available only to assistive technology. */
21
+ export const formScreenReaderLabelClassName = cn("starci-core-form-label--screen-reader");
22
+ /** Identifies content whose intrinsic inline measure must scroll instead of being compressed. */
23
+ export const horizontalScrollRegionClassName = cn("starci-core-horizontal-scroll-region");
24
+ //# sourceMappingURL=classNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../src/core/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,wEAAwE;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC1D,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;AAC5E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAC5E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AAEhF,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAC5D,mFAAmF;AACnF,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,kCAAkC,CAAC,CAAA;AACjF,wEAAwE;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,0BAA0B,CAAC,CAAA;AAClE,8FAA8F;AAC9F,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,mCAAmC,CAAC,CAAA;AAClF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAA;AAC9D,4FAA4F;AAC5F,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,uCAAuC,CAAC,CAAA;AACzF,iGAAiG;AACjG,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC,sCAAsC,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type ComponentProps, type ReactNode } from "react";
2
+ export type HorizontalScrollRegionProps = Omit<ComponentProps<"div">, "children"> & {
3
+ readonly children: ReactNode;
4
+ };
5
+ /** Preserve intrinsic inline content and expose HeroUI's horizontal overflow affordance. */
6
+ export declare const HorizontalScrollRegion: import("react").ForwardRefExoticComponent<Omit<HorizontalScrollRegionProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
7
+ //# sourceMappingURL=index.d.ts.map