@starci/grammar 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-forms.css +27 -43
- package/dist/common/components-list-panel.css +8 -0
- package/dist/common/components-navigation.css +163 -6
- package/dist/common/components-overlays.css +41 -2
- package/dist/common/registry.d.ts +24 -21
- package/dist/common/registry.d.ts.map +1 -1
- package/dist/common/registry.js +4 -4
- package/dist/common/registry.js.map +1 -1
- package/dist/common/renderers-forms.d.ts +11 -11
- package/dist/common/renderers-navigation.d.ts +5 -5
- package/dist/common/renderers-navigation.d.ts.map +1 -1
- package/dist/common/renderers-navigation.js +1 -1
- package/dist/common/renderers-navigation.js.map +1 -1
- package/dist/common/renderers-overlays.d.ts +2 -2
- package/dist/common/renderers-overlays.d.ts.map +1 -1
- package/dist/common/renderers-overlays.js.map +1 -1
- package/dist/common/renderers.d.ts +4 -1
- package/dist/common/renderers.d.ts.map +1 -1
- package/dist/common/renderers.js +3 -0
- package/dist/common/renderers.js.map +1 -1
- package/dist/common/styles.css +229 -46
- package/dist/core/branch/ComboBox/index.d.ts +5 -5
- package/dist/core/branch/ComboBox/index.d.ts.map +1 -1
- package/dist/core/branch/ComboBox/index.js +9 -2
- package/dist/core/branch/ComboBox/index.js.map +1 -1
- package/dist/core/branch/DataTable/index.d.ts +20 -3
- package/dist/core/branch/DataTable/index.d.ts.map +1 -1
- package/dist/core/branch/DataTable/index.js +45 -8
- package/dist/core/branch/DataTable/index.js.map +1 -1
- package/dist/core/branch/FlowGraph/index.d.ts +26 -7
- package/dist/core/branch/FlowGraph/index.d.ts.map +1 -1
- package/dist/core/branch/FlowGraph/index.js +132 -30
- package/dist/core/branch/FlowGraph/index.js.map +1 -1
- package/dist/core/branch/FlowGraph/layout.d.ts +34 -1
- package/dist/core/branch/FlowGraph/layout.d.ts.map +1 -1
- package/dist/core/branch/FlowGraph/layout.js +82 -0
- package/dist/core/branch/FlowGraph/layout.js.map +1 -1
- package/dist/core/branch/FlowGraph/types.d.ts +13 -1
- package/dist/core/branch/FlowGraph/types.d.ts.map +1 -1
- package/dist/core/branch/ListBox/index.d.ts +4 -2
- package/dist/core/branch/ListBox/index.d.ts.map +1 -1
- package/dist/core/branch/ListBox/index.js +2 -2
- package/dist/core/branch/ListBox/index.js.map +1 -1
- package/dist/core/branch/MarkdownArticle/index.d.ts +7 -1
- package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -1
- package/dist/core/branch/MarkdownArticle/index.js +5 -2
- package/dist/core/branch/MarkdownArticle/index.js.map +1 -1
- package/dist/core/branch/Select/index.d.ts +6 -8
- package/dist/core/branch/Select/index.d.ts.map +1 -1
- package/dist/core/branch/Select/index.js +9 -5
- package/dist/core/branch/Select/index.js.map +1 -1
- package/dist/core/branch/SurfaceCard/index.d.ts +9 -0
- package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceCard/index.js +3 -2
- package/dist/core/branch/SurfaceCard/index.js.map +1 -1
- package/dist/core/branch/Tabs/index.d.ts.map +1 -1
- package/dist/core/branch/Tabs/index.js +17 -0
- package/dist/core/branch/Tabs/index.js.map +1 -1
- package/dist/core/branch/Tooltip/index.d.ts +9 -1
- package/dist/core/branch/Tooltip/index.d.ts.map +1 -1
- package/dist/core/branch/Tooltip/index.js +2 -2
- package/dist/core/branch/Tooltip/index.js.map +1 -1
- package/dist/core/collectionItem.d.ts +3 -3
- package/dist/core/collectionItem.d.ts.map +1 -1
- package/dist/core/composite/Alert/index.d.ts +5 -0
- package/dist/core/composite/Alert/index.d.ts.map +1 -1
- package/dist/core/composite/Alert/index.js +7 -2
- package/dist/core/composite/Alert/index.js.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.d.ts +6 -5
- package/dist/core/composite/CheckboxGroup/index.d.ts.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.js +10 -3
- package/dist/core/composite/CheckboxGroup/index.js.map +1 -1
- package/dist/core/composite/DescriptionList/index.d.ts +3 -2
- package/dist/core/composite/DescriptionList/index.d.ts.map +1 -1
- package/dist/core/composite/DescriptionList/index.js +5 -4
- package/dist/core/composite/DescriptionList/index.js.map +1 -1
- package/dist/core/composite/RadioGroup/index.d.ts +5 -3
- package/dist/core/composite/RadioGroup/index.d.ts.map +1 -1
- package/dist/core/composite/RadioGroup/index.js +9 -2
- package/dist/core/composite/RadioGroup/index.js.map +1 -1
- package/dist/core/composite/SegmentedControl/index.d.ts +6 -6
- package/dist/core/composite/SegmentedControl/index.d.ts.map +1 -1
- package/dist/core/composite/SegmentedControl/index.js +9 -5
- package/dist/core/composite/SegmentedControl/index.js.map +1 -1
- package/dist/core/composite/TagGroup/index.d.ts +27 -4
- package/dist/core/composite/TagGroup/index.d.ts.map +1 -1
- package/dist/core/composite/TagGroup/index.js +132 -2
- package/dist/core/composite/TagGroup/index.js.map +1 -1
- package/dist/core/composite/Timeline/index.d.ts +5 -0
- package/dist/core/composite/Timeline/index.d.ts.map +1 -1
- package/dist/core/composite/Timeline/index.js +1 -1
- package/dist/core/composite/Timeline/index.js.map +1 -1
- package/dist/core/composition/Sidebar/index.d.ts +4 -0
- package/dist/core/composition/Sidebar/index.d.ts.map +1 -1
- package/dist/core/composition/Sidebar/index.js +4 -2
- package/dist/core/composition/Sidebar/index.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/primitive/Avatar/index.d.ts +1 -1
- package/dist/core/primitive/Badge/index.d.ts +8 -5
- package/dist/core/primitive/Badge/index.d.ts.map +1 -1
- package/dist/core/primitive/Badge/index.js +14 -5
- package/dist/core/primitive/Badge/index.js.map +1 -1
- package/dist/core/primitive/Button/index.d.ts +10 -2
- package/dist/core/primitive/Button/index.d.ts.map +1 -1
- package/dist/core/primitive/Button/index.js +15 -4
- package/dist/core/primitive/Button/index.js.map +1 -1
- package/dist/core/primitive/Checkbox/index.d.ts +5 -3
- package/dist/core/primitive/Checkbox/index.d.ts.map +1 -1
- package/dist/core/primitive/Checkbox/index.js +9 -2
- package/dist/core/primitive/Checkbox/index.js.map +1 -1
- package/dist/core/primitive/Code/index.d.ts +10 -0
- package/dist/core/primitive/Code/index.d.ts.map +1 -0
- package/dist/core/primitive/Code/index.js +5 -0
- package/dist/core/primitive/Code/index.js.map +1 -0
- package/dist/core/primitive/Field/index.d.ts +12 -25
- package/dist/core/primitive/Field/index.d.ts.map +1 -1
- package/dist/core/primitive/Field/index.js +13 -14
- package/dist/core/primitive/Field/index.js.map +1 -1
- package/dist/core/primitive/GrammarRoot/index.d.ts +8 -1
- package/dist/core/primitive/GrammarRoot/index.d.ts.map +1 -1
- package/dist/core/primitive/GrammarRoot/index.js +5 -1
- package/dist/core/primitive/GrammarRoot/index.js.map +1 -1
- package/dist/core/primitive/Icon/index.d.ts.map +1 -1
- package/dist/core/primitive/Icon/index.js +3 -2
- package/dist/core/primitive/Icon/index.js.map +1 -1
- package/dist/core/primitive/Input/index.d.ts +9 -4
- package/dist/core/primitive/Input/index.d.ts.map +1 -1
- package/dist/core/primitive/Input/index.js +13 -8
- package/dist/core/primitive/Input/index.js.map +1 -1
- package/dist/core/primitive/Meter/index.d.ts +4 -1
- package/dist/core/primitive/Meter/index.d.ts.map +1 -1
- package/dist/core/primitive/Meter/index.js +3 -3
- package/dist/core/primitive/Meter/index.js.map +1 -1
- package/dist/core/primitive/NumberField/index.d.ts +6 -5
- package/dist/core/primitive/NumberField/index.d.ts.map +1 -1
- package/dist/core/primitive/NumberField/index.js +10 -3
- package/dist/core/primitive/NumberField/index.js.map +1 -1
- package/dist/core/primitive/PinnedActionBar/index.d.ts +25 -6
- package/dist/core/primitive/PinnedActionBar/index.d.ts.map +1 -1
- package/dist/core/primitive/PinnedActionBar/index.js +9 -4
- package/dist/core/primitive/PinnedActionBar/index.js.map +1 -1
- package/dist/core/primitive/SearchField/index.d.ts +6 -5
- package/dist/core/primitive/SearchField/index.d.ts.map +1 -1
- package/dist/core/primitive/SearchField/index.js +10 -3
- package/dist/core/primitive/SearchField/index.js.map +1 -1
- package/dist/core/primitive/SectionHeader/index.d.ts +3 -3
- package/dist/core/primitive/SectionHeader/index.js +2 -2
- package/dist/core/primitive/SectionHeader/index.js.map +1 -1
- package/dist/core/primitive/Skeleton/index.d.ts +11 -0
- package/dist/core/primitive/Skeleton/index.d.ts.map +1 -1
- package/dist/core/primitive/Skeleton/index.js +12 -1
- package/dist/core/primitive/Skeleton/index.js.map +1 -1
- package/dist/core/primitive/StatusDot/index.d.ts +61 -0
- package/dist/core/primitive/StatusDot/index.d.ts.map +1 -0
- package/dist/core/primitive/StatusDot/index.js +55 -0
- package/dist/core/primitive/StatusDot/index.js.map +1 -0
- package/dist/core/primitive/Switch/index.d.ts +4 -3
- package/dist/core/primitive/Switch/index.d.ts.map +1 -1
- package/dist/core/primitive/Switch/index.js +5 -2
- package/dist/core/primitive/Switch/index.js.map +1 -1
- package/dist/core/primitive/Terminal/index.d.ts +20 -0
- package/dist/core/primitive/Terminal/index.d.ts.map +1 -0
- package/dist/core/primitive/Terminal/index.js +29 -0
- package/dist/core/primitive/Terminal/index.js.map +1 -0
- package/dist/core/primitive/Text/index.d.ts +5 -1
- package/dist/core/primitive/Text/index.d.ts.map +1 -1
- package/dist/core/primitive/Text/index.js +12 -7
- package/dist/core/primitive/Text/index.js.map +1 -1
- package/dist/core/primitive/TextAction/index.d.ts.map +1 -1
- package/dist/core/primitive/TextAction/index.js +9 -4
- package/dist/core/primitive/TextAction/index.js.map +1 -1
- package/dist/core/primitive/Textarea/index.d.ts +8 -4
- package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
- package/dist/core/primitive/Textarea/index.js +9 -5
- package/dist/core/primitive/Textarea/index.js.map +1 -1
- package/dist/core/styles.css +17 -5
- package/dist/offset-pop/components-forms.css +0 -17
- package/dist/offset-pop/components-navigation.css +30 -4
- package/dist/offset-pop/components-overlays.css +5 -0
- package/dist/offset-pop/index.d.ts +1 -1
- package/dist/offset-pop/index.d.ts.map +1 -1
- package/dist/offset-pop/styles.css +44 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Timeline/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAI1F,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,qDAAiE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Timeline/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAI1F,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,qDAAiE,aAAa,gCA4CtG,CAAA"}
|
|
@@ -10,6 +10,6 @@ import { Skeleton } from "../../primitive/Skeleton/index.js";
|
|
|
10
10
|
export const Timeline = ({ label, items, className, isLoading = false, loadingRows = 3 }) => (_jsx("ol", { "aria-label": label, "data-loading": String(isLoading), ...(isLoading ? { "aria-busy": true } : {}), className: navigationClassName("starci-core-timeline", className), "data-component": "Timeline", "data-contract": "HIERARCHY-3", "data-tier": "composite", children: isLoading && items.length === 0 ? Array.from({ length: Math.min(12, Math.max(1, Math.floor(Number.isFinite(loadingRows) ? loadingRows : 3))) }, (_, index) => (_jsxs("li", { "aria-hidden": "true", className: "starci-core-timeline-item", "data-contract": "STATE-1 STATE-8", "data-grammar-timeline-state": "neutral", "data-grammar-current": "false", "data-grammar-skeleton": "true", children: [_jsx("span", { "aria-hidden": "true", className: "starci-core-timeline-marker starci-core-timeline-skeleton-marker", "data-grammar-timeline-marker": "true", children: _jsx(Skeleton, { shape: "circle", size: "sm" }) }), _jsxs("div", { className: "starci-core-timeline-copy", children: [_jsx("div", { className: "starci-core-timeline-title", children: _jsx(Skeleton, { shape: "text" }) }), _jsx("span", { className: "starci-core-timeline-time", children: _jsx(Skeleton, { shape: "text" }) }), _jsx("div", { className: "starci-core-timeline-description", children: _jsx(Skeleton, { shape: "text" }) })] })] }, index))) : items.map((item) => {
|
|
11
11
|
const state = item.state ?? "neutral";
|
|
12
12
|
assertPresentationState(state);
|
|
13
|
-
return (_jsxs("li", { "aria-current": item.isCurrent ? "step" : undefined, className: "starci-core-timeline-item", "data-contract": "STATE-1 TRUTH-1", "data-grammar-timeline-state": state, "data-grammar-current": item.isCurrent ? "true" : "false", children: [_jsx("span", { "aria-hidden": "true", className: "starci-core-timeline-marker", "data-contract": "A11Y-2", "data-grammar-timeline-marker": "true", children: item.marker }), _jsxs("div", { className: "starci-core-timeline-copy", children: [_jsx("p", { className: "starci-core-timeline-title", children: item.title }), item.timeLabel === undefined ? null : (_jsx("time", { className: "starci-core-timeline-time", ...(item.dateTime === undefined ? {} : { dateTime: item.dateTime }), children: item.timeLabel })), item.description === undefined ? null : _jsx("div", { className: "starci-core-timeline-description", children: item.description })] })] }, item.id));
|
|
13
|
+
return (_jsxs("li", { "aria-current": item.isCurrent ? "step" : undefined, className: "starci-core-timeline-item", "data-contract": "STATE-1 TRUTH-1", "data-grammar-timeline-state": state, "data-grammar-current": item.isCurrent ? "true" : "false", "data-grammar-attention": item.isAttention ? "true" : undefined, children: [_jsx("span", { "aria-hidden": "true", className: "starci-core-timeline-marker", "data-contract": "A11Y-2", "data-grammar-timeline-marker": "true", children: item.marker }), _jsxs("div", { className: "starci-core-timeline-copy", children: [_jsx("p", { className: "starci-core-timeline-title", children: item.title }), item.timeLabel === undefined ? null : (_jsx("time", { className: "starci-core-timeline-time", ...(item.dateTime === undefined ? {} : { dateTime: item.dateTime }), children: item.timeLabel })), item.description === undefined ? null : _jsx("div", { className: "starci-core-timeline-description", children: item.description })] })] }, item.id));
|
|
14
14
|
}) }));
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Timeline/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,0BAA0B,CAAA;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Timeline/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,10 @@ export type SidebarItem = {
|
|
|
8
8
|
/** Visible description lines in the expanded sidebar (default one). */
|
|
9
9
|
readonly descriptionLines?: ItemDescriptionLines;
|
|
10
10
|
readonly source?: IconSource;
|
|
11
|
+
/**
|
|
12
|
+
* Trailing content, such as a `StatusDot`. The item's accessible name is its label, so the trailing content is
|
|
13
|
+
* referenced as its description (`aria-describedby`): a status beside the label is announced with it.
|
|
14
|
+
*/
|
|
11
15
|
readonly trailing?: ReactNode;
|
|
12
16
|
/** Unread or pending count, visible in both the expanded sidebar and the icon rail. */
|
|
13
17
|
readonly badge?: number | string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3E,OAAO,EAAiC,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGlG,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAerE,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,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5D,CAAA;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,mJAarB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3E,OAAO,EAAiC,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAGlG,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAerE,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,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5D,CAAA;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,mJAarB,YAAY,gCAkId,CAAA"}
|
|
@@ -59,11 +59,13 @@ export const Sidebar = ({ label, groups, selectedKey, presentation = "rail", isC
|
|
|
59
59
|
_jsxs(ListBox.Section, { id: sectionKey(group.id), className: sidebarSectionClassName, "data-grammar-sidebar-group-placement": group.placement ?? "start", "data-grammar-sidebar-end-start": group.placement === "end" && orderedGroups[groupIndex - 1]?.placement !== "end" ? "true" : undefined, "data-contract": "GAP-1", children: [group.label === undefined ? null : (_jsx(Header, { className: sidebarSectionLabelClassName, ...(collapsed ? {} : { "data-contract": "PADDING-2 PADDING-1 PADDING-3 FONT-1 TONE-2" }), children: group.label })), group.items.map((item) => {
|
|
60
60
|
const badgeText = iconButtonBadgeText(item.badge, item.badgeMax);
|
|
61
61
|
const accessibleLabel = badgeText === null ? item.label : `${item.label}, ${item.badgeLabel ?? badgeText}`;
|
|
62
|
+
// aria-label replaces the item's content as its name, so the trailing status is its description.
|
|
63
|
+
const trailingId = collapsed || item.trailing == null ? undefined : `${tooltipId}-trailing-${item.id.replaceAll(/\s/gu, "-")}`;
|
|
62
64
|
return (_jsxs(ListBox.Item, { id: item.id, textValue: item.label, className: sidebarItemClassName, "data-grammar-current": selectedKey === item.id ? "true" : "false", "aria-current": selectedKey === item.id ? "page" : undefined, "data-contract": collapsed ? "TONE-1 SURFACE-4" : "GAP-3 TONE-1 SURFACE-4", "aria-label": accessibleLabel, render: (props) => {
|
|
63
|
-
const describedBy = [props["aria-describedby"], collapsed && tooltip?.id === item.id ? tooltipId : undefined].filter(Boolean).join(" ") || undefined;
|
|
65
|
+
const describedBy = [props["aria-describedby"], trailingId, collapsed && tooltip?.id === item.id ? tooltipId : undefined].filter(Boolean).join(" ") || undefined;
|
|
64
66
|
return "href" in props ? _jsx("a", { ...props, "aria-describedby": describedBy }) : _jsx("div", { ...props, "aria-describedby": describedBy });
|
|
65
67
|
}, onHoverStart: (event) => showTooltip(event.target, item, "hover"), onHoverEnd: () => hideTooltip("hover"), onFocus: (event) => showTooltip(event.target, item, "focus"), onBlur: () => hideTooltip("focus"), onKeyDown: (event) => { if (event.key === "Escape")
|
|
66
|
-
hideTooltip(); }, ...(item.isDisabled === undefined ? {} : { isDisabled: item.isDisabled }), children: [item.source === undefined ? null : _jsx(Icon, { source: item.source, usage: "leading" }), collapsed ? null : item.description === undefined ? _jsx("span", { className: sidebarItemLabelClassName, "data-contract": "FLOW-4 FONT-2", children: item.label }) : (_jsxs("div", { "data-grammar-sidebar-copy": "true", children: [_jsx(HeroLabel, { className: sidebarItemLabelClassName, "data-grammar-item-label": "true", "data-contract": "FLOW-4 FONT-2", children: item.label }), _jsx(HeroDescription, { "data-grammar-item-description": "true", "data-grammar-description-lines": item.descriptionLines ?? itemPresentation.descriptionLines, children: item.description })] })), badgeText === null ? null : _jsx("span", { "aria-hidden": true, className: "starci-core-icon-button-badge starci-core-sidebar-item-badge", "data-grammar-sidebar-badge": "true", children: badgeText }),
|
|
68
|
+
hideTooltip(); }, ...(item.isDisabled === undefined ? {} : { isDisabled: item.isDisabled }), children: [item.source === undefined ? null : _jsx(Icon, { source: item.source, usage: "leading" }), collapsed ? null : item.description === undefined ? _jsx("span", { className: sidebarItemLabelClassName, "data-contract": "FLOW-4 FONT-2", children: item.label }) : (_jsxs("div", { "data-grammar-sidebar-copy": "true", children: [_jsx(HeroLabel, { className: sidebarItemLabelClassName, "data-grammar-item-label": "true", "data-contract": "FLOW-4 FONT-2", children: item.label }), _jsx(HeroDescription, { "data-grammar-item-description": "true", "data-grammar-description-lines": item.descriptionLines ?? itemPresentation.descriptionLines, children: item.description })] })), badgeText === null ? null : _jsx("span", { "aria-hidden": true, className: "starci-core-icon-button-badge starci-core-sidebar-item-badge", "data-grammar-sidebar-badge": "true", children: badgeText }), trailingId === undefined ? null : _jsx("span", { id: trailingId, className: sidebarItemTrailingClassName, children: item.trailing })] }, item.id));
|
|
67
69
|
})] }, group.id),
|
|
68
70
|
]) }), collapsed || footer == null ? null : _jsx("div", { className: sidebarFooterClassName, "data-contract": "PADDING-3 PADDING-0", children: footer })] }), _jsx(AnchoredTooltip, { id: tooltipId, target: tooltip?.target ?? null, content: tooltip?.label, isOpen: collapsed && tooltip !== null })] }));
|
|
69
71
|
return _jsx(SurfaceNesting, { children: content });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,6BAA6B,EAA6B,MAAM,yBAAyB,CAAA;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAmB,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACrF,OAAO,EACH,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,GACzB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export * from "../common/index.js";
|
|
|
3
3
|
export type { PresentationState } from "./state.js";
|
|
4
4
|
export { STARCI_CORE_BAND_TOKEN_NAMES, STARCI_CORE_DARK_TOKEN_DEFAULTS, STARCI_CORE_DNA, STARCI_CORE_SPACING_SCALE, STARCI_CORE_TOKEN_DEFAULTS, STARCI_CORE_TOKEN_NAMES, type StarCiCoreBandTokenName, type StarCiCoreDna, type StarCiCoreSpacingStep, type StarCiCoreSpacingValue, type StarCiCoreTokenDefaults, type StarCiCoreTokenName, } from "./dna.js";
|
|
5
5
|
export declare const coreGrammar: import("./index.js").GrammarFamilyContract<"core", {}>;
|
|
6
|
-
export declare const CoreGrammarRoot: ({ className, theme, ...props }: GrammarRootProps) => import("react").JSX.Element;
|
|
6
|
+
export declare const CoreGrammarRoot: ({ className, theme, navigate, useHref, ...props }: GrammarRootProps) => import("react").JSX.Element;
|
|
7
7
|
export declare const coreRuleConformance: Readonly<{
|
|
8
8
|
familyId: string;
|
|
9
9
|
inheritedCommonRules: readonly string[];
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,mBAAmB,EAGnB,KAAK,gBAAgB,EACxB,MAAM,oBAAoB,CAAA;AAM3B,cAAc,oBAAoB,CAAA;AAElC,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EACH,4BAA4B,EAC5B,+BAA+B,EAC/B,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GAC3B,MAAM,UAAU,CAAA;AAQjB,eAAO,MAAM,WAAW,wDAOtB,CAAA;AAEF,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,mBAAmB,EAGnB,KAAK,gBAAgB,EACxB,MAAM,oBAAoB,CAAA;AAM3B,cAAc,oBAAoB,CAAA;AAElC,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EACH,4BAA4B,EAC5B,+BAA+B,EAC/B,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GAC3B,MAAM,UAAU,CAAA;AAQjB,eAAO,MAAM,WAAW,wDAOtB,CAAA;AAEF,eAAO,MAAM,eAAe,sGAAqC,CAAA;AAEjE,eAAO,MAAM,mBAAmB;;;;;;EAI9B,CAAA;AAGF,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAC9B,YAAY,EACR,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,oBAAoB,CAAA"}
|
|
@@ -52,7 +52,7 @@ export declare const AvatarAgentBadge: ({ children, kind, size, renderedScale, c
|
|
|
52
52
|
readonly size: AvatarSize;
|
|
53
53
|
readonly renderedScale?: number;
|
|
54
54
|
readonly className?: string;
|
|
55
|
-
}) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> |
|
|
55
|
+
}) => string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
|
|
56
56
|
/** Uploaded image or local DiceBear initials, with the same person name rule for an AI agent (A11Y-2). */
|
|
57
57
|
export declare const Avatar: ({ name, src, seed, kind, fallback, size, shape, isDecorative, isCurrent, className, isSkeleton }: AvatarProps) => import("react").JSX.Element;
|
|
58
58
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
export type BadgeTone = "neutral" | "accent" | "success" | "warning" | "danger";
|
|
2
|
+
export type BadgeTone = "neutral" | "accent" | "success" | "warning" | "danger" | "muted";
|
|
3
3
|
export type BadgeProps = {
|
|
4
4
|
readonly children?: ReactNode;
|
|
5
5
|
/** App-owned status glyph or artwork. */
|
|
6
6
|
readonly startContent?: ReactNode;
|
|
7
|
+
/** `muted` is the quiet tone: no fill, muted ink. */
|
|
7
8
|
readonly tone?: BadgeTone;
|
|
8
9
|
/**
|
|
9
|
-
* A leading status dot
|
|
10
|
-
*
|
|
10
|
+
* A leading status dot, rendered through the `StatusDot` text anatomy (a soft HeroUI Chip, the shared dot-size
|
|
11
|
+
* token, a gap-1 dot-to-text gap, an uppercase first letter), so a dot chip matches StatusDot everywhere.
|
|
12
|
+
* `muted` has no dot tone and draws a neutral dot.
|
|
11
13
|
*/
|
|
12
14
|
readonly isDot?: boolean;
|
|
13
15
|
readonly isSkeleton?: boolean;
|
|
14
16
|
};
|
|
15
17
|
/**
|
|
16
|
-
* Compact semantic status or figure; product glyph identity remains app-owned. `isDot`
|
|
17
|
-
*
|
|
18
|
+
* Compact semantic status or figure; product glyph identity remains app-owned. `isDot` renders through
|
|
19
|
+
* `StatusDotChip`, the same anatomy as `StatusDot` with text. `muted` uses HeroUI's tertiary Chip (transparent
|
|
20
|
+
* fill) with the muted ink on its content, so no vendor rule is overridden.
|
|
18
21
|
*
|
|
19
22
|
* The glyph and its words share one status owner. Contract: TRUTH-1 (the tone is stated, never
|
|
20
23
|
* inferred, and defaults to neutral).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Badge/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Badge/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEzF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,qDAAqD;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAeD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAAI,qDAAiF,UAAU,gCAsChH,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Chip, skeletonVariants } from "@heroui/react";
|
|
3
|
-
import {
|
|
3
|
+
import { StatusDotChip } from "../StatusDot/index.js";
|
|
4
4
|
const TONE_COLORS = {
|
|
5
|
+
muted: "default",
|
|
5
6
|
neutral: "default",
|
|
6
7
|
accent: "accent",
|
|
7
8
|
success: "success",
|
|
@@ -12,11 +13,19 @@ const SKELETON_CLASS_NAME = skeletonVariants({ animationType: "shimmer" }).base(
|
|
|
12
13
|
className: "select-none text-transparent",
|
|
13
14
|
});
|
|
14
15
|
/**
|
|
15
|
-
* Compact semantic status or figure; product glyph identity remains app-owned. `isDot`
|
|
16
|
-
*
|
|
16
|
+
* Compact semantic status or figure; product glyph identity remains app-owned. `isDot` renders through
|
|
17
|
+
* `StatusDotChip`, the same anatomy as `StatusDot` with text. `muted` uses HeroUI's tertiary Chip (transparent
|
|
18
|
+
* fill) with the muted ink on its content, so no vendor rule is overridden.
|
|
17
19
|
*
|
|
18
20
|
* The glyph and its words share one status owner. Contract: TRUTH-1 (the tone is stated, never
|
|
19
21
|
* inferred, and defaults to neutral).
|
|
20
22
|
*/
|
|
21
|
-
export const Badge = ({ children, startContent, tone = "neutral", isDot = false, isSkeleton = false }) =>
|
|
23
|
+
export const Badge = ({ children, startContent, tone = "neutral", isDot = false, isSkeleton = false }) => {
|
|
24
|
+
if (isDot) {
|
|
25
|
+
return (_jsx(StatusDotChip, { component: "Badge", tone: tone === "muted" ? "neutral" : tone, size: "sm", extra: { "data-contract": "TRUTH-1", "data-grammar-badge-dot": "true", "data-loading": isSkeleton ? "true" : "false", "data-badge-tone": tone }, isSkeleton: isSkeleton, children: startContent === undefined ? children ?? " " : _jsxs(_Fragment, { children: [startContent, children] }) }));
|
|
26
|
+
}
|
|
27
|
+
// Skeleton parity: the start content stays laid out as an unseen measured placeholder, so the chip keeps its width.
|
|
28
|
+
const content = startContent;
|
|
29
|
+
return (_jsx(Chip, { "data-tier": "atom", "data-component": "Badge", "data-contract": "TRUTH-1", "data-tone": tone, "data-loading": isSkeleton ? "true" : "false", color: TONE_COLORS[tone], variant: tone === "muted" ? "tertiary" : "soft", size: "sm", ...(isSkeleton ? { "aria-hidden": true, className: SKELETON_CLASS_NAME } : {}), children: tone === "muted" && !isSkeleton ? (_jsxs("span", { className: "starci-core-badge-muted", children: [content, children ?? " "] })) : (_jsxs(_Fragment, { children: [content, children ?? " "] })) }));
|
|
30
|
+
};
|
|
22
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Badge/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Badge/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAmBrD,MAAM,WAAW,GAAG;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACV,CAAA;AAEV,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;IAC5E,SAAS,EAAE,8BAA8B;CAC5C,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAc,EAAE,EAAE;IACjH,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,CACH,KAAC,aAAa,IACV,SAAS,EAAC,OAAO,EACjB,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EACzC,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAC/I,UAAU,EAAE,UAAU,YAErB,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,8BAAG,YAAY,EAAE,QAAQ,IAAI,GACjE,CACnB,CAAA;IACL,CAAC;IACD,oHAAoH;IACpH,MAAM,OAAO,GAAG,YAAY,CAAA;IAC5B,OAAO,CACH,KAAC,IAAI,iBACS,MAAM,oBACD,OAAO,mBACR,SAAS,eACZ,IAAI,kBACD,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC3C,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EACxB,OAAO,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAC/C,IAAI,EAAC,IAAI,KACL,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAE9E,IAAI,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAC/B,gBAAM,SAAS,EAAC,yBAAyB,aAAE,OAAO,EAAE,QAAQ,IAAI,GAAG,IAAQ,CAC9E,CAAC,CAAC,CAAC,CACA,8BACK,OAAO,EACP,QAAQ,IAAI,GAAG,IACjB,CACN,GACE,CACV,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
2
|
import { type ButtonIntentProps } from "../../buttonIntent.js";
|
|
3
3
|
/**
|
|
4
4
|
* The vendor's own Button variants, one to one (HeroUI v3 `buttonVariants`: primary, secondary, tertiary,
|
|
@@ -20,7 +20,15 @@ type ButtonBase = {
|
|
|
20
20
|
/** Directional or explanatory content after the label. */
|
|
21
21
|
readonly endContent?: ReactNode;
|
|
22
22
|
readonly isDisabled?: boolean;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Why the action is unavailable. A disabled Button shows these words in a Tooltip on hover and keyboard focus
|
|
25
|
+
* and carries them as its accessible description. It has no effect while the Button is enabled.
|
|
26
|
+
*/
|
|
27
|
+
readonly disabledReason?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Initial unresolved-content geometry. It is distinct from action-owned pending. Skeleton parity: the loading Button keeps
|
|
30
|
+
* the ready box (control height, label and start/end content laid out as an unseen measured placeholder).
|
|
31
|
+
*/
|
|
24
32
|
readonly isSkeleton?: boolean;
|
|
25
33
|
/** Pending belongs to the action that started the work and blocks duplicate presses. */
|
|
26
34
|
readonly isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Button/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Button/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEtF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,CAAA;AACjH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;AACvD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AACtD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAA;AAE5C,KAAK,UAAU,GAAG;IACd,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,oGAAoG;IACpG,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,wFAAwF;IACxF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAC/B,CAAA;AAED;;;;GAIG;AACH,KAAK,iBAAiB,GAAG;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACpC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CACxB,CAAA;AAED,4FAA4F;AAC5F,KAAK,aAAa,GAAG;IACjB,8FAA8F;IAC9F,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAC5B,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,iBAAiB,GAAG,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAA;AAiB9F,0FAA0F;AAC1F,eAAO,MAAM,MAAM,GAAI,OAAO,WAAW,gCAcxC,CAAA"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Button as HeroButton, Link as HeroLink, Spinner as HeroSpinner, buttonVariants, skeletonVariants } from "@heroui/react";
|
|
4
|
+
import { useId } from "react";
|
|
5
|
+
import { Tooltip } from "../../branch/Tooltip/index.js";
|
|
4
6
|
import { useButtonIntentVariant } from "../../buttonIntent.js";
|
|
5
7
|
const VARIANTS = {
|
|
6
8
|
primary: "primary",
|
|
@@ -17,15 +19,24 @@ const SKELETON_CLASS_NAME = skeletonVariants({ animationType: "shimmer" }).base(
|
|
|
17
19
|
});
|
|
18
20
|
/** Button-shaped action: an anchor for a destination, the vendor button for a command. */
|
|
19
21
|
export const Button = (props) => {
|
|
20
|
-
const
|
|
22
|
+
const reasonId = useId();
|
|
23
|
+
const reason = props.disabledReason;
|
|
24
|
+
const explained = props.isDisabled === true && reason !== undefined && reason !== "";
|
|
25
|
+
const control = _jsx(ButtonControl, { ...props, ...(explained ? { reasonId } : {}) });
|
|
26
|
+
if (!explained)
|
|
27
|
+
return control;
|
|
28
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", { id: reasonId, hidden: true, children: reason }), _jsx(Tooltip, { content: reason, isDisabledTrigger: true, triggerDescribedBy: reasonId, children: control })] }));
|
|
29
|
+
};
|
|
30
|
+
const ButtonControl = (props) => {
|
|
31
|
+
const { children, variant: legacyVariant = "secondary", size = "md", startContent, endContent, isDisabled = false, isSkeleton = false, isPending = false, width = "content", reasonId, } = props;
|
|
21
32
|
const variant = useButtonIntentVariant(props.intent, props.step, "button") ?? legacyVariant;
|
|
22
33
|
const unavailable = isDisabled || isPending || isSkeleton;
|
|
23
|
-
const content = (_jsxs(_Fragment, { children: [
|
|
34
|
+
const content = (_jsxs(_Fragment, { children: [isPending && !isSkeleton ? _jsx(HeroSpinner, { size: "sm", color: "current", "aria-hidden": "true" }) : startContent, _jsx("span", { "aria-busy": isPending || undefined, children: children }), isPending && !isSkeleton ? null : endContent] }));
|
|
24
35
|
if (props.href !== undefined) {
|
|
25
36
|
const { href, target, rel, download, onFollow } = props;
|
|
26
|
-
return (_jsx(HeroLink, { "data-tier": "atom", "data-component": "Button", "data-size": size, "data-grammar-control-size": size === "control" ? "control" : undefined, "data-element": unavailable ? "span" : "a", "data-loading": isSkeleton ? "true" : "false", "data-action-pending": isPending ? "true" : "false", isDisabled: unavailable, "aria-busy": isPending || undefined, "aria-hidden": isSkeleton || undefined, "data-width": width, "data-contract": width === "fill" ? "MEASURE-2" : undefined, className: buttonVariants({ variant: VARIANTS[variant], size: SIZES[size], fullWidth: width === "fill", className: isSkeleton ? `starci-core-button ${SKELETON_CLASS_NAME}` : "starci-core-button" }), ...(unavailable ? {} : { href }), ...(target === undefined ? {} : { target }), ...(rel === undefined ? target === "_blank" ? { rel: "noopener noreferrer" } : {} : { rel }), ...(download === undefined ? {} : { download }), ...(onFollow === undefined || unavailable ? {} : { onClick: onFollow }), children: content }));
|
|
37
|
+
return (_jsx(HeroLink, { "data-tier": "atom", "data-component": "Button", "data-size": size, "data-grammar-control-size": size === "control" ? "control" : undefined, "data-element": unavailable ? "span" : "a", "data-loading": isSkeleton ? "true" : "false", "data-action-pending": isPending ? "true" : "false", isDisabled: unavailable, ...(reasonId === undefined ? {} : { "aria-describedby": reasonId }), "aria-busy": isPending || undefined, "aria-hidden": isSkeleton || undefined, "data-width": width, "data-contract": width === "fill" ? "MEASURE-2" : undefined, className: buttonVariants({ variant: VARIANTS[variant], size: SIZES[size], fullWidth: width === "fill", className: isSkeleton ? `starci-core-button ${SKELETON_CLASS_NAME}` : "starci-core-button" }), ...(unavailable ? {} : { href }), ...(target === undefined ? {} : { target }), ...(rel === undefined ? target === "_blank" ? { rel: "noopener noreferrer" } : {} : { rel }), ...(download === undefined ? {} : { download }), ...(onFollow === undefined || unavailable ? {} : { onClick: onFollow }), children: content }));
|
|
27
38
|
}
|
|
28
39
|
const { onPress, type = "button" } = props;
|
|
29
|
-
return (_jsx(HeroButton, { "data-tier": "atom", "data-component": "Button", "data-size": size, "data-grammar-control-size": size === "control" ? "control" : undefined, "data-element": "button", "data-loading": isSkeleton ? "true" : "false", "data-action-pending": isPending ? "true" : "false", type: type, variant: VARIANTS[variant], size: SIZES[size], isDisabled: unavailable, isPending: isPending, "data-width": width, "data-contract": width === "fill" ? "MEASURE-2" : undefined, fullWidth: width === "fill", ...(props["aria-pressed"] === undefined ? {} : { "aria-pressed": props["aria-pressed"] }), className: isSkeleton ? `starci-core-button ${SKELETON_CLASS_NAME}` : "starci-core-button", ...(unavailable || onPress === undefined ? {} : { onPress }), children: content }));
|
|
40
|
+
return (_jsx(HeroButton, { "data-tier": "atom", "data-component": "Button", "data-size": size, "data-grammar-control-size": size === "control" ? "control" : undefined, "data-element": "button", "data-loading": isSkeleton ? "true" : "false", "data-action-pending": isPending ? "true" : "false", type: type, variant: VARIANTS[variant], size: SIZES[size], isDisabled: unavailable, ...(reasonId === undefined ? {} : { "aria-describedby": reasonId }), isPending: isPending, "data-width": width, "data-contract": width === "fill" ? "MEASURE-2" : undefined, fullWidth: width === "fill", ...(props["aria-pressed"] === undefined ? {} : { "aria-pressed": props["aria-pressed"] }), className: isSkeleton ? `starci-core-button ${SKELETON_CLASS_NAME}` : "starci-core-button", ...(unavailable || onPress === undefined ? {} : { onPress }), children: content }));
|
|
30
41
|
};
|
|
31
42
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Button/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,IAAI,IAAI,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Button/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ export type CheckboxProps = Omit<FieldControlProps, "isLabelHidden"> & {
|
|
|
10
10
|
readonly isIndeterminate?: boolean;
|
|
11
11
|
/** Defaults to `secondary` inside a Grammar surface and `primary` outside (ANATOMY-2 case-1). */
|
|
12
12
|
readonly variant?: "primary" | "secondary";
|
|
13
|
+
/** Initial unresolved content (knowledge STATE-8): the same anatomy, inert, its control painted as a Skeleton. */
|
|
14
|
+
readonly isSkeleton?: boolean;
|
|
13
15
|
};
|
|
14
16
|
/** Shared checkbox anatomy. Also rendered by CheckboxGroup for each of its options. */
|
|
15
17
|
export declare const CheckboxItem: ({ label, description, errorMessage, isStandalone }: {
|
|
@@ -20,8 +22,8 @@ export declare const CheckboxItem: ({ label, description, errorMessage, isStanda
|
|
|
20
22
|
readonly isStandalone: boolean;
|
|
21
23
|
}) => import("react").JSX.Element;
|
|
22
24
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
26
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
25
27
|
*/
|
|
26
|
-
export declare const Checkbox: ({
|
|
28
|
+
export declare const Checkbox: ({ isSkeleton, ...props }: CheckboxProps) => import("react").JSX.Element;
|
|
27
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Checkbox/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Checkbox/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAQH,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG;IACnE,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IACzD,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,iGAAiG;IACjG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC1C,kHAAkH;IAClH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,YAAY,GAAI,oDAAoD;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CACjC,gCAWA,CAAA;AAQD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,0BAAkC,aAAa,gCAEpC,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useFieldVariant } from "../../surfaceContext.js";
|
|
4
4
|
import { Checkbox as HeroCheckbox } from "@heroui/react";
|
|
5
|
-
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, vendorFieldProps, } from "../Field/index.js";
|
|
5
|
+
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeletonScope, loadingFieldProps, fieldVariantAttributes, vendorFieldProps, } from "../Field/index.js";
|
|
6
6
|
/** Shared checkbox anatomy. Also rendered by CheckboxGroup for each of its options. */
|
|
7
7
|
export const CheckboxItem = ({ label, description, errorMessage, isStandalone }) => (_jsxs(_Fragment, { children: [_jsxs(HeroCheckbox.Content, { className: "starci-core-choice-content", "data-grammar-choice-target": "true", children: [_jsx(HeroCheckbox.Control, { className: "starci-core-choice-control", "data-grammar-choice-control": "checkbox", children: _jsx(HeroCheckbox.Indicator, {}) }), _jsx(FieldLabel, { children: label })] }), _jsx(FieldDescription, { children: description }), isStandalone ? _jsx(FieldErrorText, { children: errorMessage }) : null] }));
|
|
8
8
|
/*
|
|
@@ -10,11 +10,18 @@ export const CheckboxItem = ({ label, description, errorMessage, isStandalone })
|
|
|
10
10
|
* stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-choice`, so
|
|
11
11
|
* a rule on the hook adds to the shared anatomy and never has to replace it.
|
|
12
12
|
*/
|
|
13
|
+
/**
|
|
14
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
15
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
16
|
+
*/
|
|
17
|
+
export const Checkbox = ({ isSkeleton = false, ...props }) => isSkeleton
|
|
18
|
+
? _jsx(FieldSkeletonScope, { component: "Checkbox", children: _jsx(CheckboxControl, { ...loadingFieldProps(props) }) })
|
|
19
|
+
: _jsx(CheckboxControl, { ...props });
|
|
13
20
|
/**
|
|
14
21
|
* One on/off choice with its label as part of the hit area. Space toggles; the vendor supplies the
|
|
15
22
|
* native checkbox input, `aria-checked="mixed"` for indeterminate, and required/invalid wiring.
|
|
16
23
|
*/
|
|
17
|
-
|
|
24
|
+
const CheckboxControl = ({ value, isSelected, defaultSelected, onSelectedChange, isIndeterminate = false, variant: requestedVariant, ...field }) => {
|
|
18
25
|
const variant = useFieldVariant(requestedVariant);
|
|
19
26
|
return (_jsx(HeroCheckbox, { "data-tier": "atom", "data-component": "Checkbox", "data-contract": "A11Y-1 STATE-1", className: "starci-core-choice starci-core-checkbox", variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, isIndeterminate: isIndeterminate, ...(value === undefined ? {} : { value }), ...(isSelected === undefined ? defaultSelected === undefined ? {} : { defaultSelected } : { isSelected }), ...(onSelectedChange === undefined ? {} : { onChange: onSelectedChange }), children: _jsx(CheckboxItem, { label: field.label, description: field.description, errorMessage: field.errorMessage, isStandalone: true }) }));
|
|
20
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAExD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAExD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,mBAAmB,CAAA;AAgB1B,uFAAuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAM5E,EAAE,EAAE,CAAC,CACF,8BACI,MAAC,YAAY,CAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,gCAA4B,MAAM,aAC1F,KAAC,YAAY,CAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,iCAA6B,UAAU,YAC/F,KAAC,YAAY,CAAC,SAAS,KAAG,GACP,EACvB,KAAC,UAAU,cAAE,KAAK,GAAc,IACb,EACvB,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EACjD,YAAY,CAAC,CAAC,CAAC,KAAC,cAAc,cAAE,YAAY,GAAkB,CAAC,CAAC,CAAC,IAAI,IACvE,CACN,CAAA;AAED;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,KAAK,EAAiB,EAAE,EAAE,CAAC,UAAU;IACnF,CAAC,CAAC,KAAC,kBAAkB,IAAC,SAAS,EAAC,UAAU,YAAC,KAAC,eAAe,OAAK,iBAAiB,CAAC,KAAK,CAAC,GAAI,GAAqB;IACjH,CAAC,CAAC,KAAC,eAAe,OAAK,KAAK,GAAI,CAAA;AAEpC;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,EACrB,KAAK,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,GAAG,KAAK,EACvB,OAAO,EAAE,gBAAgB,EACzB,GAAG,KAAK,EACwB,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACjD,OAAO,CACH,KAAC,YAAY,iBACC,MAAM,oBACD,UAAU,mBACX,gBAAgB,EAC9B,SAAS,EAAC,yCAAyC,EACnD,OAAO,EAAE,OAAO,KACZ,sBAAsB,CAAC,OAAO,CAAC,KAC/B,gBAAgB,CAAC,KAAK,CAAC,EAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,EACrC,eAAe,EAAE,eAAe,KAC5B,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KACtC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KACtG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,YAE1E,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,YAAY,SAAG,GACxG,CAClB,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export type CodeProps = {
|
|
3
|
+
/** The literal: an identifier, a path, a command, a value. */
|
|
4
|
+
readonly children: ReactNode;
|
|
5
|
+
/** Unresolved literal (knowledge STATE-8): the same plate, its text laid out unseen under a shimmer (skeleton parity). */
|
|
6
|
+
readonly isSkeleton?: boolean;
|
|
7
|
+
};
|
|
8
|
+
/** ATOM - `Code`: inline code, a `<code>` in the monospace stack on a soft plate. A block of code is `FencedCodeBlock`. */
|
|
9
|
+
export declare const Code: ({ children, isSkeleton }: CodeProps) => import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Code/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,MAAM,MAAM,SAAS,GAAG;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,0HAA0H;IAC1H,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,2HAA2H;AAC3H,eAAO,MAAM,IAAI,GAAI,0BAAkC,SAAS,gCAI/D,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { SkeletonPlaceholder } from "../Skeleton/index.js";
|
|
3
|
+
/** ATOM - `Code`: inline code, a `<code>` in the monospace stack on a soft plate. A block of code is `FencedCodeBlock`. */
|
|
4
|
+
export const Code = ({ children, isSkeleton = false }) => isSkeleton ? (_jsx("code", { "data-tier": "atom", "data-component": "Code", "data-loading": "true", "aria-hidden": "true", className: "starci-core-code", children: _jsx(SkeletonPlaceholder, { children: children }) })) : (_jsx("code", { "data-tier": "atom", "data-component": "Code", className: "starci-core-code", children: children }));
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Code/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAS1D,2HAA2H;AAC3H,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,KAAK,EAAa,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAC9E,4BAAgB,MAAM,oBAAgB,MAAM,kBAAc,MAAM,iBAAa,MAAM,EAAC,SAAS,EAAC,kBAAkB,YAAC,KAAC,mBAAmB,cAAE,QAAQ,GAAuB,GAAO,CAChL,CAAC,CAAC,CAAC,CACA,4BAAgB,MAAM,oBAAgB,MAAM,EAAC,SAAS,EAAC,kBAAkB,YAAE,QAAQ,GAAQ,CAC9F,CAAA"}
|
|
@@ -138,6 +138,8 @@ export type FieldProps = FieldControlProps & {
|
|
|
138
138
|
readonly id?: string;
|
|
139
139
|
/** Renders the control with the attributes that bind it to this field's label, guidance and error. */
|
|
140
140
|
readonly children: (control: FieldControlAttributes) => ReactNode;
|
|
141
|
+
/** Initial unresolved content (knowledge STATE-8): the same anatomy, inert, its control box painted as a Skeleton. */
|
|
142
|
+
readonly isSkeleton?: boolean;
|
|
141
143
|
};
|
|
142
144
|
/**
|
|
143
145
|
* Label + description + error for ANY control: a native element, a third-party widget, or an app's
|
|
@@ -145,33 +147,18 @@ export type FieldProps = FieldControlProps & {
|
|
|
145
147
|
* for everything else, with the id and `aria-describedby` / `aria-invalid` wiring handed to the
|
|
146
148
|
* control so a custom control is announced exactly like a Grammar one.
|
|
147
149
|
*/
|
|
148
|
-
export declare const Field: ({
|
|
149
|
-
export type FieldSkeletonKind = "select" | "textarea" | "input" | "segmented" | "choices" | "switch";
|
|
150
|
+
export declare const Field: ({ isSkeleton, ...props }: FieldProps) => import("react").JSX.Element;
|
|
150
151
|
/**
|
|
151
|
-
* Loading view of a
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
* Skeleton track beside the real label.
|
|
152
|
+
* Loading view of a form control (knowledge STATE-8), with skeleton parity: the control renders its READY anatomy at the same
|
|
153
|
+
* props (label, description, control box, options), so the loading field has the ready field's box by construction, inside
|
|
154
|
+
* this scope. The scope is layout-neutral (`display: contents`), `inert` (nothing focusable or announced but the
|
|
155
|
+
* root's `aria-busy`), and paints every control box in it (`data-grammar-field-control`, the Input control, the choice
|
|
156
|
+
* controls) as a Skeleton: its value, indicator or thumb is not drawn. Label and description stay real text.
|
|
157
157
|
*/
|
|
158
|
-
export declare const
|
|
158
|
+
export declare const FieldSkeletonScope: ({ component, children }: {
|
|
159
159
|
readonly component: string;
|
|
160
|
-
readonly
|
|
161
|
-
readonly label: ReactNode;
|
|
162
|
-
readonly isLabelHidden?: boolean | undefined;
|
|
163
|
-
readonly isRequired?: boolean | undefined;
|
|
164
|
-
readonly variant?: FieldVariant | undefined;
|
|
165
|
-
readonly kind: FieldSkeletonKind;
|
|
166
|
-
readonly rows?: number;
|
|
167
|
-
readonly count?: number;
|
|
168
|
-
readonly fill?: boolean;
|
|
169
|
-
readonly choiceLabels?: ReadonlyArray<ReactNode>;
|
|
170
|
-
readonly orientation?: "vertical" | "horizontal";
|
|
171
|
-
/** `switch` kind only: the track size the loaded control will have, so the Skeleton keeps its geometry. */
|
|
172
|
-
readonly switchSize?: "md" | "lg" | "control";
|
|
173
|
-
/** `segmented` kind only: the group size the loaded control will have, so the Skeleton keeps its height. */
|
|
174
|
-
readonly segmentedSize?: "md" | "lg" | "control";
|
|
175
|
-
readonly className: string;
|
|
160
|
+
readonly children: ReactNode;
|
|
176
161
|
}) => import("react").JSX.Element;
|
|
162
|
+
/** What a loading control drops from its props: nothing is invalid, in error or pending while it loads. */
|
|
163
|
+
export declare const loadingFieldProps: <P extends object>(props: P) => P;
|
|
177
164
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Field/index.tsx"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Field/index.tsx"],"names":[],"mappings":"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"}
|