@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,580 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCollectionContext } from "./collection-context.js";
|
|
3
|
+
import { createElement, forwardRef, useBooleanEvent, useEvent, useForceUpdate, useId, useMergeRefs, useWrapElement } from "@ariakit/react-utils";
|
|
4
|
+
import { getScrollingElement, getWindow, invariant, shallowEqual } from "@ariakit/utils";
|
|
5
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { useStoreState } from "@ariakit/react-store";
|
|
8
|
+
import { flushSync } from "react-dom";
|
|
9
|
+
//#region src/collection/collection-renderer.tsx
|
|
10
|
+
const TagName = "div";
|
|
11
|
+
const CollectionRendererContext = createContext(null);
|
|
12
|
+
function createTask() {
|
|
13
|
+
let raf = 0;
|
|
14
|
+
const run = (cb) => {
|
|
15
|
+
if (raf) return;
|
|
16
|
+
raf = requestAnimationFrame(() => {
|
|
17
|
+
raf = 0;
|
|
18
|
+
cb();
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const cancel = () => {
|
|
22
|
+
cancelAnimationFrame(raf);
|
|
23
|
+
raf = 0;
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
run,
|
|
27
|
+
cancel
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function findNearestIndex(items, target, getValue) {
|
|
31
|
+
let left = 0;
|
|
32
|
+
let right = getItemsLength(items) - 1;
|
|
33
|
+
while (left <= right) {
|
|
34
|
+
const index = (left + right) / 2 | 0;
|
|
35
|
+
const value = getValue(index);
|
|
36
|
+
if (value === target) return index;
|
|
37
|
+
else if (value < target) left = index + 1;
|
|
38
|
+
else right = index - 1;
|
|
39
|
+
}
|
|
40
|
+
if (left > 0) return left - 1;
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
function getItemsLength(items) {
|
|
44
|
+
return typeof items === "number" ? items : items.length;
|
|
45
|
+
}
|
|
46
|
+
function getItemObject(item) {
|
|
47
|
+
if (!item || typeof item !== "object") return { value: item };
|
|
48
|
+
return item;
|
|
49
|
+
}
|
|
50
|
+
function getItemId(item, index, baseId) {
|
|
51
|
+
invariant(baseId, "CollectionRenderer must be given an `id` prop.");
|
|
52
|
+
const defaultId = `${baseId}/${index}`;
|
|
53
|
+
return getItemObject(item).id ?? defaultId;
|
|
54
|
+
}
|
|
55
|
+
function getItem(items, index) {
|
|
56
|
+
if (typeof items === "number") {
|
|
57
|
+
if (index >= items) return null;
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
const item = items[index];
|
|
61
|
+
if (!item) return null;
|
|
62
|
+
if (typeof item === "object") return item;
|
|
63
|
+
return { value: item };
|
|
64
|
+
}
|
|
65
|
+
function getItemSize(item, horizontal, fallbackElement) {
|
|
66
|
+
const itemObject = getItemObject(item);
|
|
67
|
+
horizontal = itemObject.orientation === "horizontal" || horizontal;
|
|
68
|
+
const prop = horizontal ? "width" : "height";
|
|
69
|
+
const style = itemObject.style;
|
|
70
|
+
if (style) {
|
|
71
|
+
const size = style[prop];
|
|
72
|
+
if (typeof size === "number") return size;
|
|
73
|
+
}
|
|
74
|
+
const items = itemObject.items;
|
|
75
|
+
if (items?.length) {
|
|
76
|
+
const hasSameOrientation = !itemObject.orientation || horizontal && itemObject.orientation === "horizontal" || !horizontal && itemObject.orientation === "vertical";
|
|
77
|
+
const paddingStart = itemObject.paddingStart ?? itemObject.padding ?? 0;
|
|
78
|
+
const paddingEnd = itemObject.paddingEnd ?? itemObject.padding ?? 0;
|
|
79
|
+
const padding = hasSameOrientation ? paddingStart + paddingEnd : 0;
|
|
80
|
+
const initialSize = (itemObject.gap ?? 0) * (items.length - 1) + padding;
|
|
81
|
+
if (hasSameOrientation && itemObject.itemSize) return initialSize + itemObject.itemSize * items.length;
|
|
82
|
+
const totalSize = items.reduce((sum, item) => sum + getItemSize(item, horizontal), initialSize);
|
|
83
|
+
if (totalSize !== initialSize) return totalSize;
|
|
84
|
+
}
|
|
85
|
+
const element = fallbackElement !== false ? itemObject.element || fallbackElement : null;
|
|
86
|
+
if (element?.isConnected) return element.getBoundingClientRect()[prop];
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
function getAverageSize(props) {
|
|
90
|
+
const length = getItemsLength(props.items);
|
|
91
|
+
let currentIndex = 0;
|
|
92
|
+
let averageSize = props.estimatedItemSize;
|
|
93
|
+
const setAverageSize = (size) => {
|
|
94
|
+
const prevIndex = currentIndex;
|
|
95
|
+
currentIndex = currentIndex + 1;
|
|
96
|
+
averageSize = (averageSize * prevIndex + size) / currentIndex;
|
|
97
|
+
};
|
|
98
|
+
for (let index = 0; index < length; index += 1) {
|
|
99
|
+
const item = getItem(props.items, index);
|
|
100
|
+
const itemId = getItemId(item, index, props.baseId);
|
|
101
|
+
const itemData = props.data.get(itemId);
|
|
102
|
+
const fallbackElement = props.elements.get(itemId);
|
|
103
|
+
const size = getItemSize(item, props.horizontal, fallbackElement);
|
|
104
|
+
if (size) setAverageSize(size);
|
|
105
|
+
else if (itemData?.rendered) setAverageSize(itemData.end - itemData.start);
|
|
106
|
+
}
|
|
107
|
+
return averageSize;
|
|
108
|
+
}
|
|
109
|
+
function getScrollOffset(scroller, horizontal) {
|
|
110
|
+
if ("scrollX" in scroller) return horizontal ? scroller.scrollX : scroller.scrollY;
|
|
111
|
+
return horizontal ? scroller.scrollLeft : scroller.scrollTop;
|
|
112
|
+
}
|
|
113
|
+
function getViewport(scroller) {
|
|
114
|
+
const { defaultView, documentElement } = scroller.ownerDocument;
|
|
115
|
+
if (scroller === documentElement) return defaultView;
|
|
116
|
+
return scroller;
|
|
117
|
+
}
|
|
118
|
+
function useScroller(rendererRef) {
|
|
119
|
+
const [scroller, setScroller] = useState(null);
|
|
120
|
+
useEffect(() => {
|
|
121
|
+
const renderer = rendererRef?.current;
|
|
122
|
+
if (!renderer) return;
|
|
123
|
+
const scroller = getScrollingElement(renderer);
|
|
124
|
+
if (!scroller) return;
|
|
125
|
+
setScroller(scroller);
|
|
126
|
+
}, [rendererRef]);
|
|
127
|
+
return scroller;
|
|
128
|
+
}
|
|
129
|
+
function getRendererOffset(renderer, scroller, horizontal) {
|
|
130
|
+
const win = getWindow(renderer);
|
|
131
|
+
const htmlElement = win?.document.documentElement;
|
|
132
|
+
const rendererRect = renderer.getBoundingClientRect();
|
|
133
|
+
const rendererOffset = horizontal ? rendererRect.left : rendererRect.top;
|
|
134
|
+
if (scroller === htmlElement) return getScrollOffset(win, horizontal) + rendererOffset;
|
|
135
|
+
const scrollerRect = scroller.getBoundingClientRect();
|
|
136
|
+
const scrollerOffset = horizontal ? scrollerRect.left : scrollerRect.top;
|
|
137
|
+
const scrollOffset = getScrollOffset(scroller, horizontal);
|
|
138
|
+
return rendererOffset - scrollerOffset + scrollOffset;
|
|
139
|
+
}
|
|
140
|
+
function getOffsets(renderer, scroller, horizontal) {
|
|
141
|
+
const scrollOffset = getScrollOffset(scroller, horizontal);
|
|
142
|
+
const rendererOffset = getRendererOffset(renderer, scroller, horizontal);
|
|
143
|
+
const scrollSize = horizontal ? scroller.clientWidth : scroller.clientHeight;
|
|
144
|
+
const start = scrollOffset - rendererOffset;
|
|
145
|
+
return {
|
|
146
|
+
start,
|
|
147
|
+
end: start + scrollSize
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
function getItemsEnd(props) {
|
|
151
|
+
const length = getItemsLength(props.items);
|
|
152
|
+
const totalPadding = props.paddingStart + props.paddingEnd;
|
|
153
|
+
if (!length) return totalPadding;
|
|
154
|
+
const lastIndex = length - 1;
|
|
155
|
+
const totalGap = lastIndex * props.gap;
|
|
156
|
+
if (props.itemSize != null) return length * props.itemSize + totalGap + totalPadding;
|
|
157
|
+
const defaultEnd = length * props.estimatedItemSize + totalGap + totalPadding;
|
|
158
|
+
if (!props.baseId) return defaultEnd;
|
|
159
|
+
const lastItemId = getItemId(getItem(props.items, lastIndex), lastIndex, props.baseId);
|
|
160
|
+
const lastItemData = props.data.get(lastItemId);
|
|
161
|
+
if (lastItemData?.end) return lastItemData.end + props.paddingEnd;
|
|
162
|
+
if (!Array.isArray(props.items)) return defaultEnd;
|
|
163
|
+
const end = props.items.reduce((sum, item) => sum + getItemSize(item, props.horizontal, false), 0);
|
|
164
|
+
if (!end) return defaultEnd;
|
|
165
|
+
return end + totalGap + totalPadding;
|
|
166
|
+
}
|
|
167
|
+
function getData(props) {
|
|
168
|
+
const length = getItemsLength(props.items);
|
|
169
|
+
let nextData;
|
|
170
|
+
let start = props.paddingStart;
|
|
171
|
+
const avgSize = getAverageSize(props);
|
|
172
|
+
for (let index = 0; index < length; index += 1) {
|
|
173
|
+
const item = getItem(props.items, index);
|
|
174
|
+
const itemId = getItemId(item, index, props.baseId);
|
|
175
|
+
const itemData = props.data.get(itemId);
|
|
176
|
+
const prevRendered = itemData?.rendered ?? false;
|
|
177
|
+
const setSize = (size, rendered = prevRendered) => {
|
|
178
|
+
start = start ? start + props.gap : start;
|
|
179
|
+
const end = start + size;
|
|
180
|
+
if (!shallowEqual(itemData, {
|
|
181
|
+
index,
|
|
182
|
+
rendered,
|
|
183
|
+
start,
|
|
184
|
+
end
|
|
185
|
+
})) {
|
|
186
|
+
if (!nextData) nextData = new Map(props.data);
|
|
187
|
+
nextData.set(itemId, {
|
|
188
|
+
index,
|
|
189
|
+
rendered,
|
|
190
|
+
start,
|
|
191
|
+
end
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
start = end;
|
|
195
|
+
};
|
|
196
|
+
const size = getItemSize(item, props.horizontal, props.elements.get(itemId));
|
|
197
|
+
if (size) setSize(size, true);
|
|
198
|
+
else if (itemData?.rendered) setSize(itemData.end - itemData.start, true);
|
|
199
|
+
else setSize(avgSize);
|
|
200
|
+
}
|
|
201
|
+
return nextData;
|
|
202
|
+
}
|
|
203
|
+
function useCollectionRenderer({ store, items: itemsProp, initialItems = 0, gap = 0, itemSize, estimatedItemSize = 40, overscan: overscanProp, orientation: orientationProp, padding = 0, paddingStart = padding, paddingEnd = padding, persistentIndices, renderOnScroll = true, renderOnResize = !!renderOnScroll, children: renderItem, ...props }) {
|
|
204
|
+
const context = useCollectionContext();
|
|
205
|
+
store = store || context;
|
|
206
|
+
const items = useStoreState(store, (state) => itemsProp ?? state?.items);
|
|
207
|
+
invariant(items != null, "CollectionRenderer must be either wrapped in a Collection component or be given an `items` prop.");
|
|
208
|
+
let parent = useContext(CollectionRendererContext);
|
|
209
|
+
if (store && parent?.store !== store) parent = null;
|
|
210
|
+
const parentData = parent?.childrenData;
|
|
211
|
+
const orientation = orientationProp ?? parent?.orientation ?? "vertical";
|
|
212
|
+
const overscan = overscanProp ?? parent?.overscan ?? 1;
|
|
213
|
+
const ref = useRef(null);
|
|
214
|
+
const baseId = useId(props.id);
|
|
215
|
+
const horizontal = orientation === "horizontal";
|
|
216
|
+
const elements = useMemo(() => /* @__PURE__ */ new Map(), []);
|
|
217
|
+
const [elementsUpdated, updateElements] = useForceUpdate();
|
|
218
|
+
const [defaultVisibleIndices, setVisibleIndices] = useState(() => {
|
|
219
|
+
if (!initialItems) return [];
|
|
220
|
+
const length = getItemsLength(items);
|
|
221
|
+
const initialLength = Math.min(length, Math.abs(initialItems));
|
|
222
|
+
return Array.from({ length: initialLength }, (_, index) => {
|
|
223
|
+
if (initialItems < 0) return length - index - 1;
|
|
224
|
+
return index;
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
const visibleIndices = useMemo(() => {
|
|
228
|
+
if (!persistentIndices) return defaultVisibleIndices;
|
|
229
|
+
const nextIndices = defaultVisibleIndices.slice();
|
|
230
|
+
for (const index of persistentIndices) {
|
|
231
|
+
if (index < 0) continue;
|
|
232
|
+
if (nextIndices.includes(index)) continue;
|
|
233
|
+
nextIndices.push(index);
|
|
234
|
+
}
|
|
235
|
+
nextIndices.sort((a, b) => a - b);
|
|
236
|
+
if (shallowEqual(defaultVisibleIndices, nextIndices)) return defaultVisibleIndices;
|
|
237
|
+
return nextIndices;
|
|
238
|
+
}, [defaultVisibleIndices, persistentIndices]);
|
|
239
|
+
const [data, setData] = useState(() => {
|
|
240
|
+
if (!baseId) return /* @__PURE__ */ new Map();
|
|
241
|
+
const data = parentData?.get(baseId) || /* @__PURE__ */ new Map();
|
|
242
|
+
if (itemSize != null) return data;
|
|
243
|
+
if (!items) return data;
|
|
244
|
+
return getData({
|
|
245
|
+
baseId,
|
|
246
|
+
items,
|
|
247
|
+
data,
|
|
248
|
+
gap,
|
|
249
|
+
elements,
|
|
250
|
+
horizontal,
|
|
251
|
+
paddingStart,
|
|
252
|
+
itemSize,
|
|
253
|
+
estimatedItemSize
|
|
254
|
+
}) || data;
|
|
255
|
+
});
|
|
256
|
+
const totalSize = useMemo(() => {
|
|
257
|
+
return getItemsEnd({
|
|
258
|
+
baseId,
|
|
259
|
+
items,
|
|
260
|
+
data,
|
|
261
|
+
gap,
|
|
262
|
+
horizontal,
|
|
263
|
+
itemSize,
|
|
264
|
+
estimatedItemSize,
|
|
265
|
+
paddingStart,
|
|
266
|
+
paddingEnd
|
|
267
|
+
});
|
|
268
|
+
}, [
|
|
269
|
+
baseId,
|
|
270
|
+
items,
|
|
271
|
+
data,
|
|
272
|
+
gap,
|
|
273
|
+
horizontal,
|
|
274
|
+
itemSize,
|
|
275
|
+
estimatedItemSize,
|
|
276
|
+
paddingStart,
|
|
277
|
+
paddingEnd
|
|
278
|
+
]);
|
|
279
|
+
useEffect(() => {
|
|
280
|
+
if (!baseId) return;
|
|
281
|
+
parentData?.set(baseId, data);
|
|
282
|
+
}, [
|
|
283
|
+
baseId,
|
|
284
|
+
parentData,
|
|
285
|
+
data
|
|
286
|
+
]);
|
|
287
|
+
useEffect(() => {
|
|
288
|
+
if (itemSize != null) return;
|
|
289
|
+
if (!baseId) return;
|
|
290
|
+
if (!items) return;
|
|
291
|
+
const nextData = getData({
|
|
292
|
+
baseId,
|
|
293
|
+
items,
|
|
294
|
+
data,
|
|
295
|
+
gap,
|
|
296
|
+
elements,
|
|
297
|
+
horizontal,
|
|
298
|
+
paddingStart,
|
|
299
|
+
itemSize,
|
|
300
|
+
estimatedItemSize
|
|
301
|
+
});
|
|
302
|
+
if (nextData) setData(nextData);
|
|
303
|
+
}, [
|
|
304
|
+
elementsUpdated,
|
|
305
|
+
itemSize,
|
|
306
|
+
baseId,
|
|
307
|
+
items,
|
|
308
|
+
data,
|
|
309
|
+
gap,
|
|
310
|
+
elements,
|
|
311
|
+
horizontal,
|
|
312
|
+
paddingStart,
|
|
313
|
+
estimatedItemSize
|
|
314
|
+
]);
|
|
315
|
+
const scroller = useScroller(items ? ref : null);
|
|
316
|
+
const offsetsRef = useRef({
|
|
317
|
+
start: 0,
|
|
318
|
+
end: 0
|
|
319
|
+
});
|
|
320
|
+
const processVisibleIndices = useCallback(() => {
|
|
321
|
+
const offsets = offsetsRef.current;
|
|
322
|
+
if (!items) return;
|
|
323
|
+
if (!baseId) return;
|
|
324
|
+
if (!offsets.end) return;
|
|
325
|
+
if (!data.size && !itemSize) return;
|
|
326
|
+
const length = getItemsLength(items);
|
|
327
|
+
const getItemOffset = (index, prop = "start") => {
|
|
328
|
+
if (itemSize) {
|
|
329
|
+
const start = itemSize * index + gap * index + paddingStart;
|
|
330
|
+
if (prop === "start") return start;
|
|
331
|
+
return start + itemSize;
|
|
332
|
+
}
|
|
333
|
+
const itemId = getItemId(getItem(items, index), index, baseId);
|
|
334
|
+
return data.get(itemId)?.[prop] ?? 0;
|
|
335
|
+
};
|
|
336
|
+
const initialStart = findNearestIndex(items, offsets.start, getItemOffset);
|
|
337
|
+
let initialEnd = initialStart;
|
|
338
|
+
while (initialEnd < length && getItemOffset(initialEnd) < offsets.end) initialEnd += 1;
|
|
339
|
+
const finalOverscan = initialEnd - initialStart ? overscan : 0;
|
|
340
|
+
const start = Math.max(initialStart - finalOverscan, 0);
|
|
341
|
+
const end = Math.min(initialEnd + finalOverscan, length);
|
|
342
|
+
const indices = Array.from({ length: end - start }, (_, index) => index + start);
|
|
343
|
+
setVisibleIndices((prevIndices) => {
|
|
344
|
+
if (shallowEqual(prevIndices, indices)) return prevIndices;
|
|
345
|
+
return indices;
|
|
346
|
+
});
|
|
347
|
+
}, [
|
|
348
|
+
elementsUpdated,
|
|
349
|
+
items,
|
|
350
|
+
baseId,
|
|
351
|
+
data,
|
|
352
|
+
itemSize,
|
|
353
|
+
gap,
|
|
354
|
+
paddingStart,
|
|
355
|
+
overscan
|
|
356
|
+
]);
|
|
357
|
+
useEffect(processVisibleIndices, [processVisibleIndices]);
|
|
358
|
+
const processVisibleIndicesEvent = useEvent(processVisibleIndices);
|
|
359
|
+
useEffect(() => {
|
|
360
|
+
const renderer = ref.current;
|
|
361
|
+
if (!renderer) return;
|
|
362
|
+
if (!scroller) return;
|
|
363
|
+
offsetsRef.current = getOffsets(renderer, scroller, horizontal);
|
|
364
|
+
processVisibleIndicesEvent();
|
|
365
|
+
}, [
|
|
366
|
+
scroller,
|
|
367
|
+
horizontal,
|
|
368
|
+
processVisibleIndicesEvent
|
|
369
|
+
]);
|
|
370
|
+
const mayRenderOnScroll = !!renderOnScroll;
|
|
371
|
+
const renderOnScrollProp = useBooleanEvent(renderOnScroll);
|
|
372
|
+
useEffect(() => {
|
|
373
|
+
if (!mayRenderOnScroll) return;
|
|
374
|
+
const renderer = ref.current;
|
|
375
|
+
if (!renderer) return;
|
|
376
|
+
if (!scroller) return;
|
|
377
|
+
const viewport = getViewport(scroller);
|
|
378
|
+
if (!viewport) return;
|
|
379
|
+
const task = createTask();
|
|
380
|
+
const onScroll = (event) => {
|
|
381
|
+
task.run(() => {
|
|
382
|
+
if (!renderOnScrollProp(event)) return;
|
|
383
|
+
offsetsRef.current = getOffsets(renderer, scroller, horizontal);
|
|
384
|
+
processVisibleIndicesEvent();
|
|
385
|
+
});
|
|
386
|
+
};
|
|
387
|
+
viewport.addEventListener("scroll", onScroll, { passive: true });
|
|
388
|
+
return () => {
|
|
389
|
+
task.cancel();
|
|
390
|
+
viewport.removeEventListener("scroll", onScroll);
|
|
391
|
+
};
|
|
392
|
+
}, [
|
|
393
|
+
mayRenderOnScroll,
|
|
394
|
+
scroller,
|
|
395
|
+
renderOnScrollProp,
|
|
396
|
+
horizontal,
|
|
397
|
+
processVisibleIndicesEvent
|
|
398
|
+
]);
|
|
399
|
+
const mayRenderOnResize = !!renderOnResize;
|
|
400
|
+
const renderOnResizeProp = useBooleanEvent(renderOnResize);
|
|
401
|
+
useEffect(() => {
|
|
402
|
+
if (!mayRenderOnResize) return;
|
|
403
|
+
const renderer = ref.current;
|
|
404
|
+
if (!renderer) return;
|
|
405
|
+
if (!scroller) return;
|
|
406
|
+
const viewport = getViewport(scroller);
|
|
407
|
+
if (!viewport) return;
|
|
408
|
+
const task = createTask();
|
|
409
|
+
if (viewport === scroller) {
|
|
410
|
+
if (typeof ResizeObserver !== "function") return;
|
|
411
|
+
let firstRun = true;
|
|
412
|
+
const observer = new ResizeObserver(() => {
|
|
413
|
+
if (firstRun) {
|
|
414
|
+
firstRun = false;
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
417
|
+
task.run(() => {
|
|
418
|
+
if (!renderOnResizeProp(scroller)) return;
|
|
419
|
+
offsetsRef.current = getOffsets(renderer, scroller, horizontal);
|
|
420
|
+
processVisibleIndicesEvent();
|
|
421
|
+
});
|
|
422
|
+
});
|
|
423
|
+
observer.observe(scroller);
|
|
424
|
+
return () => {
|
|
425
|
+
task.cancel();
|
|
426
|
+
observer.disconnect();
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
const onResize = () => {
|
|
430
|
+
task.run(() => {
|
|
431
|
+
if (!renderOnResizeProp(scroller)) return;
|
|
432
|
+
offsetsRef.current = getOffsets(renderer, scroller, horizontal);
|
|
433
|
+
processVisibleIndicesEvent();
|
|
434
|
+
});
|
|
435
|
+
};
|
|
436
|
+
viewport.addEventListener("resize", onResize, { passive: true });
|
|
437
|
+
return () => {
|
|
438
|
+
task.cancel();
|
|
439
|
+
viewport.removeEventListener("resize", onResize);
|
|
440
|
+
};
|
|
441
|
+
}, [
|
|
442
|
+
mayRenderOnResize,
|
|
443
|
+
scroller,
|
|
444
|
+
renderOnResizeProp,
|
|
445
|
+
horizontal,
|
|
446
|
+
processVisibleIndicesEvent
|
|
447
|
+
]);
|
|
448
|
+
useEffect(() => {
|
|
449
|
+
if (typeof IntersectionObserver !== "function") return;
|
|
450
|
+
const renderer = ref.current;
|
|
451
|
+
if (!renderer) return;
|
|
452
|
+
if (!scroller) return;
|
|
453
|
+
const viewport = getViewport(scroller);
|
|
454
|
+
if (!viewport) return;
|
|
455
|
+
const observer = new IntersectionObserver(() => {
|
|
456
|
+
offsetsRef.current = getOffsets(renderer, scroller, horizontal);
|
|
457
|
+
processVisibleIndicesEvent();
|
|
458
|
+
}, { root: scroller === viewport ? scroller : null });
|
|
459
|
+
observer.observe(renderer);
|
|
460
|
+
return () => {
|
|
461
|
+
observer.disconnect();
|
|
462
|
+
};
|
|
463
|
+
}, [
|
|
464
|
+
scroller,
|
|
465
|
+
horizontal,
|
|
466
|
+
processVisibleIndicesEvent
|
|
467
|
+
]);
|
|
468
|
+
const elementObserver = useMemo(() => {
|
|
469
|
+
if (typeof ResizeObserver !== "function") return;
|
|
470
|
+
return new ResizeObserver(() => {
|
|
471
|
+
flushSync(updateElements);
|
|
472
|
+
});
|
|
473
|
+
}, [updateElements]);
|
|
474
|
+
const itemRef = useCallback((element) => {
|
|
475
|
+
if (!element) return;
|
|
476
|
+
if (itemSize) return;
|
|
477
|
+
updateElements();
|
|
478
|
+
elements.set(element.id, element);
|
|
479
|
+
elementObserver?.observe(element);
|
|
480
|
+
}, [
|
|
481
|
+
itemSize,
|
|
482
|
+
elements,
|
|
483
|
+
updateElements,
|
|
484
|
+
elementObserver
|
|
485
|
+
]);
|
|
486
|
+
const getItemProps = useCallback((item, index) => {
|
|
487
|
+
const itemId = getItemId(item, index, baseId);
|
|
488
|
+
const offset = itemSize ? paddingStart + itemSize * index + gap * index : data.get(itemId)?.start ?? 0;
|
|
489
|
+
const baseItemProps = {
|
|
490
|
+
id: itemId,
|
|
491
|
+
ref: itemRef,
|
|
492
|
+
index,
|
|
493
|
+
style: {
|
|
494
|
+
position: "absolute",
|
|
495
|
+
left: horizontal ? offset : 0,
|
|
496
|
+
top: horizontal ? 0 : offset
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
if (itemSize) baseItemProps.style[horizontal ? "width" : "height"] = itemSize;
|
|
500
|
+
if (item == null) return baseItemProps;
|
|
501
|
+
const itemProps = getItemObject(item);
|
|
502
|
+
return {
|
|
503
|
+
...itemProps,
|
|
504
|
+
...baseItemProps,
|
|
505
|
+
style: {
|
|
506
|
+
...itemProps.style,
|
|
507
|
+
...baseItemProps.style
|
|
508
|
+
}
|
|
509
|
+
};
|
|
510
|
+
}, [
|
|
511
|
+
baseId,
|
|
512
|
+
data,
|
|
513
|
+
itemSize,
|
|
514
|
+
paddingStart,
|
|
515
|
+
gap,
|
|
516
|
+
horizontal,
|
|
517
|
+
itemRef
|
|
518
|
+
]);
|
|
519
|
+
const children = useMemo(() => {
|
|
520
|
+
return visibleIndices.map((index) => {
|
|
521
|
+
if (index < 0) return;
|
|
522
|
+
const item = getItem(items, index);
|
|
523
|
+
if (!item) return;
|
|
524
|
+
return getItemProps(item, index);
|
|
525
|
+
}).filter((value) => value != null);
|
|
526
|
+
}, [
|
|
527
|
+
items,
|
|
528
|
+
visibleIndices,
|
|
529
|
+
getItemProps
|
|
530
|
+
])?.map((itemProps) => {
|
|
531
|
+
return renderItem?.(itemProps);
|
|
532
|
+
});
|
|
533
|
+
const styleProp = props.style;
|
|
534
|
+
const sizeProperty = horizontal ? "width" : "height";
|
|
535
|
+
const style = useMemo(() => ({
|
|
536
|
+
flex: "none",
|
|
537
|
+
position: "relative",
|
|
538
|
+
[sizeProperty]: totalSize,
|
|
539
|
+
...styleProp
|
|
540
|
+
}), [
|
|
541
|
+
styleProp,
|
|
542
|
+
sizeProperty,
|
|
543
|
+
totalSize
|
|
544
|
+
]);
|
|
545
|
+
const childrenData = useMemo(() => /* @__PURE__ */ new Map(), []);
|
|
546
|
+
const providerValue = useMemo(() => ({
|
|
547
|
+
store,
|
|
548
|
+
orientation,
|
|
549
|
+
overscan,
|
|
550
|
+
childrenData
|
|
551
|
+
}), [
|
|
552
|
+
store,
|
|
553
|
+
orientation,
|
|
554
|
+
overscan,
|
|
555
|
+
childrenData
|
|
556
|
+
]);
|
|
557
|
+
props = useWrapElement(props, (element) => /* @__PURE__ */ jsx(CollectionRendererContext.Provider, {
|
|
558
|
+
value: providerValue,
|
|
559
|
+
children: element
|
|
560
|
+
}), [providerValue]);
|
|
561
|
+
props = {
|
|
562
|
+
id: baseId,
|
|
563
|
+
...props,
|
|
564
|
+
style,
|
|
565
|
+
ref: useMergeRefs(ref, props.ref)
|
|
566
|
+
};
|
|
567
|
+
return {
|
|
568
|
+
...props,
|
|
569
|
+
children
|
|
570
|
+
};
|
|
571
|
+
}
|
|
572
|
+
const CollectionRenderer = forwardRef(function CollectionRenderer(props) {
|
|
573
|
+
return createElement(TagName, useCollectionRenderer(props));
|
|
574
|
+
});
|
|
575
|
+
const getCollectionRendererItem = getItem;
|
|
576
|
+
const getCollectionRendererItemId = getItemId;
|
|
577
|
+
//#endregion
|
|
578
|
+
export { CollectionRenderer, getCollectionRendererItem, getCollectionRendererItemId, useCollectionRenderer };
|
|
579
|
+
|
|
580
|
+
//# sourceMappingURL=collection-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-renderer.js","names":[],"sources":["../../src/collection/collection-renderer.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport {\n useBooleanEvent,\n useEvent,\n useForceUpdate,\n useId,\n useMergeRefs,\n useWrapElement,\n createElement,\n forwardRef,\n} from \"@ariakit/react-utils\";\nimport type { Options, Props } from \"@ariakit/react-utils\";\nimport {\n getScrollingElement,\n getWindow,\n invariant,\n shallowEqual,\n} from \"@ariakit/utils\";\nimport type { AnyObject, BooleanOrCallback, EmptyObject } from \"@ariakit/utils\";\nimport type {\n CSSProperties,\n ElementType,\n ReactNode,\n RefCallback,\n RefObject,\n} from \"react\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useCollectionContext } from \"./collection-context.tsx\";\nimport type {\n CollectionStore,\n CollectionStoreItem,\n} from \"./collection-store.ts\";\n\nconst TagName = \"div\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\ntype NestedRendererItemProps = Pick<\n CollectionRendererOptions,\n | \"gap\"\n | \"orientation\"\n | \"itemSize\"\n | \"estimatedItemSize\"\n | \"padding\"\n | \"paddingStart\"\n | \"paddingEnd\"\n>;\n\ninterface ItemObject extends AnyObject, NestedRendererItemProps {\n /**\n * The item unique identifier. If not specified, an ID will be assigned based\n * on the item's index. If it's a nested item and the item is not included in\n * the `items` property of its parent, it must be composed by all the\n * ancestors' IDs and the item's ID, separated by slashes (e.g.,\n * `grand/parent/item`).\n */\n id?: string;\n /**\n * The item style object. If the `width` or `height` properties are\n * specificed, they will be used to calculate the item size.\n */\n style?: CSSProperties;\n /**\n * A list of nested items. Passing this property will help measure the item\n * size.\n */\n items?: Item[];\n /**\n * The rendered item element. This property is assigned to the `items` state\n * on the collection store and can be used to calculate the item size.\n */\n element?: HTMLElement | null;\n}\n\ntype Item =\n | ItemObject\n | Omit<string, string>\n | Omit<number, string>\n | Omit<boolean, string>\n | null\n | undefined;\n\ntype Items<T extends Item> = number | readonly T[];\n\ninterface BaseItemProps {\n id: string;\n ref: RefCallback<HTMLElement>;\n style: CSSProperties;\n index: number;\n}\n\ntype ItemProps<\n T extends Item,\n P extends BaseItemProps = BaseItemProps,\n> = unknown extends T ? P : P & (T extends AnyObject ? T : { value: T });\n\ntype RawItemProps<T extends Item> = unknown extends T\n ? EmptyObject\n : T extends AnyObject\n ? T\n : { value: T };\n\ntype Data = Map<\n string,\n { index: number; rendered: boolean; start: number; end: number }\n>;\n\ninterface CollectionRendererContextValue {\n store: CollectionRendererOptions[\"store\"];\n orientation: CollectionRendererOptions[\"orientation\"];\n overscan: CollectionRendererOptions[\"overscan\"];\n childrenData: Map<string, Data>;\n}\n\nconst CollectionRendererContext =\n createContext<CollectionRendererContextValue | null>(null);\n\nfunction createTask() {\n let raf = 0;\n const run = (cb: () => void) => {\n if (raf) return;\n raf = requestAnimationFrame(() => {\n raf = 0;\n cb();\n });\n };\n const cancel = () => {\n cancelAnimationFrame(raf);\n raf = 0;\n };\n return { run, cancel };\n}\n\nfunction findNearestIndex<T extends Item = any>(\n items: Items<T>,\n target: number,\n getValue: (index: number) => number,\n) {\n let left = 0;\n let right = getItemsLength(items) - 1;\n while (left <= right) {\n const index = ((left + right) / 2) | 0;\n const value = getValue(index);\n if (value === target) return index;\n else if (value < target) left = index + 1;\n else right = index - 1;\n }\n if (left > 0) return left - 1;\n return 0;\n}\n\nfunction getItemsLength<T extends Item>(items: Items<T>) {\n return typeof items === \"number\" ? items : items.length;\n}\n\nfunction getItemObject(item: Item): ItemObject {\n if (!item || typeof item !== \"object\") {\n return { value: item };\n }\n return item;\n}\n\nfunction getItemId(item: Item, index: number, baseId?: string) {\n invariant(baseId, \"CollectionRenderer must be given an `id` prop.\");\n const defaultId = `${baseId}/${index}`;\n return getItemObject(item).id ?? defaultId;\n}\n\nfunction getItem<T extends Item = any>(\n items: Items<T>,\n index: number,\n): RawItemProps<T> | null {\n if (typeof items === \"number\") {\n if (index >= items) return null;\n return {} as RawItemProps<T>;\n }\n const item = items[index];\n if (!item) return null;\n if (typeof item === \"object\") return item as RawItemProps<T>;\n return { value: item } as unknown as RawItemProps<T>;\n}\n\nfunction getItemSize(\n item: Item,\n horizontal: boolean,\n fallbackElement?: HTMLElement | null | false,\n): number {\n const itemObject = getItemObject(item);\n horizontal = itemObject.orientation === \"horizontal\" || horizontal;\n const prop = horizontal ? \"width\" : \"height\";\n const style = itemObject.style;\n if (style) {\n const size = style[prop];\n if (typeof size === \"number\") return size;\n }\n const items = itemObject.items;\n if (items?.length) {\n const hasSameOrientation =\n !itemObject.orientation ||\n (horizontal && itemObject.orientation === \"horizontal\") ||\n (!horizontal && itemObject.orientation === \"vertical\");\n const paddingStart = itemObject.paddingStart ?? itemObject.padding ?? 0;\n const paddingEnd = itemObject.paddingEnd ?? itemObject.padding ?? 0;\n const padding = hasSameOrientation ? paddingStart + paddingEnd : 0;\n const initialSize = (itemObject.gap ?? 0) * (items.length - 1) + padding;\n if (hasSameOrientation && itemObject.itemSize) {\n return initialSize + itemObject.itemSize * items.length;\n }\n // oxlint-disable-next-line no-unnecessary-type-arguments\n const totalSize = items.reduce<number>(\n (sum, item) => sum + getItemSize(item, horizontal),\n initialSize,\n );\n if (totalSize !== initialSize) return totalSize;\n }\n const element =\n fallbackElement !== false ? itemObject.element || fallbackElement : null;\n if (element?.isConnected) {\n return element.getBoundingClientRect()[prop];\n }\n return 0;\n}\n\nfunction getAverageSize<T extends Item>(props: {\n baseId: string;\n data: Data;\n items: Items<T>;\n elements: Map<string, HTMLElement>;\n estimatedItemSize: number;\n horizontal: boolean;\n}) {\n const length = getItemsLength(props.items);\n let currentIndex = 0;\n let averageSize = props.estimatedItemSize;\n\n const setAverageSize = (size: number) => {\n const prevIndex = currentIndex;\n currentIndex = currentIndex + 1;\n averageSize = (averageSize * prevIndex + size) / currentIndex;\n };\n\n for (let index = 0; index < length; index += 1) {\n const item = getItem(props.items, index);\n const itemId = getItemId(item, index, props.baseId);\n const itemData = props.data.get(itemId);\n const fallbackElement = props.elements.get(itemId);\n const size = getItemSize(item, props.horizontal, fallbackElement);\n if (size) {\n setAverageSize(size);\n } else if (itemData?.rendered) {\n setAverageSize(itemData.end - itemData.start);\n }\n }\n\n return averageSize;\n}\n\nfunction getScrollOffset(scroller: Element | Window, horizontal: boolean) {\n if (\"scrollX\" in scroller) {\n return horizontal ? scroller.scrollX : scroller.scrollY;\n }\n return horizontal ? scroller.scrollLeft : scroller.scrollTop;\n}\n\nfunction getViewport(scroller: Element) {\n const { defaultView, documentElement } = scroller.ownerDocument;\n if (scroller === documentElement) return defaultView;\n return scroller;\n}\n\nfunction useScroller(rendererRef: RefObject<HTMLElement | null> | null) {\n const [scroller, setScroller] = useState<Element | null>(null);\n useEffect(() => {\n const renderer = rendererRef?.current;\n if (!renderer) return;\n const scroller = getScrollingElement(renderer);\n if (!scroller) return;\n setScroller(scroller);\n }, [rendererRef]);\n return scroller;\n}\n\nfunction getRendererOffset(\n renderer: HTMLElement,\n scroller: Element,\n horizontal: boolean,\n): number {\n const win = getWindow(renderer);\n const htmlElement = win?.document.documentElement;\n const rendererRect = renderer.getBoundingClientRect();\n const rendererOffset = horizontal ? rendererRect.left : rendererRect.top;\n if (scroller === htmlElement) {\n const scrollOffset = getScrollOffset(win, horizontal);\n return scrollOffset + rendererOffset;\n }\n const scrollerRect = scroller.getBoundingClientRect();\n const scrollerOffset = horizontal ? scrollerRect.left : scrollerRect.top;\n const scrollOffset = getScrollOffset(scroller, horizontal);\n return rendererOffset - scrollerOffset + scrollOffset;\n}\n\nfunction getOffsets(\n renderer: HTMLElement,\n scroller: Element,\n horizontal: boolean,\n) {\n const scrollOffset = getScrollOffset(scroller, horizontal);\n const rendererOffset = getRendererOffset(renderer, scroller, horizontal);\n const scrollSize = horizontal ? scroller.clientWidth : scroller.clientHeight;\n const start = scrollOffset - rendererOffset;\n const end = start + scrollSize;\n return { start, end };\n}\n\nfunction getItemsEnd<T extends Item>(props: {\n baseId?: string;\n items: Items<T>;\n data: Data;\n gap: number;\n horizontal: boolean;\n itemSize?: number;\n estimatedItemSize: number;\n paddingStart: number;\n paddingEnd: number;\n}) {\n const length = getItemsLength(props.items);\n const totalPadding = props.paddingStart + props.paddingEnd;\n if (!length) return totalPadding;\n const lastIndex = length - 1;\n const totalGap = lastIndex * props.gap;\n if (props.itemSize != null) {\n return length * props.itemSize + totalGap + totalPadding;\n }\n const defaultEnd = length * props.estimatedItemSize + totalGap + totalPadding;\n if (!props.baseId) return defaultEnd;\n const lastItem = getItem(props.items, lastIndex);\n const lastItemId = getItemId(lastItem, lastIndex, props.baseId);\n const lastItemData = props.data.get(lastItemId);\n if (lastItemData?.end) return lastItemData.end + props.paddingEnd;\n if (!Array.isArray(props.items)) return defaultEnd;\n // oxlint-disable-next-line no-unnecessary-type-arguments\n const end = props.items.reduce<number>(\n (sum, item) => sum + getItemSize(item, props.horizontal, false),\n 0,\n );\n if (!end) return defaultEnd;\n return end + totalGap + totalPadding;\n}\n\nfunction getData<T extends Item>(props: {\n baseId: string;\n items: Items<T>;\n data: Data;\n gap: number;\n horizontal: boolean;\n elements: Map<string, HTMLElement>;\n paddingStart: number;\n itemSize?: number;\n estimatedItemSize: number;\n}) {\n const length = getItemsLength(props.items);\n let nextData: Data | undefined;\n let start = props.paddingStart;\n const avgSize = getAverageSize(props);\n\n for (let index = 0; index < length; index += 1) {\n const item = getItem(props.items, index);\n const itemId = getItemId(item, index, props.baseId);\n const itemData = props.data.get(itemId);\n const prevRendered = itemData?.rendered ?? false;\n\n const setSize = (size: number, rendered = prevRendered) => {\n start = start ? start + props.gap : start;\n const end = start + size;\n const nextItemData = { index, rendered, start, end };\n if (!shallowEqual(itemData, nextItemData)) {\n if (!nextData) {\n nextData = new Map(props.data);\n }\n nextData.set(itemId, { index, rendered, start, end });\n }\n start = end;\n };\n\n const size = getItemSize(\n item,\n props.horizontal,\n props.elements.get(itemId),\n );\n\n if (size) {\n setSize(size, true);\n } else if (itemData?.rendered) {\n setSize(itemData.end - itemData.start, true);\n } else {\n setSize(avgSize);\n }\n }\n\n return nextData;\n}\n\nexport function useCollectionRenderer<T extends Item = any>({\n store,\n items: itemsProp,\n initialItems = 0,\n gap = 0,\n itemSize,\n estimatedItemSize = 40,\n overscan: overscanProp,\n orientation: orientationProp,\n padding = 0,\n paddingStart = padding,\n paddingEnd = padding,\n persistentIndices,\n renderOnScroll = true,\n renderOnResize = !!renderOnScroll,\n children: renderItem,\n ...props\n}: CollectionRendererProps<T>) {\n const context = useCollectionContext();\n store = store || (context as typeof store);\n\n const items = useStoreState(\n store,\n (state) => itemsProp ?? (state?.items as T[]),\n );\n\n invariant(\n items != null,\n process.env.NODE_ENV !== \"production\" &&\n \"CollectionRenderer must be either wrapped in a Collection component or be given an `items` prop.\",\n );\n\n let parent = useContext(CollectionRendererContext);\n\n if (store && parent?.store !== store) {\n parent = null;\n }\n\n const parentData = parent?.childrenData;\n const orientation = orientationProp ?? parent?.orientation ?? \"vertical\";\n const overscan = overscanProp ?? parent?.overscan ?? 1;\n\n const ref = useRef<HTMLType>(null);\n const baseId = useId(props.id);\n const horizontal = orientation === \"horizontal\";\n const elements = useMemo(() => new Map<string, HTMLElement>(), []);\n const [elementsUpdated, updateElements] = useForceUpdate();\n\n const [defaultVisibleIndices, setVisibleIndices] = useState<number[]>(() => {\n if (!initialItems) return [];\n const length = getItemsLength(items);\n const initialLength = Math.min(length, Math.abs(initialItems));\n return Array.from({ length: initialLength }, (_, index) => {\n if (initialItems < 0) return length - index - 1;\n return index;\n });\n });\n\n const visibleIndices = useMemo(() => {\n if (!persistentIndices) return defaultVisibleIndices;\n const nextIndices = defaultVisibleIndices.slice();\n for (const index of persistentIndices) {\n if (index < 0) continue;\n if (nextIndices.includes(index)) continue;\n nextIndices.push(index);\n }\n nextIndices.sort((a, b) => a - b);\n if (shallowEqual(defaultVisibleIndices, nextIndices)) {\n return defaultVisibleIndices;\n }\n return nextIndices;\n }, [defaultVisibleIndices, persistentIndices]);\n\n const [data, setData] = useState<Data>(() => {\n if (!baseId) return new Map();\n const data = parentData?.get(baseId) || new Map();\n if (itemSize != null) return data;\n if (!items) return data;\n const nextData = getData({\n baseId,\n items,\n data,\n gap,\n elements,\n horizontal,\n paddingStart,\n itemSize,\n estimatedItemSize,\n });\n return nextData || data;\n });\n\n const totalSize = useMemo(() => {\n return getItemsEnd({\n baseId,\n items,\n data,\n gap,\n horizontal,\n itemSize,\n estimatedItemSize,\n paddingStart,\n paddingEnd,\n });\n }, [\n baseId,\n items,\n data,\n gap,\n horizontal,\n itemSize,\n estimatedItemSize,\n paddingStart,\n paddingEnd,\n ]);\n\n // Back up the data to the parent so that it can be used later when this\n // renderer is re-mounted.\n useEffect(() => {\n if (!baseId) return;\n parentData?.set(baseId, data);\n }, [baseId, parentData, data]);\n\n useEffect(() => {\n if (itemSize != null) return;\n if (!baseId) return;\n if (!items) return;\n const nextData = getData({\n baseId,\n items,\n data,\n gap,\n elements,\n horizontal,\n paddingStart,\n itemSize,\n estimatedItemSize,\n });\n if (nextData) {\n setData(nextData);\n }\n }, [\n elementsUpdated,\n itemSize,\n baseId,\n items,\n data,\n gap,\n elements,\n horizontal,\n paddingStart,\n estimatedItemSize,\n ]);\n\n const scroller = useScroller(items ? ref : null);\n const offsetsRef = useRef({ start: 0, end: 0 });\n\n const processVisibleIndices = useCallback(() => {\n const offsets = offsetsRef.current;\n\n if (!items) return;\n if (!baseId) return;\n if (!offsets.end) return;\n if (!data.size && !itemSize) return;\n\n const length = getItemsLength(items);\n\n const getItemOffset = (index: number, prop: \"start\" | \"end\" = \"start\") => {\n if (itemSize) {\n const start = itemSize * index + gap * index + paddingStart;\n if (prop === \"start\") return start;\n return start + itemSize;\n }\n const item = getItem(items, index);\n const itemId = getItemId(item, index, baseId);\n const itemData = data.get(itemId);\n return itemData?.[prop] ?? 0;\n };\n\n const initialStart = findNearestIndex(items, offsets.start, getItemOffset);\n\n let initialEnd = initialStart;\n while (initialEnd < length && getItemOffset(initialEnd) < offsets.end) {\n initialEnd += 1;\n }\n\n const finalOverscan = initialEnd - initialStart ? overscan : 0;\n const start = Math.max(initialStart - finalOverscan, 0);\n const end = Math.min(initialEnd + finalOverscan, length);\n\n const indices = Array.from(\n { length: end - start },\n (_, index) => index + start,\n );\n\n setVisibleIndices((prevIndices) => {\n if (shallowEqual(prevIndices, indices)) return prevIndices;\n return indices;\n });\n // oxlint-disable-next-line exhaustive-deps\n }, [\n elementsUpdated,\n items,\n baseId,\n data,\n itemSize,\n gap,\n paddingStart,\n overscan,\n ]);\n\n useEffect(processVisibleIndices, [processVisibleIndices]);\n\n const processVisibleIndicesEvent = useEvent(processVisibleIndices);\n\n // Update the offsets when the items change.\n useEffect(() => {\n const renderer = ref.current;\n if (!renderer) return;\n if (!scroller) return;\n offsetsRef.current = getOffsets(renderer, scroller, horizontal);\n processVisibleIndicesEvent();\n }, [scroller, horizontal, processVisibleIndicesEvent]);\n\n const mayRenderOnScroll = !!renderOnScroll;\n const renderOnScrollProp = useBooleanEvent(renderOnScroll);\n\n // Render on scroll\n useEffect(() => {\n if (!mayRenderOnScroll) return;\n const renderer = ref.current;\n if (!renderer) return;\n if (!scroller) return;\n const viewport = getViewport(scroller);\n if (!viewport) return;\n const task = createTask();\n const onScroll = (event: Event) => {\n task.run(() => {\n if (!renderOnScrollProp(event)) return;\n offsetsRef.current = getOffsets(renderer, scroller, horizontal);\n processVisibleIndicesEvent();\n });\n };\n viewport.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => {\n task.cancel();\n viewport.removeEventListener(\"scroll\", onScroll);\n };\n }, [\n mayRenderOnScroll,\n scroller,\n renderOnScrollProp,\n horizontal,\n processVisibleIndicesEvent,\n ]);\n\n const mayRenderOnResize = !!renderOnResize;\n const renderOnResizeProp = useBooleanEvent(renderOnResize);\n\n // Render on resize\n useEffect(() => {\n if (!mayRenderOnResize) return;\n const renderer = ref.current;\n if (!renderer) return;\n if (!scroller) return;\n const viewport = getViewport(scroller);\n if (!viewport) return;\n const task = createTask();\n\n if (viewport === scroller) {\n if (typeof ResizeObserver !== \"function\") return;\n let firstRun = true;\n const observer = new ResizeObserver(() => {\n if (firstRun) {\n firstRun = false;\n return;\n }\n task.run(() => {\n if (!renderOnResizeProp(scroller)) return;\n offsetsRef.current = getOffsets(renderer, scroller, horizontal);\n processVisibleIndicesEvent();\n });\n });\n observer.observe(scroller);\n return () => {\n task.cancel();\n observer.disconnect();\n };\n }\n\n const onResize = () => {\n task.run(() => {\n if (!renderOnResizeProp(scroller)) return;\n offsetsRef.current = getOffsets(renderer, scroller, horizontal);\n processVisibleIndicesEvent();\n });\n };\n\n viewport.addEventListener(\"resize\", onResize, { passive: true });\n return () => {\n task.cancel();\n viewport.removeEventListener(\"resize\", onResize);\n };\n }, [\n mayRenderOnResize,\n scroller,\n renderOnResizeProp,\n horizontal,\n processVisibleIndicesEvent,\n ]);\n\n // Render on intersection\n useEffect(() => {\n if (typeof IntersectionObserver !== \"function\") return;\n const renderer = ref.current;\n if (!renderer) return;\n if (!scroller) return;\n const viewport = getViewport(scroller);\n if (!viewport) return;\n const observer = new IntersectionObserver(\n () => {\n offsetsRef.current = getOffsets(renderer, scroller, horizontal);\n processVisibleIndicesEvent();\n },\n { root: scroller === viewport ? scroller : null },\n );\n observer.observe(renderer);\n return () => {\n observer.disconnect();\n };\n }, [scroller, horizontal, processVisibleIndicesEvent]);\n\n const elementObserver = useMemo(() => {\n if (typeof ResizeObserver !== \"function\") return;\n return new ResizeObserver(() => {\n flushSync(updateElements);\n });\n }, [updateElements]);\n\n const itemRef = useCallback<RefCallback<HTMLElement>>(\n (element) => {\n if (!element) return;\n if (itemSize) return;\n updateElements();\n elements.set(element.id, element);\n elementObserver?.observe(element);\n },\n [itemSize, elements, updateElements, elementObserver],\n );\n\n const getItemProps = useCallback(\n <Item extends T = T>(item: RawItemProps<Item>, index: number) => {\n const itemId = getItemId(item, index, baseId);\n const offset = itemSize\n ? paddingStart + itemSize * index + gap * index\n : (data.get(itemId)?.start ?? 0);\n const baseItemProps: BaseItemProps = {\n id: itemId,\n ref: itemRef,\n index,\n style: {\n position: \"absolute\",\n left: horizontal ? offset : 0,\n top: horizontal ? 0 : offset,\n },\n };\n if (itemSize) {\n baseItemProps.style[horizontal ? \"width\" : \"height\"] = itemSize;\n }\n if (item == null) return baseItemProps as ItemProps<T>;\n const itemProps = getItemObject(item);\n return {\n ...itemProps,\n ...baseItemProps,\n style: {\n ...itemProps.style,\n ...baseItemProps.style,\n },\n } as ItemProps<T>;\n },\n [baseId, data, itemSize, paddingStart, gap, horizontal, itemRef],\n );\n\n const itemsProps = useMemo(() => {\n return visibleIndices\n .map((index) => {\n if (index < 0) return;\n const item = getItem(items, index);\n if (!item) return;\n return getItemProps(item, index);\n })\n .filter((value): value is NonNullable<typeof value> => value != null);\n }, [items, visibleIndices, getItemProps]);\n\n const children = itemsProps?.map((itemProps) => {\n return renderItem?.(itemProps);\n });\n\n const styleProp = props.style;\n const sizeProperty = horizontal ? \"width\" : \"height\";\n\n const style = useMemo(\n () => ({\n flex: \"none\",\n position: \"relative\" as const,\n [sizeProperty]: totalSize,\n ...styleProp,\n }),\n [styleProp, sizeProperty, totalSize],\n );\n\n const childrenData = useMemo(() => new Map<string, Data>(), []);\n const providerValue: CollectionRendererContextValue = useMemo(\n () => ({ store, orientation, overscan, childrenData }),\n [store, orientation, overscan, childrenData],\n );\n\n props = useWrapElement(\n props,\n (element) => (\n <CollectionRendererContext.Provider value={providerValue}>\n {element}\n </CollectionRendererContext.Provider>\n ),\n [providerValue],\n );\n\n props = {\n id: baseId,\n ...props,\n style,\n ref: useMergeRefs(ref, props.ref),\n };\n\n return { ...props, children };\n}\n\nexport const CollectionRenderer = forwardRef(function CollectionRenderer<\n T extends Item = any,\n>(props: CollectionRendererProps<T>) {\n const htmlProps = useCollectionRenderer(props);\n return createElement(TagName, htmlProps);\n});\n\nexport const getCollectionRendererItem = getItem;\nexport const getCollectionRendererItemId = getItemId;\n\nexport type CollectionRendererItemObject = ItemObject;\nexport type CollectionRendererItem = Item;\nexport type CollectionRendererBaseItemProps = BaseItemProps;\nexport type CollectionRendererItemProps<\n T extends Item,\n P extends BaseItemProps = BaseItemProps,\n> = ItemProps<T, P>;\n\nexport interface CollectionRendererOptions<\n T extends Item = any,\n> extends Options {\n /**\n * Object returned by the\n * [`useCollectionStore`](https://ariakit.com/reference/use-collection-store)\n * hook. If not provided, the closest\n * [Collection](https://ariakit.com/components/collection) component's\n * context will be used.\n *\n * The store\n * [`items`](https://ariakit.com/reference/use-collection-store#items) state\n * will be used to render the items if the\n * [`items`](https://ariakit.com/reference/collection-items#items) prop is not\n * provided.\n */\n store?: CollectionStore<\n T extends CollectionStoreItem ? T : CollectionStoreItem\n >;\n /**\n * All items to be rendered. This prop can be either a memoized array of items\n * or a number representing the total number of items to be rendered.\n *\n * When passing an array, each item can be either a primitive value or an\n * object. If it's a primitive value, an object with the `value` property will\n * be automatically created for each item and passed as an argument to the\n * function that renders the item. If it's an object, the entire object will\n * be passed.\n *\n * The item object can have any shape, but some **optional** properties have\n * particular functions:\n * - `id`: The same as the HTML attribute. If not provided, one will be\n * generated automatically.\n * - `style`: The same as the HTML attribute. This will be merged with the\n * styles generated by the component for each item. If the `width` or\n * `height` properties are explicitly provided here, they will be used to\n * calculate the item's size. This is useful when rendering items with known\n * variable sizes.\n * - `items`: An array of items to be rendered as children of this item. This\n * is useful when rendering nested items. This property is recommended when\n * rendering nested items because it will help the parent renderer calculate\n * the size and position of the nested items.\n *\n * Also, When rendering nested renderers, you can optionally include props\n * like `gap`, `orientation`, `itemSize`, `estimatedItemSize`, `padding`,\n * `paddingStart`, and `paddingEnd`. These props will help the parent renderer\n * calculate the size and position of the nested renderers.\n */\n items?: Items<T>;\n /**\n * Whether the items should be rendered when the closest scrollable ancestor\n * is scrolled.\n * @default true\n */\n renderOnScroll?: BooleanOrCallback<Event>;\n /**\n * Whether the items should be rendered when the closest scrollable ancestor\n * is resized.\n * @default true\n */\n renderOnResize?: BooleanOrCallback<Element>;\n /**\n * The number of items to render initially. Can be set to a negative number to\n * render items from the end of the list.\n * @default 0\n */\n initialItems?: number;\n /**\n * Whether the items should be rendered vertically or horizontally.\n * @default \"vertical\"\n */\n orientation?: \"vertical\" | \"horizontal\";\n /**\n * The fixed size of each item in pixels. If not provided, the size will be\n * automatically calculated.\n */\n itemSize?: number;\n /**\n * The estimated size of each item in pixels. This is used to calculate the\n * initial size of the items before they are rendered.\n * @default 40\n */\n estimatedItemSize?: number;\n /**\n * The gap between each item in pixels.\n * @default 0\n */\n gap?: number;\n /**\n * The number of items to render before and after the visible items.\n * @default 1\n */\n overscan?: number;\n /**\n * The item indices that should always be rendered.\n */\n persistentIndices?: number[];\n /**\n * The padding between the items and the container in pixels. This value will\n * be used for both the `paddingStart` and `paddingEnd` props, if they are not\n * explicitly provided.\n * @default 0\n */\n padding?: number;\n /**\n * The padding between the items and the container's start edge in pixels.\n * This value will override the `padding` prop if it is explicitly provided.\n * @default 0\n */\n paddingStart?: number;\n /**\n * The padding between the items and the container's end edge in pixels. This\n * value will override the `padding` prop if it is explicitly provided.\n * @default 0\n */\n paddingEnd?: number;\n /**\n * The `children` should be a function that receives item props and returns a\n * React element. The item props should be spread onto the element that\n * renders the item.\n */\n children?: (item: ItemProps<T>) => ReactNode;\n}\n\nexport interface CollectionRendererProps<T extends Item = any> extends Props<\n TagName,\n CollectionRendererOptions<T>\n> {}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as CollectionStoreProps, c as useCollectionStoreProps, i as CollectionStoreOptions, n as CollectionStoreFunctions, o as CollectionStoreState, r as CollectionStoreItem, s as useCollectionStore, t as CollectionStore } from "../collection-store-CbwzYsWf.js";
|
|
2
|
+
export { CollectionStore, CollectionStoreFunctions, CollectionStoreItem, CollectionStoreOptions, CollectionStoreProps, CollectionStoreState, useCollectionStore, useCollectionStoreProps };
|