@blakesteve/roster 4.12.1 → 5.0.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 +17 -9
- package/dist/_virtual/use-sync-external-store-with-selector.development.cjs +1 -0
- package/dist/_virtual/use-sync-external-store-with-selector.development.js +4 -0
- package/dist/_virtual/use-sync-external-store-with-selector.production.cjs +1 -0
- package/dist/_virtual/use-sync-external-store-with-selector.production.js +4 -0
- package/dist/_virtual/with-selector.cjs +1 -0
- package/dist/_virtual/with-selector.js +5 -0
- package/dist/_virtual/with-selector2.cjs +1 -0
- package/dist/_virtual/with-selector2.js +4 -0
- package/dist/components/atoms/Avatar/Avatar.cjs +1 -0
- package/dist/components/atoms/Avatar/Avatar.js +63 -0
- package/dist/components/atoms/Avatar/avatar-variants.cjs +1 -0
- package/dist/components/atoms/Avatar/avatar-variants.js +37 -0
- package/dist/components/atoms/AvatarStrip/AvatarStrip.cjs +1 -0
- package/dist/components/atoms/AvatarStrip/AvatarStrip.js +100 -0
- package/dist/components/atoms/Badge/Badge.cjs +1 -0
- package/dist/components/atoms/Badge/Badge.js +37 -0
- package/dist/components/atoms/Badge/badge-variants.cjs +1 -0
- package/dist/components/atoms/Badge/badge-variants.js +84 -0
- package/dist/components/atoms/Button/Button.cjs +1 -0
- package/dist/components/atoms/Button/Button.js +50 -0
- package/dist/components/atoms/Button/button-variants.cjs +1 -0
- package/dist/components/atoms/Button/button-variants.d.ts +15 -0
- package/dist/components/atoms/Button/button-variants.js +94 -0
- package/dist/components/atoms/Card/Card.cjs +1 -0
- package/dist/components/atoms/Card/Card.js +51 -0
- package/dist/components/atoms/Card/card-variants.cjs +1 -0
- package/dist/components/atoms/Card/card-variants.js +43 -0
- package/dist/components/atoms/Checkbox/Checkbox.cjs +1 -0
- package/dist/components/atoms/Checkbox/Checkbox.js +63 -0
- package/dist/components/atoms/Checkbox/checkbox-variants.cjs +1 -0
- package/dist/components/atoms/Checkbox/checkbox-variants.js +66 -0
- package/dist/components/atoms/Chip/Chip.cjs +1 -0
- package/dist/components/atoms/Chip/Chip.js +119 -0
- package/dist/components/atoms/Chip/chip-variants.cjs +1 -0
- package/dist/components/atoms/Chip/chip-variants.js +85 -0
- package/dist/components/atoms/CollapsibleSection/CollapsibleSection.cjs +1 -0
- package/dist/components/atoms/CollapsibleSection/CollapsibleSection.js +54 -0
- package/dist/components/atoms/Combobox/Combobox.cjs +1 -0
- package/dist/components/atoms/Combobox/Combobox.js +150 -0
- package/dist/components/atoms/Disclosure/Disclosure.cjs +1 -0
- package/dist/components/atoms/Disclosure/Disclosure.js +82 -0
- package/dist/components/atoms/Disclosure/disclosure-variants.cjs +1 -0
- package/dist/components/atoms/Disclosure/disclosure-variants.js +38 -0
- package/dist/components/atoms/Eyebrow/Eyebrow.cjs +1 -0
- package/dist/components/atoms/Eyebrow/Eyebrow.js +27 -0
- package/dist/components/atoms/Eyebrow/eyebrow-variants.cjs +1 -0
- package/dist/components/atoms/Eyebrow/eyebrow-variants.js +28 -0
- package/dist/components/atoms/InlineCode/InlineCode.cjs +1 -0
- package/dist/components/atoms/InlineCode/InlineCode.js +20 -0
- package/dist/components/atoms/InlineCode/inline-code-variants.cjs +1 -0
- package/dist/components/atoms/InlineCode/inline-code-variants.js +18 -0
- package/dist/components/atoms/Input/Input.cjs +1 -0
- package/dist/components/atoms/Input/Input.js +109 -0
- package/dist/components/atoms/Input/input-variants.cjs +1 -0
- package/dist/components/atoms/Input/input-variants.js +89 -0
- package/dist/components/atoms/LabeledDivider/LabeledDivider.cjs +1 -0
- package/dist/components/atoms/LabeledDivider/LabeledDivider.js +17 -0
- package/dist/components/atoms/Link/Link.cjs +1 -0
- package/dist/components/atoms/Link/Link.js +66 -0
- package/dist/components/atoms/Link/link-variants.cjs +1 -0
- package/dist/components/atoms/Link/link-variants.js +32 -0
- package/dist/components/atoms/LiquidTabs/LiquidTabs.cjs +1 -0
- package/dist/components/atoms/LiquidTabs/LiquidTabs.js +120 -0
- package/dist/components/atoms/MultiSelect/MultiSelect.cjs +1 -0
- package/dist/components/atoms/MultiSelect/MultiSelect.js +231 -0
- package/dist/components/atoms/PasswordInput/PasswordInput.cjs +1 -0
- package/dist/components/atoms/PasswordInput/PasswordInput.js +69 -0
- package/dist/components/atoms/Pill/Pill.cjs +1 -0
- package/dist/components/atoms/Pill/Pill.js +48 -0
- package/dist/components/atoms/Pill/pill-variants.cjs +1 -0
- package/dist/components/atoms/Pill/pill-variants.js +82 -0
- package/dist/components/atoms/SegmentBar/SegmentBar.cjs +1 -0
- package/dist/components/atoms/SegmentBar/SegmentBar.js +73 -0
- package/dist/components/atoms/Select/Select.cjs +1 -0
- package/dist/components/atoms/Select/Select.js +152 -0
- package/dist/components/atoms/Select/select-variants.cjs +1 -0
- package/dist/components/atoms/Select/select-variants.js +94 -0
- package/dist/components/atoms/Spinner/Spinner.cjs +1 -0
- package/dist/components/atoms/Spinner/Spinner.js +50 -0
- package/dist/components/atoms/Stat/Stat.cjs +1 -0
- package/dist/components/atoms/Stat/Stat.js +17 -0
- package/dist/components/atoms/Stat/stat-variants.cjs +1 -0
- package/dist/components/atoms/Stat/stat-variants.js +25 -0
- package/dist/components/atoms/Switch/Switch.cjs +1 -0
- package/dist/components/atoms/Switch/Switch.js +73 -0
- package/dist/components/atoms/Switch/switch-variants.cjs +1 -0
- package/dist/components/atoms/Switch/switch-variants.js +43 -0
- package/dist/components/atoms/Textarea/Textarea.cjs +1 -0
- package/dist/components/atoms/Textarea/Textarea.js +66 -0
- package/dist/components/atoms/Textarea/textarea-variants.cjs +1 -0
- package/dist/components/atoms/Textarea/textarea-variants.js +60 -0
- package/dist/components/atoms/ThemeToggle/ThemeToggle.cjs +1 -0
- package/dist/components/atoms/ThemeToggle/ThemeToggle.js +76 -0
- package/dist/components/atoms/Tooltip/Tooltip.cjs +1 -0
- package/dist/components/atoms/Tooltip/Tooltip.js +60 -0
- package/dist/components/molecules/Accordion/Accordion.cjs +1 -0
- package/dist/components/molecules/Accordion/Accordion.js +38 -0
- package/dist/components/molecules/Alert/Alert.cjs +1 -0
- package/dist/components/molecules/Alert/Alert.js +68 -0
- package/dist/components/molecules/Alert/alert-variants.cjs +1 -0
- package/dist/components/molecules/Alert/alert-variants.js +80 -0
- package/dist/components/molecules/Breadcrumbs/Breadcrumbs.cjs +1 -0
- package/dist/components/molecules/Breadcrumbs/Breadcrumbs.js +89 -0
- package/dist/components/molecules/Breadcrumbs/breadcrumb-variants.cjs +1 -0
- package/dist/components/molecules/Breadcrumbs/breadcrumb-variants.js +19 -0
- package/dist/components/molecules/CallToAction/CallToAction.cjs +1 -0
- package/dist/components/molecules/CallToAction/CallToAction.js +41 -0
- package/dist/components/molecules/CallToAction/call-to-action-variants.cjs +1 -0
- package/dist/components/molecules/CallToAction/call-to-action-variants.js +72 -0
- package/dist/components/molecules/CheckboxGroup/CheckboxGroup.cjs +1 -0
- package/dist/components/molecules/CheckboxGroup/CheckboxGroup.js +146 -0
- package/dist/components/molecules/CheckboxGroup/checkbox-group-variants.cjs +1 -0
- package/dist/components/molecules/CheckboxGroup/checkbox-group-variants.js +72 -0
- package/dist/components/molecules/DescriptionList/DescriptionList.cjs +1 -0
- package/dist/components/molecules/DescriptionList/DescriptionList.js +32 -0
- package/dist/components/molecules/DescriptionList/description-list-variants.cjs +1 -0
- package/dist/components/molecules/DescriptionList/description-list-variants.js +21 -0
- package/dist/components/molecules/EmptyState/EmptyState.cjs +1 -0
- package/dist/components/molecules/EmptyState/EmptyState.js +22 -0
- package/dist/components/molecules/EmptyState/empty-state-variants.cjs +1 -0
- package/dist/components/molecules/EmptyState/empty-state-variants.js +18 -0
- package/dist/components/molecules/ErrorState/ErrorState.cjs +1 -0
- package/dist/components/molecules/ErrorState/ErrorState.js +49 -0
- package/dist/components/molecules/ErrorState/error-state-variants.cjs +1 -0
- package/dist/components/molecules/ErrorState/error-state-variants.js +18 -0
- package/dist/components/molecules/MatchupCard/MatchupCard.cjs +1 -0
- package/dist/components/molecules/MatchupCard/MatchupCard.js +102 -0
- package/dist/components/molecules/Pullquote/Pullquote.cjs +1 -0
- package/dist/components/molecules/Pullquote/Pullquote.js +30 -0
- package/dist/components/molecules/Pullquote/pullquote-variants.cjs +1 -0
- package/dist/components/molecules/Pullquote/pullquote-variants.js +32 -0
- package/dist/components/molecules/RadioGroup/RadioGroup.cjs +1 -0
- package/dist/components/molecules/RadioGroup/RadioGroup.js +166 -0
- package/dist/components/molecules/RadioGroup/radio-group-variants.cjs +1 -0
- package/dist/components/molecules/RadioGroup/radio-group-variants.js +94 -0
- package/dist/components/molecules/Toast/Toast.cjs +1 -0
- package/dist/components/molecules/Toast/Toast.js +64 -0
- package/dist/components/molecules/Toast/Toaster.cjs +1 -0
- package/dist/components/molecules/Toast/Toaster.js +70 -0
- package/dist/components/molecules/Toast/toast-api.cjs +1 -0
- package/dist/components/molecules/Toast/toast-api.js +27 -0
- package/dist/components/molecules/Toast/toast-variants.cjs +1 -0
- package/dist/components/molecules/Toast/toast-variants.js +83 -0
- package/dist/components/organisms/ActionBar/ActionBar.cjs +1 -0
- package/dist/components/organisms/ActionBar/ActionBar.js +40 -0
- package/dist/components/organisms/ActionBar/action-bar-variants.cjs +1 -0
- package/dist/components/organisms/ActionBar/action-bar-variants.js +26 -0
- package/dist/components/organisms/Countdown/Countdown.cjs +1 -0
- package/dist/components/organisms/Countdown/Countdown.js +98 -0
- package/dist/components/organisms/Countdown/countdown-variants.cjs +1 -0
- package/dist/components/organisms/Countdown/countdown-variants.js +65 -0
- package/dist/components/organisms/DataTable/DataTable.cjs +1 -0
- package/dist/components/organisms/DataTable/DataTable.js +160 -0
- package/dist/components/organisms/Dialog/Dialog.cjs +1 -0
- package/dist/components/organisms/Dialog/Dialog.js +152 -0
- package/dist/components/organisms/Footer/Footer.cjs +1 -0
- package/dist/components/organisms/Footer/Footer.js +41 -0
- package/dist/components/organisms/Footer/footer-variants.cjs +1 -0
- package/dist/components/organisms/Footer/footer-variants.js +25 -0
- package/dist/components/organisms/Navbar/Navbar.cjs +1 -0
- package/dist/components/organisms/Navbar/Navbar.js +539 -0
- package/dist/components/organisms/Navbar/navbar-variants.cjs +1 -0
- package/dist/components/organisms/Navbar/navbar-variants.js +35 -0
- package/dist/components/organisms/Table/Table.cjs +1 -0
- package/dist/components/organisms/Table/Table.js +118 -0
- package/dist/components/organisms/Table/table-variants.cjs +1 -0
- package/dist/components/organisms/Table/table-variants.js +117 -0
- package/dist/data-table.cjs +1 -0
- package/dist/data-table.js +4 -0
- package/dist/hooks/useCountdown.cjs +1 -0
- package/dist/hooks/useCountdown.js +33 -0
- package/dist/hooks/useKeySequence.cjs +1 -0
- package/dist/hooks/useKeySequence.js +55 -0
- package/dist/internal/PopupOption.cjs +1 -0
- package/dist/internal/PopupOption.js +39 -0
- package/dist/internal/popup.cjs +1 -0
- package/dist/internal/popup.js +29 -0
- package/dist/lib/utils.cjs +1 -0
- package/dist/lib/utils.js +27 -0
- package/dist/meta.json +1 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs +1 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +532 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs +1 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +403 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.cjs +1 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js +368 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.cjs +1 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +13 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs +1 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +209 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +136 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +130 -0
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.cjs +558 -0
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.js +3101 -0
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.cjs +1 -0
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.js +120 -0
- package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.cjs +1 -0
- package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js +261 -0
- package/dist/node_modules/@headlessui/react/dist/components/button/button.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/button/button.js +16 -0
- package/dist/node_modules/@headlessui/react/dist/components/checkbox/checkbox.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/checkbox/checkbox.js +38 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox-machine-glue.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox-machine-glue.js +21 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox-machine.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox-machine.js +165 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js +287 -0
- package/dist/node_modules/@headlessui/react/dist/components/description/description.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/description/description.js +44 -0
- package/dist/node_modules/@headlessui/react/dist/components/dialog/dialog.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/dialog/dialog.js +109 -0
- package/dist/node_modules/@headlessui/react/dist/components/field/field.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/field/field.js +17 -0
- package/dist/node_modules/@headlessui/react/dist/components/fieldset/fieldset.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/fieldset/fieldset.js +17 -0
- package/dist/node_modules/@headlessui/react/dist/components/focus-trap/focus-trap.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/focus-trap/focus-trap.js +132 -0
- package/dist/node_modules/@headlessui/react/dist/components/input/input.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/input/input.js +18 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/components/label/label.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/label/label.js +61 -0
- package/dist/node_modules/@headlessui/react/dist/components/legend/legend.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/legend/legend.js +10 -0
- package/dist/node_modules/@headlessui/react/dist/components/listbox/listbox-machine-glue.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/listbox/listbox-machine-glue.js +21 -0
- package/dist/node_modules/@headlessui/react/dist/components/listbox/listbox-machine.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/listbox/listbox-machine.js +171 -0
- package/dist/node_modules/@headlessui/react/dist/components/listbox/listbox.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/listbox/listbox.js +205 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js +21 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js +120 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js +197 -0
- package/dist/node_modules/@headlessui/react/dist/components/mouse.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/mouse.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/components/popover/popover-machine-glue.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/popover/popover-machine-glue.js +21 -0
- package/dist/node_modules/@headlessui/react/dist/components/popover/popover-machine.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/popover/popover-machine.js +49 -0
- package/dist/node_modules/@headlessui/react/dist/components/popover/popover.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/popover/popover.js +234 -0
- package/dist/node_modules/@headlessui/react/dist/components/portal/portal.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js +63 -0
- package/dist/node_modules/@headlessui/react/dist/components/radio-group/radio-group.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/radio-group/radio-group.js +126 -0
- package/dist/node_modules/@headlessui/react/dist/components/switch/switch.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/switch/switch.js +55 -0
- package/dist/node_modules/@headlessui/react/dist/components/textarea/textarea.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/textarea/textarea.js +18 -0
- package/dist/node_modules/@headlessui/react/dist/components/transition/transition.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js +135 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js +14 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js +52 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js +38 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js +33 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-by-comparator.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-by-comparator.js +16 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js +10 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-default-value.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-default-value.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +9 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +15 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js +26 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-escape.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-escape.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event-listener.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event-listener.js +15 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +9 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js +15 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js +41 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js +13 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-touch-device.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-touch-device.js +16 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js +28 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js +14 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +38 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js +32 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.js +24 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolved-tag.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-root-containers.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-root-containers.js +38 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +16 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-store.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-store.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +20 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tab-direction.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tab-direction.js +13 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js +17 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js +16 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.cjs +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +73 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +18 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js +15 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +15 -0
- package/dist/node_modules/@headlessui/react/dist/internal/close-provider.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/close-provider.js +9 -0
- package/dist/node_modules/@headlessui/react/dist/internal/disabled.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/disabled.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/internal/floating.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/floating.js +154 -0
- package/dist/node_modules/@headlessui/react/dist/internal/form-fields.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/form-fields.js +40 -0
- package/dist/node_modules/@headlessui/react/dist/internal/frozen.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/frozen.js +14 -0
- package/dist/node_modules/@headlessui/react/dist/internal/hidden.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/hidden.js +13 -0
- package/dist/node_modules/@headlessui/react/dist/internal/id.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/id.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js +19 -0
- package/dist/node_modules/@headlessui/react/dist/internal/portal-force-root.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/portal-force-root.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/machine.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/machine.js +74 -0
- package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js +33 -0
- package/dist/node_modules/@headlessui/react/dist/react-glue.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/react-glue.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js +15 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js +19 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js +40 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/utils/default-map.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/default-map.js +12 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +40 -0
- package/dist/node_modules/@headlessui/react/dist/utils/document-ready.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js +9 -0
- package/dist/node_modules/@headlessui/react/dist/utils/dom.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/dom.js +46 -0
- package/dist/node_modules/@headlessui/react/dist/utils/element-movement.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js +21 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.js +34 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +97 -0
- package/dist/node_modules/@headlessui/react/dist/utils/form.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/form.js +32 -0
- package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js +31 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js +22 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.js +14 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.cjs +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.js +126 -0
- package/dist/node_modules/@headlessui/react/dist/utils/store.cjs +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/store.js +14 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js +9 -0
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +24 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +29 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js +53 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +127 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js +13 -0
- package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-popper/dist/index.js +219 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js +15 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js +70 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +36 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +55 -0
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js +338 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +10 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +52 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +14 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +6 -0
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +27 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +1 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +32 -0
- package/dist/node_modules/@react-aria/focus/dist/useFocusRing.cjs +1 -0
- package/dist/node_modules/@react-aria/focus/dist/useFocusRing.js +38 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.cjs +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.js +30 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.js +97 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.js +57 -0
- package/dist/node_modules/@react-aria/interactions/dist/useHover.cjs +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useHover.js +86 -0
- package/dist/node_modules/@react-aria/interactions/dist/utils.cjs +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/utils.js +66 -0
- package/dist/node_modules/@react-aria/utils/dist/DOMFunctions.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/DOMFunctions.js +27 -0
- package/dist/node_modules/@react-aria/utils/dist/domHelpers.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/domHelpers.js +15 -0
- package/dist/node_modules/@react-aria/utils/dist/focusWithoutScrolling.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/focusWithoutScrolling.js +45 -0
- package/dist/node_modules/@react-aria/utils/dist/isVirtualEvent.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/isVirtualEvent.js +7 -0
- package/dist/node_modules/@react-aria/utils/dist/openLink.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/openLink.js +28 -0
- package/dist/node_modules/@react-aria/utils/dist/platform.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/platform.js +47 -0
- package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.js +34 -0
- package/dist/node_modules/@react-aria/utils/dist/useLayoutEffect.cjs +1 -0
- package/dist/node_modules/@react-aria/utils/dist/useLayoutEffect.js +6 -0
- package/dist/node_modules/@react-stately/flags/dist/import.cjs +1 -0
- package/dist/node_modules/@react-stately/flags/dist/import.js +7 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.cjs +1 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js +38 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.cjs +1 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js +533 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.cjs +4 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js +52 -0
- package/dist/node_modules/class-variance-authority/dist/index.cjs +1 -0
- package/dist/node_modules/class-variance-authority/dist/index.js +35 -0
- package/dist/node_modules/clsx/dist/clsx.cjs +1 -0
- package/dist/node_modules/clsx/dist/clsx.js +16 -0
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.cjs +1 -0
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +9 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.cjs +1 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +18 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.cjs +1 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.js +11 -0
- package/dist/node_modules/date-fns/_lib/normalizeInterval.cjs +1 -0
- package/dist/node_modules/date-fns/_lib/normalizeInterval.js +8 -0
- package/dist/node_modules/date-fns/add.cjs +1 -0
- package/dist/node_modules/date-fns/add.js +19 -0
- package/dist/node_modules/date-fns/addDays.cjs +1 -0
- package/dist/node_modules/date-fns/addDays.js +9 -0
- package/dist/node_modules/date-fns/addMonths.cjs +1 -0
- package/dist/node_modules/date-fns/addMonths.js +19 -0
- package/dist/node_modules/date-fns/compareAsc.cjs +1 -0
- package/dist/node_modules/date-fns/compareAsc.js +8 -0
- package/dist/node_modules/date-fns/constants.cjs +1 -0
- package/dist/node_modules/date-fns/constants.js +7 -0
- package/dist/node_modules/date-fns/constructFrom.cjs +1 -0
- package/dist/node_modules/date-fns/constructFrom.js +7 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +15 -0
- package/dist/node_modules/date-fns/differenceInCalendarMonths.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInCalendarMonths.js +12 -0
- package/dist/node_modules/date-fns/differenceInCalendarYears.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInCalendarYears.js +12 -0
- package/dist/node_modules/date-fns/differenceInDays.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInDays.js +21 -0
- package/dist/node_modules/date-fns/differenceInHours.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInHours.js +14 -0
- package/dist/node_modules/date-fns/differenceInMilliseconds.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInMilliseconds.js +7 -0
- package/dist/node_modules/date-fns/differenceInMinutes.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInMinutes.js +10 -0
- package/dist/node_modules/date-fns/differenceInMonths.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInMonths.js +23 -0
- package/dist/node_modules/date-fns/differenceInSeconds.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInSeconds.js +9 -0
- package/dist/node_modules/date-fns/differenceInYears.cjs +1 -0
- package/dist/node_modules/date-fns/differenceInYears.js +16 -0
- package/dist/node_modules/date-fns/endOfDay.cjs +1 -0
- package/dist/node_modules/date-fns/endOfDay.js +8 -0
- package/dist/node_modules/date-fns/endOfMonth.cjs +1 -0
- package/dist/node_modules/date-fns/endOfMonth.js +8 -0
- package/dist/node_modules/date-fns/intervalToDuration.cjs +1 -0
- package/dist/node_modules/date-fns/intervalToDuration.js +25 -0
- package/dist/node_modules/date-fns/isAfter.cjs +1 -0
- package/dist/node_modules/date-fns/isAfter.js +7 -0
- package/dist/node_modules/date-fns/isLastDayOfMonth.cjs +1 -0
- package/dist/node_modules/date-fns/isLastDayOfMonth.js +10 -0
- package/dist/node_modules/date-fns/startOfDay.cjs +1 -0
- package/dist/node_modules/date-fns/startOfDay.js +8 -0
- package/dist/node_modules/date-fns/toDate.cjs +1 -0
- package/dist/node_modules/date-fns/toDate.js +7 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +1 -0
- package/dist/{utils-koxKGlVV.js → node_modules/tailwind-merge/dist/bundle-mjs.js} +216 -244
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.cjs +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +57 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.cjs +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +56 -0
- package/dist/node_modules/use-sync-external-store/with-selector.cjs +1 -0
- package/dist/node_modules/use-sync-external-store/with-selector.js +10 -0
- package/dist/preflight.cjs +1 -0
- package/dist/preflight.js +1 -0
- package/dist/roster.cjs +1 -0
- package/dist/roster.js +184 -0
- package/dist/tokens.cjs +1 -0
- package/dist/tokens.js +1 -0
- package/dist/utils.cjs +1 -0
- package/dist/utils.d.ts +11 -8
- package/dist/utils.js +4 -0
- package/package.json +11 -10
- package/dist/Table-CSXfWRkc.js +0 -4949
- package/dist/Table-pfb9MJtO.cjs +0 -566
- package/dist/data-table.cjs.js +0 -1
- package/dist/data-table.es.js +0 -156
- package/dist/preflight.cjs.js +0 -1
- package/dist/preflight.es.js +0 -1
- package/dist/roster.cjs.js +0 -5
- package/dist/roster.es.js +0 -11334
- package/dist/tokens.cjs.js +0 -1
- package/dist/tokens.es.js +0 -1
- package/dist/utils-B4q42wBM.cjs +0 -1
- package/dist/utils.cjs.js +0 -1
- package/dist/utils.es.js +0 -4
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Machine as I, batch as x } from "../../machine.js";
|
|
2
|
+
import { stackMachines as R, ActionTypes as y } from "../../machines/stack-machine.js";
|
|
3
|
+
import { Focus as u, calculateActiveIndex as f } from "../../utils/calculate-active-index.js";
|
|
4
|
+
import { detectMovement as E, ElementPositionState as v, computeVisualPosition as M } from "../../utils/element-movement.js";
|
|
5
|
+
import { sortByDomNode as P } from "../../utils/focus-management.js";
|
|
6
|
+
import { match as b } from "../../utils/match.js";
|
|
7
|
+
var T = Object.defineProperty, A = (t, i, e) => i in t ? T(t, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[i] = e, O = (t, i, e) => (A(t, typeof i != "symbol" ? i + "" : i, e), e), L = ((t) => (t[t.Open = 0] = "Open", t[t.Closed = 1] = "Closed", t))(L || {}), k = ((t) => (t[t.Single = 0] = "Single", t[t.Multi = 1] = "Multi", t))(k || {}), C = ((t) => (t[t.Pointer = 0] = "Pointer", t[t.Other = 1] = "Other", t))(C || {}), _ = ((t) => (t[t.OpenListbox = 0] = "OpenListbox", t[t.CloseListbox = 1] = "CloseListbox", t[t.GoToOption = 2] = "GoToOption", t[t.Search = 3] = "Search", t[t.ClearSearch = 4] = "ClearSearch", t[t.SelectOption = 5] = "SelectOption", t[t.RegisterOptions = 6] = "RegisterOptions", t[t.UnregisterOptions = 7] = "UnregisterOptions", t[t.SetButtonElement = 8] = "SetButtonElement", t[t.SetOptionsElement = 9] = "SetOptionsElement", t[t.SortOptions = 10] = "SortOptions", t[t.MarkButtonAsMoved = 11] = "MarkButtonAsMoved", t))(_ || {});
|
|
8
|
+
function S(t, i = (e) => e) {
|
|
9
|
+
let e = t.activeOptionIndex !== null ? t.options[t.activeOptionIndex] : null, n = P(i(t.options.slice()), (s) => s.dataRef.current.domRef.current), o = e ? n.indexOf(e) : null;
|
|
10
|
+
return o === -1 && (o = null), { options: n, activeOptionIndex: o };
|
|
11
|
+
}
|
|
12
|
+
let F = { 1(t) {
|
|
13
|
+
if (t.dataRef.current.disabled || t.listboxState === 1) return t;
|
|
14
|
+
let i = t.buttonElement ? v.Tracked(M(t.buttonElement)) : t.buttonPositionState;
|
|
15
|
+
return { ...t, activeOptionIndex: null, pendingFocus: { focus: u.Nothing }, listboxState: 1, __demoMode: !1, buttonPositionState: i };
|
|
16
|
+
}, 0(t, i) {
|
|
17
|
+
if (t.dataRef.current.disabled || t.listboxState === 0) return t;
|
|
18
|
+
let e = t.activeOptionIndex, { isSelected: n } = t.dataRef.current, o = t.options.findIndex((s) => n(s.dataRef.current.value));
|
|
19
|
+
return o !== -1 && (e = o), { ...t, frozenValue: !1, pendingFocus: i.focus, listboxState: 0, activeOptionIndex: e, __demoMode: !1, buttonPositionState: v.Idle };
|
|
20
|
+
}, 2(t, i) {
|
|
21
|
+
var e, n, o, s, l;
|
|
22
|
+
if (t.dataRef.current.disabled || t.listboxState === 1) return t;
|
|
23
|
+
let a = { ...t, searchQuery: "", activationTrigger: (e = i.trigger) != null ? e : 1, __demoMode: !1 };
|
|
24
|
+
if (i.focus === u.Nothing) return { ...a, activeOptionIndex: null };
|
|
25
|
+
if (i.focus === u.Specific) return { ...a, activeOptionIndex: t.options.findIndex((d) => d.id === i.id) };
|
|
26
|
+
if (i.focus === u.Previous) {
|
|
27
|
+
let d = t.activeOptionIndex;
|
|
28
|
+
if (d !== null) {
|
|
29
|
+
let m = t.options[d].dataRef.current.domRef, c = f(i, { resolveItems: () => t.options, resolveActiveIndex: () => t.activeOptionIndex, resolveId: (r) => r.id, resolveDisabled: (r) => r.dataRef.current.disabled });
|
|
30
|
+
if (c !== null) {
|
|
31
|
+
let r = t.options[c].dataRef.current.domRef;
|
|
32
|
+
if (((n = m.current) == null ? void 0 : n.previousElementSibling) === r.current || ((o = r.current) == null ? void 0 : o.previousElementSibling) === null) return { ...a, activeOptionIndex: c };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
} else if (i.focus === u.Next) {
|
|
36
|
+
let d = t.activeOptionIndex;
|
|
37
|
+
if (d !== null) {
|
|
38
|
+
let m = t.options[d].dataRef.current.domRef, c = f(i, { resolveItems: () => t.options, resolveActiveIndex: () => t.activeOptionIndex, resolveId: (r) => r.id, resolveDisabled: (r) => r.dataRef.current.disabled });
|
|
39
|
+
if (c !== null) {
|
|
40
|
+
let r = t.options[c].dataRef.current.domRef;
|
|
41
|
+
if (((s = m.current) == null ? void 0 : s.nextElementSibling) === r.current || ((l = r.current) == null ? void 0 : l.nextElementSibling) === null) return { ...a, activeOptionIndex: c };
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
let p = S(t), h = f(i, { resolveItems: () => p.options, resolveActiveIndex: () => p.activeOptionIndex, resolveId: (d) => d.id, resolveDisabled: (d) => d.dataRef.current.disabled });
|
|
46
|
+
return { ...a, ...p, activeOptionIndex: h };
|
|
47
|
+
}, 3: (t, i) => {
|
|
48
|
+
if (t.dataRef.current.disabled || t.listboxState === 1) return t;
|
|
49
|
+
let e = t.searchQuery !== "" ? 0 : 1, n = t.searchQuery + i.value.toLowerCase(), o = (t.activeOptionIndex !== null ? t.options.slice(t.activeOptionIndex + e).concat(t.options.slice(0, t.activeOptionIndex + e)) : t.options).find((l) => {
|
|
50
|
+
var a;
|
|
51
|
+
return !l.dataRef.current.disabled && ((a = l.dataRef.current.textValue) == null ? void 0 : a.startsWith(n));
|
|
52
|
+
}), s = o ? t.options.indexOf(o) : -1;
|
|
53
|
+
return s === -1 || s === t.activeOptionIndex ? { ...t, searchQuery: n } : { ...t, searchQuery: n, activeOptionIndex: s, activationTrigger: 1 };
|
|
54
|
+
}, 4(t) {
|
|
55
|
+
return t.dataRef.current.disabled || t.listboxState === 1 || t.searchQuery === "" ? t : { ...t, searchQuery: "" };
|
|
56
|
+
}, 5(t) {
|
|
57
|
+
return t.dataRef.current.mode === 0 ? { ...t, frozenValue: !0 } : { ...t };
|
|
58
|
+
}, 6: (t, i) => {
|
|
59
|
+
let e = t.options.concat(i.options), n = t.activeOptionIndex;
|
|
60
|
+
if (t.pendingFocus.focus !== u.Nothing && (n = f(t.pendingFocus, { resolveItems: () => e, resolveActiveIndex: () => t.activeOptionIndex, resolveId: (o) => o.id, resolveDisabled: (o) => o.dataRef.current.disabled })), t.activeOptionIndex === null) {
|
|
61
|
+
let { isSelected: o } = t.dataRef.current;
|
|
62
|
+
if (o) {
|
|
63
|
+
let s = e.findIndex((l) => o?.(l.dataRef.current.value));
|
|
64
|
+
s !== -1 && (n = s);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { ...t, options: e, activeOptionIndex: n, pendingFocus: { focus: u.Nothing }, pendingShouldSort: !0 };
|
|
68
|
+
}, 7: (t, i) => {
|
|
69
|
+
let e = t.options, n = [], o = new Set(i.options);
|
|
70
|
+
for (let [s, l] of e.entries()) if (o.has(l.id) && (n.push(s), o.delete(l.id), o.size === 0)) break;
|
|
71
|
+
if (n.length > 0) {
|
|
72
|
+
e = e.slice();
|
|
73
|
+
for (let s of n.reverse()) e.splice(s, 1);
|
|
74
|
+
}
|
|
75
|
+
return { ...t, options: e, activationTrigger: 1 };
|
|
76
|
+
}, 8: (t, i) => t.buttonElement === i.element ? t : { ...t, buttonElement: i.element }, 9: (t, i) => t.optionsElement === i.element ? t : { ...t, optionsElement: i.element }, 10: (t) => t.pendingShouldSort ? { ...t, ...S(t), pendingShouldSort: !1 } : t, 11(t) {
|
|
77
|
+
return t.buttonPositionState.kind !== "Tracked" ? t : { ...t, buttonPositionState: v.Moved };
|
|
78
|
+
} };
|
|
79
|
+
class g extends I {
|
|
80
|
+
constructor(i) {
|
|
81
|
+
super(i), O(this, "actions", { onChange: (e) => {
|
|
82
|
+
let { onChange: n, compare: o, mode: s, value: l } = this.state.dataRef.current;
|
|
83
|
+
return b(s, { 0: () => n?.(e), 1: () => {
|
|
84
|
+
let a = l.slice(), p = a.findIndex((h) => o(h, e));
|
|
85
|
+
return p === -1 ? a.push(e) : a.splice(p, 1), n?.(a);
|
|
86
|
+
} });
|
|
87
|
+
}, registerOption: x(() => {
|
|
88
|
+
let e = [], n = /* @__PURE__ */ new Set();
|
|
89
|
+
return [(o, s) => {
|
|
90
|
+
n.has(s) || (n.add(s), e.push({ id: o, dataRef: s }));
|
|
91
|
+
}, () => (n.clear(), this.send({ type: 6, options: e.splice(0) }))];
|
|
92
|
+
}), unregisterOption: x(() => {
|
|
93
|
+
let e = [];
|
|
94
|
+
return [(n) => e.push(n), () => {
|
|
95
|
+
this.send({ type: 7, options: e.splice(0) });
|
|
96
|
+
}];
|
|
97
|
+
}), goToOption: x(() => {
|
|
98
|
+
let e = null;
|
|
99
|
+
return [(n, o) => {
|
|
100
|
+
e = { type: 2, ...n, trigger: o };
|
|
101
|
+
}, () => e && this.send(e)];
|
|
102
|
+
}), closeListbox: () => {
|
|
103
|
+
this.send({ type: 1 });
|
|
104
|
+
}, openListbox: (e) => {
|
|
105
|
+
this.send({ type: 0, focus: e });
|
|
106
|
+
}, selectActiveOption: () => {
|
|
107
|
+
var e;
|
|
108
|
+
if (this.state.activeOptionIndex !== null) {
|
|
109
|
+
let { dataRef: n } = this.state.options[this.state.activeOptionIndex];
|
|
110
|
+
this.actions.selectOption(n.current.value);
|
|
111
|
+
} else this.state.dataRef.current.mode === 0 && (this.actions.closeListbox(), (e = this.state.buttonElement) == null || e.focus({ preventScroll: !0 }));
|
|
112
|
+
}, selectOption: (e) => {
|
|
113
|
+
this.send({ type: 5, value: e });
|
|
114
|
+
}, search: (e) => {
|
|
115
|
+
this.send({ type: 3, value: e });
|
|
116
|
+
}, clearSearch: () => {
|
|
117
|
+
this.send({ type: 4 });
|
|
118
|
+
}, setButtonElement: (e) => {
|
|
119
|
+
this.send({ type: 8, element: e });
|
|
120
|
+
}, setOptionsElement: (e) => {
|
|
121
|
+
this.send({ type: 9, element: e });
|
|
122
|
+
} }), O(this, "selectors", { activeDescendantId(e) {
|
|
123
|
+
var n;
|
|
124
|
+
let o = e.activeOptionIndex, s = e.options;
|
|
125
|
+
return o === null || (n = s[o]) == null ? void 0 : n.id;
|
|
126
|
+
}, isActive(e, n) {
|
|
127
|
+
var o;
|
|
128
|
+
let s = e.activeOptionIndex, l = e.options;
|
|
129
|
+
return s !== null ? ((o = l[s]) == null ? void 0 : o.id) === n : !1;
|
|
130
|
+
}, hasFrozenValue(e) {
|
|
131
|
+
return e.frozenValue;
|
|
132
|
+
}, shouldScrollIntoView(e, n) {
|
|
133
|
+
return e.__demoMode || e.listboxState !== 0 || e.activationTrigger === 0 ? !1 : this.isActive(e, n);
|
|
134
|
+
}, didButtonMove(e) {
|
|
135
|
+
return e.buttonPositionState.kind === "Moved";
|
|
136
|
+
} }), this.on(6, () => {
|
|
137
|
+
requestAnimationFrame(() => {
|
|
138
|
+
this.send({ type: 10 });
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
{
|
|
142
|
+
let e = this.state.id, n = R.get(null);
|
|
143
|
+
this.disposables.add(n.on(y.Push, (o) => {
|
|
144
|
+
!n.selectors.isTop(o, e) && this.state.listboxState === 0 && this.actions.closeListbox();
|
|
145
|
+
})), this.on(0, () => n.actions.push(e)), this.on(1, () => n.actions.pop(e));
|
|
146
|
+
}
|
|
147
|
+
this.disposables.group((e) => {
|
|
148
|
+
this.on(1, (n) => {
|
|
149
|
+
n.buttonElement && (e.dispose(), e.add(E(n.buttonElement, n.buttonPositionState, () => {
|
|
150
|
+
this.send({ type: 11 });
|
|
151
|
+
})));
|
|
152
|
+
});
|
|
153
|
+
}), this.on(5, (e, n) => {
|
|
154
|
+
var o;
|
|
155
|
+
this.actions.onChange(n.value), this.state.dataRef.current.mode === 0 && (this.actions.closeListbox(), (o = this.state.buttonElement) == null || o.focus({ preventScroll: !0 }));
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
static new({ id: i, __demoMode: e = !1 }) {
|
|
159
|
+
return new g({ id: i, dataRef: { current: {} }, listboxState: e ? 0 : 1, options: [], searchQuery: "", activeOptionIndex: null, activationTrigger: 1, buttonElement: null, optionsElement: null, pendingShouldSort: !1, pendingFocus: { focus: u.Nothing }, frozenValue: !1, __demoMode: e, buttonPositionState: v.Idle });
|
|
160
|
+
}
|
|
161
|
+
reduce(i, e) {
|
|
162
|
+
return b(e.type, F, i, e);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export {
|
|
166
|
+
_ as ActionTypes,
|
|
167
|
+
C as ActivationTrigger,
|
|
168
|
+
g as ListboxMachine,
|
|
169
|
+
L as ListboxStates,
|
|
170
|
+
k as ValueMode
|
|
171
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("../../../../../@react-aria/focus/dist/useFocusRing.cjs"),Le=require("../../../../../@react-aria/interactions/dist/useHover.cjs"),s=require("react"),re=require("react-dom"),ye=require("../../hooks/use-active-press.cjs"),Oe=require("../../hooks/use-by-comparator.cjs"),Ee=require("../../hooks/use-controllable.cjs"),Pe=require("../../hooks/use-default-value.cjs"),qe=require("../../hooks/use-disposables.cjs"),Fe=require("../../hooks/use-element-size.cjs"),I=require("../../hooks/use-event.cjs"),Re=require("../../hooks/use-handle-toggle.cjs"),Me=require("../../hooks/use-inert-others.cjs"),ae=require("../../hooks/use-iso-morphic-effect.cjs"),ke=require("../../hooks/use-latest-value.cjs"),we=require("../../hooks/use-on-disappear.cjs"),De=require("../../hooks/use-outside-click.cjs"),ue=require("../../hooks/use-owner.cjs"),Q=require("../../hooks/use-quick-release.cjs"),Te=require("../../hooks/use-resolve-button-type.cjs"),Ae=require("../../hooks/use-scroll-lock.cjs"),W=require("../../hooks/use-slot.cjs"),J=require("../../hooks/use-sync-refs.cjs"),Ce=require("../../hooks/use-text-value.cjs"),Ie=require("../../hooks/use-tracked-pointer.cjs"),ce=require("../../hooks/use-transition.cjs"),Ke=require("../../internal/disabled.cjs"),z=require("../../internal/floating.cjs"),Ve=require("../../internal/form-fields.cjs"),Be=require("../../internal/frozen.cjs"),Ne=require("../../internal/id.cjs"),U=require("../../internal/open-closed.cjs"),_e=require("../../machines/stack-machine.cjs"),O=require("../../react-glue.cjs"),E=require("../../utils/calculate-active-index.cjs"),He=require("../../utils/disposables.cjs"),ze=require("../../utils/dom.cjs"),j=require("../../utils/focus-management.cjs"),Ue=require("../../utils/form.cjs"),Z=require("../../utils/match.cjs"),We=require("../../utils/owner.cjs"),h=require("../../utils/render.cjs"),$e=require("../description/description.cjs"),f=require("../keyboard.cjs"),le=require("../label/label.cjs"),Qe=require("../portal/portal.cjs"),i=require("./listbox-machine.cjs"),G=require("./listbox-machine-glue.cjs");let ee=s.createContext(null);ee.displayName="ListboxDataContext";function X(S){let P=s.useContext(ee);if(P===null){let x=new Error(`<${S} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(x,X),x}return P}let je=s.Fragment;function Ge(S,P){let x=s.useId(),c=Ke.useDisabled(),{value:u,defaultValue:l,form:b,name:p,onChange:g,by:o,invalid:R=!1,disabled:L=c||!1,horizontal:a=!1,multiple:t=!1,__demoMode:d=!1,...M}=S;const q=a?"horizontal":"vertical";let K=J.useSyncRefs(P),w=Pe.useDefaultValue(l),[v=t?[]:void 0,F]=Ee.useControllable(u,g,w),m=G.useListboxMachine({id:x,__demoMode:d}),V=s.useRef({static:!1,hold:!1}),N=s.useRef(new Map),D=Oe.useByComparator(o),_=s.useCallback(y=>Z.match(n.mode,{[i.ValueMode.Multi]:()=>v.some($=>D($,y)),[i.ValueMode.Single]:()=>D(v,y)}),[v]),n=W.useSlot({value:v,disabled:L,invalid:R,mode:t?i.ValueMode.Multi:i.ValueMode.Single,orientation:q,onChange:F,compare:D,isSelected:_,optionsPropsRef:V,listRef:N});ae.useIsoMorphicEffect(()=>{m.state.dataRef.current=n},[n]);let k=O.useSlice(m,y=>y.listboxState),T=_e.stackMachines.get(null),H=O.useSlice(T,s.useCallback(y=>T.selectors.isTop(y,x),[T,x])),[A,r]=O.useSlice(m,y=>[y.buttonElement,y.optionsElement]);De.useOutsideClick(H,[A,r],(y,$)=>{m.send({type:i.ActionTypes.CloseListbox}),j.isFocusableElement($,j.FocusableMode.Loose)||(y.preventDefault(),A?.focus())});let C=W.useSlot({open:k===i.ListboxStates.Open,disabled:L,invalid:R,value:v}),[te,se]=le.useLabels({inherit:!0}),Y={ref:K},oe=s.useCallback(()=>{if(w!==void 0)return F?.(w)},[F,w]),ne=h.useRender();return s.createElement(se,{value:te,props:{htmlFor:A?.id},slot:{open:k===i.ListboxStates.Open,disabled:L}},s.createElement(z.FloatingProvider,null,s.createElement(G.ListboxContext.Provider,{value:m},s.createElement(ee.Provider,{value:n},s.createElement(U.OpenClosedProvider,{value:Z.match(k,{[i.ListboxStates.Open]:U.State.Open,[i.ListboxStates.Closed]:U.State.Closed})},p!=null&&v!=null&&s.createElement(Ve.FormFields,{disabled:L,data:{[p]:v},form:b,onReset:oe}),ne({ourProps:Y,theirProps:M,slot:C,defaultTag:je,name:"Listbox"}))))))}let Je="button";function Xe(S,P){let x=s.useId(),c=Ne.useProvidedId(),u=X("Listbox.Button"),l=G.useListboxMachineContext("Listbox.Button"),{id:b=c||`headlessui-listbox-button-${x}`,disabled:p=u.disabled||!1,autoFocus:g=!1,...o}=S,R=J.useSyncRefs(P,z.useFloatingReference(),l.actions.setButtonElement),L=z.useFloatingReferenceProps(),[a,t,d]=O.useSlice(l,r=>[r.listboxState,r.buttonElement,r.optionsElement]),M=a===i.ListboxStates.Open;Q.useQuickRelease(M,{trigger:t,action:s.useCallback(r=>{if(t!=null&&t.contains(r.target))return Q.Action.Ignore;let C=r.target.closest('[role="option"]:not([data-disabled])');return ze.isHTMLElement(C)?Q.Action.Select(C):d!=null&&d.contains(r.target)?Q.Action.Ignore:Q.Action.Close},[t,d]),close:l.actions.closeListbox,select:l.actions.selectActiveOption});let q=I.useEvent(r=>{switch(r.key){case f.Keys.Enter:Ue.attemptSubmit(r.currentTarget);break;case f.Keys.Space:case f.Keys.ArrowDown:r.preventDefault(),l.actions.openListbox({focus:u.value?E.Focus.Nothing:E.Focus.First});break;case f.Keys.ArrowUp:r.preventDefault(),l.actions.openListbox({focus:u.value?E.Focus.Nothing:E.Focus.Last});break}}),K=I.useEvent(r=>{r.key===f.Keys.Space&&r.preventDefault()}),w=Re.useHandleToggle(r=>{var C;l.state.listboxState===i.ListboxStates.Open?(re.flushSync(()=>l.actions.closeListbox()),(C=l.state.buttonElement)==null||C.focus({preventScroll:!0})):(r.preventDefault(),l.actions.openListbox({focus:E.Focus.Nothing}))}),v=I.useEvent(r=>r.preventDefault()),F=le.useLabelledBy([b]),m=$e.useDescribedBy(),{isFocusVisible:V,focusProps:N}=he.useFocusRing({autoFocus:g}),{isHovered:D,hoverProps:_}=Le.useHover({isDisabled:p}),{pressed:n,pressProps:k}=ye.useActivePress({disabled:p}),T=W.useSlot({open:a===i.ListboxStates.Open,active:n||a===i.ListboxStates.Open,disabled:p,invalid:u.invalid,value:u.value,hover:D,focus:V,autofocus:g}),H=O.useSlice(l,r=>r.listboxState===i.ListboxStates.Open),A=h.mergeProps(L(),{ref:R,id:b,type:Te.useResolveButtonType(S,t),"aria-haspopup":"listbox","aria-controls":d?.id,"aria-expanded":H,"aria-labelledby":F,"aria-describedby":m,disabled:p||void 0,autoFocus:g,onKeyDown:q,onKeyUp:K,onKeyPress:v},w,N,_,k);return h.useRender()({ourProps:A,theirProps:o,slot:T,defaultTag:Je,name:"Listbox.Button"})}let de=s.createContext(!1),Ye="div",Ze=h.RenderFeatures.RenderStrategy|h.RenderFeatures.Static;function et(S,P){let x=s.useId(),{id:c=`headlessui-listbox-options-${x}`,anchor:u,portal:l=!1,modal:b=!0,transition:p=!1,...g}=S,o=z.useResolvedAnchor(u),[R,L]=s.useState(null);o&&(l=!0);let a=X("Listbox.Options"),t=G.useListboxMachineContext("Listbox.Options"),[d,M,q,K]=O.useSlice(t,e=>[e.listboxState,e.buttonElement,e.optionsElement,e.__demoMode]),w=ue.useOwnerDocument(M),v=ue.useOwnerDocument(q),F=U.useOpenClosed(),[m,V]=ce.useTransition(p,R,F!==null?(F&U.State.Open)===U.State.Open:d===i.ListboxStates.Open);we.useOnDisappear(m,M,t.actions.closeListbox);let N=K?!1:b&&d===i.ListboxStates.Open;Ae.useScrollLock(N,v);let D=K?!1:b&&d===i.ListboxStates.Open;Me.useInertOthers(D,{allowed:s.useCallback(()=>[M,q],[M,q])});let _=O.useSlice(t,t.selectors.didButtonMove)?!1:m,n=O.useSlice(t,t.selectors.hasFrozenValue)&&!S.static,k=Be.useFrozenData(n,a.value),T=s.useCallback(e=>a.compare(k,e),[a.compare,k]),H=O.useSlice(t,e=>{var B;if(o==null||!((B=o?.to)!=null&&B.includes("selection")))return null;let ie=e.options.findIndex(ge=>T(ge.dataRef.current.value));return ie===-1&&(ie=0),ie}),A=(()=>{if(o==null)return;if(H===null)return{...o,inner:void 0};let e=Array.from(a.listRef.current.values());return{...o,inner:{listRef:{current:e},index:H}}})(),[r,C]=z.useFloatingPanel(A),te=z.useFloatingPanelProps(),se=J.useSyncRefs(P,o?r:null,t.actions.setOptionsElement,L),Y=qe.useDisposables();s.useEffect(()=>{let e=q;e&&d===i.ListboxStates.Open&&(We.isActiveElement(e)||e==null||e.focus({preventScroll:!0}))},[d,q]);let oe=I.useEvent(e=>{var B;switch(Y.dispose(),e.key){case f.Keys.Space:if(t.state.searchQuery!=="")return e.preventDefault(),e.stopPropagation(),t.actions.search(e.key);case f.Keys.Enter:e.preventDefault(),e.stopPropagation(),t.actions.selectActiveOption();break;case Z.match(a.orientation,{vertical:f.Keys.ArrowDown,horizontal:f.Keys.ArrowRight}):return e.preventDefault(),e.stopPropagation(),t.actions.goToOption({focus:E.Focus.Next});case Z.match(a.orientation,{vertical:f.Keys.ArrowUp,horizontal:f.Keys.ArrowLeft}):return e.preventDefault(),e.stopPropagation(),t.actions.goToOption({focus:E.Focus.Previous});case f.Keys.Home:case f.Keys.PageUp:return e.preventDefault(),e.stopPropagation(),t.actions.goToOption({focus:E.Focus.First});case f.Keys.End:case f.Keys.PageDown:return e.preventDefault(),e.stopPropagation(),t.actions.goToOption({focus:E.Focus.Last});case f.Keys.Escape:e.preventDefault(),e.stopPropagation(),re.flushSync(()=>t.actions.closeListbox()),(B=t.state.buttonElement)==null||B.focus({preventScroll:!0});return;case f.Keys.Tab:e.preventDefault(),e.stopPropagation(),re.flushSync(()=>t.actions.closeListbox()),j.focusFrom(t.state.buttonElement,e.shiftKey?j.Focus.Previous:j.Focus.Next);break;default:e.key.length===1&&(t.actions.search(e.key),Y.setTimeout(()=>t.actions.clearSearch(),350));break}}),ne=O.useSlice(t,e=>{var B;return(B=e.buttonElement)==null?void 0:B.id}),y=W.useSlot({open:d===i.ListboxStates.Open}),$=h.mergeProps(o?te():{},{id:c,ref:se,"aria-activedescendant":O.useSlice(t,t.selectors.activeDescendantId),"aria-multiselectable":a.mode===i.ValueMode.Multi?!0:void 0,"aria-labelledby":ne,"aria-orientation":a.orientation,onKeyDown:oe,role:"listbox",tabIndex:d===i.ListboxStates.Open?0:void 0,style:{...g.style,...C,"--button-width":Fe.useElementSize(m,M,!0).width},...ce.transitionDataAttributes(V)}),Se=h.useRender(),xe=s.useMemo(()=>a.mode===i.ValueMode.Multi?a:{...a,isSelected:T},[a,T]);return s.createElement(Qe.Portal,{enabled:l?S.static||m:!1,ownerDocument:w},s.createElement(ee.Provider,{value:xe},Se({ourProps:$,theirProps:g,slot:y,defaultTag:Ye,features:Ze,visible:_,name:"Listbox.Options"})))}let tt="div";function st(S,P){let x=s.useId(),{id:c=`headlessui-listbox-option-${x}`,disabled:u=!1,value:l,...b}=S,p=s.useContext(de)===!0,g=X("Listbox.Option"),o=G.useListboxMachineContext("Listbox.Option"),R=O.useSlice(o,n=>o.selectors.isActive(n,c)),L=g.isSelected(l),a=s.useRef(null),t=Ce.useTextValue(a),d=ke.useLatestValue({disabled:u,value:l,domRef:a,get textValue(){return t()}}),M=J.useSyncRefs(P,a,n=>{n?g.listRef.current.set(c,n):g.listRef.current.delete(c)}),q=O.useSlice(o,n=>o.selectors.shouldScrollIntoView(n,c));ae.useIsoMorphicEffect(()=>{if(q)return He.disposables().requestAnimationFrame(()=>{var n,k;(k=(n=a.current)==null?void 0:n.scrollIntoView)==null||k.call(n,{block:"nearest"})})},[q,a]),ae.useIsoMorphicEffect(()=>{if(!p)return o.actions.registerOption(c,d),()=>o.actions.unregisterOption(c)},[d,c,p]);let K=I.useEvent(n=>{if(u)return n.preventDefault();o.actions.selectOption(l)}),w=I.useEvent(()=>{if(u)return o.actions.goToOption({focus:E.Focus.Nothing});o.actions.goToOption({focus:E.Focus.Specific,id:c})}),v=Ie.useTrackedPointer(),F=I.useEvent(n=>v.update(n)),m=I.useEvent(n=>{v.wasMoved(n)&&(u||R&&o.state.activationTrigger===i.ActivationTrigger.Pointer||o.actions.goToOption({focus:E.Focus.Specific,id:c},i.ActivationTrigger.Pointer))}),V=I.useEvent(n=>{v.wasMoved(n)&&(u||R&&o.state.activationTrigger===i.ActivationTrigger.Pointer&&o.actions.goToOption({focus:E.Focus.Nothing}))}),N=W.useSlot({active:R,focus:R,selected:L,disabled:u,selectedOption:L&&p}),D=p?{}:{id:c,ref:M,role:"option",tabIndex:u===!0?void 0:-1,"aria-disabled":u===!0?!0:void 0,"aria-selected":L,disabled:void 0,onClick:K,onFocus:w,onPointerEnter:F,onMouseEnter:F,onPointerMove:m,onMouseMove:m,onPointerLeave:V,onMouseLeave:V},_=h.useRender();return!L&&p?null:_({ourProps:D,theirProps:b,slot:N,defaultTag:tt,name:"Listbox.Option"})}let ot=s.Fragment;function nt(S,P){let{options:x,placeholder:c,...u}=S,l={ref:J.useSyncRefs(P)},b=X("ListboxSelectedOption"),p=W.useSlot({}),g=b.value===void 0||b.value===null||b.mode===i.ValueMode.Multi&&Array.isArray(b.value)&&b.value.length===0,o=h.useRender();return s.createElement(de.Provider,{value:!0},o({ourProps:l,theirProps:{...u,children:s.createElement(s.Fragment,null,c&&g?c:x)},slot:p,defaultTag:ot,name:"ListboxSelectedOption"}))}let it=h.forwardRefWithAs(Ge),pe=h.forwardRefWithAs(Xe),fe=le.Label,be=h.forwardRefWithAs(et),ve=h.forwardRefWithAs(st),me=h.forwardRefWithAs(nt),rt=Object.assign(it,{Button:pe,Label:fe,Options:be,Option:ve,SelectedOption:me});exports.Listbox=rt;exports.ListboxButton=pe;exports.ListboxLabel=fe;exports.ListboxOption=ve;exports.ListboxOptions=be;exports.ListboxSelectedOption=me;
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { useFocusRing as Pe } from "../../../../../@react-aria/focus/dist/useFocusRing.js";
|
|
2
|
+
import { useHover as Se } from "../../../../../@react-aria/interactions/dist/useHover.js";
|
|
3
|
+
import D, { useId as ee, useRef as le, useCallback as K, Fragment as be, createContext as ve, useContext as $e, useState as ye, useEffect as Ee, useMemo as we } from "react";
|
|
4
|
+
import { flushSync as ue } from "react-dom";
|
|
5
|
+
import { useActivePress as Fe } from "../../hooks/use-active-press.js";
|
|
6
|
+
import { useByComparator as De } from "../../hooks/use-by-comparator.js";
|
|
7
|
+
import { useControllable as Me } from "../../hooks/use-controllable.js";
|
|
8
|
+
import { useDefaultValue as Re } from "../../hooks/use-default-value.js";
|
|
9
|
+
import { useDisposables as Te } from "../../hooks/use-disposables.js";
|
|
10
|
+
import { useElementSize as ke } from "../../hooks/use-element-size.js";
|
|
11
|
+
import { useEvent as C } from "../../hooks/use-event.js";
|
|
12
|
+
import { useHandleToggle as Ae } from "../../hooks/use-handle-toggle.js";
|
|
13
|
+
import { useInertOthers as Ce } from "../../hooks/use-inert-others.js";
|
|
14
|
+
import { useIsoMorphicEffect as ce } from "../../hooks/use-iso-morphic-effect.js";
|
|
15
|
+
import { useLatestValue as Ie } from "../../hooks/use-latest-value.js";
|
|
16
|
+
import { useOnDisappear as Ve } from "../../hooks/use-on-disappear.js";
|
|
17
|
+
import { useOutsideClick as Ne } from "../../hooks/use-outside-click.js";
|
|
18
|
+
import { useOwnerDocument as de } from "../../hooks/use-owner.js";
|
|
19
|
+
import { useQuickRelease as _e, Action as G } from "../../hooks/use-quick-release.js";
|
|
20
|
+
import { useResolveButtonType as Be } from "../../hooks/use-resolve-button-type.js";
|
|
21
|
+
import { useScrollLock as He } from "../../hooks/use-scroll-lock.js";
|
|
22
|
+
import { useSlot as U } from "../../hooks/use-slot.js";
|
|
23
|
+
import { useSyncRefs as Q } from "../../hooks/use-sync-refs.js";
|
|
24
|
+
import { useTextValue as ze } from "../../hooks/use-text-value.js";
|
|
25
|
+
import { useTrackedPointer as Ke } from "../../hooks/use-tracked-pointer.js";
|
|
26
|
+
import { useTransition as Ue, transitionDataAttributes as qe } from "../../hooks/use-transition.js";
|
|
27
|
+
import { useDisabled as Qe } from "../../internal/disabled.js";
|
|
28
|
+
import { FloatingProvider as je, useFloatingReference as We, useFloatingReferenceProps as Ye, useResolvedAnchor as Ze, useFloatingPanel as Ge, useFloatingPanelProps as Je } from "../../internal/floating.js";
|
|
29
|
+
import { FormFields as Xe } from "../../internal/form-fields.js";
|
|
30
|
+
import { useFrozenData as et } from "../../internal/frozen.js";
|
|
31
|
+
import { useProvidedId as tt } from "../../internal/id.js";
|
|
32
|
+
import { OpenClosedProvider as ot, State as J, useOpenClosed as st } from "../../internal/open-closed.js";
|
|
33
|
+
import { stackMachines as at } from "../../machines/stack-machine.js";
|
|
34
|
+
import { useSlice as O } from "../../react-glue.js";
|
|
35
|
+
import { Focus as L } from "../../utils/calculate-active-index.js";
|
|
36
|
+
import { disposables as rt } from "../../utils/disposables.js";
|
|
37
|
+
import { isHTMLElement as it } from "../../utils/dom.js";
|
|
38
|
+
import { isFocusableElement as nt, FocusableMode as lt, focusFrom as ut, Focus as me } from "../../utils/focus-management.js";
|
|
39
|
+
import { attemptSubmit as ct } from "../../utils/form.js";
|
|
40
|
+
import { match as X } from "../../utils/match.js";
|
|
41
|
+
import { isActiveElement as pt } from "../../utils/owner.js";
|
|
42
|
+
import { forwardRefWithAs as j, useRender as W, RenderFeatures as fe, mergeProps as ge } from "../../utils/render.js";
|
|
43
|
+
import { useDescribedBy as dt } from "../description/description.js";
|
|
44
|
+
import { Keys as p } from "../keyboard.js";
|
|
45
|
+
import { Label as mt, useLabels as ft, useLabelledBy as bt } from "../label/label.js";
|
|
46
|
+
import { Portal as vt } from "../portal/portal.js";
|
|
47
|
+
import { ValueMode as H, ListboxStates as b, ActionTypes as $t, ActivationTrigger as ne } from "./listbox-machine.js";
|
|
48
|
+
import { useListboxMachine as gt, ListboxContext as xt, useListboxMachineContext as pe } from "./listbox-machine-glue.js";
|
|
49
|
+
let te = ve(null);
|
|
50
|
+
te.displayName = "ListboxDataContext";
|
|
51
|
+
function Y(v) {
|
|
52
|
+
let P = $e(te);
|
|
53
|
+
if (P === null) {
|
|
54
|
+
let $ = new Error(`<${v} /> is missing a parent <Listbox /> component.`);
|
|
55
|
+
throw Error.captureStackTrace && Error.captureStackTrace($, Y), $;
|
|
56
|
+
}
|
|
57
|
+
return P;
|
|
58
|
+
}
|
|
59
|
+
let ht = be;
|
|
60
|
+
function Ot(v, P) {
|
|
61
|
+
let $ = ee(), l = Qe(), { value: n, defaultValue: i, form: d, name: c, onChange: g, by: o, invalid: E = !1, disabled: x = l || !1, horizontal: r = !1, multiple: t = !1, __demoMode: u = !1, ...w } = v;
|
|
62
|
+
const S = r ? "horizontal" : "vertical";
|
|
63
|
+
let I = Q(P), M = Re(i), [m = t ? [] : void 0, y] = Me(n, g, M), f = gt({ id: $, __demoMode: u }), V = le({ static: !1, hold: !1 }), _ = le(/* @__PURE__ */ new Map()), R = De(o), B = K((h) => X(s.mode, { [H.Multi]: () => m.some((q) => R(q, h)), [H.Single]: () => R(m, h) }), [m]), s = U({ value: m, disabled: x, invalid: E, mode: t ? H.Multi : H.Single, orientation: S, onChange: y, compare: R, isSelected: B, optionsPropsRef: V, listRef: _ });
|
|
64
|
+
ce(() => {
|
|
65
|
+
f.state.dataRef.current = s;
|
|
66
|
+
}, [s]);
|
|
67
|
+
let F = O(f, (h) => h.listboxState), T = at.get(null), z = O(T, K((h) => T.selectors.isTop(h, $), [T, $])), [k, a] = O(f, (h) => [h.buttonElement, h.optionsElement]);
|
|
68
|
+
Ne(z, [k, a], (h, q) => {
|
|
69
|
+
f.send({ type: $t.CloseListbox }), nt(q, lt.Loose) || (h.preventDefault(), k?.focus());
|
|
70
|
+
});
|
|
71
|
+
let A = U({ open: F === b.Open, disabled: x, invalid: E, value: m }), [oe, se] = ft({ inherit: !0 }), Z = { ref: I }, ae = K(() => {
|
|
72
|
+
if (M !== void 0) return y?.(M);
|
|
73
|
+
}, [y, M]), re = W();
|
|
74
|
+
return D.createElement(se, { value: oe, props: { htmlFor: k?.id }, slot: { open: F === b.Open, disabled: x } }, D.createElement(je, null, D.createElement(xt.Provider, { value: f }, D.createElement(te.Provider, { value: s }, D.createElement(ot, { value: X(F, { [b.Open]: J.Open, [b.Closed]: J.Closed }) }, c != null && m != null && D.createElement(Xe, { disabled: x, data: { [c]: m }, form: d, onReset: ae }), re({ ourProps: Z, theirProps: w, slot: A, defaultTag: ht, name: "Listbox" }))))));
|
|
75
|
+
}
|
|
76
|
+
let Lt = "button";
|
|
77
|
+
function Pt(v, P) {
|
|
78
|
+
let $ = ee(), l = tt(), n = Y("Listbox.Button"), i = pe("Listbox.Button"), { id: d = l || `headlessui-listbox-button-${$}`, disabled: c = n.disabled || !1, autoFocus: g = !1, ...o } = v, E = Q(P, We(), i.actions.setButtonElement), x = Ye(), [r, t, u] = O(i, (a) => [a.listboxState, a.buttonElement, a.optionsElement]), w = r === b.Open;
|
|
79
|
+
_e(w, { trigger: t, action: K((a) => {
|
|
80
|
+
if (t != null && t.contains(a.target)) return G.Ignore;
|
|
81
|
+
let A = a.target.closest('[role="option"]:not([data-disabled])');
|
|
82
|
+
return it(A) ? G.Select(A) : u != null && u.contains(a.target) ? G.Ignore : G.Close;
|
|
83
|
+
}, [t, u]), close: i.actions.closeListbox, select: i.actions.selectActiveOption });
|
|
84
|
+
let S = C((a) => {
|
|
85
|
+
switch (a.key) {
|
|
86
|
+
case p.Enter:
|
|
87
|
+
ct(a.currentTarget);
|
|
88
|
+
break;
|
|
89
|
+
case p.Space:
|
|
90
|
+
case p.ArrowDown:
|
|
91
|
+
a.preventDefault(), i.actions.openListbox({ focus: n.value ? L.Nothing : L.First });
|
|
92
|
+
break;
|
|
93
|
+
case p.ArrowUp:
|
|
94
|
+
a.preventDefault(), i.actions.openListbox({ focus: n.value ? L.Nothing : L.Last });
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}), I = C((a) => {
|
|
98
|
+
a.key === p.Space && a.preventDefault();
|
|
99
|
+
}), M = Ae((a) => {
|
|
100
|
+
var A;
|
|
101
|
+
i.state.listboxState === b.Open ? (ue(() => i.actions.closeListbox()), (A = i.state.buttonElement) == null || A.focus({ preventScroll: !0 })) : (a.preventDefault(), i.actions.openListbox({ focus: L.Nothing }));
|
|
102
|
+
}), m = C((a) => a.preventDefault()), y = bt([d]), f = dt(), { isFocusVisible: V, focusProps: _ } = Pe({ autoFocus: g }), { isHovered: R, hoverProps: B } = Se({ isDisabled: c }), { pressed: s, pressProps: F } = Fe({ disabled: c }), T = U({ open: r === b.Open, active: s || r === b.Open, disabled: c, invalid: n.invalid, value: n.value, hover: R, focus: V, autofocus: g }), z = O(i, (a) => a.listboxState === b.Open), k = ge(x(), { ref: E, id: d, type: Be(v, t), "aria-haspopup": "listbox", "aria-controls": u?.id, "aria-expanded": z, "aria-labelledby": y, "aria-describedby": f, disabled: c || void 0, autoFocus: g, onKeyDown: S, onKeyUp: I, onKeyPress: m }, M, _, B, F);
|
|
103
|
+
return W()({ ourProps: k, theirProps: o, slot: T, defaultTag: Lt, name: "Listbox.Button" });
|
|
104
|
+
}
|
|
105
|
+
let xe = ve(!1), St = "div", yt = fe.RenderStrategy | fe.Static;
|
|
106
|
+
function Et(v, P) {
|
|
107
|
+
let $ = ee(), { id: l = `headlessui-listbox-options-${$}`, anchor: n, portal: i = !1, modal: d = !0, transition: c = !1, ...g } = v, o = Ze(n), [E, x] = ye(null);
|
|
108
|
+
o && (i = !0);
|
|
109
|
+
let r = Y("Listbox.Options"), t = pe("Listbox.Options"), [u, w, S, I] = O(t, (e) => [e.listboxState, e.buttonElement, e.optionsElement, e.__demoMode]), M = de(w), m = de(S), y = st(), [f, V] = Ue(c, E, y !== null ? (y & J.Open) === J.Open : u === b.Open);
|
|
110
|
+
Ve(f, w, t.actions.closeListbox);
|
|
111
|
+
let _ = I ? !1 : d && u === b.Open;
|
|
112
|
+
He(_, m);
|
|
113
|
+
let R = I ? !1 : d && u === b.Open;
|
|
114
|
+
Ce(R, { allowed: K(() => [w, S], [w, S]) });
|
|
115
|
+
let B = O(t, t.selectors.didButtonMove) ? !1 : f, s = O(t, t.selectors.hasFrozenValue) && !v.static, F = et(s, r.value), T = K((e) => r.compare(F, e), [r.compare, F]), z = O(t, (e) => {
|
|
116
|
+
var N;
|
|
117
|
+
if (o == null || !((N = o?.to) != null && N.includes("selection"))) return null;
|
|
118
|
+
let ie = e.options.findIndex((Le) => T(Le.dataRef.current.value));
|
|
119
|
+
return ie === -1 && (ie = 0), ie;
|
|
120
|
+
}), k = (() => {
|
|
121
|
+
if (o == null) return;
|
|
122
|
+
if (z === null) return { ...o, inner: void 0 };
|
|
123
|
+
let e = Array.from(r.listRef.current.values());
|
|
124
|
+
return { ...o, inner: { listRef: { current: e }, index: z } };
|
|
125
|
+
})(), [a, A] = Ge(k), oe = Je(), se = Q(P, o ? a : null, t.actions.setOptionsElement, x), Z = Te();
|
|
126
|
+
Ee(() => {
|
|
127
|
+
let e = S;
|
|
128
|
+
e && u === b.Open && (pt(e) || e == null || e.focus({ preventScroll: !0 }));
|
|
129
|
+
}, [u, S]);
|
|
130
|
+
let ae = C((e) => {
|
|
131
|
+
var N;
|
|
132
|
+
switch (Z.dispose(), e.key) {
|
|
133
|
+
case p.Space:
|
|
134
|
+
if (t.state.searchQuery !== "") return e.preventDefault(), e.stopPropagation(), t.actions.search(e.key);
|
|
135
|
+
case p.Enter:
|
|
136
|
+
e.preventDefault(), e.stopPropagation(), t.actions.selectActiveOption();
|
|
137
|
+
break;
|
|
138
|
+
case X(r.orientation, { vertical: p.ArrowDown, horizontal: p.ArrowRight }):
|
|
139
|
+
return e.preventDefault(), e.stopPropagation(), t.actions.goToOption({ focus: L.Next });
|
|
140
|
+
case X(r.orientation, { vertical: p.ArrowUp, horizontal: p.ArrowLeft }):
|
|
141
|
+
return e.preventDefault(), e.stopPropagation(), t.actions.goToOption({ focus: L.Previous });
|
|
142
|
+
case p.Home:
|
|
143
|
+
case p.PageUp:
|
|
144
|
+
return e.preventDefault(), e.stopPropagation(), t.actions.goToOption({ focus: L.First });
|
|
145
|
+
case p.End:
|
|
146
|
+
case p.PageDown:
|
|
147
|
+
return e.preventDefault(), e.stopPropagation(), t.actions.goToOption({ focus: L.Last });
|
|
148
|
+
case p.Escape:
|
|
149
|
+
e.preventDefault(), e.stopPropagation(), ue(() => t.actions.closeListbox()), (N = t.state.buttonElement) == null || N.focus({ preventScroll: !0 });
|
|
150
|
+
return;
|
|
151
|
+
case p.Tab:
|
|
152
|
+
e.preventDefault(), e.stopPropagation(), ue(() => t.actions.closeListbox()), ut(t.state.buttonElement, e.shiftKey ? me.Previous : me.Next);
|
|
153
|
+
break;
|
|
154
|
+
default:
|
|
155
|
+
e.key.length === 1 && (t.actions.search(e.key), Z.setTimeout(() => t.actions.clearSearch(), 350));
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
}), re = O(t, (e) => {
|
|
159
|
+
var N;
|
|
160
|
+
return (N = e.buttonElement) == null ? void 0 : N.id;
|
|
161
|
+
}), h = U({ open: u === b.Open }), q = ge(o ? oe() : {}, { id: l, ref: se, "aria-activedescendant": O(t, t.selectors.activeDescendantId), "aria-multiselectable": r.mode === H.Multi ? !0 : void 0, "aria-labelledby": re, "aria-orientation": r.orientation, onKeyDown: ae, role: "listbox", tabIndex: u === b.Open ? 0 : void 0, style: { ...g.style, ...A, "--button-width": ke(f, w, !0).width }, ...qe(V) }), he = W(), Oe = we(() => r.mode === H.Multi ? r : { ...r, isSelected: T }, [r, T]);
|
|
162
|
+
return D.createElement(vt, { enabled: i ? v.static || f : !1, ownerDocument: M }, D.createElement(te.Provider, { value: Oe }, he({ ourProps: q, theirProps: g, slot: h, defaultTag: St, features: yt, visible: B, name: "Listbox.Options" })));
|
|
163
|
+
}
|
|
164
|
+
let wt = "div";
|
|
165
|
+
function Ft(v, P) {
|
|
166
|
+
let $ = ee(), { id: l = `headlessui-listbox-option-${$}`, disabled: n = !1, value: i, ...d } = v, c = $e(xe) === !0, g = Y("Listbox.Option"), o = pe("Listbox.Option"), E = O(o, (s) => o.selectors.isActive(s, l)), x = g.isSelected(i), r = le(null), t = ze(r), u = Ie({ disabled: n, value: i, domRef: r, get textValue() {
|
|
167
|
+
return t();
|
|
168
|
+
} }), w = Q(P, r, (s) => {
|
|
169
|
+
s ? g.listRef.current.set(l, s) : g.listRef.current.delete(l);
|
|
170
|
+
}), S = O(o, (s) => o.selectors.shouldScrollIntoView(s, l));
|
|
171
|
+
ce(() => {
|
|
172
|
+
if (S) return rt().requestAnimationFrame(() => {
|
|
173
|
+
var s, F;
|
|
174
|
+
(F = (s = r.current) == null ? void 0 : s.scrollIntoView) == null || F.call(s, { block: "nearest" });
|
|
175
|
+
});
|
|
176
|
+
}, [S, r]), ce(() => {
|
|
177
|
+
if (!c) return o.actions.registerOption(l, u), () => o.actions.unregisterOption(l);
|
|
178
|
+
}, [u, l, c]);
|
|
179
|
+
let I = C((s) => {
|
|
180
|
+
if (n) return s.preventDefault();
|
|
181
|
+
o.actions.selectOption(i);
|
|
182
|
+
}), M = C(() => {
|
|
183
|
+
if (n) return o.actions.goToOption({ focus: L.Nothing });
|
|
184
|
+
o.actions.goToOption({ focus: L.Specific, id: l });
|
|
185
|
+
}), m = Ke(), y = C((s) => m.update(s)), f = C((s) => {
|
|
186
|
+
m.wasMoved(s) && (n || E && o.state.activationTrigger === ne.Pointer || o.actions.goToOption({ focus: L.Specific, id: l }, ne.Pointer));
|
|
187
|
+
}), V = C((s) => {
|
|
188
|
+
m.wasMoved(s) && (n || E && o.state.activationTrigger === ne.Pointer && o.actions.goToOption({ focus: L.Nothing }));
|
|
189
|
+
}), _ = U({ active: E, focus: E, selected: x, disabled: n, selectedOption: x && c }), R = c ? {} : { id: l, ref: w, role: "option", tabIndex: n === !0 ? void 0 : -1, "aria-disabled": n === !0 ? !0 : void 0, "aria-selected": x, disabled: void 0, onClick: I, onFocus: M, onPointerEnter: y, onMouseEnter: y, onPointerMove: f, onMouseMove: f, onPointerLeave: V, onMouseLeave: V }, B = W();
|
|
190
|
+
return !x && c ? null : B({ ourProps: R, theirProps: d, slot: _, defaultTag: wt, name: "Listbox.Option" });
|
|
191
|
+
}
|
|
192
|
+
let Dt = be;
|
|
193
|
+
function Mt(v, P) {
|
|
194
|
+
let { options: $, placeholder: l, ...n } = v, i = { ref: Q(P) }, d = Y("ListboxSelectedOption"), c = U({}), g = d.value === void 0 || d.value === null || d.mode === H.Multi && Array.isArray(d.value) && d.value.length === 0, o = W();
|
|
195
|
+
return D.createElement(xe.Provider, { value: !0 }, o({ ourProps: i, theirProps: { ...n, children: D.createElement(D.Fragment, null, l && g ? l : $) }, slot: c, defaultTag: Dt, name: "ListboxSelectedOption" }));
|
|
196
|
+
}
|
|
197
|
+
let Rt = j(Ot), Tt = j(Pt), kt = mt, At = j(Et), Ct = j(Ft), It = j(Mt), To = Object.assign(Rt, { Button: Tt, Label: kt, Options: At, Option: Ct, SelectedOption: It });
|
|
198
|
+
export {
|
|
199
|
+
To as Listbox,
|
|
200
|
+
Tt as ListboxButton,
|
|
201
|
+
kt as ListboxLabel,
|
|
202
|
+
Ct as ListboxOption,
|
|
203
|
+
At as ListboxOptions,
|
|
204
|
+
It as ListboxSelectedOption
|
|
205
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),c=require("../../hooks/use-on-unmount.cjs"),i=require("./menu-machine.cjs"),o=r.createContext(null);function s(t){let n=r.useContext(o);if(n===null){let e=new Error(`<${t} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,u),e}return n}function u({id:t,__demoMode:n=!1}){let e=r.useMemo(()=>i.MenuMachine.new({id:t,__demoMode:n}),[]);return c.useOnUnmount(()=>e.dispose()),e}exports.MenuContext=o;exports.useMenuMachine=u;exports.useMenuMachineContext=s;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useMemo as o, createContext as r, useContext as a } from "react";
|
|
2
|
+
import { useOnUnmount as u } from "../../hooks/use-on-unmount.js";
|
|
3
|
+
import { MenuMachine as s } from "./menu-machine.js";
|
|
4
|
+
const c = r(null);
|
|
5
|
+
function l(t) {
|
|
6
|
+
let n = a(c);
|
|
7
|
+
if (n === null) {
|
|
8
|
+
let e = new Error(`<${t} /> is missing a parent <Menu /> component.`);
|
|
9
|
+
throw Error.captureStackTrace && Error.captureStackTrace(e, i), e;
|
|
10
|
+
}
|
|
11
|
+
return n;
|
|
12
|
+
}
|
|
13
|
+
function i({ id: t, __demoMode: n = !1 }) {
|
|
14
|
+
let e = o(() => s.new({ id: t, __demoMode: n }), []);
|
|
15
|
+
return u(() => e.dispose()), e;
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
c as MenuContext,
|
|
19
|
+
i as useMenuMachine,
|
|
20
|
+
l as useMenuMachineContext
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../../machine.cjs"),S=require("../../machines/stack-machine.cjs"),a=require("../../utils/calculate-active-index.cjs"),m=require("../../utils/element-movement.cjs"),E=require("../../utils/focus-management.cjs"),P=require("../../utils/match.cjs");var R=Object.defineProperty,A=(e,n,t)=>n in e?R(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,g=(e,n,t)=>(A(e,typeof n!="symbol"?n+"":n,t),t),x=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(x||{}),b=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(b||{}),M=(e=>(e[e.OpenMenu=0]="OpenMenu",e[e.CloseMenu=1]="CloseMenu",e[e.GoToItem=2]="GoToItem",e[e.Search=3]="Search",e[e.ClearSearch=4]="ClearSearch",e[e.RegisterItems=5]="RegisterItems",e[e.UnregisterItems=6]="UnregisterItems",e[e.SetButtonElement=7]="SetButtonElement",e[e.SetItemsElement=8]="SetItemsElement",e[e.SortItems=9]="SortItems",e[e.MarkButtonAsMoved=10]="MarkButtonAsMoved",e))(M||{});function p(e,n=t=>t){let t=e.activeItemIndex!==null?e.items[e.activeItemIndex]:null,i=E.sortByDomNode(n(e.items.slice()),r=>r.dataRef.current.domRef.current),s=t?i.indexOf(t):null;return s===-1&&(s=null),{items:i,activeItemIndex:s}}let F={1(e){if(e.menuState===1)return e;let n=e.buttonElement?m.ElementPositionState.Tracked(m.computeVisualPosition(e.buttonElement)):e.buttonPositionState;return{...e,activeItemIndex:null,pendingFocus:{focus:a.Focus.Nothing},menuState:1,buttonPositionState:n}},0(e,n){return e.menuState===0?e:{...e,__demoMode:!1,pendingFocus:n.focus,menuState:0,buttonPositionState:m.ElementPositionState.Idle}},2:(e,n)=>{var t,i,s,r,o;if(e.menuState===1)return e;let c={...e,searchQuery:"",activationTrigger:(t=n.trigger)!=null?t:1,__demoMode:!1};if(n.focus===a.Focus.Nothing)return{...c,activeItemIndex:null};if(n.focus===a.Focus.Specific)return{...c,activeItemIndex:e.items.findIndex(u=>u.id===n.id)};if(n.focus===a.Focus.Previous){let u=e.activeItemIndex;if(u!==null){let I=e.items[u].dataRef.current.domRef,d=a.calculateActiveIndex(n,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:l=>l.id,resolveDisabled:l=>l.dataRef.current.disabled});if(d!==null){let l=e.items[d].dataRef.current.domRef;if(((i=I.current)==null?void 0:i.previousElementSibling)===l.current||((s=l.current)==null?void 0:s.previousElementSibling)===null)return{...c,activeItemIndex:d}}}}else if(n.focus===a.Focus.Next){let u=e.activeItemIndex;if(u!==null){let I=e.items[u].dataRef.current.domRef,d=a.calculateActiveIndex(n,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:l=>l.id,resolveDisabled:l=>l.dataRef.current.disabled});if(d!==null){let l=e.items[d].dataRef.current.domRef;if(((r=I.current)==null?void 0:r.nextElementSibling)===l.current||((o=l.current)==null?void 0:o.nextElementSibling)===null)return{...c,activeItemIndex:d}}}}let v=p(e),y=a.calculateActiveIndex(n,{resolveItems:()=>v.items,resolveActiveIndex:()=>v.activeItemIndex,resolveId:u=>u.id,resolveDisabled:u=>u.dataRef.current.disabled});return{...c,...v,activeItemIndex:y}},3:(e,n)=>{let t=e.searchQuery!==""?0:1,i=e.searchQuery+n.value.toLowerCase(),s=(e.activeItemIndex!==null?e.items.slice(e.activeItemIndex+t).concat(e.items.slice(0,e.activeItemIndex+t)):e.items).find(o=>{var c;return((c=o.dataRef.current.textValue)==null?void 0:c.startsWith(i))&&!o.dataRef.current.disabled}),r=s?e.items.indexOf(s):-1;return r===-1||r===e.activeItemIndex?{...e,searchQuery:i}:{...e,searchQuery:i,activeItemIndex:r,activationTrigger:1}},4(e){return e.searchQuery===""?e:{...e,searchQuery:"",searchActiveItemIndex:null}},5:(e,n)=>{let t=e.items.concat(n.items.map(s=>s)),i=e.activeItemIndex;return e.pendingFocus.focus!==a.Focus.Nothing&&(i=a.calculateActiveIndex(e.pendingFocus,{resolveItems:()=>t,resolveActiveIndex:()=>e.activeItemIndex,resolveId:s=>s.id,resolveDisabled:s=>s.dataRef.current.disabled})),{...e,items:t,activeItemIndex:i,pendingFocus:{focus:a.Focus.Nothing},pendingShouldSort:!0}},6:(e,n)=>{let t=e.items,i=[],s=new Set(n.items);for(let[r,o]of t.entries())if(s.has(o.id)&&(i.push(r),s.delete(o.id),s.size===0))break;if(i.length>0){t=t.slice();for(let r of i.reverse())t.splice(r,1)}return{...e,items:t,activationTrigger:1}},7:(e,n)=>e.buttonElement===n.element?e:{...e,buttonElement:n.element},8:(e,n)=>e.itemsElement===n.element?e:{...e,itemsElement:n.element},9:e=>e.pendingShouldSort?{...e,...p(e),pendingShouldSort:!1}:e,10(e){return e.buttonPositionState.kind!=="Tracked"?e:{...e,buttonPositionState:m.ElementPositionState.Moved}}};class h extends f.Machine{constructor(n){super(n),g(this,"actions",{registerItem:f.batch(()=>{let t=[],i=new Set;return[(s,r)=>{i.has(r)||(i.add(r),t.push({id:s,dataRef:r}))},()=>(i.clear(),this.send({type:5,items:t.splice(0)}))]}),unregisterItem:f.batch(()=>{let t=[];return[i=>t.push(i),()=>this.send({type:6,items:t.splice(0)})]})}),g(this,"selectors",{activeDescendantId(t){var i;let s=t.activeItemIndex,r=t.items;return s===null||(i=r[s])==null?void 0:i.id},isActive(t,i){var s;let r=t.activeItemIndex,o=t.items;return r!==null?((s=o[r])==null?void 0:s.id)===i:!1},shouldScrollIntoView(t,i){return t.__demoMode||t.menuState!==0||t.activationTrigger===0?!1:this.isActive(t,i)},didButtonMove(t){return t.buttonPositionState.kind==="Moved"}}),this.on(5,()=>{this.disposables.requestAnimationFrame(()=>{this.send({type:9})})});{let t=this.state.id,i=S.stackMachines.get(null);this.disposables.add(i.on(S.ActionTypes.Push,s=>{!i.selectors.isTop(s,t)&&this.state.menuState===0&&this.send({type:1})})),this.on(0,()=>i.actions.push(t)),this.on(1,()=>i.actions.pop(t))}this.disposables.group(t=>{this.on(1,i=>{i.buttonElement&&(t.dispose(),t.add(m.detectMovement(i.buttonElement,i.buttonPositionState,()=>{this.send({type:10})})))})})}static new({id:n,__demoMode:t=!1}){return new h({id:n,__demoMode:t,menuState:t?0:1,buttonElement:null,itemsElement:null,items:[],searchQuery:"",activeItemIndex:null,activationTrigger:1,pendingShouldSort:!1,pendingFocus:{focus:a.Focus.Nothing},buttonPositionState:m.ElementPositionState.Idle})}reduce(n,t){return P.match(t.type,F,n,t)}}exports.ActionTypes=M;exports.ActivationTrigger=b;exports.MenuMachine=h;exports.MenuState=x;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Machine as b, batch as h } from "../../machine.js";
|
|
2
|
+
import { stackMachines as M, ActionTypes as y } from "../../machines/stack-machine.js";
|
|
3
|
+
import { Focus as d, calculateActiveIndex as m } from "../../utils/calculate-active-index.js";
|
|
4
|
+
import { detectMovement as E, ElementPositionState as v, computeVisualPosition as R } from "../../utils/element-movement.js";
|
|
5
|
+
import { sortByDomNode as P } from "../../utils/focus-management.js";
|
|
6
|
+
import { match as A } from "../../utils/match.js";
|
|
7
|
+
var T = Object.defineProperty, k = (e, n, t) => n in e ? T(e, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[n] = t, p = (e, n, t) => (k(e, typeof n != "symbol" ? n + "" : n, t), t), O = ((e) => (e[e.Open = 0] = "Open", e[e.Closed = 1] = "Closed", e))(O || {}), _ = ((e) => (e[e.Pointer = 0] = "Pointer", e[e.Other = 1] = "Other", e))(_ || {}), C = ((e) => (e[e.OpenMenu = 0] = "OpenMenu", e[e.CloseMenu = 1] = "CloseMenu", e[e.GoToItem = 2] = "GoToItem", e[e.Search = 3] = "Search", e[e.ClearSearch = 4] = "ClearSearch", e[e.RegisterItems = 5] = "RegisterItems", e[e.UnregisterItems = 6] = "UnregisterItems", e[e.SetButtonElement = 7] = "SetButtonElement", e[e.SetItemsElement = 8] = "SetItemsElement", e[e.SortItems = 9] = "SortItems", e[e.MarkButtonAsMoved = 10] = "MarkButtonAsMoved", e))(C || {});
|
|
8
|
+
function S(e, n = (t) => t) {
|
|
9
|
+
let t = e.activeItemIndex !== null ? e.items[e.activeItemIndex] : null, i = P(n(e.items.slice()), (r) => r.dataRef.current.domRef.current), s = t ? i.indexOf(t) : null;
|
|
10
|
+
return s === -1 && (s = null), { items: i, activeItemIndex: s };
|
|
11
|
+
}
|
|
12
|
+
let F = { 1(e) {
|
|
13
|
+
if (e.menuState === 1) return e;
|
|
14
|
+
let n = e.buttonElement ? v.Tracked(R(e.buttonElement)) : e.buttonPositionState;
|
|
15
|
+
return { ...e, activeItemIndex: null, pendingFocus: { focus: d.Nothing }, menuState: 1, buttonPositionState: n };
|
|
16
|
+
}, 0(e, n) {
|
|
17
|
+
return e.menuState === 0 ? e : { ...e, __demoMode: !1, pendingFocus: n.focus, menuState: 0, buttonPositionState: v.Idle };
|
|
18
|
+
}, 2: (e, n) => {
|
|
19
|
+
var t, i, s, r, o;
|
|
20
|
+
if (e.menuState === 1) return e;
|
|
21
|
+
let u = { ...e, searchQuery: "", activationTrigger: (t = n.trigger) != null ? t : 1, __demoMode: !1 };
|
|
22
|
+
if (n.focus === d.Nothing) return { ...u, activeItemIndex: null };
|
|
23
|
+
if (n.focus === d.Specific) return { ...u, activeItemIndex: e.items.findIndex((a) => a.id === n.id) };
|
|
24
|
+
if (n.focus === d.Previous) {
|
|
25
|
+
let a = e.activeItemIndex;
|
|
26
|
+
if (a !== null) {
|
|
27
|
+
let f = e.items[a].dataRef.current.domRef, c = m(n, { resolveItems: () => e.items, resolveActiveIndex: () => e.activeItemIndex, resolveId: (l) => l.id, resolveDisabled: (l) => l.dataRef.current.disabled });
|
|
28
|
+
if (c !== null) {
|
|
29
|
+
let l = e.items[c].dataRef.current.domRef;
|
|
30
|
+
if (((i = f.current) == null ? void 0 : i.previousElementSibling) === l.current || ((s = l.current) == null ? void 0 : s.previousElementSibling) === null) return { ...u, activeItemIndex: c };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
} else if (n.focus === d.Next) {
|
|
34
|
+
let a = e.activeItemIndex;
|
|
35
|
+
if (a !== null) {
|
|
36
|
+
let f = e.items[a].dataRef.current.domRef, c = m(n, { resolveItems: () => e.items, resolveActiveIndex: () => e.activeItemIndex, resolveId: (l) => l.id, resolveDisabled: (l) => l.dataRef.current.disabled });
|
|
37
|
+
if (c !== null) {
|
|
38
|
+
let l = e.items[c].dataRef.current.domRef;
|
|
39
|
+
if (((r = f.current) == null ? void 0 : r.nextElementSibling) === l.current || ((o = l.current) == null ? void 0 : o.nextElementSibling) === null) return { ...u, activeItemIndex: c };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
let I = S(e), x = m(n, { resolveItems: () => I.items, resolveActiveIndex: () => I.activeItemIndex, resolveId: (a) => a.id, resolveDisabled: (a) => a.dataRef.current.disabled });
|
|
44
|
+
return { ...u, ...I, activeItemIndex: x };
|
|
45
|
+
}, 3: (e, n) => {
|
|
46
|
+
let t = e.searchQuery !== "" ? 0 : 1, i = e.searchQuery + n.value.toLowerCase(), s = (e.activeItemIndex !== null ? e.items.slice(e.activeItemIndex + t).concat(e.items.slice(0, e.activeItemIndex + t)) : e.items).find((o) => {
|
|
47
|
+
var u;
|
|
48
|
+
return ((u = o.dataRef.current.textValue) == null ? void 0 : u.startsWith(i)) && !o.dataRef.current.disabled;
|
|
49
|
+
}), r = s ? e.items.indexOf(s) : -1;
|
|
50
|
+
return r === -1 || r === e.activeItemIndex ? { ...e, searchQuery: i } : { ...e, searchQuery: i, activeItemIndex: r, activationTrigger: 1 };
|
|
51
|
+
}, 4(e) {
|
|
52
|
+
return e.searchQuery === "" ? e : { ...e, searchQuery: "", searchActiveItemIndex: null };
|
|
53
|
+
}, 5: (e, n) => {
|
|
54
|
+
let t = e.items.concat(n.items.map((s) => s)), i = e.activeItemIndex;
|
|
55
|
+
return e.pendingFocus.focus !== d.Nothing && (i = m(e.pendingFocus, { resolveItems: () => t, resolveActiveIndex: () => e.activeItemIndex, resolveId: (s) => s.id, resolveDisabled: (s) => s.dataRef.current.disabled })), { ...e, items: t, activeItemIndex: i, pendingFocus: { focus: d.Nothing }, pendingShouldSort: !0 };
|
|
56
|
+
}, 6: (e, n) => {
|
|
57
|
+
let t = e.items, i = [], s = new Set(n.items);
|
|
58
|
+
for (let [r, o] of t.entries()) if (s.has(o.id) && (i.push(r), s.delete(o.id), s.size === 0)) break;
|
|
59
|
+
if (i.length > 0) {
|
|
60
|
+
t = t.slice();
|
|
61
|
+
for (let r of i.reverse()) t.splice(r, 1);
|
|
62
|
+
}
|
|
63
|
+
return { ...e, items: t, activationTrigger: 1 };
|
|
64
|
+
}, 7: (e, n) => e.buttonElement === n.element ? e : { ...e, buttonElement: n.element }, 8: (e, n) => e.itemsElement === n.element ? e : { ...e, itemsElement: n.element }, 9: (e) => e.pendingShouldSort ? { ...e, ...S(e), pendingShouldSort: !1 } : e, 10(e) {
|
|
65
|
+
return e.buttonPositionState.kind !== "Tracked" ? e : { ...e, buttonPositionState: v.Moved };
|
|
66
|
+
} };
|
|
67
|
+
class g extends b {
|
|
68
|
+
constructor(n) {
|
|
69
|
+
super(n), p(this, "actions", { registerItem: h(() => {
|
|
70
|
+
let t = [], i = /* @__PURE__ */ new Set();
|
|
71
|
+
return [(s, r) => {
|
|
72
|
+
i.has(r) || (i.add(r), t.push({ id: s, dataRef: r }));
|
|
73
|
+
}, () => (i.clear(), this.send({ type: 5, items: t.splice(0) }))];
|
|
74
|
+
}), unregisterItem: h(() => {
|
|
75
|
+
let t = [];
|
|
76
|
+
return [(i) => t.push(i), () => this.send({ type: 6, items: t.splice(0) })];
|
|
77
|
+
}) }), p(this, "selectors", { activeDescendantId(t) {
|
|
78
|
+
var i;
|
|
79
|
+
let s = t.activeItemIndex, r = t.items;
|
|
80
|
+
return s === null || (i = r[s]) == null ? void 0 : i.id;
|
|
81
|
+
}, isActive(t, i) {
|
|
82
|
+
var s;
|
|
83
|
+
let r = t.activeItemIndex, o = t.items;
|
|
84
|
+
return r !== null ? ((s = o[r]) == null ? void 0 : s.id) === i : !1;
|
|
85
|
+
}, shouldScrollIntoView(t, i) {
|
|
86
|
+
return t.__demoMode || t.menuState !== 0 || t.activationTrigger === 0 ? !1 : this.isActive(t, i);
|
|
87
|
+
}, didButtonMove(t) {
|
|
88
|
+
return t.buttonPositionState.kind === "Moved";
|
|
89
|
+
} }), this.on(5, () => {
|
|
90
|
+
this.disposables.requestAnimationFrame(() => {
|
|
91
|
+
this.send({ type: 9 });
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
{
|
|
95
|
+
let t = this.state.id, i = M.get(null);
|
|
96
|
+
this.disposables.add(i.on(y.Push, (s) => {
|
|
97
|
+
!i.selectors.isTop(s, t) && this.state.menuState === 0 && this.send({ type: 1 });
|
|
98
|
+
})), this.on(0, () => i.actions.push(t)), this.on(1, () => i.actions.pop(t));
|
|
99
|
+
}
|
|
100
|
+
this.disposables.group((t) => {
|
|
101
|
+
this.on(1, (i) => {
|
|
102
|
+
i.buttonElement && (t.dispose(), t.add(E(i.buttonElement, i.buttonPositionState, () => {
|
|
103
|
+
this.send({ type: 10 });
|
|
104
|
+
})));
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
static new({ id: n, __demoMode: t = !1 }) {
|
|
109
|
+
return new g({ id: n, __demoMode: t, menuState: t ? 0 : 1, buttonElement: null, itemsElement: null, items: [], searchQuery: "", activeItemIndex: null, activationTrigger: 1, pendingShouldSort: !1, pendingFocus: { focus: d.Nothing }, buttonPositionState: v.Idle });
|
|
110
|
+
}
|
|
111
|
+
reduce(n, t) {
|
|
112
|
+
return A(t.type, F, n, t);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export {
|
|
116
|
+
C as ActionTypes,
|
|
117
|
+
_ as ActivationTrigger,
|
|
118
|
+
g as MenuMachine,
|
|
119
|
+
O as MenuState
|
|
120
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ce=require("../../../../../@react-aria/focus/dist/useFocusRing.cjs"),pe=require("../../../../../@react-aria/interactions/dist/useHover.cjs"),r=require("react"),$=require("react-dom"),de=require("../../hooks/use-active-press.cjs"),fe=require("../../hooks/use-disposables.cjs"),ye=require("../../hooks/use-element-size.cjs"),b=require("../../hooks/use-event.cjs"),me=require("../../hooks/use-handle-toggle.cjs"),ve=require("../../hooks/use-inert-others.cjs"),B=require("../../hooks/use-iso-morphic-effect.cjs"),Me=require("../../hooks/use-on-disappear.cjs"),Se=require("../../hooks/use-outside-click.cjs"),Z=require("../../hooks/use-owner.cjs"),N=require("../../hooks/use-quick-release.cjs"),ge=require("../../hooks/use-resolve-button-type.cjs"),be=require("../../hooks/use-scroll-lock.cjs"),U=require("../../hooks/use-slot.cjs"),V=require("../../hooks/use-sync-refs.cjs"),Te=require("../../hooks/use-text-value.cjs"),he=require("../../hooks/use-tracked-pointer.cjs"),J=require("../../hooks/use-transition.cjs"),Pe=require("../../hooks/use-tree-walker.cjs"),C=require("../../internal/floating.cjs"),K=require("../../internal/open-closed.cjs"),Ee=require("../../machines/stack-machine.cjs"),F=require("../../react-glue.cjs"),P=require("../../utils/calculate-active-index.cjs"),Ae=require("../../utils/disposables.cjs"),Ie=require("../../utils/dom.cjs"),k=require("../../utils/focus-management.cjs"),Fe=require("../../utils/match.cjs"),Re=require("../../utils/owner.cjs"),p=require("../../utils/render.cjs"),qe=require("../description/description.cjs"),f=require("../keyboard.cjs"),z=require("../label/label.cjs"),ke=require("../portal/portal.cjs"),e=require("./menu-machine.cjs"),W=require("./menu-machine-glue.cjs");let Oe=r.Fragment;function we(y,S){let l=r.useId(),{__demoMode:a=!1,...c}=y,i=W.useMenuMachine({id:l,__demoMode:a}),[n,E,M]=F.useSlice(i,m=>[m.menuState,m.itemsElement,m.buttonElement]),A=V.useSyncRefs(S),s=Ee.stackMachines.get(null),q=F.useSlice(s,r.useCallback(m=>s.selectors.isTop(m,l),[s,l]));Se.useOutsideClick(q,[M,E],(m,v)=>{var g;i.send({type:e.ActionTypes.CloseMenu}),k.isFocusableElement(v,k.FocusableMode.Loose)||(m.preventDefault(),(g=i.state.buttonElement)==null||g.focus())});let I=b.useEvent(()=>{i.send({type:e.ActionTypes.CloseMenu})}),T=U.useSlot({open:n===e.MenuState.Open,close:I}),d={ref:A},h=p.useRender();return r.createElement(C.FloatingProvider,null,r.createElement(W.MenuContext.Provider,{value:i},r.createElement(K.OpenClosedProvider,{value:Fe.match(n,{[e.MenuState.Open]:K.State.Open,[e.MenuState.Closed]:K.State.Closed})},h({ourProps:d,theirProps:c,slot:T,defaultTag:Oe,name:"Menu"}))))}let De="button";function Ce(y,S){let l=W.useMenuMachineContext("Menu.Button"),a=r.useId(),{id:c=`headlessui-menu-button-${a}`,disabled:i=!1,autoFocus:n=!1,...E}=y,M=r.useRef(null),A=C.useFloatingReferenceProps(),s=V.useSyncRefs(S,M,C.useFloatingReference(),b.useEvent(o=>l.send({type:e.ActionTypes.SetButtonElement,element:o}))),q=b.useEvent(o=>{switch(o.key){case f.Keys.Space:case f.Keys.Enter:case f.Keys.ArrowDown:o.preventDefault(),o.stopPropagation(),l.send({type:e.ActionTypes.OpenMenu,focus:{focus:P.Focus.First}});break;case f.Keys.ArrowUp:o.preventDefault(),o.stopPropagation(),l.send({type:e.ActionTypes.OpenMenu,focus:{focus:P.Focus.Last}});break}}),I=b.useEvent(o=>{o.key===f.Keys.Space&&o.preventDefault()}),[T,d,h]=F.useSlice(l,o=>[o.menuState,o.buttonElement,o.itemsElement]),m=T===e.MenuState.Open;N.useQuickRelease(m,{trigger:d,action:r.useCallback(o=>{if(d!=null&&d.contains(o.target))return N.Action.Ignore;let u=o.target.closest('[role="menuitem"]:not([data-disabled])');return Ie.isHTMLElement(u)?N.Action.Select(u):h!=null&&h.contains(o.target)?N.Action.Ignore:N.Action.Close},[d,h]),close:r.useCallback(()=>l.send({type:e.ActionTypes.CloseMenu}),[]),select:r.useCallback(o=>o.click(),[])});let v=me.useHandleToggle(o=>{var u;i||(T===e.MenuState.Open?($.flushSync(()=>l.send({type:e.ActionTypes.CloseMenu})),(u=M.current)==null||u.focus({preventScroll:!0})):(o.preventDefault(),l.send({type:e.ActionTypes.OpenMenu,focus:{focus:P.Focus.Nothing},trigger:e.ActivationTrigger.Pointer})))}),{isFocusVisible:g,focusProps:O}=ce.useFocusRing({autoFocus:n}),{isHovered:L,hoverProps:w}=pe.useHover({isDisabled:i}),{pressed:R,pressProps:x}=de.useActivePress({disabled:i}),D=U.useSlot({open:T===e.MenuState.Open,active:R||T===e.MenuState.Open,disabled:i,hover:L,focus:g,autofocus:n}),G=p.mergeProps(A(),{ref:s,id:c,type:ge.useResolveButtonType(y,M.current),"aria-haspopup":"menu","aria-controls":h?.id,"aria-expanded":T===e.MenuState.Open,disabled:i||void 0,autoFocus:n,onKeyDown:q,onKeyUp:I},v,O,w,x);return p.useRender()({ourProps:G,theirProps:E,slot:D,defaultTag:De,name:"Menu.Button"})}let Ke="div",Le=p.RenderFeatures.RenderStrategy|p.RenderFeatures.Static;function xe(y,S){let l=r.useId(),{id:a=`headlessui-menu-items-${l}`,anchor:c,portal:i=!1,modal:n=!0,transition:E=!1,...M}=y,A=C.useResolvedAnchor(c),s=W.useMenuMachineContext("Menu.Items"),[q,I]=C.useFloatingPanel(A),T=C.useFloatingPanelProps(),[d,h]=r.useState(null),m=V.useSyncRefs(S,A?q:null,b.useEvent(t=>s.send({type:e.ActionTypes.SetItemsElement,element:t})),h),[v,g]=F.useSlice(s,t=>[t.menuState,t.buttonElement]),O=Z.useOwnerDocument(g),L=Z.useOwnerDocument(d);A&&(i=!0);let w=K.useOpenClosed(),[R,x]=J.useTransition(E,d,w!==null?(w&K.State.Open)===K.State.Open:v===e.MenuState.Open);Me.useOnDisappear(R,g,()=>{s.send({type:e.ActionTypes.CloseMenu})});let D=F.useSlice(s,t=>t.__demoMode),G=D?!1:n&&v===e.MenuState.Open;be.useScrollLock(G,L);let o=D?!1:n&&v===e.MenuState.Open;ve.useInertOthers(o,{allowed:r.useCallback(()=>[g,d],[g,d])});let u=F.useSlice(s,s.selectors.didButtonMove)?!1:R;r.useEffect(()=>{let t=d;t&&v===e.MenuState.Open&&(Re.isActiveElement(t)||t.focus({preventScroll:!0}))},[v,d]),Pe.useTreeWalker(v===e.MenuState.Open,{container:d,accept(t){return t.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:t.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(t){t.setAttribute("role","none")}});let H=fe.useDisposables(),oe=b.useEvent(t=>{var _,Q,j;switch(H.dispose(),t.key){case f.Keys.Space:if(s.state.searchQuery!=="")return t.preventDefault(),t.stopPropagation(),s.send({type:e.ActionTypes.Search,value:t.key});case f.Keys.Enter:if(t.preventDefault(),t.stopPropagation(),s.state.activeItemIndex!==null){let{dataRef:le}=s.state.items[s.state.activeItemIndex];(Q=(_=le.current)==null?void 0:_.domRef.current)==null||Q.click()}s.send({type:e.ActionTypes.CloseMenu}),k.restoreFocusIfNecessary(s.state.buttonElement);break;case f.Keys.ArrowDown:return t.preventDefault(),t.stopPropagation(),s.send({type:e.ActionTypes.GoToItem,focus:P.Focus.Next});case f.Keys.ArrowUp:return t.preventDefault(),t.stopPropagation(),s.send({type:e.ActionTypes.GoToItem,focus:P.Focus.Previous});case f.Keys.Home:case f.Keys.PageUp:return t.preventDefault(),t.stopPropagation(),s.send({type:e.ActionTypes.GoToItem,focus:P.Focus.First});case f.Keys.End:case f.Keys.PageDown:return t.preventDefault(),t.stopPropagation(),s.send({type:e.ActionTypes.GoToItem,focus:P.Focus.Last});case f.Keys.Escape:t.preventDefault(),t.stopPropagation(),$.flushSync(()=>s.send({type:e.ActionTypes.CloseMenu})),(j=s.state.buttonElement)==null||j.focus({preventScroll:!0});break;case f.Keys.Tab:t.preventDefault(),t.stopPropagation(),$.flushSync(()=>s.send({type:e.ActionTypes.CloseMenu})),k.focusFrom(s.state.buttonElement,t.shiftKey?k.Focus.Previous:k.Focus.Next);break;default:t.key.length===1&&(s.send({type:e.ActionTypes.Search,value:t.key}),H.setTimeout(()=>s.send({type:e.ActionTypes.ClearSearch}),350));break}}),re=b.useEvent(t=>{t.key===f.Keys.Space&&t.preventDefault()}),ue=U.useSlot({open:v===e.MenuState.Open}),ae=p.mergeProps(A?T():{},{"aria-activedescendant":F.useSlice(s,s.selectors.activeDescendantId),"aria-labelledby":F.useSlice(s,t=>{var _;return(_=t.buttonElement)==null?void 0:_.id}),id:a,onKeyDown:oe,onKeyUp:re,role:"menu",tabIndex:v===e.MenuState.Open?0:void 0,ref:m,style:{...M.style,...I,"--button-width":ye.useElementSize(R,g,!0).width},...J.transitionDataAttributes(x)}),ie=p.useRender();return r.createElement(ke.Portal,{enabled:i?y.static||R:!1,ownerDocument:O},ie({ourProps:ae,theirProps:M,slot:ue,defaultTag:Ke,features:Le,visible:u,name:"Menu.Items"}))}let Ge=r.Fragment;function He(y,S){let l=r.useId(),{id:a=`headlessui-menu-item-${l}`,disabled:c=!1,...i}=y,n=W.useMenuMachineContext("Menu.Item"),E=F.useSlice(n,u=>n.selectors.isActive(u,a)),M=r.useRef(null),A=V.useSyncRefs(S,M),s=F.useSlice(n,u=>n.selectors.shouldScrollIntoView(u,a));B.useIsoMorphicEffect(()=>{if(s)return Ae.disposables().requestAnimationFrame(()=>{var u,H;(H=(u=M.current)==null?void 0:u.scrollIntoView)==null||H.call(u,{block:"nearest"})})},[s,M]);let q=Te.useTextValue(M),I=r.useRef({disabled:c,domRef:M,get textValue(){return q()}});B.useIsoMorphicEffect(()=>{I.current.disabled=c},[I,c]),B.useIsoMorphicEffect(()=>(n.actions.registerItem(a,I),()=>n.actions.unregisterItem(a)),[I,a]);let T=b.useEvent(()=>{n.send({type:e.ActionTypes.CloseMenu})}),d=b.useEvent(u=>{if(c)return u.preventDefault();n.send({type:e.ActionTypes.CloseMenu}),k.restoreFocusIfNecessary(n.state.buttonElement)}),h=b.useEvent(()=>{if(c)return n.send({type:e.ActionTypes.GoToItem,focus:P.Focus.Nothing});n.send({type:e.ActionTypes.GoToItem,focus:P.Focus.Specific,id:a})}),m=he.useTrackedPointer(),v=b.useEvent(u=>m.update(u)),g=b.useEvent(u=>{m.wasMoved(u)&&(c||E||n.send({type:e.ActionTypes.GoToItem,focus:P.Focus.Specific,id:a,trigger:e.ActivationTrigger.Pointer}))}),O=b.useEvent(u=>{m.wasMoved(u)&&(c||E&&n.state.activationTrigger===e.ActivationTrigger.Pointer&&n.send({type:e.ActionTypes.GoToItem,focus:P.Focus.Nothing}))}),[L,w]=z.useLabels(),[R,x]=qe.useDescriptions(),D=U.useSlot({active:E,focus:E,disabled:c,close:T}),G={id:a,ref:A,role:"menuitem",tabIndex:c===!0?void 0:-1,"aria-disabled":c===!0?!0:void 0,"aria-labelledby":L,"aria-describedby":R,disabled:void 0,onClick:d,onFocus:h,onPointerEnter:v,onMouseEnter:v,onPointerMove:g,onMouseMove:g,onPointerLeave:O,onMouseLeave:O},o=p.useRender();return r.createElement(w,null,r.createElement(x,null,o({ourProps:G,theirProps:i,slot:D,defaultTag:Ge,name:"Menu.Item"})))}let _e="div";function Ne(y,S){let[l,a]=z.useLabels(),c=y,i={ref:S,"aria-labelledby":l,role:"group"},n=p.useRender();return r.createElement(a,null,n({ourProps:i,theirProps:c,slot:{},defaultTag:_e,name:"Menu.Section"}))}let We="header";function Be(y,S){let l=r.useId(),{id:a=`headlessui-menu-heading-${l}`,...c}=y,i=z.useLabelContext();B.useIsoMorphicEffect(()=>i.register(a),[a,i.register]);let n={id:a,ref:S,role:"presentation",...i.props};return p.useRender()({ourProps:n,theirProps:c,slot:{},defaultTag:We,name:"Menu.Heading"})}let Ue="div";function Ve(y,S){let l=y,a={ref:S,role:"separator"};return p.useRender()({ourProps:a,theirProps:l,slot:{},defaultTag:Ue,name:"Menu.Separator"})}let $e=p.forwardRefWithAs(we),Y=p.forwardRefWithAs(Ce),X=p.forwardRefWithAs(xe),ee=p.forwardRefWithAs(He),te=p.forwardRefWithAs(Ne),se=p.forwardRefWithAs(Be),ne=p.forwardRefWithAs(Ve),ze=Object.assign($e,{Button:Y,Items:X,Item:ee,Section:te,Heading:se,Separator:ne});exports.Menu=ze;exports.MenuButton=Y;exports.MenuHeading=se;exports.MenuItem=ee;exports.MenuItems=X;exports.MenuSection=te;exports.MenuSeparator=ne;
|