@limonify/zest-ui 0.3.2 → 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 -4
- 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 +65 -11
- 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 -6
- 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 +7 -2
- package/lib/combobox/positioner/ComboboxPositioner.d.ts.map +1 -1
- package/lib/combobox/positioner/ComboboxPositioner.js +61 -6
- 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 -54
- 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 +4 -0
- package/lib/select/positioner/SelectPositioner.d.ts.map +1 -1
- package/lib/select/positioner/SelectPositioner.js +2 -0
- 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 +28 -0
- package/lib/select/store/SelectStore.d.ts.map +1 -1
- package/lib/select/store/SelectStore.js +15 -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 +49 -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 -3
- 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 +112 -27
- package/src/combobox/item/ComboboxItem.tsx +24 -6
- 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 +45 -10
- 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 -54
- 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 +9 -3
- package/src/select/root/SelectRoot.tsx +109 -9
- package/src/select/store/SelectHandle.ts +68 -0
- package/src/select/store/SelectStore.ts +38 -1
- package/src/select/trigger/SelectTrigger.tsx +78 -7
- 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 -176
- 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 -199
- package/src/utils/fastObjectShallowCompare.ts +0 -30
- package/src/utils/mergeObjects.ts +0 -15
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Pressable, type GestureResponderEvent, type LayoutChangeEvent } from 'react-native';
|
|
4
|
-
import {
|
|
4
|
+
import { SelectRootContext } from '../root/SelectRootContext';
|
|
5
5
|
import { useRenderElement } from '../../use-render/useRenderElement';
|
|
6
6
|
import { useButton } from '../../internals/use-button/useButton';
|
|
7
|
+
import { useFieldControlRegistration } from '../../internals/field/useFieldControlRegistration';
|
|
8
|
+
import { useId } from '../../hooks/useId';
|
|
9
|
+
import { useIsoLayoutEffect } from '../../hooks/useIsoLayoutEffect';
|
|
7
10
|
import { useMergedRefs } from '../../hooks/useMergedRefs';
|
|
11
|
+
import { usePopupHandleStore } from '../../utils/popups/usePopupHandleStore';
|
|
12
|
+
import type { SelectHandle } from '../store/SelectHandle';
|
|
13
|
+
import type { SelectStore } from '../store/SelectStore';
|
|
8
14
|
import type { ZestUIComponentProps } from '../../types';
|
|
9
15
|
import { createChangeEventDetails } from '../../utils/createChangeEventDetails';
|
|
10
16
|
import { REASONS } from '../../utils/reasons';
|
|
@@ -12,18 +18,42 @@ import { REASONS } from '../../utils/reasons';
|
|
|
12
18
|
/**
|
|
13
19
|
* A button that opens the select popup, and the element it is positioned against.
|
|
14
20
|
* Renders a `<Pressable>`.
|
|
21
|
+
*
|
|
22
|
+
* Pass a `handle` to render a trigger outside of its `Select.Root`: there is no
|
|
23
|
+
* context reaching across, so the handle is what connects the two.
|
|
15
24
|
*/
|
|
16
|
-
export function SelectTrigger(componentProps: SelectTrigger.Props) {
|
|
25
|
+
export function SelectTrigger<Payload = unknown>(componentProps: SelectTrigger.Props<Payload>) {
|
|
17
26
|
const {
|
|
18
27
|
render,
|
|
19
28
|
className,
|
|
20
29
|
style,
|
|
21
30
|
disabled: disabledProp = false,
|
|
31
|
+
handle,
|
|
32
|
+
nativeID: idProp,
|
|
33
|
+
payload,
|
|
22
34
|
ref,
|
|
23
35
|
...elementProps
|
|
24
36
|
} = componentProps;
|
|
25
37
|
|
|
26
|
-
const
|
|
38
|
+
const rootStore = React.useContext(SelectRootContext);
|
|
39
|
+
const handleStore = usePopupHandleStore(handle);
|
|
40
|
+
|
|
41
|
+
// A trigger inside a root uses that root; a detached one follows its handle,
|
|
42
|
+
// which resolves to the attached root's store or to an inert fallback.
|
|
43
|
+
const store = (handleStore ?? rootStore) as SelectStore | undefined;
|
|
44
|
+
|
|
45
|
+
if (store === undefined) {
|
|
46
|
+
throw new Error(
|
|
47
|
+
'Zest: Select.Trigger must be placed within <Select.Root>, or given a `handle` it shares with one.',
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const id = useId(idProp ?? undefined);
|
|
52
|
+
|
|
53
|
+
// The trigger is the element assistive tech announces, so the field's label
|
|
54
|
+
// and messages attach here rather than to the root.
|
|
55
|
+
const { fieldProps } = useFieldControlRegistration();
|
|
56
|
+
|
|
27
57
|
const open = store.useState('open');
|
|
28
58
|
const rootDisabled = store.useState('disabled');
|
|
29
59
|
const readOnly = store.useState('readOnly');
|
|
@@ -36,14 +66,31 @@ export function SelectTrigger(componentProps: SelectTrigger.Props) {
|
|
|
36
66
|
|
|
37
67
|
const { getButtonProps } = useButton({ disabled });
|
|
38
68
|
|
|
69
|
+
const triggerRef = React.useRef<unknown>(null);
|
|
39
70
|
const anchorRef = React.useCallback(
|
|
40
71
|
(node: unknown) => {
|
|
72
|
+
triggerRef.current = node;
|
|
41
73
|
store.set('triggerNode', node);
|
|
42
74
|
},
|
|
43
75
|
[store],
|
|
44
76
|
);
|
|
45
77
|
const mergedRef = useMergedRefs(ref, anchorRef);
|
|
46
78
|
|
|
79
|
+
// Registering into whichever store is current is what lets a handle resolve
|
|
80
|
+
// `open(id)`. The effect re-runs when the handle swaps stores, migrating the
|
|
81
|
+
// registration to the root that just attached.
|
|
82
|
+
useIsoLayoutEffect(() => {
|
|
83
|
+
if (id === undefined) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
store.context.triggerNodes.add(id, triggerRef.current);
|
|
88
|
+
|
|
89
|
+
return () => {
|
|
90
|
+
store.context.triggerNodes.delete(id);
|
|
91
|
+
};
|
|
92
|
+
}, [store, id]);
|
|
93
|
+
|
|
47
94
|
const state: SelectTriggerState = { disabled, open, pressed, readOnly, required };
|
|
48
95
|
|
|
49
96
|
return useRenderElement(Pressable, componentProps, {
|
|
@@ -51,11 +98,19 @@ export function SelectTrigger(componentProps: SelectTrigger.Props) {
|
|
|
51
98
|
ref: mergedRef,
|
|
52
99
|
props: [
|
|
53
100
|
{
|
|
101
|
+
nativeID: id,
|
|
54
102
|
onPress(event: GestureResponderEvent) {
|
|
55
103
|
if (readOnly) {
|
|
56
104
|
return;
|
|
57
105
|
}
|
|
58
106
|
|
|
107
|
+
if (payload !== undefined) {
|
|
108
|
+
store.set('payload', payload);
|
|
109
|
+
}
|
|
110
|
+
if (id !== undefined) {
|
|
111
|
+
store.set('triggerId', id);
|
|
112
|
+
}
|
|
113
|
+
|
|
59
114
|
store.setOpen(!open, createChangeEventDetails(REASONS.triggerPress, event));
|
|
60
115
|
},
|
|
61
116
|
onPressIn() {
|
|
@@ -65,16 +120,21 @@ export function SelectTrigger(componentProps: SelectTrigger.Props) {
|
|
|
65
120
|
setPressed(false);
|
|
66
121
|
},
|
|
67
122
|
onLayout(event: LayoutChangeEvent) {
|
|
68
|
-
const { width } = event.nativeEvent.layout;
|
|
123
|
+
const { width, height } = event.nativeEvent.layout;
|
|
69
124
|
store.set('triggerWidth', width);
|
|
125
|
+
store.set('triggerHeight', height);
|
|
70
126
|
store.state.update?.();
|
|
71
127
|
},
|
|
72
128
|
accessibilityRole: 'combobox' as const,
|
|
73
|
-
accessibilityLabelledBy: labelId,
|
|
74
129
|
accessibilityState: { expanded: open, disabled: disabled || undefined },
|
|
75
130
|
'aria-haspopup': 'listbox' as const,
|
|
76
131
|
'aria-readonly': readOnly || undefined,
|
|
77
132
|
'aria-required': required || undefined,
|
|
133
|
+
...fieldProps,
|
|
134
|
+
// A surrounding `Field.Label` names the control; `Select.Label` is the
|
|
135
|
+
// fallback for a select that stands on its own.
|
|
136
|
+
accessibilityLabelledBy: fieldProps.accessibilityLabelledBy ?? labelId,
|
|
137
|
+
'aria-labelledby': fieldProps['aria-labelledby'] ?? labelId,
|
|
78
138
|
},
|
|
79
139
|
elementProps,
|
|
80
140
|
getButtonProps,
|
|
@@ -90,16 +150,27 @@ export interface SelectTriggerState {
|
|
|
90
150
|
required: boolean;
|
|
91
151
|
}
|
|
92
152
|
|
|
93
|
-
export interface SelectTriggerProps
|
|
153
|
+
export interface SelectTriggerProps<Payload = unknown>
|
|
94
154
|
extends ZestUIComponentProps<typeof Pressable, SelectTriggerState> {
|
|
95
155
|
/**
|
|
96
156
|
* Whether the component should ignore user interaction.
|
|
97
157
|
* @default false
|
|
98
158
|
*/
|
|
99
159
|
disabled?: boolean | undefined;
|
|
160
|
+
/**
|
|
161
|
+
* A handle shared with a `Select.Root`, which is what lets this trigger live
|
|
162
|
+
* outside of it. Create one with `Select.createHandle()`.
|
|
163
|
+
*
|
|
164
|
+
* The trigger's `nativeID` is the id a handle's `open(triggerId)` resolves.
|
|
165
|
+
*/
|
|
166
|
+
handle?: SelectHandle<Payload> | undefined;
|
|
167
|
+
/**
|
|
168
|
+
* A payload handed to the root's children when they are a function.
|
|
169
|
+
*/
|
|
170
|
+
payload?: Payload | undefined;
|
|
100
171
|
}
|
|
101
172
|
|
|
102
173
|
export namespace SelectTrigger {
|
|
103
174
|
export type State = SelectTriggerState;
|
|
104
|
-
export type Props = SelectTriggerProps
|
|
175
|
+
export type Props<TPayload = unknown> = SelectTriggerProps<TPayload>;
|
|
105
176
|
}
|
|
@@ -5,6 +5,7 @@ import { useControlled } from '../../hooks/useControlled';
|
|
|
5
5
|
import { useIsoLayoutEffect } from '../../hooks/useIsoLayoutEffect';
|
|
6
6
|
import { useStableCallback } from '../../hooks/useStableCallback';
|
|
7
7
|
import { useRenderElement } from '../../use-render/useRenderElement';
|
|
8
|
+
import { useFieldControlRegistration } from '../../internals/field/useFieldControlRegistration';
|
|
8
9
|
import { clamp } from '../../utils/clamp';
|
|
9
10
|
import type { ZestUIComponentProps, Orientation } from '../../types';
|
|
10
11
|
import type { ZestChangeEventDetails } from '../../utils/createChangeEventDetails';
|
|
@@ -24,7 +25,7 @@ export function SliderRoot<Value extends number | readonly number[] = number>(
|
|
|
24
25
|
const {
|
|
25
26
|
className,
|
|
26
27
|
defaultValue,
|
|
27
|
-
disabled = false,
|
|
28
|
+
disabled: disabledProp = false,
|
|
28
29
|
format,
|
|
29
30
|
locale,
|
|
30
31
|
max = 100,
|
|
@@ -41,6 +42,12 @@ export function SliderRoot<Value extends number | readonly number[] = number>(
|
|
|
41
42
|
...elementProps
|
|
42
43
|
} = componentProps;
|
|
43
44
|
|
|
45
|
+
const { fieldDisabled, markChanged, markTouched } = useFieldControlRegistration({
|
|
46
|
+
initialValue: defaultValue ?? value,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const disabled = disabledProp || fieldDisabled;
|
|
50
|
+
|
|
44
51
|
// A range slider is just a slider whose value is an array; remember which
|
|
45
52
|
// shape the consumer used so callbacks hand back the same one.
|
|
46
53
|
const isRange = Array.isArray(value ?? defaultValue);
|
|
@@ -123,6 +130,7 @@ export function SliderRoot<Value extends number | readonly number[] = number>(
|
|
|
123
130
|
|
|
124
131
|
valuesRef.current = nextValues;
|
|
125
132
|
setValuesState(nextValues);
|
|
133
|
+
markChanged(fromArray(nextValues, isRange));
|
|
126
134
|
},
|
|
127
135
|
);
|
|
128
136
|
|
|
@@ -154,6 +162,8 @@ export function SliderRoot<Value extends number | readonly number[] = number>(
|
|
|
154
162
|
|
|
155
163
|
const commitValue = useStableCallback((eventDetails: SliderRoot.ChangeEventDetails) => {
|
|
156
164
|
onValueCommitted?.(fromArray(valuesRef.current, isRange) as Value, eventDetails);
|
|
165
|
+
// Releasing the thumb is the end of the interaction — a slider's blur.
|
|
166
|
+
markTouched(fromArray(valuesRef.current, isRange));
|
|
157
167
|
});
|
|
158
168
|
|
|
159
169
|
const state: SliderRootState = React.useMemo(
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
import { useSliderRootContext } from '../root/SliderRootContext';
|
|
4
4
|
import { useRenderElement } from '../../use-render/useRenderElement';
|
|
5
|
+
import { useFieldControlRegistration } from '../../internals/field/useFieldControlRegistration';
|
|
5
6
|
import { formatNumber } from '../../utils/formatNumber';
|
|
6
7
|
import type { SliderRootState } from '../root/SliderRoot';
|
|
7
8
|
import type { ZestUIComponentProps } from '../../types';
|
|
@@ -20,6 +21,10 @@ export function SliderThumb(componentProps: SliderThumb.Props) {
|
|
|
20
21
|
const { disabled, format, labelId, locale, max, min, orientation, state, values } =
|
|
21
22
|
useSliderRootContext();
|
|
22
23
|
|
|
24
|
+
// The thumb is what assistive tech announces and adjusts, so a surrounding
|
|
25
|
+
// field's label and messages attach here rather than to the root.
|
|
26
|
+
const { fieldProps } = useFieldControlRegistration();
|
|
27
|
+
|
|
23
28
|
const value = values[index] ?? min;
|
|
24
29
|
const percent = max === min ? 0 : ((value - min) / (max - min)) * 100;
|
|
25
30
|
|
|
@@ -37,7 +42,6 @@ export function SliderThumb(componentProps: SliderThumb.Props) {
|
|
|
37
42
|
{
|
|
38
43
|
style: positionStyle,
|
|
39
44
|
accessibilityRole: 'adjustable' as const,
|
|
40
|
-
accessibilityLabelledBy: labelId,
|
|
41
45
|
accessibilityState: { disabled: disabled || undefined },
|
|
42
46
|
accessibilityValue: {
|
|
43
47
|
min,
|
|
@@ -46,6 +50,11 @@ export function SliderThumb(componentProps: SliderThumb.Props) {
|
|
|
46
50
|
text: formatValue(value, format, locale),
|
|
47
51
|
},
|
|
48
52
|
'aria-orientation': orientation,
|
|
53
|
+
...fieldProps,
|
|
54
|
+
// A surrounding `Field.Label` names the control; `Slider.Label` is the
|
|
55
|
+
// fallback for a slider that stands on its own.
|
|
56
|
+
accessibilityLabelledBy: fieldProps.accessibilityLabelledBy ?? labelId,
|
|
57
|
+
'aria-labelledby': fieldProps['aria-labelledby'] ?? labelId,
|
|
49
58
|
},
|
|
50
59
|
elementProps,
|
|
51
60
|
],
|
|
@@ -35,7 +35,9 @@ export function SwitchRoot(componentProps: SwitchRoot.Props) {
|
|
|
35
35
|
...elementProps
|
|
36
36
|
} = componentProps;
|
|
37
37
|
|
|
38
|
-
const { fieldDisabled, fieldProps,
|
|
38
|
+
const { fieldDisabled, fieldProps, markChanged, markTouched } = useFieldControlRegistration({
|
|
39
|
+
initialValue: defaultChecked ?? checkedProp ?? false,
|
|
40
|
+
});
|
|
39
41
|
|
|
40
42
|
const disabled = disabledProp || fieldDisabled;
|
|
41
43
|
|
|
@@ -78,7 +80,8 @@ export function SwitchRoot(componentProps: SwitchRoot.Props) {
|
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
setCheckedState(nextChecked);
|
|
81
|
-
|
|
83
|
+
markChanged(nextChecked);
|
|
84
|
+
markTouched(nextChecked);
|
|
82
85
|
},
|
|
83
86
|
accessibilityRole: 'switch' as const,
|
|
84
87
|
accessibilityState: {
|
package/src/tabs/tab/TabsTab.tsx
CHANGED
|
@@ -7,7 +7,7 @@ import { useButton } from '../../internals/use-button/useButton';
|
|
|
7
7
|
import { useCompositeListItem } from '../../internals/composite/list/useCompositeListItem';
|
|
8
8
|
import type { CompositeItemLayout } from '../../internals/composite/list/CompositeListContext';
|
|
9
9
|
import { useTabsRootContext } from '../root/TabsRootContext';
|
|
10
|
-
import type { TabsRoot } from '../root/TabsRoot';
|
|
10
|
+
import type { TabsRoot, TabsRootState } from '../root/TabsRoot';
|
|
11
11
|
import type { ZestUIComponentProps } from '../../types';
|
|
12
12
|
import { createChangeEventDetails } from '../../utils/createChangeEventDetails';
|
|
13
13
|
import { REASONS } from '../../utils/reasons';
|
|
@@ -106,7 +106,7 @@ export interface TabsTabMetadata {
|
|
|
106
106
|
layout?: CompositeItemLayout | undefined;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
export interface TabsTabState {
|
|
109
|
+
export interface TabsTabState extends TabsRootState {
|
|
110
110
|
/**
|
|
111
111
|
* Whether the component should ignore user interaction.
|
|
112
112
|
*/
|
|
@@ -115,14 +115,6 @@ export interface TabsTabState {
|
|
|
115
115
|
* Whether the component is active.
|
|
116
116
|
*/
|
|
117
117
|
active: boolean;
|
|
118
|
-
/**
|
|
119
|
-
* The component orientation.
|
|
120
|
-
*/
|
|
121
|
-
orientation: TabsRoot.Orientation;
|
|
122
|
-
/**
|
|
123
|
-
* The direction used for tab activation.
|
|
124
|
-
*/
|
|
125
|
-
tabActivationDirection: TabsTab.ActivationDirection;
|
|
126
118
|
/**
|
|
127
119
|
* Whether the tab is currently pressed.
|
|
128
120
|
*/
|
|
@@ -20,8 +20,17 @@ export function TooltipPopup(componentProps: TooltipPopup.Props) {
|
|
|
20
20
|
const { transitionStatus } = useTooltipTransitionContext() ?? { transitionStatus: undefined };
|
|
21
21
|
|
|
22
22
|
const open = store.useState('open');
|
|
23
|
+
const triggerWidth = store.useState('triggerWidth');
|
|
24
|
+
const triggerHeight = store.useState('triggerHeight');
|
|
23
25
|
|
|
24
|
-
const state: TooltipPopupState = {
|
|
26
|
+
const state: TooltipPopupState = {
|
|
27
|
+
open,
|
|
28
|
+
transitionStatus,
|
|
29
|
+
side,
|
|
30
|
+
align,
|
|
31
|
+
triggerWidth,
|
|
32
|
+
triggerHeight,
|
|
33
|
+
};
|
|
25
34
|
|
|
26
35
|
return useRenderElement(View, componentProps, {
|
|
27
36
|
state,
|
|
@@ -57,6 +66,16 @@ export interface TooltipPopupState {
|
|
|
57
66
|
* The alignment the popup was actually placed with.
|
|
58
67
|
*/
|
|
59
68
|
align: Align;
|
|
69
|
+
/**
|
|
70
|
+
* The trigger's measured width, available for consumers to size the popup
|
|
71
|
+
* against its anchor. This is the React Native equivalent of the web's
|
|
72
|
+
* `--anchor-width` CSS variable.
|
|
73
|
+
*/
|
|
74
|
+
triggerWidth: number | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* The trigger's measured height.
|
|
77
|
+
*/
|
|
78
|
+
triggerHeight: number | undefined;
|
|
60
79
|
}
|
|
61
80
|
|
|
62
81
|
export interface TooltipPopupProps extends ZestUIComponentProps<typeof View, TooltipPopupState> {}
|
|
@@ -38,6 +38,8 @@ export function TooltipPositioner(componentProps: TooltipPositioner.Props) {
|
|
|
38
38
|
useTooltipPortalContext();
|
|
39
39
|
const store = useTooltipRootContext();
|
|
40
40
|
const open = store.useState('open');
|
|
41
|
+
const triggerWidth = store.useState('triggerWidth');
|
|
42
|
+
const triggerHeight = store.useState('triggerHeight');
|
|
41
43
|
const triggerNode = store.useState('triggerNode');
|
|
42
44
|
|
|
43
45
|
const positioning = useAnchorPositioning({
|
|
@@ -69,6 +71,8 @@ export function TooltipPositioner(componentProps: TooltipPositioner.Props) {
|
|
|
69
71
|
open,
|
|
70
72
|
side: positioning.side,
|
|
71
73
|
align: positioning.align,
|
|
74
|
+
triggerWidth,
|
|
75
|
+
triggerHeight,
|
|
72
76
|
};
|
|
73
77
|
|
|
74
78
|
const contextValue: TooltipPositionerContext = React.useMemo(
|
|
@@ -101,6 +105,16 @@ export interface TooltipPositionerState {
|
|
|
101
105
|
open: boolean;
|
|
102
106
|
side: Side;
|
|
103
107
|
align: Align;
|
|
108
|
+
/**
|
|
109
|
+
* The trigger's measured width, available for consumers to size the popup
|
|
110
|
+
* against its anchor. This is the React Native equivalent of the web's
|
|
111
|
+
* `--anchor-width` CSS variable.
|
|
112
|
+
*/
|
|
113
|
+
triggerWidth: number | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* The trigger's measured height.
|
|
116
|
+
*/
|
|
117
|
+
triggerHeight: number | undefined;
|
|
104
118
|
}
|
|
105
119
|
|
|
106
120
|
export interface TooltipPositionerProps
|
|
@@ -9,6 +9,15 @@ export type State = {
|
|
|
9
9
|
* The anchor's native node, carried across the portal boundary.
|
|
10
10
|
*/
|
|
11
11
|
triggerNode: unknown;
|
|
12
|
+
/**
|
|
13
|
+
* The trigger's measured width, the React Native counterpart of the web's
|
|
14
|
+
* `--anchor-width` CSS variable.
|
|
15
|
+
*/
|
|
16
|
+
triggerWidth: number | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* The trigger's measured height.
|
|
19
|
+
*/
|
|
20
|
+
triggerHeight: number | undefined;
|
|
12
21
|
update: (() => void) | undefined;
|
|
13
22
|
};
|
|
14
23
|
|
|
@@ -19,13 +28,23 @@ type Context = {
|
|
|
19
28
|
const selectors = {
|
|
20
29
|
open: createSelector((state: State) => state.openProp ?? state.open),
|
|
21
30
|
triggerNode: createSelector((state: State) => state.triggerNode),
|
|
31
|
+
triggerWidth: createSelector((state: State) => state.triggerWidth),
|
|
32
|
+
triggerHeight: createSelector((state: State) => state.triggerHeight),
|
|
22
33
|
update: createSelector((state: State) => state.update),
|
|
23
34
|
};
|
|
24
35
|
|
|
25
36
|
export class TooltipStore extends ReactStore<Readonly<State>, Context, typeof selectors> {
|
|
26
37
|
constructor(initialState?: Partial<State>) {
|
|
27
38
|
super(
|
|
28
|
-
{
|
|
39
|
+
{
|
|
40
|
+
open: false,
|
|
41
|
+
openProp: undefined,
|
|
42
|
+
triggerNode: null,
|
|
43
|
+
triggerWidth: undefined,
|
|
44
|
+
triggerHeight: undefined,
|
|
45
|
+
update: undefined,
|
|
46
|
+
...initialState,
|
|
47
|
+
},
|
|
29
48
|
{ onOpenChange: undefined },
|
|
30
49
|
selectors,
|
|
31
50
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Pressable, type GestureResponderEvent } from 'react-native';
|
|
3
|
+
import { Pressable, type GestureResponderEvent, type LayoutChangeEvent } from 'react-native';
|
|
4
4
|
import { useTooltipRootContext } from '../root/TooltipRootContext';
|
|
5
5
|
import { useRenderElement } from '../../use-render/useRenderElement';
|
|
6
6
|
import { useMergedRefs } from '../../hooks/useMergedRefs';
|
|
@@ -61,7 +61,10 @@ export function TooltipTrigger(componentProps: TooltipTrigger.Props) {
|
|
|
61
61
|
onPressOut() {
|
|
62
62
|
setPressed(false);
|
|
63
63
|
},
|
|
64
|
-
onLayout() {
|
|
64
|
+
onLayout(event: LayoutChangeEvent) {
|
|
65
|
+
const { width, height } = event.nativeEvent.layout;
|
|
66
|
+
store.set('triggerWidth', width);
|
|
67
|
+
store.set('triggerHeight', height);
|
|
65
68
|
store.state.update?.();
|
|
66
69
|
},
|
|
67
70
|
accessibilityState: { expanded: open, disabled: disabled || undefined },
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { ZestNativeEvent } from '../../utils/createChangeEventDetails';
|
|
2
|
-
import { ComboboxRootContext, type ComboboxItem } from './ComboboxRootContext';
|
|
3
|
-
export type ComboboxItems = ReadonlyArray<string | {
|
|
4
|
-
value: unknown;
|
|
5
|
-
label: string;
|
|
6
|
-
}>;
|
|
7
|
-
export interface UseComboboxRootParameters {
|
|
8
|
-
mode: 'combobox' | 'autocomplete';
|
|
9
|
-
items: ComboboxItems | undefined;
|
|
10
|
-
value?: unknown;
|
|
11
|
-
defaultValue?: unknown;
|
|
12
|
-
onValueChange?: ((value: unknown) => void) | undefined;
|
|
13
|
-
inputValue?: string | undefined;
|
|
14
|
-
defaultInputValue?: string | undefined;
|
|
15
|
-
onInputValueChange?: ((value: string) => void) | undefined;
|
|
16
|
-
open?: boolean | undefined;
|
|
17
|
-
defaultOpen?: boolean | undefined;
|
|
18
|
-
onOpenChange?: ((open: boolean, event?: ZestNativeEvent) => void) | undefined;
|
|
19
|
-
openOnFocus?: boolean | undefined;
|
|
20
|
-
filter?: ((item: ComboboxItem, query: string) => boolean) | undefined;
|
|
21
|
-
disabled: boolean;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* The state behind `Combobox.Root` and `Autocomplete.Root`: the resolved item
|
|
25
|
-
* list, the filtered view of it, the input text, the selection, and the open
|
|
26
|
-
* state — plus the anchor plumbing the popup needs.
|
|
27
|
-
*/
|
|
28
|
-
export declare function useComboboxRoot(parameters: UseComboboxRootParameters): ComboboxRootContext;
|
|
29
|
-
//# sourceMappingURL=useComboboxRoot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useComboboxRoot.d.ts","sourceRoot":"","sources":["../../../src/combobox/root/useComboboxRoot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAYtF,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC;IAClC,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kBAAkB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9E,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACtE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,yBAAyB,GAAG,mBAAmB,CAwJ1F"}
|
|
@@ -1,176 +0,0 @@
|
|
|
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.useComboboxRoot = useComboboxRoot;
|
|
38
|
-
const React = __importStar(require("react"));
|
|
39
|
-
const useControlled_1 = require("../../hooks/useControlled");
|
|
40
|
-
const useIsoLayoutEffect_1 = require("../../hooks/useIsoLayoutEffect");
|
|
41
|
-
const useStableCallback_1 = require("../../hooks/useStableCallback");
|
|
42
|
-
/** Normalizes the `items` prop into `{ value, label }` records. */
|
|
43
|
-
function normalizeItems(items) {
|
|
44
|
-
if (!items) {
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
return items.map((item) => typeof item === 'string' ? { value: item, label: item } : { value: item.value, label: item.label });
|
|
48
|
-
}
|
|
49
|
-
const defaultFilter = (item, query) => item.label.toLowerCase().includes(query.toLowerCase());
|
|
50
|
-
/**
|
|
51
|
-
* The state behind `Combobox.Root` and `Autocomplete.Root`: the resolved item
|
|
52
|
-
* list, the filtered view of it, the input text, the selection, and the open
|
|
53
|
-
* state — plus the anchor plumbing the popup needs.
|
|
54
|
-
*/
|
|
55
|
-
function useComboboxRoot(parameters) {
|
|
56
|
-
var _a, _b, _c, _d;
|
|
57
|
-
const { mode, items, value: valueProp, defaultValue, onValueChange, inputValue: inputValueProp, defaultInputValue, onInputValueChange, open: openProp, defaultOpen = false, onOpenChange, openOnFocus = true, filter = defaultFilter, disabled, } = parameters;
|
|
58
|
-
const normalized = React.useMemo(() => normalizeItems(items), [items]);
|
|
59
|
-
const [open, setOpenState] = (0, useControlled_1.useControlled)({
|
|
60
|
-
controlled: openProp,
|
|
61
|
-
default: defaultOpen,
|
|
62
|
-
name: 'Combobox',
|
|
63
|
-
state: 'open',
|
|
64
|
-
});
|
|
65
|
-
const [selectedValue, setSelectedValue] = (0, useControlled_1.useControlled)({
|
|
66
|
-
controlled: valueProp,
|
|
67
|
-
default: defaultValue !== null && defaultValue !== void 0 ? defaultValue : null,
|
|
68
|
-
name: 'Combobox',
|
|
69
|
-
state: 'value',
|
|
70
|
-
});
|
|
71
|
-
// The initial input text is only read on the first render; compute it once so
|
|
72
|
-
// it stays stable, or `useControlled` warns when a later selection changes the
|
|
73
|
-
// controlled `value` (and with it the derived label).
|
|
74
|
-
const initialInputRef = React.useRef(undefined);
|
|
75
|
-
if (initialInputRef.current === undefined) {
|
|
76
|
-
initialInputRef.current =
|
|
77
|
-
defaultInputValue !== null && defaultInputValue !== void 0 ? defaultInputValue : (mode === 'combobox'
|
|
78
|
-
? ((_b = (_a = normalized.find((item) => item.value === (valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue))) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : '')
|
|
79
|
-
: '');
|
|
80
|
-
}
|
|
81
|
-
const [inputValue, setInputValueState] = (0, useControlled_1.useControlled)({
|
|
82
|
-
controlled: inputValueProp,
|
|
83
|
-
default: initialInputRef.current,
|
|
84
|
-
name: 'Combobox',
|
|
85
|
-
state: 'inputValue',
|
|
86
|
-
});
|
|
87
|
-
const [triggerNode, setTriggerNode] = React.useState(null);
|
|
88
|
-
const [update, setUpdate] = React.useState(undefined);
|
|
89
|
-
const [inputRef, setInputRef] = React.useState(undefined);
|
|
90
|
-
const [triggerWidth, setTriggerWidth] = React.useState(undefined);
|
|
91
|
-
const setOpen = (0, useStableCallback_1.useStableCallback)((nextOpen, event) => {
|
|
92
|
-
if (nextOpen === open) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen, event);
|
|
96
|
-
setOpenState(nextOpen);
|
|
97
|
-
});
|
|
98
|
-
const setInputValue = (0, useStableCallback_1.useStableCallback)((next) => {
|
|
99
|
-
onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(next);
|
|
100
|
-
setInputValueState(next);
|
|
101
|
-
// Typing reopens the list so suggestions follow the query.
|
|
102
|
-
if (!open && next.length > 0) {
|
|
103
|
-
setOpen(true);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
const selectItem = (0, useStableCallback_1.useStableCallback)((item, event) => {
|
|
107
|
-
if (mode === 'combobox') {
|
|
108
|
-
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(item.value);
|
|
109
|
-
setSelectedValue(item.value);
|
|
110
|
-
}
|
|
111
|
-
onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(item.label);
|
|
112
|
-
setInputValueState(item.label);
|
|
113
|
-
setOpen(false, event);
|
|
114
|
-
});
|
|
115
|
-
// The label of the currently selected value (combobox mode only).
|
|
116
|
-
const selectedLabel = mode === 'combobox'
|
|
117
|
-
? ((_d = (_c = normalized.find((item) => item.value === selectedValue)) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : '')
|
|
118
|
-
: '';
|
|
119
|
-
// Reflect a controlled `value` that changed from outside into the input text.
|
|
120
|
-
// `selectItem` already sets both, so the ref guard makes that a no-op and stops
|
|
121
|
-
// this from fighting the user's typing (typing never changes `selectedValue`).
|
|
122
|
-
const lastReflectedValueRef = React.useRef(selectedValue);
|
|
123
|
-
(0, useIsoLayoutEffect_1.useIsoLayoutEffect)(() => {
|
|
124
|
-
if (mode !== 'combobox' || selectedValue === lastReflectedValueRef.current) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
lastReflectedValueRef.current = selectedValue;
|
|
128
|
-
setInputValueState(selectedLabel);
|
|
129
|
-
}, [mode, selectedValue, selectedLabel, setInputValueState]);
|
|
130
|
-
const filteredItems = React.useMemo(() => {
|
|
131
|
-
// When the input still shows the current selection, the user has not started
|
|
132
|
-
// filtering — show every item so a fresh focus reveals the whole list rather
|
|
133
|
-
// than the single selected row.
|
|
134
|
-
const query = mode === 'combobox' && inputValue === selectedLabel ? '' : inputValue.trim();
|
|
135
|
-
if (query.length === 0) {
|
|
136
|
-
return normalized;
|
|
137
|
-
}
|
|
138
|
-
return normalized.filter((item) => filter(item, query));
|
|
139
|
-
}, [normalized, inputValue, selectedLabel, mode, filter]);
|
|
140
|
-
return React.useMemo(() => ({
|
|
141
|
-
mode,
|
|
142
|
-
open,
|
|
143
|
-
setOpen,
|
|
144
|
-
inputValue,
|
|
145
|
-
setInputValue,
|
|
146
|
-
selectedValue,
|
|
147
|
-
selectItem,
|
|
148
|
-
filteredItems,
|
|
149
|
-
disabled,
|
|
150
|
-
openOnFocus,
|
|
151
|
-
triggerNode,
|
|
152
|
-
setTriggerNode,
|
|
153
|
-
update,
|
|
154
|
-
setUpdate,
|
|
155
|
-
inputRef,
|
|
156
|
-
setInputRef,
|
|
157
|
-
triggerWidth,
|
|
158
|
-
setTriggerWidth,
|
|
159
|
-
}), [
|
|
160
|
-
mode,
|
|
161
|
-
open,
|
|
162
|
-
setOpen,
|
|
163
|
-
inputValue,
|
|
164
|
-
setInputValue,
|
|
165
|
-
selectedValue,
|
|
166
|
-
selectItem,
|
|
167
|
-
filteredItems,
|
|
168
|
-
disabled,
|
|
169
|
-
openOnFocus,
|
|
170
|
-
triggerNode,
|
|
171
|
-
update,
|
|
172
|
-
inputRef,
|
|
173
|
-
triggerWidth,
|
|
174
|
-
]);
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=useComboboxRoot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useComboboxRoot.js","sourceRoot":"","sources":["../../../src/combobox/root/useComboboxRoot.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8Cb,0CAwJC;AArMD,6CAA+B;AAE/B,6DAA0D;AAC1D,uEAAoE;AACpE,qEAAkE;AAMlE,mEAAmE;AACnE,SAAS,cAAc,CAAC,KAAgC;IACtD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CACnG,CAAC;AACJ,CAAC;AAmBD,MAAM,aAAa,GAAG,CAAC,IAAkB,EAAE,KAAa,EAAE,EAAE,CAC1D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAEzD;;;;GAIG;AACH,SAAgB,eAAe,CAAC,UAAqC;;IACnE,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,aAAa,EACb,UAAU,EAAE,cAAc,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,EAAE,QAAQ,EACd,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,WAAW,GAAG,IAAI,EAClB,MAAM,GAAG,aAAa,EACtB,QAAQ,GACT,GAAG,UAAU,CAAC;IAEf,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,IAAA,6BAAa,EAAU;QAClD,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,6BAAa,EAAU;QAC/D,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI;QAC7B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IAEH,8EAA8E;IAC9E,+EAA+E;IAC/E,sDAAsD;IACtD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IACpE,IAAI,eAAe,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1C,eAAe,CAAC,OAAO;YACrB,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GACjB,CAAC,IAAI,KAAK,UAAU;gBAClB,CAAC,CAAC,CAAC,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,YAAY,CAAC,CAAC,0CAAE,KAAK,mCAAI,EAAE,CAAC;gBACtF,CAAC,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,IAAA,6BAAa,EAAS;QAC7D,UAAU,EAAE,cAAc;QAC1B,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA2B,SAAS,CAAC,CAAC;IAChF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgD,SAAS,CAAC,CAAC;IACzG,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAEtF,MAAM,OAAO,GAAG,IAAA,qCAAiB,EAAC,CAAC,QAAiB,EAAE,KAAuB,EAAE,EAAE;QAC/E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAA,qCAAiB,EAAC,CAAC,IAAY,EAAE,EAAE;QACvD,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,IAAI,CAAC,CAAC;QAC3B,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,2DAA2D;QAC3D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,qCAAiB,EAAC,CAAC,IAAkB,EAAE,KAAuB,EAAE,EAAE;QACnF,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,kEAAkE;IAClE,MAAM,aAAa,GACjB,IAAI,KAAK,UAAU;QACjB,CAAC,CAAC,CAAC,MAAA,MAAA,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,0CAAE,KAAK,mCAAI,EAAE,CAAC;QACxE,CAAC,CAAC,EAAE,CAAC;IAET,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAA,uCAAkB,EAAC,GAAG,EAAE;QACtB,IAAI,IAAI,KAAK,UAAU,IAAI,aAAa,KAAK,qBAAqB,CAAC,OAAO,EAAE,CAAC;YAC3E,OAAO;QACT,CAAC;QACD,qBAAqB,CAAC,OAAO,GAAG,aAAa,CAAC;QAC9C,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE7D,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,6EAA6E;QAC7E,6EAA6E;QAC7E,gCAAgC;QAChC,MAAM,KAAK,GAAG,IAAI,KAAK,UAAU,IAAI,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1D,OAAO,KAAK,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,CAAC;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,UAAU;QACV,aAAa;QACb,aAAa;QACb,UAAU;QACV,aAAa;QACb,QAAQ;QACR,WAAW;QACX,WAAW;QACX,cAAc;QACd,MAAM;QACN,SAAS;QACT,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,eAAe;KAChB,CAAC,EACF;QACE,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,UAAU;QACV,aAAa;QACb,aAAa;QACb,UAAU;QACV,aAAa;QACb,QAAQ;QACR,WAAW;QACX,WAAW;QACX,MAAM;QACN,QAAQ;QACR,YAAY;KACb,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fastObjectShallowCompare.d.ts","sourceRoot":"","sources":["../../src/utils/fastObjectShallowCompare.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WA2BxF"}
|