@vizejs/ui 0.387.0 → 0.389.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-CuBryPW9.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,92 @@
|
|
|
1
|
+
import { ShallowRef } from "vue";
|
|
2
|
+
|
|
3
|
+
//#region src/families/feedback/alert/alert-types.d.ts
|
|
4
|
+
/** ARIA live-region roles accepted by the Alert primitive. */
|
|
5
|
+
type AlertRole = "alert" | "status";
|
|
6
|
+
/** Consumer styling variants exposed only through data attributes and slot state. */
|
|
7
|
+
type AlertVariant = "danger" | "info" | "success" | "warning";
|
|
8
|
+
/** Visibility state exposed to data attributes and slot consumers. */
|
|
9
|
+
type AlertState = "closed" | "open";
|
|
10
|
+
/** State exposed to the default slot for external chrome and dismissal composition. */
|
|
11
|
+
interface AlertSlotState {
|
|
12
|
+
/** Whether the alert is currently visible and announceable. */
|
|
13
|
+
readonly open: boolean;
|
|
14
|
+
/** ARIA role used by the alert root. */
|
|
15
|
+
readonly role: AlertRole;
|
|
16
|
+
/** Visibility state mirrored to `data-state`. */
|
|
17
|
+
readonly state: AlertState;
|
|
18
|
+
/** Styling variant mirrored to `data-variant`. */
|
|
19
|
+
readonly variant: AlertVariant;
|
|
20
|
+
}
|
|
21
|
+
/** Methods and state exposed by the alert component instance. */
|
|
22
|
+
interface AlertExpose {
|
|
23
|
+
/** Rendered alert root for composition with application-owned effects. */
|
|
24
|
+
readonly element: Readonly<ShallowRef<HTMLDivElement | null>>;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/families/feedback/alert/alert.vue.d.ts
|
|
28
|
+
type __VLS_Props = {
|
|
29
|
+
/**
|
|
30
|
+
* Consumer-owned root id for labels, descriptions, or anchors.
|
|
31
|
+
*
|
|
32
|
+
* @default undefined
|
|
33
|
+
*/
|
|
34
|
+
readonly id?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Live-region role: `alert` is assertive, `status` is polite.
|
|
37
|
+
*
|
|
38
|
+
* @default "alert"
|
|
39
|
+
*/
|
|
40
|
+
readonly role?: AlertRole;
|
|
41
|
+
/**
|
|
42
|
+
* Styling variant mirrored to `data-variant`; no CSS is emitted.
|
|
43
|
+
*
|
|
44
|
+
* @default "info"
|
|
45
|
+
*/
|
|
46
|
+
readonly variant?: AlertVariant;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the alert is visible and announceable.
|
|
49
|
+
*
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
readonly open?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Whether assistive technology should present the whole region on updates.
|
|
55
|
+
*
|
|
56
|
+
* @default true
|
|
57
|
+
*/
|
|
58
|
+
readonly atomic?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Accessible name when no visible label or `aria-labelledby` supplies one.
|
|
61
|
+
*
|
|
62
|
+
* @default undefined
|
|
63
|
+
*/
|
|
64
|
+
readonly ariaLabel?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Space-separated ids that label the alert.
|
|
67
|
+
*
|
|
68
|
+
* @default undefined
|
|
69
|
+
*/
|
|
70
|
+
readonly ariaLabelledby?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Space-separated ids that describe the alert.
|
|
73
|
+
*
|
|
74
|
+
* @default undefined
|
|
75
|
+
*/
|
|
76
|
+
readonly ariaDescribedby?: string;
|
|
77
|
+
};
|
|
78
|
+
type __VLS_Slots = {
|
|
79
|
+
/** Renders alert content with current role, variant, and visibility state. */default(props: AlertSlotState): unknown;
|
|
80
|
+
};
|
|
81
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
82
|
+
element: Readonly<import("vue").ShallowRef<HTMLDivElement | null>>;
|
|
83
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
84
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
85
|
+
declare const _default: typeof __VLS_export;
|
|
86
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
87
|
+
new (): {
|
|
88
|
+
$slots: S;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
//#endregion
|
|
92
|
+
export { AlertState as a, AlertSlotState as i, AlertExpose as n, AlertVariant as o, AlertRole as r, _default as t };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
|
+
import { computed, createElementBlock, defineComponent, openBlock, renderSlot, useTemplateRef } from "vue";
|
|
3
|
+
//#region src/families/feedback/alert/alert.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
const _hoisted_1 = [
|
|
5
|
+
"id",
|
|
6
|
+
"role",
|
|
7
|
+
"hidden",
|
|
8
|
+
"aria-label",
|
|
9
|
+
"aria-labelledby",
|
|
10
|
+
"aria-describedby",
|
|
11
|
+
"aria-live",
|
|
12
|
+
"aria-atomic",
|
|
13
|
+
"data-state",
|
|
14
|
+
"data-variant"
|
|
15
|
+
];
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/families/feedback/alert/alert.vue
|
|
18
|
+
var alert_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
19
|
+
__name: "alert",
|
|
20
|
+
props: {
|
|
21
|
+
id: {
|
|
22
|
+
type: String,
|
|
23
|
+
required: false,
|
|
24
|
+
default: () => void 0
|
|
25
|
+
},
|
|
26
|
+
role: {
|
|
27
|
+
type: String,
|
|
28
|
+
required: false,
|
|
29
|
+
default: "alert"
|
|
30
|
+
},
|
|
31
|
+
variant: {
|
|
32
|
+
type: String,
|
|
33
|
+
required: false,
|
|
34
|
+
default: "info"
|
|
35
|
+
},
|
|
36
|
+
open: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
required: false,
|
|
39
|
+
default: true
|
|
40
|
+
},
|
|
41
|
+
atomic: {
|
|
42
|
+
type: Boolean,
|
|
43
|
+
required: false,
|
|
44
|
+
default: true
|
|
45
|
+
},
|
|
46
|
+
ariaLabel: {
|
|
47
|
+
type: String,
|
|
48
|
+
required: false,
|
|
49
|
+
default: () => void 0
|
|
50
|
+
},
|
|
51
|
+
ariaLabelledby: {
|
|
52
|
+
type: String,
|
|
53
|
+
required: false,
|
|
54
|
+
default: () => void 0
|
|
55
|
+
},
|
|
56
|
+
ariaDescribedby: {
|
|
57
|
+
type: String,
|
|
58
|
+
required: false,
|
|
59
|
+
default: () => void 0
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
setup(__props, { expose: __expose }) {
|
|
63
|
+
const element = useTemplateRef("element");
|
|
64
|
+
const live = computed(() => __props.role === "alert" ? "assertive" : "polite");
|
|
65
|
+
const state = computed(() => __props.open ? "open" : "closed");
|
|
66
|
+
__expose({ element });
|
|
67
|
+
return (_ctx, _cache) => {
|
|
68
|
+
return openBlock(), createElementBlock("div", {
|
|
69
|
+
id: __props.id,
|
|
70
|
+
ref_key: "element",
|
|
71
|
+
ref: element,
|
|
72
|
+
role: __props.role,
|
|
73
|
+
hidden: __props.open ? void 0 : true,
|
|
74
|
+
"aria-label": __props.ariaLabel,
|
|
75
|
+
"aria-labelledby": __props.ariaLabelledby,
|
|
76
|
+
"aria-describedby": __props.ariaDescribedby,
|
|
77
|
+
"aria-live": live.value,
|
|
78
|
+
"aria-atomic": __props.atomic ? "true" : "false",
|
|
79
|
+
"data-vize-ui": "alert",
|
|
80
|
+
"data-state": state.value,
|
|
81
|
+
"data-variant": __props.variant
|
|
82
|
+
}, [renderSlot(_ctx.$slots, "default", {
|
|
83
|
+
open: __props.open,
|
|
84
|
+
role: __props.role,
|
|
85
|
+
state: state.value,
|
|
86
|
+
variant: __props.variant
|
|
87
|
+
}, void 0, true)], 8, _hoisted_1);
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}), [["__scopeId", "data-v-308a7e89"]]);
|
|
91
|
+
//#endregion
|
|
92
|
+
export { alert_default as t };
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
|
+
import { l as dialogContext, o as dialog_content_default } from "./dialog-trigger-ppGKikEP.mjs";
|
|
3
|
+
import { computed, createElementBlock, createVNode, defineComponent, guardReactiveProps, normalizeProps, openBlock, renderSlot, useTemplateRef, withCtx } from "vue";
|
|
4
|
+
//#region src/families/overlays/alert-dialog/alert-dialog-content.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
const _hoisted_1 = ["data-state", "data-modal"];
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/families/overlays/alert-dialog/alert-dialog-content.vue
|
|
8
|
+
var alert_dialog_content_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
9
|
+
__name: "alert-dialog-content",
|
|
10
|
+
props: {
|
|
11
|
+
forceMount: {
|
|
12
|
+
type: Boolean,
|
|
13
|
+
required: false,
|
|
14
|
+
default: false
|
|
15
|
+
},
|
|
16
|
+
trapFocus: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
required: false,
|
|
19
|
+
default: true
|
|
20
|
+
},
|
|
21
|
+
autoFocus: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
required: false,
|
|
24
|
+
default: true
|
|
25
|
+
},
|
|
26
|
+
restoreFocus: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
required: false,
|
|
29
|
+
default: true
|
|
30
|
+
},
|
|
31
|
+
inertOutside: {
|
|
32
|
+
type: Boolean,
|
|
33
|
+
required: false,
|
|
34
|
+
default: true
|
|
35
|
+
},
|
|
36
|
+
lockScroll: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
required: false,
|
|
39
|
+
default: true
|
|
40
|
+
},
|
|
41
|
+
closeOnEscape: {
|
|
42
|
+
type: Boolean,
|
|
43
|
+
required: false,
|
|
44
|
+
default: true
|
|
45
|
+
},
|
|
46
|
+
closeOnPointerDownOutside: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
required: false,
|
|
49
|
+
default: false
|
|
50
|
+
},
|
|
51
|
+
closeOnFocusOutside: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
required: false,
|
|
54
|
+
default: false
|
|
55
|
+
},
|
|
56
|
+
ariaLabel: {
|
|
57
|
+
type: String,
|
|
58
|
+
required: false,
|
|
59
|
+
default: () => void 0
|
|
60
|
+
},
|
|
61
|
+
ariaLabelledby: {
|
|
62
|
+
type: [String, null],
|
|
63
|
+
required: false,
|
|
64
|
+
default: () => void 0
|
|
65
|
+
},
|
|
66
|
+
ariaDescribedby: {
|
|
67
|
+
type: [String, null],
|
|
68
|
+
required: false,
|
|
69
|
+
default: () => void 0
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
emits: [
|
|
73
|
+
"open-auto-focus",
|
|
74
|
+
"close-auto-focus",
|
|
75
|
+
"escape-key-down",
|
|
76
|
+
"pointer-down-outside",
|
|
77
|
+
"focus-outside",
|
|
78
|
+
"interact-outside",
|
|
79
|
+
"dismiss"
|
|
80
|
+
],
|
|
81
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
82
|
+
const emit = __emit;
|
|
83
|
+
const context = dialogContext.use();
|
|
84
|
+
const content = useTemplateRef("content");
|
|
85
|
+
const element = computed(() => content.value?.element ?? null);
|
|
86
|
+
const open = computed(() => context.open.value);
|
|
87
|
+
const modal = computed(() => context.modal.value);
|
|
88
|
+
const state = computed(() => context.state.value);
|
|
89
|
+
const slotState = computed(() => ({
|
|
90
|
+
modal: modal.value,
|
|
91
|
+
open: open.value,
|
|
92
|
+
state: state.value
|
|
93
|
+
}));
|
|
94
|
+
function focusContent(options) {
|
|
95
|
+
content.value?.focusContent(options);
|
|
96
|
+
}
|
|
97
|
+
__expose({
|
|
98
|
+
element,
|
|
99
|
+
focusContent,
|
|
100
|
+
focusFirst: () => content.value?.focusFirst() ?? null,
|
|
101
|
+
modal,
|
|
102
|
+
open,
|
|
103
|
+
state
|
|
104
|
+
});
|
|
105
|
+
function onOpenAutoFocus(event) {
|
|
106
|
+
emit("open-auto-focus", event);
|
|
107
|
+
}
|
|
108
|
+
function onCloseAutoFocus(event) {
|
|
109
|
+
emit("close-auto-focus", event);
|
|
110
|
+
}
|
|
111
|
+
function onEscapeKeyDown(event) {
|
|
112
|
+
emit("escape-key-down", event);
|
|
113
|
+
}
|
|
114
|
+
function onPointerDownOutside(event) {
|
|
115
|
+
emit("pointer-down-outside", event);
|
|
116
|
+
}
|
|
117
|
+
function onFocusOutside(event) {
|
|
118
|
+
emit("focus-outside", event);
|
|
119
|
+
}
|
|
120
|
+
function onInteractOutside(event) {
|
|
121
|
+
emit("interact-outside", event);
|
|
122
|
+
}
|
|
123
|
+
function onDismiss(event) {
|
|
124
|
+
emit("dismiss", event);
|
|
125
|
+
}
|
|
126
|
+
return (_ctx, _cache) => {
|
|
127
|
+
return openBlock(), createElementBlock("div", {
|
|
128
|
+
"data-vize-ui": "alert-dialog-content",
|
|
129
|
+
part: "root",
|
|
130
|
+
"data-state": state.value,
|
|
131
|
+
"data-modal": modal.value ? "true" : "false"
|
|
132
|
+
}, [createVNode(dialog_content_default, {
|
|
133
|
+
ref_key: "content",
|
|
134
|
+
ref: content,
|
|
135
|
+
role: "alertdialog",
|
|
136
|
+
"force-mount": __props.forceMount,
|
|
137
|
+
"trap-focus": __props.trapFocus,
|
|
138
|
+
"auto-focus": __props.autoFocus,
|
|
139
|
+
"restore-focus": __props.restoreFocus,
|
|
140
|
+
"inert-outside": __props.inertOutside,
|
|
141
|
+
"lock-scroll": __props.lockScroll,
|
|
142
|
+
"close-on-escape": __props.closeOnEscape,
|
|
143
|
+
"close-on-pointer-down-outside": __props.closeOnPointerDownOutside,
|
|
144
|
+
"close-on-focus-outside": __props.closeOnFocusOutside,
|
|
145
|
+
"aria-label": __props.ariaLabel,
|
|
146
|
+
"aria-labelledby": __props.ariaLabelledby,
|
|
147
|
+
"aria-describedby": __props.ariaDescribedby,
|
|
148
|
+
onOpenAutoFocus,
|
|
149
|
+
onCloseAutoFocus,
|
|
150
|
+
onEscapeKeyDown,
|
|
151
|
+
onPointerDownOutside,
|
|
152
|
+
onFocusOutside,
|
|
153
|
+
onInteractOutside,
|
|
154
|
+
onDismiss
|
|
155
|
+
}, {
|
|
156
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotState.value)), void 0, true)]),
|
|
157
|
+
_: 3
|
|
158
|
+
}, 8, [
|
|
159
|
+
"force-mount",
|
|
160
|
+
"trap-focus",
|
|
161
|
+
"auto-focus",
|
|
162
|
+
"restore-focus",
|
|
163
|
+
"inert-outside",
|
|
164
|
+
"lock-scroll",
|
|
165
|
+
"close-on-escape",
|
|
166
|
+
"close-on-pointer-down-outside",
|
|
167
|
+
"close-on-focus-outside",
|
|
168
|
+
"aria-label",
|
|
169
|
+
"aria-labelledby",
|
|
170
|
+
"aria-describedby"
|
|
171
|
+
])], 8, _hoisted_1);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}), [["__scopeId", "data-v-03cd685d"]]);
|
|
175
|
+
//#endregion
|
|
176
|
+
export { alert_dialog_content_default as t };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { Ao as AlertDialogDescriptionExpose, Bo as _default$5, Do as AlertDialogAutoFocusEvent, Eo as AlertDialogActionExpose, Fo as AlertDialogState, Go as _default, Ho as _default$3, Io as AlertDialogTitleExpose, Lo as AlertDialogTriggerExpose, Mo as AlertDialogPortalExpose, No as AlertDialogRootExpose, Oo as AlertDialogCancelExpose, Po as AlertDialogSlotState, Ro as _default$7, To as _default$2, Vo as _default$4, Wo as _default$1, jo as AlertDialogOverlayExpose, ko as AlertDialogContentExpose, zo as _default$6 } from "./announcer-CuBryPW9.mjs";
|
|
2
|
+
export { _default as AlertDialog, _default as AlertDialogRoot, _default$1 as AlertDialogAction, _default$1 as AlertDialogCancel, type AlertDialogActionExpose, type AlertDialogAutoFocusEvent, type AlertDialogCancelExpose, _default$2 as AlertDialogContent, type AlertDialogContentExpose, _default$3 as AlertDialogDescription, type AlertDialogDescriptionExpose, _default$4 as AlertDialogOverlay, type AlertDialogOverlayExpose, _default$5 as AlertDialogPortal, type AlertDialogPortalExpose, type AlertDialogRootExpose, type AlertDialogSlotState, type AlertDialogState, _default$6 as AlertDialogTitle, type AlertDialogTitleExpose, _default$7 as AlertDialogTrigger, type AlertDialogTriggerExpose };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { a as dialog_description_default, c as dialog_root_default, i as dialog_overlay_default, n as dialog_title_default, r as dialog_portal_default, s as dialog_close_default, t as dialog_trigger_default } from "./dialog-trigger-ppGKikEP.mjs";
|
|
2
|
+
import { t as alert_dialog_content_default } from "./alert-dialog-D9tqXQ_Q.mjs";
|
|
3
|
+
export { dialog_root_default as AlertDialog, dialog_root_default as AlertDialogRoot, dialog_close_default as AlertDialogAction, dialog_close_default as AlertDialogCancel, alert_dialog_content_default as AlertDialogContent, dialog_description_default as AlertDialogDescription, dialog_overlay_default as AlertDialogOverlay, dialog_portal_default as AlertDialogPortal, dialog_title_default as AlertDialogTitle, dialog_trigger_default as AlertDialogTrigger };
|
package/dist/alert.d.mts
ADDED
package/dist/alert.mjs
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.mjs";
|
|
2
|
+
import { createContext } from "./context.mjs";
|
|
3
|
+
import { t as createLiveRegion } from "./live-region-runtime-DVUch8Lu.mjs";
|
|
4
|
+
import { createCommentVNode, createElementBlock, defineComponent, getCurrentScope, nextTick, onScopeDispose, openBlock, renderSlot, shallowReadonly, shallowRef, toDisplayString, toRef, toValue, unref } from "vue";
|
|
5
|
+
//#region src/families/accessibility/announcer/announcer-runtime.ts
|
|
6
|
+
const invalidOptionDiagnostic = "VIZE_UI_ANNOUNCER_OPTION";
|
|
7
|
+
const disposedDiagnostic = "VIZE_UI_ANNOUNCER_DISPOSED";
|
|
8
|
+
const setupDiagnostic$1 = "VIZE_UI_ANNOUNCER_SETUP";
|
|
9
|
+
const politenessValues = new Set(["assertive", "polite"]);
|
|
10
|
+
/** Typed announcer context provided by AnnouncerProvider. */
|
|
11
|
+
const announcerContext = createContext("Announcer");
|
|
12
|
+
function readPoliteness(value, fallback) {
|
|
13
|
+
const resolved = toValue(value);
|
|
14
|
+
if (resolved === void 0) return fallback;
|
|
15
|
+
if (!politenessValues.has(resolved)) throw new TypeError(`${invalidOptionDiagnostic}: politeness must resolve to polite or assertive`);
|
|
16
|
+
return resolved;
|
|
17
|
+
}
|
|
18
|
+
function validateMessage(text, options) {
|
|
19
|
+
if (typeof text !== "string") throw new TypeError(`${invalidOptionDiagnostic}: announcement text must be a string`);
|
|
20
|
+
if (options.politeness !== void 0) readPoliteness(options.politeness, "polite");
|
|
21
|
+
if (options.key !== void 0 && (typeof options.key !== "string" || options.key.length === 0)) throw new TypeError(`${invalidOptionDiagnostic}: a coalescing key must be a non-empty string`);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create an SSR-safe announcement queue.
|
|
25
|
+
*
|
|
26
|
+
* Announcements flush sequentially into one polite and one assertive
|
|
27
|
+
* live-region channel, so status updates and errors never overwrite each
|
|
28
|
+
* other mid-announcement. The server renders both channels empty: queued text
|
|
29
|
+
* only ever reaches the DOM after client-side ticks.
|
|
30
|
+
*/
|
|
31
|
+
function createAnnouncer(options = {}) {
|
|
32
|
+
if (typeof options.politeness !== "function") readPoliteness(options.politeness, "polite");
|
|
33
|
+
const polite = createLiveRegion({ politeness: "polite" });
|
|
34
|
+
const assertive = createLiveRegion({ politeness: "assertive" });
|
|
35
|
+
const queue = [];
|
|
36
|
+
const pendingCount = shallowRef(0);
|
|
37
|
+
let inFlight;
|
|
38
|
+
let disposed = false;
|
|
39
|
+
let flushing = false;
|
|
40
|
+
const assertAlive = () => {
|
|
41
|
+
if (disposed) throw new Error(`${disposedDiagnostic}: the controller has been disposed`);
|
|
42
|
+
};
|
|
43
|
+
const syncPending = () => {
|
|
44
|
+
pendingCount.value = queue.length;
|
|
45
|
+
};
|
|
46
|
+
const flush = async () => {
|
|
47
|
+
while (!disposed) {
|
|
48
|
+
const next = queue.shift();
|
|
49
|
+
if (next === void 0) break;
|
|
50
|
+
inFlight = next;
|
|
51
|
+
syncPending();
|
|
52
|
+
(next.politeness === "assertive" ? assertive : polite).announce(next.text);
|
|
53
|
+
await nextTick();
|
|
54
|
+
await nextTick();
|
|
55
|
+
}
|
|
56
|
+
inFlight = void 0;
|
|
57
|
+
flushing = false;
|
|
58
|
+
};
|
|
59
|
+
const scheduleFlush = () => {
|
|
60
|
+
if (flushing) return;
|
|
61
|
+
flushing = true;
|
|
62
|
+
flush();
|
|
63
|
+
};
|
|
64
|
+
const isDuplicate = (text, politeness) => {
|
|
65
|
+
if (inFlight !== void 0 && inFlight.text === text && inFlight.politeness === politeness) return true;
|
|
66
|
+
return queue.some((pending) => pending.text === text && pending.politeness === politeness);
|
|
67
|
+
};
|
|
68
|
+
return Object.freeze({
|
|
69
|
+
politeMessage: polite.message,
|
|
70
|
+
assertiveMessage: assertive.message,
|
|
71
|
+
pendingCount: shallowReadonly(pendingCount),
|
|
72
|
+
announce: (text, messageOptions = {}) => {
|
|
73
|
+
assertAlive();
|
|
74
|
+
validateMessage(text, messageOptions);
|
|
75
|
+
const politeness = messageOptions.politeness ?? readPoliteness(options.politeness, "polite");
|
|
76
|
+
const keyed = messageOptions.key === void 0 ? void 0 : queue.find((pending) => pending.key === messageOptions.key);
|
|
77
|
+
if (keyed !== void 0) {
|
|
78
|
+
keyed.text = text;
|
|
79
|
+
keyed.politeness = politeness;
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
if (isDuplicate(text, politeness)) return false;
|
|
83
|
+
const message = {
|
|
84
|
+
text,
|
|
85
|
+
politeness,
|
|
86
|
+
key: messageOptions.key
|
|
87
|
+
};
|
|
88
|
+
if (politeness === "assertive") {
|
|
89
|
+
const firstPolite = queue.findIndex((pending) => pending.politeness === "polite");
|
|
90
|
+
queue.splice(firstPolite === -1 ? queue.length : firstPolite, 0, message);
|
|
91
|
+
} else queue.push(message);
|
|
92
|
+
syncPending();
|
|
93
|
+
scheduleFlush();
|
|
94
|
+
return true;
|
|
95
|
+
},
|
|
96
|
+
cancel: (key) => {
|
|
97
|
+
assertAlive();
|
|
98
|
+
const index = queue.findIndex((pending) => pending.key === key);
|
|
99
|
+
if (index === -1) return false;
|
|
100
|
+
queue.splice(index, 1);
|
|
101
|
+
syncPending();
|
|
102
|
+
return true;
|
|
103
|
+
},
|
|
104
|
+
clear: () => {
|
|
105
|
+
assertAlive();
|
|
106
|
+
queue.length = 0;
|
|
107
|
+
syncPending();
|
|
108
|
+
polite.clear();
|
|
109
|
+
assertive.clear();
|
|
110
|
+
},
|
|
111
|
+
dispose: () => {
|
|
112
|
+
if (disposed) return;
|
|
113
|
+
disposed = true;
|
|
114
|
+
queue.length = 0;
|
|
115
|
+
pendingCount.value = 0;
|
|
116
|
+
polite.dispose();
|
|
117
|
+
assertive.dispose();
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/** Create an announcer disposed with the current Vue effect scope. */
|
|
122
|
+
function useAnnouncer(options = {}) {
|
|
123
|
+
if (!getCurrentScope()) throw new Error(`${setupDiagnostic$1}: use inside component setup or an active effect scope`);
|
|
124
|
+
const controller = createAnnouncer(options);
|
|
125
|
+
onScopeDispose(controller.dispose);
|
|
126
|
+
return controller;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Resolve provider ownership during component setup.
|
|
130
|
+
*
|
|
131
|
+
* The outermost provider creates and owns the announcement queue; nested
|
|
132
|
+
* providers reuse it, so a document never renders duplicate live regions no
|
|
133
|
+
* matter how many islands or layout shells declare their own provider.
|
|
134
|
+
*/
|
|
135
|
+
function useAnnouncerOwnership(options = {}) {
|
|
136
|
+
if (!getCurrentScope()) throw new Error(`${setupDiagnostic$1}: use inside component setup or an active effect scope`);
|
|
137
|
+
const existing = announcerContext.useOptional();
|
|
138
|
+
if (existing !== void 0) return Object.freeze({
|
|
139
|
+
announcer: existing,
|
|
140
|
+
isOwner: false
|
|
141
|
+
});
|
|
142
|
+
const announcer = useAnnouncer(options);
|
|
143
|
+
announcerContext.provide(announcer);
|
|
144
|
+
return Object.freeze({
|
|
145
|
+
announcer,
|
|
146
|
+
isOwner: true
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/families/accessibility/announcer/announcer-busy.ts
|
|
151
|
+
const busyDiagnostic = "VIZE_UI_ANNOUNCER_BUSY";
|
|
152
|
+
const setupDiagnostic = "VIZE_UI_ANNOUNCER_SETUP";
|
|
153
|
+
const busyKeySequences = /* @__PURE__ */ new WeakMap();
|
|
154
|
+
function nextBusyKey(announcer) {
|
|
155
|
+
const sequence = (busyKeySequences.get(announcer) ?? 0) + 1;
|
|
156
|
+
busyKeySequences.set(announcer, sequence);
|
|
157
|
+
return `vize-ui-busy-${sequence}`;
|
|
158
|
+
}
|
|
159
|
+
function readLabel(value) {
|
|
160
|
+
if (typeof value !== "string" || value.trim().length === 0) throw new TypeError(`${busyDiagnostic}: a busy announcement needs a non-empty label`);
|
|
161
|
+
return value;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Begin announcing one busy task: loading, streaming, or background work.
|
|
165
|
+
*
|
|
166
|
+
* The label is announced immediately. Progress updates coalesce onto one
|
|
167
|
+
* queue slot so a stream cannot flood assistive technology, and `end` cancels
|
|
168
|
+
* unspoken progress before optionally announcing the outcome. Bind the
|
|
169
|
+
* busy scope's `aria-busy` to `isBusy` so partial content is not read early.
|
|
170
|
+
*/
|
|
171
|
+
function createBusyAnnouncement(announcer, options) {
|
|
172
|
+
const label = readLabel(options.label);
|
|
173
|
+
const politeness = options.politeness ?? "polite";
|
|
174
|
+
const key = nextBusyKey(announcer);
|
|
175
|
+
const isBusy = shallowRef(true);
|
|
176
|
+
announcer.announce(label, {
|
|
177
|
+
key,
|
|
178
|
+
politeness
|
|
179
|
+
});
|
|
180
|
+
return Object.freeze({
|
|
181
|
+
isBusy: shallowReadonly(isBusy),
|
|
182
|
+
update: (text) => {
|
|
183
|
+
if (!isBusy.value) throw new Error(`${busyDiagnostic}: the busy announcement has already ended`);
|
|
184
|
+
announcer.announce(text, {
|
|
185
|
+
key,
|
|
186
|
+
politeness
|
|
187
|
+
});
|
|
188
|
+
},
|
|
189
|
+
end: (text) => {
|
|
190
|
+
if (!isBusy.value) return;
|
|
191
|
+
isBusy.value = false;
|
|
192
|
+
announcer.cancel(key);
|
|
193
|
+
if (text !== void 0) announcer.announce(text, { politeness });
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
/** Begin a busy announcement that silently ends with the current effect scope. */
|
|
198
|
+
function useBusyAnnouncement(announcer, options) {
|
|
199
|
+
if (!getCurrentScope()) throw new Error(`${setupDiagnostic}: use inside component setup or an active effect scope`);
|
|
200
|
+
const busy = createBusyAnnouncement(announcer, options);
|
|
201
|
+
onScopeDispose(() => busy.end());
|
|
202
|
+
return busy;
|
|
203
|
+
}
|
|
204
|
+
//#endregion
|
|
205
|
+
//#region src/families/accessibility/announcer/announcer-provider.vue?vue&type=script&setup=true&lang.ts
|
|
206
|
+
const _hoisted_1 = ["data-vize-announcer"];
|
|
207
|
+
const _hoisted_2 = ["aria-atomic"];
|
|
208
|
+
const _hoisted_3 = ["aria-atomic"];
|
|
209
|
+
//#endregion
|
|
210
|
+
//#region src/families/accessibility/announcer/announcer-provider.vue
|
|
211
|
+
var announcer_provider_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
212
|
+
__name: "announcer-provider",
|
|
213
|
+
props: {
|
|
214
|
+
politeness: {
|
|
215
|
+
type: String,
|
|
216
|
+
required: false,
|
|
217
|
+
default: "polite"
|
|
218
|
+
},
|
|
219
|
+
atomic: {
|
|
220
|
+
type: Boolean,
|
|
221
|
+
required: false,
|
|
222
|
+
default: true
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
setup(__props, { expose: __expose }) {
|
|
226
|
+
const ownership = useAnnouncerOwnership({ politeness: toRef(() => __props.politeness) });
|
|
227
|
+
__expose({
|
|
228
|
+
announcer: ownership.announcer,
|
|
229
|
+
isOwner: ownership.isOwner,
|
|
230
|
+
announce: ownership.announcer.announce,
|
|
231
|
+
clear: ownership.announcer.clear
|
|
232
|
+
});
|
|
233
|
+
return (_ctx, _cache) => {
|
|
234
|
+
return openBlock(), createElementBlock("div", {
|
|
235
|
+
"data-vize-ui": "announcer",
|
|
236
|
+
"data-vize-announcer": unref(ownership).isOwner ? "owner" : "delegate"
|
|
237
|
+
}, [
|
|
238
|
+
unref(ownership).isOwner ? (openBlock(), createElementBlock("div", {
|
|
239
|
+
key: 0,
|
|
240
|
+
"data-vize-ui": "announcer-region",
|
|
241
|
+
"aria-live": "polite",
|
|
242
|
+
role: "status",
|
|
243
|
+
"aria-atomic": __props.atomic ? "true" : "false"
|
|
244
|
+
}, toDisplayString(unref(ownership).announcer.politeMessage.value), 9, _hoisted_2)) : createCommentVNode("v-if", true),
|
|
245
|
+
unref(ownership).isOwner ? (openBlock(), createElementBlock("div", {
|
|
246
|
+
key: 1,
|
|
247
|
+
"data-vize-ui": "announcer-region",
|
|
248
|
+
"aria-live": "assertive",
|
|
249
|
+
role: "alert",
|
|
250
|
+
"aria-atomic": __props.atomic ? "true" : "false"
|
|
251
|
+
}, toDisplayString(unref(ownership).announcer.assertiveMessage.value), 9, _hoisted_3)) : createCommentVNode("v-if", true),
|
|
252
|
+
renderSlot(_ctx.$slots, "default", { announcer: unref(ownership).announcer }, void 0, true)
|
|
253
|
+
], 8, _hoisted_1);
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
}), [["__scopeId", "data-v-56d8d13d"]]);
|
|
257
|
+
//#endregion
|
|
258
|
+
export { createAnnouncer as a, announcerContext as i, createBusyAnnouncement as n, useAnnouncer as o, useBusyAnnouncement as r, useAnnouncerOwnership as s, announcer_provider_default as t };
|