@starci/grammar 0.4.10 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 StarCi
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 StarCi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,46 +1,46 @@
1
- # `@starci/grammar`
2
-
1
+ # `@starci/grammar`
2
+
3
3
  `@starci/grammar` separates one shared, business-free UI contract from sibling visual families.
4
4
  Common owns typed props, semantics, renderer anatomy, universal states/scales, and the family
5
5
  registry. Core, Heritage, and Offset Pop implement that contract with independently scoped visual
6
6
  DNA. The package contains no routes, domain entities, product decisions, or feature-named shells.
7
-
8
- ## Public entry points
9
-
7
+
8
+ ## Public entry points
9
+
10
10
  - `@starci/grammar/common` — shared React renderers, presentation-state helpers, and their CSS. Anonymous layout/action owners include `WorkspaceShell`, `Sidebar`, `Link`, and `TextAction`.
11
11
  - `@starci/grammar/core` — the StarCi Core family, its scoped root, DNA, and compatibility aliases.
12
12
  - `@starci/grammar/heritage` and `@starci/grammar/offset-pop` — sibling family roots,
13
13
  conformance receipts, and scoped visual overlays.
14
14
  - `@starci/grammar/common/styles.css`, `@starci/grammar/core/styles.css`,
15
15
  `@starci/grammar/heritage/styles.css`, and
16
- `@starci/grammar/offset-pop/styles.css` — package stylesheets. Short `.css` export aliases are
17
- also available.
18
-
19
- Install the workspace package while developing locally:
20
-
21
- ```sh
22
- npm install ./packages/grammar
23
- ```
24
-
25
- Import components from the focused entry point:
26
-
27
- ```tsx
16
+ `@starci/grammar/offset-pop/styles.css` — package stylesheets. Short `.css` export aliases are
17
+ also available.
18
+
19
+ Install the workspace package while developing locally:
20
+
21
+ ```sh
22
+ npm install ./packages/grammar
23
+ ```
24
+
25
+ Import components from the focused entry point:
26
+
27
+ ```tsx
28
28
  import {
29
29
  PageContainer,
30
- PrimaryRailLayout,
31
- SurfaceCard,
30
+ PrimaryRailLayout,
31
+ SurfaceCard,
32
32
  } from "@starci/grammar/common"
33
33
  import { CoreGrammarRoot } from "@starci/grammar/core"
34
34
  import "@starci/grammar/core/styles.css"
