@starci/grammar 0.9.5 → 0.9.7

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.
Files changed (81) hide show
  1. package/LICENSE +21 -21
  2. package/dist/.build-stamp.json +4 -4
  3. package/dist/common/components-forms.css +45 -0
  4. package/dist/common/components-navigation.css +75 -0
  5. package/dist/common/components-overlays.css +9 -0
  6. package/dist/common/registry.d.ts +14 -14
  7. package/dist/common/renderers-forms.d.ts +7 -7
  8. package/dist/common/renderers-navigation.d.ts +4 -4
  9. package/dist/common/renderers-overlays.d.ts +1 -1
  10. package/dist/common/renderers.d.ts +1 -1
  11. package/dist/common/renderers.d.ts.map +1 -1
  12. package/dist/common/renderers.js +1 -1
  13. package/dist/common/renderers.js.map +1 -1
  14. package/dist/common/styles.css +14 -0
  15. package/dist/core/branch/ListBox/index.d.ts +9 -1
  16. package/dist/core/branch/ListBox/index.d.ts.map +1 -1
  17. package/dist/core/branch/ListBox/index.js +8 -2
  18. package/dist/core/branch/ListBox/index.js.map +1 -1
  19. package/dist/core/branch/Select/index.d.ts +6 -1
  20. package/dist/core/branch/Select/index.d.ts.map +1 -1
  21. package/dist/core/branch/Select/index.js +5 -2
  22. package/dist/core/branch/Select/index.js.map +1 -1
  23. package/dist/core/composite/Breadcrumbs/index.d.ts +5 -0
  24. package/dist/core/composite/Breadcrumbs/index.d.ts.map +1 -1
  25. package/dist/core/composite/Breadcrumbs/index.js +3 -2
  26. package/dist/core/composite/Breadcrumbs/index.js.map +1 -1
  27. package/dist/core/composite/ChatBubble/index.d.ts +21 -3
  28. package/dist/core/composite/ChatBubble/index.d.ts.map +1 -1
  29. package/dist/core/composite/ChatBubble/index.js +10 -1
  30. package/dist/core/composite/ChatBubble/index.js.map +1 -1
  31. package/dist/core/composite/CheckboxGroup/index.d.ts +6 -1
  32. package/dist/core/composite/CheckboxGroup/index.d.ts.map +1 -1
  33. package/dist/core/composite/CheckboxGroup/index.js +2 -2
  34. package/dist/core/composite/CheckboxGroup/index.js.map +1 -1
  35. package/dist/core/composite/SegmentedControl/index.d.ts +6 -1
  36. package/dist/core/composite/SegmentedControl/index.d.ts.map +1 -1
  37. package/dist/core/composite/SegmentedControl/index.js +5 -2
  38. package/dist/core/composite/SegmentedControl/index.js.map +1 -1
  39. package/dist/core/composite/Stepper/index.d.ts +7 -1
  40. package/dist/core/composite/Stepper/index.d.ts.map +1 -1
  41. package/dist/core/composite/Stepper/index.js +2 -1
  42. package/dist/core/composite/Stepper/index.js.map +1 -1
  43. package/dist/core/composite/Timeline/index.d.ts +8 -1
  44. package/dist/core/composite/Timeline/index.d.ts.map +1 -1
  45. package/dist/core/composite/Timeline/index.js +2 -1
  46. package/dist/core/composite/Timeline/index.js.map +1 -1
  47. package/dist/core/primitive/Avatar/index.d.ts +6 -1
  48. package/dist/core/primitive/Avatar/index.d.ts.map +1 -1
  49. package/dist/core/primitive/Avatar/index.js +2 -1
  50. package/dist/core/primitive/Avatar/index.js.map +1 -1
  51. package/dist/core/primitive/Field/index.d.ts +24 -0
  52. package/dist/core/primitive/Field/index.d.ts.map +1 -1
  53. package/dist/core/primitive/Field/index.js +15 -1
  54. package/dist/core/primitive/Field/index.js.map +1 -1
  55. package/dist/core/primitive/Meter/index.d.ts +7 -1
  56. package/dist/core/primitive/Meter/index.d.ts.map +1 -1
  57. package/dist/core/primitive/Meter/index.js +5 -1
  58. package/dist/core/primitive/Meter/index.js.map +1 -1
  59. package/dist/core/primitive/NumberField/index.d.ts +6 -1
  60. package/dist/core/primitive/NumberField/index.d.ts.map +1 -1
  61. package/dist/core/primitive/NumberField/index.js +2 -2
  62. package/dist/core/primitive/NumberField/index.js.map +1 -1
  63. package/dist/core/primitive/SearchField/index.d.ts +6 -1
  64. package/dist/core/primitive/SearchField/index.d.ts.map +1 -1
  65. package/dist/core/primitive/SearchField/index.js +2 -2
  66. package/dist/core/primitive/SearchField/index.js.map +1 -1
  67. package/dist/core/primitive/SectionHeader/index.d.ts +8 -1
  68. package/dist/core/primitive/SectionHeader/index.d.ts.map +1 -1
  69. package/dist/core/primitive/SectionHeader/index.js +2 -1
  70. package/dist/core/primitive/SectionHeader/index.js.map +1 -1
  71. package/dist/core/primitive/Switch/index.d.ts +6 -1
  72. package/dist/core/primitive/Switch/index.d.ts.map +1 -1
  73. package/dist/core/primitive/Switch/index.js +2 -2
  74. package/dist/core/primitive/Switch/index.js.map +1 -1
  75. package/dist/core/primitive/Textarea/index.d.ts +6 -1
  76. package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
  77. package/dist/core/primitive/Textarea/index.js +5 -2
  78. package/dist/core/primitive/Textarea/index.js.map +1 -1
  79. package/dist/offset-pop/components-forms.css +17 -0
  80. package/dist/offset-pop/components-navigation.css +7 -0
  81. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Select/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,gCAAgC,CAAA;AAEvC,yGAAyG;AACzG,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,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,GAAG,IAAI,KAAK,IAAI,CAAA;IACvD,+GAA+G;IAC/G,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;CAC7C,CAAA;AAID,sFAAsF;AACtF,eAAO,MAAM,WAAW,GAAI,aAAa;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAAE,gCAqBvF,CAAA;AAeD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,4FASpB,WAAW,gCA8Cb,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Select/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAQH,KAAK,iBAAiB,EACzB,MAAM,gCAAgC,CAAA;AAEvC,yGAAyG;AACzG,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,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,GAAG,IAAI,KAAK,IAAI,CAAA;IACvD,+GAA+G;IAC/G,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;CAC7C,CAAA;AAID,sFAAsF;AACtF,eAAO,MAAM,WAAW,GAAI,aAAa;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAAE,gCAqBvF,CAAA;AAeD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,wGAUpB,WAAW,gCAkDb,CAAA"}
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { ListBox as HeroListBox, Select as HeroSelect, Spinner as HeroSpinner, } from "@heroui/react";
4
4
  import { useState } from "react";
