@starci/grammar 0.9.8 → 0.9.10

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.
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schema": "starci/grammar-build-stamp@1",
3
3
  "package": "@starci/grammar",
4
- "version": "0.9.8",
4
+ "version": "0.9.10",
5
5
  "algorithm": "starci/grammar-source-digest@1",
6
- "sourceDigest": "sha256:78708b310e7c5a27759d26b772203287745b152d8086326a6ac57f4bacea752d",
7
- "distDigest": "sha256:2bca9b80fdb6f0be415e009ea6469099c946b666e972c27cc54a6a030a0bc359",
8
- "builtAt": "2026-10-12T06:28:20.014Z"
6
+ "sourceDigest": "sha256:3bff9448b0ff47e59a06aedca7db51203cb2f8967041da6308b3adc6e2f84051",
7
+ "distDigest": "sha256:a4636af73a9196a6625fe7226d892a2a192fa94a7959d98cff496f2dfb531574",
8
+ "builtAt": "2026-10-12T08:18:59.378Z"
9
9
  }
@@ -1567,4 +1567,63 @@
1567
1567
  @media (forced-colors: active) {
1568
1568
  .starci-core-flow-graph-node[data-grammar-selected="true"] { outline-color: Highlight; forced-color-adjust: none; }
1569
1569
  }
1570
+
1571
+ /*
1572
+ * Tabs variant="secondary" (0.9.9): a compact pill strip for tabs inside a sub-region (drawer, card, dialog, rail).
1573
+ * It is the vendor pill tabs (a soft --default track, a sliding indicator) re-painted in the selectable-chip family:
1574
+ * the selected tab is an --accent-soft pill with --accent-soft-foreground text, the SegmentedControl footprint (a
1575
+ * 2.5rem strip, 0.25rem track padding, 2rem tabs; the touch floor still wins on coarse pointers). The primary
1576
+ * underline bar is untouched. The vendor paint lives in the later `components` layer, so the few properties this
1577
+ * re-cuts are `!important` (the documented approach used for the selectable chip).
1578
+ */
1579
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] {
1580
+ width: fit-content;
1581
+ max-width: 100%;
1582
+ }
1583
+
1584
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .starci-core-tabs {
1585
+ min-width: 0;
1586
+ }
1587
+
1588
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .tabs__list-container {
1589
+ background: var(--default, ButtonFace) !important;
1590
+ border-radius: var(--starci-core-segmented-radius, calc(var(--radius, 0.5rem) * 2)) !important;
1591
+ }
1592
+
1593
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .tabs__list {
1594
+ padding: 0.25rem !important;
1595
+ }
1596
+
1597
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .tabs__tab {
1598
+ min-block-size: 2rem;
1599
+ border-radius: inherit !important;
1600
+ color: var(--muted, GrayText);
1601
+ }
1602
+
1603
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .tabs__tab[data-selected="true"] {
1604
+ color: var(--accent-soft-foreground, HighlightText) !important;
1605
+ }
1606
+
1607
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .tabs__indicator {
1608
+ top: 0 !important;
1609
+ bottom: auto !important;
1610
+ height: 100% !important;
1611
+ border-radius: inherit !important;
1612
+ background: var(--accent-soft, Highlight) !important;
1613
+ box-shadow: none !important;
1614
+ }
1615
+
1616
+ @media (pointer: coarse), (max-width: 40rem) {
1617
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .tabs__tab {
1618
+ min-block-size: calc(var(--starci-core-control-min-size, 2.75rem) - 0.5rem);
1619
+ }
1620
+ }
1621
+
1622
+ @media (forced-colors: active) {
1623
+ .starci-core-tabs-frame[data-grammar-tabs-variant="secondary"] .tabs__indicator {
1624
+ outline: 1px solid Highlight;
1625
+ outline-offset: -1px;
1626
+ forced-color-adjust: none;
1627
+ }
1628
+ }
1570
1629
  }
@@ -2858,6 +2858,18 @@
2858
2858
  height: 1.5rem;
2859
2859
  }
2860
2860
 
2861
+ /*
2862
+ * `danger-soft` (0.9.9): the danger tone's soft tint plate - --danger-soft ground, --danger-soft-foreground glyph,
2863
+ * --danger-soft-hover (one step stronger) on hover and press - for a reversible or row-level destructive action.
2864
+ * Same sizes, focus ring and accessible label as every IconButton.
2865
+ */
2866
+ .starci-core-icon-button[data-variant="danger-soft"] {
2867
+ --button-bg: var(--danger-soft, transparent);
2868
+ --button-bg-hover: var(--danger-soft-hover, var(--danger-soft, transparent));
2869
+ --button-bg-pressed: var(--danger-soft-hover, var(--danger-soft, transparent));
2870
+ --button-fg: var(--danger-soft-foreground, var(--danger, CanvasText));
2871
+ }
2872
+
2861
2873
  .starci-core-icon-button[data-floating="true"] {
2862
2874
  box-shadow: var(--overlay-shadow, 0 8px 24px rgb(0 0 0 / 0.16)) !important;
2863
2875
  }
@@ -3092,7 +3104,7 @@
3092
3104
  * through `--h4` from the vendor's own sheet. Until 0.4.12 the family answered that with the
3093
3105
  * Tailwind utility classes on the component alone - and a utility class exists only where the
3094
3106
  * CONSUMER's Tailwind build scanned this package's dist, which is the same debt
3095
- * `shipped-geometry.spec.ts` already refuses for layout. A consumer whose scan stopped finding
3107
+ * the family already refuses for layout. A consumer whose scan stopped finding
3096
3108
  * the package measured 36px under a `FONT-4` stamp and 30px under `FONT-3`: the vendor's sizes,
3097
3109
  * under the family's promise. The scale is the family's, so the family's sheet draws it, the way
3098
3110
  * `.starci-core-text` above already draws its own.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,SAAS,EAAE,MAAM,OAAO,CAAA;AAI7D,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAID,MAAM,MAAM,YAAY,GAAG;IACvB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC1C,wFAAwF;IACxF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACnD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,iJAYrB,YAAY,gCAyDd,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,SAAS,EAAE,MAAM,OAAO,CAAA;AAI7D,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAqBD,MAAM,MAAM,YAAY,GAAG;IACvB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC1C,wFAAwF;IACxF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACnD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,iJAYrB,YAAY,gCA4Cd,CAAA"}
