@spark-ui/components 14.0.0-beta.1 → 14.0.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/Button-B6rA3-e5.js +2 -0
- package/dist/{Button-C3xHNaGl.js.map → Button-B6rA3-e5.js.map} +1 -1
- package/dist/{Button-D32Avk2j.mjs → Button-C3C0aixy.mjs} +4 -4
- package/dist/{Button-D32Avk2j.mjs.map → Button-C3C0aixy.mjs.map} +1 -1
- package/dist/DialogContent.styles-BSfXHt21.mjs +61 -0
- package/dist/DialogContent.styles-BSfXHt21.mjs.map +1 -0
- package/dist/DialogContent.styles-bBs6l8Cy.js +2 -0
- package/dist/DialogContent.styles-bBs6l8Cy.js.map +1 -0
- package/dist/Icon-CF0W0LKr.js +2 -0
- package/dist/{Icon-Bf0XrmiR.js.map → Icon-CF0W0LKr.js.map} +1 -1
- package/dist/{Icon-D1RueiPY.mjs → Icon-Ck-dhfLd.mjs} +6 -6
- package/dist/{Icon-D1RueiPY.mjs.map → Icon-Ck-dhfLd.mjs.map} +1 -1
- package/dist/{IconButton-BY3gYXtU.mjs → IconButton-C62-axzv.mjs} +6 -6
- package/dist/{IconButton-BY3gYXtU.mjs.map → IconButton-C62-axzv.mjs.map} +1 -1
- package/dist/IconButton-D3g86WpZ.js +2 -0
- package/dist/{IconButton-Bf-EDzpI.js.map → IconButton-D3g86WpZ.js.map} +1 -1
- package/dist/Slot-D2Bbf8Gw.mjs +14 -0
- package/dist/{Slot-C98rL4yy.mjs.map → Slot-D2Bbf8Gw.mjs.map} +1 -1
- package/dist/Slot-DQ8z2zsy.js +2 -0
- package/dist/{Slot-ghrohQLA.js.map → Slot-DQ8z2zsy.js.map} +1 -1
- package/dist/Spinner-_Kffli3B.js +2 -0
- package/dist/{Spinner-DK8VEsaR.js.map → Spinner-_Kffli3B.js.map} +1 -1
- package/dist/{Spinner-CYL5kyzM.mjs → Spinner-jF3-zoh_.mjs} +3 -3
- package/dist/{Spinner-CYL5kyzM.mjs.map → Spinner-jF3-zoh_.mjs.map} +1 -1
- package/dist/{TextLink-3MEVs3No.mjs → TextLink-BuzFRWO6.mjs} +3 -3
- package/dist/{TextLink-3MEVs3No.mjs.map → TextLink-BuzFRWO6.mjs.map} +1 -1
- package/dist/TextLink-C3xDLsbC.js +2 -0
- package/dist/{TextLink-DD0VO37q.js.map → TextLink-C3xDLsbC.js.map} +1 -1
- package/dist/{VisuallyHidden-AoRh4WRK.js → VisuallyHidden-CB6Nx76j.js} +2 -2
- package/dist/{VisuallyHidden-AoRh4WRK.js.map → VisuallyHidden-CB6Nx76j.js.map} +1 -1
- package/dist/{VisuallyHidden-ByNP7ZUI.mjs → VisuallyHidden-KH1biLx-.mjs} +2 -2
- package/dist/{VisuallyHidden-ByNP7ZUI.mjs.map → VisuallyHidden-KH1biLx-.mjs.map} +1 -1
- package/dist/accordion/index.d.mts +15 -0
- package/dist/accordion/index.js +1 -1
- package/dist/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs +90 -608
- package/dist/accordion/index.mjs.map +1 -1
- package/dist/alert-dialog/AlertDialogPortal.d.ts +1 -1
- package/dist/alert-dialog/index.d.mts +38 -0
- package/dist/alert-dialog/index.js +1 -34
- package/dist/alert-dialog/index.js.map +1 -1
- package/dist/alert-dialog/index.mjs +139 -2475
- package/dist/alert-dialog/index.mjs.map +1 -1
- package/dist/avatar/index.d.mts +15 -0
- package/dist/avatar/index.js +1 -1
- package/dist/avatar/index.js.map +1 -1
- package/dist/avatar/index.mjs +4 -4
- package/dist/badge/index.d.mts +1 -0
- package/dist/badge/index.js +1 -1
- package/dist/badge/index.js.map +1 -1
- package/dist/badge/index.mjs +6 -6
- package/dist/breadcrumb/index.d.mts +12 -0
- package/dist/breadcrumb/index.js +1 -1
- package/dist/breadcrumb/index.js.map +1 -1
- package/dist/breadcrumb/index.mjs +21 -21
- package/dist/button/Button.d.ts +1 -1
- package/dist/button/index.d.mts +1 -0
- package/dist/button/index.js +1 -1
- package/dist/button/index.mjs +1 -1
- package/dist/button/variants/index.d.mts +5 -0
- package/dist/card/index.d.mts +8 -0
- package/dist/card/index.js +1 -1
- package/dist/card/index.js.map +1 -1
- package/dist/card/index.mjs +2 -2
- package/dist/carousel/index.d.mts +19 -0
- package/dist/carousel/index.js +1 -1
- package/dist/carousel/index.js.map +1 -1
- package/dist/carousel/index.mjs +3 -3
- package/dist/checkbox/index.d.mts +2 -0
- package/dist/checkbox/index.js +1 -1
- package/dist/checkbox/index.js.map +1 -1
- package/dist/checkbox/index.mjs +128 -364
- package/dist/checkbox/index.mjs.map +1 -1
- package/dist/chip/index.d.mts +15 -0
- package/dist/chip/index.js +1 -1
- package/dist/chip/index.js.map +1 -1
- package/dist/chip/index.mjs +196 -370
- package/dist/chip/index.mjs.map +1 -1
- package/dist/chip/variants/index.d.mts +3 -0
- package/dist/collapsible/index.d.mts +7 -0
- package/dist/collapsible/index.js +1 -1
- package/dist/collapsible/index.js.map +1 -1
- package/dist/collapsible/index.mjs +38 -213
- package/dist/collapsible/index.mjs.map +1 -1
- package/dist/combobox/index.d.mts +35 -0
- package/dist/combobox/index.js +1 -1
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +7 -7
- package/dist/combobox/utils/index.d.mts +14 -0
- package/dist/dialog/Dialog.d.ts +13 -13
- package/dist/dialog/DialogClose.d.ts +9 -8
- package/dist/dialog/DialogContent.d.ts +4 -4
- package/dist/dialog/DialogDescription.d.ts +3 -3
- package/dist/dialog/DialogOverlay.d.ts +5 -5
- package/dist/dialog/DialogPortal.d.ts +4 -4
- package/dist/dialog/DialogTitle.d.ts +3 -3
- package/dist/dialog/DialogTrigger.d.ts +5 -9
- package/dist/dialog/index.d.mts +37 -0
- package/dist/dialog/index.js +1 -1
- package/dist/dialog/index.js.map +1 -1
- package/dist/dialog/index.mjs +149 -159
- package/dist/dialog/index.mjs.map +1 -1
- package/dist/divider/index.d.mts +6 -0
- package/dist/divider/index.js +1 -1
- package/dist/divider/index.js.map +1 -1
- package/dist/divider/index.mjs +58 -76
- package/dist/divider/index.mjs.map +1 -1
- package/dist/drawer/Drawer.d.ts +12 -19
- package/dist/drawer/DrawerClose.d.ts +9 -5
- package/dist/drawer/DrawerContent.d.ts +5 -5
- package/dist/drawer/DrawerDescription.d.ts +4 -4
- package/dist/drawer/DrawerOverlay.d.ts +5 -5
- package/dist/drawer/DrawerPortal.d.ts +4 -4
- package/dist/drawer/DrawerTitle.d.ts +5 -5
- package/dist/drawer/DrawerTrigger.d.ts +5 -5
- package/dist/drawer/index.d.mts +37 -0
- package/dist/drawer/index.d.ts +2 -0
- package/dist/drawer/index.js +1 -1
- package/dist/drawer/index.js.map +1 -1
- package/dist/drawer/index.mjs +143 -114
- package/dist/drawer/index.mjs.map +1 -1
- package/dist/drawer/useRenderSlot.d.ts +3 -0
- package/dist/dropdown/index.d.mts +29 -0
- package/dist/dropdown/index.js +1 -1
- package/dist/dropdown/index.js.map +1 -1
- package/dist/dropdown/index.mjs +5 -5
- package/dist/file-upload/index.d.mts +22 -0
- package/dist/file-upload/index.js +1 -1
- package/dist/file-upload/index.js.map +1 -1
- package/dist/file-upload/index.mjs +6 -6
- package/dist/form-field/index.d.mts +31 -0
- package/dist/form-field/index.js +1 -1
- package/dist/form-field/index.js.map +1 -1
- package/dist/form-field/index.mjs +47 -47
- package/dist/icon/index.d.mts +1 -0
- package/dist/icon/index.js +1 -1
- package/dist/icon/index.mjs +1 -1
- package/dist/icon-button/index.d.mts +1 -0
- package/dist/icon-button/index.js +1 -1
- package/dist/icon-button/index.mjs +1 -1
- package/dist/input/index.d.mts +21 -0
- package/dist/input/index.js +1 -1
- package/dist/input/index.js.map +1 -1
- package/dist/input/index.mjs +4 -4
- package/dist/input-otp/index.d.mts +14 -0
- package/dist/input-otp/index.js +1 -1
- package/dist/input-otp/index.js.map +1 -1
- package/dist/input-otp/index.mjs +139 -137
- package/dist/input-otp/index.mjs.map +1 -1
- package/dist/kbd/index.d.mts +1 -0
- package/dist/label/index.d.mts +7 -0
- package/dist/label/index.js +1 -1
- package/dist/label/index.js.map +1 -1
- package/dist/label/index.mjs +37 -2
- package/dist/label/index.mjs.map +1 -1
- package/dist/link-box/index.d.mts +9 -0
- package/dist/link-box/index.js +1 -1
- package/dist/link-box/index.js.map +1 -1
- package/dist/link-box/index.mjs +7 -7
- package/dist/pagination/index.d.mts +18 -0
- package/dist/pagination/index.js +1 -1
- package/dist/pagination/index.js.map +1 -1
- package/dist/pagination/index.mjs +126 -844
- package/dist/pagination/index.mjs.map +1 -1
- package/dist/popover/index.d.mts +17 -0
- package/dist/popover/index.js +1 -1
- package/dist/popover/index.js.map +1 -1
- package/dist/popover/index.mjs +119 -1748
- package/dist/popover/index.mjs.map +1 -1
- package/dist/portal/index.d.mts +1 -0
- package/dist/portal/index.js +1 -1
- package/dist/portal/index.js.map +1 -1
- package/dist/portal/index.mjs +3 -3
- package/dist/portal/index.mjs.map +1 -1
- package/dist/progress/index.d.mts +13 -0
- package/dist/progress/index.js +1 -6
- package/dist/progress/index.js.map +1 -1
- package/dist/progress/index.mjs +87 -162
- package/dist/progress/index.mjs.map +1 -1
- package/dist/progress-tracker/index.d.mts +10 -0
- package/dist/progress-tracker/index.js +1 -1
- package/dist/progress-tracker/index.js.map +1 -1
- package/dist/progress-tracker/index.mjs +14 -14
- package/dist/radio-group/index.d.mts +7 -0
- package/dist/radio-group/index.js +1 -1
- package/dist/radio-group/index.js.map +1 -1
- package/dist/radio-group/index.mjs +85 -312
- package/dist/radio-group/index.mjs.map +1 -1
- package/dist/rating/index.d.mts +1 -0
- package/dist/rating/index.js +1 -1
- package/dist/rating/index.js.map +1 -1
- package/dist/rating/index.mjs +11 -11
- package/dist/scrolling-list/index.d.mts +15 -0
- package/dist/scrolling-list/index.js +1 -1
- package/dist/scrolling-list/index.js.map +1 -1
- package/dist/scrolling-list/index.mjs +168 -333
- package/dist/scrolling-list/index.mjs.map +1 -1
- package/dist/segmented-gauge/index.d.mts +13 -0
- package/dist/segmented-gauge/index.js +1 -1
- package/dist/segmented-gauge/index.js.map +1 -1
- package/dist/segmented-gauge/index.mjs +1 -1
- package/dist/select/index.d.mts +21 -0
- package/dist/select/index.js +1 -1
- package/dist/select/index.js.map +1 -1
- package/dist/select/index.mjs +21 -21
- package/dist/skeleton/index.d.mts +8 -0
- package/dist/skeleton/index.js +1 -1
- package/dist/skeleton/index.js.map +1 -1
- package/dist/skeleton/index.mjs +2 -2
- package/dist/slider/Slider.d.ts +6 -1
- package/dist/slider/SliderContext.d.ts +4 -1
- package/dist/slider/index.d.mts +8 -0
- package/dist/slider/index.js +1 -1
- package/dist/slider/index.js.map +1 -1
- package/dist/slider/index.mjs +96 -496
- package/dist/slider/index.mjs.map +1 -1
- package/dist/slot/index.d.mts +1 -0
- package/dist/slot/index.js +1 -1
- package/dist/slot/index.mjs +1 -1
- package/dist/snackbar/index.d.mts +13 -0
- package/dist/snackbar/index.js +1 -1
- package/dist/snackbar/index.js.map +1 -1
- package/dist/snackbar/index.mjs +189 -1105
- package/dist/snackbar/index.mjs.map +1 -1
- package/dist/spinner/index.d.mts +1 -0
- package/dist/spinner/index.js +1 -1
- package/dist/spinner/index.mjs +1 -1
- package/dist/stepper/index.d.mts +9 -0
- package/dist/stepper/index.js +1 -7
- package/dist/stepper/index.js.map +1 -1
- package/dist/stepper/index.mjs +137 -2317
- package/dist/stepper/index.mjs.map +1 -1
- package/dist/switch/index.d.mts +1 -0
- package/dist/switch/index.js +1 -1
- package/dist/switch/index.js.map +1 -1
- package/dist/switch/index.mjs +85 -208
- package/dist/switch/index.mjs.map +1 -1
- package/dist/tabs/index.d.mts +13 -0
- package/dist/tabs/index.js +1 -1
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/index.mjs +179 -329
- package/dist/tabs/index.mjs.map +1 -1
- package/dist/tag/index.d.mts +1 -0
- package/dist/tag/index.js +1 -1
- package/dist/tag/index.js.map +1 -1
- package/dist/tag/index.mjs +2 -2
- package/dist/tag/variants/index.d.mts +3 -0
- package/dist/text-link/index.d.mts +1 -0
- package/dist/text-link/index.js +1 -1
- package/dist/text-link/index.mjs +1 -1
- package/dist/textarea/index.d.mts +14 -0
- package/dist/textarea/index.js +1 -1
- package/dist/textarea/index.js.map +1 -1
- package/dist/textarea/index.mjs +6 -6
- package/dist/toast/index.d.mts +20 -0
- package/dist/toast/index.js +1 -1
- package/dist/toast/index.js.map +1 -1
- package/dist/toast/index.mjs +146 -1008
- package/dist/toast/index.mjs.map +1 -1
- package/dist/useRenderSlot-DATwjgpo.js +2 -0
- package/dist/useRenderSlot-DATwjgpo.js.map +1 -0
- package/dist/useRenderSlot-LwWj8QbC.mjs +10 -0
- package/dist/useRenderSlot-LwWj8QbC.mjs.map +1 -0
- package/dist/visually-hidden/index.d.mts +1 -0
- package/dist/visually-hidden/index.js +1 -1
- package/dist/visually-hidden/index.mjs +1 -1
- package/package.json +7 -6
- package/dist/Button-C3xHNaGl.js +0 -2
- package/dist/DialogContent.styles-BrhKaHc_.js +0 -2
- package/dist/DialogContent.styles-BrhKaHc_.js.map +0 -1
- package/dist/DialogContent.styles-WGWJS9dj.mjs +0 -48
- package/dist/DialogContent.styles-WGWJS9dj.mjs.map +0 -1
- package/dist/Icon-Bf0XrmiR.js +0 -2
- package/dist/IconButton-Bf-EDzpI.js +0 -2
- package/dist/Slot-C98rL4yy.mjs +0 -14
- package/dist/Slot-ghrohQLA.js +0 -2
- package/dist/Spinner-DK8VEsaR.js +0 -2
- package/dist/TextLink-DD0VO37q.js +0 -2
- package/dist/composite-Br3kM5N9.mjs +0 -40
- package/dist/composite-Br3kM5N9.mjs.map +0 -1
- package/dist/composite-fJD9R7R0.js +0 -2
- package/dist/composite-fJD9R7R0.js.map +0 -1
- package/dist/detectBrowser-Bc7rk5fI.mjs +0 -44
- package/dist/detectBrowser-Bc7rk5fI.mjs.map +0 -1
- package/dist/detectBrowser-DTbs_30X.js +0 -2
- package/dist/detectBrowser-DTbs_30X.js.map +0 -1
- package/dist/downshift.esm-Ncwetv0s.mjs +0 -3038
- package/dist/downshift.esm-Ncwetv0s.mjs.map +0 -1
- package/dist/downshift.esm-PfCOUbxq.js +0 -37
- package/dist/downshift.esm-PfCOUbxq.js.map +0 -1
- package/dist/floating-ui.utils.dom-CCN4I08l.js +0 -2
- package/dist/floating-ui.utils.dom-CCN4I08l.js.map +0 -1
- package/dist/floating-ui.utils.dom-uiDUZc_y.mjs +0 -136
- package/dist/floating-ui.utils.dom-uiDUZc_y.mjs.map +0 -1
- package/dist/index-0KYGKeVg.js +0 -2
- package/dist/index-0KYGKeVg.js.map +0 -1
- package/dist/index-1WIgmEZh.js +0 -2
- package/dist/index-1WIgmEZh.js.map +0 -1
- package/dist/index-BRi38DTc.mjs +0 -21
- package/dist/index-BRi38DTc.mjs.map +0 -1
- package/dist/index-BZAtNKwE.mjs +0 -71
- package/dist/index-BZAtNKwE.mjs.map +0 -1
- package/dist/index-BZPx6jYI.mjs +0 -9
- package/dist/index-BZPx6jYI.mjs.map +0 -1
- package/dist/index-BlkdpEIe.mjs +0 -55
- package/dist/index-BlkdpEIe.mjs.map +0 -1
- package/dist/index-BmAFn37q.mjs +0 -49
- package/dist/index-BmAFn37q.mjs.map +0 -1
- package/dist/index-C-J_tHdS.js +0 -6
- package/dist/index-C-J_tHdS.js.map +0 -1
- package/dist/index-C1qb0595.mjs +0 -28
- package/dist/index-C1qb0595.mjs.map +0 -1
- package/dist/index-C34GgsKQ.mjs +0 -54
- package/dist/index-C34GgsKQ.mjs.map +0 -1
- package/dist/index-CCKe-Mpx.mjs +0 -7
- package/dist/index-CCKe-Mpx.mjs.map +0 -1
- package/dist/index-CDBBjNXc.js +0 -2
- package/dist/index-CDBBjNXc.js.map +0 -1
- package/dist/index-CYjGhVvU.mjs +0 -243
- package/dist/index-CYjGhVvU.mjs.map +0 -1
- package/dist/index-ChLwd62c.js +0 -2
- package/dist/index-ChLwd62c.js.map +0 -1
- package/dist/index-Cjj_rUPu.js +0 -2
- package/dist/index-Cjj_rUPu.js.map +0 -1
- package/dist/index-CyMbLkj0.js +0 -2
- package/dist/index-CyMbLkj0.js.map +0 -1
- package/dist/index-DFZozV_h.mjs +0 -69
- package/dist/index-DFZozV_h.mjs.map +0 -1
- package/dist/index-DKuHkHFX.js +0 -2
- package/dist/index-DKuHkHFX.js.map +0 -1
- package/dist/index-DLHLIYPI.mjs +0 -16
- package/dist/index-DLHLIYPI.mjs.map +0 -1
- package/dist/index-DO-atGp-.js +0 -2
- package/dist/index-DO-atGp-.js.map +0 -1
- package/dist/index-DWlg8lkk.mjs +0 -179
- package/dist/index-DWlg8lkk.mjs.map +0 -1
- package/dist/index-DYxWvftI.js +0 -2
- package/dist/index-DYxWvftI.js.map +0 -1
- package/dist/index-D_lWkK39.mjs +0 -803
- package/dist/index-D_lWkK39.mjs.map +0 -1
- package/dist/index-DdkVj7D0.js +0 -18
- package/dist/index-DdkVj7D0.js.map +0 -1
- package/dist/index-De-6atSi.js +0 -2
- package/dist/index-De-6atSi.js.map +0 -1
- package/dist/index-DhGWNzsz.mjs +0 -83
- package/dist/index-DhGWNzsz.mjs.map +0 -1
- package/dist/index-Dkj4QRX8.js +0 -2
- package/dist/index-Dkj4QRX8.js.map +0 -1
- package/dist/index-DlIFg0Eu.mjs +0 -60
- package/dist/index-DlIFg0Eu.mjs.map +0 -1
- package/dist/index-DnaHaH_0.js +0 -2
- package/dist/index-DnaHaH_0.js.map +0 -1
- package/dist/index-MHF2-CYX.js +0 -2
- package/dist/index-MHF2-CYX.js.map +0 -1
- package/dist/index-MQ0c3ZX_.js +0 -2
- package/dist/index-MQ0c3ZX_.js.map +0 -1
- package/dist/index-MSR-vgWR.mjs +0 -37
- package/dist/index-MSR-vgWR.mjs.map +0 -1
- package/dist/index-VL0YEmOW.mjs +0 -125
- package/dist/index-VL0YEmOW.mjs.map +0 -1
- package/dist/index-tXqxYME3.js +0 -42
- package/dist/index-tXqxYME3.js.map +0 -1
- package/dist/inertValue-Bif5Sqs6.mjs +0 -522
- package/dist/inertValue-Bif5Sqs6.mjs.map +0 -1
- package/dist/inertValue-ShwihJSN.js +0 -5
- package/dist/inertValue-ShwihJSN.js.map +0 -1
- package/dist/useCollapsiblePanel-D1dCo0lf.js +0 -4
- package/dist/useCollapsiblePanel-D1dCo0lf.js.map +0 -1
- package/dist/useCollapsiblePanel-kbMNl4Z4.mjs +0 -287
- package/dist/useCollapsiblePanel-kbMNl4Z4.mjs.map +0 -1
- package/dist/useFocusWithin-CFNEka2I.js +0 -2
- package/dist/useFocusWithin-CFNEka2I.js.map +0 -1
- package/dist/useFocusWithin-CoL4390f.mjs +0 -796
- package/dist/useFocusWithin-CoL4390f.mjs.map +0 -1
- package/dist/useOpenChangeComplete-Dk-u_f2y.js +0 -2
- package/dist/useOpenChangeComplete-Dk-u_f2y.js.map +0 -1
- package/dist/useOpenChangeComplete-RUbg6RBw.mjs +0 -582
- package/dist/useOpenChangeComplete-RUbg6RBw.mjs.map +0 -1
- package/dist/useTransitionStatus-CktVVKxz.mjs +0 -46
- package/dist/useTransitionStatus-CktVVKxz.mjs.map +0 -1
- package/dist/useTransitionStatus-CqbEyvIj.js +0 -2
- package/dist/useTransitionStatus-CqbEyvIj.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../node_modules/@zag-js/anatomy/dist/index.mjs","../../../../node_modules/@zag-js/dom-query/dist/index.mjs","../../../../node_modules/@zag-js/utils/dist/index.mjs","../../../../node_modules/@zag-js/core/dist/index.mjs","../../../../node_modules/@zag-js/types/dist/index.mjs","../../../../node_modules/@zag-js/pagination/dist/index.mjs","../../../../node_modules/@zag-js/react/dist/index.mjs","../../src/pagination/utils.ts","../../src/pagination/PaginationContext.tsx","../../src/pagination/Pagination.tsx","../../src/pagination/PaginationEllipsis.tsx","../../src/pagination/PaginationFirstPageTrigger.tsx","../../src/pagination/PaginationItem.tsx","../../src/pagination/PaginationLastPageTrigger.tsx","../../src/pagination/PaginationNextTrigger.tsx","../../src/pagination/PaginationPages.tsx","../../src/pagination/PaginationPrevTrigger.tsx","../../src/pagination/index.ts"],"sourcesContent":["// src/create-anatomy.ts\nvar createAnatomy = (name, parts = []) => ({\n parts: (...values) => {\n if (isEmpty(parts)) {\n return createAnatomy(name, values);\n }\n throw new Error(\"createAnatomy().parts(...) should only be called once. Did you mean to use .extendWith(...) ?\");\n },\n extendWith: (...values) => createAnatomy(name, [...parts, ...values]),\n omit: (...values) => createAnatomy(name, parts.filter((part) => !values.includes(part))),\n rename: (newName) => createAnatomy(newName, parts),\n keys: () => parts,\n build: () => [...new Set(parts)].reduce(\n (prev, part) => Object.assign(prev, {\n [part]: {\n selector: [\n `&[data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`,\n `& [data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`\n ].join(\", \"),\n attrs: { \"data-scope\": toKebabCase(name), \"data-part\": toKebabCase(part) }\n }\n }),\n {}\n )\n});\nvar toKebabCase = (value) => value.replace(/([A-Z])([A-Z])/g, \"$1-$2\").replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\nvar isEmpty = (v) => v.length === 0;\n\nexport { createAnatomy };\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// src/caret.ts\nfunction isCaretAtStart(input) {\n if (!input) return false;\n try {\n return input.selectionStart === 0 && input.selectionEnd === 0;\n } catch {\n return input.value === \"\";\n }\n}\nfunction setCaretToEnd(input) {\n if (!input) return;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n if (Math.abs(end - start) !== 0) return;\n if (start !== 0) return;\n input.setSelectionRange(input.value.length, input.value.length);\n}\n\n// src/shared.ts\nvar clamp = (value) => Math.max(0, Math.min(1, value));\nvar wrap = (v, idx) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nvar pipe = (...fns) => (arg) => fns.reduce((acc, fn) => fn(acc), arg);\nvar noop = () => void 0;\nvar isObject = (v) => typeof v === \"object\" && v !== null;\nvar MAX_Z_INDEX = 2147483647;\nvar dataAttr = (guard) => guard ? \"\" : void 0;\nvar ariaAttr = (guard) => guard ? \"true\" : void 0;\n\n// src/node.ts\nvar ELEMENT_NODE = 1;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\nvar isHTMLElement = (el) => isObject(el) && el.nodeType === ELEMENT_NODE && typeof el.nodeName === \"string\";\nvar isDocument = (el) => isObject(el) && el.nodeType === DOCUMENT_NODE;\nvar isWindow = (el) => isObject(el) && el === el.window;\nvar isVisualViewport = (el) => isObject(el) && el.constructor.name === \"VisualViewport\";\nvar getNodeName = (node) => {\n if (isHTMLElement(node)) return node.localName || \"\";\n return \"#document\";\n};\nfunction isRootElement(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nvar isNode = (el) => isObject(el) && el.nodeType !== void 0;\nvar isShadowRoot = (el) => isNode(el) && el.nodeType === DOCUMENT_FRAGMENT_NODE && \"host\" in el;\nvar isInputElement = (el) => isHTMLElement(el) && el.localName === \"input\";\nvar isAnchorElement = (el) => !!el?.matches(\"a[href]\");\nvar isElementVisible = (el) => {\n if (!isHTMLElement(el)) return false;\n return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0;\n};\nfunction isActiveElement(element) {\n if (!element) return false;\n const rootNode = element.getRootNode();\n return getActiveElement(rootNode) === element;\n}\nvar TEXTAREA_SELECT_REGEX = /(textarea|select)/;\nfunction isEditableElement(el) {\n if (el == null || !isHTMLElement(el)) return false;\n try {\n return isInputElement(el) && el.selectionStart != null || TEXTAREA_SELECT_REGEX.test(el.localName) || el.isContentEditable || el.getAttribute(\"contenteditable\") === \"true\" || el.getAttribute(\"contenteditable\") === \"\";\n } catch {\n return false;\n }\n}\nfunction contains(parent, child) {\n if (!parent || !child) return false;\n if (!isHTMLElement(parent) || !isHTMLElement(child)) return false;\n const rootNode = child.getRootNode?.();\n if (parent === child) return true;\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction getDocument(el) {\n if (isDocument(el)) return el;\n if (isWindow(el)) return el.document;\n return el?.ownerDocument ?? document;\n}\nfunction getDocumentElement(el) {\n return getDocument(el).documentElement;\n}\nfunction getWindow(el) {\n if (isShadowRoot(el)) return getWindow(el.host);\n if (isDocument(el)) return el.defaultView ?? window;\n if (isHTMLElement(el)) return el.ownerDocument?.defaultView ?? window;\n return window;\n}\nfunction getActiveElement(rootNode) {\n let activeElement = rootNode.activeElement;\n while (activeElement?.shadowRoot) {\n const el = activeElement.shadowRoot.activeElement;\n if (!el || el === activeElement) break;\n else activeElement = el;\n }\n return activeElement;\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") return node;\n const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getRootNode(node) {\n let result;\n try {\n result = node.getRootNode({ composed: true });\n if (isDocument(result) || isShadowRoot(result)) return result;\n } catch {\n }\n return node.ownerDocument ?? document;\n}\n\n// src/computed-style.ts\nvar styleCache = /* @__PURE__ */ new WeakMap();\nfunction getComputedStyle(el) {\n if (!styleCache.has(el)) {\n styleCache.set(el, getWindow(el).getComputedStyle(el));\n }\n return styleCache.get(el);\n}\n\n// src/controller.ts\nvar INTERACTIVE_CONTAINER_ROLE = /* @__PURE__ */ new Set([\"menu\", \"listbox\", \"dialog\", \"grid\", \"tree\", \"region\"]);\nvar isInteractiveContainerRole = (role) => INTERACTIVE_CONTAINER_ROLE.has(role);\nvar getAriaControls = (element) => element.getAttribute(\"aria-controls\")?.split(\" \") || [];\nfunction isControlledElement(container, element) {\n const visitedIds = /* @__PURE__ */ new Set();\n const rootNode = getRootNode(container);\n const checkElement = (searchRoot) => {\n const controllingElements = searchRoot.querySelectorAll(\"[aria-controls]\");\n for (const controller of controllingElements) {\n if (controller.getAttribute(\"aria-expanded\") !== \"true\") continue;\n const controlledIds = getAriaControls(controller);\n for (const id of controlledIds) {\n if (!id || visitedIds.has(id)) continue;\n visitedIds.add(id);\n const controlledElement = rootNode.getElementById(id);\n if (controlledElement) {\n const role = controlledElement.getAttribute(\"role\");\n const modal = controlledElement.getAttribute(\"aria-modal\") === \"true\";\n if (role && isInteractiveContainerRole(role) && !modal) {\n if (controlledElement === element || controlledElement.contains(element)) {\n return true;\n }\n if (checkElement(controlledElement)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n return checkElement(container);\n}\nfunction findControlledElements(searchRoot, callback) {\n const rootNode = getRootNode(searchRoot);\n const visitedIds = /* @__PURE__ */ new Set();\n const findRecursive = (root) => {\n const controllingElements = root.querySelectorAll(\"[aria-controls]\");\n for (const controller of controllingElements) {\n if (controller.getAttribute(\"aria-expanded\") !== \"true\") continue;\n const controlledIds = getAriaControls(controller);\n for (const id of controlledIds) {\n if (!id || visitedIds.has(id)) continue;\n visitedIds.add(id);\n const controlledElement = rootNode.getElementById(id);\n if (controlledElement) {\n const role = controlledElement.getAttribute(\"role\");\n const modal = controlledElement.getAttribute(\"aria-modal\") === \"true\";\n if (role && INTERACTIVE_CONTAINER_ROLE.has(role) && !modal) {\n callback(controlledElement);\n findRecursive(controlledElement);\n }\n }\n }\n }\n };\n findRecursive(searchRoot);\n}\nfunction getControlledElements(container) {\n const controlledElements = /* @__PURE__ */ new Set();\n findControlledElements(container, (controlledElement) => {\n if (!container.contains(controlledElement)) {\n controlledElements.add(controlledElement);\n }\n });\n return Array.from(controlledElements);\n}\nfunction isInteractiveContainerElement(element) {\n const role = element.getAttribute(\"role\");\n return Boolean(role && INTERACTIVE_CONTAINER_ROLE.has(role));\n}\nfunction isControllerElement(element) {\n return element.hasAttribute(\"aria-controls\") && element.getAttribute(\"aria-expanded\") === \"true\";\n}\nfunction hasControllerElements(element) {\n if (isControllerElement(element)) return true;\n return Boolean(element.querySelector?.('[aria-controls][aria-expanded=\"true\"]'));\n}\nfunction isControlledByExpandedController(element) {\n if (!element.id) return false;\n const rootNode = getRootNode(element);\n const escapedId = CSS.escape(element.id);\n const selector = `[aria-controls~=\"${escapedId}\"][aria-expanded=\"true\"], [aria-controls=\"${escapedId}\"][aria-expanded=\"true\"]`;\n const controller = rootNode.querySelector(selector);\n return Boolean(controller && isInteractiveContainerElement(element));\n}\n\n// src/data-url.ts\nfunction getDataUrl(svg, opts) {\n const { type, quality = 0.92, background } = opts;\n if (!svg) throw new Error(\"[zag-js > getDataUrl]: Could not find the svg element\");\n const win = getWindow(svg);\n const doc = win.document;\n const svgBounds = svg.getBoundingClientRect();\n const svgClone = svg.cloneNode(true);\n if (!svgClone.hasAttribute(\"viewBox\")) {\n svgClone.setAttribute(\"viewBox\", `0 0 ${svgBounds.width} ${svgBounds.height}`);\n }\n const serializer = new win.XMLSerializer();\n const source = '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + serializer.serializeToString(svgClone);\n const svgString = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n if (type === \"image/svg+xml\") {\n return Promise.resolve(svgString).then((str) => {\n svgClone.remove();\n return str;\n });\n }\n const dpr = win.devicePixelRatio || 1;\n const canvas = doc.createElement(\"canvas\");\n const image = new win.Image();\n image.src = svgString;\n canvas.width = svgBounds.width * dpr;\n canvas.height = svgBounds.height * dpr;\n const context = canvas.getContext(\"2d\");\n if (type === \"image/jpeg\" || background) {\n context.fillStyle = background || \"white\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n return new Promise((resolve) => {\n image.onload = () => {\n context?.drawImage(image, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(type, quality));\n svgClone.remove();\n };\n });\n}\n\n// src/platform.ts\nvar isDom = () => typeof document !== \"undefined\";\nfunction getPlatform() {\n const agent = navigator.userAgentData;\n return agent?.platform ?? navigator.platform;\n}\nfunction getUserAgent() {\n const ua2 = navigator.userAgentData;\n if (ua2 && Array.isArray(ua2.brands)) {\n return ua2.brands.map(({ brand, version }) => `${brand}/${version}`).join(\" \");\n }\n return navigator.userAgent;\n}\nvar pt = (v) => isDom() && v.test(getPlatform());\nvar ua = (v) => isDom() && v.test(getUserAgent());\nvar vn = (v) => isDom() && v.test(navigator.vendor);\nvar isTouchDevice = () => isDom() && !!navigator.maxTouchPoints;\nvar isIPhone = () => pt(/^iPhone/i);\nvar isIPad = () => pt(/^iPad/i) || isMac() && navigator.maxTouchPoints > 1;\nvar isIos = () => isIPhone() || isIPad();\nvar isApple = () => isMac() || isIos();\nvar isMac = () => pt(/^Mac/i);\nvar isSafari = () => isApple() && vn(/apple/i);\nvar isFirefox = () => ua(/Firefox/i);\nvar isChrome = () => ua(/Chrome/i);\nvar isWebKit = () => ua(/AppleWebKit/i) && !isChrome();\nvar isAndroid = () => ua(/Android/i);\n\n// src/event.ts\nfunction getBeforeInputValue(event) {\n const { selectionStart, selectionEnd, value } = event.currentTarget;\n const data = event.data;\n return value.slice(0, selectionStart) + (data ?? \"\") + value.slice(selectionEnd);\n}\nfunction getComposedPath(event) {\n return event.composedPath?.() ?? event.nativeEvent?.composedPath?.();\n}\nfunction getEventTarget(event) {\n const composedPath = getComposedPath(event);\n return composedPath?.[0] ?? event.target;\n}\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const validElement = element.matches(\"a[href], button[type='submit'], input[type='submit']\");\n if (!validElement) return false;\n const isMiddleClick = event.button === 1;\n const isModKeyClick = isCtrlOrMetaKey(event);\n return isMiddleClick || isModKeyClick;\n}\nfunction isDownloadingEvent(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const localName = element.localName;\n if (!event.altKey) return false;\n if (localName === \"a\") return true;\n if (localName === \"button\" && element.type === \"submit\") return true;\n if (localName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isComposingEvent(event) {\n return getNativeEvent(event).isComposing || event.keyCode === 229;\n}\nfunction isKeyboardClick(e) {\n return e.detail === 0 || e.clientX === 0 && e.clientY === 0;\n}\nfunction isCtrlOrMetaKey(e) {\n if (isMac()) return e.metaKey;\n return e.ctrlKey;\n}\nfunction isPrintableKey(e) {\n return e.key.length === 1 && !e.ctrlKey && !e.metaKey;\n}\nfunction isVirtualPointerEvent(e) {\n return e.width === 0 && e.height === 0 || e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === \"mouse\";\n}\nfunction isVirtualClick(e) {\n if (e.pointerType === \"\" && e.isTrusted) return true;\n if (isAndroid() && e.pointerType) {\n return e.type === \"click\" && e.buttons === 1;\n }\n return e.detail === 0 && !e.pointerType;\n}\nvar isLeftClick = (e) => e.button === 0;\nvar isContextMenuEvent = (e) => {\n return e.button === 2 || isMac() && e.ctrlKey && e.button === 0;\n};\nvar isModifierKey = (e) => e.ctrlKey || e.altKey || e.metaKey;\nvar isTouchEvent = (event) => \"touches\" in event && event.touches.length > 0;\nvar keyMap = {\n Up: \"ArrowUp\",\n Down: \"ArrowDown\",\n Esc: \"Escape\",\n \" \": \"Space\",\n \",\": \"Comma\",\n Left: \"ArrowLeft\",\n Right: \"ArrowRight\"\n};\nvar rtlKeyMap = {\n ArrowLeft: \"ArrowRight\",\n ArrowRight: \"ArrowLeft\"\n};\nfunction getEventKey(event, options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\" } = options;\n let key = event.key;\n key = keyMap[key] ?? key;\n const isRtl = dir === \"rtl\" && orientation === \"horizontal\";\n if (isRtl && key in rtlKeyMap) key = rtlKeyMap[key];\n return key;\n}\nfunction getNativeEvent(event) {\n return event.nativeEvent ?? event;\n}\nvar pageKeys = /* @__PURE__ */ new Set([\"PageUp\", \"PageDown\"]);\nvar arrowKeys = /* @__PURE__ */ new Set([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"]);\nfunction getEventStep(event) {\n if (event.ctrlKey || event.metaKey) {\n return 0.1;\n } else {\n const isPageKey = pageKeys.has(event.key);\n const isSkipKey = isPageKey || event.shiftKey && arrowKeys.has(event.key);\n return isSkipKey ? 10 : 1;\n }\n}\nfunction getEventPoint(event, type = \"client\") {\n const point = isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : event;\n return { x: point[`${type}X`], y: point[`${type}Y`] };\n}\nvar addDomEvent = (target, eventName, handler, options) => {\n const node = typeof target === \"function\" ? target() : target;\n node?.addEventListener(eventName, handler, options);\n return () => {\n node?.removeEventListener(eventName, handler, options);\n };\n};\nvar isSelfTarget = (event) => {\n const composedPath = getComposedPath(event);\n const target = composedPath?.[0] ?? event.target;\n return event.currentTarget === target;\n};\n\n// src/form.ts\nfunction getDescriptor(el, options) {\n const { type = \"HTMLInputElement\", property = \"value\" } = options;\n const proto = getWindow(el)[type].prototype;\n return Object.getOwnPropertyDescriptor(proto, property) ?? {};\n}\nfunction getElementType(el) {\n if (el.localName === \"input\") return \"HTMLInputElement\";\n if (el.localName === \"textarea\") return \"HTMLTextAreaElement\";\n if (el.localName === \"select\") return \"HTMLSelectElement\";\n}\nfunction setElementValue(el, value, property = \"value\") {\n if (!el) return;\n const type = getElementType(el);\n if (type) {\n const descriptor = getDescriptor(el, { type, property });\n descriptor.set?.call(el, value);\n }\n el.setAttribute(property, value);\n}\nfunction setElementChecked(el, checked) {\n if (!el) return;\n const descriptor = getDescriptor(el, { type: \"HTMLInputElement\", property: \"checked\" });\n descriptor.set?.call(el, checked);\n if (checked) el.setAttribute(\"checked\", \"\");\n else el.removeAttribute(\"checked\");\n}\nfunction dispatchInputValueEvent(el, options) {\n const { value, bubbles = true } = options;\n if (!el) return;\n const win = getWindow(el);\n if (!(el instanceof win.HTMLInputElement)) return;\n setElementValue(el, `${value}`);\n el.dispatchEvent(new win.Event(\"input\", { bubbles }));\n}\nfunction dispatchInputCheckedEvent(el, options) {\n const { checked, bubbles = true } = options;\n if (!el) return;\n const win = getWindow(el);\n if (!(el instanceof win.HTMLInputElement)) return;\n setElementChecked(el, checked);\n el.dispatchEvent(new win.Event(\"click\", { bubbles }));\n}\nfunction getClosestForm(el) {\n return isFormElement(el) ? el.form : el.closest(\"form\");\n}\nfunction isFormElement(el) {\n return el.matches(\"textarea, input, select, button\");\n}\nfunction trackFormReset(el, callback) {\n if (!el) return;\n const form = getClosestForm(el);\n const onReset = (e) => {\n if (e.defaultPrevented) return;\n callback();\n };\n form?.addEventListener(\"reset\", onReset, { passive: true });\n return () => form?.removeEventListener(\"reset\", onReset);\n}\nfunction trackFieldsetDisabled(el, callback) {\n const fieldset = el?.closest(\"fieldset\");\n if (!fieldset) return;\n callback(fieldset.disabled);\n const win = getWindow(fieldset);\n const obs = new win.MutationObserver(() => callback(fieldset.disabled));\n obs.observe(fieldset, {\n attributes: true,\n attributeFilter: [\"disabled\"]\n });\n return () => obs.disconnect();\n}\nfunction trackFormControl(el, options) {\n if (!el) return;\n const { onFieldsetDisabledChange, onFormReset } = options;\n const cleanups = [trackFormReset(el, onFormReset), trackFieldsetDisabled(el, onFieldsetDisabledChange)];\n return () => cleanups.forEach((cleanup) => cleanup?.());\n}\n\n// src/tabbable.ts\nvar isFrame = (el) => isHTMLElement(el) && el.tagName === \"IFRAME\";\nvar NATURALLY_TABBABLE_REGEX = /^(audio|video|details)$/;\nfunction parseTabIndex(el) {\n const attr = el.getAttribute(\"tabindex\");\n if (!attr) return NaN;\n return parseInt(attr, 10);\n}\nvar hasTabIndex = (el) => !Number.isNaN(parseTabIndex(el));\nvar hasNegativeTabIndex = (el) => parseTabIndex(el) < 0;\nfunction getShadowRootForNode(element, getShadowRoot) {\n if (!getShadowRoot) return null;\n if (getShadowRoot === true) {\n return element.shadowRoot || null;\n }\n const result = getShadowRoot(element);\n return (result === true ? element.shadowRoot : result) || null;\n}\nfunction collectElementsWithShadowDOM(elements, getShadowRoot, filterFn) {\n const allElements = [...elements];\n const toProcess = [...elements];\n const processed = /* @__PURE__ */ new Set();\n const positionMap = /* @__PURE__ */ new Map();\n elements.forEach((el, i) => positionMap.set(el, i));\n let processIndex = 0;\n while (processIndex < toProcess.length) {\n const element = toProcess[processIndex++];\n if (!element || processed.has(element)) continue;\n processed.add(element);\n const shadowRoot = getShadowRootForNode(element, getShadowRoot);\n if (shadowRoot) {\n const shadowElements = Array.from(shadowRoot.querySelectorAll(focusableSelector)).filter(filterFn);\n const hostIndex = positionMap.get(element);\n if (hostIndex !== void 0) {\n const insertPosition = hostIndex + 1;\n allElements.splice(insertPosition, 0, ...shadowElements);\n shadowElements.forEach((el, i) => {\n positionMap.set(el, insertPosition + i);\n });\n for (let i = insertPosition + shadowElements.length; i < allElements.length; i++) {\n positionMap.set(allElements[i], i);\n }\n } else {\n const insertPosition = allElements.length;\n allElements.push(...shadowElements);\n shadowElements.forEach((el, i) => {\n positionMap.set(el, insertPosition + i);\n });\n }\n toProcess.push(...shadowElements);\n }\n }\n return allElements;\n}\nvar focusableSelector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false']), details > summary:first-of-type\";\nvar getFocusables = (container, options = {}) => {\n if (!container) return [];\n const { includeContainer = false, getShadowRoot } = options;\n const elements = Array.from(container.querySelectorAll(focusableSelector));\n const include = includeContainer == true || includeContainer == \"if-empty\" && elements.length === 0;\n if (include && isHTMLElement(container) && isFocusable(container)) {\n elements.unshift(container);\n }\n const focusableElements = [];\n for (const element of elements) {\n if (!isFocusable(element)) continue;\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.push(...getFocusables(frameBody, { getShadowRoot }));\n continue;\n }\n focusableElements.push(element);\n }\n if (getShadowRoot) {\n return collectElementsWithShadowDOM(focusableElements, getShadowRoot, isFocusable);\n }\n return focusableElements;\n};\nfunction isFocusable(element) {\n if (!isHTMLElement(element) || element.closest(\"[inert]\")) return false;\n return element.matches(focusableSelector) && isElementVisible(element);\n}\nfunction getFirstFocusable(container, options = {}) {\n const [first] = getFocusables(container, options);\n return first || null;\n}\nfunction getTabbables(container, options = {}) {\n if (!container) return [];\n const { includeContainer, getShadowRoot } = options;\n const elements = Array.from(container.querySelectorAll(focusableSelector));\n if (includeContainer && isTabbable(container)) {\n elements.unshift(container);\n }\n const tabbableElements = [];\n for (const element of elements) {\n if (!isTabbable(element)) continue;\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n tabbableElements.push(...getTabbables(frameBody, { getShadowRoot }));\n continue;\n }\n tabbableElements.push(element);\n }\n if (getShadowRoot) {\n const allElements = collectElementsWithShadowDOM(tabbableElements, getShadowRoot, isTabbable);\n if (!allElements.length && includeContainer) {\n return elements;\n }\n return allElements;\n }\n if (!tabbableElements.length && includeContainer) {\n return elements;\n }\n return tabbableElements;\n}\nfunction isTabbable(el) {\n if (isHTMLElement(el) && el.tabIndex > 0) return true;\n return isFocusable(el) && !hasNegativeTabIndex(el);\n}\nfunction getFirstTabbable(container, options = {}) {\n const [first] = getTabbables(container, options);\n return first || null;\n}\nfunction getLastTabbable(container, options = {}) {\n const elements = getTabbables(container, options);\n return elements[elements.length - 1] || null;\n}\nfunction getTabbableEdges(container, options = {}) {\n const elements = getTabbables(container, options);\n const first = elements[0] || null;\n const last = elements[elements.length - 1] || null;\n return [first, last];\n}\nfunction getNextTabbable(container, options = {}) {\n const { current, getShadowRoot } = options;\n const tabbables = getTabbables(container, { getShadowRoot });\n const doc = container?.ownerDocument || document;\n const currentElement = current ?? getActiveElement(doc);\n if (!currentElement) return null;\n const index = tabbables.indexOf(currentElement);\n return tabbables[index + 1] || null;\n}\nfunction getTabIndex(node) {\n if (node.tabIndex < 0) {\n if ((NATURALLY_TABBABLE_REGEX.test(node.localName) || isEditableElement(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n}\n\n// src/initial-focus.ts\nfunction getInitialFocus(options) {\n const { root, getInitialEl, filter, enabled = true } = options;\n if (!enabled) return;\n let node = null;\n node || (node = typeof getInitialEl === \"function\" ? getInitialEl() : getInitialEl);\n node || (node = root?.querySelector(\"[data-autofocus],[autofocus]\"));\n if (!node) {\n const tabbables = getTabbables(root);\n node = filter ? tabbables.filter(filter)[0] : tabbables[0];\n }\n return node || root || void 0;\n}\nfunction isValidTabEvent(event) {\n const container = event.currentTarget;\n if (!container) return false;\n const [firstTabbable, lastTabbable] = getTabbableEdges(container);\n if (isActiveElement(firstTabbable) && event.shiftKey) return false;\n if (isActiveElement(lastTabbable) && !event.shiftKey) return false;\n if (!firstTabbable && !lastTabbable) return false;\n return true;\n}\n\n// src/raf.ts\nvar AnimationFrame = class _AnimationFrame {\n constructor() {\n __publicField(this, \"id\", null);\n __publicField(this, \"fn_cleanup\");\n __publicField(this, \"cleanup\", () => {\n this.cancel();\n });\n }\n static create() {\n return new _AnimationFrame();\n }\n request(fn) {\n this.cancel();\n this.id = globalThis.requestAnimationFrame(() => {\n this.id = null;\n this.fn_cleanup = fn?.();\n });\n }\n cancel() {\n if (this.id !== null) {\n globalThis.cancelAnimationFrame(this.id);\n this.id = null;\n }\n this.fn_cleanup?.();\n this.fn_cleanup = void 0;\n }\n isActive() {\n return this.id !== null;\n }\n};\nfunction raf(fn) {\n const frame = AnimationFrame.create();\n frame.request(fn);\n return frame.cleanup;\n}\nfunction nextTick(fn) {\n const set = /* @__PURE__ */ new Set();\n function raf2(fn2) {\n const id = globalThis.requestAnimationFrame(fn2);\n set.add(() => globalThis.cancelAnimationFrame(id));\n }\n raf2(() => raf2(fn));\n return function cleanup() {\n set.forEach((fn2) => fn2());\n };\n}\nfunction queueBeforeEvent(el, type, cb) {\n const cancelTimer = raf(() => {\n el.removeEventListener(type, exec, true);\n cb();\n });\n const exec = () => {\n cancelTimer();\n cb();\n };\n el.addEventListener(type, exec, { once: true, capture: true });\n return cancelTimer;\n}\n\n// src/mutation-observer.ts\nfunction observeAttributesImpl(node, options) {\n if (!node) return;\n const { attributes, callback: fn } = options;\n const win = node.ownerDocument.defaultView || window;\n const obs = new win.MutationObserver((changes) => {\n for (const change of changes) {\n if (change.type === \"attributes\" && change.attributeName && attributes.includes(change.attributeName)) {\n fn(change);\n }\n }\n });\n obs.observe(node, { attributes: true, attributeFilter: attributes });\n return () => obs.disconnect();\n}\nfunction observeAttributes(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(observeAttributesImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction observeChildrenImpl(node, options) {\n const { callback: fn } = options;\n if (!node) return;\n const win = node.ownerDocument.defaultView || window;\n const obs = new win.MutationObserver(fn);\n obs.observe(node, { childList: true, subtree: true });\n return () => obs.disconnect();\n}\nfunction observeChildren(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(observeChildrenImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/navigate.ts\nfunction navigate(items, current, options = {}) {\n if (!current) return null;\n const { orientation = \"both\", loop = true, dir = \"ltr\", key } = options;\n if (!items.length || !key) return null;\n const isVertical = key === \"ArrowUp\" || key === \"ArrowDown\";\n const isHorizontal = key === \"ArrowLeft\" || key === \"ArrowRight\";\n if (!isVertical && !isHorizontal && key !== \"Home\" && key !== \"End\") return null;\n if (orientation === \"vertical\" && isHorizontal || orientation === \"horizontal\" && isVertical) return null;\n if (key === \"Home\") return items[0] || null;\n if (key === \"End\") return items[items.length - 1] || null;\n const idx = items.indexOf(current);\n if (idx === -1) return null;\n let isForward;\n if (orientation === \"both\") {\n isForward = key === \"ArrowDown\" || (dir === \"ltr\" ? key === \"ArrowRight\" : key === \"ArrowLeft\");\n } else {\n isForward = isVertical ? key === \"ArrowDown\" : dir === \"ltr\" ? key === \"ArrowRight\" : key === \"ArrowLeft\";\n }\n const nextIdx = isForward ? loop ? (idx + 1) % items.length : Math.min(idx + 1, items.length - 1) : loop ? (idx - 1 + items.length) % items.length : Math.max(0, idx - 1);\n return items[nextIdx] || null;\n}\nfunction clickIfLink(el) {\n const click = () => {\n const win = getWindow(el);\n el.dispatchEvent(new win.MouseEvent(\"click\"));\n };\n if (isFirefox()) {\n queueBeforeEvent(el, \"keyup\", click);\n } else {\n queueMicrotask(click);\n }\n}\n\n// src/overflow.ts\nfunction getNearestOverflowAncestor(el) {\n const parentNode = getParentNode(el);\n if (isRootElement(parentNode)) return getDocument(parentNode).body;\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) return parentNode;\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(el, list = []) {\n const scrollableAncestor = getNearestOverflowAncestor(el);\n const isBody = scrollableAncestor === el.ownerDocument.body;\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, []));\n}\nvar getElementRect = (el) => {\n if (isHTMLElement(el)) return el.getBoundingClientRect();\n if (isVisualViewport(el)) return { top: 0, left: 0, bottom: el.height, right: el.width };\n return { top: 0, left: 0, bottom: el.innerHeight, right: el.innerWidth };\n};\nfunction isInView(el, ancestor) {\n if (!isHTMLElement(el)) return true;\n const ancestorRect = getElementRect(ancestor);\n const elRect = el.getBoundingClientRect();\n return elRect.top >= ancestorRect.top && elRect.left >= ancestorRect.left && elRect.bottom <= ancestorRect.bottom && elRect.right <= ancestorRect.right;\n}\nvar OVERFLOW_RE = /auto|scroll|overlay|hidden|clip/;\nvar nonOverflowValues = /* @__PURE__ */ new Set([\"inline\", \"contents\"]);\nfunction isOverflowElement(el) {\n const win = getWindow(el);\n const { overflow, overflowX, overflowY, display } = win.getComputedStyle(el);\n return OVERFLOW_RE.test(overflow + overflowY + overflowX) && !nonOverflowValues.has(display);\n}\nfunction isScrollable(el) {\n return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;\n}\nfunction scrollIntoView(el, options) {\n const { rootEl, ...scrollOptions } = options || {};\n if (!el || !rootEl) return;\n if (!isOverflowElement(rootEl) || !isScrollable(rootEl)) return;\n el.scrollIntoView(scrollOptions);\n}\nfunction getScrollPosition(element) {\n if (isHTMLElement(element)) {\n return { scrollLeft: element.scrollLeft, scrollTop: element.scrollTop };\n }\n return { scrollLeft: element.scrollX, scrollTop: element.scrollY };\n}\n\n// src/point.ts\nfunction getRelativePoint(point, element) {\n const { left, top, width, height } = element.getBoundingClientRect();\n const offset = { x: point.x - left, y: point.y - top };\n const percent = { x: clamp(offset.x / width), y: clamp(offset.y / height) };\n function getPercentValue(options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\", inverted } = options;\n const invertX = typeof inverted === \"object\" ? inverted.x : inverted;\n const invertY = typeof inverted === \"object\" ? inverted.y : inverted;\n if (orientation === \"horizontal\") {\n return dir === \"rtl\" || invertX ? 1 - percent.x : percent.x;\n }\n return invertY ? 1 - percent.y : percent.y;\n }\n return { offset, percent, getPercentValue };\n}\n\n// src/pointer-lock.ts\nfunction requestPointerLock(doc, fn) {\n const body = doc.body;\n const supported = \"pointerLockElement\" in doc || \"mozPointerLockElement\" in doc;\n const isLocked = () => !!doc.pointerLockElement;\n function onPointerChange() {\n fn?.(isLocked());\n }\n function onPointerError(event) {\n if (isLocked()) fn?.(false);\n console.error(\"PointerLock error occurred:\", event);\n doc.exitPointerLock();\n }\n if (!supported) return;\n try {\n body.requestPointerLock();\n } catch {\n }\n const cleanup = [\n addDomEvent(doc, \"pointerlockchange\", onPointerChange, false),\n addDomEvent(doc, \"pointerlockerror\", onPointerError, false)\n ];\n return () => {\n cleanup.forEach((cleanup2) => cleanup2());\n doc.exitPointerLock();\n };\n}\n\n// src/text-selection.ts\nvar state = \"default\";\nvar userSelect = \"\";\nvar elementMap = /* @__PURE__ */ new WeakMap();\nfunction disableTextSelectionImpl(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state === \"default\") {\n userSelect = rootEl.style.webkitUserSelect;\n rootEl.style.webkitUserSelect = \"none\";\n }\n state = \"disabled\";\n } else if (target) {\n elementMap.set(target, target.style.userSelect);\n target.style.userSelect = \"none\";\n }\n return () => restoreTextSelection({ target, doc: docNode });\n}\nfunction restoreTextSelection(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state !== \"disabled\") return;\n state = \"restoring\";\n setTimeout(() => {\n nextTick(() => {\n if (state === \"restoring\") {\n if (rootEl.style.webkitUserSelect === \"none\") {\n rootEl.style.webkitUserSelect = userSelect || \"\";\n }\n userSelect = \"\";\n state = \"default\";\n }\n });\n }, 300);\n } else {\n if (target && elementMap.has(target)) {\n const prevUserSelect = elementMap.get(target);\n if (target.style.userSelect === \"none\") {\n target.style.userSelect = prevUserSelect ?? \"\";\n }\n if (target.getAttribute(\"style\") === \"\") {\n target.removeAttribute(\"style\");\n }\n elementMap.delete(target);\n }\n }\n}\nfunction disableTextSelection(options = {}) {\n const { defer, target, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof target === \"function\" ? target() : target;\n cleanups.push(disableTextSelectionImpl({ ...restOptions, target: node }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/pointer-move.ts\nfunction trackPointerMove(doc, handlers) {\n const { onPointerMove, onPointerUp } = handlers;\n const handleMove = (event) => {\n const point = getEventPoint(event);\n const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n const moveBuffer = event.pointerType === \"touch\" ? 10 : 5;\n if (distance < moveBuffer) return;\n if (event.pointerType === \"mouse\" && event.buttons === 0) {\n handleUp(event);\n return;\n }\n onPointerMove({ point, event });\n };\n const handleUp = (event) => {\n const point = getEventPoint(event);\n onPointerUp({ point, event });\n };\n const cleanups = [\n addDomEvent(doc, \"pointermove\", handleMove, false),\n addDomEvent(doc, \"pointerup\", handleUp, false),\n addDomEvent(doc, \"pointercancel\", handleUp, false),\n addDomEvent(doc, \"contextmenu\", handleUp, false),\n disableTextSelection({ doc })\n ];\n return () => {\n cleanups.forEach((cleanup) => cleanup());\n };\n}\n\n// src/press.ts\nfunction trackPress(options) {\n const {\n pointerNode,\n keyboardNode = pointerNode,\n onPress,\n onPressStart,\n onPressEnd,\n isValidKey = (e) => e.key === \"Enter\"\n } = options;\n if (!pointerNode) return noop;\n const win = getWindow(pointerNode);\n let removeStartListeners = noop;\n let removeEndListeners = noop;\n let removeAccessibleListeners = noop;\n const getInfo = (event) => ({\n point: getEventPoint(event),\n event\n });\n function startPress(event) {\n onPressStart?.(getInfo(event));\n }\n function cancelPress(event) {\n onPressEnd?.(getInfo(event));\n }\n const startPointerPress = (startEvent) => {\n removeEndListeners();\n const endPointerPress = (endEvent) => {\n const target = getEventTarget(endEvent);\n if (contains(pointerNode, target)) {\n onPress?.(getInfo(endEvent));\n } else {\n onPressEnd?.(getInfo(endEvent));\n }\n };\n const removePointerUpListener = addDomEvent(win, \"pointerup\", endPointerPress, { passive: !onPress, once: true });\n const removePointerCancelListener = addDomEvent(win, \"pointercancel\", cancelPress, {\n passive: !onPressEnd,\n once: true\n });\n removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n if (isActiveElement(keyboardNode) && startEvent.pointerType === \"mouse\") {\n startEvent.preventDefault();\n }\n startPress(startEvent);\n };\n const removePointerListener = addDomEvent(pointerNode, \"pointerdown\", startPointerPress, { passive: !onPressStart });\n const removeFocusListener = addDomEvent(keyboardNode, \"focus\", startAccessiblePress);\n removeStartListeners = pipe(removePointerListener, removeFocusListener);\n function startAccessiblePress() {\n const handleKeydown = (keydownEvent) => {\n if (!isValidKey(keydownEvent)) return;\n const handleKeyup = (keyupEvent) => {\n if (!isValidKey(keyupEvent)) return;\n const evt2 = new win.PointerEvent(\"pointerup\");\n const info = getInfo(evt2);\n onPress?.(info);\n onPressEnd?.(info);\n };\n removeEndListeners();\n removeEndListeners = addDomEvent(keyboardNode, \"keyup\", handleKeyup);\n const evt = new win.PointerEvent(\"pointerdown\");\n startPress(evt);\n };\n const handleBlur = () => {\n const evt = new win.PointerEvent(\"pointercancel\");\n cancelPress(evt);\n };\n const removeKeydownListener = addDomEvent(keyboardNode, \"keydown\", handleKeydown);\n const removeBlurListener = addDomEvent(keyboardNode, \"blur\", handleBlur);\n removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n }\n return () => {\n removeStartListeners();\n removeEndListeners();\n removeAccessibleListeners();\n };\n}\n\n// src/proxy-tab-focus.ts\nfunction proxyTabFocusImpl(container, options = {}) {\n const { triggerElement, onFocus, onFocusEnter, getShadowRoot } = options;\n const doc = container?.ownerDocument || document;\n const body = doc.body;\n function onKeyDown(event) {\n if (event.key !== \"Tab\") return;\n let elementToFocus = null;\n const [firstTabbable, lastTabbable] = getTabbableEdges(container, { includeContainer: true, getShadowRoot });\n const nextTabbableAfterTrigger = getNextTabbable(body, { current: triggerElement, getShadowRoot });\n const noTabbableElements = !firstTabbable && !lastTabbable;\n if (event.shiftKey && isActiveElement(nextTabbableAfterTrigger)) {\n onFocusEnter?.();\n elementToFocus = lastTabbable;\n } else if (event.shiftKey && (isActiveElement(firstTabbable) || noTabbableElements)) {\n elementToFocus = triggerElement;\n } else if (!event.shiftKey && isActiveElement(triggerElement)) {\n onFocusEnter?.();\n elementToFocus = firstTabbable;\n } else if (!event.shiftKey && (isActiveElement(lastTabbable) || noTabbableElements)) {\n elementToFocus = nextTabbableAfterTrigger;\n }\n if (!elementToFocus) return;\n event.preventDefault();\n if (typeof onFocus === \"function\") {\n onFocus(elementToFocus);\n } else {\n elementToFocus.focus();\n }\n }\n return addDomEvent(doc, \"keydown\", onKeyDown, true);\n}\nfunction proxyTabFocus(container, options) {\n const { defer, triggerElement, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof container === \"function\" ? container() : container;\n const trigger = typeof triggerElement === \"function\" ? triggerElement() : triggerElement;\n cleanups.push(proxyTabFocusImpl(node, { triggerElement: trigger, ...restOptions }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/query.ts\nfunction queryAll(root, selector) {\n return Array.from(root?.querySelectorAll(selector) ?? []);\n}\nfunction query(root, selector) {\n return root?.querySelector(selector) ?? null;\n}\nvar defaultItemToId = (v) => v.id;\nfunction itemById(v, id, itemToId = defaultItemToId) {\n return v.find((item) => itemToId(item) === id);\n}\nfunction indexOfId(v, id, itemToId = defaultItemToId) {\n const item = itemById(v, id, itemToId);\n return item ? v.indexOf(item) : -1;\n}\nfunction nextById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n idx = loop ? (idx + 1) % v.length : Math.min(idx + 1, v.length - 1);\n return v[idx];\n}\nfunction prevById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n if (idx === -1) return loop ? v[v.length - 1] : null;\n idx = loop ? (idx - 1 + v.length) % v.length : Math.max(0, idx - 1);\n return v[idx];\n}\n\n// src/resize-observer.ts\nfunction createSharedResizeObserver(options) {\n const listeners = /* @__PURE__ */ new WeakMap();\n let observer;\n const entries = /* @__PURE__ */ new WeakMap();\n const getObserver = (win) => {\n if (observer) return observer;\n observer = new win.ResizeObserver((observedEntries) => {\n for (const entry of observedEntries) {\n entries.set(entry.target, entry);\n const elementListeners = listeners.get(entry.target);\n if (elementListeners) {\n for (const listener of elementListeners) {\n listener(entry);\n }\n }\n }\n });\n return observer;\n };\n const observe = (element, listener) => {\n let elementListeners = listeners.get(element) || /* @__PURE__ */ new Set();\n elementListeners.add(listener);\n listeners.set(element, elementListeners);\n const win = getWindow(element);\n getObserver(win).observe(element, options);\n return () => {\n const elementListeners2 = listeners.get(element);\n if (!elementListeners2) return;\n elementListeners2.delete(listener);\n if (elementListeners2.size === 0) {\n listeners.delete(element);\n getObserver(win).unobserve(element);\n }\n };\n };\n const unobserve = (element) => {\n listeners.delete(element);\n observer?.unobserve(element);\n };\n return {\n observe,\n unobserve\n };\n}\nvar resizeObserverContentBox = /* @__PURE__ */ createSharedResizeObserver({\n box: \"content-box\"\n});\nvar resizeObserverBorderBox = /* @__PURE__ */ createSharedResizeObserver({\n box: \"border-box\"\n});\nvar resizeObserverDevicePixelContentBox = /* @__PURE__ */ createSharedResizeObserver({\n box: \"device-pixel-content-box\"\n});\n\n// src/scope.ts\nfunction createScope(methods) {\n const dom = {\n getRootNode: (ctx) => ctx.getRootNode?.() ?? document,\n getDoc: (ctx) => getDocument(dom.getRootNode(ctx)),\n getWin: (ctx) => dom.getDoc(ctx).defaultView ?? window,\n getActiveElement: (ctx) => getActiveElement(dom.getRootNode(ctx)),\n isActiveElement,\n getById: (ctx, id) => dom.getRootNode(ctx).getElementById(id),\n setValue: (elem, value) => {\n if (elem == null || value == null) return;\n setElementValue(elem, value.toString());\n }\n };\n return { ...dom, ...methods };\n}\n\n// src/searchable.ts\nvar sanitize = (str) => str.split(\"\").map((char) => {\n const code = char.charCodeAt(0);\n if (code > 0 && code < 128) return char;\n if (code >= 128 && code <= 255) return `/x${code.toString(16)}`.replace(\"/\", \"\\\\\");\n return \"\";\n}).join(\"\").trim();\nvar getValueText = (el) => {\n return sanitize(el.dataset?.valuetext ?? el.textContent ?? \"\");\n};\nvar match = (valueText, query2) => {\n return valueText.trim().toLowerCase().startsWith(query2.toLowerCase());\n};\nfunction getByText(v, text, currentId, itemToId = defaultItemToId) {\n const index = currentId ? indexOfId(v, currentId, itemToId) : -1;\n let items = currentId ? wrap(v, index) : v;\n const isSingleKey = text.length === 1;\n if (isSingleKey) {\n items = items.filter((item) => itemToId(item) !== currentId);\n }\n return items.find((item) => match(getValueText(item), text));\n}\n\n// src/set.ts\nfunction setAttribute(el, attr, v) {\n const prev = el.getAttribute(attr);\n const exists = prev != null;\n el.setAttribute(attr, v);\n return () => {\n if (!exists) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, prev);\n }\n };\n}\nfunction setProperty(el, prop, v) {\n const exists = prop in el;\n const prev = el[prop];\n el[prop] = v;\n return () => {\n if (!exists) {\n delete el[prop];\n } else {\n el[prop] = prev;\n }\n };\n}\nfunction setStyle(el, style) {\n if (!el) return noop;\n const prev = Object.keys(style).reduce((acc, key) => {\n acc[key] = el.style.getPropertyValue(key);\n return acc;\n }, {});\n Object.assign(el.style, style);\n return () => {\n Object.assign(el.style, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\nfunction setStyleProperty(el, prop, value) {\n if (!el) return noop;\n const prev = el.style.getPropertyValue(prop);\n el.style.setProperty(prop, value);\n return () => {\n el.style.setProperty(prop, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\n\n// src/typeahead.ts\nfunction getByTypeaheadImpl(baseItems, options) {\n const { state: state2, activeId, key, timeout = 350, itemToId } = options;\n const search = state2.keysSoFar + key;\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const query2 = isRepeated ? search[0] : search;\n let items = baseItems.slice();\n const next = getByText(items, query2, activeId, itemToId);\n function cleanup() {\n clearTimeout(state2.timer);\n state2.timer = -1;\n }\n function update(value) {\n state2.keysSoFar = value;\n cleanup();\n if (value !== \"\") {\n state2.timer = +setTimeout(() => {\n update(\"\");\n cleanup();\n }, timeout);\n }\n }\n update(search);\n return next;\n}\nvar getByTypeahead = /* @__PURE__ */ Object.assign(getByTypeaheadImpl, {\n defaultOptions: { keysSoFar: \"\", timer: -1 },\n isValidEvent: isValidTypeaheadEvent\n});\nfunction isValidTypeaheadEvent(event) {\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\n\n// src/visual-viewport.ts\nfunction trackVisualViewport(doc, fn) {\n const win = doc?.defaultView || window;\n const onResize = () => {\n fn?.(getViewportSize(win));\n };\n onResize();\n return addDomEvent(win.visualViewport ?? win, \"resize\", onResize);\n}\nfunction getViewportSize(win) {\n return {\n width: win.visualViewport?.width || win.innerWidth,\n height: win.visualViewport?.height || win.innerHeight\n };\n}\n\n// src/visually-hidden.ts\nvar visuallyHiddenStyle = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n};\nfunction setVisuallyHidden(el) {\n Object.assign(el.style, visuallyHiddenStyle);\n}\n\n// src/wait-for.ts\nfunction waitForPromise(promise, controller, timeout) {\n const { signal } = controller;\n const wrappedPromise = new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n reject(new Error(`Timeout of ${timeout}ms exceeded`));\n }, timeout);\n signal.addEventListener(\"abort\", () => {\n clearTimeout(timeoutId);\n reject(new Error(\"Promise aborted\"));\n });\n promise.then((result) => {\n if (!signal.aborted) {\n clearTimeout(timeoutId);\n resolve(result);\n }\n }).catch((error) => {\n if (!signal.aborted) {\n clearTimeout(timeoutId);\n reject(error);\n }\n });\n });\n const abort = () => controller.abort();\n return [wrappedPromise, abort];\n}\nfunction waitForElement(target, options) {\n const { timeout, rootNode } = options;\n const win = getWindow(rootNode);\n const doc = getDocument(rootNode);\n const controller = new win.AbortController();\n return waitForPromise(\n new Promise((resolve) => {\n const el = target();\n if (el) {\n resolve(el);\n return;\n }\n const observer = new win.MutationObserver(() => {\n const el2 = target();\n if (el2 && el2.isConnected) {\n observer.disconnect();\n resolve(el2);\n }\n });\n observer.observe(doc.body, {\n childList: true,\n subtree: true\n });\n }),\n controller,\n timeout\n );\n}\n\nexport { AnimationFrame, MAX_Z_INDEX, addDomEvent, ariaAttr, clickIfLink, contains, createScope, dataAttr, defaultItemToId, disableTextSelection, dispatchInputCheckedEvent, dispatchInputValueEvent, findControlledElements, getActiveElement, getBeforeInputValue, getByText, getByTypeahead, getComputedStyle, getControlledElements, getDataUrl, getDocument, getDocumentElement, getEventKey, getEventPoint, getEventStep, getEventTarget, getFirstFocusable, getFirstTabbable, getFocusables, getInitialFocus, getLastTabbable, getNativeEvent, getNearestOverflowAncestor, getNextTabbable, getNodeName, getOverflowAncestors, getParentNode, getPlatform, getRelativePoint, getRootNode, getScrollPosition, getTabIndex, getTabbableEdges, getTabbables, getUserAgent, getWindow, hasControllerElements, indexOfId, isActiveElement, isAnchorElement, isAndroid, isApple, isCaretAtStart, isChrome, isComposingEvent, isContextMenuEvent, isControlledByExpandedController, isControlledElement, isControllerElement, isCtrlOrMetaKey, isDocument, isDom, isDownloadingEvent, isEditableElement, isElementVisible, isFirefox, isFocusable, isHTMLElement, isIPad, isIPhone, isInView, isInputElement, isInteractiveContainerElement, isIos, isKeyboardClick, isLeftClick, isMac, isModifierKey, isNode, isOpeningInNewTab, isOverflowElement, isPrintableKey, isRootElement, isSafari, isSelfTarget, isShadowRoot, isTabbable, isTouchDevice, isTouchEvent, isValidTabEvent, isVirtualClick, isVirtualPointerEvent, isVisualViewport, isWebKit, isWindow, itemById, navigate, nextById, nextTick, observeAttributes, observeChildren, prevById, proxyTabFocus, query, queryAll, queueBeforeEvent, raf, requestPointerLock, resizeObserverBorderBox, resizeObserverContentBox, resizeObserverDevicePixelContentBox, restoreTextSelection, scrollIntoView, setAttribute, setCaretToEnd, setElementChecked, setElementValue, setProperty, setStyle, setStyleProperty, setVisuallyHidden, trackFormControl, trackPointerMove, trackPress, trackVisualViewport, visuallyHiddenStyle, waitForElement, waitForPromise };\n","var __defProp = Object.defineProperty;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n\n// src/array.ts\nfunction toArray(v) {\n if (v == null) return [];\n return Array.isArray(v) ? v : [v];\n}\nvar fromLength = (length) => Array.from(Array(length).keys());\nvar first = (v) => v[0];\nvar last = (v) => v[v.length - 1];\nvar isEmpty = (v) => v.length === 0;\nvar has = (v, t) => v.indexOf(t) !== -1;\nvar add = (v, ...items) => v.concat(items);\nvar remove = (v, ...items) => v.filter((t) => !items.includes(t));\nvar removeAt = (v, i) => v.filter((_, idx) => idx !== i);\nvar insertAt = (v, i, ...items) => [...v.slice(0, i), ...items, ...v.slice(i)];\nvar uniq = (v) => Array.from(new Set(v));\nvar diff = (a, b) => {\n const set = new Set(b);\n return a.filter((t) => !set.has(t));\n};\nvar addOrRemove = (v, item) => has(v, item) ? remove(v, item) : add(v, item);\nfunction clear(v) {\n while (v.length > 0) v.pop();\n return v;\n}\nfunction nextIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n const next2 = idx + step;\n const len = v.length;\n const last2 = len - 1;\n if (idx === -1) return step > 0 ? 0 : last2;\n if (next2 < 0) return loop ? last2 : 0;\n if (next2 >= len) return loop ? 0 : idx > len ? len : idx;\n return next2;\n}\nfunction next(v, idx, opts = {}) {\n return v[nextIndex(v, idx, opts)];\n}\nfunction prevIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n return nextIndex(v, idx, { step: -step, loop });\n}\nfunction prev(v, index, opts = {}) {\n return v[prevIndex(v, index, opts)];\n}\nfunction chunk(v, size) {\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value]);\n else last(rows)?.push(value);\n return rows;\n }, []);\n}\nfunction flatArray(arr) {\n return arr.reduce((flat, item) => {\n if (Array.isArray(item)) {\n return flat.concat(flatArray(item));\n }\n return flat.concat(item);\n }, []);\n}\nfunction partition(arr, fn) {\n return arr.reduce(\n ([pass, fail], value) => {\n if (fn(value)) pass.push(value);\n else fail.push(value);\n return [pass, fail];\n },\n [[], []]\n );\n}\n\n// src/equal.ts\nvar isArrayLike = (value) => value?.constructor.name === \"Array\";\nvar isArrayEqual = (a, b) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false;\n }\n return true;\n};\nvar isEqual = (a, b) => {\n if (Object.is(a, b)) return true;\n if (a == null && b != null || a != null && b == null) return false;\n if (typeof a?.isEqual === \"function\" && typeof b?.isEqual === \"function\") {\n return a.isEqual(b);\n }\n if (typeof a === \"function\" && typeof b === \"function\") {\n return a.toString() === b.toString();\n }\n if (isArrayLike(a) && isArrayLike(b)) {\n return isArrayEqual(Array.from(a), Array.from(b));\n }\n if (!(typeof a === \"object\") || !(typeof b === \"object\")) return false;\n const keys = Object.keys(b ?? /* @__PURE__ */ Object.create(null));\n const length = keys.length;\n for (let i = 0; i < length; i++) {\n const hasKey = Reflect.has(a, keys[i]);\n if (!hasKey) return false;\n }\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n if (!isEqual(a[key], b[key])) return false;\n }\n return true;\n};\n\n// src/guard.ts\nvar isDev = () => process.env.NODE_ENV !== \"production\";\nvar isArray = (v) => Array.isArray(v);\nvar isBoolean = (v) => v === true || v === false;\nvar isObjectLike = (v) => v != null && typeof v === \"object\";\nvar isObject = (v) => isObjectLike(v) && !isArray(v);\nvar isNumber = (v) => typeof v === \"number\" && !Number.isNaN(v);\nvar isString = (v) => typeof v === \"string\";\nvar isFunction = (v) => typeof v === \"function\";\nvar isNull = (v) => v == null;\nvar hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar baseGetTag = (v) => Object.prototype.toString.call(v);\nvar fnToString = Function.prototype.toString;\nvar objectCtorString = fnToString.call(Object);\nvar isPlainObject = (v) => {\n if (!isObjectLike(v) || baseGetTag(v) != \"[object Object]\" || isFrameworkElement(v)) return false;\n const proto = Object.getPrototypeOf(v);\n if (proto === null) return true;\n const Ctor = hasProp(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && fnToString.call(Ctor) == objectCtorString;\n};\nvar isReactElement = (x) => typeof x === \"object\" && x !== null && \"$$typeof\" in x && \"props\" in x;\nvar isVueElement = (x) => typeof x === \"object\" && x !== null && \"__v_isVNode\" in x;\nvar isFrameworkElement = (x) => isReactElement(x) || isVueElement(x);\n\n// src/functions.ts\nvar runIfFn = (v, ...a) => {\n const res = typeof v === \"function\" ? v(...a) : v;\n return res ?? void 0;\n};\nvar cast = (v) => v;\nvar identity = (v) => v();\nvar noop = () => {\n};\nvar callAll = (...fns) => (...a) => {\n fns.forEach(function(fn) {\n fn?.(...a);\n });\n};\nvar uuid = /* @__PURE__ */ (() => {\n let id = 0;\n return () => {\n id++;\n return id.toString(36);\n };\n})();\nfunction match(key, record, ...args) {\n if (key in record) {\n const fn = record[key];\n return isFunction(fn) ? fn(...args) : fn;\n }\n const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`);\n Error.captureStackTrace?.(error, match);\n throw error;\n}\nvar tryCatch = (fn, fallback) => {\n try {\n return fn();\n } catch (error) {\n if (error instanceof Error) {\n Error.captureStackTrace?.(error, tryCatch);\n }\n return fallback?.();\n }\n};\nfunction throttle(fn, wait = 0) {\n let lastCall = 0;\n let timeout = null;\n return ((...args) => {\n const now = Date.now();\n const timeSinceLastCall = now - lastCall;\n if (timeSinceLastCall >= wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n fn(...args);\n lastCall = now;\n } else if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n lastCall = Date.now();\n timeout = null;\n }, wait - timeSinceLastCall);\n }\n });\n}\nfunction debounce(fn, wait = 0) {\n let timeout = null;\n return ((...args) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n timeout = setTimeout(() => {\n fn(...args);\n }, wait);\n });\n}\n\n// src/number.ts\nvar { floor, abs, round, min, max, pow, sign } = Math;\nvar isNaN = (v) => Number.isNaN(v);\nvar nan = (v) => isNaN(v) ? 0 : v;\nvar mod = (v, m) => (v % m + m) % m;\nvar wrap = (v, vmax) => (v % vmax + vmax) % vmax;\nvar getMinValueAtIndex = (i, v, vmin) => i === 0 ? vmin : v[i - 1];\nvar getMaxValueAtIndex = (i, v, vmax) => i === v.length - 1 ? vmax : v[i + 1];\nvar isValueAtMax = (v, vmax) => nan(v) >= vmax;\nvar isValueAtMin = (v, vmin) => nan(v) <= vmin;\nvar isValueWithinRange = (v, vmin, vmax) => {\n const value = nan(v);\n const minCheck = vmin == null || value >= vmin;\n const maxCheck = vmax == null || value <= vmax;\n return minCheck && maxCheck;\n};\nvar roundValue = (v, vmin, step) => round((nan(v) - vmin) / step) * step + vmin;\nvar clampValue = (v, vmin, vmax) => min(max(nan(v), vmin), vmax);\nvar clampPercent = (v) => clampValue(v, 0, 1);\nvar getValuePercent = (v, vmin, vmax) => (nan(v) - vmin) / (vmax - vmin);\nvar getPercentValue = (p, vmin, vmax, step) => clampValue(roundValue(p * (vmax - vmin) + vmin, vmin, step), vmin, vmax);\nvar roundToStepPrecision = (v, step) => {\n let rv = v;\n let ss = step.toString();\n let pi = ss.indexOf(\".\");\n let p = pi >= 0 ? ss.length - pi : 0;\n if (p > 0) {\n let pw = pow(10, p);\n rv = round(rv * pw) / pw;\n }\n return rv;\n};\nvar roundToDpr = (v, dpr) => typeof dpr === \"number\" ? floor(v * dpr + 0.5) / dpr : round(v);\nvar snapValueToStep = (v, vmin, vmax, step) => {\n const min2 = vmin != null ? Number(vmin) : 0;\n const max2 = Number(vmax);\n const remainder = (v - min2) % step;\n let snapped = abs(remainder) * 2 >= step ? v + sign(remainder) * (step - abs(remainder)) : v - remainder;\n snapped = roundToStepPrecision(snapped, step);\n if (!isNaN(min2) && snapped < min2) {\n snapped = min2;\n } else if (!isNaN(max2) && snapped > max2) {\n const stepsInRange = floor((max2 - min2) / step);\n const largestValidStep = min2 + stepsInRange * step;\n snapped = stepsInRange <= 0 || largestValidStep < min2 ? max2 : largestValidStep;\n }\n return roundToStepPrecision(snapped, step);\n};\nvar setValueAtIndex = (vs, i, v) => {\n if (vs[i] === v) return vs;\n return [...vs.slice(0, i), v, ...vs.slice(i + 1)];\n};\nfunction getValueSetterAtIndex(index, ctx) {\n const minValueAtIndex = getMinValueAtIndex(index, ctx.values, ctx.min);\n const maxValueAtIndex = getMaxValueAtIndex(index, ctx.values, ctx.max);\n let nextValues = ctx.values.slice();\n return function setValue(value) {\n let nextValue = snapValueToStep(value, minValueAtIndex, maxValueAtIndex, ctx.step);\n nextValues = setValueAtIndex(nextValues, index, value);\n nextValues[index] = nextValue;\n return nextValues;\n };\n}\nfunction getNextStepValue(index, ctx) {\n const nextValue = ctx.values[index] + ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nfunction getPreviousStepValue(index, ctx) {\n const nextValue = ctx.values[index] - ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nvar getClosestValueIndex = (vs, t) => {\n let i = vs.findIndex((v) => t - v < 0);\n if (i === 0) return i;\n if (i === -1) return vs.length - 1;\n let vLeft = vs[i - 1];\n let vRight = vs[i];\n if (abs(vLeft - t) < abs(vRight - t)) return i - 1;\n return i;\n};\nvar getClosestValue = (vs, t) => vs[getClosestValueIndex(vs, t)];\nvar getValueRanges = (vs, vmin, vmax, gap) => vs.map((v, i) => ({\n min: i === 0 ? vmin : vs[i - 1] + gap,\n max: i === vs.length - 1 ? vmax : vs[i + 1] - gap,\n value: v\n}));\nvar getValueTransformer = (va, vb) => {\n const [a, b] = va;\n const [c, d] = vb;\n return (v) => a === b || c === d ? c : c + (d - c) / (b - a) * (v - a);\n};\nvar toFixedNumber = (v, d = 0, b = 10) => {\n const pow2 = Math.pow(b, d);\n return round(v * pow2) / pow2;\n};\nvar countDecimals = (value) => {\n if (!Number.isFinite(value)) return 0;\n let e = 1, p = 0;\n while (Math.round(value * e) / e !== value) {\n e *= 10;\n p += 1;\n }\n return p;\n};\nvar decimalOp = (a, op, b) => {\n let result = op === \"+\" ? a + b : a - b;\n if (a % 1 !== 0 || b % 1 !== 0) {\n const multiplier = 10 ** Math.max(countDecimals(a), countDecimals(b));\n a = Math.round(a * multiplier);\n b = Math.round(b * multiplier);\n result = op === \"+\" ? a + b : a - b;\n result /= multiplier;\n }\n return result;\n};\nvar incrementValue = (v, s) => decimalOp(nan(v), \"+\", s);\nvar decrementValue = (v, s) => decimalOp(nan(v), \"-\", s);\nvar toPx = (v) => typeof v === \"number\" ? `${v}px` : v;\n\n// src/object.ts\nfunction compact(obj) {\n if (!isPlainObject(obj) || obj === void 0) return obj;\n const keys = Reflect.ownKeys(obj).filter((key) => typeof key === \"string\");\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = compact(value);\n }\n }\n return filtered;\n}\nvar json = (v) => JSON.parse(JSON.stringify(v));\nfunction pick(obj, keys) {\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = value;\n }\n }\n return filtered;\n}\nfunction splitProps(props, keys) {\n const rest = {};\n const result = {};\n const keySet = new Set(keys);\n const ownKeys = Reflect.ownKeys(props);\n for (const key of ownKeys) {\n if (keySet.has(key)) {\n result[key] = props[key];\n } else {\n rest[key] = props[key];\n }\n }\n return [result, rest];\n}\nvar createSplitProps = (keys) => {\n return function split(props) {\n return splitProps(props, keys);\n };\n};\nfunction omit(obj, keys) {\n return createSplitProps(keys)(obj)[1];\n}\n\n// src/store.ts\nfunction createStore(initialState, compare = Object.is) {\n let state = { ...initialState };\n const listeners = /* @__PURE__ */ new Set();\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const publish = () => {\n listeners.forEach((listener) => listener());\n };\n const get = (key) => {\n return state[key];\n };\n const set = (key, value) => {\n if (!compare(state[key], value)) {\n state[key] = value;\n publish();\n }\n };\n const update = (updates) => {\n let hasChanges = false;\n for (const key in updates) {\n const value = updates[key];\n if (value !== void 0 && !compare(state[key], value)) {\n state[key] = value;\n hasChanges = true;\n }\n }\n if (hasChanges) {\n publish();\n }\n };\n const snapshot = () => ({ ...state });\n return {\n subscribe,\n get,\n set,\n update,\n snapshot\n };\n}\n\n// src/timers.ts\nvar currentTime = () => performance.now();\nvar _tick;\nvar Timer = class {\n constructor(onTick) {\n this.onTick = onTick;\n __publicField(this, \"frameId\", null);\n __publicField(this, \"pausedAtMs\", null);\n __publicField(this, \"context\");\n __publicField(this, \"cancelFrame\", () => {\n if (this.frameId === null) return;\n cancelAnimationFrame(this.frameId);\n this.frameId = null;\n });\n __publicField(this, \"setStartMs\", (startMs) => {\n this.context.startMs = startMs;\n });\n __publicField(this, \"start\", () => {\n if (this.frameId !== null) return;\n const now = currentTime();\n if (this.pausedAtMs !== null) {\n this.context.startMs += now - this.pausedAtMs;\n this.pausedAtMs = null;\n } else {\n this.context.startMs = now;\n }\n this.frameId = requestAnimationFrame(__privateGet(this, _tick));\n });\n __publicField(this, \"pause\", () => {\n if (this.frameId === null) return;\n this.cancelFrame();\n this.pausedAtMs = currentTime();\n });\n __publicField(this, \"stop\", () => {\n if (this.frameId === null) return;\n this.cancelFrame();\n this.pausedAtMs = null;\n });\n __privateAdd(this, _tick, (now) => {\n this.context.now = now;\n this.context.deltaMs = now - this.context.startMs;\n const shouldContinue = this.onTick(this.context);\n if (shouldContinue === false) {\n this.stop();\n return;\n }\n this.frameId = requestAnimationFrame(__privateGet(this, _tick));\n });\n this.context = { now: 0, startMs: currentTime(), deltaMs: 0 };\n }\n get elapsedMs() {\n if (this.pausedAtMs !== null) {\n return this.pausedAtMs - this.context.startMs;\n }\n return currentTime() - this.context.startMs;\n }\n};\n_tick = new WeakMap();\nfunction setRafInterval(fn, intervalMs) {\n const timer = new Timer(({ now, deltaMs }) => {\n if (deltaMs >= intervalMs) {\n const startMs = intervalMs > 0 ? now - deltaMs % intervalMs : now;\n timer.setStartMs(startMs);\n fn({ startMs, deltaMs });\n }\n });\n timer.start();\n return () => timer.stop();\n}\nfunction setRafTimeout(fn, delayMs) {\n const timer = new Timer(({ deltaMs }) => {\n if (deltaMs >= delayMs) {\n fn();\n return false;\n }\n });\n timer.start();\n return () => timer.stop();\n}\n\n// src/warning.ts\nfunction warn(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m);\n }\n}\nfunction invariant(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m);\n }\n}\nfunction ensure(c, m) {\n if (c == null) throw new Error(m());\n}\nfunction ensureProps(props, keys, scope) {\n let missingKeys = [];\n for (const key of keys) {\n if (props[key] == null) missingKeys.push(key);\n }\n if (missingKeys.length > 0)\n throw new Error(`[zag-js${scope ? ` > ${scope}` : \"\"}] missing required props: ${missingKeys.join(\", \")}`);\n}\n\nexport { Timer, add, addOrRemove, callAll, cast, chunk, clampPercent, clampValue, clear, compact, createSplitProps, createStore, debounce, decrementValue, diff, ensure, ensureProps, first, flatArray, fromLength, getClosestValue, getClosestValueIndex, getMaxValueAtIndex, getMinValueAtIndex, getNextStepValue, getPercentValue, getPreviousStepValue, getValuePercent, getValueRanges, getValueSetterAtIndex, getValueTransformer, has, hasProp, identity, incrementValue, insertAt, invariant, isArray, isBoolean, isDev, isEmpty, isEqual, isFunction, isNaN, isNull, isNumber, isObject, isObjectLike, isPlainObject, isString, isValueAtMax, isValueAtMin, isValueWithinRange, json, last, match, mod, nan, next, nextIndex, noop, omit, partition, pick, prev, prevIndex, remove, removeAt, roundToDpr, roundToStepPrecision, roundValue, runIfFn, setRafInterval, setRafTimeout, setValueAtIndex, snapValueToStep, splitProps, throttle, toArray, toFixedNumber, toPx, tryCatch, uniq, uuid, warn, wrap };\n","import { callAll, isEqual, isString } from '@zag-js/utils';\nimport { isActiveElement, getActiveElement, getDocument } from '@zag-js/dom-query';\n\n// src/merge-props.ts\nvar clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(\" \");\nvar CSS_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\nvar serialize = (style) => {\n const res = {};\n let match;\n while (match = CSS_REGEX.exec(style)) {\n res[match[1]] = match[2];\n }\n return res;\n};\nvar css = (a, b) => {\n if (isString(a)) {\n if (isString(b)) return `${a};${b}`;\n a = serialize(a);\n } else if (isString(b)) {\n b = serialize(b);\n }\n return Object.assign({}, a ?? {}, b ?? {});\n};\nfunction mergeProps(...args) {\n let result = {};\n for (let props of args) {\n if (!props) continue;\n for (let key in result) {\n if (key.startsWith(\"on\") && typeof result[key] === \"function\" && typeof props[key] === \"function\") {\n result[key] = callAll(props[key], result[key]);\n continue;\n }\n if (key === \"className\" || key === \"class\") {\n result[key] = clsx(result[key], props[key]);\n continue;\n }\n if (key === \"style\") {\n result[key] = css(result[key], props[key]);\n continue;\n }\n result[key] = props[key] !== void 0 ? props[key] : result[key];\n }\n for (let key in props) {\n if (result[key] === void 0) {\n result[key] = props[key];\n }\n }\n const symbols = Object.getOwnPropertySymbols(props);\n for (let symbol of symbols) {\n result[symbol] = props[symbol];\n }\n }\n return result;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return (depArgs) => {\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => !isEqual(deps[index], dep));\n if (!depsChanged) return result;\n deps = newDeps;\n result = fn(newDeps, depArgs);\n opts?.onChange?.(result);\n return result;\n };\n}\n\n// src/create-machine.ts\nfunction createGuards() {\n return {\n and: (...guards) => {\n return function andGuard(params) {\n return guards.every((str) => params.guard(str));\n };\n },\n or: (...guards) => {\n return function orGuard(params) {\n return guards.some((str) => params.guard(str));\n };\n },\n not: (guard) => {\n return function notGuard(params) {\n return !params.guard(guard);\n };\n }\n };\n}\nfunction createMachine(config) {\n return config;\n}\nfunction setup() {\n return {\n guards: createGuards(),\n createMachine: (config) => {\n return createMachine(config);\n },\n choose: (transitions) => {\n return function chooseFn({ choose }) {\n return choose(transitions)?.actions;\n };\n }\n };\n}\n\n// src/types.ts\nvar MachineStatus = /* @__PURE__ */ ((MachineStatus2) => {\n MachineStatus2[\"NotStarted\"] = \"Not Started\";\n MachineStatus2[\"Started\"] = \"Started\";\n MachineStatus2[\"Stopped\"] = \"Stopped\";\n return MachineStatus2;\n})(MachineStatus || {});\nvar INIT_STATE = \"__init__\";\nfunction createScope(props) {\n const getRootNode = () => props.getRootNode?.() ?? document;\n const getDoc = () => getDocument(getRootNode());\n const getWin = () => getDoc().defaultView ?? window;\n const getActiveElementFn = () => getActiveElement(getRootNode());\n const getById = (id) => getRootNode().getElementById(id);\n return {\n ...props,\n getRootNode,\n getDoc,\n getWin,\n getActiveElement: getActiveElementFn,\n isActiveElement,\n getById\n };\n}\n\nexport { INIT_STATE, MachineStatus, createGuards, createMachine, createScope, memo, mergeProps, setup };\n","// src/prop-types.ts\nfunction createNormalizer(fn) {\n return new Proxy({}, {\n get(_target, key) {\n if (key === \"style\")\n return (props) => {\n return fn({ style: props }).style;\n };\n return fn;\n }\n });\n}\n\n// src/create-props.ts\nvar createProps = () => (props) => Array.from(new Set(props));\n\nexport { createNormalizer, createProps };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dataAttr } from '@zag-js/dom-query';\nimport { createSplitProps, isNumber } from '@zag-js/utils';\nimport { createMachine, memo } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/pagination.anatomy.ts\nvar anatomy = createAnatomy(\"pagination\").parts(\n \"root\",\n \"item\",\n \"ellipsis\",\n \"firstTrigger\",\n \"prevTrigger\",\n \"nextTrigger\",\n \"lastTrigger\"\n);\nvar parts = anatomy.build();\n\n// src/pagination.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `pagination:${ctx.id}`;\nvar getFirstTriggerId = (ctx) => ctx.ids?.firstTrigger ?? `pagination:${ctx.id}:first`;\nvar getPrevTriggerId = (ctx) => ctx.ids?.prevTrigger ?? `pagination:${ctx.id}:prev`;\nvar getNextTriggerId = (ctx) => ctx.ids?.nextTrigger ?? `pagination:${ctx.id}:next`;\nvar getLastTriggerId = (ctx) => ctx.ids?.lastTrigger ?? `pagination:${ctx.id}:last`;\nvar getEllipsisId = (ctx, index) => ctx.ids?.ellipsis?.(index) ?? `pagination:${ctx.id}:ellipsis:${index}`;\nvar getItemId = (ctx, page) => ctx.ids?.item?.(page) ?? `pagination:${ctx.id}:item:${page}`;\nvar range = (start, end) => {\n let length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n};\nvar transform = (items) => {\n return items.map((value) => {\n if (isNumber(value)) return { type: \"page\", value };\n return { type: \"ellipsis\" };\n });\n};\nvar ELLIPSIS = \"ellipsis\";\nvar getRange = (ctx) => {\n const { page, totalPages, siblingCount, boundaryCount = 1 } = ctx;\n if (totalPages <= 0) return [];\n if (totalPages === 1) return [1];\n const firstPageIndex = 1;\n const lastPageIndex = totalPages;\n const leftSiblingIndex = Math.max(page - siblingCount, firstPageIndex);\n const rightSiblingIndex = Math.min(page + siblingCount, lastPageIndex);\n const totalPageNumbers = Math.min(siblingCount * 2 + 3 + boundaryCount * 2, totalPages);\n if (totalPages <= totalPageNumbers) {\n return range(firstPageIndex, lastPageIndex);\n }\n const itemCount = totalPageNumbers - 1 - boundaryCount;\n const showLeftEllipsis = leftSiblingIndex > firstPageIndex + boundaryCount + 1 && Math.abs(leftSiblingIndex - firstPageIndex) > boundaryCount + 1;\n const showRightEllipsis = rightSiblingIndex < lastPageIndex - boundaryCount - 1 && Math.abs(lastPageIndex - rightSiblingIndex) > boundaryCount + 1;\n let pages = [];\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = range(1, itemCount);\n pages.push(...leftRange, ELLIPSIS);\n pages.push(...range(lastPageIndex - boundaryCount + 1, lastPageIndex));\n } else if (showLeftEllipsis && !showRightEllipsis) {\n pages.push(...range(firstPageIndex, firstPageIndex + boundaryCount - 1));\n pages.push(ELLIPSIS);\n const rightRange = range(lastPageIndex - itemCount + 1, lastPageIndex);\n pages.push(...rightRange);\n } else if (showLeftEllipsis && showRightEllipsis) {\n pages.push(...range(firstPageIndex, firstPageIndex + boundaryCount - 1));\n pages.push(ELLIPSIS);\n const middleRange = range(leftSiblingIndex, rightSiblingIndex);\n pages.push(...middleRange);\n pages.push(ELLIPSIS);\n pages.push(...range(lastPageIndex - boundaryCount + 1, lastPageIndex));\n } else {\n pages.push(...range(firstPageIndex, lastPageIndex));\n }\n for (let i = 0; i < pages.length; i++) {\n if (pages[i] === ELLIPSIS) {\n const prevPage = isNumber(pages[i - 1]) ? pages[i - 1] : 0;\n const nextPage = isNumber(pages[i + 1]) ? pages[i + 1] : totalPages + 1;\n if (nextPage - prevPage === 2) {\n pages[i] = prevPage + 1;\n }\n }\n }\n return pages;\n};\nvar getTransformedRange = (ctx) => transform(getRange(ctx));\n\n// src/pagination.connect.ts\nfunction connect(service, normalize) {\n const { send, scope, prop, computed, context } = service;\n const totalPages = computed(\"totalPages\");\n const page = context.get(\"page\");\n const pageSize = context.get(\"pageSize\");\n const translations = prop(\"translations\");\n const count = prop(\"count\");\n const getPageUrl = prop(\"getPageUrl\");\n const type = prop(\"type\");\n const previousPage = computed(\"previousPage\");\n const nextPage = computed(\"nextPage\");\n const pageRange = computed(\"pageRange\");\n const isFirstPage = page === 1;\n const isLastPage = page === totalPages;\n const pages = getTransformedRange({\n page,\n totalPages,\n siblingCount: prop(\"siblingCount\"),\n boundaryCount: prop(\"boundaryCount\")\n });\n return {\n count,\n page,\n pageSize,\n totalPages,\n pages,\n previousPage,\n nextPage,\n pageRange,\n slice(data) {\n return data.slice(pageRange.start, pageRange.end);\n },\n setPageSize(size) {\n send({ type: \"SET_PAGE_SIZE\", size });\n },\n setPage(page2) {\n send({ type: \"SET_PAGE\", page: page2 });\n },\n goToNextPage() {\n send({ type: \"NEXT_PAGE\" });\n },\n goToPrevPage() {\n send({ type: \"PREVIOUS_PAGE\" });\n },\n goToFirstPage() {\n send({ type: \"FIRST_PAGE\" });\n },\n goToLastPage() {\n send({ type: \"LAST_PAGE\" });\n },\n getRootProps() {\n return normalize.element({\n id: getRootId(scope),\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n \"aria-label\": translations.rootLabel\n });\n },\n getEllipsisProps(props2) {\n return normalize.element({\n id: getEllipsisId(scope, props2.index),\n ...parts.ellipsis.attrs,\n dir: prop(\"dir\")\n });\n },\n getItemProps(props2) {\n const index = props2.value;\n const isCurrentPage = index === page;\n return normalize.element({\n id: getItemId(scope, index),\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n \"data-index\": index,\n \"data-selected\": dataAttr(isCurrentPage),\n \"aria-current\": isCurrentPage ? \"page\" : void 0,\n \"aria-label\": translations.itemLabel?.({ page: index, totalPages }),\n onClick() {\n send({ type: \"SET_PAGE\", page: index });\n },\n ...type === \"button\" && { type: \"button\" },\n ...type === \"link\" && getPageUrl && {\n href: getPageUrl({ page: index, pageSize })\n }\n });\n },\n getPrevTriggerProps() {\n return normalize.element({\n id: getPrevTriggerId(scope),\n ...parts.prevTrigger.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(isFirstPage),\n \"aria-label\": translations.prevTriggerLabel,\n onClick() {\n send({ type: \"PREVIOUS_PAGE\" });\n },\n ...type === \"button\" && { disabled: isFirstPage, type: \"button\" },\n ...type === \"link\" && getPageUrl && previousPage && {\n href: getPageUrl({ page: previousPage, pageSize })\n }\n });\n },\n getFirstTriggerProps() {\n return normalize.element({\n id: getFirstTriggerId(scope),\n ...parts.firstTrigger.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(isFirstPage),\n \"aria-label\": translations.firstTriggerLabel,\n onClick() {\n send({ type: \"FIRST_PAGE\" });\n },\n ...type === \"button\" && { disabled: isFirstPage, type: \"button\" },\n ...type === \"link\" && getPageUrl && {\n href: getPageUrl({ page: 1, pageSize })\n }\n });\n },\n getNextTriggerProps() {\n return normalize.element({\n id: getNextTriggerId(scope),\n ...parts.nextTrigger.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(isLastPage),\n \"aria-label\": translations.nextTriggerLabel,\n onClick() {\n send({ type: \"NEXT_PAGE\" });\n },\n ...type === \"button\" && { disabled: isLastPage, type: \"button\" },\n ...type === \"link\" && getPageUrl && nextPage && {\n href: getPageUrl({ page: nextPage, pageSize })\n }\n });\n },\n getLastTriggerProps() {\n return normalize.element({\n id: getLastTriggerId(scope),\n ...parts.lastTrigger.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(isLastPage),\n \"aria-label\": translations.lastTriggerLabel,\n onClick() {\n send({ type: \"LAST_PAGE\" });\n },\n ...type === \"button\" && { disabled: isLastPage, type: \"button\" },\n ...type === \"link\" && getPageUrl && {\n href: getPageUrl({ page: totalPages, pageSize })\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n defaultPageSize: 10,\n siblingCount: 1,\n boundaryCount: 1,\n defaultPage: 1,\n type: \"button\",\n count: 1,\n ...props2,\n translations: {\n rootLabel: \"pagination\",\n firstTriggerLabel: \"first page\",\n prevTriggerLabel: \"previous page\",\n nextTriggerLabel: \"next page\",\n lastTriggerLabel: \"last page\",\n itemLabel({ page, totalPages }) {\n const isLastPage = totalPages > 1 && page === totalPages;\n return `${isLastPage ? \"last page, \" : \"\"}page ${page}`;\n },\n ...props2.translations\n }\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable, getContext }) {\n return {\n page: bindable(() => ({\n value: prop(\"page\"),\n defaultValue: prop(\"defaultPage\"),\n onChange(value) {\n const context = getContext();\n prop(\"onPageChange\")?.({ page: value, pageSize: context.get(\"pageSize\") });\n }\n })),\n pageSize: bindable(() => ({\n value: prop(\"pageSize\"),\n defaultValue: prop(\"defaultPageSize\"),\n onChange(value) {\n prop(\"onPageSizeChange\")?.({ pageSize: value });\n }\n }))\n };\n },\n watch({ track, context, action }) {\n track([() => context.get(\"pageSize\")], () => {\n action([\"setPageIfNeeded\"]);\n });\n },\n computed: {\n totalPages: memo(\n ({ prop, context }) => [context.get(\"pageSize\"), prop(\"count\")],\n ([pageSize, count]) => Math.ceil(count / pageSize)\n ),\n pageRange: memo(\n ({ context, prop }) => [context.get(\"page\"), context.get(\"pageSize\"), prop(\"count\")],\n ([page, pageSize, count]) => {\n const start = (page - 1) * pageSize;\n return { start, end: Math.min(start + pageSize, count) };\n }\n ),\n previousPage: ({ context }) => context.get(\"page\") === 1 ? null : context.get(\"page\") - 1,\n nextPage: ({ context, computed }) => context.get(\"page\") === computed(\"totalPages\") ? null : context.get(\"page\") + 1,\n isValidPage: ({ context, computed }) => context.get(\"page\") >= 1 && context.get(\"page\") <= computed(\"totalPages\")\n },\n on: {\n SET_PAGE: {\n guard: \"isValidPage\",\n actions: [\"setPage\"]\n },\n SET_PAGE_SIZE: {\n actions: [\"setPageSize\"]\n },\n FIRST_PAGE: {\n actions: [\"goToFirstPage\"]\n },\n LAST_PAGE: {\n actions: [\"goToLastPage\"]\n },\n PREVIOUS_PAGE: {\n guard: \"canGoToPrevPage\",\n actions: [\"goToPrevPage\"]\n },\n NEXT_PAGE: {\n guard: \"canGoToNextPage\",\n actions: [\"goToNextPage\"]\n }\n },\n states: {\n idle: {}\n },\n implementations: {\n guards: {\n isValidPage: ({ event, computed }) => event.page >= 1 && event.page <= computed(\"totalPages\"),\n isValidCount: ({ context, event }) => context.get(\"page\") > event.count,\n canGoToNextPage: ({ context, computed }) => context.get(\"page\") < computed(\"totalPages\"),\n canGoToPrevPage: ({ context }) => context.get(\"page\") > 1\n },\n actions: {\n setPage({ context, event, computed }) {\n const page = clampPage(event.page, computed(\"totalPages\"));\n context.set(\"page\", page);\n },\n setPageSize({ context, event }) {\n context.set(\"pageSize\", event.size);\n },\n goToFirstPage({ context }) {\n context.set(\"page\", 1);\n },\n goToLastPage({ context, computed }) {\n context.set(\"page\", computed(\"totalPages\"));\n },\n goToPrevPage({ context, computed }) {\n context.set(\"page\", (prev) => clampPage(prev - 1, computed(\"totalPages\")));\n },\n goToNextPage({ context, computed }) {\n context.set(\"page\", (prev) => clampPage(prev + 1, computed(\"totalPages\")));\n },\n setPageIfNeeded({ context, computed }) {\n if (computed(\"isValidPage\")) return;\n context.set(\"page\", 1);\n }\n }\n }\n});\nvar clampPage = (page, totalPages) => Math.min(Math.max(page, 1), totalPages);\nvar props = createProps()([\n \"boundaryCount\",\n \"count\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"onPageChange\",\n \"onPageSizeChange\",\n \"page\",\n \"defaultPage\",\n \"pageSize\",\n \"defaultPageSize\",\n \"siblingCount\",\n \"translations\",\n \"type\",\n \"getPageUrl\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"value\", \"type\"]);\nvar splitItemProps = createSplitProps(itemProps);\nvar ellipsisProps = createProps()([\"index\"]);\nvar splitEllipsisProps = createSplitProps(ellipsisProps);\n\nexport { anatomy, connect, ellipsisProps, itemProps, machine, props, splitEllipsisProps, splitItemProps, splitProps };\n","\"use client\";\n\nimport { createScope, MachineStatus, INIT_STATE } from '@zag-js/core';\nexport { mergeProps } from '@zag-js/core';\nimport { compact, ensure, isFunction, warn, toArray, isString, identity } from '@zag-js/utils';\nimport * as React from 'react';\nimport { useMemo, useRef, useLayoutEffect, useEffect, useState } from 'react';\nimport { flushSync, createPortal } from 'react-dom';\nimport { createNormalizer } from '@zag-js/types';\nimport { jsx } from 'react/jsx-runtime';\n\n// src/index.ts\nvar useSafeLayoutEffect = typeof globalThis.document !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/bindable.ts\nfunction useBindable(props) {\n const initial = props().value ?? props().defaultValue;\n const eq = props().isEqual ?? Object.is;\n const [initialValue] = useState(initial);\n const [value, setValue] = useState(initialValue);\n const controlled = props().value !== void 0;\n const valueRef = useRef(value);\n valueRef.current = controlled ? props().value : value;\n const prevValue = useRef(valueRef.current);\n useSafeLayoutEffect(() => {\n prevValue.current = valueRef.current;\n }, [value, props().value]);\n const setFn = (value2) => {\n const prev = prevValue.current;\n const next = isFunction(value2) ? value2(prev) : value2;\n if (props().debug) {\n console.log(`[bindable > ${props().debug}] setValue`, { next, prev });\n }\n if (!controlled) setValue(next);\n if (!eq(next, prev)) {\n props().onChange?.(next, prev);\n }\n };\n function get() {\n return controlled ? props().value : value;\n }\n return {\n initial: initialValue,\n ref: valueRef,\n get,\n set(value2) {\n const exec = props().sync ? flushSync : identity;\n exec(() => setFn(value2));\n },\n invoke(nextValue, prevValue2) {\n props().onChange?.(nextValue, prevValue2);\n },\n hash(value2) {\n return props().hash?.(value2) ?? String(value2);\n }\n };\n}\nuseBindable.cleanup = (fn) => {\n useEffect(() => fn, []);\n};\nuseBindable.ref = (defaultValue) => {\n const value = useRef(defaultValue);\n return {\n get: () => value.current,\n set: (next) => {\n value.current = next;\n }\n };\n};\nfunction useRefs(refs) {\n const ref = useRef(refs);\n return {\n get(key) {\n return ref.current[key];\n },\n set(key, value) {\n ref.current[key] = value;\n }\n };\n}\nvar useTrack = (deps, effect) => {\n const render = useRef(false);\n const called = useRef(false);\n useEffect(() => {\n const mounted = render.current;\n const run = mounted && called.current;\n if (run) return effect();\n called.current = true;\n }, [...(deps ?? []).map((d) => typeof d === \"function\" ? d() : d)]);\n useEffect(() => {\n render.current = true;\n return () => {\n render.current = false;\n };\n }, []);\n};\n\n// src/machine.ts\nfunction useMachine(machine, userProps = {}) {\n const scope = useMemo(() => {\n const { id, ids, getRootNode } = userProps;\n return createScope({ id, ids, getRootNode });\n }, [userProps]);\n const debug = (...args) => {\n if (machine.debug) console.log(...args);\n };\n const props = machine.props?.({ props: compact(userProps), scope }) ?? userProps;\n const prop = useProp(props);\n const context = machine.context?.({\n prop,\n bindable: useBindable,\n scope,\n flush,\n getContext() {\n return ctx;\n },\n getComputed() {\n return computed;\n },\n getRefs() {\n return refs;\n },\n getEvent() {\n return getEvent();\n }\n });\n const contextRef = useLiveRef(context);\n const ctx = {\n get(key) {\n return contextRef.current?.[key].ref.current;\n },\n set(key, value) {\n contextRef.current?.[key].set(value);\n },\n initial(key) {\n return contextRef.current?.[key].initial;\n },\n hash(key) {\n const current = contextRef.current?.[key].get();\n return contextRef.current?.[key].hash(current);\n }\n };\n const effects = useRef(/* @__PURE__ */ new Map());\n const transitionRef = useRef(null);\n const previousEventRef = useRef(null);\n const eventRef = useRef({ type: \"\" });\n const getEvent = () => ({\n ...eventRef.current,\n current() {\n return eventRef.current;\n },\n previous() {\n return previousEventRef.current;\n }\n });\n const getState = () => ({\n ...state,\n matches(...values) {\n return values.includes(state.ref.current);\n },\n hasTag(tag) {\n return !!machine.states[state.ref.current]?.tags?.includes(tag);\n }\n });\n const refs = useRefs(machine.refs?.({ prop, context: ctx }) ?? {});\n const getParams = () => ({\n state: getState(),\n context: ctx,\n event: getEvent(),\n prop,\n send,\n action,\n guard,\n track: useTrack,\n refs,\n computed,\n flush,\n scope,\n choose\n });\n const action = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.actions?.[s];\n if (!fn) warn(`[zag-js] No implementation found for action \"${JSON.stringify(s)}\"`);\n return fn;\n });\n for (const fn of fns) {\n fn?.(getParams());\n }\n };\n const guard = (str) => {\n if (isFunction(str)) return str(getParams());\n return machine.implementations?.guards?.[str](getParams());\n };\n const effect = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.effects?.[s];\n if (!fn) warn(`[zag-js] No implementation found for effect \"${JSON.stringify(s)}\"`);\n return fn;\n });\n const cleanups = [];\n for (const fn of fns) {\n const cleanup = fn?.(getParams());\n if (cleanup) cleanups.push(cleanup);\n }\n return () => cleanups.forEach((fn) => fn?.());\n };\n const choose = (transitions) => {\n return toArray(transitions).find((t) => {\n let result = !t.guard;\n if (isString(t.guard)) result = !!guard(t.guard);\n else if (isFunction(t.guard)) result = t.guard(getParams());\n return result;\n });\n };\n const computed = (key) => {\n ensure(machine.computed, () => `[zag-js] No computed object found on machine`);\n const fn = machine.computed[key];\n return fn({\n context: ctx,\n event: getEvent(),\n prop,\n refs,\n scope,\n computed\n });\n };\n const state = useBindable(() => ({\n defaultValue: machine.initialState({ prop }),\n onChange(nextState, prevState) {\n if (prevState) {\n const exitEffects = effects.current.get(prevState);\n exitEffects?.();\n effects.current.delete(prevState);\n }\n if (prevState) {\n action(machine.states[prevState]?.exit);\n }\n action(transitionRef.current?.actions);\n const cleanup = effect(machine.states[nextState]?.effects);\n if (cleanup) effects.current.set(nextState, cleanup);\n if (prevState === INIT_STATE) {\n action(machine.entry);\n const cleanup2 = effect(machine.effects);\n if (cleanup2) effects.current.set(INIT_STATE, cleanup2);\n }\n action(machine.states[nextState]?.entry);\n }\n }));\n const hydratedStateRef = useRef(void 0);\n const statusRef = useRef(MachineStatus.NotStarted);\n useSafeLayoutEffect(() => {\n queueMicrotask(() => {\n const started = statusRef.current === MachineStatus.Started;\n statusRef.current = MachineStatus.Started;\n debug(started ? \"rehydrating...\" : \"initializing...\");\n const initialState = hydratedStateRef.current ?? state.initial;\n state.invoke(initialState, started ? state.get() : INIT_STATE);\n });\n const fns = effects.current;\n const currentState = state.ref.current;\n return () => {\n debug(\"unmounting...\");\n hydratedStateRef.current = currentState;\n statusRef.current = MachineStatus.Stopped;\n fns.forEach((fn) => fn?.());\n effects.current = /* @__PURE__ */ new Map();\n transitionRef.current = null;\n queueMicrotask(() => {\n action(machine.exit);\n });\n };\n }, []);\n const getCurrentState = () => {\n if (\"ref\" in state) return state.ref.current;\n return state.get();\n };\n const send = (event) => {\n queueMicrotask(() => {\n if (statusRef.current !== MachineStatus.Started) return;\n previousEventRef.current = eventRef.current;\n eventRef.current = event;\n let currentState = getCurrentState();\n const transitions = (\n // @ts-ignore\n machine.states[currentState].on?.[event.type] ?? // @ts-ignore\n machine.on?.[event.type]\n );\n const transition = choose(transitions);\n if (!transition) return;\n transitionRef.current = transition;\n const target = transition.target ?? currentState;\n debug(\"transition\", event.type, transition.target || currentState, `(${transition.actions})`);\n const changed = target !== currentState;\n if (changed) {\n flushSync(() => state.set(target));\n } else if (transition.reenter && !changed) {\n state.invoke(currentState, currentState);\n } else {\n action(transition.actions ?? []);\n }\n });\n };\n machine.watch?.(getParams());\n return {\n state: getState(),\n send,\n context: ctx,\n prop,\n scope,\n refs,\n computed,\n event: getEvent(),\n getStatus: () => statusRef.current\n };\n}\nfunction useLiveRef(value) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\nfunction useProp(value) {\n const ref = useLiveRef(value);\n return function get(key) {\n return ref.current[key];\n };\n}\nfunction flush(fn) {\n queueMicrotask(() => {\n flushSync(() => fn());\n });\n}\nvar normalizeProps = createNormalizer((v) => v);\nvar Portal = (props) => {\n const { children, container, disabled, getRootNode } = props;\n const isServer = typeof window === \"undefined\";\n if (isServer || disabled) return /* @__PURE__ */ jsx(React.Fragment, { children });\n const doc = getRootNode?.().ownerDocument ?? document;\n const mountNode = container?.current ?? doc.body;\n return /* @__PURE__ */ jsx(React.Fragment, { children: React.Children.map(children, (child) => createPortal(child, mountNode)) });\n};\n\nexport { Portal, normalizeProps, useMachine };\n","export function sliceArrayWithIndex(arr: any[], index: number, length: number) {\n const relativeElements = (length - 1) / 2\n\n let start = Math.max(0, index - relativeElements)\n let end = Math.min(arr.length, index + relativeElements + 1)\n\n if (end - start < length) {\n start = Math.max(0, Math.min(start, arr.length - length))\n end = Math.min(arr.length, start + length)\n }\n\n return arr.slice(start, end)\n}\n","import * as pagination from '@zag-js/pagination'\nimport { normalizeProps, type PropTypes, useMachine } from '@zag-js/react'\nimport { createContext, type ReactNode, useContext, useId } from 'react'\n\nimport { sliceArrayWithIndex } from './utils'\n\nexport interface PaginationContextState<T extends PropTypes = PropTypes> {\n type: pagination.Props['type']\n pagination: pagination.Api<T> & {\n getFirstPageTriggerProps: () => ReturnType<pagination.Api<T>['getPrevTriggerProps']> & {\n 'data-part': string\n onClick: () => void\n }\n getLastPageTriggerProps: () => ReturnType<pagination.Api<T>['getNextTriggerProps']> & {\n 'data-part': string\n onClick: () => void\n }\n }\n}\n\nconst PaginationContext = createContext<PaginationContextState | null>(null)\n\nexport interface PaginationProviderProps {\n children: ReactNode\n /**\n * Total number of data items available across all pages.\n */\n count: number\n /**\n * Maximum amount of items displayed on a single page.\n */\n pageSize: number\n /**\n * Number of visible pages (or ellipsis) between previous and next page triggers.\n */\n visiblePageItems?: number\n /**\n * The current page (active page)\n */\n page?: pagination.Props['page']\n /**\n * If your pagination contains buttons instead of links, set `type` to `button`, extra attributes will be applied on page items for a11y.\n */\n type?: pagination.Props['type']\n onPageChange?: pagination.Props['onPageChange']\n noEllipsis?: boolean\n}\n\nexport const PaginationProvider = ({\n children,\n count,\n visiblePageItems = 7,\n pageSize,\n page,\n onPageChange,\n noEllipsis,\n type = 'link',\n}: PaginationProviderProps) => {\n /**\n * Here `Infinity` is used because we apply a custom slice ourselves to manage the \"no ellipsis\" version.\n * It means Zag won't filter out any page item, allowing us to apply our own slicing logic.\n */\n const siblingCount = noEllipsis ? Infinity : Math.max(0, Math.floor((visiblePageItems - 5) / 2))\n\n const id = useId()\n\n const service = useMachine(pagination.machine, {\n id,\n count,\n siblingCount,\n pageSize,\n page,\n onPageChange,\n type,\n })\n\n const api = pagination.connect(service, normalizeProps)\n const pages = noEllipsis\n ? sliceArrayWithIndex(api.pages, api.page - 1, visiblePageItems)\n : api.pages\n\n return (\n <PaginationContext.Provider\n value={{\n type,\n pagination: {\n ...api,\n pages,\n // Extending ZagJS anatomy\n getFirstPageTriggerProps: () => {\n return {\n ...api.getPrevTriggerProps(),\n id: `${api.getRootProps().id}:first`,\n 'data-part': 'first-page-trigger',\n onClick: api.goToFirstPage,\n }\n },\n getLastPageTriggerProps: () => {\n return {\n ...api.getNextTriggerProps(),\n id: `${api.getRootProps().id}:last`,\n 'data-part': 'last-page-trigger',\n onClick: api.goToLastPage,\n }\n },\n },\n }}\n >\n {children}\n </PaginationContext.Provider>\n )\n}\n\nexport const usePagination = () => {\n const context = useContext(PaginationContext)\n\n if (!context) {\n throw Error('usePagination must be used within a Pagination provider')\n }\n\n return context\n}\n","import { ReactNode } from 'react'\n\nimport {\n PaginationProvider,\n type PaginationProviderProps,\n usePagination,\n} from './PaginationContext'\n\nexport type PaginationProps = PaginationProviderProps & { className?: string }\n\nexport const Pagination = ({\n children,\n visiblePageItems = 5,\n type = 'link',\n noEllipsis = false,\n className,\n ...rest\n}: PaginationProps) => {\n return (\n <PaginationProvider\n visiblePageItems={visiblePageItems}\n noEllipsis={noEllipsis}\n type={type}\n {...rest}\n >\n <PaginationWrapper className={className}>{children}</PaginationWrapper>\n </PaginationProvider>\n )\n}\n\nconst PaginationWrapper = ({\n children,\n className,\n}: {\n children: ReactNode\n className?: string\n}) => {\n const { pagination } = usePagination()\n\n const props = pagination.getRootProps()\n\n return (\n <nav data-spark-component=\"pagination\" {...props} className={className}>\n <ul className=\"gap-md flex flex-wrap\">{children}</ul>\n </nav>\n )\n}\n\nPagination.displayName = 'Pagination'\n","import { mergeProps } from '@zag-js/react'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentPropsWithRef } from 'react'\n\nimport { usePagination } from './PaginationContext'\n\ninterface EllipsisProps extends ComponentPropsWithRef<'span'> {\n index: number\n}\n\nexport const Ellipsis = ({ children, index, className, ref, ...rest }: EllipsisProps) => {\n const { pagination } = usePagination()\n const apiProps = pagination.getEllipsisProps({ index })\n const localProps = {\n className: cx('flex size-sz-44 items-center justify-center', className),\n ...rest,\n }\n\n const mergedProps = mergeProps(apiProps, localProps)\n\n return (\n <li>\n <span data-spark-component=\"pagination-ellipsis\" ref={ref} {...mergedProps}>\n {children || '\\u2026'}\n </span>\n </li>\n )\n}\n\nEllipsis.displayName = 'Pagination.Ellipsis'\n","import { ArrowDoubleLeft } from '@spark-ui/icons/ArrowDoubleLeft'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type FirstPageTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const FirstPageTrigger = ({\n children,\n className,\n href,\n ref,\n ...props\n}: FirstPageTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getFirstPageTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-first-page-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowDoubleLeft />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nFirstPageTrigger.displayName = 'Pagination.FirstPageTrigger'\n","import { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Button } from '../button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type ItemProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n value: number\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Item = ({ children, value, className, href, ref, ...props }: ItemProps) => {\n const { pagination } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getItemProps({ type: 'page', value })\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-item',\n intent: 'support',\n design: apiProps['aria-current'] === 'page' ? 'filled' : 'contrast',\n className,\n ...props,\n }\n\n const mergedProps = mergeProps(apiProps, localProps)\n\n return (\n <li>\n {href ? (\n <Button ref={ref} {...mergedProps} asChild>\n <a href={href}>{children || value}</a>\n </Button>\n ) : (\n <Button ref={ref} {...mergedProps}>\n {children || value}\n </Button>\n )}\n </li>\n )\n}\n\nItem.displayName = 'Pagination.Item'\n","import { ArrowDoubleRight } from '@spark-ui/icons/ArrowDoubleRight'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type LastPageTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const LastPageTrigger = ({\n children,\n className,\n href,\n ref,\n ...props\n}: LastPageTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getLastPageTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-last-page-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowDoubleRight />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nLastPageTrigger.displayName = 'Pagination.LastPageTrigger'\n","import { ArrowVerticalRight } from '@spark-ui/icons/ArrowVerticalRight'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type NextTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const NextTrigger = ({ children, className, href, ref, ...props }: NextTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getNextTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-next-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowVerticalRight />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nNextTrigger.displayName = 'Pagination.NextTrigger'\n","import * as pagination from '@zag-js/pagination'\nimport { ReactNode } from 'react'\n\nimport { usePagination } from './PaginationContext'\n\n// Extract the 'page' type element from the pagination API's 'pages' array.\ntype PageItem = Extract<pagination.Api['pages'][number], { type: 'page' }>\n\n// Define a type that conditionally tweaks the pagination API\n// based on the generic T parameter.\ntype TweakedPaginationApi<T extends 'noEllipsis' | ''> = Omit<pagination.Api, 'pages'> & {\n pages: T extends 'noEllipsis' ? PageItem[] : pagination.Api['pages']\n}\n\ninterface PagesProps<T extends 'noEllipsis' | ''> {\n children: (pagination: TweakedPaginationApi<T>) => ReactNode\n}\n\nexport const Pages = <T extends 'noEllipsis' | '' = ''>({ children }: PagesProps<T>) => {\n const { pagination } = usePagination()\n\n return children(pagination as TweakedPaginationApi<T>)\n}\n\nPages.displayName = 'Pagination.Pages'\n","import { ArrowVerticalLeft } from '@spark-ui/icons/ArrowVerticalLeft'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type PrevTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const PrevTrigger = ({ children, className, href, ref, ...props }: PrevTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getPrevTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-prev-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowVerticalLeft />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nPrevTrigger.displayName = 'Pagination.PrevTrigger'\n","import type { FC } from 'react'\n\nimport { Pagination as Root, type PaginationProps } from './Pagination'\nimport { Ellipsis } from './PaginationEllipsis'\nimport { FirstPageTrigger } from './PaginationFirstPageTrigger'\nimport { Item } from './PaginationItem'\nimport { LastPageTrigger } from './PaginationLastPageTrigger'\nimport { NextTrigger } from './PaginationNextTrigger'\nimport { Pages } from './PaginationPages'\nimport { PrevTrigger } from './PaginationPrevTrigger'\n\nexport const Pagination: FC<PaginationProps> & {\n PrevTrigger: typeof PrevTrigger\n NextTrigger: typeof NextTrigger\n Pages: typeof Pages\n Item: typeof Item\n Ellipsis: typeof Ellipsis\n FirstPageTrigger: typeof FirstPageTrigger\n LastPageTrigger: typeof LastPageTrigger\n} = Object.assign(Root, {\n PrevTrigger,\n NextTrigger,\n Pages,\n Item,\n Ellipsis,\n FirstPageTrigger,\n LastPageTrigger,\n})\n\nPagination.displayName = 'Pagination'\n\nPrevTrigger.displayName = 'Pagination.PrevTrigger'\nNextTrigger.displayName = 'Pagination.NextTrigger'\nPages.displayName = 'Pagination.Pages'\nItem.displayName = 'Pagination.Item'\nEllipsis.displayName = 'Pagination.Ellipsis'\nFirstPageTrigger.displayName = 'Pagination.FirstPageTrigger'\nLastPageTrigger.displayName = 'Pagination.LastPageTrigger'\n"],"names":["createAnatomy","name","parts","values","isEmpty","part","newName","prev","toKebabCase","value","v","isObject","dataAttr","guard","DOCUMENT_NODE","isDocument","el","isWindow","isActiveElement","element","rootNode","getActiveElement","getDocument","activeElement","toArray","isArrayLike","isArrayEqual","a","b","i","isEqual","keys","length","key","isObjectLike","isNumber","isString","isFunction","hasProp","obj","prop","baseGetTag","fnToString","objectCtorString","isPlainObject","isFrameworkElement","proto","Ctor","isReactElement","x","isVueElement","identity","callAll","fns","fn","compact","filtered","warn","m","ensure","c","clsx","args","str","CSS_REGEX","serialize","style","res","match","css","mergeProps","result","props","symbols","symbol","memo","getDeps","opts","deps","depArgs","newDeps","dep","index","MachineStatus","MachineStatus2","INIT_STATE","createScope","getRootNode","getDoc","id","createNormalizer","_target","createProps","anatomy","getRootId","ctx","getFirstTriggerId","getPrevTriggerId","getNextTriggerId","getLastTriggerId","getEllipsisId","getItemId","page","range","start","end","_","idx","transform","items","ELLIPSIS","getRange","totalPages","siblingCount","boundaryCount","firstPageIndex","lastPageIndex","leftSiblingIndex","rightSiblingIndex","totalPageNumbers","itemCount","showLeftEllipsis","showRightEllipsis","pages","leftRange","rightRange","middleRange","prevPage","getTransformedRange","connect","service","normalize","send","scope","computed","context","pageSize","translations","count","getPageUrl","type","previousPage","nextPage","pageRange","isFirstPage","isLastPage","data","size","page2","props2","isCurrentPage","machine","bindable","getContext","track","action","event","clampPage","useSafeLayoutEffect","useLayoutEffect","useEffect","useBindable","initial","eq","initialValue","useState","setValue","controlled","valueRef","useRef","prevValue","setFn","value2","next","get","flushSync","nextValue","prevValue2","defaultValue","useRefs","refs","ref","useTrack","effect","render","called","d","useMachine","userProps","useMemo","ids","debug","useProp","flush","getEvent","contextRef","useLiveRef","current","effects","transitionRef","previousEventRef","eventRef","getState","state","tag","getParams","choose","strs","s","cleanups","cleanup","transitions","t","nextState","prevState","cleanup2","hydratedStateRef","statusRef","started","initialState","currentState","getCurrentState","transition","target","changed","normalizeProps","sliceArrayWithIndex","arr","relativeElements","PaginationContext","createContext","PaginationProvider","children","visiblePageItems","onPageChange","noEllipsis","useId","pagination.machine","api","pagination.connect","jsx","usePagination","useContext","Pagination","className","rest","PaginationWrapper","pagination","Ellipsis","apiProps","localProps","cx","mergedProps","FirstPageTrigger","href","shouldDisableLink","content","Icon","ArrowDoubleLeft","IconButton","Item","Button","LastPageTrigger","ArrowDoubleRight","NextTrigger","ArrowVerticalRight","Pages","PrevTrigger","ArrowVerticalLeft","Root"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/pagination/utils.ts","../../src/pagination/PaginationContext.tsx","../../src/pagination/Pagination.tsx","../../src/pagination/PaginationEllipsis.tsx","../../src/pagination/PaginationFirstPageTrigger.tsx","../../src/pagination/PaginationItem.tsx","../../src/pagination/PaginationLastPageTrigger.tsx","../../src/pagination/PaginationNextTrigger.tsx","../../src/pagination/PaginationPages.tsx","../../src/pagination/PaginationPrevTrigger.tsx","../../src/pagination/index.ts"],"sourcesContent":["export function sliceArrayWithIndex(arr: any[], index: number, length: number) {\n const relativeElements = (length - 1) / 2\n\n let start = Math.max(0, index - relativeElements)\n let end = Math.min(arr.length, index + relativeElements + 1)\n\n if (end - start < length) {\n start = Math.max(0, Math.min(start, arr.length - length))\n end = Math.min(arr.length, start + length)\n }\n\n return arr.slice(start, end)\n}\n","import * as pagination from '@zag-js/pagination'\nimport { normalizeProps, type PropTypes, useMachine } from '@zag-js/react'\nimport { createContext, type ReactNode, useContext, useId } from 'react'\n\nimport { sliceArrayWithIndex } from './utils'\n\nexport interface PaginationContextState<T extends PropTypes = PropTypes> {\n type: pagination.Props['type']\n pagination: pagination.Api<T> & {\n getFirstPageTriggerProps: () => ReturnType<pagination.Api<T>['getPrevTriggerProps']> & {\n 'data-part': string\n onClick: () => void\n }\n getLastPageTriggerProps: () => ReturnType<pagination.Api<T>['getNextTriggerProps']> & {\n 'data-part': string\n onClick: () => void\n }\n }\n}\n\nconst PaginationContext = createContext<PaginationContextState | null>(null)\n\nexport interface PaginationProviderProps {\n children: ReactNode\n /**\n * Total number of data items available across all pages.\n */\n count: number\n /**\n * Maximum amount of items displayed on a single page.\n */\n pageSize: number\n /**\n * Number of visible pages (or ellipsis) between previous and next page triggers.\n */\n visiblePageItems?: number\n /**\n * The current page (active page)\n */\n page?: pagination.Props['page']\n /**\n * If your pagination contains buttons instead of links, set `type` to `button`, extra attributes will be applied on page items for a11y.\n */\n type?: pagination.Props['type']\n onPageChange?: pagination.Props['onPageChange']\n noEllipsis?: boolean\n}\n\nexport const PaginationProvider = ({\n children,\n count,\n visiblePageItems = 7,\n pageSize,\n page,\n onPageChange,\n noEllipsis,\n type = 'link',\n}: PaginationProviderProps) => {\n /**\n * Here `Infinity` is used because we apply a custom slice ourselves to manage the \"no ellipsis\" version.\n * It means Zag won't filter out any page item, allowing us to apply our own slicing logic.\n */\n const siblingCount = noEllipsis ? Infinity : Math.max(0, Math.floor((visiblePageItems - 5) / 2))\n\n const id = useId()\n\n const service = useMachine(pagination.machine, {\n id,\n count,\n siblingCount,\n pageSize,\n page,\n onPageChange,\n type,\n })\n\n const api = pagination.connect(service, normalizeProps)\n const pages = noEllipsis\n ? sliceArrayWithIndex(api.pages, api.page - 1, visiblePageItems)\n : api.pages\n\n return (\n <PaginationContext.Provider\n value={{\n type,\n pagination: {\n ...api,\n pages,\n // Extending ZagJS anatomy\n getFirstPageTriggerProps: () => {\n return {\n ...api.getPrevTriggerProps(),\n id: `${api.getRootProps().id}:first`,\n 'data-part': 'first-page-trigger',\n onClick: api.goToFirstPage,\n }\n },\n getLastPageTriggerProps: () => {\n return {\n ...api.getNextTriggerProps(),\n id: `${api.getRootProps().id}:last`,\n 'data-part': 'last-page-trigger',\n onClick: api.goToLastPage,\n }\n },\n },\n }}\n >\n {children}\n </PaginationContext.Provider>\n )\n}\n\nexport const usePagination = () => {\n const context = useContext(PaginationContext)\n\n if (!context) {\n throw Error('usePagination must be used within a Pagination provider')\n }\n\n return context\n}\n","import { ReactNode } from 'react'\n\nimport {\n PaginationProvider,\n type PaginationProviderProps,\n usePagination,\n} from './PaginationContext'\n\nexport type PaginationProps = PaginationProviderProps & { className?: string }\n\nexport const Pagination = ({\n children,\n visiblePageItems = 5,\n type = 'link',\n noEllipsis = false,\n className,\n ...rest\n}: PaginationProps) => {\n return (\n <PaginationProvider\n visiblePageItems={visiblePageItems}\n noEllipsis={noEllipsis}\n type={type}\n {...rest}\n >\n <PaginationWrapper className={className}>{children}</PaginationWrapper>\n </PaginationProvider>\n )\n}\n\nconst PaginationWrapper = ({\n children,\n className,\n}: {\n children: ReactNode\n className?: string\n}) => {\n const { pagination } = usePagination()\n\n const props = pagination.getRootProps()\n\n return (\n <nav data-spark-component=\"pagination\" {...props} className={className}>\n <ul className=\"gap-md flex flex-wrap\">{children}</ul>\n </nav>\n )\n}\n\nPagination.displayName = 'Pagination'\n","import { mergeProps } from '@zag-js/react'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentPropsWithRef } from 'react'\n\nimport { usePagination } from './PaginationContext'\n\ninterface EllipsisProps extends ComponentPropsWithRef<'span'> {\n index: number\n}\n\nexport const Ellipsis = ({ children, index, className, ref, ...rest }: EllipsisProps) => {\n const { pagination } = usePagination()\n const apiProps = pagination.getEllipsisProps({ index })\n const localProps = {\n className: cx('flex size-sz-44 items-center justify-center', className),\n ...rest,\n }\n\n const mergedProps = mergeProps(apiProps, localProps)\n\n return (\n <li>\n <span data-spark-component=\"pagination-ellipsis\" ref={ref} {...mergedProps}>\n {children || '\\u2026'}\n </span>\n </li>\n )\n}\n\nEllipsis.displayName = 'Pagination.Ellipsis'\n","import { ArrowDoubleLeft } from '@spark-ui/icons/ArrowDoubleLeft'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type FirstPageTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const FirstPageTrigger = ({\n children,\n className,\n href,\n ref,\n ...props\n}: FirstPageTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getFirstPageTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-first-page-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowDoubleLeft />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nFirstPageTrigger.displayName = 'Pagination.FirstPageTrigger'\n","import { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Button } from '../button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type ItemProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n value: number\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Item = ({ children, value, className, href, ref, ...props }: ItemProps) => {\n const { pagination } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getItemProps({ type: 'page', value })\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-item',\n intent: 'support',\n design: apiProps['aria-current'] === 'page' ? 'filled' : 'contrast',\n className,\n ...props,\n }\n\n const mergedProps = mergeProps(apiProps, localProps)\n\n return (\n <li>\n {href ? (\n <Button ref={ref} {...mergedProps} asChild>\n <a href={href}>{children || value}</a>\n </Button>\n ) : (\n <Button ref={ref} {...mergedProps}>\n {children || value}\n </Button>\n )}\n </li>\n )\n}\n\nItem.displayName = 'Pagination.Item'\n","import { ArrowDoubleRight } from '@spark-ui/icons/ArrowDoubleRight'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type LastPageTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const LastPageTrigger = ({\n children,\n className,\n href,\n ref,\n ...props\n}: LastPageTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getLastPageTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-last-page-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowDoubleRight />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nLastPageTrigger.displayName = 'Pagination.LastPageTrigger'\n","import { ArrowVerticalRight } from '@spark-ui/icons/ArrowVerticalRight'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type NextTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const NextTrigger = ({ children, className, href, ref, ...props }: NextTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getNextTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-next-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowVerticalRight />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nNextTrigger.displayName = 'Pagination.NextTrigger'\n","import * as pagination from '@zag-js/pagination'\nimport { ReactNode } from 'react'\n\nimport { usePagination } from './PaginationContext'\n\n// Extract the 'page' type element from the pagination API's 'pages' array.\ntype PageItem = Extract<pagination.Api['pages'][number], { type: 'page' }>\n\n// Define a type that conditionally tweaks the pagination API\n// based on the generic T parameter.\ntype TweakedPaginationApi<T extends 'noEllipsis' | ''> = Omit<pagination.Api, 'pages'> & {\n pages: T extends 'noEllipsis' ? PageItem[] : pagination.Api['pages']\n}\n\ninterface PagesProps<T extends 'noEllipsis' | ''> {\n children: (pagination: TweakedPaginationApi<T>) => ReactNode\n}\n\nexport const Pages = <T extends 'noEllipsis' | '' = ''>({ children }: PagesProps<T>) => {\n const { pagination } = usePagination()\n\n return children(pagination as TweakedPaginationApi<T>)\n}\n\nPages.displayName = 'Pagination.Pages'\n","import { ArrowVerticalLeft } from '@spark-ui/icons/ArrowVerticalLeft'\nimport { mergeProps } from '@zag-js/react'\nimport { ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { usePagination } from './PaginationContext'\n\ninterface AnchorProps extends ComponentPropsWithoutRef<'a'> {\n href: string\n}\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n href?: undefined\n}\nexport type PrevTriggerProps = Omit<AnchorProps | ButtonProps, 'aria-label'> & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const PrevTrigger = ({ children, className, href, ref, ...props }: PrevTriggerProps) => {\n const { pagination, type } = usePagination()\n\n // ZagJS props\n const apiProps = pagination.getPrevTriggerProps()\n\n const shouldDisableLink =\n type === 'link' &&\n (apiProps as typeof apiProps & { 'data-disabled'?: string })['data-disabled'] === ''\n\n // Locally managed props\n const localProps = {\n 'data-spark-component': 'pagination-prev-trigger',\n intent: 'support',\n design: 'contrast',\n ...props,\n className,\n ...(shouldDisableLink && {\n disabled: true,\n role: 'link',\n 'aria-disabled': true,\n }),\n }\n\n // We know 'aria-label' is included in props\n type WithAriaLabel = Omit<typeof apiProps, 'aria-label'> & { 'aria-label': string }\n\n const mergedProps = mergeProps(\n apiProps,\n localProps as unknown as typeof apiProps\n ) as WithAriaLabel\n\n const content = children || (\n <Icon>\n <ArrowVerticalLeft />\n </Icon>\n )\n\n return (\n <li>\n {href ? (\n <IconButton ref={ref} {...mergedProps} asChild>\n <a href={shouldDisableLink ? undefined : href}>{content}</a>\n </IconButton>\n ) : (\n <IconButton ref={ref} {...mergedProps}>\n {content}\n </IconButton>\n )}\n </li>\n )\n}\n\nPrevTrigger.displayName = 'Pagination.PrevTrigger'\n","import type { FC } from 'react'\n\nimport { Pagination as Root, type PaginationProps } from './Pagination'\nimport { Ellipsis } from './PaginationEllipsis'\nimport { FirstPageTrigger } from './PaginationFirstPageTrigger'\nimport { Item } from './PaginationItem'\nimport { LastPageTrigger } from './PaginationLastPageTrigger'\nimport { NextTrigger } from './PaginationNextTrigger'\nimport { Pages } from './PaginationPages'\nimport { PrevTrigger } from './PaginationPrevTrigger'\n\nexport const Pagination: FC<PaginationProps> & {\n PrevTrigger: typeof PrevTrigger\n NextTrigger: typeof NextTrigger\n Pages: typeof Pages\n Item: typeof Item\n Ellipsis: typeof Ellipsis\n FirstPageTrigger: typeof FirstPageTrigger\n LastPageTrigger: typeof LastPageTrigger\n} = Object.assign(Root, {\n PrevTrigger,\n NextTrigger,\n Pages,\n Item,\n Ellipsis,\n FirstPageTrigger,\n LastPageTrigger,\n})\n\nPagination.displayName = 'Pagination'\n\nPrevTrigger.displayName = 'Pagination.PrevTrigger'\nNextTrigger.displayName = 'Pagination.NextTrigger'\nPages.displayName = 'Pagination.Pages'\nItem.displayName = 'Pagination.Item'\nEllipsis.displayName = 'Pagination.Ellipsis'\nFirstPageTrigger.displayName = 'Pagination.FirstPageTrigger'\nLastPageTrigger.displayName = 'Pagination.LastPageTrigger'\n"],"names":["sliceArrayWithIndex","arr","index","length","relativeElements","start","end","PaginationContext","createContext","PaginationProvider","children","count","visiblePageItems","pageSize","page","onPageChange","noEllipsis","type","siblingCount","id","useId","service","useMachine","pagination","api","normalizeProps","pages","jsx","usePagination","context","useContext","Pagination","className","rest","PaginationWrapper","props","Ellipsis","ref","apiProps","localProps","cx","mergedProps","mergeProps","FirstPageTrigger","href","shouldDisableLink","content","Icon","ArrowDoubleLeft","IconButton","Item","value","Button","LastPageTrigger","ArrowDoubleRight","NextTrigger","ArrowVerticalRight","Pages","PrevTrigger","ArrowVerticalLeft","Root"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Popover as Root } from './Popover';
|
|
2
|
+
import { Anchor } from './PopoverAnchor';
|
|
3
|
+
import { Arrow } from './PopoverArrow';
|
|
4
|
+
import { CloseButton } from './PopoverCloseButton';
|
|
5
|
+
import { Content } from './PopoverContent';
|
|
6
|
+
import { Header } from './PopoverHeader';
|
|
7
|
+
import { Portal } from './PopoverPortal';
|
|
8
|
+
import { Trigger } from './PopoverTrigger';
|
|
9
|
+
export declare const Popover: typeof Root & {
|
|
10
|
+
Anchor: typeof Anchor;
|
|
11
|
+
Arrow: typeof Arrow;
|
|
12
|
+
CloseButton: typeof CloseButton;
|
|
13
|
+
Content: typeof Content;
|
|
14
|
+
Header: typeof Header;
|
|
15
|
+
Portal: typeof Portal;
|
|
16
|
+
Trigger: typeof Trigger;
|
|
17
|
+
};
|
package/dist/popover/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react/jsx-runtime"),Y=require("react"),U=require("../index-Dkj4QRX8.js"),ne=require("../index-1WIgmEZh.js"),Ye=require("../index-DO-atGp-.js"),ee=require("../index-tXqxYME3.js"),Ke=require("../index-CDBBjNXc.js"),p=require("../floating-ui.utils.dom-CCN4I08l.js"),zt=require("react-dom"),oe=require("../index-ChLwd62c.js"),je=require("../index-MQ0c3ZX_.js"),qt=require("../index-Cjj_rUPu.js"),Vt=require("../index-DKuHkHFX.js"),Ue=require("../index-MHF2-CYX.js"),de=require("../index-DnaHaH_0.js"),Xt=require("@spark-ui/icons/Close"),Yt=require("../Icon-Bf0XrmiR.js"),Kt=require("../IconButton-Bf-EDzpI.js");function Ge(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const v=Ge(Y),Ut=Ge(zt),Gt=["top","right","bottom","left"],V=Math.min,H=Math.max,ae=Math.round,se=Math.floor,B=e=>({x:e,y:e}),Zt={left:"right",right:"left",bottom:"top",top:"bottom"},Jt={start:"end",end:"start"};function xe(e,t,n){return H(e,V(t,n))}function z(e,t){return typeof e=="function"?e(t):e}function q(e){return e.split("-")[0]}function J(e){return e.split("-")[1]}function we(e){return e==="x"?"y":"x"}function ye(e){return e==="y"?"height":"width"}const Qt=new Set(["top","bottom"]);function I(e){return Qt.has(q(e))?"y":"x"}function Pe(e){return we(I(e))}function en(e,t,n){n===void 0&&(n=!1);const o=J(e),r=Pe(e),i=ye(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=le(s)),[s,le(s)]}function tn(e){const t=le(e);return[ve(e),t,ve(t)]}function ve(e){return e.replace(/start|end/g,t=>Jt[t])}const Fe=["left","right"],ke=["right","left"],nn=["top","bottom"],on=["bottom","top"];function rn(e,t,n){switch(e){case"top":case"bottom":return n?t?ke:Fe:t?Fe:ke;case"left":case"right":return t?nn:on;default:return[]}}function sn(e,t,n,o){const r=J(e);let i=rn(q(e),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),t&&(i=i.concat(i.map(ve)))),i}function le(e){return e.replace(/left|right|bottom|top/g,t=>Zt[t])}function cn(e){return{top:0,right:0,bottom:0,left:0,...e}}function Ze(e){return typeof e!="number"?cn(e):{top:e,right:e,bottom:e,left:e}}function fe(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function He(e,t,n){let{reference:o,floating:r}=e;const i=I(t),s=Pe(t),c=ye(s),a=q(t),l=i==="y",f=o.x+o.width/2-r.width/2,u=o.y+o.height/2-r.height/2,m=o[c]/2-r[c]/2;let d;switch(a){case"top":d={x:f,y:o.y-r.height};break;case"bottom":d={x:f,y:o.y+o.height};break;case"right":d={x:o.x+o.width,y:u};break;case"left":d={x:o.x-r.width,y:u};break;default:d={x:o.x,y:o.y}}switch(J(t)){case"start":d[s]-=m*(n&&l?-1:1);break;case"end":d[s]+=m*(n&&l?-1:1);break}return d}const an=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,c=i.filter(Boolean),a=await(s.isRTL==null?void 0:s.isRTL(t));let l=await s.getElementRects({reference:e,floating:t,strategy:r}),{x:f,y:u}=He(l,o,a),m=o,d={},g=0;for(let h=0;h<c.length;h++){const{name:w,fn:x}=c[h],{x:P,y:b,data:A,reset:C}=await x({x:f,y:u,initialPlacement:o,placement:m,strategy:r,middlewareData:d,rects:l,platform:s,elements:{reference:e,floating:t}});f=P??f,u=b??u,d={...d,[w]:{...d[w],...A}},C&&g<=50&&(g++,typeof C=="object"&&(C.placement&&(m=C.placement),C.rects&&(l=C.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:r}):C.rects),{x:f,y:u}=He(l,m,a)),h=-1)}return{x:f,y:u,placement:m,strategy:r,middlewareData:d}};async function te(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:i,rects:s,elements:c,strategy:a}=e,{boundary:l="clippingAncestors",rootBoundary:f="viewport",elementContext:u="floating",altBoundary:m=!1,padding:d=0}=z(t,e),g=Ze(d),w=c[m?u==="floating"?"reference":"floating":u],x=fe(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(w)))==null||n?w:w.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:l,rootBoundary:f,strategy:a})),P=u==="floating"?{x:o,y:r,width:s.floating.width,height:s.floating.height}:s.reference,b=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),A=await(i.isElement==null?void 0:i.isElement(b))?await(i.getScale==null?void 0:i.getScale(b))||{x:1,y:1}:{x:1,y:1},C=fe(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:P,offsetParent:b,strategy:a}):P);return{top:(x.top-C.top+g.top)/A.y,bottom:(C.bottom-x.bottom+g.bottom)/A.y,left:(x.left-C.left+g.left)/A.x,right:(C.right-x.right+g.right)/A.x}}const ln=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:i,platform:s,elements:c,middlewareData:a}=t,{element:l,padding:f=0}=z(e,t)||{};if(l==null)return{};const u=Ze(f),m={x:n,y:o},d=Pe(r),g=ye(d),h=await s.getDimensions(l),w=d==="y",x=w?"top":"left",P=w?"bottom":"right",b=w?"clientHeight":"clientWidth",A=i.reference[g]+i.reference[d]-m[d]-i.floating[g],C=m[d]-i.reference[d],E=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l));let O=E?E[b]:0;(!O||!await(s.isElement==null?void 0:s.isElement(E)))&&(O=c.floating[b]||i.floating[g]);const L=A/2-C/2,F=O/2-h[g]/2-1,D=V(u[x],F),$=V(u[P],F),j=D,N=O-h[g]-$,S=O/2-h[g]/2+L,k=xe(j,S,N),T=!a.arrow&&J(r)!=null&&S!==k&&i.reference[g]/2-(S<j?D:$)-h[g]/2<0,M=T?S<j?S-j:S-N:0;return{[d]:m[d]+M,data:{[d]:k,centerOffset:S-k-M,...T&&{alignmentOffset:M}},reset:T}}}),fn=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:c,platform:a,elements:l}=t,{mainAxis:f=!0,crossAxis:u=!0,fallbackPlacements:m,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:g="none",flipAlignment:h=!0,...w}=z(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const x=q(r),P=I(c),b=q(c)===c,A=await(a.isRTL==null?void 0:a.isRTL(l.floating)),C=m||(b||!h?[le(c)]:tn(c)),E=g!=="none";!m&&E&&C.push(...sn(c,h,g,A));const O=[c,...C],L=await te(t,w),F=[];let D=((o=i.flip)==null?void 0:o.overflows)||[];if(f&&F.push(L[x]),u){const S=en(r,s,A);F.push(L[S[0]],L[S[1]])}if(D=[...D,{placement:r,overflows:F}],!F.every(S=>S<=0)){var $,j;const S=((($=i.flip)==null?void 0:$.index)||0)+1,k=O[S];if(k&&(!(u==="alignment"?P!==I(k):!1)||D.every(R=>I(R.placement)===P?R.overflows[0]>0:!0)))return{data:{index:S,overflows:D},reset:{placement:k}};let T=(j=D.filter(M=>M.overflows[0]<=0).sort((M,R)=>M.overflows[1]-R.overflows[1])[0])==null?void 0:j.placement;if(!T)switch(d){case"bestFit":{var N;const M=(N=D.filter(R=>{if(E){const _=I(R.placement);return _===P||_==="y"}return!0}).map(R=>[R.placement,R.overflows.filter(_=>_>0).reduce((_,W)=>_+W,0)]).sort((R,_)=>R[1]-_[1])[0])==null?void 0:N[0];M&&(T=M);break}case"initialPlacement":T=c;break}if(r!==T)return{reset:{placement:T}}}return{}}}};function We(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ie(e){return Gt.some(t=>e[t]>=0)}const un=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...r}=z(e,t);switch(o){case"referenceHidden":{const i=await te(t,{...r,elementContext:"reference"}),s=We(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ie(s)}}}case"escaped":{const i=await te(t,{...r,altBoundary:!0}),s=We(i,n.floating);return{data:{escapedOffsets:s,escaped:Ie(s)}}}default:return{}}}}},Je=new Set(["left","top"]);async function dn(e,t){const{placement:n,platform:o,elements:r}=e,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=q(n),c=J(n),a=I(n)==="y",l=Je.has(s)?-1:1,f=i&&a?-1:1,u=z(t,e);let{mainAxis:m,crossAxis:d,alignmentAxis:g}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return c&&typeof g=="number"&&(d=c==="end"?g*-1:g),a?{x:d*f,y:m*l}:{x:m*l,y:d*f}}const pn=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:i,placement:s,middlewareData:c}=t,a=await dn(t,e);return s===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+a.x,y:i+a.y,data:{...a,placement:s}}}}},mn=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:c={fn:w=>{let{x,y:P}=w;return{x,y:P}}},...a}=z(e,t),l={x:n,y:o},f=await te(t,a),u=I(q(r)),m=we(u);let d=l[m],g=l[u];if(i){const w=m==="y"?"top":"left",x=m==="y"?"bottom":"right",P=d+f[w],b=d-f[x];d=xe(P,d,b)}if(s){const w=u==="y"?"top":"left",x=u==="y"?"bottom":"right",P=g+f[w],b=g-f[x];g=xe(P,g,b)}const h=c.fn({...t,[m]:d,[u]:g});return{...h,data:{x:h.x-n,y:h.y-o,enabled:{[m]:i,[u]:s}}}}}},gn=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=t,{offset:c=0,mainAxis:a=!0,crossAxis:l=!0}=z(e,t),f={x:n,y:o},u=I(r),m=we(u);let d=f[m],g=f[u];const h=z(c,t),w=typeof h=="number"?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(a){const b=m==="y"?"height":"width",A=i.reference[m]-i.floating[b]+w.mainAxis,C=i.reference[m]+i.reference[b]-w.mainAxis;d<A?d=A:d>C&&(d=C)}if(l){var x,P;const b=m==="y"?"width":"height",A=Je.has(q(r)),C=i.reference[u]-i.floating[b]+(A&&((x=s.offset)==null?void 0:x[u])||0)+(A?0:w.crossAxis),E=i.reference[u]+i.reference[b]+(A?0:((P=s.offset)==null?void 0:P[u])||0)-(A?w.crossAxis:0);g<C?g=C:g>E&&(g=E)}return{[m]:d,[u]:g}}}},hn=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:i,platform:s,elements:c}=t,{apply:a=()=>{},...l}=z(e,t),f=await te(t,l),u=q(r),m=J(r),d=I(r)==="y",{width:g,height:h}=i.floating;let w,x;u==="top"||u==="bottom"?(w=u,x=m===(await(s.isRTL==null?void 0:s.isRTL(c.floating))?"start":"end")?"left":"right"):(x=u,w=m==="end"?"top":"bottom");const P=h-f.top-f.bottom,b=g-f.left-f.right,A=V(h-f[w],P),C=V(g-f[x],b),E=!t.middlewareData.shift;let O=A,L=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(L=b),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(O=P),E&&!m){const D=H(f.left,0),$=H(f.right,0),j=H(f.top,0),N=H(f.bottom,0);d?L=g-2*(D!==0||$!==0?D+$:H(f.left,f.right)):O=h-2*(j!==0||N!==0?j+N:H(f.top,f.bottom))}await a({...t,availableWidth:L,availableHeight:O});const F=await s.getDimensions(c.floating);return g!==F.width||h!==F.height?{reset:{rects:!0}}:{}}}};function Qe(e){const t=p.getComputedStyle(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=p.isHTMLElement(e),i=r?e.offsetWidth:n,s=r?e.offsetHeight:o,c=ae(n)!==i||ae(o)!==s;return c&&(n=i,o=s),{width:n,height:o,$:c}}function be(e){return p.isElement(e)?e:e.contextElement}function G(e){const t=be(e);if(!p.isHTMLElement(t))return B(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:i}=Qe(t);let s=(i?ae(n.width):n.width)/o,c=(i?ae(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!c||!Number.isFinite(c))&&(c=1),{x:s,y:c}}const xn=B(0);function et(e){const t=p.getWindow(e);return!p.isWebKit()||!t.visualViewport?xn:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function vn(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==p.getWindow(e)?!1:t}function K(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),i=be(e);let s=B(1);t&&(o?p.isElement(o)&&(s=G(o)):s=G(e));const c=vn(i,n,o)?et(i):B(0);let a=(r.left+c.x)/s.x,l=(r.top+c.y)/s.y,f=r.width/s.x,u=r.height/s.y;if(i){const m=p.getWindow(i),d=o&&p.isElement(o)?p.getWindow(o):o;let g=m,h=p.getFrameElement(g);for(;h&&o&&d!==g;){const w=G(h),x=h.getBoundingClientRect(),P=p.getComputedStyle(h),b=x.left+(h.clientLeft+parseFloat(P.paddingLeft))*w.x,A=x.top+(h.clientTop+parseFloat(P.paddingTop))*w.y;a*=w.x,l*=w.y,f*=w.x,u*=w.y,a+=b,l+=A,g=p.getWindow(h),h=p.getFrameElement(g)}}return fe({width:f,height:u,x:a,y:l})}function pe(e,t){const n=p.getNodeScroll(e).scrollLeft;return t?t.left+n:K(p.getDocumentElement(e)).left+n}function tt(e,t){const n=e.getBoundingClientRect(),o=n.left+t.scrollLeft-pe(e,n),r=n.top+t.scrollTop;return{x:o,y:r}}function wn(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const i=r==="fixed",s=p.getDocumentElement(o),c=t?p.isTopLayer(t.floating):!1;if(o===s||c&&i)return n;let a={scrollLeft:0,scrollTop:0},l=B(1);const f=B(0),u=p.isHTMLElement(o);if((u||!u&&!i)&&((p.getNodeName(o)!=="body"||p.isOverflowElement(s))&&(a=p.getNodeScroll(o)),p.isHTMLElement(o))){const d=K(o);l=G(o),f.x=d.x+o.clientLeft,f.y=d.y+o.clientTop}const m=s&&!u&&!i?tt(s,a):B(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-a.scrollLeft*l.x+f.x+m.x,y:n.y*l.y-a.scrollTop*l.y+f.y+m.y}}function yn(e){return Array.from(e.getClientRects())}function Pn(e){const t=p.getDocumentElement(e),n=p.getNodeScroll(e),o=e.ownerDocument.body,r=H(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),i=H(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+pe(e);const c=-n.scrollTop;return p.getComputedStyle(o).direction==="rtl"&&(s+=H(t.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:c}}const Be=25;function bn(e,t){const n=p.getWindow(e),o=p.getDocumentElement(e),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,c=0,a=0;if(r){i=r.width,s=r.height;const f=p.isWebKit();(!f||f&&t==="fixed")&&(c=r.offsetLeft,a=r.offsetTop)}const l=pe(o);if(l<=0){const f=o.ownerDocument,u=f.body,m=getComputedStyle(u),d=f.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,g=Math.abs(o.clientWidth-u.clientWidth-d);g<=Be&&(i-=g)}else l<=Be&&(i+=l);return{width:i,height:s,x:c,y:a}}const An=new Set(["absolute","fixed"]);function Cn(e,t){const n=K(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,i=p.isHTMLElement(e)?G(e):B(1),s=e.clientWidth*i.x,c=e.clientHeight*i.y,a=r*i.x,l=o*i.y;return{width:s,height:c,x:a,y:l}}function ze(e,t,n){let o;if(t==="viewport")o=bn(e,n);else if(t==="document")o=Pn(p.getDocumentElement(e));else if(p.isElement(t))o=Cn(t,n);else{const r=et(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return fe(o)}function nt(e,t){const n=p.getParentNode(e);return n===t||!p.isElement(n)||p.isLastTraversableNode(n)?!1:p.getComputedStyle(n).position==="fixed"||nt(n,t)}function Rn(e,t){const n=t.get(e);if(n)return n;let o=p.getOverflowAncestors(e,[],!1).filter(c=>p.isElement(c)&&p.getNodeName(c)!=="body"),r=null;const i=p.getComputedStyle(e).position==="fixed";let s=i?p.getParentNode(e):e;for(;p.isElement(s)&&!p.isLastTraversableNode(s);){const c=p.getComputedStyle(s),a=p.isContainingBlock(s);!a&&c.position==="fixed"&&(r=null),(i?!a&&!r:!a&&c.position==="static"&&!!r&&An.has(r.position)||p.isOverflowElement(s)&&!a&&nt(e,s))?o=o.filter(f=>f!==s):r=c,s=p.getParentNode(s)}return t.set(e,o),o}function On(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const s=[...n==="clippingAncestors"?p.isTopLayer(t)?[]:Rn(t,this._c):[].concat(n),o],c=s[0],a=s.reduce((l,f)=>{const u=ze(t,f,r);return l.top=H(u.top,l.top),l.right=V(u.right,l.right),l.bottom=V(u.bottom,l.bottom),l.left=H(u.left,l.left),l},ze(t,c,r));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}}function En(e){const{width:t,height:n}=Qe(e);return{width:t,height:n}}function Sn(e,t,n){const o=p.isHTMLElement(t),r=p.getDocumentElement(t),i=n==="fixed",s=K(e,!0,i,t);let c={scrollLeft:0,scrollTop:0};const a=B(0);function l(){a.x=pe(r)}if(o||!o&&!i)if((p.getNodeName(t)!=="body"||p.isOverflowElement(r))&&(c=p.getNodeScroll(t)),o){const d=K(t,!0,i,t);a.x=d.x+t.clientLeft,a.y=d.y+t.clientTop}else r&&l();i&&!o&&r&&l();const f=r&&!o&&!i?tt(r,c):B(0),u=s.left+c.scrollLeft-a.x-f.x,m=s.top+c.scrollTop-a.y-f.y;return{x:u,y:m,width:s.width,height:s.height}}function ge(e){return p.getComputedStyle(e).position==="static"}function qe(e,t){if(!p.isHTMLElement(e)||p.getComputedStyle(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return p.getDocumentElement(e)===n&&(n=n.ownerDocument.body),n}function ot(e,t){const n=p.getWindow(e);if(p.isTopLayer(e))return n;if(!p.isHTMLElement(e)){let r=p.getParentNode(e);for(;r&&!p.isLastTraversableNode(r);){if(p.isElement(r)&&!ge(r))return r;r=p.getParentNode(r)}return n}let o=qe(e,t);for(;o&&p.isTableElement(o)&&ge(o);)o=qe(o,t);return o&&p.isLastTraversableNode(o)&&ge(o)&&!p.isContainingBlock(o)?n:o||p.getContainingBlock(e)||n}const Nn=async function(e){const t=this.getOffsetParent||ot,n=this.getDimensions,o=await n(e.floating);return{reference:Sn(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function Tn(e){return p.getComputedStyle(e).direction==="rtl"}const Mn={convertOffsetParentRelativeRectToViewportRelativeRect:wn,getDocumentElement:p.getDocumentElement,getClippingRect:On,getOffsetParent:ot,getElementRects:Nn,getClientRects:yn,getDimensions:En,getScale:G,isElement:p.isElement,isRTL:Tn};function rt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Dn(e,t){let n=null,o;const r=p.getDocumentElement(e);function i(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function s(c,a){c===void 0&&(c=!1),a===void 0&&(a=1),i();const l=e.getBoundingClientRect(),{left:f,top:u,width:m,height:d}=l;if(c||t(),!m||!d)return;const g=se(u),h=se(r.clientWidth-(f+m)),w=se(r.clientHeight-(u+d)),x=se(f),b={rootMargin:-g+"px "+-h+"px "+-w+"px "+-x+"px",threshold:H(0,V(1,a))||1};let A=!0;function C(E){const O=E[0].intersectionRatio;if(O!==a){if(!A)return s();O?s(!1,O):o=setTimeout(()=>{s(!1,1e-7)},1e3)}O===1&&!rt(l,e.getBoundingClientRect())&&s(),A=!1}try{n=new IntersectionObserver(C,{...b,root:r.ownerDocument})}catch{n=new IntersectionObserver(C,b)}n.observe(e)}return s(!0),i}function Ln(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:a=!1}=o,l=be(e),f=r||i?[...l?p.getOverflowAncestors(l):[],...p.getOverflowAncestors(t)]:[];f.forEach(x=>{r&&x.addEventListener("scroll",n,{passive:!0}),i&&x.addEventListener("resize",n)});const u=l&&c?Dn(l,n):null;let m=-1,d=null;s&&(d=new ResizeObserver(x=>{let[P]=x;P&&P.target===l&&d&&(d.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var b;(b=d)==null||b.observe(t)})),n()}),l&&!a&&d.observe(l),d.observe(t));let g,h=a?K(e):null;a&&w();function w(){const x=K(e);h&&!rt(h,x)&&n(),h=x,g=requestAnimationFrame(w)}return n(),()=>{var x;f.forEach(P=>{r&&P.removeEventListener("scroll",n),i&&P.removeEventListener("resize",n)}),u?.(),(x=d)==null||x.disconnect(),d=null,a&&cancelAnimationFrame(g)}}const _n=pn,$n=mn,jn=fn,Fn=hn,kn=un,Ve=ln,Hn=gn,Wn=(e,t,n)=>{const o=new Map,r={platform:Mn,...n},i={...r.platform,_c:o};return an(e,t,{...r,platform:i})};var In=typeof document<"u",Bn=function(){},ce=In?Y.useLayoutEffect:Bn;function ue(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!ue(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&e.$$typeof)&&!ue(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function it(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Xe(e,t){const n=it(e);return Math.round(t*n)/n}function he(e){const t=v.useRef(e);return ce(()=>{t.current=e}),t}function zn(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:s}={},transform:c=!0,whileElementsMounted:a,open:l}=e,[f,u]=v.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,d]=v.useState(o);ue(m,o)||d(o);const[g,h]=v.useState(null),[w,x]=v.useState(null),P=v.useCallback(R=>{R!==E.current&&(E.current=R,h(R))},[]),b=v.useCallback(R=>{R!==O.current&&(O.current=R,x(R))},[]),A=i||g,C=s||w,E=v.useRef(null),O=v.useRef(null),L=v.useRef(f),F=a!=null,D=he(a),$=he(r),j=he(l),N=v.useCallback(()=>{if(!E.current||!O.current)return;const R={placement:t,strategy:n,middleware:m};$.current&&(R.platform=$.current),Wn(E.current,O.current,R).then(_=>{const W={..._,isPositioned:j.current!==!1};S.current&&!ue(L.current,W)&&(L.current=W,Ut.flushSync(()=>{u(W)}))})},[m,t,n,$,j]);ce(()=>{l===!1&&L.current.isPositioned&&(L.current.isPositioned=!1,u(R=>({...R,isPositioned:!1})))},[l]);const S=v.useRef(!1);ce(()=>(S.current=!0,()=>{S.current=!1}),[]),ce(()=>{if(A&&(E.current=A),C&&(O.current=C),A&&C){if(D.current)return D.current(A,C,N);N()}},[A,C,N,D,F]);const k=v.useMemo(()=>({reference:E,floating:O,setReference:P,setFloating:b}),[P,b]),T=v.useMemo(()=>({reference:A,floating:C}),[A,C]),M=v.useMemo(()=>{const R={position:n,left:0,top:0};if(!T.floating)return R;const _=Xe(T.floating,f.x),W=Xe(T.floating,f.y);return c?{...R,transform:"translate("+_+"px, "+W+"px)",...it(T.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:_,top:W}},[n,c,T.floating,f.x,f.y]);return v.useMemo(()=>({...f,update:N,refs:k,elements:T,floatingStyles:M}),[f,N,k,T,M])}const qn=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:r}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?Ve({element:o.current,padding:r}).fn(n):{}:o?Ve({element:o,padding:r}).fn(n):{}}}},Vn=(e,t)=>({..._n(e),options:[e,t]}),Xn=(e,t)=>({...$n(e),options:[e,t]}),Yn=(e,t)=>({...Hn(e),options:[e,t]}),Kn=(e,t)=>({...jn(e),options:[e,t]}),Un=(e,t)=>({...Fn(e),options:[e,t]}),Gn=(e,t)=>({...kn(e),options:[e,t]}),Zn=(e,t)=>({...qn(e),options:[e,t]});var Jn="Arrow",st=v.forwardRef((e,t)=>{const{children:n,width:o=10,height:r=5,...i}=e;return y.jsx(oe.Primitive.svg,{...i,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:y.jsx("polygon",{points:"0,0 30,0 15,10"})})});st.displayName=Jn;var Qn=st,Ae="Popper",[ct,at]=Ye.createContextScope(Ae),[eo,lt]=ct(Ae),ft=e=>{const{__scopePopper:t,children:n}=e,[o,r]=v.useState(null);return y.jsx(eo,{scope:t,anchor:o,onAnchorChange:r,children:n})};ft.displayName=Ae;var ut="PopperAnchor",dt=v.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,i=lt(ut,n),s=v.useRef(null),c=ne.useComposedRefs(t,s),a=v.useRef(null);return v.useEffect(()=>{const l=a.current;a.current=o?.current||s.current,l!==a.current&&i.onAnchorChange(a.current)}),o?null:y.jsx(oe.Primitive.div,{...r,ref:c})});dt.displayName=ut;var Ce="PopperContent",[to,no]=ct(Ce),pt=v.forwardRef((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:i="center",alignOffset:s=0,arrowPadding:c=0,avoidCollisions:a=!0,collisionBoundary:l=[],collisionPadding:f=0,sticky:u="partial",hideWhenDetached:m=!1,updatePositionStrategy:d="optimized",onPlaced:g,...h}=e,w=lt(Ce,n),[x,P]=v.useState(null),b=ne.useComposedRefs(t,Q=>P(Q)),[A,C]=v.useState(null),E=qt.useSize(A),O=E?.width??0,L=E?.height??0,F=o+(i!=="center"?"-"+i:""),D=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},$=Array.isArray(l)?l:[l],j=$.length>0,N={padding:D,boundary:$.filter(ro),altBoundary:j},{refs:S,floatingStyles:k,placement:T,isPositioned:M,middlewareData:R}=zn({strategy:"fixed",placement:F,whileElementsMounted:(...Q)=>Ln(...Q,{animationFrame:d==="always"}),elements:{reference:w.anchor},middleware:[Vn({mainAxis:r+L,alignmentAxis:s}),a&&Xn({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?Yn():void 0,...N}),a&&Kn({...N}),Un({...N,apply:({elements:Q,rects:$e,availableWidth:Ht,availableHeight:Wt})=>{const{width:It,height:Bt}=$e.reference,ie=Q.floating.style;ie.setProperty("--radix-popper-available-width",`${Ht}px`),ie.setProperty("--radix-popper-available-height",`${Wt}px`),ie.setProperty("--radix-popper-anchor-width",`${It}px`),ie.setProperty("--radix-popper-anchor-height",`${Bt}px`)}}),A&&Zn({element:A,padding:c}),io({arrowWidth:O,arrowHeight:L}),m&&Gn({strategy:"referenceHidden",...N})]}),[_,W]=ht(T),_e=Ke.useCallbackRef(g);je.useLayoutEffect2(()=>{M&&_e?.()},[M,_e]);const _t=R.arrow?.x,$t=R.arrow?.y,jt=R.arrow?.centerOffset!==0,[Ft,kt]=v.useState();return je.useLayoutEffect2(()=>{x&&kt(window.getComputedStyle(x).zIndex)},[x]),y.jsx("div",{ref:S.setFloating,"data-radix-popper-content-wrapper":"",style:{...k,transform:M?k.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ft,"--radix-popper-transform-origin":[R.transformOrigin?.x,R.transformOrigin?.y].join(" "),...R.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:y.jsx(to,{scope:n,placedSide:_,onArrowChange:C,arrowX:_t,arrowY:$t,shouldHideArrow:jt,children:y.jsx(oe.Primitive.div,{"data-side":_,"data-align":W,...h,ref:b,style:{...h.style,animation:M?void 0:"none"}})})})});pt.displayName=Ce;var mt="PopperArrow",oo={top:"bottom",right:"left",bottom:"top",left:"right"},gt=v.forwardRef(function(t,n){const{__scopePopper:o,...r}=t,i=no(mt,o),s=oo[i.placedSide];return y.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:y.jsx(Qn,{...r,ref:n,style:{...r.style,display:"block"}})})});gt.displayName=mt;function ro(e){return e!==null}var io=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,s=r.arrow?.centerOffset!==0,c=s?0:e.arrowWidth,a=s?0:e.arrowHeight,[l,f]=ht(n),u={start:"0%",center:"50%",end:"100%"}[f],m=(r.arrow?.x??0)+c/2,d=(r.arrow?.y??0)+a/2;let g="",h="";return l==="bottom"?(g=s?u:`${m}px`,h=`${-a}px`):l==="top"?(g=s?u:`${m}px`,h=`${o.floating.height+a}px`):l==="right"?(g=`${-a}px`,h=s?u:`${d}px`):l==="left"&&(g=`${o.floating.width+a}px`,h=s?u:`${d}px`),{data:{x:g,y:h}}}});function ht(e){const[t,n="center"]=e.split("-");return[t,n]}var so=ft,xt=dt,co=pt,ao=gt,me="Popover",[vt]=Ye.createContextScope(me,[at]),re=at(),[lo,X]=vt(me),wt=e=>{const{__scopePopover:t,children:n,open:o,defaultOpen:r,onOpenChange:i,modal:s=!1}=e,c=re(t),a=v.useRef(null),[l,f]=v.useState(!1),[u,m]=U.useControllableState({prop:o,defaultProp:r??!1,onChange:i,caller:me});return y.jsx(so,{...c,children:y.jsx(lo,{scope:t,contentId:Ke.useId(),triggerRef:a,open:u,onOpenChange:m,onOpenToggle:v.useCallback(()=>m(d=>!d),[m]),hasCustomAnchor:l,onCustomAnchorAdd:v.useCallback(()=>f(!0),[]),onCustomAnchorRemove:v.useCallback(()=>f(!1),[]),modal:s,children:n})})};wt.displayName=me;var yt="PopoverAnchor",Pt=v.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=X(yt,n),i=re(n),{onCustomAnchorAdd:s,onCustomAnchorRemove:c}=r;return v.useEffect(()=>(s(),()=>c()),[s,c]),y.jsx(xt,{...i,...o,ref:t})});Pt.displayName=yt;var bt="PopoverTrigger",At=v.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=X(bt,n),i=re(n),s=ne.useComposedRefs(t,r.triggerRef),c=y.jsx(oe.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Tt(r.open),...o,ref:s,onClick:U.composeEventHandlers(e.onClick,r.onOpenToggle)});return r.hasCustomAnchor?c:y.jsx(xt,{asChild:!0,...i,children:c})});At.displayName=bt;var Re="PopoverPortal",[fo,uo]=vt(Re,{forceMount:void 0}),Ct=e=>{const{__scopePopover:t,forceMount:n,children:o,container:r}=e,i=X(Re,t);return y.jsx(fo,{scope:t,forceMount:n,children:y.jsx(Ue.Presence,{present:n||i.open,children:y.jsx(Vt.Portal,{asChild:!0,container:r,children:o})})})};Ct.displayName=Re;var Z="PopoverContent",Rt=v.forwardRef((e,t)=>{const n=uo(Z,e.__scopePopover),{forceMount:o=n.forceMount,...r}=e,i=X(Z,e.__scopePopover);return y.jsx(Ue.Presence,{present:o||i.open,children:i.modal?y.jsx(mo,{...r,ref:t}):y.jsx(go,{...r,ref:t})})});Rt.displayName=Z;var po=ne.createSlot("PopoverContent.RemoveScroll"),mo=v.forwardRef((e,t)=>{const n=X(Z,e.__scopePopover),o=v.useRef(null),r=ne.useComposedRefs(t,o),i=v.useRef(!1);return v.useEffect(()=>{const s=o.current;if(s)return ee.hideOthers(s)},[]),y.jsx(ee.ReactRemoveScroll,{as:po,allowPinchZoom:!0,children:y.jsx(Ot,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:U.composeEventHandlers(e.onCloseAutoFocus,s=>{s.preventDefault(),i.current||n.triggerRef.current?.focus()}),onPointerDownOutside:U.composeEventHandlers(e.onPointerDownOutside,s=>{const c=s.detail.originalEvent,a=c.button===0&&c.ctrlKey===!0,l=c.button===2||a;i.current=l},{checkForDefaultPrevented:!1}),onFocusOutside:U.composeEventHandlers(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1})})})}),go=v.forwardRef((e,t)=>{const n=X(Z,e.__scopePopover),o=v.useRef(!1),r=v.useRef(!1);return y.jsx(Ot,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{e.onCloseAutoFocus?.(i),i.defaultPrevented||(o.current||n.triggerRef.current?.focus(),i.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:i=>{e.onInteractOutside?.(i),i.defaultPrevented||(o.current=!0,i.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const s=i.target;n.triggerRef.current?.contains(s)&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&r.current&&i.preventDefault()}})}),Ot=v.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:a,onFocusOutside:l,onInteractOutside:f,...u}=e,m=X(Z,n),d=re(n);return ee.useFocusGuards(),y.jsx(ee.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:i,children:y.jsx(ee.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:f,onEscapeKeyDown:c,onPointerDownOutside:a,onFocusOutside:l,onDismiss:()=>m.onOpenChange(!1),children:y.jsx(co,{"data-state":Tt(m.open),role:"dialog",id:m.contentId,...d,...u,ref:t,style:{...u.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Et="PopoverClose",St=v.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=X(Et,n);return y.jsx(oe.Primitive.button,{type:"button",...o,ref:t,onClick:U.composeEventHandlers(e.onClick,()=>r.onOpenChange(!1))})});St.displayName=Et;var ho="PopoverArrow",Nt=v.forwardRef((e,t)=>{const{__scopePopover:n,...o}=e,r=re(n);return y.jsx(ao,{...r,...o,ref:t})});Nt.displayName=ho;function Tt(e){return e?"open":"closed"}var xo=wt,vo=Pt,wo=At,yo=Ct,Po=Rt,bo=St,Ao=Nt;const Mt=Y.createContext(null),Co=":popover",Ro=({children:e,intent:t})=>{const[n,o]=Y.useState(null);return y.jsx(Mt.Provider,{value:{headerId:n,setHeaderId:o,intent:t},children:e})},Oe=()=>{const e=Y.useContext(Mt);if(!e)throw Error("usePopover must be used within a Popover provider");return e},Dt=({children:e,intent:t="surface",modal:n=!1,...o})=>y.jsx(Ro,{intent:t,children:y.jsx(xo,{"data-spark-component":"popover",modal:n,...o,children:e})});Dt.displayName="Popover";const Ee=({asChild:e=!1,children:t,ref:n,...o})=>y.jsx(vo,{"data-spark-component":"popover-anchor",ref:n,asChild:e,...o,children:t});Ee.displayName="Popover.Anchor";const Se=({asChild:e=!1,width:t=16,height:n=8,className:o,ref:r,...i})=>{const{intent:s}=Oe(),c=de.cva("visible",{variants:{intent:{surface:"fill-surface",main:"fill-main-container",support:"fill-support-container",accent:"fill-accent-container",basic:"fill-basic-container",success:"fill-success-container",alert:"fill-alert-container",danger:"fill-error-container",info:"fill-info-container",neutral:"fill-neutral-container"}},defaultVariants:{intent:"surface"}});return y.jsx(Ao,{"data-spark-component":"popover-arrow",ref:r,className:c({intent:s,className:o}),asChild:e,width:t,height:n,...i})};Se.displayName="Popover.Arrow";const Ne=({"aria-label":e,className:t,ref:n,...o})=>y.jsx(bo,{"data-spark-component":"popover-close-button",ref:n,className:de.cx("right-lg top-md absolute",t),asChild:!0,...o,children:y.jsx(Kt.IconButton,{size:"sm",intent:"neutral",design:"ghost","aria-label":e,children:y.jsx(Yt.Icon,{children:y.jsx(Xt.Close,{})})})});Ne.displayName="Popover.CloseButton";const Oo=de.cva(["rounded-md","shadow-sm","focus-visible:outline-hidden focus-visible:u-outline","max-h-(--radix-popper-available-height) overflow-y-auto"],{variants:{intent:{surface:"bg-surface text-on-surface",main:"bg-main-container text-on-main-container",support:"bg-support-container text-on-support-container",accent:"bg-accent-container text-on-accent-container",basic:"bg-basic-container text-on-basic-container",success:"bg-success-container text-on-success-container",alert:"bg-alert-container text-on-alert-container",danger:"bg-error-container text-on-error-container",info:"bg-info-container text-on-info-container",neutral:"bg-neutral-container text-on-neutral-container"},matchTriggerWidth:{true:"w-(--radix-popper-anchor-width)"},enforceBoundaries:{true:["max-w-(--radix-popper-available-width)"]},inset:{true:"overflow-hidden",false:"p-lg"},elevation:{dropdown:"z-dropdown",popover:"z-popover"}},compoundVariants:[{inset:!1,class:"has-data-[spark-component=popover-close-button]:pr-3xl"},{enforceBoundaries:!1,matchTriggerWidth:!1,class:"max-w-[min(var(--spacing-sz-384),100vw)]"}],defaultVariants:{matchTriggerWidth:!1,enforceBoundaries:!1,inset:!1,intent:"surface",elevation:"popover"}}),Te=({className:e,children:t,matchTriggerWidth:n=!1,align:o="center",arrowPadding:r=16,asChild:i=!1,avoidCollisions:s=!0,"aria-labelledby":c,collisionBoundary:a,collisionPadding:l=0,hideWhenDetached:f=!1,side:u="bottom",sideOffset:m=8,sticky:d="partial",inset:g=!1,elevation:h="popover",ref:w,...x})=>{const{headerId:P,intent:b}=Oe();return y.jsx(Po,{"aria-labelledby":P||c,className:Oo({enforceBoundaries:!!a,matchTriggerWidth:n,inset:g,elevation:h,intent:b,className:e}),"data-spark-component":"popover-content",ref:w,align:o,arrowPadding:r,asChild:i,avoidCollisions:s,collisionBoundary:a,collisionPadding:l,hideWhenDetached:f,side:u,sideOffset:m,sticky:d,...x,children:t})};Te.displayName="Popover.Content";const Me=({children:e,className:t,ref:n,...o})=>{const r=`${Co}-header-${Y.useId()}`,{setHeaderId:i}=Oe();return Y.useLayoutEffect(()=>(i(r),()=>i(null)),[r,i]),y.jsx("header",{id:r,ref:n,className:de.cx("mb-md text-headline-2",t),...o,children:e})};Me.displayName="Popover.Header";const De=({children:e,...t})=>y.jsx(yo,{...t,children:e});De.displayName="Popover.Portal";const Le=({asChild:e=!1,children:t,ref:n,...o})=>y.jsx(wo,{"data-spark-component":"popover-trigger",ref:n,asChild:e,...o,children:t});Le.displayName="Popover.Trigger";const Lt=Object.assign(Dt,{Anchor:Ee,Arrow:Se,CloseButton:Ne,Content:Te,Header:Me,Portal:De,Trigger:Le});Lt.displayName="Popover";Ee.displayName="Popover.Anchor";Se.displayName="Popover.Arrow";Ne.displayName="Popover.CloseButton";Te.displayName="Popover.Content";Me.displayName="Popover.Header";De.displayName="Popover.Portal";Le.displayName="Popover.Trigger";exports.Popover=Lt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),i=require("radix-ui"),c=require("react"),l=require("class-variance-authority"),V=require("@spark-ui/icons/Close"),E=require("../Icon-CF0W0LKr.js"),S=require("../IconButton-D3g86WpZ.js"),y=c.createContext(null),W=":popover",$=({children:e,intent:o})=>{const[r,t]=c.useState(null);return a.jsx(y.Provider,{value:{headerId:r,setHeaderId:t,intent:o},children:e})},u=()=>{const e=c.useContext(y);if(!e)throw Error("usePopover must be used within a Popover provider");return e},N=({children:e,intent:o="surface",modal:r=!1,...t})=>a.jsx($,{intent:o,children:a.jsx(i.Popover.Root,{"data-spark-component":"popover",modal:r,...t,children:e})});N.displayName="Popover";const v=({asChild:e=!1,children:o,ref:r,...t})=>a.jsx(i.Popover.Anchor,{"data-spark-component":"popover-anchor",ref:r,asChild:e,...t,children:o});v.displayName="Popover.Anchor";const f=({asChild:e=!1,width:o=16,height:r=8,className:t,ref:n,...s})=>{const{intent:p}=u(),d=l.cva("visible",{variants:{intent:{surface:"fill-surface",main:"fill-main-container",support:"fill-support-container",accent:"fill-accent-container",basic:"fill-basic-container",success:"fill-success-container",alert:"fill-alert-container",danger:"fill-error-container",info:"fill-info-container",neutral:"fill-neutral-container"}},defaultVariants:{intent:"surface"}});return a.jsx(i.Popover.Arrow,{"data-spark-component":"popover-arrow",ref:n,className:d({intent:p,className:t}),asChild:e,width:o,height:r,...s})};f.displayName="Popover.Arrow";const m=({"aria-label":e,className:o,ref:r,...t})=>a.jsx(i.Popover.Close,{"data-spark-component":"popover-close-button",ref:r,className:l.cx("right-lg top-md absolute",o),asChild:!0,...t,children:a.jsx(S.IconButton,{size:"sm",intent:"neutral",design:"ghost","aria-label":e,children:a.jsx(E.Icon,{children:a.jsx(V.Close,{})})})});m.displayName="Popover.CloseButton";const O=l.cva(["rounded-md","shadow-sm","focus-visible:outline-hidden focus-visible:u-outline","max-h-(--radix-popper-available-height) overflow-y-auto"],{variants:{intent:{surface:"bg-surface text-on-surface",main:"bg-main-container text-on-main-container",support:"bg-support-container text-on-support-container",accent:"bg-accent-container text-on-accent-container",basic:"bg-basic-container text-on-basic-container",success:"bg-success-container text-on-success-container",alert:"bg-alert-container text-on-alert-container",danger:"bg-error-container text-on-error-container",info:"bg-info-container text-on-info-container",neutral:"bg-neutral-container text-on-neutral-container"},matchTriggerWidth:{true:"w-(--radix-popper-anchor-width)"},enforceBoundaries:{true:["max-w-(--radix-popper-available-width)"]},inset:{true:"overflow-hidden",false:"p-lg"},elevation:{dropdown:"z-dropdown",popover:"z-popover"}},compoundVariants:[{inset:!1,class:"has-data-[spark-component=popover-close-button]:pr-3xl"},{enforceBoundaries:!1,matchTriggerWidth:!1,class:"max-w-[min(var(--spacing-sz-384),100vw)]"}],defaultVariants:{matchTriggerWidth:!1,enforceBoundaries:!1,inset:!1,intent:"surface",elevation:"popover"}}),x=({className:e,children:o,matchTriggerWidth:r=!1,align:t="center",arrowPadding:n=16,asChild:s=!1,avoidCollisions:p=!0,"aria-labelledby":d,collisionBoundary:b,collisionPadding:j=0,hideWhenDetached:C=!1,side:I="bottom",sideOffset:A=8,sticky:B="partial",inset:T=!1,elevation:k="popover",ref:q,...H})=>{const{headerId:z,intent:R}=u();return a.jsx(i.Popover.Content,{"aria-labelledby":z||d,className:O({enforceBoundaries:!!b,matchTriggerWidth:r,inset:T,elevation:k,intent:R,className:e}),"data-spark-component":"popover-content",ref:q,align:t,arrowPadding:n,asChild:s,avoidCollisions:p,collisionBoundary:b,collisionPadding:j,hideWhenDetached:C,side:I,sideOffset:A,sticky:B,...H,children:o})};x.displayName="Popover.Content";const P=({children:e,className:o,ref:r,...t})=>{const n=`${W}-header-${c.useId()}`,{setHeaderId:s}=u();return c.useLayoutEffect(()=>(s(n),()=>s(null)),[n,s]),a.jsx("header",{id:n,ref:r,className:l.cx("mb-md text-headline-2",o),...t,children:e})};P.displayName="Popover.Header";const g=({children:e,...o})=>a.jsx(i.Popover.Portal,{...o,children:e});g.displayName="Popover.Portal";const h=({asChild:e=!1,children:o,ref:r,...t})=>a.jsx(i.Popover.Trigger,{"data-spark-component":"popover-trigger",ref:r,asChild:e,...t,children:o});h.displayName="Popover.Trigger";const w=Object.assign(N,{Anchor:v,Arrow:f,CloseButton:m,Content:x,Header:P,Portal:g,Trigger:h});w.displayName="Popover";v.displayName="Popover.Anchor";f.displayName="Popover.Arrow";m.displayName="Popover.CloseButton";x.displayName="Popover.Content";P.displayName="Popover.Header";g.displayName="Popover.Portal";h.displayName="Popover.Trigger";exports.Popover=w;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|