@sprawlify/primitives 0.0.1
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/anatomy.cjs +3 -0
- package/dist/anatomy.d.cts +2 -0
- package/dist/anatomy.d.mts +2 -0
- package/dist/anatomy.mjs +3 -0
- package/dist/aria-hidden-DqYx0f_y.mjs +177 -0
- package/dist/aria-hidden-DtLU6hSU.cjs +182 -0
- package/dist/aria-hidden.cjs +4 -0
- package/dist/aria-hidden.d.cts +16 -0
- package/dist/aria-hidden.d.mts +16 -0
- package/dist/aria-hidden.mjs +4 -0
- package/dist/auto-resize-D3qHtFy1.mjs +114 -0
- package/dist/auto-resize-xzlPFDyD.cjs +125 -0
- package/dist/auto-resize.cjs +5 -0
- package/dist/auto-resize.d.cts +17 -0
- package/dist/auto-resize.d.mts +17 -0
- package/dist/auto-resize.mjs +4 -0
- package/dist/chunk-CbDLau6x.cjs +34 -0
- package/dist/collection-8XqaNHs_.mjs +1279 -0
- package/dist/collection-DIoIDISa.cjs +1326 -0
- package/dist/collection.cjs +11 -0
- package/dist/collection.d.cts +5 -0
- package/dist/collection.d.mts +5 -0
- package/dist/collection.mjs +4 -0
- package/dist/color-BkAP1Tkd.d.mts +60 -0
- package/dist/color-VKewNv2e.d.cts +60 -0
- package/dist/color-utils-Cc5GVXZh.mjs +657 -0
- package/dist/color-utils-LER_6Zwu.cjs +680 -0
- package/dist/color-utils.cjs +7 -0
- package/dist/color-utils.d.cts +19 -0
- package/dist/color-utils.d.mts +19 -0
- package/dist/color-utils.mjs +4 -0
- package/dist/core-30pJjyC2.d.mts +49 -0
- package/dist/core-CQFbMdTl.cjs +176 -0
- package/dist/core-CefBjbst.d.cts +49 -0
- package/dist/core-DCFNMTZF.mjs +129 -0
- package/dist/core.cjs +12 -0
- package/dist/core.d.cts +3 -0
- package/dist/core.d.mts +3 -0
- package/dist/core.mjs +5 -0
- package/dist/create-anatomy-B3XYc-qG.d.mts +70 -0
- package/dist/create-anatomy-BGQ8pv8J.d.cts +70 -0
- package/dist/create-anatomy-BbDZbHpC.mjs +39 -0
- package/dist/create-anatomy-CDsIFUXg.cjs +45 -0
- package/dist/create-props-BnF_vl-E.mjs +5 -0
- package/dist/create-props-YKy7JIKj.cjs +11 -0
- package/dist/data-url-C3ITPVRX.d.cts +10 -0
- package/dist/data-url-DLwZ9M77.d.mts +10 -0
- package/dist/date-utils-D2xPHa_I.cjs +738 -0
- package/dist/date-utils-wEa1hhpc.mjs +474 -0
- package/dist/date-utils.cjs +46 -0
- package/dist/date-utils.d.cts +101 -0
- package/dist/date-utils.d.mts +2 -0
- package/dist/date-utils.mjs +3 -0
- package/dist/defineProperty-BoUOT9Ie.cjs +49 -0
- package/dist/defineProperty-DrXfyjd4.mjs +43 -0
- package/dist/dismissable-CTfKZ4OG.cjs +282 -0
- package/dist/dismissable-DDrx0xnH.mjs +271 -0
- package/dist/dismissable-layer-C7pZU2wi.d.cts +39 -0
- package/dist/dismissable-layer-t_b0fk-p.d.mts +39 -0
- package/dist/dismissable.cjs +7 -0
- package/dist/dismissable.d.cts +3 -0
- package/dist/dismissable.d.mts +3 -0
- package/dist/dismissable.mjs +6 -0
- package/dist/dom-query-CWZdWUGp.cjs +2141 -0
- package/dist/dom-query-DFCRhyj1.mjs +1374 -0
- package/dist/dom-query.cjs +130 -0
- package/dist/dom-query.d.cts +307 -0
- package/dist/dom-query.d.mts +307 -0
- package/dist/dom-query.mjs +3 -0
- package/dist/file-utils.cjs +220 -0
- package/dist/file-utils.d.cts +51 -0
- package/dist/file-utils.d.mts +51 -0
- package/dist/file-utils.mjs +210 -0
- package/dist/focus-trap-D-bypQEJ.mjs +485 -0
- package/dist/focus-trap-D4i52S9A.cjs +496 -0
- package/dist/focus-trap.cjs +5 -0
- package/dist/focus-trap.d.cts +88 -0
- package/dist/focus-trap.d.mts +88 -0
- package/dist/focus-trap.mjs +4 -0
- package/dist/focus-visible-DYTWdWpa.cjs +210 -0
- package/dist/focus-visible-irppYatv.mjs +175 -0
- package/dist/focus-visible.cjs +9 -0
- package/dist/focus-visible.d.cts +31 -0
- package/dist/focus-visible.d.mts +31 -0
- package/dist/focus-visible.mjs +4 -0
- package/dist/functions-BOkTDEFM.d.cts +15 -0
- package/dist/functions-IZtWcC8Q.d.mts +15 -0
- package/dist/highlight-word.cjs +100 -0
- package/dist/highlight-word.d.cts +24 -0
- package/dist/highlight-word.d.mts +24 -0
- package/dist/highlight-word.mjs +99 -0
- package/dist/hotkeys.cjs +758 -0
- package/dist/hotkeys.d.cts +130 -0
- package/dist/hotkeys.d.mts +130 -0
- package/dist/hotkeys.mjs +754 -0
- package/dist/i18n-utils.cjs +450 -0
- package/dist/i18n-utils.d.cts +61 -0
- package/dist/i18n-utils.d.mts +61 -0
- package/dist/i18n-utils.mjs +440 -0
- package/dist/index-BkzYij2j.d.mts +25 -0
- package/dist/index-Bqw3r34-.d.cts +1383 -0
- package/dist/index-C0MKXQmE.d.mts +1383 -0
- package/dist/index-C9-feK5c.d.cts +25 -0
- package/dist/index-CD5FN7kY.d.mts +114 -0
- package/dist/index-CJji6wHl.d.cts +15 -0
- package/dist/index-CNi5FkPe.d.mts +15 -0
- package/dist/index-D96rs8B0.d.mts +115 -0
- package/dist/index.cjs +0 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +1 -0
- package/dist/interact-outside-BplxR9cR.mjs +200 -0
- package/dist/interact-outside-C8-oFBpB.cjs +205 -0
- package/dist/interact-outside.cjs +5 -0
- package/dist/interact-outside.d.cts +2 -0
- package/dist/interact-outside.d.mts +2 -0
- package/dist/interact-outside.mjs +5 -0
- package/dist/json-tree-utils.cjs +1512 -0
- package/dist/json-tree-utils.d.cts +117 -0
- package/dist/json-tree-utils.d.mts +117 -0
- package/dist/json-tree-utils.mjs +1463 -0
- package/dist/list-collection-BIMJGQjn.d.cts +61 -0
- package/dist/list-collection-Db3eixRU.d.mts +61 -0
- package/dist/live-region-CcZPGo89.cjs +52 -0
- package/dist/live-region-CnPh21WH.mjs +46 -0
- package/dist/live-region.cjs +3 -0
- package/dist/live-region.d.cts +2 -0
- package/dist/live-region.d.mts +2 -0
- package/dist/live-region.mjs +3 -0
- package/dist/machines/accordion/index.cjs +328 -0
- package/dist/machines/accordion/index.d.cts +83 -0
- package/dist/machines/accordion/index.d.mts +83 -0
- package/dist/machines/accordion/index.mjs +322 -0
- package/dist/machines/async-list/index.cjs +311 -0
- package/dist/machines/async-list/index.d.cts +89 -0
- package/dist/machines/async-list/index.d.mts +89 -0
- package/dist/machines/async-list/index.mjs +310 -0
- package/dist/machines/avatar/index.cjs +169 -0
- package/dist/machines/avatar/index.d.cts +63 -0
- package/dist/machines/avatar/index.d.mts +63 -0
- package/dist/machines/avatar/index.mjs +165 -0
- package/dist/machines/bottom-sheet/index.cjs +676 -0
- package/dist/machines/bottom-sheet/index.d.cts +239 -0
- package/dist/machines/bottom-sheet/index.d.mts +239 -0
- package/dist/machines/bottom-sheet/index.mjs +672 -0
- package/dist/machines/carousel/index.cjs +859 -0
- package/dist/machines/carousel/index.d.cts +146 -0
- package/dist/machines/carousel/index.d.mts +146 -0
- package/dist/machines/carousel/index.mjs +851 -0
- package/dist/machines/checkbox/index.cjs +316 -0
- package/dist/machines/checkbox/index.d.cts +81 -0
- package/dist/machines/checkbox/index.d.mts +81 -0
- package/dist/machines/checkbox/index.mjs +312 -0
- package/dist/machines/clipboard/index.cjs +225 -0
- package/dist/machines/clipboard/index.d.cts +68 -0
- package/dist/machines/clipboard/index.d.mts +68 -0
- package/dist/machines/clipboard/index.mjs +219 -0
- package/dist/machines/collapsible/index.cjs +362 -0
- package/dist/machines/collapsible/index.d.cts +82 -0
- package/dist/machines/collapsible/index.d.mts +82 -0
- package/dist/machines/collapsible/index.mjs +358 -0
- package/dist/machines/color-picker/index.cjs +1529 -0
- package/dist/machines/color-picker/index.d.cts +205 -0
- package/dist/machines/color-picker/index.d.mts +205 -0
- package/dist/machines/color-picker/index.mjs +1514 -0
- package/dist/machines/combobox/index.cjs +1593 -0
- package/dist/machines/combobox/index.d.cts +214 -0
- package/dist/machines/combobox/index.d.mts +214 -0
- package/dist/machines/combobox/index.mjs +1582 -0
- package/dist/machines/date-picker/index.cjs +2177 -0
- package/dist/machines/date-picker/index.d.cts +350 -0
- package/dist/machines/date-picker/index.d.mts +350 -0
- package/dist/machines/date-picker/index.mjs +2161 -0
- package/dist/machines/dialog/index.cjs +325 -0
- package/dist/machines/dialog/index.d.cts +80 -0
- package/dist/machines/dialog/index.d.mts +80 -0
- package/dist/machines/dialog/index.mjs +321 -0
- package/dist/machines/editable/index.cjs +551 -0
- package/dist/machines/editable/index.d.cts +114 -0
- package/dist/machines/editable/index.d.mts +114 -0
- package/dist/machines/editable/index.mjs +547 -0
- package/dist/machines/floating-panel/index.cjs +995 -0
- package/dist/machines/floating-panel/index.d.cts +147 -0
- package/dist/machines/floating-panel/index.d.mts +147 -0
- package/dist/machines/floating-panel/index.mjs +988 -0
- package/dist/machines/hover-card/index.cjs +383 -0
- package/dist/machines/hover-card/index.d.cts +69 -0
- package/dist/machines/hover-card/index.d.mts +69 -0
- package/dist/machines/hover-card/index.mjs +379 -0
- package/dist/machines/image-cropper/index.cjs +1995 -0
- package/dist/machines/image-cropper/index.d.cts +182 -0
- package/dist/machines/image-cropper/index.d.mts +182 -0
- package/dist/machines/image-cropper/index.mjs +1990 -0
- package/dist/machines/listbox/index.cjs +794 -0
- package/dist/machines/listbox/index.d.cts +168 -0
- package/dist/machines/listbox/index.d.mts +168 -0
- package/dist/machines/listbox/index.mjs +782 -0
- package/dist/machines/marquee/index.cjs +395 -0
- package/dist/machines/marquee/index.d.cts +102 -0
- package/dist/machines/marquee/index.d.mts +102 -0
- package/dist/machines/marquee/index.mjs +391 -0
- package/dist/machines/menu/index.cjs +1298 -0
- package/dist/machines/menu/index.d.cts +175 -0
- package/dist/machines/menu/index.d.mts +175 -0
- package/dist/machines/menu/index.mjs +1286 -0
- package/dist/machines/navigation-menu/index.cjs +861 -0
- package/dist/machines/navigation-menu/index.d.cts +127 -0
- package/dist/machines/navigation-menu/index.d.mts +127 -0
- package/dist/machines/navigation-menu/index.mjs +857 -0
- package/dist/machines/number-input/index.cjs +996 -0
- package/dist/machines/number-input/index.d.cts +134 -0
- package/dist/machines/number-input/index.d.mts +134 -0
- package/dist/machines/number-input/index.mjs +991 -0
- package/dist/machines/pagination/index.cjs +419 -0
- package/dist/machines/pagination/index.d.cts +139 -0
- package/dist/machines/pagination/index.d.mts +139 -0
- package/dist/machines/pagination/index.mjs +411 -0
- package/dist/machines/password-input/index.cjs +228 -0
- package/dist/machines/password-input/index.d.cts +71 -0
- package/dist/machines/password-input/index.d.mts +71 -0
- package/dist/machines/password-input/index.mjs +224 -0
- package/dist/machines/pin-input/index.cjs +523 -0
- package/dist/machines/pin-input/index.d.cts +105 -0
- package/dist/machines/pin-input/index.d.mts +105 -0
- package/dist/machines/pin-input/index.mjs +519 -0
- package/dist/machines/popover/index.cjs +430 -0
- package/dist/machines/popover/index.d.cts +88 -0
- package/dist/machines/popover/index.d.mts +88 -0
- package/dist/machines/popover/index.mjs +426 -0
- package/dist/machines/presence/index.cjs +192 -0
- package/dist/machines/presence/index.d.cts +44 -0
- package/dist/machines/presence/index.d.mts +44 -0
- package/dist/machines/presence/index.mjs +190 -0
- package/dist/machines/progress/index.cjs +288 -0
- package/dist/machines/progress/index.d.cts +96 -0
- package/dist/machines/progress/index.d.mts +96 -0
- package/dist/machines/progress/index.mjs +284 -0
- package/dist/machines/qr-code/index.cjs +172 -0
- package/dist/machines/qr-code/index.d.cts +70 -0
- package/dist/machines/qr-code/index.d.mts +70 -0
- package/dist/machines/qr-code/index.mjs +167 -0
- package/dist/machines/radio-group/index.cjs +436 -0
- package/dist/machines/radio-group/index.d.cts +106 -0
- package/dist/machines/radio-group/index.d.mts +106 -0
- package/dist/machines/radio-group/index.mjs +430 -0
- package/dist/machines/rating-group/index.cjs +405 -0
- package/dist/machines/rating-group/index.d.cts +101 -0
- package/dist/machines/rating-group/index.d.mts +101 -0
- package/dist/machines/rating-group/index.mjs +399 -0
- package/dist/machines/scroll-area/index.cjs +857 -0
- package/dist/machines/scroll-area/index.d.cts +159 -0
- package/dist/machines/scroll-area/index.d.mts +159 -0
- package/dist/machines/scroll-area/index.mjs +853 -0
- package/dist/machines/select/index.cjs +1165 -0
- package/dist/machines/select/index.d.cts +183 -0
- package/dist/machines/select/index.d.mts +183 -0
- package/dist/machines/select/index.mjs +1154 -0
- package/dist/machines/signature-pad/index.cjs +334 -0
- package/dist/machines/signature-pad/index.d.cts +108 -0
- package/dist/machines/signature-pad/index.d.mts +108 -0
- package/dist/machines/signature-pad/index.mjs +328 -0
- package/dist/machines/slider/index.cjs +957 -0
- package/dist/machines/slider/index.d.cts +149 -0
- package/dist/machines/slider/index.d.mts +149 -0
- package/dist/machines/slider/index.mjs +949 -0
- package/dist/machines/splitter/index.cjs +1112 -0
- package/dist/machines/splitter/index.d.cts +155 -0
- package/dist/machines/splitter/index.d.mts +155 -0
- package/dist/machines/splitter/index.mjs +1103 -0
- package/dist/machines/steps/index.cjs +289 -0
- package/dist/machines/steps/index.d.cts +97 -0
- package/dist/machines/steps/index.d.mts +97 -0
- package/dist/machines/steps/index.mjs +285 -0
- package/dist/machines/switch/index.cjs +305 -0
- package/dist/machines/switch/index.d.cts +80 -0
- package/dist/machines/switch/index.d.mts +80 -0
- package/dist/machines/switch/index.mjs +301 -0
- package/dist/machines/tabs/index.cjs +508 -0
- package/dist/machines/tabs/index.d.cts +111 -0
- package/dist/machines/tabs/index.d.mts +111 -0
- package/dist/machines/tabs/index.mjs +500 -0
- package/dist/machines/tags-input/index.cjs +1127 -0
- package/dist/machines/tags-input/index.d.cts +179 -0
- package/dist/machines/tags-input/index.d.mts +179 -0
- package/dist/machines/tags-input/index.mjs +1121 -0
- package/dist/machines/timer/index.cjs +329 -0
- package/dist/machines/timer/index.d.cts +98 -0
- package/dist/machines/timer/index.d.mts +98 -0
- package/dist/machines/timer/index.mjs +324 -0
- package/dist/machines/toast/index.cjs +1155 -0
- package/dist/machines/toast/index.d.cts +195 -0
- package/dist/machines/toast/index.d.mts +195 -0
- package/dist/machines/toast/index.mjs +1151 -0
- package/dist/machines/toggle/index.cjs +103 -0
- package/dist/machines/toggle/index.d.cts +46 -0
- package/dist/machines/toggle/index.d.mts +46 -0
- package/dist/machines/toggle/index.mjs +99 -0
- package/dist/machines/toggle-group/index.cjs +328 -0
- package/dist/machines/toggle-group/index.d.cts +81 -0
- package/dist/machines/toggle-group/index.d.mts +81 -0
- package/dist/machines/toggle-group/index.mjs +322 -0
- package/dist/machines/tooltip/index.cjs +516 -0
- package/dist/machines/tooltip/index.d.cts +71 -0
- package/dist/machines/tooltip/index.d.mts +71 -0
- package/dist/machines/tooltip/index.mjs +512 -0
- package/dist/machines/tour/index.cjs +1108 -0
- package/dist/machines/tour/index.d.cts +206 -0
- package/dist/machines/tour/index.d.mts +206 -0
- package/dist/machines/tour/index.mjs +1101 -0
- package/dist/machines/tree-view/index.cjs +1271 -0
- package/dist/machines/tree-view/index.d.cts +215 -0
- package/dist/machines/tree-view/index.d.mts +215 -0
- package/dist/machines/tree-view/index.mjs +1263 -0
- package/dist/node-BctU8GXk.d.mts +24 -0
- package/dist/node-CSsuPZVZ.d.cts +24 -0
- package/dist/popper-BPJeAtcA.mjs +349 -0
- package/dist/popper-D0FAW_p7.cjs +373 -0
- package/dist/popper.cjs +8 -0
- package/dist/popper.d.cts +74 -0
- package/dist/popper.d.mts +2 -0
- package/dist/popper.mjs +5 -0
- package/dist/raf-BnlYUlDi.d.mts +15 -0
- package/dist/raf-Cd2FGy0z.d.cts +15 -0
- package/dist/rect-utils-0ellN0a_.mjs +854 -0
- package/dist/rect-utils-DKLRhP8G.cjs +1147 -0
- package/dist/rect-utils.cjs +51 -0
- package/dist/rect-utils.d.cts +198 -0
- package/dist/rect-utils.d.mts +198 -0
- package/dist/rect-utils.mjs +3 -0
- package/dist/remove-scroll-Lrfv79X_.mjs +58 -0
- package/dist/remove-scroll-Uvzg1L9r.cjs +63 -0
- package/dist/remove-scroll.cjs +0 -0
- package/dist/remove-scroll.d.cts +1 -0
- package/dist/remove-scroll.d.mts +1 -0
- package/dist/remove-scroll.mjs +1 -0
- package/dist/scroll-snap-CrTmQRzA.mjs +152 -0
- package/dist/scroll-snap-zyiZLv7W.cjs +175 -0
- package/dist/scroll-snap.cjs +7 -0
- package/dist/scroll-snap.d.cts +14 -0
- package/dist/scroll-snap.d.mts +14 -0
- package/dist/scroll-snap.mjs +4 -0
- package/dist/selection-BIhSzkF7.d.mts +50 -0
- package/dist/selection-CS1GBp8e.d.cts +50 -0
- package/dist/store-BZcXv49B.cjs +305 -0
- package/dist/store-DEojWy9H.mjs +263 -0
- package/dist/store.cjs +9 -0
- package/dist/store.d.cts +26 -0
- package/dist/store.d.mts +26 -0
- package/dist/store.mjs +3 -0
- package/dist/stringify-state.cjs +49 -0
- package/dist/stringify-state.d.cts +8 -0
- package/dist/stringify-state.d.mts +8 -0
- package/dist/stringify-state.mjs +46 -0
- package/dist/tree-collection-BwU5WhGQ.d.mts +78 -0
- package/dist/tree-collection-DP_eznnI.d.cts +78 -0
- package/dist/typeahead-BdNwVP09.d.cts +45 -0
- package/dist/typeahead-XN6lZ7G9.d.mts +45 -0
- package/dist/types-BivBkYg9.d.cts +57 -0
- package/dist/types-Bl_6JtPQ.d.mts +57 -0
- package/dist/types-CPUMVt7c.d.mts +54 -0
- package/dist/types-CT_W6HWr.d.cts +54 -0
- package/dist/types-DDTcG99l.d.mts +201 -0
- package/dist/types-DejIu60O.d.cts +201 -0
- package/dist/types-DiIdKZ3K.d.cts +45 -0
- package/dist/types-GxLIgJib.d.cts +17 -0
- package/dist/types.cjs +15 -0
- package/dist/types.d.cts +2 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.mjs +14 -0
- package/dist/utils-BZyrxWWR.mjs +525 -0
- package/dist/utils-_6frwjgJ.cjs +1040 -0
- package/dist/utils.cjs +88 -0
- package/dist/utils.d.cts +144 -0
- package/dist/utils.d.mts +144 -0
- package/dist/utils.mjs +3 -0
- package/dist/wait-for-CMjPsqWk.d.cts +10 -0
- package/dist/wait-for-D2nkdD4z.d.mts +10 -0
- package/package.json +399 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/shared/interact-outside/index.d.ts
|
|
2
|
+
interface InteractOutsideHandlers {
|
|
3
|
+
onPointerDownOutside?: ((event: PointerDownOutsideEvent) => void) | undefined;
|
|
4
|
+
onFocusOutside?: ((event: FocusOutsideEvent) => void) | undefined;
|
|
5
|
+
onInteractOutside?: ((event: InteractOutsideEvent) => void) | undefined;
|
|
6
|
+
}
|
|
7
|
+
interface InteractOutsideOptions extends InteractOutsideHandlers {
|
|
8
|
+
exclude?: ((target: HTMLElement) => boolean) | undefined;
|
|
9
|
+
defer?: boolean | undefined;
|
|
10
|
+
followControlledElements?: boolean | undefined;
|
|
11
|
+
}
|
|
12
|
+
interface EventDetails<T> {
|
|
13
|
+
originalEvent: T;
|
|
14
|
+
contextmenu: boolean;
|
|
15
|
+
focusable: boolean;
|
|
16
|
+
target: EventTarget;
|
|
17
|
+
}
|
|
18
|
+
type PointerDownOutsideEvent = CustomEvent<EventDetails<PointerEvent>>;
|
|
19
|
+
type FocusOutsideEvent = CustomEvent<EventDetails<FocusEvent>>;
|
|
20
|
+
type InteractOutsideEvent = PointerDownOutsideEvent | FocusOutsideEvent;
|
|
21
|
+
type MaybeElement = HTMLElement | null | undefined;
|
|
22
|
+
type NodeOrFn = MaybeElement | (() => MaybeElement);
|
|
23
|
+
declare function trackInteractOutside(nodeOrFn: NodeOrFn, options: InteractOutsideOptions): () => void;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { InteractOutsideOptions as a, PointerDownOutsideEvent as c, InteractOutsideHandlers as i, trackInteractOutside as l, FocusOutsideEvent as n, MaybeElement as o, InteractOutsideEvent as r, NodeOrFn as s, EventDetails as t };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as _internationalized_date0 from "@internationalized/date";
|
|
2
|
+
import { Calendar, DateDuration, DateFormatter, DateValue } from "@internationalized/date";
|
|
3
|
+
|
|
4
|
+
//#region src/shared/date-utils/types.d.ts
|
|
5
|
+
type DateGranularity = "day" | "hour" | "minute" | "second" | "year" | "month";
|
|
6
|
+
type DateAlignment = "start" | "end" | "center";
|
|
7
|
+
type DateAvailableFn = (date: DateValue, locale: string) => boolean;
|
|
8
|
+
type DateAdjustFn = (options: {
|
|
9
|
+
startDate: DateValue;
|
|
10
|
+
focusedDate: DateValue;
|
|
11
|
+
}) => {
|
|
12
|
+
startDate: DateValue;
|
|
13
|
+
focusedDate: DateValue;
|
|
14
|
+
endDate: DateValue;
|
|
15
|
+
};
|
|
16
|
+
type DateRangePreset = "thisWeek" | "lastWeek" | "thisMonth" | "lastMonth" | "thisQuarter" | "lastQuarter" | "thisYear" | "lastYear" | "last3Days" | "last7Days" | "last14Days" | "last30Days" | "last90Days";
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/shared/date-utils/align.d.ts
|
|
19
|
+
declare function alignDate(date: DateValue, alignment: DateAlignment, duration: DateDuration, locale: string, min?: DateValue | undefined, max?: DateValue | undefined): DateValue;
|
|
20
|
+
declare function alignStartDate(date: DateValue, startDate: DateValue, endDate: DateValue, duration: DateDuration, locale: string, min?: DateValue | undefined, max?: DateValue | undefined): DateValue;
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/shared/date-utils/assertion.d.ts
|
|
23
|
+
declare function isDateEqual(dateA: DateValue | null | undefined, dateB?: DateValue | null): boolean;
|
|
24
|
+
declare function isDateUnavailable(date: DateValue | null, isUnavailable: DateAvailableFn | undefined, locale: string, minValue?: DateValue | null, maxValue?: DateValue | null): boolean;
|
|
25
|
+
declare function isDateOutsideRange(date: DateValue, startDate?: DateValue | null, endDate?: DateValue | null): boolean;
|
|
26
|
+
declare function isPreviousRangeInvalid(startDate: DateValue, minValue?: DateValue | null, maxValue?: DateValue | null): boolean;
|
|
27
|
+
declare function isNextRangeInvalid(endDate: DateValue, minValue?: DateValue | null, maxValue?: DateValue | null): boolean;
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/shared/date-utils/constrain.d.ts
|
|
30
|
+
declare function alignCenter(date: DateValue, duration: DateDuration, locale: string, min?: DateValue, max?: DateValue): DateValue;
|
|
31
|
+
declare function alignStart(date: DateValue, duration: DateDuration, locale: string, min?: DateValue, max?: DateValue): DateValue;
|
|
32
|
+
declare function alignEnd(date: DateValue, duration: DateDuration, locale: string, min?: DateValue, max?: DateValue): DateValue;
|
|
33
|
+
declare function constrainStart(date: DateValue, aligned: DateValue, duration: DateDuration, locale: string, min?: DateValue, max?: DateValue): DateValue;
|
|
34
|
+
declare function constrainValue(date: DateValue, minValue?: DateValue, maxValue?: DateValue): DateValue;
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/shared/date-utils/duration.d.ts
|
|
37
|
+
declare function getUnitDuration(duration: DateDuration): {
|
|
38
|
+
years?: number;
|
|
39
|
+
months?: number;
|
|
40
|
+
weeks?: number;
|
|
41
|
+
days?: number;
|
|
42
|
+
};
|
|
43
|
+
declare function getEndDate(startDate: DateValue, duration: DateDuration): _internationalized_date0.CalendarDate | _internationalized_date0.CalendarDateTime | _internationalized_date0.ZonedDateTime;
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/shared/date-utils/format.d.ts
|
|
46
|
+
declare function formatRange(startDate: DateValue, endDate: DateValue, formatter: DateFormatter, toString: (start: string, end: string) => string, timeZone: string): string;
|
|
47
|
+
declare function formatSelectedDate(startDate: DateValue | null | undefined, endDate: DateValue | null, locale: string, timeZone: string): string;
|
|
48
|
+
declare function formatVisibleRange(startDate: DateValue, endDate: DateValue | null, locale: string, timeZone: string): string;
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/shared/date-utils/formatter.d.ts
|
|
51
|
+
declare function getDayFormatter(locale: string, timeZone: string): DateFormatter;
|
|
52
|
+
declare function getMonthFormatter(locale: string, timeZone: string): DateFormatter;
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/shared/date-utils/date-month.d.ts
|
|
55
|
+
declare function getStartOfWeek(date: DateValue, locale: string, firstDayOfWeek?: number): DateValue;
|
|
56
|
+
declare function getEndOfWeek(date: DateValue, locale: string, firstDayOfWeek?: number): DateValue;
|
|
57
|
+
declare function getDaysInWeek(weekIndex: number, from: DateValue, locale: string, firstDayOfWeek?: number): DateValue[];
|
|
58
|
+
declare function getMonthDays(from: DateValue, locale: string, numOfWeeks?: number, firstDayOfWeek?: number): DateValue[][];
|
|
59
|
+
declare function getWeekdayFormats(locale: string, timeZone: string): <T extends DateValue | Date>(value: T) => {
|
|
60
|
+
value: T;
|
|
61
|
+
short: string;
|
|
62
|
+
long: string;
|
|
63
|
+
narrow: string;
|
|
64
|
+
};
|
|
65
|
+
declare function getWeekDays(date: DateValue, startOfWeekProp: number | undefined, timeZone: string, locale: string): {
|
|
66
|
+
value: _internationalized_date0.CalendarDate | _internationalized_date0.CalendarDateTime | _internationalized_date0.ZonedDateTime;
|
|
67
|
+
short: string;
|
|
68
|
+
long: string;
|
|
69
|
+
narrow: string;
|
|
70
|
+
}[];
|
|
71
|
+
declare function getMonthNames(locale: string, format?: Intl.DateTimeFormatOptions["month"]): string[];
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/shared/date-utils/date-year.d.ts
|
|
74
|
+
interface YearsRange {
|
|
75
|
+
from: number;
|
|
76
|
+
to: number;
|
|
77
|
+
}
|
|
78
|
+
declare function getYearsRange(range: YearsRange): number[];
|
|
79
|
+
declare function normalizeYear(year: string | null | undefined): string | undefined;
|
|
80
|
+
declare function getDecadeRange(year: number, opts?: {
|
|
81
|
+
strict?: boolean;
|
|
82
|
+
}): number[];
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/shared/date-utils/mutation.d.ts
|
|
85
|
+
declare function getTodayDate(timeZone?: string): _internationalized_date0.CalendarDate;
|
|
86
|
+
declare function setCalendar(date: DateValue, calendar: Calendar): _internationalized_date0.CalendarDateTime;
|
|
87
|
+
declare function setDate(date: DateValue, startDate: DateValue, isDateUnavailable: DateAvailableFn, locale: string, minValue: DateValue, maxValue: DateValue): DateValue | undefined;
|
|
88
|
+
declare function getPreviousAvailableDate(date: DateValue, minValue: DateValue, locale: string, isDateUnavailable?: DateAvailableFn): DateValue | undefined;
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region src/shared/date-utils/pagination.d.ts
|
|
91
|
+
interface AdjustDateParams {
|
|
92
|
+
startDate: DateValue;
|
|
93
|
+
focusedDate: DateValue;
|
|
94
|
+
}
|
|
95
|
+
interface AdjustDateReturn extends AdjustDateParams {
|
|
96
|
+
endDate: DateValue;
|
|
97
|
+
}
|
|
98
|
+
declare function getAdjustedDateFn(visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): (options: AdjustDateParams) => AdjustDateReturn;
|
|
99
|
+
declare function getNextPage(focusedDate: DateValue, startDate: DateValue, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn;
|
|
100
|
+
declare function getPreviousPage(focusedDate: DateValue, startDate: DateValue, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn;
|
|
101
|
+
declare function getNextRow(focusedDate: DateValue, startDate: DateValue, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn | undefined;
|
|
102
|
+
declare function getPreviousRow(focusedDate: DateValue, startDate: DateValue, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn | undefined;
|
|
103
|
+
declare function getSectionStart(focusedDate: DateValue, startDate: DateValue, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn | undefined;
|
|
104
|
+
declare function getSectionEnd(focusedDate: DateValue, startDate: DateValue, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn | undefined;
|
|
105
|
+
declare function getNextSection(focusedDate: DateValue, startDate: DateValue, larger: boolean, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn | undefined;
|
|
106
|
+
declare function getPreviousSection(focusedDate: DateValue, startDate: DateValue, larger: boolean, visibleDuration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue): AdjustDateReturn | undefined;
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/shared/date-utils/parse-date.d.ts
|
|
109
|
+
declare function parseDateString(date: string, locale: string, timeZone: string): DateValue | undefined;
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/shared/date-utils/preset.d.ts
|
|
112
|
+
declare function getDateRangePreset(preset: DateRangePreset, locale: string, timeZone: string): [DateValue, DateValue];
|
|
113
|
+
//#endregion
|
|
114
|
+
export { getMonthFormatter as A, constrainValue as B, getEndOfWeek as C, getWeekDays as D, getStartOfWeek as E, getUnitDuration as F, isPreviousRangeInvalid as G, isDateOutsideRange as H, alignCenter as I, DateAdjustFn as J, alignDate as K, alignEnd as L, formatSelectedDate as M, formatVisibleRange as N, getWeekdayFormats as O, getEndDate as P, alignStart as R, getDaysInWeek as S, getMonthNames as T, isDateUnavailable as U, isDateEqual as V, isNextRangeInvalid as W, DateRangePreset as X, DateGranularity as Y, setDate as _, getAdjustedDateFn as a, getYearsRange as b, getNextSection as c, getPreviousSection as d, getSectionEnd as f, setCalendar as g, getTodayDate as h, AdjustDateReturn as i, formatRange as j, getDayFormatter as k, getPreviousPage as l, getPreviousAvailableDate as m, parseDateString as n, getNextPage as o, getSectionStart as p, alignStartDate as q, AdjustDateParams as r, getNextRow as s, getDateRangePreset as t, getPreviousRow as u, YearsRange as v, getMonthDays as w, normalizeYear as x, getDecadeRange as y, constrainStart as z };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/shared/live-region/index.d.ts
|
|
2
|
+
interface LiveRegionOptions {
|
|
3
|
+
level: "polite" | "assertive";
|
|
4
|
+
document?: Document | undefined;
|
|
5
|
+
root?: HTMLElement | null | undefined;
|
|
6
|
+
delay?: number | undefined;
|
|
7
|
+
}
|
|
8
|
+
type LiveRegion = ReturnType<typeof createLiveRegion>;
|
|
9
|
+
declare function createLiveRegion(opts?: Partial<LiveRegionOptions>): {
|
|
10
|
+
announce: (message: string, delay?: number) => void;
|
|
11
|
+
destroy: () => void;
|
|
12
|
+
toJSON(): string;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { LiveRegionOptions as n, createLiveRegion as r, LiveRegion as t };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/shared/live-region/index.d.ts
|
|
2
|
+
interface LiveRegionOptions {
|
|
3
|
+
level: "polite" | "assertive";
|
|
4
|
+
document?: Document | undefined;
|
|
5
|
+
root?: HTMLElement | null | undefined;
|
|
6
|
+
delay?: number | undefined;
|
|
7
|
+
}
|
|
8
|
+
type LiveRegion = ReturnType<typeof createLiveRegion>;
|
|
9
|
+
declare function createLiveRegion(opts?: Partial<LiveRegionOptions>): {
|
|
10
|
+
announce: (message: string, delay?: number) => void;
|
|
11
|
+
destroy: () => void;
|
|
12
|
+
toJSON(): string;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { LiveRegionOptions as n, createLiveRegion as r, LiveRegion as t };
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { AutoUpdateOptions, Boundary, ComputePositionReturn, Placement, Placement as Placement$1, VirtualElement } from "@floating-ui/dom";
|
|
2
|
+
|
|
3
|
+
//#region src/shared/popper/types.d.ts
|
|
4
|
+
type MaybeRectElement = HTMLElement | VirtualElement | null;
|
|
5
|
+
type MaybeElement = HTMLElement | null;
|
|
6
|
+
type MaybeFn<T> = T | (() => T);
|
|
7
|
+
type PlacementSide = "top" | "right" | "bottom" | "left";
|
|
8
|
+
type PlacementAlign = "start" | "center" | "end";
|
|
9
|
+
interface AnchorRect {
|
|
10
|
+
x?: number | undefined;
|
|
11
|
+
y?: number | undefined;
|
|
12
|
+
width?: number | undefined;
|
|
13
|
+
height?: number | undefined;
|
|
14
|
+
}
|
|
15
|
+
interface PositioningOptions {
|
|
16
|
+
hideWhenDetached?: boolean | undefined;
|
|
17
|
+
strategy?: "absolute" | "fixed" | undefined;
|
|
18
|
+
placement?: Placement$1 | undefined;
|
|
19
|
+
offset?: {
|
|
20
|
+
mainAxis?: number | undefined;
|
|
21
|
+
crossAxis?: number | undefined;
|
|
22
|
+
} | undefined;
|
|
23
|
+
gutter?: number | undefined;
|
|
24
|
+
shift?: number | undefined;
|
|
25
|
+
overflowPadding?: number | undefined;
|
|
26
|
+
arrowPadding?: number | undefined;
|
|
27
|
+
flip?: boolean | Placement$1[] | undefined;
|
|
28
|
+
slide?: boolean | undefined;
|
|
29
|
+
overlap?: boolean | undefined;
|
|
30
|
+
sameWidth?: boolean | undefined;
|
|
31
|
+
fitViewport?: boolean | undefined;
|
|
32
|
+
boundary?: (() => Boundary) | Boundary | "clipping-ancestors" | undefined;
|
|
33
|
+
listeners?: boolean | AutoUpdateOptions | undefined;
|
|
34
|
+
onComplete?: ((data: ComputePositionReturn) => void) | undefined;
|
|
35
|
+
onPositioned?: ((data: {
|
|
36
|
+
placed: boolean;
|
|
37
|
+
}) => void) | undefined;
|
|
38
|
+
getAnchorRect?: ((element: HTMLElement | VirtualElement | null) => AnchorRect | null) | undefined;
|
|
39
|
+
updatePosition?: ((data: {
|
|
40
|
+
updatePosition: () => Promise<void>;
|
|
41
|
+
floatingElement: HTMLElement | null;
|
|
42
|
+
}) => void | Promise<void>) | undefined;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/shared/popper/get-placement.d.ts
|
|
46
|
+
declare function getPlacement(referenceOrFn: MaybeFn<MaybeRectElement>, floatingOrFn: MaybeFn<MaybeElement>, opts?: PositioningOptions & {
|
|
47
|
+
defer?: boolean | undefined;
|
|
48
|
+
}): () => void;
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/shared/popper/middleware.d.ts
|
|
51
|
+
declare const cssVars: {
|
|
52
|
+
arrowSize: {
|
|
53
|
+
variable: string;
|
|
54
|
+
reference: string;
|
|
55
|
+
};
|
|
56
|
+
arrowSizeHalf: {
|
|
57
|
+
variable: string;
|
|
58
|
+
reference: string;
|
|
59
|
+
};
|
|
60
|
+
arrowBg: {
|
|
61
|
+
variable: string;
|
|
62
|
+
reference: string;
|
|
63
|
+
};
|
|
64
|
+
transformOrigin: {
|
|
65
|
+
variable: string;
|
|
66
|
+
reference: string;
|
|
67
|
+
};
|
|
68
|
+
arrowOffset: {
|
|
69
|
+
variable: string;
|
|
70
|
+
reference: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
//#endregion
|
|
74
|
+
//#region src/shared/popper/get-styles.d.ts
|
|
75
|
+
interface GetPlacementStylesOptions {
|
|
76
|
+
placement?: Placement | undefined;
|
|
77
|
+
}
|
|
78
|
+
declare function getPlacementStyles(options?: Pick<PositioningOptions, "placement" | "sameWidth" | "fitViewport" | "strategy">): {
|
|
79
|
+
arrow: {
|
|
80
|
+
readonly [cssVars.arrowSizeHalf.variable]: `calc(${string} / 2)`;
|
|
81
|
+
readonly [cssVars.arrowOffset.variable]: `calc(${string} * -1)`;
|
|
82
|
+
readonly position: "absolute";
|
|
83
|
+
readonly width: string;
|
|
84
|
+
readonly height: string;
|
|
85
|
+
};
|
|
86
|
+
arrowTip: {
|
|
87
|
+
readonly transform: any;
|
|
88
|
+
readonly background: string;
|
|
89
|
+
readonly top: "0";
|
|
90
|
+
readonly left: "0";
|
|
91
|
+
readonly width: "100%";
|
|
92
|
+
readonly height: "100%";
|
|
93
|
+
readonly position: "absolute";
|
|
94
|
+
readonly zIndex: "inherit";
|
|
95
|
+
};
|
|
96
|
+
floating: {
|
|
97
|
+
readonly position: "absolute" | "fixed";
|
|
98
|
+
readonly isolation: "isolate";
|
|
99
|
+
readonly minWidth: "max-content" | undefined;
|
|
100
|
+
readonly width: "var(--reference-width)" | undefined;
|
|
101
|
+
readonly maxWidth: "var(--available-width)" | undefined;
|
|
102
|
+
readonly maxHeight: "var(--available-height)" | undefined;
|
|
103
|
+
readonly pointerEvents: "none" | undefined;
|
|
104
|
+
readonly top: "0px";
|
|
105
|
+
readonly left: "0px";
|
|
106
|
+
readonly transform: "translate3d(var(--x), var(--y), 0)" | "translate3d(0, -100vh, 0)";
|
|
107
|
+
readonly zIndex: "var(--z-index)";
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/shared/popper/placement.d.ts
|
|
112
|
+
declare function isValidPlacement(v: string): v is Placement;
|
|
113
|
+
declare function getPlacementSide(placement: Placement): PlacementSide;
|
|
114
|
+
//#endregion
|
|
115
|
+
export { getPlacement as a, Boundary as c, PlacementAlign as d, PlacementSide as f, getPlacementStyles as i, ComputePositionReturn as l, isValidPlacement as n, AnchorRect as o, PositioningOptions as p, GetPlacementStylesOptions as r, AutoUpdateOptions as s, getPlacementSide as t, Placement$1 as u };
|
package/dist/index.cjs
ADDED
|
File without changes
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { A as getNearestOverflowAncestor, Kt as isControlledElement, Qt as getDocument, U as raf, Xt as contains, et as isFocusable, ft as getEventTarget, ht as isContextMenuEvent, ln as isHTMLElement, pn as isShadowRoot, rn as getWindow, st as addDomEvent, zt as isTouchDevice } from "./dom-query-DFCRhyj1.mjs";
|
|
2
|
+
import { W as callAll } from "./utils-BZyrxWWR.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/shared/interact-outside/frame-utils.ts
|
|
5
|
+
function getWindowFrames(win) {
|
|
6
|
+
const frames = {
|
|
7
|
+
each(cb) {
|
|
8
|
+
for (let i = 0; i < win.frames?.length; i += 1) {
|
|
9
|
+
const frame = win.frames[i];
|
|
10
|
+
if (frame) cb(frame);
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
addEventListener(event, listener, options) {
|
|
14
|
+
frames.each((frame) => {
|
|
15
|
+
try {
|
|
16
|
+
frame.document.addEventListener(event, listener, options);
|
|
17
|
+
} catch {}
|
|
18
|
+
});
|
|
19
|
+
return () => {
|
|
20
|
+
try {
|
|
21
|
+
frames.removeEventListener(event, listener, options);
|
|
22
|
+
} catch {}
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
removeEventListener(event, listener, options) {
|
|
26
|
+
frames.each((frame) => {
|
|
27
|
+
try {
|
|
28
|
+
frame.document.removeEventListener(event, listener, options);
|
|
29
|
+
} catch {}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return frames;
|
|
34
|
+
}
|
|
35
|
+
function getParentWindow(win) {
|
|
36
|
+
const parent = win.frameElement != null ? win.parent : null;
|
|
37
|
+
return {
|
|
38
|
+
addEventListener: (event, listener, options) => {
|
|
39
|
+
try {
|
|
40
|
+
parent?.addEventListener(event, listener, options);
|
|
41
|
+
} catch {}
|
|
42
|
+
return () => {
|
|
43
|
+
try {
|
|
44
|
+
parent?.removeEventListener(event, listener, options);
|
|
45
|
+
} catch {}
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
removeEventListener: (event, listener, options) => {
|
|
49
|
+
try {
|
|
50
|
+
parent?.removeEventListener(event, listener, options);
|
|
51
|
+
} catch {}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/shared/interact-outside/index.ts
|
|
58
|
+
const POINTER_OUTSIDE_EVENT = "pointerdown.outside";
|
|
59
|
+
const FOCUS_OUTSIDE_EVENT = "focus.outside";
|
|
60
|
+
function isComposedPathFocusable(composedPath) {
|
|
61
|
+
for (const node of composedPath) if (isHTMLElement(node) && isFocusable(node)) return true;
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
const isPointerEvent = (event) => "clientY" in event;
|
|
65
|
+
function isEventPointWithin(node, event) {
|
|
66
|
+
if (!isPointerEvent(event) || !node) return false;
|
|
67
|
+
const rect = node.getBoundingClientRect();
|
|
68
|
+
if (rect.width === 0 || rect.height === 0) return false;
|
|
69
|
+
return rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;
|
|
70
|
+
}
|
|
71
|
+
function isPointInRect(rect, point) {
|
|
72
|
+
return rect.y <= point.y && point.y <= rect.y + rect.height && rect.x <= point.x && point.x <= rect.x + rect.width;
|
|
73
|
+
}
|
|
74
|
+
function isEventWithinScrollbar(event, ancestor) {
|
|
75
|
+
if (!ancestor || !isPointerEvent(event)) return false;
|
|
76
|
+
const isScrollableY = ancestor.scrollHeight > ancestor.clientHeight;
|
|
77
|
+
const onScrollbarY = isScrollableY && event.clientX > ancestor.offsetLeft + ancestor.clientWidth;
|
|
78
|
+
const isScrollableX = ancestor.scrollWidth > ancestor.clientWidth;
|
|
79
|
+
const onScrollbarX = isScrollableX && event.clientY > ancestor.offsetTop + ancestor.clientHeight;
|
|
80
|
+
if (!isPointInRect({
|
|
81
|
+
x: ancestor.offsetLeft,
|
|
82
|
+
y: ancestor.offsetTop,
|
|
83
|
+
width: ancestor.clientWidth + (isScrollableY ? 16 : 0),
|
|
84
|
+
height: ancestor.clientHeight + (isScrollableX ? 16 : 0)
|
|
85
|
+
}, {
|
|
86
|
+
x: event.clientX,
|
|
87
|
+
y: event.clientY
|
|
88
|
+
})) return false;
|
|
89
|
+
return onScrollbarY || onScrollbarX;
|
|
90
|
+
}
|
|
91
|
+
function trackInteractOutsideImpl(node, options) {
|
|
92
|
+
const { exclude, onFocusOutside, onPointerDownOutside, onInteractOutside, defer, followControlledElements = true } = options;
|
|
93
|
+
if (!node) return;
|
|
94
|
+
const doc = getDocument(node);
|
|
95
|
+
const win = getWindow(node);
|
|
96
|
+
const frames = getWindowFrames(win);
|
|
97
|
+
const parentWin = getParentWindow(win);
|
|
98
|
+
function isEventOutside(event, target) {
|
|
99
|
+
if (!isHTMLElement(target)) return false;
|
|
100
|
+
if (!target.isConnected) return false;
|
|
101
|
+
if (contains(node, target)) return false;
|
|
102
|
+
if (isEventPointWithin(node, event)) return false;
|
|
103
|
+
if (followControlledElements && isControlledElement(node, target)) return false;
|
|
104
|
+
const triggerEl = doc.querySelector(`[aria-controls="${node.id}"]`);
|
|
105
|
+
if (triggerEl) {
|
|
106
|
+
if (isEventWithinScrollbar(event, getNearestOverflowAncestor(triggerEl))) return false;
|
|
107
|
+
}
|
|
108
|
+
if (isEventWithinScrollbar(event, getNearestOverflowAncestor(node))) return false;
|
|
109
|
+
return !exclude?.(target);
|
|
110
|
+
}
|
|
111
|
+
const pointerdownCleanups = /* @__PURE__ */ new Set();
|
|
112
|
+
const isInShadowRoot = isShadowRoot(node?.getRootNode());
|
|
113
|
+
function onPointerDown(event) {
|
|
114
|
+
function handler(clickEvent) {
|
|
115
|
+
const func = defer && !isTouchDevice() ? raf : (v) => v();
|
|
116
|
+
const evt = clickEvent ?? event;
|
|
117
|
+
const composedPath = evt?.composedPath?.() ?? [evt?.target];
|
|
118
|
+
func(() => {
|
|
119
|
+
const target = isInShadowRoot ? composedPath[0] : getEventTarget(event);
|
|
120
|
+
if (!node || !isEventOutside(event, target)) return;
|
|
121
|
+
if (onPointerDownOutside || onInteractOutside) {
|
|
122
|
+
const handler$1 = callAll(onPointerDownOutside, onInteractOutside);
|
|
123
|
+
node.addEventListener(POINTER_OUTSIDE_EVENT, handler$1, { once: true });
|
|
124
|
+
}
|
|
125
|
+
fireCustomEvent(node, POINTER_OUTSIDE_EVENT, {
|
|
126
|
+
bubbles: false,
|
|
127
|
+
cancelable: true,
|
|
128
|
+
detail: {
|
|
129
|
+
originalEvent: evt,
|
|
130
|
+
contextmenu: isContextMenuEvent(evt),
|
|
131
|
+
focusable: isComposedPathFocusable(composedPath),
|
|
132
|
+
target
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
if (event.pointerType === "touch") {
|
|
138
|
+
pointerdownCleanups.forEach((fn) => fn());
|
|
139
|
+
pointerdownCleanups.add(addDomEvent(doc, "click", handler, { once: true }));
|
|
140
|
+
pointerdownCleanups.add(parentWin.addEventListener("click", handler, { once: true }));
|
|
141
|
+
pointerdownCleanups.add(frames.addEventListener("click", handler, { once: true }));
|
|
142
|
+
} else handler();
|
|
143
|
+
}
|
|
144
|
+
const cleanups = /* @__PURE__ */ new Set();
|
|
145
|
+
const timer = setTimeout(() => {
|
|
146
|
+
cleanups.add(addDomEvent(doc, "pointerdown", onPointerDown, true));
|
|
147
|
+
cleanups.add(parentWin.addEventListener("pointerdown", onPointerDown, true));
|
|
148
|
+
cleanups.add(frames.addEventListener("pointerdown", onPointerDown, true));
|
|
149
|
+
}, 0);
|
|
150
|
+
function onFocusin(event) {
|
|
151
|
+
(defer ? raf : (v) => v())(() => {
|
|
152
|
+
const composedPath = event?.composedPath?.() ?? [event?.target];
|
|
153
|
+
const target = isInShadowRoot ? composedPath[0] : getEventTarget(event);
|
|
154
|
+
if (!node || !isEventOutside(event, target)) return;
|
|
155
|
+
if (onFocusOutside || onInteractOutside) {
|
|
156
|
+
const handler = callAll(onFocusOutside, onInteractOutside);
|
|
157
|
+
node.addEventListener(FOCUS_OUTSIDE_EVENT, handler, { once: true });
|
|
158
|
+
}
|
|
159
|
+
fireCustomEvent(node, FOCUS_OUTSIDE_EVENT, {
|
|
160
|
+
bubbles: false,
|
|
161
|
+
cancelable: true,
|
|
162
|
+
detail: {
|
|
163
|
+
originalEvent: event,
|
|
164
|
+
contextmenu: false,
|
|
165
|
+
focusable: isFocusable(target),
|
|
166
|
+
target
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
if (!isTouchDevice()) {
|
|
172
|
+
cleanups.add(addDomEvent(doc, "focusin", onFocusin, true));
|
|
173
|
+
cleanups.add(parentWin.addEventListener("focusin", onFocusin, true));
|
|
174
|
+
cleanups.add(frames.addEventListener("focusin", onFocusin, true));
|
|
175
|
+
}
|
|
176
|
+
return () => {
|
|
177
|
+
clearTimeout(timer);
|
|
178
|
+
pointerdownCleanups.forEach((fn) => fn());
|
|
179
|
+
cleanups.forEach((fn) => fn());
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
function trackInteractOutside(nodeOrFn, options) {
|
|
183
|
+
const { defer } = options;
|
|
184
|
+
const func = defer ? raf : (v) => v();
|
|
185
|
+
const cleanups = [];
|
|
186
|
+
cleanups.push(func(() => {
|
|
187
|
+
const node = typeof nodeOrFn === "function" ? nodeOrFn() : nodeOrFn;
|
|
188
|
+
cleanups.push(trackInteractOutsideImpl(node, options));
|
|
189
|
+
}));
|
|
190
|
+
return () => {
|
|
191
|
+
cleanups.forEach((fn) => fn?.());
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
function fireCustomEvent(el, type, init) {
|
|
195
|
+
const event = new (el.ownerDocument.defaultView || window).CustomEvent(type, init);
|
|
196
|
+
return el.dispatchEvent(event);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
//#endregion
|
|
200
|
+
export { trackInteractOutside as t };
|