5
- import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, useGrammarPortal, vendorFieldProps, } from "../../primitive/Field/index.js";
5
+ import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, fieldVariantAttributes, useGrammarPortal, vendorFieldProps, } from "../../primitive/Field/index.js";
6
6
  const toValue = (key) => (key === null ? null : String(key));
7
7
  /** Renders the options as vendor list-box items with the selected-state indicator. */
8
8
  export const ListOptions = ({ options }) => (_jsx(_Fragment, { children: options.map((option) => (_jsxs(HeroListBox.Item, { id: option.id, textValue: option.label, isDisabled: option.isDisabled === true, className: "starci-core-list-option", "data-grammar-option": "true", children: [_jsxs("span", { className: "starci-core-list-option-copy", children: [_jsx("span", { className: "starci-core-list-option-label", children: option.label }), option.description == null ? null : (_jsx("span", { className: "starci-core-list-option-description", children: option.description }))] }), _jsx(HeroListBox.ItemIndicator, {})] }, option.id))) }));
@@ -24,13 +24,16 @@ export const ListOptions = ({ options }) => (_jsx(_Fragment, { children: options
24
24
  * trigger focusable and announced but holds the value and never opens the list; the vendor select
25
25
  * has no read-only mode of its own.
26
26
  */
27
- export const Select = ({ options, placeholder, value, defaultValue, onValueChange, isPending = false, variant = "primary", ...field }) => {
27
+ export const Select = ({ options, placeholder, value, defaultValue, onValueChange, isPending = false, isSkeleton = false, variant = "primary", ...field }) => {
28
28
  const [heldValue] = useState(value ?? defaultValue ?? null);
29
29
  const { anchor, portalProps } = useGrammarPortal();
30
30
  const readOnly = field.isReadOnly === true;
31
31
  const selection = readOnly
32
32
  ? { value: value === undefined ? heldValue : value }
33
33
  : value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value };
34
+ if (isSkeleton) {
35
+ return _jsx(FieldSkeleton, { component: "Select", tier: "branch", label: field.label, isLabelHidden: field.isLabelHidden, isRequired: field.isRequired, variant: variant, kind: "select", className: "starci-core-select" });
36
+ }
34
37
  return (_jsxs(HeroSelect, { "data-tier": "branch", "data-component": "Select", "data-contract": "A11Y-1 FIELD-3 STATE-6 CONTROL-STATE-2", className: "starci-core-field starci-core-select", fullWidth: true, variant: variant, ...fieldVariantAttributes(variant), ...vendorFieldProps({ ...field, isPending }), ...(placeholder === undefined ? {} : { placeholder }), ...selection, ...(readOnly ? { isOpen: false } : {}), onChange: (key) => {
35
38
  if (!readOnly)
36
39
  onValueChange?.(toValue(key));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Select/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Select/index.tsx"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@ export type BreadcrumbItem = {
5
5
  /** Ancestors carry a destination; the last item is the current page and needs none. */
6
6
  readonly href?: string;
7
7
  readonly leading?: ReactNode;
8
+ /**
9
+ * A data-driven crumb (usually the current page) whose label is not known yet (knowledge STATE-8): it draws a short
10
+ * Skeleton text line in place of `label` and `leading`, `aria-hidden`, and carries no link. The other crumbs stay real.
11
+ */
12
+ readonly isSkeleton?: true;
8
13
  };
9
14
  export type BreadcrumbsProps = {
10
15
  /** Names the trail landmark, e.g. "Breadcrumb". */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,kDAAkD,gBAAgB,gCAoC7F,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,kDAAkD,gBAAgB,gCA0C7F,CAAA"}
@@ -1,7 +1,8 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Breadcrumbs as HeroBreadcrumbs } from "@heroui/react";
4
4
  import { navigationClassName } from "../../navigationClassNames.js";
5
+ import { Skeleton } from "../../primitive/Skeleton/index.js";
5
6
  /**
6
7
  * The hierarchical trail to the current page.
7
8
  *
@@ -11,6 +12,6 @@ import { navigationClassName } from "../../navigationClassNames.js";
11
12
  */
12
13
  export const Breadcrumbs = ({ label, items, separator, onAction, className }) => (_jsx("nav", { "aria-label": label, className: navigationClassName("starci-core-breadcrumbs", className), "data-component": "Breadcrumbs", "data-contract": "LAYOUT-3 OVERFLOW-3", "data-tier": "composite", children: _jsx(HeroBreadcrumbs, { className: "starci-core-breadcrumbs-list", ...(separator === undefined ? {} : { separator }), ...(onAction === undefined ? {} : { onAction: (key) => onAction(String(key)) }), children: items.map((item, index) => {
13
14
  const isCurrent = index === items.length - 1;
14
- return (_jsx(HeroBreadcrumbs.Item, { id: item.id, className: "starci-core-breadcrumb", "data-contract": "ACTION-3", ...(item.href === undefined || isCurrent ? {} : { href: item.href }), children: _jsxs("span", { className: "starci-core-breadcrumb-label", "data-grammar-breadcrumb": "true", "data-grammar-current": isCurrent ? "true" : "false", children: [item.leading === undefined ? null : _jsx("span", { "aria-hidden": "true", className: "starci-core-breadcrumb-leading", "data-contract": "ICON-6", children: item.leading }), item.label] }) }, item.id));
15
+ return (_jsx(HeroBreadcrumbs.Item, { id: item.id, className: "starci-core-breadcrumb", "data-contract": "ACTION-3", ...(item.href === undefined || isCurrent || item.isSkeleton === true ? {} : { href: item.href }), children: _jsx("span", { className: "starci-core-breadcrumb-label", "data-grammar-breadcrumb": "true", "data-grammar-current": isCurrent ? "true" : "false", children: item.isSkeleton === true ? (_jsx("span", { "aria-hidden": "true", className: "starci-core-breadcrumb-skeleton", "data-grammar-skeleton": "true", children: _jsx(Skeleton, { shape: "text" }) })) : (_jsxs(_Fragment, { children: [item.leading === undefined ? null : _jsx("span", { "aria-hidden": "true", className: "starci-core-breadcrumb-leading", "data-contract": "ICON-6", children: item.leading }), item.label] })) }) }, item.id));
15
16
  }) }) }));
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAqBnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAoB,EAAE,EAAE,CAAC,CAC/F,4BACgB,KAAK,EACjB,SAAS,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,SAAS,CAAC,oBACrD,aAAa,mBACd,qBAAqB,eACzB,WAAW,YAErB,KAAC,eAAe,IACZ,SAAS,EAAC,8BAA8B,KACpC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAC9C,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAEhG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YAC5C,OAAO,CACH,KAAC,eAAe,CAAC,IAAI,IAEjB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,SAAS,EAAC,wBAAwB,mBACpB,UAAU,KACpB,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,YAErE,gBACI,SAAS,EAAC,8BAA8B,6BAChB,MAAM,0BACR,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,aAEjD,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAkB,MAAM,EAAC,SAAS,EAAC,gCAAgC,mBAAe,QAAQ,YAAE,IAAI,CAAC,OAAO,GAAQ,EACpJ,IAAI,CAAC,KAAK,IACR,IAbF,IAAI,CAAC,EAAE,CAcO,CAC1B,CAAA;QACL,CAAC,CAAC,GACY,GAChB,CACT,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AA0B5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAoB,EAAE,EAAE,CAAC,CAC/F,4BACgB,KAAK,EACjB,SAAS,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,SAAS,CAAC,oBACrD,aAAa,mBACd,qBAAqB,eACzB,WAAW,YAErB,KAAC,eAAe,IACZ,SAAS,EAAC,8BAA8B,KACpC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAC9C,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAEhG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YAC5C,OAAO,CACH,KAAC,eAAe,CAAC,IAAI,IAEjB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,SAAS,EAAC,wBAAwB,mBACpB,UAAU,KACpB,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,YAEjG,eACI,SAAS,EAAC,8BAA8B,6BAChB,MAAM,0BACR,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAEjD,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CACxB,8BAAkB,MAAM,EAAC,SAAS,EAAC,iCAAiC,2BAAuB,MAAM,YAAC,KAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,GAAG,GAAO,CACrI,CAAC,CAAC,CAAC,CACA,8BACK,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAAkB,MAAM,EAAC,SAAS,EAAC,gCAAgC,mBAAe,QAAQ,YAAE,IAAI,CAAC,OAAO,GAAQ,EACpJ,IAAI,CAAC,KAAK,IACZ,CACN,GACE,IAnBF,IAAI,CAAC,EAAE,CAoBO,CAC1B,CAAA;QACL,CAAC,CAAC,GACY,GAChB,CACT,CAAA"}
@@ -2,8 +2,8 @@ import type { ReactNode } from "react";
2
2
  /** `incoming`: someone else wrote it (start side, recessed face). `outgoing`: the reader's own message (end side, accent-soft face). */
3
3
  export type ChatBubbleSide = "incoming" | "outgoing";
4
4
  export type ChatBubbleProps = {
5
- /** The message body. Plain text keeps its line breaks. */
6
- readonly children: ReactNode;
5
+ /** The message body. Plain text keeps its line breaks. Ignored (and optional) while `isSkeleton`. */
6
+ readonly children?: ReactNode;
7
7
  readonly side?: ChatBubbleSide;
8
8
  /** Who wrote it, shown above the body. Omit on consecutive messages from the same author. */
9
9
  readonly author?: ReactNode;
@@ -21,6 +21,13 @@ export type ChatBubbleProps = {
21
21
  readonly isHighlight?: boolean;
22
22
  /** Anchor for links that jump to this message. */
23
23
  readonly id?: string;
24
+ /**
25
+ * Draw the message as inert geometry while it is unresolved (knowledge STATE-8): the bubble face on its `side`, with two
26
+ * Skeleton text lines in the body and, only if `avatar` is passed, a Skeleton circle in its column. No author, meta, status,
27
+ * actions or footer are drawn, so no control exists. The bubble is `aria-hidden`; the conversation owns `aria-busy`
28
+ * (`ChatBubbleSkeletons` draws a whole loading thread).
29
+ */
30
+ readonly isSkeleton?: boolean;
24
31
  };
25
32
  /**
26
33
  * One chat message. The app owns the thread (order, grouping, day dividers with `Divider label`, scroll with
@@ -28,5 +35,16 @@ export type ChatBubbleProps = {
28
35
  * actions. Faces follow SURFACE-3 (incoming, recessed) and SURFACE-4 (outgoing, the raised accent-soft pair); the corner on
29
36
  * the author's side tightens to point at the avatar (RADIUS-6).
30
37
  */
31
- export declare const ChatBubble: ({ children, side, author, avatar, meta, status, actions, footer, isHighlight, id, }: ChatBubbleProps) => import("react").JSX.Element;
38
+ export declare const ChatBubble: ({ children, side, author, avatar, meta, status, actions, footer, isHighlight, id, isSkeleton, }: ChatBubbleProps) => import("react").JSX.Element;
39
+ export type ChatBubbleSkeletonsProps = {
40
+ /** How many bubbles (default 3, 1 to 12). They alternate sides, starting with `incoming`. */
41
+ readonly count?: number;
42
+ /** Gives every bubble a Skeleton avatar circle in its column. */
43
+ readonly hasAvatar?: boolean;
44
+ };
45
+ /**
46
+ * A loading conversation: `count` skeleton bubbles that alternate incoming and outgoing, inside one `aria-busy` thread.
47
+ * Place it as the conversation content of a `ChatWorkspace` (or any scroll owner) while the messages are unresolved.
48
+ */
49
+ export declare const ChatBubbleSkeletons: ({ count, hasAvatar }: ChatBubbleSkeletonsProps) => import("react").JSX.Element;
32
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/ChatBubble/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,wIAAwI;AACxI,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,CAAA;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAA;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,mHAAmH;IACnH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,oHAAoH;IACpH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,qFAWxB,eAAe,gCA4BjB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/ChatBubble/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wIAAwI;AACxI,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,CAAA;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC1B,qGAAqG;IACrG,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAA;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,mHAAmH;IACnH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,oHAAoH;IACpH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,iGAYxB,eAAe,gCAgDjB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACnC,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,sBAAkC,wBAAwB,gCAM7F,CAAA"}
@@ -1,12 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Skeleton } from "../../primitive/Skeleton/index.js";
2
3
  /**
3
4
  * One chat message. The app owns the thread (order, grouping, day dividers with `Divider label`, scroll with
4
5
  * `VerticalScrollRegion`); this owns the anatomy of a single message: avatar column, author line, the bubble face and its
5
6
  * actions. Faces follow SURFACE-3 (incoming, recessed) and SURFACE-4 (outgoing, the raised accent-soft pair); the corner on
6
7
  * the author's side tightens to point at the avatar (RADIUS-6).
7
8
  */
8
- export const ChatBubble = ({ children, side = "incoming", author, avatar, meta, status, actions, footer, isHighlight = false, id, }) => {
9
+ export const ChatBubble = ({ children, side = "incoming", author, avatar, meta, status, actions, footer, isHighlight = false, id, isSkeleton = false, }) => {
10
+ if (isSkeleton) {
11
+ return (_jsxs("div", { "aria-hidden": "true", className: "starci-core-chat-bubble", "data-component": "ChatBubble", "data-tier": "composite", "data-contract": "SURFACE-3 SURFACE-4 RADIUS-6 STATE-8", "data-grammar-bubble-side": side, "data-grammar-bubble-highlight": "false", "data-grammar-bubble-footer": "false", "data-grammar-skeleton": "true", children: [avatar == null ? null : _jsx("div", { className: "starci-core-chat-bubble-avatar", children: _jsx(Skeleton, { shape: "circle", size: "sm" }) }), _jsx("div", { className: "starci-core-chat-bubble-stack", children: _jsx("div", { className: "starci-core-chat-bubble-body starci-core-chat-bubble-skeleton-body", children: _jsx(Skeleton, { shape: "text", lines: 2 }) }) })] }));
12
+ }
9
13
  const hasHead = author != null || meta != null || status != null;
10
14
  return (_jsxs("div", { ...(id === undefined ? {} : { id }), className: "starci-core-chat-bubble", "data-component": "ChatBubble", "data-tier": "composite", "data-contract": "SURFACE-3 SURFACE-4 RADIUS-6", "data-grammar-bubble-side": side, "data-grammar-bubble-highlight": isHighlight ? "true" : "false", "data-grammar-bubble-footer": footer == null ? "false" : "true", children: [avatar == null ? null : _jsx("div", { className: "starci-core-chat-bubble-avatar", children: avatar }), _jsxs("div", { className: "starci-core-chat-bubble-stack", children: [hasHead ? (_jsxs("div", { className: "starci-core-chat-bubble-head", children: [author == null ? null : _jsx("span", { className: "starci-core-chat-bubble-author", children: author }), status, meta == null ? null : _jsx("span", { className: "starci-core-chat-bubble-meta", children: meta })] })) : null, _jsx("div", { className: "starci-core-chat-bubble-body", children: children }), footer == null ? null : _jsx("div", { className: "starci-core-chat-bubble-footer", children: footer }), actions == null ? null : _jsx("div", { className: "starci-core-chat-bubble-actions", children: actions })] })] }));
11
15
  };
16
+ /**
17
+ * A loading conversation: `count` skeleton bubbles that alternate incoming and outgoing, inside one `aria-busy` thread.
18
+ * Place it as the conversation content of a `ChatWorkspace` (or any scroll owner) while the messages are unresolved.
19
+ */
20
+ export const ChatBubbleSkeletons = ({ count = 3, hasAvatar = false }) => (_jsx("div", { className: "starci-core-chat-bubble-thread", "data-grammar-chat-skeleton-thread": "true", "data-loading": "true", "aria-busy": "true", children: Array.from({ length: Math.min(12, Math.max(1, Math.floor(Number.isFinite(count) ? count : 3))) }, (_, index) => (_jsx(ChatBubble, { isSkeleton: true, side: index % 2 === 0 ? "incoming" : "outgoing", avatar: hasAvatar && index % 2 === 0 ? _jsx("span", {}) : undefined }, index))) }));
12
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/ChatBubble/index.tsx"],"names":[],"mappings":";AA2BA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,QAAQ,EACR,IAAI,GAAG,UAAU,EACjB,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,GAAG,KAAK,EACnB,EAAE,GACY,EAAE,EAAE;IAClB,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,CAAA;IAChE,OAAO,CACH,kBACQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EACpC,SAAS,EAAC,yBAAyB,oBACpB,YAAY,eACjB,WAAW,mBACP,8BAA8B,8BAClB,IAAI,mCACC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,gCACjC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,aAE5D,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,gCAAgC,YAAE,MAAM,GAAO,EACvF,eAAK,SAAS,EAAC,+BAA+B,aACzC,OAAO,CAAC,CAAC,CAAC,CACP,eAAK,SAAS,EAAC,8BAA8B,aACxC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gCAAgC,YAAE,MAAM,GAAQ,EACxF,MAAM,EACN,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,8BAA8B,YAAE,IAAI,GAAQ,IACjF,CACT,CAAC,CAAC,CAAC,IAAI,EACR,cAAK,SAAS,EAAC,8BAA8B,YAAE,QAAQ,GAAO,EAC7D,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,gCAAgC,YAAE,MAAM,GAAO,EACtF,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,iCAAiC,YAAE,OAAO,GAAO,IACxF,IACJ,CACT,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/ChatBubble/index.tsx"],"names":[],"mappings":"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"}
@@ -16,10 +16,15 @@ export type CheckboxGroupProps = FieldControlProps & {
16
16
  readonly orientation?: ChoiceOrientation;
17
17
  /** Layer variant: `secondary` when the control sits on a surface (ANATOMY-2 case-1). */
18
18
  readonly variant?: "primary" | "secondary";
19
+ /**
20
+ * Initial unresolved content (knowledge STATE-8): the group label and each option label stay real text, each checkbox becomes a
21
+ * Skeleton box of the same size (descriptions are not drawn); `aria-hidden` geometry, nothing focusable, root `aria-busy`.
22
+ */
23
+ readonly isSkeleton?: boolean;
19
24
  };
20
25
  /**
21
26
  * Several independent choices under one group name (`role="group"`, labelled by the group label).
22
27
  * Required means "at least one", validated by the vendor; the group owns the one error slot.
23
28
  */
24
- export declare const CheckboxGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, ...field }: CheckboxGroupProps) => import("react").JSX.Element;
29
+ export declare const CheckboxGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, isSkeleton, ...field }: CheckboxGroupProps) => import("react").JSX.Element;
25
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/CheckboxGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAMH,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,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;CAC7C,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,iFAQ3B,kBAAkB,gCAgCpB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/CheckboxGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAOH,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,wFAAwF;IACxF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC1C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,6FAS3B,kBAAkB,gCAkCpB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Checkbox as HeroCheckbox, CheckboxGroup as HeroCheckboxGroup } from "@heroui/react";
4
- import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, vendorFieldProps, } from "../../primitive/Field/index.js";
4
+ import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, fieldVariantAttributes, vendorFieldProps, } from "../../primitive/Field/index.js";
5
5
  import { CheckboxItem } from "../../primitive/Checkbox/index.js";
6
6
  /*
7
7
  * Consumer hook: `starci-core-choice-group` names this control's root for a consumer or family
@@ -17,5 +17,5 @@ import { CheckboxItem } from "../../primitive/Checkbox/index.js";
17
17
  * Several independent choices under one group name (`role="group"`, labelled by the group label).
18
18
  * Required means "at least one", validated by the vendor; the group owns the one error slot.
19
19
  */
20
- export const CheckboxGroup = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant = "primary", ...field }) => (_jsxs(HeroCheckboxGroup, { "data-tier": "composite", "data-component": "CheckboxGroup", "data-contract": "A11Y-1 FIELD-1 FIELD-2 CONTROL-STATE-3", "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 })] }));
20
+ export const CheckboxGroup = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant = "primary", isSkeleton = false, ...field }) => isSkeleton ? (_jsx(FieldSkeleton, { component: "CheckboxGroup", tier: "composite", label: field.label, isLabelHidden: field.isLabelHidden, isRequired: field.isRequired, variant: variant, kind: "choices", choiceLabels: options.map((option) => option.label), orientation: orientation, className: "starci-core-choice-group" })) : (_jsxs(HeroCheckboxGroup, { "data-tier": "composite", "data-component": "CheckboxGroup", "data-contract": "A11Y-1 FIELD-1 FIELD-2 CONTROL-STATE-3", "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 })] }));
21
21
  //# 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,QAAQ,IAAI,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE5F,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAsBhE;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,UAAU,EACxB,OAAO,GAAG,SAAS,EACnB,GAAG,KAAK,EACS,EAAE,EAAE,CAAC,CACtB,MAAC,iBAAiB,iBACJ,WAAW,oBACN,eAAe,mBAChB,wCAAwC,8BAC5B,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/CheckboxGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE5F,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AA2BhE;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,UAAU,EACxB,OAAO,GAAG,SAAS,EACnB,UAAU,GAAG,KAAK,EAClB,GAAG,KAAK,EACS,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CACnC,KAAC,aAAa,IAAC,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,SAAS,EAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAC,0BAA0B,GAAG,CAC1S,CAAC,CAAC,CAAC,CACA,MAAC,iBAAiB,iBACJ,WAAW,oBACN,eAAe,mBAChB,wCAAwC,8BAC5B,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"}
@@ -14,11 +14,16 @@ export type SegmentedControlProps = FieldControlProps & {
14
14
  readonly onValueChange?: (value: string) => void;
15
15
  /** `fill` stretches the segments across the parent. */
16
16
  readonly width?: "content" | "fill";
17
+ /**
18
+ * Initial unresolved content (knowledge STATE-8): the label stays real text and the segments become one Skeleton block of the same
19
+ * height (one segment-width per option; `fill` stretches it), `aria-hidden`, nothing focusable; the root is `aria-busy`.
20
+ */
21
+ readonly isSkeleton?: boolean;
17
22
  };
18
23
  /**
19
24
  * One-of-few choice drawn as joined segments (a toggle-button group in single-selection mode, so it
20
25
  * is announced as a radio group). A segment is never deselected by pressing it again. With `name`,
21
26
  * the selected value is submitted through a hidden input so it works inside a Form.
22
27
  */
23
- export declare const SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }: SegmentedControlProps) => import("react").JSX.Element;
28
+ export declare const SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, isSkeleton, }: SegmentedControlProps) => import("react").JSX.Element;
24
29
  //# 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,EAAwC,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAE7G,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,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;CACtC,CAAA;AAOD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,+JAe9B,qBAAqB,gCAkEvB,CAAA"}
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,EAAuD,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAE5H,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,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,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAOD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,2KAgB9B,qBAAqB,gCAsEvB,CAAA"}
@@ -2,7 +2,7 @@
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, isFieldInvalid } from "../../primitive/Field/index.js";
5
+ import { fieldStateAttributes, FieldSkeleton, 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);
@@ -12,7 +12,7 @@ const firstKey = (keys) => {
12
12
  * is announced as a radio group). A segment is never deselected by pressing it again. With `name`,