@@ -4,17 +4,20 @@ import { ListBox as HeroListBox } from "@heroui/react";
4
4
  import { navigationClassName } from "../../navigationClassNames.js";
5
5
  import { Skeleton } from "../../primitive/Skeleton/index.js";
6
6
  const clampRows = (rows) => Math.min(12, Math.max(1, Math.floor(Number.isFinite(rows) ? rows : 3)));
7
+ /**
8
+ * Skeleton rows for a loading list. They sit directly inside the busy listbox (an `aria-busy` listbox may be empty), NOT in
9
+ * `renderEmptyState`: the vendor wraps that in an unnamed `role="option"`, and these rows are `aria-hidden`, so it would be a nameless option.
10
+ */
11
+ const loadingSkeleton = (rows) => (_jsx("div", { className: "starci-core-list-box-skeleton", "data-grammar-list-skeleton": "true", children: Array.from({ length: clampRows(rows) }, (_, index) => (_jsx("div", { "aria-hidden": "true", className: "starci-core-list-box-item starci-core-list-box-skeleton-option", "data-grammar-skeleton": "true", children: _jsxs("span", { className: "starci-core-list-box-copy", children: [_jsx("span", { className: "starci-core-list-box-label", children: _jsx(Skeleton, { shape: "text" }) }), _jsx("span", { className: "starci-core-list-box-description", children: _jsx(Skeleton, { shape: "text" }) })] }) }, index))) }));
7
12
  /**
8
13
  * A list of selectable or actionable rows (`role="listbox"`). Arrow keys, Home/End and typeahead
9
14
  * move between rows; Space/Enter select. Each row exposes `data-grammar-selected` and the
10
15
  * vendor `aria-selected`; long labels truncate and descriptions wrap at narrow widths.
11
16
  * Contract: list FOCUS-2 CONTROL-STATE-3, empty STATE-3, leading glyph ICON-6.
12
17
  */
