@ariakit/react-components 0.1.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/CHANGELOG.md +20 -0
- package/dist/button/button.d.ts +2 -0
- package/dist/button/button.js +53 -0
- package/dist/button/button.js.map +1 -0
- package/dist/button-Cp853csH.d.ts +34 -0
- package/dist/button-Cp853csH.d.ts.map +1 -0
- package/dist/checkbox/checkbox-check.d.ts +56 -0
- package/dist/checkbox/checkbox-check.d.ts.map +1 -0
- package/dist/checkbox/checkbox-check.js +77 -0
- package/dist/checkbox/checkbox-check.js.map +1 -0
- package/dist/checkbox/checkbox-checked-context.d.ts +5 -0
- package/dist/checkbox/checkbox-checked-context.d.ts.map +1 -0
- package/dist/checkbox/checkbox-checked-context.js +8 -0
- package/dist/checkbox/checkbox-checked-context.js.map +1 -0
- package/dist/checkbox/checkbox-context.d.ts +24 -0
- package/dist/checkbox/checkbox-context.d.ts.map +1 -0
- package/dist/checkbox/checkbox-context.js +26 -0
- package/dist/checkbox/checkbox-context.js.map +1 -0
- package/dist/checkbox/checkbox-provider.d.ts +35 -0
- package/dist/checkbox/checkbox-provider.d.ts.map +1 -0
- package/dist/checkbox/checkbox-provider.js +15 -0
- package/dist/checkbox/checkbox-provider.js.map +1 -0
- package/dist/checkbox/checkbox-store.d.ts +2 -0
- package/dist/checkbox/checkbox-store.js +18 -0
- package/dist/checkbox/checkbox-store.js.map +1 -0
- package/dist/checkbox/checkbox.d.ts +91 -0
- package/dist/checkbox/checkbox.d.ts.map +1 -0
- package/dist/checkbox/checkbox.js +148 -0
- package/dist/checkbox/checkbox.js.map +1 -0
- package/dist/checkbox-store-CYZPR4N4.d.ts +38 -0
- package/dist/checkbox-store-CYZPR4N4.d.ts.map +1 -0
- package/dist/collection/collection-context.d.ts +24 -0
- package/dist/collection/collection-context.d.ts.map +1 -0
- package/dist/collection/collection-context.js +26 -0
- package/dist/collection/collection-context.js.map +1 -0
- package/dist/collection/collection-item-offscreen.d.ts +2 -0
- package/dist/collection/collection-item-offscreen.js +88 -0
- package/dist/collection/collection-item-offscreen.js.map +1 -0
- package/dist/collection/collection-item.d.ts +2 -0
- package/dist/collection/collection-item.js +69 -0
- package/dist/collection/collection-item.js.map +1 -0
- package/dist/collection/collection-provider.d.ts +26 -0
- package/dist/collection/collection-provider.d.ts.map +1 -0
- package/dist/collection/collection-provider.js +15 -0
- package/dist/collection/collection-provider.js.map +1 -0
- package/dist/collection/collection-renderer.d.ts +2 -0
- package/dist/collection/collection-renderer.js +580 -0
- package/dist/collection/collection-renderer.js.map +1 -0
- package/dist/collection/collection-store.d.ts +2 -0
- package/dist/collection/collection-store.js +18 -0
- package/dist/collection/collection-store.js.map +1 -0
- package/dist/collection/collection.d.ts +55 -0
- package/dist/collection/collection.d.ts.map +1 -0
- package/dist/collection/collection.js +55 -0
- package/dist/collection/collection.js.map +1 -0
- package/dist/collection-item-C-g2BwVF.d.ts +84 -0
- package/dist/collection-item-C-g2BwVF.d.ts.map +1 -0
- package/dist/collection-item-offscreen-DyXa-sqj.d.ts +30 -0
- package/dist/collection-item-offscreen-DyXa-sqj.d.ts.map +1 -0
- package/dist/collection-renderer-DsPD9ksD.d.ts +469 -0
- package/dist/collection-renderer-DsPD9ksD.d.ts.map +1 -0
- package/dist/collection-store-CbwzYsWf.d.ts +42 -0
- package/dist/collection-store-CbwzYsWf.d.ts.map +1 -0
- package/dist/combobox/combobox-cancel.d.ts +62 -0
- package/dist/combobox/combobox-cancel.d.ts.map +1 -0
- package/dist/combobox/combobox-cancel.js +98 -0
- package/dist/combobox/combobox-cancel.js.map +1 -0
- package/dist/combobox/combobox-context.d.ts +27 -0
- package/dist/combobox/combobox-context.d.ts.map +1 -0
- package/dist/combobox/combobox-context.js +32 -0
- package/dist/combobox/combobox-context.js.map +1 -0
- package/dist/combobox/combobox-disclosure.d.ts +63 -0
- package/dist/combobox/combobox-disclosure.d.ts.map +1 -0
- package/dist/combobox/combobox-disclosure.js +108 -0
- package/dist/combobox/combobox-disclosure.js.map +1 -0
- package/dist/combobox/combobox-group-label.d.ts +56 -0
- package/dist/combobox/combobox-group-label.d.ts.map +1 -0
- package/dist/combobox/combobox-group-label.js +47 -0
- package/dist/combobox/combobox-group-label.js.map +1 -0
- package/dist/combobox/combobox-group.d.ts +63 -0
- package/dist/combobox/combobox-group.d.ts.map +1 -0
- package/dist/combobox/combobox-group.js +67 -0
- package/dist/combobox/combobox-group.js.map +1 -0
- package/dist/combobox/combobox-item-check.d.ts +61 -0
- package/dist/combobox/combobox-item-check.d.ts.map +1 -0
- package/dist/combobox/combobox-item-check.js +62 -0
- package/dist/combobox/combobox-item-check.js.map +1 -0
- package/dist/combobox/combobox-item-offscreen.d.ts +34 -0
- package/dist/combobox/combobox-item-offscreen.d.ts.map +1 -0
- package/dist/combobox/combobox-item-offscreen.js +53 -0
- package/dist/combobox/combobox-item-offscreen.js.map +1 -0
- package/dist/combobox/combobox-item-value.d.ts +103 -0
- package/dist/combobox/combobox-item-value.d.ts.map +1 -0
- package/dist/combobox/combobox-item-value.js +143 -0
- package/dist/combobox/combobox-item-value.js.map +1 -0
- package/dist/combobox/combobox-item.d.ts +146 -0
- package/dist/combobox/combobox-item.d.ts.map +1 -0
- package/dist/combobox/combobox-item.js +157 -0
- package/dist/combobox/combobox-item.js.map +1 -0
- package/dist/combobox/combobox-label.d.ts +50 -0
- package/dist/combobox/combobox-label.d.ts.map +1 -0
- package/dist/combobox/combobox-label.js +51 -0
- package/dist/combobox/combobox-label.js.map +1 -0
- package/dist/combobox/combobox-list.d.ts +55 -0
- package/dist/combobox/combobox-list.d.ts.map +1 -0
- package/dist/combobox/combobox-list.js +106 -0
- package/dist/combobox/combobox-list.js.map +1 -0
- package/dist/combobox/combobox-popover.d.ts +46 -0
- package/dist/combobox/combobox-popover.d.ts.map +1 -0
- package/dist/combobox/combobox-popover.js +115 -0
- package/dist/combobox/combobox-popover.js.map +1 -0
- package/dist/combobox/combobox-provider.d.ts +30 -0
- package/dist/combobox/combobox-provider.d.ts.map +1 -0
- package/dist/combobox/combobox-provider.js +15 -0
- package/dist/combobox/combobox-provider.js.map +1 -0
- package/dist/combobox/combobox-row.d.ts +66 -0
- package/dist/combobox/combobox-row.d.ts.map +1 -0
- package/dist/combobox/combobox-row.js +70 -0
- package/dist/combobox/combobox-row.js.map +1 -0
- package/dist/combobox/combobox-separator.d.ts +61 -0
- package/dist/combobox/combobox-separator.d.ts.map +1 -0
- package/dist/combobox/combobox-separator.js +60 -0
- package/dist/combobox/combobox-separator.js.map +1 -0
- package/dist/combobox/combobox-store.d.ts +2 -0
- package/dist/combobox/combobox-store.js +33 -0
- package/dist/combobox/combobox-store.js.map +1 -0
- package/dist/combobox/combobox-value.d.ts +49 -0
- package/dist/combobox/combobox-value.d.ts.map +1 -0
- package/dist/combobox/combobox-value.js +40 -0
- package/dist/combobox/combobox-value.js.map +1 -0
- package/dist/combobox/combobox.d.ts +268 -0
- package/dist/combobox/combobox.d.ts.map +1 -0
- package/dist/combobox/combobox.js +399 -0
- package/dist/combobox/combobox.js.map +1 -0
- package/dist/combobox-store-DEVQ45mZ.d.ts +80 -0
- package/dist/combobox-store-DEVQ45mZ.d.ts.map +1 -0
- package/dist/command/command.d.ts +2 -0
- package/dist/command/command.js +130 -0
- package/dist/command/command.js.map +1 -0
- package/dist/command-DckndCUK.d.ts +59 -0
- package/dist/command-DckndCUK.d.ts.map +1 -0
- package/dist/composite/composite-container.d.ts +59 -0
- package/dist/composite/composite-container.d.ts.map +1 -0
- package/dist/composite/composite-container.js +164 -0
- package/dist/composite/composite-container.js.map +1 -0
- package/dist/composite/composite-context.d.ts +34 -0
- package/dist/composite/composite-context.d.ts.map +1 -0
- package/dist/composite/composite-context.js +30 -0
- package/dist/composite/composite-context.js.map +1 -0
- package/dist/composite/composite-group-label.d.ts +55 -0
- package/dist/composite/composite-group-label.d.ts.map +1 -0
- package/dist/composite/composite-group-label.js +46 -0
- package/dist/composite/composite-group-label.js.map +1 -0
- package/dist/composite/composite-group.d.ts +60 -0
- package/dist/composite/composite-group.d.ts.map +1 -0
- package/dist/composite/composite-group.js +51 -0
- package/dist/composite/composite-group.js.map +1 -0
- package/dist/composite/composite-hover.d.ts +2 -0
- package/dist/composite/composite-hover.js +114 -0
- package/dist/composite/composite-hover.js.map +1 -0
- package/dist/composite/composite-input.d.ts +55 -0
- package/dist/composite/composite-input.d.ts.map +1 -0
- package/dist/composite/composite-input.js +91 -0
- package/dist/composite/composite-input.js.map +1 -0
- package/dist/composite/composite-item-offscreen.d.ts +39 -0
- package/dist/composite/composite-item-offscreen.d.ts.map +1 -0
- package/dist/composite/composite-item-offscreen.js +72 -0
- package/dist/composite/composite-item-offscreen.js.map +1 -0
- package/dist/composite/composite-item.d.ts +2 -0
- package/dist/composite/composite-item.js +290 -0
- package/dist/composite/composite-item.js.map +1 -0
- package/dist/composite/composite-overflow-disclosure.d.ts +53 -0
- package/dist/composite/composite-overflow-disclosure.d.ts.map +1 -0
- package/dist/composite/composite-overflow-disclosure.js +84 -0
- package/dist/composite/composite-overflow-disclosure.js.map +1 -0
- package/dist/composite/composite-overflow-store.d.ts +38 -0
- package/dist/composite/composite-overflow-store.d.ts.map +1 -0
- package/dist/composite/composite-overflow-store.js +36 -0
- package/dist/composite/composite-overflow-store.js.map +1 -0
- package/dist/composite/composite-overflow.d.ts +54 -0
- package/dist/composite/composite-overflow.d.ts.map +1 -0
- package/dist/composite/composite-overflow.js +82 -0
- package/dist/composite/composite-overflow.js.map +1 -0
- package/dist/composite/composite-provider.d.ts +28 -0
- package/dist/composite/composite-provider.d.ts.map +1 -0
- package/dist/composite/composite-provider.js +15 -0
- package/dist/composite/composite-provider.js.map +1 -0
- package/dist/composite/composite-renderer.d.ts +329 -0
- package/dist/composite/composite-renderer.d.ts.map +1 -0
- package/dist/composite/composite-renderer.js +121 -0
- package/dist/composite/composite-renderer.js.map +1 -0
- package/dist/composite/composite-row.d.ts +67 -0
- package/dist/composite/composite-row.d.ts.map +1 -0
- package/dist/composite/composite-row.js +86 -0
- package/dist/composite/composite-row.js.map +1 -0
- package/dist/composite/composite-separator.d.ts +61 -0
- package/dist/composite/composite-separator.d.ts.map +1 -0
- package/dist/composite/composite-separator.js +55 -0
- package/dist/composite/composite-separator.js.map +1 -0
- package/dist/composite/composite-store.d.ts +2 -0
- package/dist/composite/composite-store.js +33 -0
- package/dist/composite/composite-store.js.map +1 -0
- package/dist/composite/composite-typeahead.d.ts +2 -0
- package/dist/composite/composite-typeahead.js +126 -0
- package/dist/composite/composite-typeahead.js.map +1 -0
- package/dist/composite/composite.d.ts +2 -0
- package/dist/composite/composite.js +273 -0
- package/dist/composite/composite.js.map +1 -0
- package/dist/composite/utils.d.ts +52 -0
- package/dist/composite/utils.d.ts.map +1 -0
- package/dist/composite/utils.js +93 -0
- package/dist/composite/utils.js.map +1 -0
- package/dist/composite-DLvyFHMq.d.ts +124 -0
- package/dist/composite-DLvyFHMq.d.ts.map +1 -0
- package/dist/composite-hover-C7ul163w.d.ts +103 -0
- package/dist/composite-hover-C7ul163w.d.ts.map +1 -0
- package/dist/composite-item-B4WTelVz.d.ts +141 -0
- package/dist/composite-item-B4WTelVz.d.ts.map +1 -0
- package/dist/composite-store-DyJc-XRA.d.ts +43 -0
- package/dist/composite-store-DyJc-XRA.d.ts.map +1 -0
- package/dist/composite-typeahead-DDhpyKqm.d.ts +63 -0
- package/dist/composite-typeahead-DDhpyKqm.d.ts.map +1 -0
- package/dist/dialog/dialog-backdrop.d.ts +16 -0
- package/dist/dialog/dialog-backdrop.d.ts.map +1 -0
- package/dist/dialog/dialog-backdrop.js +58 -0
- package/dist/dialog/dialog-backdrop.js.map +1 -0
- package/dist/dialog/dialog-context.d.ts +27 -0
- package/dist/dialog/dialog-context.d.ts.map +1 -0
- package/dist/dialog/dialog-context.js +30 -0
- package/dist/dialog/dialog-context.js.map +1 -0
- package/dist/dialog/dialog-description.d.ts +2 -0
- package/dist/dialog/dialog-description.js +53 -0
- package/dist/dialog/dialog-description.js.map +1 -0
- package/dist/dialog/dialog-disclosure.d.ts +2 -0
- package/dist/dialog/dialog-disclosure.js +52 -0
- package/dist/dialog/dialog-disclosure.js.map +1 -0
- package/dist/dialog/dialog-dismiss.d.ts +2 -0
- package/dist/dialog/dialog-dismiss.js +80 -0
- package/dist/dialog/dialog-dismiss.js.map +1 -0
- package/dist/dialog/dialog-heading.d.ts +2 -0
- package/dist/dialog/dialog-heading.js +54 -0
- package/dist/dialog/dialog-heading.js.map +1 -0
- package/dist/dialog/dialog-provider.d.ts +22 -0
- package/dist/dialog/dialog-provider.d.ts.map +1 -0
- package/dist/dialog/dialog-provider.js +26 -0
- package/dist/dialog/dialog-provider.js.map +1 -0
- package/dist/dialog/dialog-store.d.ts +2 -0
- package/dist/dialog/dialog-store.js +28 -0
- package/dist/dialog/dialog-store.js.map +1 -0
- package/dist/dialog/dialog.d.ts +2 -0
- package/dist/dialog/dialog.js +429 -0
- package/dist/dialog/dialog.js.map +1 -0
- package/dist/dialog/utils/disable-accessibility-tree-outside.d.ts +7 -0
- package/dist/dialog/utils/disable-accessibility-tree-outside.d.ts.map +1 -0
- package/dist/dialog/utils/disable-accessibility-tree-outside.js +24 -0
- package/dist/dialog/utils/disable-accessibility-tree-outside.js.map +1 -0
- package/dist/dialog/utils/disable-tree.d.ts +9 -0
- package/dist/dialog/utils/disable-tree.d.ts.map +1 -0
- package/dist/dialog/utils/disable-tree.js +48 -0
- package/dist/dialog/utils/disable-tree.js.map +1 -0
- package/dist/dialog/utils/is-backdrop.d.ts +5 -0
- package/dist/dialog/utils/is-backdrop.d.ts.map +1 -0
- package/dist/dialog/utils/is-backdrop.js +15 -0
- package/dist/dialog/utils/is-backdrop.js.map +1 -0
- package/dist/dialog/utils/is-focus-trap.d.ts +5 -0
- package/dist/dialog/utils/is-focus-trap.d.ts.map +1 -0
- package/dist/dialog/utils/is-focus-trap.js +14 -0
- package/dist/dialog/utils/is-focus-trap.js.map +1 -0
- package/dist/dialog/utils/mark-tree-outside.d.ts +9 -0
- package/dist/dialog/utils/mark-tree-outside.d.ts.map +1 -0
- package/dist/dialog/utils/mark-tree-outside.js +44 -0
- package/dist/dialog/utils/mark-tree-outside.js.map +1 -0
- package/dist/dialog/utils/orchestrate.d.ts +9 -0
- package/dist/dialog/utils/orchestrate.d.ts.map +1 -0
- package/dist/dialog/utils/orchestrate.js +77 -0
- package/dist/dialog/utils/orchestrate.js.map +1 -0
- package/dist/dialog/utils/prepend-hidden-dismiss.d.ts +5 -0
- package/dist/dialog/utils/prepend-hidden-dismiss.d.ts.map +1 -0
- package/dist/dialog/utils/prepend-hidden-dismiss.js +31 -0
- package/dist/dialog/utils/prepend-hidden-dismiss.js.map +1 -0
- package/dist/dialog/utils/supports-inert.d.ts +5 -0
- package/dist/dialog/utils/supports-inert.d.ts.map +1 -0
- package/dist/dialog/utils/supports-inert.js +9 -0
- package/dist/dialog/utils/supports-inert.js.map +1 -0
- package/dist/dialog/utils/use-hide-on-interact-outside.d.ts +9 -0
- package/dist/dialog/utils/use-hide-on-interact-outside.d.ts.map +1 -0
- package/dist/dialog/utils/use-hide-on-interact-outside.js +123 -0
- package/dist/dialog/utils/use-hide-on-interact-outside.js.map +1 -0
- package/dist/dialog/utils/use-nested-dialogs.d.ts +11 -0
- package/dist/dialog/utils/use-nested-dialogs.d.ts.map +1 -0
- package/dist/dialog/utils/use-nested-dialogs.js +40 -0
- package/dist/dialog/utils/use-nested-dialogs.js.map +1 -0
- package/dist/dialog/utils/use-prevent-body-scroll.d.ts +5 -0
- package/dist/dialog/utils/use-prevent-body-scroll.d.ts.map +1 -0
- package/dist/dialog/utils/use-prevent-body-scroll.js +60 -0
- package/dist/dialog/utils/use-prevent-body-scroll.js.map +1 -0
- package/dist/dialog/utils/use-previous-mouse-down-ref.d.ts +5 -0
- package/dist/dialog/utils/use-previous-mouse-down-ref.d.ts.map +1 -0
- package/dist/dialog/utils/use-previous-mouse-down-ref.js +22 -0
- package/dist/dialog/utils/use-previous-mouse-down-ref.js.map +1 -0
- package/dist/dialog/utils/use-root-dialog.d.ts +16 -0
- package/dist/dialog/utils/use-root-dialog.d.ts.map +1 -0
- package/dist/dialog/utils/use-root-dialog.js +47 -0
- package/dist/dialog/utils/use-root-dialog.js.map +1 -0
- package/dist/dialog/utils/walk-tree-outside.d.ts +8 -0
- package/dist/dialog/utils/walk-tree-outside.d.ts.map +1 -0
- package/dist/dialog/utils/walk-tree-outside.js +58 -0
- package/dist/dialog/utils/walk-tree-outside.js.map +1 -0
- package/dist/dialog-C__C-zX2.d.ts +267 -0
- package/dist/dialog-C__C-zX2.d.ts.map +1 -0
- package/dist/dialog-description-BCZJ1Kyd.d.ts +48 -0
- package/dist/dialog-description-BCZJ1Kyd.d.ts.map +1 -0
- package/dist/dialog-disclosure-DLD10zlb.d.ts +47 -0
- package/dist/dialog-disclosure-DLD10zlb.d.ts.map +1 -0
- package/dist/dialog-dismiss-CnwEbzc6.d.ts +48 -0
- package/dist/dialog-dismiss-CnwEbzc6.d.ts.map +1 -0
- package/dist/dialog-heading-DQvnOfZH.d.ts +49 -0
- package/dist/dialog-heading-DQvnOfZH.d.ts.map +1 -0
- package/dist/dialog-store-Cjt12T_Y.d.ts +29 -0
- package/dist/dialog-store-Cjt12T_Y.d.ts.map +1 -0
- package/dist/disclosure/disclosure-content.d.ts +2 -0
- package/dist/disclosure/disclosure-content.js +171 -0
- package/dist/disclosure/disclosure-content.js.map +1 -0
- package/dist/disclosure/disclosure-context.d.ts +24 -0
- package/dist/disclosure/disclosure-context.d.ts.map +1 -0
- package/dist/disclosure/disclosure-context.js +26 -0
- package/dist/disclosure/disclosure-context.js.map +1 -0
- package/dist/disclosure/disclosure-provider.d.ts +23 -0
- package/dist/disclosure/disclosure-provider.d.ts.map +1 -0
- package/dist/disclosure/disclosure-provider.js +27 -0
- package/dist/disclosure/disclosure-provider.js.map +1 -0
- package/dist/disclosure/disclosure-store.d.ts +2 -0
- package/dist/disclosure/disclosure-store.js +32 -0
- package/dist/disclosure/disclosure-store.js.map +1 -0
- package/dist/disclosure/disclosure.d.ts +2 -0
- package/dist/disclosure/disclosure.js +83 -0
- package/dist/disclosure/disclosure.js.map +1 -0
- package/dist/disclosure-CQ37hPVP.d.ts +60 -0
- package/dist/disclosure-CQ37hPVP.d.ts.map +1 -0
- package/dist/disclosure-content-BbPkZgAc.d.ts +88 -0
- package/dist/disclosure-content-BbPkZgAc.d.ts.map +1 -0
- package/dist/disclosure-store-BsaBaRKv.d.ts +58 -0
- package/dist/disclosure-store-BsaBaRKv.d.ts.map +1 -0
- package/dist/focus-trap/focus-trap-region.d.ts +42 -0
- package/dist/focus-trap/focus-trap-region.d.ts.map +1 -0
- package/dist/focus-trap/focus-trap-region.js +69 -0
- package/dist/focus-trap/focus-trap-region.js.map +1 -0
- package/dist/focus-trap/focus-trap.d.ts +31 -0
- package/dist/focus-trap/focus-trap.d.ts.map +1 -0
- package/dist/focus-trap/focus-trap.js +45 -0
- package/dist/focus-trap/focus-trap.js.map +1 -0
- package/dist/focusable/focusable-container.d.ts +43 -0
- package/dist/focusable/focusable-container.d.ts.map +1 -0
- package/dist/focusable/focusable-container.js +41 -0
- package/dist/focusable/focusable-container.js.map +1 -0
- package/dist/focusable/focusable-context.d.ts +5 -0
- package/dist/focusable/focusable-context.d.ts.map +1 -0
- package/dist/focusable/focusable-context.js +8 -0
- package/dist/focusable/focusable-context.js.map +1 -0
- package/dist/focusable/focusable.d.ts +2 -0
- package/dist/focusable/focusable.js +273 -0
- package/dist/focusable/focusable.js.map +1 -0
- package/dist/focusable-B00tOxtB.d.ts +142 -0
- package/dist/focusable-B00tOxtB.d.ts.map +1 -0
- package/dist/form/form-checkbox.d.ts +50 -0
- package/dist/form/form-checkbox.d.ts.map +1 -0
- package/dist/form/form-checkbox.js +73 -0
- package/dist/form/form-checkbox.js.map +1 -0
- package/dist/form/form-context.d.ts +24 -0
- package/dist/form/form-context.d.ts.map +1 -0
- package/dist/form/form-context.js +27 -0
- package/dist/form/form-context.js.map +1 -0
- package/dist/form/form-control.d.ts +100 -0
- package/dist/form/form-control.d.ts.map +1 -0
- package/dist/form/form-control.js +139 -0
- package/dist/form/form-control.js.map +1 -0
- package/dist/form/form-description.d.ts +73 -0
- package/dist/form/form-description.d.ts.map +1 -0
- package/dist/form/form-description.js +83 -0
- package/dist/form/form-description.js.map +1 -0
- package/dist/form/form-error.d.ts +82 -0
- package/dist/form/form-error.d.ts.map +1 -0
- package/dist/form/form-error.js +102 -0
- package/dist/form/form-error.js.map +1 -0
- package/dist/form/form-field.d.ts +73 -0
- package/dist/form/form-field.d.ts.map +1 -0
- package/dist/form/form-field.js +74 -0
- package/dist/form/form-field.js.map +1 -0
- package/dist/form/form-group-label.d.ts +62 -0
- package/dist/form/form-group-label.d.ts.map +1 -0
- package/dist/form/form-group-label.js +54 -0
- package/dist/form/form-group-label.js.map +1 -0
- package/dist/form/form-group.d.ts +64 -0
- package/dist/form/form-group.d.ts.map +1 -0
- package/dist/form/form-group.js +56 -0
- package/dist/form/form-group.js.map +1 -0
- package/dist/form/form-input.d.ts +50 -0
- package/dist/form/form-input.d.ts.map +1 -0
- package/dist/form/form-input.js +74 -0
- package/dist/form/form-input.js.map +1 -0
- package/dist/form/form-label.d.ts +77 -0
- package/dist/form/form-label.d.ts.map +1 -0
- package/dist/form/form-label.js +120 -0
- package/dist/form/form-label.js.map +1 -0
- package/dist/form/form-provider.d.ts +28 -0
- package/dist/form/form-provider.d.ts.map +1 -0
- package/dist/form/form-provider.js +15 -0
- package/dist/form/form-provider.js.map +1 -0
- package/dist/form/form-push.d.ts +102 -0
- package/dist/form/form-push.d.ts.map +1 -0
- package/dist/form/form-push.js +134 -0
- package/dist/form/form-push.js.map +1 -0
- package/dist/form/form-radio-group.d.ts +56 -0
- package/dist/form/form-radio-group.d.ts.map +1 -0
- package/dist/form/form-radio-group.js +68 -0
- package/dist/form/form-radio-group.js.map +1 -0
- package/dist/form/form-radio.d.ts +58 -0
- package/dist/form/form-radio.d.ts.map +1 -0
- package/dist/form/form-radio.js +90 -0
- package/dist/form/form-radio.js.map +1 -0
- package/dist/form/form-remove.d.ts +102 -0
- package/dist/form/form-remove.d.ts.map +1 -0
- package/dist/form/form-remove.js +116 -0
- package/dist/form/form-remove.js.map +1 -0
- package/dist/form/form-reset.d.ts +51 -0
- package/dist/form/form-reset.d.ts.map +1 -0
- package/dist/form/form-reset.js +54 -0
- package/dist/form/form-reset.js.map +1 -0
- package/dist/form/form-store.d.ts +2 -0
- package/dist/form/form-store.js +41 -0
- package/dist/form/form-store.js.map +1 -0
- package/dist/form/form-submit.d.ts +57 -0
- package/dist/form/form-submit.d.ts.map +1 -0
- package/dist/form/form-submit.js +59 -0
- package/dist/form/form-submit.js.map +1 -0
- package/dist/form/form.d.ts +101 -0
- package/dist/form/form.d.ts.map +1 -0
- package/dist/form/form.js +146 -0
- package/dist/form/form.js.map +1 -0
- package/dist/form-store-C4Kf5QHm.d.ts +120 -0
- package/dist/form-store-C4Kf5QHm.d.ts.map +1 -0
- package/dist/group/group-label-context.d.ts +7 -0
- package/dist/group/group-label-context.d.ts.map +1 -0
- package/dist/group/group-label-context.js +8 -0
- package/dist/group/group-label-context.js.map +1 -0
- package/dist/group/group-label.d.ts +2 -0
- package/dist/group/group-label.js +52 -0
- package/dist/group/group-label.js.map +1 -0
- package/dist/group/group.d.ts +2 -0
- package/dist/group/group.js +47 -0
- package/dist/group/group.js.map +1 -0
- package/dist/group-CamegDJA.d.ts +32 -0
- package/dist/group-CamegDJA.d.ts.map +1 -0
- package/dist/group-label-C16IDs1b.d.ts +37 -0
- package/dist/group-label-C16IDs1b.d.ts.map +1 -0
- package/dist/heading/heading-context.d.ts +7 -0
- package/dist/heading/heading-context.d.ts.map +1 -0
- package/dist/heading/heading-context.js +8 -0
- package/dist/heading/heading-context.js.map +1 -0
- package/dist/heading/heading-level.d.ts +35 -0
- package/dist/heading/heading-level.d.ts.map +1 -0
- package/dist/heading/heading-level.js +33 -0
- package/dist/heading/heading-level.js.map +1 -0
- package/dist/heading/heading.d.ts +2 -0
- package/dist/heading/heading.js +56 -0
- package/dist/heading/heading.js.map +1 -0
- package/dist/heading/utils.d.ts +2 -0
- package/dist/heading/utils.js +1 -0
- package/dist/heading-zY9g_9K-.d.ts +42 -0
- package/dist/heading-zY9g_9K-.d.ts.map +1 -0
- package/dist/hovercard/hovercard-anchor.d.ts +59 -0
- package/dist/hovercard/hovercard-anchor.d.ts.map +1 -0
- package/dist/hovercard/hovercard-anchor.js +106 -0
- package/dist/hovercard/hovercard-anchor.js.map +1 -0
- package/dist/hovercard/hovercard-arrow.d.ts +54 -0
- package/dist/hovercard/hovercard-arrow.d.ts.map +1 -0
- package/dist/hovercard/hovercard-arrow.js +51 -0
- package/dist/hovercard/hovercard-arrow.js.map +1 -0
- package/dist/hovercard/hovercard-context.d.ts +24 -0
- package/dist/hovercard/hovercard-context.d.ts.map +1 -0
- package/dist/hovercard/hovercard-context.js +27 -0
- package/dist/hovercard/hovercard-context.js.map +1 -0
- package/dist/hovercard/hovercard-description.d.ts +51 -0
- package/dist/hovercard/hovercard-description.d.ts.map +1 -0
- package/dist/hovercard/hovercard-description.js +42 -0
- package/dist/hovercard/hovercard-description.js.map +1 -0
- package/dist/hovercard/hovercard-disclosure.d.ts +51 -0
- package/dist/hovercard/hovercard-disclosure.d.ts.map +1 -0
- package/dist/hovercard/hovercard-disclosure.js +122 -0
- package/dist/hovercard/hovercard-disclosure.js.map +1 -0
- package/dist/hovercard/hovercard-dismiss.d.ts +50 -0
- package/dist/hovercard/hovercard-dismiss.d.ts.map +1 -0
- package/dist/hovercard/hovercard-dismiss.js +47 -0
- package/dist/hovercard/hovercard-dismiss.js.map +1 -0
- package/dist/hovercard/hovercard-heading.d.ts +51 -0
- package/dist/hovercard/hovercard-heading.d.ts.map +1 -0
- package/dist/hovercard/hovercard-heading.js +42 -0
- package/dist/hovercard/hovercard-heading.js.map +1 -0
- package/dist/hovercard/hovercard-provider.d.ts +23 -0
- package/dist/hovercard/hovercard-provider.d.ts.map +1 -0
- package/dist/hovercard/hovercard-provider.js +27 -0
- package/dist/hovercard/hovercard-provider.js.map +1 -0
- package/dist/hovercard/hovercard-store.d.ts +2 -0
- package/dist/hovercard/hovercard-store.js +31 -0
- package/dist/hovercard/hovercard-store.js.map +1 -0
- package/dist/hovercard/hovercard.d.ts +80 -0
- package/dist/hovercard/hovercard.d.ts.map +1 -0
- package/dist/hovercard/hovercard.js +240 -0
- package/dist/hovercard/hovercard.js.map +1 -0
- package/dist/hovercard/utils/debug-polygon.d.ts +7 -0
- package/dist/hovercard/utils/debug-polygon.d.ts.map +1 -0
- package/dist/hovercard/utils/debug-polygon.js +33 -0
- package/dist/hovercard/utils/debug-polygon.js.map +1 -0
- package/dist/hovercard/utils/polygon.d.ts +9 -0
- package/dist/hovercard/utils/polygon.d.ts.map +1 -0
- package/dist/hovercard/utils/polygon.js +70 -0
- package/dist/hovercard/utils/polygon.js.map +1 -0
- package/dist/hovercard-store-gIeoQEn_.d.ts +30 -0
- package/dist/hovercard-store-gIeoQEn_.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/menu/menu-arrow.d.ts +52 -0
- package/dist/menu/menu-arrow.d.ts.map +1 -0
- package/dist/menu/menu-arrow.js +49 -0
- package/dist/menu/menu-arrow.js.map +1 -0
- package/dist/menu/menu-bar-provider.d.ts +35 -0
- package/dist/menu/menu-bar-provider.d.ts.map +1 -0
- package/dist/menu/menu-bar-provider.js +42 -0
- package/dist/menu/menu-bar-provider.js.map +1 -0
- package/dist/menu/menu-bar-store.d.ts +25 -0
- package/dist/menu/menu-bar-store.d.ts.map +1 -0
- package/dist/menu/menu-bar-store.js +28 -0
- package/dist/menu/menu-bar-store.js.map +1 -0
- package/dist/menu/menu-bar.d.ts +61 -0
- package/dist/menu/menu-bar.d.ts.map +1 -0
- package/dist/menu/menu-bar.js +66 -0
- package/dist/menu/menu-bar.js.map +1 -0
- package/dist/menu/menu-button-arrow.d.ts +65 -0
- package/dist/menu/menu-button-arrow.d.ts.map +1 -0
- package/dist/menu/menu-button-arrow.js +62 -0
- package/dist/menu/menu-button-arrow.js.map +1 -0
- package/dist/menu/menu-button.d.ts +67 -0
- package/dist/menu/menu-button.d.ts.map +1 -0
- package/dist/menu/menu-button.js +183 -0
- package/dist/menu/menu-button.js.map +1 -0
- package/dist/menu/menu-context.d.ts +47 -0
- package/dist/menu/menu-context.d.ts.map +1 -0
- package/dist/menu/menu-context.js +52 -0
- package/dist/menu/menu-context.js.map +1 -0
- package/dist/menu/menu-description.d.ts +50 -0
- package/dist/menu/menu-description.d.ts.map +1 -0
- package/dist/menu/menu-description.js +42 -0
- package/dist/menu/menu-description.js.map +1 -0
- package/dist/menu/menu-dismiss.d.ts +49 -0
- package/dist/menu/menu-dismiss.d.ts.map +1 -0
- package/dist/menu/menu-dismiss.js +47 -0
- package/dist/menu/menu-dismiss.js.map +1 -0
- package/dist/menu/menu-group-label.d.ts +55 -0
- package/dist/menu/menu-group-label.d.ts.map +1 -0
- package/dist/menu/menu-group-label.js +47 -0
- package/dist/menu/menu-group-label.js.map +1 -0
- package/dist/menu/menu-group.d.ts +61 -0
- package/dist/menu/menu-group.d.ts.map +1 -0
- package/dist/menu/menu-group.js +53 -0
- package/dist/menu/menu-group.js.map +1 -0
- package/dist/menu/menu-heading.d.ts +50 -0
- package/dist/menu/menu-heading.d.ts.map +1 -0
- package/dist/menu/menu-heading.js +42 -0
- package/dist/menu/menu-heading.js.map +1 -0
- package/dist/menu/menu-item-check.d.ts +58 -0
- package/dist/menu/menu-item-check.d.ts.map +1 -0
- package/dist/menu/menu-item-check.js +60 -0
- package/dist/menu/menu-item-check.js.map +1 -0
- package/dist/menu/menu-item-checkbox.d.ts +104 -0
- package/dist/menu/menu-item-checkbox.d.ts.map +1 -0
- package/dist/menu/menu-item-checkbox.js +151 -0
- package/dist/menu/menu-item-checkbox.js.map +1 -0
- package/dist/menu/menu-item-radio.d.ts +91 -0
- package/dist/menu/menu-item-radio.d.ts.map +1 -0
- package/dist/menu/menu-item-radio.js +121 -0
- package/dist/menu/menu-item-radio.js.map +1 -0
- package/dist/menu/menu-item.d.ts +75 -0
- package/dist/menu/menu-item.d.ts.map +1 -0
- package/dist/menu/menu-item.js +122 -0
- package/dist/menu/menu-item.js.map +1 -0
- package/dist/menu/menu-list.d.ts +59 -0
- package/dist/menu/menu-list.d.ts.map +1 -0
- package/dist/menu/menu-list.js +168 -0
- package/dist/menu/menu-list.js.map +1 -0
- package/dist/menu/menu-provider.d.ts +29 -0
- package/dist/menu/menu-provider.d.ts.map +1 -0
- package/dist/menu/menu-provider.js +15 -0
- package/dist/menu/menu-provider.js.map +1 -0
- package/dist/menu/menu-separator.d.ts +59 -0
- package/dist/menu/menu-separator.d.ts.map +1 -0
- package/dist/menu/menu-separator.js +57 -0
- package/dist/menu/menu-separator.js.map +1 -0
- package/dist/menu/menu-store.d.ts +2 -0
- package/dist/menu/menu-store.js +40 -0
- package/dist/menu/menu-store.js.map +1 -0
- package/dist/menu/menu.d.ts +49 -0
- package/dist/menu/menu.d.ts.map +1 -0
- package/dist/menu/menu.js +169 -0
- package/dist/menu/menu.js.map +1 -0
- package/dist/menu-store-0CKKmNek.d.ts +83 -0
- package/dist/menu-store-0CKKmNek.d.ts.map +1 -0
- package/dist/menubar/menubar-context.d.ts +25 -0
- package/dist/menubar/menubar-context.d.ts.map +1 -0
- package/dist/menubar/menubar-context.js +29 -0
- package/dist/menubar/menubar-context.js.map +1 -0
- package/dist/menubar/menubar-provider.d.ts +37 -0
- package/dist/menubar/menubar-provider.d.ts.map +1 -0
- package/dist/menubar/menubar-provider.js +41 -0
- package/dist/menubar/menubar-provider.js.map +1 -0
- package/dist/menubar/menubar-store.d.ts +2 -0
- package/dist/menubar/menubar-store.js +27 -0
- package/dist/menubar/menubar-store.js.map +1 -0
- package/dist/menubar/menubar.d.ts +71 -0
- package/dist/menubar/menubar.d.ts.map +1 -0
- package/dist/menubar/menubar.js +88 -0
- package/dist/menubar/menubar.js.map +1 -0
- package/dist/menubar-store-3h0eNIbS.d.ts +26 -0
- package/dist/menubar-store-3h0eNIbS.d.ts.map +1 -0
- package/dist/popover/popover-anchor.d.ts +2 -0
- package/dist/popover/popover-anchor.js +45 -0
- package/dist/popover/popover-anchor.js.map +1 -0
- package/dist/popover/popover-arrow-path.d.ts +5 -0
- package/dist/popover/popover-arrow-path.d.ts.map +1 -0
- package/dist/popover/popover-arrow-path.js +7 -0
- package/dist/popover/popover-arrow-path.js.map +1 -0
- package/dist/popover/popover-arrow.d.ts +65 -0
- package/dist/popover/popover-arrow.d.ts.map +1 -0
- package/dist/popover/popover-arrow.js +160 -0
- package/dist/popover/popover-arrow.js.map +1 -0
- package/dist/popover/popover-context.d.ts +24 -0
- package/dist/popover/popover-context.d.ts.map +1 -0
- package/dist/popover/popover-context.js +27 -0
- package/dist/popover/popover-context.js.map +1 -0
- package/dist/popover/popover-description.d.ts +2 -0
- package/dist/popover/popover-description.js +42 -0
- package/dist/popover/popover-description.js.map +1 -0
- package/dist/popover/popover-disclosure-arrow.d.ts +62 -0
- package/dist/popover/popover-disclosure-arrow.d.ts.map +1 -0
- package/dist/popover/popover-disclosure-arrow.js +81 -0
- package/dist/popover/popover-disclosure-arrow.js.map +1 -0
- package/dist/popover/popover-disclosure.d.ts +38 -0
- package/dist/popover/popover-disclosure.d.ts.map +1 -0
- package/dist/popover/popover-disclosure.js +66 -0
- package/dist/popover/popover-disclosure.js.map +1 -0
- package/dist/popover/popover-dismiss.d.ts +2 -0
- package/dist/popover/popover-dismiss.js +47 -0
- package/dist/popover/popover-dismiss.js.map +1 -0
- package/dist/popover/popover-heading.d.ts +2 -0
- package/dist/popover/popover-heading.js +42 -0
- package/dist/popover/popover-heading.js.map +1 -0
- package/dist/popover/popover-provider.d.ts +23 -0
- package/dist/popover/popover-provider.d.ts.map +1 -0
- package/dist/popover/popover-provider.js +27 -0
- package/dist/popover/popover-provider.js.map +1 -0
- package/dist/popover/popover-store.d.ts +2 -0
- package/dist/popover/popover-store.js +30 -0
- package/dist/popover/popover-store.js.map +1 -0
- package/dist/popover/popover.d.ts +2 -0
- package/dist/popover/popover.js +312 -0
- package/dist/popover/popover.js.map +1 -0
- package/dist/popover-CCqiRKqg.d.ts +181 -0
- package/dist/popover-CCqiRKqg.d.ts.map +1 -0
- package/dist/popover-anchor-PgfeXyzs.d.ts +47 -0
- package/dist/popover-anchor-PgfeXyzs.d.ts.map +1 -0
- package/dist/popover-description-DU753dah.d.ts +51 -0
- package/dist/popover-description-DU753dah.d.ts.map +1 -0
- package/dist/popover-dismiss-DPeI6Zse.d.ts +50 -0
- package/dist/popover-dismiss-DPeI6Zse.d.ts.map +1 -0
- package/dist/popover-heading-DGsr6D5W.d.ts +51 -0
- package/dist/popover-heading-DGsr6D5W.d.ts.map +1 -0
- package/dist/popover-store-Bc-l5VVO.d.ts +29 -0
- package/dist/popover-store-Bc-l5VVO.d.ts.map +1 -0
- package/dist/portal/portal-context.d.ts +21 -0
- package/dist/portal/portal-context.d.ts.map +1 -0
- package/dist/portal/portal-context.js +24 -0
- package/dist/portal/portal-context.js.map +1 -0
- package/dist/portal/portal.d.ts +2 -0
- package/dist/portal/portal.js +242 -0
- package/dist/portal/portal.js.map +1 -0
- package/dist/portal-CMBWiayp.d.ts +149 -0
- package/dist/portal-CMBWiayp.d.ts.map +1 -0
- package/dist/radio/radio-context.d.ts +24 -0
- package/dist/radio/radio-context.d.ts.map +1 -0
- package/dist/radio/radio-context.js +27 -0
- package/dist/radio/radio-context.js.map +1 -0
- package/dist/radio/radio-group.d.ts +51 -0
- package/dist/radio/radio-group.d.ts.map +1 -0
- package/dist/radio/radio-group.js +60 -0
- package/dist/radio/radio-group.js.map +1 -0
- package/dist/radio/radio-provider.d.ts +25 -0
- package/dist/radio/radio-provider.d.ts.map +1 -0
- package/dist/radio/radio-provider.js +29 -0
- package/dist/radio/radio-provider.js.map +1 -0
- package/dist/radio/radio-store.d.ts +2 -0
- package/dist/radio/radio-store.js +33 -0
- package/dist/radio/radio-store.js.map +1 -0
- package/dist/radio/radio.d.ts +76 -0
- package/dist/radio/radio.d.ts.map +1 -0
- package/dist/radio/radio.js +143 -0
- package/dist/radio/radio.js.map +1 -0
- package/dist/radio-store-DOZ_1RSk.d.ts +36 -0
- package/dist/radio-store-DOZ_1RSk.d.ts.map +1 -0
- package/dist/role/role.d.ts +34 -0
- package/dist/role/role.d.ts.map +1 -0
- package/dist/role/role.js +68 -0
- package/dist/role/role.js.map +1 -0
- package/dist/select/select-arrow.d.ts +60 -0
- package/dist/select/select-arrow.d.ts.map +1 -0
- package/dist/select/select-arrow.js +58 -0
- package/dist/select/select-arrow.js.map +1 -0
- package/dist/select/select-context.d.ts +27 -0
- package/dist/select/select-context.d.ts.map +1 -0
- package/dist/select/select-context.js +31 -0
- package/dist/select/select-context.js.map +1 -0
- package/dist/select/select-dismiss.d.ts +59 -0
- package/dist/select/select-dismiss.d.ts.map +1 -0
- package/dist/select/select-dismiss.js +56 -0
- package/dist/select/select-dismiss.js.map +1 -0
- package/dist/select/select-group-label.d.ts +61 -0
- package/dist/select/select-group-label.d.ts.map +1 -0
- package/dist/select/select-group-label.js +52 -0
- package/dist/select/select-group-label.js.map +1 -0
- package/dist/select/select-group.d.ts +62 -0
- package/dist/select/select-group.d.ts.map +1 -0
- package/dist/select/select-group.js +53 -0
- package/dist/select/select-group.js.map +1 -0
- package/dist/select/select-heading.d.ts +59 -0
- package/dist/select/select-heading.d.ts.map +1 -0
- package/dist/select/select-heading.js +62 -0
- package/dist/select/select-heading.js.map +1 -0
- package/dist/select/select-item-check.d.ts +59 -0
- package/dist/select/select-item-check.d.ts.map +1 -0
- package/dist/select/select-item-check.js +61 -0
- package/dist/select/select-item-check.js.map +1 -0
- package/dist/select/select-item-offscreen.d.ts +37 -0
- package/dist/select/select-item-offscreen.d.ts.map +1 -0
- package/dist/select/select-item-offscreen.js +38 -0
- package/dist/select/select-item-offscreen.js.map +1 -0
- package/dist/select/select-item.d.ts +108 -0
- package/dist/select/select-item.d.ts.map +1 -0
- package/dist/select/select-item.js +143 -0
- package/dist/select/select-item.js.map +1 -0
- package/dist/select/select-label.d.ts +55 -0
- package/dist/select/select-label.d.ts.map +1 -0
- package/dist/select/select-label.js +70 -0
- package/dist/select/select-label.js.map +1 -0
- package/dist/select/select-list.d.ts +80 -0
- package/dist/select/select-list.d.ts.map +1 -0
- package/dist/select/select-list.js +143 -0
- package/dist/select/select-list.js.map +1 -0
- package/dist/select/select-popover.d.ts +44 -0
- package/dist/select/select-popover.d.ts.map +1 -0
- package/dist/select/select-popover.js +59 -0
- package/dist/select/select-popover.js.map +1 -0
- package/dist/select/select-provider.d.ts +30 -0
- package/dist/select/select-provider.d.ts.map +1 -0
- package/dist/select/select-provider.js +15 -0
- package/dist/select/select-provider.js.map +1 -0
- package/dist/select/select-renderer.d.ts +44 -0
- package/dist/select/select-renderer.d.ts.map +1 -0
- package/dist/select/select-renderer.js +61 -0
- package/dist/select/select-renderer.js.map +1 -0
- package/dist/select/select-row.d.ts +63 -0
- package/dist/select/select-row.d.ts.map +1 -0
- package/dist/select/select-row.js +67 -0
- package/dist/select/select-row.js.map +1 -0
- package/dist/select/select-separator.d.ts +60 -0
- package/dist/select/select-separator.d.ts.map +1 -0
- package/dist/select/select-separator.js +57 -0
- package/dist/select/select-separator.js.map +1 -0
- package/dist/select/select-store.d.ts +2 -0
- package/dist/select/select-store.js +31 -0
- package/dist/select/select-store.js.map +1 -0
- package/dist/select/select-value.d.ts +84 -0
- package/dist/select/select-value.d.ts.map +1 -0
- package/dist/select/select-value.js +18 -0
- package/dist/select/select-value.js.map +1 -0
- package/dist/select/select.d.ts +89 -0
- package/dist/select/select.d.ts.map +1 -0
- package/dist/select/select.js +211 -0
- package/dist/select/select.js.map +1 -0
- package/dist/select-store-BsLTAyKh.d.ts +68 -0
- package/dist/select-store-BsLTAyKh.d.ts.map +1 -0
- package/dist/separator/separator.d.ts +2 -0
- package/dist/separator/separator.js +36 -0
- package/dist/separator/separator.js.map +1 -0
- package/dist/separator--ozQfMcK.d.ts +36 -0
- package/dist/separator--ozQfMcK.d.ts.map +1 -0
- package/dist/store.d.ts +1 -0
- package/dist/store.js +2 -0
- package/dist/tab/tab-context.d.ts +24 -0
- package/dist/tab/tab-context.d.ts.map +1 -0
- package/dist/tab/tab-context.js +27 -0
- package/dist/tab/tab-context.js.map +1 -0
- package/dist/tab/tab-list.d.ts +55 -0
- package/dist/tab/tab-list.d.ts.map +1 -0
- package/dist/tab/tab-list.js +71 -0
- package/dist/tab/tab-list.js.map +1 -0
- package/dist/tab/tab-panel.d.ts +122 -0
- package/dist/tab/tab-panel.d.ts.map +1 -0
- package/dist/tab/tab-panel.js +169 -0
- package/dist/tab/tab-panel.js.map +1 -0
- package/dist/tab/tab-provider.d.ts +26 -0
- package/dist/tab/tab-provider.d.ts.map +1 -0
- package/dist/tab/tab-provider.js +30 -0
- package/dist/tab/tab-provider.js.map +1 -0
- package/dist/tab/tab-store.d.ts +77 -0
- package/dist/tab/tab-store.d.ts.map +1 -0
- package/dist/tab/tab-store.js +55 -0
- package/dist/tab/tab-store.js.map +1 -0
- package/dist/tab/tab.d.ts +56 -0
- package/dist/tab/tab.d.ts.map +1 -0
- package/dist/tab/tab.js +115 -0
- package/dist/tab/tab.js.map +1 -0
- package/dist/tag/tag-context.d.ts +26 -0
- package/dist/tag/tag-context.d.ts.map +1 -0
- package/dist/tag/tag-context.js +30 -0
- package/dist/tag/tag-context.js.map +1 -0
- package/dist/tag/tag-input.d.ts +126 -0
- package/dist/tag/tag-input.d.ts.map +1 -0
- package/dist/tag/tag-input.js +162 -0
- package/dist/tag/tag-input.js.map +1 -0
- package/dist/tag/tag-list-label.d.ts +59 -0
- package/dist/tag/tag-list-label.d.ts.map +1 -0
- package/dist/tag/tag-list-label.js +62 -0
- package/dist/tag/tag-list-label.js.map +1 -0
- package/dist/tag/tag-list.d.ts +62 -0
- package/dist/tag/tag-list.d.ts.map +1 -0
- package/dist/tag/tag-list.js +127 -0
- package/dist/tag/tag-list.js.map +1 -0
- package/dist/tag/tag-provider.d.ts +34 -0
- package/dist/tag/tag-provider.d.ts.map +1 -0
- package/dist/tag/tag-provider.js +38 -0
- package/dist/tag/tag-provider.js.map +1 -0
- package/dist/tag/tag-remove.d.ts +71 -0
- package/dist/tag/tag-remove.d.ts.map +1 -0
- package/dist/tag/tag-remove.js +102 -0
- package/dist/tag/tag-remove.js.map +1 -0
- package/dist/tag/tag-store.d.ts +2 -0
- package/dist/tag/tag-store.js +38 -0
- package/dist/tag/tag-store.js.map +1 -0
- package/dist/tag/tag-value.d.ts +49 -0
- package/dist/tag/tag-value.d.ts.map +1 -0
- package/dist/tag/tag-value.js +40 -0
- package/dist/tag/tag-value.js.map +1 -0
- package/dist/tag/tag-values.d.ts +60 -0
- package/dist/tag/tag-values.d.ts.map +1 -0
- package/dist/tag/tag-values.js +50 -0
- package/dist/tag/tag-values.js.map +1 -0
- package/dist/tag/tag.d.ts +78 -0
- package/dist/tag/tag.d.ts.map +1 -0
- package/dist/tag/tag.js +114 -0
- package/dist/tag/tag.js.map +1 -0
- package/dist/tag/utils.d.ts +5 -0
- package/dist/tag/utils.d.ts.map +1 -0
- package/dist/tag/utils.js +15 -0
- package/dist/tag/utils.js.map +1 -0
- package/dist/tag-store-xANOvuGo.d.ts +49 -0
- package/dist/tag-store-xANOvuGo.d.ts.map +1 -0
- package/dist/toolbar/toolbar-container.d.ts +41 -0
- package/dist/toolbar/toolbar-container.d.ts.map +1 -0
- package/dist/toolbar/toolbar-container.js +53 -0
- package/dist/toolbar/toolbar-container.js.map +1 -0
- package/dist/toolbar/toolbar-context.d.ts +24 -0
- package/dist/toolbar/toolbar-context.d.ts.map +1 -0
- package/dist/toolbar/toolbar-context.js +27 -0
- package/dist/toolbar/toolbar-context.js.map +1 -0
- package/dist/toolbar/toolbar-input.d.ts +39 -0
- package/dist/toolbar/toolbar-input.d.ts.map +1 -0
- package/dist/toolbar/toolbar-input.js +47 -0
- package/dist/toolbar/toolbar-input.js.map +1 -0
- package/dist/toolbar/toolbar-item.d.ts +47 -0
- package/dist/toolbar/toolbar-item.d.ts.map +1 -0
- package/dist/toolbar/toolbar-item.js +45 -0
- package/dist/toolbar/toolbar-item.js.map +1 -0
- package/dist/toolbar/toolbar-provider.d.ts +26 -0
- package/dist/toolbar/toolbar-provider.d.ts.map +1 -0
- package/dist/toolbar/toolbar-provider.js +30 -0
- package/dist/toolbar/toolbar-provider.js.map +1 -0
- package/dist/toolbar/toolbar-separator.d.ts +51 -0
- package/dist/toolbar/toolbar-separator.d.ts.map +1 -0
- package/dist/toolbar/toolbar-separator.js +49 -0
- package/dist/toolbar/toolbar-separator.js.map +1 -0
- package/dist/toolbar/toolbar-store.d.ts +2 -0
- package/dist/toolbar/toolbar-store.js +31 -0
- package/dist/toolbar/toolbar-store.js.map +1 -0
- package/dist/toolbar/toolbar.d.ts +50 -0
- package/dist/toolbar/toolbar.d.ts.map +1 -0
- package/dist/toolbar/toolbar.js +66 -0
- package/dist/toolbar/toolbar.js.map +1 -0
- package/dist/toolbar-store-Cs-9cGHx.d.ts +30 -0
- package/dist/toolbar-store-Cs-9cGHx.d.ts.map +1 -0
- package/dist/tooltip/tooltip-anchor.d.ts +53 -0
- package/dist/tooltip/tooltip-anchor.d.ts.map +1 -0
- package/dist/tooltip/tooltip-anchor.js +121 -0
- package/dist/tooltip/tooltip-anchor.js.map +1 -0
- package/dist/tooltip/tooltip-arrow.d.ts +54 -0
- package/dist/tooltip/tooltip-arrow.d.ts.map +1 -0
- package/dist/tooltip/tooltip-arrow.js +54 -0
- package/dist/tooltip/tooltip-arrow.js.map +1 -0
- package/dist/tooltip/tooltip-context.d.ts +24 -0
- package/dist/tooltip/tooltip-context.d.ts.map +1 -0
- package/dist/tooltip/tooltip-context.js +27 -0
- package/dist/tooltip/tooltip-context.js.map +1 -0
- package/dist/tooltip/tooltip-provider.d.ts +23 -0
- package/dist/tooltip/tooltip-provider.d.ts.map +1 -0
- package/dist/tooltip/tooltip-provider.js +27 -0
- package/dist/tooltip/tooltip-provider.js.map +1 -0
- package/dist/tooltip/tooltip-store.d.ts +30 -0
- package/dist/tooltip/tooltip-store.d.ts.map +1 -0
- package/dist/tooltip/tooltip-store.js +30 -0
- package/dist/tooltip/tooltip-store.js.map +1 -0
- package/dist/tooltip/tooltip.d.ts +61 -0
- package/dist/tooltip/tooltip.d.ts.map +1 -0
- package/dist/tooltip/tooltip.js +81 -0
- package/dist/tooltip/tooltip.js.map +1 -0
- package/dist/utils-DUF1aMov.d.ts +5 -0
- package/dist/utils-DUF1aMov.d.ts.map +1 -0
- package/dist/visually-hidden/visually-hidden.d.ts +37 -0
- package/dist/visually-hidden/visually-hidden.d.ts.map +1 -0
- package/dist/visually-hidden/visually-hidden.js +53 -0
- package/dist/visually-hidden/visually-hidden.js.map +1 -0
- package/license +21 -0
- package/package.json +936 -0
- package/readme.md +19 -0
- package/src/button/button.tsx +76 -0
- package/src/checkbox/checkbox-check.tsx +116 -0
- package/src/checkbox/checkbox-checked-context.tsx +3 -0
- package/src/checkbox/checkbox-context.tsx +27 -0
- package/src/checkbox/checkbox-provider.tsx +53 -0
- package/src/checkbox/checkbox-store.ts +76 -0
- package/src/checkbox/checkbox.tsx +271 -0
- package/src/collection/collection-context.tsx +27 -0
- package/src/collection/collection-item-offscreen.tsx +157 -0
- package/src/collection/collection-item.tsx +136 -0
- package/src/collection/collection-provider.tsx +47 -0
- package/src/collection/collection-renderer.tsx +994 -0
- package/src/collection/collection-store.ts +84 -0
- package/src/collection/collection.tsx +93 -0
- package/src/combobox/combobox-cancel.tsx +153 -0
- package/src/combobox/combobox-context.tsx +49 -0
- package/src/combobox/combobox-disclosure.tsx +162 -0
- package/src/combobox/combobox-group-label.tsx +74 -0
- package/src/combobox/combobox-group.tsx +100 -0
- package/src/combobox/combobox-item-check.tsx +83 -0
- package/src/combobox/combobox-item-offscreen.tsx +87 -0
- package/src/combobox/combobox-item-value.tsx +231 -0
- package/src/combobox/combobox-item.tsx +363 -0
- package/src/combobox/combobox-label.tsx +89 -0
- package/src/combobox/combobox-list.tsx +176 -0
- package/src/combobox/combobox-popover.tsx +179 -0
- package/src/combobox/combobox-provider.tsx +50 -0
- package/src/combobox/combobox-row.tsx +102 -0
- package/src/combobox/combobox-separator.tsx +90 -0
- package/src/combobox/combobox-store.ts +168 -0
- package/src/combobox/combobox-value.tsx +63 -0
- package/src/combobox/combobox.tsx +900 -0
- package/src/command/command.tsx +215 -0
- package/src/composite/composite-container.tsx +278 -0
- package/src/composite/composite-context.tsx +53 -0
- package/src/composite/composite-group-label.tsx +73 -0
- package/src/composite/composite-group.tsx +77 -0
- package/src/composite/composite-hover.tsx +230 -0
- package/src/composite/composite-input.tsx +147 -0
- package/src/composite/composite-item-offscreen.tsx +112 -0
- package/src/composite/composite-item.tsx +567 -0
- package/src/composite/composite-overflow-disclosure.ts +117 -0
- package/src/composite/composite-overflow-store.ts +61 -0
- package/src/composite/composite-overflow.tsx +123 -0
- package/src/composite/composite-provider.tsx +47 -0
- package/src/composite/composite-renderer.tsx +231 -0
- package/src/composite/composite-row.tsx +133 -0
- package/src/composite/composite-separator.tsx +96 -0
- package/src/composite/composite-store.ts +101 -0
- package/src/composite/composite-typeahead.tsx +246 -0
- package/src/composite/composite.tsx +592 -0
- package/src/composite/utils.ts +121 -0
- package/src/dialog/dialog-backdrop.tsx +71 -0
- package/src/dialog/dialog-context.tsx +43 -0
- package/src/dialog/dialog-description.tsx +86 -0
- package/src/dialog/dialog-disclosure.tsx +84 -0
- package/src/dialog/dialog-dismiss.tsx +113 -0
- package/src/dialog/dialog-heading.tsx +88 -0
- package/src/dialog/dialog-provider.tsx +28 -0
- package/src/dialog/dialog-store.ts +51 -0
- package/src/dialog/dialog.tsx +866 -0
- package/src/dialog/utils/disable-accessibility-tree-outside.ts +30 -0
- package/src/dialog/utils/disable-tree.ts +81 -0
- package/src/dialog/utils/is-backdrop.ts +12 -0
- package/src/dialog/utils/is-focus-trap.ts +11 -0
- package/src/dialog/utils/mark-tree-outside.ts +67 -0
- package/src/dialog/utils/orchestrate.ts +123 -0
- package/src/dialog/utils/prepend-hidden-dismiss.ts +35 -0
- package/src/dialog/utils/supports-inert.ts +5 -0
- package/src/dialog/utils/use-hide-on-interact-outside.ts +181 -0
- package/src/dialog/utils/use-nested-dialogs.tsx +55 -0
- package/src/dialog/utils/use-prevent-body-scroll.ts +86 -0
- package/src/dialog/utils/use-previous-mouse-down-ref.ts +19 -0
- package/src/dialog/utils/use-root-dialog.ts +49 -0
- package/src/dialog/utils/walk-tree-outside.ts +85 -0
- package/src/disclosure/disclosure-content.tsx +344 -0
- package/src/disclosure/disclosure-context.tsx +27 -0
- package/src/disclosure/disclosure-provider.tsx +29 -0
- package/src/disclosure/disclosure-store.ts +85 -0
- package/src/disclosure/disclosure.tsx +144 -0
- package/src/focus-trap/focus-trap-region.tsx +112 -0
- package/src/focus-trap/focus-trap.tsx +60 -0
- package/src/focusable/focusable-container.tsx +75 -0
- package/src/focusable/focusable-context.tsx +3 -0
- package/src/focusable/focusable.tsx +559 -0
- package/src/form/form-checkbox.tsx +106 -0
- package/src/form/form-context.tsx +34 -0
- package/src/form/form-control.tsx +227 -0
- package/src/form/form-description.tsx +142 -0
- package/src/form/form-error.tsx +156 -0
- package/src/form/form-field.tsx +94 -0
- package/src/form/form-group-label.tsx +79 -0
- package/src/form/form-group.tsx +79 -0
- package/src/form/form-input.tsx +104 -0
- package/src/form/form-label.tsx +192 -0
- package/src/form/form-provider.tsx +49 -0
- package/src/form/form-push.tsx +200 -0
- package/src/form/form-radio-group.tsx +93 -0
- package/src/form/form-radio.tsx +122 -0
- package/src/form/form-remove.tsx +198 -0
- package/src/form/form-reset.tsx +85 -0
- package/src/form/form-store.ts +195 -0
- package/src/form/form-submit.tsx +93 -0
- package/src/form/form.tsx +249 -0
- package/src/group/group-label-context.tsx +6 -0
- package/src/group/group-label.tsx +75 -0
- package/src/group/group.tsx +69 -0
- package/src/heading/heading-context.tsx +4 -0
- package/src/heading/heading-level.tsx +42 -0
- package/src/heading/heading.tsx +81 -0
- package/src/heading/utils.ts +1 -0
- package/src/hovercard/hovercard-anchor.tsx +195 -0
- package/src/hovercard/hovercard-arrow.tsx +74 -0
- package/src/hovercard/hovercard-context.tsx +34 -0
- package/src/hovercard/hovercard-description.tsx +69 -0
- package/src/hovercard/hovercard-disclosure.tsx +196 -0
- package/src/hovercard/hovercard-dismiss.tsx +70 -0
- package/src/hovercard/hovercard-heading.tsx +68 -0
- package/src/hovercard/hovercard-provider.tsx +29 -0
- package/src/hovercard/hovercard-store.ts +58 -0
- package/src/hovercard/hovercard.tsx +445 -0
- package/src/hovercard/utils/__tests__/polygon-test.ts +66 -0
- package/src/hovercard/utils/debug-polygon.ts +37 -0
- package/src/hovercard/utils/polygon.ts +96 -0
- package/src/index.ts +1 -0
- package/src/menu/menu-arrow.tsx +69 -0
- package/src/menu/menu-bar-provider.tsx +44 -0
- package/src/menu/menu-bar-store.ts +54 -0
- package/src/menu/menu-bar.tsx +84 -0
- package/src/menu/menu-button-arrow.tsx +85 -0
- package/src/menu/menu-button.tsx +338 -0
- package/src/menu/menu-context.tsx +76 -0
- package/src/menu/menu-description.tsx +67 -0
- package/src/menu/menu-dismiss.tsx +69 -0
- package/src/menu/menu-group-label.tsx +72 -0
- package/src/menu/menu-group.tsx +76 -0
- package/src/menu/menu-heading.tsx +67 -0
- package/src/menu/menu-item-check.tsx +79 -0
- package/src/menu/menu-item-checkbox.tsx +227 -0
- package/src/menu/menu-item-radio.tsx +198 -0
- package/src/menu/menu-item.tsx +223 -0
- package/src/menu/menu-list.tsx +230 -0
- package/src/menu/menu-provider.tsx +42 -0
- package/src/menu/menu-separator.tsx +79 -0
- package/src/menu/menu-store.ts +155 -0
- package/src/menu/menu.tsx +274 -0
- package/src/menubar/menubar-context.tsx +39 -0
- package/src/menubar/menubar-provider.tsx +43 -0
- package/src/menubar/menubar-store.ts +48 -0
- package/src/menubar/menubar.tsx +145 -0
- package/src/popover/popover-anchor.tsx +74 -0
- package/src/popover/popover-arrow-path.ts +21 -0
- package/src/popover/popover-arrow.tsx +228 -0
- package/src/popover/popover-context.tsx +34 -0
- package/src/popover/popover-description.tsx +69 -0
- package/src/popover/popover-disclosure-arrow.tsx +135 -0
- package/src/popover/popover-disclosure.tsx +101 -0
- package/src/popover/popover-dismiss.tsx +70 -0
- package/src/popover/popover-heading.tsx +68 -0
- package/src/popover/popover-provider.tsx +29 -0
- package/src/popover/popover-store.ts +53 -0
- package/src/popover/popover.tsx +649 -0
- package/src/portal/portal-context.tsx +19 -0
- package/src/portal/portal.tsx +493 -0
- package/src/radio/radio-context.tsx +34 -0
- package/src/radio/radio-group.tsx +103 -0
- package/src/radio/radio-provider.tsx +29 -0
- package/src/radio/radio-store.ts +64 -0
- package/src/radio/radio.tsx +242 -0
- package/src/role/role.tsx +88 -0
- package/src/select/select-arrow.tsx +80 -0
- package/src/select/select-context.tsx +46 -0
- package/src/select/select-dismiss.tsx +79 -0
- package/src/select/select-group-label.tsx +78 -0
- package/src/select/select-group.tsx +79 -0
- package/src/select/select-heading.tsx +98 -0
- package/src/select/select-item-check.tsx +80 -0
- package/src/select/select-item-offscreen.tsx +59 -0
- package/src/select/select-item.tsx +294 -0
- package/src/select/select-label.tsx +117 -0
- package/src/select/select-list.tsx +251 -0
- package/src/select/select-popover.tsx +67 -0
- package/src/select/select-provider.tsx +45 -0
- package/src/select/select-renderer.tsx +160 -0
- package/src/select/select-row.tsx +97 -0
- package/src/select/select-separator.tsx +80 -0
- package/src/select/select-store.ts +139 -0
- package/src/select/select-value.tsx +108 -0
- package/src/select/select.tsx +371 -0
- package/src/separator/separator.tsx +54 -0
- package/src/store.ts +1 -0
- package/src/tab/tab-context.tsx +34 -0
- package/src/tab/tab-list.tsx +120 -0
- package/src/tab/tab-panel.tsx +314 -0
- package/src/tab/tab-provider.tsx +30 -0
- package/src/tab/tab-store.ts +124 -0
- package/src/tab/tab.tsx +208 -0
- package/src/tag/tag-context.tsx +40 -0
- package/src/tag/tag-input.tsx +321 -0
- package/src/tag/tag-list-label.tsx +102 -0
- package/src/tag/tag-list.tsx +210 -0
- package/src/tag/tag-provider.tsx +38 -0
- package/src/tag/tag-remove.tsx +174 -0
- package/src/tag/tag-store.ts +72 -0
- package/src/tag/tag-value.tsx +63 -0
- package/src/tag/tag-values.tsx +74 -0
- package/src/tag/tag.tsx +199 -0
- package/src/tag/utils.ts +12 -0
- package/src/toolbar/toolbar-container.tsx +67 -0
- package/src/toolbar/toolbar-context.tsx +34 -0
- package/src/toolbar/toolbar-input.tsx +64 -0
- package/src/toolbar/toolbar-item.tsx +72 -0
- package/src/toolbar/toolbar-provider.tsx +32 -0
- package/src/toolbar/toolbar-separator.tsx +71 -0
- package/src/toolbar/toolbar-store.ts +52 -0
- package/src/toolbar/toolbar.tsx +119 -0
- package/src/tooltip/tooltip-anchor.tsx +210 -0
- package/src/tooltip/tooltip-arrow.tsx +84 -0
- package/src/tooltip/tooltip-context.tsx +34 -0
- package/src/tooltip/tooltip-provider.tsx +29 -0
- package/src/tooltip/tooltip-store.ts +53 -0
- package/src/tooltip/tooltip.tsx +153 -0
- package/src/visually-hidden/visually-hidden.tsx +67 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useComboboxProviderContext } from "./combobox-context.js";
|
|
3
|
+
import { useComposite } from "../composite/composite.js";
|
|
4
|
+
import { usePopoverAnchor } from "../popover/popover-anchor.js";
|
|
5
|
+
import { createElement, createHook, forwardRef, useBooleanEvent, useEvent, useForceUpdate, useId, useMergeRefs, useSafeLayoutEffect, useUpdateEffect, useUpdateLayoutEffect } from "@ariakit/react-utils";
|
|
6
|
+
import { getPopupRole, getScrollingElement, getTextboxSelection, hasFocus, invariant, isFalsyBooleanCallback, isFocusEventOutside, noop, normalizeString, queueBeforeEvent, setSelectionRange } from "@ariakit/utils";
|
|
7
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
8
|
+
import { useStoreState } from "@ariakit/react-store";
|
|
9
|
+
import { sync } from "@ariakit/store";
|
|
10
|
+
//#region src/combobox/combobox.tsx
|
|
11
|
+
const TagName = "input";
|
|
12
|
+
function isFirstItemAutoSelected(items, activeValue, autoSelect) {
|
|
13
|
+
if (!autoSelect) return false;
|
|
14
|
+
return items.find((item) => !item.disabled && item.value)?.value === activeValue;
|
|
15
|
+
}
|
|
16
|
+
function hasCompletionString(value, activeValue) {
|
|
17
|
+
if (!activeValue) return false;
|
|
18
|
+
if (value == null) return false;
|
|
19
|
+
value = normalizeString(value);
|
|
20
|
+
return activeValue.length > value.length && activeValue.toLowerCase().indexOf(value.toLowerCase()) === 0;
|
|
21
|
+
}
|
|
22
|
+
function isInputEvent(event) {
|
|
23
|
+
return event.type === "input";
|
|
24
|
+
}
|
|
25
|
+
function isAriaAutoCompleteValue(value) {
|
|
26
|
+
return value === "inline" || value === "list" || value === "both" || value === "none";
|
|
27
|
+
}
|
|
28
|
+
function getDefaultAutoSelectId(items) {
|
|
29
|
+
return items.find((item) => {
|
|
30
|
+
if (item.disabled) return false;
|
|
31
|
+
return item.element?.getAttribute("role") !== "tab";
|
|
32
|
+
})?.id;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns props to create a `Combobox` component.
|
|
36
|
+
* @see https://ariakit.com/components/combobox
|
|
37
|
+
* @example
|
|
38
|
+
* ```jsx
|
|
39
|
+
* const store = useComboboxStore();
|
|
40
|
+
* const props = useCombobox({ store });
|
|
41
|
+
* <Role {...props} />
|
|
42
|
+
* <ComboboxPopover store={store}>
|
|
43
|
+
* <ComboboxItem value="Apple" />
|
|
44
|
+
* <ComboboxItem value="Banana" />
|
|
45
|
+
* <ComboboxItem value="Orange" />
|
|
46
|
+
* </ComboboxPopover>
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
const useCombobox = createHook(function useCombobox({ store, focusable = true, autoSelect: autoSelectProp = false, getAutoSelectId, setValueOnChange, showMinLength = 0, showOnChange, showOnMouseDown, showOnClick = showOnMouseDown, showOnKeyDown, showOnKeyPress = showOnKeyDown, blurActiveItemOnClick, setValueOnClick = true, moveOnKeyPress = true, autoComplete = "list", ...props }) {
|
|
50
|
+
const context = useComboboxProviderContext();
|
|
51
|
+
store = store || context;
|
|
52
|
+
invariant(store, "Combobox must receive a `store` prop or be wrapped in a ComboboxProvider component.");
|
|
53
|
+
const ref = useRef(null);
|
|
54
|
+
const [valueUpdated, forceValueUpdate] = useForceUpdate();
|
|
55
|
+
const canAutoSelectRef = useRef(false);
|
|
56
|
+
const composingRef = useRef(false);
|
|
57
|
+
const autoSelect = useStoreState(store, (state) => state.virtualFocus && autoSelectProp);
|
|
58
|
+
const inline = autoComplete === "inline" || autoComplete === "both";
|
|
59
|
+
const [canInline, setCanInline] = useState(inline);
|
|
60
|
+
useUpdateLayoutEffect(() => {
|
|
61
|
+
if (!inline) return;
|
|
62
|
+
setCanInline(true);
|
|
63
|
+
}, [inline]);
|
|
64
|
+
const storeValue = useStoreState(store, "value");
|
|
65
|
+
const prevSelectedValueRef = useRef(void 0);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
return sync(store, ["selectedValue", "activeId"], (_, prev) => {
|
|
68
|
+
prevSelectedValueRef.current = prev.selectedValue;
|
|
69
|
+
});
|
|
70
|
+
}, [store]);
|
|
71
|
+
const inlineActiveValue = useStoreState(store, (state) => {
|
|
72
|
+
if (!inline) return;
|
|
73
|
+
if (!canInline) return;
|
|
74
|
+
if (state.activeValue && Array.isArray(state.selectedValue)) {
|
|
75
|
+
if (state.selectedValue.includes(state.activeValue)) return;
|
|
76
|
+
if (prevSelectedValueRef.current?.includes(state.activeValue)) return;
|
|
77
|
+
}
|
|
78
|
+
return state.activeValue;
|
|
79
|
+
});
|
|
80
|
+
const items = useStoreState(store, "renderedItems");
|
|
81
|
+
const open = useStoreState(store, "open");
|
|
82
|
+
const contentElement = useStoreState(store, "contentElement");
|
|
83
|
+
const value = useMemo(() => {
|
|
84
|
+
if (!inline) return storeValue;
|
|
85
|
+
if (!canInline) return storeValue;
|
|
86
|
+
if (isFirstItemAutoSelected(items, inlineActiveValue, autoSelect)) {
|
|
87
|
+
if (hasCompletionString(storeValue, inlineActiveValue)) return storeValue + (inlineActiveValue?.slice(storeValue.length) || "");
|
|
88
|
+
return storeValue;
|
|
89
|
+
}
|
|
90
|
+
return inlineActiveValue || storeValue;
|
|
91
|
+
}, [
|
|
92
|
+
inline,
|
|
93
|
+
canInline,
|
|
94
|
+
items,
|
|
95
|
+
inlineActiveValue,
|
|
96
|
+
autoSelect,
|
|
97
|
+
storeValue
|
|
98
|
+
]);
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
const element = ref.current;
|
|
101
|
+
if (!element) return;
|
|
102
|
+
const onCompositeItemMove = () => setCanInline(true);
|
|
103
|
+
element.addEventListener("combobox-item-move", onCompositeItemMove);
|
|
104
|
+
return () => {
|
|
105
|
+
element.removeEventListener("combobox-item-move", onCompositeItemMove);
|
|
106
|
+
};
|
|
107
|
+
}, []);
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
if (!inline) return;
|
|
110
|
+
if (!canInline) return;
|
|
111
|
+
if (!inlineActiveValue) return;
|
|
112
|
+
if (!isFirstItemAutoSelected(items, inlineActiveValue, autoSelect)) return;
|
|
113
|
+
if (!hasCompletionString(storeValue, inlineActiveValue)) return;
|
|
114
|
+
let cleanup = noop;
|
|
115
|
+
queueMicrotask(() => {
|
|
116
|
+
const element = ref.current;
|
|
117
|
+
if (!element) return;
|
|
118
|
+
const { start: prevStart, end: prevEnd } = getTextboxSelection(element);
|
|
119
|
+
const nextStart = storeValue.length;
|
|
120
|
+
const nextEnd = inlineActiveValue.length;
|
|
121
|
+
setSelectionRange(element, nextStart, nextEnd);
|
|
122
|
+
cleanup = () => {
|
|
123
|
+
if (!hasFocus(element)) return;
|
|
124
|
+
const { start, end } = getTextboxSelection(element);
|
|
125
|
+
if (start !== nextStart) return;
|
|
126
|
+
if (end !== nextEnd) return;
|
|
127
|
+
setSelectionRange(element, prevStart, prevEnd);
|
|
128
|
+
};
|
|
129
|
+
});
|
|
130
|
+
return () => cleanup();
|
|
131
|
+
}, [
|
|
132
|
+
valueUpdated,
|
|
133
|
+
inline,
|
|
134
|
+
canInline,
|
|
135
|
+
inlineActiveValue,
|
|
136
|
+
items,
|
|
137
|
+
autoSelect,
|
|
138
|
+
storeValue
|
|
139
|
+
]);
|
|
140
|
+
const scrollingElementRef = useRef(null);
|
|
141
|
+
const getAutoSelectIdProp = useEvent(getAutoSelectId);
|
|
142
|
+
const autoSelectIdRef = useRef(null);
|
|
143
|
+
const userScrolledRef = useRef(false);
|
|
144
|
+
const isAutoScrollingRef = useRef(false);
|
|
145
|
+
useEffect(() => {
|
|
146
|
+
if (!open) return;
|
|
147
|
+
if (!contentElement) return;
|
|
148
|
+
const scrollingElement = getScrollingElement(contentElement);
|
|
149
|
+
if (!scrollingElement) return;
|
|
150
|
+
scrollingElementRef.current = scrollingElement;
|
|
151
|
+
const onUserScroll = () => {
|
|
152
|
+
canAutoSelectRef.current = false;
|
|
153
|
+
userScrolledRef.current = true;
|
|
154
|
+
};
|
|
155
|
+
const onScroll = () => {
|
|
156
|
+
if (!isAutoScrollingRef.current) userScrolledRef.current = true;
|
|
157
|
+
if (!store) return;
|
|
158
|
+
if (!canAutoSelectRef.current) return;
|
|
159
|
+
const { activeId } = store.getState();
|
|
160
|
+
if (activeId === null) return;
|
|
161
|
+
if (activeId === autoSelectIdRef.current) return;
|
|
162
|
+
canAutoSelectRef.current = false;
|
|
163
|
+
};
|
|
164
|
+
const options = {
|
|
165
|
+
passive: true,
|
|
166
|
+
capture: true
|
|
167
|
+
};
|
|
168
|
+
scrollingElement.addEventListener("wheel", onUserScroll, options);
|
|
169
|
+
scrollingElement.addEventListener("touchmove", onUserScroll, options);
|
|
170
|
+
scrollingElement.addEventListener("scroll", onScroll, options);
|
|
171
|
+
return () => {
|
|
172
|
+
scrollingElement.removeEventListener("wheel", onUserScroll, true);
|
|
173
|
+
scrollingElement.removeEventListener("touchmove", onUserScroll, true);
|
|
174
|
+
scrollingElement.removeEventListener("scroll", onScroll, true);
|
|
175
|
+
};
|
|
176
|
+
}, [
|
|
177
|
+
open,
|
|
178
|
+
contentElement,
|
|
179
|
+
store
|
|
180
|
+
]);
|
|
181
|
+
useSafeLayoutEffect(() => {
|
|
182
|
+
userScrolledRef.current = false;
|
|
183
|
+
if (!storeValue) return;
|
|
184
|
+
if (composingRef.current) return;
|
|
185
|
+
canAutoSelectRef.current = true;
|
|
186
|
+
}, [storeValue]);
|
|
187
|
+
useSafeLayoutEffect(() => {
|
|
188
|
+
if (autoSelect !== "always" && open) return;
|
|
189
|
+
canAutoSelectRef.current = open;
|
|
190
|
+
}, [autoSelect, open]);
|
|
191
|
+
const resetValueOnSelect = useStoreState(store, "resetValueOnSelect");
|
|
192
|
+
useUpdateEffect(() => {
|
|
193
|
+
const canAutoSelect = canAutoSelectRef.current;
|
|
194
|
+
if (!store) return;
|
|
195
|
+
if (!open) return;
|
|
196
|
+
if (!canAutoSelect && (!resetValueOnSelect || userScrolledRef.current)) return;
|
|
197
|
+
const { baseElement, contentElement, activeId } = store.getState();
|
|
198
|
+
if (baseElement && !hasFocus(baseElement)) return;
|
|
199
|
+
if (contentElement?.hasAttribute("data-placing")) {
|
|
200
|
+
const observer = new MutationObserver(forceValueUpdate);
|
|
201
|
+
observer.observe(contentElement, { attributeFilter: ["data-placing"] });
|
|
202
|
+
return () => observer.disconnect();
|
|
203
|
+
}
|
|
204
|
+
if (autoSelect && canAutoSelect) {
|
|
205
|
+
const userAutoSelectId = getAutoSelectIdProp(items);
|
|
206
|
+
const autoSelectId = userAutoSelectId !== void 0 ? userAutoSelectId : getDefaultAutoSelectId(items) ?? store.first();
|
|
207
|
+
autoSelectIdRef.current = autoSelectId;
|
|
208
|
+
store.move(autoSelectId ?? null);
|
|
209
|
+
} else {
|
|
210
|
+
const element = store.item(activeId || store.first())?.element;
|
|
211
|
+
if (element && "scrollIntoView" in element) {
|
|
212
|
+
isAutoScrollingRef.current = true;
|
|
213
|
+
element.scrollIntoView({
|
|
214
|
+
block: "nearest",
|
|
215
|
+
inline: "nearest"
|
|
216
|
+
});
|
|
217
|
+
requestAnimationFrame(() => {
|
|
218
|
+
isAutoScrollingRef.current = false;
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}, [
|
|
223
|
+
store,
|
|
224
|
+
open,
|
|
225
|
+
valueUpdated,
|
|
226
|
+
storeValue,
|
|
227
|
+
autoSelect,
|
|
228
|
+
resetValueOnSelect,
|
|
229
|
+
getAutoSelectIdProp,
|
|
230
|
+
items
|
|
231
|
+
]);
|
|
232
|
+
useEffect(() => {
|
|
233
|
+
if (!inline) return;
|
|
234
|
+
const combobox = ref.current;
|
|
235
|
+
if (!combobox) return;
|
|
236
|
+
const elements = [combobox, contentElement].filter((value) => !!value);
|
|
237
|
+
const onBlur = (event) => {
|
|
238
|
+
if (elements.every((el) => isFocusEventOutside(event, el))) store?.setValue(value);
|
|
239
|
+
};
|
|
240
|
+
for (const element of elements) element.addEventListener("focusout", onBlur);
|
|
241
|
+
return () => {
|
|
242
|
+
for (const element of elements) element.removeEventListener("focusout", onBlur);
|
|
243
|
+
};
|
|
244
|
+
}, [
|
|
245
|
+
inline,
|
|
246
|
+
contentElement,
|
|
247
|
+
store,
|
|
248
|
+
value
|
|
249
|
+
]);
|
|
250
|
+
const canShow = (event) => {
|
|
251
|
+
return event.currentTarget.value.length >= showMinLength;
|
|
252
|
+
};
|
|
253
|
+
const onChangeProp = props.onChange;
|
|
254
|
+
const showOnChangeProp = useBooleanEvent(showOnChange ?? canShow);
|
|
255
|
+
const setValueOnChangeProp = useBooleanEvent(setValueOnChange ?? !store.tag);
|
|
256
|
+
const onChange = useEvent((event) => {
|
|
257
|
+
onChangeProp?.(event);
|
|
258
|
+
if (event.defaultPrevented) return;
|
|
259
|
+
if (!store) return;
|
|
260
|
+
const currentTarget = event.currentTarget;
|
|
261
|
+
const { value, selectionStart, selectionEnd } = currentTarget;
|
|
262
|
+
const nativeEvent = event.nativeEvent;
|
|
263
|
+
canAutoSelectRef.current = true;
|
|
264
|
+
if (isInputEvent(nativeEvent)) {
|
|
265
|
+
if (nativeEvent.isComposing) {
|
|
266
|
+
canAutoSelectRef.current = false;
|
|
267
|
+
composingRef.current = true;
|
|
268
|
+
}
|
|
269
|
+
if (inline) {
|
|
270
|
+
const textInserted = nativeEvent.inputType === "insertText" || nativeEvent.inputType === "insertCompositionText";
|
|
271
|
+
const caretAtEnd = selectionStart === value.length;
|
|
272
|
+
setCanInline(textInserted && caretAtEnd);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
if (setValueOnChangeProp(event)) {
|
|
276
|
+
const isSameValue = value === store.getState().value;
|
|
277
|
+
store.setValue(value);
|
|
278
|
+
queueMicrotask(() => {
|
|
279
|
+
setSelectionRange(currentTarget, selectionStart, selectionEnd);
|
|
280
|
+
});
|
|
281
|
+
if (inline && autoSelect && isSameValue) forceValueUpdate();
|
|
282
|
+
}
|
|
283
|
+
if (showOnChangeProp(event)) store.show();
|
|
284
|
+
if (!autoSelect || !canAutoSelectRef.current) store.setActiveId(null);
|
|
285
|
+
});
|
|
286
|
+
const onCompositionEndProp = props.onCompositionEnd;
|
|
287
|
+
const onCompositionEnd = useEvent((event) => {
|
|
288
|
+
canAutoSelectRef.current = true;
|
|
289
|
+
composingRef.current = false;
|
|
290
|
+
onCompositionEndProp?.(event);
|
|
291
|
+
if (event.defaultPrevented) return;
|
|
292
|
+
if (!autoSelect) return;
|
|
293
|
+
forceValueUpdate();
|
|
294
|
+
});
|
|
295
|
+
const onMouseDownProp = props.onMouseDown;
|
|
296
|
+
const blurActiveItemOnClickProp = useBooleanEvent(blurActiveItemOnClick ?? (() => store.getState().includesBaseElement));
|
|
297
|
+
const setValueOnClickProp = useBooleanEvent(setValueOnClick);
|
|
298
|
+
const showOnClickProp = useBooleanEvent(showOnClick ?? canShow);
|
|
299
|
+
const onMouseDown = useEvent((event) => {
|
|
300
|
+
onMouseDownProp?.(event);
|
|
301
|
+
if (event.defaultPrevented) return;
|
|
302
|
+
if (event.button) return;
|
|
303
|
+
if (event.ctrlKey) return;
|
|
304
|
+
if (!store) return;
|
|
305
|
+
if (blurActiveItemOnClickProp(event)) store.setActiveId(null);
|
|
306
|
+
if (setValueOnClickProp(event)) store.setValue(value);
|
|
307
|
+
if (showOnClickProp(event)) queueBeforeEvent(event.currentTarget, "mouseup", store.show);
|
|
308
|
+
});
|
|
309
|
+
const onKeyDownProp = props.onKeyDown;
|
|
310
|
+
const showOnKeyPressProp = useBooleanEvent(showOnKeyPress ?? canShow);
|
|
311
|
+
const onKeyDown = useEvent((event) => {
|
|
312
|
+
onKeyDownProp?.(event);
|
|
313
|
+
if (!event.repeat) canAutoSelectRef.current = false;
|
|
314
|
+
if (event.defaultPrevented) return;
|
|
315
|
+
if (!store) return;
|
|
316
|
+
const { open } = store.getState();
|
|
317
|
+
if (open && event.key === "Enter") {
|
|
318
|
+
event.preventDefault();
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
if (event.ctrlKey) return;
|
|
322
|
+
if (event.altKey) return;
|
|
323
|
+
if (event.shiftKey) return;
|
|
324
|
+
if (event.metaKey) return;
|
|
325
|
+
if (open) return;
|
|
326
|
+
if (event.key === "ArrowUp" || event.key === "ArrowDown") {
|
|
327
|
+
if (showOnKeyPressProp(event)) {
|
|
328
|
+
event.preventDefault();
|
|
329
|
+
store.show();
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
const onBlurProp = props.onBlur;
|
|
334
|
+
const onBlur = useEvent((event) => {
|
|
335
|
+
canAutoSelectRef.current = false;
|
|
336
|
+
onBlurProp?.(event);
|
|
337
|
+
if (event.defaultPrevented) return;
|
|
338
|
+
});
|
|
339
|
+
const id = useId(props.id);
|
|
340
|
+
const ariaAutoComplete = isAriaAutoCompleteValue(autoComplete) ? autoComplete : void 0;
|
|
341
|
+
const isActiveItem = useStoreState(store, (state) => state.activeId === null);
|
|
342
|
+
props = {
|
|
343
|
+
role: "combobox",
|
|
344
|
+
"aria-autocomplete": ariaAutoComplete,
|
|
345
|
+
"aria-haspopup": getPopupRole(contentElement, "listbox"),
|
|
346
|
+
"aria-expanded": open,
|
|
347
|
+
"aria-controls": contentElement?.id,
|
|
348
|
+
"data-active-item": isActiveItem || void 0,
|
|
349
|
+
value,
|
|
350
|
+
...props,
|
|
351
|
+
id,
|
|
352
|
+
ref: useMergeRefs(ref, props.ref),
|
|
353
|
+
onChange,
|
|
354
|
+
onCompositionEnd,
|
|
355
|
+
onMouseDown,
|
|
356
|
+
onKeyDown,
|
|
357
|
+
onBlur
|
|
358
|
+
};
|
|
359
|
+
props = useComposite({
|
|
360
|
+
store,
|
|
361
|
+
focusable,
|
|
362
|
+
...props,
|
|
363
|
+
moveOnKeyPress: (event) => {
|
|
364
|
+
if (isFalsyBooleanCallback(moveOnKeyPress, event)) return false;
|
|
365
|
+
if (inline) setCanInline(true);
|
|
366
|
+
return true;
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
props = usePopoverAnchor({
|
|
370
|
+
store,
|
|
371
|
+
...props
|
|
372
|
+
});
|
|
373
|
+
return {
|
|
374
|
+
autoComplete: "off",
|
|
375
|
+
...props
|
|
376
|
+
};
|
|
377
|
+
});
|
|
378
|
+
/**
|
|
379
|
+
* Renders a combobox input element that can be used to filter a list of items.
|
|
380
|
+
* @see https://ariakit.com/components/combobox
|
|
381
|
+
* @example
|
|
382
|
+
* ```jsx {2}
|
|
383
|
+
* <ComboboxProvider>
|
|
384
|
+
* <Combobox />
|
|
385
|
+
* <ComboboxPopover>
|
|
386
|
+
* <ComboboxItem value="Apple" />
|
|
387
|
+
* <ComboboxItem value="Banana" />
|
|
388
|
+
* <ComboboxItem value="Orange" />
|
|
389
|
+
* </ComboboxPopover>
|
|
390
|
+
* </ComboboxProvider>
|
|
391
|
+
* ```
|
|
392
|
+
*/
|
|
393
|
+
const Combobox = forwardRef(function Combobox(props) {
|
|
394
|
+
return createElement(TagName, useCombobox(props));
|
|
395
|
+
});
|
|
396
|
+
//#endregion
|
|
397
|
+
export { Combobox, useCombobox };
|
|
398
|
+
|
|
399
|
+
//# sourceMappingURL=combobox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox.js","names":[],"sources":["../../src/combobox/combobox.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport {\n useBooleanEvent,\n useEvent,\n useForceUpdate,\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useUpdateEffect,\n useUpdateLayoutEffect,\n createElement,\n createHook,\n forwardRef,\n} from \"@ariakit/react-utils\";\nimport type { Props } from \"@ariakit/react-utils\";\nimport { sync } from \"@ariakit/store\";\nimport {\n getPopupRole,\n getScrollingElement,\n getTextboxSelection,\n setSelectionRange,\n isFocusEventOutside,\n queueBeforeEvent,\n hasFocus,\n invariant,\n isFalsyBooleanCallback,\n noop,\n normalizeString,\n} from \"@ariakit/utils\";\nimport type { BooleanOrCallback, StringWithValue } from \"@ariakit/utils\";\nimport type {\n AriaAttributes,\n ChangeEvent,\n CompositionEvent,\n ElementType,\n MouseEvent,\n FocusEvent as ReactFocusEvent,\n KeyboardEvent as ReactKeyboardEvent,\n SyntheticEvent,\n} from \"react\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport type { CompositeOptions } from \"../composite/composite.tsx\";\nimport { useComposite } from \"../composite/composite.tsx\";\nimport type { PopoverAnchorOptions } from \"../popover/popover-anchor.tsx\";\nimport { usePopoverAnchor } from \"../popover/popover-anchor.tsx\";\nimport { useComboboxProviderContext } from \"./combobox-context.tsx\";\nimport type {\n ComboboxStore,\n ComboboxStoreSelectedValue,\n ComboboxStoreState,\n} from \"./combobox-store.ts\";\n\nconst TagName = \"input\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\nfunction isFirstItemAutoSelected(\n items: ComboboxStoreState[\"items\"],\n activeValue: ComboboxStoreState[\"activeValue\"],\n autoSelect: ComboboxProps[\"autoSelect\"],\n) {\n if (!autoSelect) return false;\n const firstItem = items.find((item) => !item.disabled && item.value);\n return firstItem?.value === activeValue;\n}\n\nfunction hasCompletionString(value?: string, activeValue?: string) {\n if (!activeValue) return false;\n if (value == null) return false;\n value = normalizeString(value);\n return (\n activeValue.length > value.length &&\n activeValue.toLowerCase().indexOf(value.toLowerCase()) === 0\n );\n}\n\nfunction isInputEvent(event: Event): event is InputEvent {\n return event.type === \"input\";\n}\n\nfunction isAriaAutoCompleteValue(\n value: string,\n): value is Required<AriaAttributes>[\"aria-autocomplete\"] {\n return (\n value === \"inline\" ||\n value === \"list\" ||\n value === \"both\" ||\n value === \"none\"\n );\n}\n\nfunction getDefaultAutoSelectId(items: ComboboxStoreState[\"items\"]) {\n const item = items.find((item) => {\n if (item.disabled) return false;\n // When rendering tabs in a combobox widget, we ignore them and auto select\n // the first item that's not a tab instead.\n return item.element?.getAttribute(\"role\") !== \"tab\";\n });\n return item?.id;\n}\n\n/**\n * Returns props to create a `Combobox` component.\n * @see https://ariakit.com/components/combobox\n * @example\n * ```jsx\n * const store = useComboboxStore();\n * const props = useCombobox({ store });\n * <Role {...props} />\n * <ComboboxPopover store={store}>\n * <ComboboxItem value=\"Apple\" />\n * <ComboboxItem value=\"Banana\" />\n * <ComboboxItem value=\"Orange\" />\n * </ComboboxPopover>\n * ```\n */\nexport const useCombobox = createHook<TagName, ComboboxOptions>(\n function useCombobox({\n store,\n focusable = true,\n autoSelect: autoSelectProp = false,\n getAutoSelectId,\n setValueOnChange,\n showMinLength = 0,\n showOnChange,\n showOnMouseDown,\n showOnClick = showOnMouseDown,\n showOnKeyDown,\n showOnKeyPress = showOnKeyDown,\n blurActiveItemOnClick,\n setValueOnClick = true,\n moveOnKeyPress = true,\n autoComplete = \"list\",\n ...props\n }) {\n const context = useComboboxProviderContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"Combobox must receive a `store` prop or be wrapped in a ComboboxProvider component.\",\n );\n\n const ref = useRef<HTMLType>(null);\n const [valueUpdated, forceValueUpdate] = useForceUpdate();\n const canAutoSelectRef = useRef(false);\n const composingRef = useRef(false);\n\n // We can only allow auto select when the combobox focus is handled via the\n // aria-activedescendant attribute. Othwerwise, the focus would move to the\n // first item on every keypress.\n const autoSelect = useStoreState(\n store,\n (state) => state.virtualFocus && autoSelectProp,\n );\n\n const inline = autoComplete === \"inline\" || autoComplete === \"both\";\n // The inline autocomplete should only happen in certain circumstances. We\n // control this state here.\n const [canInline, setCanInline] = useState(inline);\n\n // If the inline autocomplete is enabled in a update, we need to update the\n // canInline state to reflect this. TODO: Try derived state.\n useUpdateLayoutEffect(() => {\n if (!inline) return;\n setCanInline(true);\n }, [inline]);\n\n const storeValue = useStoreState(store, \"value\");\n\n // Keep track of the previous selected values so we can set the\n // inlineActiveValue below only when the current activeValue isn't already\n // selected and isn't one of the previously selected values. See\n // tag-combobox test named \"deselecting a tag should not highlight the input\n // text if it is not the first combobox item\".\n const prevSelectedValueRef = useRef<ComboboxStoreSelectedValue>(undefined);\n useEffect(() => {\n return sync(store, [\"selectedValue\", \"activeId\"], (_, prev) => {\n prevSelectedValueRef.current = prev.selectedValue;\n });\n }, [store]);\n\n const inlineActiveValue = useStoreState(store, (state) => {\n if (!inline) return;\n if (!canInline) return;\n // It doesn't make sense to inline the active value if it's already\n // selected or just got deselected. Inlining the value typically implies\n // an addition, but if the value is already selected, the action actually\n // becomes a deletion. If the value was just deselected, pressing Enter\n // again would reselect it, but it's not the usual path, so we also take\n // into account the previously selected values. See tag-combobox test\n // named \"deselecting a tag should not highlight the input text if it is\n // not the first combobox item\".\n if (state.activeValue && Array.isArray(state.selectedValue)) {\n if (state.selectedValue.includes(state.activeValue)) return;\n if (prevSelectedValueRef.current?.includes(state.activeValue)) return;\n }\n return state.activeValue;\n });\n\n const items = useStoreState(store, \"renderedItems\");\n const open = useStoreState(store, \"open\");\n const contentElement = useStoreState(store, \"contentElement\");\n\n // The current input value may differ from state.value when\n // autoComplete is either \"both\" or \"inline\", in which case it will be\n // the active item value or a combination of the input value and the active\n // item value if it's the first item and it's been auto selected. This will\n // only affect the element's value, not the combobox state.\n const value = useMemo(() => {\n if (!inline) return storeValue;\n if (!canInline) return storeValue;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n inlineActiveValue,\n autoSelect,\n );\n if (firstItemAutoSelected) {\n // If the first item is auto selected, we should append the completion\n // string to the end of the value. This will be highlited in the effect\n // below.\n if (hasCompletionString(storeValue, inlineActiveValue)) {\n const slice = inlineActiveValue?.slice(storeValue.length) || \"\";\n return storeValue + slice;\n }\n return storeValue;\n }\n return inlineActiveValue || storeValue;\n }, [inline, canInline, items, inlineActiveValue, autoSelect, storeValue]);\n\n // Listen to the combobox-item-move event that's dispacthed the ComboboxItem\n // component so we can enable the inline autocomplete when the user moves\n // the focus to an item using the keyboard.\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n const onCompositeItemMove = () => setCanInline(true);\n element.addEventListener(\"combobox-item-move\", onCompositeItemMove);\n return () => {\n element.removeEventListener(\"combobox-item-move\", onCompositeItemMove);\n };\n }, []);\n\n // Highlights the completion string\n useEffect(() => {\n if (!inline) return;\n if (!canInline) return;\n if (!inlineActiveValue) return;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n inlineActiveValue,\n autoSelect,\n );\n if (!firstItemAutoSelected) return;\n if (!hasCompletionString(storeValue, inlineActiveValue)) return;\n let cleanup = noop;\n // For some reason, this setSelectionRange may run before the value is\n // updated in the DOM. We're using a microtask to make sure it runs after\n // the value is updated so we don't lose the selection. See combobox-group\n // test-browser file.\n queueMicrotask(() => {\n const element = ref.current;\n if (!element) return;\n const { start: prevStart, end: prevEnd } = getTextboxSelection(element);\n const nextStart = storeValue.length;\n const nextEnd = inlineActiveValue.length;\n setSelectionRange(element, nextStart, nextEnd);\n cleanup = () => {\n // This effect may run after the value is updated and the completion\n // string is highlighted, for example, when the items are updated\n // asynchronously or in a React transition in a multi-selectable\n // combobox. In this case, we must restore the previous selection\n // range if it hasn't changed. TODO: Test this.\n if (!hasFocus(element)) return;\n const { start, end } = getTextboxSelection(element);\n if (start !== nextStart) return;\n if (end !== nextEnd) return;\n setSelectionRange(element, prevStart, prevEnd);\n };\n });\n return () => cleanup();\n }, [\n valueUpdated,\n inline,\n canInline,\n inlineActiveValue,\n items,\n autoSelect,\n storeValue,\n ]);\n\n const scrollingElementRef = useRef<Element | null>(null);\n const getAutoSelectIdProp = useEvent(getAutoSelectId);\n const autoSelectIdRef = useRef<string | null | undefined>(null);\n const userScrolledRef = useRef(false);\n const isAutoScrollingRef = useRef(false);\n\n // Disable the autoSelect behavior when the user scrolls the combobox\n // content. This prevents the focus from moving to the first item on\n // virtualized and infinite lists.\n useEffect(() => {\n if (!open) return;\n if (!contentElement) return;\n const scrollingElement = getScrollingElement(contentElement);\n if (!scrollingElement) return;\n scrollingElementRef.current = scrollingElement;\n const onUserScroll = () => {\n // A wheel event is always initiated by the user, so we can disable the\n // autoSelect behavior without any additional checks.\n canAutoSelectRef.current = false;\n userScrolledRef.current = true;\n };\n const onScroll = () => {\n // Mark any non-programmatic scroll as user-initiated so we don't\n // reset the scroll position when new items load (e.g., infinite\n // scroll, scrollbar drag). Programmatic scrolls from scrollIntoView\n // set isAutoScrollingRef to avoid false positives.\n if (!isAutoScrollingRef.current) {\n userScrolledRef.current = true;\n }\n if (!store) return;\n if (!canAutoSelectRef.current) return;\n // We won't disable the autoSelect behavior if the autoSelect item is\n // still focused.\n const { activeId } = store.getState();\n if (activeId === null) return;\n if (activeId === autoSelectIdRef.current) return;\n canAutoSelectRef.current = false;\n };\n const options = { passive: true, capture: true };\n scrollingElement.addEventListener(\"wheel\", onUserScroll, options);\n scrollingElement.addEventListener(\"touchmove\", onUserScroll, options);\n scrollingElement.addEventListener(\"scroll\", onScroll, options);\n return () => {\n scrollingElement.removeEventListener(\"wheel\", onUserScroll, true);\n scrollingElement.removeEventListener(\"touchmove\", onUserScroll, true);\n scrollingElement.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [open, contentElement, store]);\n\n // Reset the user-scrolled flag and set the changed flag to true whenever\n // the combobox value changes and is not empty. We're doing this here in\n // addition to in the onChange handler because the value may change\n // programmatically.\n useSafeLayoutEffect(() => {\n userScrolledRef.current = false;\n if (!storeValue) return;\n if (composingRef.current) return;\n canAutoSelectRef.current = true;\n }, [storeValue]);\n\n // Reset the changed flag when the popover is not open so we don't try to\n // auto select an item after the popover closes (for example, in the middle\n // of an animation).\n useSafeLayoutEffect(() => {\n if (autoSelect !== \"always\" && open) return;\n canAutoSelectRef.current = open;\n }, [autoSelect, open]);\n\n const resetValueOnSelect = useStoreState(store, \"resetValueOnSelect\");\n\n // Auto select the first item on type. This effect runs both when the value\n // changes and when the items change so we also catch async items.\n useUpdateEffect(() => {\n const canAutoSelect = canAutoSelectRef.current;\n if (!store) return;\n if (!open) return;\n if (!canAutoSelect && (!resetValueOnSelect || userScrolledRef.current))\n return;\n const { baseElement, contentElement, activeId } = store.getState();\n if (baseElement && !hasFocus(baseElement)) return;\n // The data-placing attribute is an internal state added by the Popover\n // component. We can observe it to know when the popover is done placing\n // itself. This is to prevent the focus from moving to the first item\n // while the popover is still calculating its position, which could cause\n // a scroll jump. See combobox-group test-browser file.\n if (contentElement?.hasAttribute(\"data-placing\")) {\n const observer = new MutationObserver(forceValueUpdate);\n observer.observe(contentElement, { attributeFilter: [\"data-placing\"] });\n return () => observer.disconnect();\n }\n if (autoSelect && canAutoSelect) {\n const userAutoSelectId = getAutoSelectIdProp(items);\n const autoSelectId =\n userAutoSelectId !== undefined\n ? userAutoSelectId\n : (getDefaultAutoSelectId(items) ?? store.first());\n autoSelectIdRef.current = autoSelectId;\n // If there's no first item (that is, there are no items or all items\n // are disabled), we should move the focus to the input (null),\n // otherwise, with async items, the activeValue won't be reset. TODO:\n // Test this.\n store.move(autoSelectId ?? null);\n } else {\n // Reset the scroll position to the active item when an item is selected\n // and the combobox value is reset, which might move the active item\n // offscreen. Otherwise, if no item is selected, reset to the first\n // item, such as when `autoSelect` is false.\n const element = store.item(activeId || store.first())?.element;\n if (element && \"scrollIntoView\" in element) {\n isAutoScrollingRef.current = true;\n element.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n // Clear after the browser dispatches the scroll event. Scroll\n // events fire during the \"scroll steps\" of the rendering update,\n // which run before requestAnimationFrame callbacks.\n requestAnimationFrame(() => {\n isAutoScrollingRef.current = false;\n });\n }\n }\n return;\n }, [\n store,\n open,\n valueUpdated,\n storeValue,\n autoSelect,\n resetValueOnSelect,\n getAutoSelectIdProp,\n items,\n ]);\n\n // If it has inline auto completion, set the store value when the combobox\n // input or the combobox list lose focus.\n useEffect(() => {\n if (!inline) return;\n const combobox = ref.current;\n if (!combobox) return;\n const elements = [combobox, contentElement].filter(\n (value): value is HTMLElement => !!value,\n );\n const onBlur = (event: FocusEvent) => {\n if (elements.every((el) => isFocusEventOutside(event, el))) {\n store?.setValue(value);\n }\n };\n for (const element of elements) {\n element.addEventListener(\"focusout\", onBlur);\n }\n return () => {\n for (const element of elements) {\n element.removeEventListener(\"focusout\", onBlur);\n }\n };\n }, [inline, contentElement, store, value]);\n\n const canShow = (event: SyntheticEvent) => {\n const currentTarget = event.currentTarget as HTMLType;\n return currentTarget.value.length >= showMinLength;\n };\n\n const onChangeProp = props.onChange;\n const showOnChangeProp = useBooleanEvent(showOnChange ?? canShow);\n const setValueOnChangeProp = useBooleanEvent(\n // If the combobox is combined with tags, the value will be set by the tag\n // input component.\n setValueOnChange ?? !store.tag,\n );\n\n const onChange = useEvent((event: ChangeEvent<HTMLType>) => {\n onChangeProp?.(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const currentTarget = event.currentTarget;\n const { value, selectionStart, selectionEnd } = currentTarget;\n const nativeEvent = event.nativeEvent;\n canAutoSelectRef.current = true;\n if (isInputEvent(nativeEvent)) {\n if (nativeEvent.isComposing) {\n canAutoSelectRef.current = false;\n composingRef.current = true;\n }\n if (inline) {\n const textInserted =\n nativeEvent.inputType === \"insertText\" ||\n nativeEvent.inputType === \"insertCompositionText\";\n const caretAtEnd = selectionStart === value.length;\n setCanInline(textInserted && caretAtEnd);\n }\n }\n if (setValueOnChangeProp(event)) {\n const isSameValue = value === store.getState().value;\n store.setValue(value);\n // When the value is not set synchronously, the selection range may be\n // lost. See combobox-group \"keep caret position when typing\" test.\n queueMicrotask(() => {\n setSelectionRange(currentTarget, selectionStart, selectionEnd);\n });\n if (inline && autoSelect && isSameValue) {\n // The store.setValue(event.target.value) above may not trigger a\n // state update. For example, say the first item starts with \"t\". The\n // user starts typing \"t\", then the first item is auto selected and\n // the inline completion string is appended and highlited. The user\n // then selects all the text and type \"t\" again. This change will\n // produce the same value as the store value, and therefore the state\n // update will not trigger a re-render. We need to force a re-render\n // here so the inline completion effect will be fired.\n forceValueUpdate();\n }\n }\n if (showOnChangeProp(event)) {\n store.show();\n }\n if (!autoSelect || !canAutoSelectRef.current) {\n // If autoSelect is not set or it's not an insertion of text, focus on\n // the combobox input after changing the value.\n store.setActiveId(null);\n }\n });\n\n const onCompositionEndProp = props.onCompositionEnd;\n\n // When dealing with composition text (for example, when the user is typing\n // in accents or chinese characters), we need to set canAutoSelectRef to\n // true when the composition ends. This is because the native input event\n // that's passed to the change event above will not produce a consistent\n // inputType value across browsers, so we can't rely on that there.\n const onCompositionEnd = useEvent((event: CompositionEvent<HTMLType>) => {\n canAutoSelectRef.current = true;\n composingRef.current = false;\n onCompositionEndProp?.(event);\n if (event.defaultPrevented) return;\n if (!autoSelect) return;\n forceValueUpdate();\n });\n\n const onMouseDownProp = props.onMouseDown;\n const blurActiveItemOnClickProp = useBooleanEvent(\n blurActiveItemOnClick ?? (() => store.getState().includesBaseElement),\n );\n const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n const showOnClickProp = useBooleanEvent(showOnClick ?? canShow);\n\n const onMouseDown = useEvent((event: MouseEvent<HTMLType>) => {\n onMouseDownProp?.(event);\n if (event.defaultPrevented) return;\n if (event.button) return;\n if (event.ctrlKey) return;\n if (!store) return;\n if (blurActiveItemOnClickProp(event)) {\n store.setActiveId(null);\n }\n if (setValueOnClickProp(event)) {\n store.setValue(value);\n }\n if (showOnClickProp(event)) {\n queueBeforeEvent(event.currentTarget, \"mouseup\", store.show);\n }\n });\n\n const onKeyDownProp = props.onKeyDown;\n const showOnKeyPressProp = useBooleanEvent(showOnKeyPress ?? canShow);\n\n const onKeyDown = useEvent((event: ReactKeyboardEvent<HTMLType>) => {\n onKeyDownProp?.(event);\n if (!event.repeat) {\n // Run combobox-tabs and combobox-group (browser) tests.\n canAutoSelectRef.current = false;\n }\n if (event.defaultPrevented) return;\n if (!store) return;\n const { open } = store.getState();\n // When the popover is open, prevent Enter (with or without modifiers)\n // from triggering the default behavior (submitting a parent form). If\n // there's an active item, the keyboard event proxy on Composite will\n // dispatch Enter to the item, which handles selection. If there's no\n // active item (e.g., all items are filtered out, or activeId is stale\n // after a React transition), Enter should be a no-op rather than\n // submitting a form.\n if (open && event.key === \"Enter\") {\n event.preventDefault();\n return;\n }\n if (event.ctrlKey) return;\n if (event.altKey) return;\n if (event.shiftKey) return;\n if (event.metaKey) return;\n if (open) return;\n // Up and Down arrow keys should open the combobox popover.\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n if (showOnKeyPressProp(event)) {\n event.preventDefault();\n store.show();\n }\n }\n });\n\n const onBlurProp = props.onBlur;\n\n const onBlur = useEvent((event: ReactFocusEvent<HTMLType>) => {\n // If we don't reset the canAutoSelectRef here, the combobox will keep the\n // first item selected when the combobox loses focus and its value gets\n // cleared. See combobox-cancel tests.\n canAutoSelectRef.current = false;\n onBlurProp?.(event);\n if (event.defaultPrevented) return;\n });\n\n // This is necessary so other components like ComboboxCancel can reference\n // the combobox input in their aria-controls attribute. It's also used by\n // ComboboxLabel.\n const id = useId(props.id);\n\n const ariaAutoComplete = isAriaAutoCompleteValue(autoComplete)\n ? autoComplete\n : undefined;\n\n const isActiveItem = useStoreState(\n store,\n (state) => state.activeId === null,\n );\n\n props = {\n role: \"combobox\",\n \"aria-autocomplete\": ariaAutoComplete,\n \"aria-haspopup\": getPopupRole(contentElement, \"listbox\"),\n \"aria-expanded\": open,\n \"aria-controls\": contentElement?.id,\n \"data-active-item\": isActiveItem || undefined,\n value,\n ...props,\n id,\n ref: useMergeRefs(ref, props.ref),\n onChange,\n onCompositionEnd,\n onMouseDown,\n onKeyDown,\n onBlur,\n };\n\n props = useComposite<TagName>({\n store,\n focusable,\n ...props,\n // Enable inline autocomplete when the user moves from the combobox input\n // to an item.\n moveOnKeyPress: (event) => {\n if (isFalsyBooleanCallback(moveOnKeyPress, event)) return false;\n if (inline) setCanInline(true);\n return true;\n },\n });\n\n props = usePopoverAnchor<TagName>({ store, ...props });\n\n return { autoComplete: \"off\", ...props };\n },\n);\n\n/**\n * Renders a combobox input element that can be used to filter a list of items.\n * @see https://ariakit.com/components/combobox\n * @example\n * ```jsx {2}\n * <ComboboxProvider>\n * <Combobox />\n * <ComboboxPopover>\n * <ComboboxItem value=\"Apple\" />\n * <ComboboxItem value=\"Banana\" />\n * <ComboboxItem value=\"Orange\" />\n * </ComboboxPopover>\n * </ComboboxProvider>\n * ```\n */\nexport const Combobox = forwardRef(function Combobox(props: ComboboxProps) {\n const htmlProps = useCombobox(props);\n return createElement(TagName, htmlProps);\n});\n\nexport interface ComboboxOptions<T extends ElementType = TagName>\n extends CompositeOptions<T>, PopoverAnchorOptions<T> {\n /**\n * Object returned by the\n * [`useComboboxStore`](https://ariakit.com/reference/use-combobox-store)\n * hook. If not provided, the closest\n * [`ComboboxProvider`](https://ariakit.com/reference/combobox-provider)\n * component's context will be used.\n */\n store?: ComboboxStore;\n /**\n * Determines if the first enabled item will be automatically focused when the\n * combobox input value changes. If set to `true` or `\"always\"`, the exact\n * behavior hinges on the value of the\n * [`autoComplete`](https://ariakit.com/reference/combobox#autocomplete) prop:\n * - If [`autoComplete`](https://ariakit.com/reference/combobox#autocomplete)\n * is `both` or `inline`, the first enabled item is automatically focused as\n * the user types in the input. The value gets appended with the completion\n * string if it matches. The inline completion string will be highlighted\n * and selected.\n * - If [`autoComplete`](https://ariakit.com/reference/combobox#autocomplete)\n * is `list` or `none`, the first enabled item is automatically focused as\n * the user types in the input, but the input value is not appended with the\n * item value.\n *\n * If set to `\"always\"`, the first enabled item is auto-highlighted when the\n * combobox list opens, not just when the input value changes.\n *\n * To change which item gets auto-selected, use the\n * [`getAutoSelectId`](https://ariakit.com/reference/combobox#getautoselectid)\n * prop.\n *\n * Live examples:\n * - [Command Menu with\n * Tabs](https://ariakit.com/examples/dialog-combobox-tab-command-menu)\n * - [ComboboxGroup](https://ariakit.com/examples/combobox-group)\n * - [Combobox with links](https://ariakit.com/examples/combobox-links)\n * - [Textarea with inline\n * Combobox](https://ariakit.com/examples/combobox-textarea)\n * - [Menu with Combobox](https://ariakit.com/examples/menu-combobox)\n * - [Select with Combobox](https://ariakit.com/examples/select-combobox)\n * @default false\n */\n autoSelect?: boolean | \"always\";\n /**\n * Function that takes the currently rendered items and returns the id of the\n * item to be auto selected when the\n * [`autoSelect`](https://ariakit.com/reference/combobox#autoselect) prop is\n * `true`.\n *\n * By default, the first enabled item is auto selected. This function is handy\n * if you prefer a different item to be auto selected. Returning `undefined`\n * from this function will result in the default behavior.\n * @example\n * ```jsx\n * <Combobox\n * autoSelect\n * getAutoSelectId={(items) => {\n * // Auto select the first enabled item with a value\n * const item = items.find((item) => {\n * if (item.disabled) return false;\n * if (!item.value) return false;\n * return true;\n * });\n * return item?.id;\n * }}\n * />\n * ```\n */\n getAutoSelectId?: (\n renderedItems: ComboboxStoreState[\"renderedItems\"],\n ) => string | null | undefined;\n /**\n * Whether the items will be filtered based on\n * [`value`](https://ariakit.com/reference/combobox-provider#value) and\n * whether the input value will temporarily change based on the active item.\n *\n * This prop is based on the standard\n * [`aria-autocomplete`](https://w3c.github.io/aria/#aria-autocomplete)\n * attribute, accepting the same values:\n * - `list` (default): indicates that the items will be dynamically rendered\n * based on [`value`](https://ariakit.com/reference/combobox-provider#value)\n * and the input value will _not_ change based on the active item. The\n * filtering logic must be implemented by the consumer of this component.\n * - `inline`: indicates that the items are static, that is, they won't be\n * filtered, but the input value will temporarily change based on the active\n * item. Ariakit will automatically provide the inline autocompletion\n * behavior.\n * - `both`: indicates that the items will be dynamically rendered based on\n * [`value`](https://ariakit.com/reference/combobox-provider#value) and the\n * input value will temporarily change based on the active item. The\n * filtering logic must be implemented by the consumer of this component,\n * whereas Ariakit will automatically provide the inline autocompletion\n * behavior.\n * - `none`: the items are static and the input value will _not_ change based\n * on the active item.\n *\n * Live examples:\n * - [ComboboxGroup](https://ariakit.com/examples/combobox-group)\n * @default \"list\"\n */\n autoComplete?: StringWithValue<Required<AriaAttributes>[\"aria-autocomplete\"]>;\n /**\n * Determines if the highlighted item should lose focus when the user clicks\n * on the combobox input element. By default, this prop's value is set\n * according to the\n * [`includesBaseElement`](https://ariakit.com/reference/combobox-provider#includesbaseelement)\n * value.\n */\n blurActiveItemOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;\n /**\n * Specifies the minimum character count the input value should have before\n * the [`ComboboxList`](https://ariakit.com/reference/combobox-list) or\n * [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)\n * components are displayed.\n *\n * The [`showOnChange`](https://ariakit.com/reference/combobox#showonchange),\n * [`showOnClick`](https://ariakit.com/reference/combobox#showonclick), and\n * [`showOnKeyPress`](https://ariakit.com/reference/combobox#showonkeypress)\n * props allow you to tailor the behavior for each unique event.\n * @default 0\n * @example\n * In the following example, the combobox list will be shown when the input\n * value has at least one character. However, if the user presses the arrow\n * keys, the list will be shown regardless of the input value length.\n * ```jsx\n * <Combobox showMinLength={1} showOnKeyPress />\n * ```\n */\n showMinLength?: number;\n /**\n * Whether the [`ComboboxList`](https://ariakit.com/reference/combobox-list)\n * or [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)\n * components should be shown when the input value changes.\n *\n * Live examples:\n * - [Textarea with inline\n * Combobox](https://ariakit.com/examples/combobox-textarea)\n * @default true\n * @example\n * ```jsx\n * <Combobox showOnChange={(event) => event.target.value.length > 1} />\n * ```\n */\n showOnChange?: BooleanOrCallback<ChangeEvent<HTMLElement>>;\n /**\n * Whether the [`ComboboxList`](https://ariakit.com/reference/combobox-list)\n * or [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)\n * components should be shown when the input is clicked.\n * @deprecated Use\n * [`showOnClick`](https://ariakit.com/reference/combobox#showonclick)\n * instead.\n * @default true\n */\n showOnMouseDown?: BooleanOrCallback<MouseEvent<HTMLElement>>;\n /**\n * Whether the [`ComboboxList`](https://ariakit.com/reference/combobox-list)\n * or [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)\n * components should be shown when the input is clicked.\n *\n * Live examples:\n * - [Textarea with inline\n * Combobox](https://ariakit.com/examples/combobox-textarea)\n * @default true\n * @example\n * ```jsx\n * <Combobox showOnClick={value.length > 1} />\n * ```\n */\n showOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;\n /**\n * Whether the [`ComboboxList`](https://ariakit.com/reference/combobox-list)\n * or [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)\n * components should be shown when the user presses the arrow up or down keys\n * while focusing on the combobox input element.\n * @deprecated Use\n * [`showOnKeyPress`](https://ariakit.com/reference/combobox#showonkeypress)\n * instead.\n * @default true\n */\n showOnKeyDown?: BooleanOrCallback<ReactKeyboardEvent<HTMLElement>>;\n /**\n * Whether the [`ComboboxList`](https://ariakit.com/reference/combobox-list)\n * or [`ComboboxPopover`](https://ariakit.com/reference/combobox-popover)\n * components should be shown when the user presses the arrow up or down keys\n * while focusing on the combobox input element.\n *\n * Live examples:\n * - [Textarea with inline\n * Combobox](https://ariakit.com/examples/combobox-textarea)\n * @default true\n * @example\n * ```jsx\n * <Combobox showOnKeyPress={value.length > 1} />\n * ```\n */\n showOnKeyPress?: BooleanOrCallback<ReactKeyboardEvent<HTMLElement>>;\n /**\n * Whether the combobox\n * [`value`](https://ariakit.com/reference/combobox-provider#value) state\n * should be updated when the input value changes. This is useful if you want\n * to customize how the store\n * [`value`](https://ariakit.com/reference/combobox-provider#value) is updated\n * based on the input element's value.\n *\n * Live examples:\n * - [Textarea with inline\n * Combobox](https://ariakit.com/examples/combobox-textarea)\n * @default true\n */\n setValueOnChange?: BooleanOrCallback<ChangeEvent<HTMLElement>>;\n /**\n * Whether the combobox\n * [`value`](https://ariakit.com/reference/combobox-provider#value) state\n * should be updated when the combobox input element gets clicked. This\n * usually only applies when\n * [`autoComplete`](https://ariakit.com/reference/combobox#autocomplete) is\n * `both` or `inline`, because the input value will temporarily change based\n * on the active item and the store\n * [`value`](https://ariakit.com/reference/combobox-provider#value) will not\n * be updated until the user confirms the selection.\n * @default true\n */\n setValueOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;\n}\n\nexport type ComboboxProps<T extends ElementType = TagName> = Props<\n T,\n ComboboxOptions<T>\n>;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { t as DisclosureStore } from "./disclosure-store-BsaBaRKv.js";
|
|
2
|
+
import { i as CompositeStoreOptions, n as CompositeStoreFunctions, o as CompositeStoreState } from "./composite-store-DyJc-XRA.js";
|
|
3
|
+
import { a as PopoverStoreState, n as PopoverStoreFunctions, r as PopoverStoreOptions } from "./popover-store-Bc-l5VVO.js";
|
|
4
|
+
import { t as TagStore } from "./tag-store-xANOvuGo.js";
|
|
5
|
+
import { PickRequired } from "@ariakit/utils";
|
|
6
|
+
import { Store } from "@ariakit/react-store";
|
|
7
|
+
import * as Core from "@ariakit/components/combobox/combobox-store";
|
|
8
|
+
|
|
9
|
+
//#region src/combobox/combobox-store.d.ts
|
|
10
|
+
declare function useComboboxStoreOptions<T extends Core.ComboboxStoreOptions>(props: T): {
|
|
11
|
+
id: string | undefined;
|
|
12
|
+
} & T;
|
|
13
|
+
declare function useComboboxStoreProps<T extends Core.ComboboxStore>(store: T, update: () => void, props: ComboboxStoreProps): T & {
|
|
14
|
+
disclosure: DisclosureStore | null | undefined;
|
|
15
|
+
} & {
|
|
16
|
+
tag: TagStore | null | undefined;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Creates a combobox store to control the state of
|
|
20
|
+
* [Combobox](https://ariakit.com/components/combobox) components.
|
|
21
|
+
* @see https://ariakit.com/components/combobox
|
|
22
|
+
* @example
|
|
23
|
+
* ```jsx
|
|
24
|
+
* const combobox = useComboboxStore();
|
|
25
|
+
*
|
|
26
|
+
* <ComboboxProvider store={combobox}>
|
|
27
|
+
* <Combobox />
|
|
28
|
+
* <ComboboxPopover>
|
|
29
|
+
* <ComboboxItem value="Apple" />
|
|
30
|
+
* <ComboboxItem value="Banana" />
|
|
31
|
+
* <ComboboxItem value="Orange" />
|
|
32
|
+
* </ComboboxPopover>
|
|
33
|
+
* </ComboboxProvider>
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
declare function useComboboxStore<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue>(props: PickRequired<ComboboxStoreProps<T>, "selectedValue" | "defaultSelectedValue">): ComboboxStore<T>;
|
|
37
|
+
declare function useComboboxStore(props?: ComboboxStoreProps): ComboboxStore;
|
|
38
|
+
type ComboboxStoreSelectedValue = Core.ComboboxStoreSelectedValue;
|
|
39
|
+
interface ComboboxStoreItem extends Core.ComboboxStoreItem {}
|
|
40
|
+
interface ComboboxStoreState<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends Core.ComboboxStoreState<T>, CompositeStoreState<ComboboxStoreItem>, PopoverStoreState {}
|
|
41
|
+
interface ComboboxStoreFunctions<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends Pick<ComboboxStoreOptions<T>, "tag">, Omit<Core.ComboboxStoreFunctions<T>, "tag" | "disclosure">, CompositeStoreFunctions<ComboboxStoreItem>, PopoverStoreFunctions {}
|
|
42
|
+
interface ComboboxStoreOptions<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends Omit<Core.ComboboxStoreOptions<T>, "tag" | "disclosure">, CompositeStoreOptions<ComboboxStoreItem>, PopoverStoreOptions {
|
|
43
|
+
/**
|
|
44
|
+
* A callback that gets called when the
|
|
45
|
+
* [`value`](https://ariakit.com/reference/combobox-provider#value) state
|
|
46
|
+
* changes.
|
|
47
|
+
*
|
|
48
|
+
* Live examples:
|
|
49
|
+
* - [Combobox with integrated
|
|
50
|
+
* filter](https://ariakit.com/examples/combobox-filtering-integrated)
|
|
51
|
+
* - [ComboboxGroup](https://ariakit.com/examples/combobox-group)
|
|
52
|
+
* - [Combobox with links](https://ariakit.com/examples/combobox-links)
|
|
53
|
+
* - [Multi-selectable
|
|
54
|
+
* Combobox](https://ariakit.com/examples/combobox-multiple)
|
|
55
|
+
* - [Menu with Combobox](https://ariakit.com/examples/menu-combobox)
|
|
56
|
+
* - [Select with Combobox](https://ariakit.com/examples/select-combobox)
|
|
57
|
+
*/
|
|
58
|
+
setValue?: (value: ComboboxStoreState<T>["value"]) => void;
|
|
59
|
+
/**
|
|
60
|
+
* A callback that's invoked when the
|
|
61
|
+
* [`selectedValue`](https://ariakit.com/reference/combobox-provider#selectedvalue)
|
|
62
|
+
* state changes, typically when the user selects an item. This can be used to
|
|
63
|
+
* implement behavior like `onSelect` or `onItemSelect`.
|
|
64
|
+
*
|
|
65
|
+
* Live examples:
|
|
66
|
+
* - [Multi-selectable
|
|
67
|
+
* Combobox](https://ariakit.com/examples/combobox-multiple)
|
|
68
|
+
*/
|
|
69
|
+
setSelectedValue?: (value: ComboboxStoreState<T>["selectedValue"]) => void;
|
|
70
|
+
/**
|
|
71
|
+
* A reference to a [tag store](https://ariakit.com/apis/use-tag-store). It's
|
|
72
|
+
* automatically set when rendering a combobox within a tag list.
|
|
73
|
+
*/
|
|
74
|
+
tag?: TagStore | null;
|
|
75
|
+
}
|
|
76
|
+
interface ComboboxStoreProps<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends ComboboxStoreOptions<T>, Omit<Core.ComboboxStoreProps<T>, "tag" | "disclosure"> {}
|
|
77
|
+
interface ComboboxStore<T extends ComboboxStoreSelectedValue = ComboboxStoreSelectedValue> extends ComboboxStoreFunctions<T>, Omit<Store<Core.ComboboxStore<T>>, "tag" | "disclosure"> {}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { ComboboxStoreProps as a, useComboboxStore as c, ComboboxStoreOptions as i, useComboboxStoreOptions as l, ComboboxStoreFunctions as n, ComboboxStoreSelectedValue as o, ComboboxStoreItem as r, ComboboxStoreState as s, ComboboxStore as t, useComboboxStoreProps as u };
|
|
80
|
+
//# sourceMappingURL=combobox-store-DEVQ45mZ.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-store-DEVQ45mZ.d.ts","names":["Core","Store","PickRequired","CompositeStoreFunctions","CompositeStoreOptions","CompositeStoreState","PopoverStoreFunctions","PopoverStoreOptions","PopoverStoreState","TagStore","useComboboxStoreOptions","T","ComboboxStoreOptions","props","id","useComboboxStoreProps","ComboboxStore","ComboboxStoreProps","_$___disclosure_disclosure_store_ts0","DisclosureStore","store","update","disclosure","tag","useComboboxStore","ComboboxStoreSelectedValue","ComboboxStoreItem","ComboboxStoreState","ComboboxStoreFunctions","Pick","Omit","setValue","value","setSelectedValue"],"sources":["../src/combobox/combobox-store.d.ts"],"mappings":";;;;;;;;;iBAMwBU,uBAAAA,WAAkCV,IAAAA,CAAKY,oBAAAA,CAAAA,CAAsBC,KAAAA,EAAOF,CAAAA;EACxFG,EAAAA;AAAAA,IACAH,CAAAA;AAAAA,iBACoBI,qBAAAA,WAAgCf,IAAAA,CAAKgB,aAAAA,CAAAA,CAAeI,KAAAA,EAAOT,CAAAA,EAAGU,MAAAA,cAAoBR,KAAAA,EAAOI,kBAAAA,GAAqBN,CAAAA;EAClIW,UAAAA,EADmIJ,eAAAA;AAAAA;EAGnIK,GAAAA,EAAKd,QAAAA;AAAAA;;;;;;;;;;;;AAJJ;AACL;;;;;;iBAuBwBe,gBAAAA,WAA2BC,0BAAAA,GAA6BA,0BAAAA,CAAAA,CAA4BZ,KAAAA,EAAOX,YAAAA,CAAae,kBAAAA,CAAmBN,CAAAA,+CAAgDK,aAAAA,CAAcL,CAAAA;AAAAA,iBACzLa,gBAAAA,CAAiBX,KAAAA,GAAQI,kBAAAA,GAAqBD,aAAa;AAAA,KACvES,0BAAAA,GAA6BzB,IAAAA,CAAKyB,0BAA0B;AAAA,UACvDC,iBAAAA,SAA0B1B,IAAAA,CAAK0B,iBAAiB;AAAA,UAEhDC,kBAAAA,WAA6BF,0BAAAA,GAA6BA,0BAAAA,UAAoCzB,IAAAA,CAAK2B,kBAAAA,CAAmBhB,CAAAA,GAAIN,mBAAAA,CAAoBqB,iBAAAA,GAAoBlB,iBAAAA;AAAAA,UAElKoB,sBAAAA,WAAiCH,0BAAAA,GAA6BA,0BAAAA,UAAoCI,IAAAA,CAAKjB,oBAAAA,CAAqBD,CAAAA,WAAYmB,IAAAA,CAAK9B,IAAAA,CAAK4B,sBAAAA,CAAuBjB,CAAAA,0BAA2BR,uBAAAA,CAAwBuB,iBAAAA,GAAoBpB,qBAAAA;AAAAA,UAEhPM,oBAAAA,WAA+Ba,0BAAAA,GAA6BA,0BAAAA,UAAoCK,IAAAA,CAAK9B,IAAAA,CAAKY,oBAAAA,CAAqBD,CAAAA,0BAA2BP,qBAAAA,CAAsBsB,iBAAAA,GAAoBnB,mBAAAA;EAhC/Hc;;;;;;;;;AAGrE;AAoBjB;;;;;EAyBIU,QAAAA,IAAYC,KAAAA,EAAOL,kBAAAA,CAAmBhB,CAAAA;EAzBsFM;;;;;;;;;;EAoC5HgB,gBAAAA,IAAoBD,KAAAA,EAAOL,kBAAAA,CAAmBhB,CAAAA;EApCiGA;;;;EAyC/IY,GAAAA,GAAMd,QAAAA;AAAAA;AAAAA,UAEOQ,kBAAAA,WAA6BQ,0BAAAA,GAA6BA,0BAAAA,UAAoCb,oBAAAA,CAAqBD,CAAAA,GAAImB,IAAAA,CAAK9B,IAAAA,CAAKiB,kBAAAA,CAAmBN,CAAAA;AAAAA,UAEpJK,aAAAA,WAAwBS,0BAAAA,GAA6BA,0BAAAA,UAAoCG,sBAAAA,CAAuBjB,CAAAA,GAAImB,IAAAA,CAAK7B,KAAAA,CAAMD,IAAAA,CAAKgB,aAAAA,CAAcL,CAAAA"}
|