13
13
  * the selected value is submitted through a hidden input so it works inside a Form.
14
14
  */
15
- export const SegmentedControl = ({ options, value, defaultValue, onValueChange, width = "content", label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }) => {
15
+ export const SegmentedControl = ({ options, value, defaultValue, onValueChange, width = "content", label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, isSkeleton = false, }) => {
16
16
  const id = useId().replaceAll(":", "");
17
17
  const [held, setHeld] = useState(value ?? defaultValue ?? options[0]?.value);
18
18
  const selected = value ?? held;
@@ -21,6 +21,9 @@ export const SegmentedControl = ({ options, value, defaultValue, onValueChange,
21
21
  const descriptionId = description == null ? undefined : `segmented${id}-description`;
22
22
  const errorId = invalid && errorMessage != null ? `segmented${id}-error` : undefined;
23
23
  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", className: "starci-core-segmented-control" });
26
+ }
24
27
  return (_jsxs("div", { "data-tier": "composite", "data-component": "SegmentedControl", "data-contract": "A11Y-1 FIELD-2", "data-width": width, 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", ...(isDisabled === true ? { isDisabled: true } : {}), selectedKeys: selected === undefined ? [] : [selected], onSelectionChange: (keys) => {
25
28
  const next = firstKey(keys);
26
29
  if (isReadOnly === true || next === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/SegmentedControl/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/SegmentedControl/index.tsx"],"names":[],"mappings":"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"}
@@ -21,6 +21,12 @@ export type StepperProps = {
21
21
  /** App-owned marker; defaults to the 1-based step number. */
22
22
  readonly renderMarker?: (step: StepperStep, index: number, state: StepperStepState) => ReactNode;
23
23
  readonly className?: string;
24
+ /**
25
+ * The flow is loading (knowledge STATE-8): step labels stay real text when given (an empty label draws a Skeleton text line), each
26
+ * marker becomes a static Skeleton circle, descriptions are not drawn, no step is current or a button, and the landmark is `aria-busy`.
27
+ * (A stepper draws no connector line, so there is none to tint.)
28
+ */
29
+ readonly isLoading?: boolean;
24
30
  };
25
31
  /** Position-derived state: before the current step is complete, after it is upcoming. */
26
32
  export declare const stepStateFor: (steps: ReadonlyArray<StepperStep>, currentStepId: string, index: number) => StepperStepState;
@@ -30,5 +36,5 @@ export declare const stepStateFor: (steps: ReadonlyArray<StepperStep>, currentSt
30
36
  * between them. Below 30rem a horizontal stepper keeps only the current step's label in the paint.
31
37
  * Contract: list HIERARCHY-3 (+FOCUS-2 when interactive), step STATE-1, marker ICON-6, control FOCUS-1.
32
38
  */
33
- export declare const Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, }: StepperProps) => import("react").JSX.Element;
39
+ export declare const Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, isLoading, }: StepperProps) => import("react").JSX.Element;
34
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Stepper/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAA;AAE5E,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,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IAChD,4FAA4F;IAC5F,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,2GAA2G;IAC3G,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAA;IACrE,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAA;IAChG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,CAAC,WAAW,CAAC,EAAE,eAAe,MAAM,EAAE,OAAO,MAAM,KAAG,gBAMtG,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,kGASrB,YAAY,gCAuDd,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Stepper/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKtC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAA;AAE5E,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,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IAChD,4FAA4F;IAC5F,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,2GAA2G;IAC3G,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAA;IACrE,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAA;IAChG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,CAAC,WAAW,CAAC,EAAE,eAAe,MAAM,EAAE,OAAO,MAAM,KAAG,gBAMtG,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,6GAUrB,YAAY,gCA+Ed,CAAA"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { moveFocusBetweenPeers } from "../../navigationKeys.js";
4
4
  import { navigationClassName } from "../../navigationClassNames.js";
5
+ import { Skeleton } from "../../primitive/Skeleton/index.js";
5
6
  /** Position-derived state: before the current step is complete, after it is upcoming. */
6
7
  export const stepStateFor = (steps, currentStepId, index) => {
7
8
  const step = steps[index];
@@ -18,7 +19,7 @@ export const stepStateFor = (steps, currentStepId, index) => {
18
19
  * between them. Below 30rem a horizontal stepper keeps only the current step's label in the paint.
19
20
  * Contract: list HIERARCHY-3 (+FOCUS-2 when interactive), step STATE-1, marker ICON-6, control FOCUS-1.
20
21
  */
21
- export const Stepper = ({ label, steps, currentStepId, orientation = "horizontal", onStepSelect, stateLabel, renderMarker, className, }) => (_jsx("nav", { "aria-label": label, className: navigationClassName("starci-core-stepper", className), "data-component": "Stepper", "data-tier": "composite", "data-grammar-stepper-orientation": orientation, "data-grammar-stepper-interactive": onStepSelect === undefined ? "false" : "true", children: _jsx("ol", { className: "starci-core-stepper-list", "data-contract": onStepSelect === undefined ? "HIERARCHY-3" : "HIERARCHY-3 FOCUS-2", onKeyDown: onStepSelect === undefined ? undefined : (event) => { moveFocusBetweenPeers(event, "[data-grammar-step-control]", orientation === "vertical" ? "vertical" : "horizontal"); }, children: steps.map((step, index) => {
22
+ export const Stepper = ({ label, steps, currentStepId, orientation = "horizontal", onStepSelect, stateLabel, renderMarker, className, isLoading = false, }) => isLoading ? (_jsx("nav", { "aria-label": label, "aria-busy": "true", className: navigationClassName("starci-core-stepper", className), "data-component": "Stepper", "data-tier": "composite", "data-loading": "true", "data-grammar-stepper-orientation": orientation, "data-grammar-stepper-interactive": "false", children: _jsx("ol", { className: "starci-core-stepper-list", "data-contract": "HIERARCHY-3 STATE-8", children: steps.map((step) => (_jsx("li", { className: "starci-core-step", "data-contract": "STATE-1", "data-grammar-step-state": "upcoming", "data-grammar-current": "false", "data-grammar-skeleton": "true", children: _jsxs("span", { className: "starci-core-step-body", children: [_jsx("span", { "aria-hidden": "true", className: "starci-core-step-marker starci-core-step-skeleton-marker", "data-grammar-step-marker": "true", children: _jsx(Skeleton, { shape: "circle", size: "sm" }) }), _jsx("span", { className: "starci-core-step-copy", children: step.label === "" ? _jsx("span", { "aria-hidden": "true", className: "starci-core-step-skeleton-label", children: _jsx(Skeleton, { shape: "text" }) }) : _jsx("span", { className: "starci-core-step-label", "data-grammar-step-label": "true", children: step.label }) })] }) }, step.id))) }) })) : (_jsx("nav", { "aria-label": label, className: navigationClassName("starci-core-stepper", className), "data-component": "Stepper", "data-tier": "composite", "data-grammar-stepper-orientation": orientation, "data-grammar-stepper-interactive": onStepSelect === undefined ? "false" : "true", children: _jsx("ol", { className: "starci-core-stepper-list", "data-contract": onStepSelect === undefined ? "HIERARCHY-3" : "HIERARCHY-3 FOCUS-2", onKeyDown: onStepSelect === undefined ? undefined : (event) => { moveFocusBetweenPeers(event, "[data-grammar-step-control]", orientation === "vertical" ? "vertical" : "horizontal"); }, children: steps.map((step, index) => {
22
23
  const state = stepStateFor(steps, currentStepId, index);
23
24
  const announcement = stateLabel?.(state);
24
25
  const content = _jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: "starci-core-step-marker", "data-contract": "ICON-6", "data-grammar-step-marker": "true", children: renderMarker === undefined ? index + 1 : renderMarker(step, index, state) }), _jsxs("span", { className: "starci-core-step-copy", children: [_jsx("span", { className: "starci-core-step-label", "data-grammar-step-label": "true", children: step.label }), announcement === undefined ? null : _jsx("span", { className: "starci-core-nav-visually-hidden", children: `, ${announcement}` }), step.description === undefined ? null : _jsx("span", { className: "starci-core-step-description", "data-grammar-step-description": "true", children: step.description })] })] });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Stepper/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Stepper/index.tsx"],"names":[],"mappings":"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"}
@@ -18,11 +18,18 @@ export type TimelineProps = {
18
18
  readonly label: string;
19
19
  readonly items: ReadonlyArray<TimelineItem>;
20
20
  readonly className?: string;
21
+ /**
22
+ * The history is loading (knowledge STATE-8). With no `items` it draws `loadingRows` skeleton entries (a static marker, a title line,
23
+ * a time line and a description line, `aria-hidden`) in the same named list, which is `aria-busy`; real `items` win.
24
+ */
25
+ readonly isLoading?: boolean;
26
+ /** How many skeleton entries a loading timeline draws (default 3, 1 to 12). */
27
+ readonly loadingRows?: number;
21
28
  };
22
29
  /**
23
30
  * An ordered history of events. Each entry exposes `data-grammar-timeline-state` from the Common
24
31
  * presentation states and `data-grammar-current`; the connector line is drawn by the stylesheet.
25
32
  * Contract: list HIERARCHY-3, entry STATE-1 TRUTH-1 (closed presentation states, neutral default), marker ICON-6.
26
33
  */
27
- export declare const Timeline: ({ label, items, className }: TimelineProps) => import("react").JSX.Element;
34
+ export declare const Timeline: ({ label, items, className, isLoading, loadingRows }: TimelineProps) => import("react").JSX.Element;
28
35
  //# sourceMappingURL=index.d.ts.map
@@ -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;AAG1F,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;CAC9B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,6BAA6B,aAAa,gCAgClE,CAAA"}
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,gCA2CtG,CAAA"}
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { assertPresentationState } from "../../../common/state.js";
3
3
  import { navigationClassName } from "../../navigationClassNames.js";
4
+ import { Skeleton } from "../../primitive/Skeleton/index.js";
4
5
  /**
5
6
  * An ordered history of events. Each entry exposes `data-grammar-timeline-state` from the Common
6
7
  * presentation states and `data-grammar-current`; the connector line is drawn by the stylesheet.
7
8
  * Contract: list HIERARCHY-3, entry STATE-1 TRUTH-1 (closed presentation states, neutral default), marker ICON-6.
8
9
  */
9
- export const Timeline = ({ label, items, className }) => (_jsx("ol", { "aria-label": label, className: navigationClassName("starci-core-timeline", className), "data-component": "Timeline", "data-contract": "HIERARCHY-3", "data-tier": "composite", children: items.map((item) => {
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("p", { 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) => {
10
11
  const state = item.state ?? "neutral";
11
12
  assertPresentationState(state);
12
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": "ICON-6", "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));
@@ -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;AAuBnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAiB,EAAE,EAAE,CAAC,CACpE,2BACgB,KAAK,EACjB,SAAS,EAAE,mBAAmB,CAAC,sBAAsB,EAAE,SAAS,CAAC,oBAClD,UAAU,mBACX,aAAa,eACjB,WAAW,YAEpB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAA;QACrC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO,CACH,8BAEkB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACjD,SAAS,EAAC,2BAA2B,mBACvB,iBAAiB,iCACF,KAAK,0BACZ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,aAEvD,8BAAkB,MAAM,EAAC,SAAS,EAAC,6BAA6B,mBAAe,QAAQ,kCAA8B,MAAM,YAAE,IAAI,CAAC,MAAM,GAAQ,EAChJ,eAAK,SAAS,EAAC,2BAA2B,aACtC,YAAG,SAAS,EAAC,4BAA4B,YAAE,IAAI,CAAC,KAAK,GAAK,EACzD,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnC,eAAM,SAAS,EAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,YAAG,IAAI,CAAC,SAAS,GAAQ,CAC5I,EACA,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,kCAAkC,YAAE,IAAI,CAAC,WAAW,GAAO,IACjH,KAdD,IAAI,CAAC,EAAE,CAeX,CACR,CAAA;IACL,CAAC,CAAC,GACD,CACR,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Timeline/index.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,11 @@ export type AvatarProps = {
12
12
  /** Selected/current identity, e.g. the active account in a switcher. */
13
13
  readonly isCurrent?: boolean;
14
14
  readonly className?: string;
15
+ /**
16
+ * Initial unresolved identity (knowledge STATE-8): a Skeleton circle at the avatar's `size`, `aria-hidden` (no name, no image, no
17
+ * initials). The owning list or card carries `aria-busy`.
18
+ */
19
+ readonly isSkeleton?: boolean;
15
20
  };
16
21
  /** Up to two initials from a display name; letters only come from the name the app supplied. */
17
22
  export declare const avatarInitials: (name: string) => string;
@@ -30,5 +35,5 @@ export declare const avatarA11yProps: (name: string, isDecorative: boolean) => {
30
35
  * A person or entity mark with image, initials fallback and an explicit accessible name.
31
36
  * Contract: ICON-6 (named once or aria-hidden when decorative), MEDIA-5 (initials while loading/failed).
32
37
  */
33
- export declare const Avatar: ({ name, src, fallback, size, isDecorative, isCurrent, className }: AvatarProps) => import("react").JSX.Element;
38
+ export declare const Avatar: ({ name, src, fallback, size, isDecorative, isCurrent, className, isSkeleton }: AvatarProps) => import("react").JSX.Element;
34
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Avatar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE3C,MAAM,MAAM,WAAW,GAAG;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAOtB,CAAA;AAExB,mFAAmF;AACnF,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,SAAS,EAAE,UAAU,SAAS,GAAG,SAAS,gCAG/F,CAAA;AAEH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,cAAc,OAAO;;;;;;;;CAEjB,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,mEAA0F,WAAW,gCAa3H,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Avatar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE3C,MAAM,MAAM,WAAW,GAAG;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAOtB,CAAA;AAExB,mFAAmF;AACnF,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,SAAS,EAAE,UAAU,SAAS,GAAG,SAAS,gCAG/F,CAAA;AAEH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,cAAc,OAAO;;;;;;;;CAEjB,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,+EAA8G,WAAW,gCA0B/I,CAAA"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Avatar as HeroAvatar } from "@heroui/react";
4
4
  import { navigationClassName } from "../../navigationClassNames.js";
5
+ import { Skeleton } from "../Skeleton/index.js";
5
6
  /** Up to two initials from a display name; letters only come from the name the app supplied. */
6
7
  export const avatarInitials = (name) => name
7
8
  .trim()
@@ -20,5 +21,5 @@ export const avatarA11yProps = (name, isDecorative) => isDecorative
20
21
  * A person or entity mark with image, initials fallback and an explicit accessible name.
21
22
  * Contract: ICON-6 (named once or aria-hidden when decorative), MEDIA-5 (initials while loading/failed).
22
23
  */
23
- export const Avatar = ({ name, src, fallback, size = "md", isDecorative = false, isCurrent = false, className }) => (_jsx(HeroAvatar, { ...avatarA11yProps(name, isDecorative), className: navigationClassName("starci-core-avatar", className), "data-component": "Avatar", "data-contract": "ICON-6 MEDIA-5", "data-tier": "atom", "data-grammar-avatar-size": size, "data-grammar-current": isCurrent ? "true" : "false", size: size, children: avatarParts(name, src, fallback) }));
24
+ export const Avatar = ({ name, src, fallback, size = "md", isDecorative = false, isCurrent = false, className, isSkeleton = false }) => isSkeleton ? (_jsx("span", { "aria-hidden": "true", className: navigationClassName("starci-core-avatar starci-core-avatar-skeleton", className), "data-component": "Avatar", "data-contract": "STATE-8", "data-tier": "atom", "data-grammar-avatar-size": size, "data-grammar-current": "false", "data-grammar-skeleton": "true", children: _jsx(Skeleton, { shape: "circle", size: size }) })) : (_jsx(HeroAvatar, { ...avatarA11yProps(name, isDecorative), className: navigationClassName("starci-core-avatar", className), "data-component": "Avatar", "data-contract": "ICON-6 MEDIA-5", "data-tier": "atom", "data-grammar-avatar-size": size, "data-grammar-current": isCurrent ? "true" : "false", size: size, children: avatarParts(name, src, fallback) }));
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Avatar/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAkBnE,gGAAgG;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI;KACvD,IAAI,EAAE;KACN,KAAK,CAAC,KAAK,CAAC;KACZ,MAAM,CAAC,OAAO,CAAC;KACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACxC,IAAI,CAAC,EAAE,CAAC;KACR,iBAAiB,EAAE,CAAA;AAExB,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,GAAuB,EAAE,QAA+B,EAAE,EAAE,CAAC,8BAClG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,UAAU,CAAC,KAAK,IAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAE,GAAG,GAAI,EACjE,KAAC,UAAU,CAAC,QAAQ,mBAAa,MAAM,kCAA8B,MAAM,YAAE,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,GAAuB,IACrI,CAAA;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,YAAqB,EAAE,EAAE,CAAC,YAAY;IAChF,CAAC,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE;IAClC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,EAAe,EAAE,EAAE,CAAC,CAC7H,KAAC,UAAU,OACH,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EACvC,SAAS,EAAE,mBAAmB,CAAC,oBAAoB,EAAE,SAAS,CAAC,oBAChD,QAAQ,mBACT,gBAAgB,eACpB,MAAM,8BACU,IAAI,0BACR,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAClD,IAAI,EAAE,IAAI,YAET,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GACxB,CAChB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Avatar/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAuB/C,gGAAgG;AAChG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI;KACvD,IAAI,EAAE;KACN,KAAK,CAAC,KAAK,CAAC;KACZ,MAAM,CAAC,OAAO,CAAC;KACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACxC,IAAI,CAAC,EAAE,CAAC;KACR,iBAAiB,EAAE,CAAA;AAExB,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,GAAuB,EAAE,QAA+B,EAAE,EAAE,CAAC,8BAClG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,UAAU,CAAC,KAAK,IAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAE,GAAG,GAAI,EACjE,KAAC,UAAU,CAAC,QAAQ,mBAAa,MAAM,kCAA8B,MAAM,YAAE,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,GAAuB,IACrI,CAAA;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,YAAqB,EAAE,EAAE,CAAC,YAAY;IAChF,CAAC,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE;IAClC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,UAAU,GAAG,KAAK,EAAe,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAC9J,8BACgB,MAAM,EAClB,SAAS,EAAE,mBAAmB,CAAC,gDAAgD,EAAE,SAAS,CAAC,oBAC5E,QAAQ,mBACT,SAAS,eACb,MAAM,8BACU,IAAI,0BACT,OAAO,2BACN,MAAM,YAE5B,KAAC,QAAQ,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,GAAI,GACpC,CACV,CAAC,CAAC,CAAC,CACA,KAAC,UAAU,OACH,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EACvC,SAAS,EAAE,mBAAmB,CAAC,oBAAoB,EAAE,SAAS,CAAC,oBAChD,QAAQ,mBACT,gBAAgB,eACpB,MAAM,8BACU,IAAI,0BACR,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAClD,IAAI,EAAE,IAAI,YAET,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GACxB,CAChB,CAAA"}
@@ -136,4 +136,28 @@ export type FieldProps = FieldControlProps & {
136
136
  * control so a custom control is announced exactly like a Grammar one.
137
137
  */
138
138
  export declare const Field: ({ id: idProp, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, children, }: FieldProps) => import("react").JSX.Element;
139
+ export type FieldSkeletonKind = "select" | "textarea" | "input" | "segmented" | "choices" | "switch";
140
+ /**
141
+ * Loading view of a field (knowledge STATE-8): the label stays real text, the control becomes Skeleton geometry of the loaded
142
+ * control's size. The geometry is `aria-hidden` and nothing in it is focusable; the root owns `aria-busy`. Description and error
143
+ * copy are not drawn (they are content, and nothing is invalid while loading).
144
+ * `kind`: `select` and `input` a one-line field block, `textarea` the `rows` height, `segmented` a joined-segments block
145
+ * (`count` segments wide; `fill` stretches it), `choices` one Skeleton box per option beside its real label, `switch` a
146
+ * Skeleton track beside the real label.
147
+ */
148
+ export declare const FieldSkeleton: ({ component, tier, label, isLabelHidden, isRequired, variant, kind, rows, count, fill, choiceLabels, orientation, className }: {
149
+ readonly component: string;
150
+ readonly tier: "atom" | "branch" | "composite";
151
+ readonly label: ReactNode;
152
+ readonly isLabelHidden?: boolean | undefined;
153
+ readonly isRequired?: boolean | undefined;
154
+ readonly variant?: FieldVariant | undefined;
155
+ readonly kind: FieldSkeletonKind;
156
+ readonly rows?: number;
157
+ readonly count?: number;
158
+ readonly fill?: boolean;
159
+ readonly choiceLabels?: ReadonlyArray<ReactNode>;
160
+ readonly orientation?: "vertical" | "horizontal";
161
+ readonly className: string;
162
+ }) => import("react").JSX.Element;
139
163
  //# sourceMappingURL=index.d.ts.map