@starci/grammar 0.11.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +143 -12
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-avatar-group.css +65 -0
- package/dist/common/components-forms.css +58 -73
- package/dist/common/components-list-panel.css +13 -0
- package/dist/common/components-navigation.css +39 -38
- package/dist/common/components-overlays.css +16 -1
- package/dist/common/components-surface-controls.css +15 -0
- package/dist/common/registry.d.ts +21 -20
- package/dist/common/registry.d.ts.map +1 -1
- package/dist/common/registry.js +2 -2
- package/dist/common/registry.js.map +1 -1
- package/dist/common/renderers-forms.d.ts +12 -12
- package/dist/common/renderers-navigation.d.ts +7 -7
- package/dist/common/renderers-navigation.d.ts.map +1 -1
- package/dist/common/renderers-navigation.js.map +1 -1
- package/dist/common/renderers.d.ts +2 -1
- package/dist/common/renderers.d.ts.map +1 -1
- package/dist/common/renderers.js +1 -0
- package/dist/common/renderers.js.map +1 -1
- package/dist/common/rule-catalog.generated.d.ts +2 -1
- package/dist/common/rule-catalog.generated.d.ts.map +1 -1
- package/dist/common/rule-catalog.generated.js +12 -2
- package/dist/common/rule-catalog.generated.js.map +1 -1
- package/dist/common/styles.css +163 -50
- package/dist/core/OtpInput.d.ts +3 -0
- package/dist/core/OtpInput.d.ts.map +1 -1
- package/dist/core/OtpInput.js +4 -2
- package/dist/core/OtpInput.js.map +1 -1
- package/dist/core/branch/AlertDialog/index.d.ts.map +1 -1
- package/dist/core/branch/AlertDialog/index.js +25 -20
- package/dist/core/branch/AlertDialog/index.js.map +1 -1
- package/dist/core/branch/ComboBox/index.d.ts +2 -2
- package/dist/core/branch/ComboBox/index.d.ts.map +1 -1
- package/dist/core/branch/ComboBox/index.js +3 -1
- package/dist/core/branch/ComboBox/index.js.map +1 -1
- package/dist/core/branch/DatePicker/index.d.ts +2 -2
- package/dist/core/branch/DatePicker/index.d.ts.map +1 -1
- package/dist/core/branch/DatePicker/index.js +3 -1
- package/dist/core/branch/DatePicker/index.js.map +1 -1
- package/dist/core/branch/DateRangePicker/index.d.ts +2 -2
- package/dist/core/branch/DateRangePicker/index.d.ts.map +1 -1
- package/dist/core/branch/DateRangePicker/index.js +3 -1
- package/dist/core/branch/DateRangePicker/index.js.map +1 -1
- package/dist/core/branch/Dialog/index.d.ts.map +1 -1
- package/dist/core/branch/Dialog/index.js +6 -2
- package/dist/core/branch/Dialog/index.js.map +1 -1
- package/dist/core/branch/Drawer/index.d.ts.map +1 -1
- package/dist/core/branch/Drawer/index.js +6 -2
- package/dist/core/branch/Drawer/index.js.map +1 -1
- package/dist/core/branch/DropdownMenu/index.d.ts +12 -5
- package/dist/core/branch/DropdownMenu/index.d.ts.map +1 -1
- package/dist/core/branch/DropdownMenu/index.js +13 -6
- package/dist/core/branch/DropdownMenu/index.js.map +1 -1
- package/dist/core/branch/ListBox/index.d.ts +20 -5
- package/dist/core/branch/ListBox/index.d.ts.map +1 -1
- package/dist/core/branch/ListBox/index.js +19 -9
- package/dist/core/branch/ListBox/index.js.map +1 -1
- package/dist/core/branch/Popover/index.d.ts.map +1 -1
- package/dist/core/branch/Popover/index.js +2 -1
- package/dist/core/branch/Popover/index.js.map +1 -1
- package/dist/core/branch/Rail/index.d.ts.map +1 -1
- package/dist/core/branch/Rail/index.js +4 -2
- package/dist/core/branch/Rail/index.js.map +1 -1
- package/dist/core/branch/Select/index.d.ts +6 -3
- package/dist/core/branch/Select/index.d.ts.map +1 -1
- package/dist/core/branch/Select/index.js +14 -21
- package/dist/core/branch/Select/index.js.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceAccordionCard/index.js +3 -1
- package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -1
- package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceCard/index.js +3 -1
- package/dist/core/branch/SurfaceCard/index.js.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
- package/dist/core/branch/SurfaceListCard/index.js +3 -1
- package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
- package/dist/core/branch/Tooltip/index.d.ts +13 -0
- package/dist/core/branch/Tooltip/index.d.ts.map +1 -1
- package/dist/core/branch/Tooltip/index.js +40 -1
- package/dist/core/branch/Tooltip/index.js.map +1 -1
- package/dist/core/composite/AvatarButton/index.d.ts +3 -1
- package/dist/core/composite/AvatarButton/index.d.ts.map +1 -1
- package/dist/core/composite/AvatarButton/index.js +1 -1
- package/dist/core/composite/AvatarButton/index.js.map +1 -1
- package/dist/core/composite/AvatarGroup/index.d.ts +11 -3
- package/dist/core/composite/AvatarGroup/index.d.ts.map +1 -1
- package/dist/core/composite/AvatarGroup/index.js +9 -5
- package/dist/core/composite/AvatarGroup/index.js.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.d.ts +2 -2
- package/dist/core/composite/CheckboxGroup/index.d.ts.map +1 -1
- package/dist/core/composite/CheckboxGroup/index.js +5 -1
- package/dist/core/composite/CheckboxGroup/index.js.map +1 -1
- package/dist/core/composite/IdentityLockup/index.d.ts +4 -2
- package/dist/core/composite/IdentityLockup/index.d.ts.map +1 -1
- package/dist/core/composite/IdentityLockup/index.js +1 -1
- package/dist/core/composite/IdentityLockup/index.js.map +1 -1
- package/dist/core/composite/RadioGroup/index.d.ts +2 -2
- package/dist/core/composite/RadioGroup/index.d.ts.map +1 -1
- package/dist/core/composite/RadioGroup/index.js +5 -1
- package/dist/core/composite/RadioGroup/index.js.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/ChatWorkspace/index.d.ts.map +1 -1
- package/dist/core/composition/ChatWorkspace/index.js +2 -1
- package/dist/core/composition/ChatWorkspace/index.js.map +1 -1
- package/dist/core/composition/Sidebar/index.d.ts +9 -2
- package/dist/core/composition/Sidebar/index.d.ts.map +1 -1
- package/dist/core/composition/Sidebar/index.js +49 -25
- package/dist/core/composition/Sidebar/index.js.map +1 -1
- package/dist/core/composition/WorkspaceShell/classNames.d.ts +1 -0
- package/dist/core/composition/WorkspaceShell/classNames.d.ts.map +1 -1
- package/dist/core/composition/WorkspaceShell/classNames.js +1 -0
- package/dist/core/composition/WorkspaceShell/classNames.js.map +1 -1
- package/dist/core/composition/WorkspaceShell/index.d.ts +30 -0
- package/dist/core/composition/WorkspaceShell/index.d.ts.map +1 -1
- package/dist/core/composition/WorkspaceShell/index.js +10 -4
- package/dist/core/composition/WorkspaceShell/index.js.map +1 -1
- package/dist/core/dna.d.ts +5 -0
- package/dist/core/dna.d.ts.map +1 -1
- package/dist/core/dna.js +5 -0
- package/dist/core/dna.js.map +1 -1
- package/dist/core/overlayScope.d.ts +16 -0
- package/dist/core/overlayScope.d.ts.map +1 -1
- package/dist/core/overlayScope.js +12 -0
- package/dist/core/overlayScope.js.map +1 -1
- package/dist/core/primitive/Avatar/index.d.ts +11 -6
- package/dist/core/primitive/Avatar/index.d.ts.map +1 -1
- package/dist/core/primitive/Avatar/index.js +21 -4
- package/dist/core/primitive/Avatar/index.js.map +1 -1
- package/dist/core/primitive/Button/index.d.ts +1 -1
- package/dist/core/primitive/Button/index.d.ts.map +1 -1
- package/dist/core/primitive/Button/index.js +3 -3
- package/dist/core/primitive/Button/index.js.map +1 -1
- package/dist/core/primitive/Checkbox/index.d.ts +2 -2
- package/dist/core/primitive/Checkbox/index.d.ts.map +1 -1
- package/dist/core/primitive/Checkbox/index.js +5 -1
- package/dist/core/primitive/Checkbox/index.js.map +1 -1
- package/dist/core/primitive/DateField/index.d.ts +2 -2
- package/dist/core/primitive/DateField/index.d.ts.map +1 -1
- package/dist/core/primitive/DateField/index.js +5 -1
- package/dist/core/primitive/DateField/index.js.map +1 -1
- package/dist/core/primitive/Field/index.d.ts +3 -2
- package/dist/core/primitive/Field/index.d.ts.map +1 -1
- package/dist/core/primitive/Field/index.js.map +1 -1
- package/dist/core/primitive/IconButton/index.d.ts +2 -2
- package/dist/core/primitive/IconButton/index.d.ts.map +1 -1
- package/dist/core/primitive/IconButton/index.js +1 -1
- package/dist/core/primitive/IconButton/index.js.map +1 -1
- package/dist/core/primitive/Input/index.d.ts +4 -1
- package/dist/core/primitive/Input/index.d.ts.map +1 -1
- package/dist/core/primitive/Input/index.js +5 -3
- package/dist/core/primitive/Input/index.js.map +1 -1
- package/dist/core/primitive/NumberField/index.d.ts +2 -2
- package/dist/core/primitive/NumberField/index.d.ts.map +1 -1
- package/dist/core/primitive/NumberField/index.js +5 -1
- package/dist/core/primitive/NumberField/index.js.map +1 -1
- package/dist/core/primitive/PlainPressable/index.d.ts +3 -1
- package/dist/core/primitive/PlainPressable/index.d.ts.map +1 -1
- package/dist/core/primitive/PlainPressable/index.js +1 -1
- package/dist/core/primitive/PlainPressable/index.js.map +1 -1
- package/dist/core/primitive/PressableField/index.d.ts +4 -1
- package/dist/core/primitive/PressableField/index.d.ts.map +1 -1
- package/dist/core/primitive/PressableField/index.js +5 -1
- package/dist/core/primitive/PressableField/index.js.map +1 -1
- package/dist/core/primitive/RelativeTime/clock.d.ts +5 -0
- package/dist/core/primitive/RelativeTime/clock.d.ts.map +1 -0
- package/dist/core/primitive/RelativeTime/clock.js +28 -0
- package/dist/core/primitive/RelativeTime/clock.js.map +1 -0
- package/dist/core/primitive/RelativeTime/index.d.ts +18 -0
- package/dist/core/primitive/RelativeTime/index.d.ts.map +1 -0
- package/dist/core/primitive/RelativeTime/index.js +45 -0
- package/dist/core/primitive/RelativeTime/index.js.map +1 -0
- package/dist/core/primitive/SearchField/index.d.ts +4 -2
- package/dist/core/primitive/SearchField/index.d.ts.map +1 -1
- package/dist/core/primitive/SearchField/index.js +5 -1
- package/dist/core/primitive/SearchField/index.js.map +1 -1
- package/dist/core/primitive/Switch/index.d.ts +9 -4
- package/dist/core/primitive/Switch/index.d.ts.map +1 -1
- package/dist/core/primitive/Switch/index.js +1 -1
- package/dist/core/primitive/Switch/index.js.map +1 -1
- package/dist/core/primitive/TextAction/index.d.ts.map +1 -1
- package/dist/core/primitive/TextAction/index.js +3 -1
- package/dist/core/primitive/TextAction/index.js.map +1 -1
- package/dist/core/primitive/Textarea/index.d.ts +2 -2
- package/dist/core/primitive/Textarea/index.d.ts.map +1 -1
- package/dist/core/primitive/Textarea/index.js +3 -1
- package/dist/core/primitive/Textarea/index.js.map +1 -1
- package/dist/core/primitive/TimeField/index.d.ts +2 -2
- package/dist/core/primitive/TimeField/index.d.ts.map +1 -1
- package/dist/core/primitive/TimeField/index.js +5 -1
- package/dist/core/primitive/TimeField/index.js.map +1 -1
- package/dist/core/primitive/actionStyles.d.ts +1 -1
- package/dist/core/primitive/actionStyles.d.ts.map +1 -1
- package/dist/core/surfaceContext.d.ts +11 -0
- package/dist/core/surfaceContext.d.ts.map +1 -0
- package/dist/core/surfaceContext.js +14 -0
- package/dist/core/surfaceContext.js.map +1 -0
- package/dist/offset-pop/components-overlays.css +1 -1
- package/package.json +8 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useFieldVariant } from "../../surfaceContext.js";
|
|
3
4
|
import { Checkbox as HeroCheckbox, CheckboxGroup as HeroCheckboxGroup } from "@heroui/react";
|
|
4
5
|
import { FieldDescription, FieldErrorText, FieldLabel, FieldSkeleton, fieldVariantAttributes, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
5
6
|
import { CheckboxItem } from "../../primitive/Checkbox/index.js";
|
|
@@ -17,5 +18,8 @@ import { CheckboxItem } from "../../primitive/Checkbox/index.js";
|
|
|
17
18
|
* Several independent choices under one group name (`role="group"`, labelled by the group label).
|
|
18
19
|
* Required means "at least one", validated by the vendor; the group owns the one error slot.
|
|
19
20
|
*/
|
|
20
|
-
export const CheckboxGroup = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant
|
|
21
|
+
export const CheckboxGroup = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant: requestedVariant, isSkeleton = false, ...field }) => {
|
|
22
|
+
const variant = useFieldVariant(requestedVariant);
|
|
23
|
+
return 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 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
|
+
};
|
|
21
25
|
//# 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,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,
|
|
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,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,EAAE,gBAAgB,EACzB,UAAU,GAAG,KAAK,EAClB,GAAG,KAAK,EACS,EAAE,EAAE;IACrB,MAAM,OAAO,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACjD,OAAO,UAAU,CAAC,CAAC,CAAC,CAChB,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,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"}
|
|
@@ -4,10 +4,12 @@ export type IdentityLockupProps = {
|
|
|
4
4
|
readonly title: string;
|
|
5
5
|
/** The muted second line, e.g. the viewer's role. */
|
|
6
6
|
readonly subtitle?: string;
|
|
7
|
-
/** The logo image; without it (or while it loads or fails) the mark shows
|
|
7
|
+
/** The logo image; without it (or while it loads or fails) the mark shows a monogram in the same transparent box. */
|
|
8
8
|
readonly logoSrc?: string;
|
|
9
9
|
/** `square` (default): a transparent box with no corner, the image contained so round, square and wide logos keep their own shape. `rounded` is an explicit opt-in. */
|
|
10
10
|
readonly markShape?: Extract<AvatarShape, "square" | "rounded">;
|
|
11
|
+
/** Gives the existing PlainPressable the navbar's shared control height. */
|
|
12
|
+
readonly size?: "control";
|
|
11
13
|
readonly onPress?: () => void;
|
|
12
14
|
readonly isDisabled?: boolean;
|
|
13
15
|
};
|
|
@@ -16,5 +18,5 @@ export type IdentityLockupProps = {
|
|
|
16
18
|
* PlainPressable, so it can trigger a menu or popover (the workspace switcher of a top bar). The name is the visible text.
|
|
17
19
|
* Contract: A11Y-2 (the mark is decorative; the lines name the control).
|
|
18
20
|
*/
|
|
19
|
-
export declare const IdentityLockup: ({ title, subtitle, logoSrc, markShape, onPress, isDisabled }: IdentityLockupProps) => import("react").JSX.Element;
|
|
21
|
+
export declare const IdentityLockup: ({ title, subtitle, logoSrc, markShape, size, onPress, isDisabled }: IdentityLockupProps) => import("react").JSX.Element;
|
|
20
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/IdentityLockup/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAG1E,MAAM,MAAM,mBAAmB,GAAG;IAC9B,mGAAmG;IACnG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/IdentityLockup/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAG1E,MAAM,MAAM,mBAAmB,GAAG;IAC9B,mGAAmG;IACnG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,qHAAqH;IACrH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,uKAAuK;IACvK,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC/D,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,oEAA+E,mBAAmB,gCAchI,CAAA"}
|
|
@@ -7,5 +7,5 @@ import { PlainPressable } from "../../primitive/PlainPressable/index.js";
|
|
|
7
7
|
* PlainPressable, so it can trigger a menu or popover (the workspace switcher of a top bar). The name is the visible text.
|
|
8
8
|
* Contract: A11Y-2 (the mark is decorative; the lines name the control).
|
|
9
9
|
*/
|
|
10
|
-
export const IdentityLockup = ({ title, subtitle, logoSrc, markShape = "square", onPress, isDisabled }) => (_jsx(PlainPressable, { ...(onPress === undefined ? {} : { onPress }), ...(isDisabled === undefined ? {} : { isDisabled }), children: _jsxs("span", { className: "starci-core-identity-lockup", "data-tier": "composite", "data-component": "IdentityLockup", "data-contract": "A11Y-2", children: [_jsx(Avatar, { name: title, isDecorative: true, shape: markShape, size: "md", ...(logoSrc === undefined ? {} : { src: logoSrc }) }), _jsxs("span", { className: "starci-core-identity-lockup-copy", children: [_jsx("span", { className: "starci-core-identity-lockup-title", "data-grammar-lockup-line": "title", children: title }), subtitle === undefined ? null : _jsx("span", { className: "starci-core-identity-lockup-subtitle", "data-grammar-lockup-line": "subtitle", children: subtitle })] })] }) }));
|
|
10
|
+
export const IdentityLockup = ({ title, subtitle, logoSrc, markShape = "square", size, onPress, isDisabled }) => (_jsx(PlainPressable, { ...(size === undefined ? {} : { size }), ...(onPress === undefined ? {} : { onPress }), ...(isDisabled === undefined ? {} : { isDisabled }), children: _jsxs("span", { className: "starci-core-identity-lockup", "data-tier": "composite", "data-component": "IdentityLockup", "data-contract": "A11Y-2", children: [_jsx(Avatar, { name: title, isDecorative: true, shape: markShape, size: "md", ...(logoSrc === undefined ? {} : { src: logoSrc }) }), _jsxs("span", { className: "starci-core-identity-lockup-copy", children: [_jsx("span", { className: "starci-core-identity-lockup-title", "data-grammar-lockup-line": "title", children: title }), subtitle === undefined ? null : _jsx("span", { className: "starci-core-identity-lockup-subtitle", "data-grammar-lockup-line": "subtitle", children: subtitle })] })] }) }));
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/IdentityLockup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,EAAoB,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/IdentityLockup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,EAAoB,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAiBxE;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAuB,EAAE,EAAE,CAAC,CAClI,KAAC,cAAc,OACP,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KACpC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAC1C,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,YAEpD,gBAAM,SAAS,EAAC,6BAA6B,eAAW,WAAW,oBAAgB,gBAAgB,mBAAe,QAAQ,aACtH,KAAC,MAAM,IAAC,IAAI,EAAE,KAAK,EAAE,YAAY,QAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,GAAI,EACrH,gBAAM,SAAS,EAAC,kCAAkC,aAC9C,eAAM,SAAS,EAAC,mCAAmC,8BAA0B,OAAO,YAAE,KAAK,GAAQ,EAClG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,sCAAsC,8BAA0B,UAAU,YAAE,QAAQ,GAAQ,IAC1I,IACJ,GACM,CACpB,CAAA"}
|
|
@@ -6,12 +6,12 @@ export type RadioGroupProps = FieldControlProps & {
|
|
|
6
6
|
readonly defaultValue?: string | null;
|
|
7
7
|
readonly onValueChange?: (value: string) => void;
|
|
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
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* Exactly one of a few visible choices (`role="radiogroup"`). Arrow keys move and select within the
|
|
14
14
|
* group, Tab leaves it - roving focus is the vendor's.
|
|
15
15
|
*/
|
|
16
|
-
export declare const RadioGroup: ({ options, value, defaultValue, onValueChange, orientation, variant, ...field }: RadioGroupProps) => import("react").JSX.Element;
|
|
16
|
+
export declare const RadioGroup: ({ options, value, defaultValue, onValueChange, orientation, variant: requestedVariant, ...field }: RadioGroupProps) => import("react").JSX.Element;
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/RadioGroup/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/RadioGroup/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAMH,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;CAC7C,CAAA;AAcD;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,mGAQxB,eAAe,gCAyCjB,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useFieldVariant } from "../../surfaceContext.js";
|
|
3
4
|
import { Radio as HeroRadio, RadioGroup as HeroRadioGroup } from "@heroui/react";
|
|
4
5
|
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
5
6
|
/*
|
|
@@ -16,5 +17,8 @@ import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, v
|
|
|
16
17
|
* Exactly one of a few visible choices (`role="radiogroup"`). Arrow keys move and select within the
|
|
17
18
|
* group, Tab leaves it - roving focus is the vendor's.
|
|
18
19
|
*/
|
|
19
|
-
export const RadioGroup = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant
|
|
20
|
+
export const RadioGroup = ({ options, value, defaultValue, onValueChange, orientation = "vertical", variant: requestedVariant, ...field }) => {
|
|
21
|
+
const variant = useFieldVariant(requestedVariant);
|
|
22
|
+
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
|
+
};
|
|
20
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/RadioGroup/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,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;AAavC;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,UAAU,EACxB,OAAO,
|
|
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;AAavC;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,UAAU,EACxB,OAAO,EAAE,gBAAgB,EACzB,GAAG,KAAK,EACM,EAAE,EAAE;IAClB,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"}
|
|
@@ -7,7 +7,7 @@ import { Skeleton } from "../../primitive/Skeleton/index.js";
|
|
|
7
7
|
* presentation states and `data-grammar-current`; the connector line is drawn by the stylesheet.
|
|
8
8
|
* Contract: list HIERARCHY-3, entry STATE-1 TRUTH-1 (closed presentation states, neutral default), marker A11Y-2.
|
|
9
9
|
*/
|
|
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("
|
|
10
|
+
export const Timeline = ({ label, items, className, isLoading = false, loadingRows = 3 }) => (_jsx("ol", { "aria-label": label, "data-loading": String(isLoading), ...(isLoading ? { "aria-busy": true } : {}), className: navigationClassName("starci-core-timeline", className), "data-component": "Timeline", "data-contract": "HIERARCHY-3", "data-tier": "composite", children: isLoading && items.length === 0 ? Array.from({ length: Math.min(12, Math.max(1, Math.floor(Number.isFinite(loadingRows) ? loadingRows : 3))) }, (_, index) => (_jsxs("li", { "aria-hidden": "true", className: "starci-core-timeline-item", "data-contract": "STATE-1 STATE-8", "data-grammar-timeline-state": "neutral", "data-grammar-current": "false", "data-grammar-skeleton": "true", children: [_jsx("span", { "aria-hidden": "true", className: "starci-core-timeline-marker starci-core-timeline-skeleton-marker", "data-grammar-timeline-marker": "true", children: _jsx(Skeleton, { shape: "circle", size: "sm" }) }), _jsxs("div", { className: "starci-core-timeline-copy", children: [_jsx("div", { className: "starci-core-timeline-title", children: _jsx(Skeleton, { shape: "text" }) }), _jsx("span", { className: "starci-core-timeline-time", children: _jsx(Skeleton, { shape: "text" }) }), _jsx("div", { className: "starci-core-timeline-description", children: _jsx(Skeleton, { shape: "text" }) })] })] }, index))) : items.map((item) => {
|
|
11
11
|
const state = item.state ?? "neutral";
|
|
12
12
|
assertPresentationState(state);
|
|
13
13
|
return (_jsxs("li", { "aria-current": item.isCurrent ? "step" : undefined, className: "starci-core-timeline-item", "data-contract": "STATE-1 TRUTH-1", "data-grammar-timeline-state": state, "data-grammar-current": item.isCurrent ? "true" : "false", children: [_jsx("span", { "aria-hidden": "true", className: "starci-core-timeline-marker", "data-contract": "A11Y-2", "data-grammar-timeline-marker": "true", children: item.marker }), _jsxs("div", { className: "starci-core-timeline-copy", children: [_jsx("p", { className: "starci-core-timeline-title", children: item.title }), item.timeLabel === undefined ? null : (_jsx("time", { className: "starci-core-timeline-time", ...(item.dateTime === undefined ? {} : { dateTime: item.dateTime }), children: item.timeLabel })), item.description === undefined ? null : _jsx("div", { className: "starci-core-timeline-description", children: item.description })] })] }, item.id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Timeline/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,0BAA0B,CAAA;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AA8B5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE,WAAW,GAAG,CAAC,EAAiB,EAAE,EAAE,CAAC,CACxG,2BACgB,KAAK,kBACH,MAAM,CAAC,SAAS,CAAC,KAC3B,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC5C,SAAS,EAAE,mBAAmB,CAAC,sBAAsB,EAAE,SAAS,CAAC,oBAClD,UAAU,mBACX,aAAa,eACjB,WAAW,YAEpB,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3J,6BAA4B,MAAM,EAAC,SAAS,EAAC,2BAA2B,mBAAe,iBAAiB,iCAA6B,SAAS,0BAAsB,OAAO,2BAAuB,MAAM,aACpM,8BAAkB,MAAM,EAAC,SAAS,EAAC,kEAAkE,kCAA8B,MAAM,YAAC,KAAC,QAAQ,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,GAAG,GAAO,EACtL,eAAK,SAAS,EAAC,2BAA2B,aACtC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Timeline/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACjB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACjB,MAAM,OAAO,CAAA;AAoCd,KAAK,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG;IACjG,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAA;IAChC,oEAAoE;IACpE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,KAAK,0BAA0B,GAAG;IAC9B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;CACvD,CAAA;AAED,KAAK,6BAA6B,GAAG;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,CACtD,0BAA0B,GAAG,6BAA6B,CAC7D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAiKtD,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { cn, Drawer } from "@heroui/react";
|
|
|
4
4
|
import { useEffect, useSyncExternalStore, } from "react";
|
|
5
5
|
import { Rail } from "../../branch/Rail/index.js";
|
|
6
6
|
import { VerticalScrollRegion } from "../../composite/VerticalScrollRegion/index.js";
|
|
7
|
+
import { SurfaceNesting } from "../../surfaceContext.js";
|
|
7
8
|
import { chatWorkspaceClassName, chatWorkspaceComposerClassName, chatWorkspaceConversationClassName, chatWorkspaceDrawerBodyClassName, chatWorkspaceDrawerCloseClassName, chatWorkspaceDrawerContentClassName, chatWorkspaceDrawerDialogClassName, chatWorkspaceHeaderClassName, chatWorkspaceInlineRailClassName, chatWorkspaceOverlayRailClassName, chatWorkspacePrimaryClassName, chatWorkspaceRailTriggerBoundaryClassName, chatWorkspaceRailTriggerClassName, getChatWorkspaceLayoutClassName, } from "./classNames.js";
|
|
8
9
|
const compactRailQuery = "(max-width: 47.999rem)";
|
|
9
10
|
const subscribeToCompactRail = (onStoreChange) => {
|
|
@@ -35,6 +36,6 @@ export const ChatWorkspace = (props) => {
|
|
|
35
36
|
if (hasRail && !isCompactRail && isRailOpen)
|
|
36
37
|
onRailOpenChange?.(false);
|
|
37
38
|
}, [hasRail, isCompactRail, isRailOpen, onRailOpenChange]);
|
|
38
|
-
return (_jsxs("section", { ...sectionProps, "aria-label": label, className: cn(chatWorkspaceClassName, className), "data-grammar-chat-workspace": "true", "data-component": "ChatWorkspace", "data-tier": "composition", "data-grammar-chat-workspace-rail": hasRail ? "present" : "absent", children: [header === undefined ? null : (_jsx("header", { className: chatWorkspaceHeaderClassName, "data-grammar-chat-workspace-slot": "header", children: header })), hasRail && isCompactRail ? (_jsxs(Drawer, { isOpen: railConfig.isOpen, onOpenChange: railConfig.onOpenChange, children: [_jsx("div", { className: chatWorkspaceRailTriggerBoundaryClassName, "data-contract": "BOUNDARY-1 PADDING-4 PADDING-2", children: _jsx(Drawer.Trigger, { className: chatWorkspaceRailTriggerClassName, "data-contract": "PADDING-3 SURFACE-2 FONT-2 TONE-1", children: railConfig.openLabel }) }), _jsx(Drawer.Backdrop, { children: _jsx(Drawer.Content, { className: chatWorkspaceDrawerContentClassName, placement: "right", children:
|
|
39
|
+
return (_jsxs("section", { ...sectionProps, "aria-label": label, className: cn(chatWorkspaceClassName, className), "data-grammar-chat-workspace": "true", "data-component": "ChatWorkspace", "data-tier": "composition", "data-grammar-chat-workspace-rail": hasRail ? "present" : "absent", children: [header === undefined ? null : (_jsx("header", { className: chatWorkspaceHeaderClassName, "data-grammar-chat-workspace-slot": "header", children: header })), hasRail && isCompactRail ? (_jsxs(Drawer, { isOpen: railConfig.isOpen, onOpenChange: railConfig.onOpenChange, children: [_jsx("div", { className: chatWorkspaceRailTriggerBoundaryClassName, "data-contract": "BOUNDARY-1 PADDING-4 PADDING-2", children: _jsx(Drawer.Trigger, { className: chatWorkspaceRailTriggerClassName, "data-contract": "PADDING-3 SURFACE-2 FONT-2 TONE-1", children: railConfig.openLabel }) }), _jsx(Drawer.Backdrop, { children: _jsx(Drawer.Content, { className: chatWorkspaceDrawerContentClassName, placement: "right", children: _jsx(Drawer.Dialog, { className: chatWorkspaceDrawerDialogClassName, "data-grammar-nesting": "surface", children: _jsxs(SurfaceNesting, { children: [_jsx(Drawer.Header, { children: _jsx(Drawer.Heading, { children: railConfig.label }) }), _jsx(Drawer.CloseTrigger, { "aria-label": railConfig.closeLabel, className: chatWorkspaceDrawerCloseClassName, "data-contract": "SURFACE-2 TONE-1" }), _jsx(Drawer.Body, { className: chatWorkspaceDrawerBodyClassName, "data-contract": "OVERFLOW-2 PADDING-0", children: _jsx(VerticalScrollRegion, { "aria-label": railConfig.label, className: chatWorkspaceOverlayRailClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5 PADDING-4", "data-grammar-chat-workspace-rail-presentation": "overlay", "data-grammar-chat-workspace-slot": "rail", isScrollable: true, role: "region", tabIndex: 0, children: railConfig.content }) })] }) }) }) })] })) : null, _jsxs("div", { className: getChatWorkspaceLayoutClassName(railWidth, hasRail), "data-contract": "GAP-5", "data-grammar-chat-workspace-layout": "true", "data-grammar-chat-workspace-rail-width": hasRail ? railWidth : undefined, children: [_jsxs("div", { className: chatWorkspacePrimaryClassName, "data-grammar-chat-workspace-slot": "primary", children: [_jsx(VerticalScrollRegion, { "aria-label": conversationLabel, className: chatWorkspaceConversationClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5", "data-grammar-chat-workspace-scroll-owner": "conversation", "data-grammar-chat-workspace-slot": "conversation", isScrollable: true, role: "region", tabIndex: 0, children: conversation }), _jsx("div", { className: chatWorkspaceComposerClassName, "data-contract": "BOUNDARY-1", "data-grammar-chat-workspace-slot": "composer", children: composer })] }), hasRail && !isCompactRail ? (_jsx("div", { className: chatWorkspaceInlineRailClassName, children: _jsx(Rail, { height: "fill", inset: "none", isLabelHidden: true, label: railConfig.label, mode: "flow", width: railWidth, children: _jsx(VerticalScrollRegion, { "aria-label": railConfig.label, className: chatWorkspaceOverlayRailClassName, "data-contract": "OVERFLOW-4 OVERFLOW-5 PADDING-4", "data-grammar-chat-workspace-rail-presentation": "inline", "data-grammar-chat-workspace-slot": "rail", isScrollable: true, role: "region", tabIndex: 0, children: railConfig.content }) }) })) : null] })] }));
|
|
39
40
|
};
|
|
40
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/ChatWorkspace/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
2
|
import { type IconSource } from "../../primitive/Icon/index.js";
|
|
3
3
|
export type SidebarItem = {
|
|
4
4
|
readonly id: string;
|
|
5
5
|
readonly label: string;
|
|
6
6
|
readonly source?: IconSource;
|
|
7
7
|
readonly trailing?: ReactNode;
|
|
8
|
+
/** Unread or pending count, visible in both the expanded sidebar and the icon rail. */
|
|
9
|
+
readonly badge?: number | string;
|
|
10
|
+
/** Count announcement, e.g. "3 unread conversations". */
|
|
11
|
+
readonly badgeLabel?: string;
|
|
12
|
+
readonly badgeMax?: number;
|
|
8
13
|
readonly isDisabled?: boolean;
|
|
9
14
|
};
|
|
10
15
|
export type SidebarGroup = {
|
|
11
16
|
readonly id: string;
|
|
12
17
|
readonly label?: string;
|
|
18
|
+
/** Settings-type groups stay at the end, preserving their authored order. */
|
|
19
|
+
readonly placement?: "start" | "end";
|
|
13
20
|
readonly items: ReadonlyArray<SidebarItem>;
|
|
14
21
|
};
|
|
15
22
|
export type SidebarProps = {
|
|
@@ -30,7 +37,7 @@ export type SidebarProps = {
|
|
|
30
37
|
* Shared grouped sidebar renderer; apps own route, permission, copy and persistence policy.
|
|
31
38
|
*
|
|
32
39
|
* Geometry is owned by `.starci-core-sidebar*` in the packaged stylesheet, and the collapsed and
|
|
33
|
-
* drawer projections are read from `data-collapsed` and `data-presentation` on this root. Nothing
|
|
40
|
+
* drawer projections are read from `data-collapsed` and `data-presentation` on this root. Items keep HeroUI's padding. Nothing
|
|
34
41
|
* here depends on a consumer's Tailwind build scanning the package.
|
|
35
42
|
*/
|
|
36
43
|
export declare const Sidebar: ({ label, groups, selectedKey, presentation, isCollapsed, collapseLabel, expandLabel, toggleSource, header, footer, onAction, onCollapsedChange, }: SidebarProps) => import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG/D,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAerE,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5D,CAAA;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,mJAarB,YAAY,gCAwHd,CAAA"}
|
|
@@ -1,41 +1,65 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Header, ListBox } from "@heroui/react";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Header, ListBox, Separator } from "@heroui/react";
|
|
4
|
+
import { useId, useRef, useState } from "react";
|
|
5
|
+
import { AnchoredTooltip } from "../../branch/Tooltip/index.js";
|
|
6
|
+
import { SurfaceNesting } from "../../surfaceContext.js";
|
|
4
7
|
import { Icon } from "../../primitive/Icon/index.js";
|
|
5
|
-
import { IconButton } from "../../primitive/IconButton/index.js";
|
|
8
|
+
import { IconButton, iconButtonBadgeText } from "../../primitive/IconButton/index.js";
|
|
6
9
|
import { sidebarClassName, sidebarFooterClassName, sidebarHeaderClassName, sidebarItemClassName, sidebarItemLabelClassName, sidebarItemTrailingClassName, sidebarListClassName, sidebarSectionClassName, sidebarSectionLabelClassName, sidebarToggleClassName, } from "./classNames.js";
|
|
7
|
-
/**
|
|
8
|
-
* Sections and items share ONE key namespace inside the collection.
|
|
9
|
-
*
|
|
10
|
-
* A caller naturally writes `{ id: "home", items: [{ id: "home" }] }` - the group that holds the
|
|
11
|
-
* home destination, named after it. That duplicate key made the collection unresolvable: every
|
|
12
|
-
* section after the first was dropped from the render, and a re-render (collapsing the rail) sent
|
|
13
|
-
* reconciliation into a loop that never settled, which under Vitest reads as a worker that never
|
|
14
|
-
* reports. Prefixing the section key keeps the caller's vocabulary free: a group id and an item id
|
|
15
|
-
* may be the same word, because only the item id is ever a real collection key.
|
|
16
|
-
*/
|
|
10
|
+
/** Namespacing section keys lets a group and its destination share an app-owned id. */
|
|
17
11
|
const sectionKey = (id) => `sidebar-section:${id}`;
|
|
18
|
-
const firstKey = (keys) => {
|
|
19
|
-
if (keys === "all")
|
|
20
|
-
return undefined;
|
|
21
|
-
const value = keys.values().next().value;
|
|
22
|
-
return value === undefined ? undefined : String(value);
|
|
23
|
-
};
|
|
24
12
|
/**
|
|
25
13
|
* Shared grouped sidebar renderer; apps own route, permission, copy and persistence policy.
|
|
26
14
|
*
|
|
27
15
|
* Geometry is owned by `.starci-core-sidebar*` in the packaged stylesheet, and the collapsed and
|
|
28
|
-
* drawer projections are read from `data-collapsed` and `data-presentation` on this root. Nothing
|
|
16
|
+
* drawer projections are read from `data-collapsed` and `data-presentation` on this root. Items keep HeroUI's padding. Nothing
|
|
29
17
|
* here depends on a consumer's Tailwind build scanning the package.
|
|
30
18
|
*/
|
|
31
19
|
export const Sidebar = ({ label, groups, selectedKey, presentation = "rail", isCollapsed = false, collapseLabel, expandLabel, toggleSource, header, footer, onAction, onCollapsedChange, }) => {
|
|
32
20
|
const collapsed = presentation === "rail" && isCollapsed;
|
|
21
|
+
const listId = useId();
|
|
22
|
+
const tooltipId = useId();
|
|
23
|
+
const hoveredItem = useRef(null);
|
|
24
|
+
const focusedItem = useRef(null);
|
|
25
|
+
const [tooltip, setTooltip] = useState(null);
|
|
26
|
+
const orderedGroups = [...groups.filter((group) => group.placement !== "end"), ...groups.filter((group) => group.placement === "end")];
|
|
27
|
+
const updateTooltip = () => {
|
|
28
|
+
const item = hoveredItem.current ?? focusedItem.current;
|
|
29
|
+
setTooltip(item);
|
|
30
|
+
};
|
|
31
|
+
const showTooltip = (target, item, kind) => {
|
|
32
|
+
if (!collapsed)
|
|
33
|
+
return;
|
|
34
|
+
const ref = kind === "hover" ? hoveredItem : focusedItem;
|
|
35
|
+
ref.current = { target, id: item.id, label: item.label };
|
|
36
|
+
updateTooltip();
|
|
37
|
+
};
|
|
38
|
+
const hideTooltip = (kind) => {
|
|
39
|
+
if (kind !== "focus")
|
|
40
|
+
hoveredItem.current = null;
|
|
41
|
+
if (kind !== "hover")
|
|
42
|
+
focusedItem.current = null;
|
|
43
|
+
updateTooltip();
|
|
44
|
+
};
|
|
33
45
|
const toggleLabel = collapsed ? expandLabel : collapseLabel;
|
|
34
46
|
const canToggle = presentation === "rail" && toggleSource !== undefined && toggleLabel !== undefined && onCollapsedChange !== undefined;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
const content = (_jsxs(_Fragment, { children: [_jsxs("div", { "data-tier": "composition", "data-component": "Sidebar", "data-grammar-nesting": "surface", "data-presentation": presentation, "data-collapsed": collapsed ? "true" : "false", className: sidebarClassName, "data-contract": ["FE-APP-SHELL-6", "OVERFLOW-2", presentation === "drawer" ? "MEASURE-2" : "MEASURE-6"].join(" "), children: [canToggle ? (_jsx("div", { className: sidebarToggleClassName, "data-contract": "PADDING-2", children: _jsx(IconButton, { source: toggleSource, label: toggleLabel, size: "control", isActive: collapsed, "aria-expanded": !collapsed, "aria-controls": listId, onPress: () => { hideTooltip(); onCollapsedChange(!collapsed); } }) })) : null, collapsed || header == null ? null : _jsx("div", { className: sidebarHeaderClassName, "data-contract": "PADDING-3", children: header }), _jsx(ListBox, { id: listId, "aria-label": label, selectionMode: "none", onAction: (key) => {
|
|
48
|
+
hideTooltip();
|
|
49
|
+
onAction?.(String(key));
|
|
50
|
+
}, className: sidebarListClassName, "data-contract": collapsed ? "GAP-1 PADDING-2" : "GAP-1 PADDING-3", children: orderedGroups.flatMap((group, groupIndex) => [
|
|
51
|
+
// HeroUI divides adjacent sections with its own `Separator`, so a group never forgets one.
|
|
52
|
+
...(groupIndex === 0 ? [] : [_jsx(Separator, {}, `separator-${group.id}`)]),
|
|
53
|
+
_jsxs(ListBox.Section, { id: sectionKey(group.id), className: sidebarSectionClassName, "data-grammar-sidebar-group-placement": group.placement ?? "start", "data-grammar-sidebar-end-start": group.placement === "end" && orderedGroups[groupIndex - 1]?.placement !== "end" ? "true" : undefined, "data-contract": "GAP-1", children: [group.label === undefined ? null : (_jsx(Header, { className: sidebarSectionLabelClassName, ...(collapsed ? {} : { "data-contract": "PADDING-2 PADDING-1 PADDING-3 FONT-1 TONE-2" }), children: group.label })), group.items.map((item) => {
|
|
54
|
+
const badgeText = iconButtonBadgeText(item.badge, item.badgeMax);
|
|
55
|
+
const accessibleLabel = badgeText === null ? item.label : `${item.label}, ${item.badgeLabel ?? badgeText}`;
|
|
56
|
+
return (_jsxs(ListBox.Item, { id: item.id, textValue: item.label, className: sidebarItemClassName, "data-grammar-current": selectedKey === item.id ? "true" : "false", "aria-current": selectedKey === item.id ? "page" : undefined, "data-contract": collapsed ? "TONE-1 SURFACE-4" : "GAP-3 TONE-1 SURFACE-4", ...(collapsed || badgeText !== null ? { "aria-label": accessibleLabel } : {}), render: (props) => {
|
|
57
|
+
const describedBy = [props["aria-describedby"], collapsed && tooltip?.id === item.id ? tooltipId : undefined].filter(Boolean).join(" ") || undefined;
|
|
58
|
+
return "href" in props ? _jsx("a", { ...props, "aria-describedby": describedBy }) : _jsx("div", { ...props, "aria-describedby": describedBy });
|
|
59
|
+
}, onHoverStart: (event) => showTooltip(event.target, item, "hover"), onHoverEnd: () => hideTooltip("hover"), onFocus: (event) => showTooltip(event.target, item, "focus"), onBlur: () => hideTooltip("focus"), onKeyDown: (event) => { if (event.key === "Escape")
|
|
60
|
+
hideTooltip(); }, ...(item.isDisabled === undefined ? {} : { isDisabled: item.isDisabled }), children: [item.source === undefined ? null : _jsx(Icon, { source: item.source, usage: "leading" }), collapsed ? null : _jsx("span", { className: sidebarItemLabelClassName, "data-contract": "FLOW-4 FONT-2", children: item.label }), badgeText === null ? null : _jsx("span", { "aria-hidden": true, className: "starci-core-icon-button-badge starci-core-sidebar-item-badge", "data-grammar-sidebar-badge": "true", children: badgeText }), collapsed || item.trailing == null ? null : _jsx("span", { className: sidebarItemTrailingClassName, children: item.trailing })] }, item.id));
|
|
61
|
+
})] }, group.id),
|
|
62
|
+
]) }), collapsed || footer == null ? null : _jsx("div", { className: sidebarFooterClassName, "data-contract": "PADDING-3 PADDING-0", children: footer })] }), _jsx(AnchoredTooltip, { id: tooltipId, target: tooltip?.target ?? null, content: tooltip?.label, isOpen: collapsed && tooltip !== null })] }));
|
|
63
|
+
return _jsx(SurfaceNesting, { children: content });
|
|
40
64
|
};
|
|
41
65
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composition/Sidebar/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,5 @@ export declare const workspaceShellRailClassName: import("tailwind-variants").Cn
|
|
|
8
8
|
export declare const workspaceShellLeadingRuleClassName: import("tailwind-variants").CnReturn;
|
|
9
9
|
export declare const workspaceShellCompactNavigationClassName: import("tailwind-variants").CnReturn;
|
|
10
10
|
export declare const workspaceShellFloatingLayerClassName: import("tailwind-variants").CnReturn;
|
|
11
|
+
export declare const workspaceShellOpenerClassName: import("tailwind-variants").CnReturn;
|
|
11
12
|
//# sourceMappingURL=classNames.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/classNames.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,sCAAoC,CAAA;AACxE,eAAO,MAAM,6BAA6B,sCAA2C,CAAA;AACrF,eAAO,MAAM,oCAAoC,sCAAmD,CAAA;AACpG,eAAO,MAAM,6BAA6B,sCAA2C,CAAA;AACrF,eAAO,MAAM,iCAAiC,sCAA+C,CAAA;AAC7F,eAAO,MAAM,8BAA8B,sCAA4C,CAAA;AACvF,eAAO,MAAM,2BAA2B,sCAAyC,CAAA;AACjF,eAAO,MAAM,kCAAkC,sCAAiD,CAAA;AAChG,eAAO,MAAM,wCAAwC,sCAAuD,CAAA;AAC5G,eAAO,MAAM,oCAAoC,sCAAmD,CAAA"}
|
|
1
|
+
{"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/classNames.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,sCAAoC,CAAA;AACxE,eAAO,MAAM,6BAA6B,sCAA2C,CAAA;AACrF,eAAO,MAAM,oCAAoC,sCAAmD,CAAA;AACpG,eAAO,MAAM,6BAA6B,sCAA2C,CAAA;AACrF,eAAO,MAAM,iCAAiC,sCAA+C,CAAA;AAC7F,eAAO,MAAM,8BAA8B,sCAA4C,CAAA;AACvF,eAAO,MAAM,2BAA2B,sCAAyC,CAAA;AACjF,eAAO,MAAM,kCAAkC,sCAAiD,CAAA;AAChG,eAAO,MAAM,wCAAwC,sCAAuD,CAAA;AAC5G,eAAO,MAAM,oCAAoC,sCAAmD,CAAA;AACpG,eAAO,MAAM,6BAA6B,sCAA2C,CAAA"}
|
|
@@ -9,4 +9,5 @@ export const workspaceShellRailClassName = cn("starci-core-workspace-shell-rail"
|
|
|
9
9
|
export const workspaceShellLeadingRuleClassName = cn("starci-core-workspace-shell-leading-rule");
|
|
10
10
|
export const workspaceShellCompactNavigationClassName = cn("starci-core-workspace-shell-compact-navigation");
|
|
11
11
|
export const workspaceShellFloatingLayerClassName = cn("starci-core-workspace-shell-floating-layer");
|
|
12
|
+
export const workspaceShellOpenerClassName = cn("starci-core-workspace-shell-opener");
|
|
12
13
|
//# sourceMappingURL=classNames.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,CAAC,CAAA;AACpG,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC,wCAAwC,CAAC,CAAA;AAC7F,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,qCAAqC,CAAC,CAAA;AACvF,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,kCAAkC,CAAC,CAAA;AACjF,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC,0CAA0C,CAAC,CAAA;AAChG,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC,gDAAgD,CAAC,CAAA;AAC5G,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,CAAC,CAAA;AACpG,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC,wCAAwC,CAAC,CAAA;AAC7F,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,qCAAqC,CAAC,CAAA;AACvF,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,kCAAkC,CAAC,CAAA;AACjF,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC,0CAA0C,CAAC,CAAA;AAChG,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC,gDAAgD,CAAC,CAAA;AAC5G,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC,4CAA4C,CAAC,CAAA;AACpG,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,oCAAoC,CAAC,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
+
import type { OverlayOpenState } from "../../overlayScope.js";
|
|
3
|
+
import type { IconSource } from "../../primitive/Icon/index.js";
|
|
2
4
|
type SlotContent = Exclude<ReactNode, null | undefined | boolean>;
|
|
3
5
|
type ShellOwnedMain = ({
|
|
4
6
|
readonly primaryLabel: string;
|
|
@@ -52,6 +54,26 @@ type WithoutCompactNavigation = {
|
|
|
52
54
|
readonly compactNavigation?: undefined;
|
|
53
55
|
readonly compactNavigationLabel?: never;
|
|
54
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* The compact-width opener of the navigation: below the wide breakpoint the shell hides `navigation` and draws one row under the bar
|
|
59
|
+
* (the bar's height, an edge-to-edge divider) holding a round tertiary icon button that opens `content` (a `Sidebar` with
|
|
60
|
+
* `presentation="drawer"`) in a left Drawer. The Drawer owns its state from `defaultOpen`; the shared overlay contract also
|
|
61
|
+
* permits controlled state when the caller needs to coordinate dismissal with another action.
|
|
62
|
+
*/
|
|
63
|
+
export type WorkspaceShellNavigationDrawer = OverlayOpenState & {
|
|
64
|
+
/** The drawer's title and its dialog name. */
|
|
65
|
+
readonly title: string;
|
|
66
|
+
/** The opener button's accessible name. */
|
|
67
|
+
readonly openLabel: string;
|
|
68
|
+
/** The drawer close button's accessible name. */
|
|
69
|
+
readonly closeLabel: string;
|
|
70
|
+
/** The opener glyph (an ellipsis). */
|
|
71
|
+
readonly source: IconSource;
|
|
72
|
+
/** The drawer body, normally `<Sidebar presentation="drawer" ... />`. */
|
|
73
|
+
readonly content: ReactNode;
|
|
74
|
+
/** Optional text drawn beside the opener, e.g. the current section. */
|
|
75
|
+
readonly rowTitle?: string;
|
|
76
|
+
};
|
|
55
77
|
/**
|
|
56
78
|
* Who owns the page's single banner landmark when the shell has a `header`.
|
|
57
79
|
*
|
|
@@ -72,6 +94,14 @@ export type WorkspaceShellProps = (ShellOwnedMain | CallerOwnedMain) & (WithNavi
|
|
|
72
94
|
*/
|
|
73
95
|
readonly headerLandmark?: WorkspaceShellHeaderLandmark;
|
|
74
96
|
readonly compactHeader?: ReactNode;
|
|
97
|
+
/**
|
|
98
|
+
* `flow` (default): the page scrolls and the shell grows with its content. `fixed`: the shell is exactly one viewport tall
|
|
99
|
+
* (`100dvh`), the header stays on top and the navigation, the primary region and the rail each scroll on their own, so an app
|
|
100
|
+
* needs no viewport-height arithmetic of its own.
|
|
101
|
+
*/
|
|
102
|
+
readonly viewport?: "flow" | "fixed";
|
|
103
|
+
/** The compact-width navigation opener row and its Sidebar drawer (see `WorkspaceShellNavigationDrawer`). Needs `navigation`. */
|
|
104
|
+
readonly navigationDrawer?: WorkspaceShellNavigationDrawer;
|
|
75
105
|
readonly primary: ReactNode;
|
|
76
106
|
readonly primaryId?: string;
|
|
77
107
|
readonly floatingLayer?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composition/WorkspaceShell/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "@heroui/react";
|
|
3
3
|
import { isValidElement } from "react";
|
|
4
|
+
import { Drawer } from "../../branch/Drawer/index.js";
|
|
4
5
|
import { Rail } from "../../branch/Rail/index.js";
|
|
6
|
+
import { IconButton } from "../../primitive/IconButton/index.js";
|
|
5
7
|
import { NavigationFeatureNav } from "../NavigationFeatureNav/index.js";
|
|
6
8
|
import { TopBar } from "../TopBar/index.js";
|
|
7
|
-
import { workspaceShellClassName, workspaceShellCompactHeaderClassName, workspaceShellCompactNavigationClassName, workspaceShellFloatingLayerClassName, workspaceShellHeaderClassName, workspaceShellLayoutClassName, workspaceShellLeadingRuleClassName, workspaceShellNavigationClassName, workspaceShellPrimaryClassName, workspaceShellRailClassName, } from "./classNames.js";
|
|
9
|
+
import { workspaceShellClassName, workspaceShellCompactHeaderClassName, workspaceShellCompactNavigationClassName, workspaceShellFloatingLayerClassName, workspaceShellHeaderClassName, workspaceShellLayoutClassName, workspaceShellLeadingRuleClassName, workspaceShellNavigationClassName, workspaceShellOpenerClassName, workspaceShellPrimaryClassName, workspaceShellRailClassName, } from "./classNames.js";
|
|
10
|
+
/** The actual Drawer trigger owns activation, expanded state and focus restoration without a caller callback. */
|
|
11
|
+
const WorkspaceNavigationDrawer = ({ openLabel, source, content, rowTitle, ...drawerProps }) => (_jsxs("div", { className: workspaceShellOpenerClassName, "data-grammar-workspace-opener": "true", children: [_jsx(Drawer, { ...drawerProps, placement: "left", trigger: _jsx(IconButton, { label: openLabel, source: source, variant: "tertiary", size: "control" }), children: content }), rowTitle === undefined ? null : _jsx("span", { className: "starci-core-workspace-shell-opener-title", "data-grammar-workspace-opener-title": "true", children: rowTitle })] }));
|
|
8
12
|
/** Grammar bars that own the banner themselves; hosting one flips the default to `slot`. */
|
|
9
13
|
const BANNER_OWNERS = new Set([TopBar, NavigationFeatureNav]);
|
|
10
14
|
/** Resolve the landmark rule: an explicit prop wins, otherwise a Grammar app bar in the slot owns it. */
|
|
@@ -12,7 +16,9 @@ export const resolveWorkspaceHeaderLandmark = (header, headerLandmark) => header
|
|
|
12
16
|
/** Shared product workspace anatomy; connected apps supply every route and business slot. */
|
|
13
17
|
export const WorkspaceShell = (props) => {
|
|
14
18
|
const hasHeader = props.header != null && typeof props.header !== "boolean";
|
|
15
|
-
const
|
|
19
|
+
const drawerSpec = props.navigation === undefined ? undefined : props.navigationDrawer;
|
|
20
|
+
const hasSlotOpener = props.viewport === "fixed" && drawerSpec === undefined;
|
|
21
|
+
const hasCompactHeader = (props.compactHeader != null && typeof props.compactHeader !== "boolean") || drawerSpec !== undefined;
|
|
16
22
|
const hasNavigation = props.navigation !== undefined;
|
|
17
23
|
const hasRail = props.rail !== undefined;
|
|
18
24
|
const hasCompactNavigation = props.compactNavigation !== undefined;
|
|
@@ -22,8 +28,8 @@ export const WorkspaceShell = (props) => {
|
|
|
22
28
|
const primary = mainLandmark === "caller" ? _jsx("div", { className: workspaceShellPrimaryClassName, "data-contract": "GAP-5", "data-grammar-workspace-primary": "true", "data-grammar-main-landmark": "caller", id: props.primaryId, tabIndex: -1, children: props.primary }) : _jsx("main", { "aria-label": props.primaryLabel, "aria-labelledby": props.primaryLabelledBy, className: workspaceShellPrimaryClassName, "data-contract": "GAP-5", "data-grammar-workspace-primary": "true", "data-grammar-main-landmark": "shell", id: props.primaryId, tabIndex: -1, children: props.primary });
|
|
23
29
|
const rail = hasRail ? _jsx("div", { className: workspaceShellRailClassName, "data-grammar-workspace-rail-region": "true", children: _jsx(Rail, { inset: props.railInset ?? "none", isLabelHidden: props.isRailLabelHidden ?? true, label: props.railLabel, mode: props.railMode ?? "flow", width: props.railWidth ?? "standard", children: props.rail }) }) : null;
|
|
24
30
|
const leadingRule = railPosition === "leading" ? _jsx("div", { "aria-hidden": "true", className: workspaceShellLeadingRuleClassName, "data-contract": "BOUNDARY-4", "data-grammar-workspace-leading-rule": "true" }) : null;
|
|
25
|
-
return _jsxs("div", { className: cn(workspaceShellClassName, props.className), "data-grammar-workspace-floating": hasFloatingLayer ? "present" : "absent", "data-grammar-workspace-shell": "true", "data-component": "WorkspaceShell", "data-tier": "composition", children: [hasHeader ? (resolveWorkspaceHeaderLandmark(props.header, props.headerLandmark) === "slot"
|
|
31
|
+
return _jsxs("div", { className: cn(workspaceShellClassName, props.className), "data-contract": "FE-APP-SHELL-1", "data-grammar-workspace-viewport": props.viewport ?? "flow", "data-grammar-workspace-floating": hasFloatingLayer ? "present" : "absent", "data-grammar-workspace-shell": "true", "data-component": "WorkspaceShell", "data-tier": "composition", children: [hasHeader ? (resolveWorkspaceHeaderLandmark(props.header, props.headerLandmark) === "slot"
|
|
26
32
|
? _jsx("div", { className: workspaceShellHeaderClassName, "data-contract": "MARGIN-5", "data-grammar-workspace-header": "true", "data-grammar-workspace-header-landmark": "slot", children: props.header })
|
|
27
|
-
: _jsx("header", { className: workspaceShellHeaderClassName, "data-contract": "MARGIN-5", "data-grammar-workspace-header": "true", "data-grammar-workspace-header-landmark": "shell", children: props.header })) : null, hasCompactHeader ?
|
|
33
|
+
: _jsx("header", { className: workspaceShellHeaderClassName, "data-contract": "MARGIN-5", "data-grammar-workspace-header": "true", "data-grammar-workspace-header-landmark": "shell", children: props.header })) : null, hasCompactHeader ? _jsxs("div", { className: cn(workspaceShellCompactHeaderClassName, hasSlotOpener ? workspaceShellOpenerClassName : undefined), "data-grammar-workspace-compact-header": "true", "data-grammar-workspace-opener": hasSlotOpener ? "true" : undefined, children: [props.compactHeader, drawerSpec === undefined ? null : _jsx(WorkspaceNavigationDrawer, { ...drawerSpec })] }) : null, _jsxs("div", { className: workspaceShellLayoutClassName, "data-contract": "GAP-5 MEASURE-1", "data-grammar-workspace-align": props.align ?? "start", "data-grammar-workspace-navigation": hasNavigation ? "present" : "absent", "data-grammar-workspace-navigation-track": hasNavigation ? props.navigationTrack ?? "fixed" : undefined, "data-grammar-workspace-navigation-visibility": hasNavigation ? props.navigationVisibility ?? (drawerSpec === undefined ? "always" : "wide") : undefined, "data-grammar-workspace-rail": hasRail ? "present" : "absent", "data-grammar-workspace-rail-position": railPosition, "data-grammar-workspace-rail-width": hasRail ? props.railWidth ?? "standard" : undefined, children: [hasNavigation ? _jsx("nav", { "aria-label": props.navigationLabel, className: workspaceShellNavigationClassName, "data-grammar-workspace-navigation-region": "true", children: props.navigation }) : null, railPosition === "leading" ? rail : null, leadingRule, primary, railPosition === "trailing" ? rail : null] }), hasCompactNavigation ? _jsx("nav", { "aria-label": props.compactNavigationLabel, className: workspaceShellCompactNavigationClassName, "data-contract": "BOUNDARY-1", "data-grammar-workspace-compact-navigation": "true", "data-grammar-bottom-chrome": "true", children: props.compactNavigation }) : null, hasFloatingLayer ? _jsx("div", { className: workspaceShellFloatingLayerClassName, "data-contract": "OVERFLOW-4", "data-grammar-workspace-floating-layer": "true", children: props.floatingLayer }) : null] });
|
|
28
34
|
};
|
|
29
35
|
//# sourceMappingURL=index.js.map
|