@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.
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-navigation.css +59 -0
- package/dist/common/styles.css +13 -1
- package/dist/core/branch/ListBox/index.d.ts.map +1 -1
- package/dist/core/branch/ListBox/index.js +7 -4
- package/dist/core/branch/ListBox/index.js.map +1 -1
- package/dist/core/branch/Tabs/index.d.ts +7 -0
- package/dist/core/branch/Tabs/index.d.ts.map +1 -1
- package/dist/core/branch/Tabs/index.js +3 -2
- package/dist/core/branch/Tabs/index.js.map +1 -1
- package/dist/core/composite/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/core/composite/Breadcrumbs/index.js +4 -2
- package/dist/core/composite/Breadcrumbs/index.js.map +1 -1
- package/dist/core/dna.d.ts +2 -2
- package/dist/core/dna.js +2 -2
- package/dist/core/primitive/IconButton/index.d.ts +4 -1
- package/dist/core/primitive/IconButton/index.d.ts.map +1 -1
- package/dist/core/primitive/IconButton/index.js.map +1 -1
- package/dist/offset-pop/components-navigation.css +20 -0
- package/dist/offset-pop/conformance.d.ts +2 -3
- package/dist/offset-pop/conformance.d.ts.map +1 -1
- package/dist/offset-pop/conformance.js +2 -3
- package/dist/offset-pop/conformance.js.map +1 -1
- package/dist/offset-pop/dna.d.ts +1 -1
- package/dist/offset-pop/dna.js +1 -1
- package/dist/offset-pop/styles.css +11 -0
- package/package.json +4 -13
package/dist/.build-stamp.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "starci/grammar-build-stamp@1",
|
|
3
3
|
"package": "@starci/grammar",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.10",
|
|
5
5
|
"algorithm": "starci/grammar-source-digest@1",
|
|
6
|
-
"sourceDigest": "sha256:
|
|
7
|
-
"distDigest": "sha256:
|
|
8
|
-
"builtAt": "2026-10-
|
|
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
|
}
|
package/dist/common/styles.css
CHANGED
|
@@ -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
|
-
*
|
|
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;
|
|
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) =>
|
|
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;
|
|
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;
|
|
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":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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"}
|
package/dist/core/dna.d.ts
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
|
|
9
|
-
*
|
|
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
|
|
9
|
-
*
|
|
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
|
|
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":";AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAA;
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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"}
|
package/dist/offset-pop/dna.d.ts
CHANGED
|
@@ -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
|
|
10
|
+
* WCAG 2.x contrast, recorded here:
|
|
11
11
|
*
|
|
12
12
|
* | pair | light | dark | need |
|
|
13
13
|
* | -------------------------------------- | ----- | ----- | ---- |
|
package/dist/offset-pop/dna.js
CHANGED
|
@@ -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
|
|
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.
|
|
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
|
|
63
|
-
"
|
|
64
|
-
"
|
|
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",
|