@vizejs/ui 0.387.0 → 0.388.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/dist/alert-BX93FNvj.d.mts +92 -0
- package/dist/alert-DvhiFK_R.mjs +92 -0
- package/dist/alert-dialog-D9tqXQ_Q.mjs +176 -0
- package/dist/alert-dialog.d.mts +2 -0
- package/dist/alert-dialog.mjs +3 -0
- package/dist/alert.d.mts +2 -0
- package/dist/alert.mjs +2 -0
- package/dist/announcer-CW079p2E.mjs +258 -0
- package/dist/announcer-DGr2Iz0i.d.mts +6829 -0
- package/dist/announcer.d.mts +2 -0
- package/dist/announcer.mjs +2 -0
- package/dist/aspect-ratio-DDqVT6Hg.d.mts +62 -0
- package/dist/aspect-ratio-_HLW6_5i.mjs +63 -0
- package/dist/aspect-ratio.d.mts +2 -0
- package/dist/aspect-ratio.mjs +2 -0
- package/dist/avatar-6fQfQ-1x.mjs +195 -0
- package/dist/avatar.d.mts +2 -0
- package/dist/avatar.mjs +2 -0
- package/dist/badge-BTOyu4i6.mjs +53 -0
- package/dist/badge.d.mts +2 -0
- package/dist/badge.mjs +2 -0
- package/dist/banner-CYiSiZJW.mjs +288 -0
- package/dist/banner.d.mts +2 -0
- package/dist/banner.mjs +2 -0
- package/dist/block-ui-Bd2m1m3K.mjs +111 -0
- package/dist/block-ui.d.mts +2 -0
- package/dist/block-ui.mjs +2 -0
- package/dist/blockquote-eTqp3b_r.mjs +65 -0
- package/dist/blockquote.d.mts +2 -0
- package/dist/blockquote.mjs +2 -0
- package/dist/breadcrumb-BvuPBfkj.mjs +212 -0
- package/dist/breadcrumb-Cdyh20z-.d.mts +202 -0
- package/dist/breadcrumb.d.mts +2 -0
- package/dist/breadcrumb.mjs +2 -0
- package/dist/{button-DYg1mIIq.d.mts → button-Dye0M41O.d.mts} +3 -3
- package/dist/{button-DT8AKlds.mjs → button-VVxUavbS.mjs} +6 -6
- package/dist/button-group-C_mR0Jfw.d.mts +137 -0
- package/dist/button-group-DyQbTCnY.mjs +418 -0
- package/dist/button-group.d.mts +2 -0
- package/dist/button-group.mjs +2 -0
- package/dist/button.d.mts +1 -1
- package/dist/button.mjs +2 -2
- package/dist/callout-DAu-98Ti.mjs +277 -0
- package/dist/callout.d.mts +2 -0
- package/dist/callout.mjs +2 -0
- package/dist/card-D94n04s5.mjs +66 -0
- package/dist/card.d.mts +2 -0
- package/dist/card.mjs +2 -0
- package/dist/catalog.d.mts +2112 -302
- package/dist/catalog.mjs +3831 -433
- package/dist/{checkbox-BgIvwjyC.mjs → checkbox-bM5y7vH8.mjs} +8 -8
- package/dist/checkbox.d.mts +1 -1
- package/dist/checkbox.mjs +2 -2
- package/dist/cluster-BWF028Xt.d.mts +133 -0
- package/dist/cluster-BydJTp9X.mjs +149 -0
- package/dist/cluster.d.mts +2 -0
- package/dist/cluster.mjs +2 -0
- package/dist/code-D93YXaeJ.mjs +66 -0
- package/dist/code.d.mts +2 -0
- package/dist/code.mjs +2 -0
- package/dist/collapsible-Cra5y_if.mjs +269 -0
- package/dist/collapsible.d.mts +2 -0
- package/dist/collapsible.mjs +2 -0
- package/dist/{collection-B_dFZOHO.d.mts → collection-BaPf8lgw.d.mts} +3 -3
- package/dist/{collection-eHN150dT.mjs → collection-Cncgrq4U.mjs} +5 -5
- package/dist/collection.d.mts +1 -1
- package/dist/collection.mjs +1 -1
- package/dist/command-CAH0yrMT.d.mts +105 -0
- package/dist/command.d.mts +2 -0
- package/dist/command.mjs +123 -0
- package/dist/{composite-navigation-Skx3LZsv.mjs → composite-navigation-D6WKS_BY.mjs} +4 -4
- package/dist/{composite-navigation-QINW9GLy.d.mts → composite-navigation-i7ocwmio.d.mts} +4 -4
- package/dist/composite-navigation.d.mts +1 -1
- package/dist/composite-navigation.mjs +1 -1
- package/dist/container-5lSCSbeX.mjs +113 -0
- package/dist/container-CYSiwCA-.d.mts +99 -0
- package/dist/container.d.mts +2 -0
- package/dist/container.mjs +2 -0
- package/dist/context-7SpwFHtK.d.mts +25 -0
- package/dist/context.d.mts +1 -24
- package/dist/context.mjs +1 -1
- package/dist/{controllable-state-BtoxKahh.d.mts → controllable-state-CZZF9Pw5.d.mts} +1 -1
- package/dist/controllable-state.d.mts +1 -1
- package/dist/controllable-state.mjs +1 -1
- package/dist/copy-button-BH2em7nG.mjs +212 -0
- package/dist/copy-button.d.mts +2 -0
- package/dist/copy-button.mjs +2 -0
- package/dist/{id-BV9AJ3cm.d.mts → deterministic-id-DYQJ7KzM.d.mts} +2 -35
- package/dist/{id-mziSyAse.mjs → deterministic-id-yMq4HfmS.mjs} +3 -46
- package/dist/dialog-trigger-ppGKikEP.mjs +717 -0
- package/dist/dialog.d.mts +2 -0
- package/dist/dialog.mjs +2 -0
- package/dist/{dismissable-layer-4icKahVs.d.mts → dismissable-layer-CTWSFZwj.d.mts} +2 -2
- package/dist/{dismissable-layer-CwG1gtdz.mjs → dismissable-layer-CpS07KUV.mjs} +3 -3
- package/dist/dismissable-layer.d.mts +1 -1
- package/dist/dismissable-layer.mjs +1 -1
- package/dist/drag-and-drop-BjYgWGcG.mjs +918 -0
- package/dist/drag-and-drop-CagE25Kt.d.mts +47 -0
- package/dist/drag-and-drop-controller-types-DoTSR_aM.d.mts +304 -0
- package/dist/drag-and-drop.d.mts +3 -0
- package/dist/drag-and-drop.mjs +2 -0
- package/dist/empty-state-DtyOxCA4.mjs +73 -0
- package/dist/empty-state.d.mts +2 -0
- package/dist/empty-state.mjs +2 -0
- package/dist/error-summary-6Xis_769.d.mts +65 -0
- package/dist/error-summary-DMe4IlM9.mjs +209 -0
- package/dist/error-summary-types-5ePaC9O3.d.mts +74 -0
- package/dist/error-summary.d.mts +3 -0
- package/dist/error-summary.mjs +2 -0
- package/dist/field-CBs2-Z9B.mjs +254 -0
- package/dist/field-WWPaJT1x.d.mts +235 -0
- package/dist/field-wiring-9Fy-G1rf.d.mts +14 -0
- package/dist/field-wiring-runtime-fQ3GoLuG.mjs +64 -0
- package/dist/field-wiring-types-Bfyis5hO.d.mts +73 -0
- package/dist/field-wiring.d.mts +3 -0
- package/dist/field-wiring.mjs +2 -0
- package/dist/field.d.mts +2 -0
- package/dist/field.mjs +2 -0
- package/dist/{focus-CAWi_I-0.mjs → focus-XxVWOwbs.mjs} +3 -3
- package/dist/{focus-K6dOifoZ.d.mts → focus-eObxGOtP.d.mts} +2 -2
- package/dist/{focus-guards-Bt0C-0qS.d.mts → focus-guards-BZa7vm6O.d.mts} +2 -2
- package/dist/{focus-guards-DhMPQAT8.mjs → focus-guards-DSxiemx7.mjs} +4 -4
- package/dist/focus-guards.d.mts +1 -1
- package/dist/focus-guards.mjs +1 -1
- package/dist/{focus-scope-CavhKWx0.d.mts → focus-scope-CsnioDR4.d.mts} +3 -3
- package/dist/{focus-scope-dom-DBwNEWxG.mjs → focus-scope-dom-L_EC5GsX.mjs} +2 -2
- package/dist/{focus-scope-D9U1aj67.mjs → focus-scope-mEg8UoeE.mjs} +5 -5
- package/dist/focus-scope.d.mts +1 -1
- package/dist/focus-scope.mjs +1 -1
- package/dist/focus.d.mts +1 -1
- package/dist/focus.mjs +1 -1
- package/dist/form-1V2V30Sv.d.mts +20 -0
- package/dist/form-runtime-CcMDY0Iq.mjs +166 -0
- package/dist/form-types-DXwZRLcs.d.mts +183 -0
- package/dist/form.d.mts +3 -0
- package/dist/form.mjs +2 -0
- package/dist/fullscreen-button-NTbC4R0W.mjs +276 -0
- package/dist/fullscreen-button.d.mts +2 -0
- package/dist/fullscreen-button.mjs +2 -0
- package/dist/grid-BSM9h2dL.d.mts +154 -0
- package/dist/grid-DeC4Wn7Y.mjs +157 -0
- package/dist/grid.d.mts +2 -0
- package/dist/grid.mjs +2 -0
- package/dist/heading-DToVOKV3.mjs +86 -0
- package/dist/heading.d.mts +2 -0
- package/dist/heading.mjs +2 -0
- package/dist/history-BDgNOjcV.mjs +304 -0
- package/dist/history-BkcOSOWb.d.mts +157 -0
- package/dist/history.d.mts +2 -0
- package/dist/history.mjs +2 -0
- package/dist/{hover-BXwwbSaO.d.mts → hover-ZiPRiZkb.d.mts} +2 -2
- package/dist/hover.d.mts +1 -1
- package/dist/hover.mjs +1 -1
- package/dist/icon-DhTTndMu.mjs +233 -0
- package/dist/icon-button-BuXquME1.mjs +188 -0
- package/dist/icon-button.d.mts +2 -0
- package/dist/icon-button.mjs +2 -0
- package/dist/icon.d.mts +2 -0
- package/dist/icon.mjs +2 -0
- package/dist/id-BYG8aXPF.mjs +47 -0
- package/dist/id-Ba8FHjAo.d.mts +34 -0
- package/dist/id.d.mts +2 -1
- package/dist/id.mjs +3 -2
- package/dist/index.d.mts +74 -24
- package/dist/index.mjs +113 -21
- package/dist/{inert-outside-tuHRmaqJ.d.mts → inert-outside-B6KdwAHY.d.mts} +2 -2
- package/dist/{inert-outside-CyqtoKQ4.mjs → inert-outside-DOufBTyy.mjs} +4 -4
- package/dist/inert-outside.d.mts +1 -1
- package/dist/inert-outside.mjs +1 -1
- package/dist/input-Blyx59CR.mjs +256 -0
- package/dist/input-C0fgeRnS.d.mts +159 -0
- package/dist/input.d.mts +2 -0
- package/dist/input.mjs +2 -0
- package/dist/{interaction-modality-DOZK0BpZ.mjs → interaction-modality-BHnjtU4S.mjs} +3 -3
- package/dist/{interaction-modality-jgHKjPFB.d.mts → interaction-modality-BTiZ7j98.d.mts} +2 -2
- package/dist/interaction-modality.d.mts +1 -1
- package/dist/interaction-modality.mjs +1 -1
- package/dist/kbd-sJdXIdIm.mjs +66 -0
- package/dist/kbd.d.mts +2 -0
- package/dist/kbd.mjs +2 -0
- package/dist/link-DDaCjrI5.mjs +154 -0
- package/dist/link-MbRDN6wJ.d.mts +94 -0
- package/dist/link.d.mts +2 -0
- package/dist/link.mjs +2 -0
- package/dist/list-DjyCLVfG.mjs +66 -0
- package/dist/list.d.mts +2 -0
- package/dist/list.mjs +2 -0
- package/dist/listbox-IaqaoiRn.mjs +549 -0
- package/dist/listbox.d.mts +2 -0
- package/dist/listbox.mjs +2 -0
- package/dist/live-region-DYSpwCTk.mjs +48 -0
- package/dist/live-region-G1iobPK5.d.mts +67 -0
- package/dist/live-region-runtime-DVUch8Lu.mjs +62 -0
- package/dist/live-region.d.mts +2 -0
- package/dist/live-region.mjs +3 -0
- package/dist/locale-DzWqhJZs.mjs +206 -0
- package/dist/locale.d.mts +2 -0
- package/dist/locale.mjs +2 -0
- package/dist/{long-press-cll6z2K9.d.mts → long-press-DyYxp191.d.mts} +3 -3
- package/dist/{long-press-Dsul69gk.mjs → long-press-yJk5zK0j.mjs} +4 -4
- package/dist/long-press.d.mts +1 -1
- package/dist/long-press.mjs +1 -1
- package/dist/measure-4I0YOAXD.d.mts +97 -0
- package/dist/measure-runtime-C4qYJp3_.mjs +170 -0
- package/dist/measure.d.mts +2 -0
- package/dist/measure.mjs +2 -0
- package/dist/media-pdf.d.mts +1 -1
- package/dist/media-pdf.mjs +1 -1
- package/dist/media-source.d.mts +1 -1
- package/dist/media-source.mjs +1 -1
- package/dist/media.d.mts +1 -1
- package/dist/media.mjs +1 -1
- package/dist/meter-B3m17_8g.d.mts +174 -0
- package/dist/meter-BwOXVWH8.mjs +243 -0
- package/dist/meter.d.mts +2 -0
- package/dist/meter.mjs +2 -0
- package/dist/motion-OdERKfZR.mjs +174 -0
- package/dist/motion-iUSBdWaI.d.mts +98 -0
- package/dist/motion.d.mts +2 -0
- package/dist/motion.mjs +2 -0
- package/dist/{move-BOmXDYbh.d.mts → move-BJGaV7Y9.d.mts} +2 -2
- package/dist/move-internal-BM_7g70h.mjs +172 -0
- package/dist/move.d.mts +1 -1
- package/dist/move.mjs +216 -1
- package/dist/native-select-H9qvaqQH.mjs +309 -0
- package/dist/native-select.d.mts +2 -0
- package/dist/native-select.mjs +2 -0
- package/dist/pagination-Bs4SBSE4.mjs +791 -0
- package/dist/pagination.d.mts +2 -0
- package/dist/pagination.mjs +2 -0
- package/dist/{pdf-source-zu1LkCeE.mjs → pdf-source-B5JSDKkQ.mjs} +1 -1
- package/dist/{pdf-source-BYFK2Pks.d.mts → pdf-source-adS6ZSmR.d.mts} +1 -1
- package/dist/pointer-grace-CAFcO4om.d.mts +57 -0
- package/dist/pointer-grace-DI0G3oRJ.mjs +162 -0
- package/dist/pointer-grace.d.mts +2 -0
- package/dist/pointer-grace.mjs +2 -0
- package/dist/popover-DeENBKXE.mjs +714 -0
- package/dist/popover.d.mts +2 -0
- package/dist/popover.mjs +2 -0
- package/dist/portal-DeHaLxGL.mjs +114 -0
- package/dist/portal-DhWXejr1.d.mts +71 -0
- package/dist/portal.d.mts +2 -0
- package/dist/portal.mjs +2 -0
- package/dist/positioner-BYJVA3Uy.d.mts +477 -0
- package/dist/positioner-BYmQk86M.mjs +38 -0
- package/dist/positioner-DaPo2YxM.mjs +708 -0
- package/dist/positioner.d.mts +2 -0
- package/dist/positioner.mjs +3 -0
- package/dist/presence-Bhv1qtvn.d.mts +57 -0
- package/dist/presence-CTG1EV3w.mjs +62 -0
- package/dist/presence-runtime-CYwCafSh.mjs +105 -0
- package/dist/presence-types-CRB4HbML.d.mts +45 -0
- package/dist/presence.d.mts +3 -0
- package/dist/presence.mjs +3 -0
- package/dist/{press-N_mE3Mgx.mjs → press-BjLm6bKg.mjs} +6 -6
- package/dist/press-R0_juZq2.d.mts +14 -0
- package/dist/{press-event-Cd2OPpmw.mjs → press-event-xlWYF9py.mjs} +1 -1
- package/dist/{press-types-CNqStzJf.d.mts → press-types-DfTNpqby.d.mts} +1 -1
- package/dist/press.d.mts +2 -13
- package/dist/press.mjs +1 -1
- package/dist/{primitive-C8jW7DLd.d.mts → primitive-BE2mdUcw.d.mts} +2 -2
- package/dist/{primitive-BX31dogp.mjs → primitive-beb2EEOc.mjs} +5 -5
- package/dist/primitive.d.mts +1 -1
- package/dist/primitive.mjs +2 -2
- package/dist/print-button-FqD5HqTV.mjs +206 -0
- package/dist/print-button.d.mts +2 -0
- package/dist/print-button.mjs +2 -0
- package/dist/progress--vbV2wTx.mjs +145 -0
- package/dist/progress-C4PlKwWq.d.mts +128 -0
- package/dist/progress-bar-BqS94auR.mjs +301 -0
- package/dist/progress-bar.d.mts +2 -0
- package/dist/progress-bar.mjs +2 -0
- package/dist/progress.d.mts +2 -0
- package/dist/progress.mjs +2 -0
- package/dist/radio-group-DbTmWcxl.mjs +317 -0
- package/dist/radio-group.d.mts +2 -0
- package/dist/radio-group.mjs +2 -0
- package/dist/rating-BjKLGPP6.mjs +569 -0
- package/dist/rating-souDdL9t.d.mts +273 -0
- package/dist/rating.d.mts +2 -0
- package/dist/rating.mjs +2 -0
- package/dist/scroll-area-BRSwoi9w.mjs +338 -0
- package/dist/scroll-area.d.mts +2 -0
- package/dist/scroll-area.mjs +2 -0
- package/dist/{scroll-lock-Ckbmm0-J.mjs → scroll-lock-BcmK0baN.mjs} +4 -4
- package/dist/{scroll-lock-BgVtX4wT.d.mts → scroll-lock-OfSQnfi0.d.mts} +2 -2
- package/dist/scroll-lock.d.mts +1 -1
- package/dist/scroll-lock.mjs +1 -1
- package/dist/search-field-70Kr2616.mjs +319 -0
- package/dist/search-field-Biw9vApG.d.mts +158 -0
- package/dist/search-field.d.mts +2 -0
- package/dist/search-field.mjs +2 -0
- package/dist/separator-CnNDqbdR.d.mts +59 -0
- package/dist/separator-DDj3tEAz.mjs +66 -0
- package/dist/separator.d.mts +2 -0
- package/dist/separator.mjs +2 -0
- package/dist/share-button-DfvUDFC-.mjs +243 -0
- package/dist/share-button.d.mts +2 -0
- package/dist/share-button.mjs +2 -0
- package/dist/shortcut-CvA_o0_F.mjs +631 -0
- package/dist/shortcut-DAZJ9LEd.d.mts +231 -0
- package/dist/shortcut.d.mts +2 -0
- package/dist/shortcut.mjs +2 -0
- package/dist/skeleton-BYXXcwTH.mjs +101 -0
- package/dist/skeleton-CQW-Tsnt.d.mts +99 -0
- package/dist/skeleton.d.mts +2 -0
- package/dist/skeleton.mjs +2 -0
- package/dist/skip-link-BUp9HXXt.mjs +164 -0
- package/dist/skip-link-DHDrtnP2.d.mts +98 -0
- package/dist/skip-link.d.mts +2 -0
- package/dist/skip-link.mjs +2 -0
- package/dist/slider-BiZSZLDp.mjs +475 -0
- package/dist/slider-CYBbxeNy.d.mts +246 -0
- package/dist/slider.d.mts +2 -0
- package/dist/slider.mjs +2 -0
- package/dist/sortable-BntjgYra.mjs +499 -0
- package/dist/sortable-DQl92bwo.d.mts +206 -0
- package/dist/sortable.d.mts +2 -0
- package/dist/sortable.mjs +2 -0
- package/dist/spacer-Bc0dInvi.mjs +117 -0
- package/dist/spacer-DFstG4G-.d.mts +105 -0
- package/dist/spacer.d.mts +2 -0
- package/dist/spacer.mjs +2 -0
- package/dist/{spatial-navigation-CHj9mDZH.d.mts → spatial-navigation-BPVJGSiJ.d.mts} +3 -3
- package/dist/{spatial-navigation-D6-UDavU.mjs → spatial-navigation-DwcUYMyc.mjs} +2 -2
- package/dist/spatial-navigation.d.mts +1 -1
- package/dist/spatial-navigation.mjs +1 -1
- package/dist/spinner-JnRs8fp-.d.mts +155 -0
- package/dist/spinner-bizL-oOg.mjs +200 -0
- package/dist/spinner.d.mts +2 -0
- package/dist/spinner.mjs +2 -0
- package/dist/stack-C7DOIxo-.mjs +137 -0
- package/dist/stack-CPtBckZB.d.mts +127 -0
- package/dist/stack.d.mts +2 -0
- package/dist/stack.mjs +2 -0
- package/dist/status-light-BGWgQRRf.mjs +125 -0
- package/dist/status-light.d.mts +2 -0
- package/dist/status-light.mjs +2 -0
- package/dist/stepper-CwX6BZaN.mjs +912 -0
- package/dist/stepper.d.mts +2 -0
- package/dist/stepper.mjs +2 -0
- package/dist/style.css +1 -1
- package/dist/surface-C2fnxL3g.mjs +102 -0
- package/dist/surface.d.mts +2 -0
- package/dist/surface.mjs +2 -0
- package/dist/switch-Ck5YmfXb.mjs +197 -0
- package/dist/switch.d.mts +2 -0
- package/dist/switch.mjs +2 -0
- package/dist/table-BxU7htxc.mjs +349 -0
- package/dist/table-Ce3yWwlH.d.mts +415 -0
- package/dist/table.d.mts +2 -0
- package/dist/table.mjs +2 -0
- package/dist/tabs-DSXIomI_.mjs +595 -0
- package/dist/tabs.d.mts +2 -0
- package/dist/tabs.mjs +2 -0
- package/dist/text-BVeNKPiv.mjs +76 -0
- package/dist/text.d.mts +2 -0
- package/dist/text.mjs +2 -0
- package/dist/textarea-4eIDNcvv.d.mts +175 -0
- package/dist/textarea-BZimEPBR.mjs +279 -0
- package/dist/textarea.d.mts +2 -0
- package/dist/textarea.mjs +2 -0
- package/dist/theme-C8Crmb8V.mjs +139 -0
- package/dist/theme-CNK06Pja.d.mts +38 -0
- package/dist/theme-constants-DAwnxG-P.mjs +29 -0
- package/dist/theme-preset-atelier.css +1 -0
- package/dist/theme-preset-headless.css +1 -0
- package/dist/theme-preset-high-contrast.css +1 -0
- package/dist/theme-preset-midnight.css +1 -0
- package/dist/theme-preset-paper.css +1 -0
- package/dist/theme-preset-play.css +1 -0
- package/dist/theme-preset-signal.css +1 -0
- package/dist/theme-scope.d.mts +25 -0
- package/dist/theme-scope.mjs +89 -0
- package/dist/theme-types-CkIa4Sa3.d.mts +71 -0
- package/dist/theme.css +1 -0
- package/dist/theme.d.mts +3 -0
- package/dist/theme.mjs +3 -0
- package/dist/toggle-CBTXzwze.mjs +141 -0
- package/dist/toggle-group-DO7eGEs3.d.mts +147 -0
- package/dist/toggle-group-DybU9N7k.mjs +523 -0
- package/dist/toggle-group.d.mts +2 -0
- package/dist/toggle-group.mjs +2 -0
- package/dist/toggle.d.mts +2 -0
- package/dist/toggle.mjs +2 -0
- package/dist/toolbar-CIU1bor0.d.mts +259 -0
- package/dist/toolbar-CXE8YCX-.mjs +425 -0
- package/dist/toolbar.d.mts +2 -0
- package/dist/toolbar.mjs +2 -0
- package/dist/tooltip-Cgii5xMx.mjs +485 -0
- package/dist/tooltip.d.mts +2 -0
- package/dist/tooltip.mjs +2 -0
- package/dist/transition-BmgFyzA6.mjs +168 -0
- package/dist/transition-BtIWNEFU.d.mts +82 -0
- package/dist/transition.d.mts +2 -0
- package/dist/transition.mjs +2 -0
- package/dist/{typeahead-B7KDxE_u.mjs → typeahead-DZSBI5m5.mjs} +2 -2
- package/dist/{typeahead-BbgUB2Bj.d.mts → typeahead-Dl6w5PAN.d.mts} +3 -3
- package/dist/typeahead.d.mts +1 -1
- package/dist/typeahead.mjs +1 -1
- package/dist/virtualizer-BlxKjT3W.mjs +793 -0
- package/dist/virtualizer-D9qfT4wS.d.mts +349 -0
- package/dist/virtualizer.d.mts +2 -0
- package/dist/virtualizer.mjs +2 -0
- package/dist/{visually-hidden-BOqfqBFt.d.mts → visually-hidden-CUr9BX0K.d.mts} +1 -1
- package/dist/{visually-hidden-BwDOx5yf.mjs → visually-hidden-SDjRJYRK.mjs} +5 -5
- package/dist/visually-hidden.d.mts +1 -1
- package/dist/visually-hidden.mjs +2 -2
- package/package.json +426 -7
- package/dist/checkbox-DP3_ko7D.d.mts +0 -61
- package/dist/move-BVvMHzxr.mjs +0 -386
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
import { c as compareDocumentOrder, d as readBoolean, f as readLabel, l as indicatorFor, m as validateKey, p as validateCallbacks, t as createDragAndDrop, u as measureRect } from "./drag-and-drop-BjYgWGcG.mjs";
|
|
2
|
+
import { r as eventElement } from "./press-event-xlWYF9py.mjs";
|
|
3
|
+
import { getCurrentScope, onScopeDispose, shallowReadonly, shallowRef, toValue } from "vue";
|
|
4
|
+
//#region src/families/interaction/sortable/sortable-internal.ts
|
|
5
|
+
const invalidOptionDiagnostic = "VIZE_UI_SORTABLE_OPTION";
|
|
6
|
+
const orientations = new Set([
|
|
7
|
+
"grid",
|
|
8
|
+
"horizontal",
|
|
9
|
+
"vertical"
|
|
10
|
+
]);
|
|
11
|
+
const directions = new Set(["ltr", "rtl"]);
|
|
12
|
+
/** Resolve the closed orientation union without accepting mistyped JavaScript. */
|
|
13
|
+
function readOrientation(value) {
|
|
14
|
+
const resolved = toValue(value) ?? "vertical";
|
|
15
|
+
if (!orientations.has(resolved)) throw new TypeError(`${invalidOptionDiagnostic}: orientation must resolve to grid, horizontal, or vertical`);
|
|
16
|
+
return resolved;
|
|
17
|
+
}
|
|
18
|
+
/** Resolve the closed direction union without accepting mistyped JavaScript. */
|
|
19
|
+
function readDirection(value) {
|
|
20
|
+
const resolved = toValue(value) ?? "ltr";
|
|
21
|
+
if (!directions.has(resolved)) throw new TypeError(`${invalidOptionDiagnostic}: direction must resolve to ltr or rtl`);
|
|
22
|
+
return resolved;
|
|
23
|
+
}
|
|
24
|
+
/** Resolve a positive integer column count for grid arrow-key geometry. */
|
|
25
|
+
function readColumns(value) {
|
|
26
|
+
const resolved = toValue(value) ?? 1;
|
|
27
|
+
if (!Number.isInteger(resolved) || resolved < 1) throw new TypeError(`${invalidOptionDiagnostic}: columns must resolve to an integer >= 1`);
|
|
28
|
+
return resolved;
|
|
29
|
+
}
|
|
30
|
+
/** Drop edges one item target resolves for an orientation. */
|
|
31
|
+
function edgesFor(orientation, nesting) {
|
|
32
|
+
const directional = orientation === "vertical" ? ["top", "bottom"] : ["left", "right"];
|
|
33
|
+
return nesting ? [...directional, "inside"] : directional;
|
|
34
|
+
}
|
|
35
|
+
/** Map a logical position back onto the physical edge for an orientation. */
|
|
36
|
+
function edgeForPosition(position, orientation, direction) {
|
|
37
|
+
if (position === "inside") return "inside";
|
|
38
|
+
if (orientation === "vertical") return position === "before" ? "top" : "bottom";
|
|
39
|
+
return position === "before" ? direction === "rtl" ? "right" : "left" : direction === "rtl" ? "left" : "right";
|
|
40
|
+
}
|
|
41
|
+
/** Build a frozen lifecycle snapshot for sortable callbacks. */
|
|
42
|
+
function createSortableEvent(type, pointerType, key, fromIndex, toIndex, overKey, position, originalEvent) {
|
|
43
|
+
return Object.freeze({
|
|
44
|
+
type,
|
|
45
|
+
pointerType,
|
|
46
|
+
key,
|
|
47
|
+
fromIndex,
|
|
48
|
+
toIndex,
|
|
49
|
+
overKey,
|
|
50
|
+
position,
|
|
51
|
+
originalEvent
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/** Map a physical drop edge onto the logical position for an orientation. */
|
|
55
|
+
function positionForEdge(edge, orientation, direction) {
|
|
56
|
+
if (edge === "inside") return "inside";
|
|
57
|
+
if (orientation === "vertical") return edge === "top" ? "before" : "after";
|
|
58
|
+
return edge === (direction === "rtl" ? "right" : "left") ? "before" : "after";
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Compute the insertion index for moving `fromIndex` relative to `overIndex`.
|
|
62
|
+
*
|
|
63
|
+
* `"inside"` moves report the receiving item's index unchanged.
|
|
64
|
+
*/
|
|
65
|
+
function computeToIndex(fromIndex, overIndex, position) {
|
|
66
|
+
if (position === "inside" || fromIndex === overIndex) return overIndex;
|
|
67
|
+
if (fromIndex < overIndex) return position === "before" ? overIndex - 1 : overIndex;
|
|
68
|
+
return position === "before" ? overIndex : overIndex + 1;
|
|
69
|
+
}
|
|
70
|
+
/** Signed index step for one arrow key, or `null` when the key is not owned. */
|
|
71
|
+
function keyboardDelta(key, orientation, direction, columns) {
|
|
72
|
+
const forward = direction === "rtl" ? "ArrowLeft" : "ArrowRight";
|
|
73
|
+
const backward = direction === "rtl" ? "ArrowRight" : "ArrowLeft";
|
|
74
|
+
if (orientation === "vertical") {
|
|
75
|
+
if (key === "ArrowUp") return -1;
|
|
76
|
+
if (key === "ArrowDown") return 1;
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
if (orientation === "grid") {
|
|
80
|
+
if (key === "ArrowUp") return -columns;
|
|
81
|
+
if (key === "ArrowDown") return columns;
|
|
82
|
+
}
|
|
83
|
+
if (key === backward) return -1;
|
|
84
|
+
if (key === forward) return 1;
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/** Dispatch one lifecycle snapshot to the matching consumer callback. */
|
|
88
|
+
function dispatchSortableEvent(options, event) {
|
|
89
|
+
if (event.type === "sortstart") options.onSortStart?.(event);
|
|
90
|
+
else if (event.type === "sortpreview") options.onSortPreview?.(event);
|
|
91
|
+
else if (event.type === "sortcommit") options.onSortCommit?.(event);
|
|
92
|
+
else options.onSortCancel?.(event);
|
|
93
|
+
}
|
|
94
|
+
/** Project a drag-and-drop context onto sortable indexes and positions. */
|
|
95
|
+
function projectDragContext(keys, orientation, direction, dragContext) {
|
|
96
|
+
const currentIndex = Math.max(keys.indexOf(dragContext.sourceKey), 0);
|
|
97
|
+
const overIndex = dragContext.targetKey === null ? -1 : keys.indexOf(dragContext.targetKey);
|
|
98
|
+
const position = dragContext.edge === null ? null : positionForEdge(dragContext.edge, orientation, direction);
|
|
99
|
+
return {
|
|
100
|
+
currentIndex,
|
|
101
|
+
overIndex,
|
|
102
|
+
toIndex: overIndex >= 0 && position !== null ? computeToIndex(currentIndex, overIndex, position) : currentIndex,
|
|
103
|
+
position
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** Build the sortable announcement context for one drag announcement phase. */
|
|
107
|
+
function sortableContextFor(phase, dragContext, projection, count, originIndex) {
|
|
108
|
+
const { currentIndex, toIndex, position } = projection;
|
|
109
|
+
const settled = phase === "cancel" || phase === "drop";
|
|
110
|
+
return {
|
|
111
|
+
pointerType: dragContext.pointerType,
|
|
112
|
+
key: dragContext.sourceKey,
|
|
113
|
+
label: dragContext.sourceLabel,
|
|
114
|
+
fromIndex: settled ? originIndex ?? currentIndex : currentIndex,
|
|
115
|
+
toIndex: phase === "cancel" ? originIndex ?? currentIndex : toIndex,
|
|
116
|
+
count,
|
|
117
|
+
overKey: phase === "cancel" ? null : dragContext.targetKey,
|
|
118
|
+
overLabel: phase === "cancel" ? null : dragContext.targetLabel,
|
|
119
|
+
position: phase === "cancel" ? null : position
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function human(index) {
|
|
123
|
+
return index + 1;
|
|
124
|
+
}
|
|
125
|
+
/** Built-in English announcement builders; consumers override to localize. */
|
|
126
|
+
const defaultSortableAnnouncements = Object.freeze({
|
|
127
|
+
grab: (context) => {
|
|
128
|
+
const start = `Picked up ${context.label}, position ${human(context.fromIndex)} of ${context.count}.`;
|
|
129
|
+
return context.pointerType === "keyboard" ? `${start} Use the arrow keys to move, Enter to drop, Escape to cancel.` : start;
|
|
130
|
+
},
|
|
131
|
+
move: (context) => context.position === "inside" ? `${context.label} placed inside ${context.overLabel ?? "the item"}.` : `${context.label} moved to position ${human(context.toIndex)} of ${context.count}.`,
|
|
132
|
+
drop: (context) => context.position === "inside" ? `${context.label} dropped inside ${context.overLabel ?? "the item"}.` : `${context.label} dropped, final position ${human(context.toIndex)} of ${context.count}.`,
|
|
133
|
+
cancel: (context) => `Sorting canceled. ${context.label} returned to position ${human(context.toIndex)} of ${context.count}.`
|
|
134
|
+
});
|
|
135
|
+
//#endregion
|
|
136
|
+
//#region src/families/interaction/sortable/sortable-keyboard.ts
|
|
137
|
+
function context(host, session, fromIndex, toIndex) {
|
|
138
|
+
return {
|
|
139
|
+
pointerType: session.pointerType,
|
|
140
|
+
key: session.key,
|
|
141
|
+
label: host.labelOf(session.key),
|
|
142
|
+
fromIndex,
|
|
143
|
+
toIndex,
|
|
144
|
+
count: host.orderedKeys().length,
|
|
145
|
+
overKey: session.overKey,
|
|
146
|
+
overLabel: session.overKey === null ? null : host.labelOf(session.overKey),
|
|
147
|
+
position: session.position
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
function setIndicator(host, referenceKey, position, toIndex) {
|
|
151
|
+
const shape = indicatorFor(referenceKey, edgeForPosition(position, readOrientation(host.options.orientation), readDirection(host.options.direction)), host.measureItem(referenceKey));
|
|
152
|
+
host.indicator.value = {
|
|
153
|
+
key: referenceKey,
|
|
154
|
+
position,
|
|
155
|
+
toIndex,
|
|
156
|
+
rect: shape.rect,
|
|
157
|
+
line: shape.line
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
function moveTo(host, event, requested) {
|
|
161
|
+
const session = host.getSession();
|
|
162
|
+
if (!session) return;
|
|
163
|
+
const keys = host.orderedKeys();
|
|
164
|
+
const next = Math.min(Math.max(requested, 0), keys.length - 1);
|
|
165
|
+
const changed = next !== session.toIndex || session.position !== null;
|
|
166
|
+
session.toIndex = next;
|
|
167
|
+
session.overKey = null;
|
|
168
|
+
session.position = null;
|
|
169
|
+
const currentIndex = Math.max(keys.indexOf(session.key), 0);
|
|
170
|
+
const referenceKey = keys[next];
|
|
171
|
+
if (referenceKey !== void 0) setIndicator(host, referenceKey, next >= currentIndex ? "after" : "before", next);
|
|
172
|
+
if (!changed) return;
|
|
173
|
+
host.emit(createSortableEvent("sortpreview", session.pointerType, session.key, currentIndex, next, null, null, event));
|
|
174
|
+
host.announce(host.announcements.move(context(host, session, currentIndex, next)));
|
|
175
|
+
}
|
|
176
|
+
function nest(host, event) {
|
|
177
|
+
const session = host.getSession();
|
|
178
|
+
if (!session || session.position === "inside") return;
|
|
179
|
+
const keys = host.orderedKeys();
|
|
180
|
+
let referenceIndex = session.toIndex - 1;
|
|
181
|
+
while (referenceIndex >= 0 && keys[referenceIndex] === session.key) referenceIndex -= 1;
|
|
182
|
+
const referenceKey = referenceIndex >= 0 ? keys[referenceIndex] : void 0;
|
|
183
|
+
if (referenceKey === void 0) return;
|
|
184
|
+
session.overKey = referenceKey;
|
|
185
|
+
session.position = "inside";
|
|
186
|
+
setIndicator(host, referenceKey, "inside", referenceIndex);
|
|
187
|
+
const currentIndex = Math.max(keys.indexOf(session.key), 0);
|
|
188
|
+
host.emit(createSortableEvent("sortpreview", session.pointerType, session.key, currentIndex, referenceIndex, referenceKey, "inside", event));
|
|
189
|
+
host.announce(host.announcements.move(context(host, session, currentIndex, referenceIndex)));
|
|
190
|
+
}
|
|
191
|
+
function settle(host, event, canceled) {
|
|
192
|
+
const session = host.getSession();
|
|
193
|
+
if (!session) return;
|
|
194
|
+
const keys = host.orderedKeys();
|
|
195
|
+
const currentIndex = Math.max(keys.indexOf(session.key), 0);
|
|
196
|
+
const toIndex = session.position === "inside" && session.overKey !== null ? Math.max(keys.indexOf(session.overKey), 0) : session.toIndex;
|
|
197
|
+
host.clearSession();
|
|
198
|
+
if (canceled) {
|
|
199
|
+
host.emit(createSortableEvent("sortcancel", session.pointerType, session.key, currentIndex, session.originIndex, null, null, event));
|
|
200
|
+
const restored = {
|
|
201
|
+
...session,
|
|
202
|
+
toIndex: session.originIndex,
|
|
203
|
+
overKey: null,
|
|
204
|
+
position: null
|
|
205
|
+
};
|
|
206
|
+
host.announce(host.announcements.cancel(context(host, restored, currentIndex, session.originIndex)));
|
|
207
|
+
} else {
|
|
208
|
+
host.emit(createSortableEvent("sortcommit", session.pointerType, session.key, session.originIndex, toIndex, session.overKey, session.position, event));
|
|
209
|
+
host.announce(host.announcements.drop(context(host, session, session.originIndex, toIndex)));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function grab(host, event, key) {
|
|
213
|
+
if (event.altKey || event.ctrlKey || event.metaKey || event.isComposing) return;
|
|
214
|
+
if (readBoolean(host.options.isDisabled, "isDisabled") || host.isItemDisabled(key)) return;
|
|
215
|
+
const target = eventElement(event);
|
|
216
|
+
if (!target || event.target !== target) return;
|
|
217
|
+
const index = host.orderedKeys().indexOf(key);
|
|
218
|
+
if (index < 0) return;
|
|
219
|
+
event.preventDefault();
|
|
220
|
+
event.stopPropagation();
|
|
221
|
+
const session = {
|
|
222
|
+
key,
|
|
223
|
+
pointerType: "keyboard",
|
|
224
|
+
originIndex: index,
|
|
225
|
+
toIndex: index,
|
|
226
|
+
overKey: null,
|
|
227
|
+
position: null
|
|
228
|
+
};
|
|
229
|
+
host.startSession(session);
|
|
230
|
+
host.emit(createSortableEvent("sortstart", "keyboard", key, index, index, null, null, event));
|
|
231
|
+
host.announce(host.announcements.grab(context(host, session, index, index)));
|
|
232
|
+
}
|
|
233
|
+
/** Handle one keydown from an item: grab, move, nest, drop, or cancel. */
|
|
234
|
+
function handleSortableKeydown(host, event, key) {
|
|
235
|
+
const session = host.getSession();
|
|
236
|
+
if (session?.pointerType === "keyboard" && session.key === key) {
|
|
237
|
+
if (readBoolean(host.options.isDisabled, "isDisabled")) {
|
|
238
|
+
settle(host, event, true);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const orientation = readOrientation(host.options.orientation);
|
|
242
|
+
const nesting = readBoolean(host.options.nesting, "nesting");
|
|
243
|
+
switch (event.key) {
|
|
244
|
+
case "Enter":
|
|
245
|
+
case " ":
|
|
246
|
+
settle(host, event, false);
|
|
247
|
+
break;
|
|
248
|
+
case "Escape":
|
|
249
|
+
settle(host, event, true);
|
|
250
|
+
break;
|
|
251
|
+
case "Home":
|
|
252
|
+
moveTo(host, event, 0);
|
|
253
|
+
break;
|
|
254
|
+
case "End":
|
|
255
|
+
moveTo(host, event, host.orderedKeys().length - 1);
|
|
256
|
+
break;
|
|
257
|
+
case "Tab":
|
|
258
|
+
settle(host, event, true);
|
|
259
|
+
return;
|
|
260
|
+
default: {
|
|
261
|
+
if (nesting && orientation === "vertical" && event.key === "ArrowRight") {
|
|
262
|
+
nest(host, event);
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
if (nesting && orientation === "vertical" && event.key === "ArrowLeft") {
|
|
266
|
+
moveTo(host, event, session.toIndex);
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
const delta = keyboardDelta(event.key, orientation, readDirection(host.options.direction), readColumns(host.options.columns));
|
|
270
|
+
if (delta === null) return;
|
|
271
|
+
moveTo(host, event, session.toIndex + delta);
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
event.preventDefault();
|
|
276
|
+
event.stopPropagation();
|
|
277
|
+
} else if (!session && (event.key === "Enter" || event.key === " ")) grab(host, event, key);
|
|
278
|
+
}
|
|
279
|
+
/** Cancel an owned keyboard sort from focus loss or programmatic teardown. */
|
|
280
|
+
function cancelSortableKeyboard(host, event) {
|
|
281
|
+
if (host.getSession()?.pointerType !== "keyboard") return false;
|
|
282
|
+
settle(host, event, true);
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
//#endregion
|
|
286
|
+
//#region src/families/interaction/sortable/sortable.ts
|
|
287
|
+
const disposedDiagnostic = "VIZE_UI_SORTABLE_DISPOSED";
|
|
288
|
+
const setupDiagnostic = "VIZE_UI_SORTABLE_SETUP";
|
|
289
|
+
/** Create an SSR-safe sortable coordinator for lists, grids, and trees. */
|
|
290
|
+
function createSortable(options = {}) {
|
|
291
|
+
validateCallbacks(options, [
|
|
292
|
+
"onSortStart",
|
|
293
|
+
"onSortPreview",
|
|
294
|
+
"onSortCommit",
|
|
295
|
+
"onSortCancel"
|
|
296
|
+
]);
|
|
297
|
+
if (typeof options.orientation !== "function") readOrientation(options.orientation);
|
|
298
|
+
if (typeof options.direction !== "function") readDirection(options.direction);
|
|
299
|
+
if (typeof options.columns !== "function") readColumns(options.columns);
|
|
300
|
+
const announcements = {
|
|
301
|
+
...defaultSortableAnnouncements,
|
|
302
|
+
...options.announcements
|
|
303
|
+
};
|
|
304
|
+
const items = /* @__PURE__ */ new Map();
|
|
305
|
+
const sorting = shallowRef(false);
|
|
306
|
+
const activeKey = shallowRef(null);
|
|
307
|
+
const indicator = shallowRef(null);
|
|
308
|
+
let session = null;
|
|
309
|
+
let disposed = false;
|
|
310
|
+
const orderedKeys = () => {
|
|
311
|
+
const list = [...items.entries()].map(([key, record]) => ({
|
|
312
|
+
key,
|
|
313
|
+
element: toValue(record.options.element) ?? null
|
|
314
|
+
}));
|
|
315
|
+
list.sort((left, right) => left.element && right.element ? compareDocumentOrder(left.element, right.element) : 0);
|
|
316
|
+
return list.map((entry) => entry.key);
|
|
317
|
+
};
|
|
318
|
+
const labelOf = (key) => readLabel(items.get(key)?.options.label, key);
|
|
319
|
+
const emit = (event) => dispatchSortableEvent(options, event);
|
|
320
|
+
const projection = (dragContext) => projectDragContext(orderedKeys(), readOrientation(options.orientation), readDirection(options.direction), dragContext);
|
|
321
|
+
const sortableContext = (phase, dragContext) => sortableContextFor(phase, dragContext, projection(dragContext), orderedKeys().length, session?.originIndex ?? null);
|
|
322
|
+
const dnd = createDragAndDrop({
|
|
323
|
+
isDisabled: options.isDisabled,
|
|
324
|
+
startDistance: options.startDistance,
|
|
325
|
+
announcements: {
|
|
326
|
+
grab: (context) => announcements.grab(sortableContext("grab", context)),
|
|
327
|
+
move: (context) => announcements.move(sortableContext("move", context)),
|
|
328
|
+
drop: (context) => announcements.drop(sortableContext("drop", context)),
|
|
329
|
+
cancel: (context) => announcements.cancel(sortableContext("cancel", context))
|
|
330
|
+
},
|
|
331
|
+
onDragStart(event) {
|
|
332
|
+
const index = Math.max(orderedKeys().indexOf(event.sourceKey), 0);
|
|
333
|
+
session = {
|
|
334
|
+
key: event.sourceKey,
|
|
335
|
+
pointerType: event.pointerType,
|
|
336
|
+
originIndex: index,
|
|
337
|
+
toIndex: index,
|
|
338
|
+
overKey: null,
|
|
339
|
+
position: null
|
|
340
|
+
};
|
|
341
|
+
sorting.value = true;
|
|
342
|
+
activeKey.value = event.sourceKey;
|
|
343
|
+
emit(createSortableEvent("sortstart", event.pointerType, event.sourceKey, index, index, null, null, event.originalEvent));
|
|
344
|
+
},
|
|
345
|
+
onDragMove(event) {
|
|
346
|
+
const current = session;
|
|
347
|
+
if (!current) return;
|
|
348
|
+
if (event.targetKey === null || event.edge === null) {
|
|
349
|
+
indicator.value = null;
|
|
350
|
+
current.overKey = null;
|
|
351
|
+
current.position = null;
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
const { currentIndex, overIndex, toIndex, position } = projection(event);
|
|
355
|
+
if (overIndex < 0 || position === null) return;
|
|
356
|
+
if (position !== "inside" && toIndex === currentIndex) {
|
|
357
|
+
indicator.value = null;
|
|
358
|
+
current.overKey = null;
|
|
359
|
+
current.position = null;
|
|
360
|
+
current.toIndex = currentIndex;
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
const changed = current.overKey !== event.targetKey || current.position !== position || current.toIndex !== toIndex;
|
|
364
|
+
current.overKey = event.targetKey;
|
|
365
|
+
current.position = position;
|
|
366
|
+
current.toIndex = toIndex;
|
|
367
|
+
const shape = dnd.indicator.value;
|
|
368
|
+
indicator.value = {
|
|
369
|
+
key: event.targetKey,
|
|
370
|
+
position,
|
|
371
|
+
toIndex,
|
|
372
|
+
rect: shape?.targetKey === event.targetKey ? shape.rect : null,
|
|
373
|
+
line: shape?.targetKey === event.targetKey ? shape.line : null
|
|
374
|
+
};
|
|
375
|
+
if (changed) emit(createSortableEvent("sortpreview", current.pointerType, current.key, currentIndex, toIndex, event.targetKey, position, event.originalEvent));
|
|
376
|
+
},
|
|
377
|
+
onDragEnd(event) {
|
|
378
|
+
const current = session;
|
|
379
|
+
if (!current) return;
|
|
380
|
+
session = null;
|
|
381
|
+
sorting.value = false;
|
|
382
|
+
activeKey.value = null;
|
|
383
|
+
indicator.value = null;
|
|
384
|
+
const keys = orderedKeys();
|
|
385
|
+
const currentIndex = Math.max(keys.indexOf(current.key), 0);
|
|
386
|
+
if (event.isCanceled || event.targetKey === null) {
|
|
387
|
+
emit(createSortableEvent("sortcancel", current.pointerType, current.key, currentIndex, current.originIndex, null, null, event.originalEvent));
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
const { overIndex, toIndex, position } = projection(event);
|
|
391
|
+
const insideIndex = position === "inside" ? Math.max(overIndex, 0) : toIndex;
|
|
392
|
+
emit(createSortableEvent("sortcommit", current.pointerType, current.key, current.originIndex, insideIndex, event.targetKey, position, event.originalEvent));
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
const keyboardHost = {
|
|
396
|
+
options,
|
|
397
|
+
announcements,
|
|
398
|
+
indicator,
|
|
399
|
+
getSession: () => session,
|
|
400
|
+
startSession: (next) => {
|
|
401
|
+
session = next;
|
|
402
|
+
sorting.value = true;
|
|
403
|
+
activeKey.value = next.key;
|
|
404
|
+
},
|
|
405
|
+
clearSession: () => {
|
|
406
|
+
session = null;
|
|
407
|
+
sorting.value = false;
|
|
408
|
+
activeKey.value = null;
|
|
409
|
+
indicator.value = null;
|
|
410
|
+
},
|
|
411
|
+
orderedKeys,
|
|
412
|
+
labelOf,
|
|
413
|
+
measureItem: (key) => {
|
|
414
|
+
const record = items.get(key);
|
|
415
|
+
if (!record) return null;
|
|
416
|
+
return measureRect(toValue(record.options.element) ?? null, record.options.getRect);
|
|
417
|
+
},
|
|
418
|
+
isItemDisabled: (key) => readBoolean(items.get(key)?.options.isDisabled, "isDisabled"),
|
|
419
|
+
announce: (message) => {
|
|
420
|
+
if (message !== null) dnd.announce(message);
|
|
421
|
+
},
|
|
422
|
+
emit
|
|
423
|
+
};
|
|
424
|
+
return Object.freeze({
|
|
425
|
+
isSorting: shallowReadonly(sorting),
|
|
426
|
+
activeKey: shallowReadonly(activeKey),
|
|
427
|
+
indicator: shallowReadonly(indicator),
|
|
428
|
+
registerItem(itemOptions) {
|
|
429
|
+
if (disposed) throw new Error(`${disposedDiagnostic}: the controller has been disposed`);
|
|
430
|
+
const key = validateKey(itemOptions.key, items);
|
|
431
|
+
validateCallbacks(itemOptions, ["getRect"]);
|
|
432
|
+
const source = dnd.registerSource({
|
|
433
|
+
key,
|
|
434
|
+
element: itemOptions.element,
|
|
435
|
+
label: itemOptions.label,
|
|
436
|
+
isDisabled: itemOptions.isDisabled,
|
|
437
|
+
keyboard: false
|
|
438
|
+
});
|
|
439
|
+
const target = dnd.registerTarget({
|
|
440
|
+
key,
|
|
441
|
+
element: itemOptions.element,
|
|
442
|
+
label: itemOptions.label,
|
|
443
|
+
edges: () => edgesFor(readOrientation(options.orientation), readBoolean(options.nesting, "nesting")),
|
|
444
|
+
...itemOptions.getRect ? { getRect: itemOptions.getRect } : {}
|
|
445
|
+
});
|
|
446
|
+
const record = {
|
|
447
|
+
options: itemOptions,
|
|
448
|
+
source,
|
|
449
|
+
target
|
|
450
|
+
};
|
|
451
|
+
items.set(key, record);
|
|
452
|
+
const itemProps = Object.freeze({
|
|
453
|
+
...source.sourceProps,
|
|
454
|
+
onKeydown: (event) => {
|
|
455
|
+
if (!disposed) handleSortableKeydown(keyboardHost, event, key);
|
|
456
|
+
},
|
|
457
|
+
onFocusout: (event) => {
|
|
458
|
+
if (disposed) return;
|
|
459
|
+
if (session?.pointerType === "keyboard" && session.key === key) cancelSortableKeyboard(keyboardHost, event);
|
|
460
|
+
}
|
|
461
|
+
});
|
|
462
|
+
return Object.freeze({
|
|
463
|
+
key,
|
|
464
|
+
isDragging: source.isDragging,
|
|
465
|
+
itemProps,
|
|
466
|
+
dispose: () => {
|
|
467
|
+
if (items.get(key) !== record) return;
|
|
468
|
+
if (session?.pointerType === "keyboard" && session.key === key) cancelSortableKeyboard(keyboardHost, null);
|
|
469
|
+
source.dispose();
|
|
470
|
+
target.dispose();
|
|
471
|
+
items.delete(key);
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
},
|
|
475
|
+
cancel: () => {
|
|
476
|
+
if (disposed) throw new Error(`${disposedDiagnostic}: the controller has been disposed`);
|
|
477
|
+
if (cancelSortableKeyboard(keyboardHost, null)) return true;
|
|
478
|
+
return dnd.cancel();
|
|
479
|
+
},
|
|
480
|
+
dispose: () => {
|
|
481
|
+
if (disposed) return;
|
|
482
|
+
disposed = true;
|
|
483
|
+
session = null;
|
|
484
|
+
sorting.value = false;
|
|
485
|
+
activeKey.value = null;
|
|
486
|
+
indicator.value = null;
|
|
487
|
+
dnd.dispose();
|
|
488
|
+
}
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
/** Create a sortable coordinator disposed with the current Vue effect scope. */
|
|
492
|
+
function useSortable(options = {}) {
|
|
493
|
+
if (!getCurrentScope()) throw new Error(`${setupDiagnostic}: use inside component setup or an active effect scope`);
|
|
494
|
+
const controller = createSortable(options);
|
|
495
|
+
onScopeDispose(controller.dispose);
|
|
496
|
+
return controller;
|
|
497
|
+
}
|
|
498
|
+
//#endregion
|
|
499
|
+
export { useSortable as n, defaultSortableAnnouncements as r, createSortable as t };
|