@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 @@
|
|
|
1
|
+
{"version":3,"file":"hovercard-heading.js","names":[],"sources":["../../src/hovercard/hovercard-heading.tsx"],"sourcesContent":["import { createElement, createHook, forwardRef } from \"@ariakit/react-utils\";\nimport type { Props } from \"@ariakit/react-utils\";\nimport type { ElementType } from \"react\";\nimport type { PopoverHeadingOptions } from \"../popover/popover-heading.tsx\";\nimport { usePopoverHeading } from \"../popover/popover-heading.tsx\";\nimport type { HovercardStore } from \"./hovercard-store.ts\";\n\nconst TagName = \"h1\" satisfies ElementType;\ntype TagName = typeof TagName;\n\n/**\n * Returns props to create a `HovercardHeading` component. This hook must be\n * used in a component that's wrapped with `Hovercard` so the `aria-labelledby`\n * prop is properly set on the hovercard element.\n * @see https://ariakit.com/components/hovercard\n * @example\n * ```jsx\n * // This component must be wrapped with Hovercard\n * const props = useHovercardHeading();\n * <Role {...props}>Heading</Role>\n * ```\n */\nexport const useHovercardHeading = createHook<TagName, HovercardHeadingOptions>(\n function useHovercardHeading(props) {\n props = usePopoverHeading(props);\n return props;\n },\n);\n\n/**\n * Renders a heading in a hovercard. This component must be wrapped within\n * [`Hovercard`](https://ariakit.com/reference/hovercard) so the\n * `aria-labelledby` prop is properly set on the content element.\n * @see https://ariakit.com/components/hovercard\n * @example\n * ```jsx {3}\n * <HovercardProvider>\n * <Hovercard>\n * <HovercardHeading>Heading</HovercardHeading>\n * </Hovercard>\n * </HovercardProvider>\n * ```\n */\nexport const HovercardHeading = forwardRef(function HovercardHeading(\n props: HovercardHeadingProps,\n) {\n const htmlProps = useHovercardHeading(props);\n return createElement(TagName, htmlProps);\n});\n\nexport interface HovercardHeadingOptions<\n T extends ElementType = TagName,\n> extends PopoverHeadingOptions<T> {\n /**\n * Object returned by the\n * [`useHovercardStore`](https://ariakit.com/reference/use-hovercard-store)\n * hook. If not provided, the closest\n * [`Hovercard`](https://ariakit.com/reference/hovercard) or\n * [`HovercardProvider`](https://ariakit.com/reference/hovercard-provider)\n * components' context will be used.\n */\n store?: HovercardStore;\n}\n\nexport type HovercardHeadingProps<T extends ElementType = TagName> = Props<\n T,\n HovercardHeadingOptions<T>\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;MAwBI,sBAA0B,WAAK,SAAA,oBAAA,OAAA;CAC/B,QAAO,kBAAA,KAAA;CAEX,OAAA;;;;;;;;;;;;;;;;MAoBE,mBAAqB,WADH,SAAA,iBACqB,OAAA;CACxC,OAAA,cAAA,SAAA,oBAAA,KAAA,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { i as HovercardStoreProps } from "../hovercard-store-gIeoQEn_.js";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/hovercard/hovercard-provider.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Provides a hovercard store to
|
|
7
|
+
* [Hovercard](https://ariakit.com/components/hovercard) components.
|
|
8
|
+
* @see https://ariakit.com/components/hovercard
|
|
9
|
+
* @example
|
|
10
|
+
* ```jsx
|
|
11
|
+
* <HovercardProvider timeout={250}>
|
|
12
|
+
* <HovercardAnchor />
|
|
13
|
+
* <Hovercard />
|
|
14
|
+
* </HovercardProvider>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
declare function HovercardProvider(props?: HovercardProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
interface HovercardProviderProps extends HovercardStoreProps {
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { HovercardProvider, HovercardProviderProps };
|
|
23
|
+
//# sourceMappingURL=hovercard-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hovercard-provider.d.ts","names":["ReactNode","HovercardStoreProps","HovercardProvider","HovercardProviderProps","props","JSX","Element","children"],"sources":["../../src/hovercard/hovercard-provider.d.ts"],"mappings":";;;;;;AAcA;;;;;;;;;AAAkH;iBAA1FE,iBAAAA,CAAkBE,KAAAA,GAAQD,sBAAsB,+BAA+BE,GAAAA,CAAIC,OAAAA;AAAAA,UAC1FH,sBAAAA,SAA+BF,mBAAmB;EAC/DM,QAAAA,GAAWP,SAAAA;AAAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { HovercardContextProvider } from "./hovercard-context.js";
|
|
3
|
+
import { useHovercardStore } from "./hovercard-store.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/hovercard/hovercard-provider.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Provides a hovercard store to
|
|
8
|
+
* [Hovercard](https://ariakit.com/components/hovercard) components.
|
|
9
|
+
* @see https://ariakit.com/components/hovercard
|
|
10
|
+
* @example
|
|
11
|
+
* ```jsx
|
|
12
|
+
* <HovercardProvider timeout={250}>
|
|
13
|
+
* <HovercardAnchor />
|
|
14
|
+
* <Hovercard />
|
|
15
|
+
* </HovercardProvider>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
function HovercardProvider(props = {}) {
|
|
19
|
+
return /* @__PURE__ */ jsx(HovercardContextProvider, {
|
|
20
|
+
value: useHovercardStore(props),
|
|
21
|
+
children: props.children
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { HovercardProvider };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=hovercard-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hovercard-provider.js","names":[],"sources":["../../src/hovercard/hovercard-provider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { HovercardContextProvider } from \"./hovercard-context.tsx\";\nimport type { HovercardStoreProps } from \"./hovercard-store.ts\";\nimport { useHovercardStore } from \"./hovercard-store.ts\";\n\n/**\n * Provides a hovercard store to\n * [Hovercard](https://ariakit.com/components/hovercard) components.\n * @see https://ariakit.com/components/hovercard\n * @example\n * ```jsx\n * <HovercardProvider timeout={250}>\n * <HovercardAnchor />\n * <Hovercard />\n * </HovercardProvider>\n * ```\n */\nexport function HovercardProvider(props: HovercardProviderProps = {}) {\n const store = useHovercardStore(props);\n return (\n <HovercardContextProvider value={store}>\n {props.children}\n </HovercardContextProvider>\n );\n}\n\nexport interface HovercardProviderProps extends HovercardStoreProps {\n children?: ReactNode;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;SAoBI,kBAAA,QAAC,CAAA,GAAA;QAFW,oBAAkB,0BAEO;2BAC5B,KAAA;EACiB,UAAA,MAAA;CAE9B,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as HovercardStoreState, i as HovercardStoreProps, n as HovercardStoreFunctions, o as useHovercardStore, r as HovercardStoreOptions, s as useHovercardStoreProps, t as HovercardStore } from "../hovercard-store-gIeoQEn_.js";
|
|
2
|
+
export { HovercardStore, HovercardStoreFunctions, HovercardStoreOptions, HovercardStoreProps, HovercardStoreState, useHovercardStore, useHovercardStoreProps };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { usePopoverStoreProps } from "../popover/popover-store.js";
|
|
3
|
+
import { useStore, useStoreProps } from "@ariakit/react-store";
|
|
4
|
+
import * as Core from "@ariakit/components/hovercard/hovercard-store";
|
|
5
|
+
//#region src/hovercard/hovercard-store.ts
|
|
6
|
+
function useHovercardStoreProps(store, update, props) {
|
|
7
|
+
useStoreProps(store, props, "timeout");
|
|
8
|
+
useStoreProps(store, props, "showTimeout");
|
|
9
|
+
useStoreProps(store, props, "hideTimeout");
|
|
10
|
+
return usePopoverStoreProps(store, update, props);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a hovercard store to control the state of
|
|
14
|
+
* [Hovercard](https://ariakit.com/reference/hovercard) components.
|
|
15
|
+
* @see https://ariakit.com/components/hovercard
|
|
16
|
+
* @example
|
|
17
|
+
* ```jsx
|
|
18
|
+
* const hovercard = useHovercardStore({ placement: "top" });
|
|
19
|
+
*
|
|
20
|
+
* <HovercardAnchor store={hovercard}>@username</HovercardAnchor>
|
|
21
|
+
* <Hovercard store={hovercard}>Details</Hovercard>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
function useHovercardStore(props = {}) {
|
|
25
|
+
const [store, update] = useStore(Core.createHovercardStore, props);
|
|
26
|
+
return useHovercardStoreProps(store, update, props);
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { useHovercardStore, useHovercardStoreProps };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=hovercard-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hovercard-store.js","names":[],"sources":["../../src/hovercard/hovercard-store.ts"],"sourcesContent":["import * as Core from \"@ariakit/components/hovercard/hovercard-store\";\nimport { useStore, useStoreProps } from \"@ariakit/react-store\";\nimport type { Store } from \"@ariakit/react-store\";\nimport type {\n PopoverStoreFunctions,\n PopoverStoreOptions,\n PopoverStoreState,\n} from \"../popover/popover-store.ts\";\nimport { usePopoverStoreProps } from \"../popover/popover-store.ts\";\n\nexport function useHovercardStoreProps<T extends Core.HovercardStore>(\n store: T,\n update: () => void,\n props: HovercardStoreProps,\n) {\n useStoreProps(store, props, \"timeout\");\n useStoreProps(store, props, \"showTimeout\");\n useStoreProps(store, props, \"hideTimeout\");\n return usePopoverStoreProps(store, update, props);\n}\n\n/**\n * Creates a hovercard store to control the state of\n * [Hovercard](https://ariakit.com/reference/hovercard) components.\n * @see https://ariakit.com/components/hovercard\n * @example\n * ```jsx\n * const hovercard = useHovercardStore({ placement: \"top\" });\n *\n * <HovercardAnchor store={hovercard}>@username</HovercardAnchor>\n * <Hovercard store={hovercard}>Details</Hovercard>\n * ```\n */\nexport function useHovercardStore(\n props: HovercardStoreProps = {},\n): HovercardStore {\n const [store, update] = useStore(Core.createHovercardStore, props);\n return useHovercardStoreProps(store, update, props);\n}\n\nexport interface HovercardStoreState\n extends Core.HovercardStoreState, PopoverStoreState {}\n\nexport interface HovercardStoreFunctions\n extends\n Omit<Core.HovercardStoreFunctions, \"disclosure\">,\n PopoverStoreFunctions {}\n\nexport interface HovercardStoreOptions\n extends Omit<Core.HovercardStoreOptions, \"disclosure\">, PopoverStoreOptions {}\n\nexport interface HovercardStoreProps\n extends HovercardStoreOptions, Omit<Core.HovercardStoreProps, \"disclosure\"> {}\n\nexport interface HovercardStore\n extends\n HovercardStoreFunctions,\n Omit<Store<Core.HovercardStore>, \"disclosure\"> {}\n"],"mappings":";;;;;SAeE,uBAA4B,OAAS,QAAA,OAAA;CACrC,cAAc,OAAO,OAAO,SAAA;CAC5B,cAAc,OAAO,OAAO,aAAa;CACzC,cAAO,OAAA,OAAqB,aAAO;CACrC,OAAA,qBAAA,OAAA,QAAA,KAAA;;;;;;;;;;;;;;SAiBS,kBAAiB,QAAS,CAAA,GAAK;CACtC,MAAA,CAAO,OAAA,UAAA,SAAuB,KAAO,sBAAa,KAAA;CACpD,OAAA,uBAAA,OAAA,QAAA,KAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { n as PopoverOptions } from "../popover-CCqiRKqg.js";
|
|
2
|
+
import { t as HovercardStore } from "../hovercard-store-gIeoQEn_.js";
|
|
3
|
+
import { Props } from "@ariakit/react-utils";
|
|
4
|
+
import { ElementType } from "react";
|
|
5
|
+
import { BooleanOrCallback } from "@ariakit/utils";
|
|
6
|
+
|
|
7
|
+
//#region src/hovercard/hovercard.d.ts
|
|
8
|
+
declare const TagName = "div";
|
|
9
|
+
type TagName = typeof TagName;
|
|
10
|
+
/**
|
|
11
|
+
* Returns props to create a `Hovercard` component.
|
|
12
|
+
* @see https://ariakit.com/components/hovercard
|
|
13
|
+
* @example
|
|
14
|
+
* ```jsx
|
|
15
|
+
* const store = useHovercardStore();
|
|
16
|
+
* const props = useHovercard({ store });
|
|
17
|
+
* <HovercardAnchor store={store}>@username</HovercardAnchor>
|
|
18
|
+
* <Role {...props}>Details</Role>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare const useHovercard: import("@ariakit/react-utils").Hook<"div", HovercardOptions<"div">>;
|
|
22
|
+
/**
|
|
23
|
+
* Renders a hovercard element, which is a popover that's usually made visible
|
|
24
|
+
* by hovering the mouse cursor over a
|
|
25
|
+
* [`HovercardAnchor`](https://ariakit.com/reference/hovercard-anchor).
|
|
26
|
+
* @see https://ariakit.com/components/hovercard
|
|
27
|
+
* @example
|
|
28
|
+
* ```jsx {3}
|
|
29
|
+
* <HovercardProvider>
|
|
30
|
+
* <HovercardAnchor>@username</HovercardAnchor>
|
|
31
|
+
* <Hovercard>Details</Hovercard>
|
|
32
|
+
* </HovercardProvider>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare const Hovercard: (props: HovercardProps<"div">) => import("react/jsx-runtime").JSX.Element | null;
|
|
36
|
+
interface HovercardOptions<T extends ElementType = TagName> extends PopoverOptions<T> {
|
|
37
|
+
/**
|
|
38
|
+
* Object returned by the
|
|
39
|
+
* [`useHovercardStore`](https://ariakit.com/reference/use-hovercard-store)
|
|
40
|
+
* hook. If not provided, the closest
|
|
41
|
+
* [`HovercardProvider`](https://ariakit.com/reference/hovercard-provider)
|
|
42
|
+
* component's context will be used.
|
|
43
|
+
*/
|
|
44
|
+
store?: HovercardStore;
|
|
45
|
+
/**
|
|
46
|
+
* Determines whether the popover should hide when the mouse leaves the
|
|
47
|
+
* popover or the anchor element and there's no _hover intent_, meaning, the
|
|
48
|
+
* mouse isn't moving toward the popover.
|
|
49
|
+
*
|
|
50
|
+
* This can be either a boolean or a callback receiving the mouse move event
|
|
51
|
+
* that initiated the behavior. The callback should return a boolean.
|
|
52
|
+
*
|
|
53
|
+
* **Note**: This behavior won't be triggered when the popover or any of its
|
|
54
|
+
* descendants are in focus.
|
|
55
|
+
* @default true
|
|
56
|
+
*/
|
|
57
|
+
hideOnHoverOutside?: BooleanOrCallback<MouseEvent>;
|
|
58
|
+
/**
|
|
59
|
+
* Determines if the pointer events outside of the popover and its anchor
|
|
60
|
+
* element should be disabled during _hover intent_, that is, when the mouse
|
|
61
|
+
* is moving toward the popover.
|
|
62
|
+
*
|
|
63
|
+
* This is required as these external events may trigger focus on other
|
|
64
|
+
* elements and close the popover while the user is attempting to hover over
|
|
65
|
+
* it.
|
|
66
|
+
*
|
|
67
|
+
* This can be either a boolean or a callback receiving the mouse event
|
|
68
|
+
* happening during hover intent. The callback should return a boolean.
|
|
69
|
+
* @default true
|
|
70
|
+
*/
|
|
71
|
+
disablePointerEventsOnApproach?: BooleanOrCallback<MouseEvent>;
|
|
72
|
+
/**
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
modal?: PopoverOptions<T>["modal"];
|
|
76
|
+
}
|
|
77
|
+
type HovercardProps<T extends ElementType = TagName> = Props<T, HovercardOptions<T>>;
|
|
78
|
+
//#endregion
|
|
79
|
+
export { Hovercard, HovercardOptions, HovercardProps, useHovercard };
|
|
80
|
+
//# sourceMappingURL=hovercard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hovercard.d.ts","names":["Props","BooleanOrCallback","ElementType","PopoverOptions","HovercardStore","TagName","useHovercard","HovercardOptions","Hook","Hovercard","HovercardProps","props","JSX","Element","T","MouseEvent","store","hideOnHoverOutside","disablePointerEventsOnApproach","modal"],"sources":["../../src/hovercard/hovercard.d.ts"],"mappings":";;;;;;;cAKcK,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF8B;;;;AACtC;AAAA;;;;AACQ;AAY7B;AAd2D,cActCC,YAAAA,iCAA6CE,IAAAA,QAAYD,gBAAgB;;;AAAA;AAc9F;;;;;;;;;AAAyG;cAApFE,SAAAA,GAAYE,KAAAA,EAAOD,cAAc,wCAAwCE,GAAAA,CAAIC,OAAAA;AAAAA,UACjFN,gBAAAA,WAA2BL,WAAAA,GAAcG,OAAAA,UAAiBF,cAAAA,CAAeW,CAAAA;EAAzDA;;;;;;;EAQ7BE,KAAAA,GAAQZ,cAAAA;EA2ByBH;;;;;;;;;;;;EAdjCgB,kBAAAA,GAAqBhB,iBAAAA,CAAkBc,UAAAA;EAAvCE;;;;;;;;;;AAkBwB;AAE5B;;EANIC,8BAAAA,GAAiCjB,iBAAAA,CAAkBc,UAAAA;EAMlBb;;;EAFjCiB,KAAAA,GAAQhB,cAAAA,CAAeW,CAAAA;AAAAA;AAAAA,KAEfJ,cAAAA,WAAyBR,WAAAA,GAAcG,OAAAA,IAAWL,KAAAA,CAAMc,CAAAA,EAAGP,gBAAAA,CAAiBO,CAAAA"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createDialogComponent } from "../dialog/dialog.js";
|
|
3
|
+
import { usePopover } from "../popover/popover.js";
|
|
4
|
+
import { HovercardScopedContextProvider, useHovercardProviderContext } from "./hovercard-context.js";
|
|
5
|
+
import { getElementPolygon, getEventPoint, isPointInPolygon } from "./utils/polygon.js";
|
|
6
|
+
import { createElement, createHook, forwardRef, useBooleanEvent, useEvent, useIsMouseMoving, useLiveRef, useMergeRefs, usePortalRef, useSafeLayoutEffect, useWrapElement } from "@ariakit/react-utils";
|
|
7
|
+
import { addGlobalEventListener, chain, contains, hasFocusWithin, invariant, isFalsyBooleanCallback } from "@ariakit/utils";
|
|
8
|
+
import { createContext, useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
import { useStoreState } from "@ariakit/react-store";
|
|
11
|
+
import { sync } from "@ariakit/store";
|
|
12
|
+
//#region src/hovercard/hovercard.tsx
|
|
13
|
+
const TagName = "div";
|
|
14
|
+
function isMovingOnHovercard(target, card, anchor, nested) {
|
|
15
|
+
if (hasFocusWithin(card)) return true;
|
|
16
|
+
if (!target) return false;
|
|
17
|
+
if (contains(card, target)) return true;
|
|
18
|
+
if (anchor && contains(anchor, target)) return true;
|
|
19
|
+
if (nested?.some((card) => isMovingOnHovercard(target, card, anchor))) return true;
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
function useAutoFocusOnHide({ store, ...props }) {
|
|
23
|
+
const [autoFocusOnHide, setAutoFocusOnHide] = useState(false);
|
|
24
|
+
const mounted = useStoreState(store, "mounted");
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (!mounted) setAutoFocusOnHide(false);
|
|
27
|
+
}, [mounted]);
|
|
28
|
+
const onFocusProp = props.onFocus;
|
|
29
|
+
const onFocus = useEvent((event) => {
|
|
30
|
+
onFocusProp?.(event);
|
|
31
|
+
if (event.defaultPrevented) return;
|
|
32
|
+
setAutoFocusOnHide(true);
|
|
33
|
+
});
|
|
34
|
+
const finalFocusRef = useRef(null);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
return sync(store, ["anchorElement"], (state) => {
|
|
37
|
+
finalFocusRef.current = state.anchorElement;
|
|
38
|
+
});
|
|
39
|
+
}, [store]);
|
|
40
|
+
props = {
|
|
41
|
+
autoFocusOnHide,
|
|
42
|
+
finalFocus: finalFocusRef,
|
|
43
|
+
...props,
|
|
44
|
+
onFocus
|
|
45
|
+
};
|
|
46
|
+
return props;
|
|
47
|
+
}
|
|
48
|
+
const NestedHovercardContext = createContext(null);
|
|
49
|
+
/**
|
|
50
|
+
* Returns props to create a `Hovercard` component.
|
|
51
|
+
* @see https://ariakit.com/components/hovercard
|
|
52
|
+
* @example
|
|
53
|
+
* ```jsx
|
|
54
|
+
* const store = useHovercardStore();
|
|
55
|
+
* const props = useHovercard({ store });
|
|
56
|
+
* <HovercardAnchor store={store}>@username</HovercardAnchor>
|
|
57
|
+
* <Role {...props}>Details</Role>
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
const useHovercard = createHook(function useHovercard({ store, modal = false, portal = modal, hideOnEscape = true, hideOnHoverOutside = true, disablePointerEventsOnApproach = !!hideOnHoverOutside, ...props }) {
|
|
61
|
+
const context = useHovercardProviderContext();
|
|
62
|
+
store = store || context;
|
|
63
|
+
invariant(store, "Hovercard must receive a `store` prop or be wrapped in a HovercardProvider component.");
|
|
64
|
+
const ref = useRef(null);
|
|
65
|
+
const [nestedHovercards, setNestedHovercards] = useState([]);
|
|
66
|
+
const hideTimeoutRef = useRef(0);
|
|
67
|
+
const enterPointRef = useRef(null);
|
|
68
|
+
const { portalRef, domReady } = usePortalRef(portal, props.portalRef);
|
|
69
|
+
const isMouseMoving = useIsMouseMoving();
|
|
70
|
+
const mayHideOnHoverOutside = !!hideOnHoverOutside;
|
|
71
|
+
const hideOnHoverOutsideProp = useBooleanEvent(hideOnHoverOutside);
|
|
72
|
+
const mayDisablePointerEvents = !!disablePointerEventsOnApproach;
|
|
73
|
+
const disablePointerEventsProp = useBooleanEvent(disablePointerEventsOnApproach);
|
|
74
|
+
const open = useStoreState(store, "open");
|
|
75
|
+
const mounted = useStoreState(store, "mounted");
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (!domReady) return;
|
|
78
|
+
if (!mounted) return;
|
|
79
|
+
if (!mayHideOnHoverOutside && !mayDisablePointerEvents) return;
|
|
80
|
+
const element = ref.current;
|
|
81
|
+
if (!element) return;
|
|
82
|
+
const onMouseMove = (event) => {
|
|
83
|
+
if (!store) return;
|
|
84
|
+
if (!isMouseMoving()) return;
|
|
85
|
+
const { anchorElement, hideTimeout, timeout } = store.getState();
|
|
86
|
+
const enterPoint = enterPointRef.current;
|
|
87
|
+
const [target] = event.composedPath();
|
|
88
|
+
const anchor = anchorElement;
|
|
89
|
+
if (isMovingOnHovercard(target, element, anchor, nestedHovercards)) {
|
|
90
|
+
enterPointRef.current = target && anchor && contains(anchor, target) ? getEventPoint(event) : null;
|
|
91
|
+
window.clearTimeout(hideTimeoutRef.current);
|
|
92
|
+
hideTimeoutRef.current = 0;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (hideTimeoutRef.current) return;
|
|
96
|
+
if (enterPoint) {
|
|
97
|
+
const currentPoint = getEventPoint(event);
|
|
98
|
+
if (isPointInPolygon(currentPoint, getElementPolygon(element, enterPoint))) {
|
|
99
|
+
enterPointRef.current = currentPoint;
|
|
100
|
+
if (!disablePointerEventsProp(event)) return;
|
|
101
|
+
event.preventDefault();
|
|
102
|
+
event.stopPropagation();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (!hideOnHoverOutsideProp(event)) return;
|
|
107
|
+
hideTimeoutRef.current = window.setTimeout(() => {
|
|
108
|
+
hideTimeoutRef.current = 0;
|
|
109
|
+
store?.hide();
|
|
110
|
+
}, hideTimeout ?? timeout);
|
|
111
|
+
};
|
|
112
|
+
return chain(addGlobalEventListener("mousemove", onMouseMove, true), () => clearTimeout(hideTimeoutRef.current));
|
|
113
|
+
}, [
|
|
114
|
+
store,
|
|
115
|
+
isMouseMoving,
|
|
116
|
+
domReady,
|
|
117
|
+
mounted,
|
|
118
|
+
mayHideOnHoverOutside,
|
|
119
|
+
mayDisablePointerEvents,
|
|
120
|
+
nestedHovercards,
|
|
121
|
+
disablePointerEventsProp,
|
|
122
|
+
hideOnHoverOutsideProp
|
|
123
|
+
]);
|
|
124
|
+
useEffect(() => {
|
|
125
|
+
if (!domReady) return;
|
|
126
|
+
if (!mounted) return;
|
|
127
|
+
if (!mayDisablePointerEvents) return;
|
|
128
|
+
const disableEvent = (event) => {
|
|
129
|
+
const element = ref.current;
|
|
130
|
+
if (!element) return;
|
|
131
|
+
const enterPoint = enterPointRef.current;
|
|
132
|
+
if (!enterPoint) return;
|
|
133
|
+
const polygon = getElementPolygon(element, enterPoint);
|
|
134
|
+
if (isPointInPolygon(getEventPoint(event), polygon)) {
|
|
135
|
+
if (!disablePointerEventsProp(event)) return;
|
|
136
|
+
event.preventDefault();
|
|
137
|
+
event.stopPropagation();
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
return chain(addGlobalEventListener("mouseenter", disableEvent, true), addGlobalEventListener("mouseover", disableEvent, true), addGlobalEventListener("mouseout", disableEvent, true), addGlobalEventListener("mouseleave", disableEvent, true));
|
|
141
|
+
}, [
|
|
142
|
+
domReady,
|
|
143
|
+
mounted,
|
|
144
|
+
mayDisablePointerEvents,
|
|
145
|
+
disablePointerEventsProp
|
|
146
|
+
]);
|
|
147
|
+
useEffect(() => {
|
|
148
|
+
if (!domReady) return;
|
|
149
|
+
if (open) return;
|
|
150
|
+
store?.setAutoFocusOnShow(false);
|
|
151
|
+
}, [
|
|
152
|
+
store,
|
|
153
|
+
domReady,
|
|
154
|
+
open
|
|
155
|
+
]);
|
|
156
|
+
const openRef = useLiveRef(open);
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
if (!domReady) return;
|
|
159
|
+
return () => {
|
|
160
|
+
if (!openRef.current) store?.setAutoFocusOnShow(false);
|
|
161
|
+
};
|
|
162
|
+
}, [store, domReady]);
|
|
163
|
+
const registerOnParent = useContext(NestedHovercardContext);
|
|
164
|
+
useSafeLayoutEffect(() => {
|
|
165
|
+
if (modal) return;
|
|
166
|
+
if (!portal) return;
|
|
167
|
+
if (!mounted) return;
|
|
168
|
+
if (!domReady) return;
|
|
169
|
+
const element = ref.current;
|
|
170
|
+
if (!element) return;
|
|
171
|
+
return registerOnParent?.(element);
|
|
172
|
+
}, [
|
|
173
|
+
modal,
|
|
174
|
+
portal,
|
|
175
|
+
mounted,
|
|
176
|
+
domReady
|
|
177
|
+
]);
|
|
178
|
+
const registerNestedHovercard = useCallback((element) => {
|
|
179
|
+
setNestedHovercards((prevElements) => [...prevElements, element]);
|
|
180
|
+
const parentUnregister = registerOnParent?.(element);
|
|
181
|
+
return () => {
|
|
182
|
+
setNestedHovercards((prevElements) => prevElements.filter((item) => item !== element));
|
|
183
|
+
parentUnregister?.();
|
|
184
|
+
};
|
|
185
|
+
}, [registerOnParent]);
|
|
186
|
+
props = useWrapElement(props, (element) => /* @__PURE__ */ jsx(HovercardScopedContextProvider, {
|
|
187
|
+
value: store,
|
|
188
|
+
children: /* @__PURE__ */ jsx(NestedHovercardContext.Provider, {
|
|
189
|
+
value: registerNestedHovercard,
|
|
190
|
+
children: element
|
|
191
|
+
})
|
|
192
|
+
}), [store, registerNestedHovercard]);
|
|
193
|
+
props = {
|
|
194
|
+
...props,
|
|
195
|
+
ref: useMergeRefs(ref, props.ref)
|
|
196
|
+
};
|
|
197
|
+
props = useAutoFocusOnHide({
|
|
198
|
+
store,
|
|
199
|
+
...props
|
|
200
|
+
});
|
|
201
|
+
const autoFocusOnShow = useStoreState(store, (state) => modal || state.autoFocusOnShow);
|
|
202
|
+
props = usePopover({
|
|
203
|
+
store,
|
|
204
|
+
modal,
|
|
205
|
+
portal,
|
|
206
|
+
autoFocusOnShow,
|
|
207
|
+
...props,
|
|
208
|
+
portalRef,
|
|
209
|
+
hideOnEscape(event) {
|
|
210
|
+
if (isFalsyBooleanCallback(hideOnEscape, event)) return false;
|
|
211
|
+
requestAnimationFrame(() => {
|
|
212
|
+
requestAnimationFrame(() => {
|
|
213
|
+
store?.hide();
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
return props;
|
|
220
|
+
});
|
|
221
|
+
/**
|
|
222
|
+
* Renders a hovercard element, which is a popover that's usually made visible
|
|
223
|
+
* by hovering the mouse cursor over a
|
|
224
|
+
* [`HovercardAnchor`](https://ariakit.com/reference/hovercard-anchor).
|
|
225
|
+
* @see https://ariakit.com/components/hovercard
|
|
226
|
+
* @example
|
|
227
|
+
* ```jsx {3}
|
|
228
|
+
* <HovercardProvider>
|
|
229
|
+
* <HovercardAnchor>@username</HovercardAnchor>
|
|
230
|
+
* <Hovercard>Details</Hovercard>
|
|
231
|
+
* </HovercardProvider>
|
|
232
|
+
* ```
|
|
233
|
+
*/
|
|
234
|
+
const Hovercard = createDialogComponent(forwardRef(function Hovercard(props) {
|
|
235
|
+
return createElement(TagName, useHovercard(props));
|
|
236
|
+
}), useHovercardProviderContext);
|
|
237
|
+
//#endregion
|
|
238
|
+
export { Hovercard, useHovercard };
|
|
239
|
+
|
|
240
|
+
//# sourceMappingURL=hovercard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hovercard.js","names":[],"sources":["../../src/hovercard/hovercard.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useLiveRef,\n useMergeRefs,\n usePortalRef,\n useSafeLayoutEffect,\n useWrapElement,\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 contains,\n addGlobalEventListener,\n hasFocusWithin,\n chain,\n invariant,\n isFalsyBooleanCallback,\n} from \"@ariakit/utils\";\nimport type { BooleanOrCallback } from \"@ariakit/utils\";\nimport type { ElementType, FocusEvent } from \"react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { createDialogComponent } from \"../dialog/dialog.tsx\";\nimport type { PopoverOptions } from \"../popover/popover.tsx\";\nimport { usePopover } from \"../popover/popover.tsx\";\nimport {\n HovercardScopedContextProvider,\n useHovercardProviderContext,\n} from \"./hovercard-context.tsx\";\nimport type { HovercardStore } from \"./hovercard-store.ts\";\nimport type { Point } from \"./utils/polygon.ts\";\nimport {\n getElementPolygon,\n getEventPoint,\n isPointInPolygon,\n} from \"./utils/polygon.ts\";\n\nconst TagName = \"div\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\nfunction isMovingOnHovercard(\n target: Node | null | undefined,\n card: HTMLElement,\n anchor: HTMLElement | null,\n nested?: HTMLElement[],\n) {\n // The hovercard element has focus so we should keep it visible.\n if (hasFocusWithin(card)) return true;\n if (!target) return false;\n // The mouse is moving on an element inside the hovercard.\n if (contains(card, target)) return true;\n // The mouse is moving on an element inside the anchor element.\n if (anchor && contains(anchor, target)) return true;\n // The mouse is moving on an element inside a nested hovercard.\n if (nested?.some((card) => isMovingOnHovercard(target, card, anchor))) {\n return true;\n }\n return false;\n}\n\n// When the hovercard element has focus, we should move focus back to the anchor\n// element when the hovercard gets hidden (or unmounted).\nfunction useAutoFocusOnHide({\n store,\n ...props\n}: HovercardProps & { store: HovercardStore }) {\n const [autoFocusOnHide, setAutoFocusOnHide] = useState(false);\n const mounted = useStoreState(store, \"mounted\");\n\n // Resets autoFocusOnHide\n useEffect(() => {\n if (!mounted) {\n setAutoFocusOnHide(false);\n }\n }, [mounted]);\n\n const onFocusProp = props.onFocus;\n\n const onFocus = useEvent((event: FocusEvent<HTMLType>) => {\n onFocusProp?.(event);\n if (event.defaultPrevented) return;\n setAutoFocusOnHide(true);\n });\n\n // TODO: Maybe use state.anchorElement directly?\n const finalFocusRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n return sync(store, [\"anchorElement\"], (state) => {\n finalFocusRef.current = state.anchorElement;\n });\n }, [store]);\n\n props = {\n autoFocusOnHide,\n finalFocus: finalFocusRef,\n ...props,\n onFocus,\n };\n\n return props;\n}\n\nconst NestedHovercardContext = createContext<\n ((element: HTMLElement) => () => void) | null\n>(null);\n\n/**\n * Returns props to create a `Hovercard` component.\n * @see https://ariakit.com/components/hovercard\n * @example\n * ```jsx\n * const store = useHovercardStore();\n * const props = useHovercard({ store });\n * <HovercardAnchor store={store}>@username</HovercardAnchor>\n * <Role {...props}>Details</Role>\n * ```\n */\nexport const useHovercard = createHook<TagName, HovercardOptions>(\n function useHovercard({\n store,\n modal = false,\n portal = modal,\n hideOnEscape = true,\n hideOnHoverOutside = true,\n disablePointerEventsOnApproach = !!hideOnHoverOutside,\n ...props\n }) {\n const context = useHovercardProviderContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"Hovercard must receive a `store` prop or be wrapped in a HovercardProvider component.\",\n );\n\n const ref = useRef<HTMLType>(null);\n const [nestedHovercards, setNestedHovercards] = useState<HTMLElement[]>([]);\n const hideTimeoutRef = useRef(0);\n const enterPointRef = useRef<Point | null>(null);\n const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n\n const isMouseMoving = useIsMouseMoving();\n\n const mayHideOnHoverOutside = !!hideOnHoverOutside;\n const hideOnHoverOutsideProp = useBooleanEvent(hideOnHoverOutside);\n const mayDisablePointerEvents = !!disablePointerEventsOnApproach;\n const disablePointerEventsProp = useBooleanEvent(\n disablePointerEventsOnApproach,\n );\n\n const open = useStoreState(store, \"open\");\n const mounted = useStoreState(store, \"mounted\");\n\n // Checks whether the mouse is moving toward the hovercard. If not, hide the\n // card after a short delay (hideTimeout).\n useEffect(() => {\n if (!domReady) return;\n if (!mounted) return;\n if (!mayHideOnHoverOutside && !mayDisablePointerEvents) return;\n const element = ref.current;\n if (!element) return;\n const onMouseMove = (event: MouseEvent) => {\n if (!store) return;\n if (!isMouseMoving()) return;\n const { anchorElement, hideTimeout, timeout } = store.getState();\n const enterPoint = enterPointRef.current;\n const [target] = event.composedPath() as Node[];\n const anchor = anchorElement;\n // Checks whether the hovercard element has focus or the mouse is moving\n // through valid hovercard elements.\n if (isMovingOnHovercard(target, element, anchor, nestedHovercards)) {\n // While the mouse is moving over the anchor element while the hover\n // card is open, keep track of the mouse position so we can use the\n // last point before the mouse leaves the anchor element.\n enterPointRef.current =\n target && anchor && contains(anchor, target)\n ? getEventPoint(event)\n : null;\n window.clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = 0;\n return;\n }\n // If there's already a scheduled timeout to hide the hovercard, we do\n // nothing.\n if (hideTimeoutRef.current) return;\n // Enter point will be null when the user hovers over the hovercard\n // element.\n if (enterPoint) {\n const currentPoint = getEventPoint(event);\n const polygon = getElementPolygon(element, enterPoint);\n // If the current event's mouse position is inside the transit\n // polygon, this means that the mouse is moving toward the hover card,\n // so we disable this event. This is necessary because the mousemove\n // event may trigger focus on other elements and close the hovercard.\n if (isPointInPolygon(currentPoint, polygon)) {\n // Refreshes the enter point.\n enterPointRef.current = currentPoint;\n if (!disablePointerEventsProp(event)) return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n if (!hideOnHoverOutsideProp(event)) return;\n // Otherwise, hide the hovercard after a short delay (hideTimeout).\n hideTimeoutRef.current = window.setTimeout(() => {\n hideTimeoutRef.current = 0;\n store?.hide();\n }, hideTimeout ?? timeout);\n };\n return chain(addGlobalEventListener(\"mousemove\", onMouseMove, true), () =>\n clearTimeout(hideTimeoutRef.current),\n );\n }, [\n store,\n isMouseMoving,\n domReady,\n mounted,\n mayHideOnHoverOutside,\n mayDisablePointerEvents,\n nestedHovercards,\n disablePointerEventsProp,\n hideOnHoverOutsideProp,\n ]);\n\n // Disable mouse events while the mouse is moving toward the hovercard. This\n // is necessary because these events may trigger focus on other elements and\n // close the hovercard while the user is moving the mouse toward it.\n useEffect(() => {\n if (!domReady) return;\n if (!mounted) return;\n if (!mayDisablePointerEvents) return;\n const disableEvent = (event: MouseEvent) => {\n const element = ref.current;\n if (!element) return;\n const enterPoint = enterPointRef.current;\n if (!enterPoint) return;\n const polygon = getElementPolygon(element, enterPoint);\n if (isPointInPolygon(getEventPoint(event), polygon)) {\n if (!disablePointerEventsProp(event)) return;\n event.preventDefault();\n event.stopPropagation();\n }\n };\n return chain(\n // Note: we may need to add pointer events here in the future.\n addGlobalEventListener(\"mouseenter\", disableEvent, true),\n addGlobalEventListener(\"mouseover\", disableEvent, true),\n addGlobalEventListener(\"mouseout\", disableEvent, true),\n addGlobalEventListener(\"mouseleave\", disableEvent, true),\n );\n }, [domReady, mounted, mayDisablePointerEvents, disablePointerEventsProp]);\n\n // The autoFocusOnShow state will be set to true when the hovercard\n // disclosure element is clicked. We have to reset it to false when the\n // hovercard element gets hidden.\n useEffect(() => {\n if (!domReady) return;\n if (open) return;\n store?.setAutoFocusOnShow(false);\n }, [store, domReady, open]);\n\n // On unmount as well.\n const openRef = useLiveRef(open);\n useEffect(() => {\n if (!domReady) return;\n return () => {\n // oxlint-disable-next-line exhaustive-deps\n if (!openRef.current) {\n store?.setAutoFocusOnShow(false);\n }\n };\n // This cleanup intentionally reads the live ref so it can observe the\n // latest open state at unmount time.\n // oxlint-disable-next-line exhaustive-deps\n }, [store, domReady]);\n\n const registerOnParent = useContext(NestedHovercardContext);\n\n // Register the hovercard as a nested hovercard on the parent hovercard if\n // it's not a modal, is portal and is mounted. We don't need to register\n // non-portal hovercards because they will be captured by the contains\n // function in the isMovingOnHovercard function above. This must be a layout\n // effect so we don't lose mouse move events right after the nested\n // hovercard has been mounted (for example, a submenu that's overlapping its\n // menu button and we keep moving the mouse while the submenu is due to\n // open).\n useSafeLayoutEffect(() => {\n if (modal) return;\n if (!portal) return;\n if (!mounted) return;\n if (!domReady) return;\n const element = ref.current;\n if (!element) return;\n return registerOnParent?.(element);\n }, [modal, portal, mounted, domReady]);\n\n const registerNestedHovercard = useCallback(\n (element: any) => {\n setNestedHovercards((prevElements) => [...prevElements, element]);\n const parentUnregister = registerOnParent?.(element);\n return () => {\n setNestedHovercards((prevElements) =>\n prevElements.filter((item) => item !== element),\n );\n parentUnregister?.();\n };\n },\n [registerOnParent],\n );\n\n props = useWrapElement(\n props,\n (element) => (\n <HovercardScopedContextProvider value={store}>\n <NestedHovercardContext.Provider value={registerNestedHovercard}>\n {element}\n </NestedHovercardContext.Provider>\n </HovercardScopedContextProvider>\n ),\n [store, registerNestedHovercard],\n );\n\n props = {\n ...props,\n ref: useMergeRefs(ref, props.ref),\n };\n\n props = useAutoFocusOnHide({ store, ...props });\n\n // If the hovercard is modal, we should always autoFocus on show.\n const autoFocusOnShow = useStoreState(\n store,\n (state) => modal || state.autoFocusOnShow,\n );\n\n props = usePopover({\n store,\n modal,\n portal,\n autoFocusOnShow,\n ...props,\n portalRef,\n hideOnEscape(event) {\n if (isFalsyBooleanCallback(hideOnEscape, event)) return false;\n // Hide again on the next frame to avoid the popover being shown again\n // when the user presses the escape key and trigger focusVisible on the\n // anchor element (which is the case of tooltip anchor).\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n store?.hide();\n });\n });\n return true;\n },\n });\n\n return props;\n },\n);\n\n/**\n * Renders a hovercard element, which is a popover that's usually made visible\n * by hovering the mouse cursor over a\n * [`HovercardAnchor`](https://ariakit.com/reference/hovercard-anchor).\n * @see https://ariakit.com/components/hovercard\n * @example\n * ```jsx {3}\n * <HovercardProvider>\n * <HovercardAnchor>@username</HovercardAnchor>\n * <Hovercard>Details</Hovercard>\n * </HovercardProvider>\n * ```\n */\nexport const Hovercard = createDialogComponent(\n forwardRef(function Hovercard(props: HovercardProps) {\n const htmlProps = useHovercard(props);\n return createElement(TagName, htmlProps);\n }),\n useHovercardProviderContext,\n);\n\nexport interface HovercardOptions<\n T extends ElementType = TagName,\n> extends PopoverOptions<T> {\n /**\n * Object returned by the\n * [`useHovercardStore`](https://ariakit.com/reference/use-hovercard-store)\n * hook. If not provided, the closest\n * [`HovercardProvider`](https://ariakit.com/reference/hovercard-provider)\n * component's context will be used.\n */\n store?: HovercardStore;\n /**\n * Determines whether the popover should hide when the mouse leaves the\n * popover or the anchor element and there's no _hover intent_, meaning, the\n * mouse isn't moving toward the popover.\n *\n * This can be either a boolean or a callback receiving the mouse move event\n * that initiated the behavior. The callback should return a boolean.\n *\n * **Note**: This behavior won't be triggered when the popover or any of its\n * descendants are in focus.\n * @default true\n */\n hideOnHoverOutside?: BooleanOrCallback<MouseEvent>;\n /**\n * Determines if the pointer events outside of the popover and its anchor\n * element should be disabled during _hover intent_, that is, when the mouse\n * is moving toward the popover.\n *\n * This is required as these external events may trigger focus on other\n * elements and close the popover while the user is attempting to hover over\n * it.\n *\n * This can be either a boolean or a callback receiving the mouse event\n * happening during hover intent. The callback should return a boolean.\n * @default true\n */\n disablePointerEventsOnApproach?: BooleanOrCallback<MouseEvent>;\n /**\n * @default false\n */\n modal?: PopoverOptions<T>[\"modal\"];\n}\n\nexport type HovercardProps<T extends ElementType = TagName> = Props<\n T,\n HovercardOptions<T>\n>;\n"],"mappings":";;;;;;;;;;;;AAqDA,MAAA,UAAS;SAOH,oBAAsB,QAAO,MAAA,QAAA,QAAA;CACjC,IAAI,eAAS,IAAO,GAAA,OAAA;CAEpB,IAAI,CAAA,QAAS,OAAM;CAEnB,IAAI,SAAA,MAAU,MAAS,GAAA,OAAQ;CAE/B,IAAI,UAAQ,SAAM,QAAS,MAAA,GAAA,OAAoB;CAG/C,IAAA,QAAO,MAAA,SAAA,oBAAA,QAAA,MAAA,MAAA,CAAA,GAAA,OAAA;CACT,OAAA;AAIA;SAIS,mBAAiB,EAAA,OAAA,GAAA,SAAsB;CAC9C,MAAM,CAAA,iBAAU,sBAA8B,SAAA,KAAA;CAG9C,MAAA,UAAgB,cAAA,OAAA,SAAA;iBAEZ;EAEJ,IAAI,CAAA,SAAQ,mBAAA,KAAA;CAEZ,GAAA,CAAA,OAAM,CAAA;CAEN,MAAM,cAAU,MAAU;OACxB,UAAc,UAAK,UAAA;EACnB,cAAU,KAAA;EACV,IAAA,MAAA,kBAAuB;EACxB,mBAAA,IAAA;CAGD,CAAA;CAEA,MAAA,gBAAgB,OAAA,IAAA;iBACF;SACV,KAAA,OAAc,CAAA,eAAgB,IAAA,UAAA;GAC/B,cAAA,UAAA,MAAA;EACH,CAAA;CAEA,GAAA,CAAA,KAAQ,CAAA;SACN;EACA;EACA,YAAG;EACH,GAAA;EACF;CAEA;CACF,OAAA;AAEA;;;;;;;;;;;;;MAyBI,eAAgB,WAAA,SAAA,aAA4B,EAAA,OAAA,QAAA,OAAA,SAAA,OAAA,eAAA,MAAA,qBAAA,MAAA,iCAAA,CAAA,CAAA,oBAAA,GAAA,SAAA;CAC5C,MAAA,UAAQ,4BAAS;CAEjB,QAAA,SAGI;CAGJ,UAAM,OAAM,uFAAqB;CACjC,MAAM,MAAC,OAAA,IAAA;CACP,MAAM,CAAA,kBAAiB,uBAAQ,SAAA,CAAA,CAAA;CAC/B,MAAM,iBAAgB,OAAqB,CAAA;CAC3C,MAAM,gBAAa,OAAA,IAAa;CAEhC,MAAM,EAAA,WAAA,aAAgB,aAAiB,QAAA,MAAA,SAAA;CAEvC,MAAM,gBAAA,iBAA0B;CAChC,MAAM,wBAAA,CAAyB,CAAA;CAC/B,MAAM,yBAAA,gBAA4B,kBAAA;CAClC,MAAM,0BAAA,CAA2B,CAAA;CAIjC,MAAM,2BAAqB,gBAAa,8BAAA;CACxC,MAAM,OAAA,cAAU,OAAc,MAAO;CAIrC,MAAA,UAAgB,cAAA,OAAA,SAAA;iBACC;EACf,IAAI,CAAC,UAAS;EACd,IAAI,CAAC,SAAA;EACL,IAAA,CAAA,yBAAoB,CAAA,yBAAA;EACpB,MAAK,UAAS,IAAA;EACd,IAAA,CAAA,SAAM;QACC,eAAO,UAAA;GACZ,IAAI,CAAC,OAAA;GACL,IAAA,CAAA,cAAQ,GAAA;GACR,MAAM,EAAA,eAAa,aAAc,YAAA,MAAA,SAAA;GACjC,MAAM,aAAW,cAAM;GACvB,MAAM,CAAA,UAAS,MAAA,aAAA;GAGf,MAAI,SAAA;OAIF,oBAAc,QACZ,SAAU,QAAU,gBAAiB,GAAM;IAG7C,cAAO,UAAa,UAAA,UAAsB,SAAA,QAAA,MAAA,IAAA,cAAA,KAAA,IAAA;IAC1C,OAAA,aAAe,eAAU,OAAA;IACzB,eAAA,UAAA;IACF;GAGA;GAGA,IAAI,eAAY,SAAA;OACd,YAAM;IAMN,MAAI,eAAiB,cALL,KAAA;QAOd,iBAAc,cAAU,kBAAA,SAAA,UAAA,CAAA,GAAA;KACxB,cAAK,UAAA;KACL,IAAA,CAAA,yBAAqB,KAAA,GAAA;KACrB,MAAM,eAAA;KACN,MAAA,gBAAA;KACF;IACF;GACA;GAEA,IAAA,CAAA,uBAAyB,KAAO,GAAA;kBAC9B,UAAe,OAAU,iBAAA;IACzB,eAAY,UAAA;IACd,OAAG,KAAA;GACL,GAAA,eAAA,OAAA;EACA;EAGF,OAAG,MAAA,uBAAA,aAAA,aAAA,IAAA,SAAA,aAAA,eAAA,OAAA,CAAA;IACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CAKD,CAAA;iBACiB;EACf,IAAI,CAAC,UAAS;EACd,IAAI,CAAC,SAAA;EACL,IAAA,CAAA,yBAAsB;QACpB,gBAAoB,UAAA;GACpB,MAAK,UAAS,IAAA;GACd,IAAA,CAAA,SAAM;GACN,MAAK,aAAY,cAAA;GACjB,IAAA,CAAA,YAAgB;GAChB,MAAI,UAAA,kBAAiB,SAAsB,UAAU;OACnD,iBAAK,cAAyB,KAAQ,GAAA,OAAA,GAAA;IACtC,IAAA,CAAA,yBAAqB,KAAA,GAAA;IACrB,MAAM,eAAA;IACR,MAAA,gBAAA;GACF;EACA;EAOF,OAAG,MAAA,uBAAA,cAAA,cAAA,IAAA,GAAA,uBAAA,aAAA,cAAA,IAAA,GAAA,uBAAA,YAAA,cAAA,IAAA,GAAA,uBAAA,cAAA,cAAA,IAAA,CAAA;IAAC;EAAU;EAAS;EAAyB;EAAyB;CAKzE,CAAA;iBACiB;EACf,IAAI,CAAA,UAAM;EACV,IAAA,MAAO;EACT,OAAG,mBAAA,KAAA;IAAC;EAAO;EAAU;EAAK;CAG1B,CAAA;CACA,MAAA,UAAgB,WAAA,IAAA;iBACC;EACf,IAAA,CAAA,UAAa;eAEN;GAGP,IAAA,CAAA,QAAA,SAAA,OAAA,mBAAA,KAAA;EAIF;CAEA,GAAA,CAAA,OAAM,QAAA,CAAA;CAUN,MAAA,mBAAA,WAA0B,sBAAA;2BACb;EACX,IAAI,OAAC;EACL,IAAI,CAAC,QAAA;EACL,IAAI,CAAC,SAAA;EACL,IAAA,CAAA,UAAM;EACN,MAAK,UAAS,IAAA;EACd,IAAA,CAAA,SAAO;EACT,OAAG,mBAAA,OAAA;IAAC;EAAO;EAAQ;EAAS;EAAS;CAErC,CAAA;OAEI,0BAAqB,aAAqB,YAAc;EACxD,qBAAM,iBAAmB,CAAA,GAAA,cAA0B,OAAA,CAAA;EACnD,MAAA,mBAAa,mBAAA,OAAA;eACX;GAGA,qBAAmB,iBAAA,aAAA,QAAA,SAAA,SAAA,OAAA,CAAA;GACrB,mBAAA;EACF;CAIF,GAAA,CAAA,gBAAQ,CAAA;SAGmC,eAAA,QAAA,YAAA,oBAAA,gCAAA;;YACG,oBAAA,uBAAA,UAAA;;GAEP,UAAA;EACH,CAAA;CAKpC,CAAA,GAAA,CAAA,OAAQ,uBAAA,CAAA;SACH;EACH,GAAA;EACF,KAAA,aAAA,KAAA,MAAA,GAAA;CAEA;SAA6B,mBAAA;EAAO;EAAU,GAAA;CAG9C,CAAA;CAKA,MAAA,kBAAmB,cAAA,QAAA,UAAA,SAAA,MAAA,eAAA;SACjB,WAAA;EACA;EACA;EACA;EACA;EACA,GAAA;EACA;eACM,OAAA;GAIJ,IAAA,uBAAA,cAA4B,KAAA,GAAA,OAAA;+BAC1B;gCACc;KACb,OAAA,KAAA;IACF,CAAA;GACD,CAAA;GACF,OAAA;EACD;CAED,CAAA;CAEJ,OAAA;;;;;;;;;;;;;;;MAkBI,YAAO,sBADW,WACqB,SAAA,UAAA,OAAA;CACxC,OACD,cAAA,SACF,aAAA,KAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-polygon.d.ts","names":["Polygon","debugPolygon","HTMLElement","polygon"],"sources":["../../../src/hovercard/utils/debug-polygon.d.ts"],"mappings":";;;iBACwBC,YAAAA,CAAaE,OAAAA,EAASH,OAAAA,GAAUE,WAAW"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/hovercard/utils/debug-polygon.ts
|
|
3
|
+
function getPolygon() {
|
|
4
|
+
const id = "debug-polygon";
|
|
5
|
+
const existingPolygon = document.getElementById(id);
|
|
6
|
+
if (existingPolygon) return existingPolygon;
|
|
7
|
+
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
8
|
+
svg.style.top = "0";
|
|
9
|
+
svg.style.left = "0";
|
|
10
|
+
svg.style.width = "100%";
|
|
11
|
+
svg.style.height = "100%";
|
|
12
|
+
svg.style.fill = "green";
|
|
13
|
+
svg.style.opacity = "0.2";
|
|
14
|
+
svg.style.position = "fixed";
|
|
15
|
+
svg.style.pointerEvents = "none";
|
|
16
|
+
svg.style.zIndex = "999999";
|
|
17
|
+
const polygon = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
|
|
18
|
+
polygon.setAttribute("id", id);
|
|
19
|
+
polygon.setAttribute("points", "0,0 0,0");
|
|
20
|
+
svg.appendChild(polygon);
|
|
21
|
+
document.body.appendChild(svg);
|
|
22
|
+
return polygon;
|
|
23
|
+
}
|
|
24
|
+
function debugPolygon(polygon) {
|
|
25
|
+
const polygonElement = getPolygon();
|
|
26
|
+
const points = polygon.map((point) => point.join(",")).join(" ");
|
|
27
|
+
polygonElement.setAttribute("points", points);
|
|
28
|
+
return polygonElement.parentElement;
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { debugPolygon };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=debug-polygon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-polygon.js","names":[],"sources":["../../../src/hovercard/utils/debug-polygon.ts"],"sourcesContent":["/* istanbul ignore file */\nimport type { Polygon } from \"./polygon.ts\";\n\nfunction getPolygon() {\n const id = \"debug-polygon\";\n const existingPolygon = document.getElementById(id);\n if (existingPolygon) {\n return existingPolygon;\n }\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.style.top = \"0\";\n svg.style.left = \"0\";\n svg.style.width = \"100%\";\n svg.style.height = \"100%\";\n svg.style.fill = \"green\";\n svg.style.opacity = \"0.2\";\n svg.style.position = \"fixed\";\n svg.style.pointerEvents = \"none\";\n svg.style.zIndex = \"999999\";\n const polygon = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"polygon\",\n );\n polygon.setAttribute(\"id\", id);\n polygon.setAttribute(\"points\", \"0,0 0,0\");\n svg.appendChild(polygon);\n document.body.appendChild(svg);\n return polygon;\n}\n\nexport function debugPolygon(polygon: Polygon) {\n const polygonElement = getPolygon();\n const points = polygon.map((point) => point.join(\",\")).join(\" \");\n polygonElement.setAttribute(\"points\", points);\n // Return SVG element\n return polygonElement.parentElement;\n}\n"],"mappings":";;SAIQ,aAAK;CACX,MAAM,KAAA;CACN,MAAI,kBACF,SAAO,eAAA,EAAA;CAET,IAAA,iBAAqB,OAAA;CACrB,MAAI,MAAM,SAAM,gBAAA,8BAAA,KAAA;CAChB,IAAI,MAAM,MAAA;CACV,IAAI,MAAM,OAAA;CACV,IAAI,MAAM,QAAA;CACV,IAAI,MAAM,SAAO;CACjB,IAAI,MAAM,OAAA;CACV,IAAI,MAAM,UAAA;CACV,IAAI,MAAM,WAAA;CACV,IAAI,MAAM,gBAAS;CACnB,IAAA,MAAM,SAAU;CAIhB,MAAA,UAAQ,SAAa,gBAAQ,8BAAA,SAAA;CAC7B,QAAQ,aAAa,MAAA,EAAA;CACrB,QAAI,aAAY,UAAO,SAAA;CACvB,IAAA,YAAc,OAAA;CACd,SAAO,KAAA,YAAA,GAAA;CACT,OAAA;AAEA;SACQ,aAAA,SAAiB;CACvB,MAAM,iBAAiB,WAAK;CAC5B,MAAA,SAAe,QAAA,KAAa,UAAU,MAAM,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA;CAE5C,eAAO,aAAe,UAAA,MAAA;CACxB,OAAA,eAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/hovercard/utils/polygon.d.ts
|
|
2
|
+
type Point = [number, number];
|
|
3
|
+
type Polygon = Point[];
|
|
4
|
+
declare function getEventPoint(event: MouseEvent): Point;
|
|
5
|
+
declare function isPointInPolygon(point: Point, polygon: Polygon): boolean;
|
|
6
|
+
declare function getElementPolygon(element: Element, enterPoint: Point): Point[];
|
|
7
|
+
//#endregion
|
|
8
|
+
export { Point, Polygon, getElementPolygon, getEventPoint, isPointInPolygon };
|
|
9
|
+
//# sourceMappingURL=polygon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polygon.d.ts","names":["Point","Polygon","getEventPoint","MouseEvent","event","isPointInPolygon","point","polygon","getElementPolygon","Element","element","enterPoint"],"sources":["../../../src/hovercard/utils/polygon.d.ts"],"mappings":";KAAYA,KAAAA;AAAAA,KACAC,OAAAA,GAAUD,KAAK;AAAA,iBACHE,aAAAA,CAAcE,KAAAA,EAAOD,UAAAA,GAAaH,KAAK;AAAA,iBACvCK,gBAAAA,CAAiBC,KAAAA,EAAON,KAAAA,EAAOO,OAAAA,EAASN,OAAO;AAAA,iBAC/CO,iBAAAA,CAAkBE,OAAAA,EAASD,OAAAA,EAASE,UAAAA,EAAYX,KAAAA,GAAQA,KAAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/hovercard/utils/polygon.ts
|
|
3
|
+
function getEventPoint(event) {
|
|
4
|
+
return [event.clientX, event.clientY];
|
|
5
|
+
}
|
|
6
|
+
function isPointInPolygon(point, polygon) {
|
|
7
|
+
const [x, y] = point;
|
|
8
|
+
let inside = false;
|
|
9
|
+
const length = polygon.length;
|
|
10
|
+
for (let l = length, i = 0, j = l - 1; i < l; j = i++) {
|
|
11
|
+
const currentPoint = polygon[i];
|
|
12
|
+
const previousPoint = polygon[j];
|
|
13
|
+
const vertexPoint = polygon[j === 0 ? l - 1 : j - 1];
|
|
14
|
+
if (currentPoint == null) return false;
|
|
15
|
+
if (previousPoint == null) return false;
|
|
16
|
+
if (vertexPoint == null) return false;
|
|
17
|
+
const [xi, yi] = currentPoint;
|
|
18
|
+
const [xj, yj] = previousPoint;
|
|
19
|
+
const [, vy] = vertexPoint;
|
|
20
|
+
const where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);
|
|
21
|
+
if (yj < yi) {
|
|
22
|
+
if (y >= yj && y < yi) {
|
|
23
|
+
if (where === 0) return true;
|
|
24
|
+
if (where > 0) if (y === yj) {
|
|
25
|
+
if (y > vy) inside = !inside;
|
|
26
|
+
} else inside = !inside;
|
|
27
|
+
}
|
|
28
|
+
} else if (yi < yj) {
|
|
29
|
+
if (y > yi && y <= yj) {
|
|
30
|
+
if (where === 0) return true;
|
|
31
|
+
if (where < 0) if (y === yj) {
|
|
32
|
+
if (y < vy) inside = !inside;
|
|
33
|
+
} else inside = !inside;
|
|
34
|
+
}
|
|
35
|
+
} else if (y === yi && (x >= xj && x <= xi || x >= xi && x <= xj)) return true;
|
|
36
|
+
}
|
|
37
|
+
return inside;
|
|
38
|
+
}
|
|
39
|
+
function getEnterPointPlacement(enterPoint, rect) {
|
|
40
|
+
const { top, right, bottom, left } = rect;
|
|
41
|
+
const [x, y] = enterPoint;
|
|
42
|
+
return [x < left ? "left" : x > right ? "right" : null, y < top ? "top" : y > bottom ? "bottom" : null];
|
|
43
|
+
}
|
|
44
|
+
function getElementPolygon(element, enterPoint) {
|
|
45
|
+
const rect = element.getBoundingClientRect();
|
|
46
|
+
const { top, right, bottom, left } = rect;
|
|
47
|
+
const [x, y] = getEnterPointPlacement(enterPoint, rect);
|
|
48
|
+
const polygon = [enterPoint];
|
|
49
|
+
if (x) {
|
|
50
|
+
if (y !== "top") polygon.push([x === "left" ? left : right, top]);
|
|
51
|
+
polygon.push([x === "left" ? right : left, top]);
|
|
52
|
+
polygon.push([x === "left" ? right : left, bottom]);
|
|
53
|
+
if (y !== "bottom") polygon.push([x === "left" ? left : right, bottom]);
|
|
54
|
+
} else if (y === "top") {
|
|
55
|
+
polygon.push([left, top]);
|
|
56
|
+
polygon.push([left, bottom]);
|
|
57
|
+
polygon.push([right, bottom]);
|
|
58
|
+
polygon.push([right, top]);
|
|
59
|
+
} else {
|
|
60
|
+
polygon.push([left, bottom]);
|
|
61
|
+
polygon.push([left, top]);
|
|
62
|
+
polygon.push([right, top]);
|
|
63
|
+
polygon.push([right, bottom]);
|
|
64
|
+
}
|
|
65
|
+
return polygon;
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
export { getElementPolygon, getEventPoint, isPointInPolygon };
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=polygon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polygon.js","names":[],"sources":["../../../src/hovercard/utils/polygon.ts"],"sourcesContent":["export type Point = [number, number];\nexport type Polygon = Point[];\n\nexport function getEventPoint(event: MouseEvent): Point {\n return [event.clientX, event.clientY];\n}\n\n// Based on https://github.com/metafloor/pointinpoly\nexport function isPointInPolygon(point: Point, polygon: Polygon) {\n const [x, y] = point;\n let inside = false;\n const length = polygon.length;\n for (let l = length, i = 0, j = l - 1; i < l; j = i++) {\n const currentPoint = polygon[i];\n const previousPoint = polygon[j];\n const vertexPoint = polygon[j === 0 ? l - 1 : j - 1];\n if (currentPoint == null) return false;\n if (previousPoint == null) return false;\n if (vertexPoint == null) return false;\n const [xi, yi] = currentPoint;\n const [xj, yj] = previousPoint;\n const [, vy] = vertexPoint;\n const where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);\n if (yj < yi) {\n if (y >= yj && y < yi) {\n // point on the line\n if (where === 0) return true;\n if (where > 0) {\n if (y === yj) {\n // ray intersects vertex\n if (y > vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (yi < yj) {\n if (y > yi && y <= yj) {\n // point on the line\n if (where === 0) return true;\n if (where < 0) {\n if (y === yj) {\n // ray intersects vertex\n if (y < vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (y === yi && ((x >= xj && x <= xi) || (x >= xi && x <= xj))) {\n // point on horizontal edge\n return true;\n }\n }\n return inside;\n}\n\nfunction getEnterPointPlacement(enterPoint: Point, rect: DOMRect) {\n const { top, right, bottom, left } = rect;\n const [x, y] = enterPoint;\n const placementX = x < left ? \"left\" : x > right ? \"right\" : null;\n const placementY = y < top ? \"top\" : y > bottom ? \"bottom\" : null;\n return [placementX, placementY] as const;\n}\n\nexport function getElementPolygon(element: Element, enterPoint: Point) {\n const rect = element.getBoundingClientRect();\n const { top, right, bottom, left } = rect;\n const [x, y] = getEnterPointPlacement(enterPoint, rect);\n const polygon = [enterPoint];\n if (x) {\n if (y !== \"top\") {\n polygon.push([x === \"left\" ? left : right, top]);\n }\n polygon.push([x === \"left\" ? right : left, top]);\n polygon.push([x === \"left\" ? right : left, bottom]);\n if (y !== \"bottom\") {\n polygon.push([x === \"left\" ? left : right, bottom]);\n }\n } else if (y === \"top\") {\n polygon.push([left, top]);\n polygon.push([left, bottom]);\n polygon.push([right, bottom]);\n polygon.push([right, top]);\n } else {\n polygon.push([left, bottom]);\n polygon.push([left, top]);\n polygon.push([right, top]);\n polygon.push([right, bottom]);\n }\n return polygon;\n}\n"],"mappings":";;SAIU,cAAM,OAAe;CAC/B,OAAA,CAAA,MAAA,SAAA,MAAA,OAAA;AAGA;SACS,iBAAQ,OAAA,SAAA;CACf,MAAI,CAAA,GAAA,KAAS;CACb,IAAA,SAAM;CACN,MAAK,SAAQ,QAAQ;MACnB,IAAM,IAAA,QAAA,IAAe,GAAA,IAAQ,IAAA,GAAA,IAAA,GAAA,IAAA,KAAA;EAC7B,MAAM,eAAA,QAAgB;EACtB,MAAM,gBAAc,QAAQ;EAC5B,MAAI,cAAgB,QAAM,MAAO,IAAA,IAAA,IAAA,IAAA;EACjC,IAAI,gBAAA,MAAiB,OAAM;EAC3B,IAAI,iBAAe,MAAM,OAAO;EAChC,IAAA,eAAiB,MAAA,OAAA;EACjB,MAAM,CAAC,IAAI,MAAM;EACjB,MAAM,CAAA,IAAG,MAAM;EACf,MAAM,GAAA,MAAS;EACf,MAAI,SACF,KAAA,OAAA,IAAA,OAAA,KAAA,OAAA,IAAA;WAAI;OAEF,KAAI,MAAU,IAAG,IAAA;IACjB,IAAI,UAAQ,GACV,OAAI;gBAEM,GACN,IAAA,MAAU,IACZ;SAAA,IAEA,IAAA,SAAU,CAAA;IAAA,OAGhB,SAAA,CAAA;;SAEI,IAAI,KAAM;OAEZ,IAAI,MAAA,KAAa,IAAA;IACjB,IAAI,UAAQ,GACV,OAAI;gBAEM,GACN,IAAA,MAAU,IACZ;SAAA,IAEA,IAAA,SAAU,CAAA;IAAA,OAGhB,SAAA,CAAA;;SAKJ,IAAA,MAAA,OAAA,KAAA,MAAA,KAAA,MAAA,KAAA,MAAA,KAAA,KAAA,OAAA;CACA;CACF,OAAA;AAEA;SACU,uBAAoB,YAAS,MAAA;CACrC,MAAM,EAAC,KAAG,OAAK,QAAA,SAAA;CAGf,MAAA,CAAO,GAFY,KAAI;CAGzB,OAAA,CAAA,IAAA,OAAA,SAAA,IAAA,QAAA,UAAA,MAAA,IAAA,MAAA,QAAA,IAAA,SAAA,WAAA,IAAA;AAEA;SACQ,kBAAe,SAAA,YAAsB;CAC3C,MAAM,OAAO,QAAO,sBAAiB;CACrC,MAAM,EAAC,KAAG,OAAK,QAAA,SAAA;CACf,MAAM,CAAA,GAAA,KAAA,uBAAqB,YAAA,IAAA;CAC3B,MAAI,UAAG,CAAA,UAAA;KACL,GAAI;EAGJ,IAAA,MAAQ,OAAM,QAAM,KAAS,CAAA,MAAQ,SAAS,OAAC,OAAA,GAAA,CAAA;EAC/C,QAAQ,KAAK,CAAC,MAAM,SAAS,QAAQ,MAAM,GAAA,CAAA;EAC3C,QAAI,KAAM,CAAA,MACR,SAAQ,QAAM,MAAM,MAAS,CAAA;EAEjC,IAAA,MAAW,UAAM,QAAO,KAAA,CAAA,MAAA,SAAA,OAAA,OAAA,MAAA,CAAA;QACtB,IAAQ,MAAM,OAAS;EACvB,QAAQ,KAAK,CAAC,MAAM,GAAA,CAAA;EACpB,QAAQ,KAAK,CAAC,MAAA,MAAO,CAAM;EAC3B,QAAQ,KAAK,CAAC,OAAO,MAAI,CAAA;EAC3B,QAAO,KAAA,CAAA,OAAA,GAAA,CAAA;QACL;EACA,QAAQ,KAAK,CAAC,MAAM,MAAI,CAAA;EACxB,QAAQ,KAAK,CAAC,MAAA,GAAO,CAAG;EACxB,QAAQ,KAAK,CAAC,OAAO,GAAA,CAAA;EACvB,QAAA,KAAA,CAAA,OAAA,MAAA,CAAA;CACA;CACF,OAAA"}
|