@starci/grammar 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +139 -8
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-avatar-group.css +65 -0
- package/dist/common/components-forms.css +86 -56
- package/dist/common/components-list-panel.css +13 -0
- package/dist/common/components-navigation.css +161 -32
- package/dist/common/components-overlays.css +44 -86
- package/dist/common/components-surface-controls.css +15 -0
- package/dist/common/registry.d.ts +22 -18
- 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 +14 -14
- package/dist/common/renderers-forms.d.ts.map +1 -1
- package/dist/common/renderers-forms.js.map +1 -1
- package/dist/common/renderers-navigation.d.ts +11 -5
- package/dist/common/renderers-navigation.d.ts.map +1 -1
- package/dist/common/renderers-navigation.js +8 -2
- 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 +1 -1
- package/dist/common/rule-catalog.generated.d.ts.map +1 -1
- package/dist/common/rule-catalog.generated.js +3 -2
- package/dist/common/rule-catalog.generated.js.map +1 -1
- package/dist/common/styles.css +61 -2
- 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 +16 -4
- package/dist/core/branch/DropdownMenu/index.d.ts.map +1 -1
- package/dist/core/branch/DropdownMenu/index.js +18 -8
- 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/composite/AvatarButton/index.d.ts +22 -0
- package/dist/core/composite/AvatarButton/index.d.ts.map +1 -0
- package/dist/core/composite/AvatarButton/index.js +11 -0
- package/dist/core/composite/AvatarButton/index.js.map +1 -0
- 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 +20 -0
- package/dist/core/composite/IdentityLockup/index.d.ts.map +1 -0
- package/dist/core/composite/IdentityLockup/index.js +11 -0
- package/dist/core/composite/IdentityLockup/index.js.map +1 -0
- 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 +1 -1
- package/dist/core/composition/Sidebar/index.d.ts.map +1 -1
- package/dist/core/composition/Sidebar/index.js +10 -4
- 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 +9 -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 +17 -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/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 +5 -2
- package/dist/core/primitive/Field/index.d.ts.map +1 -1
- package/dist/core/primitive/Field/index.js +2 -2
- package/dist/core/primitive/Field/index.js.map +1 -1
- package/dist/core/primitive/Input/index.d.ts +2 -1
- package/dist/core/primitive/Input/index.d.ts.map +1 -1
- package/dist/core/primitive/Input/index.js +4 -2
- package/dist/core/primitive/Input/index.js.map +1 -1
- package/dist/core/primitive/Kbd/index.d.ts +2 -0
- package/dist/core/primitive/Kbd/index.d.ts.map +1 -1
- package/dist/core/primitive/Kbd/index.js +5 -3
- package/dist/core/primitive/Kbd/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 +21 -0
- package/dist/core/primitive/PlainPressable/index.d.ts.map +1 -0
- package/dist/core/primitive/PlainPressable/index.js +16 -0
- package/dist/core/primitive/PlainPressable/index.js.map +1 -0
- 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 +2 -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 +18 -2
- package/dist/core/primitive/Switch/index.d.ts.map +1 -1
- package/dist/core/primitive/Switch/index.js +2 -1
- package/dist/core/primitive/Switch/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/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
|
@@ -21,7 +21,7 @@ export type ComboBoxProps = FieldControlProps & {
|
|
|
21
21
|
readonly isPending?: boolean;
|
|
22
22
|
/** When the list opens: while typing (default), on focus, or only from the trigger/arrow keys. */
|
|
23
23
|
readonly menuTrigger?: "input" | "focus" | "manual";
|
|
24
|
-
/**
|
|
24
|
+
/** Defaults to `secondary` inside a Grammar surface and `primary` outside (ANATOMY-2 case-1). */
|
|
25
25
|
readonly variant?: "primary" | "secondary";
|
|
26
26
|
};
|
|
27
27
|
/**
|
|
@@ -30,5 +30,5 @@ export type ComboBoxProps = FieldControlProps & {
|
|
|
30
30
|
* The vendor owns the combobox role, `aria-expanded`, `aria-activedescendant`, arrow/Enter/Escape
|
|
31
31
|
* handling and the "contains" filter. Pending keeps the input editable and marks the list busy.
|
|
32
32
|
*/
|
|
33
|
-
export declare const ComboBox: ({ id, options, placeholder, value, defaultValue, onValueChange, inputValue, defaultInputValue, onInputChange, allowsCustomValue, emptyState, isPending, menuTrigger, variant, ...field }: ComboBoxProps) => import("react").JSX.Element;
|
|
33
|
+
export declare const ComboBox: ({ id, options, placeholder, value, defaultValue, onValueChange, inputValue, defaultInputValue, onInputChange, allowsCustomValue, emptyState, isPending, menuTrigger, variant: requestedVariant, ...field }: ComboBoxProps) => import("react").JSX.Element;
|
|
34
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/ComboBox/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/ComboBox/index.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEjE,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,0BAA0B;IAC1B,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,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,8FAA8F;IAC9F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAA;IAC/B,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,kGAAkG;IAClG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnD,iGAAiG;IACjG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;CAC7C,CAAA;AAcD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,4MAgBtB,aAAa,gCA8Df,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 { ComboBox as HeroComboBox, Input as HeroInput, ListBox as HeroListBox, Spinner as HeroSpinner, } from "@heroui/react";
|
|
4
5
|
import { useState } from "react";
|
|
5
6
|
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, useGrammarPortal, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
@@ -20,7 +21,8 @@ import { ListOptions } from "../Select/index.js";
|
|
|
20
21
|
* The vendor owns the combobox role, `aria-expanded`, `aria-activedescendant`, arrow/Enter/Escape
|
|
21
22
|
* handling and the "contains" filter. Pending keeps the input editable and marks the list busy.
|
|
22
23
|
*/
|
|
23
|
-
export const ComboBox = ({ id, options, placeholder, value, defaultValue, onValueChange, inputValue, defaultInputValue, onInputChange, allowsCustomValue = false, emptyState, isPending = false, menuTrigger = "input", variant
|
|
24
|
+
export const ComboBox = ({ id, options, placeholder, value, defaultValue, onValueChange, inputValue, defaultInputValue, onInputChange, allowsCustomValue = false, emptyState, isPending = false, menuTrigger = "input", variant: requestedVariant, ...field }) => {
|
|
25
|
+
const variant = useFieldVariant(requestedVariant);
|
|
24
26
|
const { anchor, portalProps } = useGrammarPortal();
|
|
25
27
|
const [chosen, setChosen] = useState(defaultValue ?? null);
|
|
26
28
|
const [typed, setTyped] = useState(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/ComboBox/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACH,QAAQ,IAAI,YAAY,EACxB,KAAK,IAAI,SAAS,EAClB,OAAO,IAAI,WAAW,EACtB,OAAO,IAAI,WAAW,GAEzB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAChD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,WAAW,EAAmB,MAAM,oBAAoB,CAAA;AA0BjE;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACrB,EAAE,EACF,OAAO,EACP,WAAW,EACX,KAAK,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAAG,KAAK,EACzB,UAAU,EACV,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,OAAO,EACrB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/ComboBox/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export type DatePickerProps = FieldControlProps & {
|
|
|
10
10
|
/** Days the reader may not pick; they stay visible and are announced unavailable. */
|
|
11
11
|
readonly isDateUnavailable?: (date: DateValue) => boolean;
|
|
12
12
|
readonly granularity?: DateGranularity;
|
|
13
|
-
/**
|
|
13
|
+
/** Defaults to `secondary` inside a Grammar surface and `primary` outside (ANATOMY-2 case-1). */
|
|
14
14
|
readonly variant?: "primary" | "secondary";
|
|
15
15
|
};
|
|
16
16
|
/** Month grid used by DatePicker: heading, previous/next, and the day grid (arrow-key navigable). */
|
|
@@ -21,5 +21,5 @@ export declare const PickerRangeCalendar: () => import("react").JSX.Element;
|
|
|
21
21
|
* A date typed in segments or picked from a month grid in a popover. The trigger is a named button,
|
|
22
22
|
* the popover is a dialog that traps and returns focus, and the grid is the vendor's.
|
|
23
23
|
*/
|
|
24
|
-
export declare const DatePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, granularity, variant, ...field }: DatePickerProps) => import("react").JSX.Element;
|
|
24
|
+
export declare const DatePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, granularity, variant: requestedVariant, ...field }: DatePickerProps) => import("react").JSX.Element;
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DatePicker/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DatePicker/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKH,KAAK,SAAS,EACjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEvF,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAA;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,iGAAiG;IACjG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;CAC7C,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,cAAc,mCAY1B,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,mCAY/B,CAAA;AAeD;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,iIAUxB,eAAe,gCAoCjB,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 { Calendar as HeroCalendar, DateField as HeroDateField, DatePicker as HeroDatePicker, RangeCalendar as HeroRangeCalendar, } from "@heroui/react";
|
|
4
5
|
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, useGrammarPortal, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
5
6
|
import { DateSegments } from "../../primitive/DateField/index.js";
|
|
@@ -22,7 +23,8 @@ export const PickerRangeCalendar = () => (_jsxs(HeroRangeCalendar, { className:
|
|
|
22
23
|
* A date typed in segments or picked from a month grid in a popover. The trigger is a named button,
|
|
23
24
|
* the popover is a dialog that traps and returns focus, and the grid is the vendor's.
|
|
24
25
|
*/
|
|
25
|
-
export const DatePicker = ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, granularity = "day", variant
|
|
26
|
+
export const DatePicker = ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, granularity = "day", variant: requestedVariant, ...field }) => {
|
|
27
|
+
const variant = useFieldVariant(requestedVariant);
|
|
26
28
|
const { anchor, portalProps } = useGrammarPortal();
|
|
27
29
|
return (_jsxs(HeroDatePicker, { "data-tier": "branch", "data-component": "DatePicker", "data-contract": "A11Y-1 FEEDBACK-1", className: "starci-core-field starci-core-date-picker", ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, granularity: granularity, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), ...(minValue === undefined ? {} : { minValue }), ...(maxValue === undefined ? {} : { maxValue }), ...(isDateUnavailable === undefined ? {} : { isDateUnavailable }), children: [anchor, _jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsxs(HeroDateField.Group, { className: "starci-core-date-group", variant: variant, "data-grammar-field-control": "true", children: [_jsx(DateSegments, {}), _jsx(HeroDateField.Suffix, { className: "starci-core-date-suffix", children: _jsx(HeroDatePicker.Trigger, { className: "starci-core-date-trigger", children: _jsx(HeroDatePicker.TriggerIndicator, {}) }) })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage }), _jsx(HeroDatePicker.Popover, { className: "starci-core-date-popover", "data-grammar-popover": "DatePicker", "data-contract": "LAYOUT-4 FOCUS-3", ...portalProps, children: _jsx(PickerCalendar, {}) })] }));
|
|
28
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DatePicker/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACH,QAAQ,IAAI,YAAY,EACxB,SAAS,IAAI,aAAa,EAC1B,UAAU,IAAI,cAAc,EAC5B,aAAa,IAAI,iBAAiB,GAErC,MAAM,eAAe,CAAA;AACtB,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAwB,MAAM,oCAAoC,CAAA;AAevF,qGAAqG;AACrG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAChC,MAAC,YAAY,IAAC,SAAS,EAAC,sBAAsB,2BAAuB,QAAQ,aACzE,MAAC,YAAY,CAAC,MAAM,IAAC,SAAS,EAAC,6BAA6B,aACxD,KAAC,YAAY,CAAC,SAAS,IAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,0BAA0B,GAAG,EAC/E,KAAC,YAAY,CAAC,OAAO,IAAC,SAAS,EAAC,8BAA8B,GAAG,EACjE,KAAC,YAAY,CAAC,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,0BAA0B,GAAG,IACzD,EACtB,MAAC,YAAY,CAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,aACpD,KAAC,YAAY,CAAC,UAAU,cAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAC,YAAY,CAAC,UAAU,cAAE,GAAG,GAA2B,GAA2B,EACtH,KAAC,YAAY,CAAC,QAAQ,cAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,YAAY,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,2BAA2B,gCAA4B,MAAM,GAAG,GAAyB,IACpJ,IACT,CAClB,CAAA;AAED,0FAA0F;AAC1F,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CACrC,MAAC,iBAAiB,IAAC,SAAS,EAAC,sBAAsB,2BAAuB,OAAO,aAC7E,MAAC,iBAAiB,CAAC,MAAM,IAAC,SAAS,EAAC,6BAA6B,aAC7D,KAAC,iBAAiB,CAAC,SAAS,IAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,0BAA0B,GAAG,EACpF,KAAC,iBAAiB,CAAC,OAAO,IAAC,SAAS,EAAC,8BAA8B,GAAG,EACtE,KAAC,iBAAiB,CAAC,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,0BAA0B,GAAG,IACzD,EAC3B,MAAC,iBAAiB,CAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,aACzD,KAAC,iBAAiB,CAAC,UAAU,cAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAC,iBAAiB,CAAC,UAAU,cAAE,GAAG,GAAgC,GAAgC,EAC1I,KAAC,iBAAiB,CAAC,QAAQ,cAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,iBAAiB,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,2BAA2B,gCAA4B,MAAM,GAAG,GAA8B,IAC9J,IACT,CACvB,CAAA;AAED;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,KAAK,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,WAAW,GAAG,KAAK,EACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DatePicker/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,9 @@ export type DateRangePickerProps = Omit<FieldControlProps, "name"> & {
|
|
|
15
15
|
/** Form names for the two ends of the range. */
|
|
16
16
|
readonly startName?: string;
|
|
17
17
|
readonly endName?: string;
|
|
18
|
-
/**
|
|
18
|
+
/** Defaults to `secondary` inside a Grammar surface and `primary` outside (ANATOMY-2 case-1). */
|
|
19
19
|
readonly variant?: "primary" | "secondary";
|
|
20
20
|
};
|
|
21
21
|
/** A start and an end date, typed in two segment groups or picked as a span on a month grid. */
|
|
22
|
-
export declare const DateRangePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, allowsNonContiguousRanges, granularity, startName, endName, variant, ...field }: DateRangePickerProps) => import("react").JSX.Element;
|
|
22
|
+
export declare const DateRangePicker: ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, allowsNonContiguousRanges, granularity, startName, endName, variant: requestedVariant, ...field }: DateRangePickerProps) => import("react").JSX.Element;
|
|
23
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DateRangePicker/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DateRangePicker/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGH,KAAK,SAAS,EACd,KAAK,UAAU,EAClB,MAAM,eAAe,CAAA;AACtB,OAAO,EAOH,KAAK,iBAAiB,EACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAGvF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAElD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAA;IACzD,8EAA8E;IAC9E,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,iGAAiG;IACjG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;CAC7C,CAAA;AAcD,gGAAgG;AAChG,eAAO,MAAM,eAAe,GAAI,gLAa7B,oBAAoB,gCAyCtB,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 { DateField as HeroDateField, DateRangePicker as HeroDateRangePicker, } from "@heroui/react";
|
|
4
5
|
import { FieldDescription, FieldErrorText, FieldLabel, fieldVariantAttributes, useGrammarPortal, vendorFieldProps, } from "../../primitive/Field/index.js";
|
|
5
6
|
import { DateSegments } from "../../primitive/DateField/index.js";
|
|
@@ -15,7 +16,8 @@ import { PickerRangeCalendar } from "../DatePicker/index.js";
|
|
|
15
16
|
* consumer or family select those parts without reaching for vendor class names.
|
|
16
17
|
*/
|
|
17
18
|
/** A start and an end date, typed in two segment groups or picked as a span on a month grid. */
|
|
18
|
-
export const DateRangePicker = ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, allowsNonContiguousRanges = false, granularity = "day", startName, endName, variant
|
|
19
|
+
export const DateRangePicker = ({ value, defaultValue, onValueChange, minValue, maxValue, isDateUnavailable, allowsNonContiguousRanges = false, granularity = "day", startName, endName, variant: requestedVariant, ...field }) => {
|
|
20
|
+
const variant = useFieldVariant(requestedVariant);
|
|
19
21
|
const { anchor, portalProps } = useGrammarPortal();
|
|
20
22
|
return (_jsxs(HeroDateRangePicker, { "data-tier": "branch", "data-component": "DateRangePicker", "data-contract": "A11Y-1 FEEDBACK-1", className: "starci-core-field starci-core-date-picker", ...fieldVariantAttributes(variant), ...vendorFieldProps(field), isReadOnly: field.isReadOnly === true, granularity: granularity, allowsNonContiguousRanges: allowsNonContiguousRanges, ...(value === undefined ? defaultValue === undefined ? {} : { defaultValue } : { value }), ...(onValueChange === undefined ? {} : { onChange: onValueChange }), ...(minValue === undefined ? {} : { minValue }), ...(maxValue === undefined ? {} : { maxValue }), ...(isDateUnavailable === undefined ? {} : { isDateUnavailable }), ...(startName === undefined ? {} : { startName }), ...(endName === undefined ? {} : { endName }), children: [anchor, _jsx(FieldLabel, { isHidden: field.isLabelHidden, isRequired: field.isRequired, children: field.label }), _jsxs(HeroDateField.Group, { className: "starci-core-date-group", variant: variant, "data-grammar-field-control": "true", children: [_jsx(DateSegments, { slot: "start" }), _jsx(HeroDateRangePicker.RangeSeparator, { className: "starci-core-date-range-separator" }), _jsx(DateSegments, { slot: "end" }), _jsx(HeroDateField.Suffix, { className: "starci-core-date-suffix", children: _jsx(HeroDateRangePicker.Trigger, { className: "starci-core-date-trigger", children: _jsx(HeroDateRangePicker.TriggerIndicator, {}) }) })] }), _jsx(FieldDescription, { children: field.description }), _jsx(FieldErrorText, { children: field.errorMessage }), _jsx(HeroDateRangePicker.Popover, { className: "starci-core-date-popover", "data-grammar-popover": "DateRangePicker", "data-contract": "LAYOUT-4 FOCUS-3", ...portalProps, children: _jsx(PickerRangeCalendar, {}) })] }));
|
|
21
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DateRangePicker/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACH,SAAS,IAAI,aAAa,EAC1B,eAAe,IAAI,mBAAmB,GAGzC,MAAM,eAAe,CAAA;AACtB,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GAEnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,YAAY,EAAwB,MAAM,oCAAoC,CAAA;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAqB5D;;;;GAIG;AAEH;;;;GAIG;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,KAAK,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,yBAAyB,GAAG,KAAK,EACjC,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,OAAO,EACP,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DateRangePicker/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Dialog/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Dialog/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAsE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGjI,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAEpD,kGAAkG;AAClG,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAA;AAE1E,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG;IACzC,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;CAC/C,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,6HAWpB,WAAW,gCAgEb,CAAA"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Modal as HeroModal } from "@heroui/react";
|
|
4
4
|
import { useId } from "react";
|
|
5
|
-
import {
|
|
5
|
+
import { SurfaceNesting } from "../../surfaceContext.js";
|
|
6
|
+
import { overlayOpenProps, resolveTriggerlessOpenProps, useOverlayContainer } from "../../overlayScope.js";
|
|
6
7
|
import { CloseButton } from "../../primitive/CloseButton/index.js";
|
|
7
8
|
/**
|
|
8
9
|
* BRANCH - `Dialog` (modal): a focused task above the page.
|
|
@@ -16,6 +17,9 @@ import { CloseButton } from "../../primitive/CloseButton/index.js";
|
|
|
16
17
|
export const Dialog = ({ title, description, children, footer, trigger, closeLabel, size = "md", isDismissable = true, isKeyboardDismissDisabled = false, ...openState }) => {
|
|
17
18
|
const { anchor, container } = useOverlayContainer("Dialog");
|
|
18
19
|
const descriptionId = useId();
|
|
19
|
-
|
|
20
|
+
const surface = container === null ? null : (_jsx(HeroModal.Backdrop, { UNSTABLE_portalContainer: container, isDismissable: isDismissable, isKeyboardDismissDisabled: isKeyboardDismissDisabled, "data-grammar-overlay-backdrop": "Dialog", className: "starci-core-overlay-backdrop", ...resolveTriggerlessOpenProps(trigger, openState), children: _jsx(HeroModal.Container, { placement: "center", size: size, scroll: "inside", "data-size": size, "data-contract": "MOTION-2", className: "starci-core-dialog-container", children: _jsx(HeroModal.Dialog, { "data-tier": "branch", "data-component": "Dialog", "data-size": size, "data-grammar-overlay-surface": "dialog", "data-grammar-nesting": "surface", "data-contract": "FOCUS-3 LAYOUT-4 BOUNDARY-6", ...(description === undefined ? {} : { "aria-describedby": descriptionId }), className: "starci-core-dialog", children: ({ close }) => (_jsxs(SurfaceNesting, { children: [_jsxs(HeroModal.Header, { className: "starci-core-overlay-header", children: [_jsxs("div", { className: "starci-core-overlay-heading-group", children: [_jsx(HeroModal.Heading, { className: "starci-core-overlay-title", children: title }), description === undefined ? null : (_jsx("p", { id: descriptionId, className: "starci-core-overlay-description", children: description }))] }), closeLabel === undefined ? null : _jsx(CloseButton, { label: closeLabel, onPress: close })] }), children === undefined ? null : (_jsx(HeroModal.Body, { className: "starci-core-overlay-body", children: children })), footer === undefined ? null : (_jsx(HeroModal.Footer, { className: "starci-core-overlay-footer", children: typeof footer === "function" ? footer(close) : footer }))] })) }) }) }));
|
|
21
|
+
// With no trigger there is no `DialogTrigger` root (its PressResponder has no pressable child):
|
|
22
|
+
// the Backdrop, React Aria's `ModalOverlay`, owns the open state itself (see `resolveTriggerlessOpenProps`).
|
|
23
|
+
return trigger === undefined ? (_jsxs(_Fragment, { children: [anchor, surface] })) : (_jsxs(HeroModal, { ...overlayOpenProps(openState), children: [trigger, anchor, surface] }));
|
|
20
24
|
};
|
|
21
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Dialog/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAyB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Dialog/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,mBAAmB,EAAyB,MAAM,uBAAuB,CAAA;AACjI,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AA4BlE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACnB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,OAAO,EACP,UAAU,EACV,IAAI,GAAG,IAAI,EACX,aAAa,GAAG,IAAI,EACpB,yBAAyB,GAAG,KAAK,EACjC,GAAG,SAAS,EACF,EAAE,EAAE;IACd,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,aAAa,GAAG,KAAK,EAAE,CAAA;IAE7B,MAAM,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxC,KAAC,SAAS,CAAC,QAAQ,IACf,wBAAwB,EAAE,SAAS,EACnC,aAAa,EAAE,aAAa,EAC5B,yBAAyB,EAAE,yBAAyB,mCACtB,QAAQ,EACtC,SAAS,EAAC,8BAA8B,KACpC,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,YAEnD,KAAC,SAAS,CAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,QAAQ,eAAY,IAAI,mBAAgB,UAAU,EAAC,SAAS,EAAC,8BAA8B,YAClJ,KAAC,SAAS,CAAC,MAAM,iBACH,QAAQ,oBACH,QAAQ,eACZ,IAAI,kCACc,QAAQ,0BAChB,SAAS,mBAChB,6BAA6B,KACvC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC,EAC5E,SAAS,EAAC,oBAAoB,YAE7B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACZ,MAAC,cAAc,eACX,MAAC,SAAS,CAAC,MAAM,IAAC,SAAS,EAAC,4BAA4B,aACpD,eAAK,SAAS,EAAC,mCAAmC,aAC9C,KAAC,SAAS,CAAC,OAAO,IAAC,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAqB,EACnF,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChC,YAAG,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,iCAAiC,YAAE,WAAW,GAAK,CACtF,IACC,EACL,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,GAAI,IACtE,EAClB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,KAAC,SAAS,CAAC,IAAI,IAAC,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAkB,CACnF,EACA,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,KAAC,SAAS,CAAC,MAAM,IAAC,SAAS,EAAC,4BAA4B,YACnD,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GACvC,CACtB,IACY,CACpB,GACc,GACD,GACL,CACxB,CAAA;IAED,gGAAgG;IAChG,6GAA6G;IAC7G,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3B,8BACK,MAAM,EACN,OAAO,IACT,CACN,CAAC,CAAC,CAAC,CACA,MAAC,SAAS,OAAK,gBAAgB,CAAC,SAAS,CAAC,aACrC,OAAO,EACP,MAAM,EACN,OAAO,IACA,CACf,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Drawer/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Drawer/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAsE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAEjI,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEjE,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG;IACzC,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAA;IACpC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;CAC/C,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,GAAI,8IAYpB,WAAW,gCAkEb,CAAA"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Drawer as HeroDrawer } from "@heroui/react";
|
|
4
4
|
import { useId } from "react";
|
|
5
|
-
import {
|
|
5
|
+
import { SurfaceNesting } from "../../surfaceContext.js";
|
|
6
|
+
import { overlayOpenProps, resolveTriggerlessOpenProps, useOverlayContainer } from "../../overlayScope.js";
|
|
6
7
|
import { CloseButton } from "../../primitive/CloseButton/index.js";
|
|
7
8
|
/**
|
|
8
9
|
* BRANCH - `Drawer`: a side sheet or mobile bottom sheet holding a secondary task.
|
|
@@ -16,6 +17,9 @@ export const Drawer = ({ title, description, children, footer, trigger, closeLab
|
|
|
16
17
|
const { anchor, container } = useOverlayContainer("Drawer");
|
|
17
18
|
const descriptionId = useId();
|
|
18
19
|
const hasHandle = showHandle ?? placement === "bottom";
|
|
19
|
-
|
|
20
|
+
const surface = container === null ? null : (_jsx(HeroDrawer.Backdrop, { UNSTABLE_portalContainer: container, isDismissable: isDismissable, isKeyboardDismissDisabled: isKeyboardDismissDisabled, "data-grammar-overlay-backdrop": "Drawer", className: "starci-core-overlay-backdrop starci-core-drawer-backdrop", ...resolveTriggerlessOpenProps(trigger, openState), children: _jsx(HeroDrawer.Content, { placement: placement, "data-contract": "MOTION-2", className: "starci-core-drawer-content", children: _jsx(HeroDrawer.Dialog, { "data-tier": "branch", "data-component": "Drawer", "data-placement": placement, "data-grammar-overlay-surface": "drawer", "data-grammar-nesting": "surface", "data-contract": "FOCUS-3 LAYOUT-4 BOUNDARY-6", ...(description === undefined ? {} : { "aria-describedby": descriptionId }), className: "starci-core-drawer", children: ({ close }) => (_jsxs(SurfaceNesting, { children: [hasHandle ? _jsx(HeroDrawer.Handle, { "data-grammar-drawer-handle": "true", className: "starci-core-drawer-handle" }) : null, _jsxs(HeroDrawer.Header, { className: "starci-core-overlay-header", children: [_jsxs("div", { className: "starci-core-overlay-heading-group", children: [_jsx(HeroDrawer.Heading, { className: "starci-core-overlay-title", children: title }), description === undefined ? null : (_jsx("p", { id: descriptionId, className: "starci-core-overlay-description", children: description }))] }), closeLabel === undefined ? null : _jsx(CloseButton, { label: closeLabel, onPress: close })] }), children === undefined ? null : (_jsx(HeroDrawer.Body, { className: "starci-core-overlay-body", children: children })), footer === undefined ? null : (_jsx(HeroDrawer.Footer, { className: "starci-core-overlay-footer", children: typeof footer === "function" ? footer(close) : footer }))] })) }) }) }));
|
|
21
|
+
// With no trigger there is no `DialogTrigger` root (its PressResponder has no pressable child):
|
|
22
|
+
// the Backdrop, React Aria's `ModalOverlay`, owns the open state itself (see `resolveTriggerlessOpenProps`).
|
|
23
|
+
return trigger === undefined ? (_jsxs(_Fragment, { children: [anchor, surface] })) : (_jsxs(HeroDrawer, { ...overlayOpenProps(openState), children: [trigger, anchor, surface] }));
|
|
20
24
|
};
|
|
21
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Drawer/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAyB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Drawer/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import { type OverlayOpenState } from "../../overlayScope.js";
|
|
3
3
|
import { type IconSource } from "../../primitive/Icon/index.js";
|
|
4
|
-
export type DropdownMenuItemTone = "neutral" | "
|
|
4
|
+
export type DropdownMenuItemTone = "neutral" | "danger";
|
|
5
5
|
/** One command, destination or (inside a selectable section) checkable choice. */
|
|
6
6
|
export type DropdownMenuItem = {
|
|
7
7
|
readonly kind?: "item";
|
|
@@ -10,8 +10,12 @@ export type DropdownMenuItem = {
|
|
|
10
10
|
readonly description?: string;
|
|
11
11
|
/** Shortcut chord drawn with `Kbd`, e.g. `["command", "K"]`. Display only: the app binds the keys. */
|
|
12
12
|
readonly shortcut?: readonly string[];
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* A node in the leading position instead of a glyph, e.g. an identity mark. It sits in a 20px slot (the same box a glyph gets) and
|
|
15
|
+
* wins over `iconSource` or `mark` when also given.
|
|
16
|
+
*/
|
|
17
|
+
readonly leading?: ReactNode;
|
|
18
|
+
/** `danger` marks a destructive command (sign out, delete, remove, revoke): HeroUI's danger variant colours its label and glyph. */
|
|
15
19
|
readonly tone?: DropdownMenuItemTone;
|
|
16
20
|
readonly isDisabled?: boolean;
|
|
17
21
|
/** A destination: the item renders a real link. */
|
|
@@ -19,7 +23,15 @@ export type DropdownMenuItem = {
|
|
|
19
23
|
readonly onAction?: () => void;
|
|
20
24
|
/** Nested entries open as a submenu (ArrowRight / Enter / hover open it, ArrowLeft / Escape close it). */
|
|
21
25
|
readonly submenu?: readonly DropdownMenuEntry[];
|
|
22
|
-
}
|
|
26
|
+
} & ({
|
|
27
|
+
/** App-owned glyph; Grammar supplies the canon leading icon size (20px). Mutually exclusive with `mark`. */
|
|
28
|
+
readonly iconSource?: IconSource;
|
|
29
|
+
readonly mark?: never;
|
|
30
|
+
} | {
|
|
31
|
+
readonly iconSource?: never;
|
|
32
|
+
/** Decorative identity artwork in the same leading icon box. The item's label supplies its name. */
|
|
33
|
+
readonly mark?: ReactNode;
|
|
34
|
+
});
|
|
23
35
|
/** Checkable items: `single` draws a dot (radio semantics), `multiple` a check (checkbox semantics). */
|
|
24
36
|
export type DropdownMenuSelection = {
|
|
25
37
|
readonly mode: "single" | "multiple";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DropdownMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAyC,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACpG,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAGrE,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/DropdownMenu/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAyC,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACpG,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAGrE,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEvD,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,oIAAoI;IACpI,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,0GAA0G;IAC1G,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAClD,GAAG,CACE;IACE,4GAA4G;IAC5G,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CACxB,GACC;IACE,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;IAC3B,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAC5B,CACJ,CAAA;AAED,wGAAwG;AACxG,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,mBAAmB,CAAA;AAEtE,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAA;AAE3F,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IAC/C;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC9C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;CAC7C,CAAA;AAeD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,yDAM1B,iBAAiB,gCAkInB,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Description as HeroDescription, Dropdown as HeroDropdown, Header as HeroHeader } from "@heroui/react";
|
|
2
|
+
import { Description as HeroDescription, Dropdown as HeroDropdown, Header as HeroHeader, Kbd as HeroKbd, Label as HeroLabel, Separator as HeroSeparator } from "@heroui/react";
|
|
3
3
|
import { overlayOpenProps, useOverlayContainer } from "../../overlayScope.js";
|
|
4
4
|
import { Icon } from "../../primitive/Icon/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { kbdChordContent } from "../../primitive/Kbd/index.js";
|
|
6
6
|
const isSection = (entry) => entry.kind === "section";
|
|
7
7
|
const collectItems = (entries, into = new Map()) => {
|
|
8
8
|
for (const entry of entries) {
|
|
@@ -36,13 +36,17 @@ export const DropdownMenu = ({ trigger, entries, onAction, placement = "bottom s
|
|
|
36
36
|
};
|
|
37
37
|
const renderItem = (item, selectionMode) => {
|
|
38
38
|
const tone = item.tone ?? "neutral";
|
|
39
|
-
const
|
|
40
|
-
|
|
39
|
+
const icon = item.leading !== undefined
|
|
40
|
+
? _jsx("span", { "aria-hidden": "true", "data-grammar-menu-leading": "true", children: item.leading })
|
|
41
|
+
: item.iconSource !== undefined ? _jsx(Icon, { source: item.iconSource, usage: "leading" })
|
|
42
|
+
: item.mark === undefined || item.mark === null ? null : (_jsx("span", { "aria-hidden": "true", className: "starci-core-icon", "data-usage": "leading", "data-grammar-menu-mark": "true", children: item.mark }));
|
|
43
|
+
const content = (_jsxs(_Fragment, { children: [selectionMode === undefined ? null : _jsx(HeroDropdown.ItemIndicator, {}), item.description === undefined ? icon : icon === null ? null : _jsx("div", { "data-grammar-menu-icon-slot": "true", children: icon }), item.description === undefined ? _jsx(HeroLabel, { children: item.label }) : (_jsxs("div", { "data-grammar-menu-copy": "true", children: [_jsx(HeroLabel, { children: item.label }), _jsx(HeroDescription, { children: item.description })] })), item.shortcut === undefined ? null : (_jsx(HeroKbd, { "data-grammar-menu-shortcut": "true", slot: "keyboard", variant: "light", children: kbdChordContent(item.shortcut) })), item.submenu === undefined ? null : _jsx(HeroDropdown.SubmenuIndicator, {})] }));
|
|
44
|
+
const itemElement = (_jsx(HeroDropdown.Item, { id: item.id, textValue: item.label, variant: tone === "danger" ? "danger" : "default", isDisabled: item.isDisabled ?? false, ...(item.href === undefined ? {} : { href: item.href }), "data-grammar-menu-item": "true", "data-contract": "FOCUS-1 CTA-2", "data-grammar-tone": tone, children: content }, item.id));
|
|
41
45
|
if (item.submenu === undefined)
|
|
42
46
|
return itemElement;
|
|
43
|
-
return (_jsxs(HeroDropdown.SubmenuTrigger, { children: [itemElement, _jsx(HeroDropdown.Popover, { "data-grammar-overlay-surface": "menu", "data-contract": "LAYOUT-4 BOUNDARY-6 MOTION-2",
|
|
47
|
+
return (_jsxs(HeroDropdown.SubmenuTrigger, { children: [itemElement, _jsx(HeroDropdown.Popover, { "data-grammar-overlay-surface": "menu", "data-contract": "LAYOUT-4 BOUNDARY-6 MOTION-2", children: _jsx(HeroDropdown.Menu, { "aria-label": item.label, onAction: handleAction, "data-component": "DropdownMenu", "data-grammar-menu-depth": "submenu", "data-contract": "FOCUS-2 FOCUS-5", children: renderEntries(item.submenu) }) })] }, item.id));
|
|
44
48
|
};
|
|
45
|
-
const
|
|
49
|
+
const renderEntry = (entry) => {
|
|
46
50
|
if (!isSection(entry))
|
|
47
51
|
return renderItem(entry);
|
|
48
52
|
const selection = entry.selection;
|
|
@@ -52,8 +56,14 @@ export const DropdownMenu = ({ trigger, entries, onAction, placement = "bottom s
|
|
|
52
56
|
onSelectionChange: (keys) => {
|
|
53
57
|
selection.onChange(keys === "all" ? entry.items.map((item) => item.id) : Array.from(keys, String));
|
|
54
58
|
},
|
|
55
|
-
}), "data-grammar-menu-section": "true", "data-contract": selection === undefined ? undefined : "STATE-1",
|
|
59
|
+
}), "data-grammar-menu-section": "true", "data-contract": selection === undefined ? undefined : "STATE-1", children: [entry.label === undefined ? null : _jsx(HeroHeader, { children: entry.label }), entry.items.map((item) => renderItem(item, selection?.mode))] }, entry.id));
|
|
60
|
+
};
|
|
61
|
+
/** HeroUI divides sections with its own `Separator` between two entries when either one is a section. */
|
|
62
|
+
const renderEntries = (list) => list.flatMap((entry, index) => {
|
|
63
|
+
const previous = list[index - 1];
|
|
64
|
+
const needsSeparator = previous !== undefined && (isSection(entry) || isSection(previous));
|
|
65
|
+
return needsSeparator ? [_jsx(HeroSeparator, {}, `separator-${index}`), renderEntry(entry)] : [renderEntry(entry)];
|
|
56
66
|
});
|
|
57
|
-
return (_jsxs(HeroDropdown, { ...overlayOpenProps(openState), children: [trigger, anchor, container === null ? null : (_jsx(HeroDropdown.Popover, { UNSTABLE_portalContainer: container, placement: placement, "data-grammar-overlay-surface": "menu", "data-contract": "LAYOUT-4 BOUNDARY-6 MOTION-2",
|
|
67
|
+
return (_jsxs(HeroDropdown, { ...overlayOpenProps(openState), children: [trigger, anchor, container === null ? null : (_jsx(HeroDropdown.Popover, { UNSTABLE_portalContainer: container, placement: placement, "data-grammar-overlay-surface": "menu", "data-contract": "LAYOUT-4 BOUNDARY-6 MOTION-2", children: _jsx(HeroDropdown.Menu, { onAction: handleAction, "data-tier": "branch", "data-component": "DropdownMenu", "data-grammar-menu-depth": "root", "data-contract": "FOCUS-2 FOCUS-5", children: renderEntries(entries) }) }))] }));
|
|
58
68
|
};
|
|
59
69
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DropdownMenu/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/DropdownMenu/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,IAAI,UAAU,EAAE,GAAG,IAAI,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AAE9K,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAyB,MAAM,uBAAuB,CAAA;AACpG,OAAO,EAAE,IAAI,EAAmB,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAsE9D,MAAM,SAAS,GAAG,CAAC,KAAwB,EAAgC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAA;AAEtG,MAAM,YAAY,GAAG,CAAC,OAAqC,EAAE,OAAO,IAAI,GAAG,EAA4B,EAAE,EAAE;IACvG,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;aAChD,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YACzB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;gBAAE,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACtE,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EACzB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,GAAG,cAAc,EAC1B,GAAG,SAAS,EACI,EAAE,EAAE;IACpB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,YAAY,GAAG,CAAC,GAAoB,EAAE,EAAE;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAA;QAC3B,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,IAAsB,EAAE,aAA6C,EAAa,EAAE;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAA;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS;YACnC,CAAC,CAAC,8BAAkB,MAAM,+BAA2B,MAAM,YAAE,IAAI,CAAC,OAAO,GAAQ;YACjF,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAC,SAAS,GAAG;gBACnF,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACrD,8BAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,gBAAY,SAAS,4BAAwB,MAAM,YAAE,IAAI,CAAC,IAAI,GAAQ,CAC9H,CAAA;QACL,MAAM,OAAO,GAAG,CACZ,8BACK,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,YAAY,CAAC,aAAa,KAAG,EACnE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6CAAiC,MAAM,YAAE,IAAI,GAAO,EACnH,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,cAAE,IAAI,CAAC,KAAK,GAAa,CAAC,CAAC,CAAC,CACpE,yCAA4B,MAAM,aAC9B,KAAC,SAAS,cAAE,IAAI,CAAC,KAAK,GAAa,EACnC,KAAC,eAAe,cAAE,IAAI,CAAC,WAAW,GAAmB,IACnD,CACT,EACA,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClC,KAAC,OAAO,kCAA4B,MAAM,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,OAAO,YAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAW,CACxH,EACA,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,YAAY,CAAC,gBAAgB,KAAG,IACvE,CACN,CAAA;QACD,MAAM,WAAW,GAAG,CAChB,KAAC,YAAY,CAAC,IAAI,IAEd,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,SAAS,EAAE,IAAI,CAAC,KAAK,EACrB,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACjD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,KAChC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,4BACjC,MAAM,mBACf,eAAe,uBACV,IAAI,YAEtB,OAAO,IAVH,IAAI,CAAC,EAAE,CAWI,CACvB,CAAA;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,WAAW,CAAA;QAClD,OAAO,CACH,MAAC,YAAY,CAAC,cAAc,eACvB,WAAW,EAMZ,KAAC,YAAY,CAAC,OAAO,oCACY,MAAM,mBACrB,8BAA8B,YAE5C,KAAC,YAAY,CAAC,IAAI,kBACF,IAAI,CAAC,KAAK,EACtB,QAAQ,EAAE,YAAY,oBACP,cAAc,6BACL,SAAS,mBACnB,iBAAiB,YAE9B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GACZ,GACD,KApBO,IAAI,CAAC,EAAE,CAqBX,CACjC,CAAA;IACL,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,KAAwB,EAAa,EAAE;QACxD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QACjC,OAAO,CACH,MAAC,YAAY,CAAC,OAAO,IAEjB,EAAE,EAAE,KAAK,CAAC,EAAE,KACR,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,KAChE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,aAAa,EAAE,SAAS,CAAC,IAAI;gBAC7B,YAAY,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC5C,iBAAiB,EAAE,CAAC,IAAkC,EAAE,EAAE;oBACtD,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;gBACtG,CAAC;aACJ,CAAC,+BACwB,MAAM,mBACjB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,aAE7D,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,UAAU,cAAE,KAAK,CAAC,KAAK,GAAc,EACzE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,KAdxD,KAAK,CAAC,EAAE,CAeM,CAC1B,CAAA;IACL,CAAC,CAAA;IAED,yGAAyG;IACzG,MAAM,aAAa,GAAG,CAAC,IAAkC,EAAe,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrG,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAChC,MAAM,cAAc,GAAG,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1F,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,KAAC,aAAa,MAAM,aAAa,KAAK,EAAE,CAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;IACrH,CAAC,CAAC,CAAA;IAEF,OAAO,CACH,MAAC,YAAY,OAAK,gBAAgB,CAAC,SAAS,CAAC,aACxC,OAAO,EACP,MAAM,EACN,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzB,KAAC,YAAY,CAAC,OAAO,IACjB,wBAAwB,EAAE,SAAS,EACnC,SAAS,EAAE,SAAS,kCACS,MAAM,mBACrB,8BAA8B,YAE5C,KAAC,YAAY,CAAC,IAAI,IACd,QAAQ,EAAE,YAAY,eACZ,QAAQ,oBACH,cAAc,6BACL,MAAM,mBAChB,iBAAiB,YAE9B,aAAa,CAAC,OAAO,CAAC,GACP,GACD,CAC1B,IACU,CAClB,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -7,10 +7,24 @@ export type ListBoxItem = {
|
|
|
7
7
|
readonly trailing?: ReactNode;
|
|
8
8
|
readonly isDisabled?: boolean;
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
/** A named section whose caption and option content share an edge. Item ids are unique across sections. */
|
|
11
|
+
export type ListBoxSection = {
|
|
12
|
+
readonly id: string;
|
|
12
13
|
readonly label: string;
|
|
13
14
|
readonly items: ReadonlyArray<ListBoxItem>;
|
|
15
|
+
};
|
|
16
|
+
type ListBoxContent = {
|
|
17
|
+
readonly items: ReadonlyArray<ListBoxItem>;
|
|
18
|
+
readonly sections?: never;
|
|
19
|
+
} | {
|
|
20
|
+
readonly items?: never;
|
|
21
|
+
readonly sections: ReadonlyArray<ListBoxSection>;
|
|
22
|
+
};
|
|
23
|
+
export type ListBoxProps = ListBoxContent & {
|
|
24
|
+
/** Names the list, e.g. "Members". */
|
|
25
|
+
readonly label: string;
|
|
26
|
+
/** Panel row content and captions align with the parent through the list container; HeroUI item padding stays. */
|
|
27
|
+
readonly inset?: "default" | "panel";
|
|
14
28
|
/** `none` makes an actionable (not selectable) list; rows then only fire `onAction`. */
|
|
15
29
|
readonly selectionMode?: "none" | "single" | "multiple";
|
|
16
30
|
readonly selectedIds?: ReadonlyArray<string>;
|
|
@@ -30,9 +44,10 @@ export type ListBoxProps = {
|
|
|
30
44
|
};
|
|
31
45
|
/**
|
|
32
46
|
* A list of selectable or actionable rows (`role="listbox"`). Arrow keys, Home/End and typeahead
|
|
33
|
-
* move between rows; Space/Enter select.
|
|
34
|
-
*
|
|
47
|
+
* move between rows; Space/Enter select. A row is HeroUI's own item: its `Label` (with a `Description` under it), then the vendor
|
|
48
|
+
* selection indicator at the end of the row; the selected row carries the vendor `aria-selected`.
|
|
35
49
|
* Contract: list FOCUS-2 STATE-1, empty STATE-3, leading glyph A11Y-2.
|
|
36
50
|
*/
|
|
37
|
-
export declare const ListBox: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading, loadingRows, className, }: ListBoxProps) => import("react").JSX.Element;
|
|
51
|
+
export declare const ListBox: ({ label, items, sections, inset, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading, loadingRows, className, }: ListBoxProps) => import("react").JSX.Element;
|
|
52
|
+
export {};
|
|
38
53
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,SAAS,EAAE,MAAM,OAAO,CAAA;AAK7D,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,2GAA2G;AAC3G,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,cAAc,GACb;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;CAAE,CAAA;AAqBlF,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG;IACxC,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,kHAAkH;IAClH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IACpC,wFAAwF;IACxF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAA;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACnD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,kKAcrB,YAAY,gCAuDd,CAAA"}
|
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ListBox as HeroListBox } from "@heroui/react";
|
|
3
|
+
import { Description as HeroDescription, Header as HeroHeader, Label as HeroLabel, ListBox as HeroListBox, Separator as HeroSeparator } from "@heroui/react";
|
|
4
4
|
import { navigationClassName } from "../../navigationClassNames.js";
|
|
5
5
|
import { Skeleton } from "../../primitive/Skeleton/index.js";
|
|
6
|
+
import { useSurfaceNesting } from "../../surfaceContext.js";
|
|
6
7
|
const clampRows = (rows) => Math.min(12, Math.max(1, Math.floor(Number.isFinite(rows) ? rows : 3)));
|
|
7
8
|
/**
|
|
8
9
|
* Skeleton rows for a loading list. They sit directly inside the busy listbox (an `aria-busy` listbox may be empty), NOT in
|
|
9
10
|
* `renderEmptyState`: the vendor wraps that in an unnamed `role="option"`, and these rows are `aria-hidden`, so it would be a nameless option.
|
|
10
11
|
*/
|
|
11
|
-
const loadingSkeleton = (rows) => (_jsx("div", { className: "starci-core-list-box-skeleton", "data-grammar-list-skeleton": "true", children: Array.from({ length: clampRows(rows) }, (_, index) => (_jsx("div", { "aria-hidden": "true", className: "starci-core-list-box-
|
|
12
|
+
const loadingSkeleton = (rows) => (_jsx("div", { className: "starci-core-list-box-skeleton", "data-grammar-list-skeleton": "true", children: Array.from({ length: clampRows(rows) }, (_, index) => (_jsx("div", { "aria-hidden": "true", className: "starci-core-list-box-skeleton-option", "data-grammar-skeleton": "true", children: _jsxs("span", { "data-grammar-list-copy": "true", children: [_jsx("span", { className: "starci-core-list-box-label", children: _jsx(Skeleton, { shape: "text" }) }), _jsx("span", { className: "starci-core-list-box-description", children: _jsx(Skeleton, { shape: "text" }) })] }) }, index))) }));
|
|
12
13
|
/**
|
|
13
14
|
* A list of selectable or actionable rows (`role="listbox"`). Arrow keys, Home/End and typeahead
|
|
14
|
-
* move between rows; Space/Enter select.
|
|
15
|
-
*
|
|
15
|
+
* move between rows; Space/Enter select. A row is HeroUI's own item: its `Label` (with a `Description` under it), then the vendor
|
|
16
|
+
* selection indicator at the end of the row; the selected row carries the vendor `aria-selected`.
|
|
16
17
|
* Contract: list FOCUS-2 STATE-1, empty STATE-3, leading glyph A11Y-2.
|
|
17
18
|
*/
|
|
18
|
-
export const ListBox = ({ label, items, selectionMode = "single", selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading = false, loadingRows = 3, className, }) =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
export const ListBox = ({ label, items = [], sections, inset, selectionMode = "single", selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading = false, loadingRows = 3, className, }) => {
|
|
20
|
+
const nested = useSurfaceNesting();
|
|
21
|
+
const resolvedInset = inset ?? (nested ? "panel" : "default");
|
|
22
|
+
const allItems = sections === undefined ? items : sections.flatMap((section) => section.items);
|
|
23
|
+
const renderItem = (item) => (_jsxs(HeroListBox.Item, { id: item.id, className: "starci-core-list-box-item", "data-grammar-list-item": "true", textValue: item.label, ...(item.isDisabled === undefined ? {} : { isDisabled: item.isDisabled }), children: [item.leading === undefined ? null : _jsx("span", { "aria-hidden": "true", "data-grammar-list-leading": "true", "data-contract": "A11Y-2", children: item.leading }), item.description === undefined ? _jsx(HeroLabel, { children: item.label }) : (_jsxs("div", { "data-grammar-list-copy": "true", children: [_jsx(HeroLabel, { children: item.label }), _jsx(HeroDescription, { children: item.description })] })), item.trailing === undefined ? null : _jsx("span", { "data-grammar-list-trailing": "true", children: item.trailing }), selectionMode === "none" ? null : _jsx(HeroListBox.ItemIndicator, {})] }, item.id));
|
|
24
|
+
return (_jsx(HeroListBox, { "aria-label": label, className: navigationClassName("starci-core-list-box", className), "data-component": "ListBox", "data-contract": "FOCUS-2 STATE-1 PADDING-0", "data-tier": "branch", "data-loading": String(isLoading), ...(isLoading ? { render: (domProps) => _jsxs("div", { ...domProps, "aria-busy": "true", children: [domProps.children, allItems.length === 0 ? loadingSkeleton(loadingRows) : null] }) } : {}), "data-grammar-list-inset": resolvedInset, "data-grammar-list-selection": selectionMode, selectionMode: selectionMode, ...(selectedIds === undefined ? {} : { selectedKeys: new Set(selectedIds) }), ...(defaultSelectedIds === undefined ? {} : { defaultSelectedKeys: new Set(defaultSelectedIds) }), ...(onSelectionChange === undefined ? {} : {
|
|
25
|
+
onSelectionChange: (selection) => onSelectionChange(selection === "all" ? allItems.map((item) => item.id) : [...selection].map(String)),
|
|
26
|
+
}), ...(onAction === undefined ? {} : { onAction: (key) => onAction(String(key)) }), ...(isLoading
|
|
27
|
+
? {}
|
|
28
|
+
: emptyContent === undefined ? {} : { renderEmptyState: () => _jsx("div", { className: "starci-core-list-box-empty", "data-contract": "STATE-3", "data-grammar-list-empty": "true", children: emptyContent }) }), children: sections === undefined ? items.map(renderItem) : sections.flatMap((section, index) => {
|
|
29
|
+
const sectionElement = _jsxs(HeroListBox.Section, { id: section.id, "aria-label": section.label, children: [_jsx(HeroHeader, { "data-grammar-list-section-header": "true", children: section.label }), section.items.map(renderItem)] }, section.id);
|
|
30
|
+
return index === 0 ? [sectionElement] : [_jsx(HeroSeparator, {}, `separator-${index}`), sectionElement];
|
|
31
|
+
}) }));
|
|
32
|
+
};
|
|
23
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,IAAI,WAAW,EAAkB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/ListBox/index.tsx"],"names":[],"mappings":"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"}
|