@starci/grammar 0.12.14 → 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/LICENSE +21 -21
- package/README.md +34 -31
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-forms.css +28 -44
- 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/conformance.d.ts +3 -8
- package/dist/common/conformance.d.ts.map +1 -1
- package/dist/common/conformance.js +4 -9
- package/dist/common/conformance.js.map +1 -1
- 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/{rule-catalog.generated.d.ts → rule-catalog.d.ts} +1 -1
- package/dist/common/rule-catalog.d.ts.map +1 -0
- package/dist/common/{rule-catalog.generated.js → rule-catalog.js} +2 -4
- package/dist/common/rule-catalog.js.map +1 -0
- package/dist/common/styles.css +236 -48
- 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/buttonIntent.d.ts.map +1 -1
- package/dist/core/buttonIntent.js +1 -2
- package/dist/core/buttonIntent.js.map +1 -1
- package/dist/core/collectionItem.d.ts +3 -3
- package/dist/core/collectionItem.d.ts.map +1 -1
- package/dist/core/collectionItem.js +1 -2
- package/dist/core/collectionItem.js.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/dna.d.ts +1 -1
- package/dist/core/dna.js +1 -1
- package/dist/core/dna.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 +18 -6
- 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 +7 -12
- package/dist/common/rule-catalog.generated.d.ts.map +0 -1
- package/dist/common/rule-catalog.generated.js.map +0 -1
- package/dist/heritage/dna.d.ts +0 -63
- package/dist/heritage/dna.d.ts.map +0 -1
- package/dist/heritage/dna.js +0 -37
- package/dist/heritage/dna.js.map +0 -1
- package/dist/heritage/index.d.ts +0 -27
- package/dist/heritage/index.d.ts.map +0 -1
- package/dist/heritage/index.js +0 -46
- package/dist/heritage/index.js.map +0 -1
- package/dist/heritage/styles.css +0 -187
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Tooltip/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIpD,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE/C,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Tooltip/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIpD,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE/C,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;IACrC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,oHAAoH;IACpH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACvC,CAAA;AAED,uGAAuG;AACvG,eAAO,MAAM,OAAO,GAAI,yEAAyF,YAAY,gCA8B5H,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,yGAAyG;AACzG,eAAO,MAAM,eAAe,GAAI,iCAAiC,oBAAoB,gCAoBpF,CAAA"}
|
|
@@ -4,9 +4,9 @@ import { Tooltip as HeroTooltip } from "@heroui/react";
|
|
|
4
4
|
import { useOverlayContainer } from "../../overlayScope.js";
|
|
5
5
|
import { tooltipContentClassName } from "./classNames.js";
|
|
6
6
|
/** Hover/focus annotation with HeroUI's positioning, dismissal and accessible trigger relationship. */
|
|
7
|
-
export const Tooltip = ({ content, children, placement = "top" }) => {
|
|
7
|
+
export const Tooltip = ({ content, children, placement = "top", isDisabledTrigger = false, triggerDescribedBy }) => {
|
|
8
8
|
const { anchor, container } = useOverlayContainer("Tooltip");
|
|
9
|
-
return (_jsxs(HeroTooltip, { delay: 0, children: [children, anchor, container === null ? null : (_jsx(HeroTooltip.Content, { UNSTABLE_portalContainer: container, placement: placement, className: tooltipContentClassName, "data-grammar-tooltip": "true", "data-component": "Tooltip", "data-tier": "branch", "data-grammar-tooltip-content": "true", children: content }))] }));
|
|
9
|
+
return (_jsxs(HeroTooltip, { delay: 0, children: [isDisabledTrigger ? (_jsx(HeroTooltip.Trigger, { className: "starci-core-tooltip-disabled-trigger", "data-grammar-tooltip-disabled-trigger": "true", role: "group", ...(triggerDescribedBy === undefined ? {} : { "aria-describedby": triggerDescribedBy }), children: children })) : children, anchor, container === null ? null : (_jsx(HeroTooltip.Content, { UNSTABLE_portalContainer: container, placement: placement, className: tooltipContentClassName, "data-grammar-tooltip": "true", "data-component": "Tooltip", "data-tier": "branch", "data-grammar-tooltip-content": "true", children: content }))] }));
|
|
10
10
|
};
|
|
11
11
|
/** A collection owns its trigger events; HeroUI positions the controlled annotation beside that item. */
|
|
12
12
|
export const AnchoredTooltip = ({ id, target, content, isOpen }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Tooltip/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Tooltip/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AA0BzD,uGAAuG;AACvG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,EAAE,kBAAkB,EAAgB,EAAE,EAAE;IAC7H,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IAC5D,OAAO,CACH,MAAC,WAAW,IAAC,KAAK,EAAE,CAAC,aAChB,iBAAiB,CAAC,CAAC,CAAC,CACjB,KAAC,WAAW,CAAC,OAAO,IAChB,SAAS,EAAC,sCAAsC,2CACV,MAAM,EAC5C,IAAI,EAAC,OAAO,KACR,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC,YAEvF,QAAQ,GACS,CACzB,CAAC,CAAC,CAAC,QAAQ,EACX,MAAM,EACN,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzB,KAAC,WAAW,CAAC,OAAO,IAChB,wBAAwB,EAAE,SAAS,EACnC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,uBAAuB,0BACb,MAAM,oBACZ,SAAS,eACd,QAAQ,kCACW,MAAM,YAElC,OAAO,GACU,CACzB,IACS,CACjB,CAAA;AACL,CAAC,CAAA;AASD,yGAAyG;AACzG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAwB,EAAE,EAAE;IACrF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IAC5D,OAAO,CACH,MAAC,WAAW,IAAC,MAAM,EAAE,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,aACnD,MAAM,EACN,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzB,KAAC,WAAW,CAAC,OAAO,IAChB,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAC/B,wBAAwB,EAAE,SAAS,EACnC,SAAS,EAAC,OAAO,EACjB,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,uBAAuB,kCACL,MAAM,qCACH,MAAM,YAEtC,eAAM,EAAE,EAAE,EAAE,YAAG,OAAO,GAAQ,GACZ,CACzB,IACS,CACjB,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonIntent.d.ts","sourceRoot":"","sources":["../../src/core/buttonIntent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"buttonIntent.d.ts","sourceRoot":"","sources":["../../src/core/buttonIntent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAEhE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAC3F,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,CAAA;AACjD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE5D,2FAA2F;AAC3F,MAAM,MAAM,iBAAiB,GACvB;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,CAAA;AAgBzE,sGAAsG;AACtG,eAAO,MAAM,0BAA0B,GAAI,sBAAsB;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,gCAItI,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,GAAI,iCAAyC;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,gCAEhL,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,GAAI,QAAQ,YAAY,GAAG,SAAS,EAAE,MAAM,eAAe,GAAG,SAAS,EAAE,SAAS,QAAQ,GAAG,YAAY,KAAG,aAAa,GAAG,SAU9J,CAAA"}
|
|
@@ -3,11 +3,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { createContext, useContext } from "react";
|
|
4
4
|
import { STARCI_CORE_DNA } from "./dna.js";
|
|
5
5
|
import { OFFSET_POP_DNA } from "../offset-pop/dna.js";
|
|
6
|
-
import { HERITAGE_DNA } from "../heritage/dna.js";
|
|
7
6
|
const FamilyContext = createContext(STARCI_CORE_DNA.intent);
|
|
8
7
|
const PlacementContext = createContext({ placement: "decision", navbar: false });
|
|
9
8
|
/** Grammar roots select their own declared DNA mapping; nested roots start a fresh decision scope. */
|
|
10
|
-
export const ButtonIntentFamilyProvider = ({ family, children }) => (_jsx(FamilyContext.Provider, { value: family === "
|
|
9
|
+
export const ButtonIntentFamilyProvider = ({ family, children }) => (_jsx(FamilyContext.Provider, { value: family === "offset-pop" ? OFFSET_POP_DNA.intent : STARCI_CORE_DNA.intent, children: _jsx(ButtonPlacementProvider, { placement: "decision", children: children }) }));
|
|
11
10
|
/** Placement belongs to the Grammar composition, never to a Button's appearance props. */
|
|
12
11
|
export const ButtonPlacementProvider = ({ placement, navbar = false, children }) => (_jsx(PlacementContext.Provider, { value: { placement, navbar }, children: children }));
|
|
13
12
|
/** Resolve a command's facts through the active family's visual mapping. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonIntent.js","sourceRoot":"","sources":["../../src/core/buttonIntent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"buttonIntent.js","sourceRoot":"","sources":["../../src/core/buttonIntent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAuBrD,MAAM,aAAa,GAAG,aAAa,CAAgB,eAAe,CAAC,MAAM,CAAC,CAAA;AAC1E,MAAM,gBAAgB,GAAG,aAAa,CAAoE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;AAEnJ,sGAAsG;AACtG,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAA0E,EAAE,EAAE,CAAC,CACxI,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,YACnG,KAAC,uBAAuB,IAAC,SAAS,EAAC,UAAU,YAAE,QAAQ,GAA2B,GAC7D,CAC5B,CAAA;AAED,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAoG,EAAE,EAAE,CAAC,CAClL,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAG,QAAQ,GAA6B,CAClG,CAAA;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAgC,EAAE,IAAiC,EAAE,OAAgC,EAA6B,EAAE;IACvK,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACzC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAC1D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,KAAK,YAAY;YACrD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;IACzE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
-
/** Item previews support one, two or three visible lines; their full text remains accessible. */
|
|
3
|
-
export type ItemDescriptionLines = 1 | 2 | 3;
|
|
2
|
+
/** Item previews support one, two or three visible lines, or `wrap` to show every line; their full text remains accessible. */
|
|
3
|
+
export type ItemDescriptionLines = 1 | 2 | 3 | "wrap";
|
|
4
4
|
type CollectionItemPresentation = {
|
|
5
|
-
readonly descriptionLines: ItemDescriptionLines
|
|
5
|
+
readonly descriptionLines: Exclude<ItemDescriptionLines, "wrap">;
|
|
6
6
|
readonly unreadWeight: number;
|
|
7
7
|
};
|
|
8
8
|
/** Each Grammar root selects its family's item typography, including inside nested family scopes. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionItem.d.ts","sourceRoot":"","sources":["../../src/core/collectionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"collectionItem.d.ts","sourceRoot":"","sources":["../../src/core/collectionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjE,+HAA+H;AAC/H,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;AAErD,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;IAChE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAChC,CAAA;AAID,qGAAqG;AACrG,eAAO,MAAM,4BAA4B,GAAI,sBAAsB;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,gCAIxI,CAAA;AAED,mGAAmG;AACnG,eAAO,MAAM,6BAA6B,QAAO,0BAA+D,CAAA"}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { createContext, useContext } from "react";
|
|
4
4
|
import { STARCI_CORE_DNA } from "./dna.js";
|
|
5
|
-
import { HERITAGE_DNA } from "../heritage/dna.js";
|
|
6
5
|
import { OFFSET_POP_DNA } from "../offset-pop/dna.js";
|
|
7
6
|
const CollectionItemContext = createContext(STARCI_CORE_DNA.collectionItem);
|
|
8
7
|
/** Each Grammar root selects its family's item typography, including inside nested family scopes. */
|
|
9
|
-
export const CollectionItemFamilyProvider = ({ family, children }) => (_jsx(CollectionItemContext.Provider, { value: family === "
|
|
8
|
+
export const CollectionItemFamilyProvider = ({ family, children }) => (_jsx(CollectionItemContext.Provider, { value: family === "offset-pop" ? OFFSET_POP_DNA.collectionItem : STARCI_CORE_DNA.collectionItem, children: children }));
|
|
10
9
|
/** Shared collection renderers read their preview limits and unread weight from the active DNA. */
|
|
11
10
|
export const useCollectionItemPresentation = () => useContext(CollectionItemContext);
|
|
12
11
|
//# sourceMappingURL=collectionItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionItem.js","sourceRoot":"","sources":["../../src/core/collectionItem.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"collectionItem.js","sourceRoot":"","sources":["../../src/core/collectionItem.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAUrD,MAAM,qBAAqB,GAAG,aAAa,CAA6B,eAAe,CAAC,cAAc,CAAC,CAAA;AAEvG,qGAAqG;AACrG,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAA0E,EAAE,EAAE,CAAC,CAC1I,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,YAC1H,QAAQ,GACoB,CACpC,CAAA;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAA+B,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA"}
|
|
@@ -28,6 +28,11 @@ type AlertBase = {
|
|
|
28
28
|
*/
|
|
29
29
|
readonly urgency?: AlertUrgency;
|
|
30
30
|
readonly appearance?: AlertAppearance;
|
|
31
|
+
/**
|
|
32
|
+
* Unresolved banner (knowledge STATE-8): the same anatomy in the neutral tone, not announced (no status role), its
|
|
33
|
+
* glyph, title, description and actions laid out unseen under shimmers, so it keeps the ready box (skeleton parity).
|
|
34
|
+
*/
|
|
35
|
+
readonly isSkeleton?: boolean;
|
|
31
36
|
};
|
|
32
37
|
/** A dismissible banner must name its close action; a permanent one has neither prop. */
|
|
33
38
|
type Dismissible = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Alert/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Alert/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAIjE,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAGrE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAA;AACjD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,CAAA;AAEhD,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC7B,CAAA;AAED,KAAK,SAAS,GAAG;IACb,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAA;IACrC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,yFAAyF;AACzF,KAAK,WAAW,GAAG;IACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CAClC,CAAA;AAED,KAAK,SAAS,GAAG;IACb,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;AAsB9D;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,UAAU,uCAsDtC,CAAA"}
|
|
@@ -6,6 +6,7 @@ import { vendorStatusFor } from "../../overlayScope.js";
|
|
|
6
6
|
import { Button } from "../../primitive/Button/index.js";
|
|
7
7
|
import { CloseButton } from "../../primitive/CloseButton/index.js";
|
|
8
8
|
import { Icon } from "../../primitive/Icon/index.js";
|
|
9
|
+
import { SkeletonPlaceholder } from "../../primitive/Skeleton/index.js";
|
|
9
10
|
/**
|
|
10
11
|
* The action Button variant an Alert tone takes, as HeroUI v3's own Alert examples pair them: the accent
|
|
11
12
|
* Alert carries a `primary` Button ("Refresh"), the danger Alert a `danger` Button ("Retry"). HeroUI has no
|
|
@@ -38,7 +39,9 @@ const alertActionVariantFor = (tone) => {
|
|
|
38
39
|
* Contract: root FEEDBACK-3 (status/alert urgency on the owner); actions FEEDBACK-2 (recovery in place).
|
|
39
40
|
*/
|
|
40
41
|
export const Alert = (props) => {
|
|
41
|
-
const { title, description, tone = "informative", action, urgency, appearance = "surface" } = props;
|
|
42
|
+
const { title, description, tone: readyTone = "informative", action, urgency, appearance = "surface", isSkeleton = false } = props;
|
|
43
|
+
const tone = isSkeleton ? "neutral" : readyTone;
|
|
44
|
+
const unseen = (node) => isSkeleton ? _jsx(SkeletonPlaceholder, { children: node }) : node;
|
|
42
45
|
const [isDismissed, setIsDismissed] = useState(false);
|
|
43
46
|
if (isDismissed)
|
|
44
47
|
return null;
|
|
@@ -47,6 +50,8 @@ export const Alert = (props) => {
|
|
|
47
50
|
setIsDismissed(true);
|
|
48
51
|
props.onDismiss?.();
|
|
49
52
|
};
|
|
50
|
-
return (_jsxs(HeroAlert, { "data-tier": "composite", "data-component": "Alert", "data-grammar-tone": tone, "data-grammar-appearance": appearance, "data-urgency": resolvedUrgency, "data-contract": "FEEDBACK-3", role: resolvedUrgency === "assertive" ? "alert" : "status", status: vendorStatusFor(tone), className: "starci-core-alert", children: [_jsx(HeroAlert.Indicator, { className: "starci-core-alert-indicator", children: tone === "pending" ? _jsx(HeroSpinner, { "aria-hidden": "true", role: "presentation", size: "sm", color: "current" }) : undefined }), _jsxs(HeroAlert.Content, { className: "starci-core-alert-content", children: [_jsx(HeroAlert.Title, { className: "starci-core-alert-title", children: title }), description === undefined ? null : (_jsx(HeroAlert.Description, { className: "starci-core-alert-description", children: description }))] }), action === undefined && props.dismissLabel === undefined ? null : (_jsxs("span", { className: "starci-core-alert-actions", "data-grammar-alert-actions": "true", "data-contract": "FEEDBACK-2", children: [action === undefined ? null : (_jsx(Button, { size: "sm", variant: alertActionVariantFor(tone), onPress: action.onAction, ...(action.icon === undefined ? {} : { startContent: _jsx(Icon, { source: action.icon, usage: "leading" }) }), children: action.label })), props.dismissLabel === undefined ? null : (
|
|
53
|
+
return (_jsxs(HeroAlert, { "data-tier": "composite", "data-component": "Alert", "data-grammar-tone": tone, "data-grammar-appearance": appearance, "data-urgency": resolvedUrgency, "data-contract": "FEEDBACK-3", ...(isSkeleton ? { "data-loading": "true", "aria-busy": true } : { role: resolvedUrgency === "assertive" ? "alert" : "status" }), status: vendorStatusFor(tone), className: "starci-core-alert", children: [_jsx(HeroAlert.Indicator, { className: "starci-core-alert-indicator", children: tone === "pending" ? _jsx(HeroSpinner, { "aria-hidden": "true", role: "presentation", size: "sm", color: "current" }) : undefined }), _jsxs(HeroAlert.Content, { className: "starci-core-alert-content", children: [_jsx(HeroAlert.Title, { className: "starci-core-alert-title", children: unseen(title) }), description === undefined ? null : (_jsx(HeroAlert.Description, { className: "starci-core-alert-description", children: unseen(description) }))] }), action === undefined && props.dismissLabel === undefined ? null : (_jsxs("span", { className: "starci-core-alert-actions", "data-grammar-alert-actions": "true", "data-contract": "FEEDBACK-2", children: [action === undefined ? null : (_jsx(Button, { isSkeleton: isSkeleton, size: "sm", variant: alertActionVariantFor(tone), onPress: action.onAction, ...(action.icon === undefined ? {} : { startContent: _jsx(Icon, { source: action.icon, usage: "leading" }) }), children: action.label })), props.dismissLabel === undefined ? null : (isSkeleton
|
|
54
|
+
? _jsx(SkeletonPlaceholder, { shape: "circle", children: _jsx(CloseButton, { label: props.dismissLabel, size: "sm", onPress: dismiss }) })
|
|
55
|
+
: _jsx(CloseButton, { label: props.dismissLabel, size: "sm", onPress: dismiss }))] }))] }));
|
|
51
56
|
};
|
|
52
57
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Alert/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAsB,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,OAAO,EAAE,IAAI,EAAmB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Alert/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,14 +17,15 @@ export type CheckboxGroupProps = FieldControlProps & {
|
|
|
17
17
|
/** Defaults to `secondary` inside a Grammar surface and `primary` outside (ANATOMY-2 case-1). */
|
|
18
18
|
readonly variant?: "primary" | "secondary";
|
|
19
19
|
/**
|
|
20
|
-
* Initial unresolved content (knowledge STATE-8): the
|
|
21
|
-
*
|
|
20
|
+
* Initial unresolved content (knowledge STATE-8), with skeleton parity: the ready anatomy at the same props (label,
|
|
21
|
+
* description, control box, options) inside an inert, `aria-busy` scope, its control box painted as a Skeleton and its
|
|
22
|
+
* value or mark not drawn, so the loading field keeps the ready box. Nothing is invalid or pending while it loads.
|
|
22
23
|
*/
|
|
23
24
|
readonly isSkeleton?: boolean;
|
|
24
25
|
};
|
|
25
26
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
27
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
28
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
28
29
|
*/
|
|
29
|
-
export declare const CheckboxGroup: ({
|
|
30
|
+
export declare const CheckboxGroup: ({ isSkeleton, ...props }: CheckboxGroupProps) => import("react").JSX.Element;
|
|
30
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/CheckboxGroup/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/composite/CheckboxGroup/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAQH,KAAK,iBAAiB,EACzB,MAAM,gCAAgC,CAAA;AAGvC,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAA;AAEzD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,iGAAiG;IACjG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,0BAAkC,kBAAkB,gCAEzC,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useFieldVariant } from "../../surfaceContext.js";
|
|
4
4
|
import { Checkbox as HeroCheckbox, CheckboxGroup as HeroCheckboxGroup } from "@heroui/react";
|
|
5
|
-
import { FieldDescription, FieldErrorText, FieldLabel,
|
|
5
|
+
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeletonScope, loadingFieldProps, fieldVariantAttributes, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
6
6
|
import { CheckboxItem } from "../../primitive/Checkbox/index.js";
|
|
7
7
|
/*
|
|
8
8
|
* Consumer hook: `starci-core-choice-group` names this control's root for a consumer or family
|
|
@@ -14,12 +14,19 @@ import { CheckboxItem } from "../../primitive/Checkbox/index.js";
|
|
|
14
14
|
* stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-choice`, so
|
|
15
15
|
* a rule on the hook adds to the shared anatomy and never has to replace it.
|
|
16
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
19
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
20
|
+
*/
|
|
21
|
+
export const CheckboxGroup = ({ isSkeleton = false, ...props }) => isSkeleton
|
|
22
|
+
? _jsx(FieldSkeletonScope, { component: "CheckboxGroup", children: _jsx(CheckboxGroupControl, { ...loadingFieldProps(props) }) })
|
|
23
|
+
: _jsx(CheckboxGroupControl, { ...props });
|
|
17
24
|
/**
|
|
18
25
|
* Several independent choices under one group name (`role="group"`, labelled by the group label).
|
|
19
26
|
* Required means "at least one", validated by the vendor; the group owns the one error slot.
|
|
20
27
|
*/
|
|
21
|
-
|
|
28
|
+
const CheckboxGroupControl = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant: requestedVariant, ...field }) => {
|
|
22
29
|
const variant = useFieldVariant(requestedVariant);
|
|
23
|
-
return
|
|
30
|
+
return (_jsxs(HeroCheckboxGroup, { "data-tier": "composite", "data-component": "CheckboxGroup", "data-contract": "A11Y-1 FEEDBACK-1 STATE-1", "data-grammar-orientation": orientation, className: "starci-core-field starci-core-choice-group", variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue: [...defaultValue] } : { value: [...value] }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), children: [_jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsx(FieldDescription, { children: field.description }), _jsx("div", { className: "starci-core-choice-group-options", "data-grammar-field-control": "true", children: options.map((option) => (_jsx(HeroCheckbox, { value: option.value, isDisabled: option.isDisabled === true, className: "starci-core-choice starci-core-checkbox", variant: variant, "data-grammar-option": "true", children: _jsx(CheckboxItem, { label: option.label, description: option.description, isStandalone: false }) }, option.value))) }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
24
31
|
};
|
|
25
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/CheckboxGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE5F,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/CheckboxGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE5F,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AA4BhE;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,KAAK,EAAsB,EAAE,EAAE,CAAC,UAAU;IAC7F,CAAC,CAAC,KAAC,kBAAkB,IAAC,SAAS,EAAC,eAAe,YAAC,KAAC,oBAAoB,OAAK,iBAAiB,CAAC,KAAK,CAAC,GAAI,GAAqB;IAC3H,CAAC,CAAC,KAAC,oBAAoB,OAAK,KAAK,GAAI,CAAA;AAEzC;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,UAAU,EACxB,OAAO,EAAE,gBAAgB,EACzB,GAAG,KAAK,EAC6B,EAAE,EAAE;IACzC,MAAM,OAAO,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACjD,OAAO,CACH,MAAC,iBAAiB,iBACJ,WAAW,oBACN,eAAe,mBAChB,2BAA2B,8BACf,WAAW,EACrC,SAAS,EAAC,4CAA4C,EACtD,OAAO,EAAE,OAAO,KACZ,sBAAsB,CAAC,OAAO,CAAC,KAC/B,gBAAgB,CAAC,KAAK,CAAC,EAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,KACjC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KACrH,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,aAEpE,KAAC,UAAU,IAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,CAAC,KAAK,GAAc,EACnG,KAAC,gBAAgB,cAAE,KAAK,CAAC,WAAW,GAAoB,EACxD,cAAK,SAAS,EAAC,kCAAkC,gCAA4B,MAAM,YAC9E,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,KAAC,YAAY,IAET,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,UAAU,EAAE,MAAM,CAAC,UAAU,KAAK,IAAI,EACtC,SAAS,EAAC,yCAAyC,EACnD,OAAO,EAAE,OAAO,yBACI,MAAM,YAE1B,KAAC,YAAY,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,GAAI,IAPtF,MAAM,CAAC,KAAK,CAQN,CAClB,CAAC,GACA,EACN,KAAC,cAAc,cAAE,KAAK,CAAC,YAAY,GAAkB,IACrC,CACvB,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -36,8 +36,9 @@ export type DescriptionListProps = (PairLayout | StatStripLayout) & {
|
|
|
36
36
|
/** Draw a separator between pairs (between cells, for `stat-strip`). */
|
|
37
37
|
readonly isDivided?: boolean;
|
|
38
38
|
/**
|
|
39
|
-
* Unresolved values (knowledge STATE-8): every `term` stays real text
|
|
40
|
-
*
|
|
39
|
+
* Unresolved values (knowledge STATE-8): every `term` stays real text; each `description` (and a stat item meta) is
|
|
40
|
+
* laid out unseen under a shimmer bar, and a stat `unit` keeps its place unseen, so every cell keeps its ready size
|
|
41
|
+
* (skeleton parity). The list is `aria-busy`.
|
|
41
42
|
*/
|
|
42
43
|
readonly isLoading?: boolean;
|
|
43
44
|
readonly className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/DescriptionList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAI/D,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAA;CAClC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAA;AAExE,KAAK,UAAU,GAAG;IACd;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CACrD,CAAA;AAED,KAAK,eAAe,GAAG;IACnB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC,GAAG;IAChE,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/DescriptionList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAI/D,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAA;CAClC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAA;AAExE,KAAK,UAAU,GAAG;IACd;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CACrD,CAAA;AAED,KAAK,eAAe,GAAG;IACnB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,UAAU,GAAG,eAAe,CAAC,GAAG;IAChE,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,gCAuC1D,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { navigationClassName } from "../../navigationClassNames.js";
|
|
3
|
-
import {
|
|
3
|
+
import { SkeletonPlaceholder } from "../../primitive/Skeleton/index.js";
|
|
4
4
|
import { IconTile } from "../../primitive/IconTile/index.js";
|
|
5
5
|
/**
|
|
6
6
|
* Term/value pairs (details, metadata, settings summaries) as a real `<dl>`.
|
|
@@ -10,10 +10,11 @@ import { IconTile } from "../../primitive/IconTile/index.js";
|
|
|
10
10
|
*/
|
|
11
11
|
export const DescriptionList = (props) => {
|
|
12
12
|
const { isDivided = true, isLoading = false, className } = props;
|
|
13
|
-
|
|
13
|
+
// Skeleton parity: a loading value is laid out unseen under the shimmer, so the cell keeps the ready value's box.
|
|
14
|
+
const pending = (value) => _jsx(SkeletonPlaceholder, { children: value });
|
|
14
15
|
const layout = props.layout ?? "columns";
|
|
15
16
|
return (_jsx("dl", { className: navigationClassName("starci-core-description-list", className), "data-component": "DescriptionList", "data-contract": "HIERARCHY-3 TRUTH-1", "data-tier": "composite", ...(isLoading ? { "aria-busy": true, "data-loading": "true" } : {}), "data-grammar-description-layout": layout, "data-grammar-description-divided": isDivided ? "true" : "false", children: props.layout === "stat-strip"
|
|
16
|
-
? props.items.map((item) => (_jsxs("div", { className: "starci-core-description-pair", "data-grammar-description-pair": "true", children: [_jsxs("dt", { className: "starci-core-description-term starci-core-description-stat-term", children: [item.icon === undefined ? null : _jsx(IconTile, { source: item.icon, size: "sm", tone: "neutral" }), _jsx("span", { children: item.term })] }), _jsxs("dd", { className: "starci-core-description-value starci-core-description-figure", "data-contract": "FONT-5", children: [_jsx("span", { className: "starci-core-description-figure-value", children: isLoading ? pending : item.description }), item.unit === undefined
|
|
17
|
-
: props.items.map((item) => (_jsxs("div", { className: "starci-core-description-pair", "data-grammar-description-pair": "true", children: [_jsx("dt", { className: "starci-core-description-term", children: item.term }), _jsx("dd", { className: "starci-core-description-value", children: isLoading ? pending : item.description })] }, item.id))) }));
|
|
17
|
+
? props.items.map((item) => (_jsxs("div", { className: "starci-core-description-pair", "data-grammar-description-pair": "true", children: [_jsxs("dt", { className: "starci-core-description-term starci-core-description-stat-term", children: [item.icon === undefined ? null : _jsx(IconTile, { source: item.icon, size: "sm", tone: "neutral" }), _jsx("span", { children: item.term })] }), _jsxs("dd", { className: "starci-core-description-value starci-core-description-figure", "data-contract": "FONT-5", children: [_jsx("span", { className: "starci-core-description-figure-value", children: isLoading ? pending(item.description) : item.description }), item.unit === undefined ? null : _jsx("span", { className: "starci-core-description-unit", children: item.unit })] }), item.meta === undefined ? null : (_jsx("dd", { className: "starci-core-description-meta", "data-contract": "FONT-2", children: isLoading ? pending(item.meta) : item.meta }))] }, item.id)))
|
|
18
|
+
: props.items.map((item) => (_jsxs("div", { className: "starci-core-description-pair", "data-grammar-description-pair": "true", children: [_jsx("dt", { className: "starci-core-description-term", children: item.term }), _jsx("dd", { className: "starci-core-description-value", children: isLoading ? pending(item.description) : item.description })] }, item.id))) }));
|
|
18
19
|
};
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/DescriptionList/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/DescriptionList/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAmD5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC3D,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAChE,kHAAkH;IAClH,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAC,mBAAmB,cAAE,KAAK,GAAuB,CAAA;IACxF,MAAM,MAAM,GAA0B,KAAK,CAAC,MAAM,IAAI,SAAS,CAAA;IAC/D,OAAO,CACH,aACI,SAAS,EAAE,mBAAmB,CAAC,8BAA8B,EAAE,SAAS,CAAC,oBAC1D,iBAAiB,mBAClB,qBAAqB,eACzB,WAAW,KACjB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,qCACnC,MAAM,sCACL,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAE7D,KAAK,CAAC,MAAM,KAAK,YAAY;YAC1B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,eAAmB,SAAS,EAAC,8BAA8B,mCAA+B,MAAM,aAC5F,cAAI,SAAS,EAAC,gEAAgE,aACzE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,GAAG,EAC1F,yBAAO,IAAI,CAAC,IAAI,GAAQ,IACvB,EACL,cAAI,SAAS,EAAC,8DAA8D,mBAAe,QAAQ,aAC/F,eAAM,SAAS,EAAC,sCAAsC,YAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAQ,EACvH,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,8BAA8B,YAAE,IAAI,CAAC,IAAI,GAAQ,IAClG,EACJ,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9B,aAAI,SAAS,EAAC,8BAA8B,mBAAe,QAAQ,YAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAM,CACxH,KAXK,IAAI,CAAC,EAAE,CAYX,CACT,CAAC;YACF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,eAAmB,SAAS,EAAC,8BAA8B,mCAA+B,MAAM,aAC5F,aAAI,SAAS,EAAC,8BAA8B,YAAE,IAAI,CAAC,IAAI,GAAM,EAC7D,aAAI,SAAS,EAAC,+BAA+B,YAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAM,KAFvG,IAAI,CAAC,EAAE,CAGX,CACT,CAAC,GACL,CACR,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -8,10 +8,12 @@ export type RadioGroupProps = FieldControlProps & {
|
|
|
8
8
|
readonly orientation?: ChoiceOrientation;
|
|
9
9
|
/** Defaults to `secondary` inside a Grammar surface and `primary` outside (ANATOMY-2 case-1). */
|
|
10
10
|
readonly variant?: "primary" | "secondary";
|
|
11
|
+
/** Initial unresolved content (knowledge STATE-8): the same anatomy, inert, its control painted as a Skeleton. */
|
|
12
|
+
readonly isSkeleton?: boolean;
|
|
11
13
|
};
|
|
12
14
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
16
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
15
17
|
*/
|
|
16
|
-
export declare const RadioGroup: ({
|
|
18
|
+
export declare const RadioGroup: ({ isSkeleton, ...props }: RadioGroupProps) => import("react").JSX.Element;
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/RadioGroup/index.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/RadioGroup/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAQH,KAAK,iBAAiB,EACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAEhF,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG;IAC9C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,iGAAiG;IACjG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC1C,kHAAkH;IAClH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,0BAAkC,eAAe,gCAEtC,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useFieldVariant } from "../../surfaceContext.js";
|
|
4
4
|
import { Radio as HeroRadio, RadioGroup as HeroRadioGroup } from "@heroui/react";
|
|
5
|
-
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
5
|
+
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeletonScope, loadingFieldProps, fieldVariantAttributes, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
6
6
|
/*
|
|
7
7
|
* Consumer hook: `starci-core-choice-group` names this control's root for a consumer or family
|
|
8
8
|
* stylesheet. No shipped sheet paints it: the root is drawn as a whole by `.starci-core-field`, so
|
|
@@ -13,11 +13,18 @@ import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, v
|
|
|
13
13
|
* No shipped sheet paints it: the root is drawn as a whole by `.starci-core-choice`, so a rule on
|
|
14
14
|
* the hook adds to the shared anatomy and never has to replace it.
|
|
15
15
|
*/
|
|
16
|
+
/**
|
|
17
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
18
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
19
|
+
*/
|
|
20
|
+
export const RadioGroup = ({ isSkeleton = false, ...props }) => isSkeleton
|
|
21
|
+
? _jsx(FieldSkeletonScope, { component: "RadioGroup", children: _jsx(RadioGroupControl, { ...loadingFieldProps(props) }) })
|
|
22
|
+
: _jsx(RadioGroupControl, { ...props });
|
|
16
23
|
/**
|
|
17
24
|
* Exactly one of a few visible choices (`role="radiogroup"`). Arrow keys move and select within the
|
|
18
25
|
* group, Tab leaves it - roving focus is the vendor's.
|
|
19
26
|
*/
|
|
20
|
-
|
|
27
|
+
const RadioGroupControl = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant: requestedVariant, ...field }) => {
|
|
21
28
|
const variant = useFieldVariant(requestedVariant);
|
|
22
29
|
return (_jsxs(HeroRadioGroup, { "data-tier": "composite", "data-component": "RadioGroup", "data-contract": "A11Y-1 STATE-6 FOCUS-2", "data-grammar-orientation": orientation, className: "starci-core-field starci-core-choice-group", orientation: orientation, variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), children: [_jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsx(FieldDescription, { children: field.description }), _jsx("div", { className: "starci-core-choice-group-options", "data-grammar-field-control": "true", children: options.map((option) => (_jsxs(HeroRadio, { value: option.value, isDisabled: option.isDisabled === true, className: "starci-core-choice starci-core-radio", "data-grammar-option": "true", children: [_jsxs(HeroRadio.Content, { className: "starci-core-choice-content", "data-grammar-choice-target": "true", children: [_jsx(HeroRadio.Control, { className: "starci-core-choice-control", "data-grammar-choice-control": "radio", children: _jsx(HeroRadio.Indicator, {}) }), _jsx(FieldLabel, { children: option.label })] }), _jsx(FieldDescription, { children: option.description })] }, option.value))) }), _jsx(FieldErrorText, { children: field.errorMessage })] }));
|
|
23
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/RadioGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/RadioGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;AAevC;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,KAAK,EAAmB,EAAE,EAAE,CAAC,UAAU;IACvF,CAAC,CAAC,KAAC,kBAAkB,IAAC,SAAS,EAAC,YAAY,YAAC,KAAC,iBAAiB,OAAK,iBAAiB,CAAC,KAAK,CAAC,GAAI,GAAqB;IACrH,CAAC,CAAC,KAAC,iBAAiB,OAAK,KAAK,GAAI,CAAA;AAEtC;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,EACvB,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,UAAU,EACxB,OAAO,EAAE,gBAAgB,EACzB,GAAG,KAAK,EAC0B,EAAE,EAAE;IACtC,MAAM,OAAO,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACjD,OAAO,CACH,MAAC,cAAc,iBACD,WAAW,oBACN,YAAY,mBACb,wBAAwB,8BACZ,WAAW,EACrC,SAAS,EAAC,4CAA4C,EACtD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,KACZ,sBAAsB,CAAC,OAAO,CAAC,KAC/B,gBAAgB,CAAC,KAAK,CAAC,EAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,KACjC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KACtF,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,aAEpE,KAAC,UAAU,IAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,CAAC,KAAK,GAAc,EACnG,KAAC,gBAAgB,cAAE,KAAK,CAAC,WAAW,GAAoB,EACxD,cAAK,SAAS,EAAC,kCAAkC,gCAA4B,MAAM,YAC9E,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,MAAC,SAAS,IAEN,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,UAAU,EAAE,MAAM,CAAC,UAAU,KAAK,IAAI,EACtC,SAAS,EAAC,sCAAsC,yBAC5B,MAAM,aAE1B,MAAC,SAAS,CAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,gCAA4B,MAAM,aACvF,KAAC,SAAS,CAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,iCAA6B,OAAO,YACzF,KAAC,SAAS,CAAC,SAAS,KAAG,GACP,EACpB,KAAC,UAAU,cAAE,MAAM,CAAC,KAAK,GAAc,IACvB,EACpB,KAAC,gBAAgB,cAAE,MAAM,CAAC,WAAW,GAAoB,KAZpD,MAAM,CAAC,KAAK,CAaT,CACf,CAAC,GACA,EACN,KAAC,cAAc,cAAE,KAAK,CAAC,YAAY,GAAkB,IACxC,CACpB,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -21,15 +21,15 @@ export type SegmentedControlProps = FieldControlProps & {
|
|
|
21
21
|
*/
|
|
22
22
|
readonly size?: SegmentedControlSize;
|
|
23
23
|
/**
|
|
24
|
-
* Initial unresolved content (knowledge STATE-8)
|
|
25
|
-
*
|
|
24
|
+
* Initial unresolved content (knowledge STATE-8), with skeleton parity: the ready anatomy at the same props (label,
|
|
25
|
+
* description, control box, options) inside an inert, `aria-busy` scope, its control box painted as a Skeleton and its
|
|
26
|
+
* value or mark not drawn, so the loading field keeps the ready box. Nothing is invalid or pending while it loads.
|
|
26
27
|
*/
|
|
27
28
|
readonly isSkeleton?: boolean;
|
|
28
29
|
};
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* the selected value is submitted through a hidden input so it works inside a Form.
|
|
31
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
32
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
33
33
|
*/
|
|
34
|
-
export declare const SegmentedControl: ({
|
|
34
|
+
export declare const SegmentedControl: ({ isSkeleton, ...props }: SegmentedControlProps) => import("react").JSX.Element;
|
|
35
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/SegmentedControl/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/SegmentedControl/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACvD,OAAO,EAAiG,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEtK,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;AAE1D,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG;IACpD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACnC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;IACpC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAOD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,0BAAkC,qBAAqB,gCAE5C,CAAA"}
|
|
@@ -2,17 +2,24 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { ToggleButton as HeroToggleButton, ToggleButtonGroup as HeroToggleButtonGroup } from "@heroui/react";
|
|
4
4
|
import { useId, useState } from "react";
|
|
5
|
-
import { fieldStateAttributes, StaticFieldError,
|
|
5
|
+
import { fieldStateAttributes, StaticFieldError, FieldSkeletonScope, loadingFieldProps, isFieldInvalid } from "../../primitive/Field/index.js";
|
|
6
6
|
const firstKey = (keys) => {
|
|
7
7
|
const first = keys[Symbol.iterator]().next();
|
|
8
8
|
return first.done ? undefined : String(first.value);
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Skeleton parity (knowledge STATE-8): `isSkeleton` renders the ready anatomy at the same props inside
|
|
12
|
+
* `FieldSkeletonScope` (inert, `aria-busy`, control box painted as a Skeleton), so the loading field keeps the ready box.
|
|
13
|
+
*/
|
|
14
|
+
export const SegmentedControl = ({ isSkeleton = false, ...props }) => isSkeleton
|
|
15
|
+
? _jsx(FieldSkeletonScope, { component: "SegmentedControl", children: _jsx(SegmentedControlControl, { ...loadingFieldProps(props) }) })
|
|
16
|
+
: _jsx(SegmentedControlControl, { ...props });
|
|
10
17
|
/**
|
|
11
18
|
* One-of-few choice drawn as joined segments (a toggle-button group in single-selection mode, so it
|
|
12
19
|
* is announced as a radio group). A segment is never deselected by pressing it again. With `name`,
|
|
13
20
|
* the selected value is submitted through a hidden input so it works inside a Form.
|
|
14
21
|
*/
|
|
15
|
-
|
|
22
|
+
const SegmentedControlControl = ({ options, value, defaultValue, onValueChange, width = "content", size = "md", label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }) => {
|
|
16
23
|
const id = useId().replaceAll(":", "");
|
|
17
24
|
const [held, setHeld] = useState(value ?? defaultValue ?? options[0]?.value);
|
|
18
25
|
const selected = value ?? held;
|
|
@@ -21,9 +28,6 @@ export const SegmentedControl = ({ options, value, defaultValue, onValueChange,
|
|
|
21
28
|
const descriptionId = description == null ? undefined : `segmented${id}-description`;
|
|
22
29
|
const errorId = invalid && errorMessage != null ? `segmented${id}-error` : undefined;
|
|
23
30
|
const describedBy = [descriptionId, errorId].filter((part) => part !== undefined).join(" ");
|
|
24
|
-
if (isSkeleton) {
|
|
25
|
-
return _jsx(FieldSkeleton, { component: "SegmentedControl", tier: "composite", label: label, isLabelHidden: isLabelHidden, isRequired: isRequired, kind: "segmented", count: options.length, fill: width === "fill", segmentedSize: size, className: "starci-core-segmented-control" });
|
|
26
|
-
}
|
|
27
31
|
return (_jsxs("div", { "data-tier": "composite", "data-component": "SegmentedControl", "data-contract": "A11Y-1 FEEDBACK-1", "data-width": width, "data-grammar-segmented-size": size, className: "starci-core-field starci-core-segmented-control", ...fieldStateAttributes({ isInvalid: invalid, isDisabled, isReadOnly, isRequired }), children: [_jsx("span", { id: labelId, className: isLabelHidden === true ? "starci-core-field-label starci-core-form-label--screen-reader" : "starci-core-field-label", "data-grammar-field-label": "true", children: label }), _jsx(HeroToggleButtonGroup, { "aria-labelledby": labelId, ...(describedBy === "" ? {} : { "aria-describedby": describedBy }), selectionMode: "single", disallowEmptySelection: true, fullWidth: width === "fill", size: size === "control" ? "lg" : size, ...(isDisabled === true ? { isDisabled: true } : {}), selectedKeys: selected === undefined ? [] : [selected], onSelectionChange: (keys) => {
|
|
28
32
|
const next = firstKey(keys);
|
|
29
33
|
if (isReadOnly === true || next === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/SegmentedControl/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,iBAAiB,IAAI,qBAAqB,EAAY,MAAM,eAAe,CAAA;AACtH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/SegmentedControl/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,iBAAiB,IAAI,qBAAqB,EAAY,MAAM,eAAe,CAAA;AACtH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAA0B,MAAM,gCAAgC,CAAA;AAgCtK,MAAM,QAAQ,GAAG,CAAC,IAAmB,EAAsB,EAAE;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACvD,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,KAAK,EAAyB,EAAE,EAAE,CAAC,UAAU;IACnG,CAAC,CAAC,KAAC,kBAAkB,IAAC,SAAS,EAAC,kBAAkB,YAAC,KAAC,uBAAuB,OAAK,iBAAiB,CAAC,KAAK,CAAC,GAAI,GAAqB;IACjI,CAAC,CAAC,KAAC,uBAAuB,OAAK,KAAK,GAAI,CAAA;AAE5C;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAAC,EAC7B,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAa,EACb,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,IAAI,GACoC,EAAE,EAAE;IAC5C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAqB,KAAK,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAChG,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAA;IAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,YAAY,EAAE,QAAQ,CAAA;IACtC,MAAM,aAAa,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,cAAc,CAAA;IACpF,MAAM,OAAO,GAAG,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAG3F,OAAO,CACH,4BACc,WAAW,oBACN,kBAAkB,mBACnB,mBAAmB,gBACrB,KAAK,iCACY,IAAI,EACjC,SAAS,EAAC,iDAAiD,KACvD,oBAAoB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,aAEpF,eACI,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,yBAAyB,8BACtG,MAAM,YAE9B,KAAK,GACH,EACP,KAAC,qBAAqB,uBACD,OAAO,KACpB,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC,EACnE,aAAa,EAAC,QAAQ,EACtB,sBAAsB,QACtB,SAAS,EAAE,KAAK,KAAK,MAAM,EAC3B,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAClC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD,YAAY,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EACtD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;oBAC3B,IAAI,UAAU,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;wBAAE,OAAM;oBACrD,OAAO,CAAC,IAAI,CAAC,CAAA;oBACb,aAAa,EAAE,CAAC,IAAI,CAAC,CAAA;gBACzB,CAAC,EACD,SAAS,EAAC,qCAAqC,gCACpB,MAAM,mBACnB,iBAAiB,YAE9B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,KAAC,gBAAgB,IAEb,EAAE,EAAE,MAAM,CAAC,KAAK,EAChB,UAAU,EAAE,MAAM,CAAC,UAAU,KAAK,IAAI,EACtC,SAAS,EAAC,qBAAqB,yBACX,MAAM,KACtB,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,YAEzF,MAAM,CAAC,KAAK,IAPR,MAAM,CAAC,KAAK,CAQF,CACtB,CAAC,GACkB,EACvB,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAO,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAI,EAC1G,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClC,eAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,+BAA+B,oCAAgC,MAAM,YAAE,WAAW,GAAQ,CAChI,EACA,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,KAAC,gBAAgB,IAAC,EAAE,EAAE,OAAO,YAAG,YAAY,GAAoB,CACnE,IACC,CACT,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
2
|
export type TagGroupItem = {
|
|
3
3
|
readonly id: string;
|
|
4
4
|
readonly label: string;
|
|
@@ -25,7 +25,22 @@ type TagGroupRemoval = {
|
|
|
25
25
|
readonly onRemove?: undefined;
|
|
26
26
|
readonly removeLabel?: undefined;
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
type TagGroupReorder = {
|
|
29
|
+
/**
|
|
30
|
+
* Makes the tags reorderable: drag a tag onto another, or hold Alt and press an arrow key (Home and End go to the
|
|
31
|
+
* ends) on a focused tag. Receives every id in the new order. The app owns the order; render `items` in it.
|
|
32
|
+
*/
|
|
33
|
+
readonly onReorder: (ids: ReadonlyArray<string>) => void;
|
|
34
|
+
/** App-owned instruction read with the group, e.g. "Hold Alt and press an arrow key to move a tag". */
|
|
35
|
+
readonly reorderInstructions: string;
|
|
36
|
+
/** App-owned announcement after a move, e.g. "Design moved to position 2 of 5". */
|
|
37
|
+
readonly reorderAnnouncement: (label: string, position: number, total: number) => string;
|
|
38
|
+
} | {
|
|
39
|
+
readonly onReorder?: undefined;
|
|
40
|
+
readonly reorderInstructions?: undefined;
|
|
41
|
+
readonly reorderAnnouncement?: undefined;
|
|
42
|
+
};
|
|
43
|
+
export type TagGroupProps = TagGroupRemoval & TagGroupReorder & {
|
|
29
44
|
/** Names the set of tags/chips, e.g. "Filters". */
|
|
30
45
|
readonly label: string;
|
|
31
46
|
readonly items: ReadonlyArray<TagGroupItem>;
|
|
@@ -38,15 +53,23 @@ export type TagGroupProps = TagGroupRemoval & {
|
|
|
38
53
|
readonly emptyContent?: ReactNode;
|
|
39
54
|
readonly size?: "sm" | "md" | "lg";
|
|
40
55
|
readonly className?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Unresolved tags (knowledge STATE-8): the same tags at the same size, inert, each painted as a Skeleton with its
|
|
58
|
+
* label laid out unseen, so the group keeps its ready box (skeleton parity); the root is `aria-busy`.
|
|
59
|
+
*/
|
|
60
|
+
readonly isSkeleton?: boolean;
|
|
41
61
|
};
|
|
42
62
|
/**
|
|
43
|
-
* Chips/tags: static labels, selectable filters, or
|
|
63
|
+
* Chips/tags: static labels, selectable filters, removable tokens, or a reorderable set.
|
|
44
64
|
*
|
|
45
65
|
* Built on the vendor TagGroup, so arrow keys move between chips, Space/Enter toggle selection
|
|
46
66
|
* and Delete/Backspace remove. Each chip exposes `data-grammar-selected`; chips wrap onto new lines
|
|
47
67
|
* at narrow widths instead of overflowing.
|
|
68
|
+
* Reordering (`onReorder`) is Grammar's own layer: the vendor TagGroup has no drag-and-drop collection hooks, so the group
|
|
69
|
+
* wires native drag events for pointer users and Alt+arrow keys for keyboard users on top of the vendor tags, and announces
|
|
70
|
+
* each move through a live region.
|
|
48
71
|
* Contract: root STATE-1, list FOCUS-2, chip FOCUS-1, remove A11Y-2, empty STATE-3.
|
|
49
72
|
*/
|
|
50
|
-
export declare const TagGroup: (
|
|
73
|
+
export declare const TagGroup: (props: TagGroupProps) => import("react").JSX.Element;
|
|
51
74
|
export {};
|
|
52
75
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/TagGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/TagGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA0E,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAI9G,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,KAAK,eAAe,GAAG;IACnB,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACvD,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CAClD,GAAG;IACA,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;CACnC,CAAA;AAED,KAAK,eAAe,GAAG;IACnB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACxD,uGAAuG;IACvG,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,mFAAmF;IACnF,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3F,GAAG;IACA,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,CAAA;IACxC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,eAAe,GAAG;IAC5D,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC3C,0FAA0F;IAC1F,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,kCAAkC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAqBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,gCAET,CAAA"}
|