13
- export const ListBox = ({ label, items, selectionMode = "single", selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading = false, loadingRows = 3, className, }) => (_jsx(HeroListBox, { "aria-label": label, className: navigationClassName("starci-core-list-box", className), "data-component": "ListBox", "data-contract": "FOCUS-2 CONTROL-STATE-3", "data-tier": "branch", "data-loading": String(isLoading), ...(isLoading ? { render: (domProps) => _jsx("div", { ...domProps, "aria-busy": "true" }) } : {}), "data-grammar-list-selection": selectionMode, selectionMode: selectionMode, ...(selectedIds === undefined ? {} : { selectedKeys: new Set(selectedIds) }), ...(defaultSelectedIds === undefined ? {} : { defaultSelectedKeys: new Set(defaultSelectedIds) }), ...(onSelectionChange === undefined ? {} : {
18
+ export const ListBox = ({ label, items, selectionMode = "single", selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading = false, loadingRows = 3, className, }) => (_jsx(HeroListBox, { "aria-label": label, className: navigationClassName("starci-core-list-box", className), "data-component": "ListBox", "data-contract": "FOCUS-2 CONTROL-STATE-3", "data-tier": "branch", "data-loading": String(isLoading), ...(isLoading ? { render: (domProps) => _jsxs("div", { ...domProps, "aria-busy": "true", children: [domProps.children, items.length === 0 ? loadingSkeleton(loadingRows) : null] }) } : {}), "data-grammar-list-selection": selectionMode, selectionMode: selectionMode, ...(selectedIds === undefined ? {} : { selectedKeys: new Set(selectedIds) }), ...(defaultSelectedIds === undefined ? {} : { defaultSelectedKeys: new Set(defaultSelectedIds) }), ...(onSelectionChange === undefined ? {} : {
14
19
  onSelectionChange: (selection) => onSelectionChange(selection === "all" ? items.map((item) => item.id) : [...selection].map(String)),
15
20
  }), ...(onAction === undefined ? {} : { onAction: (key) => onAction(String(key)) }), ...(isLoading
16
- ? {
17
- renderEmptyState: () => (_jsx("div", { className: "starci-core-list-box-skeleton", "data-grammar-list-skeleton": "true", children: Array.from({ length: clampRows(loadingRows) }, (_, index) => (_jsx("div", { "aria-hidden": "true", className: "starci-core-list-box-item starci-core-list-box-skeleton-option", "data-grammar-skeleton": "true", children: _jsxs("span", { className: "starci-core-list-box-copy", children: [_jsx("span", { className: "starci-core-list-box-label", children: _jsx(Skeleton, { shape: "text" }) }), _jsx("span", { className: "starci-core-list-box-description", children: _jsx(Skeleton, { shape: "text" }) })] }) }, index))) })),
18
- }
21
+ ? {}
19
22
  : emptyContent === undefined ? {} : { renderEmptyState: () => _jsx("div", { className: "starci-core-list-box-empty", "data-contract": "STATE-3", "data-grammar-list-empty": "true", children: emptyContent }) }), children: items.map((item) => (_jsx(HeroListBox.Item, { id: item.id, className: "starci-core-list-box-item", "data-grammar-list-item": "true", textValue: item.label, ...(item.isDisabled === undefined ? {} : { isDisabled: item.isDisabled }), children: ({ isSelected }) => (_jsxs("span", { className: "starci-core-list-box-row", "data-grammar-selected": isSelected ? "true" : "false", children: [item.leading === undefined ? null : _jsx("span", { "aria-hidden": "true", className: "starci-core-list-box-leading", "data-contract": "ICON-6", children: item.leading }), _jsxs("span", { className: "starci-core-list-box-copy", children: [_jsx("span", { className: "starci-core-list-box-label", children: item.label }), item.description === undefined ? null : _jsx("span", { className: "starci-core-list-box-description", children: item.description })] }), item.trailing === undefined ? null : _jsx("span", { className: "starci-core-list-box-trailing", children: item.trailing }), selectionMode === "none" ? null : _jsx(HeroListBox.ItemIndicator, { className: "starci-core-list-box-indicator" })] })) }, item.id))) }));
20
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,IAAI,WAAW,EAAkB,MAAM,eAAe,CAAA;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAW5D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAwB3G;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACpB,KAAK,EACL,KAAK,EACL,aAAa,GAAG,QAAQ,EACxB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,CAAC,EACf,SAAS,GACE,EAAE,EAAE,CAAC,CAChB,KAAC,WAAW,kBACI,KAAK,EACjB,SAAS,EAAE,mBAAmB,CAAC,sBAAsB,EAAE,SAAS,CAAC,oBAClD,SAAS,mBACV,yBAAyB,eAC7B,QAAQ,kBACJ,MAAM,CAAC,SAAS,CAAC,KAC3B,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,QAAsC,EAAE,EAAE,CAAC,iBAAS,QAAQ,eAAY,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,iCACxF,aAAa,EAC1C,aAAa,EAAE,aAAa,KACxB,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,KACzE,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAC9F,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,iBAAiB,EAAE,CAAC,SAAoB,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAClJ,CAAC,KACE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAC7F,CAAC,SAAS;QACV,CAAC,CAAC;YACE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CACpB,cAAK,SAAS,EAAC,+BAA+B,gCAA4B,MAAM,YAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1D,6BAA6B,MAAM,EAAC,SAAS,EAAC,gEAAgE,2BAAuB,MAAM,YACvI,gBAAM,SAAS,EAAC,2BAA2B,aACvC,eAAM,SAAS,EAAC,4BAA4B,YAAC,KAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,GAAG,GAAO,EAC7E,eAAM,SAAS,EAAC,kCAAkC,YAAC,KAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,GAAG,GAAO,IAChF,IAJD,KAAK,CAKT,CACT,CAAC,GACA,CACT;SACJ;QACD,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,cAAK,SAAS,EAAC,4BAA4B,mBAAe,SAAS,6BAAyB,MAAM,YAAE,YAAY,GAAO,EAAE,CAAC,YAE3L,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjB,KAAC,WAAW,CAAC,IAAI,IAEb,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,SAAS,EAAC,2BAA2B,4BACd,MAAM,EAC7B,SAAS,EAAE,IAAI,CAAC,KAAK,KACjB,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,YAEzE,CAAC,EAAE,UAAU,EAAoC,EAAE,EAAE,CAAC,CACnD,gBAAM,SAAS,EAAC,0BAA0B,2BAAwB,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,aAC1F,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAkB,MAAM,EAAC,SAAS,EAAC,8BAA8B,mBAAe,QAAQ,YAAE,IAAI,CAAC,OAAO,GAAQ,EACnJ,gBAAM,SAAS,EAAC,2BAA2B,aACvC,eAAM,SAAS,EAAC,4BAA4B,YAAE,IAAI,CAAC,KAAK,GAAQ,EAC/D,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,kCAAkC,YAAE,IAAI,CAAC,WAAW,GAAQ,IAClH,EACN,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,+BAA+B,YAAE,IAAI,CAAC,QAAQ,GAAQ,EAC3G,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,WAAW,CAAC,aAAa,IAAC,SAAS,EAAC,gCAAgC,GAAG,IACxG,CACV,IAjBI,IAAI,CAAC,EAAE,CAkBG,CACtB,CAAC,GACQ,CACjB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"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"}
@@ -23,6 +23,13 @@ export type TabsProps = {
23
23
  readonly labelVisibility?: "responsive" | "always";
24
24
  /** Page chrome owns whether the peer strip starts at the shared page inset. */
25
25
  readonly inset?: "page" | "none";
26
+ /**
27
+ * `primary` (default) is the underline tab bar: the page's main area switcher, at most one per page.
28
+ * `secondary` is a compact pill strip with the footprint of a SegmentedControl (a soft track, the selected tab an
29
+ * accent-soft pill): for tabs inside a sub-region (drawer, card, dialog, rail). Same roles, keyboard, panel
30
+ * wiring and focus ring either way.
31
+ */
32
+ readonly variant?: "primary" | "secondary";
26
33
  };
27
34
  /** Render peer tabs through Core's selected, accessible and responsive treatment. */
28
35
  export declare const Tabs: (props: TabsProps) => import("react").JSX.Element;
@@ -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;;;;;;;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"}
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;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;CAC7C,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCAyEpC,CAAA"}
@@ -48,9 +48,10 @@ export const Tabs = (props) => {
48
48
  };
49
49
  }, [isClientReady, props.items, props.panelId, props.selectedKey]);
50
50
  const inset = props.inset ?? "none";
51
+ const variant = props.variant ?? "primary";
51
52
  const frameContract = inset === "page" ? "PADDING-5" : undefined;
52
53
  if (!isClientReady)
53
- return _jsx("div", { "aria-hidden": "true", className: tabsFrameClassName, "data-contract": frameContract, "data-component": "Tabs", "data-tier": "branch", "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-component": "Tabs", "data-tier": "branch", "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, isFocusable: false, 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", { "aria-hidden": "true", className: tabsFrameClassName, "data-contract": frameContract, "data-component": "Tabs", "data-tier": "branch", "data-grammar-tabs": "true", "data-grammar-tabs-client": "pending", "data-grammar-tabs-inset": inset, "data-grammar-tabs-variant": variant, style: { minHeight: "3rem" } });
55
+ return _jsx("div", { ref: frameRef, className: tabsFrameClassName, "data-contract": frameContract, "data-component": "Tabs", "data-tier": "branch", "data-grammar-tabs": "true", "data-grammar-tabs-client": "ready", "data-grammar-tabs-inset": inset, "data-grammar-tabs-variant": variant, "data-grammar-tab-labels": props.labelVisibility ?? "responsive", children: _jsx(HorizontalScrollRegion, { className: tabsScrollClassName, overflow: "needed", "data-grammar-tabs-overflow": "scroll", hideScrollBar: true, isFocusable: false, children: _jsx(HeroTabs, { variant: variant === "secondary" ? "primary" : "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
56
  };
56
57
  //# 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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,kDAAkD,gBAAgB,gCA0C7F,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,kDAAkD,gBAAgB,gCA6C7F,CAAA"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Breadcrumbs as HeroBreadcrumbs } from "@heroui/react";
4
4
  import { navigationClassName } from "../../navigationClassNames.js";
5
5
  import { Skeleton } from "../../primitive/Skeleton/index.js";
@@ -12,6 +12,8 @@ import { Skeleton } from "../../primitive/Skeleton/index.js";
12
12
  */
13
13
  export const Breadcrumbs = ({ label, items, separator, onAction, className }) => (_jsx("nav", { "aria-label": label, className: navigationClassName("starci-core-breadcrumbs", className), "data-component": "Breadcrumbs", "data-contract": "LAYOUT-3 OVERFLOW-3", "data-tier": "composite", children: _jsx(HeroBreadcrumbs, { className: "starci-core-breadcrumbs-list", ...(separator === undefined ? {} : { separator }), ...(onAction === undefined ? {} : { onAction: (key) => onAction(String(key)) }), children: items.map((item, index) => {
14
14
  const isCurrent = index === items.length - 1;
15
- return (_jsx(HeroBreadcrumbs.Item, { id: item.id, className: "starci-core-breadcrumb", "data-contract": "ACTION-3", ...(item.href === undefined || isCurrent || item.isSkeleton === true ? {} : { href: item.href }), children: _jsx("span", { className: "starci-core-breadcrumb-label", "data-grammar-breadcrumb": "true", "data-grammar-current": isCurrent ? "true" : "false", children: item.isSkeleton === true ? (_jsx("span", { "aria-hidden": "true", className: "starci-core-breadcrumb-skeleton", "data-grammar-skeleton": "true", children: _jsx(Skeleton, { shape: "text" }) })) : (_jsxs(_Fragment, { children: [item.leading === undefined ? null : _jsx("span", { "aria-hidden": "true", className: "starci-core-breadcrumb-leading", "data-contract": "ICON-6", children: item.leading }), item.label] })) }) }, item.id));
15
+ return (_jsx(HeroBreadcrumbs.Item, { id: item.id, className: "starci-core-breadcrumb", "data-contract": "ACTION-3", ...(item.href === undefined || isCurrent ? {} : { href: item.href }), children: item.isSkeleton === true ? (
16
+ // A function child skips the vendor's link: a nameless (aria-hidden) link is an axe aria-command-name violation.
17
+ () => (_jsx("span", { className: "starci-core-breadcrumb-label", "data-grammar-breadcrumb": "true", "data-grammar-current": isCurrent ? "true" : "false", children: _jsx("span", { "aria-hidden": "true", className: "starci-core-breadcrumb-skeleton", "data-grammar-skeleton": "true", children: _jsx(Skeleton, { shape: "text" }) }) }))) : (_jsxs("span", { className: "starci-core-breadcrumb-label", "data-grammar-breadcrumb": "true", "data-grammar-current": isCurrent ? "true" : "false", children: [item.leading === undefined ? null : _jsx("span", { "aria-hidden": "true", className: "starci-core-breadcrumb-leading", "data-contract": "ICON-6", children: item.leading }), item.label] })) }, item.id));
16
18
  }) }) }));
17
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AA0B5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAoB,EAAE,EAAE,CAAC,CAC/F,4BACgB,KAAK,EACjB,SAAS,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,SAAS,CAAC,oBACrD,aAAa,mBACd,qBAAqB,eACzB,WAAW,YAErB,KAAC,eAAe,IACZ,SAAS,EAAC,8BAA8B,KACpC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAC9C,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAEhG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YAC5C,OAAO,CACH,KAAC,eAAe,CAAC,IAAI,IAEjB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,SAAS,EAAC,wBAAwB,mBACpB,UAAU,KACpB,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,YAEjG,eACI,SAAS,EAAC,8BAA8B,6BAChB,MAAM,0BACR,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAEjD,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CACxB,8BAAkB,MAAM,EAAC,SAAS,EAAC,iCAAiC,2BAAuB,MAAM,YAAC,KAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,GAAG,GAAO,CACrI,CAAC,CAAC,CAAC,CACA,8BACK,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAkB,MAAM,EAAC,SAAS,EAAC,gCAAgC,mBAAe,QAAQ,YAAE,IAAI,CAAC,OAAO,GAAQ,EACpJ,IAAI,CAAC,KAAK,IACZ,CACN,GACE,IAnBF,IAAI,CAAC,EAAE,CAoBO,CAC1B,CAAA;QACL,CAAC,CAAC,GACY,GAChB,CACT,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AA0B5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAoB,EAAE,EAAE,CAAC,CAC/F,4BACgB,KAAK,EACjB,SAAS,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,SAAS,CAAC,oBACrD,aAAa,mBACd,qBAAqB,eACzB,WAAW,YAErB,KAAC,eAAe,IACZ,SAAS,EAAC,8BAA8B,KACpC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAC9C,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAEhG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YAC5C,OAAO,CACH,KAAC,eAAe,CAAC,IAAI,IAEjB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,SAAS,EAAC,wBAAwB,mBACpB,UAAU,KACpB,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,YAEpE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC;gBACxB,iHAAiH;gBACjH,GAAG,EAAE,CAAC,CACF,eAAM,SAAS,EAAC,8BAA8B,6BAAyB,MAAM,0BAAuB,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAC5H,8BAAkB,MAAM,EAAC,SAAS,EAAC,iCAAiC,2BAAuB,MAAM,YAAC,KAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,GAAG,GAAO,GAC/H,CACV,CACJ,CAAC,CAAC,CAAC,CACA,gBACI,SAAS,EAAC,8BAA8B,6BAChB,MAAM,0BACR,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,aAEjD,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAkB,MAAM,EAAC,SAAS,EAAC,gCAAgC,mBAAe,QAAQ,YAAE,IAAI,CAAC,OAAO,GAAQ,EACpJ,IAAI,CAAC,KAAK,IACR,CACV,IAtBI,IAAI,CAAC,EAAE,CAuBO,CAC1B,CAAA;QACL,CAAC,CAAC,GACY,GAChB,CACT,CAAA"}
@@ -5,8 +5,8 @@
5
5
  * outside the package; consumers use these values to render the same StarCi
6
6
  * family without rebuilding its palette, geometry or motion from memory.
7
7
  *
8
- * Every colour pair the family's CSS combines clears WCAG AA in light and dark; `styles.spec.ts`
9
- * measures them through the resolved scope, HeroUI's vendor variables included. `accent` is the
8
+ * Every colour pair the family's CSS combines clears WCAG AA in light and dark, measured
9
+ * through the resolved scope, HeroUI's vendor variables included. `accent` is the
10
10
  * brand FILL (white text on it, and the focus ring); where the accent is painted as TEXT - links,
11
11
  * the current tab and bottom-nav label, the section eyebrow, the soft accent pairing - the family
12
12
  * reads `accentText`, which is themed because the violet fill is too dark to read on the dark
package/dist/core/dna.js CHANGED
@@ -5,8 +5,8 @@
5
5
  * outside the package; consumers use these values to render the same StarCi
6
6
  * family without rebuilding its palette, geometry or motion from memory.
7
7
  *
8
- * Every colour pair the family's CSS combines clears WCAG AA in light and dark; `styles.spec.ts`
9
- * measures them through the resolved scope, HeroUI's vendor variables included. `accent` is the
8
+ * Every colour pair the family's CSS combines clears WCAG AA in light and dark, measured
9
+ * through the resolved scope, HeroUI's vendor variables included. `accent` is the
10
10
  * brand FILL (white text on it, and the focus ring); where the accent is painted as TEXT - links,
11
11
  * the current tab and bottom-nav label, the section eyebrow, the soft accent pairing - the family
12
12
  * reads `accentText`, which is themed because the violet fill is too dark to read on the dark
@@ -4,8 +4,11 @@ import { type IconSource } from "../Icon/index.js";
4
4
  * `ghost` is the quiet bare glyph with no fill at rest (HeroUI's ghost: a fill only on hover/press) -
5
5
  * for an overflow "..." menu or a secondary glyph action beside a card title. `primary` is the accent-filled plate for the
6
6
  * one glyph action that must stand out (a floating assistant or compose button); one per view, like a primary Button.
7
+ * `danger-soft` is the danger tone's soft tint plate (`--danger-soft` ground, `--danger-soft-foreground` glyph, one step
8
+ * stronger on hover): use it for a reversible or row-level destructive action, such as a trash glyph that deletes a row.
9
+ * A confirmed destructive action inside an AlertDialog uses the solid `danger` Button instead.
7
10
  */
8
- export type IconButtonVariant = "tertiary" | "ghost" | "primary";
11
+ export type IconButtonVariant = "tertiary" | "ghost" | "primary" | "danger-soft";
9
12
  export type IconButtonProps = {
10
13
  readonly source: IconSource;
11
14
  /** Required accessible name for the glyph-only action. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAA;AAEhE,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAC3B,8GAA8G;IAC9G,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,iHAAiH;IACjH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,YAAQ,KAAG,MAAM,GAAG,IAI3F,CAAA;AAQD,oFAAoF;AACpF,eAAO,MAAM,UAAU,GAAI,6KAexB,eAAe,gCA2BjB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAA;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAC3B,8GAA8G;IAC9G,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,iHAAiH;IACjH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,YAAQ,KAAG,MAAM,GAAG,IAI3F,CAAA;AAQD,oFAAoF;AACpF,eAAO,MAAM,UAAU,GAAI,6KAexB,eAAe,gCA2BjB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/IconButton/index.tsx"],"names":[],"mappings":"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"}
@@ -164,6 +164,26 @@
164
164
  font-weight: 900;
165
165
  }
166
166
 
167
+ /* Tabs variant="secondary": one outlined unit with the family's hard offset, the selected tab a pink pill (the SegmentedControl treatment). */
168
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Tabs"][data-grammar-tabs-variant="secondary"] .tabs__list-container {
169
+ border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
170
+ border-radius: var(--offset-pop-control-radius) !important;
171
+ box-shadow: var(--offset-pop-shadow-x) var(--offset-pop-shadow-x) 0 var(--offset-pop-shadow-ink);
172
+ }
173
+
174
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Tabs"][data-grammar-tabs-variant="secondary"] .tabs__tab {
175
+ color: var(--offset-pop-ink);
176
+ font-weight: 800;
177
+ }
178
+
179
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Tabs"][data-grammar-tabs-variant="secondary"] .tabs__tab[data-selected="true"] {
180
+ color: var(--accent-foreground) !important;
181
+ }
182
+
183
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Tabs"][data-grammar-tabs-variant="secondary"] .tabs__indicator {
184
+ background: var(--offset-pop-pink) !important;
185
+ }
186
+
167
187
  /* TagGroup: outlined chips; selected chips turn pink and lift. */
168
188
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="TagGroup"] [data-grammar-tag] {
169
189
  border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
@@ -9,15 +9,14 @@
9
9
  *
10
10
  * Inherited on purpose, although the family is close to them:
11
11
  * - The spacing and size rules not listed below: the family's only geometry is the short allow-list
12
- * `conformance.spec.ts` locks, each entry owned by a claim here.
12
+ * the family promises, each entry owned by a claim here.
13
13
  * - ACCENT-3 / COLOR-3: one pink fills the decision action, marks the selected or current state and
14
14
  * draws the focus ring, so distinctness rests on Common's carriers (fill on an action, fill inside a
15
15
  * control, outline, soft pairing, underline), not on hue.
16
16
  * - BOUNDARY-3: rows claim it, and the seam stays Common's one line between consecutive rows; the family
17
17
  * only repaints that same edge in its 2px outline material (BOUNDARY-5) and adds no edge of its own.
18
18
  *
19
- * Each claim below is proved in `conformance.spec.ts`, which cites the matching assertion in
20
- * `styles.spec.ts`, the component `components-*.spec.ts` files or the render specs.
19
+ * Each claim below names the stylesheet rule or renderer that carries it.
21
20
  */
22
21
  export declare const OFFSET_POP_FAMILY_EVIDENCE: {
23
22
  readonly "ACCENT-1": readonly ["`--accent` binds the one pink. The family fills with it only the decision it marks: the dialog confirm, toast and alert action (the single action in each), a checked, selected or current state inside a control, and a real measurement (slider, meter, rating, spinner); it never paints text with it."];
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/offset-pop/conformance.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC6B,CAAA;AAEpE,eAAO,MAAM,wBAAwB;;;;;;EAInC,CAAA"}
1
+ {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/offset-pop/conformance.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC6B,CAAA;AAEpE,eAAO,MAAM,wBAAwB;;;;;;EAInC,CAAA"}
@@ -10,15 +10,14 @@ import { COMMON_UI_RULE_IDS, defineGrammarRuleConformance } from "../common/inde
10
10
  *
11
11
  * Inherited on purpose, although the family is close to them:
12
12
  * - The spacing and size rules not listed below: the family's only geometry is the short allow-list
13
- * `conformance.spec.ts` locks, each entry owned by a claim here.
13
+ * the family promises, each entry owned by a claim here.
14
14
  * - ACCENT-3 / COLOR-3: one pink fills the decision action, marks the selected or current state and
15
15
  * draws the focus ring, so distinctness rests on Common's carriers (fill on an action, fill inside a
16
16
  * control, outline, soft pairing, underline), not on hue.
17
17
  * - BOUNDARY-3: rows claim it, and the seam stays Common's one line between consecutive rows; the family
18
18
  * only repaints that same edge in its 2px outline material (BOUNDARY-5) and adds no edge of its own.
19
19
  *
20
- * Each claim below is proved in `conformance.spec.ts`, which cites the matching assertion in
21
- * `styles.spec.ts`, the component `components-*.spec.ts` files or the render specs.
20
+ * Each claim below names the stylesheet rule or renderer that carries it.
22
21
  */
23
22
  export const OFFSET_POP_FAMILY_EVIDENCE = {
24
23
  "ACCENT-1": ["`--accent` binds the one pink. The family fills with it only the decision it marks: the dialog confirm, toast and alert action (the single action in each), a checked, selected or current state inside a control, and a real measurement (slider, meter, rating, spinner); it never paints text with it."],
@@ -1 +1 @@
1
- {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/offset-pop/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AAErF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACtC,UAAU,EAAE,CAAC,2SAA2S,CAAC;IACzT,YAAY,EAAE,CAAC,0OAA0O,CAAC;IAC1P,YAAY,EAAE,CAAC,kIAAkI,CAAC;IAClJ,YAAY,EAAE,CAAC,2ZAA2Z,CAAC;IAC3a,YAAY,EAAE,CAAC,sTAAsT,CAAC;IACtU,SAAS,EAAE,CAAC,4VAA4V,CAAC;IACzW,iBAAiB,EAAE,CAAC,8QAA8Q,CAAC;IACnS,iBAAiB,EAAE,CAAC,sLAAsL,CAAC;IAC3M,iBAAiB,EAAE,CAAC,mOAAmO,CAAC;IACxP,iBAAiB,EAAE,CAAC,kSAAkS,CAAC;IACvT,gBAAgB,EAAE,CAAC,0PAA0P,CAAC;IAC9Q,QAAQ,EAAE,CAAC,sFAAsF,CAAC;IAClG,QAAQ,EAAE,CAAC,8JAA8J,CAAC;IAC1K,SAAS,EAAE,CAAC,idAAid,CAAC;IAC9d,OAAO,EAAE,CAAC,yIAAyI,CAAC;IACpJ,UAAU,EAAE,CAAC,qIAAqI,CAAC;IACnJ,WAAW,EAAE,CAAC,uMAAuM,CAAC;IACtN,UAAU,EAAE,CAAC,8NAA8N,CAAC;IAC5O,UAAU,EAAE,CAAC,wRAAwR,CAAC;IACtS,UAAU,EAAE,CAAC,wJAAwJ,CAAC;IACtK,YAAY,EAAE,CAAC,8SAA8S,CAAC;IAC9T,WAAW,EAAE,CAAC,4EAA4E,CAAC;IAC3F,WAAW,EAAE,CAAC,6DAA6D,CAAC;IAC5E,WAAW,EAAE,CAAC,uFAAuF,CAAC;IACtG,cAAc,EAAE,CAAC,wPAAwP,CAAC;IAC1Q,SAAS,EAAE,CAAC,wIAAwI,CAAC;IACrJ,WAAW,EAAE,CAAC,kKAAkK,CAAC;IACjL,WAAW,EAAE,CAAC,gIAAgI,CAAC;IAC/I,WAAW,EAAE,CAAC,4IAA4I,CAAC;IAC3J,WAAW,EAAE,CAAC,kJAAkJ,CAAC;IACjK,QAAQ,EAAE,CAAC,+GAA+G,CAAC;IAC3H,QAAQ,EAAE,CAAC,2PAA2P,CAAC;IACvQ,SAAS,EAAE,CAAC,mPAAmP,CAAC;CAChM,CAAA;AAEpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;IACjE,QAAQ,EAAE,YAAY;IACtB,oBAAoB,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,0BAA0B,CAAC,CAAC;IAChG,cAAc,EAAE,0BAA0B;CAC7C,CAAC,CAAA"}
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/offset-pop/conformance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AAErF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACtC,UAAU,EAAE,CAAC,2SAA2S,CAAC;IACzT,YAAY,EAAE,CAAC,0OAA0O,CAAC;IAC1P,YAAY,EAAE,CAAC,kIAAkI,CAAC;IAClJ,YAAY,EAAE,CAAC,2ZAA2Z,CAAC;IAC3a,YAAY,EAAE,CAAC,sTAAsT,CAAC;IACtU,SAAS,EAAE,CAAC,4VAA4V,CAAC;IACzW,iBAAiB,EAAE,CAAC,8QAA8Q,CAAC;IACnS,iBAAiB,EAAE,CAAC,sLAAsL,CAAC;IAC3M,iBAAiB,EAAE,CAAC,mOAAmO,CAAC;IACxP,iBAAiB,EAAE,CAAC,kSAAkS,CAAC;IACvT,gBAAgB,EAAE,CAAC,0PAA0P,CAAC;IAC9Q,QAAQ,EAAE,CAAC,sFAAsF,CAAC;IAClG,QAAQ,EAAE,CAAC,8JAA8J,CAAC;IAC1K,SAAS,EAAE,CAAC,idAAid,CAAC;IAC9d,OAAO,EAAE,CAAC,yIAAyI,CAAC;IACpJ,UAAU,EAAE,CAAC,qIAAqI,CAAC;IACnJ,WAAW,EAAE,CAAC,uMAAuM,CAAC;IACtN,UAAU,EAAE,CAAC,8NAA8N,CAAC;IAC5O,UAAU,EAAE,CAAC,wRAAwR,CAAC;IACtS,UAAU,EAAE,CAAC,wJAAwJ,CAAC;IACtK,YAAY,EAAE,CAAC,8SAA8S,CAAC;IAC9T,WAAW,EAAE,CAAC,4EAA4E,CAAC;IAC3F,WAAW,EAAE,CAAC,6DAA6D,CAAC;IAC5E,WAAW,EAAE,CAAC,uFAAuF,CAAC;IACtG,cAAc,EAAE,CAAC,wPAAwP,CAAC;IAC1Q,SAAS,EAAE,CAAC,wIAAwI,CAAC;IACrJ,WAAW,EAAE,CAAC,kKAAkK,CAAC;IACjL,WAAW,EAAE,CAAC,gIAAgI,CAAC;IAC/I,WAAW,EAAE,CAAC,4IAA4I,CAAC;IAC3J,WAAW,EAAE,CAAC,kJAAkJ,CAAC;IACjK,QAAQ,EAAE,CAAC,+GAA+G,CAAC;IAC3H,QAAQ,EAAE,CAAC,2PAA2P,CAAC;IACvQ,SAAS,EAAE,CAAC,mPAAmP,CAAC;CAChM,CAAA;AAEpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;IACjE,QAAQ,EAAE,YAAY;IACtB,oBAAoB,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,0BAA0B,CAAC,CAAC;IAChG,cAAc,EAAE,0BAA0B;CAC7C,CAAC,CAAA"}
@@ -7,7 +7,7 @@
7
7
  * laws, and it is product-neutral. Every value equals the default in `./styles.css`; the
8
8
  * styles spec holds the two together.
9
9
  *
10
- * WCAG 2.x contrast, recorded here and asserted in `styles.spec.ts`:
10
+ * WCAG 2.x contrast, recorded here:
11
11
  *
12
12
  * | pair | light | dark | need |
13
13
  * | -------------------------------------- | ----- | ----- | ---- |
@@ -7,7 +7,7 @@
7
7
  * laws, and it is product-neutral. Every value equals the default in `./styles.css`; the
8
8
  * styles spec holds the two together.
9
9
  *
10
- * WCAG 2.x contrast, recorded here and asserted in `styles.spec.ts`:
10
+ * WCAG 2.x contrast, recorded here:
11
11
  *
12
12
  * | pair | light | dark | need |
13
13
  * | -------------------------------------- | ----- | ----- | ---- |
@@ -285,6 +285,17 @@
285
285
  border-inline-end: var(--offset-pop-outline-width) solid var(--border);
286
286
  }
287
287
 
288
+ /* IconButton "danger-soft" (a destructive row action): the danger tint plate wears the family's ink outline and a small hard offset, pressed flat. */
289
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="IconButton"][data-variant="danger-soft"] {
290
+ border: var(--offset-pop-outline-width) solid var(--border);
291
+ box-shadow: 0.125rem 0.125rem 0 var(--offset-pop-shadow-ink);
292
+ }
293
+
294
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="IconButton"][data-variant="danger-soft"]:active:not([disabled]) {
295
+ box-shadow: 0 0 0 var(--offset-pop-shadow-ink);
296
+ transform: translate(0.125rem, 0.125rem);
297
+ }
298
+
288
299
  .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-navigation-feature-nav] {
289
300
  border-block-end-width: var(--offset-pop-outline-width);
290
301
  border-block-end-color: var(--border);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starci/grammar",
3
- "version": "0.9.8",
3
+ "version": "0.9.10",
4
4
  "description": "Reusable StarCi React components, compositions, and packaged visual DNA.",
5
5
  "keywords": [
6
6
  "starci",
@@ -23,9 +23,7 @@
23
23
  "files": [
24
24
  "dist",
25
25
  "!dist/stories",
26
- "!dist/__test__",
27
26
  "!dist/**/*.stories.*",
28
- "!dist/**/*.spec.*",
29
27
  "README.md",
30
28
  "LICENSE"
31
29
  ],
@@ -59,10 +57,9 @@
59
57
  "scripts": {
60
58
  "build": "node scripts/clean.mjs && tsc -p tsconfig.build.json && node scripts/copy-css.mjs && node scripts/build-stamp.mjs",
61
59
  "typecheck": "tsc -p tsconfig.build.json --noEmit && tsc -p tsconfig.stories.json",
62
- "test": "npm run build && node --test src/common/index.spec.mjs src/core/index.spec.mjs src/offset-pop/index.spec.mjs src/package-boundary.spec.mjs && vitest run --config vitest.config.ts src/shipped-geometry.spec.ts src/core/shipped-claims.spec.tsx src/common/conformance.spec.ts src/common/styles.spec.ts src/core/family.spec.tsx src/core/styles.spec.ts src/core/surface-card-family.spec.tsx src/core/scrollable-surfaces.spec.tsx src/core/primitive/Badge/index.spec.tsx src/core/primitive/Button/index.spec.tsx src/core/primitive/Divider/index.spec.tsx src/core/primitive/Region/index.spec.tsx src/core/primitive/NavLandmark/index.spec.tsx src/core/primitive/List/index.spec.tsx src/core/primitive/Heading/index.spec.tsx src/core/primitive/Icon/index.spec.tsx src/core/primitive/IconButton/index.spec.tsx src/core/primitive/IconTile/index.spec.tsx src/core/primitive/Input/index.spec.tsx src/core/primitive/Input/copyable.spec.tsx src/core/composite/ChatBubble/index.spec.tsx src/core/composite/FillViewport/index.spec.tsx src/core/primitive/IconButton/badge.spec.tsx src/core/primitive/Textarea/mentions.spec.tsx src/core/v090.spec.tsx src/core/v093.spec.tsx src/core/v094.spec.tsx src/core/v095.spec.tsx src/core/v096.spec.tsx src/core/v097.spec.tsx src/core/v098.spec.tsx src/core/loading.spec.tsx src/core/branch/FlowGraph/index.spec.tsx src/core/primitive/PressableField/index.spec.tsx src/core/primitive/Progress/index.spec.tsx src/core/primitive/Text/index.spec.tsx src/core/primitive/TextAction/index.spec.tsx src/core/primitive/Label/index.spec.tsx src/core/primitive/RankArtwork/index.spec.tsx src/core/composite/EmptyNotice/index.spec.tsx src/core/composite/ListRow/index.spec.tsx src/core/branch/Tabs/index.spec.tsx src/core/branch/Subnav/index.spec.tsx src/core/branch/Subnav/styles.spec.ts src/core/branch/Tooltip/index.spec.tsx src/core/composition/NavigationFeatureNav/index.spec.tsx src/core/composition/NavigationFeatureNav/styles.spec.ts src/core/composition/Sidebar/index.spec.tsx src/core/composition/Sidebar/styles.spec.ts src/core/composition/collapse.spec.tsx src/core/composition/WorkspaceShell/index.spec.tsx src/core/composition/ChatWorkspace/index.spec.tsx src/heritage/index.spec.tsx src/heritage/styles.spec.ts src/offset-pop/index.spec.tsx src/offset-pop/render.spec.tsx src/offset-pop/styles.spec.ts src/offset-pop/family.spec.tsx src/offset-pop/shipped-claims.spec.tsx src/offset-pop/surface-card-family.spec.tsx src/offset-pop/scrollable-surfaces.spec.tsx src/offset-pop/conformance.spec.ts src/core/branch/Accordion/index.spec.tsx src/core/branch/AlertDialog/index.spec.tsx src/core/branch/Calendar/index.spec.tsx src/core/branch/ComboBox/index.spec.tsx src/core/branch/DataTable/index.spec.tsx src/core/branch/DatePicker/index.spec.tsx src/core/branch/DateRangePicker/index.spec.tsx src/core/branch/Dialog/index.spec.tsx src/core/branch/Disclosure/index.spec.tsx src/core/branch/Drawer/index.spec.tsx src/core/branch/DropdownMenu/index.spec.tsx src/core/branch/ListBox/index.spec.tsx src/core/branch/Popover/index.spec.tsx src/core/branch/Select/index.spec.tsx src/core/branch/Toast/index.spec.tsx src/core/composite/Alert/index.spec.tsx src/core/composite/AvatarGroup/index.spec.tsx src/core/composite/Breadcrumbs/index.spec.tsx src/core/composite/ButtonGroup/index.spec.tsx src/core/composite/CheckboxGroup/index.spec.tsx src/core/composite/DescriptionList/index.spec.tsx src/core/composite/Fieldset/index.spec.tsx src/core/composite/Form/index.spec.tsx src/core/composite/Pagination/index.spec.tsx src/core/composite/RadioGroup/index.spec.tsx src/core/composite/SegmentedControl/index.spec.tsx src/core/composite/Stepper/index.spec.tsx src/core/composite/TagGroup/index.spec.tsx src/core/composite/Timeline/index.spec.tsx src/core/composition/BottomNav/index.spec.tsx src/core/composition/Footer/index.spec.tsx src/core/composition/TopBar/index.spec.tsx src/core/primitive/Avatar/index.spec.tsx src/core/primitive/Checkbox/index.spec.tsx src/core/primitive/CloseButton/index.spec.tsx src/core/primitive/DateField/index.spec.tsx src/core/primitive/Field/index.spec.tsx src/core/primitive/FileDropzone/index.spec.tsx src/core/primitive/Image/index.spec.tsx src/core/primitive/Kbd/index.spec.tsx src/core/primitive/Link/index.spec.tsx src/core/primitive/Meter/index.spec.tsx src/core/primitive/NumberField/index.spec.tsx src/core/primitive/ProgressCircle/index.spec.tsx src/core/primitive/Rating/index.spec.tsx src/core/primitive/SearchField/index.spec.tsx src/core/primitive/Skeleton/index.spec.tsx src/core/primitive/Slider/index.spec.tsx src/core/primitive/Spinner/index.spec.tsx src/core/primitive/Switch/index.spec.tsx src/core/primitive/Textarea/index.spec.tsx src/core/primitive/TimeField/index.spec.tsx src/offset-pop/components-forms.spec.ts src/offset-pop/components-navigation.spec.ts src/offset-pop/components-overlays.spec.ts src/core/branch/SurfaceCard/index.spec.tsx src/core/branch/SurfaceListCard/index.spec.tsx src/core/branch/SurfaceAccordionCard/index.spec.tsx src/core/branch/Rail/index.spec.tsx src/core/branch/MarkdownArticle/index.spec.tsx src/core/composite/VerticalScrollRegion/index.spec.tsx src/core/primitive/SectionHeader/index.spec.tsx src/core/primitive/PinnedActionBar/index.spec.tsx src/core/branch/SurfaceCard/ink.spec.ts src/core/data-component.spec.tsx src/core/OtpInput.spec.tsx src/core/field-variant.spec.tsx src/stories/catalog.spec.ts",
63
- "test:a11y": "vitest run --config vitest.a11y.config.ts",
64
- "pack:check": "npm run build && node --test src/package-boundary.spec.mjs",
65
- "prepack": "npm run typecheck && npm test",
60
+ "test": "npm run typecheck && npm run build",
61
+ "pack:check": "npm run build && npm pack --dry-run",
62
+ "prepack": "npm run typecheck && npm run build",
66
63
  "storybook": "storybook dev -p 6006",
67
64
  "build-storybook": "storybook build"
68
65
  },
@@ -78,20 +75,14 @@
78
75
  "@types/react": "^19.0.0",
79
76
  "react": "^19.0.0",
80
77
  "typescript": "^5.0.0",
81
- "vitest": "^4.1.11",
82
78
  "storybook": "^10.6.0",
83
79
  "@storybook/react-vite": "^10.6.0",
84
80
  "@chromatic-com/storybook": "latest",
85
- "@storybook/addon-vitest": "^10.6.0",
86
81
  "@storybook/addon-a11y": "^10.6.0",
87
82
  "@storybook/addon-docs": "^10.6.0",
88
83
  "@storybook/addon-mcp": "^10.6.0",
89
84
  "eslint-plugin-storybook": "^10.6.0",
90
- "@vitest/browser-playwright": "^4",
91
- "@vitest/coverage-v8": "^4",
92
- "jsdom": "^30",
93
85
  "playwright": "latest",
94
- "@testing-library/react": "^16",
95
86
  "react-dom": "^19.0.0",
96
87
  "@internationalized/date": "^3.12.4",
97
88
  "vite": "^8.3.0",