@limonify/zest-ui 0.3.1 → 0.4.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 +3 -0
- package/lib/alert-dialog/index.parts.d.ts +1 -1
- package/lib/alert-dialog/index.parts.d.ts.map +1 -1
- package/lib/alert-dialog/index.parts.js.map +1 -1
- package/lib/autocomplete/handle.d.ts +15 -0
- package/lib/autocomplete/handle.d.ts.map +1 -0
- package/lib/autocomplete/handle.js +12 -0
- package/lib/autocomplete/handle.js.map +1 -0
- package/lib/autocomplete/index.d.ts +1 -0
- package/lib/autocomplete/index.d.ts.map +1 -1
- package/lib/autocomplete/index.parts.d.ts +1 -0
- package/lib/autocomplete/index.parts.d.ts.map +1 -1
- package/lib/autocomplete/index.parts.js +3 -1
- package/lib/autocomplete/index.parts.js.map +1 -1
- package/lib/autocomplete/root/AutocompleteRoot.d.ts +55 -16
- package/lib/autocomplete/root/AutocompleteRoot.d.ts.map +1 -1
- package/lib/autocomplete/root/AutocompleteRoot.js +2 -18
- package/lib/autocomplete/root/AutocompleteRoot.js.map +1 -1
- package/lib/avatar/fallback/AvatarFallback.d.ts.map +1 -1
- package/lib/avatar/fallback/AvatarFallback.js +3 -1
- package/lib/avatar/fallback/AvatarFallback.js.map +1 -1
- package/lib/avatar/image/AvatarImage.d.ts.map +1 -1
- package/lib/avatar/image/AvatarImage.js +5 -0
- package/lib/avatar/image/AvatarImage.js.map +1 -1
- package/lib/checkbox/root/CheckboxRoot.d.ts.map +1 -1
- package/lib/checkbox/root/CheckboxRoot.js +9 -4
- package/lib/checkbox/root/CheckboxRoot.js.map +1 -1
- package/lib/combobox/backdrop/ComboboxBackdrop.d.ts.map +1 -1
- package/lib/combobox/backdrop/ComboboxBackdrop.js +10 -2
- package/lib/combobox/backdrop/ComboboxBackdrop.js.map +1 -1
- package/lib/combobox/empty/ComboboxEmpty.d.ts.map +1 -1
- package/lib/combobox/empty/ComboboxEmpty.js +4 -1
- package/lib/combobox/empty/ComboboxEmpty.js.map +1 -1
- package/lib/combobox/index.d.ts +2 -0
- package/lib/combobox/index.d.ts.map +1 -1
- package/lib/combobox/index.js +3 -1
- package/lib/combobox/index.js.map +1 -1
- package/lib/combobox/index.parts.d.ts +1 -0
- package/lib/combobox/index.parts.d.ts.map +1 -1
- package/lib/combobox/index.parts.js +4 -1
- package/lib/combobox/index.parts.js.map +1 -1
- package/lib/combobox/input/ComboboxInput.d.ts +24 -3
- package/lib/combobox/input/ComboboxInput.d.ts.map +1 -1
- package/lib/combobox/input/ComboboxInput.js +68 -8
- package/lib/combobox/input/ComboboxInput.js.map +1 -1
- package/lib/combobox/item/ComboboxItem.d.ts +11 -1
- package/lib/combobox/item/ComboboxItem.d.ts.map +1 -1
- package/lib/combobox/item/ComboboxItem.js +9 -4
- package/lib/combobox/item/ComboboxItem.js.map +1 -1
- package/lib/combobox/list/ComboboxList.d.ts +1 -1
- package/lib/combobox/list/ComboboxList.d.ts.map +1 -1
- package/lib/combobox/list/ComboboxList.js +4 -1
- package/lib/combobox/list/ComboboxList.js.map +1 -1
- package/lib/combobox/popup/ComboboxPopup.d.ts +26 -0
- package/lib/combobox/popup/ComboboxPopup.d.ts.map +1 -1
- package/lib/combobox/popup/ComboboxPopup.js +18 -2
- package/lib/combobox/popup/ComboboxPopup.js.map +1 -1
- package/lib/combobox/portal/ComboboxPortal.d.ts.map +1 -1
- package/lib/combobox/portal/ComboboxPortal.js +8 -4
- package/lib/combobox/portal/ComboboxPortal.js.map +1 -1
- package/lib/combobox/portal/ComboboxPortalContext.d.ts +4 -0
- package/lib/combobox/portal/ComboboxPortalContext.d.ts.map +1 -0
- package/lib/combobox/portal/ComboboxPortalContext.js +48 -0
- package/lib/combobox/portal/ComboboxPortalContext.js.map +1 -0
- package/lib/combobox/positioner/ComboboxPositioner.d.ts +11 -1
- package/lib/combobox/positioner/ComboboxPositioner.d.ts.map +1 -1
- package/lib/combobox/positioner/ComboboxPositioner.js +67 -7
- package/lib/combobox/positioner/ComboboxPositioner.js.map +1 -1
- package/lib/combobox/positioner/ComboboxPositionerContext.d.ts +9 -0
- package/lib/combobox/positioner/ComboboxPositionerContext.d.ts.map +1 -0
- package/lib/combobox/positioner/ComboboxPositionerContext.js +48 -0
- package/lib/combobox/positioner/ComboboxPositionerContext.js.map +1 -0
- package/lib/combobox/root/ComboboxItemsContext.d.ts +18 -0
- package/lib/combobox/root/ComboboxItemsContext.d.ts.map +1 -0
- package/lib/combobox/root/ComboboxItemsContext.js +55 -0
- package/lib/combobox/root/ComboboxItemsContext.js.map +1 -0
- package/lib/combobox/root/ComboboxRoot.d.ts +77 -21
- package/lib/combobox/root/ComboboxRoot.d.ts.map +1 -1
- package/lib/combobox/root/ComboboxRoot.js +4 -23
- package/lib/combobox/root/ComboboxRoot.js.map +1 -1
- package/lib/combobox/root/ComboboxRootContext.d.ts +4 -43
- package/lib/combobox/root/ComboboxRootContext.d.ts.map +1 -1
- package/lib/combobox/root/ComboboxRootContext.js.map +1 -1
- package/lib/combobox/root/ComboboxTransitionContext.d.ts +8 -0
- package/lib/combobox/root/ComboboxTransitionContext.d.ts.map +1 -0
- package/lib/combobox/root/ComboboxTransitionContext.js +44 -0
- package/lib/combobox/root/ComboboxTransitionContext.js.map +1 -0
- package/lib/combobox/root/useRenderComboboxRoot.d.ts +39 -0
- package/lib/combobox/root/useRenderComboboxRoot.d.ts.map +1 -0
- package/lib/combobox/root/useRenderComboboxRoot.js +136 -0
- package/lib/combobox/root/useRenderComboboxRoot.js.map +1 -0
- package/lib/combobox/store/ComboboxHandle.d.ts +42 -0
- package/lib/combobox/store/ComboboxHandle.d.ts.map +1 -0
- package/lib/combobox/store/ComboboxHandle.js +65 -0
- package/lib/combobox/store/ComboboxHandle.js.map +1 -0
- package/lib/combobox/store/ComboboxStore.d.ts +147 -0
- package/lib/combobox/store/ComboboxStore.d.ts.map +1 -0
- package/lib/combobox/store/ComboboxStore.js +127 -0
- package/lib/combobox/store/ComboboxStore.js.map +1 -0
- package/lib/combobox/value/ComboboxValue.d.ts.map +1 -1
- package/lib/combobox/value/ComboboxValue.js +2 -1
- package/lib/combobox/value/ComboboxValue.js.map +1 -1
- package/lib/context-menu/positioner/ContextMenuPositioner.d.ts +19 -3
- package/lib/context-menu/positioner/ContextMenuPositioner.d.ts.map +1 -1
- package/lib/context-menu/positioner/ContextMenuPositioner.js +56 -7
- package/lib/context-menu/positioner/ContextMenuPositioner.js.map +1 -1
- package/lib/context-menu/root/ContextMenuRoot.d.ts +8 -0
- package/lib/context-menu/root/ContextMenuRoot.d.ts.map +1 -1
- package/lib/dialog/backdrop/DialogBackdrop.d.ts +9 -0
- package/lib/dialog/backdrop/DialogBackdrop.d.ts.map +1 -1
- package/lib/dialog/backdrop/DialogBackdrop.js +3 -1
- package/lib/dialog/backdrop/DialogBackdrop.js.map +1 -1
- package/lib/dialog/popup/DialogPopup.d.ts +9 -0
- package/lib/dialog/popup/DialogPopup.d.ts.map +1 -1
- package/lib/dialog/popup/DialogPopup.js +2 -2
- package/lib/dialog/popup/DialogPopup.js.map +1 -1
- package/lib/dialog/popup/useDialogPopupProps.d.ts +2 -0
- package/lib/dialog/popup/useDialogPopupProps.d.ts.map +1 -1
- package/lib/dialog/popup/useDialogPopupProps.js +4 -0
- package/lib/dialog/popup/useDialogPopupProps.js.map +1 -1
- package/lib/dialog/root/DialogNestingContext.d.ts +20 -0
- package/lib/dialog/root/DialogNestingContext.d.ts.map +1 -0
- package/lib/dialog/root/DialogNestingContext.js +53 -0
- package/lib/dialog/root/DialogNestingContext.js.map +1 -0
- package/lib/dialog/root/useRenderDialogRoot.d.ts.map +1 -1
- package/lib/dialog/root/useRenderDialogRoot.js +26 -2
- package/lib/dialog/root/useRenderDialogRoot.js.map +1 -1
- package/lib/dialog/store/DialogStore.d.ts +19 -2
- package/lib/dialog/store/DialogStore.d.ts.map +1 -1
- package/lib/dialog/store/DialogStore.js +14 -2
- package/lib/dialog/store/DialogStore.js.map +1 -1
- package/lib/drawer/index.parts.d.ts +1 -1
- package/lib/drawer/index.parts.d.ts.map +1 -1
- package/lib/drawer/index.parts.js.map +1 -1
- package/lib/drawer/popup/DrawerPopup.d.ts +9 -0
- package/lib/drawer/popup/DrawerPopup.d.ts.map +1 -1
- package/lib/drawer/popup/DrawerPopup.js +3 -1
- package/lib/drawer/popup/DrawerPopup.js.map +1 -1
- package/lib/filter/index.d.ts +2 -0
- package/lib/filter/index.d.ts.map +1 -0
- package/lib/filter/index.js +6 -0
- package/lib/filter/index.js.map +1 -0
- package/lib/filter/useFilter.d.ts +45 -0
- package/lib/filter/useFilter.d.ts.map +1 -0
- package/lib/filter/useFilter.js +96 -0
- package/lib/filter/useFilter.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/internals/field/useFieldControlRegistration.d.ts +25 -6
- package/lib/internals/field/useFieldControlRegistration.d.ts.map +1 -1
- package/lib/internals/field/useFieldControlRegistration.js +93 -6
- package/lib/internals/field/useFieldControlRegistration.js.map +1 -1
- package/lib/menu/popup/MenuPopup.d.ts +10 -0
- package/lib/menu/popup/MenuPopup.d.ts.map +1 -1
- package/lib/menu/popup/MenuPopup.js +10 -1
- package/lib/menu/popup/MenuPopup.js.map +1 -1
- package/lib/menu/positioner/MenuPositioner.d.ts +10 -0
- package/lib/menu/positioner/MenuPositioner.d.ts.map +1 -1
- package/lib/menu/positioner/MenuPositioner.js +9 -1
- package/lib/menu/positioner/MenuPositioner.js.map +1 -1
- package/lib/menu/store/MenuStore.d.ts +11 -0
- package/lib/menu/store/MenuStore.d.ts.map +1 -1
- package/lib/menu/store/MenuStore.js +4 -0
- package/lib/menu/store/MenuStore.js.map +1 -1
- package/lib/menu/submenu-trigger/MenuSubmenuTrigger.d.ts.map +1 -1
- package/lib/menu/submenu-trigger/MenuSubmenuTrigger.js +3 -0
- package/lib/menu/submenu-trigger/MenuSubmenuTrigger.js.map +1 -1
- package/lib/menu/trigger/MenuTrigger.d.ts.map +1 -1
- package/lib/menu/trigger/MenuTrigger.js +4 -1
- package/lib/menu/trigger/MenuTrigger.js.map +1 -1
- package/lib/meter/indicator/MeterIndicator.d.ts +2 -1
- package/lib/meter/indicator/MeterIndicator.d.ts.map +1 -1
- package/lib/meter/indicator/MeterIndicator.js +1 -2
- package/lib/meter/indicator/MeterIndicator.js.map +1 -1
- package/lib/meter/label/MeterLabel.d.ts +2 -1
- package/lib/meter/label/MeterLabel.d.ts.map +1 -1
- package/lib/meter/label/MeterLabel.js +1 -2
- package/lib/meter/label/MeterLabel.js.map +1 -1
- package/lib/meter/root/MeterRoot.d.ts +21 -0
- package/lib/meter/root/MeterRoot.d.ts.map +1 -1
- package/lib/meter/root/MeterRoot.js +2 -2
- package/lib/meter/root/MeterRoot.js.map +1 -1
- package/lib/meter/root/MeterRootContext.d.ts +5 -0
- package/lib/meter/root/MeterRootContext.d.ts.map +1 -1
- package/lib/meter/root/MeterRootContext.js.map +1 -1
- package/lib/meter/track/MeterTrack.d.ts +2 -1
- package/lib/meter/track/MeterTrack.d.ts.map +1 -1
- package/lib/meter/track/MeterTrack.js +1 -2
- package/lib/meter/track/MeterTrack.js.map +1 -1
- package/lib/meter/value/MeterValue.d.ts +2 -1
- package/lib/meter/value/MeterValue.d.ts.map +1 -1
- package/lib/meter/value/MeterValue.js +1 -2
- package/lib/meter/value/MeterValue.js.map +1 -1
- package/lib/number-field/input/NumberFieldInput.d.ts.map +1 -1
- package/lib/number-field/input/NumberFieldInput.js +11 -2
- package/lib/number-field/input/NumberFieldInput.js.map +1 -1
- package/lib/number-field/root/NumberFieldRoot.d.ts.map +1 -1
- package/lib/number-field/root/NumberFieldRoot.js +5 -2
- package/lib/number-field/root/NumberFieldRoot.js.map +1 -1
- package/lib/otp-field/input/OTPFieldInput.d.ts.map +1 -1
- package/lib/otp-field/input/OTPFieldInput.js +4 -0
- package/lib/otp-field/input/OTPFieldInput.js.map +1 -1
- package/lib/otp-field/root/OTPFieldRoot.d.ts.map +1 -1
- package/lib/otp-field/root/OTPFieldRoot.js +20 -2
- package/lib/otp-field/root/OTPFieldRoot.js.map +1 -1
- package/lib/popover/popup/PopoverPopup.d.ts +10 -0
- package/lib/popover/popup/PopoverPopup.d.ts.map +1 -1
- package/lib/popover/popup/PopoverPopup.js +10 -1
- package/lib/popover/popup/PopoverPopup.js.map +1 -1
- package/lib/popover/positioner/PopoverPositioner.d.ts +10 -0
- package/lib/popover/positioner/PopoverPositioner.d.ts.map +1 -1
- package/lib/popover/positioner/PopoverPositioner.js +4 -0
- package/lib/popover/positioner/PopoverPositioner.js.map +1 -1
- package/lib/popover/store/PopoverStore.d.ts +11 -0
- package/lib/popover/store/PopoverStore.d.ts.map +1 -1
- package/lib/popover/store/PopoverStore.js +4 -0
- package/lib/popover/store/PopoverStore.js.map +1 -1
- package/lib/popover/trigger/PopoverTrigger.d.ts.map +1 -1
- package/lib/popover/trigger/PopoverTrigger.js +4 -1
- package/lib/popover/trigger/PopoverTrigger.js.map +1 -1
- package/lib/progress/root/ProgressRoot.d.ts +21 -0
- package/lib/progress/root/ProgressRoot.d.ts.map +1 -1
- package/lib/progress/root/ProgressRoot.js +1 -1
- package/lib/progress/root/ProgressRoot.js.map +1 -1
- package/lib/radio-group/RadioGroup.d.ts.map +1 -1
- package/lib/radio-group/RadioGroup.js +5 -2
- package/lib/radio-group/RadioGroup.js.map +1 -1
- package/lib/select/backdrop/SelectBackdrop.d.ts.map +1 -1
- package/lib/select/backdrop/SelectBackdrop.js +3 -0
- package/lib/select/backdrop/SelectBackdrop.js.map +1 -1
- package/lib/select/index.parts.d.ts +1 -0
- package/lib/select/index.parts.d.ts.map +1 -1
- package/lib/select/index.parts.js +4 -1
- package/lib/select/index.parts.js.map +1 -1
- package/lib/select/popup/SelectPopup.d.ts +8 -0
- package/lib/select/popup/SelectPopup.d.ts.map +1 -1
- package/lib/select/popup/SelectPopup.js +10 -1
- package/lib/select/popup/SelectPopup.js.map +1 -1
- package/lib/select/positioner/SelectPositioner.d.ts +9 -0
- package/lib/select/positioner/SelectPositioner.d.ts.map +1 -1
- package/lib/select/positioner/SelectPositioner.js +9 -1
- package/lib/select/positioner/SelectPositioner.js.map +1 -1
- package/lib/select/root/SelectRoot.d.ts +45 -4
- package/lib/select/root/SelectRoot.d.ts.map +1 -1
- package/lib/select/root/SelectRoot.js +43 -5
- package/lib/select/root/SelectRoot.js.map +1 -1
- package/lib/select/store/SelectHandle.d.ts +42 -0
- package/lib/select/store/SelectHandle.d.ts.map +1 -0
- package/lib/select/store/SelectHandle.js +69 -0
- package/lib/select/store/SelectHandle.js.map +1 -0
- package/lib/select/store/SelectStore.d.ts +33 -0
- package/lib/select/store/SelectStore.d.ts.map +1 -1
- package/lib/select/store/SelectStore.js +17 -1
- package/lib/select/store/SelectStore.js.map +1 -1
- package/lib/select/trigger/SelectTrigger.d.ts +18 -3
- package/lib/select/trigger/SelectTrigger.d.ts.map +1 -1
- package/lib/select/trigger/SelectTrigger.js +51 -4
- package/lib/select/trigger/SelectTrigger.js.map +1 -1
- package/lib/slider/root/SliderRoot.d.ts.map +1 -1
- package/lib/slider/root/SliderRoot.js +9 -1
- package/lib/slider/root/SliderRoot.js.map +1 -1
- package/lib/slider/thumb/SliderThumb.d.ts.map +1 -1
- package/lib/slider/thumb/SliderThumb.js +10 -2
- package/lib/slider/thumb/SliderThumb.js.map +1 -1
- package/lib/switch/root/SwitchRoot.d.ts.map +1 -1
- package/lib/switch/root/SwitchRoot.js +6 -2
- package/lib/switch/root/SwitchRoot.js.map +1 -1
- package/lib/tabs/tab/TabsTab.d.ts +2 -10
- package/lib/tabs/tab/TabsTab.d.ts.map +1 -1
- package/lib/tooltip/popup/TooltipPopup.d.ts +10 -0
- package/lib/tooltip/popup/TooltipPopup.d.ts.map +1 -1
- package/lib/tooltip/popup/TooltipPopup.js +10 -1
- package/lib/tooltip/popup/TooltipPopup.js.map +1 -1
- package/lib/tooltip/positioner/TooltipPositioner.d.ts +10 -0
- package/lib/tooltip/positioner/TooltipPositioner.d.ts.map +1 -1
- package/lib/tooltip/positioner/TooltipPositioner.js +4 -0
- package/lib/tooltip/positioner/TooltipPositioner.js.map +1 -1
- package/lib/tooltip/store/TooltipStore.d.ts +11 -0
- package/lib/tooltip/store/TooltipStore.d.ts.map +1 -1
- package/lib/tooltip/store/TooltipStore.js +11 -1
- package/lib/tooltip/store/TooltipStore.js.map +1 -1
- package/lib/tooltip/trigger/TooltipTrigger.d.ts.map +1 -1
- package/lib/tooltip/trigger/TooltipTrigger.js +4 -1
- package/lib/tooltip/trigger/TooltipTrigger.js.map +1 -1
- package/package.json +1 -1
- package/src/alert-dialog/index.parts.ts +1 -1
- package/src/autocomplete/handle.ts +18 -0
- package/src/autocomplete/index.parts.ts +1 -0
- package/src/autocomplete/index.ts +1 -0
- package/src/autocomplete/root/AutocompleteRoot.tsx +65 -50
- package/src/avatar/fallback/AvatarFallback.tsx +3 -1
- package/src/avatar/image/AvatarImage.tsx +5 -0
- package/src/checkbox/root/CheckboxRoot.tsx +7 -2
- package/src/combobox/backdrop/ComboboxBackdrop.tsx +10 -2
- package/src/combobox/empty/ComboboxEmpty.tsx +5 -1
- package/src/combobox/index.parts.ts +1 -0
- package/src/combobox/index.ts +2 -0
- package/src/combobox/input/ComboboxInput.tsx +118 -23
- package/src/combobox/item/ComboboxItem.tsx +24 -5
- package/src/combobox/list/ComboboxList.tsx +7 -2
- package/src/combobox/popup/ComboboxPopup.tsx +44 -2
- package/src/combobox/portal/ComboboxPortal.tsx +19 -13
- package/src/combobox/portal/ComboboxPortalContext.ts +15 -0
- package/src/combobox/positioner/ComboboxPositioner.tsx +52 -7
- package/src/combobox/positioner/ComboboxPositionerContext.ts +23 -0
- package/src/combobox/root/ComboboxItemsContext.ts +32 -0
- package/src/combobox/root/ComboboxRoot.tsx +94 -56
- package/src/combobox/root/ComboboxRootContext.ts +3 -43
- package/src/combobox/root/ComboboxTransitionContext.ts +15 -0
- package/src/combobox/root/useRenderComboboxRoot.tsx +189 -0
- package/src/combobox/store/ComboboxHandle.ts +64 -0
- package/src/combobox/store/ComboboxStore.ts +249 -0
- package/src/combobox/value/ComboboxValue.tsx +2 -1
- package/src/context-menu/positioner/ContextMenuPositioner.tsx +90 -10
- package/src/context-menu/root/ContextMenuRoot.tsx +8 -0
- package/src/dialog/backdrop/DialogBackdrop.tsx +12 -1
- package/src/dialog/popup/DialogPopup.tsx +11 -2
- package/src/dialog/popup/useDialogPopupProps.ts +4 -0
- package/src/dialog/root/DialogNestingContext.ts +27 -0
- package/src/dialog/root/useRenderDialogRoot.tsx +37 -2
- package/src/dialog/store/DialogStore.ts +24 -2
- package/src/drawer/index.parts.ts +1 -1
- package/src/drawer/popup/DrawerPopup.tsx +12 -1
- package/src/filter/index.ts +5 -0
- package/src/filter/useFilter.ts +95 -0
- package/src/index.ts +1 -0
- package/src/internals/field/useFieldControlRegistration.ts +86 -6
- package/src/menu/popup/MenuPopup.tsx +20 -1
- package/src/menu/positioner/MenuPositioner.tsx +19 -1
- package/src/menu/store/MenuStore.ts +13 -0
- package/src/menu/submenu-trigger/MenuSubmenuTrigger.tsx +3 -0
- package/src/menu/trigger/MenuTrigger.tsx +5 -2
- package/src/meter/indicator/MeterIndicator.tsx +3 -4
- package/src/meter/label/MeterLabel.tsx +3 -4
- package/src/meter/root/MeterRoot.tsx +29 -4
- package/src/meter/root/MeterRootContext.ts +5 -0
- package/src/meter/track/MeterTrack.tsx +3 -4
- package/src/meter/value/MeterValue.tsx +3 -4
- package/src/number-field/input/NumberFieldInput.tsx +11 -2
- package/src/number-field/root/NumberFieldRoot.tsx +4 -2
- package/src/otp-field/input/OTPFieldInput.tsx +4 -0
- package/src/otp-field/root/OTPFieldRoot.tsx +22 -2
- package/src/popover/popup/PopoverPopup.tsx +20 -1
- package/src/popover/positioner/PopoverPositioner.tsx +14 -0
- package/src/popover/store/PopoverStore.ts +13 -0
- package/src/popover/trigger/PopoverTrigger.tsx +5 -2
- package/src/progress/root/ProgressRoot.tsx +25 -1
- package/src/radio-group/RadioGroup.tsx +5 -2
- package/src/select/backdrop/SelectBackdrop.tsx +4 -0
- package/src/select/index.parts.ts +1 -0
- package/src/select/popup/SelectPopup.tsx +18 -1
- package/src/select/positioner/SelectPositioner.tsx +18 -1
- package/src/select/root/SelectRoot.tsx +109 -9
- package/src/select/store/SelectHandle.ts +68 -0
- package/src/select/store/SelectStore.ts +44 -1
- package/src/select/trigger/SelectTrigger.tsx +81 -8
- package/src/slider/root/SliderRoot.tsx +11 -1
- package/src/slider/thumb/SliderThumb.tsx +10 -1
- package/src/switch/root/SwitchRoot.tsx +5 -2
- package/src/tabs/tab/TabsTab.tsx +2 -10
- package/src/tooltip/popup/TooltipPopup.tsx +20 -1
- package/src/tooltip/positioner/TooltipPositioner.tsx +14 -0
- package/src/tooltip/store/TooltipStore.ts +20 -1
- package/src/tooltip/trigger/TooltipTrigger.tsx +5 -2
- package/lib/combobox/root/useComboboxRoot.d.ts +0 -29
- package/lib/combobox/root/useComboboxRoot.d.ts.map +0 -1
- package/lib/combobox/root/useComboboxRoot.js +0 -168
- package/lib/combobox/root/useComboboxRoot.js.map +0 -1
- package/lib/utils/fastObjectShallowCompare.d.ts +0 -2
- package/lib/utils/fastObjectShallowCompare.d.ts.map +0 -1
- package/lib/utils/fastObjectShallowCompare.js +0 -29
- package/lib/utils/fastObjectShallowCompare.js.map +0 -1
- package/lib/utils/mergeObjects.d.ts +0 -2
- package/lib/utils/mergeObjects.d.ts.map +0 -1
- package/lib/utils/mergeObjects.js +0 -16
- package/lib/utils/mergeObjects.js.map +0 -1
- package/src/combobox/root/useComboboxRoot.ts +0 -190
- package/src/utils/fastObjectShallowCompare.ts +0 -30
- package/src/utils/mergeObjects.ts +0 -15
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.useRenderComboboxRoot = useRenderComboboxRoot;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
const React = __importStar(require("react"));
|
|
40
|
+
const useIsoLayoutEffect_1 = require("../../hooks/useIsoLayoutEffect");
|
|
41
|
+
const useRefWithInit_1 = require("../../hooks/useRefWithInit");
|
|
42
|
+
const useTransitionStatus_1 = require("../../internals/useTransitionStatus");
|
|
43
|
+
const usePopupRootHandle_1 = require("../../utils/popups/usePopupRootHandle");
|
|
44
|
+
const useFilter_1 = require("../../filter/useFilter");
|
|
45
|
+
const ComboboxStore_1 = require("../store/ComboboxStore");
|
|
46
|
+
const ComboboxItemsContext_1 = require("./ComboboxItemsContext");
|
|
47
|
+
const ComboboxRootContext_1 = require("./ComboboxRootContext");
|
|
48
|
+
const ComboboxTransitionContext_1 = require("./ComboboxTransitionContext");
|
|
49
|
+
/**
|
|
50
|
+
* The shared Root implementation behind `Combobox.Root` and `Autocomplete.Root`.
|
|
51
|
+
*
|
|
52
|
+
* The two differ only in whether choosing an item records a separate value:
|
|
53
|
+
* a combobox selects `item.value` and shows its label, an autocomplete puts the
|
|
54
|
+
* typed text itself forward and treats the list as suggestions.
|
|
55
|
+
*/
|
|
56
|
+
function useRenderComboboxRoot(props, mode) {
|
|
57
|
+
var _a, _b, _c, _d;
|
|
58
|
+
const { actionsRef, children, defaultInputValue, defaultOpen = false, defaultTriggerId = null, defaultValue, disablePointerDismissal = false, disabled = false, filter, handle, inputValue, items, onInputValueChange, onOpenChange, onValueChange, open, openOnFocus = true, triggerId, value, } = props;
|
|
59
|
+
const normalizedItems = React.useMemo(() => (0, ComboboxStore_1.normalizeComboboxItems)(items), [items]);
|
|
60
|
+
const { contains } = (0, useFilter_1.useFilter)();
|
|
61
|
+
const filterItem = React.useMemo(() => filter !== null && filter !== void 0 ? filter : ((item, query) => contains(item.label, query)), [filter, contains]);
|
|
62
|
+
// The initial input text is only read on the first render; compute it once so
|
|
63
|
+
// it stays stable, or a later selection changing the controlled `value` (and
|
|
64
|
+
// with it the derived label) would look like a controlled/uncontrolled switch.
|
|
65
|
+
const initialInputRef = React.useRef(undefined);
|
|
66
|
+
if (initialInputRef.current === undefined) {
|
|
67
|
+
initialInputRef.current =
|
|
68
|
+
defaultInputValue !== null && defaultInputValue !== void 0 ? defaultInputValue : (mode === 'combobox'
|
|
69
|
+
? ((_b = (_a = normalizedItems.find((item) => item.value === (value !== null && value !== void 0 ? value : defaultValue))) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : '')
|
|
70
|
+
: '');
|
|
71
|
+
}
|
|
72
|
+
const store = (0, useRefWithInit_1.useRefWithInit)(() => new ComboboxStore_1.ComboboxStore({
|
|
73
|
+
open: defaultOpen,
|
|
74
|
+
openProp: open,
|
|
75
|
+
value: defaultValue !== null && defaultValue !== void 0 ? defaultValue : null,
|
|
76
|
+
valueProp: value,
|
|
77
|
+
inputValue: initialInputRef.current,
|
|
78
|
+
inputValueProp: inputValue,
|
|
79
|
+
items: normalizedItems,
|
|
80
|
+
mode,
|
|
81
|
+
disabled,
|
|
82
|
+
disablePointerDismissal,
|
|
83
|
+
openOnFocus,
|
|
84
|
+
triggerId: defaultTriggerId,
|
|
85
|
+
triggerIdProp: triggerId,
|
|
86
|
+
})).current;
|
|
87
|
+
store.useControlledProp('openProp', open);
|
|
88
|
+
store.useControlledProp('valueProp', value);
|
|
89
|
+
store.useControlledProp('inputValueProp', inputValue);
|
|
90
|
+
store.useControlledProp('triggerIdProp', triggerId);
|
|
91
|
+
store.useContextCallback('onOpenChange', onOpenChange);
|
|
92
|
+
store.useContextCallback('onValueChange', onValueChange);
|
|
93
|
+
store.useContextCallback('onInputValueChange', onInputValueChange);
|
|
94
|
+
store.useSyncedValues({
|
|
95
|
+
mode,
|
|
96
|
+
disabled,
|
|
97
|
+
disablePointerDismissal,
|
|
98
|
+
openOnFocus,
|
|
99
|
+
items: normalizedItems,
|
|
100
|
+
});
|
|
101
|
+
(0, usePopupRootHandle_1.usePopupRootHandle)({ store, handle, actionsRef });
|
|
102
|
+
const resolvedOpen = store.useState('open');
|
|
103
|
+
const selectedValue = store.useState('value');
|
|
104
|
+
const currentInputValue = store.useState('inputValue');
|
|
105
|
+
// The label of the currently selected value (combobox mode only).
|
|
106
|
+
const selectedLabel = mode === 'combobox'
|
|
107
|
+
? ((_d = (_c = normalizedItems.find((item) => item.value === selectedValue)) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : '')
|
|
108
|
+
: '';
|
|
109
|
+
// Reflect a controlled `value` that changed from outside into the input text.
|
|
110
|
+
// `selectItem` already sets both, so the ref guard makes that a no-op and stops
|
|
111
|
+
// this from fighting the user's typing (typing never changes the selection).
|
|
112
|
+
const lastReflectedValueRef = React.useRef(selectedValue);
|
|
113
|
+
(0, useIsoLayoutEffect_1.useIsoLayoutEffect)(() => {
|
|
114
|
+
if (mode !== 'combobox' || selectedValue === lastReflectedValueRef.current) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
lastReflectedValueRef.current = selectedValue;
|
|
118
|
+
store.reflectInputValue(selectedLabel);
|
|
119
|
+
}, [mode, selectedValue, selectedLabel, store]);
|
|
120
|
+
const filteredItems = React.useMemo(() => {
|
|
121
|
+
// When the input still shows the current selection, the user has not started
|
|
122
|
+
// filtering — show every item so a fresh focus reveals the whole list rather
|
|
123
|
+
// than the single selected row.
|
|
124
|
+
const query = mode === 'combobox' && currentInputValue === selectedLabel ? '' : currentInputValue.trim();
|
|
125
|
+
if (query.length === 0) {
|
|
126
|
+
return normalizedItems;
|
|
127
|
+
}
|
|
128
|
+
return normalizedItems.filter((item) => filterItem(item, query));
|
|
129
|
+
}, [normalizedItems, currentInputValue, selectedLabel, mode, filterItem]);
|
|
130
|
+
const { transitionStatus } = (0, useTransitionStatus_1.useTransitionStatus)(resolvedOpen, false, true);
|
|
131
|
+
const itemsContextValue = React.useMemo(() => ({ filteredItems }), [filteredItems]);
|
|
132
|
+
const transitionContextValue = React.useMemo(() => ({ transitionStatus }), [transitionStatus]);
|
|
133
|
+
const payload = store.useState('payload');
|
|
134
|
+
return ((0, jsx_runtime_1.jsx)(ComboboxRootContext_1.ComboboxRootContext.Provider, { value: store, children: (0, jsx_runtime_1.jsx)(ComboboxItemsContext_1.ComboboxItemsContext.Provider, { value: itemsContextValue, children: (0, jsx_runtime_1.jsx)(ComboboxTransitionContext_1.ComboboxTransitionContext.Provider, { value: transitionContextValue, children: typeof children === 'function' ? children(payload) : children }) }) }));
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=useRenderComboboxRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRenderComboboxRoot.js","sourceRoot":"","sources":["../../../src/combobox/root/useRenderComboboxRoot.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ComboboxStore } from './ComboboxStore';
|
|
2
|
+
import { BasePopupHandle } from '../../utils/popups/BasePopupHandle';
|
|
3
|
+
/**
|
|
4
|
+
* Controls a combobox imperatively, and associates a `Combobox.Input` rendered
|
|
5
|
+
* outside the root with it. Create one with `Combobox.createHandle()` and pass
|
|
6
|
+
* it to the root's and the input's `handle` prop.
|
|
7
|
+
*
|
|
8
|
+
* The imperative methods only take effect while a root using this handle is
|
|
9
|
+
* mounted; calls made before one attaches (or after it unmounts) are ignored.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ComboboxHandle extends BasePopupHandle<ComboboxStore, ComboboxStore> {
|
|
12
|
+
constructor(componentName?: string);
|
|
13
|
+
/**
|
|
14
|
+
* Points the positioner at the input the list was opened from. Without this an
|
|
15
|
+
* imperative open would anchor to whatever was last measured.
|
|
16
|
+
*/
|
|
17
|
+
protected associateTrigger(store: ComboboxStore, triggerNode: unknown): void;
|
|
18
|
+
/**
|
|
19
|
+
* Opens the list, anchored to the input with the given id.
|
|
20
|
+
*
|
|
21
|
+
* Call this from an event handler or an effect, never during rendering.
|
|
22
|
+
*
|
|
23
|
+
* @param triggerId The `nativeID` of a mounted `Combobox.Input` carrying this handle.
|
|
24
|
+
*/
|
|
25
|
+
open(triggerId: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Closes the list.
|
|
28
|
+
*
|
|
29
|
+
* Call this from an event handler or an effect, never during rendering.
|
|
30
|
+
*/
|
|
31
|
+
close(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Whether the list is open. `false` while no root is attached.
|
|
34
|
+
*/
|
|
35
|
+
get isOpen(): boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates a handle that connects a `Combobox.Root` to a `Combobox.Input`
|
|
39
|
+
* rendered outside it, and controls it imperatively.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createComboboxHandle(): ComboboxHandle;
|
|
42
|
+
//# sourceMappingURL=ComboboxHandle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboboxHandle.d.ts","sourceRoot":"","sources":["../../../src/combobox/store/ComboboxHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,eAAe,CAAC,aAAa,EAAE,aAAa,CAAC;gBACnE,aAAa,GAAE,MAAmB;IAO9C;;;OAGG;cACgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO;IAM9E;;;;;;OAMG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM;IAItB;;;;OAIG;IACH,KAAK;IAIL;;OAEG;IACH,IAAI,MAAM,YAET;CACF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComboboxHandle = void 0;
|
|
4
|
+
exports.createComboboxHandle = createComboboxHandle;
|
|
5
|
+
const ComboboxStore_1 = require("./ComboboxStore");
|
|
6
|
+
const BasePopupHandle_1 = require("../../utils/popups/BasePopupHandle");
|
|
7
|
+
/**
|
|
8
|
+
* Controls a combobox imperatively, and associates a `Combobox.Input` rendered
|
|
9
|
+
* outside the root with it. Create one with `Combobox.createHandle()` and pass
|
|
10
|
+
* it to the root's and the input's `handle` prop.
|
|
11
|
+
*
|
|
12
|
+
* The imperative methods only take effect while a root using this handle is
|
|
13
|
+
* mounted; calls made before one attaches (or after it unmounts) are ignored.
|
|
14
|
+
*/
|
|
15
|
+
class ComboboxHandle extends BasePopupHandle_1.BasePopupHandle {
|
|
16
|
+
constructor(componentName = 'Combobox') {
|
|
17
|
+
// `true`: the list is anchored to the input, so opening it by an unknown
|
|
18
|
+
// trigger id is an error rather than a warning — there would be nothing to
|
|
19
|
+
// anchor to.
|
|
20
|
+
super(new ComboboxStore_1.ComboboxStore(), componentName, true);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Points the positioner at the input the list was opened from. Without this an
|
|
24
|
+
* imperative open would anchor to whatever was last measured.
|
|
25
|
+
*/
|
|
26
|
+
associateTrigger(store, triggerNode) {
|
|
27
|
+
if (triggerNode !== undefined) {
|
|
28
|
+
store.set('triggerNode', triggerNode);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Opens the list, anchored to the input with the given id.
|
|
33
|
+
*
|
|
34
|
+
* Call this from an event handler or an effect, never during rendering.
|
|
35
|
+
*
|
|
36
|
+
* @param triggerId The `nativeID` of a mounted `Combobox.Input` carrying this handle.
|
|
37
|
+
*/
|
|
38
|
+
open(triggerId) {
|
|
39
|
+
this.openByTrigger(triggerId);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Closes the list.
|
|
43
|
+
*
|
|
44
|
+
* Call this from an event handler or an effect, never during rendering.
|
|
45
|
+
*/
|
|
46
|
+
close() {
|
|
47
|
+
this.closePopup();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Whether the list is open. `false` while no root is attached.
|
|
51
|
+
*/
|
|
52
|
+
get isOpen() {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
return (_b = (_a = this.attachedStore) === null || _a === void 0 ? void 0 : _a.select('open')) !== null && _b !== void 0 ? _b : false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ComboboxHandle = ComboboxHandle;
|
|
58
|
+
/**
|
|
59
|
+
* Creates a handle that connects a `Combobox.Root` to a `Combobox.Input`
|
|
60
|
+
* rendered outside it, and controls it imperatively.
|
|
61
|
+
*/
|
|
62
|
+
function createComboboxHandle() {
|
|
63
|
+
return new ComboboxHandle();
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=ComboboxHandle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboboxHandle.js","sourceRoot":"","sources":["../../../src/combobox/store/ComboboxHandle.ts"],"names":[],"mappings":";;;AA6DA,oDAEC;AA/DD,mDAAgD;AAChD,wEAAqE;AAErE;;;;;;;GAOG;AACH,MAAa,cAAe,SAAQ,iCAA6C;IAC/E,YAAY,gBAAwB,UAAU;QAC5C,yEAAyE;QACzE,2EAA2E;QAC3E,aAAa;QACb,KAAK,CAAC,IAAI,6BAAa,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACgB,gBAAgB,CAAC,KAAoB,EAAE,WAAoB;QAC5E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,SAAiB;QACpB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;;QACR,OAAO,MAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,CAAC,MAAM,CAAC,mCAAI,KAAK,CAAC;IACrD,CAAC;CACF;AA5CD,wCA4CC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { TextInput } from 'react-native';
|
|
2
|
+
import { ReactStore } from '../../store/ReactStore';
|
|
3
|
+
import { PopupTriggerMap } from '../../utils/popups/PopupTriggerMap';
|
|
4
|
+
import type { ComboboxRoot } from '../root/ComboboxRoot';
|
|
5
|
+
/**
|
|
6
|
+
* The items to filter and choose from: strings, or `{ value, label }` records
|
|
7
|
+
* for non-string values.
|
|
8
|
+
*/
|
|
9
|
+
export type ComboboxItems = ReadonlyArray<string | {
|
|
10
|
+
value: unknown;
|
|
11
|
+
label: string;
|
|
12
|
+
}>;
|
|
13
|
+
export interface ComboboxItem {
|
|
14
|
+
value: unknown;
|
|
15
|
+
label: string;
|
|
16
|
+
}
|
|
17
|
+
/** Normalizes the `items` prop into `{ value, label }` records. */
|
|
18
|
+
export declare function normalizeComboboxItems(items: ComboboxItems | undefined): ComboboxItem[];
|
|
19
|
+
export type State = {
|
|
20
|
+
/**
|
|
21
|
+
* The uncontrolled open state. Read through the `open` selector, which
|
|
22
|
+
* resolves the controlled prop first.
|
|
23
|
+
*/
|
|
24
|
+
open: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The controlled `open` prop, when provided.
|
|
27
|
+
*/
|
|
28
|
+
openProp: boolean | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* The uncontrolled selected value. Read through the `value` selector.
|
|
31
|
+
*/
|
|
32
|
+
value: unknown;
|
|
33
|
+
/**
|
|
34
|
+
* The controlled `value` prop, when provided.
|
|
35
|
+
*/
|
|
36
|
+
valueProp: unknown;
|
|
37
|
+
/**
|
|
38
|
+
* The uncontrolled input text. Read through the `inputValue` selector.
|
|
39
|
+
*/
|
|
40
|
+
inputValue: string;
|
|
41
|
+
/**
|
|
42
|
+
* The controlled `inputValue` prop, when provided.
|
|
43
|
+
*/
|
|
44
|
+
inputValueProp: string | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Every item, normalized.
|
|
47
|
+
*/
|
|
48
|
+
items: ComboboxItem[];
|
|
49
|
+
/**
|
|
50
|
+
* `'combobox'` selects a value and shows its label; `'autocomplete'` is free
|
|
51
|
+
* text with suggestions, where the typed string is the value.
|
|
52
|
+
*/
|
|
53
|
+
mode: 'combobox' | 'autocomplete';
|
|
54
|
+
disabled: boolean;
|
|
55
|
+
disablePointerDismissal: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Whether focusing the input opens the list.
|
|
58
|
+
*/
|
|
59
|
+
openOnFocus: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* The anchor's native node, carried across the portal boundary.
|
|
62
|
+
*/
|
|
63
|
+
triggerNode: unknown;
|
|
64
|
+
/**
|
|
65
|
+
* The input's measured width, used to size the popup.
|
|
66
|
+
*/
|
|
67
|
+
triggerWidth: number | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* The input's measured height.
|
|
70
|
+
*/
|
|
71
|
+
triggerHeight: number | undefined;
|
|
72
|
+
update: (() => void) | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Ref to the input element, for programmatic blur.
|
|
75
|
+
*/
|
|
76
|
+
inputRef: React.RefObject<TextInput | null> | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* The payload of the trigger the popup was opened by, handed to the root's
|
|
79
|
+
* children when they are a function.
|
|
80
|
+
*/
|
|
81
|
+
payload: unknown;
|
|
82
|
+
/**
|
|
83
|
+
* The id of the trigger the popup is associated with, or `null` for none.
|
|
84
|
+
*/
|
|
85
|
+
triggerId: string | null;
|
|
86
|
+
/**
|
|
87
|
+
* The controlled `triggerId` prop, when provided.
|
|
88
|
+
*/
|
|
89
|
+
triggerIdProp: string | null | undefined;
|
|
90
|
+
};
|
|
91
|
+
type Context = {
|
|
92
|
+
onOpenChange: ((open: boolean, eventDetails: ComboboxRoot.ChangeEventDetails) => void) | undefined;
|
|
93
|
+
onValueChange: ((value: any, eventDetails: ComboboxRoot.ChangeEventDetails) => void) | undefined;
|
|
94
|
+
onInputValueChange: ((value: string, eventDetails: ComboboxRoot.ChangeEventDetails) => void) | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Every trigger bound to this root, by id. A handle resolves `open(id)`
|
|
97
|
+
* through this, which is what lets an input rendered outside the root open it.
|
|
98
|
+
*/
|
|
99
|
+
triggerNodes: PopupTriggerMap;
|
|
100
|
+
};
|
|
101
|
+
declare const selectors: {
|
|
102
|
+
open: (state: State) => boolean;
|
|
103
|
+
value: (state: State) => unknown;
|
|
104
|
+
inputValue: (state: State) => string;
|
|
105
|
+
items: (state: State) => ComboboxItem[];
|
|
106
|
+
mode: (state: State) => "combobox" | "autocomplete";
|
|
107
|
+
disabled: (state: State) => boolean;
|
|
108
|
+
disablePointerDismissal: (state: State) => boolean;
|
|
109
|
+
openOnFocus: (state: State) => boolean;
|
|
110
|
+
triggerNode: (state: State) => unknown;
|
|
111
|
+
triggerWidth: (state: State) => number | undefined;
|
|
112
|
+
triggerHeight: (state: State) => number | undefined;
|
|
113
|
+
update: (state: State) => (() => void) | undefined;
|
|
114
|
+
inputRef: (state: State) => import("react").RefObject<TextInput | null> | undefined;
|
|
115
|
+
payload: (state: State) => unknown;
|
|
116
|
+
triggerId: (state: State) => string | null;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* The store behind `Combobox.Root` and `Autocomplete.Root`.
|
|
120
|
+
*
|
|
121
|
+
* It follows the same controlled-prop and cancelable-event contract as the other
|
|
122
|
+
* popup families: every change fires its callback first and only commits the
|
|
123
|
+
* uncontrolled key when the consumer has not called `eventDetails.cancel()`.
|
|
124
|
+
*/
|
|
125
|
+
export declare class ComboboxStore extends ReactStore<Readonly<State>, Context, typeof selectors> {
|
|
126
|
+
constructor(initialState?: Partial<State>);
|
|
127
|
+
setOpen: (nextOpen: boolean, eventDetails: ComboboxRoot.ChangeEventDetails) => void;
|
|
128
|
+
setValue: (nextValue: unknown, eventDetails: ComboboxRoot.ChangeEventDetails) => void;
|
|
129
|
+
setInputValue: (nextValue: string, eventDetails: ComboboxRoot.ChangeEventDetails) => void;
|
|
130
|
+
/**
|
|
131
|
+
* Reflects a value the consumer changed from outside into the input text.
|
|
132
|
+
*
|
|
133
|
+
* This is not a change the consumer made through the combobox, so it fires no
|
|
134
|
+
* callback — it writes the uncontrolled key directly.
|
|
135
|
+
*/
|
|
136
|
+
reflectInputValue: (nextValue: string) => void;
|
|
137
|
+
/**
|
|
138
|
+
* Selects an item: records the value, fills the input with its label, and
|
|
139
|
+
* closes the popup.
|
|
140
|
+
*
|
|
141
|
+
* One `eventDetails` object is shared by all three, so canceling in any
|
|
142
|
+
* handler stops the rest — the same contract the group components use.
|
|
143
|
+
*/
|
|
144
|
+
selectItem: (item: ComboboxItem, eventDetails: ComboboxRoot.ChangeEventDetails) => void;
|
|
145
|
+
}
|
|
146
|
+
export {};
|
|
147
|
+
//# sourceMappingURL=ComboboxStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboboxStore.d.ts","sourceRoot":"","sources":["../../../src/combobox/store/ComboboxStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComboboxStore = void 0;
|
|
4
|
+
exports.normalizeComboboxItems = normalizeComboboxItems;
|
|
5
|
+
const createSelector_1 = require("../../store/createSelector");
|
|
6
|
+
const ReactStore_1 = require("../../store/ReactStore");
|
|
7
|
+
const PopupTriggerMap_1 = require("../../utils/popups/PopupTriggerMap");
|
|
8
|
+
/** Normalizes the `items` prop into `{ value, label }` records. */
|
|
9
|
+
function normalizeComboboxItems(items) {
|
|
10
|
+
if (!items) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
return items.map((item) => typeof item === 'string' ? { value: item, label: item } : { value: item.value, label: item.label });
|
|
14
|
+
}
|
|
15
|
+
const selectors = {
|
|
16
|
+
open: (0, createSelector_1.createSelector)((state) => { var _a; return (_a = state.openProp) !== null && _a !== void 0 ? _a : state.open; }),
|
|
17
|
+
value: (0, createSelector_1.createSelector)((state) => state.valueProp !== undefined ? state.valueProp : state.value),
|
|
18
|
+
inputValue: (0, createSelector_1.createSelector)((state) => { var _a; return (_a = state.inputValueProp) !== null && _a !== void 0 ? _a : state.inputValue; }),
|
|
19
|
+
items: (0, createSelector_1.createSelector)((state) => state.items),
|
|
20
|
+
mode: (0, createSelector_1.createSelector)((state) => state.mode),
|
|
21
|
+
disabled: (0, createSelector_1.createSelector)((state) => state.disabled),
|
|
22
|
+
disablePointerDismissal: (0, createSelector_1.createSelector)((state) => state.disablePointerDismissal),
|
|
23
|
+
openOnFocus: (0, createSelector_1.createSelector)((state) => state.openOnFocus),
|
|
24
|
+
triggerNode: (0, createSelector_1.createSelector)((state) => state.triggerNode),
|
|
25
|
+
triggerWidth: (0, createSelector_1.createSelector)((state) => state.triggerWidth),
|
|
26
|
+
triggerHeight: (0, createSelector_1.createSelector)((state) => state.triggerHeight),
|
|
27
|
+
update: (0, createSelector_1.createSelector)((state) => state.update),
|
|
28
|
+
inputRef: (0, createSelector_1.createSelector)((state) => state.inputRef),
|
|
29
|
+
payload: (0, createSelector_1.createSelector)((state) => state.payload),
|
|
30
|
+
triggerId: (0, createSelector_1.createSelector)((state) => { var _a; return (_a = state.triggerIdProp) !== null && _a !== void 0 ? _a : state.triggerId; }),
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* The store behind `Combobox.Root` and `Autocomplete.Root`.
|
|
34
|
+
*
|
|
35
|
+
* It follows the same controlled-prop and cancelable-event contract as the other
|
|
36
|
+
* popup families: every change fires its callback first and only commits the
|
|
37
|
+
* uncontrolled key when the consumer has not called `eventDetails.cancel()`.
|
|
38
|
+
*/
|
|
39
|
+
class ComboboxStore extends ReactStore_1.ReactStore {
|
|
40
|
+
constructor(initialState) {
|
|
41
|
+
super({
|
|
42
|
+
open: false,
|
|
43
|
+
openProp: undefined,
|
|
44
|
+
value: null,
|
|
45
|
+
valueProp: undefined,
|
|
46
|
+
inputValue: '',
|
|
47
|
+
inputValueProp: undefined,
|
|
48
|
+
items: [],
|
|
49
|
+
mode: 'combobox',
|
|
50
|
+
disabled: false,
|
|
51
|
+
disablePointerDismissal: false,
|
|
52
|
+
openOnFocus: true,
|
|
53
|
+
triggerNode: null,
|
|
54
|
+
triggerWidth: undefined,
|
|
55
|
+
triggerHeight: undefined,
|
|
56
|
+
update: undefined,
|
|
57
|
+
inputRef: undefined,
|
|
58
|
+
payload: undefined,
|
|
59
|
+
triggerId: null,
|
|
60
|
+
triggerIdProp: undefined,
|
|
61
|
+
...initialState,
|
|
62
|
+
}, {
|
|
63
|
+
onOpenChange: undefined,
|
|
64
|
+
onValueChange: undefined,
|
|
65
|
+
onInputValueChange: undefined,
|
|
66
|
+
triggerNodes: new PopupTriggerMap_1.PopupTriggerMap(),
|
|
67
|
+
}, selectors);
|
|
68
|
+
this.setOpen = (nextOpen, eventDetails) => {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
if (nextOpen === this.select('open')) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
(_b = (_a = this.context).onOpenChange) === null || _b === void 0 ? void 0 : _b.call(_a, nextOpen, eventDetails);
|
|
74
|
+
if (eventDetails.isCanceled) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.set('open', nextOpen);
|
|
78
|
+
};
|
|
79
|
+
this.setValue = (nextValue, eventDetails) => {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
(_b = (_a = this.context).onValueChange) === null || _b === void 0 ? void 0 : _b.call(_a, nextValue, eventDetails);
|
|
82
|
+
if (eventDetails.isCanceled) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this.set('value', nextValue);
|
|
86
|
+
};
|
|
87
|
+
this.setInputValue = (nextValue, eventDetails) => {
|
|
88
|
+
var _a, _b;
|
|
89
|
+
(_b = (_a = this.context).onInputValueChange) === null || _b === void 0 ? void 0 : _b.call(_a, nextValue, eventDetails);
|
|
90
|
+
if (eventDetails.isCanceled) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.set('inputValue', nextValue);
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Reflects a value the consumer changed from outside into the input text.
|
|
97
|
+
*
|
|
98
|
+
* This is not a change the consumer made through the combobox, so it fires no
|
|
99
|
+
* callback — it writes the uncontrolled key directly.
|
|
100
|
+
*/
|
|
101
|
+
this.reflectInputValue = (nextValue) => {
|
|
102
|
+
this.set('inputValue', nextValue);
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Selects an item: records the value, fills the input with its label, and
|
|
106
|
+
* closes the popup.
|
|
107
|
+
*
|
|
108
|
+
* One `eventDetails` object is shared by all three, so canceling in any
|
|
109
|
+
* handler stops the rest — the same contract the group components use.
|
|
110
|
+
*/
|
|
111
|
+
this.selectItem = (item, eventDetails) => {
|
|
112
|
+
if (this.select('mode') === 'combobox') {
|
|
113
|
+
this.setValue(item.value, eventDetails);
|
|
114
|
+
if (eventDetails.isCanceled) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
this.setInputValue(item.label, eventDetails);
|
|
119
|
+
if (eventDetails.isCanceled) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this.setOpen(false, eventDetails);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.ComboboxStore = ComboboxStore;
|
|
127
|
+
//# sourceMappingURL=ComboboxStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboboxStore.js","sourceRoot":"","sources":["../../../src/combobox/store/ComboboxStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxValue.d.ts","sourceRoot":"","sources":["../../../src/combobox/value/ComboboxValue.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ComboboxValue.d.ts","sourceRoot":"","sources":["../../../src/combobox/value/ComboboxValue.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,0EAahE;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,IAAI,EAAE,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAC/E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,yBAAiB,aAAa,CAAC;IAC7B,KAAY,KAAK,GAAG,kBAAkB,CAAC;IACvC,KAAY,KAAK,GAAG,kBAAkB,CAAC;CACxC"}
|
|
@@ -12,7 +12,8 @@ const useRenderElement_1 = require("../../use-render/useRenderElement");
|
|
|
12
12
|
*/
|
|
13
13
|
function ComboboxValue(componentProps) {
|
|
14
14
|
const { render, className, style, children, ref, ...elementProps } = componentProps;
|
|
15
|
-
const
|
|
15
|
+
const store = (0, ComboboxRootContext_1.useComboboxRootContext)();
|
|
16
|
+
const inputValue = store.useState('inputValue');
|
|
16
17
|
const state = { value: inputValue };
|
|
17
18
|
return (0, useRenderElement_1.useRenderElement)(react_native_1.Text, componentProps, {
|
|
18
19
|
state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxValue.js","sourceRoot":"","sources":["../../../src/combobox/value/ComboboxValue.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAYb,
|
|
1
|
+
{"version":3,"file":"ComboboxValue.js","sourceRoot":"","sources":["../../../src/combobox/value/ComboboxValue.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAYb,sCAaC;AAvBD,+CAAoC;AACpC,qEAAqE;AACrE,wEAAqE;AAGrE;;;;GAIG;AACH,SAAgB,aAAa,CAAC,cAAmC;IAC/D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAEpF,MAAM,KAAK,GAAG,IAAA,4CAAsB,GAAE,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAuB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAExD,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG;QACH,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,UAAU,EAAE,EAAE,YAAY,CAAC;KAC5D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -6,17 +6,33 @@ import type { ZestUIComponentProps } from '../../types';
|
|
|
6
6
|
* Positions the context menu popup at the point the long press landed.
|
|
7
7
|
* Renders a `<View>`.
|
|
8
8
|
*
|
|
9
|
-
* Unlike `Menu.Positioner
|
|
10
|
-
* element, so
|
|
11
|
-
*
|
|
9
|
+
* Unlike `Menu.Positioner` it anchors to a screen point rather than a trigger
|
|
10
|
+
* element, so it does not go through `useAnchorPositioning`: floating-ui
|
|
11
|
+
* measures a real node, and there is no node here. Collision handling is
|
|
12
|
+
* therefore its own — the popup flips to the other side of the press point when
|
|
13
|
+
* it would otherwise run off the screen, and is kept `collisionPadding` inside
|
|
14
|
+
* the edges. `side` and `align` on state report where it actually landed.
|
|
12
15
|
*/
|
|
13
16
|
export declare function ContextMenuPositioner(componentProps: ContextMenuPositioner.Props): React.JSX.Element;
|
|
14
17
|
export interface ContextMenuPositionerState {
|
|
15
18
|
open: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* `'bottom'` when the popup hangs below the press point, `'top'` when it was
|
|
21
|
+
* flipped above it to stay on screen.
|
|
22
|
+
*/
|
|
16
23
|
side: Side;
|
|
24
|
+
/**
|
|
25
|
+
* `'start'` when the popup extends right of the press point, `'end'` when it
|
|
26
|
+
* was flipped to its left.
|
|
27
|
+
*/
|
|
17
28
|
align: Align;
|
|
18
29
|
}
|
|
19
30
|
export interface ContextMenuPositionerProps extends ZestUIComponentProps<typeof View, ContextMenuPositionerState> {
|
|
31
|
+
/**
|
|
32
|
+
* How much space to keep between the popup and the edges of the screen.
|
|
33
|
+
* @default 5
|
|
34
|
+
*/
|
|
35
|
+
collisionPadding?: number | undefined;
|
|
20
36
|
}
|
|
21
37
|
export declare namespace ContextMenuPositioner {
|
|
22
38
|
type State = ContextMenuPositionerState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenuPositioner.d.ts","sourceRoot":"","sources":["../../../src/context-menu/positioner/ContextMenuPositioner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"ContextMenuPositioner.d.ts","sourceRoot":"","sources":["../../../src/context-menu/positioner/ContextMenuPositioner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAA+C,MAAM,cAAc,CAAC;AAMjF,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,qBAAqB,CAAC,KAAK,qBA6FhF;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC;IACX;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,0BACf,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,0BAA0B,CAAC;IACrE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,yBAAiB,qBAAqB,CAAC;IACrC,KAAY,KAAK,GAAG,0BAA0B,CAAC;IAC/C,KAAY,KAAK,GAAG,0BAA0B,CAAC;CAChD"}
|