35
-
36
- export const ProductSurface = () => (
35
+
36
+ export const ProductSurface = () => (
37
37
  <CoreGrammarRoot>
38
- <PageContainer>
39
- <PrimaryRailLayout
40
- primary={<SurfaceCard ariaLabel="Main">...</SurfaceCard>}
41
- rail={<SurfaceCard ariaLabel="Progress">...</SurfaceCard>}
42
- />
43
- </PageContainer>
38
+ <PageContainer>
39
+ <PrimaryRailLayout
40
+ primary={<SurfaceCard ariaLabel="Main">...</SurfaceCard>}
41
+ rail={<SurfaceCard ariaLabel="Progress">...</SurfaceCard>}
42
+ />
43
+ </PageContainer>
44
44
  </CoreGrammarRoot>
45
45
  )
46
46
  ```
@@ -56,24 +56,24 @@ Heritage and Offset Pop replace only the neutral family root; every other Common
56
56
  contract is inherited. Each family stylesheet imports Common anatomy directly and never imports a
57
57
  sibling family stylesheet.
58
58
 
59
- `IncludedMark` is the purpose-named 20px outlined circle-check for included offering content; it
60
- inherits foreground and never claims completion. `SurfaceCopyGroup` packages Core's compact `0.5rem`
61
- title/explanation rhythm. A `SurfaceCard` without `wholeAction` identifies itself as `static`, which
62
- is the appropriate comparison surface when its short facts must remain visible together.
63
-
59
+ `IncludedMark` is the purpose-named 20px outlined circle-check for included offering content; it
60
+ inherits foreground and never claims completion. `SurfaceCopyGroup` packages Core's compact `0.5rem`
61
+ title/explanation rhythm. A `SurfaceCard` without `wholeAction` identifies itself as `static`, which
62
+ is the appropriate comparison surface when its short facts must remain visible together.
63
+
64
64
  Common components accept ordinary typed React props and keep semantic DOM and accessibility behavior.
65
65
  The application translates business data into those props; a family changes presentation only.
66
66
  `MediaFrame` presents an already selected asset and never decides whether to generate one. The
67
67
  machine-checkable `COMMON_UI_RULE_IDS`/`defineGrammarRuleConformance` boundary verifies that each
68
68
  family accounts for the canonical UI X-n catalog without copying the laws into package code.
69
-
70
- ## Package checks
71
-
72
- ```sh
73
- npm run typecheck
74
- npm test
75
- npm pack --dry-run
76
- ```
77
-
78
- The package requires Node.js 20 or newer and has peer dependencies on React 18+ and
79
- `@heroui/react` 3.2+.
69
+
70
+ ## Package checks
71
+
72
+ ```sh
73
+ npm run typecheck
74
+ npm test
75
+ npm pack --dry-run
76
+ ```
77
+
78
+ The package requires Node.js 20 or newer and has peer dependencies on React 18+ and
79
+ `@heroui/react` 3.2+.
@@ -349,10 +349,20 @@
349
349
  }
350
350
  }
351
351
 
352
+ /*
353
+ * One scrolling axis, drawn by the family's own sheet.
354
+ *
355
+ * The vendor's `.scroll-shadow--horizontal` sets `overflow-x: auto` alone, and a computed
356
+ * `overflow-x: auto` forces `overflow-y` to compute to `auto` as well, so the region rendered
357
+ * `overflow: auto auto` - two scrolling axes under an OVERFLOW-3 claim that promises one. Naming
358
+ * both axes here keeps the render at the one axis the claim describes.
359
+ */
352
360
  .starci-core-horizontal-scroll-region {
353
361
  width: 100%;
354
362
  min-width: 0;
355
363
  padding-block: 0.25rem;
364
+ overflow-x: auto;
365
+ overflow-y: hidden;
356
366
  overscroll-behavior-inline: contain;
357
367
  }
358
368
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAG9F,OAAO,EAOH,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAC1B,MAAM,iBAAiB,CAAA;AAExB,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,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,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;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,gCA+GlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAG9F,OAAO,EAOH,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAC1B,MAAM,iBAAiB,CAAA;AAExB,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,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,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;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,gCA6HlD,CAAA"}
@@ -17,11 +17,25 @@ export const SurfaceCard = (props) => {
17
17
  * The inset is drawn on the CONTENT REGION, not on the surface shell, so its claim rides the
18
18
  * element whose shipped rule backs it. The shell keeps what it actually paints: its ground, its
19
19
  * clipping and its boundary.
20
+ *
21
+ * A frameless surface takes NO inset, and says so. `frame="frameless"` means the content already
22
+ * owns its visible boundaries, so Core must not draw another shell - and the shipped sheet drops
23
+ * the inset with the frame (`.starci-core-frameless-surface > .starci-core-surface-content {
24
+ * padding: 0 }`). PADDING-0 is how the family answers "no inset" everywhere else: on this same
25
+ * body under `composition="joined"`, on SurfaceListCard's root and on SurfaceAccordionCard's
26
+ * panel. The render is unchanged; only the promise now matches it.
27
+ */
28
+ const compositionContract = composition === "joined"
29
+ ? "GAP-0 PADDING-0"
30
+ : frame === "frameless" ? "PADDING-0" : "PADDING-4";
31
+ /*
32
+ * One node, one overflow answer. The frameless shell paints `overflow: visible` and the bounded
33
+ * shell paints `overflow: hidden`; a node that claimed both said the surface clips and does not
34
+ * clip at once, and an audit measuring it could only ever find one of the two true.
20
35
  */
21
- const compositionContract = composition === "joined" ? "GAP-0 PADDING-0" : "PADDING-4";
22
36
  const contentContract = [
23
37
  frame === "frameless" ? "SURFACE-1" : "SURFACE-2",
24
- frame === "frameless" ? "OVERFLOW-1 OVERFLOW-2" : "OVERFLOW-2",
38
+ frame === "frameless" ? "OVERFLOW-1" : "OVERFLOW-2",
25
39
  depth === "nested" ? "BOUNDARY-5" : "BOUNDARY-6",
26
40
  ].join(" ");
27
41
  const rootContract = wholeAction === undefined ? undefined : "SURFACE-4";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,14 @@ export type TabItem = {
5
5
  readonly label: string;
6
6
  readonly leading?: ReactNode;
7
7
  };
8
- /** Business-neutral controlled peer tabs with one declared overflow owner. */
8
+ /**
9
+ * Business-neutral controlled peer tabs with one declared overflow owner.
10
+ *
11
+ * The strip's scroll owner is `HorizontalScrollRegion`, and that region stamps its own
12
+ * `data-contract`: a `data-contract` passed into it was silently replaced and never reached the DOM.
13
+ * The strip asks for its answer with the region's `overflow` prop instead, so the id the node carries
14
+ * is the id the node renders - one axis, scrolling only where the destinations overflow.
15
+ */
9
16
  export type TabsProps = {
10
17
  readonly label: string;
11
18
  readonly selectedKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAUpF,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCAwEpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAUpF,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCAwEpC,CAAA"}
@@ -51,6 +51,6 @@ export const Tabs = (props) => {
51
51
  const frameContract = inset === "page" ? "PADDING-5" : undefined;
52
52
  if (!isClientReady)
53
53
  return _jsx("div", { "aria-hidden": "true", className: tabsFrameClassName, "data-contract": frameContract, "data-grammar-tabs": "true", "data-grammar-tabs-client": "pending", "data-grammar-tabs-inset": inset, style: { minHeight: "3rem" } });
54
- return _jsx("div", { ref: frameRef, className: tabsFrameClassName, "data-contract": frameContract, "data-grammar-tabs": "true", "data-grammar-tabs-client": "ready", "data-grammar-tabs-inset": inset, "data-grammar-tab-labels": props.labelVisibility ?? "responsive", children: _jsx(HorizontalScrollRegion, { className: tabsScrollClassName, "data-contract": "OVERFLOW-4", "data-grammar-tabs-overflow": "scroll", hideScrollBar: true, children: _jsx(HeroTabs, { variant: "secondary", selectedKey: props.selectedKey, onSelectionChange: (key) => props.onSelect?.(String(key)), className: tabsClassName ?? "", "data-contract": "FLOW-2", children: _jsx(HeroTabs.ListContainer, { children: _jsx(HeroTabs.List, { "aria-label": props.label, children: props.items.map((item) => (_jsxs(HeroTabs.Tab, { id: item.id, "aria-label": item.label, "data-contract": "PADDING-3", children: [_jsxs("span", { className: tabContentClassName, "data-contract": "GAP-2", "data-grammar-tab-id": item.id, children: [item.leading, _jsx("span", { className: tabLabelClassName, style: props.labelVisibility === "always" ? { display: "inline" } : undefined, children: item.label })] }), _jsx(HeroTabs.Indicator, {})] }, item.id))) }) }) }) }) });
54
+ return _jsx("div", { ref: frameRef, className: tabsFrameClassName, "data-contract": frameContract, "data-grammar-tabs": "true", "data-grammar-tabs-client": "ready", "data-grammar-tabs-inset": inset, "data-grammar-tab-labels": props.labelVisibility ?? "responsive", children: _jsx(HorizontalScrollRegion, { className: tabsScrollClassName, overflow: "needed", "data-grammar-tabs-overflow": "scroll", hideScrollBar: true, children: _jsx(HeroTabs, { variant: "secondary", selectedKey: props.selectedKey, onSelectionChange: (key) => props.onSelect?.(String(key)), className: tabsClassName ?? "", "data-contract": "FLOW-2", children: _jsx(HeroTabs.ListContainer, { children: _jsx(HeroTabs.List, { "aria-label": props.label, children: props.items.map((item) => (_jsxs(HeroTabs.Tab, { id: item.id, "aria-label": item.label, "data-contract": "PADDING-3", children: [_jsxs("span", { className: tabContentClassName, "data-contract": "GAP-2", "data-grammar-tab-id": item.id, children: [item.leading, _jsx("span", { className: tabLabelClassName, style: props.labelVisibility === "always" ? { display: "inline" } : undefined, children: item.label })] }), _jsx(HeroTabs.Indicator, {})] }, item.id))) }) }) }) }) });
55
55
  };
56
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
1
  import { type ComponentProps, type ReactNode } from "react";
2
+ /**
3
+ * Which overflow answer this region gives for its one axis.
4
+ *
5
+ * `always` is the region standing on its own: the axis scrolls, full stop (OVERFLOW-3). `needed` is
6
+ * the same one axis scrolling only where the content actually overflows (OVERFLOW-4) - the answer a
7
+ * peer strip gives. The region is the node that carries the stamp, so the owner has to be able to
8
+ * say which of the two it is; passing `data-contract` in was silently replaced by this element's own.
9
+ */
10
+ export type HorizontalScrollRegionOverflow = "always" | "needed";
2
11
  export type HorizontalScrollRegionProps = Omit<ComponentProps<"div">, "children"> & {
3
12
  readonly children: ReactNode;
4
13
  /** Uses the ScrollShadow-owned no-chrome treatment while retaining horizontal reachability. */
5
14
  readonly hideScrollBar?: boolean;
15
+ /** The region's own overflow answer; the stamp and the render both follow it. */
16
+ readonly overflow?: HorizontalScrollRegionOverflow;
6
17
  };
7
18
  /** Preserve intrinsic inline content and expose HeroUI's horizontal overflow affordance. */
8
19
  export declare const HorizontalScrollRegion: import("react").ForwardRefExoticComponent<Omit<HorizontalScrollRegionProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/HorizontalScrollRegion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGvE,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,+FAA+F;IAC/F,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACnC,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,qIAYjC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/HorizontalScrollRegion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGvE;;;;;;;GAOG;AACH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEhE,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,+FAA+F;IAC/F,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAA;CACrD,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,qIAgBjC,CAAA"}
@@ -3,8 +3,11 @@ import { forwardRef } from "react";
3
3
  import { ScrollShadow, cn } from "@heroui/react";
4
4
  /** Preserve intrinsic inline content and expose HeroUI's horizontal overflow affordance. */
5
5
  export const HorizontalScrollRegion = forwardRef((props, ref) => {
6
- const { hideScrollBar = true, className, ...regionProps } = props;
7
- return (_jsx(ScrollShadow, { ...regionProps, ref: ref, className: cn("starci-core-horizontal-scroll-region", className), "data-contract": "PADDING-1 MEASURE-3 OVERFLOW-3 OVERFLOW-5", hideScrollBar: hideScrollBar, orientation: "horizontal" }));
6
+ const { hideScrollBar = true, overflow = "always", className, ...regionProps } = props;
7
+ const contract = overflow === "needed"
8
+ ? "PADDING-1 MEASURE-3 OVERFLOW-4 OVERFLOW-5"
9
+ : "PADDING-1 MEASURE-3 OVERFLOW-3 OVERFLOW-5";
10
+ return (_jsx(ScrollShadow, { ...regionProps, ref: ref, className: cn("starci-core-horizontal-scroll-region", className), "data-contract": contract, "data-grammar-overflow": overflow, hideScrollBar: hideScrollBar, orientation: "horizontal" }));
8
11
  });
9
12
  HorizontalScrollRegion.displayName = "HorizontalScrollRegion";
10
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/HorizontalScrollRegion/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAuC,MAAM,OAAO,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAQhD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAA8C,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACzG,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAA;IACjE,OAAO,CACH,KAAC,YAAY,OACL,WAAW,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,sCAAsC,EAAE,SAAS,CAAC,mBAClD,2CAA2C,EACzD,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAC,YAAY,GAC1B,CACL,CAAA;AACL,CAAC,CAAC,CAAA;AAEF,sBAAsB,CAAC,WAAW,GAAG,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/HorizontalScrollRegion/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAuC,MAAM,OAAO,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAoBhD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAA8C,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACzG,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAA;IACtF,MAAM,QAAQ,GAAG,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,2CAA2C;QAC7C,CAAC,CAAC,2CAA2C,CAAA;IACjD,OAAO,CACH,KAAC,YAAY,OACL,WAAW,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,sCAAsC,EAAE,SAAS,CAAC,mBACjD,QAAQ,2BACA,QAAQ,EAC/B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAC,YAAY,GAC1B,CACL,CAAA;AACL,CAAC,CAAC,CAAA;AAEF,sBAAsB,CAAC,WAAW,GAAG,wBAAwB,CAAA"}
@@ -1,97 +1,97 @@
1
1
  @import "../common/styles.css";
2
2
 
3
3
  @layer starci-grammar-core {
4
- /*
5
- * StarCi visual DNA is opt-in through GrammarRoot. It supplies a complete,
6
- * portable semantic theme while keeping product/UI laws out of CSS.
7
- */
4
+ /*
5
+ * StarCi visual DNA is opt-in through GrammarRoot. It supplies a complete,
6
+ * portable semantic theme while keeping product/UI laws out of CSS.
7
+ */
8
8
  .grammar-common-root[data-grammar-family="core"] {
9
- color-scheme: light;
10
-
11
- --starci-core-accent: #7547ff;
12
- --starci-core-accent-foreground: oklch(100% 0 0);
13
- --starci-core-focus: #7248ff;
14
- --starci-core-canvas: oklch(97.02% 0.0015 354.13);
15
- --starci-core-surface: oklch(100% 0.0008 354.13);
16
- --starci-core-surface-secondary: oklch(95.24% 0.0012 354.13);
17
- --starci-core-foreground: oklch(21.03% 0.0015 354.13);
18
- --starci-core-muted: oklch(55.17% 0.003 354.13);
19
- --starci-core-border: oklch(90% 0.0015 354.13);
20
- --starci-core-separator: oklch(92% 0.0015 354.13);
21
- --starci-core-success: oklch(73.29% 0.1941 162.85);
22
- --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
23
- --starci-core-warning: oklch(78.19% 0.159 84.37);
24
- --starci-core-warning-foreground: oklch(21.03% 0.0059 84.37);
25
- --starci-core-danger: oklch(65.32% 0.2335 37.78);
26
- --starci-core-danger-foreground: oklch(99.11% 0 0);
27
- --starci-core-info: oklch(72% 0.17 250);
28
- --starci-core-info-foreground: oklch(21.03% 0.0059 250);
29
- --starci-core-page-measure: 80rem;
30
- --starci-core-reading-measure: 72ch;
9
+ color-scheme: light;
10
+
11
+ --starci-core-accent: #7547ff;
12
+ --starci-core-accent-foreground: oklch(100% 0 0);
13
+ --starci-core-focus: #7248ff;
14
+ --starci-core-canvas: oklch(97.02% 0.0015 354.13);
15
+ --starci-core-surface: oklch(100% 0.0008 354.13);
16
+ --starci-core-surface-secondary: oklch(95.24% 0.0012 354.13);
17
+ --starci-core-foreground: oklch(21.03% 0.0015 354.13);
18
+ --starci-core-muted: oklch(55.17% 0.003 354.13);
19
+ --starci-core-border: oklch(90% 0.0015 354.13);
20
+ --starci-core-separator: oklch(92% 0.0015 354.13);
21
+ --starci-core-success: oklch(73.29% 0.1941 162.85);
22
+ --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
23
+ --starci-core-warning: oklch(78.19% 0.159 84.37);
24
+ --starci-core-warning-foreground: oklch(21.03% 0.0059 84.37);
25
+ --starci-core-danger: oklch(65.32% 0.2335 37.78);
26
+ --starci-core-danger-foreground: oklch(99.11% 0 0);
27
+ --starci-core-info: oklch(72% 0.17 250);
28
+ --starci-core-info-foreground: oklch(21.03% 0.0059 250);
29
+ --starci-core-page-measure: 80rem;
30
+ --starci-core-reading-measure: 72ch;
31
31
  --starci-core-page-inset: var(--grammar-page-inset);
32
32
  --starci-core-region-gap: var(--grammar-region-gap);
33
33
  --starci-core-section-gap: var(--grammar-section-gap);
34
34
  --starci-core-inline-gap: var(--grammar-inline-gap);
35
35
  --starci-core-row-gap: var(--grammar-row-gap);
36
- --starci-core-surface-radius: 1rem;
37
- --starci-core-control-radius: 0.75rem;
38
- --starci-core-pill-radius: 999px;
39
- --starci-core-surface-shadow: 0 8px 28px oklch(21.03% 0.0059 354.13 / 0.07);
40
- --starci-core-motion-duration: 180ms;
41
- --starci-core-motion-easing: cubic-bezier(0.2, 0, 0, 1);
42
-
43
- /* HeroUI and existing Grammar anatomy resolve through the same DNA. */
44
- --accent: var(--starci-core-accent);
45
- --accent-foreground: var(--starci-core-accent-foreground);
46
- --focus: var(--starci-core-focus);
47
- --background: var(--starci-core-canvas);
48
- --foreground: var(--starci-core-foreground);
49
- --surface: var(--starci-core-surface);
50
- --surface-foreground: var(--starci-core-foreground);
51
- --surface-secondary: var(--starci-core-surface-secondary);
52
- --surface-secondary-foreground: var(--starci-core-foreground);
53
- --muted: var(--starci-core-muted);
54
- --border: var(--starci-core-border);
55
- --separator: var(--starci-core-separator);
56
- --success: var(--starci-core-success);
57
- --success-foreground: var(--starci-core-success-foreground);
58
- --warning: var(--starci-core-warning);
59
- --warning-foreground: var(--starci-core-warning-foreground);
60
- --danger: var(--starci-core-danger);
61
- --danger-foreground: var(--starci-core-danger-foreground);
62
- --info: var(--starci-core-info);
63
- --info-foreground: var(--starci-core-info-foreground);
64
- --field-background: var(--starci-core-surface);
65
- --field-border: transparent;
66
- --field-foreground: var(--starci-core-foreground);
67
- --field-placeholder: var(--starci-core-muted);
68
- --radius: var(--starci-core-control-radius);
69
- --field-radius: var(--starci-core-control-radius);
70
- --shadow-surface: var(--starci-core-surface-shadow);
71
-
72
- min-width: 0;
73
- background: var(--starci-core-canvas);
74
- color: var(--starci-core-foreground);
75
- font-family: var(--starci-font-sans, ui-sans-serif, system-ui, sans-serif);
76
- }
77
-
36
+ --starci-core-surface-radius: 1rem;
37
+ --starci-core-control-radius: 0.75rem;
38
+ --starci-core-pill-radius: 999px;
39
+ --starci-core-surface-shadow: 0 8px 28px oklch(21.03% 0.0059 354.13 / 0.07);
40
+ --starci-core-motion-duration: 180ms;
41
+ --starci-core-motion-easing: cubic-bezier(0.2, 0, 0, 1);
42
+
43
+ /* HeroUI and existing Grammar anatomy resolve through the same DNA. */
44
+ --accent: var(--starci-core-accent);
45
+ --accent-foreground: var(--starci-core-accent-foreground);
46
+ --focus: var(--starci-core-focus);
47
+ --background: var(--starci-core-canvas);
48
+ --foreground: var(--starci-core-foreground);
49
+ --surface: var(--starci-core-surface);
50
+ --surface-foreground: var(--starci-core-foreground);
51
+ --surface-secondary: var(--starci-core-surface-secondary);
52
+ --surface-secondary-foreground: var(--starci-core-foreground);
53
+ --muted: var(--starci-core-muted);
54
+ --border: var(--starci-core-border);
55
+ --separator: var(--starci-core-separator);
56
+ --success: var(--starci-core-success);
57
+ --success-foreground: var(--starci-core-success-foreground);
58
+ --warning: var(--starci-core-warning);
59
+ --warning-foreground: var(--starci-core-warning-foreground);
60
+ --danger: var(--starci-core-danger);
61
+ --danger-foreground: var(--starci-core-danger-foreground);
62
+ --info: var(--starci-core-info);
63
+ --info-foreground: var(--starci-core-info-foreground);
64
+ --field-background: var(--starci-core-surface);
65
+ --field-border: transparent;
66
+ --field-foreground: var(--starci-core-foreground);
67
+ --field-placeholder: var(--starci-core-muted);
68
+ --radius: var(--starci-core-control-radius);
69
+ --field-radius: var(--starci-core-control-radius);
70
+ --shadow-surface: var(--starci-core-surface-shadow);
71
+
72
+ min-width: 0;
73
+ background: var(--starci-core-canvas);
74
+ color: var(--starci-core-foreground);
75
+ font-family: var(--starci-font-sans, ui-sans-serif, system-ui, sans-serif);
76
+ }
77
+
78
78
  .grammar-common-root[data-grammar-family="core"][data-grammar-theme="dark"] {
79
- color-scheme: dark;
80
- --starci-core-canvas: oklch(12% 0.0015 354.13);
81
- --starci-core-surface: oklch(21.03% 0.003 354.13);
82
- --starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
83
- --starci-core-foreground: oklch(99.11% 0.0015 354.13);
84
- --starci-core-muted: oklch(70.5% 0.003 354.13);
85
- --starci-core-border: oklch(28% 0.0015 354.13);
86
- --starci-core-separator: oklch(25% 0.0015 354.13);
87
- --starci-core-success: oklch(73.29% 0.1941 162.85);
88
- --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
89
- --starci-core-warning: oklch(82.03% 0.1392 88.38);
90
- --starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
91
- --starci-core-danger: oklch(59.4% 0.1973 36.67);
92
- --starci-core-danger-foreground: oklch(99.11% 0 0);
93
- --starci-core-info: oklch(72% 0.17 250);
94
- --starci-core-info-foreground: oklch(21.03% 0.0059 250);
79
+ color-scheme: dark;
80
+ --starci-core-canvas: oklch(12% 0.0015 354.13);
81
+ --starci-core-surface: oklch(21.03% 0.003 354.13);
82
+ --starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
83
+ --starci-core-foreground: oklch(99.11% 0.0015 354.13);
84
+ --starci-core-muted: oklch(70.5% 0.003 354.13);
85
+ --starci-core-border: oklch(28% 0.0015 354.13);
86
+ --starci-core-separator: oklch(25% 0.0015 354.13);
87
+ --starci-core-success: oklch(73.29% 0.1941 162.85);
88
+ --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
89
+ --starci-core-warning: oklch(82.03% 0.1392 88.38);
90
+ --starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
91
+ --starci-core-danger: oklch(59.4% 0.1973 36.67);
92
+ --starci-core-danger-foreground: oklch(99.11% 0 0);
93
+ --starci-core-info: oklch(72% 0.17 250);
94
+ --starci-core-info-foreground: oklch(21.03% 0.0059 250);
95
95
  }
96
96
 
97
97
  /* StarCi labelled surfaces paint one material box around label and content. */
@@ -121,49 +121,49 @@
121
121
  background: transparent;
122
122
  box-shadow: none;
123
123
  }
124
-
125
- @media (prefers-color-scheme: dark) {
124
+
125
+ @media (prefers-color-scheme: dark) {
126
126
  .grammar-common-root[data-grammar-family="core"][data-grammar-theme="system"] {
127
- color-scheme: dark;
128
- --starci-core-canvas: oklch(12% 0.0015 354.13);
129
- --starci-core-surface: oklch(21.03% 0.003 354.13);
130
- --starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
131
- --starci-core-foreground: oklch(99.11% 0.0015 354.13);
132
- --starci-core-muted: oklch(70.5% 0.003 354.13);
133
- --starci-core-border: oklch(28% 0.0015 354.13);
134
- --starci-core-separator: oklch(25% 0.0015 354.13);
135
- --starci-core-success: oklch(73.29% 0.1941 162.85);
136
- --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
137
- --starci-core-warning: oklch(82.03% 0.1392 88.38);
138
- --starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
139
- --starci-core-danger: oklch(59.4% 0.1973 36.67);
140
- --starci-core-danger-foreground: oklch(99.11% 0 0);
141
- --starci-core-info: oklch(72% 0.17 250);
142
- --starci-core-info-foreground: oklch(21.03% 0.0059 250);
143
- }
144
- }
145
-
146
- @media (forced-colors: active) {
127
+ color-scheme: dark;
128
+ --starci-core-canvas: oklch(12% 0.0015 354.13);
129
+ --starci-core-surface: oklch(21.03% 0.003 354.13);
130
+ --starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
131
+ --starci-core-foreground: oklch(99.11% 0.0015 354.13);
132
+ --starci-core-muted: oklch(70.5% 0.003 354.13);
133
+ --starci-core-border: oklch(28% 0.0015 354.13);
134
+ --starci-core-separator: oklch(25% 0.0015 354.13);
135
+ --starci-core-success: oklch(73.29% 0.1941 162.85);
136
+ --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
137
+ --starci-core-warning: oklch(82.03% 0.1392 88.38);
138
+ --starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
139
+ --starci-core-danger: oklch(59.4% 0.1973 36.67);
140
+ --starci-core-danger-foreground: oklch(99.11% 0 0);
141
+ --starci-core-info: oklch(72% 0.17 250);
142
+ --starci-core-info-foreground: oklch(21.03% 0.0059 250);
143
+ }
144
+ }
145
+
146
+ @media (forced-colors: active) {
147
147
  .grammar-common-root[data-grammar-family="core"] {
148
- --starci-core-accent: Highlight;
149
- --starci-core-focus: Highlight;
150
- --starci-core-canvas: Canvas;
151
- --starci-core-surface: Canvas;
152
- --starci-core-surface-secondary: Canvas;
153
- --starci-core-foreground: CanvasText;
154
- --starci-core-muted: GrayText;
155
- --starci-core-border: CanvasText;
156
- --starci-core-separator: CanvasText;
157
- --starci-core-success: CanvasText;
158
- --starci-core-success-foreground: Canvas;
159
- --starci-core-warning: CanvasText;
160
- --starci-core-warning-foreground: Canvas;
161
- --starci-core-danger: CanvasText;
162
- --starci-core-danger-foreground: Canvas;
163
- --starci-core-info: CanvasText;
164
- --starci-core-info-foreground: Canvas;
165
- --starci-core-surface-shadow: none;
166
- }
167
- }
168
- }
169
-
148
+ --starci-core-accent: Highlight;
149
+ --starci-core-focus: Highlight;
150
+ --starci-core-canvas: Canvas;
151
+ --starci-core-surface: Canvas;
152
+ --starci-core-surface-secondary: Canvas;
153
+ --starci-core-foreground: CanvasText;
154
+ --starci-core-muted: GrayText;
155
+ --starci-core-border: CanvasText;
156
+ --starci-core-separator: CanvasText;
157
+ --starci-core-success: CanvasText;
158
+ --starci-core-success-foreground: Canvas;
159
+ --starci-core-warning: CanvasText;
160
+ --starci-core-warning-foreground: Canvas;
161
+ --starci-core-danger: CanvasText;
162
+ --starci-core-danger-foreground: Canvas;
163
+ --starci-core-info: CanvasText;
164
+ --starci-core-info-foreground: Canvas;
165
+ --starci-core-surface-shadow: none;
166
+ }
167
+ }
168
+ }
169
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starci/grammar",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "description": "Reusable StarCi React components, compositions, and packaged visual DNA.",
5
5
  "keywords": [
6
6
  "starci",