@televet/kibble-ui 4.0.0-beta.69 → 4.0.0-beta.7
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/README.md +0 -40
- package/dist/chunks/alert.types-BgmtNKXK.js +2 -0
- package/dist/chunks/alert.types-BgmtNKXK.js.map +1 -0
- package/dist/chunks/alert.types-Bxdx-xbS.js +172 -0
- package/dist/chunks/alert.types-Bxdx-xbS.js.map +1 -0
- package/dist/chunks/avatar.component-BdxN6QYq.js +307 -0
- package/dist/chunks/avatar.component-BdxN6QYq.js.map +1 -0
- package/dist/chunks/avatar.component-BzPaBLJu.js +2 -0
- package/dist/chunks/avatar.component-BzPaBLJu.js.map +1 -0
- package/dist/chunks/{avatarGroup.component-Bcb1Fxwv.js → avatarGroup.component-CceV-fW0.js} +28 -27
- package/dist/chunks/{avatarGroup.component-Bcb1Fxwv.js.map → avatarGroup.component-CceV-fW0.js.map} +1 -1
- package/dist/chunks/avatarGroup.component-Q43nemix.js +2 -0
- package/dist/chunks/{avatarGroup.component-D4lmT752.js.map → avatarGroup.component-Q43nemix.js.map} +1 -1
- package/dist/chunks/button.component-B0GkYzVz.js +2 -0
- package/dist/chunks/button.component-B0GkYzVz.js.map +1 -0
- package/dist/chunks/{button.component-BpF3MzbZ.js → button.component-BtkAjIWe.js} +10 -10
- package/dist/chunks/button.component-BtkAjIWe.js.map +1 -0
- package/dist/chunks/buttonGroup.component-B2VRV-q9.js +2 -0
- package/dist/chunks/buttonGroup.component-B2VRV-q9.js.map +1 -0
- package/dist/chunks/buttonGroup.component-ZElXi_Hz.js +67 -0
- package/dist/chunks/buttonGroup.component-ZElXi_Hz.js.map +1 -0
- package/dist/chunks/card.component-HX-4Y0j7.js +51 -0
- package/dist/chunks/card.component-HX-4Y0j7.js.map +1 -0
- package/dist/chunks/card.component-ZIoJIWVV.js +2 -0
- package/dist/chunks/card.component-ZIoJIWVV.js.map +1 -0
- package/dist/chunks/{theme.provider-Dez6uepg.js → chakra-BqBkjpvZ.js} +4468 -5308
- package/dist/chunks/chakra-BqBkjpvZ.js.map +1 -0
- package/dist/chunks/chakra-DmF8Cxqs.js +5 -0
- package/dist/chunks/chakra-DmF8Cxqs.js.map +1 -0
- package/dist/chunks/characterCounter.component-BXxyn_IB.js +2 -0
- package/dist/chunks/{characterCounter.component-WGffeYNG.js.map → characterCounter.component-BXxyn_IB.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-UgnBVIt2.js → characterCounter.component-DhiMcztY.js} +12 -14
- package/dist/chunks/{characterCounter.component-UgnBVIt2.js.map → characterCounter.component-DhiMcztY.js.map} +1 -1
- package/dist/chunks/checkbox.component-DCdt-YxF.js +90 -0
- package/dist/chunks/checkbox.component-DCdt-YxF.js.map +1 -0
- package/dist/chunks/checkbox.component-jiWqSWP0.js +2 -0
- package/dist/chunks/checkbox.component-jiWqSWP0.js.map +1 -0
- package/dist/chunks/checkbox.records-DJfdKuOe.js +2 -0
- package/dist/chunks/checkbox.records-DJfdKuOe.js.map +1 -0
- package/dist/chunks/checkbox.records-JWbKQ684.js +14 -0
- package/dist/chunks/checkbox.records-JWbKQ684.js.map +1 -0
- package/dist/chunks/checkboxGroup.component-BYKUQW4y.js +2 -0
- package/dist/chunks/{checkboxGroup.component-Dc_r6mYN.js.map → checkboxGroup.component-BYKUQW4y.js.map} +1 -1
- package/dist/chunks/checkboxGroup.component-DcIdfbbl.js +51 -0
- package/dist/chunks/{checkboxGroup.component-DhXdSILq.js.map → checkboxGroup.component-DcIdfbbl.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-Eb3E-4jY.js → conversationCard.component-BSfDNuuw.js} +49 -51
- package/dist/chunks/conversationCard.component-BSfDNuuw.js.map +1 -0
- package/dist/chunks/conversationCard.component-BcHNpQ76.js +2 -0
- package/dist/chunks/conversationCard.component-BcHNpQ76.js.map +1 -0
- package/dist/chunks/date-1NFv48Qu.js +3598 -0
- package/dist/chunks/date-1NFv48Qu.js.map +1 -0
- package/dist/chunks/date-Du64Exix.js +15 -0
- package/dist/chunks/date-Du64Exix.js.map +1 -0
- package/dist/chunks/datePicker.component-CnRDt24V.js +2 -0
- package/dist/chunks/datePicker.component-CnRDt24V.js.map +1 -0
- package/dist/chunks/datePicker.component-DubnEnlU.js +750 -0
- package/dist/chunks/datePicker.component-DubnEnlU.js.map +1 -0
- package/dist/chunks/dnd-4IMP_kRN.js +6 -0
- package/dist/chunks/dnd-4IMP_kRN.js.map +1 -0
- package/dist/chunks/{sortableList.component-DI2da4B_.js → dnd-DDR6viHX.js} +887 -1015
- package/dist/chunks/dnd-DDR6viHX.js.map +1 -0
- package/dist/chunks/heading.component-B8niLTxz.js +10 -0
- package/dist/chunks/heading.component-B8niLTxz.js.map +1 -0
- package/dist/chunks/heading.component-CExbjSBi.js +2 -0
- package/dist/chunks/heading.component-CExbjSBi.js.map +1 -0
- package/dist/chunks/heading.records-BaWnrbgl.js +14 -0
- package/dist/chunks/heading.records-BaWnrbgl.js.map +1 -0
- package/dist/chunks/heading.records-CbR05iL_.js +2 -0
- package/dist/chunks/heading.records-CbR05iL_.js.map +1 -0
- package/dist/chunks/{icon.component-DGNCL1Yc.js → icon.component-DjNY589M.js} +16 -14
- package/dist/chunks/icon.component-DjNY589M.js.map +1 -0
- package/dist/chunks/icon.component-DtX9HDyk.js +2 -0
- package/dist/chunks/icon.component-DtX9HDyk.js.map +1 -0
- package/dist/chunks/link.component-DjkiASIu.js +58 -0
- package/dist/chunks/link.component-DjkiASIu.js.map +1 -0
- package/dist/chunks/link.component-XWINESZ0.js +2 -0
- package/dist/chunks/link.component-XWINESZ0.js.map +1 -0
- package/dist/chunks/menu.component-CT28-CuT.js +2 -0
- package/dist/chunks/menu.component-CT28-CuT.js.map +1 -0
- package/dist/chunks/menu.component-gxhQh-pU.js +390 -0
- package/dist/chunks/menu.component-gxhQh-pU.js.map +1 -0
- package/dist/chunks/modal.types-CcUqszK6.js +2 -0
- package/dist/chunks/modal.types-CcUqszK6.js.map +1 -0
- package/dist/chunks/modal.types-pXkUwszR.js +146 -0
- package/dist/chunks/modal.types-pXkUwszR.js.map +1 -0
- package/dist/chunks/notificationCounter.component-D6v39lna.js +2 -0
- package/dist/chunks/{notificationCounter.component-BhZcuBmr.js.map → notificationCounter.component-D6v39lna.js.map} +1 -1
- package/dist/chunks/{notificationCounter.component-Bei8mHSZ.js → notificationCounter.component-DU5P6Ilh.js} +8 -10
- package/dist/chunks/{notificationCounter.component-Bei8mHSZ.js.map → notificationCounter.component-DU5P6Ilh.js.map} +1 -1
- package/dist/chunks/popover.component-CnJmg9qf.js +221 -0
- package/dist/chunks/popover.component-CnJmg9qf.js.map +1 -0
- package/dist/chunks/popover.component-DdC0CY7-.js +2 -0
- package/dist/chunks/popover.component-DdC0CY7-.js.map +1 -0
- package/dist/chunks/popover.recipe-DnCuZJd3.js +123 -0
- package/dist/chunks/popover.recipe-DnCuZJd3.js.map +1 -0
- package/dist/chunks/popover.recipe-Pfz3evii.js +2 -0
- package/dist/chunks/popover.recipe-Pfz3evii.js.map +1 -0
- package/dist/chunks/radio.records-BxCn4oUd.js +2 -0
- package/dist/chunks/radio.records-BxCn4oUd.js.map +1 -0
- package/dist/chunks/radio.records-Cc3kP4Vn.js +14 -0
- package/dist/chunks/radio.records-Cc3kP4Vn.js.map +1 -0
- package/dist/chunks/radioGroup.component-Cmi6MDqq.js +2 -0
- package/dist/chunks/radioGroup.component-Cmi6MDqq.js.map +1 -0
- package/dist/chunks/radioGroup.component-D96ItNYx.js +151 -0
- package/dist/chunks/radioGroup.component-D96ItNYx.js.map +1 -0
- package/dist/chunks/{ratingDots.component-DNeSgGRt.js → ratingDots.component-B4OK_lXC.js} +28 -31
- package/dist/chunks/{ratingDots.component-DNeSgGRt.js.map → ratingDots.component-B4OK_lXC.js.map} +1 -1
- package/dist/chunks/ratingDots.component-DOZX6EE0.js +2 -0
- package/dist/chunks/{ratingDots.component-DvlGbBPz.js.map → ratingDots.component-DOZX6EE0.js.map} +1 -1
- package/dist/chunks/select.component-CqhmG4oz.js +2 -0
- package/dist/chunks/select.component-CqhmG4oz.js.map +1 -0
- package/dist/chunks/select.component-_JVxRL_-.js +129 -0
- package/dist/chunks/select.component-_JVxRL_-.js.map +1 -0
- package/dist/chunks/sortableList.component-BH9-C_Pe.js +2 -0
- package/dist/chunks/sortableList.component-BH9-C_Pe.js.map +1 -0
- package/dist/chunks/sortableList.component-CdDArkRq.js +145 -0
- package/dist/chunks/sortableList.component-CdDArkRq.js.map +1 -0
- package/dist/chunks/spinner.component-CUuidnSK.js +2 -0
- package/dist/chunks/{spinner.component-DUIpnXU8.js.map → spinner.component-CUuidnSK.js.map} +1 -1
- package/dist/chunks/{spinner.component-DER6c5R6.js → spinner.component-D5tkelNc.js} +19 -21
- package/dist/chunks/spinner.component-D5tkelNc.js.map +1 -0
- package/dist/chunks/styledAvatar.types-CMdLnJHx.js +2 -0
- package/dist/chunks/styledAvatar.types-CMdLnJHx.js.map +1 -0
- package/dist/chunks/{styledAvatar.types-EGc1-I1N.js → styledAvatar.types-CoxQchLt.js} +3 -3
- package/dist/chunks/styledAvatar.types-CoxQchLt.js.map +1 -0
- package/dist/chunks/switch.component-6jkW8-JB.js +2 -0
- package/dist/chunks/switch.component-6jkW8-JB.js.map +1 -0
- package/dist/chunks/switch.component-BopLXT0i.js +53 -0
- package/dist/chunks/switch.component-BopLXT0i.js.map +1 -0
- package/dist/chunks/tabs.component-BJv145kf.js +2 -0
- package/dist/chunks/tabs.component-BJv145kf.js.map +1 -0
- package/dist/chunks/tabs.component-DTvdLvkX.js +87 -0
- package/dist/chunks/tabs.component-DTvdLvkX.js.map +1 -0
- package/dist/chunks/tag.component-DK64cZSr.js +67 -0
- package/dist/chunks/tag.component-DK64cZSr.js.map +1 -0
- package/dist/chunks/tag.component-D_hbxu6m.js +2 -0
- package/dist/chunks/tag.component-D_hbxu6m.js.map +1 -0
- package/dist/chunks/{tagBlock.component-C-CNF4In.js → tagBlock.component-LX4_ve_f.js} +17 -18
- package/dist/chunks/tagBlock.component-LX4_ve_f.js.map +1 -0
- package/dist/chunks/tagBlock.component-a2gERgrx.js +2 -0
- package/dist/chunks/tagBlock.component-a2gERgrx.js.map +1 -0
- package/dist/chunks/text.component-CBa_saMP.js +2 -0
- package/dist/chunks/text.component-CBa_saMP.js.map +1 -0
- package/dist/chunks/text.component-XYjOAc2s.js +10 -0
- package/dist/chunks/text.component-XYjOAc2s.js.map +1 -0
- package/dist/chunks/text.records-BK_JBYsT.js +16 -0
- package/dist/chunks/text.records-BK_JBYsT.js.map +1 -0
- package/dist/chunks/text.records-CIL3bbY0.js +2 -0
- package/dist/chunks/text.records-CIL3bbY0.js.map +1 -0
- package/dist/chunks/textInput.component-Bk7D4sbG.js +99 -0
- package/dist/chunks/textInput.component-Bk7D4sbG.js.map +1 -0
- package/dist/chunks/textInput.component-GSpfSqUc.js +2 -0
- package/dist/chunks/textInput.component-GSpfSqUc.js.map +1 -0
- package/dist/chunks/textarea.component-B8U8KcND.js +2 -0
- package/dist/chunks/textarea.component-B8U8KcND.js.map +1 -0
- package/dist/chunks/textarea.component-CT8iVuNX.js +51 -0
- package/dist/chunks/textarea.component-CT8iVuNX.js.map +1 -0
- package/dist/chunks/{timePicker.component-DsQUV8fR.js → timePicker.component--ABdI3GF.js} +43 -46
- package/dist/chunks/{timePicker.component-DsQUV8fR.js.map → timePicker.component--ABdI3GF.js.map} +1 -1
- package/dist/chunks/timePicker.component-Dw_FjiQX.js +2 -0
- package/dist/chunks/{timePicker.component-av1t2G-i.js.map → timePicker.component-Dw_FjiQX.js.map} +1 -1
- package/dist/chunks/timeRange.component-B3OvVyo_.js +17 -0
- package/dist/chunks/{timeRange.component-bIQZJ4MP.js.map → timeRange.component-B3OvVyo_.js.map} +1 -1
- package/dist/chunks/timeRange.component-RLisXhuw.js +2 -0
- package/dist/chunks/{timeRange.component-B7syLsrU.js.map → timeRange.component-RLisXhuw.js.map} +1 -1
- package/dist/chunks/timestamp.component-CuqY4euh.js +2 -0
- package/dist/chunks/timestamp.component-CuqY4euh.js.map +1 -0
- package/dist/chunks/timestamp.component-D764INLm.js +37 -0
- package/dist/chunks/timestamp.component-D764INLm.js.map +1 -0
- package/dist/chunks/tooltip.component-C3v2m2T2.js +70 -0
- package/dist/chunks/tooltip.component-C3v2m2T2.js.map +1 -0
- package/dist/chunks/tooltip.component-qWFa28S5.js +2 -0
- package/dist/chunks/tooltip.component-qWFa28S5.js.map +1 -0
- package/dist/chunks/typography-Cqrokog3.js.map +1 -1
- package/dist/chunks/typography-CtiaGoJG.js.map +1 -1
- package/dist/chunks/vendor-BBfll6i3.js +11757 -0
- package/dist/chunks/vendor-BBfll6i3.js.map +1 -0
- package/dist/chunks/vendor-D-x6W6ez.js +57 -0
- package/dist/chunks/vendor-D-x6W6ez.js.map +1 -0
- package/dist/chunks/withFormControl-B269FujS.js +149 -0
- package/dist/chunks/withFormControl-B269FujS.js.map +1 -0
- package/dist/chunks/withFormControl-Cy6Bwv0i.js +2 -0
- package/dist/chunks/withFormControl-Cy6Bwv0i.js.map +1 -0
- package/dist/chunks/withTruncation-BskZBBVs.js +2 -0
- package/dist/chunks/{withTruncation-CVhXtaaF.js.map → withTruncation-BskZBBVs.js.map} +1 -1
- package/dist/chunks/{withTruncation-CVhXtaaF.js → withTruncation-C2xFKhgB.js} +28 -21
- package/dist/chunks/{withTruncation-CYH02HoE.js.map → withTruncation-C2xFKhgB.js.map} +1 -1
- package/dist/cjs/components/Alert/index.cjs +1 -1
- package/dist/cjs/components/Avatar/index.cjs +1 -1
- package/dist/cjs/components/AvatarGroup/index.cjs +1 -1
- package/dist/cjs/components/Button/index.cjs +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
- package/dist/cjs/components/Card/index.cjs +1 -1
- package/dist/cjs/components/Card/index.cjs.map +1 -1
- package/dist/cjs/components/CharacterCounter/index.cjs +1 -1
- package/dist/cjs/components/Checkbox/index.cjs +1 -1
- package/dist/cjs/components/CheckboxGroup/index.cjs +1 -1
- package/dist/cjs/components/DatePicker/index.cjs +1 -1
- package/dist/cjs/components/Heading/index.cjs +1 -1
- package/dist/cjs/components/Icon/generated/index.cjs +1 -1
- package/dist/cjs/components/Icon/generated/index.cjs.map +1 -1
- package/dist/cjs/components/Icon/index.cjs +1 -1
- package/dist/cjs/components/Link/index.cjs +1 -1
- package/dist/cjs/components/Menu/index.cjs +1 -1
- package/dist/cjs/components/Modal/index.cjs +1 -1
- package/dist/cjs/components/NotificationCounter/index.cjs +1 -1
- package/dist/cjs/components/NotificationCounter/index.cjs.map +1 -1
- package/dist/cjs/components/Picture/index.cjs +1 -1
- package/dist/cjs/components/Picture/index.cjs.map +1 -1
- package/dist/cjs/components/Popover/index.cjs +1 -1
- package/dist/cjs/components/RadioGroup/index.cjs +1 -1
- package/dist/cjs/components/RatingDots/index.cjs +1 -1
- package/dist/cjs/components/Select/index.cjs +1 -1
- package/dist/cjs/components/SortableList/index.cjs +1 -1
- package/dist/cjs/components/Spinner/index.cjs +1 -1
- package/dist/cjs/components/Swatch/index.cjs +1 -1
- package/dist/cjs/components/Swatch/index.cjs.map +1 -1
- package/dist/cjs/components/Switch/index.cjs +1 -1
- package/dist/cjs/components/Tabs/index.cjs +1 -1
- package/dist/cjs/components/Tag/index.cjs +1 -1
- package/dist/cjs/components/Text/index.cjs +1 -1
- package/dist/cjs/components/TextInput/index.cjs +1 -1
- package/dist/cjs/components/Textarea/index.cjs +1 -1
- package/dist/cjs/components/TimePicker/index.cjs +1 -1
- package/dist/cjs/components/TimeRange/index.cjs +1 -1
- package/dist/cjs/components/Tooltip/index.cjs +1 -1
- package/dist/cjs/components/index.cjs +1 -1
- package/dist/cjs/hocs/index.cjs +1 -1
- package/dist/cjs/hocs/index.cjs.map +1 -1
- package/dist/cjs/hooks/index.cjs +1 -1
- package/dist/cjs/hooks/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/{components → patterns}/ConversationCard/index.cjs +1 -1
- package/dist/cjs/{components → patterns}/StyledAvatar/index.cjs +1 -1
- package/dist/cjs/{components → patterns}/TagBlock/index.cjs +1 -1
- package/dist/cjs/{components → patterns}/Timestamp/index.cjs +1 -1
- package/dist/cjs/patterns/index.cjs +2 -0
- package/dist/cjs/theme/index.cjs +23 -1
- package/dist/cjs/theme/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/blurs/index.cjs +1 -1
- package/dist/cjs/theme/tokens/blurs/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/borders/index.cjs +1 -1
- package/dist/cjs/theme/tokens/borders/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/index.cjs +1 -1
- package/dist/cjs/theme/tokens/shadows/index.cjs +1 -1
- package/dist/cjs/theme/tokens/shadows/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/sizes/index.cjs +1 -1
- package/dist/cjs/theme/tokens/sizes/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/spacing/index.cjs +1 -1
- package/dist/cjs/theme/tokens/spacing/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/transitions/index.cjs +1 -1
- package/dist/cjs/theme/tokens/transitions/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/typography/index.cjs +1 -1
- package/dist/cjs/theme/tokens/typography/index.cjs.map +1 -1
- package/dist/cjs/theme/tokens/zIndices/index.cjs +1 -1
- package/dist/cjs/theme/tokens/zIndices/index.cjs.map +1 -1
- package/dist/esm/components/Alert/index.js +5 -3
- package/dist/esm/components/Avatar/index.js +1 -1
- package/dist/esm/components/AvatarGroup/index.js +1 -1
- package/dist/esm/components/Button/index.js +1 -1
- package/dist/esm/components/ButtonGroup/index.js +1 -1
- package/dist/esm/components/Card/index.js +5 -4
- package/dist/esm/components/Card/index.js.map +1 -1
- package/dist/esm/components/CharacterCounter/index.js +1 -1
- package/dist/esm/components/Checkbox/index.js +1 -1
- package/dist/esm/components/CheckboxGroup/index.js +1 -1
- package/dist/esm/components/DatePicker/index.js +4 -3
- package/dist/esm/components/Heading/index.js +4 -2
- package/dist/esm/components/Heading/index.js.map +1 -1
- package/dist/esm/components/Icon/generated/index.js +338 -373
- package/dist/esm/components/Icon/generated/index.js.map +1 -1
- package/dist/esm/components/Icon/index.js +6 -4
- package/dist/esm/components/Link/index.js +1 -1
- package/dist/esm/components/Menu/index.js +1 -1
- package/dist/esm/components/Modal/index.js +1 -1
- package/dist/esm/components/NotificationCounter/index.js +11 -5
- package/dist/esm/components/NotificationCounter/index.js.map +1 -1
- package/dist/esm/components/Picture/index.js +16 -1
- package/dist/esm/components/Picture/index.js.map +1 -1
- package/dist/esm/components/Popover/index.js +1 -1
- package/dist/esm/components/RadioGroup/index.js +1 -1
- package/dist/esm/components/RatingDots/index.js +1 -1
- package/dist/esm/components/Select/index.js +1 -1
- package/dist/esm/components/SortableList/index.js +1 -1
- package/dist/esm/components/Spinner/index.js +1 -1
- package/dist/esm/components/Swatch/index.js +62 -3
- package/dist/esm/components/Swatch/index.js.map +1 -1
- package/dist/esm/components/Switch/index.js +1 -1
- package/dist/esm/components/Tabs/index.js +1 -1
- package/dist/esm/components/Tag/index.js +6 -5
- package/dist/esm/components/Text/index.js +4 -2
- package/dist/esm/components/Text/index.js.map +1 -1
- package/dist/esm/components/TextInput/index.js +3 -2
- package/dist/esm/components/Textarea/index.js +1 -1
- package/dist/esm/components/TimePicker/index.js +1 -1
- package/dist/esm/components/TimeRange/index.js +1 -1
- package/dist/esm/components/Tooltip/index.js +1 -1
- package/dist/esm/components/index.js +111 -122
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/hocs/index.js +35 -3
- package/dist/esm/hocs/index.js.map +1 -1
- package/dist/esm/hooks/index.js +17 -7
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/index.js +116 -141
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{components → patterns}/ConversationCard/index.js +1 -1
- package/dist/esm/{components → patterns}/StyledAvatar/index.js +1 -1
- package/dist/esm/{components → patterns}/TagBlock/index.js +1 -1
- package/dist/esm/patterns/Timestamp/index.js +5 -0
- package/dist/esm/patterns/index.js +13 -0
- package/dist/esm/patterns/index.js.map +1 -0
- package/dist/esm/theme/index.js +2477 -3
- package/dist/esm/theme/index.js.map +1 -1
- package/dist/esm/theme/tokens/blurs/index.js +13 -1
- package/dist/esm/theme/tokens/blurs/index.js.map +1 -1
- package/dist/esm/theme/tokens/borders/index.js +22 -1
- package/dist/esm/theme/tokens/borders/index.js.map +1 -1
- package/dist/esm/theme/tokens/index.js +26 -2
- package/dist/esm/theme/tokens/index.js.map +1 -1
- package/dist/esm/theme/tokens/shadows/index.js +55 -1
- package/dist/esm/theme/tokens/shadows/index.js.map +1 -1
- package/dist/esm/theme/tokens/sizes/index.js +28 -1
- package/dist/esm/theme/tokens/sizes/index.js.map +1 -1
- package/dist/esm/theme/tokens/spacing/index.js +38 -1
- package/dist/esm/theme/tokens/spacing/index.js.map +1 -1
- package/dist/esm/theme/tokens/transitions/index.js +17 -1
- package/dist/esm/theme/tokens/transitions/index.js.map +1 -1
- package/dist/esm/theme/tokens/typography/index.js +53 -1
- package/dist/esm/theme/tokens/typography/index.js.map +1 -1
- package/dist/esm/theme/tokens/zIndices/index.js +19 -1
- package/dist/esm/theme/tokens/zIndices/index.js.map +1 -1
- package/dist/types/components/Alert/alert.component.d.ts +13 -5
- package/dist/types/components/Alert/alert.recipe.d.ts +1 -1
- package/dist/types/components/Alert/alert.records.d.ts +5 -0
- package/dist/types/components/Alert/docs/alert.argTypes.d.ts +5 -0
- package/dist/types/components/Alert/index.d.ts +1 -0
- package/dist/types/components/Alert.d.ts +2 -0
- package/dist/types/components/Avatar/avatar.recipe.d.ts +1 -1
- package/dist/types/components/Avatar/components/AvatarBadge/avatarBadge.component.d.ts +1 -1
- package/dist/types/components/Avatar/components/AvatarBadge/avatarBadge.recipe.d.ts +2 -2
- package/dist/types/components/Avatar/components/AvatarBadge/avatarBadge.types.d.ts +1 -1
- package/dist/types/components/Avatar/components/AvatarBadge/docs/avatarBadge.argTypes.d.ts +3 -0
- package/dist/types/components/Avatar/docs/avatar.argTypes.d.ts +3 -0
- package/dist/types/components/Avatar.d.ts +2 -0
- package/dist/types/components/AvatarGroup/docs/avatarGroup.argTypes.d.ts +3 -0
- package/dist/types/components/AvatarGroup.d.ts +2 -0
- package/dist/types/components/Button/button.component.d.ts +3 -2
- package/dist/types/components/Button/button.recipe.d.ts +2 -2
- package/dist/types/components/Button/docs/button.argTypes.d.ts +3 -0
- package/dist/types/components/Button.d.ts +2 -0
- package/dist/types/components/ButtonGroup/docs/buttonGroup.argTypes.d.ts +3 -0
- package/dist/types/components/ButtonGroup.d.ts +2 -0
- package/dist/types/components/Card/card.component.d.ts +1 -1
- package/dist/types/components/Card/docs/card.argTypes.d.ts +3 -0
- package/dist/types/components/Card/index.d.ts +1 -0
- package/dist/types/components/Card.d.ts +2 -0
- package/dist/types/components/CharacterCounter/docs/characterCounter.argTypes.d.ts +3 -0
- package/dist/types/components/CharacterCounter.d.ts +2 -0
- package/dist/types/components/Checkbox/docs/checkbox.argTypes.d.ts +3 -0
- package/dist/types/components/Checkbox.d.ts +2 -0
- package/dist/types/components/CheckboxGroup/docs/checkboxGroup.argTypes.d.ts +3 -0
- package/dist/types/components/CheckboxGroup.d.ts +2 -0
- package/dist/types/components/DatePicker/docs/datePicker.argTypes.d.ts +3 -0
- package/dist/types/components/DatePicker/index.d.ts +1 -0
- package/dist/types/components/DatePicker.d.ts +2 -0
- package/dist/types/components/Heading/docs/heading.argTypes.d.ts +3 -0
- package/dist/types/components/Heading/heading.component.d.ts +2 -1
- package/dist/types/components/Heading/heading.recipe.d.ts +1 -1
- package/dist/types/components/Heading/heading.types.d.ts +1 -1
- package/dist/types/components/Heading/index.d.ts +1 -0
- package/dist/types/components/Heading.d.ts +2 -0
- package/dist/types/components/Icon/docs/icon.argTypes.d.ts +3 -0
- package/dist/types/components/Icon/generated/index.d.ts +1 -1
- package/dist/types/components/Icon/generated.d.ts +2 -0
- package/dist/types/components/Icon/icon.component.d.ts +3 -2
- package/dist/types/components/Icon/index.d.ts +1 -0
- package/dist/types/components/Icon.d.ts +2 -0
- package/dist/types/components/Link/docs/link.argTypes.d.ts +5 -0
- package/dist/types/components/Link/link.recipe.d.ts +1 -1
- package/dist/types/components/Link.d.ts +2 -0
- package/dist/types/components/Menu/components/MenuItem/menuItem.component.d.ts +2 -3
- package/dist/types/components/Menu/docs/menu.argTypes.d.ts +4 -0
- package/dist/types/components/Menu/menu.component.d.ts +1 -1
- package/dist/types/components/Menu.d.ts +2 -0
- package/dist/types/components/Modal/docs/modal.argTypes.d.ts +3 -0
- package/dist/types/components/Modal/modal.recipe.d.ts +1 -1
- package/dist/types/components/Modal.d.ts +2 -0
- package/dist/types/components/NotificationCounter/docs/notificationCounter.argTypes.d.ts +3 -0
- package/dist/types/components/NotificationCounter/index.d.ts +1 -0
- package/dist/types/components/NotificationCounter/notificationCounter.recipe.d.ts +2 -2
- package/dist/types/components/NotificationCounter.d.ts +2 -0
- package/dist/types/components/Picture/docs/picture.argTypes.d.ts +3 -0
- package/dist/types/components/Picture.d.ts +2 -0
- package/dist/types/components/Popover/docs/popover.argTypes.d.ts +3 -0
- package/dist/types/components/Popover/popover.recipe.d.ts +1 -1
- package/dist/types/components/Popover.d.ts +2 -0
- package/dist/types/components/RadioGroup/components/Radio/docs/radio.argTypes.d.ts +3 -0
- package/dist/types/components/RadioGroup/docs/radioGroup.argTypes.d.ts +3 -0
- package/dist/types/components/RadioGroup/index.d.ts +0 -1
- package/dist/types/components/RadioGroup.d.ts +2 -0
- package/dist/types/components/RatingDots/docs/ratingDots.argTypes.d.ts +3 -0
- package/dist/types/components/RatingDots.d.ts +2 -0
- package/dist/types/components/Select/docs/select.argTypes.d.ts +3 -0
- package/dist/types/components/Select/select.component.d.ts +0 -3
- package/dist/types/components/Select.d.ts +2 -0
- package/dist/types/components/SortableList/docs/sortableList.argTypes.d.ts +3 -0
- package/dist/types/components/SortableList/index.d.ts +0 -1
- package/dist/types/components/SortableList.d.ts +2 -0
- package/dist/types/components/Spinner/docs/spinner.argTypes.d.ts +3 -0
- package/dist/types/components/Spinner/spinner.component.d.ts +1 -1
- package/dist/types/components/Spinner/spinner.recipe.d.ts +2 -2
- package/dist/types/components/Spinner.d.ts +2 -0
- package/dist/types/components/Swatch/docs/swatch.argTypes.d.ts +3 -0
- package/dist/types/components/Swatch/swatch.recipe.d.ts +1 -1
- package/dist/types/components/Swatch.d.ts +2 -0
- package/dist/types/components/Switch/docs/switch.argTypes.d.ts +3 -0
- package/dist/types/components/Switch.d.ts +2 -0
- package/dist/types/components/Tabs/components/Tab/docs/tab.argTypes.d.ts +3 -0
- package/dist/types/components/Tabs/docs/tabs.argTypes.d.ts +3 -0
- package/dist/types/components/Tabs/tabs.recipe.d.ts +1 -1
- package/dist/types/components/Tabs.d.ts +2 -0
- package/dist/types/components/Tag/docs/tag.argTypes.d.ts +3 -0
- package/dist/types/components/Tag/index.d.ts +1 -0
- package/dist/types/components/Tag/tag.recipe.d.ts +1 -1
- package/dist/types/components/Tag.d.ts +2 -0
- package/dist/types/components/Text/docs/text.argTypes.d.ts +3 -0
- package/dist/types/components/Text/index.d.ts +1 -0
- package/dist/types/components/Text/text.component.d.ts +2 -1
- package/dist/types/components/Text/text.recipe.d.ts +2 -1
- package/dist/types/components/Text/text.types.d.ts +1 -1
- package/dist/types/components/Text.d.ts +2 -0
- package/dist/types/components/TextInput/docs/textInput.argTypes.d.ts +3 -0
- package/dist/types/components/TextInput/index.d.ts +1 -0
- package/dist/types/components/TextInput.d.ts +2 -0
- package/dist/types/components/Textarea/docs/textarea.argTypes.d.ts +3 -0
- package/dist/types/components/Textarea.d.ts +2 -0
- package/dist/types/components/TimePicker/docs/timePicker.argTypes.d.ts +3 -0
- package/dist/types/components/TimePicker.d.ts +2 -0
- package/dist/types/components/TimeRange/docs/timeRange.argTypes.d.ts +3 -0
- package/dist/types/components/TimeRange.d.ts +2 -0
- package/dist/types/components/Tooltip/docs/tooltip.argTypes.d.ts +3 -0
- package/dist/types/components/Tooltip.d.ts +2 -0
- package/dist/types/components/index.d.ts +1 -9
- package/dist/types/components.d.ts +2 -0
- package/dist/types/hocs/withFormControl/withFormControl.d.ts +1 -2
- package/dist/types/hocs.d.ts +2 -0
- package/dist/types/hooks/index.d.ts +0 -2
- package/dist/types/hooks.d.ts +2 -0
- package/dist/types/index.d.ts +0 -2
- package/dist/types/{components → patterns}/ConversationCard/components/ConversationCardButtons/conversationCardButtons.component.d.ts +1 -1
- package/dist/types/{components → patterns}/ConversationCard/components/ConversationCardContent/conversationCardContent.component.d.ts +1 -1
- package/dist/types/{components → patterns}/ConversationCard/components/ConversationCardFooter/conversationCardFooter.component.d.ts +2 -2
- package/dist/types/{components → patterns}/ConversationCard/components/ConversationCardTags/conversationCardTags.component.d.ts +1 -1
- package/dist/types/{components → patterns}/ConversationCard/conversationCard.component.d.ts +1 -1
- package/dist/types/patterns/ConversationCard/docs/conversationCard.argTypes.d.ts +12 -0
- package/dist/types/patterns/ConversationCard/docs/conversationCard.storiesData.d.ts +22 -0
- package/dist/types/patterns/ConversationCard.d.ts +2 -0
- package/dist/types/patterns/StyledAvatar/docs/styledAvatar.argTypes.d.ts +3 -0
- package/dist/types/{components → patterns}/StyledAvatar/styledAvatar.component.d.ts +1 -1
- package/dist/types/patterns/StyledAvatar.d.ts +2 -0
- package/dist/types/patterns/TagBlock/docs/tagBlock.argTypes.d.ts +3 -0
- package/dist/types/{components → patterns}/TagBlock/tagBlock.component.d.ts +1 -1
- package/dist/types/patterns/TagBlock.d.ts +2 -0
- package/dist/types/patterns/Timestamp/docs/timestamp.argTypes.d.ts +3 -0
- package/dist/types/{components → patterns}/Timestamp/timestamp.component.d.ts +1 -1
- package/dist/types/patterns/Timestamp.d.ts +2 -0
- package/dist/types/patterns/index.d.ts +4 -0
- package/dist/types/patterns.d.ts +2 -0
- package/dist/types/shared/records/typography.d.ts +1 -1
- package/dist/types/shared/types.d.ts +2 -0
- package/dist/types/theme/index.d.ts +1 -2
- package/dist/types/theme/providers/theme.provider.d.ts +1 -2
- package/dist/types/theme/semanticTokens/docs/semanticTokens.d.ts +7 -0
- package/dist/types/theme/semanticTokens/semanticTokens.config.d.ts +0 -4
- package/dist/types/theme/semanticTokens/semanticTokens.records.d.ts +0 -8
- package/dist/types/theme/semanticTokens.d.ts +2 -0
- package/dist/types/theme/theme.config.d.ts +0 -1
- package/dist/types/theme/tokens/blurs/blurs.config.d.ts +6 -6
- package/dist/types/theme/tokens/blurs/index.d.ts +1 -0
- package/dist/types/theme/tokens/blurs.d.ts +2 -0
- package/dist/types/theme/tokens/borders/borders.config.d.ts +9 -9
- package/dist/types/theme/tokens/borders/docs/borders.d.ts +5 -0
- package/dist/types/theme/tokens/borders/index.d.ts +1 -0
- package/dist/types/theme/tokens/borders.d.ts +2 -0
- package/dist/types/theme/tokens/colors.d.ts +2 -0
- package/dist/types/theme/tokens/shadows/docs/shadows.d.ts +6 -0
- package/dist/types/theme/tokens/shadows/index.d.ts +1 -0
- package/dist/types/theme/tokens/shadows/shadows.config.d.ts +11 -11
- package/dist/types/theme/tokens/shadows.d.ts +2 -0
- package/dist/types/theme/tokens/sizes/index.d.ts +1 -0
- package/dist/types/theme/tokens/sizes/sizes.config.d.ts +10 -24
- package/dist/types/theme/tokens/sizes.d.ts +2 -0
- package/dist/types/theme/tokens/spacing/index.d.ts +1 -0
- package/dist/types/theme/tokens/spacing/spacing.config.d.ts +21 -21
- package/dist/types/theme/tokens/spacing.d.ts +2 -0
- package/dist/types/theme/tokens/transitions/index.d.ts +1 -0
- package/dist/types/theme/tokens/transitions/transitions.config.d.ts +6 -6
- package/dist/types/theme/tokens/transitions.d.ts +2 -0
- package/dist/types/theme/tokens/typography/docs/typography.d.ts +2 -0
- package/dist/types/theme/tokens/typography/index.d.ts +1 -0
- package/dist/types/theme/tokens/typography/typography.config.d.ts +74 -29
- package/dist/types/theme/tokens/typography.d.ts +2 -0
- package/dist/types/theme/tokens/zIndices/index.d.ts +1 -0
- package/dist/types/theme/tokens/zIndices/zIndices.config.d.ts +11 -11
- package/dist/types/theme/tokens/zIndices.d.ts +2 -0
- package/dist/types/theme/tokens.d.ts +2 -0
- package/dist/types/theme.d.ts +2 -0
- package/package.json +43 -73
- package/dist/chunks/IconLogo-C4aZqkn1.js +0 -2
- package/dist/chunks/IconLogo-C4aZqkn1.js.map +0 -1
- package/dist/chunks/IconLogo-D8EHZ4Is.js +0 -62
- package/dist/chunks/IconLogo-D8EHZ4Is.js.map +0 -1
- package/dist/chunks/alert.types-BTwB1SOp.js +0 -219
- package/dist/chunks/alert.types-BTwB1SOp.js.map +0 -1
- package/dist/chunks/alert.types-Cjh2MIRP.js +0 -2
- package/dist/chunks/alert.types-Cjh2MIRP.js.map +0 -1
- package/dist/chunks/attr-BMs6szZx.js +0 -2
- package/dist/chunks/attr-BMs6szZx.js.map +0 -1
- package/dist/chunks/attr-sm10PXOd.js +0 -5
- package/dist/chunks/attr-sm10PXOd.js.map +0 -1
- package/dist/chunks/avatar.component-BnOmYhL2.js +0 -420
- package/dist/chunks/avatar.component-BnOmYhL2.js.map +0 -1
- package/dist/chunks/avatar.component-CbtJE4RJ.js +0 -2
- package/dist/chunks/avatar.component-CbtJE4RJ.js.map +0 -1
- package/dist/chunks/avatarGroup.component-D4lmT752.js +0 -2
- package/dist/chunks/box-Baq7UBls.js +0 -2
- package/dist/chunks/box-Baq7UBls.js.map +0 -1
- package/dist/chunks/box-Ck9I7FYv.js +0 -7
- package/dist/chunks/box-Ck9I7FYv.js.map +0 -1
- package/dist/chunks/button.component-BpF3MzbZ.js.map +0 -1
- package/dist/chunks/button.component-Dd9AfGox.js +0 -2
- package/dist/chunks/button.component-Dd9AfGox.js.map +0 -1
- package/dist/chunks/buttonGroup.component-DzQFhbS7.js +0 -77
- package/dist/chunks/buttonGroup.component-DzQFhbS7.js.map +0 -1
- package/dist/chunks/buttonGroup.component-aes3EERQ.js +0 -2
- package/dist/chunks/buttonGroup.component-aes3EERQ.js.map +0 -1
- package/dist/chunks/card.component-DNX41NGG.js +0 -59
- package/dist/chunks/card.component-DNX41NGG.js.map +0 -1
- package/dist/chunks/card.component-KNc4HKSh.js +0 -2
- package/dist/chunks/card.component-KNc4HKSh.js.map +0 -1
- package/dist/chunks/card.types-Cixp7ouC.js +0 -5
- package/dist/chunks/card.types-Cixp7ouC.js.map +0 -1
- package/dist/chunks/card.types-MvkQTTZF.js +0 -2
- package/dist/chunks/card.types-MvkQTTZF.js.map +0 -1
- package/dist/chunks/characterCounter.component-WGffeYNG.js +0 -2
- package/dist/chunks/checkbox.component-BEP-GPhs.js +0 -2
- package/dist/chunks/checkbox.component-BEP-GPhs.js.map +0 -1
- package/dist/chunks/checkbox.component-C6lXKzXZ.js +0 -310
- package/dist/chunks/checkbox.component-C6lXKzXZ.js.map +0 -1
- package/dist/chunks/checkbox.records-CXszv_gF.js +0 -2
- package/dist/chunks/checkbox.records-CXszv_gF.js.map +0 -1
- package/dist/chunks/checkbox.records-Gz6DOO_0.js +0 -266
- package/dist/chunks/checkbox.records-Gz6DOO_0.js.map +0 -1
- package/dist/chunks/checkboxGroup.component-Dc_r6mYN.js +0 -2
- package/dist/chunks/checkboxGroup.component-DhXdSILq.js +0 -52
- package/dist/chunks/config-BFcXpdZo.js +0 -2
- package/dist/chunks/config-BFcXpdZo.js.map +0 -1
- package/dist/chunks/config-DlTdf-Yt.js +0 -57
- package/dist/chunks/config-DlTdf-Yt.js.map +0 -1
- package/dist/chunks/conversationCard.component-1OCCeSNc.js +0 -2
- package/dist/chunks/conversationCard.component-1OCCeSNc.js.map +0 -1
- package/dist/chunks/conversationCard.component-Eb3E-4jY.js.map +0 -1
- package/dist/chunks/create-recipe-context-D7FewUR4.js +0 -62
- package/dist/chunks/create-recipe-context-D7FewUR4.js.map +0 -1
- package/dist/chunks/create-recipe-context-sESms8Eo.js +0 -2
- package/dist/chunks/create-recipe-context-sESms8Eo.js.map +0 -1
- package/dist/chunks/create-slot-recipe-context-BJmsuxih.js +0 -97
- package/dist/chunks/create-slot-recipe-context-BJmsuxih.js.map +0 -1
- package/dist/chunks/create-slot-recipe-context-IwVIgtBt.js +0 -2
- package/dist/chunks/create-slot-recipe-context-IwVIgtBt.js.map +0 -1
- package/dist/chunks/datePicker.component-CTbeLdvH.js +0 -3165
- package/dist/chunks/datePicker.component-CTbeLdvH.js.map +0 -1
- package/dist/chunks/datePicker.component-DvAwsX_7.js +0 -15
- package/dist/chunks/datePicker.component-DvAwsX_7.js.map +0 -1
- package/dist/chunks/dialog-trigger-B5NK0lr-.js +0 -2
- package/dist/chunks/dialog-trigger-B5NK0lr-.js.map +0 -1
- package/dist/chunks/dialog-trigger-BPlPzPU-.js +0 -78
- package/dist/chunks/dialog-trigger-BPlPzPU-.js.map +0 -1
- package/dist/chunks/divider.types-0j5qRXed.js +0 -47
- package/dist/chunks/divider.types-0j5qRXed.js.map +0 -1
- package/dist/chunks/divider.types-CK5oFy-i.js +0 -2
- package/dist/chunks/divider.types-CK5oFy-i.js.map +0 -1
- package/dist/chunks/empty-B5_AO6Pg.js +0 -2
- package/dist/chunks/empty-B5_AO6Pg.js.map +0 -1
- package/dist/chunks/empty-BU2EAux9.js +0 -8
- package/dist/chunks/empty-BU2EAux9.js.map +0 -1
- package/dist/chunks/factory-Ctbv0Ozn.js +0 -500
- package/dist/chunks/factory-Ctbv0Ozn.js.map +0 -1
- package/dist/chunks/factory-D6tdBUPG.js +0 -3
- package/dist/chunks/factory-D6tdBUPG.js.map +0 -1
- package/dist/chunks/flex-D14H6HbP.js +0 -2
- package/dist/chunks/flex-D14H6HbP.js.map +0 -1
- package/dist/chunks/flex-smlF8uQG.js +0 -40
- package/dist/chunks/flex-smlF8uQG.js.map +0 -1
- package/dist/chunks/float-DYLtz2A6.js +0 -64
- package/dist/chunks/float-DYLtz2A6.js.map +0 -1
- package/dist/chunks/float-OQXnYWBw.js +0 -2
- package/dist/chunks/float-OQXnYWBw.js.map +0 -1
- package/dist/chunks/format-BRt-TIiQ.js +0 -2
- package/dist/chunks/format-BRt-TIiQ.js.map +0 -1
- package/dist/chunks/format-DgHM6wFr.js +0 -1275
- package/dist/chunks/format-DgHM6wFr.js.map +0 -1
- package/dist/chunks/grid-item-BV4dwEBP.js +0 -90
- package/dist/chunks/grid-item-BV4dwEBP.js.map +0 -1
- package/dist/chunks/grid-item-CR-sXrjU.js +0 -2
- package/dist/chunks/grid-item-CR-sXrjU.js.map +0 -1
- package/dist/chunks/group-Cv7AQw1b.js +0 -2
- package/dist/chunks/group-Cv7AQw1b.js.map +0 -1
- package/dist/chunks/group-DPCVolOl.js +0 -139
- package/dist/chunks/group-DPCVolOl.js.map +0 -1
- package/dist/chunks/h-stack-Bjx9hlJo.js +0 -2
- package/dist/chunks/h-stack-Bjx9hlJo.js.map +0 -1
- package/dist/chunks/h-stack-Ce6JSBK2.js +0 -12
- package/dist/chunks/h-stack-Ce6JSBK2.js.map +0 -1
- package/dist/chunks/heading.component-DJaIpxi0.js +0 -12
- package/dist/chunks/heading.component-DJaIpxi0.js.map +0 -1
- package/dist/chunks/heading.component-lFK21HJl.js +0 -2
- package/dist/chunks/heading.component-lFK21HJl.js.map +0 -1
- package/dist/chunks/icon-button-DTZOklQ9.js +0 -119
- package/dist/chunks/icon-button-DTZOklQ9.js.map +0 -1
- package/dist/chunks/icon-button-DtjZ-SdQ.js +0 -2
- package/dist/chunks/icon-button-DtjZ-SdQ.js.map +0 -1
- package/dist/chunks/icon.component-C0e0UGBw.js +0 -2
- package/dist/chunks/icon.component-C0e0UGBw.js.map +0 -1
- package/dist/chunks/icon.component-DGNCL1Yc.js.map +0 -1
- package/dist/chunks/icons-BXxdrBrf.js +0 -216
- package/dist/chunks/icons-BXxdrBrf.js.map +0 -1
- package/dist/chunks/icons-CTpAjbC-.js +0 -2
- package/dist/chunks/icons-CTpAjbC-.js.map +0 -1
- package/dist/chunks/index-BBZxmcrY.js +0 -2
- package/dist/chunks/index-BBZxmcrY.js.map +0 -1
- package/dist/chunks/index-BDnnTdaJ.js +0 -2
- package/dist/chunks/index-BDnnTdaJ.js.map +0 -1
- package/dist/chunks/index-BGwwyukg.js +0 -2
- package/dist/chunks/index-BGwwyukg.js.map +0 -1
- package/dist/chunks/index-BNYygzo-.js +0 -376
- package/dist/chunks/index-BNYygzo-.js.map +0 -1
- package/dist/chunks/index-BYf7SZUC.js +0 -2
- package/dist/chunks/index-BYf7SZUC.js.map +0 -1
- package/dist/chunks/index-BknUKotT.js +0 -38
- package/dist/chunks/index-BknUKotT.js.map +0 -1
- package/dist/chunks/index-C2kxTsiE.js +0 -291
- package/dist/chunks/index-C2kxTsiE.js.map +0 -1
- package/dist/chunks/index-COoMV9Mh.js +0 -2
- package/dist/chunks/index-COoMV9Mh.js.map +0 -1
- package/dist/chunks/index-CYk-7wwG.js +0 -1018
- package/dist/chunks/index-CYk-7wwG.js.map +0 -1
- package/dist/chunks/index-CZ42b9rT.js +0 -3
- package/dist/chunks/index-CZ42b9rT.js.map +0 -1
- package/dist/chunks/index-CZz7hHWb.js +0 -2
- package/dist/chunks/index-CZz7hHWb.js.map +0 -1
- package/dist/chunks/index-CgivotaP.js +0 -20
- package/dist/chunks/index-CgivotaP.js.map +0 -1
- package/dist/chunks/index-CjNAJEk5.js +0 -6313
- package/dist/chunks/index-CjNAJEk5.js.map +0 -1
- package/dist/chunks/index-CkYZf9Pm.js +0 -2
- package/dist/chunks/index-CkYZf9Pm.js.map +0 -1
- package/dist/chunks/index-Co91SHhW.js +0 -141
- package/dist/chunks/index-Co91SHhW.js.map +0 -1
- package/dist/chunks/index-D-rN7ETu.js +0 -2
- package/dist/chunks/index-D-rN7ETu.js.map +0 -1
- package/dist/chunks/index-D9DU-5GF.js +0 -1196
- package/dist/chunks/index-D9DU-5GF.js.map +0 -1
- package/dist/chunks/index-DAWHN3cH.js +0 -86
- package/dist/chunks/index-DAWHN3cH.js.map +0 -1
- package/dist/chunks/index-DD49WSSW.js +0 -2
- package/dist/chunks/index-DD49WSSW.js.map +0 -1
- package/dist/chunks/index-DUHFrLMI.js +0 -389
- package/dist/chunks/index-DUHFrLMI.js.map +0 -1
- package/dist/chunks/index-DcJZ8q0f.js +0 -1190
- package/dist/chunks/index-DcJZ8q0f.js.map +0 -1
- package/dist/chunks/index-MlhL0PDC.js +0 -2
- package/dist/chunks/index-MlhL0PDC.js.map +0 -1
- package/dist/chunks/index-S1uNQPZj.js +0 -444
- package/dist/chunks/index-S1uNQPZj.js.map +0 -1
- package/dist/chunks/index-UWtj4ULm.js +0 -8
- package/dist/chunks/index-UWtj4ULm.js.map +0 -1
- package/dist/chunks/index-ZaGEDS_0.js +0 -2
- package/dist/chunks/index-ZaGEDS_0.js.map +0 -1
- package/dist/chunks/index-iyefwwxw.js +0 -2
- package/dist/chunks/index-iyefwwxw.js.map +0 -1
- package/dist/chunks/index-j7W9Hyzx.js +0 -322
- package/dist/chunks/index-j7W9Hyzx.js.map +0 -1
- package/dist/chunks/index-ryFIinh4.js +0 -257
- package/dist/chunks/index-ryFIinh4.js.map +0 -1
- package/dist/chunks/jsx-runtime-BjDatQAs.js +0 -23
- package/dist/chunks/jsx-runtime-BjDatQAs.js.map +0 -1
- package/dist/chunks/jsx-runtime-C5mzlN2N.js +0 -285
- package/dist/chunks/jsx-runtime-C5mzlN2N.js.map +0 -1
- package/dist/chunks/link.component-CCFg-LIe.js +0 -2
- package/dist/chunks/link.component-CCFg-LIe.js.map +0 -1
- package/dist/chunks/link.component-DprieyUG.js +0 -60
- package/dist/chunks/link.component-DprieyUG.js.map +0 -1
- package/dist/chunks/list-C_LmDoyW.js +0 -2
- package/dist/chunks/list-C_LmDoyW.js.map +0 -1
- package/dist/chunks/list-DqH5ttQG.js +0 -20
- package/dist/chunks/list-DqH5ttQG.js.map +0 -1
- package/dist/chunks/logo.types-By8TqyNf.js +0 -76
- package/dist/chunks/logo.types-By8TqyNf.js.map +0 -1
- package/dist/chunks/logo.types-CA_5hGAi.js +0 -2
- package/dist/chunks/logo.types-CA_5hGAi.js.map +0 -1
- package/dist/chunks/menu.component-CrRs7bHi.js +0 -678
- package/dist/chunks/menu.component-CrRs7bHi.js.map +0 -1
- package/dist/chunks/menu.component-Ob_ob-5Z.js +0 -2
- package/dist/chunks/menu.component-Ob_ob-5Z.js.map +0 -1
- package/dist/chunks/modal.types-Bq8QqBuR.js +0 -2
- package/dist/chunks/modal.types-Bq8QqBuR.js.map +0 -1
- package/dist/chunks/modal.types-DCe2G-mT.js +0 -206
- package/dist/chunks/modal.types-DCe2G-mT.js.map +0 -1
- package/dist/chunks/notificationCounter.component-BhZcuBmr.js +0 -2
- package/dist/chunks/notificationCounter.types-B_-siNfi.js +0 -2
- package/dist/chunks/notificationCounter.types-B_-siNfi.js.map +0 -1
- package/dist/chunks/notificationCounter.types-S7ENT1Oj.js +0 -11
- package/dist/chunks/notificationCounter.types-S7ENT1Oj.js.map +0 -1
- package/dist/chunks/omit-C-j4TrF5.js +0 -10
- package/dist/chunks/omit-C-j4TrF5.js.map +0 -1
- package/dist/chunks/omit-DqNeoZ8h.js +0 -2
- package/dist/chunks/omit-DqNeoZ8h.js.map +0 -1
- package/dist/chunks/picture.component-C2C2r_BU.js +0 -2
- package/dist/chunks/picture.component-C2C2r_BU.js.map +0 -1
- package/dist/chunks/picture.component-DKbaaL64.js +0 -35
- package/dist/chunks/picture.component-DKbaaL64.js.map +0 -1
- package/dist/chunks/pinInput.types-ChHs2RV-.js +0 -161
- package/dist/chunks/pinInput.types-ChHs2RV-.js.map +0 -1
- package/dist/chunks/pinInput.types-hI4GxH_1.js +0 -2
- package/dist/chunks/pinInput.types-hI4GxH_1.js.map +0 -1
- package/dist/chunks/popover-80QH8HEJ.js +0 -2
- package/dist/chunks/popover-80QH8HEJ.js.map +0 -1
- package/dist/chunks/popover-B9rNOU0g.js +0 -110
- package/dist/chunks/popover-B9rNOU0g.js.map +0 -1
- package/dist/chunks/popover-root-provider-CeLLpesI.js +0 -43
- package/dist/chunks/popover-root-provider-CeLLpesI.js.map +0 -1
- package/dist/chunks/popover-root-provider-DAMDDAHQ.js +0 -2
- package/dist/chunks/popover-root-provider-DAMDDAHQ.js.map +0 -1
- package/dist/chunks/popover.component-BIpq3zkh.js +0 -322
- package/dist/chunks/popover.component-BIpq3zkh.js.map +0 -1
- package/dist/chunks/popover.component-Dz0_vSF2.js +0 -2
- package/dist/chunks/popover.component-Dz0_vSF2.js.map +0 -1
- package/dist/chunks/popover.recipe--gMRcQTS.js +0 -479
- package/dist/chunks/popover.recipe--gMRcQTS.js.map +0 -1
- package/dist/chunks/popover.recipe-DLeyokHo.js +0 -2
- package/dist/chunks/popover.recipe-DLeyokHo.js.map +0 -1
- package/dist/chunks/provider-ClCAdPxy.js +0 -47
- package/dist/chunks/provider-ClCAdPxy.js.map +0 -1
- package/dist/chunks/provider-NDo8kOkE.js +0 -2
- package/dist/chunks/provider-NDo8kOkE.js.map +0 -1
- package/dist/chunks/radio.records-CAWibIHJ.js +0 -2
- package/dist/chunks/radio.records-CAWibIHJ.js.map +0 -1
- package/dist/chunks/radio.records-gz4RRw4x.js +0 -382
- package/dist/chunks/radio.records-gz4RRw4x.js.map +0 -1
- package/dist/chunks/radioGroup.component-wTDMlFMI.js +0 -275
- package/dist/chunks/radioGroup.component-wTDMlFMI.js.map +0 -1
- package/dist/chunks/radioGroup.component-xCr6p4DS.js +0 -2
- package/dist/chunks/radioGroup.component-xCr6p4DS.js.map +0 -1
- package/dist/chunks/ratingDots.component-DvlGbBPz.js +0 -2
- package/dist/chunks/render-strategy-BmWbSgqh.js +0 -2
- package/dist/chunks/render-strategy-BmWbSgqh.js.map +0 -1
- package/dist/chunks/render-strategy-C8hwN3bm.js +0 -12
- package/dist/chunks/render-strategy-C8hwN3bm.js.map +0 -1
- package/dist/chunks/select.component-1__YvaFF.js +0 -2
- package/dist/chunks/select.component-1__YvaFF.js.map +0 -1
- package/dist/chunks/select.component-DN5g4aQG.js +0 -391
- package/dist/chunks/select.component-DN5g4aQG.js.map +0 -1
- package/dist/chunks/sortableList.component-DI2da4B_.js.map +0 -1
- package/dist/chunks/sortableList.component-U3Kci1Jk.js +0 -6
- package/dist/chunks/sortableList.component-U3Kci1Jk.js.map +0 -1
- package/dist/chunks/spinner-BWqSIW6m.js +0 -8
- package/dist/chunks/spinner-BWqSIW6m.js.map +0 -1
- package/dist/chunks/spinner-BnpL14kK.js +0 -2
- package/dist/chunks/spinner-BnpL14kK.js.map +0 -1
- package/dist/chunks/spinner.component-DER6c5R6.js.map +0 -1
- package/dist/chunks/spinner.component-DUIpnXU8.js +0 -2
- package/dist/chunks/stack-BKu3hWEQ.js +0 -2
- package/dist/chunks/stack-BKu3hWEQ.js.map +0 -1
- package/dist/chunks/stack-Dnuh5Zgf.js +0 -85
- package/dist/chunks/stack-Dnuh5Zgf.js.map +0 -1
- package/dist/chunks/styledAvatar.types-EGc1-I1N.js.map +0 -1
- package/dist/chunks/styledAvatar.types-HA5wRy7y.js +0 -2
- package/dist/chunks/styledAvatar.types-HA5wRy7y.js.map +0 -1
- package/dist/chunks/swatch.types-DbgA3RWc.js +0 -67
- package/dist/chunks/swatch.types-DbgA3RWc.js.map +0 -1
- package/dist/chunks/swatch.types-DiX-4lpJ.js +0 -2
- package/dist/chunks/swatch.types-DiX-4lpJ.js.map +0 -1
- package/dist/chunks/switch.component-6TiuST9H.js +0 -166
- package/dist/chunks/switch.component-6TiuST9H.js.map +0 -1
- package/dist/chunks/switch.component-BPS2pQZx.js +0 -2
- package/dist/chunks/switch.component-BPS2pQZx.js.map +0 -1
- package/dist/chunks/tabs.component-DnbHYXT-.js +0 -2
- package/dist/chunks/tabs.component-DnbHYXT-.js.map +0 -1
- package/dist/chunks/tabs.component-RpmipiEe.js +0 -639
- package/dist/chunks/tabs.component-RpmipiEe.js.map +0 -1
- package/dist/chunks/tag.component-C6a6EzZB.js +0 -2
- package/dist/chunks/tag.component-C6a6EzZB.js.map +0 -1
- package/dist/chunks/tag.component-pexJ0TAT.js +0 -82
- package/dist/chunks/tag.component-pexJ0TAT.js.map +0 -1
- package/dist/chunks/tagBlock.component-C-CNF4In.js.map +0 -1
- package/dist/chunks/tagBlock.component-DgmTLlRz.js +0 -2
- package/dist/chunks/tagBlock.component-DgmTLlRz.js.map +0 -1
- package/dist/chunks/text.component-BGUHMpKP.js +0 -12
- package/dist/chunks/text.component-BGUHMpKP.js.map +0 -1
- package/dist/chunks/text.component-BJ5u8GVO.js +0 -2
- package/dist/chunks/text.component-BJ5u8GVO.js.map +0 -1
- package/dist/chunks/textInput.component-B2S0GcHU.js +0 -180
- package/dist/chunks/textInput.component-B2S0GcHU.js.map +0 -1
- package/dist/chunks/textInput.component-D1L2qv1M.js +0 -2
- package/dist/chunks/textInput.component-D1L2qv1M.js.map +0 -1
- package/dist/chunks/textarea.component-BEgF2Yny.js +0 -2
- package/dist/chunks/textarea.component-BEgF2Yny.js.map +0 -1
- package/dist/chunks/textarea.component-DB51bevU.js +0 -98
- package/dist/chunks/textarea.component-DB51bevU.js.map +0 -1
- package/dist/chunks/theme.provider-Dez6uepg.js.map +0 -1
- package/dist/chunks/theme.provider-u0ofgWRM.js +0 -26
- package/dist/chunks/theme.provider-u0ofgWRM.js.map +0 -1
- package/dist/chunks/timePicker.component-av1t2G-i.js +0 -2
- package/dist/chunks/timeRange.component-B7syLsrU.js +0 -2
- package/dist/chunks/timeRange.component-bIQZJ4MP.js +0 -18
- package/dist/chunks/timestamp.component-CNlZ6Jw2.js +0 -2
- package/dist/chunks/timestamp.component-CNlZ6Jw2.js.map +0 -1
- package/dist/chunks/timestamp.component-ZcL8FlD-.js +0 -54
- package/dist/chunks/timestamp.component-ZcL8FlD-.js.map +0 -1
- package/dist/chunks/toaster.records-BGfpUOVt.js +0 -824
- package/dist/chunks/toaster.records-BGfpUOVt.js.map +0 -1
- package/dist/chunks/toaster.records-BJo0j1IZ.js +0 -2
- package/dist/chunks/toaster.records-BJo0j1IZ.js.map +0 -1
- package/dist/chunks/tooltip.component-B4S3qwsH.js +0 -2
- package/dist/chunks/tooltip.component-B4S3qwsH.js.map +0 -1
- package/dist/chunks/tooltip.component-OLohVRIH.js +0 -755
- package/dist/chunks/tooltip.component-OLohVRIH.js.map +0 -1
- package/dist/chunks/typography.records-C6G_65b4.js +0 -2
- package/dist/chunks/typography.records-C6G_65b4.js.map +0 -1
- package/dist/chunks/typography.records-jnjWfTLS.js +0 -66
- package/dist/chunks/typography.records-jnjWfTLS.js.map +0 -1
- package/dist/chunks/use-breakpoint-MQ7agQJe.js +0 -72
- package/dist/chunks/use-breakpoint-MQ7agQJe.js.map +0 -1
- package/dist/chunks/use-breakpoint-uBg4-8yY.js +0 -2
- package/dist/chunks/use-breakpoint-uBg4-8yY.js.map +0 -1
- package/dist/chunks/use-field-context--wBJQY1R.js +0 -2
- package/dist/chunks/use-field-context--wBJQY1R.js.map +0 -1
- package/dist/chunks/use-field-context-B_G7Yziz.js +0 -12
- package/dist/chunks/use-field-context-B_G7Yziz.js.map +0 -1
- package/dist/chunks/use-locale-context-BdqHZ8L8.js +0 -22
- package/dist/chunks/use-locale-context-BdqHZ8L8.js.map +0 -1
- package/dist/chunks/use-locale-context-D-agiW5E.js +0 -2301
- package/dist/chunks/use-locale-context-D-agiW5E.js.map +0 -1
- package/dist/chunks/use-recipe-DaPWl_pL.js +0 -2
- package/dist/chunks/use-recipe-DaPWl_pL.js.map +0 -1
- package/dist/chunks/use-recipe-d63ABaZ3.js +0 -13
- package/dist/chunks/use-recipe-d63ABaZ3.js.map +0 -1
- package/dist/chunks/use-slot-recipe-8liupslO.js +0 -2
- package/dist/chunks/use-slot-recipe-8liupslO.js.map +0 -1
- package/dist/chunks/use-slot-recipe-DhtQ1j_5.js +0 -13
- package/dist/chunks/use-slot-recipe-DhtQ1j_5.js.map +0 -1
- package/dist/chunks/v-stack-BZT7R_9f.js +0 -12
- package/dist/chunks/v-stack-BZT7R_9f.js.map +0 -1
- package/dist/chunks/v-stack-DxjgpeJ0.js +0 -2
- package/dist/chunks/v-stack-DxjgpeJ0.js.map +0 -1
- package/dist/chunks/walk-object-BrTExCqQ.js +0 -2
- package/dist/chunks/walk-object-BrTExCqQ.js.map +0 -1
- package/dist/chunks/walk-object-_CL3Bkm9.js +0 -28
- package/dist/chunks/walk-object-_CL3Bkm9.js.map +0 -1
- package/dist/chunks/withFormControl-DIT4DbIl.js +0 -376
- package/dist/chunks/withFormControl-DIT4DbIl.js.map +0 -1
- package/dist/chunks/withFormControl-DzgoWpP6.js +0 -2
- package/dist/chunks/withFormControl-DzgoWpP6.js.map +0 -1
- package/dist/chunks/withTruncation-CYH02HoE.js +0 -2
- package/dist/chunks/wrap-B8tBNeBY.js +0 -45
- package/dist/chunks/wrap-B8tBNeBY.js.map +0 -1
- package/dist/chunks/wrap-CNn1kyJX.js +0 -2
- package/dist/chunks/wrap-CNn1kyJX.js.map +0 -1
- package/dist/cjs/chakra/index.cjs +0 -2
- package/dist/cjs/chakra/index.cjs.map +0 -1
- package/dist/cjs/cli/generate-theme-types.cjs +0 -6
- package/dist/cjs/cli/generate-theme-types.cjs.map +0 -1
- package/dist/cjs/cli/postinstall.cjs +0 -3
- package/dist/cjs/cli/postinstall.cjs.map +0 -1
- package/dist/cjs/components/Divider/index.cjs +0 -2
- package/dist/cjs/components/Logo/generated/index.cjs +0 -2
- package/dist/cjs/components/Logo/index.cjs +0 -2
- package/dist/cjs/components/PinInput/index.cjs +0 -2
- package/dist/cjs/components/StyledAvatar/index.cjs.map +0 -1
- package/dist/cjs/components/TagBlock/index.cjs.map +0 -1
- package/dist/cjs/components/Timestamp/index.cjs.map +0 -1
- package/dist/cjs/components/Toast/index.cjs +0 -2
- package/dist/cjs/components/Toast/index.cjs.map +0 -1
- package/dist/cjs/hooks/useBreakpoint/index.cjs +0 -2
- package/dist/cjs/hooks/useBreakpoint/index.cjs.map +0 -1
- package/dist/cjs/hooks/useDeviceType/index.cjs +0 -2
- package/dist/cjs/hooks/useDeviceType/index.cjs.map +0 -1
- package/dist/cjs/shared/index.cjs +0 -2
- package/dist/cjs/shared/index.cjs.map +0 -1
- package/dist/cjs/shared/records/index.cjs +0 -2
- package/dist/cjs/shared/records/index.cjs.map +0 -1
- package/dist/esm/chakra/index.js +0 -3227
- package/dist/esm/chakra/index.js.map +0 -1
- package/dist/esm/cli/generate-theme-types.js +0 -22
- package/dist/esm/cli/generate-theme-types.js.map +0 -1
- package/dist/esm/cli/postinstall.js +0 -21
- package/dist/esm/cli/postinstall.js.map +0 -1
- package/dist/esm/components/Divider/index.js +0 -8
- package/dist/esm/components/Logo/generated/index.js +0 -6
- package/dist/esm/components/Logo/index.js +0 -7
- package/dist/esm/components/PinInput/index.js +0 -6
- package/dist/esm/components/PinInput/index.js.map +0 -1
- package/dist/esm/components/StyledAvatar/index.js.map +0 -1
- package/dist/esm/components/TagBlock/index.js.map +0 -1
- package/dist/esm/components/Timestamp/index.js +0 -5
- package/dist/esm/components/Timestamp/index.js.map +0 -1
- package/dist/esm/components/Toast/index.js +0 -59
- package/dist/esm/components/Toast/index.js.map +0 -1
- package/dist/esm/hooks/useBreakpoint/index.js +0 -12
- package/dist/esm/hooks/useBreakpoint/index.js.map +0 -1
- package/dist/esm/hooks/useDeviceType/index.js +0 -12
- package/dist/esm/hooks/useDeviceType/index.js.map +0 -1
- package/dist/esm/shared/index.js +0 -9
- package/dist/esm/shared/index.js.map +0 -1
- package/dist/esm/shared/records/index.js +0 -18
- package/dist/esm/shared/records/index.js.map +0 -1
- package/dist/types/chakra/index.d.ts +0 -52
- package/dist/types/cli/generate-theme-types.d.ts +0 -2
- package/dist/types/cli/postinstall.d.ts +0 -2
- package/dist/types/components/Divider/divider.component.d.ts +0 -4
- package/dist/types/components/Divider/divider.types.d.ts +0 -6
- package/dist/types/components/Divider/index.d.ts +0 -2
- package/dist/types/components/Icon/generated/AiMicrophone.d.ts +0 -10
- package/dist/types/components/Logo/generated/FullLogo.d.ts +0 -10
- package/dist/types/components/Logo/generated/IconLogo.d.ts +0 -10
- package/dist/types/components/Logo/generated/index.d.ts +0 -4
- package/dist/types/components/Logo/index.d.ts +0 -2
- package/dist/types/components/Logo/logo.component.d.ts +0 -10
- package/dist/types/components/Logo/logo.recipe.d.ts +0 -9
- package/dist/types/components/Logo/logo.types.d.ts +0 -4
- package/dist/types/components/Modal/context/modal.context.d.ts +0 -6
- package/dist/types/components/PinInput/index.d.ts +0 -2
- package/dist/types/components/PinInput/pinInput.component.d.ts +0 -10
- package/dist/types/components/PinInput/pinInput.recipe.d.ts +0 -21
- package/dist/types/components/PinInput/pinInput.records.d.ts +0 -1
- package/dist/types/components/PinInput/pinInput.types.d.ts +0 -2
- package/dist/types/components/Toast/components/ToastAction/toastAction.component.d.ts +0 -12
- package/dist/types/components/Toast/components/Toaster/toaster.component.d.ts +0 -7
- package/dist/types/components/Toast/components/Toaster/toaster.records.d.ts +0 -11
- package/dist/types/components/Toast/components/Toaster/toaster.types.d.ts +0 -12
- package/dist/types/components/Toast/index.d.ts +0 -2
- package/dist/types/components/Toast/toast.component.d.ts +0 -14
- package/dist/types/components/Toast/toast.recipe.d.ts +0 -21
- package/dist/types/components/Toast/toast.types.d.ts +0 -19
- package/dist/types/components/Toast/useToast.d.ts +0 -3
- package/dist/types/components/Tooltip/tooltip.recipe.d.ts +0 -1
- package/dist/types/hooks/useBreakpoint/index.d.ts +0 -1
- package/dist/types/hooks/useDeviceType/index.d.ts +0 -3
- package/dist/types/shared/index.d.ts +0 -1
- package/dist/types/shared/records/index.d.ts +0 -1
- package/dist/types/shared/records/status.d.ts +0 -5
- /package/dist/cjs/{components → patterns}/ConversationCard/index.cjs.map +0 -0
- /package/dist/cjs/{components/Divider → patterns/StyledAvatar}/index.cjs.map +0 -0
- /package/dist/cjs/{components/Logo/generated → patterns/TagBlock}/index.cjs.map +0 -0
- /package/dist/cjs/{components/Logo → patterns/Timestamp}/index.cjs.map +0 -0
- /package/dist/cjs/{components/PinInput → patterns}/index.cjs.map +0 -0
- /package/dist/esm/{components → patterns}/ConversationCard/index.js.map +0 -0
- /package/dist/esm/{components/Divider → patterns/StyledAvatar}/index.js.map +0 -0
- /package/dist/esm/{components/Logo/generated → patterns/TagBlock}/index.js.map +0 -0
- /package/dist/esm/{components/Logo → patterns/Timestamp}/index.js.map +0 -0
- /package/dist/types/{components → patterns}/ConversationCard/components/ConversationCardAvatarGroup/conversationCardAvatarGroup.component.d.ts +0 -0
- /package/dist/types/{components → patterns}/ConversationCard/components/ConversationCardHeader/conversationCardHeader.component.d.ts +0 -0
- /package/dist/types/{components → patterns}/ConversationCard/index.d.ts +0 -0
- /package/dist/types/{components → patterns}/StyledAvatar/index.d.ts +0 -0
- /package/dist/types/{components → patterns}/StyledAvatar/styledAvatar.types.d.ts +0 -0
- /package/dist/types/{components → patterns}/TagBlock/index.d.ts +0 -0
- /package/dist/types/{components → patterns}/TagBlock/tagBlock.types.d.ts +0 -0
- /package/dist/types/{components → patterns}/Timestamp/index.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor-D-x6W6ez.js","sources":["../../node_modules/react/cjs/react-jsx-runtime.production.js","../../node_modules/react/cjs/react-jsx-runtime.development.js","../../node_modules/react/jsx-runtime.js","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Parser.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/stylis/src/Middleware.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/react-is/index.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/@zag-js/dom-query/dist/index.mjs","../../node_modules/react-dom/cjs/react-dom.production.js","../../node_modules/react-dom/cjs/react-dom.development.js","../../node_modules/react-dom/index.js","../../node_modules/@ark-ui/react/dist/utils/create-context.js","../../node_modules/@ark-ui/react/dist/providers/environment/use-environment-context.js","../../node_modules/@ark-ui/react/dist/components/portal/portal.js","../../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/react/dist/index.mjs","../../node_modules/@ark-ui/react/dist/utils/compose-refs.js","../../node_modules/@ark-ui/react/dist/components/factory.js","../../node_modules/@ark-ui/react/dist/components/tooltip/use-tooltip-context.js","../../node_modules/@ark-ui/react/dist/components/tooltip/tooltip-arrow.js","../../node_modules/@ark-ui/react/dist/components/tooltip/tooltip-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/presence/use-presence-context.js","../../node_modules/@ark-ui/react/dist/components/tooltip/tooltip-content.js","../../node_modules/@ark-ui/react/dist/components/tooltip/tooltip-positioner.js","../../node_modules/@ark-ui/react/dist/utils/create-split-props.js","../../node_modules/@ark-ui/react/dist/components/presence/split-presence-props.js","../../node_modules/@zag-js/presence/dist/index.mjs","../../node_modules/@ark-ui/react/dist/utils/use-event.js","../../node_modules/@ark-ui/react/dist/components/presence/use-presence.js","../../node_modules/@zag-js/anatomy/dist/index.mjs","../../node_modules/@zag-js/focus-visible/dist/index.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/@zag-js/popper/dist/index.mjs","../../node_modules/proxy-compare/dist/index.js","../../node_modules/@zag-js/store/dist/index.mjs","../../node_modules/@zag-js/tooltip/dist/index.mjs","../../node_modules/@ark-ui/react/dist/providers/locale/use-locale-context.js","../../node_modules/@ark-ui/react/dist/components/tooltip/use-tooltip.js","../../node_modules/@ark-ui/react/dist/components/tooltip/tooltip-root.js","../../node_modules/@ark-ui/react/dist/components/tooltip/tooltip-root-provider.js","../../node_modules/@ark-ui/react/dist/components/tooltip/tooltip-trigger.js","../../node_modules/@ark-ui/react/dist/components/avatar/use-avatar-context.js","../../node_modules/@ark-ui/react/dist/components/avatar/avatar-fallback.js","../../node_modules/@ark-ui/react/dist/components/avatar/avatar-image.js","../../node_modules/@zag-js/avatar/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/avatar/use-avatar.js","../../node_modules/@ark-ui/react/dist/components/avatar/avatar-root.js","../../node_modules/@ark-ui/react/dist/components/avatar/avatar-root-provider.js","../../node_modules/@pandacss/is-valid-prop/dist/index.mjs","../../node_modules/fast-safe-stringify/index.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-option-item-props-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-checkbox-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-content.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-context-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-group-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group-label.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-text.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-positioner.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item-group.js","../../node_modules/@ark-ui/react/dist/utils/use-effect-once.js","../../node_modules/@zag-js/interact-outside/dist/index.mjs","../../node_modules/@zag-js/dismissable/dist/index.mjs","../../node_modules/@zag-js/rect-utils/dist/index.mjs","../../node_modules/@zag-js/menu/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/menu/use-menu.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-machine-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-trigger-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root-provider.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-separator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger-item.js","../../node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-context.js","../../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-control.js","../../node_modules/@zag-js/checkbox/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/checkbox/checkbox.anatomy.js","../../node_modules/@ark-ui/react/dist/utils/use-controllable-state.js","../../node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group.js","../../node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group-context.js","../../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-group.js","../../node_modules/@ark-ui/react/dist/components/field/use-field-context.js","../../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-hidden-input.js","../../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-label.js","../../node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox.js","../../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root.js","../../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root-provider.js","../../node_modules/@ark-ui/react/dist/components/field/field-error-text.js","../../node_modules/@ark-ui/react/dist/components/field/field-helper-text.js","../../node_modules/@ark-ui/react/dist/components/field/field-input.js","../../node_modules/@ark-ui/react/dist/components/field/field-label.js","../../node_modules/@ark-ui/react/dist/utils/use-safe-layout-effect.js","../../node_modules/@ark-ui/react/dist/components/fieldset/use-fieldset-context.js","../../node_modules/@ark-ui/react/dist/components/field/field.anatomy.js","../../node_modules/@ark-ui/react/dist/components/field/use-field.js","../../node_modules/@ark-ui/react/dist/components/field/field-root.js","../../node_modules/@zag-js/auto-resize/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/field/field-textarea.js","../../node_modules/@zag-js/collapsible/dist/index.mjs","../../node_modules/@zag-js/color-picker/dist/index.mjs","../../node_modules/@ark-ui/react/dist/utils/render-strategy.js","../../node_modules/@zag-js/accordion/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/color-picker/color-picker.anatomy.js","../../node_modules/@zag-js/collection/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/collection.js","../../node_modules/@zag-js/aria-hidden/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/dialog/use-dialog-context.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-backdrop.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-close-trigger.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-content.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-description.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-positioner.js","../../node_modules/@zag-js/focus-trap/dist/index.mjs","../../node_modules/@zag-js/remove-scroll/dist/index.mjs","../../node_modules/@zag-js/dialog/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/dialog/use-dialog.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-root.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-root-provider.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-title.js","../../node_modules/@ark-ui/react/dist/components/dialog/dialog-trigger.js","../../node_modules/@zag-js/editable/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/fieldset/fieldset.anatomy.js","../../node_modules/@zag-js/file-upload/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/hover-card/use-hover-card-context.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-arrow.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-content.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-context.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-positioner.js","../../node_modules/@zag-js/hover-card/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/hover-card/use-hover-card.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-root.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-root-provider.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-trigger.js","../../node_modules/@zag-js/number-input/dist/index.mjs","../../node_modules/@zag-js/pin-input/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/popover/use-popover-context.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-anchor.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-arrow.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-close-trigger.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-content.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-context.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-description.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-indicator.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-positioner.js","../../node_modules/@zag-js/popover/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/popover/use-popover.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-root.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-root-provider.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-title.js","../../node_modules/@ark-ui/react/dist/components/popover/popover-trigger.js","../../node_modules/@zag-js/progress/dist/index.mjs","../../node_modules/@zag-js/qr-code/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-context.js","../../node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-context.js","../../node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-props-context.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-context.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-control.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-hidden-input.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-text.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-label.js","../../node_modules/@zag-js/radio-group/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root.js","../../node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root-provider.js","../../node_modules/@zag-js/rating-group/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/segment-group/segment-group.anatomy.js","../../node_modules/@ark-ui/react/dist/components/select/use-select-context.js","../../node_modules/@ark-ui/react/dist/components/select/select-clear-trigger.js","../../node_modules/@ark-ui/react/dist/components/select/select-content.js","../../node_modules/@ark-ui/react/dist/components/select/select-control.js","../../node_modules/@ark-ui/react/dist/components/select/select-hidden-select.js","../../node_modules/@ark-ui/react/dist/components/select/select-indicator.js","../../node_modules/@ark-ui/react/dist/components/select/use-select-item-context.js","../../node_modules/@ark-ui/react/dist/components/select/use-select-item-props-context.js","../../node_modules/@ark-ui/react/dist/components/select/select-item.js","../../node_modules/@ark-ui/react/dist/components/select/use-select-item-group-props.js","../../node_modules/@ark-ui/react/dist/components/select/select-item-group.js","../../node_modules/@ark-ui/react/dist/components/select/select-item-group-label.js","../../node_modules/@ark-ui/react/dist/components/select/select-item-indicator.js","../../node_modules/@ark-ui/react/dist/components/select/select-item-text.js","../../node_modules/@ark-ui/react/dist/components/select/select-label.js","../../node_modules/@ark-ui/react/dist/components/select/select-positioner.js","../../node_modules/@zag-js/select/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/select/use-select.js","../../node_modules/@ark-ui/react/dist/components/select/select-root.js","../../node_modules/@ark-ui/react/dist/components/select/select-root-provider.js","../../node_modules/@ark-ui/react/dist/components/select/select-trigger.js","../../node_modules/@ark-ui/react/dist/components/select/select-value-text.js","../../node_modules/@zag-js/slider/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/switch/use-switch-context.js","../../node_modules/@ark-ui/react/dist/components/switch/switch-control.js","../../node_modules/@ark-ui/react/dist/components/switch/switch-hidden-input.js","../../node_modules/@ark-ui/react/dist/components/switch/switch-label.js","../../node_modules/@zag-js/switch/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/switch/use-switch.js","../../node_modules/@ark-ui/react/dist/components/switch/switch-root.js","../../node_modules/@ark-ui/react/dist/components/switch/switch-root-provider.js","../../node_modules/@ark-ui/react/dist/components/switch/switch-thumb.js","../../node_modules/@ark-ui/react/dist/utils/use-debounce.js","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../node_modules/@zag-js/tabs/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js","../../node_modules/@ark-ui/react/dist/components/tabs/tabs-root-provider.js","../../node_modules/lodash-es/_baseRange.js","../../node_modules/lodash-es/eq.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/isFunction.js","../../node_modules/lodash-es/isLength.js","../../node_modules/lodash-es/isArrayLike.js","../../node_modules/lodash-es/_isIndex.js","../../node_modules/lodash-es/_isIterateeCall.js","../../node_modules/lodash-es/_trimmedEndIndex.js","../../node_modules/lodash-es/_baseTrim.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/toNumber.js","../../node_modules/lodash-es/toFinite.js","../../node_modules/lodash-es/_createRange.js","../../node_modules/lodash-es/range.js","../../node_modules/next-themes/dist/index.mjs"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\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};\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 === 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}\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/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 return value.slice(0, selectionStart) + event.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}\nvar isSelfTarget = (event) => {\n return contains(event.currentTarget, getEventTarget(event));\n};\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const isAppleDevice = isApple();\n if (isAppleDevice && !event.metaKey) return false;\n if (!isAppleDevice && !event.ctrlKey) return false;\n const localName = element.localName;\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 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.mozInputSource === 0 && 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};\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 hasTabIndex = (el) => !Number.isNaN(parseInt(el.getAttribute(\"tabindex\") || \"0\", 10));\nvar hasNegativeTabIndex = (el) => parseInt(el.getAttribute(\"tabindex\") || \"0\", 10) < 0;\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, includeContainer = false) => {\n if (!container) return [];\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 = elements.filter(isFocusable);\n focusableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.splice(i, 1, ...getFocusables(frameBody));\n }\n });\n return focusableElements;\n};\nfunction isFocusable(element) {\n if (!element || element.closest(\"[inert]\")) return false;\n return element.matches(focusableSelector) && isElementVisible(element);\n}\nfunction getFirstFocusable(container, includeContainer) {\n const [first] = getFocusables(container, includeContainer);\n return first || null;\n}\nfunction getTabbables(container, includeContainer) {\n if (!container) return [];\n const elements = Array.from(container.querySelectorAll(focusableSelector));\n const tabbableElements = elements.filter(isTabbable);\n if (includeContainer && isTabbable(container)) {\n tabbableElements.unshift(container);\n }\n tabbableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getTabbables(frameBody);\n tabbableElements.splice(i, 1, ...allFrameTabbable);\n }\n });\n if (!tabbableElements.length && includeContainer) {\n return elements;\n }\n return tabbableElements;\n}\nfunction isTabbable(el) {\n if (el != null && el.tabIndex > 0) return true;\n return isFocusable(el) && !hasNegativeTabIndex(el);\n}\nfunction getFirstTabbable(container, includeContainer) {\n const [first] = getTabbables(container, includeContainer);\n return first || null;\n}\nfunction getLastTabbable(container, includeContainer) {\n const elements = getTabbables(container, includeContainer);\n return elements[elements.length - 1] || null;\n}\nfunction getTabbableEdges(container, includeContainer) {\n const elements = getTabbables(container, includeContainer);\n const first = elements[0] || null;\n const last = elements[elements.length - 1] || null;\n return [first, last];\n}\nfunction getNextTabbable(container, current) {\n const tabbables = getTabbables(container);\n const doc = container?.ownerDocument || document;\n const currentElement = current ?? doc.activeElement;\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 ((/^(audio|video|details)$/.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 const doc = container.ownerDocument || document;\n if (doc.activeElement === firstTabbable && event.shiftKey) return false;\n if (doc.activeElement === lastTabbable && !event.shiftKey) return false;\n if (!firstTabbable && !lastTabbable) return false;\n return true;\n}\n\n// src/raf.ts\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 raf(fn) {\n let cleanup;\n const id = globalThis.requestAnimationFrame(() => {\n cleanup = fn();\n });\n return () => {\n globalThis.cancelAnimationFrame(id);\n cleanup?.();\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 clickIfLink(el) {\n const click = () => el.click();\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/;\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) && ![\"inline\", \"contents\"].includes(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.button === 0) {\n onPointerUp();\n return;\n }\n onPointerMove({ point, event });\n };\n const cleanups = [\n addDomEvent(doc, \"pointermove\", handleMove, false),\n addDomEvent(doc, \"pointerup\", onPointerUp, false),\n addDomEvent(doc, \"pointercancel\", onPointerUp, false),\n addDomEvent(doc, \"contextmenu\", onPointerUp, 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 const doc = getDocument(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 (doc.activeElement === 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 } = 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, true);\n const nextTabbableAfterTrigger = getNextTabbable(body, triggerElement);\n const noTabbableElements = !firstTabbable && !lastTabbable;\n if (event.shiftKey && nextTabbableAfterTrigger === doc.activeElement) {\n onFocusEnter?.();\n elementToFocus = lastTabbable;\n } else if (event.shiftKey && (doc.activeElement === firstTabbable || noTabbableElements)) {\n elementToFocus = triggerElement;\n } else if (!event.shiftKey && doc.activeElement === triggerElement) {\n onFocusEnter?.();\n elementToFocus = firstTabbable;\n } else if (!event.shiftKey && (doc.activeElement === 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 trackElementRect(elements, options) {\n const { onEntry, measure, box = \"border-box\" } = options;\n const elems = (Array.isArray(elements) ? elements : [elements]).filter(isHTMLElement);\n const win = getWindow(elems[0]);\n const trigger = (entries) => {\n const rects = elems.map((el) => measure(el));\n onEntry({ rects, entries });\n };\n trigger([]);\n const obs = new win.ResizeObserver(trigger);\n elems.forEach((el) => obs.observe(el, { box }));\n return () => obs.disconnect();\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: (ctx, elem) => elem === dom.getActiveElement(ctx),\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\nvar fps = 1e3 / 60;\nfunction waitForElement(query2, cb) {\n const el = query2();\n if (isHTMLElement(el) && el.isConnected) {\n cb(el);\n return () => void 0;\n } else {\n const timerId = setInterval(() => {\n const el2 = query2();\n if (isHTMLElement(el2) && el2.isConnected) {\n cb(el2);\n clearInterval(timerId);\n }\n }, fps);\n return () => clearInterval(timerId);\n }\n}\nfunction waitForElements(queries, cb) {\n const cleanups = [];\n queries?.forEach((query2) => {\n const clean = waitForElement(query2, cb);\n cleanups.push(clean);\n });\n return () => {\n cleanups.forEach((fn) => fn());\n };\n}\n\nexport { MAX_Z_INDEX, addDomEvent, ariaAttr, clickIfLink, contains, createScope, dataAttr, defaultItemToId, disableTextSelection, dispatchInputCheckedEvent, dispatchInputValueEvent, getActiveElement, getBeforeInputValue, getByText, getByTypeahead, getComputedStyle, getDataUrl, getDocument, getDocumentElement, getEventKey, getEventPoint, getEventStep, getEventTarget, getFirstFocusable, getFirstTabbable, getFocusables, getInitialFocus, getLastTabbable, getNativeEvent, getNearestOverflowAncestor, getNextTabbable, getNodeName, getOverflowAncestors, getParentNode, getPlatform, getRelativePoint, getScrollPosition, getTabIndex, getTabbableEdges, getTabbables, getUserAgent, getWindow, indexOfId, isAnchorElement, isAndroid, isApple, isCaretAtStart, isChrome, isComposingEvent, isContextMenuEvent, isCtrlOrMetaKey, isDocument, isDom, isDownloadingEvent, isEditableElement, isElementVisible, isFirefox, isFocusable, isHTMLElement, isIPad, isIPhone, isInView, isInputElement, isIos, isKeyboardClick, isLeftClick, isMac, isModifierKey, isNode, isOpeningInNewTab, isOverflowElement, isPrintableKey, isRootElement, isSafari, isSelfTarget, isShadowRoot, isTabbable, isTouchDevice, isTouchEvent, isValidTabEvent, isVirtualClick, isVirtualPointerEvent, isVisualViewport, isWebKit, isWindow, itemById, nextById, nextTick, observeAttributes, observeChildren, prevById, proxyTabFocus, query, queryAll, queueBeforeEvent, raf, requestPointerLock, restoreTextSelection, scrollIntoView, setAttribute, setCaretToEnd, setElementChecked, setElementValue, setProperty, setStyle, setStyleProperty, setVisuallyHidden, trackElementRect, trackFormControl, trackPointerMove, trackPress, trackVisualViewport, visuallyHiddenStyle, waitForElement, waitForElements };\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.1.0\";\n","/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n try {\n testStringCoercion(key);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n JSCompiler_inline_result &&\n (console.error(\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n key[Symbol.toStringTag]) ||\n key.constructor.name ||\n \"Object\"\n ),\n testStringCoercion(key));\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n }\n function getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : \"string\" === typeof thing\n ? JSON.stringify(thing)\n : \"number\" === typeof thing\n ? \"`\" + thing + \"`\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(\n \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n );\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n );\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\n exports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(\"Target container is not a DOM element.\");\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f() &&\n console.error(\n \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n );\n }\n };\n exports.preconnect = function (href, options) {\n \"string\" === typeof href && href\n ? null != options && \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : null != options &&\n \"string\" !== typeof options.crossOrigin &&\n console.error(\n \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n )\n : console.error(\n \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n };\n exports.prefetchDNS = function (href) {\n if (\"string\" !== typeof href || !href)\n console.error(\n \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n else if (1 < arguments.length) {\n var options = arguments[1];\n \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n ? console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n );\n }\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function (href, options) {\n \"string\" === typeof href && href\n ? null == options || \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : \"style\" !== options.as &&\n \"script\" !== options.as &&\n console.error(\n 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n getValueDescriptorExpectingEnumForWarning(options.as)\n )\n : console.error(\n \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n if (\n \"string\" === typeof href &&\n options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence\n ? options.precedence\n : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n };\n exports.preinitModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"script\" !== options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingEnumForWarning(options.as) +\n \".\");\n if (encountered)\n console.error(\n \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n encountered\n );\n else\n switch (\n ((encountered =\n options && \"string\" === typeof options.as ? options.as : \"script\"),\n encountered)\n ) {\n case \"script\":\n break;\n default:\n (encountered =\n getValueDescriptorExpectingEnumForWarning(encountered)),\n console.error(\n 'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n encountered,\n href\n );\n }\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as)\n (encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.M(href, {\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0,\n nonce:\n \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n } else null == options && Internals.d.M(href);\n };\n exports.preload = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n null == options || \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : (\"string\" === typeof options.as && options.as) ||\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s',\n encountered\n );\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n encountered = options.as;\n var crossOrigin = getCrossOriginStringAs(\n encountered,\n options.crossOrigin\n );\n Internals.d.L(href, encountered, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet\n ? options.imageSrcSet\n : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes\n ? options.imageSizes\n : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n };\n exports.preloadModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"string\" !== typeof options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s',\n encountered\n );\n \"string\" === typeof href &&\n (options\n ? ((encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0\n }))\n : Internals.d.m(href));\n };\n exports.requestFormReset = function (form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n };\n exports.useFormState = function (action, initialState, permalink) {\n return resolveDispatcher().useFormState(action, initialState, permalink);\n };\n exports.useFormStatus = function () {\n return resolveDispatcher().useHostTransitionStatus();\n };\n exports.version = \"19.1.0\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use client';\nimport { createContext as createContext$1, useContext } from 'react';\n\nfunction getErrorMessage(hook, provider) {\n return `${hook} returned \\`undefined\\`. Seems you forgot to wrap component within ${provider}`;\n}\nfunction createContext(options = {}) {\n const {\n name,\n strict = true,\n hookName = \"useContext\",\n providerName = \"Provider\",\n errorMessage,\n defaultValue\n } = options;\n const Context = createContext$1(defaultValue);\n Context.displayName = name;\n function useContext$1() {\n const context = useContext(Context);\n if (!context && strict) {\n const error = new Error(errorMessage ?? getErrorMessage(hookName, providerName));\n error.name = \"ContextError\";\n Error.captureStackTrace?.(error, useContext$1);\n throw error;\n }\n return context;\n }\n return [Context.Provider, useContext$1, Context];\n}\n\nexport { createContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [EnvironmentContextProvider, useEnvironmentContext] = createContext({\n name: \"EnvironmentContext\",\n hookName: \"useEnvironmentContext\",\n providerName: \"<EnvironmentProvider />\",\n strict: false,\n defaultValue: {\n getRootNode: () => document,\n getDocument: () => document,\n getWindow: () => window\n }\n});\n\nexport { EnvironmentContextProvider, useEnvironmentContext };\n","'use client';\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { isShadowRoot, getDocument } from '@zag-js/dom-query';\nimport { useState, useSyncExternalStore, useEffect, Children } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\n\nconst Portal = (props) => {\n const { children, disabled } = props;\n const [container, setContainer] = useState(props.container?.current);\n const isServer = useSyncExternalStore(\n subscribe,\n () => false,\n () => true\n );\n const { getRootNode } = useEnvironmentContext();\n useEffect(() => {\n setContainer(() => props.container?.current);\n }, [props.container]);\n if (isServer || disabled) return /* @__PURE__ */ jsx(Fragment, { children });\n const mountNode = container ?? getPortalNode(getRootNode);\n return /* @__PURE__ */ jsx(Fragment, { children: Children.map(children, (child) => createPortal(child, mountNode)) });\n};\nconst getPortalNode = (cb) => {\n const node = cb?.();\n const rootNode = node.getRootNode();\n if (isShadowRoot(rootNode)) return rootNode;\n return getDocument(node).body;\n};\nconst subscribe = () => () => {\n};\n\nexport { Portal };\n","// src/array.ts\nfunction toArray(v) {\n if (!v) 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 addOrRemove = (v, item) => {\n if (has(v, item)) return remove(v, item);\n return add(v, item);\n};\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}\nvar chunk = (v, size) => {\n const res = [];\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 }, res);\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}\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]\") 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};\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}\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) => nan(v) >= vmin && nan(v) <= vmax;\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 vmin = Number(vmin);\n vmax = Number(vmax);\n let remainder = (v - (isNaN(vmin) ? 0 : vmin)) % step;\n let sv = roundToStepPrecision(\n abs(remainder) * 2 >= step ? v + sign(remainder) * (step - abs(remainder)) : v - remainder,\n step\n );\n if (!isNaN(vmin)) {\n if (sv < vmin) {\n sv = vmin;\n } else if (!isNaN(vmax) && sv > vmax) {\n sv = vmin + floor(roundToStepPrecision((vmax - vmin) / step, step)) * step;\n }\n } else if (!isNaN(vmax) && sv > vmax) {\n sv = vmin + floor(roundToStepPrecision((vmax - vmin) / step, step)) * step;\n }\n return roundToStepPrecision(sv, 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) => v != null ? `${v}px` : void 0;\n\n// src/object.ts\nfunction compact(obj) {\n if (!isPlainObject2(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));\nvar isPlainObject2 = (v) => {\n return v && typeof v === \"object\" && v.constructor === Object;\n};\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 for (const key in props) {\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/timers.ts\nfunction setRafInterval(callback, interval) {\n let start = performance.now();\n let handle;\n function loop(now) {\n handle = requestAnimationFrame(loop);\n const delta = now - start;\n if (delta >= interval) {\n start = now - delta % interval;\n callback({ startMs: start, deltaMs: delta });\n }\n }\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\n}\nfunction setRafTimeout(callback, delay) {\n const start = performance.now();\n let handle;\n function loop(now) {\n handle = requestAnimationFrame(loop);\n const delta = now - start;\n if (delta >= delay) {\n callback();\n }\n }\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\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 { add, addOrRemove, callAll, cast, chunk, clampPercent, clampValue, clear, compact, createSplitProps, decrementValue, 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, 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 { 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 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 }\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);\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 isActiveElement = (elem) => elem === getActiveElementFn();\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","\"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 });\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 debug(\"send\", 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\", transition);\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","function composeRefs(...refs) {\n return (node) => {\n const cleanUps = [];\n for (const ref of refs) {\n if (typeof ref === \"function\") {\n const cb = ref(node);\n if (typeof cb === \"function\") {\n cleanUps.push(cb);\n }\n } else if (ref) {\n ref.current = node;\n }\n }\n if (cleanUps.length) {\n return () => {\n for (const cleanUp of cleanUps) {\n cleanUp();\n }\n };\n }\n };\n}\n\nexport { composeRefs };\n","import { mergeProps } from '@zag-js/core';\nimport { memo, forwardRef, createElement, Children, isValidElement, cloneElement } from 'react';\nimport { composeRefs } from '../utils/compose-refs.js';\n\nfunction getRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nconst withAsChild = (Component) => {\n const Comp = memo(\n forwardRef((props, ref) => {\n const { asChild, children, ...restProps } = props;\n if (!asChild) {\n return createElement(Component, { ...restProps, ref }, children);\n }\n const onlyChild = Children.only(children);\n if (!isValidElement(onlyChild)) {\n return null;\n }\n const childRef = getRef(onlyChild);\n return cloneElement(onlyChild, {\n ...mergeProps(restProps, onlyChild.props),\n ref: ref ? composeRefs(ref, childRef) : childRef\n });\n })\n );\n Comp.displayName = Component.displayName || Component.name;\n return Comp;\n};\nconst jsxFactory = () => {\n const cache = /* @__PURE__ */ new Map();\n return new Proxy(withAsChild, {\n apply(_target, _thisArg, argArray) {\n return withAsChild(argArray[0]);\n },\n get(_, element) {\n const asElement = element;\n if (!cache.has(asElement)) {\n cache.set(asElement, withAsChild(asElement));\n }\n return cache.get(asElement);\n }\n });\n};\nconst ark = jsxFactory();\n\nexport { ark, jsxFactory };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TooltipProvider, useTooltipContext] = createContext({\n name: \"TooltipContext\",\n hookName: \"useTooltipContext\",\n providerName: \"<TooltipProvider />\"\n});\n\nexport { TooltipProvider, useTooltipContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTooltipContext } from './use-tooltip-context.js';\n\nconst TooltipArrow = forwardRef((props, ref) => {\n const tooltip = useTooltipContext();\n const mergedProps = mergeProps(tooltip.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTooltipArrow.displayName = \"TooltipArrow\";\n\nexport { TooltipArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTooltipContext } from './use-tooltip-context.js';\n\nconst TooltipArrowTip = forwardRef((props, ref) => {\n const tooltip = useTooltipContext();\n const mergedProps = mergeProps(tooltip.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTooltipArrowTip.displayName = \"TooltipArrowTip\";\n\nexport { TooltipArrowTip };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [PresenceProvider, usePresenceContext] = createContext({\n name: \"PresenceContext\",\n hookName: \"usePresenceContext\",\n providerName: \"<PresenceProvider />\"\n});\n\nexport { PresenceProvider, usePresenceContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useTooltipContext } from './use-tooltip-context.js';\n\nconst TooltipContent = forwardRef((props, ref) => {\n const tooltip = useTooltipContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(tooltip.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nTooltipContent.displayName = \"TooltipContent\";\n\nexport { TooltipContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useTooltipContext } from './use-tooltip-context.js';\n\nconst TooltipPositioner = forwardRef((props, ref) => {\n const tooltip = useTooltipContext();\n const mergedProps = mergeProps(tooltip.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTooltipPositioner.displayName = \"TooltipPositioner\";\n\nexport { TooltipPositioner };\n","'use client';\nconst createSplitProps = () => (props, keys) => keys.reduce(\n (previousValue, currentValue) => {\n const [target, source] = previousValue;\n const key = currentValue;\n if (source[key] !== void 0) {\n target[key] = source[key];\n }\n delete source[key];\n return [target, source];\n },\n [{}, { ...props }]\n);\n\nexport { createSplitProps };\n","'use client';\nimport { createSplitProps } from '../../utils/create-split-props.js';\n\nconst splitPresenceProps = (props) => createSplitProps()(props, [\n \"immediate\",\n \"lazyMount\",\n \"onExitComplete\",\n \"present\",\n \"skipAnimationOnMount\",\n \"unmountOnExit\"\n]);\n\nexport { splitPresenceProps };\n","import { setStyle, nextTick, raf, getComputedStyle, getEventTarget } from '@zag-js/dom-query';\nimport { createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/presence.connect.ts\nfunction connect(service, _normalize) {\n const { state, send, context } = service;\n const present = state.matches(\"mounted\", \"unmountSuspended\");\n return {\n skip: !context.get(\"initial\"),\n present,\n setNode(node) {\n if (!node) return;\n send({ type: \"NODE.SET\", node });\n },\n unmount() {\n send({ type: \"UNMOUNT\" });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return { ...props2, present: !!props2.present };\n },\n initialState({ prop }) {\n return prop(\"present\") ? \"mounted\" : \"unmounted\";\n },\n refs() {\n return {\n node: null,\n styles: null\n };\n },\n context({ bindable }) {\n return {\n unmountAnimationName: bindable(() => ({ defaultValue: null })),\n prevAnimationName: bindable(() => ({ defaultValue: null })),\n present: bindable(() => ({ defaultValue: false })),\n initial: bindable(() => ({\n sync: true,\n defaultValue: false\n }))\n };\n },\n exit: [\"clearInitial\", \"cleanupNode\"],\n watch({ track, action, prop }) {\n track([() => prop(\"present\")], () => {\n action([\"setInitial\", \"syncPresence\"]);\n });\n },\n on: {\n \"NODE.SET\": {\n actions: [\"setNode\", \"setStyles\"]\n }\n },\n states: {\n mounted: {\n on: {\n UNMOUNT: {\n target: \"unmounted\",\n actions: [\"clearPrevAnimationName\", \"invokeOnExitComplete\"]\n },\n \"UNMOUNT.SUSPEND\": {\n target: \"unmountSuspended\"\n }\n }\n },\n unmountSuspended: {\n effects: [\"trackAnimationEvents\"],\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n },\n UNMOUNT: {\n target: \"unmounted\",\n actions: [\"clearPrevAnimationName\", \"invokeOnExitComplete\"]\n }\n }\n },\n unmounted: {\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n }\n }\n }\n },\n implementations: {\n actions: {\n setInitial: ({ context }) => {\n if (context.get(\"initial\")) return;\n queueMicrotask(() => {\n context.set(\"initial\", true);\n });\n },\n clearInitial: ({ context }) => {\n context.set(\"initial\", false);\n },\n cleanupNode: ({ refs }) => {\n refs.set(\"node\", null);\n refs.set(\"styles\", null);\n },\n invokeOnExitComplete: ({ prop }) => {\n prop(\"onExitComplete\")?.();\n },\n setNode: ({ refs, event }) => {\n refs.set(\"node\", event.node);\n },\n setStyles: ({ refs, event }) => {\n refs.set(\"styles\", getComputedStyle(event.node));\n },\n syncPresence: ({ context, refs, send, prop }) => {\n const presentProp = prop(\"present\");\n if (presentProp) {\n return send({ type: \"MOUNT\", src: \"presence.changed\" });\n }\n const node = refs.get(\"node\");\n if (!presentProp && node?.ownerDocument.visibilityState === \"hidden\") {\n return send({ type: \"UNMOUNT\", src: \"visibilitychange\" });\n }\n raf(() => {\n const animationName = getAnimationName(refs.get(\"styles\"));\n context.set(\"unmountAnimationName\", animationName);\n if (animationName === \"none\" || animationName === context.get(\"prevAnimationName\") || refs.get(\"styles\")?.display === \"none\" || refs.get(\"styles\")?.animationDuration === \"0s\") {\n send({ type: \"UNMOUNT\", src: \"presence.changed\" });\n } else {\n send({ type: \"UNMOUNT.SUSPEND\" });\n }\n });\n },\n setPrevAnimationName: ({ context, refs }) => {\n raf(() => {\n context.set(\"prevAnimationName\", getAnimationName(refs.get(\"styles\")));\n });\n },\n clearPrevAnimationName: ({ context }) => {\n context.set(\"prevAnimationName\", null);\n }\n },\n effects: {\n trackAnimationEvents: ({ context, refs, send }) => {\n const node = refs.get(\"node\");\n if (!node) return;\n const onStart = (event) => {\n const target = event.composedPath?.()?.[0] ?? event.target;\n if (target === node) {\n context.set(\"prevAnimationName\", getAnimationName(refs.get(\"styles\")));\n }\n };\n const onEnd = (event) => {\n const animationName = getAnimationName(refs.get(\"styles\"));\n const target = getEventTarget(event);\n if (target === node && animationName === context.get(\"unmountAnimationName\")) {\n send({ type: \"UNMOUNT\", src: \"animationend\" });\n }\n };\n node.addEventListener(\"animationstart\", onStart);\n node.addEventListener(\"animationcancel\", onEnd);\n node.addEventListener(\"animationend\", onEnd);\n const cleanupStyles = setStyle(node, { animationFillMode: \"forwards\" });\n return () => {\n node.removeEventListener(\"animationstart\", onStart);\n node.removeEventListener(\"animationcancel\", onEnd);\n node.removeEventListener(\"animationend\", onEnd);\n nextTick(() => cleanupStyles());\n };\n }\n }\n }\n});\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nvar props = createProps()([\"onExitComplete\", \"present\", \"immediate\"]);\n\nexport { connect, machine, props };\n","'use client';\nimport { useCallback, useRef } from 'react';\n\nfunction useEvent(callback, opts = {}) {\n const { sync = false } = opts;\n const callbackRef = useLatestRef(callback);\n return useCallback(\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n (...args) => {\n if (sync) return queueMicrotask(() => callbackRef.current?.(...args));\n return callbackRef.current?.(...args);\n },\n [sync, callbackRef]\n );\n}\nfunction useLatestRef(value) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n\nexport { useEvent };\n","'use client';\nimport * as presence from '@zag-js/presence';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useRef } from 'react';\nimport { useEvent } from '../../utils/use-event.js';\n\nconst usePresence = (props = {}) => {\n const { lazyMount, unmountOnExit, present, skipAnimationOnMount = false, ...rest } = props;\n const wasEverPresent = useRef(false);\n const machineProps = {\n ...rest,\n present,\n onExitComplete: useEvent(props.onExitComplete)\n };\n const service = useMachine(presence.machine, machineProps);\n const api = presence.connect(service, normalizeProps);\n if (api.present) {\n wasEverPresent.current = true;\n }\n const unmounted = !api.present && !wasEverPresent.current && lazyMount || unmountOnExit && !api.present && wasEverPresent.current;\n const getPresenceProps = () => ({\n \"data-state\": api.skip && skipAnimationOnMount ? void 0 : present ? \"open\" : \"closed\",\n hidden: !api.present\n });\n return {\n ref: api.setNode,\n getPresenceProps,\n present: api.present,\n unmounted\n };\n};\n\nexport { usePresence };\n","// 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 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","import { getWindow, getDocument, getEventTarget, isVirtualClick, isMac } from '@zag-js/dom-query';\n\n// src/index.ts\nfunction isValidKey(e) {\n return !(e.metaKey || !isMac() && e.altKey || e.ctrlKey || e.key === \"Control\" || e.key === \"Shift\" || e.key === \"Meta\");\n}\nvar nonTextInputTypes = /* @__PURE__ */ new Set([\"checkbox\", \"radio\", \"range\", \"color\", \"file\", \"image\", \"button\", \"submit\", \"reset\"]);\nfunction isKeyboardFocusEvent(isTextInput, modality, e) {\n const target = e ? getEventTarget(e) : null;\n const win = getWindow(target);\n isTextInput = isTextInput || target instanceof win.HTMLInputElement && !nonTextInputTypes.has(target?.type) || target instanceof win.HTMLTextAreaElement || target instanceof win.HTMLElement && target.isContentEditable;\n return !(isTextInput && modality === \"keyboard\" && e instanceof win.KeyboardEvent && !Reflect.has(FOCUS_VISIBLE_INPUT_KEYS, e.key));\n}\nvar currentModality = null;\nvar changeHandlers = /* @__PURE__ */ new Set();\nvar listenerMap = /* @__PURE__ */ new Map();\nvar hasEventBeforeFocus = false;\nvar hasBlurredWindowRecently = false;\nvar FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction triggerChangeHandlers(modality, e) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\nfunction handleKeyboardEvent(e) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\nfunction handlePointerEvent(e) {\n currentModality = \"pointer\";\n if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n hasEventBeforeFocus = true;\n triggerChangeHandlers(\"pointer\", e);\n }\n}\nfunction handleClickEvent(e) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = \"virtual\";\n }\n}\nfunction handleFocusEvent(e) {\n const target = getEventTarget(e);\n if (target === getWindow(target) || target === getDocument(target)) {\n return;\n }\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\nfunction handleWindowBlur() {\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\nfunction setupGlobalFocusEvents(root) {\n if (typeof window === \"undefined\" || listenerMap.get(getWindow(root))) {\n return;\n }\n const win = getWindow(root);\n const doc = getDocument(root);\n let focus = win.HTMLElement.prototype.focus;\n win.HTMLElement.prototype.focus = function() {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", null);\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n doc.addEventListener(\"keydown\", handleKeyboardEvent, true);\n doc.addEventListener(\"keyup\", handleKeyboardEvent, true);\n doc.addEventListener(\"click\", handleClickEvent, true);\n win.addEventListener(\"focus\", handleFocusEvent, true);\n win.addEventListener(\"blur\", handleWindowBlur, false);\n if (typeof win.PointerEvent !== \"undefined\") {\n doc.addEventListener(\"pointerdown\", handlePointerEvent, true);\n doc.addEventListener(\"pointermove\", handlePointerEvent, true);\n doc.addEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n doc.addEventListener(\"mousedown\", handlePointerEvent, true);\n doc.addEventListener(\"mousemove\", handlePointerEvent, true);\n doc.addEventListener(\"mouseup\", handlePointerEvent, true);\n }\n win.addEventListener(\n \"beforeunload\",\n () => {\n tearDownWindowFocusTracking(root);\n },\n { once: true }\n );\n listenerMap.set(win, { focus });\n}\nvar tearDownWindowFocusTracking = (root, loadListener) => {\n const win = getWindow(root);\n const doc = getDocument(root);\n if (!listenerMap.has(win)) {\n return;\n }\n win.HTMLElement.prototype.focus = listenerMap.get(win).focus;\n doc.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n doc.removeEventListener(\"keyup\", handleKeyboardEvent, true);\n doc.removeEventListener(\"click\", handleClickEvent, true);\n win.removeEventListener(\"focus\", handleFocusEvent, true);\n win.removeEventListener(\"blur\", handleWindowBlur, false);\n if (typeof win.PointerEvent !== \"undefined\") {\n doc.removeEventListener(\"pointerdown\", handlePointerEvent, true);\n doc.removeEventListener(\"pointermove\", handlePointerEvent, true);\n doc.removeEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n doc.removeEventListener(\"mousedown\", handlePointerEvent, true);\n doc.removeEventListener(\"mousemove\", handlePointerEvent, true);\n doc.removeEventListener(\"mouseup\", handlePointerEvent, true);\n }\n listenerMap.delete(win);\n};\nfunction getInteractionModality() {\n return currentModality;\n}\nfunction setInteractionModality(modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\nfunction trackInteractionModality(props) {\n const { onChange, root } = props;\n setupGlobalFocusEvents(root);\n onChange({ modality: currentModality });\n const handler = () => onChange({ modality: currentModality });\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n}\nfunction isFocusVisible() {\n return currentModality === \"keyboard\";\n}\nfunction trackFocusVisible(props = {}) {\n const { isTextInput, autoFocus, onChange, root } = props;\n setupGlobalFocusEvents(root);\n onChange?.({ isFocusVisible: autoFocus || isFocusVisible(), modality: currentModality });\n const handler = (modality, e) => {\n if (!isKeyboardFocusEvent(!!isTextInput, modality, e)) return;\n onChange?.({ isFocusVisible: isFocusVisible(), modality });\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n}\n\nexport { getInteractionModality, isFocusVisible, listenerMap, setInteractionModality, trackFocusVisible, trackInteractionModality };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { autoUpdate, offset, flip, shift, limitShift, arrow, size, hide, computePosition } from '@floating-ui/dom';\nimport { raf, isHTMLElement, getWindow, getComputedStyle } from '@zag-js/dom-query';\nimport { noop, isNull, compact, runIfFn } from '@zag-js/utils';\n\n// src/get-placement.ts\nfunction createDOMRect(x = 0, y = 0, width = 0, height = 0) {\n if (typeof DOMRect === \"function\") {\n return new DOMRect(x, y, width, height);\n }\n const rect = {\n x,\n y,\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n return { ...rect, toJSON: () => rect };\n}\nfunction getDOMRect(anchorRect) {\n if (!anchorRect) return createDOMRect();\n const { x, y, width, height } = anchorRect;\n return createDOMRect(x, y, width, height);\n}\nfunction getAnchorElement(anchorElement, getAnchorRect) {\n return {\n contextElement: isHTMLElement(anchorElement) ? anchorElement : void 0,\n getBoundingClientRect: () => {\n const anchor = anchorElement;\n const anchorRect = getAnchorRect?.(anchor);\n if (anchorRect || !anchor) {\n return getDOMRect(anchorRect);\n }\n return anchor.getBoundingClientRect();\n }\n };\n}\n\n// src/middleware.ts\nvar toVar = (value) => ({ variable: value, reference: `var(${value})` });\nvar cssVars = {\n arrowSize: toVar(\"--arrow-size\"),\n arrowSizeHalf: toVar(\"--arrow-size-half\"),\n arrowBg: toVar(\"--arrow-background\"),\n transformOrigin: toVar(\"--transform-origin\"),\n arrowOffset: toVar(\"--arrow-offset\")\n};\nvar getTransformOrigin = (arrow2) => ({\n top: \"bottom center\",\n \"top-start\": arrow2 ? `${arrow2.x}px bottom` : \"left bottom\",\n \"top-end\": arrow2 ? `${arrow2.x}px bottom` : \"right bottom\",\n bottom: \"top center\",\n \"bottom-start\": arrow2 ? `${arrow2.x}px top` : \"top left\",\n \"bottom-end\": arrow2 ? `${arrow2.x}px top` : \"top right\",\n left: \"right center\",\n \"left-start\": arrow2 ? `right ${arrow2.y}px` : \"right top\",\n \"left-end\": arrow2 ? `right ${arrow2.y}px` : \"right bottom\",\n right: \"left center\",\n \"right-start\": arrow2 ? `left ${arrow2.y}px` : \"left top\",\n \"right-end\": arrow2 ? `left ${arrow2.y}px` : \"left bottom\"\n});\nvar transformOriginMiddleware = {\n name: \"transformOrigin\",\n fn({ placement, elements, middlewareData }) {\n const { arrow: arrow2 } = middlewareData;\n const transformOrigin = getTransformOrigin(arrow2)[placement];\n const { floating } = elements;\n floating.style.setProperty(cssVars.transformOrigin.variable, transformOrigin);\n return {\n data: { transformOrigin }\n };\n }\n};\nvar rectMiddleware = {\n name: \"rects\",\n fn({ rects }) {\n return {\n data: rects\n };\n }\n};\nvar shiftArrowMiddleware = (arrowEl) => {\n if (!arrowEl) return;\n return {\n name: \"shiftArrow\",\n fn({ placement, middlewareData }) {\n if (!middlewareData.arrow) return {};\n const { x, y } = middlewareData.arrow;\n const dir = placement.split(\"-\")[0];\n Object.assign(arrowEl.style, {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n [dir]: `calc(100% + ${cssVars.arrowOffset.reference})`\n });\n return {};\n }\n };\n};\n\n// src/placement.ts\nfunction isValidPlacement(v) {\n return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(v);\n}\nfunction getPlacementDetails(placement) {\n const [side, align] = placement.split(\"-\");\n return { side, align, hasAlign: align != null };\n}\nfunction getPlacementSide(placement) {\n return placement.split(\"-\")[0];\n}\n\n// src/get-placement.ts\nvar defaultOptions = {\n strategy: \"absolute\",\n placement: \"bottom\",\n listeners: true,\n gutter: 8,\n flip: true,\n slide: true,\n overlap: false,\n sameWidth: false,\n fitViewport: false,\n overflowPadding: 8,\n arrowPadding: 4\n};\nfunction roundByDpr(win, value) {\n const dpr = win.devicePixelRatio || 1;\n return Math.round(value * dpr) / dpr;\n}\nfunction getBoundaryMiddleware(opts) {\n return runIfFn(opts.boundary);\n}\nfunction getArrowMiddleware(arrowElement, opts) {\n if (!arrowElement) return;\n return arrow({\n element: arrowElement,\n padding: opts.arrowPadding\n });\n}\nfunction getOffsetMiddleware(arrowElement, opts) {\n if (isNull(opts.offset ?? opts.gutter)) return;\n return offset(({ placement }) => {\n const arrowOffset = (arrowElement?.clientHeight || 0) / 2;\n const gutter = opts.offset?.mainAxis ?? opts.gutter;\n const mainAxis = typeof gutter === \"number\" ? gutter + arrowOffset : gutter ?? arrowOffset;\n const { hasAlign } = getPlacementDetails(placement);\n const shift2 = !hasAlign ? opts.shift : void 0;\n const crossAxis = opts.offset?.crossAxis ?? shift2;\n return compact({\n crossAxis,\n mainAxis,\n alignmentAxis: opts.shift\n });\n });\n}\nfunction getFlipMiddleware(opts) {\n if (!opts.flip) return;\n return flip({\n boundary: getBoundaryMiddleware(opts),\n padding: opts.overflowPadding,\n fallbackPlacements: opts.flip === true ? void 0 : opts.flip\n });\n}\nfunction getShiftMiddleware(opts) {\n if (!opts.slide && !opts.overlap) return;\n return shift({\n boundary: getBoundaryMiddleware(opts),\n mainAxis: opts.slide,\n crossAxis: opts.overlap,\n padding: opts.overflowPadding,\n limiter: limitShift()\n });\n}\nfunction getSizeMiddleware(opts) {\n return size({\n padding: opts.overflowPadding,\n apply({ elements, rects, availableHeight, availableWidth }) {\n const floating = elements.floating;\n const referenceWidth = Math.round(rects.reference.width);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n floating.style.setProperty(\"--reference-width\", `${referenceWidth}px`);\n floating.style.setProperty(\"--available-width\", `${availableWidth}px`);\n floating.style.setProperty(\"--available-height\", `${availableHeight}px`);\n }\n });\n}\nfunction hideWhenDetachedMiddleware(opts) {\n if (!opts.hideWhenDetached) return;\n return hide({ strategy: \"referenceHidden\", boundary: opts.boundary?.() ?? \"clippingAncestors\" });\n}\nfunction getAutoUpdateOptions(opts) {\n if (!opts) return {};\n if (opts === true) {\n return { ancestorResize: true, ancestorScroll: true, elementResize: true, layoutShift: true };\n }\n return opts;\n}\nfunction getPlacementImpl(referenceOrVirtual, floating, opts = {}) {\n const reference = getAnchorElement(referenceOrVirtual, opts.getAnchorRect);\n if (!floating || !reference) return;\n const options = Object.assign({}, defaultOptions, opts);\n const arrowEl = floating.querySelector(\"[data-part=arrow]\");\n const middleware = [\n getOffsetMiddleware(arrowEl, options),\n getFlipMiddleware(options),\n getShiftMiddleware(options),\n getArrowMiddleware(arrowEl, options),\n shiftArrowMiddleware(arrowEl),\n transformOriginMiddleware,\n getSizeMiddleware(options),\n hideWhenDetachedMiddleware(options),\n rectMiddleware\n ];\n const { placement, strategy, onComplete, onPositioned } = options;\n const updatePosition = async () => {\n if (!reference || !floating) return;\n const pos = await computePosition(reference, floating, {\n placement,\n middleware,\n strategy\n });\n onComplete?.(pos);\n onPositioned?.({ placed: true });\n const win = getWindow(floating);\n const x = roundByDpr(win, pos.x);\n const y = roundByDpr(win, pos.y);\n floating.style.setProperty(\"--x\", `${x}px`);\n floating.style.setProperty(\"--y\", `${y}px`);\n if (options.hideWhenDetached) {\n const isHidden = pos.middlewareData.hide?.referenceHidden;\n if (isHidden) {\n floating.style.setProperty(\"visibility\", \"hidden\");\n floating.style.setProperty(\"pointer-events\", \"none\");\n } else {\n floating.style.removeProperty(\"visibility\");\n floating.style.removeProperty(\"pointer-events\");\n }\n }\n const contentEl = floating.firstElementChild;\n if (contentEl) {\n const styles = getComputedStyle(contentEl);\n floating.style.setProperty(\"--z-index\", styles.zIndex);\n }\n };\n const update = async () => {\n if (opts.updatePosition) {\n await opts.updatePosition({ updatePosition });\n onPositioned?.({ placed: true });\n } else {\n await updatePosition();\n }\n };\n const autoUpdateOptions = getAutoUpdateOptions(options.listeners);\n const cancelAutoUpdate = options.listeners ? autoUpdate(reference, floating, update, autoUpdateOptions) : noop;\n update();\n return () => {\n cancelAutoUpdate?.();\n onPositioned?.({ placed: false });\n };\n}\nfunction getPlacement(referenceOrFn, floatingOrFn, opts = {}) {\n const { defer, ...options } = opts;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const reference = typeof referenceOrFn === \"function\" ? referenceOrFn() : referenceOrFn;\n const floating = typeof floatingOrFn === \"function\" ? floatingOrFn() : floatingOrFn;\n cleanups.push(getPlacementImpl(reference, floating, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/get-styles.ts\nvar ARROW_FLOATING_STYLE = {\n bottom: \"rotate(45deg)\",\n left: \"rotate(135deg)\",\n top: \"rotate(225deg)\",\n right: \"rotate(315deg)\"\n};\nfunction getPlacementStyles(options = {}) {\n const { placement, sameWidth, fitViewport, strategy = \"absolute\" } = options;\n return {\n arrow: {\n position: \"absolute\",\n width: cssVars.arrowSize.reference,\n height: cssVars.arrowSize.reference,\n [cssVars.arrowSizeHalf.variable]: `calc(${cssVars.arrowSize.reference} / 2)`,\n [cssVars.arrowOffset.variable]: `calc(${cssVars.arrowSizeHalf.reference} * -1)`\n },\n arrowTip: {\n // @ts-expect-error - Fix this\n transform: placement ? ARROW_FLOATING_STYLE[placement.split(\"-\")[0]] : void 0,\n background: cssVars.arrowBg.reference,\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: \"inherit\"\n },\n floating: {\n position: strategy,\n isolation: \"isolate\",\n minWidth: sameWidth ? void 0 : \"max-content\",\n width: sameWidth ? \"var(--reference-width)\" : void 0,\n maxWidth: fitViewport ? \"var(--available-width)\" : void 0,\n maxHeight: fitViewport ? \"var(--available-height)\" : void 0,\n pointerEvents: !placement ? \"none\" : void 0,\n top: \"0px\",\n left: \"0px\",\n // move off-screen if placement is not defined\n transform: placement ? \"translate3d(var(--x), var(--y), 0)\" : \"translate3d(0, -100vh, 0)\",\n zIndex: \"var(--z-index)\"\n }\n };\n}\n\nexport { getPlacement, getPlacementSide, getPlacementStyles, isValidPlacement };\n","/* eslint @typescript-eslint/no-explicit-any: off */\n// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst TARGET_CACHE_PROPERTY = 't';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n// function to create a new bare proxy\nlet newProxy = (target, handler) => new Proxy(target, handler);\n// get object prototype\nconst getProto = Object.getPrototypeOf;\nconst objectsToTrack = new WeakMap();\n// check if obj is a plain object or an array\nconst isObjectToTrack = (obj) => obj &&\n (objectsToTrack.has(obj)\n ? objectsToTrack.get(obj)\n : getProto(obj) === Object.prototype || getProto(obj) === Array.prototype);\n// check if it is object\nconst isObject = (x) => typeof x === 'object' && x !== null;\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj) => Object.values(Object.getOwnPropertyDescriptors(obj)).some((descriptor) => !descriptor.configurable && !descriptor.writable);\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = (obj) => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj);\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => {\n desc.configurable = true;\n });\n return Object.create(getProto(obj), descriptors);\n};\nconst createProxyHandler = (origObj, isTargetCopied) => {\n const state = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (type, key) => {\n if (!trackObject) {\n let used = state[AFFECTED_PROPERTY].get(origObj);\n if (!used) {\n used = {};\n state[AFFECTED_PROPERTY].set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n }\n else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n state[AFFECTED_PROPERTY].delete(origObj);\n };\n const handler = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(Reflect.get(target, key), state[AFFECTED_PROPERTY], state[PROXY_CACHE_PROPERTY], state[TARGET_CACHE_PROPERTY]);\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state];\n};\nconst getOriginalObject = (obj) => \n// unwrap proxy\nobj[GET_ORIGINAL_SYMBOL] ||\n // otherwise\n obj;\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap<object, unknown>} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap<object, unknown>} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy<object>} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = (obj, affected, proxyCache, targetCache) => {\n if (!isObjectToTrack(obj))\n return obj;\n let targetAndCopied = targetCache && targetCache.get(obj);\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n }\n else {\n targetAndCopied = [target];\n }\n targetCache === null || targetCache === void 0 ? void 0 : targetCache.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = proxyCache && proxyCache.get(target);\n if (!handlerAndState ||\n handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget) {\n handlerAndState = createProxyHandler(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(copiedTarget || target, handlerAndState[0]);\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache;\n handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache;\n return handlerAndState[1][PROXY_PROPERTY];\n};\nconst isAllOwnKeysChanged = (prevObj, nextObj) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return (prevKeys.length !== nextKeys.length ||\n prevKeys.some((k, i) => k !== nextKeys[i]));\n};\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap<object, unknown>} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap<object, unknown>} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\nexport const isChanged = (prevObj, nextObj, affected, cache, // for object with cycles\nisEqual = Object.is) => {\n if (isEqual(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj))\n return true;\n const used = affected.get(getOriginalObject(prevObj));\n if (!used)\n return true;\n if (cache) {\n const hit = cache.get(prevObj);\n if (hit === nextObj) {\n return false;\n }\n // for object with cycles\n cache.set(prevObj, nextObj);\n }\n let changed = null;\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed)\n return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed)\n return changed;\n }\n else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed)\n return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(prevObj[key], nextObj[key], affected, cache, isEqual);\n if (changed)\n return changed;\n }\n if (changed === null)\n throw new Error('invalid used');\n return changed;\n};\n// explicitly track object with memo\nexport const trackMemo = (obj) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy<object>} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = (obj) => {\n if (isObjectToTrack(obj)) {\n return obj[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (obj, affected, onlyWithValues) => {\n const list = [];\n const seen = new WeakSet();\n const walk = (x, path) => {\n var _a, _b, _c;\n if (seen.has(x)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && affected.get(getOriginalObject(x));\n if (used) {\n (_a = used[HAS_KEY_PROPERTY]) === null || _a === void 0 ? void 0 : _a.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n }\n else {\n (_b = used[HAS_OWN_KEY_PROPERTY]) === null || _b === void 0 ? void 0 : _b.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n (_c = used[KEYS_PROPERTY]) === null || _c === void 0 ? void 0 : _c.forEach((key) => {\n if (!onlyWithValues ||\n 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk(x[key], path ? [...path, key] : [key]);\n }\n });\n }\n else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn) => {\n newProxy = fn;\n};\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\n// src/global.ts\nfunction glob() {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n}\nfunction globalRef(key, value) {\n const g = glob();\n if (!g) return value();\n g[key] || (g[key] = value());\n return g[key];\n}\nvar refSet = globalRef(\"__zag__refSet\", () => /* @__PURE__ */ new WeakSet());\n\n// src/utils.ts\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 isDOMElement = (x) => typeof x === \"object\" && x !== null && \"nodeType\" in x && typeof x.nodeName === \"string\";\nvar isElement = (x) => isReactElement(x) || isVueElement(x) || isDOMElement(x);\nvar isObject = (x) => x !== null && typeof x === \"object\";\nvar canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !isElement(x) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer) && !(x instanceof Promise);\nvar isDev = () => process.env.NODE_ENV !== \"production\";\n\n// src/clone.ts\nfunction set(obj, key, val) {\n if (typeof val.value === \"object\" && !canProxy(val.value)) val.value = clone(val.value);\n if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === \"__proto__\") {\n Object.defineProperty(obj, key, val);\n } else obj[key] = val.value;\n}\nfunction clone(x) {\n if (typeof x !== \"object\") return x;\n var i = 0, k, list, tmp, str = Object.prototype.toString.call(x);\n if (str === \"[object Object]\") {\n tmp = Object.create(Object.getPrototypeOf(x) || null);\n } else if (str === \"[object Array]\") {\n tmp = Array(x.length);\n } else if (str === \"[object Set]\") {\n tmp = /* @__PURE__ */ new Set();\n x.forEach(function(val) {\n tmp.add(clone(val));\n });\n } else if (str === \"[object Map]\") {\n tmp = /* @__PURE__ */ new Map();\n x.forEach(function(val, key) {\n tmp.set(clone(key), clone(val));\n });\n } else if (str === \"[object Date]\") {\n tmp = /* @__PURE__ */ new Date(+x);\n } else if (str === \"[object RegExp]\") {\n tmp = new RegExp(x.source, x.flags);\n } else if (str === \"[object DataView]\") {\n tmp = new x.constructor(clone(x.buffer));\n } else if (str === \"[object ArrayBuffer]\") {\n tmp = x.slice(0);\n } else if (str === \"[object Blob]\") {\n tmp = x.slice();\n } else if (str.slice(-6) === \"Array]\") {\n tmp = new x.constructor(x);\n }\n if (tmp) {\n for (list = Object.getOwnPropertySymbols(x); i < list.length; i++) {\n set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n }\n for (i = 0, list = Object.getOwnPropertyNames(x); i < list.length; i++) {\n if (Object.hasOwnProperty.call(tmp, k = list[i]) && tmp[k] === x[k]) continue;\n set(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n }\n }\n return tmp || x;\n}\nvar proxyStateMap = globalRef(\"__zag__proxyStateMap\", () => /* @__PURE__ */ new WeakMap());\nvar buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version) => {\n const cache = snapCache.get(target);\n if (cache?.[0] === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n const value = Reflect.get(target, key);\n if (refSet.has(value)) {\n markToTrack(value, false);\n snap[key] = value;\n } else if (proxyStateMap.has(value)) {\n snap[key] = snapshot(value);\n } else {\n snap[key] = value;\n }\n });\n return Object.freeze(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction2 = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if (isDev() && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n entry[1]?.();\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if (isDev() && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (Object.getOwnPropertyDescriptor(target, prop)?.set) ; else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxy(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [baseObject, ensureVersion, createSnapshot, addListener];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(initialObject, key);\n if (desc.get || desc.set) {\n Object.defineProperty(baseObject, key, desc);\n } else {\n proxyObject[key] = initialObject[key];\n }\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction2,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nvar [proxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return proxyFunction(initialObject);\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if (isDev() && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n if (isDev() && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion());\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\n\n// src/proxy-computed.ts\nfunction proxyWithComputed(initialObject, computedFns) {\n const keys = Object.keys(computedFns);\n keys.forEach((key) => {\n if (Object.getOwnPropertyDescriptor(initialObject, key)) {\n throw new Error(\"object property already defined\");\n }\n const computedFn = computedFns[key];\n const { get, set: set2 } = typeof computedFn === \"function\" ? { get: computedFn } : computedFn;\n const desc = {};\n desc.get = () => get(snapshot(proxyObject));\n if (set2) {\n desc.set = (newValue) => set2(proxyObject, newValue);\n }\n Object.defineProperty(initialObject, key, desc);\n });\n const proxyObject = proxy(initialObject);\n return proxyObject;\n}\n\nexport { clone, globalRef, proxy, proxyWithComputed, ref, snapshot, subscribe };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { addDomEvent, getOverflowAncestors, isComposingEvent, dataAttr } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { proxy, subscribe } from '@zag-js/store';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/tooltip.anatomy.ts\nvar anatomy = createAnatomy(\"tooltip\").parts(\"trigger\", \"arrow\", \"arrowTip\", \"positioner\", \"content\");\nvar parts = anatomy.build();\n\n// src/tooltip.dom.ts\nvar getTriggerId = (scope) => scope.ids?.trigger ?? `tooltip:${scope.id}:trigger`;\nvar getContentId = (scope) => scope.ids?.content ?? `tooltip:${scope.id}:content`;\nvar getArrowId = (scope) => scope.ids?.arrow ?? `tooltip:${scope.id}:arrow`;\nvar getPositionerId = (scope) => scope.ids?.positioner ?? `tooltip:${scope.id}:popper`;\nvar getTriggerEl = (scope) => scope.getById(getTriggerId(scope));\nvar getPositionerEl = (scope) => scope.getById(getPositionerId(scope));\nvar store = proxy({ id: null });\n\n// src/tooltip.connect.ts\nfunction connect(service, normalize) {\n const { state, context, send, scope, prop, event: _event } = service;\n const id = prop(\"id\");\n const hasAriaLabel = !!prop(\"aria-label\");\n const open = state.matches(\"open\", \"closing\");\n const triggerId = getTriggerId(scope);\n const contentId = getContentId(scope);\n const disabled = prop(\"disabled\");\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: context.get(\"currentPlacement\")\n });\n return {\n open,\n setOpen(nextOpen) {\n const open2 = state.matches(\"open\", \"closing\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"open\" : \"close\" });\n },\n reposition(options = {}) {\n send({ type: \"positioning.set\", options });\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n id: triggerId,\n dir: prop(\"dir\"),\n \"data-expanded\": dataAttr(open),\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-describedby\": open ? contentId : void 0,\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (!prop(\"closeOnClick\")) return;\n send({ type: \"close\", src: \"trigger.click\" });\n },\n onFocus(event) {\n queueMicrotask(() => {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (_event.src === \"trigger.pointerdown\") return;\n if (!isFocusVisible()) return;\n send({ type: \"open\", src: \"trigger.focus\" });\n });\n },\n onBlur(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (id === store.id) {\n send({ type: \"close\", src: \"trigger.blur\" });\n }\n },\n onPointerDown(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (!prop(\"closeOnPointerDown\")) return;\n if (id === store.id) {\n send({ type: \"close\", src: \"trigger.pointerdown\" });\n }\n },\n onPointerMove(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (event.pointerType === \"touch\") return;\n send({ type: \"pointer.move\" });\n },\n onPointerLeave() {\n if (disabled) return;\n send({ type: \"pointer.leave\" });\n },\n onPointerCancel() {\n if (disabled) return;\n send({ type: \"pointer.leave\" });\n }\n });\n },\n getArrowProps() {\n return normalize.element({\n id: getArrowId(scope),\n ...parts.arrow.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrow\n });\n },\n getArrowTipProps() {\n return normalize.element({\n ...parts.arrowTip.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrowTip\n });\n },\n getPositionerProps() {\n return normalize.element({\n id: getPositionerId(scope),\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n hidden: !open,\n \"data-state\": open ? \"open\" : \"closed\",\n role: hasAriaLabel ? void 0 : \"tooltip\",\n id: hasAriaLabel ? void 0 : contentId,\n \"data-placement\": context.get(\"currentPlacement\"),\n onPointerEnter() {\n send({ type: \"content.pointer.move\" });\n },\n onPointerLeave() {\n send({ type: \"content.pointer.leave\" });\n },\n style: {\n pointerEvents: prop(\"interactive\") ? \"auto\" : \"none\"\n }\n });\n }\n };\n}\nvar { and, not } = createGuards();\nvar machine = createMachine({\n initialState: ({ prop }) => {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n props({ props: props2 }) {\n return {\n id: \"x\",\n openDelay: 1e3,\n closeDelay: 500,\n closeOnPointerDown: true,\n closeOnEscape: true,\n interactive: false,\n closeOnScroll: true,\n closeOnClick: true,\n disabled: false,\n ...props2,\n positioning: {\n placement: \"bottom\",\n ...props2.positioning\n }\n };\n },\n effects: [\"trackFocusVisible\", \"trackStore\"],\n context: ({ bindable }) => ({\n currentPlacement: bindable(() => ({ defaultValue: void 0 })),\n hasPointerMoveOpened: bindable(() => ({ defaultValue: false }))\n }),\n watch({ track, action, prop }) {\n track([() => prop(\"disabled\")], () => {\n action([\"closeIfDisabled\"]);\n });\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n states: {\n closed: {\n entry: [\"clearGlobalId\"],\n on: {\n \"controlled.open\": {\n target: \"open\"\n },\n open: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n \"pointer.leave\": {\n actions: [\"clearPointerMoveOpened\"]\n },\n \"pointer.move\": [\n {\n guard: and(\"noVisibleTooltip\", not(\"hasPointerMoveOpened\")),\n target: \"opening\"\n },\n {\n guard: not(\"hasPointerMoveOpened\"),\n target: \"open\",\n actions: [\"setPointerMoveOpened\", \"invokeOnOpen\"]\n }\n ]\n }\n },\n opening: {\n effects: [\"trackScroll\", \"trackPointerlockChange\", \"waitForOpenDelay\"],\n on: {\n \"after.openDelay\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"setPointerMoveOpened\", \"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setPointerMoveOpened\", \"invokeOnOpen\"]\n }\n ],\n \"controlled.open\": {\n target: \"open\"\n },\n \"controlled.close\": {\n target: \"closed\"\n },\n open: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n \"pointer.leave\": [\n {\n guard: \"isOpenControlled\",\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"clearPointerMoveOpened\", \"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n target: \"closed\",\n actions: [\"clearPointerMoveOpened\", \"invokeOnClose\"]\n }\n ],\n close: [\n {\n guard: \"isOpenControlled\",\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ]\n }\n },\n open: {\n effects: [\"trackEscapeKey\", \"trackScroll\", \"trackPointerlockChange\", \"trackPositioning\"],\n entry: [\"setGlobalId\"],\n on: {\n \"controlled.close\": {\n target: \"closed\"\n },\n close: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"pointer.leave\": [\n {\n guard: \"isVisible\",\n target: \"closing\",\n actions: [\"clearPointerMoveOpened\"]\n },\n // == group ==\n {\n guard: \"isOpenControlled\",\n actions: [\"clearPointerMoveOpened\", \"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"clearPointerMoveOpened\", \"invokeOnClose\"]\n }\n ],\n \"content.pointer.leave\": {\n guard: \"isInteractive\",\n target: \"closing\"\n },\n \"positioning.set\": {\n actions: [\"reposition\"]\n }\n }\n },\n closing: {\n effects: [\"trackPositioning\", \"waitForCloseDelay\"],\n on: {\n \"after.closeDelay\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"controlled.close\": {\n target: \"closed\"\n },\n \"controlled.open\": {\n target: \"open\"\n },\n close: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"pointer.move\": [\n {\n guard: \"isOpenControlled\",\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"setPointerMoveOpened\", \"invokeOnOpen\", \"toggleVisibility\"]\n },\n {\n target: \"open\",\n actions: [\"setPointerMoveOpened\", \"invokeOnOpen\"]\n }\n ],\n \"content.pointer.move\": {\n guard: \"isInteractive\",\n target: \"open\"\n },\n \"positioning.set\": {\n actions: [\"reposition\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n noVisibleTooltip: () => store.id === null,\n isVisible: ({ prop }) => prop(\"id\") === store.id,\n isInteractive: ({ prop }) => !!prop(\"interactive\"),\n hasPointerMoveOpened: ({ context }) => context.get(\"hasPointerMoveOpened\"),\n isOpenControlled: ({ prop }) => prop(\"open\") !== void 0\n },\n actions: {\n setGlobalId: ({ prop }) => {\n store.id = prop(\"id\");\n },\n clearGlobalId: ({ prop }) => {\n if (prop(\"id\") === store.id) {\n store.id = null;\n }\n },\n invokeOnOpen: ({ prop }) => {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose: ({ prop }) => {\n prop(\"onOpenChange\")?.({ open: false });\n },\n closeIfDisabled: ({ prop, send }) => {\n if (!prop(\"disabled\")) return;\n send({ type: \"close\", src: \"disabled.change\" });\n },\n reposition: ({ context, event, prop, scope }) => {\n if (event.type !== \"positioning.set\") return;\n const getPositionerEl2 = () => getPositionerEl(scope);\n return getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n toggleVisibility: ({ prop, event, send }) => {\n queueMicrotask(() => {\n send({\n type: prop(\"open\") ? \"controlled.open\" : \"controlled.close\",\n previousEvent: event\n });\n });\n },\n setPointerMoveOpened: ({ context }) => {\n context.set(\"hasPointerMoveOpened\", true);\n },\n clearPointerMoveOpened: ({ context }) => {\n context.set(\"hasPointerMoveOpened\", false);\n }\n },\n effects: {\n trackFocusVisible: ({ scope }) => {\n return trackFocusVisible({ root: scope.getRootNode?.() });\n },\n trackPositioning: ({ context, prop, scope }) => {\n if (!context.get(\"currentPlacement\")) {\n context.set(\"currentPlacement\", prop(\"positioning\").placement);\n }\n const getPositionerEl2 = () => getPositionerEl(scope);\n return getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...prop(\"positioning\"),\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n trackPointerlockChange: ({ send, scope }) => {\n const doc = scope.getDoc();\n const onChange = () => send({ type: \"close\", src: \"pointerlock:change\" });\n return addDomEvent(doc, \"pointerlockchange\", onChange, false);\n },\n trackScroll: ({ send, prop, scope }) => {\n if (!prop(\"closeOnScroll\")) return;\n const triggerEl = getTriggerEl(scope);\n if (!triggerEl) return;\n const overflowParents = getOverflowAncestors(triggerEl);\n const cleanups = overflowParents.map((overflowParent) => {\n const onScroll = () => {\n send({ type: \"close\", src: \"scroll\" });\n };\n return addDomEvent(overflowParent, \"scroll\", onScroll, {\n passive: true,\n capture: true\n });\n });\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n },\n trackStore: ({ prop, send }) => {\n let cleanup;\n queueMicrotask(() => {\n cleanup = subscribe(store, () => {\n if (store.id !== prop(\"id\")) {\n send({ type: \"close\", src: \"id.change\" });\n }\n });\n });\n return () => cleanup?.();\n },\n trackEscapeKey: ({ send, prop }) => {\n if (!prop(\"closeOnEscape\")) return;\n const onKeyDown = (event) => {\n if (isComposingEvent(event)) return;\n if (event.key !== \"Escape\") return;\n event.stopPropagation();\n send({ type: \"close\", src: \"keydown.escape\" });\n };\n return addDomEvent(document, \"keydown\", onKeyDown, true);\n },\n waitForOpenDelay: ({ send, prop }) => {\n const id = setTimeout(() => {\n send({ type: \"after.openDelay\" });\n }, prop(\"openDelay\"));\n return () => clearTimeout(id);\n },\n waitForCloseDelay: ({ send, prop }) => {\n const id = setTimeout(() => {\n send({ type: \"after.closeDelay\" });\n }, prop(\"closeDelay\"));\n return () => clearTimeout(id);\n }\n }\n }\n});\nvar props = createProps()([\n \"aria-label\",\n \"closeDelay\",\n \"closeOnEscape\",\n \"closeOnPointerDown\",\n \"closeOnScroll\",\n \"closeOnClick\",\n \"dir\",\n \"disabled\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"interactive\",\n \"onOpenChange\",\n \"defaultOpen\",\n \"open\",\n \"openDelay\",\n \"positioning\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [LocaleContextProvider, useLocaleContext] = createContext({\n name: \"LocaleContext\",\n hookName: \"useLocaleContext\",\n providerName: \"<LocaleProvider />\",\n strict: false,\n defaultValue: { dir: \"ltr\", locale: \"en-US\" }\n});\n\nexport { LocaleContextProvider, useLocaleContext };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tooltip from '@zag-js/tooltip';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTooltip = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(tooltip.machine, machineProps);\n return tooltip.connect(service, normalizeProps);\n};\n\nexport { useTooltip };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTooltip } from './use-tooltip.js';\nimport { TooltipProvider } from './use-tooltip-context.js';\n\nconst TooltipRoot = (props) => {\n const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);\n const tooltip = useTooltip(localProps);\n const presence = usePresence(mergeProps({ present: tooltip.open }, presenceProps));\n return /* @__PURE__ */ jsx(TooltipProvider, { value: tooltip, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { TooltipRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { TooltipProvider } from './use-tooltip-context.js';\n\nconst TooltipRootProvider = (props) => {\n const [presenceProps, { value: tooltip, children }] = splitPresenceProps(props);\n const presence = usePresence(mergeProps({ present: tooltip.open }, presenceProps));\n return /* @__PURE__ */ jsx(TooltipProvider, { value: tooltip, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { TooltipRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTooltipContext } from './use-tooltip-context.js';\n\nconst TooltipTrigger = forwardRef((props, ref) => {\n const tooltip = useTooltipContext();\n const mergedProps = mergeProps(tooltip.getTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTooltipTrigger.displayName = \"TooltipTrigger\";\n\nexport { TooltipTrigger };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [AvatarProvider, useAvatarContext] = createContext({\n name: \"AvatarContext\",\n hookName: \"useAvatarContext\",\n providerName: \"<AvatarProvider />\"\n});\n\nexport { AvatarProvider, useAvatarContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useAvatarContext } from './use-avatar-context.js';\n\nconst AvatarFallback = forwardRef((props, ref) => {\n const avatar = useAvatarContext();\n const mergedProps = mergeProps(avatar.getFallbackProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nAvatarFallback.displayName = \"AvatarFallback\";\n\nexport { AvatarFallback };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useAvatarContext } from './use-avatar-context.js';\n\nconst AvatarImage = forwardRef((props, ref) => {\n const avatar = useAvatarContext();\n const mergedProps = mergeProps(avatar.getImageProps(), props);\n return /* @__PURE__ */ jsx(ark.img, { ...mergedProps, ref });\n});\nAvatarImage.displayName = \"AvatarImage\";\n\nexport { AvatarImage };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { observeAttributes, observeChildren } from '@zag-js/dom-query';\nimport { createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/avatar.anatomy.ts\nvar anatomy = createAnatomy(\"avatar\").parts(\"root\", \"image\", \"fallback\");\nvar parts = anatomy.build();\n\n// src/avatar.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `avatar:${ctx.id}`;\nvar getImageId = (ctx) => ctx.ids?.image ?? `avatar:${ctx.id}:image`;\nvar getFallbackId = (ctx) => ctx.ids?.fallback ?? `avatar:${ctx.id}:fallback`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getImageEl = (ctx) => ctx.getById(getImageId(ctx));\n\n// src/avatar.connect.ts\nfunction connect(service, normalize) {\n const { state, send, prop, scope } = service;\n const loaded = state.matches(\"loaded\");\n return {\n loaded,\n setSrc(src) {\n const img = getImageEl(scope);\n img?.setAttribute(\"src\", src);\n },\n setLoaded() {\n send({ type: \"img.loaded\", src: \"api\" });\n },\n setError() {\n send({ type: \"img.error\", src: \"api\" });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope)\n });\n },\n getImageProps() {\n return normalize.img({\n ...parts.image.attrs,\n hidden: !loaded,\n dir: prop(\"dir\"),\n id: getImageId(scope),\n \"data-state\": loaded ? \"visible\" : \"hidden\",\n onLoad() {\n send({ type: \"img.loaded\", src: \"element\" });\n },\n onError() {\n send({ type: \"img.error\", src: \"element\" });\n }\n });\n },\n getFallbackProps() {\n return normalize.element({\n ...parts.fallback.attrs,\n dir: prop(\"dir\"),\n id: getFallbackId(scope),\n hidden: loaded,\n \"data-state\": loaded ? \"hidden\" : \"visible\"\n });\n }\n };\n}\nvar machine = createMachine({\n initialState() {\n return \"loading\";\n },\n effects: [\"trackImageRemoval\", \"trackSrcChange\"],\n on: {\n \"src.change\": {\n target: \"loading\"\n },\n \"img.unmount\": {\n target: \"error\"\n }\n },\n states: {\n loading: {\n entry: [\"checkImageStatus\"],\n on: {\n \"img.loaded\": {\n target: \"loaded\",\n actions: [\"invokeOnLoad\"]\n },\n \"img.error\": {\n target: \"error\",\n actions: [\"invokeOnError\"]\n }\n }\n },\n error: {\n on: {\n \"img.loaded\": {\n target: \"loaded\",\n actions: [\"invokeOnLoad\"]\n }\n }\n },\n loaded: {\n on: {\n \"img.error\": {\n target: \"error\",\n actions: [\"invokeOnError\"]\n }\n }\n }\n },\n implementations: {\n actions: {\n invokeOnLoad({ prop }) {\n prop(\"onStatusChange\")?.({ status: \"loaded\" });\n },\n invokeOnError({ prop }) {\n prop(\"onStatusChange\")?.({ status: \"error\" });\n },\n checkImageStatus({ send, scope }) {\n const imageEl = getImageEl(scope);\n if (!imageEl?.complete) return;\n const type = hasLoaded(imageEl) ? \"img.loaded\" : \"img.error\";\n send({ type, src: \"ssr\" });\n }\n },\n effects: {\n trackImageRemoval({ send, scope }) {\n const rootEl = getRootEl(scope);\n return observeChildren(rootEl, {\n callback(records) {\n const removedNodes = Array.from(records[0].removedNodes);\n const removed = removedNodes.find(\n (node) => node.nodeType === Node.ELEMENT_NODE && node.matches(\"[data-scope=avatar][data-part=image]\")\n );\n if (removed) {\n send({ type: \"img.unmount\" });\n }\n }\n });\n },\n trackSrcChange({ send, scope }) {\n const imageEl = getImageEl(scope);\n return observeAttributes(imageEl, {\n attributes: [\"src\", \"srcset\"],\n callback() {\n send({ type: \"src.change\" });\n }\n });\n }\n }\n }\n});\nfunction hasLoaded(image) {\n return image.complete && image.naturalWidth !== 0 && image.naturalHeight !== 0;\n}\nvar props = createProps()([\"dir\", \"id\", \"ids\", \"onStatusChange\", \"getRootNode\"]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport * as avatar from '@zag-js/avatar';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useAvatar = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const context = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(avatar.machine, context);\n return avatar.connect(service, normalizeProps);\n};\n\nexport { useAvatar };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useAvatar } from './use-avatar.js';\nimport { AvatarProvider } from './use-avatar-context.js';\n\nconst AvatarRoot = forwardRef((props, ref) => {\n const [useAvatarProps, localProps] = createSplitProps()(props, [\"id\", \"ids\", \"onStatusChange\"]);\n const avatar = useAvatar(useAvatarProps);\n const mergedProps = mergeProps(avatar.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(AvatarProvider, { value: avatar, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nAvatarRoot.displayName = \"AvatarRoot\";\n\nexport { AvatarRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { AvatarProvider } from './use-avatar-context.js';\n\nconst AvatarRootProvider = forwardRef((props, ref) => {\n const [{ value: avatar }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(avatar.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(AvatarProvider, { value: avatar, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nAvatarRootProvider.displayName = \"AvatarRootProvider\";\n\nexport { AvatarRootProvider };\n","// src/index.ts\nvar userGeneratedStr = \"\";\nvar userGenerated = userGeneratedStr.split(\",\");\nvar cssPropertiesStr = \"WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationRange,animationRangeEnd,animationRangeStart,animationTimingFunction,animationTimeline,appearance,aspectRatio,azimuth,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockSize,border,borderBlock,borderBlockColor,borderBlockStyle,borderBlockWidth,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineEnd,borderInlineColor,borderInlineStyle,borderInlineWidth,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,color,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicSize,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,direction,display,emptyCells,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontVariationSettings,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontSynthesisPosition,fontSynthesisSmallCaps,fontSynthesisStyle,fontSynthesisWeight,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inputSecurity,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overlay,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,printColorAdjust,quotes,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,scale,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockStart,scrollMarginBlockEnd,scrollMarginBottom,scrollMarginInline,scrollMarginInlineStart,scrollMarginInlineEnd,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineStart,scrollPaddingInlineEnd,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,shapeImageThreshold,shapeMargin,shapeOutside,tabSize,tableLayout,textAlign,textAlignLast,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textTransform,textUnderlineOffset,textUnderlinePosition,textWrap,timelineScope,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionBehavior,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,verticalAlign,viewTimeline,viewTimelineAxis,viewTimelineInset,viewTimelineName,viewTransitionName,visibility,whiteSpace,whiteSpaceCollapse,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,zIndex,zoom,alignmentBaseline,baselineShift,clipRule,colorInterpolation,colorRendering,dominantBaseline,fill,fillOpacity,fillRule,floodColor,floodOpacity,glyphOrientationVertical,lightingColor,marker,markerEnd,markerMid,markerStart,shapeRendering,stopColor,stopOpacity,stroke,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,strokeWidth,textAnchor,vectorEffect\";\nvar allCssProperties = cssPropertiesStr.split(\",\").concat(userGenerated);\nvar properties = new Map(allCssProperties.map((prop) => [prop, true]));\nfunction memo(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (arg) => {\n if (cache[arg] === void 0)\n cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nvar cssPropertySelectorRegex = /&|@/;\nvar isCssProperty = /* @__PURE__ */ memo((prop) => {\n return properties.has(prop) || prop.startsWith(\"--\") || cssPropertySelectorRegex.test(prop);\n});\nexport {\n allCssProperties,\n isCssProperty\n};\n","module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuProvider, useMenuContext] = createContext({\n name: \"MenuContext\",\n hookName: \"useMenuContext\",\n providerName: \"<MenuProvider />\",\n strict: false\n});\n\nexport { MenuProvider, useMenuContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrow = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrow.displayName = \"MenuArrow\";\n\nexport { MenuArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrowTip = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrowTip.displayName = \"MenuArrowTip\";\n\nexport { MenuArrowTip };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemProvider, useMenuItemContext] = createContext({\n name: \"MenuItemContext\",\n hookName: \"useMenuItemContext\",\n providerName: \"<MenuItemProvider />\"\n});\n\nexport { MenuItemProvider, useMenuItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuOptionItemPropsProvider, useMenuOptionItemPropsContext] = createContext({\n name: \"MenuOptionItemPropsContext\",\n hookName: \"useMenuOptionItemPropsContext\",\n providerName: \"<MenuOptionItemPropsProvider />\"\n});\n\nexport { MenuOptionItemPropsProvider, useMenuOptionItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuOptionItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuCheckboxItem = forwardRef((props, ref) => {\n const [partialOptionItemProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"closeOnSelect\",\n \"disabled\",\n \"onCheckedChange\",\n \"value\",\n \"valueText\"\n ]);\n const optionItemProps = {\n ...partialOptionItemProps,\n type: \"checkbox\"\n };\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuOptionItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport { MenuCheckboxItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContent = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(menu.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nMenuContent.displayName = \"MenuContent\";\n\nexport { MenuContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContextTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getContextTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuContextTrigger.displayName = \"MenuContextTrigger\";\n\nexport { MenuContextTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuIndicator.displayName = \"MenuIndicator\";\n\nexport { MenuIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useEffect } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\n\nconst MenuItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\",\n \"onSelect\"\n ]);\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getItemProps(itemProps), localProps);\n const itemState = menu.getItemState(itemProps);\n useEffect(() => {\n return menu.addItemListener({ id: itemState.id, onSelect: itemProps.onSelect });\n }, [itemState.id, itemProps.onSelect]);\n return /* @__PURE__ */ jsx(MenuItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuItem.displayName = \"MenuItem\";\n\nexport { MenuItem };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemGroupProvider, useMenuItemGroupContext] = createContext({\n name: \"MenuItemGroupContext\",\n hookName: \"useMenuItemGroupContext\",\n providerName: \"<MenuItemGroupProvider />\"\n});\n\nexport { MenuItemGroupProvider, useMenuItemGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\"id\"]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps(itemGroupProps), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuItemGroup.displayName = \"MenuItemGroup\";\n\nexport { MenuItemGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\n\nconst MenuItemGroupLabel = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const mergedProps = mergeProps(menu.getItemGroupLabelProps({ htmlFor: itemGroup.id }), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemGroupLabel.displayName = \"MenuItemGroupLabel\";\n\nexport { MenuItemGroupLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuOptionItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const optionItemProps = useMenuOptionItemPropsContext();\n const mergedProps = mergeProps(menu.getItemIndicatorProps(optionItemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemIndicator.displayName = \"MenuItemIndicator\";\n\nexport { MenuItemIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuOptionItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemText = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const optionItemProps = useMenuOptionItemPropsContext();\n const mergedProps = mergeProps(menu.getItemTextProps(optionItemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemText.displayName = \"MenuItemText\";\n\nexport { MenuItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuPositioner = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuPositioner.displayName = \"MenuPositioner\";\n\nexport { MenuPositioner };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\nimport { MenuOptionItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuRadioItem = forwardRef((props, ref) => {\n const [partialItemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\"\n ]);\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const optionItemProps = {\n ...partialItemProps,\n checked: itemGroup.value === partialItemProps.value,\n type: \"radio\",\n onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })\n };\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuOptionItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuRadioItem.displayName = \"MenuRadioItem\";\n\nexport { MenuRadioItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuRadioItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\n \"id\",\n \"onValueChange\",\n \"value\"\n ]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps({ id: itemGroupProps.id }), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuRadioItemGroup.displayName = \"MenuRadioItemGroup\";\n\nexport { MenuRadioItemGroup };\n","'use client';\nimport { useRef, useEffect } from 'react';\n\nconst useEffectOnce = (cb) => {\n const savedCallback = useRef(cb);\n const effectGuard = useRef(false);\n useEffect(() => {\n savedCallback.current = cb;\n });\n useEffect(() => {\n if (effectGuard.current !== true) {\n effectGuard.current = true;\n savedCallback.current();\n }\n }, []);\n};\n\nexport { useEffectOnce };\n","import { raf, getDocument, getWindow, isShadowRoot, addDomEvent, isTouchDevice, getEventTarget, isFocusable, isContextMenuEvent, isHTMLElement, contains, getNearestOverflowAncestor } from '@zag-js/dom-query';\nimport { callAll } from '@zag-js/utils';\n\n// src/index.ts\n\n// src/frame-utils.ts\nfunction getWindowFrames(win) {\n const frames = {\n each(cb) {\n for (let i = 0; i < win.frames?.length; i += 1) {\n const frame = win.frames[i];\n if (frame) cb(frame);\n }\n },\n addEventListener(event, listener, options) {\n frames.each((frame) => {\n try {\n frame.document.addEventListener(event, listener, options);\n } catch {\n }\n });\n return () => {\n try {\n frames.removeEventListener(event, listener, options);\n } catch {\n }\n };\n },\n removeEventListener(event, listener, options) {\n frames.each((frame) => {\n try {\n frame.document.removeEventListener(event, listener, options);\n } catch {\n }\n });\n }\n };\n return frames;\n}\nfunction getParentWindow(win) {\n const parent = win.frameElement != null ? win.parent : null;\n return {\n addEventListener: (event, listener, options) => {\n try {\n parent?.addEventListener(event, listener, options);\n } catch {\n }\n return () => {\n try {\n parent?.removeEventListener(event, listener, options);\n } catch {\n }\n };\n },\n removeEventListener: (event, listener, options) => {\n try {\n parent?.removeEventListener(event, listener, options);\n } catch {\n }\n }\n };\n}\n\n// src/index.ts\nvar POINTER_OUTSIDE_EVENT = \"pointerdown.outside\";\nvar FOCUS_OUTSIDE_EVENT = \"focus.outside\";\nfunction isComposedPathFocusable(composedPath) {\n for (const node of composedPath) {\n if (isHTMLElement(node) && isFocusable(node)) return true;\n }\n return false;\n}\nvar isPointerEvent = (event) => \"clientY\" in event;\nfunction isEventPointWithin(node, event) {\n if (!isPointerEvent(event) || !node) return false;\n const rect = node.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return false;\n return rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;\n}\nfunction isPointInRect(rect, point) {\n return rect.y <= point.y && point.y <= rect.y + rect.height && rect.x <= point.x && point.x <= rect.x + rect.width;\n}\nfunction isEventWithinScrollbar(event, ancestor) {\n if (!ancestor || !isPointerEvent(event)) return false;\n const isScrollableY = ancestor.scrollHeight > ancestor.clientHeight;\n const onScrollbarY = isScrollableY && event.clientX > ancestor.offsetLeft + ancestor.clientWidth;\n const isScrollableX = ancestor.scrollWidth > ancestor.clientWidth;\n const onScrollbarX = isScrollableX && event.clientY > ancestor.offsetTop + ancestor.clientHeight;\n const rect = {\n x: ancestor.offsetLeft,\n y: ancestor.offsetTop,\n width: ancestor.clientWidth + (isScrollableY ? 16 : 0),\n height: ancestor.clientHeight + (isScrollableX ? 16 : 0)\n };\n const point = {\n x: event.clientX,\n y: event.clientY\n };\n if (!isPointInRect(rect, point)) return false;\n return onScrollbarY || onScrollbarX;\n}\nfunction trackInteractOutsideImpl(node, options) {\n const { exclude, onFocusOutside, onPointerDownOutside, onInteractOutside, defer } = options;\n if (!node) return;\n const doc = getDocument(node);\n const win = getWindow(node);\n const frames = getWindowFrames(win);\n const parentWin = getParentWindow(win);\n function isEventOutside(event, target) {\n if (!isHTMLElement(target)) return false;\n if (!target.isConnected) return false;\n if (contains(node, target)) return false;\n if (isEventPointWithin(node, event)) return false;\n const triggerEl = doc.querySelector(`[aria-controls=\"${node.id}\"]`);\n if (triggerEl) {\n const triggerAncestor = getNearestOverflowAncestor(triggerEl);\n if (isEventWithinScrollbar(event, triggerAncestor)) return false;\n }\n const nodeAncestor = getNearestOverflowAncestor(node);\n if (isEventWithinScrollbar(event, nodeAncestor)) return false;\n return !exclude?.(target);\n }\n const pointerdownCleanups = /* @__PURE__ */ new Set();\n const isInShadowRoot = isShadowRoot(node?.getRootNode());\n function onPointerDown(event) {\n function handler(clickEvent) {\n const func = defer && !isTouchDevice() ? raf : (v) => v();\n const evt = clickEvent ?? event;\n const composedPath = evt?.composedPath?.() ?? [evt?.target];\n func(() => {\n const target = isInShadowRoot ? composedPath[0] : getEventTarget(event);\n if (!node || !isEventOutside(event, target)) return;\n if (onPointerDownOutside || onInteractOutside) {\n const handler2 = callAll(onPointerDownOutside, onInteractOutside);\n node.addEventListener(POINTER_OUTSIDE_EVENT, handler2, { once: true });\n }\n fireCustomEvent(node, POINTER_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: evt,\n contextmenu: isContextMenuEvent(evt),\n focusable: isComposedPathFocusable(composedPath),\n target\n }\n });\n });\n }\n if (event.pointerType === \"touch\") {\n pointerdownCleanups.forEach((fn) => fn());\n pointerdownCleanups.add(addDomEvent(doc, \"click\", handler, { once: true }));\n pointerdownCleanups.add(parentWin.addEventListener(\"click\", handler, { once: true }));\n pointerdownCleanups.add(frames.addEventListener(\"click\", handler, { once: true }));\n } else {\n handler();\n }\n }\n const cleanups = /* @__PURE__ */ new Set();\n const timer = setTimeout(() => {\n cleanups.add(addDomEvent(doc, \"pointerdown\", onPointerDown, true));\n cleanups.add(parentWin.addEventListener(\"pointerdown\", onPointerDown, true));\n cleanups.add(frames.addEventListener(\"pointerdown\", onPointerDown, true));\n }, 0);\n function onFocusin(event) {\n const func = defer ? raf : (v) => v();\n func(() => {\n const target = getEventTarget(event);\n if (!node || !isEventOutside(event, target)) return;\n if (onFocusOutside || onInteractOutside) {\n const handler = callAll(onFocusOutside, onInteractOutside);\n node.addEventListener(FOCUS_OUTSIDE_EVENT, handler, { once: true });\n }\n fireCustomEvent(node, FOCUS_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: event,\n contextmenu: false,\n focusable: isFocusable(target),\n target\n }\n });\n });\n }\n if (!isTouchDevice()) {\n cleanups.add(addDomEvent(doc, \"focusin\", onFocusin, true));\n cleanups.add(parentWin.addEventListener(\"focusin\", onFocusin, true));\n cleanups.add(frames.addEventListener(\"focusin\", onFocusin, true));\n }\n return () => {\n clearTimeout(timer);\n pointerdownCleanups.forEach((fn) => fn());\n cleanups.forEach((fn) => fn());\n };\n}\nfunction trackInteractOutside(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(trackInteractOutsideImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction fireCustomEvent(el, type, init) {\n const win = el.ownerDocument.defaultView || window;\n const event = new win.CustomEvent(type, init);\n return el.dispatchEvent(event);\n}\n\nexport { trackInteractOutside };\n","import { raf, contains, getDocument, waitForElements, setStyle, addDomEvent, getEventTarget, isHTMLElement } from '@zag-js/dom-query';\nimport { trackInteractOutside } from '@zag-js/interact-outside';\nimport { isFunction, warn } from '@zag-js/utils';\n\n// src/dismissable-layer.ts\nfunction trackEscapeKeydown(node, fn) {\n const handleKeyDown = (event) => {\n if (event.key !== \"Escape\") return;\n if (event.isComposing) return;\n fn?.(event);\n };\n return addDomEvent(getDocument(node), \"keydown\", handleKeyDown, { capture: true });\n}\nvar layerStack = {\n layers: [],\n branches: [],\n count() {\n return this.layers.length;\n },\n pointerBlockingLayers() {\n return this.layers.filter((layer) => layer.pointerBlocking);\n },\n topMostPointerBlockingLayer() {\n return [...this.pointerBlockingLayers()].slice(-1)[0];\n },\n hasPointerBlockingLayer() {\n return this.pointerBlockingLayers().length > 0;\n },\n isBelowPointerBlockingLayer(node) {\n const index = this.indexOf(node);\n const highestBlockingIndex = this.topMostPointerBlockingLayer() ? this.indexOf(this.topMostPointerBlockingLayer()?.node) : -1;\n return index < highestBlockingIndex;\n },\n isTopMost(node) {\n const layer = this.layers[this.count() - 1];\n return layer?.node === node;\n },\n getNestedLayers(node) {\n return Array.from(this.layers).slice(this.indexOf(node) + 1);\n },\n isInNestedLayer(node, target) {\n return this.getNestedLayers(node).some((layer) => contains(layer.node, target));\n },\n isInBranch(target) {\n return Array.from(this.branches).some((branch) => contains(branch, target));\n },\n add(layer) {\n const num = this.layers.push(layer);\n layer.node.style.setProperty(\"--layer-index\", `${num}`);\n },\n addBranch(node) {\n this.branches.push(node);\n },\n remove(node) {\n const index = this.indexOf(node);\n if (index < 0) return;\n if (index < this.count() - 1) {\n const _layers = this.getNestedLayers(node);\n _layers.forEach((layer) => layer.dismiss());\n }\n this.layers.splice(index, 1);\n node.style.removeProperty(\"--layer-index\");\n },\n removeBranch(node) {\n const index = this.branches.indexOf(node);\n if (index >= 0) this.branches.splice(index, 1);\n },\n indexOf(node) {\n return this.layers.findIndex((layer) => layer.node === node);\n },\n dismiss(node) {\n this.layers[this.indexOf(node)]?.dismiss();\n },\n clear() {\n this.remove(this.layers[0].node);\n }\n};\nvar originalBodyPointerEvents;\nfunction assignPointerEventToLayers() {\n layerStack.layers.forEach(({ node }) => {\n node.style.pointerEvents = layerStack.isBelowPointerBlockingLayer(node) ? \"none\" : \"auto\";\n });\n}\nfunction clearPointerEvent(node) {\n node.style.pointerEvents = \"\";\n}\nfunction disablePointerEventsOutside(node, persistentElements) {\n const doc = getDocument(node);\n const cleanups = [];\n if (layerStack.hasPointerBlockingLayer() && !doc.body.hasAttribute(\"data-inert\")) {\n originalBodyPointerEvents = document.body.style.pointerEvents;\n queueMicrotask(() => {\n doc.body.style.pointerEvents = \"none\";\n doc.body.setAttribute(\"data-inert\", \"\");\n });\n }\n if (persistentElements) {\n const persistedCleanup = waitForElements(persistentElements, (el) => {\n cleanups.push(setStyle(el, { pointerEvents: \"auto\" }));\n });\n cleanups.push(persistedCleanup);\n }\n return () => {\n if (layerStack.hasPointerBlockingLayer()) return;\n queueMicrotask(() => {\n doc.body.style.pointerEvents = originalBodyPointerEvents;\n doc.body.removeAttribute(\"data-inert\");\n if (doc.body.style.length === 0) doc.body.removeAttribute(\"style\");\n });\n cleanups.forEach((fn) => fn());\n };\n}\n\n// src/dismissable-layer.ts\nfunction trackDismissableElementImpl(node, options) {\n const { warnOnMissingNode = true } = options;\n if (warnOnMissingNode && !node) {\n warn(\"[@zag-js/dismissable] node is `null` or `undefined`\");\n return;\n }\n if (!node) {\n return;\n }\n const { onDismiss, pointerBlocking, exclude: excludeContainers, debug } = options;\n const layer = { dismiss: onDismiss, node, pointerBlocking };\n layerStack.add(layer);\n assignPointerEventToLayers();\n function onPointerDownOutside(event) {\n const target = getEventTarget(event.detail.originalEvent);\n if (layerStack.isBelowPointerBlockingLayer(node) || layerStack.isInBranch(target)) return;\n options.onPointerDownOutside?.(event);\n options.onInteractOutside?.(event);\n if (event.defaultPrevented) return;\n if (debug) {\n console.log(\"onPointerDownOutside:\", event.detail.originalEvent);\n }\n onDismiss?.();\n }\n function onFocusOutside(event) {\n const target = getEventTarget(event.detail.originalEvent);\n if (layerStack.isInBranch(target)) return;\n options.onFocusOutside?.(event);\n options.onInteractOutside?.(event);\n if (event.defaultPrevented) return;\n if (debug) {\n console.log(\"onFocusOutside:\", event.detail.originalEvent);\n }\n onDismiss?.();\n }\n function onEscapeKeyDown(event) {\n if (!layerStack.isTopMost(node)) return;\n options.onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }\n function exclude(target) {\n if (!node) return false;\n const containers = typeof excludeContainers === \"function\" ? excludeContainers() : excludeContainers;\n const _containers = Array.isArray(containers) ? containers : [containers];\n const persistentElements = options.persistentElements?.map((fn) => fn()).filter(isHTMLElement);\n if (persistentElements) _containers.push(...persistentElements);\n return _containers.some((node2) => contains(node2, target)) || layerStack.isInNestedLayer(node, target);\n }\n const cleanups = [\n pointerBlocking ? disablePointerEventsOutside(node, options.persistentElements) : void 0,\n trackEscapeKeydown(node, onEscapeKeyDown),\n trackInteractOutside(node, { exclude, onFocusOutside, onPointerDownOutside, defer: options.defer })\n ];\n return () => {\n layerStack.remove(node);\n assignPointerEventToLayers();\n clearPointerEvent(node);\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction trackDismissableElement(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = isFunction(nodeOrFn) ? nodeOrFn() : nodeOrFn;\n cleanups.push(trackDismissableElementImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction trackDismissableBranch(nodeOrFn, options = {}) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = isFunction(nodeOrFn) ? nodeOrFn() : nodeOrFn;\n if (!node) {\n warn(\"[@zag-js/dismissable] branch node is `null` or `undefined`\");\n return;\n }\n layerStack.addBranch(node);\n cleanups.push(() => {\n layerStack.removeBranch(node);\n });\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\nexport { trackDismissableBranch, trackDismissableElement };\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/affine-transform.ts\nvar AffineTransform = class _AffineTransform {\n constructor([m00, m01, m02, m10, m11, m12] = [0, 0, 0, 0, 0, 0]) {\n __publicField(this, \"m00\");\n __publicField(this, \"m01\");\n __publicField(this, \"m02\");\n __publicField(this, \"m10\");\n __publicField(this, \"m11\");\n __publicField(this, \"m12\");\n __publicField(this, \"rotate\", (...args) => {\n return this.prepend(_AffineTransform.rotate(...args));\n });\n __publicField(this, \"scale\", (...args) => {\n return this.prepend(_AffineTransform.scale(...args));\n });\n __publicField(this, \"translate\", (...args) => {\n return this.prepend(_AffineTransform.translate(...args));\n });\n this.m00 = m00;\n this.m01 = m01;\n this.m02 = m02;\n this.m10 = m10;\n this.m11 = m11;\n this.m12 = m12;\n }\n applyTo(point) {\n const { x, y } = point;\n const { m00, m01, m02, m10, m11, m12 } = this;\n return {\n x: m00 * x + m01 * y + m02,\n y: m10 * x + m11 * y + m12\n };\n }\n prepend(other) {\n return new _AffineTransform([\n this.m00 * other.m00 + this.m01 * other.m10,\n // m00\n this.m00 * other.m01 + this.m01 * other.m11,\n // m01\n this.m00 * other.m02 + this.m01 * other.m12 + this.m02,\n // m02\n this.m10 * other.m00 + this.m11 * other.m10,\n // m10\n this.m10 * other.m01 + this.m11 * other.m11,\n // m11\n this.m10 * other.m02 + this.m11 * other.m12 + this.m12\n // m12\n ]);\n }\n append(other) {\n return new _AffineTransform([\n other.m00 * this.m00 + other.m01 * this.m10,\n // m00\n other.m00 * this.m01 + other.m01 * this.m11,\n // m01\n other.m00 * this.m02 + other.m01 * this.m12 + other.m02,\n // m02\n other.m10 * this.m00 + other.m11 * this.m10,\n // m10\n other.m10 * this.m01 + other.m11 * this.m11,\n // m11\n other.m10 * this.m02 + other.m11 * this.m12 + other.m12\n // m12\n ]);\n }\n get determinant() {\n return this.m00 * this.m11 - this.m01 * this.m10;\n }\n get isInvertible() {\n const det = this.determinant;\n return isFinite(det) && isFinite(this.m02) && isFinite(this.m12) && det !== 0;\n }\n invert() {\n const det = this.determinant;\n return new _AffineTransform([\n this.m11 / det,\n // m00\n -this.m01 / det,\n // m01\n (this.m01 * this.m12 - this.m11 * this.m02) / det,\n // m02\n -this.m10 / det,\n // m10\n this.m00 / det,\n // m11\n (this.m10 * this.m02 - this.m00 * this.m12) / det\n // m12\n ]);\n }\n get array() {\n return [this.m00, this.m01, this.m02, this.m10, this.m11, this.m12, 0, 0, 1];\n }\n get float32Array() {\n return new Float32Array(this.array);\n }\n // Static\n static get identity() {\n return new _AffineTransform([1, 0, 0, 0, 1, 0]);\n }\n static rotate(theta, origin) {\n const rotation = new _AffineTransform([Math.cos(theta), -Math.sin(theta), 0, Math.sin(theta), Math.cos(theta), 0]);\n if (origin && (origin.x !== 0 || origin.y !== 0)) {\n return _AffineTransform.multiply(\n _AffineTransform.translate(origin.x, origin.y),\n rotation,\n _AffineTransform.translate(-origin.x, -origin.y)\n );\n }\n return rotation;\n }\n static scale(sx, sy = sx, origin = { x: 0, y: 0 }) {\n const scale = new _AffineTransform([sx, 0, 0, 0, sy, 0]);\n if (origin.x !== 0 || origin.y !== 0) {\n return _AffineTransform.multiply(\n _AffineTransform.translate(origin.x, origin.y),\n scale,\n _AffineTransform.translate(-origin.x, -origin.y)\n );\n }\n return scale;\n }\n static translate(tx, ty) {\n return new _AffineTransform([1, 0, tx, 0, 1, ty]);\n }\n static multiply(...[first, ...rest]) {\n if (!first) return _AffineTransform.identity;\n return rest.reduce((result, item) => result.prepend(item), first);\n }\n get a() {\n return this.m00;\n }\n get b() {\n return this.m10;\n }\n get c() {\n return this.m01;\n }\n get d() {\n return this.m11;\n }\n get tx() {\n return this.m02;\n }\n get ty() {\n return this.m12;\n }\n get scaleComponents() {\n return { x: this.a, y: this.d };\n }\n get translationComponents() {\n return { x: this.tx, y: this.ty };\n }\n get skewComponents() {\n return { x: this.c, y: this.b };\n }\n toString() {\n return `matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.tx}, ${this.ty})`;\n }\n};\n\n// src/align.ts\nfunction hAlign(a, ref, h) {\n let x = ref.minX;\n if (h === \"left-inside\") x = ref.minX;\n if (h === \"left-outside\") x = ref.minX - ref.width;\n if (h === \"right-inside\") x = ref.maxX - ref.width;\n if (h === \"right-outside\") x = ref.maxX;\n if (h === \"center\") x = ref.midX - ref.width / 2;\n return { ...a, x };\n}\nfunction vAlign(a, ref, v) {\n let y = ref.minY;\n if (v === \"top-inside\") y = ref.minY;\n if (v === \"top-outside\") y = ref.minY - a.height;\n if (v === \"bottom-inside\") y = ref.maxY - a.height;\n if (v === \"bottom-outside\") y = ref.maxY;\n if (v === \"center\") y = ref.midY - a.height / 2;\n return { ...a, y };\n}\nfunction alignRect(a, ref, options) {\n const { h, v } = options;\n return vAlign(hAlign(a, ref, h), ref, v);\n}\n\n// src/angle.ts\nfunction getPointAngle(rect, point, reference = rect.center) {\n const x = point.x - reference.x;\n const y = point.y - reference.y;\n const deg = Math.atan2(x, y) * (180 / Math.PI) + 180;\n return 360 - deg;\n}\n\n// src/clamp.ts\nvar clamp = (value, min3, max2) => Math.min(Math.max(value, min3), max2);\nvar clampPoint = (position, size, boundaryRect) => {\n const x = clamp(position.x, boundaryRect.x, boundaryRect.x + boundaryRect.width - size.width);\n const y = clamp(position.y, boundaryRect.y, boundaryRect.y + boundaryRect.height - size.height);\n return { x, y };\n};\nvar defaultMinSize = {\n width: 0,\n height: 0\n};\nvar defaultMaxSize = {\n width: Infinity,\n height: Infinity\n};\nvar clampSize = (size, minSize = defaultMinSize, maxSize = defaultMaxSize) => {\n return {\n width: Math.min(Math.max(size.width, minSize.width), maxSize.width),\n height: Math.min(Math.max(size.height, minSize.height), maxSize.height)\n };\n};\n\n// src/rect.ts\nvar createPoint = (x, y) => ({ x, y });\nvar subtractPoints = (a, b) => {\n if (!b) return a;\n return createPoint(a.x - b.x, a.y - b.y);\n};\nvar addPoints = (a, b) => createPoint(a.x + b.x, a.y + b.y);\nfunction isPoint(v) {\n return Reflect.has(v, \"x\") && Reflect.has(v, \"y\");\n}\nfunction createRect(r) {\n const { x, y, width, height } = r;\n const midX = x + width / 2;\n const midY = y + height / 2;\n return {\n x,\n y,\n width,\n height,\n minX: x,\n minY: y,\n maxX: x + width,\n maxY: y + height,\n midX,\n midY,\n center: createPoint(midX, midY)\n };\n}\nfunction isRect(v) {\n return Reflect.has(v, \"x\") && Reflect.has(v, \"y\") && Reflect.has(v, \"width\") && Reflect.has(v, \"height\");\n}\nfunction getRectCenters(v) {\n const top = createPoint(v.midX, v.minY);\n const right = createPoint(v.maxX, v.midY);\n const bottom = createPoint(v.midX, v.maxY);\n const left = createPoint(v.minX, v.midY);\n return { top, right, bottom, left };\n}\nfunction getRectCorners(v) {\n const top = createPoint(v.minX, v.minY);\n const right = createPoint(v.maxX, v.minY);\n const bottom = createPoint(v.maxX, v.maxY);\n const left = createPoint(v.minX, v.maxY);\n return { top, right, bottom, left };\n}\nfunction getRectEdges(v) {\n const c = getRectCorners(v);\n const top = [c.top, c.right];\n const right = [c.right, c.bottom];\n const bottom = [c.left, c.bottom];\n const left = [c.top, c.left];\n return { top, right, bottom, left };\n}\n\n// src/intersection.ts\nfunction intersects(a, b) {\n return a.x < b.maxX && a.y < b.maxY && a.maxX > b.x && a.maxY > b.y;\n}\nfunction intersection(a, b) {\n const x = Math.max(a.x, b.x);\n const y = Math.max(a.y, b.y);\n const x2 = Math.min(a.x + a.width, b.x + b.width);\n const y2 = Math.min(a.y + a.height, b.y + b.height);\n return createRect({ x, y, width: x2 - x, height: y2 - y });\n}\nfunction collisions(a, b) {\n return {\n top: a.minY <= b.minY,\n right: a.maxX >= b.maxX,\n bottom: a.maxY >= b.maxY,\n left: a.minX <= b.minX\n };\n}\n\n// src/distance.ts\nfunction distance(a, b = { x: 0, y: 0 }) {\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\n}\nfunction distanceFromPoint(r, p) {\n let x = 0;\n let y = 0;\n if (p.x < r.x) x = r.x - p.x;\n else if (p.x > r.maxX) x = p.x - r.maxX;\n if (p.y < r.y) y = r.y - p.y;\n else if (p.y > r.maxY) y = p.y - r.maxY;\n return { x, y, value: distance({ x, y }) };\n}\nfunction distanceFromRect(a, b) {\n if (intersects(a, b)) return { x: 0, y: 0, value: 0 };\n const left = a.x < b.x ? a : b;\n const right = b.x < a.x ? a : b;\n const upper = a.y < b.y ? a : b;\n const lower = b.y < a.y ? a : b;\n let x = left.x === right.x ? 0 : right.x - left.maxX;\n x = Math.max(0, x);\n let y = upper.y === lower.y ? 0 : lower.y - upper.maxY;\n y = Math.max(0, y);\n return { x, y, value: distance({ x, y }) };\n}\nfunction distanceBtwEdges(a, b) {\n return {\n left: b.x - a.x,\n top: b.y - a.y,\n right: a.maxX - b.maxX,\n bottom: a.maxY - b.maxY\n };\n}\n\n// src/closest.ts\nfunction closest(...pts) {\n return (a) => {\n const ds = pts.map((b) => distance(b, a));\n const c = Math.min.apply(Math, ds);\n return pts[ds.indexOf(c)];\n };\n}\nfunction closestSideToRect(ref, r) {\n if (r.maxX <= ref.minX) return \"left\";\n if (r.minX >= ref.maxX) return \"right\";\n if (r.maxY <= ref.minY) return \"top\";\n if (r.minY >= ref.maxY) return \"bottom\";\n return \"left\";\n}\nfunction closestSideToPoint(ref, p) {\n const { x, y } = p;\n const dl = x - ref.minX;\n const dr = ref.maxX - x;\n const dt = y - ref.minY;\n const db = ref.maxY - y;\n let closest2 = dl;\n let side = \"left\";\n if (dr < closest2) {\n closest2 = dr;\n side = \"right\";\n }\n if (dt < closest2) {\n closest2 = dt;\n side = \"top\";\n }\n if (db < closest2) {\n side = \"bottom\";\n }\n return side;\n}\n\n// src/constrain.ts\nvar constrainRect = (rect, boundary) => {\n const left = Math.max(boundary.x, Math.min(rect.x, boundary.x + boundary.width - rect.width));\n const top = Math.max(boundary.y, Math.min(rect.y, boundary.y + boundary.height - rect.height));\n return {\n x: left,\n y: top,\n width: Math.min(rect.width, boundary.width),\n height: Math.min(rect.height, boundary.height)\n };\n};\n\n// src/contains.ts\nfunction containsPoint(r, p) {\n return r.minX <= p.x && p.x <= r.maxX && r.minY <= p.y && p.y <= r.maxY;\n}\nfunction containsRect(a, b) {\n return Object.values(getRectCorners(b)).every((c) => containsPoint(a, c));\n}\nfunction contains(r, v) {\n return isRect(v) ? containsRect(r, v) : containsPoint(r, v);\n}\n\n// src/equality.ts\nvar isSizeEqual = (a, b) => {\n return a.width === b?.width && a.height === b?.height;\n};\nvar isPointEqual = (a, b) => {\n return a.x === b?.x && a.y === b?.y;\n};\nvar isRectEqual = (a, b) => {\n return isPointEqual(a, b) && isSizeEqual(a, b);\n};\n\n// src/from-element.ts\nvar styleCache = /* @__PURE__ */ new WeakMap();\nfunction getCacheComputedStyle(el) {\n if (!styleCache.has(el)) {\n const win = el.ownerDocument.defaultView || window;\n styleCache.set(el, win.getComputedStyle(el));\n }\n return styleCache.get(el);\n}\nfunction getElementRect(el, opts = {}) {\n return createRect(getClientRect(el, opts));\n}\nfunction getClientRect(el, opts = {}) {\n const { excludeScrollbar = false, excludeBorders = false } = opts;\n const { x, y, width, height } = el.getBoundingClientRect();\n const r = { x, y, width, height };\n const style = getCacheComputedStyle(el);\n const { borderLeftWidth, borderTopWidth, borderRightWidth, borderBottomWidth } = style;\n const borderXWidth = sum(borderLeftWidth, borderRightWidth);\n const borderYWidth = sum(borderTopWidth, borderBottomWidth);\n if (excludeBorders) {\n r.width -= borderXWidth;\n r.height -= borderYWidth;\n r.x += px(borderLeftWidth);\n r.y += px(borderTopWidth);\n }\n if (excludeScrollbar) {\n const scrollbarWidth = el.offsetWidth - el.clientWidth - borderXWidth;\n const scrollbarHeight = el.offsetHeight - el.clientHeight - borderYWidth;\n r.width -= scrollbarWidth;\n r.height -= scrollbarHeight;\n }\n return r;\n}\nvar px = (v) => parseFloat(v.replace(\"px\", \"\"));\nvar sum = (...vals) => vals.reduce((sum2, v) => sum2 + (v ? px(v) : 0), 0);\n\n// src/from-points.ts\nfunction getRectFromPoints(...pts) {\n const xs = pts.map((p) => p.x);\n const ys = pts.map((p) => p.y);\n const x = Math.min(...xs);\n const y = Math.min(...ys);\n const width = Math.max(...xs) - x;\n const height = Math.max(...ys) - y;\n return createRect({ x, y, width, height });\n}\n\n// src/union.ts\nvar { min, max } = Math;\nfunction union(...rs) {\n const pMin = {\n x: min(...rs.map((r) => r.minX)),\n y: min(...rs.map((r) => r.minY))\n };\n const pMax = {\n x: max(...rs.map((r) => r.maxX)),\n y: max(...rs.map((r) => r.maxY))\n };\n return getRectFromPoints(pMin, pMax);\n}\n\n// src/from-range.ts\nfunction fromRange(range) {\n let rs = [];\n const rects = Array.from(range.getClientRects());\n if (rects.length) {\n rs = rs.concat(rects.map(createRect));\n return union.apply(void 0, rs);\n }\n let start = range.startContainer;\n if (start.nodeType === Node.TEXT_NODE) {\n start = start.parentNode;\n }\n if (start instanceof HTMLElement) {\n const r = getElementRect(start);\n rs.push({ ...r, x: r.maxX, width: 0 });\n }\n return union.apply(void 0, rs);\n}\n\n// src/from-rotation.ts\nfunction toRad(d) {\n return d % 360 * Math.PI / 180;\n}\nfunction rotate(a, d, c) {\n const r = toRad(d);\n const sin = Math.sin(r);\n const cos = Math.cos(r);\n const x = a.x - c.x;\n const y = a.y - c.y;\n return {\n x: c.x + x * cos - y * sin,\n y: c.y + x * sin + y * cos\n };\n}\nfunction getRotationRect(r, deg) {\n const rr = Object.values(getRectCorners(r)).map((p) => rotate(p, deg, r.center));\n const xs = rr.map((p) => p.x);\n const ys = rr.map((p) => p.y);\n const minX = Math.min(...xs);\n const minY = Math.min(...ys);\n const maxX = Math.max(...xs);\n const maxY = Math.max(...ys);\n return createRect({\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n });\n}\n\n// src/from-window.ts\nfunction getWindowRect(win, opts = {}) {\n return createRect(getViewportRect(win, opts));\n}\nfunction getViewportRect(win, opts) {\n const { excludeScrollbar = false } = opts;\n const { innerWidth, innerHeight, document: doc, visualViewport } = win;\n const width = visualViewport?.width || innerWidth;\n const height = visualViewport?.height || innerHeight;\n const rect = { x: 0, y: 0, width, height };\n if (excludeScrollbar) {\n const scrollbarWidth = innerWidth - doc.documentElement.clientWidth;\n const scrollbarHeight = innerHeight - doc.documentElement.clientHeight;\n rect.width -= scrollbarWidth;\n rect.height -= scrollbarHeight;\n }\n return rect;\n}\n\n// src/operations.ts\nvar isSymmetric = (v) => \"dx\" in v || \"dy\" in v;\nfunction inset(r, i) {\n const v = isSymmetric(i) ? { left: i.dx, right: i.dx, top: i.dy, bottom: i.dy } : i;\n const { top = 0, right = 0, bottom = 0, left = 0 } = v;\n return createRect({\n x: r.x + left,\n y: r.y + top,\n width: r.width - left - right,\n height: r.height - top - bottom\n });\n}\nfunction expand(r, v) {\n const value = typeof v === \"number\" ? { dx: -v, dy: -v } : v;\n return inset(r, value);\n}\nfunction shrink(r, v) {\n const value = typeof v === \"number\" ? { dx: -v, dy: -v } : v;\n return inset(r, value);\n}\nfunction shift(r, o) {\n const { x = 0, y = 0 } = o;\n return createRect({\n x: r.x + x,\n y: r.y + y,\n width: r.width,\n height: r.height\n });\n}\n\n// src/polygon.ts\nfunction getElementPolygon(rectValue, placement) {\n const rect = createRect(rectValue);\n const { top, right, left, bottom } = getRectCorners(rect);\n const [base] = placement.split(\"-\");\n return {\n top: [left, top, right, bottom],\n right: [top, right, bottom, left],\n bottom: [top, left, bottom, right],\n left: [right, top, left, bottom]\n }[base];\n}\nfunction isPointInPolygon(polygon, point) {\n const { x, y } = point;\n let c = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n if (yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) {\n c = !c;\n }\n }\n return c;\n}\nfunction createPolygonElement() {\n const id = \"debug-polygon\";\n const existingPolygon = document.getElementById(id);\n if (existingPolygon) {\n return existingPolygon;\n }\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n Object.assign(svg.style, {\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n opacity: \"0.15\",\n position: \"fixed\",\n pointerEvents: \"none\",\n fill: \"red\"\n });\n const polygon = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n polygon.setAttribute(\"id\", id);\n polygon.setAttribute(\"points\", \"0,0 0,0\");\n svg.appendChild(polygon);\n document.body.appendChild(svg);\n return polygon;\n}\nfunction debugPolygon(polygon) {\n const el = createPolygonElement();\n const points = polygon.map((point) => `${point.x},${point.y}`).join(\" \");\n el.setAttribute(\"points\", points);\n return () => {\n el.remove();\n };\n}\n\n// src/compass.ts\nvar compassDirectionMap = {\n n: { x: 0.5, y: 0 },\n ne: { x: 1, y: 0 },\n e: { x: 1, y: 0.5 },\n se: { x: 1, y: 1 },\n s: { x: 0.5, y: 1 },\n sw: { x: 0, y: 1 },\n w: { x: 0, y: 0.5 },\n nw: { x: 0, y: 0 }\n};\nvar oppositeDirectionMap = {\n n: \"s\",\n ne: \"sw\",\n e: \"w\",\n se: \"nw\",\n s: \"n\",\n sw: \"ne\",\n w: \"e\",\n nw: \"se\"\n};\n\n// src/resize.ts\nvar { sign, abs, min: min2 } = Math;\nfunction getRectExtentPoint(rect, direction) {\n const { minX, minY, maxX, maxY, midX, midY } = rect;\n const x = direction.includes(\"w\") ? minX : direction.includes(\"e\") ? maxX : midX;\n const y = direction.includes(\"n\") ? minY : direction.includes(\"s\") ? maxY : midY;\n return { x, y };\n}\nfunction getOppositeDirection(direction) {\n return oppositeDirectionMap[direction];\n}\nfunction resizeRect(rect, offset, direction, opts) {\n const { scalingOriginMode, lockAspectRatio } = opts;\n const extent = getRectExtentPoint(rect, direction);\n const oppositeDirection = getOppositeDirection(direction);\n const oppositeExtent = getRectExtentPoint(rect, oppositeDirection);\n if (scalingOriginMode === \"center\") {\n offset = { x: offset.x * 2, y: offset.y * 2 };\n }\n const newExtent = {\n x: extent.x + offset.x,\n y: extent.y + offset.y\n };\n const multiplier = {\n x: compassDirectionMap[direction].x * 2 - 1,\n y: compassDirectionMap[direction].y * 2 - 1\n };\n const newSize = {\n width: newExtent.x - oppositeExtent.x,\n height: newExtent.y - oppositeExtent.y\n };\n const scaleX = multiplier.x * newSize.width / rect.width;\n const scaleY = multiplier.y * newSize.height / rect.height;\n const largestMagnitude = abs(scaleX) > abs(scaleY) ? scaleX : scaleY;\n const scale = lockAspectRatio ? { x: largestMagnitude, y: largestMagnitude } : {\n x: extent.x === oppositeExtent.x ? 1 : scaleX,\n y: extent.y === oppositeExtent.y ? 1 : scaleY\n };\n if (extent.y === oppositeExtent.y) {\n scale.y = abs(scale.y);\n } else if (sign(scale.y) !== sign(scaleY)) {\n scale.y *= -1;\n }\n if (extent.x === oppositeExtent.x) {\n scale.x = abs(scale.x);\n } else if (sign(scale.x) !== sign(scaleX)) {\n scale.x *= -1;\n }\n switch (scalingOriginMode) {\n case \"extent\":\n return transformRect(rect, AffineTransform.scale(scale.x, scale.y, oppositeExtent), false);\n case \"center\":\n return transformRect(\n rect,\n AffineTransform.scale(scale.x, scale.y, {\n x: rect.midX,\n y: rect.midY\n }),\n false\n );\n }\n}\nfunction createRectFromPoints(initialPoint, finalPoint, normalized = true) {\n if (normalized) {\n return {\n x: min2(finalPoint.x, initialPoint.x),\n y: min2(finalPoint.y, initialPoint.y),\n width: abs(finalPoint.x - initialPoint.x),\n height: abs(finalPoint.y - initialPoint.y)\n };\n }\n return {\n x: initialPoint.x,\n y: initialPoint.y,\n width: finalPoint.x - initialPoint.x,\n height: finalPoint.y - initialPoint.y\n };\n}\nfunction transformRect(rect, transform, normalized = true) {\n const p1 = transform.applyTo({ x: rect.minX, y: rect.minY });\n const p2 = transform.applyTo({ x: rect.maxX, y: rect.maxY });\n return createRectFromPoints(p1, p2, normalized);\n}\n\nexport { AffineTransform, addPoints, alignRect, clampPoint, clampSize, closest, closestSideToPoint, closestSideToRect, collisions, constrainRect, contains, containsPoint, containsRect, createPoint, createRect, debugPolygon, distance, distanceBtwEdges, distanceFromPoint, distanceFromRect, expand, fromRange, getElementPolygon, getElementRect, getPointAngle, getRectCenters, getRectCorners, getRectEdges, getRectFromPoints, getRotationRect, getViewportRect, getWindowRect, inset, intersection, intersects, isPoint, isPointEqual, isPointInPolygon, isRect, isRectEqual, isSizeEqual, isSymmetric, resizeRect, rotate, shift, shrink, subtractPoints, toRad, union };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { createGuards, createMachine, mergeProps } from '@zag-js/core';\nimport { isEditableElement, raf, getInitialFocus, contains, observeAttributes, addDomEvent, getEventTarget, getByTypeahead, clickIfLink, getWindow, scrollIntoView, queryAll, dataAttr, isDownloadingEvent, isOpeningInNewTab, isSelfTarget, isValidTabEvent, getEventKey, isPrintableKey, isModifierKey, isContextMenuEvent, getEventPoint, ariaAttr, isAnchorElement, isHTMLElement } from '@zag-js/dom-query';\nimport { getPlacementSide, getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { last, first, createSplitProps, prev, next } from '@zag-js/utils';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { getElementPolygon, isPointInPolygon } from '@zag-js/rect-utils';\nimport { createProps } from '@zag-js/types';\n\n// src/menu.anatomy.ts\nvar anatomy = createAnatomy(\"menu\").parts(\n \"arrow\",\n \"arrowTip\",\n \"content\",\n \"contextTrigger\",\n \"indicator\",\n \"item\",\n \"itemGroup\",\n \"itemGroupLabel\",\n \"itemIndicator\",\n \"itemText\",\n \"positioner\",\n \"separator\",\n \"trigger\",\n \"triggerItem\"\n);\nvar parts = anatomy.build();\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `menu:${ctx.id}:trigger`;\nvar getContextTriggerId = (ctx) => ctx.ids?.contextTrigger ?? `menu:${ctx.id}:ctx-trigger`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `menu:${ctx.id}:content`;\nvar getArrowId = (ctx) => ctx.ids?.arrow ?? `menu:${ctx.id}:arrow`;\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `menu:${ctx.id}:popper`;\nvar getGroupId = (ctx, id) => ctx.ids?.group?.(id) ?? `menu:${ctx.id}:group:${id}`;\nvar getItemId = (ctx, id) => `${ctx.id}/${id}`;\nvar getItemValue = (el) => el?.dataset.value ?? null;\nvar getGroupLabelId = (ctx, id) => ctx.ids?.groupLabel?.(id) ?? `menu:${ctx.id}:group-label:${id}`;\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getItemEl = (ctx, value) => value ? ctx.getById(getItemId(ctx, value)) : null;\nvar getContextTriggerEl = (ctx) => ctx.getById(getContextTriggerId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getContentId(ctx));\n const selector = `[role^=\"menuitem\"][data-ownedby=${ownerId}]:not([data-disabled])`;\n return queryAll(getContentEl(ctx), selector);\n};\nvar getFirstEl = (ctx) => first(getElements(ctx));\nvar getLastEl = (ctx) => last(getElements(ctx));\nvar isMatch = (el, value) => {\n if (!value) return false;\n return el.id === value || el.dataset.value === value;\n};\nvar getNextEl = (ctx, opts) => {\n const items = getElements(ctx);\n const index = items.findIndex((el) => isMatch(el, opts.value));\n return next(items, index, { loop: opts.loop ?? opts.loopFocus });\n};\nvar getPrevEl = (ctx, opts) => {\n const items = getElements(ctx);\n const index = items.findIndex((el) => isMatch(el, opts.value));\n return prev(items, index, { loop: opts.loop ?? opts.loopFocus });\n};\nvar getElemByKey = (ctx, opts) => {\n const items = getElements(ctx);\n const item = items.find((el) => isMatch(el, opts.value));\n return getByTypeahead(items, { state: opts.typeaheadState, key: opts.key, activeId: item?.id ?? null });\n};\nvar isTargetDisabled = (v) => {\n return isHTMLElement(v) && (v.dataset.disabled === \"\" || v.hasAttribute(\"disabled\"));\n};\nvar isTriggerItem = (el) => {\n return !!el?.getAttribute(\"role\")?.startsWith(\"menuitem\") && !!el?.hasAttribute(\"aria-controls\");\n};\nvar itemSelectEvent = \"menu:select\";\nfunction dispatchSelectionEvent(el, value) {\n if (!el) return;\n const win = getWindow(el);\n const event = new win.CustomEvent(itemSelectEvent, { detail: { value } });\n el.dispatchEvent(event);\n}\n\n// src/menu.connect.ts\nfunction connect(service, normalize) {\n const { context, send, state, computed, prop, scope } = service;\n const open = state.hasTag(\"open\");\n const isSubmenu = computed(\"isSubmenu\");\n const isTypingAhead = computed(\"isTypingAhead\");\n const composite = prop(\"composite\");\n const currentPlacement = context.get(\"currentPlacement\");\n const anchorPoint = context.get(\"anchorPoint\");\n const highlightedValue = context.get(\"highlightedValue\");\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: anchorPoint ? \"bottom\" : currentPlacement\n });\n function getItemState(props2) {\n return {\n id: getItemId(scope, props2.value),\n disabled: !!props2.disabled,\n highlighted: highlightedValue === props2.value\n };\n }\n function getOptionItemProps(props2) {\n const valueText = props2.valueText ?? props2.value;\n return { ...props2, id: props2.value, valueText };\n }\n function getOptionItemState(props2) {\n const itemState = getItemState(getOptionItemProps(props2));\n return {\n ...itemState,\n checked: !!props2.checked\n };\n }\n function getItemProps(props2) {\n const { closeOnSelect, valueText, value } = props2;\n const itemState = getItemState(props2);\n const id = getItemId(scope, value);\n return normalize.element({\n ...parts.item.attrs,\n id,\n role: \"menuitem\",\n \"aria-disabled\": ariaAttr(itemState.disabled),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-ownedby\": getContentId(scope),\n \"data-highlighted\": dataAttr(itemState.highlighted),\n \"data-value\": value,\n \"data-valuetext\": valueText,\n onDragStart(event) {\n const isLink = event.currentTarget.matches(\"a[href]\");\n if (isLink) event.preventDefault();\n },\n onPointerMove(event) {\n if (itemState.disabled) return;\n if (event.pointerType !== \"mouse\") return;\n const target = event.currentTarget;\n if (itemState.highlighted) return;\n send({ type: \"ITEM_POINTERMOVE\", id, target, closeOnSelect });\n },\n onPointerLeave(event) {\n if (itemState.disabled) return;\n if (event.pointerType !== \"mouse\") return;\n const pointerMoved = service.event.previous()?.type.includes(\"POINTER\");\n if (!pointerMoved) return;\n const target = event.currentTarget;\n send({ type: \"ITEM_POINTERLEAVE\", id, target, closeOnSelect });\n },\n onPointerDown(event) {\n if (itemState.disabled) return;\n const target = event.currentTarget;\n send({ type: \"ITEM_POINTERDOWN\", target, id, closeOnSelect });\n },\n onClick(event) {\n if (isDownloadingEvent(event)) return;\n if (isOpeningInNewTab(event)) return;\n if (itemState.disabled) return;\n const target = event.currentTarget;\n send({ type: \"ITEM_CLICK\", target, id, closeOnSelect });\n }\n });\n }\n return {\n highlightedValue,\n open,\n setOpen(nextOpen) {\n const open2 = state.hasTag(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n setHighlightedValue(value) {\n send({ type: \"HIGHLIGHTED.SET\", value });\n },\n setParent(parent) {\n send({ type: \"PARENT.SET\", value: parent, id: parent.prop(\"id\") });\n },\n setChild(child) {\n send({ type: \"CHILD.SET\", value: child, id: child.prop(\"id\") });\n },\n reposition(options = {}) {\n send({ type: \"POSITIONING.SET\", options });\n },\n addItemListener(props2) {\n const node = scope.getById(props2.id);\n if (!node) return;\n const listener = () => props2.onSelect?.();\n node.addEventListener(itemSelectEvent, listener);\n return () => node.removeEventListener(itemSelectEvent, listener);\n },\n getContextTriggerProps() {\n return normalize.element({\n ...parts.contextTrigger.attrs,\n dir: prop(\"dir\"),\n id: getContextTriggerId(scope),\n onPointerDown(event) {\n if (event.pointerType === \"mouse\") return;\n const point = getEventPoint(event);\n send({ type: \"CONTEXT_MENU_START\", point });\n },\n onPointerCancel(event) {\n if (event.pointerType === \"mouse\") return;\n send({ type: \"CONTEXT_MENU_CANCEL\" });\n },\n onPointerMove(event) {\n if (event.pointerType === \"mouse\") return;\n send({ type: \"CONTEXT_MENU_CANCEL\" });\n },\n onPointerUp(event) {\n if (event.pointerType === \"mouse\") return;\n send({ type: \"CONTEXT_MENU_CANCEL\" });\n },\n onContextMenu(event) {\n const point = getEventPoint(event);\n send({ type: \"CONTEXT_MENU\", point });\n event.preventDefault();\n },\n style: {\n WebkitTouchCallout: \"none\",\n WebkitUserSelect: \"none\",\n userSelect: \"none\"\n }\n });\n },\n getTriggerItemProps(childApi) {\n const triggerProps = childApi.getTriggerProps();\n return mergeProps(getItemProps({ value: triggerProps.id }), triggerProps);\n },\n getTriggerProps() {\n return normalize.button({\n ...isSubmenu ? parts.triggerItem.attrs : parts.trigger.attrs,\n \"data-placement\": context.get(\"currentPlacement\"),\n type: \"button\",\n dir: prop(\"dir\"),\n id: getTriggerId(scope),\n \"data-uid\": prop(\"id\"),\n \"aria-haspopup\": composite ? \"menu\" : \"dialog\",\n \"aria-controls\": getContentId(scope),\n \"aria-expanded\": open || void 0,\n \"data-state\": open ? \"open\" : \"closed\",\n onPointerMove(event) {\n if (event.pointerType !== \"mouse\") return;\n const disabled = isTargetDisabled(event.currentTarget);\n if (disabled || !isSubmenu) return;\n const point = getEventPoint(event);\n send({ type: \"TRIGGER_POINTERMOVE\", target: event.currentTarget, point });\n },\n onPointerLeave(event) {\n if (isTargetDisabled(event.currentTarget)) return;\n if (event.pointerType !== \"mouse\") return;\n if (!isSubmenu) return;\n const point = getEventPoint(event);\n send({\n type: \"TRIGGER_POINTERLEAVE\",\n target: event.currentTarget,\n point\n });\n },\n onPointerDown(event) {\n if (isTargetDisabled(event.currentTarget)) return;\n if (isContextMenuEvent(event)) return;\n event.preventDefault();\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (isTargetDisabled(event.currentTarget)) return;\n send({ type: \"TRIGGER_CLICK\", target: event.currentTarget });\n },\n onBlur() {\n send({ type: \"TRIGGER_BLUR\" });\n },\n onFocus() {\n send({ type: \"TRIGGER_FOCUS\" });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n const keyMap = {\n ArrowDown() {\n send({ type: \"ARROW_DOWN\" });\n },\n ArrowUp() {\n send({ type: \"ARROW_UP\" });\n },\n Enter() {\n send({ type: \"ARROW_DOWN\", src: \"enter\" });\n },\n Space() {\n send({ type: \"ARROW_DOWN\", src: \"space\" });\n }\n };\n const key = getEventKey(event, {\n orientation: \"vertical\",\n dir: prop(\"dir\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n }\n }\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-state\": open ? \"open\" : \"closed\"\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n id: getPositionerId(scope),\n style: popperStyles.floating\n });\n },\n getArrowProps() {\n return normalize.element({\n id: getArrowId(scope),\n ...parts.arrow.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrow\n });\n },\n getArrowTipProps() {\n return normalize.element({\n ...parts.arrowTip.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrowTip\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n id: getContentId(scope),\n \"aria-label\": prop(\"aria-label\"),\n hidden: !open,\n \"data-state\": open ? \"open\" : \"closed\",\n role: composite ? \"menu\" : \"dialog\",\n tabIndex: 0,\n dir: prop(\"dir\"),\n \"aria-activedescendant\": computed(\"highlightedId\") || void 0,\n \"aria-labelledby\": getTriggerId(scope),\n \"data-placement\": currentPlacement,\n onPointerEnter(event) {\n if (event.pointerType !== \"mouse\") return;\n send({ type: \"MENU_POINTERENTER\" });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n const target = getEventTarget(event);\n const sameMenu = target?.closest(\"[role=menu]\") === event.currentTarget || target === event.currentTarget;\n if (!sameMenu) return;\n if (event.key === \"Tab\") {\n const valid = isValidTabEvent(event);\n if (!valid) {\n event.preventDefault();\n return;\n }\n }\n const item = getItemEl(scope, highlightedValue);\n const keyMap = {\n ArrowDown() {\n send({ type: \"ARROW_DOWN\" });\n },\n ArrowUp() {\n send({ type: \"ARROW_UP\" });\n },\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\" });\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\" });\n },\n Enter() {\n send({ type: \"ENTER\" });\n if (isAnchorElement(item)) {\n prop(\"navigate\")?.({ value: highlightedValue, node: item });\n }\n },\n Space(event2) {\n if (isTypingAhead) {\n send({ type: \"TYPEAHEAD\", key: event2.key });\n } else {\n keyMap.Enter?.(event2);\n }\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n }\n };\n const key = getEventKey(event, { dir: prop(\"dir\") });\n const exec = keyMap[key];\n if (exec) {\n exec(event);\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n if (!prop(\"typeahead\")) return;\n if (!isPrintableKey(event)) return;\n if (isModifierKey(event)) return;\n if (isEditableElement(target)) return;\n send({ type: \"TYPEAHEAD\", key: event.key });\n event.preventDefault();\n }\n });\n },\n getSeparatorProps() {\n return normalize.element({\n ...parts.separator.attrs,\n role: \"separator\",\n dir: prop(\"dir\"),\n \"aria-orientation\": \"horizontal\"\n });\n },\n getItemState,\n getItemProps,\n getOptionItemState,\n getOptionItemProps(props2) {\n const { type, disabled, onCheckedChange, closeOnSelect } = props2;\n const option = getOptionItemProps(props2);\n const itemState = getOptionItemState(props2);\n return {\n ...getItemProps(option),\n ...normalize.element({\n \"data-type\": type,\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n \"data-value\": option.value,\n role: `menuitem${type}`,\n \"aria-checked\": !!itemState.checked,\n \"data-state\": itemState.checked ? \"checked\" : \"unchecked\",\n onClick(event) {\n if (disabled) return;\n if (isDownloadingEvent(event)) return;\n if (isOpeningInNewTab(event)) return;\n const target = event.currentTarget;\n send({ type: \"ITEM_CLICK\", target, option, closeOnSelect });\n onCheckedChange?.(!itemState.checked);\n }\n })\n };\n },\n getItemIndicatorProps(props2) {\n const itemState = getOptionItemState(props2);\n return normalize.element({\n ...parts.itemIndicator.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-highlighted\": dataAttr(itemState.highlighted),\n \"data-state\": itemState.checked ? \"checked\" : \"unchecked\",\n hidden: !itemState.checked\n });\n },\n getItemTextProps(props2) {\n const itemState = getOptionItemState(props2);\n return normalize.element({\n ...parts.itemText.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-highlighted\": dataAttr(itemState.highlighted),\n \"data-state\": itemState.checked ? \"checked\" : \"unchecked\"\n });\n },\n getItemGroupLabelProps(props2) {\n return normalize.element({\n ...parts.itemGroupLabel.attrs,\n id: getGroupLabelId(scope, props2.htmlFor),\n dir: prop(\"dir\")\n });\n },\n getItemGroupProps(props2) {\n return normalize.element({\n id: getGroupId(scope, props2.id),\n ...parts.itemGroup.attrs,\n dir: prop(\"dir\"),\n \"aria-labelledby\": getGroupLabelId(scope, props2.id),\n role: \"group\"\n });\n }\n };\n}\nvar { not, and, or } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n closeOnSelect: true,\n typeahead: true,\n composite: true,\n loopFocus: false,\n navigate(details) {\n clickIfLink(details.node);\n },\n ...props2,\n positioning: {\n placement: \"bottom-start\",\n gutter: 8,\n ...props2.positioning\n }\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"idle\";\n },\n context({ bindable, prop }) {\n return {\n suspendPointer: bindable(() => ({\n defaultValue: false\n })),\n highlightedValue: bindable(() => ({\n defaultValue: prop(\"defaultHighlightedValue\") || null,\n value: prop(\"highlightedValue\"),\n onChange(value) {\n prop(\"onHighlightChange\")?.({ highlightedValue: value });\n }\n })),\n lastHighlightedValue: bindable(() => ({\n defaultValue: null\n })),\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n })),\n intentPolygon: bindable(() => ({\n defaultValue: null\n })),\n anchorPoint: bindable(() => ({\n defaultValue: null,\n hash(value) {\n return `x: ${value?.x}, y: ${value?.y}`;\n }\n }))\n };\n },\n refs() {\n return {\n parent: null,\n children: {},\n typeaheadState: { ...getByTypeahead.defaultOptions },\n positioningOverride: {}\n };\n },\n computed: {\n isSubmenu: ({ refs }) => refs.get(\"parent\") != null,\n isRtl: ({ prop }) => prop(\"dir\") === \"rtl\",\n isTypingAhead: ({ refs }) => refs.get(\"typeaheadState\").keysSoFar !== \"\",\n highlightedId: ({ context, scope, refs }) => resolveItemId(refs.get(\"children\"), context.get(\"highlightedValue\"), scope)\n },\n watch({ track, action, context, computed, prop }) {\n track([() => computed(\"isSubmenu\")], () => {\n action([\"setSubmenuPlacement\"]);\n });\n track([() => context.hash(\"anchorPoint\")], () => {\n action([\"reposition\"]);\n });\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n on: {\n \"PARENT.SET\": {\n actions: [\"setParentMenu\"]\n },\n \"CHILD.SET\": {\n actions: [\"setChildMenu\"]\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n OPEN_AUTOFOCUS: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n // internal: true,\n target: \"open\",\n actions: [\"highlightFirstItem\", \"invokeOnOpen\"]\n }\n ],\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"HIGHLIGHTED.RESTORE\": {\n actions: [\"restoreHighlightedItem\"]\n },\n \"HIGHLIGHTED.SET\": {\n actions: [\"setHighlightedItem\"]\n }\n },\n states: {\n idle: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n CONTEXT_MENU_START: {\n target: \"opening:contextmenu\",\n actions: [\"setAnchorPoint\"]\n },\n CONTEXT_MENU: [\n {\n guard: \"isOpenControlled\",\n actions: [\"setAnchorPoint\", \"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setAnchorPoint\", \"invokeOnOpen\"]\n }\n ],\n TRIGGER_CLICK: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n TRIGGER_FOCUS: {\n guard: not(\"isSubmenu\"),\n target: \"closed\"\n },\n TRIGGER_POINTERMOVE: {\n guard: \"isSubmenu\",\n target: \"opening\"\n }\n }\n },\n \"opening:contextmenu\": {\n tags: [\"closed\"],\n effects: [\"waitForLongPress\"],\n on: {\n \"CONTROLLED.OPEN\": { target: \"open\" },\n \"CONTROLLED.CLOSE\": { target: \"closed\" },\n CONTEXT_MENU_CANCEL: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"LONG_PRESS.OPEN\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ]\n }\n },\n opening: {\n tags: [\"closed\"],\n effects: [\"waitForOpenDelay\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n BLUR: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TRIGGER_POINTERLEAVE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"DELAY.OPEN\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ]\n }\n },\n closing: {\n tags: [\"open\"],\n effects: [\"trackPointerMove\", \"trackInteractOutside\", \"waitForCloseDelay\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n \"CONTROLLED.CLOSE\": {\n target: \"closed\",\n actions: [\"focusParentMenu\", \"restoreParentHighlightedItem\"]\n },\n // don't invoke on open here since the menu is still open (we're only keeping it open)\n MENU_POINTERENTER: {\n target: \"open\",\n actions: [\"clearIntentPolygon\"]\n },\n POINTER_MOVED_AWAY_FROM_SUBMENU: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"focusParentMenu\", \"restoreParentHighlightedItem\"]\n }\n ],\n \"DELAY.CLOSE\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"focusParentMenu\", \"restoreParentHighlightedItem\", \"invokeOnClose\"]\n }\n ]\n }\n },\n closed: {\n tags: [\"closed\"],\n entry: [\"clearHighlightedItem\", \"focusTrigger\", \"resumePointer\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: or(\"isOpenAutoFocusEvent\", \"isArrowDownEvent\"),\n target: \"open\",\n actions: [\"highlightFirstItem\"]\n },\n {\n guard: \"isArrowUpEvent\",\n target: \"open\",\n actions: [\"highlightLastItem\"]\n },\n {\n target: \"open\"\n }\n ],\n CONTEXT_MENU_START: {\n target: \"opening:contextmenu\",\n actions: [\"setAnchorPoint\"]\n },\n CONTEXT_MENU: [\n {\n guard: \"isOpenControlled\",\n actions: [\"setAnchorPoint\", \"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setAnchorPoint\", \"invokeOnOpen\"]\n }\n ],\n TRIGGER_CLICK: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n TRIGGER_POINTERMOVE: {\n guard: \"isTriggerItem\",\n target: \"opening\"\n },\n TRIGGER_BLUR: { target: \"idle\" },\n ARROW_DOWN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"highlightFirstItem\", \"invokeOnOpen\"]\n }\n ],\n ARROW_UP: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"highlightLastItem\", \"invokeOnOpen\"]\n }\n ]\n }\n },\n open: {\n tags: [\"open\"],\n effects: [\"trackInteractOutside\", \"trackPositioning\", \"scrollToHighlightedItem\"],\n entry: [\"focusMenu\", \"resumePointer\"],\n on: {\n \"CONTROLLED.CLOSE\": [\n {\n target: \"closed\",\n guard: \"isArrowLeftEvent\",\n actions: [\"focusParentMenu\"]\n },\n {\n target: \"closed\"\n }\n ],\n TRIGGER_CLICK: [\n {\n guard: and(not(\"isTriggerItem\"), \"isOpenControlled\"),\n actions: [\"invokeOnClose\"]\n },\n {\n guard: not(\"isTriggerItem\"),\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n CONTEXT_MENU: {\n actions: [\"setAnchorPoint\", \"focusMenu\"]\n },\n ARROW_UP: {\n actions: [\"highlightPrevItem\", \"focusMenu\"]\n },\n ARROW_DOWN: {\n actions: [\"highlightNextItem\", \"focusMenu\"]\n },\n ARROW_LEFT: [\n {\n guard: and(\"isSubmenu\", \"isOpenControlled\"),\n actions: [\"invokeOnClose\"]\n },\n {\n guard: \"isSubmenu\",\n target: \"closed\",\n actions: [\"focusParentMenu\", \"invokeOnClose\"]\n }\n ],\n HOME: {\n actions: [\"highlightFirstItem\", \"focusMenu\"]\n },\n END: {\n actions: [\"highlightLastItem\", \"focusMenu\"]\n },\n ARROW_RIGHT: {\n guard: \"isTriggerItemHighlighted\",\n actions: [\"openSubmenu\"]\n },\n ENTER: [\n {\n guard: \"isTriggerItemHighlighted\",\n actions: [\"openSubmenu\"]\n },\n {\n actions: [\"clickHighlightedItem\"]\n }\n ],\n ITEM_POINTERMOVE: [\n {\n guard: not(\"isPointerSuspended\"),\n actions: [\"setHighlightedItem\", \"focusMenu\"]\n },\n {\n actions: [\"setLastHighlightedItem\"]\n }\n ],\n ITEM_POINTERLEAVE: {\n guard: and(not(\"isPointerSuspended\"), not(\"isTriggerItem\")),\n actions: [\"clearHighlightedItem\"]\n },\n ITEM_CLICK: [\n // == grouped ==\n {\n guard: and(\n not(\"isTriggerItemHighlighted\"),\n not(\"isHighlightedItemEditable\"),\n \"closeOnSelect\",\n \"isOpenControlled\"\n ),\n actions: [\"invokeOnSelect\", \"setOptionState\", \"closeRootMenu\", \"invokeOnClose\"]\n },\n {\n guard: and(not(\"isTriggerItemHighlighted\"), not(\"isHighlightedItemEditable\"), \"closeOnSelect\"),\n target: \"closed\",\n actions: [\"invokeOnSelect\", \"setOptionState\", \"closeRootMenu\", \"invokeOnClose\"]\n },\n //\n {\n guard: and(not(\"isTriggerItemHighlighted\"), not(\"isHighlightedItemEditable\")),\n actions: [\"invokeOnSelect\", \"setOptionState\"]\n },\n { actions: [\"setHighlightedItem\"] }\n ],\n TRIGGER_POINTERMOVE: {\n guard: \"isTriggerItem\",\n actions: [\"setIntentPolygon\"]\n },\n TRIGGER_POINTERLEAVE: {\n target: \"closing\"\n },\n ITEM_POINTERDOWN: {\n actions: [\"setHighlightedItem\"]\n },\n TYPEAHEAD: {\n actions: [\"highlightMatchedItem\"]\n },\n FOCUS_MENU: {\n actions: [\"focusMenu\"]\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n closeOnSelect: ({ prop, event }) => !!(event?.closeOnSelect ?? prop(\"closeOnSelect\")),\n // whether the trigger is also a menu item\n isTriggerItem: ({ event }) => isTriggerItem(event.target),\n // whether the trigger item is the active item\n isTriggerItemHighlighted: ({ event, scope, computed }) => {\n const target = event.target ?? scope.getById(computed(\"highlightedId\"));\n return !!target?.hasAttribute(\"aria-controls\");\n },\n isSubmenu: ({ computed }) => computed(\"isSubmenu\"),\n isPointerSuspended: ({ context }) => context.get(\"suspendPointer\"),\n isHighlightedItemEditable: ({ scope, computed }) => isEditableElement(scope.getById(computed(\"highlightedId\"))),\n // guard assertions (for controlled mode)\n isOpenControlled: ({ prop }) => prop(\"open\") !== void 0,\n isArrowLeftEvent: ({ event }) => event.previousEvent?.type === \"ARROW_LEFT\",\n isArrowUpEvent: ({ event }) => event.previousEvent?.type === \"ARROW_UP\",\n isArrowDownEvent: ({ event }) => event.previousEvent?.type === \"ARROW_DOWN\",\n isOpenAutoFocusEvent: ({ event }) => event.previousEvent?.type === \"OPEN_AUTOFOCUS\"\n },\n effects: {\n waitForOpenDelay({ send }) {\n const timer = setTimeout(() => {\n send({ type: \"DELAY.OPEN\" });\n }, 100);\n return () => clearTimeout(timer);\n },\n waitForCloseDelay({ send }) {\n const timer = setTimeout(() => {\n send({ type: \"DELAY.CLOSE\" });\n }, 300);\n return () => clearTimeout(timer);\n },\n waitForLongPress({ send }) {\n const timer = setTimeout(() => {\n send({ type: \"LONG_PRESS.OPEN\" });\n }, 700);\n return () => clearTimeout(timer);\n },\n trackPositioning({ context, prop, scope, refs }) {\n if (!!getContextTriggerEl(scope)) return;\n const positioning = {\n ...prop(\"positioning\"),\n ...refs.get(\"positioningOverride\")\n };\n context.set(\"currentPlacement\", positioning.placement);\n const getPositionerEl2 = () => getPositionerEl(scope);\n return getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...positioning,\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n trackInteractOutside({ refs, scope, prop, computed, send }) {\n const getContentEl2 = () => getContentEl(scope);\n let restoreFocus = true;\n return trackDismissableElement(getContentEl2, {\n defer: true,\n exclude: [getTriggerEl(scope)],\n onInteractOutside: prop(\"onInteractOutside\"),\n onFocusOutside: prop(\"onFocusOutside\"),\n onEscapeKeyDown(event) {\n prop(\"onEscapeKeyDown\")?.(event);\n if (computed(\"isSubmenu\")) event.preventDefault();\n closeRootMenu({ parent: refs.get(\"parent\") });\n },\n onPointerDownOutside(event) {\n const target = getEventTarget(event.detail.originalEvent);\n const isWithinContextTrigger = contains(getContextTriggerEl(scope), target);\n if (isWithinContextTrigger && event.detail.contextmenu) {\n event.preventDefault();\n return;\n }\n restoreFocus = !event.detail.focusable;\n prop(\"onPointerDownOutside\")?.(event);\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\", restoreFocus });\n }\n });\n },\n trackPointerMove({ context, scope, send, refs, flush }) {\n const parent = refs.get(\"parent\");\n flush(() => {\n parent.context.set(\"suspendPointer\", true);\n });\n const doc = scope.getDoc();\n return addDomEvent(doc, \"pointermove\", (e) => {\n const isMovingToSubmenu = isWithinPolygon(context.get(\"intentPolygon\"), {\n x: e.clientX,\n y: e.clientY\n });\n if (!isMovingToSubmenu) {\n send({ type: \"POINTER_MOVED_AWAY_FROM_SUBMENU\" });\n parent.context.set(\"suspendPointer\", false);\n }\n });\n },\n scrollToHighlightedItem({ event, scope, computed }) {\n const exec = () => {\n if (event.type.startsWith(\"ITEM_POINTER\")) return;\n const itemEl = scope.getById(computed(\"highlightedId\"));\n const contentEl2 = getContentEl(scope);\n scrollIntoView(itemEl, { rootEl: contentEl2, block: \"nearest\" });\n };\n raf(() => exec());\n const contentEl = () => getContentEl(scope);\n return observeAttributes(contentEl, {\n defer: true,\n attributes: [\"aria-activedescendant\"],\n callback: exec\n });\n }\n },\n actions: {\n setAnchorPoint({ context, event }) {\n context.set(\"anchorPoint\", event.point);\n },\n setSubmenuPlacement({ computed, refs }) {\n if (!computed(\"isSubmenu\")) return;\n const placement = computed(\"isRtl\") ? \"left-start\" : \"right-start\";\n refs.set(\"positioningOverride\", { placement, gutter: 0 });\n },\n reposition({ context, scope, prop, event, refs }) {\n const getPositionerEl2 = () => getPositionerEl(scope);\n const anchorPoint = context.get(\"anchorPoint\");\n const getAnchorRect = anchorPoint ? () => ({ width: 0, height: 0, ...anchorPoint }) : void 0;\n const positioning = {\n ...prop(\"positioning\"),\n ...refs.get(\"positioningOverride\")\n };\n getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...positioning,\n defer: true,\n getAnchorRect,\n ...event.options ?? {},\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n setOptionState({ event }) {\n if (!event.option) return;\n const { checked, onCheckedChange, type } = event.option;\n if (type === \"radio\") {\n onCheckedChange?.(true);\n } else if (type === \"checkbox\") {\n onCheckedChange?.(!checked);\n }\n },\n clickHighlightedItem({ scope, computed }) {\n const itemEl = scope.getById(computed(\"highlightedId\"));\n if (!itemEl || itemEl.dataset.disabled) return;\n queueMicrotask(() => itemEl.click());\n },\n setIntentPolygon({ context, scope, event }) {\n const menu = getContentEl(scope);\n const placement = context.get(\"currentPlacement\");\n if (!menu || !placement) return;\n const rect = menu.getBoundingClientRect();\n const polygon = getElementPolygon(rect, placement);\n if (!polygon) return;\n const rightSide = getPlacementSide(placement) === \"right\";\n const bleed = rightSide ? -5 : 5;\n context.set(\"intentPolygon\", [{ ...event.point, x: event.point.x + bleed }, ...polygon]);\n },\n clearIntentPolygon({ context }) {\n context.set(\"intentPolygon\", null);\n },\n resumePointer({ refs, flush }) {\n const parent = refs.get(\"parent\");\n if (!parent) return;\n flush(() => {\n parent.context.set(\"suspendPointer\", false);\n });\n },\n setHighlightedItem({ context, event }) {\n const value = event.value || getItemValue(event.target);\n context.set(\"highlightedValue\", value);\n },\n clearHighlightedItem({ context }) {\n context.set(\"highlightedValue\", null);\n },\n focusMenu({ scope }) {\n raf(() => {\n const contentEl = getContentEl(scope);\n const initialFocusEl = getInitialFocus({\n root: contentEl,\n enabled: !contains(contentEl, scope.getActiveElement()),\n filter(node) {\n return !node.role?.startsWith(\"menuitem\");\n }\n });\n initialFocusEl?.focus({ preventScroll: true });\n });\n },\n highlightFirstItem({ context, scope }) {\n const fn = getContentEl(scope) ? queueMicrotask : raf;\n fn(() => {\n const first2 = getFirstEl(scope);\n if (!first2) return;\n context.set(\"highlightedValue\", getItemValue(first2));\n });\n },\n highlightLastItem({ context, scope }) {\n const fn = getContentEl(scope) ? queueMicrotask : raf;\n fn(() => {\n const last2 = getLastEl(scope);\n if (!last2) return;\n context.set(\"highlightedValue\", getItemValue(last2));\n });\n },\n highlightNextItem({ context, scope, event, prop }) {\n const next2 = getNextEl(scope, {\n loop: event.loop,\n value: context.get(\"highlightedValue\"),\n loopFocus: prop(\"loopFocus\")\n });\n context.set(\"highlightedValue\", getItemValue(next2));\n },\n highlightPrevItem({ context, scope, event, prop }) {\n const prev2 = getPrevEl(scope, {\n loop: event.loop,\n value: context.get(\"highlightedValue\"),\n loopFocus: prop(\"loopFocus\")\n });\n context.set(\"highlightedValue\", getItemValue(prev2));\n },\n invokeOnSelect({ context, prop, scope }) {\n const value = context.get(\"highlightedValue\");\n if (value == null) return;\n const node = getItemEl(scope, value);\n dispatchSelectionEvent(node, value);\n prop(\"onSelect\")?.({ value });\n },\n focusTrigger({ scope, context, event, computed }) {\n if (computed(\"isSubmenu\") || context.get(\"anchorPoint\") || event.restoreFocus === false) return;\n queueMicrotask(() => getTriggerEl(scope)?.focus({ preventScroll: true }));\n },\n highlightMatchedItem({ scope, context, event, refs }) {\n const node = getElemByKey(scope, {\n key: event.key,\n value: context.get(\"highlightedValue\"),\n typeaheadState: refs.get(\"typeaheadState\")\n });\n if (!node) return;\n context.set(\"highlightedValue\", getItemValue(node));\n },\n setParentMenu({ refs, event }) {\n refs.set(\"parent\", event.value);\n },\n setChildMenu({ refs, event }) {\n const children = refs.get(\"children\");\n children[event.id] = event.value;\n refs.set(\"children\", children);\n },\n closeRootMenu({ refs }) {\n closeRootMenu({ parent: refs.get(\"parent\") });\n },\n openSubmenu({ refs, scope, computed }) {\n const item = scope.getById(computed(\"highlightedId\"));\n const id = item?.getAttribute(\"data-uid\");\n const children = refs.get(\"children\");\n const child = id ? children[id] : null;\n child?.send({ type: \"OPEN_AUTOFOCUS\" });\n },\n focusParentMenu({ refs }) {\n refs.get(\"parent\")?.send({ type: \"FOCUS_MENU\" });\n },\n setLastHighlightedItem({ context, event }) {\n context.set(\"lastHighlightedValue\", getItemValue(event.target));\n },\n restoreHighlightedItem({ context }) {\n if (!context.get(\"lastHighlightedValue\")) return;\n context.set(\"highlightedValue\", context.get(\"lastHighlightedValue\"));\n context.set(\"lastHighlightedValue\", null);\n },\n restoreParentHighlightedItem({ refs }) {\n refs.get(\"parent\")?.send({ type: \"HIGHLIGHTED.RESTORE\" });\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n toggleVisibility({ prop, event, send }) {\n send({\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n previousEvent: event\n });\n }\n }\n }\n});\nfunction closeRootMenu(ctx) {\n let parent = ctx.parent;\n while (parent && parent.computed(\"isSubmenu\")) {\n parent = parent.refs.get(\"parent\");\n }\n parent?.send({ type: \"CLOSE\" });\n}\nfunction isWithinPolygon(polygon, point) {\n if (!polygon) return false;\n return isPointInPolygon(polygon, point);\n}\nfunction resolveItemId(children, value, scope) {\n const hasChildren = Object.keys(children).length > 0;\n if (!value) return null;\n if (!hasChildren) {\n return getItemId(scope, value);\n }\n for (const id in children) {\n const childMenu = children[id];\n const childTriggerId = getTriggerId(childMenu.scope);\n if (childTriggerId === value) {\n return childTriggerId;\n }\n }\n return getItemId(scope, value);\n}\nvar props = createProps()([\n \"anchorPoint\",\n \"aria-label\",\n \"closeOnSelect\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"dir\",\n \"getRootNode\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"open\",\n \"positioning\",\n \"typeahead\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"closeOnSelect\", \"disabled\", \"value\", \"valueText\"]);\nvar splitItemProps = createSplitProps(itemProps);\nvar itemGroupLabelProps = createProps()([\"htmlFor\"]);\nvar splitItemGroupLabelProps = createSplitProps(itemGroupLabelProps);\nvar itemGroupProps = createProps()([\"id\"]);\nvar splitItemGroupProps = createSplitProps(itemGroupProps);\nvar optionItemProps = createProps()([\n \"checked\",\n \"closeOnSelect\",\n \"disabled\",\n \"onCheckedChange\",\n \"type\",\n \"value\",\n \"valueText\"\n]);\nvar splitOptionItemProps = createSplitProps(optionItemProps);\n\nexport { anatomy, connect, itemGroupLabelProps, itemGroupProps, itemProps, machine, optionItemProps, props, splitItemGroupLabelProps, splitItemGroupProps, splitItemProps, splitOptionItemProps, splitProps };\n","'use client';\nimport * as menu from '@zag-js/menu';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useMenu = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(menu.machine, machineProps);\n const api = menu.connect(service, normalizeProps);\n return { api, service };\n};\n\nexport { useMenu };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuMachineProvider, useMenuMachineContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuMachineProvider, useMenuMachineContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuTriggerItemProvider, useMenuTriggerItemContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenu } from './use-menu.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRoot = (props) => {\n const [presenceProps, menuProps] = splitPresenceProps(props);\n const [useMenuProps, localProps] = createSplitProps()(menuProps, [\n \"anchorPoint\",\n \"aria-label\",\n \"closeOnSelect\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"open\",\n \"positioning\",\n \"typeahead\"\n ]);\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const { api, service } = useMenu(useMenuProps);\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, ...localProps }) }) }) });\n};\n\nexport { MenuRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRootProvider = (props) => {\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const [presenceProps, { value: menu, children }] = splitPresenceProps(props);\n const { api, service } = menu;\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) }) });\n};\n\nexport { MenuRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuSeparator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getSeparatorProps(), props);\n return /* @__PURE__ */ jsx(ark.hr, { ...mergedProps, ref });\n});\nMenuSeparator.displayName = \"MenuSeparator\";\n\nexport { MenuSeparator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...menu.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : menu.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuTrigger.displayName = \"MenuTrigger\";\n\nexport { MenuTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuTriggerItemContext } from './use-menu-trigger-item-context.js';\n\nconst MenuTriggerItem = forwardRef((props, ref) => {\n const getTriggerItemProps = useMenuTriggerItemContext();\n const mergedProps = mergeProps(getTriggerItemProps?.() ?? {}, props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuTriggerItem.displayName = \"MenuTriggerItem\";\n\nexport { MenuTriggerItem };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [CheckboxProvider, useCheckboxContext] = createContext({\n name: \"CheckboxContext\",\n hookName: \"useCheckboxContext\",\n providerName: \"<CheckboxProvider />\"\n});\n\nexport { CheckboxProvider, useCheckboxContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxControl = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nCheckboxControl.displayName = \"CheckboxControl\";\n\nexport { CheckboxControl };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, setElementChecked, trackFormControl, trackPress, dataAttr, visuallyHiddenStyle, getEventTarget } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/checkbox.anatomy.ts\nvar anatomy = createAnatomy(\"checkbox\").parts(\"root\", \"label\", \"control\", \"indicator\");\nvar parts = anatomy.build();\n\n// src/checkbox.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `checkbox:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `checkbox:${ctx.id}:label`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `checkbox:${ctx.id}:control`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `checkbox:${ctx.id}:input`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\n\n// src/checkbox.connect.ts\nfunction connect(service, normalize) {\n const { send, context, prop, computed, scope } = service;\n const disabled = prop(\"disabled\");\n const readOnly = prop(\"readOnly\");\n const invalid = prop(\"invalid\");\n const focused = !disabled && context.get(\"focused\");\n const focusVisible = !disabled && context.get(\"focusVisible\");\n const checked = computed(\"checked\");\n const indeterminate = computed(\"indeterminate\");\n const dataAttrs = {\n \"data-active\": dataAttr(context.get(\"active\")),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focusVisible),\n \"data-readonly\": dataAttr(readOnly),\n \"data-hover\": dataAttr(context.get(\"hovered\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": indeterminate ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\",\n \"data-invalid\": dataAttr(invalid)\n };\n return {\n checked,\n disabled,\n indeterminate,\n focused,\n checkedState: checked,\n setChecked(checked2) {\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: false });\n },\n toggleChecked() {\n send({ type: \"CHECKED.TOGGLE\", checked, isTrusted: false });\n },\n getRootProps() {\n return normalize.label({\n ...parts.root.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n htmlFor: getHiddenInputId(scope),\n onPointerMove() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: true } });\n },\n onPointerLeave() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: false } });\n },\n onClick(event) {\n const target = getEventTarget(event);\n if (target === getHiddenInputEl(scope)) {\n event.stopPropagation();\n }\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope)\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"aria-hidden\": true\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n hidden: !indeterminate && !checked\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: getHiddenInputId(scope),\n type: \"checkbox\",\n required: prop(\"required\"),\n defaultChecked: checked,\n disabled,\n \"aria-labelledby\": getLabelId(scope),\n \"aria-invalid\": invalid,\n name: prop(\"name\"),\n form: prop(\"form\"),\n value: prop(\"value\"),\n style: visuallyHiddenStyle,\n onFocus() {\n const focusVisible2 = isFocusVisible();\n send({ type: \"CONTEXT.SET\", context: { focused: true, focusVisible: focusVisible2 } });\n },\n onBlur() {\n send({ type: \"CONTEXT.SET\", context: { focused: false, focusVisible: false } });\n },\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const checked2 = event.currentTarget.checked;\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: true });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n value: \"on\",\n ...props2,\n defaultChecked: !!props2.defaultChecked\n };\n },\n initialState() {\n return \"ready\";\n },\n context({ prop, bindable }) {\n return {\n checked: bindable(() => ({\n defaultValue: prop(\"defaultChecked\"),\n value: prop(\"checked\"),\n onChange(checked) {\n prop(\"onCheckedChange\")?.({ checked });\n }\n })),\n fieldsetDisabled: bindable(() => ({ defaultValue: false })),\n focusVisible: bindable(() => ({ defaultValue: false })),\n active: bindable(() => ({ defaultValue: false })),\n focused: bindable(() => ({ defaultValue: false })),\n hovered: bindable(() => ({ defaultValue: false }))\n };\n },\n watch({ track, context, prop, action }) {\n track([() => prop(\"disabled\")], () => {\n action([\"removeFocusIfNeeded\"]);\n });\n track([() => context.get(\"checked\")], () => {\n action([\"syncInputElement\"]);\n });\n },\n effects: [\"trackFormControlState\", \"trackPressEvent\", \"trackFocusVisible\"],\n on: {\n \"CHECKED.TOGGLE\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"toggleChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"toggleChecked\"]\n }\n ],\n \"CHECKED.SET\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setChecked\"]\n }\n ],\n \"CONTEXT.SET\": {\n actions: [\"setContext\"]\n }\n },\n computed: {\n indeterminate: ({ context }) => isIndeterminate(context.get(\"checked\")),\n checked: ({ context }) => isChecked(context.get(\"checked\")),\n disabled: ({ context, prop }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n states: {\n ready: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackPressEvent({ context, computed, scope }) {\n if (computed(\"disabled\")) return;\n return trackPress({\n pointerNode: getRootEl(scope),\n keyboardNode: getHiddenInputEl(scope),\n isValidKey: (event) => event.key === \" \",\n onPress: () => context.set(\"active\", false),\n onPressStart: () => context.set(\"active\", true),\n onPressEnd: () => context.set(\"active\", false)\n });\n },\n trackFocusVisible({ computed, scope }) {\n if (computed(\"disabled\")) return;\n return trackFocusVisible({ root: scope.getRootNode?.() });\n },\n trackFormControlState({ context, scope }) {\n return trackFormControl(getHiddenInputEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"checked\", context.initial(\"checked\"));\n }\n });\n }\n },\n actions: {\n setContext({ context, event }) {\n for (const key in event.context) {\n context.set(key, event.context[key]);\n }\n },\n syncInputElement({ context, computed, scope }) {\n const inputEl = getHiddenInputEl(scope);\n if (!inputEl) return;\n setElementChecked(inputEl, computed(\"checked\"));\n inputEl.indeterminate = isIndeterminate(context.get(\"checked\"));\n },\n removeFocusIfNeeded({ context, prop }) {\n if (prop(\"disabled\") && context.get(\"focused\")) {\n context.set(\"focused\", false);\n context.set(\"focusVisible\", false);\n }\n },\n setChecked({ context, event }) {\n context.set(\"checked\", event.checked);\n },\n toggleChecked({ context, computed }) {\n const checked = isIndeterminate(computed(\"checked\")) ? true : !computed(\"checked\");\n context.set(\"checked\", checked);\n },\n dispatchChangeEvent({ computed, scope }) {\n queueMicrotask(() => {\n const inputEl = getHiddenInputEl(scope);\n dispatchInputCheckedEvent(inputEl, { checked: computed(\"checked\") });\n });\n }\n }\n }\n});\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction isChecked(checked) {\n return isIndeterminate(checked) ? false : !!checked;\n}\nvar props = createProps()([\n \"defaultChecked\",\n \"checked\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { anatomy } from '@zag-js/checkbox';\n\nconst checkboxAnatomy = anatomy.extendWith(\"group\");\n\nexport { checkboxAnatomy };\n","'use client';\nimport { useState, useCallback } from 'react';\n\nfunction useControllableState(props) {\n const { value, onChange, defaultValue } = props;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const controlled = value !== void 0;\n const currentValue = controlled ? value : uncontrolledValue;\n const setValue = useCallback(\n (value2) => {\n if (controlled) {\n return onChange?.(value2);\n }\n setUncontrolledValue(value2);\n return onChange?.(value2);\n },\n [controlled, onChange]\n );\n return [currentValue, setValue];\n}\n\nexport { useControllableState };\n","'use client';\nimport { useControllableState } from '../../utils/use-controllable-state.js';\nimport { useEvent } from '../../utils/use-event.js';\n\nfunction useCheckboxGroup(props = {}) {\n const { defaultValue, value: controlledValue, onValueChange, disabled, readOnly, name, invalid } = props;\n const interactive = !(disabled || readOnly);\n const onChangeProp = useEvent(onValueChange, { sync: true });\n const [value, setValue] = useControllableState({\n value: controlledValue,\n defaultValue: defaultValue || [],\n onChange: onChangeProp\n });\n const isChecked = (val) => {\n return value.some((v) => String(v) === String(val));\n };\n const toggleValue = (val) => {\n isChecked(val) ? removeValue(val) : addValue(val);\n };\n const addValue = (val) => {\n if (!interactive) return;\n if (isChecked(val)) return;\n setValue(value.concat(val));\n };\n const removeValue = (val) => {\n if (!interactive) return;\n setValue(value.filter((v) => String(v) !== String(val)));\n };\n const getItemProps = (props2) => {\n return {\n checked: props2.value != null ? isChecked(props2.value) : void 0,\n onCheckedChange() {\n if (props2.value != null) {\n toggleValue(props2.value);\n }\n },\n name,\n disabled,\n readOnly,\n invalid\n };\n };\n return {\n isChecked,\n value,\n name,\n disabled: !!disabled,\n readOnly: !!readOnly,\n invalid: !!invalid,\n setValue,\n addValue,\n toggleValue,\n getItemProps\n };\n}\n\nexport { useCheckboxGroup };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [CheckboxGroupContextProvider, useCheckboxGroupContext] = createContext({\n name: \"CheckboxGroupContext\",\n hookName: \"useCheckboxGroupContext\",\n providerName: \"<CheckboxGroupProvider />\",\n strict: false\n});\n\nexport { CheckboxGroupContextProvider, useCheckboxGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { checkboxAnatomy } from './checkbox.anatomy.js';\nimport { useCheckboxGroup } from './use-checkbox-group.js';\nimport { CheckboxGroupContextProvider } from './use-checkbox-group-context.js';\n\nconst CheckboxGroup = forwardRef((props, ref) => {\n const [checkboxGroupProps, localProps] = createSplitProps()(props, [\n \"defaultValue\",\n \"value\",\n \"onValueChange\",\n \"disabled\",\n \"invalid\",\n \"readOnly\",\n \"name\"\n ]);\n const checkboxGroup = useCheckboxGroup(checkboxGroupProps);\n return /* @__PURE__ */ jsx(CheckboxGroupContextProvider, { value: checkboxGroup, children: /* @__PURE__ */ jsx(ark.div, { ref, role: \"group\", ...localProps, ...checkboxAnatomy.build().group.attrs }) });\n});\nCheckboxGroup.displayName = \"CheckboxGroup\";\n\nexport { CheckboxGroup };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [FieldProvider, useFieldContext] = createContext({\n name: \"FieldContext\",\n hookName: \"useFieldContext\",\n providerName: \"<FieldProvider />\",\n strict: false\n});\n\nexport { FieldProvider, useFieldContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxHiddenInput = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getHiddenInputProps(), props);\n const field = useFieldContext();\n return /* @__PURE__ */ jsx(ark.input, { \"aria-describedby\": field?.ariaDescribedby, ...mergedProps, ref });\n});\nCheckboxHiddenInput.displayName = \"CheckboxHiddenInput\";\n\nexport { CheckboxHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxLabel = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nCheckboxLabel.displayName = \"CheckboxLabel\";\n\nexport { CheckboxLabel };\n","'use client';\nimport * as checkbox from '@zag-js/checkbox';\nimport { mergeProps, useMachine, normalizeProps } from '@zag-js/react';\nimport { useMemo, useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useCheckboxGroupContext } from './use-checkbox-group-context.js';\n\nconst useCheckbox = (ownProps = {}) => {\n const checkboxGroup = useCheckboxGroupContext();\n const field = useFieldContext();\n const props = useMemo(() => {\n return mergeProps(ownProps, checkboxGroup?.getItemProps({ value: ownProps.value }) ?? {});\n }, [ownProps, checkboxGroup]);\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenInput: field?.ids.control\n },\n dir,\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n getRootNode,\n ...props\n };\n const service = useMachine(checkbox.machine, machineProps);\n return checkbox.connect(service, normalizeProps);\n};\n\nexport { useCheckbox };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useCheckbox } from './use-checkbox.js';\nimport { CheckboxProvider } from './use-checkbox-context.js';\n\nconst CheckboxRoot = forwardRef((props, ref) => {\n const [useCheckboxProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n ]);\n const checkbox = useCheckbox(useCheckboxProps);\n const mergedProps = mergeProps(checkbox.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(CheckboxProvider, { value: checkbox, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nCheckboxRoot.displayName = \"CheckboxRoot\";\n\nexport { CheckboxRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { CheckboxProvider } from './use-checkbox-context.js';\n\nconst CheckboxRootProvider = forwardRef((props, ref) => {\n const [{ value: checkbox }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(checkbox.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(CheckboxProvider, { value: checkbox, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nCheckboxRootProvider.displayName = \"CheckboxRootProvider\";\n\nexport { CheckboxRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from './use-field-context.js';\n\nconst FieldErrorText = forwardRef((props, ref) => {\n const field = useFieldContext();\n const mergedProps = mergeProps(field.getErrorTextProps(), props);\n if (field?.invalid) {\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n }\n return null;\n});\nFieldErrorText.displayName = \"FieldErrorText\";\n\nexport { FieldErrorText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from './use-field-context.js';\n\nconst FieldHelperText = forwardRef((props, ref) => {\n const field = useFieldContext();\n const mergedProps = mergeProps(field?.getHelperTextProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nFieldHelperText.displayName = \"FieldHelperText\";\n\nexport { FieldHelperText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from './use-field-context.js';\n\nconst FieldInput = forwardRef((props, ref) => {\n const field = useFieldContext();\n const mergedProps = mergeProps(field?.getInputProps(), props);\n return /* @__PURE__ */ jsx(ark.input, { ...mergedProps, ref });\n});\nFieldInput.displayName = \"FieldInput\";\n\nexport { FieldInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from './use-field-context.js';\n\nconst FieldLabel = forwardRef((props, ref) => {\n const field = useFieldContext();\n const mergedProps = mergeProps(field?.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });\n});\nFieldLabel.displayName = \"FieldLabel\";\n\nexport { FieldLabel };\n","'use client';\nimport { useLayoutEffect, useEffect } from 'react';\n\nconst useSafeLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport { useSafeLayoutEffect };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [FieldsetProvider, useFieldsetContext] = createContext({\n name: \"FieldsetContext\",\n hookName: \"useFieldsetContext\",\n providerName: \"<FieldsetProvider />\",\n strict: false\n});\n\nexport { FieldsetProvider, useFieldsetContext };\n","'use client';\nimport { createAnatomy } from '@zag-js/anatomy';\n\nconst fieldAnatomy = createAnatomy(\"field\").parts(\n \"root\",\n \"errorText\",\n \"helperText\",\n \"input\",\n \"label\",\n \"select\",\n \"textarea\",\n \"requiredIndicator\"\n);\nconst parts = fieldAnatomy.build();\n\nexport { fieldAnatomy, parts };\n","'use client';\nimport { getWindow, dataAttr, ariaAttr } from '@zag-js/dom-query';\nimport { useState, useId, useRef, useMemo } from 'react';\nimport { useSafeLayoutEffect } from '../../utils/use-safe-layout-effect.js';\nimport { useFieldsetContext } from '../fieldset/use-fieldset-context.js';\nimport { parts } from './field.anatomy.js';\n\nconst useField = (props = {}) => {\n const fieldset = useFieldsetContext();\n const { ids, disabled = Boolean(fieldset?.disabled), invalid = false, readOnly = false, required = false } = props;\n const [hasErrorText, setHasErrorText] = useState(false);\n const [hasHelperText, setHasHelperText] = useState(false);\n const id = props.id ?? useId();\n const rootRef = useRef(null);\n const rootId = ids?.control ?? `field::${id}`;\n const errorTextId = ids?.errorText ?? `field::${id}::error-text`;\n const helperTextId = ids?.helperText ?? `field::${id}::helper-text`;\n const labelId = ids?.label ?? `field::${id}::label`;\n useSafeLayoutEffect(() => {\n const rootNode = rootRef.current;\n if (!rootNode) return;\n const win = getWindow(rootNode);\n const doc = win.document;\n const checkTextElements = () => {\n setHasErrorText(!!doc.getElementById(errorTextId));\n setHasHelperText(!!doc.getElementById(helperTextId));\n };\n checkTextElements();\n const observer = new win.MutationObserver(checkTextElements);\n observer.observe(rootNode, { childList: true, subtree: true });\n return () => observer.disconnect();\n }, [errorTextId, helperTextId]);\n const labelIds = useMemo(() => {\n const ids2 = [];\n if (hasErrorText && invalid) ids2.push(errorTextId);\n if (hasHelperText) ids2.push(helperTextId);\n return ids2.join(\" \") || void 0;\n }, [invalid, errorTextId, helperTextId, hasErrorText, hasHelperText]);\n const getRootProps = useMemo(\n () => () => ({\n ...parts.root.attrs,\n id: rootId,\n ref: rootRef,\n role: \"group\",\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly)\n }),\n [disabled, invalid, readOnly, rootId]\n );\n const getLabelProps = useMemo(\n () => () => ({\n ...parts.label.attrs,\n id: labelId,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n htmlFor: id\n }),\n [disabled, invalid, readOnly, id, labelId]\n );\n const getControlProps = useMemo(\n () => () => ({\n \"aria-describedby\": labelIds,\n \"aria-invalid\": ariaAttr(invalid),\n \"data-invalid\": dataAttr(invalid),\n \"data-required\": dataAttr(required),\n \"data-readonly\": dataAttr(readOnly),\n id,\n required,\n disabled,\n readOnly\n }),\n [labelIds, invalid, required, readOnly, id, disabled]\n );\n const getInputProps = useMemo(\n () => () => ({\n ...getControlProps(),\n ...parts.input.attrs\n }),\n [getControlProps]\n );\n const getTextareaProps = useMemo(\n () => () => ({\n ...getControlProps(),\n ...parts.textarea.attrs\n }),\n [getControlProps]\n );\n const getSelectProps = useMemo(\n () => () => ({\n ...getControlProps(),\n ...parts.select.attrs\n }),\n [getControlProps]\n );\n const getHelperTextProps = useMemo(\n () => () => ({\n id: helperTextId,\n ...parts.helperText.attrs,\n \"data-disabled\": dataAttr(disabled)\n }),\n [disabled, helperTextId]\n );\n const getErrorTextProps = useMemo(\n () => () => ({\n id: errorTextId,\n ...parts.errorText.attrs,\n \"aria-live\": \"polite\"\n }),\n [errorTextId]\n );\n const getRequiredIndicatorProps = useMemo(\n () => () => ({\n \"aria-hidden\": true,\n ...parts.requiredIndicator.attrs\n }),\n []\n );\n return {\n ariaDescribedby: labelIds,\n ids: {\n root: rootId,\n control: id,\n label: labelId,\n errorText: errorTextId,\n helperText: helperTextId\n },\n refs: {\n rootRef\n },\n disabled,\n invalid,\n readOnly,\n required,\n getLabelProps,\n getRootProps,\n getInputProps,\n getTextareaProps,\n getSelectProps,\n getHelperTextProps,\n getErrorTextProps,\n getRequiredIndicatorProps\n };\n};\n\nexport { useField };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useField } from './use-field.js';\nimport { FieldProvider } from './use-field-context.js';\n\nconst FieldRoot = forwardRef((props, ref) => {\n const [useFieldProps, localProps] = createSplitProps()(props, [\n \"id\",\n \"ids\",\n \"disabled\",\n \"invalid\",\n \"readOnly\",\n \"required\"\n ]);\n const field = useField(useFieldProps);\n const mergedProps = mergeProps(field.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(FieldProvider, { value: field, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(ref, field.refs.rootRef) }) });\n});\nFieldRoot.displayName = \"FieldRoot\";\n\nexport { FieldRoot };\n","import { getDocument, getWindow, getComputedStyle } from '@zag-js/dom-query';\n\n// src/autoresize-input.ts\nfunction getVisualStyles(node) {\n if (!node) return;\n const style = getComputedStyle(node);\n return \"box-sizing:\" + style.boxSizing + \";border-left:\" + style.borderLeftWidth + \" solid red;border-right:\" + style.borderRightWidth + \" solid red;font-family:\" + style.fontFamily + \";font-feature-settings:\" + style.fontFeatureSettings + \";font-kerning:\" + style.fontKerning + \";font-size:\" + style.fontSize + \";font-stretch:\" + style.fontStretch + \";font-style:\" + style.fontStyle + \";font-variant:\" + style.fontVariant + \";font-variant-caps:\" + style.fontVariantCaps + \";font-variant-ligatures:\" + style.fontVariantLigatures + \";font-variant-numeric:\" + style.fontVariantNumeric + \";font-weight:\" + style.fontWeight + \";letter-spacing:\" + style.letterSpacing + \";margin-left:\" + style.marginLeft + \";margin-right:\" + style.marginRight + \";padding-left:\" + style.paddingLeft + \";padding-right:\" + style.paddingRight + \";text-indent:\" + style.textIndent + \";text-transform:\" + style.textTransform;\n}\n\n// src/autoresize-input.ts\nfunction createGhostElement(doc) {\n var el = doc.createElement(\"div\");\n el.id = \"ghost\";\n el.style.cssText = \"display:inline-block;height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap;\";\n doc.body.appendChild(el);\n return el;\n}\nfunction autoResizeInput(input) {\n if (!input) return;\n const doc = getDocument(input);\n const win = getWindow(input);\n const ghost = createGhostElement(doc);\n const cssText = getVisualStyles(input);\n if (cssText) ghost.style.cssText += cssText;\n function resize() {\n win.requestAnimationFrame(() => {\n ghost.innerHTML = input.value;\n const rect = win.getComputedStyle(ghost);\n input?.style.setProperty(\"width\", rect.width);\n });\n }\n resize();\n input?.addEventListener(\"input\", resize);\n input?.addEventListener(\"change\", resize);\n return () => {\n doc.body.removeChild(ghost);\n input?.removeEventListener(\"input\", resize);\n input?.removeEventListener(\"change\", resize);\n };\n}\nvar autoresizeTextarea = (el) => {\n if (!el) return;\n const style = getComputedStyle(el);\n const win = getWindow(el);\n const doc = getDocument(el);\n const resize = () => {\n requestAnimationFrame(() => {\n el.style.height = \"auto\";\n let newHeight;\n if (style.boxSizing === \"content-box\") {\n newHeight = el.scrollHeight - (parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n } else {\n newHeight = el.scrollHeight + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n }\n if (style.maxHeight !== \"none\" && newHeight > parseFloat(style.maxHeight)) {\n if (style.overflowY === \"hidden\") {\n el.style.overflowY = \"scroll\";\n }\n newHeight = parseFloat(style.maxHeight);\n } else if (style.overflowY !== \"hidden\") {\n el.style.overflowY = \"hidden\";\n }\n el.style.height = `${newHeight}px`;\n });\n };\n el.addEventListener(\"input\", resize);\n el.form?.addEventListener(\"reset\", resize);\n const elementPrototype = Object.getPrototypeOf(el);\n const descriptor = Object.getOwnPropertyDescriptor(elementPrototype, \"value\");\n Object.defineProperty(el, \"value\", {\n ...descriptor,\n set() {\n descriptor?.set?.apply(this, arguments);\n resize();\n }\n });\n const resizeObserver = new win.ResizeObserver(() => {\n requestAnimationFrame(() => resize());\n });\n resizeObserver.observe(el);\n const attrObserver = new win.MutationObserver(() => resize());\n attrObserver.observe(el, { attributes: true, attributeFilter: [\"rows\", \"placeholder\"] });\n doc.fonts?.addEventListener(\"loadingdone\", resize);\n return () => {\n el.removeEventListener(\"input\", resize);\n el.form?.removeEventListener(\"reset\", resize);\n doc.fonts?.removeEventListener(\"loadingdone\", resize);\n resizeObserver.disconnect();\n attrObserver.disconnect();\n };\n};\n\nexport { autoResizeInput, autoresizeTextarea };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { autoresizeTextarea } from '@zag-js/auto-resize';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useRef, useEffect } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from './use-field-context.js';\n\nconst FieldTextarea = forwardRef((props, ref) => {\n const { autoresize, ...textareaProps } = props;\n const textareaRef = useRef(null);\n const field = useFieldContext();\n const mergedProps = mergeProps(\n field?.getTextareaProps(),\n { style: { resize: autoresize ? \"none\" : void 0 } },\n textareaProps\n );\n useEffect(() => {\n if (!autoresize) return;\n return autoresizeTextarea(textareaRef.current);\n }, [autoresize]);\n return /* @__PURE__ */ jsx(ark.textarea, { ...mergedProps, ref: composeRefs(ref, textareaRef) });\n});\nFieldTextarea.displayName = \"FieldTextarea\";\n\nexport { FieldTextarea };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { raf, getComputedStyle, setStyle, getEventTarget, nextTick, dataAttr } from '@zag-js/dom-query';\nimport { createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/collapsible.anatomy.ts\nvar anatomy = createAnatomy(\"collapsible\").parts(\"root\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\n\n// src/collapsible.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `collapsible:${ctx.id}`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `collapsible:${ctx.id}:content`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `collapsible:${ctx.id}:trigger`;\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\n\n// src/collapsible.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, scope, prop } = service;\n const visible = state.matches(\"open\") || state.matches(\"closing\");\n const open = state.matches(\"open\");\n const { width, height } = context.get(\"size\");\n const disabled = !!prop(\"disabled\");\n const skip = !context.get(\"initial\") && open;\n const dir = \"ltr\";\n return {\n disabled,\n visible,\n open,\n measureSize() {\n send({ type: \"size.measure\" });\n },\n setOpen(nextOpen) {\n const open2 = state.matches(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"open\" : \"close\" });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n \"data-state\": open ? \"open\" : \"closed\",\n dir,\n id: getRootId(scope)\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n \"data-collapsible\": \"\",\n \"data-state\": skip ? void 0 : open ? \"open\" : \"closed\",\n id: getContentId(scope),\n \"data-disabled\": dataAttr(disabled),\n hidden: !visible,\n style: {\n \"--height\": height != null ? `${height}px` : void 0,\n \"--width\": width != null ? `${width}px` : void 0\n }\n });\n },\n getTriggerProps() {\n return normalize.element({\n ...parts.trigger.attrs,\n id: getTriggerId(scope),\n dir,\n type: \"button\",\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-disabled\": dataAttr(disabled),\n \"aria-controls\": getContentId(scope),\n \"aria-expanded\": visible || false,\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n send({ type: open ? \"close\" : \"open\" });\n }\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n dir,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-disabled\": dataAttr(disabled)\n });\n }\n };\n}\nvar machine = createMachine({\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n context({ bindable }) {\n return {\n size: bindable(() => ({ defaultValue: { height: 0, width: 0 } })),\n initial: bindable(() => ({ defaultValue: false }))\n };\n },\n refs() {\n return {\n cleanup: void 0,\n stylesRef: void 0\n };\n },\n watch({ track, prop, action }) {\n track([() => prop(\"open\")], () => {\n action([\"setInitial\", \"computeSize\", \"toggleVisibility\"]);\n });\n },\n exit: [\"clearInitial\", \"cleanupNode\"],\n states: {\n closed: {\n on: {\n \"controlled.open\": {\n target: \"open\"\n },\n open: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitial\", \"computeSize\", \"invokeOnOpen\"]\n }\n ]\n }\n },\n closing: {\n effects: [\"trackExitAnimation\"],\n on: {\n \"controlled.close\": {\n target: \"closed\"\n },\n \"controlled.open\": {\n target: \"open\"\n },\n open: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitial\", \"invokeOnOpen\"]\n }\n ],\n close: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnExitComplete\"]\n },\n {\n target: \"closed\",\n actions: [\"setInitial\", \"computeSize\", \"invokeOnExitComplete\"]\n }\n ],\n \"animation.end\": {\n target: \"closed\",\n actions: [\"invokeOnExitComplete\", \"clearInitial\"]\n }\n }\n },\n open: {\n effects: [\"trackEnterAnimation\"],\n on: {\n \"controlled.close\": {\n target: \"closing\"\n },\n close: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closing\",\n actions: [\"setInitial\", \"computeSize\", \"invokeOnClose\"]\n }\n ],\n \"size.measure\": {\n actions: [\"measureSize\"]\n },\n \"animation.end\": {\n actions: [\"clearInitial\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n isOpenControlled: ({ prop }) => prop(\"open\") != void 0\n },\n effects: {\n trackEnterAnimation: ({ send, scope }) => {\n let cleanup;\n const rafCleanup = raf(() => {\n const contentEl = getContentEl(scope);\n if (!contentEl) return;\n const animationName = getComputedStyle(contentEl).animationName;\n const hasNoAnimation = !animationName || animationName === \"none\";\n if (hasNoAnimation) {\n send({ type: \"animation.end\" });\n return;\n }\n const onEnd = (event) => {\n const target = getEventTarget(event);\n if (target === contentEl) {\n send({ type: \"animation.end\" });\n }\n };\n contentEl.addEventListener(\"animationend\", onEnd);\n cleanup = () => {\n contentEl.removeEventListener(\"animationend\", onEnd);\n };\n });\n return () => {\n rafCleanup();\n cleanup?.();\n };\n },\n trackExitAnimation: ({ send, scope }) => {\n let cleanup;\n const rafCleanup = raf(() => {\n const contentEl = getContentEl(scope);\n if (!contentEl) return;\n const animationName = getComputedStyle(contentEl).animationName;\n const hasNoAnimation = !animationName || animationName === \"none\";\n if (hasNoAnimation) {\n send({ type: \"animation.end\" });\n return;\n }\n const onEnd = (event) => {\n const target = getEventTarget(event);\n if (target === contentEl) {\n send({ type: \"animation.end\" });\n }\n };\n contentEl.addEventListener(\"animationend\", onEnd);\n const restoreStyles = setStyle(contentEl, {\n animationFillMode: \"forwards\"\n });\n cleanup = () => {\n contentEl.removeEventListener(\"animationend\", onEnd);\n nextTick(() => restoreStyles());\n };\n });\n return () => {\n rafCleanup();\n cleanup?.();\n };\n }\n },\n actions: {\n setInitial: ({ context }) => {\n context.set(\"initial\", true);\n },\n clearInitial: ({ context }) => {\n context.set(\"initial\", false);\n },\n cleanupNode: ({ refs }) => {\n refs.set(\"stylesRef\", null);\n },\n measureSize: ({ context, flush, scope }) => {\n const contentEl = getContentEl(scope);\n if (!contentEl) return;\n const { height, width } = contentEl.getBoundingClientRect();\n flush(() => {\n context.set(\"size\", { height, width });\n });\n },\n computeSize: ({ refs, scope, flush, context }) => {\n refs.get(\"cleanup\")?.();\n const rafCleanup = raf(() => {\n const contentEl = getContentEl(scope);\n if (!contentEl) return;\n const hidden = contentEl.hidden;\n contentEl.style.animationName = \"none\";\n contentEl.style.animationDuration = \"0s\";\n contentEl.hidden = false;\n const rect = contentEl.getBoundingClientRect();\n flush(() => {\n context.set(\"size\", { height: rect.height, width: rect.width });\n });\n if (context.get(\"initial\")) {\n contentEl.style.animationName = \"\";\n contentEl.style.animationDuration = \"\";\n }\n contentEl.hidden = hidden;\n });\n refs.set(\"cleanup\", rafCleanup);\n },\n invokeOnOpen: ({ prop }) => {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose: ({ prop }) => {\n prop(\"onOpenChange\")?.({ open: false });\n },\n invokeOnExitComplete: ({ prop }) => {\n prop(\"onExitComplete\")?.();\n },\n toggleVisibility: ({ prop, send }) => {\n send({ type: prop(\"open\") ? \"controlled.open\" : \"controlled.close\" });\n }\n }\n }\n});\nvar props = createProps()([\n \"dir\",\n \"disabled\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"onExitComplete\",\n \"onOpenChange\",\n \"defaultOpen\",\n \"open\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { parseColor, getColorAreaGradient, normalizeColor } from '@zag-js/color-utils';\nimport { raf, getInitialFocus, dispatchInputValueEvent, disableTextSelection, trackPointerMove, trackFormControl, setElementValue, getRelativePoint, queryAll, dataAttr, visuallyHiddenStyle, getEventStep, getEventKey, isLeftClick, isModifierKey, getEventPoint, query } from '@zag-js/dom-query';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { tryCatch, createSplitProps } from '@zag-js/utils';\nimport { createProps } from '@zag-js/types';\n\n// src/color-picker.anatomy.ts\nvar anatomy = createAnatomy(\"color-picker\", [\n \"root\",\n \"label\",\n \"control\",\n \"trigger\",\n \"positioner\",\n \"content\",\n \"area\",\n \"areaThumb\",\n \"valueText\",\n \"areaBackground\",\n \"channelSlider\",\n \"channelSliderLabel\",\n \"channelSliderTrack\",\n \"channelSliderThumb\",\n \"channelSliderValueText\",\n \"channelInput\",\n \"transparencyGrid\",\n \"swatchGroup\",\n \"swatchTrigger\",\n \"swatchIndicator\",\n \"swatch\",\n \"eyeDropperTrigger\",\n \"formatTrigger\",\n \"formatSelect\"\n]);\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `color-picker:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `color-picker:${ctx.id}:label`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `color-picker:${ctx.id}:hidden-input`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `color-picker:${ctx.id}:control`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `color-picker:${ctx.id}:trigger`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `color-picker:${ctx.id}:content`;\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `color-picker:${ctx.id}:positioner`;\nvar getFormatSelectId = (ctx) => ctx.ids?.formatSelect ?? `color-picker:${ctx.id}:format-select`;\nvar getAreaId = (ctx) => ctx.ids?.area ?? `color-picker:${ctx.id}:area`;\nvar getAreaGradientId = (ctx) => ctx.ids?.areaGradient ?? `color-picker:${ctx.id}:area-gradient`;\nvar getAreaThumbId = (ctx) => ctx.ids?.areaThumb ?? `color-picker:${ctx.id}:area-thumb`;\nvar getChannelSliderTrackId = (ctx, channel) => ctx.ids?.channelSliderTrack?.(channel) ?? `color-picker:${ctx.id}:slider-track:${channel}`;\nvar getChannelSliderThumbId = (ctx, channel) => ctx.ids?.channelSliderThumb?.(channel) ?? `color-picker:${ctx.id}:slider-thumb:${channel}`;\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getAreaThumbEl = (ctx) => ctx.getById(getAreaThumbId(ctx));\nvar getChannelSliderThumbEl = (ctx, channel) => ctx.getById(getChannelSliderThumbId(ctx, channel));\nvar getFormatSelectEl = (ctx) => ctx.getById(getFormatSelectId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\nvar getAreaEl = (ctx) => ctx.getById(getAreaId(ctx));\nvar getAreaValueFromPoint = (ctx, point) => {\n const areaEl = getAreaEl(ctx);\n if (!areaEl) return;\n const { percent } = getRelativePoint(point, areaEl);\n return percent;\n};\nvar getControlEl = (ctx) => ctx.getById(getControlId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getChannelSliderTrackEl = (ctx, channel) => ctx.getById(getChannelSliderTrackId(ctx, channel));\nvar getChannelSliderValueFromPoint = (ctx, point, channel) => {\n const trackEl = getChannelSliderTrackEl(ctx, channel);\n if (!trackEl) return;\n const { percent } = getRelativePoint(point, trackEl);\n return percent;\n};\nvar getChannelInputEls = (ctx) => {\n return [\n ...queryAll(getContentEl(ctx), \"input[data-channel]\"),\n ...queryAll(getControlEl(ctx), \"input[data-channel]\")\n ];\n};\nfunction getChannelDisplayColor(color, channel) {\n switch (channel) {\n case \"hue\":\n return parseColor(`hsl(${color.getChannelValue(\"hue\")}, 100%, 50%)`);\n case \"lightness\":\n case \"brightness\":\n case \"saturation\":\n case \"red\":\n case \"green\":\n case \"blue\":\n return color.withChannelValue(\"alpha\", 1);\n case \"alpha\": {\n return color;\n }\n default:\n throw new Error(\"Unknown color channel: \" + channel);\n }\n}\nfunction getChannelValue(color, channel) {\n if (channel == null) return \"\";\n if (channel === \"hex\") {\n return color.toString(\"hex\");\n }\n if (channel === \"css\") {\n return color.toString(\"css\");\n }\n if (channel in color) {\n return color.getChannelValue(channel).toString();\n }\n const isHSL = color.getFormat() === \"hsla\";\n switch (channel) {\n case \"hue\":\n return isHSL ? color.toFormat(\"hsla\").getChannelValue(\"hue\").toString() : color.toFormat(\"hsba\").getChannelValue(\"hue\").toString();\n case \"saturation\":\n return isHSL ? color.toFormat(\"hsla\").getChannelValue(\"saturation\").toString() : color.toFormat(\"hsba\").getChannelValue(\"saturation\").toString();\n case \"lightness\":\n return color.toFormat(\"hsla\").getChannelValue(\"lightness\").toString();\n case \"brightness\":\n return color.toFormat(\"hsba\").getChannelValue(\"brightness\").toString();\n case \"red\":\n case \"green\":\n case \"blue\":\n return color.toFormat(\"rgba\").getChannelValue(channel).toString();\n default:\n return color.getChannelValue(channel).toString();\n }\n}\nfunction getChannelRange(color, channel) {\n switch (channel) {\n case \"hex\":\n const minColor = parseColor(\"#000000\");\n const maxColor = parseColor(\"#FFFFFF\");\n return {\n minValue: minColor.toHexInt(),\n maxValue: maxColor.toHexInt(),\n pageSize: 10,\n step: 1\n };\n case \"css\":\n return void 0;\n case \"hue\":\n case \"saturation\":\n case \"lightness\":\n return color.toFormat(\"hsla\").getChannelRange(channel);\n case \"brightness\":\n return color.toFormat(\"hsba\").getChannelRange(channel);\n case \"red\":\n case \"green\":\n case \"blue\":\n return color.toFormat(\"rgba\").getChannelRange(channel);\n default:\n return color.getChannelRange(channel);\n }\n}\n\n// src/utils/get-slider-background.ts\nfunction getSliderBackgroundDirection(orientation, dir) {\n if (orientation === \"vertical\") {\n return \"top\";\n } else if (dir === \"ltr\") {\n return \"right\";\n } else {\n return \"left\";\n }\n}\nvar getSliderBackground = (props2) => {\n const { channel, value, dir, orientation } = props2;\n const bgDirection = getSliderBackgroundDirection(orientation, dir);\n const { minValue, maxValue } = value.getChannelRange(channel);\n switch (channel) {\n case \"hue\":\n return `linear-gradient(to ${bgDirection}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;\n case \"lightness\": {\n let start = value.withChannelValue(channel, minValue).toString(\"css\");\n let middle = value.withChannelValue(channel, (maxValue - minValue) / 2).toString(\"css\");\n let end = value.withChannelValue(channel, maxValue).toString(\"css\");\n return `linear-gradient(to ${bgDirection}, ${start}, ${middle}, ${end})`;\n }\n case \"saturation\":\n case \"brightness\":\n case \"red\":\n case \"green\":\n case \"blue\":\n case \"alpha\": {\n let start = value.withChannelValue(channel, minValue).toString(\"css\");\n let end = value.withChannelValue(channel, maxValue).toString(\"css\");\n return `linear-gradient(to ${bgDirection}, ${start}, ${end})`;\n }\n default:\n throw new Error(\"Unknown color channel: \" + channel);\n }\n};\n\n// src/color-picker.connect.ts\nfunction connect(service, normalize) {\n const { context, send, prop, computed, state, scope } = service;\n const value = context.get(\"value\");\n const format = context.get(\"format\");\n const areaValue = computed(\"areaValue\");\n const valueAsString = computed(\"valueAsString\");\n const disabled = computed(\"disabled\");\n const interactive = computed(\"interactive\");\n const dragging = state.hasTag(\"dragging\");\n const open = state.hasTag(\"open\");\n const focused = state.hasTag(\"focused\");\n const getAreaChannels = (props2) => {\n const channels = areaValue.getChannels();\n return {\n xChannel: props2.xChannel ?? channels[1],\n yChannel: props2.yChannel ?? channels[2]\n };\n };\n const currentPlacement = context.get(\"currentPlacement\");\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: currentPlacement\n });\n function getSwatchTriggerState(props2) {\n const color = normalizeColor(props2.value).toFormat(context.get(\"format\"));\n return {\n value: color,\n valueAsString: color.toString(\"hex\"),\n checked: color.isEqual(value),\n disabled: props2.disabled || !interactive\n };\n }\n return {\n dragging,\n open,\n valueAsString,\n value,\n setOpen(nextOpen) {\n const open2 = state.hasTag(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n setValue(value2) {\n send({ type: \"VALUE.SET\", value: normalizeColor(value2), src: \"set-color\" });\n },\n getChannelValue(channel) {\n return getChannelValue(value, channel);\n },\n getChannelValueText(channel, locale) {\n return value.formatChannelValue(channel, locale);\n },\n setChannelValue(channel, channelValue) {\n const color = value.withChannelValue(channel, channelValue);\n send({ type: \"VALUE.SET\", value: color, src: \"set-channel\" });\n },\n format: context.get(\"format\"),\n setFormat(format2) {\n const formatValue = value.toFormat(format2);\n send({ type: \"VALUE.SET\", value: formatValue, src: \"set-format\" });\n },\n alpha: value.getChannelValue(\"alpha\"),\n setAlpha(alphaValue) {\n const color = value.withChannelValue(\"alpha\", alphaValue);\n send({ type: \"VALUE.SET\", value: color, src: \"set-alpha\" });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n style: {\n \"--value\": value.toString(\"css\")\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope),\n htmlFor: getHiddenInputId(scope),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-focus\": dataAttr(focused),\n onClick(event) {\n event.preventDefault();\n const inputEl = query(getControlEl(scope), \"[data-channel=hex]\");\n inputEl?.focus({ preventScroll: true });\n }\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n id: getControlId(scope),\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-focus\": dataAttr(focused)\n });\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n id: getTriggerId(scope),\n dir: prop(\"dir\"),\n disabled,\n \"aria-label\": `select color. current color is ${valueAsString}`,\n \"aria-controls\": getContentId(scope),\n \"aria-labelledby\": getLabelId(scope),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-placement\": currentPlacement,\n \"aria-expanded\": dataAttr(open),\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-focus\": dataAttr(focused),\n type: \"button\",\n onClick() {\n if (!interactive) return;\n send({ type: \"TRIGGER.CLICK\" });\n },\n onBlur() {\n if (!interactive) return;\n send({ type: \"TRIGGER.BLUR\" });\n },\n style: {\n position: \"relative\"\n }\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n id: getPositionerId(scope),\n dir: prop(\"dir\"),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n id: getContentId(scope),\n dir: prop(\"dir\"),\n tabIndex: -1,\n \"data-placement\": currentPlacement,\n \"data-state\": open ? \"open\" : \"closed\",\n hidden: !open\n });\n },\n getValueTextProps() {\n return normalize.element({\n ...parts.valueText.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-focus\": dataAttr(focused)\n });\n },\n getAreaProps(props2 = {}) {\n const { xChannel, yChannel } = getAreaChannels(props2);\n const { areaStyles } = getColorAreaGradient(areaValue, {\n xChannel,\n yChannel,\n dir: prop(\"dir\")\n });\n return normalize.element({\n ...parts.area.attrs,\n id: getAreaId(scope),\n role: \"group\",\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n onPointerDown(event) {\n if (!interactive) return;\n if (!isLeftClick(event)) return;\n if (isModifierKey(event)) return;\n const point = getEventPoint(event);\n const channel = { xChannel, yChannel };\n send({ type: \"AREA.POINTER_DOWN\", point, channel, id: \"area\" });\n event.preventDefault();\n },\n style: {\n position: \"relative\",\n touchAction: \"none\",\n forcedColorAdjust: \"none\",\n ...areaStyles\n }\n });\n },\n getAreaBackgroundProps(props2 = {}) {\n const { xChannel, yChannel } = getAreaChannels(props2);\n const { areaGradientStyles } = getColorAreaGradient(areaValue, {\n xChannel,\n yChannel,\n dir: prop(\"dir\")\n });\n return normalize.element({\n ...parts.areaBackground.attrs,\n id: getAreaGradientId(scope),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n style: {\n position: \"relative\",\n touchAction: \"none\",\n forcedColorAdjust: \"none\",\n ...areaGradientStyles\n }\n });\n },\n getAreaThumbProps(props2 = {}) {\n const { xChannel, yChannel } = getAreaChannels(props2);\n const channel = { xChannel, yChannel };\n const xPercent = areaValue.getChannelValuePercent(xChannel);\n const yPercent = 1 - areaValue.getChannelValuePercent(yChannel);\n const xValue = areaValue.getChannelValue(xChannel);\n const yValue = areaValue.getChannelValue(yChannel);\n const color = areaValue.withChannelValue(\"alpha\", 1).toString(\"css\");\n return normalize.element({\n ...parts.areaThumb.attrs,\n id: getAreaThumbId(scope),\n dir: prop(\"dir\"),\n tabIndex: disabled ? void 0 : 0,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n role: \"slider\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": xValue,\n \"aria-label\": `${xChannel} and ${yChannel}`,\n \"aria-roledescription\": \"2d slider\",\n \"aria-valuetext\": `${xChannel} ${xValue}, ${yChannel} ${yValue}`,\n style: {\n position: \"absolute\",\n left: `${xPercent * 100}%`,\n top: `${yPercent * 100}%`,\n transform: \"translate(-50%, -50%)\",\n touchAction: \"none\",\n forcedColorAdjust: \"none\",\n \"--color\": color,\n background: color\n },\n onFocus() {\n if (!interactive) return;\n send({ type: \"AREA.FOCUS\", id: \"area\", channel });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n const step = getEventStep(event);\n const keyMap = {\n ArrowUp() {\n send({ type: \"AREA.ARROW_UP\", channel, step });\n },\n ArrowDown() {\n send({ type: \"AREA.ARROW_DOWN\", channel, step });\n },\n ArrowLeft() {\n send({ type: \"AREA.ARROW_LEFT\", channel, step });\n },\n ArrowRight() {\n send({ type: \"AREA.ARROW_RIGHT\", channel, step });\n },\n PageUp() {\n send({ type: \"AREA.PAGE_UP\", channel, step });\n },\n PageDown() {\n send({ type: \"AREA.PAGE_DOWN\", channel, step });\n },\n Escape(event2) {\n event2.stopPropagation();\n }\n };\n const exec = keyMap[getEventKey(event, {\n dir: prop(\"dir\")\n })];\n if (exec) {\n exec(event);\n event.preventDefault();\n }\n }\n });\n },\n getTransparencyGridProps(props2 = {}) {\n const { size = \"12px\" } = props2;\n return normalize.element({\n ...parts.transparencyGrid.attrs,\n style: {\n \"--size\": size,\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n backgroundColor: \"#fff\",\n backgroundImage: \"conic-gradient(#eeeeee 0 25%, transparent 0 50%, #eeeeee 0 75%, transparent 0)\",\n backgroundSize: \"var(--size) var(--size)\",\n inset: \"0px\",\n zIndex: \"auto\",\n pointerEvents: \"none\"\n }\n });\n },\n getChannelSliderProps(props2) {\n const { orientation = \"horizontal\", channel, format: format2 } = props2;\n return normalize.element({\n ...parts.channelSlider.attrs,\n \"data-channel\": channel,\n \"data-orientation\": orientation,\n role: \"presentation\",\n onPointerDown(event) {\n if (!interactive) return;\n if (!isLeftClick(event)) return;\n if (isModifierKey(event)) return;\n const point = getEventPoint(event);\n send({ type: \"CHANNEL_SLIDER.POINTER_DOWN\", channel, format: format2, point, id: channel, orientation });\n event.preventDefault();\n },\n style: {\n position: \"relative\",\n touchAction: \"none\"\n }\n });\n },\n getChannelSliderTrackProps(props2) {\n const { orientation = \"horizontal\", channel, format: format2 } = props2;\n const normalizedValue = format2 ? value.toFormat(format2) : areaValue;\n return normalize.element({\n ...parts.channelSliderTrack.attrs,\n id: getChannelSliderTrackId(scope, channel),\n role: \"group\",\n \"data-channel\": channel,\n \"data-orientation\": orientation,\n style: {\n position: \"relative\",\n forcedColorAdjust: \"none\",\n backgroundImage: getSliderBackground({\n orientation,\n channel,\n dir: prop(\"dir\"),\n value: normalizedValue\n })\n }\n });\n },\n getChannelSliderLabelProps(props2) {\n const { channel } = props2;\n return normalize.element({\n ...parts.channelSliderLabel.attrs,\n \"data-channel\": channel,\n onClick(event) {\n if (!interactive) return;\n event.preventDefault();\n const thumbId = getChannelSliderThumbId(scope, channel);\n scope.getById(thumbId)?.focus({ preventScroll: true });\n },\n style: {\n userSelect: \"none\",\n WebkitUserSelect: \"none\"\n }\n });\n },\n getChannelSliderValueTextProps(props2) {\n return normalize.element({\n ...parts.channelSliderValueText.attrs,\n \"data-channel\": props2.channel\n });\n },\n getChannelSliderThumbProps(props2) {\n const { orientation = \"horizontal\", channel, format: format2 } = props2;\n const normalizedValue = format2 ? value.toFormat(format2) : areaValue;\n const channelRange = normalizedValue.getChannelRange(channel);\n const channelValue = normalizedValue.getChannelValue(channel);\n const offset = (channelValue - channelRange.minValue) / (channelRange.maxValue - channelRange.minValue);\n const placementStyles = orientation === \"horizontal\" ? { left: `${offset * 100}%`, top: \"50%\" } : { top: `${offset * 100}%`, left: \"50%\" };\n return normalize.element({\n ...parts.channelSliderThumb.attrs,\n id: getChannelSliderThumbId(scope, channel),\n role: \"slider\",\n \"aria-label\": channel,\n tabIndex: disabled ? void 0 : 0,\n \"data-channel\": channel,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"aria-disabled\": dataAttr(disabled),\n \"aria-orientation\": orientation,\n \"aria-valuemax\": channelRange.maxValue,\n \"aria-valuemin\": channelRange.minValue,\n \"aria-valuenow\": channelValue,\n \"aria-valuetext\": `${channel} ${channelValue}`,\n style: {\n forcedColorAdjust: \"none\",\n position: \"absolute\",\n background: getChannelDisplayColor(areaValue, channel).toString(\"css\"),\n ...placementStyles\n },\n onFocus() {\n if (!interactive) return;\n send({ type: \"CHANNEL_SLIDER.FOCUS\", channel });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n const step = getEventStep(event) * channelRange.step;\n const keyMap = {\n ArrowUp() {\n send({ type: \"CHANNEL_SLIDER.ARROW_UP\", channel, step });\n },\n ArrowDown() {\n send({ type: \"CHANNEL_SLIDER.ARROW_DOWN\", channel, step });\n },\n ArrowLeft() {\n send({ type: \"CHANNEL_SLIDER.ARROW_LEFT\", channel, step });\n },\n ArrowRight() {\n send({ type: \"CHANNEL_SLIDER.ARROW_RIGHT\", channel, step });\n },\n PageUp() {\n send({ type: \"CHANNEL_SLIDER.PAGE_UP\", channel });\n },\n PageDown() {\n send({ type: \"CHANNEL_SLIDER.PAGE_DOWN\", channel });\n },\n Home() {\n send({ type: \"CHANNEL_SLIDER.HOME\", channel });\n },\n End() {\n send({ type: \"CHANNEL_SLIDER.END\", channel });\n },\n Escape(event2) {\n event2.stopPropagation();\n }\n };\n const exec = keyMap[getEventKey(event, {\n dir: prop(\"dir\")\n })];\n if (exec) {\n exec(event);\n event.preventDefault();\n }\n }\n });\n },\n getChannelInputProps(props2) {\n const { channel } = props2;\n const isTextField = channel === \"hex\" || channel === \"css\";\n const channelRange = getChannelRange(value, channel);\n return normalize.input({\n ...parts.channelInput.attrs,\n dir: prop(\"dir\"),\n type: isTextField ? \"text\" : \"number\",\n \"data-channel\": channel,\n \"aria-label\": channel,\n spellCheck: false,\n autoComplete: \"off\",\n disabled,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n readOnly: prop(\"readOnly\"),\n defaultValue: getChannelValue(value, channel),\n min: channelRange?.minValue,\n max: channelRange?.maxValue,\n step: channelRange?.step,\n onBeforeInput(event) {\n if (isTextField || !interactive) return;\n const value2 = event.currentTarget.value;\n if (value2.match(/[^0-9.]/g)) {\n event.preventDefault();\n }\n },\n onFocus(event) {\n if (!interactive) return;\n send({ type: \"CHANNEL_INPUT.FOCUS\", channel });\n event.currentTarget.select();\n },\n onBlur(event) {\n if (!interactive) return;\n const value2 = isTextField ? event.currentTarget.value : event.currentTarget.valueAsNumber;\n send({ type: \"CHANNEL_INPUT.BLUR\", channel, value: value2, isTextField });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n if (event.key === \"Enter\") {\n const value2 = isTextField ? event.currentTarget.value : event.currentTarget.valueAsNumber;\n send({ type: \"CHANNEL_INPUT.CHANGE\", channel, value: value2, isTextField });\n event.preventDefault();\n }\n },\n style: {\n appearance: \"none\",\n WebkitAppearance: \"none\",\n MozAppearance: \"textfield\"\n }\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n type: \"text\",\n disabled,\n name: prop(\"name\"),\n tabIndex: -1,\n readOnly: prop(\"readOnly\"),\n required: prop(\"required\"),\n id: getHiddenInputId(scope),\n style: visuallyHiddenStyle,\n defaultValue: valueAsString\n });\n },\n getEyeDropperTriggerProps() {\n return normalize.button({\n ...parts.eyeDropperTrigger.attrs,\n type: \"button\",\n dir: prop(\"dir\"),\n disabled,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n \"aria-label\": \"Pick a color from the screen\",\n onClick() {\n if (!interactive) return;\n send({ type: \"EYEDROPPER.CLICK\" });\n }\n });\n },\n getSwatchGroupProps() {\n return normalize.element({\n ...parts.swatchGroup.attrs,\n role: \"group\"\n });\n },\n getSwatchTriggerState,\n getSwatchTriggerProps(props2) {\n const swatchState = getSwatchTriggerState(props2);\n return normalize.button({\n ...parts.swatchTrigger.attrs,\n disabled: swatchState.disabled,\n dir: prop(\"dir\"),\n type: \"button\",\n \"aria-label\": `select ${swatchState.valueAsString} as the color`,\n \"data-state\": swatchState.checked ? \"checked\" : \"unchecked\",\n \"data-value\": swatchState.valueAsString,\n \"data-disabled\": dataAttr(swatchState.disabled),\n onClick() {\n if (swatchState.disabled) return;\n send({ type: \"SWATCH_TRIGGER.CLICK\", value: swatchState.value });\n },\n style: {\n \"--color\": swatchState.valueAsString,\n position: \"relative\"\n }\n });\n },\n getSwatchIndicatorProps(props2) {\n const swatchState = getSwatchTriggerState(props2);\n return normalize.element({\n ...parts.swatchIndicator.attrs,\n dir: prop(\"dir\"),\n hidden: !swatchState.checked\n });\n },\n getSwatchProps(props2) {\n const { respectAlpha = true } = props2;\n const swatchState = getSwatchTriggerState(props2);\n const color = swatchState.value.toString(respectAlpha ? \"css\" : \"hex\");\n return normalize.element({\n ...parts.swatch.attrs,\n dir: prop(\"dir\"),\n \"data-state\": swatchState.checked ? \"checked\" : \"unchecked\",\n \"data-value\": swatchState.valueAsString,\n style: {\n \"--color\": color,\n position: \"relative\",\n background: color\n }\n });\n },\n getFormatTriggerProps() {\n return normalize.button({\n ...parts.formatTrigger.attrs,\n dir: prop(\"dir\"),\n type: \"button\",\n \"aria-label\": `change color format to ${getNextFormat(format)}`,\n onClick(event) {\n if (event.currentTarget.disabled) return;\n const nextFormat = getNextFormat(format);\n send({ type: \"FORMAT.SET\", format: nextFormat, src: \"format-trigger\" });\n }\n });\n },\n getFormatSelectProps() {\n return normalize.select({\n ...parts.formatSelect.attrs,\n \"aria-label\": \"change color format\",\n dir: prop(\"dir\"),\n defaultValue: prop(\"format\"),\n disabled,\n onChange(event) {\n const format2 = assertFormat(event.currentTarget.value);\n send({ type: \"FORMAT.SET\", format: format2, src: \"format-select\" });\n }\n });\n }\n };\n}\nvar formats = [\"hsba\", \"hsla\", \"rgba\"];\nvar formatRegex = new RegExp(`^(${formats.join(\"|\")})$`);\nfunction getNextFormat(format) {\n const index = formats.indexOf(format);\n return formats[index + 1] ?? formats[0];\n}\nfunction assertFormat(format) {\n if (formatRegex.test(format)) return format;\n throw new Error(`Unsupported color format: ${format}`);\n}\nvar parse = (colorString) => {\n return parseColor(colorString);\n};\n\n// src/color-picker.machine.ts\nvar { and } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n defaultValue: parse(\"#000000\"),\n defaultFormat: \"rgba\",\n openAutoFocus: true,\n ...props2,\n positioning: {\n placement: \"bottom\",\n ...props2.positioning\n }\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"idle\";\n },\n context({ prop, bindable, getContext }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n isEqual(a, b) {\n return a.toString(\"css\") === b?.toString(\"css\");\n },\n hash(a) {\n return a.toString(\"css\");\n },\n onChange(value) {\n const ctx = getContext();\n const valueAsString = value.toString(ctx.get(\"format\"));\n prop(\"onValueChange\")?.({ value, valueAsString });\n }\n })),\n format: bindable(() => ({\n defaultValue: prop(\"defaultFormat\"),\n value: prop(\"format\"),\n onChange(format) {\n prop(\"onFormatChange\")?.({ format });\n }\n })),\n activeId: bindable(() => ({ defaultValue: null })),\n activeChannel: bindable(() => ({ defaultValue: null })),\n activeOrientation: bindable(() => ({ defaultValue: null })),\n fieldsetDisabled: bindable(() => ({ defaultValue: false })),\n restoreFocus: bindable(() => ({ defaultValue: true })),\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n }))\n };\n },\n computed: {\n rtl: ({ prop }) => prop(\"dir\") === \"rtl\",\n disabled: ({ prop, context }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\"),\n interactive: ({ prop }) => !(prop(\"disabled\") || prop(\"readOnly\")),\n valueAsString: ({ context }) => context.get(\"value\").toString(context.get(\"format\")),\n areaValue: ({ context }) => {\n const format = context.get(\"format\").startsWith(\"hsl\") ? \"hsla\" : \"hsba\";\n return context.get(\"value\").toFormat(format);\n }\n },\n effects: [\"trackFormControl\"],\n watch({ prop, context, action, track }) {\n track([() => context.hash(\"value\")], () => {\n action([\"syncInputElements\", \"dispatchChangeEvent\"]);\n });\n track([() => context.get(\"format\")], () => {\n action([\"syncFormatSelectElement\"]);\n });\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n on: {\n \"VALUE.SET\": {\n actions: [\"setValue\"]\n },\n \"FORMAT.SET\": {\n actions: [\"setFormat\"]\n },\n \"CHANNEL_INPUT.CHANGE\": {\n actions: [\"setChannelColorFromInput\"]\n },\n \"EYEDROPPER.CLICK\": {\n actions: [\"openEyeDropper\"]\n },\n \"SWATCH_TRIGGER.CLICK\": {\n actions: [\"setValue\"]\n }\n },\n states: {\n idle: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\"]\n }\n ],\n \"CHANNEL_INPUT.FOCUS\": {\n target: \"focused\",\n actions: [\"setActiveChannel\"]\n }\n }\n },\n focused: {\n tags: [\"closed\", \"focused\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\"]\n }\n ],\n \"CHANNEL_INPUT.FOCUS\": {\n actions: [\"setActiveChannel\"]\n },\n \"CHANNEL_INPUT.BLUR\": {\n target: \"idle\",\n actions: [\"setChannelColorFromInput\"]\n },\n \"TRIGGER.BLUR\": {\n target: \"idle\"\n }\n }\n },\n open: {\n tags: [\"open\"],\n effects: [\"trackPositioning\", \"trackDismissableElement\"],\n on: {\n \"CONTROLLED.CLOSE\": [\n {\n guard: \"shouldRestoreFocus\",\n target: \"focused\",\n actions: [\"setReturnFocus\"]\n },\n {\n target: \"idle\"\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"idle\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"AREA.POINTER_DOWN\": {\n target: \"open:dragging\",\n actions: [\"setActiveChannel\", \"setAreaColorFromPoint\", \"focusAreaThumb\"]\n },\n \"AREA.FOCUS\": {\n actions: [\"setActiveChannel\"]\n },\n \"CHANNEL_SLIDER.POINTER_DOWN\": {\n target: \"open:dragging\",\n actions: [\"setActiveChannel\", \"setChannelColorFromPoint\", \"focusChannelThumb\"]\n },\n \"CHANNEL_SLIDER.FOCUS\": {\n actions: [\"setActiveChannel\"]\n },\n \"AREA.ARROW_LEFT\": {\n actions: [\"decrementAreaXChannel\"]\n },\n \"AREA.ARROW_RIGHT\": {\n actions: [\"incrementAreaXChannel\"]\n },\n \"AREA.ARROW_UP\": {\n actions: [\"incrementAreaYChannel\"]\n },\n \"AREA.ARROW_DOWN\": {\n actions: [\"decrementAreaYChannel\"]\n },\n \"AREA.PAGE_UP\": {\n actions: [\"incrementAreaXChannel\"]\n },\n \"AREA.PAGE_DOWN\": {\n actions: [\"decrementAreaXChannel\"]\n },\n \"CHANNEL_SLIDER.ARROW_LEFT\": {\n actions: [\"decrementChannel\"]\n },\n \"CHANNEL_SLIDER.ARROW_RIGHT\": {\n actions: [\"incrementChannel\"]\n },\n \"CHANNEL_SLIDER.ARROW_UP\": {\n actions: [\"incrementChannel\"]\n },\n \"CHANNEL_SLIDER.ARROW_DOWN\": {\n actions: [\"decrementChannel\"]\n },\n \"CHANNEL_SLIDER.PAGE_UP\": {\n actions: [\"incrementChannel\"]\n },\n \"CHANNEL_SLIDER.PAGE_DOWN\": {\n actions: [\"decrementChannel\"]\n },\n \"CHANNEL_SLIDER.HOME\": {\n actions: [\"setChannelToMin\"]\n },\n \"CHANNEL_SLIDER.END\": {\n actions: [\"setChannelToMax\"]\n },\n \"CHANNEL_INPUT.BLUR\": {\n actions: [\"setChannelColorFromInput\"]\n },\n INTERACT_OUTSIDE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n guard: \"shouldRestoreFocus\",\n target: \"focused\",\n actions: [\"invokeOnClose\", \"setReturnFocus\"]\n },\n {\n target: \"idle\",\n actions: [\"invokeOnClose\"]\n }\n ],\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"idle\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"SWATCH_TRIGGER.CLICK\": [\n {\n guard: and(\"isOpenControlled\", \"closeOnSelect\"),\n actions: [\"setValue\", \"invokeOnClose\"]\n },\n {\n guard: \"closeOnSelect\",\n target: \"focused\",\n actions: [\"setValue\", \"invokeOnClose\", \"setReturnFocus\"]\n },\n {\n actions: [\"setValue\"]\n }\n ]\n }\n },\n \"open:dragging\": {\n tags: [\"open\"],\n exit: [\"clearActiveChannel\"],\n effects: [\"trackPointerMove\", \"disableTextSelection\", \"trackPositioning\", \"trackDismissableElement\"],\n on: {\n \"CONTROLLED.CLOSE\": [\n {\n guard: \"shouldRestoreFocus\",\n target: \"focused\",\n actions: [\"setReturnFocus\"]\n },\n {\n target: \"idle\"\n }\n ],\n \"AREA.POINTER_MOVE\": {\n actions: [\"setAreaColorFromPoint\", \"focusAreaThumb\"]\n },\n \"AREA.POINTER_UP\": {\n target: \"open\",\n actions: [\"invokeOnChangeEnd\"]\n },\n \"CHANNEL_SLIDER.POINTER_MOVE\": {\n actions: [\"setChannelColorFromPoint\", \"focusChannelThumb\"]\n },\n \"CHANNEL_SLIDER.POINTER_UP\": {\n target: \"open\",\n actions: [\"invokeOnChangeEnd\"]\n },\n INTERACT_OUTSIDE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n guard: \"shouldRestoreFocus\",\n target: \"focused\",\n actions: [\"invokeOnClose\", \"setReturnFocus\"]\n },\n {\n target: \"idle\",\n actions: [\"invokeOnClose\"]\n }\n ],\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"idle\",\n actions: [\"invokeOnClose\"]\n }\n ]\n }\n }\n },\n implementations: {\n guards: {\n closeOnSelect: ({ prop }) => !!prop(\"closeOnSelect\"),\n isOpenControlled: ({ prop }) => prop(\"open\") != null,\n shouldRestoreFocus: ({ context }) => !!context.get(\"restoreFocus\")\n },\n effects: {\n trackPositioning({ context, prop, scope }) {\n if (!context.get(\"currentPlacement\")) {\n context.set(\"currentPlacement\", prop(\"positioning\")?.placement);\n }\n const anchorEl = getTriggerEl(scope);\n const getPositionerEl2 = () => getPositionerEl(scope);\n return getPlacement(anchorEl, getPositionerEl2, {\n ...prop(\"positioning\"),\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n trackDismissableElement({ context, scope, prop, send }) {\n const getContentEl2 = () => getContentEl(scope);\n return trackDismissableElement(getContentEl2, {\n exclude: getTriggerEl(scope),\n defer: true,\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n if (event.defaultPrevented) return;\n context.set(\"restoreFocus\", !(event.detail.focusable || event.detail.contextmenu));\n },\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onFocusOutside: prop(\"onFocusOutside\"),\n onDismiss() {\n send({ type: \"INTERACT_OUTSIDE\" });\n }\n });\n },\n trackFormControl({ context, scope, send }) {\n const inputEl = getHiddenInputEl(scope);\n return trackFormControl(inputEl, {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n send({ type: \"VALUE.SET\", value: context.initial(\"value\"), src: \"form.reset\" });\n }\n });\n },\n trackPointerMove({ context, scope, event, send }) {\n return trackPointerMove(scope.getDoc(), {\n onPointerMove({ point }) {\n const type = context.get(\"activeId\") === \"area\" ? \"AREA.POINTER_MOVE\" : \"CHANNEL_SLIDER.POINTER_MOVE\";\n send({ type, point, format: event.format });\n },\n onPointerUp() {\n const type = context.get(\"activeId\") === \"area\" ? \"AREA.POINTER_UP\" : \"CHANNEL_SLIDER.POINTER_UP\";\n send({ type });\n }\n });\n },\n disableTextSelection({ scope }) {\n return disableTextSelection({\n doc: scope.getDoc(),\n target: getContentEl(scope)\n });\n }\n },\n actions: {\n openEyeDropper({ scope, context }) {\n const win = scope.getWin();\n const isSupported = \"EyeDropper\" in win;\n if (!isSupported) return;\n const picker = new win.EyeDropper();\n picker.open().then(({ sRGBHex }) => {\n const format = context.get(\"value\").getFormat();\n const color = parseColor(sRGBHex).toFormat(format);\n context.set(\"value\", color);\n }).catch(() => void 0);\n },\n setActiveChannel({ context, event }) {\n context.set(\"activeId\", event.id);\n if (event.channel) context.set(\"activeChannel\", event.channel);\n if (event.orientation) context.set(\"activeOrientation\", event.orientation);\n },\n clearActiveChannel({ context }) {\n context.set(\"activeChannel\", null);\n context.set(\"activeId\", null);\n context.set(\"activeOrientation\", null);\n },\n setAreaColorFromPoint({ context, event, computed, scope }) {\n const v = event.format ? context.get(\"value\").toFormat(event.format) : computed(\"areaValue\");\n const { xChannel, yChannel } = event.channel || context.get(\"activeChannel\");\n const percent = getAreaValueFromPoint(scope, event.point);\n if (!percent) return;\n const xValue = v.getChannelPercentValue(xChannel, percent.x);\n const yValue = v.getChannelPercentValue(yChannel, 1 - percent.y);\n const color = v.withChannelValue(xChannel, xValue).withChannelValue(yChannel, yValue);\n context.set(\"value\", color);\n },\n setChannelColorFromPoint({ context, event, computed, scope }) {\n const channel = event.channel || context.get(\"activeId\");\n const normalizedValue = event.format ? context.get(\"value\").toFormat(event.format) : computed(\"areaValue\");\n const percent = getChannelSliderValueFromPoint(scope, event.point, channel);\n if (!percent) return;\n const orientation = context.get(\"activeOrientation\") || \"horizontal\";\n const channelPercent = orientation === \"horizontal\" ? percent.x : percent.y;\n const value = normalizedValue.getChannelPercentValue(channel, channelPercent);\n const color = normalizedValue.withChannelValue(channel, value);\n context.set(\"value\", color);\n },\n setValue({ context, event }) {\n context.set(\"value\", event.value);\n },\n setFormat({ context, event }) {\n context.set(\"format\", event.format);\n },\n dispatchChangeEvent({ scope, computed }) {\n dispatchInputValueEvent(getHiddenInputEl(scope), { value: computed(\"valueAsString\") });\n },\n syncInputElements({ context, scope }) {\n syncChannelInputs(scope, context.get(\"value\"));\n },\n invokeOnChangeEnd({ context, prop, computed }) {\n prop(\"onValueChangeEnd\")?.({\n value: context.get(\"value\"),\n valueAsString: computed(\"valueAsString\")\n });\n },\n setChannelColorFromInput({ context, event, scope }) {\n const { channel, isTextField, value } = event;\n const currentAlpha = context.get(\"value\").getChannelValue(\"alpha\");\n let color;\n if (channel === \"alpha\") {\n let valueAsNumber = parseFloat(value);\n valueAsNumber = Number.isNaN(valueAsNumber) ? currentAlpha : valueAsNumber;\n color = context.get(\"value\").withChannelValue(\"alpha\", valueAsNumber);\n } else if (isTextField) {\n color = tryCatch(\n () => parse(value).withChannelValue(\"alpha\", currentAlpha),\n () => context.get(\"value\")\n );\n } else {\n const current = context.get(\"value\").toFormat(context.get(\"format\"));\n const valueAsNumber = Number.isNaN(value) ? current.getChannelValue(channel) : value;\n color = current.withChannelValue(channel, valueAsNumber);\n }\n syncChannelInputs(scope, context.get(\"value\"), color);\n context.set(\"value\", color);\n },\n incrementChannel({ context, event }) {\n const color = context.get(\"value\").incrementChannel(event.channel, event.step);\n context.set(\"value\", color);\n },\n decrementChannel({ context, event }) {\n const color = context.get(\"value\").decrementChannel(event.channel, event.step);\n context.set(\"value\", color);\n },\n incrementAreaXChannel({ context, event, computed }) {\n const { xChannel } = event.channel;\n const color = computed(\"areaValue\").incrementChannel(xChannel, event.step);\n context.set(\"value\", color);\n },\n decrementAreaXChannel({ context, event, computed }) {\n const { xChannel } = event.channel;\n const color = computed(\"areaValue\").decrementChannel(xChannel, event.step);\n context.set(\"value\", color);\n },\n incrementAreaYChannel({ context, event, computed }) {\n const { yChannel } = event.channel;\n const color = computed(\"areaValue\").incrementChannel(yChannel, event.step);\n context.set(\"value\", color);\n },\n decrementAreaYChannel({ context, event, computed }) {\n const { yChannel } = event.channel;\n const color = computed(\"areaValue\").decrementChannel(yChannel, event.step);\n context.set(\"value\", color);\n },\n setChannelToMax({ context, event }) {\n const value = context.get(\"value\");\n const range = value.getChannelRange(event.channel);\n const color = value.withChannelValue(event.channel, range.maxValue);\n context.set(\"value\", color);\n },\n setChannelToMin({ context, event }) {\n const value = context.get(\"value\");\n const range = value.getChannelRange(event.channel);\n const color = value.withChannelValue(event.channel, range.minValue);\n context.set(\"value\", color);\n },\n focusAreaThumb({ scope }) {\n raf(() => {\n getAreaThumbEl(scope)?.focus({ preventScroll: true });\n });\n },\n focusChannelThumb({ event, scope }) {\n raf(() => {\n getChannelSliderThumbEl(scope, event.channel)?.focus({ preventScroll: true });\n });\n },\n setInitialFocus({ prop, scope }) {\n if (!prop(\"openAutoFocus\")) return;\n raf(() => {\n const element = getInitialFocus({\n root: getContentEl(scope),\n getInitialEl: prop(\"initialFocusEl\")\n });\n element?.focus({ preventScroll: true });\n });\n },\n setReturnFocus({ scope }) {\n raf(() => {\n getTriggerEl(scope)?.focus({ preventScroll: true });\n });\n },\n syncFormatSelectElement({ context, scope }) {\n syncFormatSelect(scope, context.get(\"format\"));\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n toggleVisibility({ prop, event, send }) {\n send({ type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: event });\n }\n }\n }\n});\nfunction syncChannelInputs(scope, currentValue, nextValue) {\n const channelInputEls = getChannelInputEls(scope);\n raf(() => {\n channelInputEls.forEach((inputEl) => {\n const channel = inputEl.dataset.channel;\n setElementValue(inputEl, getChannelValue(nextValue || currentValue, channel));\n });\n });\n}\nfunction syncFormatSelect(scope, format) {\n const selectEl = getFormatSelectEl(scope);\n if (!selectEl) return;\n raf(() => setElementValue(selectEl, format));\n}\nvar props = createProps()([\n \"closeOnSelect\",\n \"dir\",\n \"disabled\",\n \"format\",\n \"defaultFormat\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"initialFocusEl\",\n \"name\",\n \"positioning\",\n \"onFocusOutside\",\n \"onFormatChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"onValueChangeEnd\",\n \"defaultOpen\",\n \"open\",\n \"positioning\",\n \"required\",\n \"readOnly\",\n \"value\",\n \"defaultValue\",\n \"invalid\",\n \"openAutoFocus\"\n]);\nvar splitProps = createSplitProps(props);\nvar areaProps = createProps()([\"xChannel\", \"yChannel\"]);\nvar splitAreaProps = createSplitProps(areaProps);\nvar channelProps = createProps()([\"channel\", \"orientation\"]);\nvar splitChannelProps = createSplitProps(channelProps);\nvar swatchTriggerProps = createProps()([\"value\", \"disabled\"]);\nvar splitSwatchTriggerProps = createSplitProps(swatchTriggerProps);\nvar swatchProps = createProps()([\"value\", \"respectAlpha\"]);\nvar splitSwatchProps = createSplitProps(swatchProps);\nvar transparencyGridProps = createProps()([\"size\"]);\nvar splitTransparencyGridProps = createSplitProps(transparencyGridProps);\n\nexport { anatomy, areaProps, channelProps, connect, machine, parse, props, splitAreaProps, splitChannelProps, splitProps, splitSwatchProps, splitSwatchTriggerProps, splitTransparencyGridProps, swatchProps, swatchTriggerProps, transparencyGridProps };\n","'use client';\nimport { createContext } from './create-context.js';\nimport { createSplitProps } from './create-split-props.js';\n\nconst [RenderStrategyPropsProvider, useRenderStrategyPropsContext] = createContext({\n name: \"RenderStrategyContext\",\n hookName: \"useRenderStrategyContext\",\n providerName: \"<RenderStrategyPropsProvider />\"\n});\nconst splitRenderStrategyProps = (props) => createSplitProps()(props, [\"lazyMount\", \"unmountOnExit\"]);\n\nexport { RenderStrategyPropsProvider, splitRenderStrategyProps, useRenderStrategyPropsContext };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { prevById, nextById, queryAll, getEventKey, isSafari, dataAttr } from '@zag-js/dom-query';\nimport { warn, last, first, add, remove, createSplitProps } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/accordion.anatomy.ts\nvar anatomy = createAnatomy(\"accordion\").parts(\"root\", \"item\", \"itemTrigger\", \"itemContent\", \"itemIndicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `accordion:${ctx.id}`;\nvar getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `accordion:${ctx.id}:item:${value}`;\nvar getItemContentId = (ctx, value) => ctx.ids?.itemContent?.(value) ?? `accordion:${ctx.id}:content:${value}`;\nvar getItemTriggerId = (ctx, value) => ctx.ids?.itemTrigger?.(value) ?? `accordion:${ctx.id}:trigger:${value}`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getTriggerEls = (ctx) => {\n const ownerId = CSS.escape(getRootId(ctx));\n const selector = `[aria-controls][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getRootEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getTriggerEls(ctx));\nvar getLastTriggerEl = (ctx) => last(getTriggerEls(ctx));\nvar getNextTriggerEl = (ctx, id) => nextById(getTriggerEls(ctx), getItemTriggerId(ctx, id));\nvar getPrevTriggerEl = (ctx, id) => prevById(getTriggerEls(ctx), getItemTriggerId(ctx, id));\n\n// src/accordion.connect.ts\nfunction connect(service, normalize) {\n const { send, context, prop, scope, computed } = service;\n const focusedValue = context.get(\"focusedValue\");\n const value = context.get(\"value\");\n const multiple = prop(\"multiple\");\n function setValue(value2) {\n let nextValue = value2;\n if (!multiple && nextValue.length > 1) {\n nextValue = [nextValue[0]];\n }\n send({ type: \"VALUE.SET\", value: nextValue });\n }\n function getItemState(props2) {\n return {\n expanded: value.includes(props2.value),\n focused: focusedValue === props2.value,\n disabled: Boolean(props2.disabled ?? prop(\"disabled\"))\n };\n }\n return {\n focusedValue,\n value,\n setValue,\n getItemState,\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\")\n });\n },\n getItemProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n id: getItemId(scope, props2.value),\n \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n \"data-focus\": dataAttr(itemState.focused),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-orientation\": prop(\"orientation\")\n });\n },\n getItemContentProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemContent.attrs,\n dir: prop(\"dir\"),\n role: \"region\",\n id: getItemContentId(scope, props2.value),\n \"aria-labelledby\": getItemTriggerId(scope, props2.value),\n hidden: !itemState.expanded,\n \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-focus\": dataAttr(itemState.focused),\n \"data-orientation\": prop(\"orientation\")\n });\n },\n getItemIndicatorProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemIndicator.attrs,\n dir: prop(\"dir\"),\n \"aria-hidden\": true,\n \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-focus\": dataAttr(itemState.focused),\n \"data-orientation\": prop(\"orientation\")\n });\n },\n getItemTriggerProps(props2) {\n const { value: value2 } = props2;\n const itemState = getItemState(props2);\n return normalize.button({\n ...parts.itemTrigger.attrs,\n type: \"button\",\n dir: prop(\"dir\"),\n id: getItemTriggerId(scope, value2),\n \"aria-controls\": getItemContentId(scope, value2),\n \"aria-expanded\": itemState.expanded,\n disabled: itemState.disabled,\n \"data-orientation\": prop(\"orientation\"),\n \"aria-disabled\": itemState.disabled,\n \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n \"data-ownedby\": getRootId(scope),\n onFocus() {\n if (itemState.disabled) return;\n send({ type: \"TRIGGER.FOCUS\", value: value2 });\n },\n onBlur() {\n if (itemState.disabled) return;\n send({ type: \"TRIGGER.BLUR\" });\n },\n onClick(event) {\n if (itemState.disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TRIGGER.CLICK\", value: value2 });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (itemState.disabled) return;\n const keyMap = {\n ArrowDown() {\n if (computed(\"isHorizontal\")) return;\n send({ type: \"GOTO.NEXT\", value: value2 });\n },\n ArrowUp() {\n if (computed(\"isHorizontal\")) return;\n send({ type: \"GOTO.PREV\", value: value2 });\n },\n ArrowRight() {\n if (!computed(\"isHorizontal\")) return;\n send({ type: \"GOTO.NEXT\", value: value2 });\n },\n ArrowLeft() {\n if (!computed(\"isHorizontal\")) return;\n send({ type: \"GOTO.PREV\", value: value2 });\n },\n Home() {\n send({ type: \"GOTO.FIRST\", value: value2 });\n },\n End() {\n send({ type: \"GOTO.LAST\", value: value2 });\n }\n };\n const key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n exec(event);\n event.preventDefault();\n }\n }\n });\n }\n };\n}\nvar { and, not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n collapsible: false,\n multiple: false,\n orientation: \"vertical\",\n defaultValue: [],\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n focusedValue: bindable(() => ({\n defaultValue: null,\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ value });\n }\n })),\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n }))\n };\n },\n computed: {\n isHorizontal: ({ prop }) => prop(\"orientation\") === \"horizontal\"\n },\n on: {\n \"VALUE.SET\": {\n actions: [\"setValue\"]\n }\n },\n states: {\n idle: {\n on: {\n \"TRIGGER.FOCUS\": {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n }\n }\n },\n focused: {\n on: {\n \"GOTO.NEXT\": {\n actions: [\"focusNextTrigger\"]\n },\n \"GOTO.PREV\": {\n actions: [\"focusPrevTrigger\"]\n },\n \"TRIGGER.CLICK\": [\n {\n guard: and(\"isExpanded\", \"canToggle\"),\n actions: [\"collapse\"]\n },\n {\n guard: not(\"isExpanded\"),\n actions: [\"expand\"]\n }\n ],\n \"GOTO.FIRST\": {\n actions: [\"focusFirstTrigger\"]\n },\n \"GOTO.LAST\": {\n actions: [\"focusLastTrigger\"]\n },\n \"TRIGGER.BLUR\": {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n canToggle: ({ prop }) => !!prop(\"collapsible\") || !!prop(\"multiple\"),\n isExpanded: ({ context, event }) => context.get(\"value\").includes(event.value)\n },\n actions: {\n collapse({ context, prop, event }) {\n const next = prop(\"multiple\") ? remove(context.get(\"value\"), event.value) : [];\n context.set(\"value\", next);\n },\n expand({ context, prop, event }) {\n const next = prop(\"multiple\") ? add(context.get(\"value\"), event.value) : [event.value];\n context.set(\"value\", next);\n },\n focusFirstTrigger({ scope }) {\n getFirstTriggerEl(scope)?.focus();\n },\n focusLastTrigger({ scope }) {\n getLastTriggerEl(scope)?.focus();\n },\n focusNextTrigger({ context, scope }) {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, focusedValue);\n triggerEl?.focus();\n },\n focusPrevTrigger({ context, scope }) {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, focusedValue);\n triggerEl?.focus();\n },\n setFocusedValue({ context, event }) {\n context.set(\"focusedValue\", event.value);\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event }) {\n context.set(\"value\", event.value);\n },\n coarseValue({ context, prop }) {\n if (!prop(\"multiple\") && context.get(\"value\").length > 1) {\n warn(`The value of accordion should be a single value when multiple is false.`);\n context.set(\"value\", [context.get(\"value\")[0]]);\n }\n }\n }\n }\n});\nvar props = createProps()([\n \"collapsible\",\n \"dir\",\n \"disabled\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"multiple\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"value\", \"disabled\"]);\nvar splitItemProps = createSplitProps(itemProps);\n\nexport { anatomy, connect, itemProps, machine, props, splitItemProps, splitProps };\n","'use client';\nimport { anatomy } from '@zag-js/color-picker';\n\nconst colorPickerAnatomy = anatomy.extendWith(\"view\");\n\nexport { colorPickerAnatomy };\n","import { compact, isEqual, chunk, prevIndex, nextIndex, isObject, hasProp } from '@zag-js/utils';\n\nvar __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);\nvar fallback = {\n itemToValue(item) {\n if (typeof item === \"string\") return item;\n if (isObject(item) && hasProp(item, \"value\")) return item.value;\n return \"\";\n },\n itemToString(item) {\n if (typeof item === \"string\") return item;\n if (isObject(item) && hasProp(item, \"label\")) return item.label;\n return fallback.itemToValue(item);\n },\n isItemDisabled(item) {\n if (isObject(item) && hasProp(item, \"disabled\")) return !!item.disabled;\n return false;\n }\n};\nvar ListCollection = class _ListCollection {\n constructor(options) {\n this.options = options;\n /**\n * The items in the collection\n */\n __publicField(this, \"items\");\n __publicField(this, \"copy\", (items) => {\n return new _ListCollection({ ...this.options, items: items ?? [...this.items] });\n });\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(this.items, other.items);\n });\n /**\n * Function to update the collection items\n */\n __publicField(this, \"setItems\", (items) => {\n return this.copy(items);\n });\n /**\n * Returns all the values in the collection\n */\n __publicField(this, \"getValues\", (items = this.items) => {\n return Array.from(items).map((item) => this.getItemValue(item)).filter(Boolean);\n });\n /**\n * Get the item based on its value\n */\n __publicField(this, \"find\", (value) => {\n if (value == null) return null;\n const index = this.items.findIndex((item) => this.getItemValue(item) === value);\n return index != null ? this.items[index] : null;\n });\n /**\n * Get the items based on its values\n */\n __publicField(this, \"findMany\", (values) => {\n return Array.from(values).map((value) => this.find(value)).filter((item) => item != null);\n });\n /**\n * Get the item based on its index\n */\n __publicField(this, \"at\", (index) => {\n return this.items[index] ?? null;\n });\n __publicField(this, \"sortFn\", (valueA, valueB) => {\n const indexA = this.indexOf(valueA);\n const indexB = this.indexOf(valueB);\n return (indexA ?? 0) - (indexB ?? 0);\n });\n /**\n * Sort the values based on their index\n */\n __publicField(this, \"sort\", (values) => {\n return [...values].sort(this.sortFn.bind(this));\n });\n /**\n * Convert an item to a value\n */\n __publicField(this, \"getItemValue\", (item) => {\n if (item == null) return null;\n return this.options.itemToValue?.(item) ?? fallback.itemToValue(item);\n });\n /**\n * Whether an item is disabled\n */\n __publicField(this, \"getItemDisabled\", (item) => {\n if (item == null) return false;\n return this.options.isItemDisabled?.(item) ?? fallback.isItemDisabled(item);\n });\n /**\n * Convert an item to a string\n */\n __publicField(this, \"stringifyItem\", (item) => {\n if (item == null) return null;\n return this.options.itemToString?.(item) ?? fallback.itemToString(item);\n });\n /**\n * Convert a value to a string\n */\n __publicField(this, \"stringify\", (value) => {\n if (value == null) return null;\n return this.stringifyItem(this.find(value));\n });\n /**\n * Convert an array of items to a string\n */\n __publicField(this, \"stringifyItems\", (items, separator = \", \") => {\n return Array.from(items).map((item) => this.stringifyItem(item)).filter(Boolean).join(separator);\n });\n /**\n * Convert an array of items to a string\n */\n __publicField(this, \"stringifyMany\", (value, separator) => {\n return this.stringifyItems(this.findMany(value), separator);\n });\n /**\n * Whether the collection has a value\n */\n __publicField(this, \"has\", (value) => {\n return this.indexOf(value) !== -1;\n });\n /**\n * Whether the collection has an item\n */\n __publicField(this, \"hasItem\", (item) => {\n if (item == null) return false;\n return this.has(this.getItemValue(item));\n });\n /**\n * Returns the next value in the collection\n */\n __publicField(this, \"getNextValue\", (value, step = 1, clamp = false) => {\n let index = this.indexOf(value);\n if (index === -1) return null;\n index = clamp ? Math.min(index + step, this.size - 1) : index + step;\n while (index <= this.size && this.getItemDisabled(this.at(index))) index++;\n return this.getItemValue(this.at(index));\n });\n /**\n * Returns the previous value in the collection\n */\n __publicField(this, \"getPreviousValue\", (value, step = 1, clamp = false) => {\n let index = this.indexOf(value);\n if (index === -1) return null;\n index = clamp ? Math.max(index - step, 0) : index - step;\n while (index >= 0 && this.getItemDisabled(this.at(index))) index--;\n return this.getItemValue(this.at(index));\n });\n /**\n * Get the index of an item based on its key\n */\n __publicField(this, \"indexOf\", (value) => {\n if (value == null) return -1;\n return this.items.findIndex((item) => this.getItemValue(item) === value);\n });\n __publicField(this, \"getByText\", (text, current) => {\n let items = current != null ? wrap(this.items, this.indexOf(current)) : this.items;\n const isSingleKey = text.length === 1;\n if (isSingleKey) items = items.filter((item) => this.getItemValue(item) !== current);\n return items.find((item) => match(this.stringifyItem(item), text));\n });\n /**\n * Search for a value based on a query\n */\n __publicField(this, \"search\", (queryString, options) => {\n const { state, currentValue, timeout = 350 } = options;\n const search = state.keysSoFar + queryString;\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const query = isRepeated ? search[0] : search;\n const item = this.getByText(query, currentValue);\n const value = this.getItemValue(item);\n function cleanup() {\n clearTimeout(state.timer);\n state.timer = -1;\n }\n function update(value2) {\n state.keysSoFar = value2;\n cleanup();\n if (value2 !== \"\") {\n state.timer = +setTimeout(() => {\n update(\"\");\n cleanup();\n }, timeout);\n }\n }\n update(search);\n return value;\n });\n __publicField(this, \"update\", (value, item) => {\n let index = this.items.findIndex((item2) => this.getItemValue(item2) === value);\n if (index === -1) return this;\n return this.copy([...this.items.slice(0, index), item, ...this.items.slice(index + 1)]);\n });\n __publicField(this, \"insert\", (index, ...items) => {\n return this.copy(insert(this.items, index, ...items));\n });\n __publicField(this, \"insertBefore\", (value, ...items) => {\n let toIndex = this.indexOf(value);\n if (toIndex === -1) {\n if (this.items.length === 0) toIndex = 0;\n else return this;\n }\n return this.copy(insert(this.items, toIndex, ...items));\n });\n __publicField(this, \"insertAfter\", (value, ...items) => {\n let toIndex = this.indexOf(value);\n if (toIndex === -1) {\n if (this.items.length === 0) toIndex = 0;\n else return this;\n }\n return this.copy(insert(this.items, toIndex + 1, ...items));\n });\n __publicField(this, \"prepend\", (...items) => {\n return this.copy(insert(this.items, 0, ...items));\n });\n __publicField(this, \"append\", (...items) => {\n return this.copy(insert(this.items, this.items.length, ...items));\n });\n __publicField(this, \"remove\", (...itemsOrValues) => {\n const values = itemsOrValues.map(\n (itemOrValue) => typeof itemOrValue === \"string\" ? itemOrValue : this.getItemValue(itemOrValue)\n );\n return this.copy(\n this.items.filter((item) => {\n const value = this.getItemValue(item);\n if (value == null) return false;\n return !values.includes(value);\n })\n );\n });\n __publicField(this, \"move\", (value, toIndex) => {\n const fromIndex = this.indexOf(value);\n if (fromIndex === -1) return this;\n return this.copy(move(this.items, [fromIndex], toIndex));\n });\n __publicField(this, \"reorder\", (fromIndex, toIndex) => {\n return this.copy(move(this.items, [fromIndex], toIndex));\n });\n __publicField(this, \"compareValue\", (a, b) => {\n const indexA = this.indexOf(a);\n const indexB = this.indexOf(b);\n if (indexA < indexB) return -1;\n if (indexA > indexB) return 1;\n return 0;\n });\n __publicField(this, \"range\", (from, to) => {\n let keys = [];\n let key = from;\n while (key != null) {\n let item = this.find(key);\n if (item) keys.push(key);\n if (key === to) return keys;\n key = this.getNextValue(key);\n }\n return [];\n });\n __publicField(this, \"getValueRange\", (from, to) => {\n if (from && to) {\n if (this.compareValue(from, to) <= 0) {\n return this.range(from, to);\n }\n return this.range(to, from);\n }\n return [];\n });\n __publicField(this, \"toString\", () => {\n let result = \"\";\n for (const item of this.items) {\n const value = this.getItemValue(item);\n const label = this.stringifyItem(item);\n const disabled = this.getItemDisabled(item);\n const itemString = [value, label, disabled].filter(Boolean).join(\":\");\n result += itemString + \",\";\n }\n return result;\n });\n __publicField(this, \"toJSON\", () => {\n return {\n size: this.size,\n first: this.firstValue,\n last: this.lastValue\n };\n });\n this.items = [...options.items];\n }\n /**\n * Returns the number of items in the collection\n */\n get size() {\n return this.items.length;\n }\n /**\n * Returns the first value in the collection\n */\n get firstValue() {\n let index = 0;\n while (this.getItemDisabled(this.at(index))) index++;\n return this.getItemValue(this.at(index));\n }\n /**\n * Returns the last value in the collection\n */\n get lastValue() {\n let index = this.size - 1;\n while (this.getItemDisabled(this.at(index))) index--;\n return this.getItemValue(this.at(index));\n }\n *[Symbol.iterator]() {\n yield* this.items;\n }\n};\nvar match = (label, query) => {\n return !!label?.toLowerCase().startsWith(query.toLowerCase());\n};\nvar wrap = (v, idx) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nfunction isListCollection(v) {\n return v instanceof ListCollection;\n}\nfunction insert(items, index, ...values) {\n return [...items.slice(0, index), ...values, ...items.slice(index)];\n}\nfunction move(items, indices, toIndex) {\n indices = [...indices].sort((a, b) => a - b);\n const itemsToMove = indices.map((i) => items[i]);\n for (let i = indices.length - 1; i >= 0; i--) {\n items = [...items.slice(0, indices[i]), ...items.slice(indices[i] + 1)];\n }\n toIndex = Math.max(0, toIndex - indices.filter((i) => i < toIndex).length);\n return [...items.slice(0, toIndex), ...itemsToMove, ...items.slice(toIndex)];\n}\n\n// src/grid-collection.ts\nvar GridCollection = class extends ListCollection {\n constructor(options) {\n const { columnCount } = options;\n super(options);\n __publicField(this, \"columnCount\");\n /**\n * Returns the row data in the grid\n */\n __publicField(this, \"getRows\", () => {\n return chunk([...this.items], this.columnCount);\n });\n /**\n * Returns the number of rows in the grid\n */\n __publicField(this, \"getRowCount\", () => {\n return this.getRows().length;\n });\n /**\n * Returns the index of the specified row and column in the grid\n */\n __publicField(this, \"getCellIndex\", (row, column) => {\n return row * this.columnCount + column;\n });\n /**\n * Returns the item at the specified row and column in the grid\n */\n __publicField(this, \"getCell\", (row, column) => {\n return this.at(this.getCellIndex(row, column));\n });\n /**\n * Returns the row and column index for a given value\n */\n __publicField(this, \"getValueCell\", (value) => {\n const index = this.indexOf(value);\n if (index === -1) return null;\n const row = Math.floor(index / this.columnCount);\n const column = index % this.columnCount;\n return { row, column };\n });\n /**\n * Returns the value of the last enabled column in a row\n */\n __publicField(this, \"getLastEnabledColumnIndex\", (row) => {\n for (let col = this.columnCount - 1; col >= 0; col--) {\n const cell = this.getCell(row, col);\n if (cell && !this.getItemDisabled(cell)) {\n return col;\n }\n }\n return null;\n });\n /**\n * Returns the index of the first enabled column in a row\n */\n __publicField(this, \"getFirstEnabledColumnIndex\", (row) => {\n for (let col = 0; col < this.columnCount; col++) {\n const cell = this.getCell(row, col);\n if (cell && !this.getItemDisabled(cell)) {\n return col;\n }\n }\n return null;\n });\n /**\n * Returns the value of the previous row in the grid, based on the current value\n */\n __publicField(this, \"getPreviousRowValue\", (value, loop = false) => {\n const currentCell = this.getValueCell(value);\n if (currentCell === null) return null;\n const rows = this.getRows();\n const rowCount = this.getRowCount();\n let prevRowIndex = currentCell.row;\n let prevColumnIndex = currentCell.column;\n for (let i = 1; i <= rowCount; i++) {\n prevRowIndex = prevIndex(rows, prevRowIndex, { loop });\n const prevRow = rows[prevRowIndex];\n if (!prevRow) continue;\n const prevCell = prevRow[prevColumnIndex];\n if (!prevCell) {\n const lastColumnIndex = this.getLastEnabledColumnIndex(prevRowIndex);\n if (lastColumnIndex != null) {\n prevColumnIndex = lastColumnIndex;\n }\n }\n const cell = this.getCell(prevRowIndex, prevColumnIndex);\n if (!this.getItemDisabled(cell)) {\n return this.getItemValue(cell);\n }\n }\n return this.firstValue;\n });\n /**\n * Returns the value of the next row in the grid, based on the current value\n */\n __publicField(this, \"getNextRowValue\", (value, loop = false) => {\n const currentCell = this.getValueCell(value);\n if (currentCell === null) return null;\n const rows = this.getRows();\n const rowCount = this.getRowCount();\n let nextRowIndex = currentCell.row;\n let nextColumnIndex = currentCell.column;\n for (let i = 1; i <= rowCount; i++) {\n nextRowIndex = nextIndex(rows, nextRowIndex, { loop });\n const nextRow = rows[nextRowIndex];\n if (!nextRow) continue;\n const nextCell = nextRow[nextColumnIndex];\n if (!nextCell) {\n const lastColumnIndex = this.getLastEnabledColumnIndex(nextRowIndex);\n if (lastColumnIndex != null) {\n nextColumnIndex = lastColumnIndex;\n }\n }\n const cell = this.getCell(nextRowIndex, nextColumnIndex);\n if (!this.getItemDisabled(cell)) {\n return this.getItemValue(cell);\n }\n }\n return this.lastValue;\n });\n this.columnCount = columnCount;\n }\n};\nfunction isGridCollection(v) {\n return v instanceof GridCollection;\n}\n\n// src/tree-visit.ts\nfunction access(node, indexPath, options) {\n for (let i = 0; i < indexPath.length; i++) node = options.getChildren(node, indexPath.slice(i + 1))[indexPath[i]];\n return node;\n}\nfunction ancestorIndexPaths(indexPaths) {\n const sortedPaths = sortIndexPaths(indexPaths);\n const result = [];\n const seen = /* @__PURE__ */ new Set();\n for (const indexPath of sortedPaths) {\n const key = indexPath.join();\n if (!seen.has(key)) {\n seen.add(key);\n result.push(indexPath);\n }\n }\n return result;\n}\nfunction compareIndexPaths(a, b) {\n for (let i = 0; i < Math.min(a.length, b.length); i++) {\n if (a[i] < b[i]) return -1;\n if (a[i] > b[i]) return 1;\n }\n return a.length - b.length;\n}\nfunction sortIndexPaths(indexPaths) {\n return indexPaths.sort(compareIndexPaths);\n}\nfunction find(node, options) {\n let found;\n visit(node, {\n ...options,\n onEnter: (child, indexPath) => {\n if (options.predicate(child, indexPath)) {\n found = child;\n return \"stop\";\n }\n }\n });\n return found;\n}\nfunction findIndexPath(node, options) {\n let found;\n visit(node, {\n onEnter: (child, indexPath) => {\n if (options.predicate(child, indexPath)) {\n found = [...indexPath];\n return \"stop\";\n }\n },\n getChildren: options.getChildren\n });\n return found;\n}\nfunction reduce(node, options) {\n let result = options.initialResult;\n visit(node, {\n ...options,\n onEnter: (child, indexPath) => {\n result = options.nextResult(result, child, indexPath);\n }\n });\n return result;\n}\nfunction flatMap(node, options) {\n return reduce(node, {\n ...options,\n initialResult: [],\n nextResult: (result, child, indexPath) => {\n result.push(...options.transform(child, indexPath));\n return result;\n }\n });\n}\nfunction insertOperation(index, nodes) {\n return { type: \"insert\", index, nodes };\n}\nfunction removeOperation(indexes) {\n return { type: \"remove\", indexes };\n}\nfunction replaceOperation() {\n return { type: \"replace\" };\n}\nfunction splitIndexPath(indexPath) {\n return [indexPath.slice(0, -1), indexPath[indexPath.length - 1]];\n}\nfunction getInsertionOperations(indexPath, nodes, operations = /* @__PURE__ */ new Map()) {\n const [parentIndexPath, index] = splitIndexPath(indexPath);\n for (let i = parentIndexPath.length - 1; i >= 0; i--) {\n const parentKey = parentIndexPath.slice(0, i).join();\n switch (operations.get(parentKey)?.type) {\n case \"remove\":\n continue;\n }\n operations.set(parentKey, replaceOperation());\n }\n const operation = operations.get(parentIndexPath.join());\n switch (operation?.type) {\n case \"remove\":\n operations.set(parentIndexPath.join(), {\n type: \"removeThenInsert\",\n removeIndexes: operation.indexes,\n insertIndex: index,\n insertNodes: nodes\n });\n break;\n default:\n operations.set(parentIndexPath.join(), insertOperation(index, nodes));\n }\n return operations;\n}\nfunction getRemovalOperations(indexPaths) {\n const operations = /* @__PURE__ */ new Map();\n const indexesToRemove = /* @__PURE__ */ new Map();\n for (const indexPath of indexPaths) {\n const parentKey = indexPath.slice(0, -1).join();\n const value = indexesToRemove.get(parentKey) ?? [];\n value.push(indexPath[indexPath.length - 1]);\n indexesToRemove.set(\n parentKey,\n value.sort((a, b) => a - b)\n );\n }\n for (const indexPath of indexPaths) {\n for (let i = indexPath.length - 2; i >= 0; i--) {\n const parentKey = indexPath.slice(0, i).join();\n if (!operations.has(parentKey)) {\n operations.set(parentKey, replaceOperation());\n }\n }\n }\n for (const [parentKey, indexes] of indexesToRemove) {\n operations.set(parentKey, removeOperation(indexes));\n }\n return operations;\n}\nfunction getReplaceOperations(indexPath, node) {\n const operations = /* @__PURE__ */ new Map();\n const [parentIndexPath, index] = splitIndexPath(indexPath);\n for (let i = parentIndexPath.length - 1; i >= 0; i--) {\n const parentKey = parentIndexPath.slice(0, i).join();\n operations.set(parentKey, replaceOperation());\n }\n operations.set(parentIndexPath.join(), {\n type: \"removeThenInsert\",\n removeIndexes: [index],\n insertIndex: index,\n insertNodes: [node]\n });\n return operations;\n}\nfunction mutate(node, operations, options) {\n return map(node, {\n ...options,\n getChildren: (node2, indexPath) => {\n const key = indexPath.join();\n const operation = operations.get(key);\n switch (operation?.type) {\n case \"replace\":\n case \"remove\":\n case \"removeThenInsert\":\n case \"insert\":\n return options.getChildren(node2, indexPath);\n default:\n return [];\n }\n },\n transform: (node2, children, indexPath) => {\n const key = indexPath.join();\n const operation = operations.get(key);\n switch (operation?.type) {\n case \"remove\":\n return options.create(\n node2,\n children.filter((_, index) => !operation.indexes.includes(index)),\n indexPath\n );\n case \"removeThenInsert\":\n const updatedChildren = children.filter((_, index) => !operation.removeIndexes.includes(index));\n const adjustedIndex = operation.removeIndexes.reduce(\n (index, removedIndex) => removedIndex < index ? index - 1 : index,\n operation.insertIndex\n );\n return options.create(node2, splice(updatedChildren, adjustedIndex, 0, ...operation.insertNodes), indexPath);\n case \"insert\":\n return options.create(node2, splice(children, operation.index, 0, ...operation.nodes), indexPath);\n case \"replace\":\n return options.create(node2, children, indexPath);\n default:\n return node2;\n }\n }\n });\n}\nfunction splice(array, start, deleteCount, ...items) {\n return [...array.slice(0, start), ...items, ...array.slice(start + deleteCount)];\n}\nfunction map(node, options) {\n const childrenMap = {};\n visit(node, {\n ...options,\n onLeave: (child, indexPath) => {\n const keyIndexPath = [0, ...indexPath];\n const key = keyIndexPath.join();\n const transformed = options.transform(child, childrenMap[key] ?? [], indexPath);\n const parentKey = keyIndexPath.slice(0, -1).join();\n const parentChildren = childrenMap[parentKey] ?? [];\n parentChildren.push(transformed);\n childrenMap[parentKey] = parentChildren;\n }\n });\n return childrenMap[\"\"][0];\n}\nfunction insert2(node, options) {\n const { nodes, at } = options;\n if (at.length === 0) throw new Error(`Can't insert nodes at the root`);\n const state = getInsertionOperations(at, nodes);\n return mutate(node, state, options);\n}\nfunction replace(node, options) {\n if (options.at.length === 0) return options.node;\n const operations = getReplaceOperations(options.at, options.node);\n return mutate(node, operations, options);\n}\nfunction remove(node, options) {\n if (options.indexPaths.length === 0) return node;\n for (const indexPath of options.indexPaths) {\n if (indexPath.length === 0) throw new Error(`Can't remove the root node`);\n }\n const operations = getRemovalOperations(options.indexPaths);\n return mutate(node, operations, options);\n}\nfunction move2(node, options) {\n if (options.indexPaths.length === 0) return node;\n for (const indexPath of options.indexPaths) {\n if (indexPath.length === 0) throw new Error(`Can't move the root node`);\n }\n if (options.to.length === 0) throw new Error(`Can't move nodes to the root`);\n const _ancestorIndexPaths = ancestorIndexPaths(options.indexPaths);\n const nodesToInsert = _ancestorIndexPaths.map((indexPath) => access(node, indexPath, options));\n const operations = getInsertionOperations(options.to, nodesToInsert, getRemovalOperations(_ancestorIndexPaths));\n return mutate(node, operations, options);\n}\nfunction visit(node, options) {\n const { onEnter, onLeave, getChildren } = options;\n let indexPath = [];\n let stack = [{ node }];\n const getIndexPath = options.reuseIndexPath ? () => indexPath : () => indexPath.slice();\n while (stack.length > 0) {\n let wrapper = stack[stack.length - 1];\n if (wrapper.state === void 0) {\n const enterResult = onEnter?.(wrapper.node, getIndexPath());\n if (enterResult === \"stop\") return;\n wrapper.state = enterResult === \"skip\" ? -1 : 0;\n }\n const children = wrapper.children || getChildren(wrapper.node, getIndexPath());\n wrapper.children || (wrapper.children = children);\n if (wrapper.state !== -1) {\n if (wrapper.state < children.length) {\n let currentIndex = wrapper.state;\n indexPath.push(currentIndex);\n stack.push({ node: children[currentIndex] });\n wrapper.state = currentIndex + 1;\n continue;\n }\n const leaveResult = onLeave?.(wrapper.node, getIndexPath());\n if (leaveResult === \"stop\") return;\n }\n indexPath.pop();\n stack.pop();\n }\n}\n\n// src/tree-collection.ts\nvar TreeCollection = class {\n constructor(options) {\n this.options = options;\n __publicField(this, \"rootNode\");\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(this.rootNode, other.rootNode);\n });\n __publicField(this, \"getNodeChildren\", (node) => {\n return this.options.nodeToChildren?.(node) ?? fallback2.nodeToChildren(node) ?? [];\n });\n __publicField(this, \"getNodeValue\", (node) => {\n return this.options.nodeToValue?.(node) ?? fallback2.nodeToValue(node);\n });\n __publicField(this, \"getNodeDisabled\", (node) => {\n return this.options.isNodeDisabled?.(node) ?? fallback2.isNodeDisabled(node);\n });\n __publicField(this, \"stringify\", (value) => {\n const node = this.findNode(value);\n if (!node) return null;\n return this.stringifyNode(node);\n });\n __publicField(this, \"stringifyNode\", (node) => {\n return this.options.nodeToString?.(node) ?? fallback2.nodeToString(node);\n });\n __publicField(this, \"getFirstNode\", (rootNode = this.rootNode) => {\n let firstChild;\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (!firstChild && indexPath.length > 0 && !this.getNodeDisabled(node)) {\n firstChild = node;\n return \"stop\";\n }\n }\n });\n return firstChild;\n });\n __publicField(this, \"getLastNode\", (rootNode = this.rootNode, opts = {}) => {\n let lastChild;\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) return \"skip\";\n if (indexPath.length > 1) return \"skip\";\n if (!this.getNodeDisabled(node)) {\n lastChild = node;\n }\n }\n });\n return lastChild;\n });\n __publicField(this, \"at\", (indexPath) => {\n return access(this.rootNode, indexPath, {\n getChildren: this.getNodeChildren\n });\n });\n __publicField(this, \"findNode\", (value, rootNode = this.rootNode) => {\n return find(rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n });\n __publicField(this, \"sort\", (values) => {\n return values.reduce(\n (acc, value) => {\n const indexPath = this.getIndexPath(value);\n if (indexPath != null) acc.push({ value, indexPath });\n return acc;\n },\n []\n ).sort((a, b) => compareIndexPaths(a.indexPath, b.indexPath)).map(({ value }) => value);\n });\n __publicField(this, \"getIndexPath\", (value) => {\n return findIndexPath(this.rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n });\n __publicField(this, \"getValue\", (indexPath) => {\n const node = this.at(indexPath);\n return node ? this.getNodeValue(node) : void 0;\n });\n __publicField(this, \"getValuePath\", (indexPath) => {\n if (!indexPath) return [];\n const valuePath = [];\n let currentPath = [...indexPath];\n while (currentPath.length > 0) {\n const node = this.at(currentPath);\n if (node) valuePath.unshift(this.getNodeValue(node));\n currentPath.pop();\n }\n return valuePath;\n });\n __publicField(this, \"getDepth\", (value) => {\n const indexPath = findIndexPath(this.rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n return indexPath?.length ?? 0;\n });\n __publicField(this, \"isRootNode\", (node) => {\n return this.getNodeValue(node) === this.getNodeValue(this.rootNode);\n });\n __publicField(this, \"contains\", (parentIndexPath, valueIndexPath) => {\n if (!parentIndexPath || !valueIndexPath) return false;\n return valueIndexPath.slice(0, parentIndexPath.length).every((_, i) => parentIndexPath[i] === valueIndexPath[i]);\n });\n __publicField(this, \"getNextNode\", (value, opts = {}) => {\n let found = false;\n let nextNode;\n visit(this.rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) {\n if (nodeValue === value) {\n found = true;\n }\n return \"skip\";\n }\n if (found && !this.getNodeDisabled(node)) {\n nextNode = node;\n return \"stop\";\n }\n if (nodeValue === value) {\n found = true;\n }\n }\n });\n return nextNode;\n });\n __publicField(this, \"getPreviousNode\", (value, opts = {}) => {\n let previousNode;\n let found = false;\n visit(this.rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) {\n return \"skip\";\n }\n if (nodeValue === value) {\n found = true;\n return \"stop\";\n }\n if (!this.getNodeDisabled(node)) {\n previousNode = node;\n }\n }\n });\n return found ? previousNode : void 0;\n });\n __publicField(this, \"getParentNodes\", (values) => {\n const result = [];\n let indexPath = this.getIndexPath(values);\n while (indexPath && indexPath.length > 0) {\n indexPath.pop();\n const parentNode = this.at(indexPath);\n if (parentNode && !this.isRootNode(parentNode)) {\n result.unshift(parentNode);\n }\n }\n return result;\n });\n __publicField(this, \"getParentIndexPath\", (indexPath) => {\n return indexPath.slice(0, -1);\n });\n __publicField(this, \"getParentNode\", (valueOrIndexPath) => {\n const indexPath = typeof valueOrIndexPath === \"string\" ? this.getIndexPath(valueOrIndexPath) : valueOrIndexPath;\n return indexPath ? this.at(this.getParentIndexPath(indexPath)) : void 0;\n });\n __publicField(this, \"visit\", (opts) => {\n const { skip, ...rest } = opts;\n visit(this.rootNode, {\n ...rest,\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n if (skip?.({ value: this.getNodeValue(node), node, indexPath })) return \"skip\";\n return rest.onEnter?.(node, indexPath);\n }\n });\n });\n __publicField(this, \"getPreviousSibling\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const siblings = this.getNodeChildren(parentNode);\n let idx = siblings.findIndex((sibling) => this.getValue(indexPath) === this.getNodeValue(sibling));\n while (--idx >= 0) {\n const sibling = siblings[idx];\n if (!this.getNodeDisabled(sibling)) return sibling;\n }\n return;\n });\n __publicField(this, \"getNextSibling\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const siblings = this.getNodeChildren(parentNode);\n let idx = siblings.findIndex((sibling) => this.getValue(indexPath) === this.getNodeValue(sibling));\n while (++idx < siblings.length) {\n const sibling = siblings[idx];\n if (!this.getNodeDisabled(sibling)) return sibling;\n }\n return;\n });\n __publicField(this, \"getSiblingNodes\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n return parentNode ? this.getNodeChildren(parentNode) : [];\n });\n __publicField(this, \"getValues\", (rootNode = this.rootNode) => {\n const values = flatMap(rootNode, {\n getChildren: this.getNodeChildren,\n transform: (node) => [this.getNodeValue(node)]\n });\n return values.slice(1);\n });\n __publicField(this, \"isSameDepth\", (indexPath, depth) => {\n if (depth == null) return true;\n return indexPath.length === depth;\n });\n __publicField(this, \"isBranchNode\", (node) => {\n return this.getNodeChildren(node).length > 0;\n });\n __publicField(this, \"getBranchValues\", (rootNode = this.rootNode, opts = {}) => {\n let values = [];\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) return \"skip\";\n if (this.getNodeChildren(node).length > 0 && this.isSameDepth(indexPath, opts.depth)) {\n values.push(this.getNodeValue(node));\n }\n }\n });\n return values.slice(1);\n });\n __publicField(this, \"flatten\", (rootNode = this.rootNode) => {\n const nodes = flatMap(rootNode, {\n getChildren: this.getNodeChildren,\n transform: (node, indexPath) => {\n const children = this.getNodeChildren(node).map((child) => this.getNodeValue(child));\n return [\n compact({\n label: this.stringifyNode(node),\n value: this.getNodeValue(node),\n indexPath,\n children: children.length > 0 ? children : void 0\n })\n ];\n }\n });\n return nodes.slice(1);\n });\n __publicField(this, \"_create\", (node, children) => {\n return compact({ ...node, children });\n });\n __publicField(this, \"_insert\", (rootNode, indexPath, nodes) => {\n return insert2(rootNode, { at: indexPath, nodes, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_replace\", (rootNode, indexPath, node) => {\n return replace(rootNode, { at: indexPath, node, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_move\", (rootNode, indexPaths, to) => {\n return move2(rootNode, { indexPaths, to, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_remove\", (rootNode, indexPaths) => {\n return remove(rootNode, { indexPaths, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"replace\", (indexPath, node) => {\n return this._replace(this.rootNode, indexPath, node);\n });\n __publicField(this, \"remove\", (indexPaths) => {\n return this._remove(this.rootNode, indexPaths);\n });\n __publicField(this, \"insertBefore\", (indexPath, nodes) => {\n const parentNode = this.getParentNode(indexPath);\n return parentNode ? this._insert(this.rootNode, indexPath, nodes) : void 0;\n });\n __publicField(this, \"insertAfter\", (indexPath, nodes) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const nextIndex2 = [...indexPath.slice(0, -1), indexPath[indexPath.length - 1] + 1];\n return this._insert(this.rootNode, nextIndex2, nodes);\n });\n __publicField(this, \"move\", (fromIndexPaths, toIndexPath) => {\n return this._move(this.rootNode, fromIndexPaths, toIndexPath);\n });\n __publicField(this, \"toJSON\", () => {\n return this.getValues(this.rootNode);\n });\n this.rootNode = options.rootNode;\n }\n};\nfunction flattenedToTree(nodes) {\n let rootNode = {\n value: \"ROOT\"\n };\n nodes.map((node) => {\n const { indexPath, label, value } = node;\n if (!indexPath.length) {\n Object.assign(rootNode, { label, value, children: [] });\n return;\n }\n rootNode = insert2(rootNode, {\n at: indexPath,\n nodes: [compact({ label, value })],\n getChildren: (node2) => node2.children ?? [],\n create: (node2, children) => {\n return compact({ ...node2, children });\n }\n });\n });\n return new TreeCollection({ rootNode });\n}\nfunction filePathToTree(paths) {\n const rootNode = {\n label: \"\",\n value: \"ROOT\",\n children: []\n };\n paths.forEach((path) => {\n const parts = path.split(\"/\");\n let currentNode = rootNode;\n parts.forEach((part) => {\n let childNode = currentNode.children?.find((child) => child.label === part);\n if (!childNode) {\n childNode = {\n value: parts.slice(0, parts.indexOf(part) + 1).join(\"/\"),\n label: part\n };\n currentNode.children || (currentNode.children = []);\n currentNode.children.push(childNode);\n }\n currentNode = childNode;\n });\n });\n return new TreeCollection({ rootNode });\n}\nvar fallback2 = {\n nodeToValue(node) {\n if (typeof node === \"string\") return node;\n if (isObject(node) && hasProp(node, \"value\")) return node.value;\n return \"\";\n },\n nodeToString(node) {\n if (typeof node === \"string\") return node;\n if (isObject(node) && hasProp(node, \"label\")) return node.label;\n return fallback2.nodeToValue(node);\n },\n isNodeDisabled(node) {\n if (isObject(node) && hasProp(node, \"disabled\")) return !!node.disabled;\n return false;\n },\n nodeToChildren(node) {\n return node.children;\n }\n};\nvar Selection = class _Selection extends Set {\n constructor(values = []) {\n super(values);\n __publicField(this, \"selectionMode\", \"single\");\n __publicField(this, \"deselectable\", true);\n __publicField(this, \"copy\", () => {\n const clone = new _Selection([...this]);\n return this.sync(clone);\n });\n __publicField(this, \"sync\", (other) => {\n other.selectionMode = this.selectionMode;\n other.deselectable = this.deselectable;\n return other;\n });\n __publicField(this, \"isEmpty\", () => {\n return this.size === 0;\n });\n __publicField(this, \"isSelected\", (value) => {\n if (this.selectionMode === \"none\" || value == null) {\n return false;\n }\n return this.has(value);\n });\n __publicField(this, \"canSelect\", (collection, value) => {\n return this.selectionMode !== \"none\" || !collection.getItemDisabled(collection.find(value));\n });\n __publicField(this, \"firstSelectedValue\", (collection) => {\n let firstValue = null;\n for (let value of this) {\n if (!firstValue || collection.compareValue(value, firstValue) < 0) {\n firstValue = value;\n }\n }\n return firstValue;\n });\n __publicField(this, \"lastSelectedValue\", (collection) => {\n let lastValue = null;\n for (let value of this) {\n if (!lastValue || collection.compareValue(value, lastValue) > 0) {\n lastValue = value;\n }\n }\n return lastValue;\n });\n __publicField(this, \"extendSelection\", (collection, anchorValue, targetValue) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\") {\n return this.replaceSelection(collection, targetValue);\n }\n const selection = this.copy();\n const lastSelected = Array.from(this).pop();\n for (let key of collection.getValueRange(anchorValue, lastSelected ?? targetValue)) {\n selection.delete(key);\n }\n for (let key of collection.getValueRange(targetValue, anchorValue)) {\n if (this.canSelect(collection, key)) {\n selection.add(key);\n }\n }\n return selection;\n });\n __publicField(this, \"toggleSelection\", (collection, value) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\" && !this.isSelected(value)) {\n return this.replaceSelection(collection, value);\n }\n const selection = this.copy();\n if (selection.has(value)) {\n selection.delete(value);\n } else if (selection.canSelect(collection, value)) {\n selection.add(value);\n }\n return selection;\n });\n __publicField(this, \"replaceSelection\", (collection, value) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (value == null) {\n return this;\n }\n if (!this.canSelect(collection, value)) {\n return this;\n }\n const selection = new _Selection([value]);\n return this.sync(selection);\n });\n __publicField(this, \"setSelection\", (values) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n let selection = new _Selection();\n for (let value of values) {\n if (value != null) {\n selection.add(value);\n if (this.selectionMode === \"single\") {\n break;\n }\n }\n }\n return this.sync(selection);\n });\n __publicField(this, \"clearSelection\", () => {\n const selection = this.copy();\n if (selection.deselectable && selection.size > 0) {\n selection.clear();\n }\n return selection;\n });\n __publicField(this, \"select\", (collection, value, forceToggle) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\") {\n if (this.isSelected(value) && this.deselectable) {\n return this.toggleSelection(collection, value);\n } else {\n return this.replaceSelection(collection, value);\n }\n } else if (this.selectionMode === \"multiple\" || forceToggle) {\n return this.toggleSelection(collection, value);\n } else {\n return this.replaceSelection(collection, value);\n }\n });\n __publicField(this, \"deselect\", (value) => {\n const selection = this.copy();\n selection.delete(value);\n return selection;\n });\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(Array.from(this), Array.from(other));\n });\n }\n};\n\nexport { GridCollection, ListCollection, Selection, TreeCollection, filePathToTree, flattenedToTree, isGridCollection, isListCollection };\n","import { ListCollection, filePathToTree, TreeCollection } from '@zag-js/collection';\n\nconst createListCollection = (options) => new ListCollection(options);\nconst createTreeCollection = (options) => new TreeCollection(options);\nconst createFileTreeCollection = (paths) => filePathToTree(paths);\n\nexport { createFileTreeCollection, createListCollection, createTreeCollection };\n","// src/walk-tree-outside.ts\nvar counterMap = /* @__PURE__ */ new WeakMap();\nvar uncontrolledNodes = /* @__PURE__ */ new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = (node) => node && (node.host || unwrapHost(node.parentNode));\nvar correctTargets = (parent, targets) => targets.map((target) => {\n if (parent.contains(target)) return target;\n const correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error(\"[zag-js > ariaHidden] target\", target, \"in not contained inside\", parent, \". Doing nothing\");\n return null;\n}).filter((x) => Boolean(x));\nvar isIgnoredNode = (node) => {\n if (node.localName === \"next-route-announcer\") return true;\n if (node.localName === \"script\") return true;\n if (node.hasAttribute(\"aria-live\")) return true;\n return node.matches(\"[data-live-announcer]\");\n};\nvar walkTreeOutside = (originalTarget, props) => {\n const { parentNode, markerName, controlAttribute} = props;\n const targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n markerMap[markerName] || (markerMap[markerName] = /* @__PURE__ */ new WeakMap());\n const markerCounter = markerMap[markerName];\n const hiddenNodes = [];\n const elementsToKeep = /* @__PURE__ */ new Set();\n const elementsToStop = new Set(targets);\n const keep = (el) => {\n if (!el || elementsToKeep.has(el)) return;\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n const deep = (parent) => {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, (node) => {\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n try {\n if (isIgnoredNode(node)) return;\n const attr = node.getAttribute(controlAttribute);\n const alreadyHidden = attr === \"true\" ;\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, \"\");\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, \"true\" );\n }\n } catch (e) {\n console.error(\"[zag-js > ariaHidden] cannot operate on \", node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return () => {\n hiddenNodes.forEach((node) => {\n const counterValue = counterMap.get(node) - 1;\n const markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n counterMap = /* @__PURE__ */ new WeakMap();\n counterMap = /* @__PURE__ */ new WeakMap();\n uncontrolledNodes = /* @__PURE__ */ new WeakMap();\n markerMap = {};\n }\n };\n};\n\n// src/aria-hidden.ts\nvar getParentNode = (originalTarget) => {\n const target = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return target.ownerDocument.body;\n};\nvar hideOthers = (originalTarget, parentNode = getParentNode(originalTarget), markerName = \"data-aria-hidden\") => {\n if (!parentNode) return;\n return walkTreeOutside(originalTarget, {\n parentNode,\n markerName,\n controlAttribute: \"aria-hidden\"});\n};\n\n// src/index.ts\nvar raf = (fn) => {\n const frameId = requestAnimationFrame(() => fn());\n return () => cancelAnimationFrame(frameId);\n};\nfunction ariaHidden(targetsOrFn, options = {}) {\n const { defer = true } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const targets = typeof targetsOrFn === \"function\" ? targetsOrFn() : targetsOrFn;\n const elements = targets.filter(Boolean);\n if (elements.length === 0) return;\n cleanups.push(hideOthers(elements));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\nexport { ariaHidden };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [DialogProvider, useDialogContext] = createContext({\n name: \"DialogContext\",\n hookName: \"useDialogContext\",\n providerName: \"<DialogProvider />\"\n});\n\nexport { DialogProvider, useDialogContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogBackdrop = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({ ...renderStrategyProps, present: dialog.open });\n const mergedProps = mergeProps(dialog.getBackdropProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nDialogBackdrop.displayName = \"DialogBackdrop\";\n\nexport { DialogBackdrop };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogCloseTrigger = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getCloseTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nDialogCloseTrigger.displayName = \"DialogCloseTrigger\";\n\nexport { DialogCloseTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogContent = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(dialog.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nDialogContent.displayName = \"DialogContent\";\n\nexport { DialogContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogDescription = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getDescriptionProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nDialogDescription.displayName = \"DialogDescription\";\n\nexport { DialogDescription };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogPositioner = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nDialogPositioner.displayName = \"DialogPositioner\";\n\nexport { DialogPositioner };\n","import { getDocument, getTabbables, getFocusables, isTabbable, getTabIndex, addDomEvent, raf, getEventTarget, isDocument, isFocusable, getActiveElement } from '@zag-js/dom-query';\n\nvar __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);\nvar activeFocusTraps = {\n activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n const activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap(trapStack, trap) {\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar sharedTrapStack = [];\nvar FocusTrap = class {\n constructor(elements, options) {\n __publicField(this, \"trapStack\");\n __publicField(this, \"config\");\n __publicField(this, \"doc\");\n __publicField(this, \"state\", {\n containers: [],\n containerGroups: [],\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n delayInitialFocusTimer: void 0,\n recentNavEvent: void 0\n });\n __publicField(this, \"listenerCleanups\", []);\n __publicField(this, \"handleFocus\", (event) => {\n const target = getEventTarget(event);\n const targetContained = this.findContainerIndex(target, event) >= 0;\n if (targetContained || isDocument(target)) {\n if (targetContained) {\n this.state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n let nextNode;\n let navAcrossContainers = true;\n if (this.state.mostRecentlyFocusedNode) {\n if (getTabIndex(this.state.mostRecentlyFocusedNode) > 0) {\n const mruContainerIdx = this.findContainerIndex(this.state.mostRecentlyFocusedNode);\n const { tabbableNodes } = this.state.containerGroups[mruContainerIdx];\n if (tabbableNodes.length > 0) {\n const mruTabIdx = tabbableNodes.findIndex((node) => node === this.state.mostRecentlyFocusedNode);\n if (mruTabIdx >= 0) {\n if (this.config.isKeyForward(this.state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!this.state.containerGroups.some((g) => g.tabbableNodes.some((n) => getTabIndex(n) > 0))) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = this.findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: this.state.mostRecentlyFocusedNode,\n isBackward: this.config.isKeyBackward(this.state.recentNavEvent)\n });\n }\n if (nextNode) {\n this.tryFocus(nextNode);\n } else {\n this.tryFocus(this.state.mostRecentlyFocusedNode || this.getInitialFocusNode());\n }\n }\n this.state.recentNavEvent = void 0;\n });\n __publicField(this, \"handlePointerDown\", (event) => {\n const target = getEventTarget(event);\n if (this.findContainerIndex(target, event) >= 0) {\n return;\n }\n if (valueOrHandler(this.config.clickOutsideDeactivates, event)) {\n this.deactivate({ returnFocus: this.config.returnFocusOnDeactivate });\n return;\n }\n if (valueOrHandler(this.config.allowOutsideClick, event)) {\n return;\n }\n event.preventDefault();\n });\n __publicField(this, \"handleClick\", (event) => {\n const target = getEventTarget(event);\n if (this.findContainerIndex(target, event) >= 0) {\n return;\n }\n if (valueOrHandler(this.config.clickOutsideDeactivates, event)) {\n return;\n }\n if (valueOrHandler(this.config.allowOutsideClick, event)) {\n return;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n __publicField(this, \"handleTabKey\", (event) => {\n if (this.config.isKeyForward(event) || this.config.isKeyBackward(event)) {\n this.state.recentNavEvent = event;\n const isBackward = this.config.isKeyBackward(event);\n const destinationNode = this.findNextNavNode({ event, isBackward });\n if (!destinationNode) return;\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n this.tryFocus(destinationNode);\n }\n });\n __publicField(this, \"handleEscapeKey\", (event) => {\n if (isEscapeEvent(event) && valueOrHandler(this.config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n this.deactivate();\n }\n });\n __publicField(this, \"_mutationObserver\");\n __publicField(this, \"setupMutationObserver\", () => {\n const win = this.doc.defaultView || window;\n this._mutationObserver = new win.MutationObserver((mutations) => {\n const isFocusedNodeRemoved = mutations.some((mutation) => {\n const removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some((node) => node === this.state.mostRecentlyFocusedNode);\n });\n if (isFocusedNodeRemoved) {\n this.tryFocus(this.getInitialFocusNode());\n }\n });\n });\n __publicField(this, \"updateObservedNodes\", () => {\n this._mutationObserver?.disconnect();\n if (this.state.active && !this.state.paused) {\n this.state.containers.map((container) => {\n this._mutationObserver?.observe(container, { subtree: true, childList: true });\n });\n }\n });\n __publicField(this, \"getInitialFocusNode\", () => {\n let node = this.getNodeForOption(\"initialFocus\", { hasFallback: true });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !isFocusable(node)) {\n if (this.findContainerIndex(this.doc.activeElement) >= 0) {\n node = this.doc.activeElement;\n } else {\n const firstTabbableGroup = this.state.tabbableGroups[0];\n const firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || this.getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = this.getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n if (!node.isConnected) {\n node = this.getNodeForOption(\"fallbackFocus\");\n }\n return node;\n });\n __publicField(this, \"tryFocus\", (node) => {\n if (node === false) return;\n if (node === getActiveElement(this.doc)) return;\n if (!node || !node.focus) {\n this.tryFocus(this.getInitialFocusNode());\n return;\n }\n node.focus({ preventScroll: !!this.config.preventScroll });\n this.state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n });\n __publicField(this, \"deactivate\", (deactivateOptions) => {\n if (!this.state.active) return this;\n const options = {\n onDeactivate: this.config.onDeactivate,\n onPostDeactivate: this.config.onPostDeactivate,\n checkCanReturnFocus: this.config.checkCanReturnFocus,\n ...deactivateOptions\n };\n clearTimeout(this.state.delayInitialFocusTimer);\n this.state.delayInitialFocusTimer = void 0;\n this.removeListeners();\n this.state.active = false;\n this.state.paused = false;\n this.updateObservedNodes();\n activeFocusTraps.deactivateTrap(this.trapStack, this);\n const onDeactivate = this.getOption(options, \"onDeactivate\");\n const onPostDeactivate = this.getOption(options, \"onPostDeactivate\");\n const checkCanReturnFocus = this.getOption(options, \"checkCanReturnFocus\");\n const returnFocus = this.getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate?.();\n const finishDeactivation = () => {\n delay(() => {\n if (returnFocus) {\n const returnFocusNode = this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);\n this.tryFocus(returnFocusNode);\n }\n onPostDeactivate?.();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n const returnFocusNode = this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);\n checkCanReturnFocus(returnFocusNode).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n });\n __publicField(this, \"pause\", (pauseOptions) => {\n if (this.state.paused || !this.state.active) {\n return this;\n }\n const onPause = this.getOption(pauseOptions, \"onPause\");\n const onPostPause = this.getOption(pauseOptions, \"onPostPause\");\n this.state.paused = true;\n onPause?.();\n this.removeListeners();\n this.updateObservedNodes();\n onPostPause?.();\n return this;\n });\n __publicField(this, \"unpause\", (unpauseOptions) => {\n if (!this.state.paused || !this.state.active) {\n return this;\n }\n const onUnpause = this.getOption(unpauseOptions, \"onUnpause\");\n const onPostUnpause = this.getOption(unpauseOptions, \"onPostUnpause\");\n this.state.paused = false;\n onUnpause?.();\n this.updateTabbableNodes();\n this.addListeners();\n this.updateObservedNodes();\n onPostUnpause?.();\n return this;\n });\n __publicField(this, \"updateContainerElements\", (containerElements) => {\n this.state.containers = Array.isArray(containerElements) ? containerElements.filter(Boolean) : [containerElements].filter(Boolean);\n if (this.state.active) {\n this.updateTabbableNodes();\n }\n this.updateObservedNodes();\n return this;\n });\n __publicField(this, \"getReturnFocusNode\", (previousActiveElement) => {\n const node = this.getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n });\n __publicField(this, \"getOption\", (configOverrideOptions, optionName, configOptionName) => {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : (\n // @ts-expect-error\n this.config[configOptionName || optionName]\n );\n });\n __publicField(this, \"getNodeForOption\", (optionName, { hasFallback = false, params = [] } = {}) => {\n let optionValue = this.config[optionName];\n if (typeof optionValue === \"function\") optionValue = optionValue(...params);\n if (optionValue === true) optionValue = void 0;\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(`\\`${optionName}\\` was specified but was not a node, or did not return a node`);\n }\n let node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = this.doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(`\\`${optionName}\\` appears to be an invalid selector; error=\"${err.message}\"`);\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(`\\`${optionName}\\` as selector refers to no known node`);\n }\n }\n }\n return node;\n });\n __publicField(this, \"findNextNavNode\", (opts) => {\n const { event, isBackward = false } = opts;\n const target = opts.target || getEventTarget(event);\n this.updateTabbableNodes();\n let destinationNode = null;\n if (this.state.tabbableGroups.length > 0) {\n const containerIndex = this.findContainerIndex(target, event);\n const containerGroup = containerIndex >= 0 ? this.state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = this.state.tabbableGroups[this.state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = this.state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n let startOfGroupIndex = this.state.tabbableGroups.findIndex(\n ({ firstTabbableNode }) => target === firstTabbableNode\n );\n if (startOfGroupIndex < 0 && (containerGroup?.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup?.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n const destinationGroupIndex = startOfGroupIndex === 0 ? this.state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n const destinationGroup = this.state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup?.nextTabbableNode(target, false);\n }\n } else {\n let lastOfGroupIndex = this.state.tabbableGroups.findIndex(\n ({ lastTabbableNode }) => target === lastTabbableNode\n );\n if (lastOfGroupIndex < 0 && (containerGroup?.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup?.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n const destinationGroupIndex = lastOfGroupIndex === this.state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n const destinationGroup = this.state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.firstTabbableNode : destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup?.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = this.getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n });\n this.trapStack = options.trapStack || sharedTrapStack;\n const config = {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n },\n isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n },\n ...options\n };\n this.doc = config.document || getDocument(Array.isArray(elements) ? elements[0] : elements);\n this.config = config;\n this.updateContainerElements(elements);\n this.setupMutationObserver();\n }\n get active() {\n return this.state.active;\n }\n get paused() {\n return this.state.paused;\n }\n findContainerIndex(element, event) {\n const composedPath = typeof event?.composedPath === \"function\" ? event.composedPath() : void 0;\n return this.state.containerGroups.findIndex(\n ({ container, tabbableNodes }) => container.contains(element) || composedPath?.includes(container) || tabbableNodes.find((node) => node === element)\n );\n }\n updateTabbableNodes() {\n this.state.containerGroups = this.state.containers.map((container) => {\n const tabbableNodes = getTabbables(container);\n const focusableNodes = getFocusables(container);\n const firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n const lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n const firstDomTabbableNode = focusableNodes.find((node) => isTabbable(node));\n const lastDomTabbableNode = focusableNodes.slice().reverse().find((node) => isTabbable(node));\n const posTabIndexesFound = !!tabbableNodes.find((node) => getTabIndex(node) > 0);\n function nextTabbableNode(node, forward = true) {\n const nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find((el) => isTabbable(el));\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find((el) => isTabbable(el));\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n return {\n container,\n tabbableNodes,\n focusableNodes,\n posTabIndexesFound,\n firstTabbableNode,\n lastTabbableNode,\n firstDomTabbableNode,\n lastDomTabbableNode,\n nextTabbableNode\n };\n });\n this.state.tabbableGroups = this.state.containerGroups.filter((group) => group.tabbableNodes.length > 0);\n if (this.state.tabbableGroups.length <= 0 && !this.getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\n \"Your focus-trap must have at least one container with at least one tabbable node in it at all times\"\n );\n }\n if (this.state.containerGroups.find((g) => g.posTabIndexesFound) && this.state.containerGroups.length > 1) {\n throw new Error(\n \"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\"\n );\n }\n }\n addListeners() {\n if (!this.state.active) return;\n activeFocusTraps.activateTrap(this.trapStack, this);\n this.state.delayInitialFocusTimer = this.config.delayInitialFocus ? delay(() => {\n this.tryFocus(this.getInitialFocusNode());\n }) : this.tryFocus(this.getInitialFocusNode());\n this.listenerCleanups.push(\n addDomEvent(this.doc, \"focusin\", this.handleFocus, true),\n addDomEvent(this.doc, \"mousedown\", this.handlePointerDown, { capture: true, passive: false }),\n addDomEvent(this.doc, \"touchstart\", this.handlePointerDown, { capture: true, passive: false }),\n addDomEvent(this.doc, \"click\", this.handleClick, { capture: true, passive: false }),\n addDomEvent(this.doc, \"keydown\", this.handleTabKey, { capture: true, passive: false }),\n addDomEvent(this.doc, \"keydown\", this.handleEscapeKey)\n );\n return this;\n }\n removeListeners() {\n if (!this.state.active) return;\n this.listenerCleanups.forEach((cleanup) => cleanup());\n this.listenerCleanups = [];\n return this;\n }\n activate(activateOptions) {\n if (this.state.active) {\n return this;\n }\n const onActivate = this.getOption(activateOptions, \"onActivate\");\n const onPostActivate = this.getOption(activateOptions, \"onPostActivate\");\n const checkCanFocusTrap = this.getOption(activateOptions, \"checkCanFocusTrap\");\n if (!checkCanFocusTrap) {\n this.updateTabbableNodes();\n }\n this.state.active = true;\n this.state.paused = false;\n this.state.nodeFocusedBeforeActivation = this.doc.activeElement || null;\n onActivate?.();\n const finishActivation = () => {\n if (checkCanFocusTrap) {\n this.updateTabbableNodes();\n }\n this.addListeners();\n this.updateObservedNodes();\n onPostActivate?.();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(this.state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n }\n};\nvar isTabEvent = (event) => event.key === \"Tab\";\nvar valueOrHandler = (value, ...params) => typeof value === \"function\" ? value(...params) : value;\nvar isEscapeEvent = (event) => !event.isComposing && event.key === \"Escape\";\nvar delay = (fn) => setTimeout(fn, 0);\nvar isSelectableInput = (node) => node.localName === \"input\" && \"select\" in node && typeof node.select === \"function\";\n\n// src/index.ts\nfunction trapFocus(el, options = {}) {\n let trap;\n const cleanup = raf(() => {\n const contentEl = typeof el === \"function\" ? el() : el;\n if (!contentEl) return;\n trap = new FocusTrap(contentEl, {\n escapeDeactivates: false,\n allowOutsideClick: true,\n preventScroll: true,\n returnFocusOnDeactivate: true,\n delayInitialFocus: false,\n fallbackFocus: contentEl,\n ...options,\n document: getDocument(contentEl)\n });\n try {\n trap.activate();\n } catch {\n }\n });\n return function destroy() {\n trap?.deactivate();\n cleanup();\n };\n}\n\nexport { FocusTrap, trapFocus };\n","import { setStyleProperty, setStyle, isIos } from '@zag-js/dom-query';\n\n// src/index.ts\nvar LOCK_CLASSNAME = \"data-scroll-lock\";\nfunction getPaddingProperty(documentElement) {\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\nfunction preventBodyScroll(_document) {\n const doc = _document ?? document;\n const win = doc.defaultView ?? window;\n const { documentElement, body } = doc;\n const locked = body.hasAttribute(LOCK_CLASSNAME);\n if (locked) return;\n body.setAttribute(LOCK_CLASSNAME, \"\");\n const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n const setScrollbarWidthProperty = () => setStyleProperty(documentElement, \"--scrollbar-width\", `${scrollbarWidth}px`);\n const paddingProperty = getPaddingProperty(documentElement);\n const setBodyStyle = () => setStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n const setBodyStyleIOS = () => {\n const { scrollX, scrollY, visualViewport } = win;\n const offsetLeft = visualViewport?.offsetLeft ?? 0;\n const offsetTop = visualViewport?.offsetTop ?? 0;\n const restoreStyle = setStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: `${-(scrollY - Math.floor(offsetTop))}px`,\n left: `${-(scrollX - Math.floor(offsetLeft))}px`,\n right: \"0\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n return () => {\n restoreStyle?.();\n win.scrollTo({ left: scrollX, top: scrollY, behavior: \"instant\" });\n };\n };\n const cleanups = [setScrollbarWidthProperty(), isIos() ? setBodyStyleIOS() : setBodyStyle()];\n return () => {\n cleanups.forEach((fn) => fn?.());\n body.removeAttribute(LOCK_CLASSNAME);\n };\n}\n\nexport { preventBodyScroll };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { ariaHidden } from '@zag-js/aria-hidden';\nimport { createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { raf, getComputedStyle } from '@zag-js/dom-query';\nimport { trapFocus } from '@zag-js/focus-trap';\nimport { preventBodyScroll } from '@zag-js/remove-scroll';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/dialog.anatomy.ts\nvar anatomy = createAnatomy(\"dialog\").parts(\n \"trigger\",\n \"backdrop\",\n \"positioner\",\n \"content\",\n \"title\",\n \"description\",\n \"closeTrigger\"\n);\nvar parts = anatomy.build();\n\n// src/dialog.dom.ts\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `dialog:${ctx.id}:positioner`;\nvar getBackdropId = (ctx) => ctx.ids?.backdrop ?? `dialog:${ctx.id}:backdrop`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `dialog:${ctx.id}:content`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `dialog:${ctx.id}:trigger`;\nvar getTitleId = (ctx) => ctx.ids?.title ?? `dialog:${ctx.id}:title`;\nvar getDescriptionId = (ctx) => ctx.ids?.description ?? `dialog:${ctx.id}:description`;\nvar getCloseTriggerId = (ctx) => ctx.ids?.closeTrigger ?? `dialog:${ctx.id}:close`;\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getBackdropEl = (ctx) => ctx.getById(getBackdropId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getTitleEl = (ctx) => ctx.getById(getTitleId(ctx));\nvar getDescriptionEl = (ctx) => ctx.getById(getDescriptionId(ctx));\nvar getCloseTriggerEl = (ctx) => ctx.getById(getCloseTriggerId(ctx));\n\n// src/dialog.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const ariaLabel = prop(\"aria-label\");\n const open = state.matches(\"open\");\n return {\n open,\n setOpen(nextOpen) {\n const open2 = state.matches(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n dir: prop(\"dir\"),\n id: getTriggerId(scope),\n \"aria-haspopup\": \"dialog\",\n type: \"button\",\n \"aria-expanded\": open,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-controls\": getContentId(scope),\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"TOGGLE\" });\n }\n });\n },\n getBackdropProps() {\n return normalize.element({\n ...parts.backdrop.attrs,\n dir: prop(\"dir\"),\n hidden: !open,\n id: getBackdropId(scope),\n \"data-state\": open ? \"open\" : \"closed\"\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n id: getPositionerId(scope),\n style: {\n pointerEvents: open ? void 0 : \"none\"\n }\n });\n },\n getContentProps() {\n const rendered = context.get(\"rendered\");\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n role: prop(\"role\"),\n hidden: !open,\n id: getContentId(scope),\n tabIndex: -1,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-modal\": true,\n \"aria-label\": ariaLabel || void 0,\n \"aria-labelledby\": ariaLabel || !rendered.title ? void 0 : getTitleId(scope),\n \"aria-describedby\": rendered.description ? getDescriptionId(scope) : void 0\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n dir: prop(\"dir\"),\n id: getTitleId(scope)\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n dir: prop(\"dir\"),\n id: getDescriptionId(scope)\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n ...parts.closeTrigger.attrs,\n dir: prop(\"dir\"),\n id: getCloseTriggerId(scope),\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n event.stopPropagation();\n send({ type: \"CLOSE\" });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2, scope }) {\n const alertDialog = props2.role === \"alertdialog\";\n const initialFocusEl = alertDialog ? () => getCloseTriggerEl(scope) : void 0;\n return {\n role: \"dialog\",\n modal: true,\n trapFocus: true,\n preventScroll: true,\n closeOnInteractOutside: !alertDialog,\n closeOnEscape: true,\n restoreFocus: true,\n initialFocusEl,\n ...props2\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n context({ bindable }) {\n return {\n rendered: bindable(() => ({\n defaultValue: { title: true, description: true }\n }))\n };\n },\n watch({ track, action, prop }) {\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n states: {\n open: {\n entry: [\"checkRenderedElements\", \"syncZIndex\"],\n effects: [\"trackDismissableElement\", \"trapFocus\", \"preventScroll\", \"hideContentBelow\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ]\n }\n },\n closed: {\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ]\n }\n }\n },\n implementations: {\n guards: {\n isOpenControlled: ({ prop }) => prop(\"open\") != void 0\n },\n effects: {\n trackDismissableElement({ scope, send, prop }) {\n const getContentEl2 = () => getContentEl(scope);\n return trackDismissableElement(getContentEl2, {\n defer: true,\n pointerBlocking: prop(\"modal\"),\n exclude: [getTriggerEl(scope)],\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n if (!prop(\"closeOnInteractOutside\")) {\n event.preventDefault();\n }\n },\n persistentElements: prop(\"persistentElements\"),\n onFocusOutside: prop(\"onFocusOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onEscapeKeyDown(event) {\n prop(\"onEscapeKeyDown\")?.(event);\n if (!prop(\"closeOnEscape\")) {\n event.preventDefault();\n }\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\" });\n }\n });\n },\n preventScroll({ scope, prop }) {\n if (!prop(\"preventScroll\")) return;\n return preventBodyScroll(scope.getDoc());\n },\n trapFocus({ scope, prop }) {\n if (!prop(\"trapFocus\") || !prop(\"modal\")) return;\n const contentEl = () => getContentEl(scope);\n return trapFocus(contentEl, {\n preventScroll: true,\n returnFocusOnDeactivate: !!prop(\"restoreFocus\"),\n initialFocus: prop(\"initialFocusEl\"),\n setReturnFocus: (el) => prop(\"finalFocusEl\")?.() ?? el\n });\n },\n hideContentBelow({ scope, prop }) {\n if (!prop(\"modal\")) return;\n const getElements = () => [getContentEl(scope)];\n return ariaHidden(getElements, { defer: true });\n }\n },\n actions: {\n checkRenderedElements({ context, scope }) {\n raf(() => {\n context.set(\"rendered\", {\n title: !!getTitleEl(scope),\n description: !!getDescriptionEl(scope)\n });\n });\n },\n syncZIndex({ scope }) {\n raf(() => {\n const contentEl = getContentEl(scope);\n if (!contentEl) return;\n const styles = getComputedStyle(contentEl);\n const elems = [getPositionerEl(scope), getBackdropEl(scope)];\n elems.forEach((node) => {\n node?.style.setProperty(\"--z-index\", styles.zIndex);\n });\n });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n toggleVisibility({ prop, send, event }) {\n send({\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n previousEvent: event\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"aria-label\",\n \"closeOnEscape\",\n \"closeOnInteractOutside\",\n \"dir\",\n \"finalFocusEl\",\n \"getRootNode\",\n \"getRootNode\",\n \"id\",\n \"id\",\n \"ids\",\n \"initialFocusEl\",\n \"modal\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"defaultOpen\",\n \"open\",\n \"persistentElements\",\n \"preventScroll\",\n \"restoreFocus\",\n \"role\",\n \"trapFocus\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport * as dialog from '@zag-js/dialog';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useDialog = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n getRootNode,\n dir,\n ...props\n };\n const service = useMachine(dialog.machine, machineProps);\n return dialog.connect(service, normalizeProps);\n};\n\nexport { useDialog };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useDialog } from './use-dialog.js';\nimport { DialogProvider } from './use-dialog-context.js';\n\nconst DialogRoot = (props) => {\n const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);\n const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);\n const dialog = useDialog(localProps);\n const presence = usePresence(mergeProps({ present: dialog.open }, presenceProps));\n return /* @__PURE__ */ jsx(DialogProvider, { value: dialog, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) });\n};\n\nexport { DialogRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { DialogProvider } from './use-dialog-context.js';\n\nconst DialogRootProvider = (props) => {\n const [presenceProps, { value: dialog, children }] = splitPresenceProps(props);\n const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);\n const presence = usePresence(mergeProps({ present: dialog.open }, presenceProps));\n return /* @__PURE__ */ jsx(DialogProvider, { value: dialog, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) });\n};\n\nexport { DialogRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogTitle = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getTitleProps(), props);\n return /* @__PURE__ */ jsx(ark.h2, { ...mergedProps, ref });\n});\nDialogTitle.displayName = \"DialogTitle\";\n\nexport { DialogTitle };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogTrigger = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...dialog.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : dialog.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nDialogTrigger.displayName = \"DialogTrigger\";\n\nexport { DialogTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { setElementValue, raf, contains, dataAttr, ariaAttr, isComposingEvent, isApple } from '@zag-js/dom-query';\nimport { createMachine } from '@zag-js/core';\nimport { trackInteractOutside } from '@zag-js/interact-outside';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/editable.anatomy.ts\nvar anatomy = createAnatomy(\"editable\").parts(\n \"root\",\n \"area\",\n \"label\",\n \"preview\",\n \"input\",\n \"editTrigger\",\n \"submitTrigger\",\n \"cancelTrigger\",\n \"control\"\n);\nvar parts = anatomy.build();\n\n// src/editable.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `editable:${ctx.id}`;\nvar getAreaId = (ctx) => ctx.ids?.area ?? `editable:${ctx.id}:area`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `editable:${ctx.id}:label`;\nvar getPreviewId = (ctx) => ctx.ids?.preview ?? `editable:${ctx.id}:preview`;\nvar getInputId = (ctx) => ctx.ids?.input ?? `editable:${ctx.id}:input`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `editable:${ctx.id}:control`;\nvar getSubmitTriggerId = (ctx) => ctx.ids?.submitTrigger ?? `editable:${ctx.id}:submit`;\nvar getCancelTriggerId = (ctx) => ctx.ids?.cancelTrigger ?? `editable:${ctx.id}:cancel`;\nvar getEditTriggerId = (ctx) => ctx.ids?.editTrigger ?? `editable:${ctx.id}:edit`;\nvar getInputEl = (ctx) => ctx.getById(getInputId(ctx));\nvar getPreviewEl = (ctx) => ctx.getById(getPreviewId(ctx));\nvar getSubmitTriggerEl = (ctx) => ctx.getById(getSubmitTriggerId(ctx));\nvar getCancelTriggerEl = (ctx) => ctx.getById(getCancelTriggerId(ctx));\nvar getEditTriggerEl = (ctx) => ctx.getById(getEditTriggerId(ctx));\n\n// src/editable.connect.ts\nfunction connect(service, normalize) {\n const { state, context, send, prop, scope, computed } = service;\n const disabled = prop(\"disabled\");\n const interactive = computed(\"isInteractive\");\n const readOnly = prop(\"readOnly\");\n const invalid = prop(\"invalid\");\n const autoResize = prop(\"autoResize\");\n const translations = prop(\"translations\");\n const editing = state.matches(\"edit\");\n const placeholderProp = prop(\"placeholder\");\n const placeholder = typeof placeholderProp === \"string\" ? { edit: placeholderProp, preview: placeholderProp } : placeholderProp;\n const value = context.get(\"value\");\n const empty = value.trim() === \"\";\n const valueText = empty ? placeholder?.preview ?? \"\" : value;\n return {\n editing,\n empty,\n value,\n valueText,\n setValue(value2) {\n send({ type: \"VALUE.SET\", value: value2, src: \"setValue\" });\n },\n clearValue() {\n send({ type: \"VALUE.SET\", value: \"\", src: \"clearValue\" });\n },\n edit() {\n if (!interactive) return;\n send({ type: \"EDIT\" });\n },\n cancel() {\n if (!interactive) return;\n send({ type: \"CANCEL\" });\n },\n submit() {\n if (!interactive) return;\n send({ type: \"SUBMIT\" });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n dir: prop(\"dir\")\n });\n },\n getAreaProps() {\n return normalize.element({\n ...parts.area.attrs,\n id: getAreaId(scope),\n dir: prop(\"dir\"),\n style: autoResize ? { display: \"inline-grid\" } : void 0,\n \"data-focus\": dataAttr(editing),\n \"data-disabled\": dataAttr(disabled),\n \"data-placeholder-shown\": dataAttr(empty)\n });\n },\n getLabelProps() {\n return normalize.label({\n ...parts.label.attrs,\n id: getLabelId(scope),\n dir: prop(\"dir\"),\n htmlFor: getInputId(scope),\n \"data-focus\": dataAttr(editing),\n \"data-invalid\": dataAttr(invalid),\n onClick() {\n if (editing) return;\n const previewEl = getPreviewEl(scope);\n previewEl?.focus({ preventScroll: true });\n }\n });\n },\n getInputProps() {\n return normalize.input({\n ...parts.input.attrs,\n dir: prop(\"dir\"),\n \"aria-label\": translations?.input,\n name: prop(\"name\"),\n form: prop(\"form\"),\n id: getInputId(scope),\n hidden: autoResize ? void 0 : !editing,\n placeholder: placeholder?.edit,\n maxLength: prop(\"maxLength\"),\n required: prop(\"required\"),\n disabled,\n \"data-disabled\": dataAttr(disabled),\n readOnly,\n \"data-readonly\": dataAttr(readOnly),\n \"aria-invalid\": ariaAttr(invalid),\n \"data-invalid\": dataAttr(invalid),\n \"data-autoresize\": dataAttr(autoResize),\n defaultValue: value,\n size: autoResize ? 1 : void 0,\n onChange(event) {\n send({\n type: \"VALUE.SET\",\n src: \"input.change\",\n value: event.currentTarget.value\n });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n Escape() {\n send({ type: \"CANCEL\" });\n event.preventDefault();\n },\n Enter(event2) {\n if (!computed(\"submitOnEnter\")) return;\n const { localName } = event2.currentTarget;\n if (localName === \"textarea\") {\n const submitMod = isApple() ? event2.metaKey : event2.ctrlKey;\n if (!submitMod) return;\n send({ type: \"SUBMIT\", src: \"keydown.enter\" });\n return;\n }\n if (localName === \"input\" && !event2.shiftKey && !event2.metaKey) {\n send({ type: \"SUBMIT\", src: \"keydown.enter\" });\n event2.preventDefault();\n }\n }\n };\n const exec = keyMap[event.key];\n if (exec) {\n exec(event);\n }\n },\n style: autoResize ? {\n gridArea: \"1 / 1 / auto / auto\",\n visibility: !editing ? \"hidden\" : void 0\n } : void 0\n });\n },\n getPreviewProps() {\n return normalize.element({\n id: getPreviewId(scope),\n ...parts.preview.attrs,\n dir: prop(\"dir\"),\n \"data-placeholder-shown\": dataAttr(empty),\n \"aria-readonly\": ariaAttr(readOnly),\n \"data-readonly\": dataAttr(disabled),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-invalid\": ariaAttr(invalid),\n \"data-invalid\": dataAttr(invalid),\n \"aria-label\": translations?.edit,\n \"data-autoresize\": dataAttr(autoResize),\n children: valueText,\n hidden: autoResize ? void 0 : editing,\n tabIndex: interactive ? 0 : void 0,\n onClick() {\n if (!interactive) return;\n if (prop(\"activationMode\") !== \"click\") return;\n send({ type: \"EDIT\", src: \"click\" });\n },\n onFocus() {\n if (!interactive) return;\n if (prop(\"activationMode\") !== \"focus\") return;\n send({ type: \"EDIT\", src: \"focus\" });\n },\n onDoubleClick(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n if (prop(\"activationMode\") !== \"dblclick\") return;\n send({ type: \"EDIT\", src: \"dblclick\" });\n },\n style: autoResize ? {\n whiteSpace: \"pre\",\n userSelect: \"none\",\n gridArea: \"1 / 1 / auto / auto\",\n visibility: editing ? \"hidden\" : void 0,\n // in event the preview overflow's the parent element\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n } : void 0\n });\n },\n getEditTriggerProps() {\n return normalize.button({\n ...parts.editTrigger.attrs,\n id: getEditTriggerId(scope),\n dir: prop(\"dir\"),\n \"aria-label\": translations?.edit,\n hidden: editing,\n type: \"button\",\n disabled,\n onClick(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n send({ type: \"EDIT\", src: \"edit.click\" });\n }\n });\n },\n getControlProps() {\n return normalize.element({\n id: getControlId(scope),\n ...parts.control.attrs,\n dir: prop(\"dir\")\n });\n },\n getSubmitTriggerProps() {\n return normalize.button({\n ...parts.submitTrigger.attrs,\n dir: prop(\"dir\"),\n id: getSubmitTriggerId(scope),\n \"aria-label\": translations?.submit,\n hidden: !editing,\n disabled,\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n send({ type: \"SUBMIT\", src: \"submit.click\" });\n }\n });\n },\n getCancelTriggerProps() {\n return normalize.button({\n ...parts.cancelTrigger.attrs,\n dir: prop(\"dir\"),\n \"aria-label\": translations?.cancel,\n id: getCancelTriggerId(scope),\n hidden: !editing,\n type: \"button\",\n disabled,\n onClick(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n send({ type: \"CANCEL\", src: \"cancel.click\" });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n activationMode: \"focus\",\n submitMode: \"both\",\n defaultValue: \"\",\n selectOnFocus: true,\n ...props2,\n translations: {\n input: \"editable input\",\n edit: \"edit\",\n submit: \"submit\",\n cancel: \"cancel\",\n ...props2.translations\n }\n };\n },\n initialState({ prop }) {\n const edit = prop(\"edit\") || prop(\"defaultEdit\");\n return edit ? \"edit\" : \"preview\";\n },\n entry: [\"focusInputIfNeeded\"],\n context: ({ bindable, prop }) => {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n return prop(\"onValueChange\")?.({ value });\n }\n })),\n previousValue: bindable(() => ({\n defaultValue: \"\"\n }))\n };\n },\n watch({ track, action, context, prop }) {\n track([() => context.get(\"value\")], () => {\n action([\"syncInputValue\"]);\n });\n track([() => prop(\"edit\")], () => {\n action([\"toggleEditing\"]);\n });\n },\n computed: {\n submitOnEnter({ prop }) {\n return [\"both\", \"enter\"].includes(prop(\"submitMode\"));\n },\n submitOnBlur({ prop }) {\n return [\"both\", \"blur\"].includes(prop(\"submitMode\"));\n },\n isInteractive({ prop }) {\n return !(prop(\"disabled\") || prop(\"readOnly\"));\n }\n },\n on: {\n \"VALUE.SET\": {\n actions: [\"setValue\"]\n }\n },\n states: {\n preview: {\n entry: [\"blurInputIfNeeded\"],\n on: {\n \"CONTROLLED.EDIT\": {\n target: \"edit\",\n actions: [\"setPreviousValue\", \"focusInput\"]\n },\n EDIT: [\n {\n guard: \"isEditControlled\",\n actions: [\"invokeOnEdit\"]\n },\n {\n target: \"edit\",\n actions: [\"setPreviousValue\", \"focusInput\", \"invokeOnEdit\"]\n }\n ]\n }\n },\n edit: {\n effects: [\"trackInteractOutside\"],\n on: {\n \"CONTROLLED.PREVIEW\": [\n {\n guard: \"isSubmitEvent\",\n target: \"preview\",\n actions: [\"setPreviousValue\", \"restoreFocus\", \"invokeOnSubmit\"]\n },\n {\n target: \"preview\",\n actions: [\"revertValue\", \"restoreFocus\", \"invokeOnCancel\"]\n }\n ],\n CANCEL: [\n {\n guard: \"isEditControlled\",\n actions: [\"invokeOnPreview\"]\n },\n {\n target: \"preview\",\n actions: [\"revertValue\", \"restoreFocus\", \"invokeOnCancel\", \"invokeOnPreview\"]\n }\n ],\n SUBMIT: [\n {\n guard: \"isEditControlled\",\n actions: [\"invokeOnPreview\"]\n },\n {\n target: \"preview\",\n actions: [\"setPreviousValue\", \"restoreFocus\", \"invokeOnSubmit\", \"invokeOnPreview\"]\n }\n ]\n }\n }\n },\n implementations: {\n guards: {\n isEditControlled: ({ prop }) => prop(\"edit\") != void 0,\n isSubmitEvent: ({ event }) => event.previousEvent?.type === \"SUBMIT\"\n },\n effects: {\n trackInteractOutside({ send, scope, prop, computed }) {\n return trackInteractOutside(getInputEl(scope), {\n exclude(target) {\n const ignore = [getCancelTriggerEl(scope), getSubmitTriggerEl(scope)];\n return ignore.some((el) => contains(el, target));\n },\n onFocusOutside: prop(\"onFocusOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n if (event.defaultPrevented) return;\n const { focusable } = event.detail;\n send({\n type: computed(\"submitOnBlur\") ? \"SUBMIT\" : \"CANCEL\",\n src: \"interact-outside\",\n focusable\n });\n }\n });\n }\n },\n actions: {\n restoreFocus({ event, scope, prop }) {\n if (event.focusable) return;\n raf(() => {\n const finalEl = prop(\"finalFocusEl\")?.() ?? getEditTriggerEl(scope);\n finalEl?.focus({ preventScroll: true });\n });\n },\n clearValue({ context }) {\n context.set(\"value\", \"\");\n },\n focusInputIfNeeded({ action, prop }) {\n const edit = prop(\"edit\") || prop(\"defaultEdit\");\n if (!edit) return;\n action([\"focusInput\"]);\n },\n focusInput({ scope, prop }) {\n raf(() => {\n const inputEl = getInputEl(scope);\n if (!inputEl) return;\n if (prop(\"selectOnFocus\")) {\n inputEl.select();\n } else {\n inputEl.focus({ preventScroll: true });\n }\n });\n },\n invokeOnCancel({ prop, context }) {\n const prev = context.get(\"previousValue\");\n prop(\"onValueRevert\")?.({ value: prev });\n },\n invokeOnSubmit({ prop, context }) {\n const value = context.get(\"value\");\n prop(\"onValueCommit\")?.({ value });\n },\n invokeOnEdit({ prop }) {\n prop(\"onEditChange\")?.({ edit: true });\n },\n invokeOnPreview({ prop }) {\n prop(\"onEditChange\")?.({ edit: false });\n },\n toggleEditing({ prop, send, event }) {\n send({\n type: prop(\"edit\") ? \"CONTROLLED.EDIT\" : \"CONTROLLED.PREVIEW\",\n previousEvent: event\n });\n },\n syncInputValue({ context, scope }) {\n const inputEl = getInputEl(scope);\n if (!inputEl) return;\n setElementValue(inputEl, context.get(\"value\"));\n },\n setValue({ context, prop, event }) {\n const max = prop(\"maxLength\");\n const value = max != null ? event.value.slice(0, max) : event.value;\n context.set(\"value\", value);\n },\n setPreviousValue({ context }) {\n context.set(\"previousValue\", context.get(\"value\"));\n },\n revertValue({ context }) {\n const value = context.get(\"previousValue\");\n if (!value) return;\n context.set(\"value\", value);\n },\n blurInputIfNeeded({ scope }) {\n getInputEl(scope)?.blur();\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"autoResize\",\n \"dir\",\n \"disabled\",\n \"finalFocusEl\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"maxLength\",\n \"name\",\n \"onEditChange\",\n \"onFocusOutside\",\n \"onInteractOutside\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"onValueCommit\",\n \"onValueRevert\",\n \"placeholder\",\n \"readOnly\",\n \"required\",\n \"selectOnFocus\",\n \"edit\",\n \"defaultEdit\",\n \"submitMode\",\n \"translations\",\n \"defaultValue\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { createAnatomy } from '@zag-js/anatomy';\n\nconst fieldsetAnatomy = createAnatomy(\"fieldset\").parts(\"root\", \"errorText\", \"helperText\", \"legend\");\nconst parts = fieldsetAnatomy.build();\n\nexport { fieldsetAnatomy, parts };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { raf, addDomEvent, getWindow, contains, getEventTarget, dataAttr, visuallyHiddenStyle, isSelfTarget } from '@zag-js/dom-query';\nimport { getAcceptAttrString, isFileEqual, isValidFileType, isValidFileSize, getFileEntries } from '@zag-js/file-utils';\nimport { formatBytes } from '@zag-js/i18n-utils';\nimport { createProps } from '@zag-js/types';\nimport { callAll, createSplitProps, flatArray } from '@zag-js/utils';\nimport { createMachine } from '@zag-js/core';\n\n// src/file-upload.anatomy.ts\nvar anatomy = createAnatomy(\"file-upload\").parts(\n \"root\",\n \"dropzone\",\n \"item\",\n \"itemDeleteTrigger\",\n \"itemGroup\",\n \"itemName\",\n \"itemPreview\",\n \"itemPreviewImage\",\n \"itemSizeText\",\n \"label\",\n \"trigger\",\n \"clearTrigger\"\n);\nvar parts = anatomy.build();\n\n// src/file-upload.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `file:${ctx.id}`;\nvar getDropzoneId = (ctx) => ctx.ids?.dropzone ?? `file:${ctx.id}:dropzone`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `file:${ctx.id}:input`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `file:${ctx.id}:trigger`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `file:${ctx.id}:label`;\nvar getItemId = (ctx, id) => ctx.ids?.item?.(id) ?? `file:${ctx.id}:item:${id}`;\nvar getItemNameId = (ctx, id) => ctx.ids?.itemName?.(id) ?? `file:${ctx.id}:item-name:${id}`;\nvar getItemSizeTextId = (ctx, id) => ctx.ids?.itemSizeText?.(id) ?? `file:${ctx.id}:item-size:${id}`;\nvar getItemPreviewId = (ctx, id) => ctx.ids?.itemPreview?.(id) ?? `file:${ctx.id}:item-preview:${id}`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\nvar getDropzoneEl = (ctx) => ctx.getById(getDropzoneId(ctx));\nfunction isEventWithFiles(event) {\n const target = getEventTarget(event);\n if (!event.dataTransfer) return !!target && \"files\" in target;\n return event.dataTransfer.types.some((type) => {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nfunction isFilesWithinRange(ctx, incomingCount) {\n const { context, prop, computed } = ctx;\n if (!computed(\"multiple\") && incomingCount > 1) return false;\n if (!computed(\"multiple\") && incomingCount + context.get(\"acceptedFiles\").length === 2) return true;\n if (incomingCount + context.get(\"acceptedFiles\").length > prop(\"maxFiles\")) return false;\n return true;\n}\nfunction getFilesFromEvent(ctx, files) {\n const { context, prop, computed } = ctx;\n const acceptedFiles = [];\n const rejectedFiles = [];\n files.forEach((file) => {\n const [accepted, acceptError] = isValidFileType(file, computed(\"acceptAttr\"));\n const [sizeMatch, sizeError] = isValidFileSize(file, prop(\"minFileSize\"), prop(\"maxFileSize\"));\n const validateErrors = prop(\"validate\")?.(file, {\n acceptedFiles: context.get(\"acceptedFiles\"),\n rejectedFiles: context.get(\"rejectedFiles\")\n });\n const valid = validateErrors ? validateErrors.length === 0 : true;\n if (accepted && sizeMatch && valid) {\n acceptedFiles.push(file);\n } else {\n const errors = [acceptError, sizeError];\n if (!valid) errors.push(...validateErrors ?? []);\n rejectedFiles.push({ file, errors: errors.filter(Boolean) });\n }\n });\n if (!isFilesWithinRange(ctx, acceptedFiles.length)) {\n acceptedFiles.forEach((file) => {\n rejectedFiles.push({ file, errors: [\"TOO_MANY_FILES\"] });\n });\n acceptedFiles.splice(0);\n }\n return {\n acceptedFiles,\n rejectedFiles\n };\n}\nfunction setInputFiles(inputEl, files) {\n const win = getWindow(inputEl);\n try {\n if (\"DataTransfer\" in win) {\n const dataTransfer = new win.DataTransfer();\n files.forEach((file) => {\n dataTransfer.items.add(file);\n });\n inputEl.files = dataTransfer.files;\n }\n } catch {\n }\n}\n\n// src/file-upload.connect.ts\nfunction connect(service, normalize) {\n const { state, send, prop, computed, scope, context } = service;\n const disabled = prop(\"disabled\");\n const allowDrop = prop(\"allowDrop\");\n const translations = prop(\"translations\");\n const dragging = state.matches(\"dragging\");\n const focused = state.matches(\"focused\") && !disabled;\n return {\n dragging,\n focused,\n disabled: !!disabled,\n openFilePicker() {\n if (disabled) return;\n send({ type: \"OPEN\" });\n },\n deleteFile(file) {\n send({ type: \"FILE.DELETE\", file });\n },\n acceptedFiles: context.get(\"acceptedFiles\"),\n rejectedFiles: context.get(\"rejectedFiles\"),\n setFiles(files) {\n const count = files.length;\n send({ type: \"FILES.SET\", files, count });\n },\n clearRejectedFiles() {\n send({ type: \"REJECTED_FILES.CLEAR\" });\n },\n clearFiles() {\n send({ type: \"FILES.CLEAR\" });\n },\n getFileSize(file) {\n return formatBytes(file.size, prop(\"locale\"));\n },\n createFileUrl(file, cb) {\n const win = scope.getWin();\n const url = win.URL.createObjectURL(file);\n cb(url);\n return () => win.URL.revokeObjectURL(url);\n },\n setClipboardFiles(dt) {\n if (disabled) return false;\n const items = Array.from(dt?.items ?? []);\n const files = items.reduce((acc, item) => {\n if (item.kind !== \"file\") return acc;\n const file = item.getAsFile();\n if (!file) return acc;\n return [...acc, file];\n }, []);\n if (!files.length) return false;\n send({ type: \"FILES.SET\", files });\n return true;\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-disabled\": dataAttr(disabled),\n \"data-dragging\": dataAttr(dragging)\n });\n },\n getDropzoneProps(props2 = {}) {\n return normalize.element({\n ...parts.dropzone.attrs,\n dir: prop(\"dir\"),\n id: getDropzoneId(scope),\n tabIndex: disabled || props2.disableClick ? void 0 : 0,\n role: props2.disableClick ? \"application\" : \"button\",\n \"aria-label\": translations.dropzone,\n \"aria-disabled\": disabled,\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-dragging\": dataAttr(dragging),\n onKeyDown(event) {\n if (disabled) return;\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (props2.disableClick) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n send({ type: \"DROPZONE.CLICK\", src: \"keydown\" });\n },\n onClick(event) {\n if (disabled) return;\n if (event.defaultPrevented) return;\n if (props2.disableClick) return;\n if (!isSelfTarget(event)) return;\n if (event.currentTarget.localName === \"label\") {\n event.preventDefault();\n }\n send({ type: \"DROPZONE.CLICK\" });\n },\n onDragOver(event) {\n if (disabled) return;\n if (!allowDrop) return;\n event.preventDefault();\n event.stopPropagation();\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch {\n }\n const hasFiles = isEventWithFiles(event);\n if (!hasFiles) return;\n const count = event.dataTransfer.items.length;\n send({ type: \"DROPZONE.DRAG_OVER\", count });\n },\n onDragLeave(event) {\n if (disabled) return;\n if (!allowDrop) return;\n if (contains(event.currentTarget, event.relatedTarget)) return;\n send({ type: \"DROPZONE.DRAG_LEAVE\" });\n },\n onDrop(event) {\n if (disabled) return;\n if (allowDrop) {\n event.preventDefault();\n event.stopPropagation();\n }\n const hasFiles = isEventWithFiles(event);\n if (disabled || !hasFiles) return;\n getFileEntries(event.dataTransfer.items, prop(\"directory\")).then((files) => {\n send({ type: \"DROPZONE.DROP\", files: flatArray(files) });\n });\n },\n onFocus() {\n if (disabled) return;\n send({ type: \"DROPZONE.FOCUS\" });\n },\n onBlur() {\n if (disabled) return;\n send({ type: \"DROPZONE.BLUR\" });\n }\n });\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n dir: prop(\"dir\"),\n id: getTriggerId(scope),\n disabled,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(prop(\"invalid\")),\n type: \"button\",\n onClick(event) {\n if (disabled) return;\n if (contains(getDropzoneEl(scope), event.currentTarget)) {\n event.stopPropagation();\n }\n send({ type: \"OPEN\" });\n }\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: getHiddenInputId(scope),\n tabIndex: -1,\n disabled,\n type: \"file\",\n required: prop(\"required\"),\n capture: prop(\"capture\"),\n name: prop(\"name\"),\n accept: computed(\"acceptAttr\"),\n webkitdirectory: prop(\"directory\") ? \"\" : void 0,\n multiple: computed(\"multiple\") || prop(\"maxFiles\") > 1,\n onClick(event) {\n event.stopPropagation();\n event.currentTarget.value = \"\";\n },\n onInput(event) {\n if (disabled) return;\n const { files } = event.currentTarget;\n send({ type: \"FILES.SET\", files: files ? Array.from(files) : [] });\n },\n style: visuallyHiddenStyle\n });\n },\n getItemGroupProps() {\n return normalize.element({\n ...parts.itemGroup.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled)\n });\n },\n getItemProps(props2) {\n const { file } = props2;\n return normalize.element({\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n id: getItemId(scope, file.name),\n \"data-disabled\": dataAttr(disabled)\n });\n },\n getItemNameProps(props2) {\n const { file } = props2;\n return normalize.element({\n ...parts.itemName.attrs,\n dir: prop(\"dir\"),\n id: getItemNameId(scope, file.name),\n \"data-disabled\": dataAttr(disabled)\n });\n },\n getItemSizeTextProps(props2) {\n const { file } = props2;\n return normalize.element({\n ...parts.itemSizeText.attrs,\n dir: prop(\"dir\"),\n id: getItemSizeTextId(scope, file.name),\n \"data-disabled\": dataAttr(disabled)\n });\n },\n getItemPreviewProps(props2) {\n const { file } = props2;\n return normalize.element({\n ...parts.itemPreview.attrs,\n dir: prop(\"dir\"),\n id: getItemPreviewId(scope, file.name),\n \"data-disabled\": dataAttr(disabled)\n });\n },\n getItemPreviewImageProps(props2) {\n const { file, url } = props2;\n const isImage = file.type.startsWith(\"image/\");\n if (!isImage) {\n throw new Error(\"Preview Image is only supported for image files\");\n }\n return normalize.img({\n ...parts.itemPreviewImage.attrs,\n alt: translations.itemPreview?.(file),\n src: url,\n \"data-disabled\": dataAttr(disabled)\n });\n },\n getItemDeleteTriggerProps(props2) {\n const { file } = props2;\n return normalize.button({\n ...parts.itemDeleteTrigger.attrs,\n dir: prop(\"dir\"),\n type: \"button\",\n disabled,\n \"data-disabled\": dataAttr(disabled),\n \"aria-label\": translations.deleteFile?.(file),\n onClick() {\n if (disabled) return;\n send({ type: \"FILE.DELETE\", file });\n }\n });\n },\n getLabelProps() {\n return normalize.label({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope),\n htmlFor: getHiddenInputId(scope),\n \"data-disabled\": dataAttr(disabled)\n });\n },\n getClearTriggerProps() {\n return normalize.button({\n ...parts.clearTrigger.attrs,\n dir: prop(\"dir\"),\n type: \"button\",\n disabled,\n hidden: context.get(\"acceptedFiles\").length === 0,\n \"data-disabled\": dataAttr(disabled),\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n send({ type: \"FILES.CLEAR\" });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n minFileSize: 0,\n maxFileSize: Number.POSITIVE_INFINITY,\n maxFiles: 1,\n allowDrop: true,\n preventDocumentDrop: true,\n ...props2,\n translations: {\n dropzone: \"dropzone\",\n itemPreview: (file) => `preview of ${file.name}`,\n deleteFile: (file) => `delete file ${file.name}`,\n ...props2.translations\n }\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable, getContext }) {\n return {\n acceptedFiles: bindable(() => ({\n defaultValue: [],\n isEqual: (a, b) => a.length === b?.length && a.every((file, i) => isFileEqual(file, b[i])),\n hash(value) {\n return value.map((file) => `${file.name}-${file.size}`).join(\",\");\n },\n onChange(value) {\n const ctx = getContext();\n prop(\"onFileAccept\")?.({ files: value });\n prop(\"onFileChange\")?.({ acceptedFiles: value, rejectedFiles: ctx.get(\"rejectedFiles\") });\n }\n })),\n rejectedFiles: bindable(() => ({\n defaultValue: [],\n isEqual: (a, b) => a.length === b?.length && a.every((file, i) => isFileEqual(file.file, b[i].file)),\n onChange(value) {\n const ctx = getContext();\n prop(\"onFileReject\")?.({ files: value });\n prop(\"onFileChange\")?.({ acceptedFiles: ctx.get(\"acceptedFiles\"), rejectedFiles: value });\n }\n }))\n };\n },\n computed: {\n acceptAttr: ({ prop }) => getAcceptAttrString(prop(\"accept\")),\n multiple: ({ prop }) => prop(\"maxFiles\") > 1\n },\n watch({ track, context, action }) {\n track([() => context.hash(\"acceptedFiles\")], () => {\n action([\"syncInputElement\"]);\n });\n },\n on: {\n \"FILES.SET\": {\n actions: [\"setFilesFromEvent\"]\n },\n \"FILE.DELETE\": {\n actions: [\"removeFile\"]\n },\n \"FILES.CLEAR\": {\n actions: [\"clearFiles\"]\n },\n \"REJECTED_FILES.CLEAR\": {\n actions: [\"clearRejectedFiles\"]\n }\n },\n effects: [\"preventDocumentDrop\"],\n states: {\n idle: {\n on: {\n OPEN: {\n actions: [\"openFilePicker\"]\n },\n \"DROPZONE.CLICK\": {\n actions: [\"openFilePicker\"]\n },\n \"DROPZONE.FOCUS\": {\n target: \"focused\"\n },\n \"DROPZONE.DRAG_OVER\": {\n target: \"dragging\"\n }\n }\n },\n focused: {\n on: {\n \"DROPZONE.BLUR\": {\n target: \"idle\"\n },\n OPEN: {\n actions: [\"openFilePicker\"]\n },\n \"DROPZONE.CLICK\": {\n actions: [\"openFilePicker\"]\n },\n \"DROPZONE.DRAG_OVER\": {\n target: \"dragging\"\n }\n }\n },\n dragging: {\n on: {\n \"DROPZONE.DROP\": {\n target: \"idle\",\n actions: [\"setFilesFromEvent\"]\n },\n \"DROPZONE.DRAG_LEAVE\": {\n target: \"idle\"\n }\n }\n }\n },\n implementations: {\n effects: {\n preventDocumentDrop({ prop, scope }) {\n if (!prop(\"preventDocumentDrop\")) return;\n if (!prop(\"allowDrop\")) return;\n if (prop(\"disabled\")) return;\n const doc = scope.getDoc();\n const onDragOver = (event) => {\n event?.preventDefault();\n };\n const onDrop = (event) => {\n if (contains(getRootEl(scope), getEventTarget(event))) return;\n event.preventDefault();\n };\n return callAll(addDomEvent(doc, \"dragover\", onDragOver, false), addDomEvent(doc, \"drop\", onDrop, false));\n }\n },\n actions: {\n syncInputElement({ scope, context }) {\n queueMicrotask(() => {\n const inputEl = getHiddenInputEl(scope);\n if (!inputEl) return;\n setInputFiles(inputEl, context.get(\"acceptedFiles\"));\n const win = scope.getWin();\n inputEl.dispatchEvent(new win.Event(\"change\", { bubbles: true }));\n });\n },\n openFilePicker({ scope }) {\n raf(() => {\n getHiddenInputEl(scope)?.click();\n });\n },\n setFilesFromEvent(params) {\n const { computed, context, event } = params;\n const result = getFilesFromEvent(params, event.files);\n const { acceptedFiles, rejectedFiles } = result;\n if (computed(\"multiple\")) {\n context.set(\"acceptedFiles\", (prev) => [...prev, ...acceptedFiles]);\n context.set(\"rejectedFiles\", rejectedFiles);\n return;\n }\n if (acceptedFiles.length) {\n const files = [acceptedFiles[0]];\n context.set(\"acceptedFiles\", files);\n context.set(\"rejectedFiles\", rejectedFiles);\n } else if (rejectedFiles.length) {\n context.set(\"acceptedFiles\", context.get(\"acceptedFiles\"));\n context.set(\"rejectedFiles\", rejectedFiles);\n }\n },\n removeFile({ context, event }) {\n const files = context.get(\"acceptedFiles\").filter((file) => file !== event.file);\n const rejectedFiles = context.get(\"rejectedFiles\").filter((item) => item.file !== event.file);\n context.set(\"acceptedFiles\", files);\n context.set(\"rejectedFiles\", rejectedFiles);\n },\n clearRejectedFiles({ context }) {\n context.set(\"acceptedFiles\", context.get(\"acceptedFiles\"));\n context.set(\"rejectedFiles\", []);\n },\n clearFiles({ context }) {\n context.set(\"acceptedFiles\", []);\n context.set(\"rejectedFiles\", []);\n }\n }\n }\n});\nvar props = createProps()([\n \"accept\",\n \"allowDrop\",\n \"capture\",\n \"dir\",\n \"directory\",\n \"disabled\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"locale\",\n \"maxFiles\",\n \"maxFileSize\",\n \"minFileSize\",\n \"name\",\n \"invalid\",\n \"onFileAccept\",\n \"onFileReject\",\n \"onFileChange\",\n \"preventDocumentDrop\",\n \"required\",\n \"translations\",\n \"validate\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"file\"]);\nvar splitItemProps = createSplitProps(itemProps);\n\nexport { anatomy, connect, itemProps, machine, props, splitItemProps, splitProps };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [HoverCardProvider, useHoverCardContext] = createContext({\n name: \"HoverCardContext\",\n hookName: \"useHoverCardContext\",\n providerName: \"<HoverCardProvider />\"\n});\n\nexport { HoverCardProvider, useHoverCardContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardArrow = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nHoverCardArrow.displayName = \"HoverCardArrow\";\n\nexport { HoverCardArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardArrowTip = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nHoverCardArrowTip.displayName = \"HoverCardArrowTip\";\n\nexport { HoverCardArrowTip };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardContent = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(hoverCard.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nHoverCardContent.displayName = \"HoverCardContent\";\n\nexport { HoverCardContent };\n","'use client';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardContext = (props) => props.children(useHoverCardContext());\n\nexport { HoverCardContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardPositioner = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nHoverCardPositioner.displayName = \"HoverCardPositioner\";\n\nexport { HoverCardPositioner };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/hover-card.anatomy.ts\nvar anatomy = createAnatomy(\"hoverCard\").parts(\"arrow\", \"arrowTip\", \"trigger\", \"positioner\", \"content\");\nvar parts = anatomy.build();\n\n// src/hover-card.dom.ts\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `hover-card:${ctx.id}:trigger`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `hover-card:${ctx.id}:content`;\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `hover-card:${ctx.id}:popper`;\nvar getArrowId = (ctx) => ctx.ids?.arrow ?? `hover-card:${ctx.id}:arrow`;\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\n\n// src/hover-card.connect.ts\nfunction connect(service, normalize) {\n const { state, send, prop, context, scope } = service;\n const open = state.hasTag(\"open\");\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: context.get(\"currentPlacement\")\n });\n return {\n open,\n setOpen(nextOpen) {\n const open2 = state.hasTag(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n reposition(options = {}) {\n send({ type: \"POSITIONING.SET\", options });\n },\n getArrowProps() {\n return normalize.element({\n id: getArrowId(scope),\n ...parts.arrow.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrow\n });\n },\n getArrowTipProps() {\n return normalize.element({\n ...parts.arrowTip.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrowTip\n });\n },\n getTriggerProps() {\n return normalize.element({\n ...parts.trigger.attrs,\n dir: prop(\"dir\"),\n \"data-placement\": context.get(\"currentPlacement\"),\n id: getTriggerId(scope),\n \"data-state\": open ? \"open\" : \"closed\",\n onPointerEnter(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_ENTER\", src: \"trigger\" });\n },\n onPointerLeave(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_LEAVE\", src: \"trigger\" });\n },\n onFocus() {\n send({ type: \"TRIGGER_FOCUS\" });\n },\n onBlur() {\n send({ type: \"TRIGGER_BLUR\" });\n }\n });\n },\n getPositionerProps() {\n return normalize.element({\n id: getPositionerId(scope),\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope),\n hidden: !open,\n tabIndex: -1,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-placement\": context.get(\"currentPlacement\"),\n onPointerEnter(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_ENTER\", src: \"content\" });\n },\n onPointerLeave(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_LEAVE\", src: \"content\" });\n }\n });\n }\n };\n}\nvar { not, and } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n openDelay: 700,\n closeDelay: 300,\n ...props2,\n positioning: {\n placement: \"bottom\",\n ...props2.positioning\n }\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n context({ prop, bindable }) {\n return {\n open: bindable(() => ({\n defaultValue: prop(\"defaultOpen\"),\n value: prop(\"open\"),\n onChange(value) {\n prop(\"onOpenChange\")?.({ open: value });\n }\n })),\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n })),\n isPointer: bindable(() => ({\n defaultValue: false\n }))\n };\n },\n watch({ track, context, action }) {\n track([() => context.get(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n states: {\n closed: {\n tags: [\"closed\"],\n entry: [\"clearIsPointer\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n POINTER_ENTER: {\n target: \"opening\",\n actions: [\"setIsPointer\"]\n },\n TRIGGER_FOCUS: {\n target: \"opening\"\n },\n OPEN: {\n target: \"opening\"\n }\n }\n },\n opening: {\n tags: [\"closed\"],\n effects: [\"waitForOpenDelay\"],\n on: {\n OPEN_DELAY: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n POINTER_LEAVE: [\n {\n guard: \"isOpenControlled\",\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TRIGGER_BLUR: [\n {\n guard: and(\"isOpenControlled\", not(\"isPointer\")),\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n guard: not(\"isPointer\"),\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ]\n }\n },\n open: {\n tags: [\"open\"],\n effects: [\"trackDismissableElement\", \"trackPositioning\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n POINTER_ENTER: {\n actions: [\"setIsPointer\"]\n },\n POINTER_LEAVE: {\n target: \"closing\"\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TRIGGER_BLUR: [\n {\n guard: and(\"isOpenControlled\", not(\"isPointer\")),\n actions: [\"invokeOnClose\"]\n },\n {\n guard: not(\"isPointer\"),\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"POSITIONING.SET\": {\n actions: [\"reposition\"]\n }\n }\n },\n closing: {\n tags: [\"open\"],\n effects: [\"trackPositioning\", \"waitForCloseDelay\"],\n on: {\n CLOSE_DELAY: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n POINTER_ENTER: {\n target: \"open\",\n // no need to invokeOnOpen here because it's still open (but about to close)\n actions: [\"setIsPointer\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n isPointer: ({ context }) => !!context.get(\"isPointer\"),\n isOpenControlled: ({ prop }) => prop(\"open\") != null\n },\n effects: {\n waitForOpenDelay({ send, prop }) {\n const id = setTimeout(() => {\n send({ type: \"OPEN_DELAY\" });\n }, prop(\"openDelay\"));\n return () => clearTimeout(id);\n },\n waitForCloseDelay({ send, prop }) {\n const id = setTimeout(() => {\n send({ type: \"CLOSE_DELAY\" });\n }, prop(\"closeDelay\"));\n return () => clearTimeout(id);\n },\n trackPositioning({ context, prop, scope }) {\n if (!context.get(\"currentPlacement\")) {\n context.set(\"currentPlacement\", prop(\"positioning\").placement);\n }\n const getPositionerEl2 = () => getPositionerEl(scope);\n return getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...prop(\"positioning\"),\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n trackDismissableElement({ send, scope, prop }) {\n const getContentEl2 = () => getContentEl(scope);\n return trackDismissableElement(getContentEl2, {\n defer: true,\n exclude: [getTriggerEl(scope)],\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\" });\n },\n onInteractOutside: prop(\"onInteractOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onFocusOutside(event) {\n event.preventDefault();\n prop(\"onFocusOutside\")?.(event);\n }\n });\n }\n },\n actions: {\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n setIsPointer({ context }) {\n context.set(\"isPointer\", true);\n },\n clearIsPointer({ context }) {\n context.set(\"isPointer\", false);\n },\n reposition({ context, prop, scope, event }) {\n const getPositionerEl2 = () => getPositionerEl(scope);\n getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n toggleVisibility({ prop, event, send }) {\n queueMicrotask(() => {\n send({ type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: event });\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"closeDelay\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"onOpenChange\",\n \"defaultOpen\",\n \"open\",\n \"openDelay\",\n \"positioning\",\n \"onInteractOutside\",\n \"onPointerDownOutside\",\n \"onFocusOutside\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport * as hoverCard from '@zag-js/hover-card';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useHoverCard = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(hoverCard.machine, machineProps);\n return hoverCard.connect(service, normalizeProps);\n};\n\nexport { useHoverCard };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useHoverCard } from './use-hover-card.js';\nimport { HoverCardProvider } from './use-hover-card-context.js';\n\nconst HoverCardRoot = (props) => {\n const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);\n const hoverCard = useHoverCard(localProps);\n const presence = usePresence(mergeProps({ present: hoverCard.open }, presenceProps));\n return /* @__PURE__ */ jsx(HoverCardProvider, { value: hoverCard, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { HoverCardRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { HoverCardProvider } from './use-hover-card-context.js';\n\nconst HoverCardRootProvider = (props) => {\n const [presenceProps, { value: hoverCard, children }] = splitPresenceProps(props);\n const presence = usePresence(mergeProps({ present: hoverCard.open }, presenceProps));\n return /* @__PURE__ */ jsx(HoverCardProvider, { value: hoverCard, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { HoverCardRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardTrigger = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nHoverCardTrigger.displayName = \"HoverCardTrigger\";\n\nexport { HoverCardTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { raf, setElementValue, addDomEvent, isSafari, requestPointerLock, observeAttributes, trackFormControl, MAX_Z_INDEX, dataAttr, getEventPoint, getWindow, isLeftClick, ariaAttr, isComposingEvent, getEventStep, isModifierKey } from '@zag-js/dom-query';\nimport { isValueAtMax, isValueAtMin, clampValue, decrementValue, incrementValue, callAll, isValueWithinRange, createSplitProps, roundToDpr, wrap } from '@zag-js/utils';\nimport { setup, memo } from '@zag-js/core';\nimport { NumberParser } from '@internationalized/number';\nimport { createProps } from '@zag-js/types';\n\n// src/number-input.anatomy.ts\nvar anatomy = createAnatomy(\"numberInput\").parts(\n \"root\",\n \"label\",\n \"input\",\n \"control\",\n \"valueText\",\n \"incrementTrigger\",\n \"decrementTrigger\",\n \"scrubber\"\n);\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `number-input:${ctx.id}`;\nvar getInputId = (ctx) => ctx.ids?.input ?? `number-input:${ctx.id}:input`;\nvar getIncrementTriggerId = (ctx) => ctx.ids?.incrementTrigger ?? `number-input:${ctx.id}:inc`;\nvar getDecrementTriggerId = (ctx) => ctx.ids?.decrementTrigger ?? `number-input:${ctx.id}:dec`;\nvar getScrubberId = (ctx) => ctx.ids?.scrubber ?? `number-input:${ctx.id}:scrubber`;\nvar getCursorId = (ctx) => `number-input:${ctx.id}:cursor`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `number-input:${ctx.id}:label`;\nvar getInputEl = (ctx) => ctx.getById(getInputId(ctx));\nvar getIncrementTriggerEl = (ctx) => ctx.getById(getIncrementTriggerId(ctx));\nvar getDecrementTriggerEl = (ctx) => ctx.getById(getDecrementTriggerId(ctx));\nvar getCursorEl = (ctx) => ctx.getDoc().getElementById(getCursorId(ctx));\nvar getPressedTriggerEl = (ctx, hint) => {\n let btnEl = null;\n if (hint === \"increment\") {\n btnEl = getIncrementTriggerEl(ctx);\n }\n if (hint === \"decrement\") {\n btnEl = getDecrementTriggerEl(ctx);\n }\n return btnEl;\n};\nvar setupVirtualCursor = (ctx, point) => {\n if (isSafari()) return;\n createVirtualCursor(ctx, point);\n return () => {\n getCursorEl(ctx)?.remove();\n };\n};\nvar preventTextSelection = (ctx) => {\n const doc = ctx.getDoc();\n const html = doc.documentElement;\n const body = doc.body;\n body.style.pointerEvents = \"none\";\n html.style.userSelect = \"none\";\n html.style.cursor = \"ew-resize\";\n return () => {\n body.style.pointerEvents = \"\";\n html.style.userSelect = \"\";\n html.style.cursor = \"\";\n if (!html.style.length) {\n html.removeAttribute(\"style\");\n }\n if (!body.style.length) {\n body.removeAttribute(\"style\");\n }\n };\n};\nvar getMousemoveValue = (ctx, opts) => {\n const { point, isRtl, event } = opts;\n const win = ctx.getWin();\n const x = roundToDpr(event.movementX, win.devicePixelRatio);\n const y = roundToDpr(event.movementY, win.devicePixelRatio);\n let hint = x > 0 ? \"increment\" : x < 0 ? \"decrement\" : null;\n if (isRtl && hint === \"increment\") hint = \"decrement\";\n if (isRtl && hint === \"decrement\") hint = \"increment\";\n const newPoint = { x: point.x + x, y: point.y + y };\n const width = win.innerWidth;\n const half = roundToDpr(7.5, win.devicePixelRatio);\n newPoint.x = wrap(newPoint.x + half, width) - half;\n return { hint, point: newPoint };\n};\nvar createVirtualCursor = (ctx, point) => {\n const doc = ctx.getDoc();\n const el = doc.createElement(\"div\");\n el.className = \"scrubber--cursor\";\n el.id = getCursorId(ctx);\n Object.assign(el.style, {\n width: \"15px\",\n height: \"15px\",\n position: \"fixed\",\n pointerEvents: \"none\",\n left: \"0px\",\n top: \"0px\",\n zIndex: MAX_Z_INDEX,\n transform: point ? `translate3d(${point.x}px, ${point.y}px, 0px)` : void 0,\n willChange: \"transform\"\n });\n el.innerHTML = `\n <svg width=\"46\" height=\"15\" style=\"left: -15.5px; position: absolute; top: 0; filter: drop-shadow(rgba(0, 0, 0, 0.4) 0px 1px 1.1px);\">\n <g transform=\"translate(2 3)\">\n <path fill-rule=\"evenodd\" d=\"M 15 4.5L 15 2L 11.5 5.5L 15 9L 15 6.5L 31 6.5L 31 9L 34.5 5.5L 31 2L 31 4.5Z\" style=\"stroke-width: 2px; stroke: white;\"></path>\n <path fill-rule=\"evenodd\" d=\"M 15 4.5L 15 2L 11.5 5.5L 15 9L 15 6.5L 31 6.5L 31 9L 34.5 5.5L 31 2L 31 4.5Z\"></path>\n </g>\n </svg>`;\n doc.body.appendChild(el);\n};\n\n// src/number-input.connect.ts\nfunction connect(service, normalize) {\n const { state, send, prop, scope, computed } = service;\n const focused = state.hasTag(\"focus\");\n const disabled = computed(\"isDisabled\");\n const readOnly = prop(\"readOnly\");\n const empty = computed(\"isValueEmpty\");\n const invalid = computed(\"isOutOfRange\") || !!prop(\"invalid\");\n const isIncrementDisabled = disabled || !computed(\"canIncrement\") || readOnly;\n const isDecrementDisabled = disabled || !computed(\"canDecrement\") || readOnly;\n const translations = prop(\"translations\");\n return {\n focused,\n invalid,\n empty,\n value: computed(\"formattedValue\"),\n valueAsNumber: computed(\"valueAsNumber\"),\n setValue(value) {\n send({ type: \"VALUE.SET\", value });\n },\n clearValue() {\n send({ type: \"VALUE.CLEAR\" });\n },\n increment() {\n send({ type: \"VALUE.INCREMENT\" });\n },\n decrement() {\n send({ type: \"VALUE.DECREMENT\" });\n },\n setToMax() {\n send({ type: \"VALUE.SET\", value: prop(\"max\") });\n },\n setToMin() {\n send({ type: \"VALUE.SET\", value: prop(\"min\") });\n },\n focus() {\n getInputEl(scope)?.focus();\n },\n getRootProps() {\n return normalize.element({\n id: getRootId(scope),\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-focus\": dataAttr(focused),\n \"data-invalid\": dataAttr(invalid)\n });\n },\n getLabelProps() {\n return normalize.label({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-focus\": dataAttr(focused),\n \"data-invalid\": dataAttr(invalid),\n id: getLabelId(scope),\n htmlFor: getInputId(scope)\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n dir: prop(\"dir\"),\n role: \"group\",\n \"aria-disabled\": disabled,\n \"data-focus\": dataAttr(focused),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"aria-invalid\": ariaAttr(invalid)\n });\n },\n getValueTextProps() {\n return normalize.element({\n ...parts.valueText.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-focus\": dataAttr(focused)\n });\n },\n getInputProps() {\n return normalize.input({\n ...parts.input.attrs,\n dir: prop(\"dir\"),\n name: prop(\"name\"),\n form: prop(\"form\"),\n id: getInputId(scope),\n role: \"spinbutton\",\n defaultValue: computed(\"formattedValue\"),\n pattern: prop(\"pattern\"),\n inputMode: prop(\"inputMode\"),\n \"aria-invalid\": ariaAttr(invalid),\n \"data-invalid\": dataAttr(invalid),\n disabled,\n \"data-disabled\": dataAttr(disabled),\n readOnly,\n required: prop(\"required\"),\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: \"false\",\n type: \"text\",\n \"aria-roledescription\": \"numberfield\",\n \"aria-valuemin\": prop(\"min\"),\n \"aria-valuemax\": prop(\"max\"),\n \"aria-valuenow\": Number.isNaN(computed(\"valueAsNumber\")) ? void 0 : computed(\"valueAsNumber\"),\n \"aria-valuetext\": computed(\"valueText\"),\n onFocus() {\n send({ type: \"INPUT.FOCUS\" });\n },\n onBlur() {\n send({ type: \"INPUT.BLUR\" });\n },\n onInput(event) {\n send({ type: \"INPUT.CHANGE\", target: event.currentTarget, hint: \"set\" });\n },\n onBeforeInput(event) {\n try {\n const { selectionStart, selectionEnd, value } = event.currentTarget;\n const nextValue = value.slice(0, selectionStart) + (event.data ?? \"\") + value.slice(selectionEnd);\n const isValid = computed(\"parser\").isValidPartialNumber(nextValue);\n if (!isValid) {\n event.preventDefault();\n }\n } catch {\n }\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (readOnly) return;\n if (isComposingEvent(event)) return;\n const step = getEventStep(event) * prop(\"step\");\n const keyMap = {\n ArrowUp() {\n send({ type: \"INPUT.ARROW_UP\", step });\n event.preventDefault();\n },\n ArrowDown() {\n send({ type: \"INPUT.ARROW_DOWN\", step });\n event.preventDefault();\n },\n Home() {\n if (isModifierKey(event)) return;\n send({ type: \"INPUT.HOME\" });\n event.preventDefault();\n },\n End() {\n if (isModifierKey(event)) return;\n send({ type: \"INPUT.END\" });\n event.preventDefault();\n },\n Enter() {\n send({ type: \"INPUT.ENTER\" });\n }\n };\n const exec = keyMap[event.key];\n exec?.(event);\n }\n });\n },\n getDecrementTriggerProps() {\n return normalize.button({\n ...parts.decrementTrigger.attrs,\n dir: prop(\"dir\"),\n id: getDecrementTriggerId(scope),\n disabled: isDecrementDisabled,\n \"data-disabled\": dataAttr(isDecrementDisabled),\n \"aria-label\": translations.decrementLabel,\n type: \"button\",\n tabIndex: -1,\n \"aria-controls\": getInputId(scope),\n onPointerDown(event) {\n if (isDecrementDisabled || !isLeftClick(event)) return;\n send({ type: \"TRIGGER.PRESS_DOWN\", hint: \"decrement\", pointerType: event.pointerType });\n if (event.pointerType === \"mouse\") {\n event.preventDefault();\n }\n if (event.pointerType === \"touch\") {\n event.currentTarget?.focus({ preventScroll: true });\n }\n },\n onPointerUp(event) {\n send({ type: \"TRIGGER.PRESS_UP\", hint: \"decrement\", pointerType: event.pointerType });\n },\n onPointerLeave() {\n if (isDecrementDisabled) return;\n send({ type: \"TRIGGER.PRESS_UP\", hint: \"decrement\" });\n }\n });\n },\n getIncrementTriggerProps() {\n return normalize.button({\n ...parts.incrementTrigger.attrs,\n dir: prop(\"dir\"),\n id: getIncrementTriggerId(scope),\n disabled: isIncrementDisabled,\n \"data-disabled\": dataAttr(isIncrementDisabled),\n \"aria-label\": translations.incrementLabel,\n type: \"button\",\n tabIndex: -1,\n \"aria-controls\": getInputId(scope),\n onPointerDown(event) {\n if (isIncrementDisabled || !isLeftClick(event)) return;\n send({ type: \"TRIGGER.PRESS_DOWN\", hint: \"increment\", pointerType: event.pointerType });\n if (event.pointerType === \"mouse\") {\n event.preventDefault();\n }\n if (event.pointerType === \"touch\") {\n event.currentTarget?.focus({ preventScroll: true });\n }\n },\n onPointerUp(event) {\n send({ type: \"TRIGGER.PRESS_UP\", hint: \"increment\", pointerType: event.pointerType });\n },\n onPointerLeave(event) {\n send({ type: \"TRIGGER.PRESS_UP\", hint: \"increment\", pointerType: event.pointerType });\n }\n });\n },\n getScrubberProps() {\n return normalize.element({\n ...parts.scrubber.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n id: getScrubberId(scope),\n role: \"presentation\",\n onMouseDown(event) {\n if (disabled) return;\n const point = getEventPoint(event);\n const win = getWindow(event.currentTarget);\n const dpr = win.devicePixelRatio;\n point.x = point.x - roundToDpr(7.5, dpr);\n point.y = point.y - roundToDpr(7.5, dpr);\n send({ type: \"SCRUBBER.PRESS_DOWN\", point });\n event.preventDefault();\n },\n style: {\n cursor: disabled ? void 0 : \"ew-resize\"\n }\n });\n }\n };\n}\n\n// src/cursor.ts\nfunction recordCursor(inputEl) {\n if (!inputEl || inputEl.ownerDocument.activeElement !== inputEl) return;\n try {\n const { selectionStart: start, selectionEnd: end, value } = inputEl;\n const beforeTxt = value.substring(0, start);\n const afterTxt = value.substring(end);\n return {\n start,\n end,\n value,\n beforeTxt,\n afterTxt\n };\n } catch {\n }\n}\nfunction restoreCursor(inputEl, selection) {\n if (!inputEl || inputEl.ownerDocument.activeElement !== inputEl) return;\n if (!selection) {\n inputEl.setSelectionRange(inputEl.value.length, inputEl.value.length);\n return;\n }\n try {\n const { value } = inputEl;\n const { beforeTxt = \"\", afterTxt = \"\", start } = selection;\n let startPos = value.length;\n if (value.endsWith(afterTxt)) {\n startPos = value.length - afterTxt.length;\n } else if (value.startsWith(beforeTxt)) {\n startPos = beforeTxt.length;\n } else if (start != null) {\n const beforeLastChar = beforeTxt[start - 1];\n const newIndex = value.indexOf(beforeLastChar, start - 1);\n if (newIndex !== -1) {\n startPos = newIndex + 1;\n }\n }\n inputEl.setSelectionRange(startPos, startPos);\n } catch {\n }\n}\nvar createFormatter = (locale, options = {}) => {\n return new Intl.NumberFormat(locale, options);\n};\nvar createParser = (locale, options = {}) => {\n return new NumberParser(locale, options);\n};\nvar parseValue = (value, params) => {\n const { prop, computed } = params;\n if (!prop(\"formatOptions\")) return parseFloat(value);\n return computed(\"parser\").parse(String(value));\n};\nvar formatValue = (value, params) => {\n const { prop, computed } = params;\n if (Number.isNaN(value)) return \"\";\n if (!prop(\"formatOptions\")) return value.toString();\n return computed(\"formatter\").format(value);\n};\nvar getDefaultStep = (step, formatOptions) => {\n let defaultStep = step !== void 0 && !Number.isNaN(step) ? step : 1;\n if (formatOptions?.style === \"percent\" && (step === void 0 || Number.isNaN(step))) {\n defaultStep = 0.01;\n }\n return defaultStep;\n};\n\n// src/number-input.machine.ts\nvar { choose, guards, createMachine } = setup();\nvar { not, and } = guards;\nvar machine = createMachine({\n props({ props: props2 }) {\n const step = getDefaultStep(props2.step, props2.formatOptions);\n return {\n dir: \"ltr\",\n locale: \"en-US\",\n focusInputOnChange: true,\n clampValueOnBlur: !props2.allowOverflow,\n allowOverflow: false,\n inputMode: \"decimal\",\n pattern: \"[0-9]*(.[0-9]+)?\",\n defaultValue: \"\",\n step,\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n spinOnPress: true,\n ...props2,\n translations: {\n incrementLabel: \"increment value\",\n decrementLabel: \"decrease value\",\n ...props2.translations\n }\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable, getComputed }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n const computed = getComputed();\n const valueAsNumber = parseValue(value, { computed, prop });\n prop(\"onValueChange\")?.({ value, valueAsNumber });\n }\n })),\n hint: bindable(() => ({ defaultValue: null })),\n scrubberCursorPoint: bindable(() => ({\n defaultValue: null,\n hash(value) {\n return value ? `x:${value.x}, y:${value.y}` : \"\";\n }\n })),\n fieldsetDisabled: bindable(() => ({ defaultValue: false }))\n };\n },\n computed: {\n isRtl: ({ prop }) => prop(\"dir\") === \"rtl\",\n valueAsNumber: ({ context, computed, prop }) => parseValue(context.get(\"value\"), { computed, prop }),\n formattedValue: ({ computed, prop }) => formatValue(computed(\"valueAsNumber\"), { computed, prop }),\n isAtMin: ({ computed, prop }) => isValueAtMin(computed(\"valueAsNumber\"), prop(\"min\")),\n isAtMax: ({ computed, prop }) => isValueAtMax(computed(\"valueAsNumber\"), prop(\"max\")),\n isOutOfRange: ({ computed, prop }) => !isValueWithinRange(computed(\"valueAsNumber\"), prop(\"min\"), prop(\"max\")),\n isValueEmpty: ({ context }) => context.get(\"value\") === \"\",\n isDisabled: ({ prop, context }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\"),\n canIncrement: ({ prop, computed }) => prop(\"allowOverflow\") || !computed(\"isAtMax\"),\n canDecrement: ({ prop, computed }) => prop(\"allowOverflow\") || !computed(\"isAtMin\"),\n valueText: ({ prop, context }) => prop(\"translations\").valueText?.(context.get(\"value\")),\n formatter: memo(\n ({ prop }) => [prop(\"locale\"), prop(\"formatOptions\")],\n (locale, formatOptions) => createFormatter(locale, formatOptions)\n ),\n parser: memo(\n ({ prop }) => [prop(\"locale\"), prop(\"formatOptions\")],\n (locale, formatOptions) => createParser(locale, formatOptions)\n )\n },\n watch({ track, action, context, computed, prop }) {\n track([() => context.get(\"value\"), () => prop(\"locale\")], () => {\n action([\"syncInputElement\"]);\n });\n track([() => computed(\"isOutOfRange\")], () => {\n action([\"invokeOnInvalid\"]);\n });\n track([() => context.hash(\"scrubberCursorPoint\")], () => {\n action([\"setVirtualCursorPosition\"]);\n });\n },\n effects: [\"trackFormControl\"],\n on: {\n \"VALUE.SET\": {\n actions: [\"setRawValue\"]\n },\n \"VALUE.CLEAR\": {\n actions: [\"clearValue\"]\n },\n \"VALUE.INCREMENT\": {\n actions: [\"increment\"]\n },\n \"VALUE.DECREMENT\": {\n actions: [\"decrement\"]\n }\n },\n states: {\n idle: {\n on: {\n \"TRIGGER.PRESS_DOWN\": [\n { guard: \"isTouchPointer\", target: \"before:spin\", actions: [\"setHint\"] },\n {\n target: \"before:spin\",\n actions: [\"focusInput\", \"invokeOnFocus\", \"setHint\"]\n }\n ],\n \"SCRUBBER.PRESS_DOWN\": {\n target: \"scrubbing\",\n actions: [\"focusInput\", \"invokeOnFocus\", \"setHint\", \"setCursorPoint\"]\n },\n \"INPUT.FOCUS\": {\n target: \"focused\",\n actions: [\"focusInput\", \"invokeOnFocus\"]\n }\n }\n },\n focused: {\n tags: [\"focus\"],\n effects: [\"attachWheelListener\"],\n on: {\n \"TRIGGER.PRESS_DOWN\": [\n { guard: \"isTouchPointer\", target: \"before:spin\", actions: [\"setHint\"] },\n { target: \"before:spin\", actions: [\"focusInput\", \"setHint\"] }\n ],\n \"SCRUBBER.PRESS_DOWN\": {\n target: \"scrubbing\",\n actions: [\"focusInput\", \"setHint\", \"setCursorPoint\"]\n },\n \"INPUT.ARROW_UP\": {\n actions: [\"increment\"]\n },\n \"INPUT.ARROW_DOWN\": {\n actions: [\"decrement\"]\n },\n \"INPUT.HOME\": {\n actions: [\"decrementToMin\"]\n },\n \"INPUT.END\": {\n actions: [\"incrementToMax\"]\n },\n \"INPUT.CHANGE\": {\n actions: [\"setValue\", \"setHint\"]\n },\n \"INPUT.BLUR\": [\n {\n guard: and(\"clampValueOnBlur\", not(\"isInRange\")),\n target: \"idle\",\n actions: [\"setClampedValue\", \"clearHint\", \"invokeOnBlur\"]\n },\n {\n guard: not(\"isInRange\"),\n target: \"idle\",\n actions: [\"setFormattedValue\", \"clearHint\", \"invokeOnBlur\", \"invokeOnInvalid\"]\n },\n {\n target: \"idle\",\n actions: [\"setFormattedValue\", \"clearHint\", \"invokeOnBlur\"]\n }\n ],\n \"INPUT.ENTER\": {\n actions: [\"setFormattedValue\", \"clearHint\", \"invokeOnBlur\"]\n }\n }\n },\n \"before:spin\": {\n tags: [\"focus\"],\n effects: [\"trackButtonDisabled\", \"waitForChangeDelay\"],\n entry: choose([\n { guard: \"isIncrementHint\", actions: [\"increment\"] },\n { guard: \"isDecrementHint\", actions: [\"decrement\"] }\n ]),\n on: {\n CHANGE_DELAY: {\n target: \"spinning\",\n guard: and(\"isInRange\", \"spinOnPress\")\n },\n \"TRIGGER.PRESS_UP\": [\n { guard: \"isTouchPointer\", target: \"focused\", actions: [\"clearHint\"] },\n { target: \"focused\", actions: [\"focusInput\", \"clearHint\"] }\n ]\n }\n },\n spinning: {\n tags: [\"focus\"],\n effects: [\"trackButtonDisabled\", \"spinValue\"],\n on: {\n SPIN: [\n {\n guard: \"isIncrementHint\",\n actions: [\"increment\"]\n },\n {\n guard: \"isDecrementHint\",\n actions: [\"decrement\"]\n }\n ],\n \"TRIGGER.PRESS_UP\": {\n target: \"focused\",\n actions: [\"focusInput\", \"clearHint\"]\n }\n }\n },\n scrubbing: {\n tags: [\"focus\"],\n effects: [\"activatePointerLock\", \"trackMousemove\", \"setupVirtualCursor\", \"preventTextSelection\"],\n on: {\n \"SCRUBBER.POINTER_UP\": {\n target: \"focused\",\n actions: [\"focusInput\", \"clearCursorPoint\"]\n },\n \"SCRUBBER.POINTER_MOVE\": [\n {\n guard: \"isIncrementHint\",\n actions: [\"increment\", \"setCursorPoint\"]\n },\n {\n guard: \"isDecrementHint\",\n actions: [\"decrement\", \"setCursorPoint\"]\n }\n ]\n }\n }\n },\n implementations: {\n guards: {\n clampValueOnBlur: ({ prop }) => prop(\"clampValueOnBlur\"),\n spinOnPress: ({ prop }) => !!prop(\"spinOnPress\"),\n isInRange: ({ computed }) => !computed(\"isOutOfRange\"),\n isDecrementHint: ({ context, event }) => (event.hint ?? context.get(\"hint\")) === \"decrement\",\n isIncrementHint: ({ context, event }) => (event.hint ?? context.get(\"hint\")) === \"increment\",\n isTouchPointer: ({ event }) => event.pointerType === \"touch\"\n },\n effects: {\n waitForChangeDelay({ send }) {\n const id = setTimeout(() => {\n send({ type: \"CHANGE_DELAY\" });\n }, 300);\n return () => clearTimeout(id);\n },\n spinValue({ send }) {\n const id = setInterval(() => {\n send({ type: \"SPIN\" });\n }, 50);\n return () => clearInterval(id);\n },\n trackFormControl({ context, scope }) {\n const inputEl = getInputEl(scope);\n return trackFormControl(inputEl, {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"value\", context.initial(\"value\"));\n }\n });\n },\n setupVirtualCursor({ context, scope }) {\n const point = context.get(\"scrubberCursorPoint\");\n return setupVirtualCursor(scope, point);\n },\n preventTextSelection({ scope }) {\n return preventTextSelection(scope);\n },\n trackButtonDisabled({ context, scope, send }) {\n const hint = context.get(\"hint\");\n const btn = getPressedTriggerEl(scope, hint);\n return observeAttributes(btn, {\n attributes: [\"disabled\"],\n callback() {\n send({ type: \"TRIGGER.PRESS_UP\", src: \"attr\" });\n }\n });\n },\n attachWheelListener({ scope, send, prop }) {\n const inputEl = getInputEl(scope);\n if (!inputEl || !scope.isActiveElement(inputEl) || !prop(\"allowMouseWheel\")) return;\n function onWheel(event) {\n event.preventDefault();\n const dir = Math.sign(event.deltaY) * -1;\n if (dir === 1) {\n send({ type: \"VALUE.INCREMENT\" });\n } else if (dir === -1) {\n send({ type: \"VALUE.DECREMENT\" });\n }\n }\n return addDomEvent(inputEl, \"wheel\", onWheel, { passive: false });\n },\n activatePointerLock({ scope }) {\n if (isSafari()) return;\n return requestPointerLock(scope.getDoc());\n },\n trackMousemove({ scope, send, context, computed }) {\n const doc = scope.getDoc();\n function onMousemove(event) {\n const point = context.get(\"scrubberCursorPoint\");\n const isRtl = computed(\"isRtl\");\n const value = getMousemoveValue(scope, { point, isRtl, event });\n if (!value.hint) return;\n send({\n type: \"SCRUBBER.POINTER_MOVE\",\n hint: value.hint,\n point: value.point\n });\n }\n function onMouseup() {\n send({ type: \"SCRUBBER.POINTER_UP\" });\n }\n return callAll(addDomEvent(doc, \"mousemove\", onMousemove, false), addDomEvent(doc, \"mouseup\", onMouseup, false));\n }\n },\n actions: {\n focusInput({ scope, prop }) {\n if (!prop(\"focusInputOnChange\")) return;\n const inputEl = getInputEl(scope);\n if (scope.isActiveElement(inputEl)) return;\n raf(() => inputEl?.focus({ preventScroll: true }));\n },\n increment({ context, event, prop, computed }) {\n let nextValue = incrementValue(computed(\"valueAsNumber\"), event.step ?? prop(\"step\"));\n if (!prop(\"allowOverflow\")) nextValue = clampValue(nextValue, prop(\"min\"), prop(\"max\"));\n context.set(\"value\", formatValue(nextValue, { computed, prop }));\n },\n decrement({ context, event, prop, computed }) {\n let nextValue = decrementValue(computed(\"valueAsNumber\"), event.step ?? prop(\"step\"));\n if (!prop(\"allowOverflow\")) nextValue = clampValue(nextValue, prop(\"min\"), prop(\"max\"));\n context.set(\"value\", formatValue(nextValue, { computed, prop }));\n },\n setClampedValue({ context, prop, computed }) {\n const nextValue = clampValue(computed(\"valueAsNumber\"), prop(\"min\"), prop(\"max\"));\n context.set(\"value\", formatValue(nextValue, { computed, prop }));\n },\n setRawValue({ context, event, prop, computed }) {\n let nextValue = parseValue(event.value, { computed, prop });\n if (!prop(\"allowOverflow\")) nextValue = clampValue(nextValue, prop(\"min\"), prop(\"max\"));\n context.set(\"value\", formatValue(nextValue, { computed, prop }));\n },\n setValue({ context, event }) {\n const value = event.target?.value ?? event.value;\n context.set(\"value\", value);\n },\n clearValue({ context }) {\n context.set(\"value\", \"\");\n },\n incrementToMax({ context, prop, computed }) {\n const value = formatValue(prop(\"max\"), { computed, prop });\n context.set(\"value\", value);\n },\n decrementToMin({ context, prop, computed }) {\n const value = formatValue(prop(\"min\"), { computed, prop });\n context.set(\"value\", value);\n },\n setHint({ context, event }) {\n context.set(\"hint\", event.hint);\n },\n clearHint({ context }) {\n context.set(\"hint\", null);\n },\n invokeOnFocus({ computed, prop }) {\n prop(\"onFocusChange\")?.({\n focused: true,\n value: computed(\"formattedValue\"),\n valueAsNumber: computed(\"valueAsNumber\")\n });\n },\n invokeOnBlur({ computed, prop }) {\n prop(\"onFocusChange\")?.({\n focused: false,\n value: computed(\"formattedValue\"),\n valueAsNumber: computed(\"valueAsNumber\")\n });\n },\n invokeOnInvalid({ computed, prop, event }) {\n if (event.type === \"INPUT.CHANGE\") return;\n const reason = computed(\"valueAsNumber\") > prop(\"max\") ? \"rangeOverflow\" : \"rangeUnderflow\";\n prop(\"onValueInvalid\")?.({\n reason,\n value: computed(\"formattedValue\"),\n valueAsNumber: computed(\"valueAsNumber\")\n });\n },\n syncInputElement({ context, event, computed, scope }) {\n const value = event.type.endsWith(\"CHANGE\") ? context.get(\"value\") : computed(\"formattedValue\");\n const inputEl = getInputEl(scope);\n const sel = recordCursor(inputEl);\n raf(() => {\n setElementValue(inputEl, value);\n restoreCursor(inputEl, sel);\n });\n },\n setFormattedValue({ context, computed }) {\n context.set(\"value\", computed(\"formattedValue\"));\n },\n setCursorPoint({ context, event }) {\n context.set(\"scrubberCursorPoint\", event.point);\n },\n clearCursorPoint({ context }) {\n context.set(\"scrubberCursorPoint\", null);\n },\n setVirtualCursorPosition({ context, scope }) {\n const cursorEl = getCursorEl(scope);\n const point = context.get(\"scrubberCursorPoint\");\n if (!cursorEl || !point) return;\n cursorEl.style.transform = `translate3d(${point.x}px, ${point.y}px, 0px)`;\n }\n }\n }\n});\nvar props = createProps()([\n \"allowMouseWheel\",\n \"allowOverflow\",\n \"clampValueOnBlur\",\n \"dir\",\n \"disabled\",\n \"focusInputOnChange\",\n \"form\",\n \"formatOptions\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"inputMode\",\n \"invalid\",\n \"locale\",\n \"max\",\n \"min\",\n \"name\",\n \"onFocusChange\",\n \"onValueChange\",\n \"onValueInvalid\",\n \"pattern\",\n \"required\",\n \"readOnly\",\n \"spinOnPress\",\n \"step\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { raf, dispatchInputValueEvent, queryAll, dataAttr, ariaAttr, isHTMLElement, isComposingEvent, isModifierKey, getEventKey, getNativeEvent, getBeforeInputValue, visuallyHiddenStyle } from '@zag-js/dom-query';\nimport { setValueAtIndex, isEqual, createSplitProps, invariant } from '@zag-js/utils';\nimport { setup } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/pin-input.anatomy.ts\nvar anatomy = createAnatomy(\"pinInput\").parts(\"root\", \"label\", \"input\", \"control\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `pin-input:${ctx.id}`;\nvar getInputId = (ctx, id) => ctx.ids?.input?.(id) ?? `pin-input:${ctx.id}:${id}`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `pin-input:${ctx.id}:hidden`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `pin-input:${ctx.id}:label`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `pin-input:${ctx.id}:control`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getInputEls = (ctx) => {\n const ownerId = CSS.escape(getRootId(ctx));\n const selector = `input[data-ownedby=${ownerId}]`;\n return queryAll(getRootEl(ctx), selector);\n};\nvar getInputElAtIndex = (ctx, index) => getInputEls(ctx)[index];\nvar getFirstInputEl = (ctx) => getInputEls(ctx)[0];\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\nvar setInputValue = (inputEl, value) => {\n inputEl.value = value;\n inputEl.setAttribute(\"value\", value);\n};\n\n// src/pin-input.utils.ts\nvar REGEX = {\n numeric: /^[0-9]+$/,\n alphabetic: /^[A-Za-z]+$/,\n alphanumeric: /^[a-zA-Z0-9]+$/i\n};\nfunction isValidType(type, value) {\n if (!type) return true;\n return !!REGEX[type]?.test(value);\n}\nfunction isValidValue(value, type, pattern) {\n if (!pattern) return isValidType(type, value);\n const regex = new RegExp(pattern, \"g\");\n return regex.test(value);\n}\n\n// src/pin-input.connect.ts\nfunction connect(service, normalize) {\n const { send, context, computed, prop, scope } = service;\n const complete = computed(\"isValueComplete\");\n const invalid = prop(\"invalid\");\n const translations = prop(\"translations\");\n const focusedIndex = context.get(\"focusedIndex\");\n function focus() {\n getFirstInputEl(scope)?.focus();\n }\n return {\n focus,\n count: context.get(\"count\"),\n items: Array.from({ length: context.get(\"count\") }).map((_, i) => i),\n value: context.get(\"value\"),\n valueAsString: computed(\"valueAsString\"),\n complete,\n setValue(value) {\n if (!Array.isArray(value)) {\n invariant(\"[pin-input/setValue] value must be an array\");\n }\n send({ type: \"VALUE.SET\", value });\n },\n clearValue() {\n send({ type: \"VALUE.CLEAR\" });\n },\n setValueAtIndex(index, value) {\n send({ type: \"VALUE.SET\", value, index });\n },\n getRootProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-invalid\": dataAttr(invalid),\n \"data-disabled\": dataAttr(prop(\"disabled\")),\n \"data-complete\": dataAttr(complete),\n \"data-readonly\": dataAttr(prop(\"readOnly\"))\n });\n },\n getLabelProps() {\n return normalize.label({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n htmlFor: getHiddenInputId(scope),\n id: getLabelId(scope),\n \"data-invalid\": dataAttr(invalid),\n \"data-disabled\": dataAttr(prop(\"disabled\")),\n \"data-complete\": dataAttr(complete),\n \"data-readonly\": dataAttr(prop(\"readOnly\")),\n onClick(event) {\n event.preventDefault();\n focus();\n }\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n \"aria-hidden\": true,\n type: \"text\",\n tabIndex: -1,\n id: getHiddenInputId(scope),\n readOnly: prop(\"readOnly\"),\n disabled: prop(\"disabled\"),\n required: prop(\"required\"),\n name: prop(\"name\"),\n form: prop(\"form\"),\n style: visuallyHiddenStyle,\n maxLength: computed(\"valueLength\"),\n defaultValue: computed(\"valueAsString\")\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n dir: prop(\"dir\"),\n id: getControlId(scope)\n });\n },\n getInputProps(props2) {\n const { index } = props2;\n const inputType = prop(\"type\") === \"numeric\" ? \"tel\" : \"text\";\n return normalize.input({\n ...parts.input.attrs,\n dir: prop(\"dir\"),\n disabled: prop(\"disabled\"),\n \"data-disabled\": dataAttr(prop(\"disabled\")),\n \"data-complete\": dataAttr(complete),\n id: getInputId(scope, index.toString()),\n \"data-index\": index,\n \"data-ownedby\": getRootId(scope),\n \"aria-label\": translations?.inputLabel?.(index, computed(\"valueLength\")),\n inputMode: prop(\"otp\") || prop(\"type\") === \"numeric\" ? \"numeric\" : \"text\",\n \"aria-invalid\": ariaAttr(invalid),\n \"data-invalid\": dataAttr(invalid),\n type: prop(\"mask\") ? \"password\" : inputType,\n defaultValue: context.get(\"value\")[index] || \"\",\n readOnly: prop(\"readOnly\"),\n autoCapitalize: \"none\",\n autoComplete: prop(\"otp\") ? \"one-time-code\" : \"off\",\n placeholder: focusedIndex === index ? \"\" : prop(\"placeholder\"),\n onBeforeInput(event) {\n try {\n const value = getBeforeInputValue(event);\n const isValid = isValidValue(value, prop(\"type\"), prop(\"pattern\"));\n if (!isValid) {\n send({ type: \"VALUE.INVALID\", value });\n event.preventDefault();\n }\n if (value.length > 2) {\n event.currentTarget.setSelectionRange(0, 1, \"forward\");\n }\n } catch {\n }\n },\n onChange(event) {\n const evt = getNativeEvent(event);\n const { value } = event.currentTarget;\n if (evt.inputType === \"insertFromPaste\" || value.length > 2) {\n send({ type: \"INPUT.PASTE\", value });\n event.currentTarget.value = value[0];\n event.preventDefault();\n return;\n }\n if (evt.inputType === \"deleteContentBackward\") {\n send({ type: \"INPUT.BACKSPACE\" });\n return;\n }\n send({ type: \"INPUT.CHANGE\", value, index });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (isComposingEvent(event)) return;\n if (isModifierKey(event)) return;\n const keyMap = {\n Backspace() {\n send({ type: \"INPUT.BACKSPACE\" });\n },\n Delete() {\n send({ type: \"INPUT.DELETE\" });\n },\n ArrowLeft() {\n send({ type: \"INPUT.ARROW_LEFT\" });\n },\n ArrowRight() {\n send({ type: \"INPUT.ARROW_RIGHT\" });\n },\n Enter() {\n send({ type: \"INPUT.ENTER\" });\n }\n };\n const exec = keyMap[getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: \"horizontal\"\n })];\n if (exec) {\n exec(event);\n event.preventDefault();\n }\n },\n onFocus() {\n send({ type: \"INPUT.FOCUS\", index });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (isHTMLElement(target) && target.dataset.ownedby === getRootId(scope)) return;\n send({ type: \"INPUT.BLUR\", index });\n }\n });\n }\n };\n}\nvar { choose, createMachine } = setup();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n placeholder: \"\\u25CB\",\n otp: false,\n type: \"numeric\",\n defaultValue: props2.count ? fill([], props2.count) : [],\n ...props2,\n translations: {\n inputLabel: (index, length) => `pin code ${index + 1} of ${length}`,\n ...props2.translations\n }\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n value: prop(\"value\"),\n defaultValue: prop(\"defaultValue\"),\n isEqual,\n onChange(value) {\n prop(\"onValueChange\")?.({ value, valueAsString: value.join(\"\") });\n }\n })),\n focusedIndex: bindable(() => ({\n sync: true,\n defaultValue: -1\n })),\n // TODO: Move this to `props` in next major version\n count: bindable(() => ({\n defaultValue: prop(\"count\")\n }))\n };\n },\n computed: {\n _value: ({ context }) => fill(context.get(\"value\"), context.get(\"count\")),\n valueLength: ({ computed }) => computed(\"_value\").length,\n filledValueLength: ({ computed }) => computed(\"_value\").filter((v) => v?.trim() !== \"\").length,\n isValueComplete: ({ computed }) => computed(\"valueLength\") === computed(\"filledValueLength\"),\n valueAsString: ({ computed }) => computed(\"_value\").join(\"\"),\n focusedValue: ({ computed, context }) => computed(\"_value\")[context.get(\"focusedIndex\")] || \"\"\n },\n entry: choose([\n {\n guard: \"autoFocus\",\n actions: [\"setInputCount\", \"setFocusIndexToFirst\"]\n },\n { actions: [\"setInputCount\"] }\n ]),\n watch({ action, track, context, computed }) {\n track([() => context.get(\"focusedIndex\")], () => {\n action([\"focusInput\", \"selectInputIfNeeded\"]);\n });\n track([() => context.get(\"value\").join(\",\")], () => {\n action([\"syncInputElements\", \"dispatchInputEvent\"]);\n });\n track([() => computed(\"isValueComplete\")], () => {\n action([\"invokeOnComplete\", \"blurFocusedInputIfNeeded\"]);\n });\n },\n on: {\n \"VALUE.SET\": [\n {\n guard: \"hasIndex\",\n actions: [\"setValueAtIndex\"]\n },\n { actions: [\"setValue\"] }\n ],\n \"VALUE.CLEAR\": {\n actions: [\"clearValue\", \"setFocusIndexToFirst\"]\n }\n },\n states: {\n idle: {\n on: {\n \"INPUT.FOCUS\": {\n target: \"focused\",\n actions: [\"setFocusedIndex\"]\n }\n }\n },\n focused: {\n on: {\n \"INPUT.CHANGE\": {\n actions: [\"setFocusedValue\", \"syncInputValue\", \"setNextFocusedIndex\"]\n },\n \"INPUT.PASTE\": {\n actions: [\"setPastedValue\", \"setLastValueFocusIndex\"]\n },\n \"INPUT.FOCUS\": {\n actions: [\"setFocusedIndex\"]\n },\n \"INPUT.BLUR\": {\n target: \"idle\",\n actions: [\"clearFocusedIndex\"]\n },\n \"INPUT.DELETE\": {\n guard: \"hasValue\",\n actions: [\"clearFocusedValue\"]\n },\n \"INPUT.ARROW_LEFT\": {\n actions: [\"setPrevFocusedIndex\"]\n },\n \"INPUT.ARROW_RIGHT\": {\n actions: [\"setNextFocusedIndex\"]\n },\n \"INPUT.BACKSPACE\": [\n {\n guard: \"hasValue\",\n actions: [\"clearFocusedValue\"]\n },\n {\n actions: [\"setPrevFocusedIndex\", \"clearFocusedValue\"]\n }\n ],\n \"INPUT.ENTER\": {\n guard: \"isValueComplete\",\n actions: [\"requestFormSubmit\"]\n },\n \"VALUE.INVALID\": {\n actions: [\"invokeOnInvalid\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n autoFocus: ({ prop }) => !!prop(\"autoFocus\"),\n hasValue: ({ context }) => context.get(\"value\")[context.get(\"focusedIndex\")] !== \"\",\n isValueComplete: ({ computed }) => computed(\"isValueComplete\"),\n hasIndex: ({ event }) => event.index !== void 0\n },\n actions: {\n dispatchInputEvent({ computed, scope }) {\n const inputEl = getHiddenInputEl(scope);\n dispatchInputValueEvent(inputEl, { value: computed(\"valueAsString\") });\n },\n setInputCount({ scope, context, prop }) {\n if (prop(\"count\")) return;\n const inputEls = getInputEls(scope);\n context.set(\"count\", inputEls.length);\n },\n focusInput({ context, scope }) {\n const focusedIndex = context.get(\"focusedIndex\");\n if (focusedIndex === -1) return;\n getInputElAtIndex(scope, focusedIndex)?.focus({ preventScroll: true });\n },\n selectInputIfNeeded({ context, prop, scope }) {\n const focusedIndex = context.get(\"focusedIndex\");\n if (!prop(\"selectOnFocus\") || focusedIndex === -1) return;\n raf(() => {\n getInputElAtIndex(scope, focusedIndex)?.select();\n });\n },\n invokeOnComplete({ computed, prop }) {\n if (!computed(\"isValueComplete\")) return;\n prop(\"onValueComplete\")?.({\n value: computed(\"_value\"),\n valueAsString: computed(\"valueAsString\")\n });\n },\n invokeOnInvalid({ context, event, prop }) {\n prop(\"onValueInvalid\")?.({\n value: event.value,\n index: context.get(\"focusedIndex\")\n });\n },\n clearFocusedIndex({ context }) {\n context.set(\"focusedIndex\", -1);\n },\n setFocusedIndex({ context, event }) {\n context.set(\"focusedIndex\", event.index);\n },\n setValue({ context, event }) {\n const value = fill(event.value, context.get(\"count\"));\n context.set(\"value\", value);\n },\n setFocusedValue({ context, event, computed, flush }) {\n const focusedValue = computed(\"focusedValue\");\n const focusedIndex = context.get(\"focusedIndex\");\n const value = getNextValue(focusedValue, event.value);\n flush(() => {\n context.set(\"value\", setValueAtIndex(computed(\"_value\"), focusedIndex, value));\n });\n },\n revertInputValue({ context, computed, scope }) {\n const inputEl = getInputElAtIndex(scope, context.get(\"focusedIndex\"));\n setInputValue(inputEl, computed(\"focusedValue\"));\n },\n syncInputValue({ context, event, scope }) {\n const value = context.get(\"value\");\n const inputEl = getInputElAtIndex(scope, event.index);\n setInputValue(inputEl, value[event.index]);\n },\n syncInputElements({ context, scope }) {\n const inputEls = getInputEls(scope);\n const value = context.get(\"value\");\n inputEls.forEach((inputEl, index) => {\n setInputValue(inputEl, value[index]);\n });\n },\n setPastedValue({ context, event, computed, flush }) {\n raf(() => {\n const valueAsString = computed(\"valueAsString\");\n const focusedIndex = context.get(\"focusedIndex\");\n const valueLength = computed(\"valueLength\");\n const filledValueLength = computed(\"filledValueLength\");\n const startIndex = Math.min(focusedIndex, filledValueLength);\n const left = startIndex > 0 ? valueAsString.substring(0, focusedIndex) : \"\";\n const right = event.value.substring(0, valueLength - startIndex);\n const value = fill(`${left}${right}`.split(\"\"), valueLength);\n flush(() => {\n context.set(\"value\", value);\n });\n });\n },\n setValueAtIndex({ context, event, computed }) {\n const nextValue = getNextValue(computed(\"focusedValue\"), event.value);\n context.set(\"value\", setValueAtIndex(computed(\"_value\"), event.index, nextValue));\n },\n clearValue({ context }) {\n const nextValue = Array.from({ length: context.get(\"count\") }).fill(\"\");\n context.set(\"value\", nextValue);\n },\n clearFocusedValue({ context, computed }) {\n const focusedIndex = context.get(\"focusedIndex\");\n if (focusedIndex === -1) return;\n context.set(\"value\", setValueAtIndex(computed(\"_value\"), focusedIndex, \"\"));\n },\n setFocusIndexToFirst({ context }) {\n context.set(\"focusedIndex\", 0);\n },\n setNextFocusedIndex({ context, computed }) {\n context.set(\"focusedIndex\", Math.min(context.get(\"focusedIndex\") + 1, computed(\"valueLength\") - 1));\n },\n setPrevFocusedIndex({ context }) {\n context.set(\"focusedIndex\", Math.max(context.get(\"focusedIndex\") - 1, 0));\n },\n setLastValueFocusIndex({ context, computed }) {\n raf(() => {\n context.set(\"focusedIndex\", Math.min(computed(\"filledValueLength\"), computed(\"valueLength\") - 1));\n });\n },\n blurFocusedInputIfNeeded({ context, prop, scope }) {\n if (!prop(\"blurOnComplete\")) return;\n raf(() => {\n getInputElAtIndex(scope, context.get(\"focusedIndex\"))?.blur();\n });\n },\n requestFormSubmit({ computed, prop, scope }) {\n if (!prop(\"name\") || !computed(\"isValueComplete\")) return;\n const inputEl = getHiddenInputEl(scope);\n inputEl?.form?.requestSubmit();\n }\n }\n }\n});\nfunction getNextValue(current, next) {\n let nextValue = next;\n if (current[0] === next[0]) nextValue = next[1];\n else if (current[0] === next[1]) nextValue = next[0];\n return nextValue.split(\"\")[nextValue.length - 1];\n}\nfunction fill(value, count) {\n return Array.from({ length: count }).fill(\"\").map((v, i) => value[i] || v);\n}\nvar props = createProps()([\n \"autoFocus\",\n \"blurOnComplete\",\n \"count\",\n \"defaultValue\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"mask\",\n \"name\",\n \"onValueChange\",\n \"onValueComplete\",\n \"onValueInvalid\",\n \"otp\",\n \"pattern\",\n \"placeholder\",\n \"readOnly\",\n \"required\",\n \"selectOnFocus\",\n \"translations\",\n \"type\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [PopoverProvider, usePopoverContext] = createContext({\n name: \"PopoverContext\",\n hookName: \"usePopoverContext\",\n providerName: \"<PopoverProvider />\"\n});\n\nexport { PopoverProvider, usePopoverContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverAnchor = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const mergedProps = mergeProps(popover.getAnchorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nPopoverAnchor.displayName = \"PopoverAnchor\";\n\nexport { PopoverAnchor };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverArrow = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const mergedProps = mergeProps(popover.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nPopoverArrow.displayName = \"PopoverArrow\";\n\nexport { PopoverArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverArrowTip = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const mergedProps = mergeProps(popover.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nPopoverArrowTip.displayName = \"PopoverArrowTip\";\n\nexport { PopoverArrowTip };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverCloseTrigger = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const mergedProps = mergeProps(popover.getCloseTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nPopoverCloseTrigger.displayName = \"PopoverCloseTrigger\";\n\nexport { PopoverCloseTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverContent = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(popover.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nPopoverContent.displayName = \"PopoverContent\";\n\nexport { PopoverContent };\n","'use client';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverContext = (props) => props.children(usePopoverContext());\n\nexport { PopoverContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverDescription = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const mergedProps = mergeProps(popover.getDescriptionProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nPopoverDescription.displayName = \"PopoverDescription\";\n\nexport { PopoverDescription };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverIndicator = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const mergedProps = mergeProps(popover.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nPopoverIndicator.displayName = \"PopoverIndicator\";\n\nexport { PopoverIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverPositioner = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(popover.getPositionerProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nPopoverPositioner.displayName = \"PopoverPositioner\";\n\nexport { PopoverPositioner };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { raf, getInitialFocus, proxyTabFocus, dataAttr, isSafari } from '@zag-js/dom-query';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { ariaHidden } from '@zag-js/aria-hidden';\nimport { createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { trapFocus } from '@zag-js/focus-trap';\nimport { preventBodyScroll } from '@zag-js/remove-scroll';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/popover.anatomy.ts\nvar anatomy = createAnatomy(\"popover\").parts(\n \"arrow\",\n \"arrowTip\",\n \"anchor\",\n \"trigger\",\n \"indicator\",\n \"positioner\",\n \"content\",\n \"title\",\n \"description\",\n \"closeTrigger\"\n);\nvar parts = anatomy.build();\nvar getAnchorId = (scope) => scope.ids?.anchor ?? `popover:${scope.id}:anchor`;\nvar getTriggerId = (scope) => scope.ids?.trigger ?? `popover:${scope.id}:trigger`;\nvar getContentId = (scope) => scope.ids?.content ?? `popover:${scope.id}:content`;\nvar getPositionerId = (scope) => scope.ids?.positioner ?? `popover:${scope.id}:popper`;\nvar getArrowId = (scope) => scope.ids?.arrow ?? `popover:${scope.id}:arrow`;\nvar getTitleId = (scope) => scope.ids?.title ?? `popover:${scope.id}:title`;\nvar getDescriptionId = (scope) => scope.ids?.description ?? `popover:${scope.id}:desc`;\nvar getCloseTriggerId = (scope) => scope.ids?.closeTrigger ?? `popover:${scope.id}:close`;\nvar getAnchorEl = (scope) => scope.getById(getAnchorId(scope));\nvar getTriggerEl = (scope) => scope.getById(getTriggerId(scope));\nvar getContentEl = (scope) => scope.getById(getContentId(scope));\nvar getPositionerEl = (scope) => scope.getById(getPositionerId(scope));\nvar getTitleEl = (scope) => scope.getById(getTitleId(scope));\nvar getDescriptionEl = (scope) => scope.getById(getDescriptionId(scope));\n\n// src/popover.connect.ts\nfunction connect(service, normalize) {\n const { state, context, send, computed, prop, scope } = service;\n const open = state.matches(\"open\");\n const currentPlacement = context.get(\"currentPlacement\");\n const portalled = computed(\"currentPortalled\");\n const rendered = context.get(\"renderedElements\");\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: currentPlacement\n });\n return {\n portalled,\n open,\n setOpen(nextOpen) {\n const open2 = state.matches(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n reposition(options = {}) {\n send({ type: \"POSITIONING.SET\", options });\n },\n getArrowProps() {\n return normalize.element({\n id: getArrowId(scope),\n ...parts.arrow.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrow\n });\n },\n getArrowTipProps() {\n return normalize.element({\n ...parts.arrowTip.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrowTip\n });\n },\n getAnchorProps() {\n return normalize.element({\n ...parts.anchor.attrs,\n dir: prop(\"dir\"),\n id: getAnchorId(scope)\n });\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n dir: prop(\"dir\"),\n type: \"button\",\n \"data-placement\": currentPlacement,\n id: getTriggerId(scope),\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": open,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-controls\": getContentId(scope),\n onPointerDown(event) {\n if (isSafari()) {\n event.currentTarget.focus();\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"TOGGLE\" });\n },\n onBlur(event) {\n send({ type: \"TRIGGER_BLUR\", target: event.relatedTarget });\n }\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-state\": open ? \"open\" : \"closed\"\n });\n },\n getPositionerProps() {\n return normalize.element({\n id: getPositionerId(scope),\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope),\n tabIndex: -1,\n role: \"dialog\",\n hidden: !open,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-expanded\": dataAttr(open),\n \"aria-labelledby\": rendered.title ? getTitleId(scope) : void 0,\n \"aria-describedby\": rendered.description ? getDescriptionId(scope) : void 0,\n \"data-placement\": currentPlacement\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n id: getTitleId(scope),\n dir: prop(\"dir\")\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n id: getDescriptionId(scope),\n dir: prop(\"dir\")\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n ...parts.closeTrigger.attrs,\n dir: prop(\"dir\"),\n id: getCloseTriggerId(scope),\n type: \"button\",\n \"aria-label\": \"close\",\n onClick(event) {\n if (event.defaultPrevented) return;\n event.stopPropagation();\n send({ type: \"CLOSE\" });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n closeOnInteractOutside: true,\n closeOnEscape: true,\n autoFocus: true,\n modal: false,\n portalled: true,\n ...props2,\n positioning: {\n placement: \"bottom\",\n ...props2.positioning\n }\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n context({ bindable }) {\n return {\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n })),\n renderedElements: bindable(() => ({\n defaultValue: { title: true, description: true }\n }))\n };\n },\n computed: {\n currentPortalled: ({ prop }) => !!prop(\"modal\") || !!prop(\"portalled\")\n },\n watch({ track, prop, action }) {\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n entry: [\"checkRenderedElements\"],\n states: {\n closed: {\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n },\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\"]\n }\n ],\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\"]\n }\n ]\n }\n },\n open: {\n effects: [\n \"trapFocus\",\n \"preventScroll\",\n \"hideContentBelow\",\n \"trackPositioning\",\n \"trackDismissableElement\",\n \"proxyTabFocus\"\n ],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"closed\",\n actions: [\"setFinalFocus\"]\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\", \"setFinalFocus\"]\n }\n ],\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"POSITIONING.SET\": {\n actions: [\"reposition\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n isOpenControlled: ({ prop }) => prop(\"open\") != void 0\n },\n effects: {\n trackPositioning({ context, prop, scope }) {\n context.set(\"currentPlacement\", prop(\"positioning\").placement);\n const anchorEl = getAnchorEl(scope) ?? getTriggerEl(scope);\n const getPositionerEl2 = () => getPositionerEl(scope);\n return getPlacement(anchorEl, getPositionerEl2, {\n ...prop(\"positioning\"),\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n trackDismissableElement({ send, prop, scope }) {\n const getContentEl2 = () => getContentEl(scope);\n let restoreFocus = true;\n return trackDismissableElement(getContentEl2, {\n pointerBlocking: prop(\"modal\"),\n exclude: getTriggerEl(scope),\n defer: true,\n onEscapeKeyDown(event) {\n prop(\"onEscapeKeyDown\")?.(event);\n if (prop(\"closeOnEscape\")) return;\n event.preventDefault();\n },\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n if (event.defaultPrevented) return;\n restoreFocus = !(event.detail.focusable || event.detail.contextmenu);\n if (!prop(\"closeOnInteractOutside\")) {\n event.preventDefault();\n }\n },\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onFocusOutside: prop(\"onFocusOutside\"),\n persistentElements: prop(\"persistentElements\"),\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\", restoreFocus });\n }\n });\n },\n proxyTabFocus({ prop, scope }) {\n if (prop(\"modal\") || !prop(\"portalled\")) return;\n const getContentEl2 = () => getContentEl(scope);\n return proxyTabFocus(getContentEl2, {\n triggerElement: getTriggerEl(scope),\n defer: true,\n onFocus(el) {\n el.focus({ preventScroll: true });\n }\n });\n },\n hideContentBelow({ prop, scope }) {\n if (!prop(\"modal\")) return;\n const getElements = () => [getContentEl(scope), getTriggerEl(scope)];\n return ariaHidden(getElements, { defer: true });\n },\n preventScroll({ prop, scope }) {\n if (!prop(\"modal\")) return;\n return preventBodyScroll(scope.getDoc());\n },\n trapFocus({ prop, scope }) {\n if (!prop(\"modal\")) return;\n const contentEl = () => getContentEl(scope);\n return trapFocus(contentEl, {\n initialFocus: () => getInitialFocus({\n root: getContentEl(scope),\n getInitialEl: prop(\"initialFocusEl\"),\n enabled: prop(\"autoFocus\")\n })\n });\n }\n },\n actions: {\n reposition({ event, prop, scope, context }) {\n const anchorEl = getAnchorEl(scope) ?? getTriggerEl(scope);\n const getPositionerEl2 = () => getPositionerEl(scope);\n getPlacement(anchorEl, getPositionerEl2, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n checkRenderedElements({ context, scope }) {\n raf(() => {\n Object.assign(context.get(\"renderedElements\"), {\n title: !!getTitleEl(scope),\n description: !!getDescriptionEl(scope)\n });\n });\n },\n setInitialFocus({ prop, scope }) {\n if (prop(\"modal\")) return;\n raf(() => {\n const element = getInitialFocus({\n root: getContentEl(scope),\n getInitialEl: prop(\"initialFocusEl\"),\n enabled: prop(\"autoFocus\")\n });\n element?.focus({ preventScroll: true });\n });\n },\n setFinalFocus({ event, scope }) {\n const restoreFocus = event.restoreFocus ?? event.previousEvent?.restoreFocus;\n if (restoreFocus != null && !restoreFocus) return;\n raf(() => {\n const element = getTriggerEl(scope);\n element?.focus({ preventScroll: true });\n });\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n toggleVisibility({ event, send, prop }) {\n send({ type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: event });\n }\n }\n }\n});\nvar props = createProps()([\n \"autoFocus\",\n \"closeOnEscape\",\n \"closeOnInteractOutside\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"initialFocusEl\",\n \"modal\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"defaultOpen\",\n \"open\",\n \"persistentElements\",\n \"portalled\",\n \"positioning\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport * as popover from '@zag-js/popover';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst usePopover = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(popover.machine, machineProps);\n return popover.connect(service, normalizeProps);\n};\n\nexport { usePopover };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { usePopover } from './use-popover.js';\nimport { PopoverProvider } from './use-popover-context.js';\n\nconst PopoverRoot = (props) => {\n const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);\n const popover = usePopover(localProps);\n const presence = usePresence(mergeProps({ present: popover.open }, presenceProps));\n return /* @__PURE__ */ jsx(PopoverProvider, { value: popover, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { PopoverRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { PopoverProvider } from './use-popover-context.js';\n\nconst PopoverRootProvider = (props) => {\n const [presenceProps, { value: popover, children }] = splitPresenceProps(props);\n const presence = usePresence(mergeProps({ present: popover.open }, presenceProps));\n return /* @__PURE__ */ jsx(PopoverProvider, { value: popover, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { PopoverRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverTitle = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const mergedProps = mergeProps(popover.getTitleProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nPopoverTitle.displayName = \"PopoverTitle\";\n\nexport { PopoverTitle };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { usePopoverContext } from './use-popover-context.js';\n\nconst PopoverTrigger = forwardRef((props, ref) => {\n const popover = usePopoverContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...popover.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : popover.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nPopoverTrigger.displayName = \"PopoverTrigger\";\n\nexport { PopoverTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { createMachine, memo } from '@zag-js/core';\nimport { isNumber, getValuePercent, createSplitProps } from '@zag-js/utils';\nimport { createProps } from '@zag-js/types';\n\n// src/progress.anatomy.ts\nvar anatomy = createAnatomy(\"progress\").parts(\n \"root\",\n \"label\",\n \"track\",\n \"range\",\n \"valueText\",\n \"view\",\n \"circle\",\n \"circleTrack\",\n \"circleRange\"\n);\nvar parts = anatomy.build();\n\n// src/progress.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `progress-${ctx.id}`;\nvar getTrackId = (ctx) => ctx.ids?.track ?? `progress-${ctx.id}-track`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `progress-${ctx.id}-label`;\nvar getCircleId = (ctx) => ctx.ids?.circle ?? `progress-${ctx.id}-circle`;\n\n// src/progress.connect.ts\nfunction connect(service, normalize) {\n const { context, computed, prop, send, scope } = service;\n const percent = computed(\"percent\");\n const percentAsString = computed(\"isIndeterminate\") ? \"\" : computed(\"formatter\").format(computed(\"percent\") / 100);\n const max = prop(\"max\");\n const min = prop(\"min\");\n const orientation = prop(\"orientation\");\n const translations = prop(\"translations\");\n const indeterminate = computed(\"isIndeterminate\");\n const value = context.get(\"value\");\n const valueAsString = translations?.value({ value, max, percent, min }) ?? \"\";\n const progressState = getProgressState(value, max);\n const progressbarProps = {\n role: \"progressbar\",\n \"aria-label\": valueAsString,\n \"data-max\": max,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value ?? void 0,\n \"data-orientation\": orientation,\n \"data-state\": progressState\n };\n const circleProps = getCircleProps(service);\n return {\n value,\n valueAsString,\n min,\n max,\n percent,\n percentAsString,\n indeterminate,\n setValue(value2) {\n send({ type: \"VALUE.SET\", value: value2 });\n },\n setToMax() {\n send({ type: \"VALUE.SET\", value: max });\n },\n setToMin() {\n send({ type: \"VALUE.SET\", value: min });\n },\n getRootProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-max\": max,\n \"data-value\": value ?? void 0,\n \"data-state\": progressState,\n \"data-orientation\": orientation,\n style: {\n \"--percent\": indeterminate ? void 0 : percent\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n id: getLabelId(scope),\n ...parts.label.attrs,\n \"data-orientation\": orientation\n });\n },\n getValueTextProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n \"aria-live\": \"polite\",\n ...parts.valueText.attrs\n });\n },\n getTrackProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n id: getTrackId(scope),\n ...parts.track.attrs,\n ...progressbarProps\n });\n },\n getRangeProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n ...parts.range.attrs,\n \"data-orientation\": orientation,\n \"data-state\": progressState,\n style: {\n [computed(\"isHorizontal\") ? \"width\" : \"height\"]: indeterminate ? void 0 : `${percent}%`\n }\n });\n },\n getCircleProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n id: getCircleId(scope),\n ...parts.circle.attrs,\n ...progressbarProps,\n ...circleProps.root\n });\n },\n getCircleTrackProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n \"data-orientation\": orientation,\n ...parts.circleTrack.attrs,\n ...circleProps.track\n });\n },\n getCircleRangeProps() {\n return normalize.element({\n dir: prop(\"dir\"),\n ...parts.circleRange.attrs,\n ...circleProps.range,\n \"data-state\": progressState\n });\n },\n getViewProps(props2) {\n return normalize.element({\n dir: prop(\"dir\"),\n ...parts.view.attrs,\n \"data-state\": props2.state,\n hidden: props2.state !== progressState\n });\n }\n };\n}\nfunction getProgressState(value, maxValue) {\n return value == null ? \"indeterminate\" : value === maxValue ? \"complete\" : \"loading\";\n}\nfunction getCircleProps(service) {\n const { context, computed } = service;\n const circleProps = {\n style: {\n \"--radius\": \"calc(var(--size) / 2 - var(--thickness) / 2)\",\n cx: \"calc(var(--size) / 2)\",\n cy: \"calc(var(--size) / 2)\",\n r: \"var(--radius)\",\n fill: \"transparent\",\n strokeWidth: \"var(--thickness)\"\n }\n };\n return {\n root: {\n style: {\n width: \"var(--size)\",\n height: \"var(--size)\"\n }\n },\n track: circleProps,\n range: {\n opacity: context.get(\"value\") === 0 ? 0 : void 0,\n style: {\n ...circleProps.style,\n \"--percent\": computed(\"percent\"),\n \"--circumference\": `calc(2 * 3.14159 * var(--radius))`,\n \"--offset\": `calc(var(--circumference) * (100 - var(--percent)) / 100)`,\n strokeDashoffset: `calc(var(--circumference) * ((100 - var(--percent)) / 100))`,\n strokeDasharray: computed(\"isIndeterminate\") ? void 0 : `var(--circumference)`,\n transformOrigin: \"center\",\n transform: \"rotate(-90deg)\"\n }\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n const min = props2.min ?? 0;\n const max = props2.max ?? 100;\n return {\n ...props2,\n max,\n min,\n defaultValue: props2.defaultValue ?? midValue(min, max),\n orientation: \"horizontal\",\n formatOptions: {\n style: \"percent\",\n ...props2.formatOptions\n },\n translations: {\n value: ({ percent }) => percent === -1 ? \"loading...\" : `${percent} percent`,\n ...props2.translations\n }\n };\n },\n initialState() {\n return \"idle\";\n },\n entry: [\"validateContext\"],\n context({ bindable, prop }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n }))\n };\n },\n computed: {\n isIndeterminate: ({ context }) => context.get(\"value\") === null,\n percent({ context, prop }) {\n const value = context.get(\"value\");\n if (!isNumber(value)) return -1;\n return getValuePercent(value, prop(\"min\"), prop(\"max\")) * 100;\n },\n formatter: memo(\n ({ prop }) => [prop(\"locale\"), prop(\"formatOptions\")],\n (locale, formatOptions) => new Intl.NumberFormat(locale, formatOptions)\n ),\n isHorizontal: ({ prop }) => prop(\"orientation\") === \"horizontal\"\n },\n states: {\n idle: {\n on: {\n \"VALUE.SET\": {\n actions: [\"setValue\"]\n }\n }\n }\n },\n implementations: {\n actions: {\n setValue: ({ context, event, prop }) => {\n const value = event.value === null ? null : Math.max(0, Math.min(event.value, prop(\"max\")));\n context.set(\"value\", value);\n },\n validateContext: ({ context, prop }) => {\n const max = prop(\"max\");\n const min = prop(\"min\");\n const value = context.get(\"value\");\n if (value == null) return;\n if (!isValidNumber(max)) {\n throw new Error(`[progress] The max value passed \\`${max}\\` is not a valid number`);\n }\n if (!isValidMax(value, max)) {\n throw new Error(`[progress] The value passed \\`${value}\\` exceeds the max value \\`${max}\\``);\n }\n if (!isValidMin(value, min)) {\n throw new Error(`[progress] The value passed \\`${value}\\` exceeds the min value \\`${min}\\``);\n }\n }\n }\n }\n});\nvar isValidNumber = (max) => isNumber(max) && !isNaN(max);\nvar isValidMax = (value, max) => isValidNumber(value) && value <= max;\nvar isValidMin = (value, min) => isValidNumber(value) && value >= min;\nvar midValue = (min, max) => min + (max - min) / 2;\nvar props = createProps()([\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"max\",\n \"min\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"onValueChange\",\n \"defaultValue\",\n \"formatOptions\",\n \"locale\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { getDataUrl } from '@zag-js/dom-query';\nimport { createMachine, memo } from '@zag-js/core';\nimport { encode } from 'uqr';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/qr-code.anatomy.ts\nvar anatomy = createAnatomy(\"qr-code\").parts(\"root\", \"frame\", \"pattern\", \"overlay\", \"downloadTrigger\");\nvar parts = anatomy.build();\n\n// src/qr-code.dom.ts\nvar getRootId = (scope) => scope.ids?.root ?? `qrcode:${scope.id}:root`;\nvar getFrameId = (scope) => scope.ids?.frame ?? `qrcode:${scope.id}:frame`;\nvar getFrameEl = (scope) => scope.getById(getFrameId(scope));\n\n// src/qr-code.connect.ts\nfunction connect(service, normalize) {\n const { context, computed, send, scope, prop } = service;\n const encoded = computed(\"encoded\");\n const pixelSize = prop(\"pixelSize\");\n const height = encoded.size * pixelSize;\n const width = encoded.size * pixelSize;\n const paths = [];\n for (let row = 0; row < encoded.size; row++) {\n for (let col = 0; col < encoded.size; col++) {\n const x = col * pixelSize;\n const y = row * pixelSize;\n if (encoded.data[row][col]) {\n paths.push(`M${x},${y}h${pixelSize}v${pixelSize}h-${pixelSize}z`);\n }\n }\n }\n return {\n value: context.get(\"value\"),\n setValue(value) {\n send({ type: \"VALUE.SET\", value });\n },\n getDataUrl(type, quality) {\n const svgEl = getFrameEl(scope);\n return getDataUrl(svgEl, { type, quality });\n },\n getRootProps() {\n return normalize.element({\n id: getRootId(scope),\n ...parts.root.attrs,\n style: {\n \"--qrcode-pixel-size\": `${pixelSize}px`,\n \"--qrcode-width\": `${width}px`,\n \"--qrcode-height\": `${height}px`,\n position: \"relative\"\n }\n });\n },\n getFrameProps() {\n return normalize.svg({\n id: getFrameId(scope),\n ...parts.frame.attrs,\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: `0 0 ${width} ${height}`\n });\n },\n getPatternProps() {\n return normalize.path({\n d: paths.join(\"\"),\n ...parts.pattern.attrs\n });\n },\n getOverlayProps() {\n return normalize.element({\n ...parts.overlay.attrs,\n style: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n translate: \"-50% -50%\"\n }\n });\n },\n getDownloadTriggerProps(props2) {\n return normalize.button({\n type: \"button\",\n ...parts.downloadTrigger.attrs,\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"DOWNLOAD_TRIGGER.CLICK\", ...props2 });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n defaultValue: \"\",\n pixelSize: 10,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n value: prop(\"value\"),\n defaultValue: prop(\"defaultValue\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n }))\n };\n },\n computed: {\n encoded: memo(\n ({ context, prop }) => [context.get(\"value\"), prop(\"encoding\")],\n (value, encoding) => encode(value, encoding)\n )\n },\n states: {\n idle: {\n on: {\n \"VALUE.SET\": {\n actions: [\"setValue\"]\n },\n \"DOWNLOAD_TRIGGER.CLICK\": {\n actions: [\"downloadQrCode\"]\n }\n }\n }\n },\n implementations: {\n actions: {\n setValue({ context, event }) {\n context.set(\"value\", event.value);\n },\n downloadQrCode({ event, scope }) {\n const { mimeType, quality, fileName } = event;\n const svgEl = getFrameEl(scope);\n const doc = scope.getDoc();\n getDataUrl(svgEl, { type: mimeType, quality }).then((dataUri) => {\n const a = doc.createElement(\"a\");\n a.href = dataUri;\n a.rel = \"noopener\";\n a.download = fileName;\n a.click();\n setTimeout(() => {\n a.remove();\n }, 0);\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"ids\",\n \"defaultValue\",\n \"value\",\n \"id\",\n \"encoding\",\n \"dir\",\n \"getRootNode\",\n \"onValueChange\",\n \"pixelSize\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupProvider, useRadioGroupContext] = createContext({\n name: \"RadioGroupContext\",\n hookName: \"useRadioGroupContext\",\n providerName: \"<RadioGroupProvider />\"\n});\n\nexport { RadioGroupProvider, useRadioGroupContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupItemProvider, useRadioGroupItemContext] = createContext({\n name: \"RadioGroupItemContext\",\n hookName: \"useRadioGroupItemContext\",\n providerName: \"<RadioGroupItemProvider />\"\n});\n\nexport { RadioGroupItemProvider, useRadioGroupItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupItemPropsProvider, useRadioGroupItemPropsContext] = createContext({\n name: \"RadioGroupItemPropsContext\",\n hookName: \"useRadioGroupItemPropsContext\",\n providerName: \"<RadioGroupItemPropsProvider />\"\n});\n\nexport { RadioGroupItemPropsProvider, useRadioGroupItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { RadioGroupItemProvider } from './use-radio-group-item-context.js';\nimport { RadioGroupItemPropsProvider } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\"value\", \"disabled\", \"invalid\"]);\n const radioGroup = useRadioGroupContext();\n const mergedProps = mergeProps(radioGroup.getItemProps(itemProps), localProps);\n const itemState = radioGroup.getItemState(itemProps);\n return /* @__PURE__ */ jsx(RadioGroupItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(RadioGroupItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) }) });\n});\nRadioGroupItem.displayName = \"RadioGroupItem\";\n\nexport { RadioGroupItem };\n","'use client';\nimport { useRadioGroupItemContext } from './use-radio-group-item-context.js';\n\nconst RadioGroupItemContext = (props) => props.children(useRadioGroupItemContext());\n\nexport { RadioGroupItemContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemControl = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemControlProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nRadioGroupItemControl.displayName = \"RadioGroupItemControl\";\n\nexport { RadioGroupItemControl };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemHiddenInput = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemHiddenInputProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.input, { ...mergedProps, ref });\n});\nRadioGroupItemHiddenInput.displayName = \"RadioGroupItemHiddenInput\";\n\nexport { RadioGroupItemHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemText = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nRadioGroupItemText.displayName = \"RadioGroupItemText\";\n\nexport { RadioGroupItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\n\nconst RadioGroupLabel = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const mergedProps = mergeProps(radioGroup.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });\n});\nRadioGroupLabel.displayName = \"RadioGroupLabel\";\n\nexport { RadioGroupLabel };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, trackElementRect, trackFormControl, queryAll, dataAttr, visuallyHiddenStyle, isSafari } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { isString, createSplitProps } from '@zag-js/utils';\nimport { createProps } from '@zag-js/types';\n\n// src/radio-group.anatomy.ts\nvar anatomy = createAnatomy(\"radio-group\").parts(\n \"root\",\n \"label\",\n \"item\",\n \"itemText\",\n \"itemControl\",\n \"indicator\"\n);\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `radio-group:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `radio-group:${ctx.id}:label`;\nvar getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `radio-group:${ctx.id}:radio:${value}`;\nvar getItemHiddenInputId = (ctx, value) => ctx.ids?.itemHiddenInput?.(value) ?? `radio-group:${ctx.id}:radio:input:${value}`;\nvar getItemControlId = (ctx, value) => ctx.ids?.itemControl?.(value) ?? `radio-group:${ctx.id}:radio:control:${value}`;\nvar getItemLabelId = (ctx, value) => ctx.ids?.itemLabel?.(value) ?? `radio-group:${ctx.id}:radio:label:${value}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `radio-group:${ctx.id}:indicator`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getItemHiddenInputEl = (ctx, value) => ctx.getById(getItemHiddenInputId(ctx, value));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getFirstEnabledInputEl = (ctx) => getRootEl(ctx)?.querySelector(\"input:not(:disabled)\");\nvar getFirstEnabledAndCheckedInputEl = (ctx) => getRootEl(ctx)?.querySelector(\"input:not(:disabled):checked\");\nvar getInputEls = (ctx) => {\n const ownerId = CSS.escape(getRootId(ctx));\n const selector = `input[type=radio][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getRootEl(ctx), selector);\n};\nvar getRadioEl = (ctx, value) => {\n if (!value) return;\n return ctx.getById(getItemId(ctx, value));\n};\nvar getOffsetRect = (el) => ({\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n});\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/radio-group.connect.ts\nfunction connect(service, normalize) {\n const { context, send, computed, prop, scope } = service;\n const groupDisabled = computed(\"isDisabled\");\n const readOnly = prop(\"readOnly\");\n function getItemState(props2) {\n const focused = context.get(\"focusedValue\") === props2.value;\n const focusVisible = focused && isFocusVisible();\n return {\n value: props2.value,\n invalid: !!props2.invalid,\n disabled: !!props2.disabled || groupDisabled,\n checked: context.get(\"value\") === props2.value,\n focused,\n focusVisible,\n hovered: context.get(\"hoveredValue\") === props2.value,\n active: context.get(\"activeValue\") === props2.value\n };\n }\n function getItemDataAttrs(props2) {\n const itemState = getItemState(props2);\n return {\n \"data-focus\": dataAttr(itemState.focused),\n \"data-focus-visible\": dataAttr(itemState.focusVisible),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-readonly\": dataAttr(readOnly),\n \"data-state\": itemState.checked ? \"checked\" : \"unchecked\",\n \"data-hover\": dataAttr(itemState.hovered),\n \"data-invalid\": dataAttr(itemState.invalid),\n \"data-orientation\": prop(\"orientation\"),\n \"data-ssr\": dataAttr(context.get(\"ssr\"))\n };\n }\n const focus = () => {\n const nodeToFocus = getFirstEnabledAndCheckedInputEl(scope) ?? getFirstEnabledInputEl(scope);\n nodeToFocus?.focus();\n };\n return {\n focus,\n value: context.get(\"value\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value, isTrusted: false });\n },\n clearValue() {\n send({ type: \"SET_VALUE\", value: null, isTrusted: false });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n role: \"radiogroup\",\n id: getRootId(scope),\n \"aria-labelledby\": getLabelId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(groupDisabled),\n \"aria-orientation\": prop(\"orientation\"),\n dir: prop(\"dir\"),\n style: {\n position: \"relative\"\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(groupDisabled),\n id: getLabelId(scope),\n onClick: focus\n });\n },\n getItemState,\n getItemProps(props2) {\n const itemState = getItemState(props2);\n return normalize.label({\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n id: getItemId(scope, props2.value),\n htmlFor: getItemHiddenInputId(scope, props2.value),\n ...getItemDataAttrs(props2),\n onPointerMove() {\n if (itemState.disabled) return;\n if (itemState.hovered) return;\n send({ type: \"SET_HOVERED\", value: props2.value, hovered: true });\n },\n onPointerLeave() {\n if (itemState.disabled) return;\n send({ type: \"SET_HOVERED\", value: null });\n },\n onPointerDown(event) {\n if (itemState.disabled) return;\n if (itemState.focused && event.pointerType === \"mouse\") {\n event.preventDefault();\n }\n send({ type: \"SET_ACTIVE\", value: props2.value, active: true });\n },\n onPointerUp() {\n if (itemState.disabled) return;\n send({ type: \"SET_ACTIVE\", value: null });\n },\n onClick() {\n if (!itemState.disabled && isSafari()) {\n getItemHiddenInputEl(scope, props2.value)?.focus();\n }\n }\n });\n },\n getItemTextProps(props2) {\n return normalize.element({\n ...parts.itemText.attrs,\n dir: prop(\"dir\"),\n id: getItemLabelId(scope, props2.value),\n ...getItemDataAttrs(props2)\n });\n },\n getItemControlProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemControl.attrs,\n dir: prop(\"dir\"),\n id: getItemControlId(scope, props2.value),\n \"data-active\": dataAttr(itemState.active),\n \"aria-hidden\": true,\n ...getItemDataAttrs(props2)\n });\n },\n getItemHiddenInputProps(props2) {\n const itemState = getItemState(props2);\n return normalize.input({\n \"data-ownedby\": getRootId(scope),\n id: getItemHiddenInputId(scope, props2.value),\n type: \"radio\",\n name: prop(\"name\") || prop(\"id\"),\n form: prop(\"form\"),\n value: props2.value,\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n if (event.currentTarget.checked) {\n send({ type: \"SET_VALUE\", value: props2.value, isTrusted: true });\n }\n },\n onBlur() {\n send({ type: \"SET_FOCUSED\", value: null, focused: false });\n },\n onFocus() {\n send({ type: \"SET_FOCUSED\", value: props2.value, focused: true });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (event.key === \" \") {\n send({ type: \"SET_ACTIVE\", value: props2.value, active: true });\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented) return;\n if (event.key === \" \") {\n send({ type: \"SET_ACTIVE\", value: null });\n }\n },\n disabled: itemState.disabled,\n defaultChecked: itemState.checked,\n style: visuallyHiddenStyle\n });\n },\n getIndicatorProps() {\n const rect = context.get(\"indicatorRect\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n hidden: context.get(\"value\") == null,\n \"data-disabled\": dataAttr(groupDisabled),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, top, width, height\",\n \"--left\": rect?.left,\n \"--top\": rect?.top,\n \"--width\": rect?.width,\n \"--height\": rect?.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: context.get(\"canIndicatorTransition\") ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [prop(\"orientation\") === \"horizontal\" ? \"left\" : \"top\"]: prop(\"orientation\") === \"horizontal\" ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n orientation: \"vertical\",\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n activeValue: bindable(() => ({\n defaultValue: null\n })),\n focusedValue: bindable(() => ({\n defaultValue: null\n })),\n hoveredValue: bindable(() => ({\n defaultValue: null\n })),\n indicatorRect: bindable(() => ({\n defaultValue: {}\n })),\n canIndicatorTransition: bindable(() => ({\n defaultValue: false\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n ssr: bindable(() => ({\n defaultValue: true\n }))\n };\n },\n refs() {\n return {\n indicatorCleanup: null\n };\n },\n computed: {\n isDisabled: ({ prop, context }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n entry: [\"syncIndicatorRect\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n effects: [\"trackFormControlState\", \"trackFocusVisible\"],\n watch({ track, action, context }) {\n track([() => context.get(\"value\")], () => {\n action([\"setIndicatorTransition\", \"syncIndicatorRect\", \"syncInputElements\"]);\n });\n },\n on: {\n SET_VALUE: [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setValue\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setValue\"]\n }\n ],\n SET_HOVERED: {\n actions: [\"setHovered\"]\n },\n SET_ACTIVE: {\n actions: [\"setActive\"]\n },\n SET_FOCUSED: {\n actions: [\"setFocused\"]\n }\n },\n states: {\n idle: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getRootEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"value\", context.initial(\"value\"));\n }\n });\n },\n trackFocusVisible({ scope }) {\n return trackFocusVisible({ root: scope.getRootNode?.() });\n }\n },\n actions: {\n setValue({ context, event }) {\n context.set(\"value\", event.value);\n },\n setHovered({ context, event }) {\n context.set(\"hoveredValue\", event.value);\n },\n setActive({ context, event }) {\n context.set(\"activeValue\", event.value);\n },\n setFocused({ context, event }) {\n context.set(\"focusedValue\", event.value);\n },\n syncInputElements({ context, scope }) {\n const inputs = getInputEls(scope);\n inputs.forEach((input) => {\n input.checked = input.value === context.get(\"value\");\n });\n },\n setIndicatorTransition({ context }) {\n context.set(\"canIndicatorTransition\", isString(context.get(\"value\")));\n },\n cleanupObserver({ refs }) {\n refs.get(\"indicatorCleanup\")?.();\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, scope, refs }) {\n refs.get(\"indicatorCleanup\")?.();\n if (!getIndicatorEl(scope)) return;\n const value = context.get(\"value\");\n const radioEl = getRadioEl(scope, value);\n if (value == null || !radioEl) {\n context.set(\"canIndicatorTransition\", false);\n context.set(\"indicatorRect\", {});\n return;\n }\n const indicatorCleanup = trackElementRect([radioEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n context.set(\"indicatorRect\", resolveRect(rects[0]));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n dispatchChangeEvent({ context, scope }) {\n const inputEls = getInputEls(scope);\n inputEls.forEach((inputEl) => {\n const checked = inputEl.value === context.get(\"value\");\n if (checked === inputEl.checked) return;\n dispatchInputCheckedEvent(inputEl, { checked });\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"name\",\n \"onValueChange\",\n \"orientation\",\n \"readOnly\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"value\", \"disabled\", \"invalid\"]);\nvar splitItemProps = createSplitProps(itemProps);\n\nexport { anatomy, connect, itemProps, machine, props, splitItemProps, splitProps };\n","'use client';\nimport * as radio from '@zag-js/radio-group';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useRadioGroup = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(radio.machine, machineProps);\n return radio.connect(service, normalizeProps);\n};\n\nexport { useRadioGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useRadioGroup } from './use-radio-group.js';\nimport { RadioGroupProvider } from './use-radio-group-context.js';\n\nconst RadioGroupRoot = forwardRef((props, ref) => {\n const [useRadioGroupProps, localProps] = createSplitProps()(props, [\n \"defaultValue\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"name\",\n \"onValueChange\",\n \"orientation\",\n \"readOnly\",\n \"value\"\n ]);\n const radioGroup = useRadioGroup(useRadioGroupProps);\n const mergedProps = mergeProps(radioGroup.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { value: radioGroup, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nRadioGroupRoot.displayName = \"RadioGroupRoot\";\n\nexport { RadioGroupRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { RadioGroupProvider } from './use-radio-group-context.js';\n\nconst RadioGroupRootProvider = forwardRef((props, ref) => {\n const [{ value: radioGroup }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(radioGroup.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { value: radioGroup, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nRadioGroupRootProvider.displayName = \"RadioGroupRootProvider\";\n\nexport { RadioGroupRootProvider };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { raf, trackFormControl, dispatchInputValueEvent, query, dataAttr, getEventKey, getEventPoint, getRelativePoint, isLeftClick, ariaAttr } from '@zag-js/dom-query';\nimport { createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/rating-group.anatomy.ts\nvar anatomy = createAnatomy(\"rating-group\").parts(\"root\", \"label\", \"item\", \"control\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `rating:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `rating:${ctx.id}:label`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `rating:${ctx.id}:input`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `rating:${ctx.id}:control`;\nvar getItemId = (ctx, id) => ctx.ids?.item?.(id) ?? `rating:${ctx.id}:item:${id}`;\nvar getControlEl = (ctx) => ctx.getById(getControlId(ctx));\nvar getRadioEl = (ctx, value) => {\n const selector = `[role=radio][aria-posinset='${Math.ceil(value)}']`;\n return query(getControlEl(ctx), selector);\n};\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\nvar dispatchChangeEvent = (ctx, value) => {\n const inputEl = getHiddenInputEl(ctx);\n if (!inputEl) return;\n dispatchInputValueEvent(inputEl, { value });\n};\n\n// src/rating-group.connect.ts\nfunction connect(service, normalize) {\n const { context, send, prop, scope, computed } = service;\n const interactive = computed(\"isInteractive\");\n const disabled = computed(\"isDisabled\");\n const readOnly = prop(\"readOnly\");\n const value = context.get(\"value\");\n const hoveredValue = context.get(\"hoveredValue\");\n const translations = prop(\"translations\");\n function getItemState(props2) {\n const currentValue = computed(\"isHovering\") ? hoveredValue : value;\n const equal = Math.ceil(currentValue) === props2.index;\n const highlighted = props2.index <= currentValue || equal;\n const half = equal && Math.abs(currentValue - props2.index) === 0.5;\n return {\n highlighted,\n half,\n checked: equal || value === -1 && props2.index === 1\n };\n }\n return {\n hovering: computed(\"isHovering\"),\n value,\n hoveredValue,\n count: prop(\"count\"),\n items: Array.from({ length: prop(\"count\") }).map((_, index) => index + 1),\n setValue(value2) {\n send({ type: \"SET_VALUE\", value: value2 });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope)\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n name: prop(\"name\"),\n form: prop(\"form\"),\n type: \"text\",\n hidden: true,\n disabled,\n readOnly,\n required: prop(\"required\"),\n id: getHiddenInputId(scope),\n defaultValue: value\n });\n },\n getLabelProps() {\n return normalize.label({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope),\n \"data-disabled\": dataAttr(disabled),\n htmlFor: getHiddenInputId(scope),\n onClick(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n event.preventDefault();\n const radioEl = getRadioEl(scope, Math.max(1, context.get(\"value\")));\n radioEl?.focus({ preventScroll: true });\n }\n });\n },\n getControlProps() {\n return normalize.element({\n id: getControlId(scope),\n ...parts.control.attrs,\n dir: prop(\"dir\"),\n role: \"radiogroup\",\n \"aria-orientation\": \"horizontal\",\n \"aria-labelledby\": getLabelId(scope),\n \"aria-readonly\": ariaAttr(readOnly),\n \"data-readonly\": dataAttr(readOnly),\n \"data-disabled\": dataAttr(disabled),\n onPointerMove(event) {\n if (!interactive) return;\n if (event.pointerType === \"touch\") return;\n send({ type: \"GROUP_POINTER_OVER\" });\n },\n onPointerLeave(event) {\n if (!interactive) return;\n if (event.pointerType === \"touch\") return;\n send({ type: \"GROUP_POINTER_LEAVE\" });\n }\n });\n },\n getItemState,\n getItemProps(props2) {\n const { index } = props2;\n const itemState = getItemState(props2);\n const valueText = translations.ratingValueText(index);\n return normalize.element({\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n id: getItemId(scope, index.toString()),\n role: \"radio\",\n tabIndex: (() => {\n if (readOnly) return itemState.checked ? 0 : void 0;\n if (disabled) return void 0;\n return itemState.checked ? 0 : -1;\n })(),\n \"aria-roledescription\": \"rating\",\n \"aria-label\": valueText,\n \"aria-disabled\": disabled,\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n \"aria-setsize\": prop(\"count\"),\n \"aria-checked\": itemState.checked,\n \"data-checked\": dataAttr(itemState.checked),\n \"aria-posinset\": index,\n \"data-highlighted\": dataAttr(itemState.highlighted),\n \"data-half\": dataAttr(itemState.half),\n onPointerDown(event) {\n if (!interactive) return;\n if (!isLeftClick(event)) return;\n event.preventDefault();\n },\n onPointerMove(event) {\n if (!interactive) return;\n const point = getEventPoint(event);\n const relativePoint = getRelativePoint(point, event.currentTarget);\n const percentX = relativePoint.getPercentValue({\n orientation: \"horizontal\",\n dir: prop(\"dir\")\n });\n const isMidway = percentX < 0.5;\n send({ type: \"POINTER_OVER\", index, isMidway });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n const keyMap = {\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\" });\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\" });\n },\n ArrowUp() {\n send({ type: \"ARROW_LEFT\" });\n },\n ArrowDown() {\n send({ type: \"ARROW_RIGHT\" });\n },\n Space() {\n send({ type: \"SPACE\", value: index });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n }\n };\n const key = getEventKey(event, { dir: prop(\"dir\") });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n }\n },\n onClick() {\n if (!interactive) return;\n send({ type: \"CLICK\", value: index });\n },\n onFocus() {\n if (!interactive) return;\n send({ type: \"FOCUS\" });\n },\n onBlur() {\n if (!interactive) return;\n send({ type: \"BLUR\" });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n name: \"rating\",\n count: 5,\n dir: \"ltr\",\n defaultValue: -1,\n ...props2,\n translations: {\n ratingValueText: (index) => `${index} stars`,\n ...props2.translations\n }\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n hoveredValue: bindable(() => ({\n defaultValue: -1,\n onChange(value) {\n prop(\"onHoverChange\")?.({ hoveredValue: value });\n }\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n }))\n };\n },\n watch({ track, action, prop, context }) {\n track([() => prop(\"allowHalf\")], () => {\n action([\"roundValueIfNeeded\"]);\n });\n track([() => context.get(\"value\")], () => {\n action([\"dispatchChangeEvent\"]);\n });\n },\n computed: {\n isDisabled: ({ context, prop }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\"),\n isInteractive: ({ computed, prop }) => !(computed(\"isDisabled\") || prop(\"readOnly\")),\n isHovering: ({ context }) => context.get(\"hoveredValue\") > -1\n },\n effects: [\"trackFormControlState\"],\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n }\n },\n states: {\n idle: {\n entry: [\"clearHoveredValue\"],\n on: {\n GROUP_POINTER_OVER: {\n target: \"hover\"\n },\n FOCUS: {\n target: \"focus\"\n },\n CLICK: {\n actions: [\"setValue\", \"focusActiveRadio\"]\n }\n }\n },\n focus: {\n on: {\n POINTER_OVER: {\n actions: [\"setHoveredValue\"]\n },\n GROUP_POINTER_LEAVE: {\n actions: [\"clearHoveredValue\"]\n },\n BLUR: {\n target: \"idle\"\n },\n SPACE: {\n guard: \"isValueEmpty\",\n actions: [\"setValue\"]\n },\n CLICK: {\n actions: [\"setValue\", \"focusActiveRadio\"]\n },\n ARROW_LEFT: {\n actions: [\"setPrevValue\", \"focusActiveRadio\"]\n },\n ARROW_RIGHT: {\n actions: [\"setNextValue\", \"focusActiveRadio\"]\n },\n HOME: {\n actions: [\"setValueToMin\", \"focusActiveRadio\"]\n },\n END: {\n actions: [\"setValueToMax\", \"focusActiveRadio\"]\n }\n }\n },\n hover: {\n on: {\n POINTER_OVER: {\n actions: [\"setHoveredValue\"]\n },\n GROUP_POINTER_LEAVE: [\n {\n guard: \"isRadioFocused\",\n target: \"focus\",\n actions: [\"clearHoveredValue\"]\n },\n {\n target: \"idle\",\n actions: [\"clearHoveredValue\"]\n }\n ],\n CLICK: {\n actions: [\"setValue\", \"focusActiveRadio\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n isInteractive: ({ prop }) => !(prop(\"disabled\") || prop(\"readOnly\")),\n isHoveredValueEmpty: ({ context }) => context.get(\"hoveredValue\") === -1,\n isValueEmpty: ({ context }) => context.get(\"value\") <= 0,\n isRadioFocused: ({ scope }) => !!getControlEl(scope)?.contains(scope.getActiveElement())\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getHiddenInputEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"value\", context.initial(\"value\"));\n }\n });\n }\n },\n actions: {\n clearHoveredValue({ context }) {\n context.set(\"hoveredValue\", -1);\n },\n focusActiveRadio({ scope, context }) {\n raf(() => getRadioEl(scope, context.get(\"value\"))?.focus());\n },\n setPrevValue({ context, prop }) {\n const factor = prop(\"allowHalf\") ? 0.5 : 1;\n context.set(\"value\", Math.max(0, context.get(\"value\") - factor));\n },\n setNextValue({ context, prop }) {\n const factor = prop(\"allowHalf\") ? 0.5 : 1;\n const value = context.get(\"value\") === -1 ? 0 : context.get(\"value\");\n context.set(\"value\", Math.min(prop(\"count\"), value + factor));\n },\n setValueToMin({ context }) {\n context.set(\"value\", 1);\n },\n setValueToMax({ context, prop }) {\n context.set(\"value\", prop(\"count\"));\n },\n setValue({ context, event }) {\n const hoveredValue = context.get(\"hoveredValue\");\n const value = hoveredValue === -1 ? event.value : hoveredValue;\n context.set(\"value\", value);\n },\n clearValue({ context }) {\n context.set(\"value\", -1);\n },\n setHoveredValue({ context, prop, event }) {\n const half = prop(\"allowHalf\") && event.isMidway;\n const factor = half ? 0.5 : 0;\n context.set(\"hoveredValue\", event.index - factor);\n },\n roundValueIfNeeded({ context, prop }) {\n if (prop(\"allowHalf\")) return;\n context.set(\"value\", Math.round(context.get(\"value\")));\n },\n dispatchChangeEvent({ context, scope }) {\n dispatchChangeEvent(scope, context.get(\"value\"));\n }\n }\n }\n});\nvar props = createProps()([\n \"allowHalf\",\n \"autoFocus\",\n \"count\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"name\",\n \"onHoverChange\",\n \"onValueChange\",\n \"required\",\n \"readOnly\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"index\"]);\nvar splitItemProps = createSplitProps(itemProps);\n\nexport { anatomy, connect, itemProps, machine, props, splitItemProps, splitProps };\n","'use client';\nimport { anatomy } from '@zag-js/radio-group';\n\nconst segmentGroupAnatomy = anatomy.rename(\"segment-group\");\nconst parts = segmentGroupAnatomy.build();\n\nexport { parts, segmentGroupAnatomy };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectProvider, useSelectContext] = createContext({\n name: \"SelectContext\",\n hookName: \"useSelectContext\",\n providerName: \"<SelectProvider />\"\n});\n\nexport { SelectProvider, useSelectContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectClearTrigger = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getClearTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nSelectClearTrigger.displayName = \"SelectClearTrigger\";\n\nexport { SelectClearTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectContent = forwardRef((props, ref) => {\n const select = useSelectContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(select.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nSelectContent.displayName = \"SelectContent\";\n\nexport { SelectContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectControl = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectControl.displayName = \"SelectControl\";\n\nexport { SelectControl };\n","'use client';\nimport { jsxs, jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectHiddenSelect = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getHiddenSelectProps(), props);\n const isValueEmpty = select.value.length === 0;\n const field = useFieldContext();\n return /* @__PURE__ */ jsxs(ark.select, { \"aria-describedby\": field?.ariaDescribedby, ...mergedProps, ref, children: [\n isValueEmpty && /* @__PURE__ */ jsx(\"option\", { value: \"\" }),\n select.collection.items.map((item, index) => /* @__PURE__ */ jsx(\n \"option\",\n {\n value: select.collection.getItemValue(item) ?? \"\",\n disabled: select.collection.getItemDisabled(item),\n children: select.collection.stringifyItem(item)\n },\n index\n ))\n ] });\n});\nSelectHiddenSelect.displayName = \"SelectHiddenSelect\";\n\nexport { SelectHiddenSelect };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectIndicator = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectIndicator.displayName = \"SelectIndicator\";\n\nexport { SelectIndicator };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectItemProvider, useSelectItemContext] = createContext({\n name: \"SelectItemContext\",\n hookName: \"useSelectItemContext\",\n providerName: \"<SelectItemProvider />\"\n});\n\nexport { SelectItemProvider, useSelectItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectItemPropsProvider, useSelectItemPropsContext] = createContext({\n name: \"SelectItemPropsContext\",\n hookName: \"useSelectItemPropsContext\",\n providerName: \"<SelectItemPropsProvider />\"\n});\n\nexport { SelectItemPropsProvider, useSelectItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\nimport { SelectItemProvider } from './use-select-item-context.js';\nimport { SelectItemPropsProvider } from './use-select-item-props-context.js';\n\nconst SelectItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\"item\", \"persistFocus\"]);\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getItemProps(itemProps), localProps);\n const itemState = select.getItemState(itemProps);\n return /* @__PURE__ */ jsx(SelectItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(SelectItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nSelectItem.displayName = \"SelectItem\";\n\nexport { SelectItem };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectItemGroupPropsProvider, useSelectItemGroupPropsContext] = createContext({\n name: \"SelectItemGroupPropsContext\",\n hookName: \"useSelectItemGroupPropsContext\",\n providerName: \"<SelectItemGroupPropsProvider />\"\n});\n\nexport { SelectItemGroupPropsProvider, useSelectItemGroupPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\nimport { SelectItemGroupPropsProvider } from './use-select-item-group-props.js';\n\nconst SelectItemGroup = forwardRef((props, ref) => {\n const id = useId();\n const [_itemGroupProps, localProps] = createSplitProps()(props, [\"id\"]);\n const itemGroupProps = { id, ..._itemGroupProps };\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getItemGroupProps(itemGroupProps), localProps);\n return /* @__PURE__ */ jsx(SelectItemGroupPropsProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nSelectItemGroup.displayName = \"SelectItemGroup\";\n\nexport { SelectItemGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\nimport { useSelectItemGroupPropsContext } from './use-select-item-group-props.js';\n\nconst SelectItemGroupLabel = forwardRef((props, ref) => {\n const select = useSelectContext();\n const itemGroupProps = useSelectItemGroupPropsContext();\n const mergedProps = mergeProps(select.getItemGroupLabelProps({ htmlFor: itemGroupProps.id }), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectItemGroupLabel.displayName = \"SelectItemGroupLabel\";\n\nexport { SelectItemGroupLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\nimport { useSelectItemPropsContext } from './use-select-item-props-context.js';\n\nconst SelectItemIndicator = forwardRef((props, ref) => {\n const select = useSelectContext();\n const itemProps = useSelectItemPropsContext();\n const mergedProps = mergeProps(select.getItemIndicatorProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectItemIndicator.displayName = \"SelectItemIndicator\";\n\nexport { SelectItemIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\nimport { useSelectItemPropsContext } from './use-select-item-props-context.js';\n\nconst SelectItemText = forwardRef((props, ref) => {\n const select = useSelectContext();\n const itemProps = useSelectItemPropsContext();\n const mergedProps = mergeProps(select.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSelectItemText.displayName = \"SelectItemText\";\n\nexport { SelectItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectLabel = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });\n});\nSelectLabel.displayName = \"SelectLabel\";\n\nexport { SelectLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectPositioner = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectPositioner.displayName = \"SelectPositioner\";\n\nexport { SelectPositioner };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { ListCollection } from '@zag-js/collection';\nimport { raf, getInitialFocus, observeAttributes, trackFormControl, getByTypeahead, scrollIntoView, isSelfTarget, isValidTabEvent, getEventKey, getEventTarget, isEditableElement, visuallyHiddenStyle, dataAttr, ariaAttr } from '@zag-js/dom-query';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { addOrRemove, isEqual, createSplitProps, ensure } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { createProps } from '@zag-js/types';\n\n// src/select.anatomy.ts\nvar anatomy = createAnatomy(\"select\").parts(\n \"label\",\n \"positioner\",\n \"trigger\",\n \"indicator\",\n \"clearTrigger\",\n \"item\",\n \"itemText\",\n \"itemIndicator\",\n \"itemGroup\",\n \"itemGroupLabel\",\n \"list\",\n \"content\",\n \"root\",\n \"control\",\n \"valueText\"\n);\nvar parts = anatomy.build();\nvar collection = (options) => {\n return new ListCollection(options);\n};\ncollection.empty = () => {\n return new ListCollection({ items: [] });\n};\n\n// src/select.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `select:${ctx.id}`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `select:${ctx.id}:content`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `select:${ctx.id}:trigger`;\nvar getClearTriggerId = (ctx) => ctx.ids?.clearTrigger ?? `select:${ctx.id}:clear-trigger`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `select:${ctx.id}:label`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `select:${ctx.id}:control`;\nvar getItemId = (ctx, id) => ctx.ids?.item?.(id) ?? `select:${ctx.id}:option:${id}`;\nvar getHiddenSelectId = (ctx) => ctx.ids?.hiddenSelect ?? `select:${ctx.id}:select`;\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `select:${ctx.id}:positioner`;\nvar getItemGroupId = (ctx, id) => ctx.ids?.itemGroup?.(id) ?? `select:${ctx.id}:optgroup:${id}`;\nvar getItemGroupLabelId = (ctx, id) => ctx.ids?.itemGroupLabel?.(id) ?? `select:${ctx.id}:optgroup-label:${id}`;\nvar getHiddenSelectEl = (ctx) => ctx.getById(getHiddenSelectId(ctx));\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getClearTriggerEl = (ctx) => ctx.getById(getClearTriggerId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getItemEl = (ctx, id) => ctx.getById(getItemId(ctx, id));\n\n// src/select.connect.ts\nfunction connect(service, normalize) {\n const { context, prop, scope, state, computed, send } = service;\n const disabled = prop(\"disabled\") || context.get(\"fieldsetDisabled\");\n const invalid = prop(\"invalid\");\n const readOnly = prop(\"readOnly\");\n const composite = prop(\"composite\");\n const collection2 = prop(\"collection\");\n const open = state.hasTag(\"open\");\n const focused = state.matches(\"focused\");\n const highlightedValue = context.get(\"highlightedValue\");\n const highlightedItem = context.get(\"highlightedItem\");\n const selectedItems = context.get(\"selectedItems\");\n const currentPlacement = context.get(\"currentPlacement\");\n const isTypingAhead = computed(\"isTypingAhead\");\n const interactive = computed(\"isInteractive\");\n const ariaActiveDescendant = highlightedValue ? getItemId(scope, highlightedValue) : void 0;\n function getItemState(props2) {\n const _disabled = collection2.getItemDisabled(props2.item);\n const value = collection2.getItemValue(props2.item);\n ensure(value, () => `[zag-js] No value found for item ${JSON.stringify(props2.item)}`);\n return {\n value,\n disabled: Boolean(disabled || _disabled),\n highlighted: highlightedValue === value,\n selected: context.get(\"value\").includes(value)\n };\n }\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: currentPlacement\n });\n return {\n open,\n focused,\n empty: context.get(\"value\").length === 0,\n highlightedItem,\n highlightedValue,\n selectedItems,\n hasSelectedItems: computed(\"hasSelectedItems\"),\n value: context.get(\"value\"),\n valueAsString: context.get(\"valueAsString\"),\n collection: collection2,\n multiple: !!prop(\"multiple\"),\n disabled: !!disabled,\n reposition(options = {}) {\n send({ type: \"POSITIONING.SET\", options });\n },\n focus() {\n getTriggerEl(scope)?.focus({ preventScroll: true });\n },\n setOpen(nextOpen) {\n const open2 = state.hasTag(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n selectValue(value) {\n send({ type: \"ITEM.SELECT\", value });\n },\n setValue(value) {\n send({ type: \"VALUE.SET\", value });\n },\n selectAll() {\n send({ type: \"VALUE.SET\", value: collection2.getValues() });\n },\n highlightValue(value) {\n send({ type: \"HIGHLIGHTED_VALUE.SET\", value });\n },\n clearValue(value) {\n if (value) {\n send({ type: \"ITEM.CLEAR\", value });\n } else {\n send({ type: \"VALUE.CLEAR\" });\n }\n },\n getItemState,\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly)\n });\n },\n getLabelProps() {\n return normalize.label({\n dir: prop(\"dir\"),\n id: getLabelId(scope),\n ...parts.label.attrs,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n htmlFor: getHiddenSelectId(scope),\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n getTriggerEl(scope)?.focus({ preventScroll: true });\n }\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-focus\": dataAttr(focused),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid)\n });\n },\n getValueTextProps() {\n return normalize.element({\n ...parts.valueText.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-focus\": dataAttr(focused)\n });\n },\n getTriggerProps() {\n return normalize.button({\n id: getTriggerId(scope),\n disabled,\n dir: prop(\"dir\"),\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": getContentId(scope),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-invalid\": invalid,\n \"aria-labelledby\": getLabelId(scope),\n ...parts.trigger.attrs,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n \"data-placement\": currentPlacement,\n \"data-placeholder-shown\": dataAttr(!computed(\"hasSelectedItems\")),\n onClick(event) {\n if (!interactive) return;\n if (event.defaultPrevented) return;\n send({ type: \"TRIGGER.CLICK\" });\n },\n onFocus() {\n send({ type: \"TRIGGER.FOCUS\" });\n },\n onBlur() {\n send({ type: \"TRIGGER.BLUR\" });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n const keyMap = {\n ArrowUp() {\n send({ type: \"TRIGGER.ARROW_UP\" });\n },\n ArrowDown(event2) {\n send({ type: event2.altKey ? \"OPEN\" : \"TRIGGER.ARROW_DOWN\" });\n },\n ArrowLeft() {\n send({ type: \"TRIGGER.ARROW_LEFT\" });\n },\n ArrowRight() {\n send({ type: \"TRIGGER.ARROW_RIGHT\" });\n },\n Home() {\n send({ type: \"TRIGGER.HOME\" });\n },\n End() {\n send({ type: \"TRIGGER.END\" });\n },\n Enter() {\n send({ type: \"TRIGGER.ENTER\" });\n },\n Space(event2) {\n if (isTypingAhead) {\n send({ type: \"TRIGGER.TYPEAHEAD\", key: event2.key });\n } else {\n send({ type: \"TRIGGER.ENTER\" });\n }\n }\n };\n const exec = keyMap[getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: \"vertical\"\n })];\n if (exec) {\n exec(event);\n event.preventDefault();\n return;\n }\n if (getByTypeahead.isValidEvent(event)) {\n send({ type: \"TRIGGER.TYPEAHEAD\", key: event.key });\n event.preventDefault();\n }\n }\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"aria-hidden\": true,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly)\n });\n },\n getItemProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n id: getItemId(scope, itemState.value),\n role: \"option\",\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n \"data-value\": itemState.value,\n \"aria-selected\": itemState.selected,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-highlighted\": dataAttr(itemState.highlighted),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"aria-disabled\": ariaAttr(itemState.disabled),\n onPointerMove(event) {\n if (itemState.disabled || event.pointerType !== \"mouse\") return;\n if (itemState.value === highlightedValue) return;\n send({ type: \"ITEM.POINTER_MOVE\", value: itemState.value });\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (itemState.disabled) return;\n send({ type: \"ITEM.CLICK\", src: \"pointerup\", value: itemState.value });\n },\n onPointerLeave(event) {\n if (itemState.disabled) return;\n if (props2.persistFocus) return;\n if (event.pointerType !== \"mouse\") return;\n const pointerMoved = service.event.previous()?.type.includes(\"POINTER\");\n if (!pointerMoved) return;\n send({ type: \"ITEM.POINTER_LEAVE\" });\n }\n });\n },\n getItemTextProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemText.attrs,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-highlighted\": dataAttr(itemState.highlighted)\n });\n },\n getItemIndicatorProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n \"aria-hidden\": true,\n ...parts.itemIndicator.attrs,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n hidden: !itemState.selected\n });\n },\n getItemGroupLabelProps(props2) {\n const { htmlFor } = props2;\n return normalize.element({\n ...parts.itemGroupLabel.attrs,\n id: getItemGroupLabelId(scope, htmlFor),\n dir: prop(\"dir\"),\n role: \"presentation\"\n });\n },\n getItemGroupProps(props2) {\n const { id } = props2;\n return normalize.element({\n ...parts.itemGroup.attrs,\n \"data-disabled\": dataAttr(disabled),\n id: getItemGroupId(scope, id),\n \"aria-labelledby\": getItemGroupLabelId(scope, id),\n role: \"group\",\n dir: prop(\"dir\")\n });\n },\n getClearTriggerProps() {\n return normalize.button({\n ...parts.clearTrigger.attrs,\n id: getClearTriggerId(scope),\n type: \"button\",\n \"aria-label\": \"Clear value\",\n \"data-invalid\": dataAttr(invalid),\n disabled,\n hidden: !computed(\"hasSelectedItems\"),\n dir: prop(\"dir\"),\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"CLEAR.CLICK\" });\n }\n });\n },\n getHiddenSelectProps() {\n const value = context.get(\"value\");\n const defaultValue = prop(\"multiple\") ? value : value?.[0];\n return normalize.select({\n name: prop(\"name\"),\n form: prop(\"form\"),\n disabled,\n multiple: prop(\"multiple\"),\n required: prop(\"required\"),\n \"aria-hidden\": true,\n id: getHiddenSelectId(scope),\n defaultValue,\n style: visuallyHiddenStyle,\n tabIndex: -1,\n // Some browser extensions will focus the hidden select.\n // Let's forward the focus to the trigger.\n onFocus() {\n getTriggerEl(scope)?.focus({ preventScroll: true });\n },\n \"aria-labelledby\": getLabelId(scope)\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n id: getPositionerId(scope),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n hidden: !open,\n dir: prop(\"dir\"),\n id: getContentId(scope),\n role: composite ? \"listbox\" : \"dialog\",\n ...parts.content.attrs,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-placement\": currentPlacement,\n \"data-activedescendant\": ariaActiveDescendant,\n \"aria-activedescendant\": composite ? ariaActiveDescendant : void 0,\n \"aria-multiselectable\": prop(\"multiple\") && composite ? true : void 0,\n \"aria-labelledby\": getLabelId(scope),\n tabIndex: 0,\n onKeyDown(event) {\n if (!interactive) return;\n if (!isSelfTarget(event)) return;\n if (event.key === \"Tab\") {\n const valid = isValidTabEvent(event);\n if (!valid) {\n event.preventDefault();\n return;\n }\n }\n const keyMap = {\n ArrowUp() {\n send({ type: \"CONTENT.ARROW_UP\" });\n },\n ArrowDown() {\n send({ type: \"CONTENT.ARROW_DOWN\" });\n },\n Home() {\n send({ type: \"CONTENT.HOME\" });\n },\n End() {\n send({ type: \"CONTENT.END\" });\n },\n Enter() {\n send({ type: \"ITEM.CLICK\", src: \"keydown.enter\" });\n },\n Space(event2) {\n if (isTypingAhead) {\n send({ type: \"CONTENT.TYPEAHEAD\", key: event2.key });\n } else {\n keyMap.Enter?.(event2);\n }\n }\n };\n const exec = keyMap[getEventKey(event)];\n if (exec) {\n exec(event);\n event.preventDefault();\n return;\n }\n const target = getEventTarget(event);\n if (isEditableElement(target)) {\n return;\n }\n if (getByTypeahead.isValidEvent(event)) {\n send({ type: \"CONTENT.TYPEAHEAD\", key: event.key });\n event.preventDefault();\n }\n }\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n tabIndex: 0,\n role: !composite ? \"listbox\" : void 0,\n \"aria-labelledby\": getTriggerId(scope),\n \"aria-activedescendant\": !composite ? ariaActiveDescendant : void 0,\n \"aria-multiselectable\": !composite && prop(\"multiple\") ? true : void 0\n });\n }\n };\n}\nvar { and, not, or } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n loopFocus: false,\n closeOnSelect: !props2.multiple,\n composite: true,\n defaultValue: [],\n ...props2,\n collection: props2.collection ?? collection.empty(),\n positioning: {\n placement: \"bottom-start\",\n gutter: 8,\n ...props2.positioning\n }\n };\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n isEqual,\n onChange(value) {\n const items = prop(\"collection\").findMany(value);\n return prop(\"onValueChange\")?.({ value, items });\n }\n })),\n highlightedValue: bindable(() => ({\n defaultValue: prop(\"defaultHighlightedValue\") || null,\n value: prop(\"highlightedValue\"),\n onChange(value) {\n prop(\"onHighlightChange\")?.({\n highlightedValue: value,\n highlightedItem: prop(\"collection\").find(value),\n highlightedIndex: prop(\"collection\").indexOf(value)\n });\n }\n })),\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n highlightedItem: bindable(() => ({\n defaultValue: null\n })),\n selectedItems: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? [];\n const items = prop(\"collection\").findMany(value);\n return { defaultValue: items };\n }),\n valueAsString: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? [];\n return { defaultValue: prop(\"collection\").stringifyMany(value) };\n })\n };\n },\n refs() {\n return {\n typeahead: { ...getByTypeahead.defaultOptions }\n };\n },\n computed: {\n hasSelectedItems: ({ context }) => context.get(\"value\").length > 0,\n isTypingAhead: ({ refs }) => refs.get(\"typeahead\").keysSoFar !== \"\",\n isDisabled: ({ prop, context }) => !!prop(\"disabled\") || !!context.get(\"fieldsetDisabled\"),\n isInteractive: ({ prop }) => !(prop(\"disabled\") || prop(\"readOnly\"))\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"idle\";\n },\n entry: [\"syncSelectElement\"],\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\").toString()], () => {\n action([\"syncSelectedItems\", \"syncSelectElement\", \"dispatchChangeEvent\"]);\n });\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n track([() => context.get(\"highlightedValue\")], () => {\n action([\"syncHighlightedItem\"]);\n });\n track([() => prop(\"collection\").toString()], () => {\n action([\"syncCollection\"]);\n });\n },\n on: {\n \"HIGHLIGHTED_VALUE.SET\": {\n actions: [\"setHighlightedItem\"]\n },\n \"ITEM.SELECT\": {\n actions: [\"selectItem\"]\n },\n \"ITEM.CLEAR\": {\n actions: [\"clearItem\"]\n },\n \"VALUE.SET\": {\n actions: [\"setSelectedItems\"]\n },\n \"VALUE.CLEAR\": {\n actions: [\"clearSelectedItems\"]\n },\n \"CLEAR.CLICK\": {\n actions: [\"clearSelectedItems\", \"focusTriggerEl\"]\n }\n },\n effects: [\"trackFormControlState\"],\n states: {\n idle: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\", \"highlightFirstSelectedItem\"]\n }\n ],\n \"TRIGGER.FOCUS\": {\n target: \"focused\"\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\"]\n }\n ]\n }\n },\n focused: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"]\n },\n {\n guard: \"isTriggerArrowUpEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightComputedLastItem\"]\n },\n {\n guard: or(\"isTriggerArrowDownEvent\", \"isTriggerEnterEvent\"),\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightComputedFirstItem\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n }\n ],\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\"]\n }\n ],\n \"TRIGGER.BLUR\": {\n target: \"idle\"\n },\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightFirstSelectedItem\"]\n }\n ],\n \"TRIGGER.ENTER\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedFirstItem\"]\n }\n ],\n \"TRIGGER.ARROW_UP\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedLastItem\"]\n }\n ],\n \"TRIGGER.ARROW_DOWN\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedFirstItem\"]\n }\n ],\n \"TRIGGER.ARROW_LEFT\": [\n {\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n actions: [\"selectPreviousItem\"]\n },\n {\n guard: not(\"multiple\"),\n actions: [\"selectLastItem\"]\n }\n ],\n \"TRIGGER.ARROW_RIGHT\": [\n {\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n actions: [\"selectNextItem\"]\n },\n {\n guard: not(\"multiple\"),\n actions: [\"selectFirstItem\"]\n }\n ],\n \"TRIGGER.HOME\": {\n guard: not(\"multiple\"),\n actions: [\"selectFirstItem\"]\n },\n \"TRIGGER.END\": {\n guard: not(\"multiple\"),\n actions: [\"selectLastItem\"]\n },\n \"TRIGGER.TYPEAHEAD\": {\n guard: not(\"multiple\"),\n actions: [\"selectMatchingItem\"]\n }\n }\n },\n open: {\n tags: [\"open\"],\n exit: [\"scrollContentToTop\"],\n effects: [\"trackDismissableElement\", \"computePlacement\", \"scrollToHighlightedItem\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"focused\",\n actions: [\"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"focused\",\n actions: [\"invokeOnClose\", \"focusTriggerEl\", \"clearHighlightedItem\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"focused\",\n actions: [\"invokeOnClose\", \"clearHighlightedItem\"]\n }\n ],\n \"ITEM.CLICK\": [\n {\n guard: and(\"closeOnSelect\", \"isOpenControlled\"),\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"]\n },\n {\n guard: \"closeOnSelect\",\n target: \"focused\",\n actions: [\"selectHighlightedItem\", \"invokeOnClose\", \"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n {\n actions: [\"selectHighlightedItem\"]\n }\n ],\n \"CONTENT.HOME\": {\n actions: [\"highlightFirstItem\"]\n },\n \"CONTENT.END\": {\n actions: [\"highlightLastItem\"]\n },\n \"CONTENT.ARROW_DOWN\": [\n {\n guard: and(\"hasHighlightedItem\", \"loop\", \"isLastItemHighlighted\"),\n actions: [\"highlightFirstItem\"]\n },\n {\n guard: \"hasHighlightedItem\",\n actions: [\"highlightNextItem\"]\n },\n {\n actions: [\"highlightFirstItem\"]\n }\n ],\n \"CONTENT.ARROW_UP\": [\n {\n guard: and(\"hasHighlightedItem\", \"loop\", \"isFirstItemHighlighted\"),\n actions: [\"highlightLastItem\"]\n },\n {\n guard: \"hasHighlightedItem\",\n actions: [\"highlightPreviousItem\"]\n },\n {\n actions: [\"highlightLastItem\"]\n }\n ],\n \"CONTENT.TYPEAHEAD\": {\n actions: [\"highlightMatchingItem\"]\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"highlightItem\"]\n },\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedItem\"]\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n loop: ({ prop }) => !!prop(\"loopFocus\"),\n multiple: ({ prop }) => !!prop(\"multiple\"),\n hasSelectedItems: ({ computed }) => !!computed(\"hasSelectedItems\"),\n hasHighlightedItem: ({ context }) => context.get(\"highlightedValue\") != null,\n isFirstItemHighlighted: ({ context, prop }) => context.get(\"highlightedValue\") === prop(\"collection\").firstValue,\n isLastItemHighlighted: ({ context, prop }) => context.get(\"highlightedValue\") === prop(\"collection\").lastValue,\n closeOnSelect: ({ prop, event }) => !!(event.closeOnSelect ?? prop(\"closeOnSelect\")),\n // guard assertions (for controlled mode)\n isOpenControlled: ({ prop }) => prop(\"open\") !== void 0,\n isTriggerClickEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.CLICK\",\n isTriggerEnterEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ENTER\",\n isTriggerArrowUpEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ARROW_UP\",\n isTriggerArrowDownEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ARROW_DOWN\"\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getHiddenSelectEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n const value = context.initial(\"value\");\n context.set(\"value\", value);\n }\n });\n },\n trackDismissableElement({ scope, send, prop }) {\n const contentEl = () => getContentEl(scope);\n let restoreFocus = true;\n return trackDismissableElement(contentEl, {\n defer: true,\n exclude: [getTriggerEl(scope), getClearTriggerEl(scope)],\n onFocusOutside: prop(\"onFocusOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n restoreFocus = !(event.detail.focusable || event.detail.contextmenu);\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\", restoreFocus });\n }\n });\n },\n computePlacement({ context, prop, scope }) {\n const positioning = prop(\"positioning\");\n context.set(\"currentPlacement\", positioning.placement);\n const triggerEl = () => getTriggerEl(scope);\n const positionerEl = () => getPositionerEl(scope);\n return getPlacement(triggerEl, positionerEl, {\n defer: true,\n ...positioning,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n scrollToHighlightedItem({ context, prop, scope, event }) {\n const exec = (immediate) => {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n if (event.current().type.includes(\"POINTER\")) return;\n const optionEl = getItemEl(scope, highlightedValue);\n const contentEl2 = getContentEl(scope);\n const scrollToIndexFn = prop(\"scrollToIndexFn\");\n if (scrollToIndexFn) {\n const highlightedIndex = prop(\"collection\").indexOf(highlightedValue);\n scrollToIndexFn?.({ index: highlightedIndex, immediate });\n return;\n }\n scrollIntoView(optionEl, { rootEl: contentEl2, block: \"nearest\" });\n };\n raf(() => exec(true));\n const contentEl = () => getContentEl(scope);\n return observeAttributes(contentEl, {\n defer: true,\n attributes: [\"data-activedescendant\"],\n callback() {\n exec(false);\n }\n });\n }\n },\n actions: {\n reposition({ context, prop, scope, event }) {\n const positionerEl = () => getPositionerEl(scope);\n getPlacement(getTriggerEl(scope), positionerEl, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n toggleVisibility({ send, prop, event }) {\n send({ type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: event });\n },\n highlightPreviousItem({ context, prop }) {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n const value = prop(\"collection\").getPreviousValue(highlightedValue, 1, prop(\"loopFocus\"));\n context.set(\"highlightedValue\", value);\n },\n highlightNextItem({ context, prop }) {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n const value = prop(\"collection\").getNextValue(highlightedValue, 1, prop(\"loopFocus\"));\n context.set(\"highlightedValue\", value);\n },\n highlightFirstItem({ context, prop }) {\n const value = prop(\"collection\").firstValue;\n context.set(\"highlightedValue\", value);\n },\n highlightLastItem({ context, prop }) {\n const value = prop(\"collection\").lastValue;\n context.set(\"highlightedValue\", value);\n },\n setInitialFocus({ scope }) {\n raf(() => {\n const element = getInitialFocus({\n root: getContentEl(scope)\n });\n element?.focus({ preventScroll: true });\n });\n },\n focusTriggerEl({ event, scope }) {\n const restoreFocus = event.restoreFocus ?? event.previousEvent?.restoreFocus;\n if (restoreFocus != null && !restoreFocus) return;\n raf(() => {\n const element = getTriggerEl(scope);\n element?.focus({ preventScroll: true });\n });\n },\n selectHighlightedItem({ context, prop, event }) {\n let value = event.value ?? context.get(\"highlightedValue\");\n if (value == null) return;\n const nullable = prop(\"deselectable\") && !prop(\"multiple\") && context.get(\"value\").includes(value);\n value = nullable ? null : value;\n context.set(\"value\", (prev) => {\n if (value == null) return [];\n if (prop(\"multiple\")) return addOrRemove(prev, value);\n return [value];\n });\n },\n highlightComputedFirstItem({ context, prop, computed }) {\n const collection2 = prop(\"collection\");\n const value = computed(\"hasSelectedItems\") ? collection2.sort(context.get(\"value\"))[0] : collection2.firstValue;\n context.set(\"highlightedValue\", value);\n },\n highlightComputedLastItem({ context, prop, computed }) {\n const collection2 = prop(\"collection\");\n const value = computed(\"hasSelectedItems\") ? collection2.sort(context.get(\"value\"))[0] : collection2.lastValue;\n context.set(\"highlightedValue\", value);\n },\n highlightFirstSelectedItem({ context, prop, computed }) {\n if (!computed(\"hasSelectedItems\")) return;\n const value = prop(\"collection\").sort(context.get(\"value\"))[0];\n context.set(\"highlightedValue\", value);\n },\n highlightItem({ context, event }) {\n context.set(\"highlightedValue\", event.value);\n },\n highlightMatchingItem({ context, prop, event, refs }) {\n const value = prop(\"collection\").search(event.key, {\n state: refs.get(\"typeahead\"),\n currentValue: context.get(\"highlightedValue\")\n });\n if (value == null) return;\n context.set(\"highlightedValue\", value);\n },\n setHighlightedItem({ context, event }) {\n context.set(\"highlightedValue\", event.value);\n },\n clearHighlightedItem({ context }) {\n context.set(\"highlightedValue\", null);\n },\n selectItem({ context, prop, event }) {\n const nullable = prop(\"deselectable\") && !prop(\"multiple\") && context.get(\"value\").includes(event.value);\n const value = nullable ? null : event.value;\n context.set(\"value\", (prev) => {\n if (value == null) return [];\n if (prop(\"multiple\")) return addOrRemove(prev, value);\n return [value];\n });\n },\n clearItem({ context, event }) {\n context.set(\"value\", (prev) => prev.filter((v) => v !== event.value));\n },\n setSelectedItems({ context, event }) {\n context.set(\"value\", event.value);\n },\n clearSelectedItems({ context }) {\n context.set(\"value\", []);\n },\n selectPreviousItem({ context, prop }) {\n const [firstItem] = context.get(\"value\");\n const value = prop(\"collection\").getPreviousValue(firstItem);\n if (value) context.set(\"value\", [value]);\n },\n selectNextItem({ context, prop }) {\n const [firstItem] = context.get(\"value\");\n const value = prop(\"collection\").getNextValue(firstItem);\n if (value) context.set(\"value\", [value]);\n },\n selectFirstItem({ context, prop }) {\n const value = prop(\"collection\").firstValue;\n if (value) context.set(\"value\", [value]);\n },\n selectLastItem({ context, prop }) {\n const value = prop(\"collection\").lastValue;\n if (value) context.set(\"value\", [value]);\n },\n selectMatchingItem({ context, prop, event, refs }) {\n const value = prop(\"collection\").search(event.key, {\n state: refs.get(\"typeahead\"),\n currentValue: context.get(\"value\")[0]\n });\n if (value == null) return;\n context.set(\"value\", [value]);\n },\n scrollContentToTop({ prop, scope }) {\n if (prop(\"scrollToIndexFn\")) {\n prop(\"scrollToIndexFn\")?.({ index: 0, immediate: true });\n } else {\n getContentEl(scope)?.scrollTo(0, 0);\n }\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n syncSelectElement({ context, prop, scope }) {\n const selectEl = getHiddenSelectEl(scope);\n if (!selectEl) return;\n if (context.get(\"value\").length === 0 && !prop(\"multiple\")) {\n selectEl.selectedIndex = -1;\n return;\n }\n for (const option of selectEl.options) {\n option.selected = context.get(\"value\").includes(option.value);\n }\n },\n syncCollection({ context, prop }) {\n const collection2 = prop(\"collection\");\n const highlightedItem = collection2.find(context.get(\"highlightedValue\"));\n if (highlightedItem) context.set(\"highlightedItem\", highlightedItem);\n const selectedItems = collection2.findMany(context.get(\"value\"));\n context.set(\"selectedItems\", selectedItems);\n const valueAsString = collection2.stringifyItems(selectedItems);\n context.set(\"valueAsString\", valueAsString);\n },\n syncSelectedItems({ context, prop }) {\n const collection2 = prop(\"collection\");\n const prevSelectedItems = context.get(\"selectedItems\");\n const value = context.get(\"value\");\n const selectedItems = value.map((value2) => {\n const item = prevSelectedItems.find((item2) => collection2.getItemValue(item2) === value2);\n return item || collection2.find(value2);\n });\n context.set(\"selectedItems\", selectedItems);\n context.set(\"valueAsString\", collection2.stringifyItems(selectedItems));\n },\n syncHighlightedItem({ context, prop }) {\n const collection2 = prop(\"collection\");\n const highlightedValue = context.get(\"highlightedValue\");\n const highlightedItem = highlightedValue ? collection2.find(highlightedValue) : null;\n context.set(\"highlightedItem\", highlightedItem);\n },\n dispatchChangeEvent({ scope }) {\n queueMicrotask(() => {\n const node = getHiddenSelectEl(scope);\n if (!node) return;\n const win = scope.getWin();\n const changeEvent = new win.Event(\"change\", { bubbles: true, composed: true });\n node.dispatchEvent(changeEvent);\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"closeOnSelect\",\n \"collection\",\n \"dir\",\n \"disabled\",\n \"deselectable\",\n \"form\",\n \"getRootNode\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"defaultOpen\",\n \"open\",\n \"composite\",\n \"positioning\",\n \"required\",\n \"readOnly\",\n \"scrollToIndexFn\",\n \"value\",\n \"defaultValue\",\n \"defaultHighlightedValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"item\", \"persistFocus\"]);\nvar splitItemProps = createSplitProps(itemProps);\nvar itemGroupProps = createProps()([\"id\"]);\nvar splitItemGroupProps = createSplitProps(itemGroupProps);\nvar itemGroupLabelProps = createProps()([\"htmlFor\"]);\nvar splitItemGroupLabelProps = createSplitProps(itemGroupLabelProps);\n\nexport { anatomy, collection, connect, itemGroupLabelProps, itemGroupProps, itemProps, machine, props, splitItemGroupLabelProps, splitItemGroupProps, splitItemProps, splitProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as select from '@zag-js/select';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\n\nconst useSelect = (props) => {\n const id = useId();\n const { dir } = useLocaleContext();\n const { getRootNode } = useEnvironmentContext();\n const field = useFieldContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenSelect: field?.ids.control\n },\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(select.machine, machineProps);\n return select.connect(service, normalizeProps);\n};\n\nexport { useSelect };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useSelect } from './use-select.js';\nimport { SelectProvider } from './use-select-context.js';\n\nconst SelectImpl = (props, ref) => {\n const [presenceProps, selectProps] = splitPresenceProps(props);\n const [useSelectProps, localProps] = createSplitProps()(selectProps, [\n \"closeOnSelect\",\n \"collection\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"deselectable\",\n \"disabled\",\n \"form\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"open\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"value\"\n ]);\n const select = useSelect(useSelectProps);\n const presence = usePresence(mergeProps({ present: select.open }, presenceProps));\n const mergedProps = mergeProps(select.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SelectProvider, { value: select, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n};\nconst SelectRoot = forwardRef(SelectImpl);\n\nexport { SelectRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { SelectProvider } from './use-select-context.js';\n\nconst SelectImpl = (props, ref) => {\n const [presenceProps, selectProps] = splitPresenceProps(props);\n const [{ value: select }, localProps] = createSplitProps()(selectProps, [\"value\"]);\n const presence = usePresence(mergeProps({ present: select.open }, presenceProps));\n const mergedProps = mergeProps(select.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SelectProvider, { value: select, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n};\nconst SelectRootProvider = forwardRef(SelectImpl);\n\nexport { SelectRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectTrigger = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport { SelectTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectValueText = forwardRef((props, ref) => {\n const { children, placeholder, ...localprops } = props;\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getValueTextProps(), localprops);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref, children: children || select.valueAsString || placeholder });\n});\nSelectValueText.displayName = \"SelectValueText\";\n\nexport { SelectValueText };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { raf, setElementValue, trackElementRect, queryAll, trackPointerMove, trackFormControl, getRelativePoint, dispatchInputValueEvent, dataAttr, isLeftClick, isModifierKey, getEventPoint, ariaAttr, getEventStep, getEventKey } from '@zag-js/dom-query';\nimport { setValueAtIndex, pick, getValuePercent, isEqual, createSplitProps, snapValueToStep, clampValue, getValueRanges, getNextStepValue, getPreviousStepValue, getPercentValue, getClosestValueIndex, first, last, toPx, getValueTransformer } from '@zag-js/utils';\nimport { createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/slider.anatomy.ts\nvar anatomy = createAnatomy(\"slider\").parts(\n \"root\",\n \"label\",\n \"thumb\",\n \"valueText\",\n \"track\",\n \"range\",\n \"control\",\n \"markerGroup\",\n \"marker\",\n \"draggingIndicator\"\n);\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `slider:${ctx.id}`;\nvar getThumbId = (ctx, index) => ctx.ids?.thumb?.(index) ?? `slider:${ctx.id}:thumb:${index}`;\nvar getHiddenInputId = (ctx, index) => ctx.ids?.hiddenInput?.(index) ?? `slider:${ctx.id}:input:${index}`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `slider:${ctx.id}:control`;\nvar getTrackId = (ctx) => ctx.ids?.track ?? `slider:${ctx.id}:track`;\nvar getRangeId = (ctx) => ctx.ids?.range ?? `slider:${ctx.id}:range`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `slider:${ctx.id}:label`;\nvar getValueTextId = (ctx) => ctx.ids?.valueText ?? `slider:${ctx.id}:value-text`;\nvar getMarkerId = (ctx, value) => ctx.ids?.marker?.(value) ?? `slider:${ctx.id}:marker:${value}`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getThumbEl = (ctx, index) => ctx.getById(getThumbId(ctx, index));\nvar getThumbEls = (ctx) => queryAll(getControlEl(ctx), \"[role=slider]\");\nvar getFirstThumbEl = (ctx) => getThumbEls(ctx)[0];\nvar getHiddenInputEl = (ctx, index) => ctx.getById(getHiddenInputId(ctx, index));\nvar getControlEl = (ctx) => ctx.getById(getControlId(ctx));\nvar getPointValue = (params, point) => {\n const { prop, scope } = params;\n const controlEl = getControlEl(scope);\n if (!controlEl) return;\n const relativePoint = getRelativePoint(point, controlEl);\n const percent = relativePoint.getPercentValue({\n orientation: prop(\"orientation\"),\n dir: prop(\"dir\"),\n inverted: { y: true }\n });\n return getPercentValue(percent, prop(\"min\"), prop(\"max\"), prop(\"step\"));\n};\nvar dispatchChangeEvent = (ctx, value) => {\n value.forEach((value2, index) => {\n const inputEl = getHiddenInputEl(ctx, index);\n if (!inputEl) return;\n dispatchInputValueEvent(inputEl, { value: value2 });\n });\n};\nvar getOffsetRect = (el) => ({\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n});\nfunction getBounds(value) {\n const firstValue = value[0];\n const lastThumb = value[value.length - 1];\n return [firstValue, lastThumb];\n}\nfunction getRangeOffsets(params) {\n const { prop, computed } = params;\n const valuePercent = computed(\"valuePercent\");\n const [firstPercent, lastPercent] = getBounds(valuePercent);\n if (valuePercent.length === 1) {\n if (prop(\"origin\") === \"center\") {\n const isNegative = valuePercent[0] < 50;\n const start = isNegative ? `${valuePercent[0]}%` : \"50%\";\n const end = isNegative ? \"50%\" : `${100 - valuePercent[0]}%`;\n return { start, end };\n }\n if (prop(\"origin\") === \"end\") {\n return { start: `${lastPercent}%`, end: \"0%\" };\n }\n return { start: \"0%\", end: `${100 - lastPercent}%` };\n }\n return { start: `${firstPercent}%`, end: `${100 - lastPercent}%` };\n}\nfunction getRangeStyle(params) {\n const { computed } = params;\n const isVertical = computed(\"isVertical\");\n const isRtl = computed(\"isRtl\");\n if (isVertical) {\n return {\n position: \"absolute\",\n bottom: \"var(--slider-range-start)\",\n top: \"var(--slider-range-end)\"\n };\n }\n return {\n position: \"absolute\",\n [isRtl ? \"right\" : \"left\"]: \"var(--slider-range-start)\",\n [isRtl ? \"left\" : \"right\"]: \"var(--slider-range-end)\"\n };\n}\nfunction getVerticalThumbOffset(params, value) {\n const { context, prop } = params;\n const { height = 0 } = context.get(\"thumbSize\") ?? {};\n const getValue = getValueTransformer([prop(\"min\"), prop(\"max\")], [-height / 2, height / 2]);\n return parseFloat(getValue(value).toFixed(2));\n}\nfunction getHorizontalThumbOffset(params, value) {\n const { computed, context, prop } = params;\n const { width = 0 } = context.get(\"thumbSize\") ?? {};\n const isRtl = computed(\"isRtl\");\n if (isRtl) {\n const getValue2 = getValueTransformer([prop(\"max\"), prop(\"min\")], [-width / 2, width / 2]);\n return -1 * parseFloat(getValue2(value).toFixed(2));\n }\n const getValue = getValueTransformer([prop(\"min\"), prop(\"max\")], [-width / 2, width / 2]);\n return parseFloat(getValue(value).toFixed(2));\n}\nfunction getOffset(params, percent, value) {\n const { computed, prop } = params;\n if (prop(\"thumbAlignment\") === \"center\") return `${percent}%`;\n const offset = computed(\"isVertical\") ? getVerticalThumbOffset(params, value) : getHorizontalThumbOffset(params, value);\n return `calc(${percent}% - ${offset}px)`;\n}\nfunction getThumbOffset(params, value) {\n const { prop } = params;\n const percent = getValuePercent(value, prop(\"min\"), prop(\"max\")) * 100;\n return getOffset(params, percent, value);\n}\nfunction getVisibility(params) {\n const { computed, prop } = params;\n let visibility = \"visible\";\n if (prop(\"thumbAlignment\") === \"contain\" && !computed(\"hasMeasuredThumbSize\")) {\n visibility = \"hidden\";\n }\n return visibility;\n}\nfunction getThumbStyle(params, index) {\n const { computed } = params;\n const placementProp = computed(\"isVertical\") ? \"bottom\" : \"insetInlineStart\";\n return {\n visibility: getVisibility(params),\n position: \"absolute\",\n transform: \"var(--slider-thumb-transform)\",\n [placementProp]: `var(--slider-thumb-offset-${index})`\n };\n}\nfunction getControlStyle() {\n return {\n touchAction: \"none\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n position: \"relative\"\n };\n}\nfunction getRootStyle(params) {\n const { context, computed } = params;\n const isVertical = computed(\"isVertical\");\n const isRtl = computed(\"isRtl\");\n const range = getRangeOffsets(params);\n const thumbSize = context.get(\"thumbSize\");\n const offsetStyles = context.get(\"value\").reduce((styles, value, index) => {\n const offset = getThumbOffset(params, value);\n return { ...styles, [`--slider-thumb-offset-${index}`]: offset };\n }, {});\n return {\n ...offsetStyles,\n \"--slider-thumb-width\": toPx(thumbSize?.width),\n \"--slider-thumb-height\": toPx(thumbSize?.height),\n \"--slider-thumb-transform\": isVertical ? \"translateY(50%)\" : isRtl ? \"translateX(50%)\" : \"translateX(-50%)\",\n \"--slider-range-start\": range.start,\n \"--slider-range-end\": range.end\n };\n}\nfunction getMarkerStyle(params, value) {\n const { computed } = params;\n const isHorizontal = computed(\"isHorizontal\");\n const isRtl = computed(\"isRtl\");\n return {\n visibility: getVisibility(params),\n position: \"absolute\",\n pointerEvents: \"none\",\n [isHorizontal ? \"insetInlineStart\" : \"bottom\"]: getThumbOffset(params, value),\n translate: \"var(--tx) var(--ty)\",\n \"--tx\": isHorizontal ? isRtl ? \"50%\" : \"-50%\" : \"0%\",\n \"--ty\": !isHorizontal ? \"50%\" : \"0%\"\n };\n}\nfunction getMarkerGroupStyle() {\n return {\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n pointerEvents: \"none\",\n position: \"relative\"\n };\n}\nfunction normalizeValues(params, nextValues) {\n return nextValues.map((value, index) => {\n return constrainValue(params, value, index);\n });\n}\nfunction getRangeAtIndex(params, index) {\n const { context, prop } = params;\n return getValueRanges(context.get(\"value\"), prop(\"min\"), prop(\"max\"), prop(\"minStepsBetweenThumbs\"))[index];\n}\nfunction constrainValue(params, value, index) {\n const { prop } = params;\n const range = getRangeAtIndex(params, index);\n const snapValue = snapValueToStep(value, prop(\"min\"), prop(\"max\"), prop(\"step\"));\n return clampValue(snapValue, range.min, range.max);\n}\nfunction decrement(params, index, step) {\n const { context, prop } = params;\n const idx = index ?? context.get(\"focusedIndex\");\n const range = getRangeAtIndex(params, idx);\n const nextValues = getPreviousStepValue(idx, {\n ...range,\n step: step ?? prop(\"step\"),\n values: context.get(\"value\")\n });\n nextValues[idx] = clampValue(nextValues[idx], range.min, range.max);\n return nextValues;\n}\nfunction increment(params, index, step) {\n const { context, prop } = params;\n const idx = index ?? context.get(\"focusedIndex\");\n const range = getRangeAtIndex(params, idx);\n const nextValues = getNextStepValue(idx, {\n ...range,\n step: step ?? prop(\"step\"),\n values: context.get(\"value\")\n });\n nextValues[idx] = clampValue(nextValues[idx], range.min, range.max);\n return nextValues;\n}\nfunction getClosestIndex(params, pointValue) {\n const { context } = params;\n return getClosestValueIndex(context.get(\"value\"), pointValue);\n}\n\n// src/slider.connect.ts\nfunction connect(service, normalize2) {\n const { state, send, context, prop, computed, scope } = service;\n const ariaLabel = prop(\"aria-label\");\n const ariaLabelledBy = prop(\"aria-labelledby\");\n const sliderValue = context.get(\"value\");\n const focusedIndex = context.get(\"focusedIndex\");\n const focused = state.matches(\"focus\");\n const dragging = state.matches(\"dragging\");\n const disabled = computed(\"isDisabled\");\n const invalid = prop(\"invalid\");\n const interactive = computed(\"isInteractive\");\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const isVertical = prop(\"orientation\") === \"vertical\";\n function getValuePercentFn(value) {\n return getValuePercent(value, prop(\"min\"), prop(\"max\"));\n }\n function getPercentValueFn(percent) {\n return getPercentValue(percent, prop(\"min\"), prop(\"max\"), prop(\"step\"));\n }\n return {\n value: sliderValue,\n dragging,\n focused,\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n getThumbValue(index) {\n return sliderValue[index];\n },\n setThumbValue(index, value) {\n send({ type: \"SET_VALUE\", index, value });\n },\n getValuePercent: getValuePercentFn,\n getPercentValue: getPercentValueFn,\n getThumbPercent(index) {\n return getValuePercentFn(sliderValue[index]);\n },\n setThumbPercent(index, percent) {\n const value = getPercentValueFn(percent);\n send({ type: \"SET_VALUE\", index, value });\n },\n getThumbMin(index) {\n return getRangeAtIndex(service, index).min;\n },\n getThumbMax(index) {\n return getRangeAtIndex(service, index).max;\n },\n increment(index) {\n send({ type: \"INCREMENT\", index });\n },\n decrement(index) {\n send({ type: \"DECREMENT\", index });\n },\n focus() {\n if (!interactive) return;\n send({ type: \"FOCUS\", index: 0 });\n },\n getLabelProps() {\n return normalize2.label({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": prop(\"orientation\"),\n \"data-invalid\": dataAttr(invalid),\n \"data-dragging\": dataAttr(dragging),\n \"data-focus\": dataAttr(focused),\n id: getLabelId(scope),\n htmlFor: getHiddenInputId(scope, 0),\n onClick(event) {\n if (!interactive) return;\n event.preventDefault();\n getFirstThumbEl(scope)?.focus();\n },\n style: {\n userSelect: \"none\",\n WebkitUserSelect: \"none\"\n }\n });\n },\n getRootProps() {\n return normalize2.element({\n ...parts.root.attrs,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": prop(\"orientation\"),\n \"data-dragging\": dataAttr(dragging),\n \"data-invalid\": dataAttr(invalid),\n \"data-focus\": dataAttr(focused),\n id: getRootId(scope),\n dir: prop(\"dir\"),\n style: getRootStyle(service)\n });\n },\n getValueTextProps() {\n return normalize2.element({\n ...parts.valueText.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": prop(\"orientation\"),\n \"data-invalid\": dataAttr(invalid),\n \"data-focus\": dataAttr(focused),\n id: getValueTextId(scope)\n });\n },\n getTrackProps() {\n return normalize2.element({\n ...parts.track.attrs,\n dir: prop(\"dir\"),\n id: getTrackId(scope),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-dragging\": dataAttr(dragging),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n style: { position: \"relative\" }\n });\n },\n getThumbProps(props2) {\n const { index = 0, name } = props2;\n const value = sliderValue[index];\n const range = getRangeAtIndex(service, index);\n const valueText = prop(\"getAriaValueText\")?.({ value, index });\n const _ariaLabel = Array.isArray(ariaLabel) ? ariaLabel[index] : ariaLabel;\n const _ariaLabelledBy = Array.isArray(ariaLabelledBy) ? ariaLabelledBy[index] : ariaLabelledBy;\n return normalize2.element({\n ...parts.thumb.attrs,\n dir: prop(\"dir\"),\n \"data-index\": index,\n \"data-name\": name,\n id: getThumbId(scope, index),\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused && focusedIndex === index),\n \"data-dragging\": dataAttr(dragging && focusedIndex === index),\n draggable: false,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-label\": _ariaLabel,\n \"aria-labelledby\": _ariaLabelledBy ?? getLabelId(scope),\n \"aria-orientation\": prop(\"orientation\"),\n \"aria-valuemax\": range.max,\n \"aria-valuemin\": range.min,\n \"aria-valuenow\": sliderValue[index],\n \"aria-valuetext\": valueText,\n role: \"slider\",\n tabIndex: disabled ? void 0 : 0,\n style: getThumbStyle(service, index),\n onPointerDown(event) {\n if (!interactive) return;\n send({ type: \"THUMB_POINTER_DOWN\", index });\n event.stopPropagation();\n },\n onBlur() {\n if (!interactive) return;\n send({ type: \"BLUR\" });\n },\n onFocus() {\n if (!interactive) return;\n send({ type: \"FOCUS\", index });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n const step = getEventStep(event) * prop(\"step\");\n const keyMap = {\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_INC\", step, src: \"ArrowUp\" });\n },\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_DEC\", step, src: \"ArrowDown\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_DEC\", step, src: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_INC\", step, src: \"ArrowRight\" });\n },\n PageUp() {\n send({ type: \"ARROW_INC\", step, src: \"PageUp\" });\n },\n PageDown() {\n send({ type: \"ARROW_DEC\", step, src: \"PageDown\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n }\n };\n const key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n exec(event);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n });\n },\n getHiddenInputProps(props2) {\n const { index = 0, name } = props2;\n return normalize2.input({\n name: name ?? (prop(\"name\") ? prop(\"name\") + (sliderValue.length > 1 ? \"[]\" : \"\") : void 0),\n form: prop(\"form\"),\n type: \"text\",\n hidden: true,\n defaultValue: sliderValue[index],\n id: getHiddenInputId(scope, index)\n });\n },\n getRangeProps() {\n return normalize2.element({\n id: getRangeId(scope),\n ...parts.range.attrs,\n dir: prop(\"dir\"),\n \"data-dragging\": dataAttr(dragging),\n \"data-focus\": dataAttr(focused),\n \"data-invalid\": dataAttr(invalid),\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": prop(\"orientation\"),\n style: getRangeStyle(service)\n });\n },\n getControlProps() {\n return normalize2.element({\n ...parts.control.attrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"data-dragging\": dataAttr(dragging),\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": prop(\"orientation\"),\n \"data-invalid\": dataAttr(invalid),\n \"data-focus\": dataAttr(focused),\n style: getControlStyle(),\n onPointerDown(event) {\n if (!interactive) return;\n if (!isLeftClick(event)) return;\n if (isModifierKey(event)) return;\n const point = getEventPoint(event);\n send({ type: \"POINTER_DOWN\", point });\n event.preventDefault();\n event.stopPropagation();\n }\n });\n },\n getMarkerGroupProps() {\n return normalize2.element({\n ...parts.markerGroup.attrs,\n role: \"presentation\",\n dir: prop(\"dir\"),\n \"aria-hidden\": true,\n \"data-orientation\": prop(\"orientation\"),\n style: getMarkerGroupStyle()\n });\n },\n getMarkerProps(props2) {\n const style = getMarkerStyle(service, props2.value);\n let markerState;\n if (props2.value < first(sliderValue)) {\n markerState = \"under-value\";\n } else if (props2.value > last(sliderValue)) {\n markerState = \"over-value\";\n } else {\n markerState = \"at-value\";\n }\n return normalize2.element({\n ...parts.marker.attrs,\n id: getMarkerId(scope, props2.value),\n role: \"presentation\",\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-value\": props2.value,\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": markerState,\n style\n });\n },\n getDraggingIndicatorProps(props2) {\n const { index = 0 } = props2;\n const isDragging = index === focusedIndex && dragging;\n return normalize2.element({\n ...parts.draggingIndicator.attrs,\n role: \"presentation\",\n dir: prop(\"dir\"),\n hidden: !isDragging,\n \"data-orientation\": prop(\"orientation\"),\n \"data-state\": isDragging ? \"open\" : \"closed\",\n style: getThumbStyle(service, index)\n });\n }\n };\n}\nvar isEqualSize = (a, b) => {\n return a?.width === b?.width && a?.height === b?.height;\n};\nvar normalize = (value, min, max, step, minStepsBetweenThumbs) => {\n const ranges = getValueRanges(value, min, max, minStepsBetweenThumbs * step);\n return ranges.map((range) => {\n const snapValue = snapValueToStep(range.value, range.min, range.max, step);\n return clampValue(snapValue, range.min, range.max);\n });\n};\nvar machine = createMachine({\n props({ props: props2 }) {\n const min = props2.min ?? 0;\n const max = props2.max ?? 100;\n const step = props2.step ?? 1;\n const defaultValue = props2.defaultValue ?? [min];\n const minStepsBetweenThumbs = props2.minStepsBetweenThumbs ?? 0;\n return {\n dir: \"ltr\",\n thumbAlignment: \"contain\",\n origin: \"start\",\n orientation: \"horizontal\",\n minStepsBetweenThumbs,\n ...props2,\n defaultValue: normalize(defaultValue, min, max, step, minStepsBetweenThumbs),\n value: props2.value ? normalize(props2.value, min, max, step, minStepsBetweenThumbs) : void 0,\n max,\n step,\n min\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable, getContext }) {\n return {\n thumbSize: bindable(() => ({\n defaultValue: prop(\"thumbSize\") || null\n })),\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n isEqual,\n hash(a) {\n return a.join(\",\");\n },\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedIndex: bindable(() => ({\n defaultValue: -1,\n onChange(value) {\n const ctx = getContext();\n prop(\"onFocusChange\")?.({ focusedIndex: value, value: ctx.get(\"value\") });\n }\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n }))\n };\n },\n computed: {\n isHorizontal: ({ prop }) => prop(\"orientation\") === \"horizontal\",\n isVertical: ({ prop }) => prop(\"orientation\") === \"vertical\",\n isRtl: ({ prop }) => prop(\"orientation\") === \"horizontal\" && prop(\"dir\") === \"rtl\",\n isDisabled: ({ context, prop }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\"),\n isInteractive: ({ prop, computed }) => !(prop(\"readOnly\") || computed(\"isDisabled\")),\n hasMeasuredThumbSize: ({ context }) => context.get(\"thumbSize\") != null,\n valuePercent({ context, prop }) {\n return context.get(\"value\").map((value) => 100 * getValuePercent(value, prop(\"min\"), prop(\"max\")));\n }\n },\n watch({ track, action, context }) {\n track([() => context.hash(\"value\")], () => {\n action([\"syncInputElements\", \"dispatchChangeEvent\"]);\n });\n },\n effects: [\"trackFormControlState\", \"trackThumbSize\"],\n on: {\n SET_VALUE: [\n {\n guard: \"hasIndex\",\n actions: [\"setValueAtIndex\"]\n },\n {\n actions: [\"setValue\"]\n }\n ],\n INCREMENT: {\n actions: [\"incrementThumbAtIndex\"]\n },\n DECREMENT: {\n actions: [\"decrementThumbAtIndex\"]\n }\n },\n states: {\n idle: {\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setClosestThumbIndex\", \"setPointerValue\", \"focusActiveThumb\"]\n },\n FOCUS: {\n target: \"focus\",\n actions: [\"setFocusedIndex\"]\n },\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setFocusedIndex\", \"focusActiveThumb\"]\n }\n }\n },\n focus: {\n entry: [\"focusActiveThumb\"],\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setClosestThumbIndex\", \"setPointerValue\", \"focusActiveThumb\"]\n },\n THUMB_POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setFocusedIndex\", \"focusActiveThumb\"]\n },\n ARROW_DEC: {\n actions: [\"decrementThumbAtIndex\", \"invokeOnChangeEnd\"]\n },\n ARROW_INC: {\n actions: [\"incrementThumbAtIndex\", \"invokeOnChangeEnd\"]\n },\n HOME: {\n actions: [\"setFocusedThumbToMin\", \"invokeOnChangeEnd\"]\n },\n END: {\n actions: [\"setFocusedThumbToMax\", \"invokeOnChangeEnd\"]\n },\n BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedIndex\"]\n }\n }\n },\n dragging: {\n entry: [\"focusActiveThumb\"],\n effects: [\"trackPointerMove\"],\n on: {\n POINTER_UP: {\n target: \"focus\",\n actions: [\"invokeOnChangeEnd\"]\n },\n POINTER_MOVE: {\n actions: [\"setPointerValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n hasIndex: ({ event }) => event.index != null\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getRootEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"value\", context.initial(\"value\"));\n }\n });\n },\n trackPointerMove({ scope, send }) {\n return trackPointerMove(scope.getDoc(), {\n onPointerMove(info) {\n send({ type: \"POINTER_MOVE\", point: info.point });\n },\n onPointerUp() {\n send({ type: \"POINTER_UP\" });\n }\n });\n },\n trackThumbSize({ context, scope, prop }) {\n if (prop(\"thumbAlignment\") !== \"contain\" || prop(\"thumbSize\")) return;\n return trackElementRect(getThumbEls(scope), {\n box: \"border-box\",\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const size = pick(rects[0], [\"width\", \"height\"]);\n if (isEqualSize(context.get(\"thumbSize\"), size)) return;\n context.set(\"thumbSize\", size);\n }\n });\n }\n },\n actions: {\n dispatchChangeEvent({ context, scope }) {\n dispatchChangeEvent(scope, context.get(\"value\"));\n },\n syncInputElements({ context, scope }) {\n context.get(\"value\").forEach((value, index) => {\n const inputEl = getHiddenInputEl(scope, index);\n setElementValue(inputEl, value.toString());\n });\n },\n invokeOnChangeEnd({ prop, context }) {\n prop(\"onValueChangeEnd\")?.({ value: context.get(\"value\") });\n },\n setClosestThumbIndex(params) {\n const { context, event } = params;\n const pointValue = getPointValue(params, event.point);\n if (pointValue == null) return;\n const focusedIndex = getClosestIndex(params, pointValue);\n context.set(\"focusedIndex\", focusedIndex);\n },\n setFocusedIndex({ context, event }) {\n context.set(\"focusedIndex\", event.index);\n },\n clearFocusedIndex({ context }) {\n context.set(\"focusedIndex\", -1);\n },\n setPointerValue(params) {\n queueMicrotask(() => {\n const { context, event } = params;\n const pointValue = getPointValue(params, event.point);\n if (pointValue == null) return;\n const focusedIndex = context.get(\"focusedIndex\");\n const value = constrainValue(params, pointValue, focusedIndex);\n context.set(\"value\", (prev) => setValueAtIndex(prev, focusedIndex, value));\n });\n },\n focusActiveThumb({ scope, context }) {\n raf(() => {\n const thumbEl = getThumbEl(scope, context.get(\"focusedIndex\"));\n thumbEl?.focus({ preventScroll: true });\n });\n },\n decrementThumbAtIndex(params) {\n const { context, event } = params;\n const value = decrement(params, event.index, event.step);\n context.set(\"value\", value);\n },\n incrementThumbAtIndex(params) {\n const { context, event } = params;\n const value = increment(params, event.index, event.step);\n context.set(\"value\", value);\n },\n setFocusedThumbToMin(params) {\n const { context } = params;\n const index = context.get(\"focusedIndex\");\n const { min } = getRangeAtIndex(params, index);\n context.set(\"value\", (prev) => setValueAtIndex(prev, index, min));\n },\n setFocusedThumbToMax(params) {\n const { context } = params;\n const index = context.get(\"focusedIndex\");\n const { max } = getRangeAtIndex(params, index);\n context.set(\"value\", (prev) => setValueAtIndex(prev, index, max));\n },\n setValueAtIndex(params) {\n const { context, event } = params;\n const value = constrainValue(params, event.value, event.index);\n context.set(\"value\", (prev) => setValueAtIndex(prev, event.index, value));\n },\n setValue(params) {\n const { context, event } = params;\n const value = normalizeValues(params, event.value);\n context.set(\"value\", value);\n }\n }\n }\n});\nvar props = createProps()([\n \"aria-label\",\n \"aria-labelledby\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getAriaValueText\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"max\",\n \"min\",\n \"minStepsBetweenThumbs\",\n \"name\",\n \"onFocusChange\",\n \"onValueChange\",\n \"onValueChangeEnd\",\n \"orientation\",\n \"origin\",\n \"readOnly\",\n \"step\",\n \"thumbAlignment\",\n \"thumbAlignment\",\n \"thumbSize\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar thumbProps = createProps()([\"index\", \"name\"]);\nvar splitThumbProps = createSplitProps(thumbProps);\n\nexport { anatomy, connect, machine, props, splitProps, splitThumbProps, thumbProps };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SwitchProvider, useSwitchContext] = createContext({\n name: \"SwitchContext\",\n hookName: \"useSwitchContext\",\n providerName: \"<SwitchProvider />\"\n});\n\nexport { SwitchProvider, useSwitchContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchControl = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchControl.displayName = \"SwitchControl\";\n\nexport { SwitchControl };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchHiddenInput = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getHiddenInputProps(), props);\n const field = useFieldContext();\n return /* @__PURE__ */ jsx(ark.input, { \"aria-describedby\": field?.ariaDescribedby, ...mergedProps, ref });\n});\nSwitchHiddenInput.displayName = \"SwitchHiddenInput\";\n\nexport { SwitchHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchLabel = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchLabel.displayName = \"SwitchLabel\";\n\nexport { SwitchLabel };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, setElementChecked, trackFormControl, trackPress, dataAttr, visuallyHiddenStyle, getEventTarget, isSafari } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/switch.anatomy.ts\nvar anatomy = createAnatomy(\"switch\").parts(\"root\", \"label\", \"control\", \"thumb\");\nvar parts = anatomy.build();\n\n// src/switch.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `switch:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `switch:${ctx.id}:label`;\nvar getThumbId = (ctx) => ctx.ids?.thumb ?? `switch:${ctx.id}:thumb`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `switch:${ctx.id}:control`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `switch:${ctx.id}:input`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\n\n// src/switch.connect.ts\nfunction connect(service, normalize) {\n const { context, send, prop, scope } = service;\n const disabled = prop(\"disabled\");\n const readOnly = prop(\"readOnly\");\n const checked = !!context.get(\"checked\");\n const focused = !disabled && context.get(\"focused\");\n const focusVisible = !disabled && context.get(\"focusVisible\");\n const dataAttrs = {\n \"data-active\": dataAttr(context.get(\"active\")),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focusVisible),\n \"data-readonly\": dataAttr(readOnly),\n \"data-hover\": dataAttr(context.get(\"hovered\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": checked ? \"checked\" : \"unchecked\",\n \"data-invalid\": dataAttr(prop(\"invalid\"))\n };\n return {\n checked,\n disabled,\n focused,\n setChecked(checked2) {\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: false });\n },\n toggleChecked() {\n send({ type: \"CHECKED.TOGGLE\", checked, isTrusted: false });\n },\n getRootProps() {\n return normalize.label({\n ...parts.root.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n htmlFor: getHiddenInputId(scope),\n onPointerMove() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: true } });\n },\n onPointerLeave() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: false } });\n },\n onClick(event) {\n if (disabled) return;\n const target = getEventTarget(event);\n if (target === getHiddenInputEl(scope)) {\n event.stopPropagation();\n }\n if (isSafari()) {\n getHiddenInputEl(scope)?.focus();\n }\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope)\n });\n },\n getThumbProps() {\n return normalize.element({\n ...parts.thumb.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getThumbId(scope),\n \"aria-hidden\": true\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"aria-hidden\": true\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: getHiddenInputId(scope),\n type: \"checkbox\",\n required: prop(\"required\"),\n defaultChecked: checked,\n disabled,\n \"aria-labelledby\": getLabelId(scope),\n \"aria-invalid\": prop(\"invalid\"),\n name: prop(\"name\"),\n form: prop(\"form\"),\n value: prop(\"value\"),\n style: visuallyHiddenStyle,\n onFocus() {\n const focusVisible2 = isFocusVisible();\n send({ type: \"CONTEXT.SET\", context: { focused: true, focusVisible: focusVisible2 } });\n },\n onBlur() {\n send({ type: \"CONTEXT.SET\", context: { focused: false, focusVisible: false } });\n },\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const checked2 = event.currentTarget.checked;\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: true });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n defaultChecked: false,\n label: \"switch\",\n value: \"on\",\n ...props2\n };\n },\n initialState() {\n return \"ready\";\n },\n context({ prop, bindable }) {\n return {\n checked: bindable(() => ({\n defaultValue: prop(\"defaultChecked\"),\n value: prop(\"checked\"),\n onChange(value) {\n prop(\"onCheckedChange\")?.({ checked: value });\n }\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n focusVisible: bindable(() => ({\n defaultValue: false\n })),\n active: bindable(() => ({\n defaultValue: false\n })),\n focused: bindable(() => ({\n defaultValue: false\n })),\n hovered: bindable(() => ({\n defaultValue: false\n }))\n };\n },\n computed: {\n isDisabled: ({ context, prop }) => prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n watch({ track, prop, context, action }) {\n track([() => prop(\"disabled\")], () => {\n action([\"removeFocusIfNeeded\"]);\n });\n track([() => context.get(\"checked\")], () => {\n action([\"syncInputElement\"]);\n });\n },\n effects: [\"trackFormControlState\", \"trackPressEvent\", \"trackFocusVisible\"],\n on: {\n \"CHECKED.TOGGLE\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"toggleChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"toggleChecked\"]\n }\n ],\n \"CHECKED.SET\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setChecked\"]\n }\n ],\n \"CONTEXT.SET\": {\n actions: [\"setContext\"]\n }\n },\n states: {\n ready: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackPressEvent({ computed, scope, context }) {\n if (computed(\"isDisabled\")) return;\n return trackPress({\n pointerNode: getRootEl(scope),\n keyboardNode: getHiddenInputEl(scope),\n isValidKey: (event) => event.key === \" \",\n onPress: () => context.set(\"active\", false),\n onPressStart: () => context.set(\"active\", true),\n onPressEnd: () => context.set(\"active\", false)\n });\n },\n trackFocusVisible({ computed, scope }) {\n if (computed(\"isDisabled\")) return;\n return trackFocusVisible({ root: scope.getRootNode() });\n },\n trackFormControlState({ context, send, scope }) {\n return trackFormControl(getHiddenInputEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n const checked = context.initial(\"checked\");\n send({ type: \"CHECKED.SET\", checked: !!checked, src: \"form-reset\" });\n }\n });\n }\n },\n actions: {\n setContext({ context, event }) {\n for (const key in event.context) {\n context.set(key, event.context[key]);\n }\n },\n syncInputElement({ context, scope }) {\n const inputEl = getHiddenInputEl(scope);\n if (!inputEl) return;\n setElementChecked(inputEl, !!context.get(\"checked\"));\n },\n removeFocusIfNeeded({ context, prop }) {\n if (prop(\"disabled\")) {\n context.set(\"focused\", false);\n }\n },\n setChecked({ context, event }) {\n context.set(\"checked\", event.checked);\n },\n toggleChecked({ context }) {\n context.set(\"checked\", !context.get(\"checked\"));\n },\n dispatchChangeEvent({ context, scope }) {\n const inputEl = getHiddenInputEl(scope);\n dispatchInputCheckedEvent(inputEl, { checked: context.get(\"checked\") });\n }\n }\n }\n});\nvar props = createProps()([\n \"checked\",\n \"defaultChecked\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"label\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as zagSwitch from '@zag-js/switch';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\n\nconst useSwitch = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const field = useFieldContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenInput: field?.ids.control\n },\n dir,\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n getRootNode,\n ...props\n };\n const service = useMachine(zagSwitch.machine, machineProps);\n return zagSwitch.connect(service, normalizeProps);\n};\n\nexport { useSwitch };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useSwitch } from './use-switch.js';\nimport { SwitchProvider } from './use-switch-context.js';\n\nconst SwitchRoot = forwardRef((props, ref) => {\n const [switchProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"label\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n ]);\n const switchContext = useSwitch(switchProps);\n const mergedProps = mergeProps(switchContext.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SwitchProvider, { value: switchContext, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nSwitchRoot.displayName = \"SwitchRoot\";\n\nexport { SwitchRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { SwitchProvider } from './use-switch-context.js';\n\nconst SwitchRootProvider = forwardRef((props, ref) => {\n const [{ value: api }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(api.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SwitchProvider, { value: api, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nSwitchRootProvider.displayName = \"SwitchRootProvider\";\n\nexport { SwitchRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchThumb = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getThumbProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchThumb.displayName = \"SwitchThumb\";\n\nexport { SwitchThumb };\n","'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n\nexport { useDebounce };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n hookName: \"useTabsContext\",\n providerName: \"<TabsProvider />\"\n});\n\nexport { TabsProvider, useTabsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { useDebounce } from '../../utils/use-debounce.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabContent = forwardRef((props, ref) => {\n const [contentProps, localProps] = createSplitProps()(props, [\"value\"]);\n const tabs = useTabsContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({\n ...renderStrategyProps,\n present: useDebounce(tabs.value === props.value, 0),\n immediate: true\n });\n const mergedProps = mergeProps(tabs.getContentProps(contentProps), presence.getPresenceProps(), localProps);\n return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });\n});\nTabContent.displayName = \"TabContent\";\n\nexport { TabContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabIndicator = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabIndicator.displayName = \"TabIndicator\";\n\nexport { TabIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabList = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getListProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabList.displayName = \"TabList\";\n\nexport { TabList };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabTrigger = forwardRef((props, ref) => {\n const [tabProps, localProps] = createSplitProps()(props, [\"disabled\", \"value\"]);\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getTriggerProps(tabProps), localProps);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTabTrigger.displayName = \"TabTrigger\";\n\nexport { TabTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { isAnchorElement, trackElementRect, nextTick, raf, getFocusables, prevById, nextById, clickIfLink, itemById, queryAll, dataAttr, isSafari, isSelfTarget, isComposingEvent, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/tabs.anatomy.ts\nvar anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`;\nvar getListId = (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`;\nvar getContentId = (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`;\nvar getListEl = (ctx) => ctx.getById(getListId(ctx));\nvar getContentEl = (ctx, id) => ctx.getById(getContentId(ctx, id));\nvar getTriggerEl = (ctx, id) => ctx.getById(getTriggerId(ctx, id));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getListId(ctx));\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getListEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getElements(ctx));\nvar getLastTriggerEl = (ctx) => last(getElements(ctx));\nvar getNextTriggerEl = (ctx, opts) => nextById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getPrevTriggerEl = (ctx, opts) => prevById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getOffsetRect = (el) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n };\n};\nvar getRectById = (ctx, id) => {\n const tab = itemById(getElements(ctx), getTriggerId(ctx, id));\n return resolveRect(getOffsetRect(tab));\n};\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/tabs.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const translations = prop(\"translations\");\n const focused = state.matches(\"focused\");\n const isVertical = prop(\"orientation\") === \"vertical\";\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const composite = prop(\"composite\");\n function getTriggerState(props2) {\n return {\n selected: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n disabled: !!props2.disabled\n };\n }\n return {\n value: context.get(\"value\"),\n focusedValue: context.get(\"focusedValue\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n setIndicatorRect(value) {\n const id = getTriggerId(scope, value);\n send({ type: \"SET_INDICATOR_RECT\", id });\n },\n syncTabIndex() {\n send({ type: \"SYNC_TAB_INDEX\" });\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" });\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" });\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" });\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" });\n },\n focus() {\n const value = context.get(\"value\");\n if (!value) return;\n getTriggerEl(scope, value)?.focus();\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n dir: prop(\"dir\")\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: getListId(scope),\n role: \"tablist\",\n dir: prop(\"dir\"),\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": prop(\"orientation\"),\n \"data-orientation\": prop(\"orientation\"),\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" });\n },\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n },\n Enter() {\n send({ type: \"ENTER\" });\n }\n };\n let key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n }\n }\n });\n },\n getTriggerState,\n getTriggerProps(props2) {\n const { value, disabled } = props2;\n const triggerState = getTriggerState(props2);\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? getContentId(scope, value) : void 0,\n \"data-ownedby\": getListId(scope),\n \"data-ssr\": dataAttr(context.get(\"ssr\")),\n id: getTriggerId(scope, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" });\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TAB_CLICK\", value });\n }\n });\n },\n getContentProps(props2) {\n const { value } = props2;\n const selected = context.get(\"value\") === value;\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": getTriggerId(scope, value),\n role: \"tabpanel\",\n \"data-ownedby\": getListId(scope),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": prop(\"orientation\"),\n hidden: !selected\n });\n },\n getIndicatorProps() {\n const indicatorRect = context.get(\"indicatorRect\");\n const indicatorTransition = context.get(\"indicatorTransition\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicatorRect.left,\n \"--top\": indicatorRect.top,\n \"--width\": indicatorRect.width,\n \"--height\": indicatorRect.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicatorTransition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n loopFocus: true,\n composite: true,\n navigate(details) {\n clickIfLink(details.node);\n },\n defaultValue: null,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedValue: bindable(() => ({\n defaultValue: prop(\"value\") || prop(\"defaultValue\"),\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ focusedValue: value });\n }\n })),\n ssr: bindable(() => ({ defaultValue: true })),\n indicatorTransition: bindable(() => ({ defaultValue: false })),\n indicatorRect: bindable(() => ({\n defaultValue: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" }\n }))\n };\n },\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\")], () => {\n action([\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"navigateIfNeeded\"]);\n });\n track([() => prop(\"dir\"), () => prop(\"orientation\")], () => {\n action([\"syncIndicatorRect\"]);\n });\n },\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n },\n SET_INDICATOR_RECT: {\n actions: [\"setIndicatorRect\"]\n },\n SYNC_TAB_INDEX: {\n actions: [\"syncTabIndex\"]\n }\n },\n entry: [\"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n }\n }\n },\n focused: {\n on: {\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusPrevTab\"]\n }\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusNextTab\"]\n }\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusFirstTab\"]\n }\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusLastTab\"]\n }\n ],\n ENTER: {\n guard: not(\"selectOnFocus\"),\n actions: [\"selectFocusedTab\"]\n },\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"]\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n selectOnFocus: ({ prop }) => prop(\"activationMode\") === \"automatic\"\n },\n actions: {\n selectFocusedTab({ context, prop }) {\n raf(() => {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const nullable = prop(\"deselectable\") && context.get(\"value\") === focusedValue;\n const value = nullable ? null : focusedValue;\n context.set(\"value\", value);\n });\n },\n setFocusedValue({ context, event, flush }) {\n if (event.value == null) return;\n flush(() => {\n context.set(\"focusedValue\", event.value);\n });\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event, prop }) {\n const nullable = prop(\"deselectable\") && context.get(\"value\") === context.get(\"focusedValue\");\n context.set(\"value\", nullable ? null : event.value);\n },\n clearValue({ context }) {\n context.set(\"value\", null);\n },\n focusFirstTab({ scope }) {\n raf(() => {\n getFirstTriggerEl(scope)?.focus();\n });\n },\n focusLastTab({ scope }) {\n raf(() => {\n getLastTriggerEl(scope)?.focus();\n });\n },\n focusNextTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n focusPrevTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n syncTabIndex({ context, scope }) {\n raf(() => {\n const value = context.get(\"value\");\n if (!value) return;\n const contentEl = getContentEl(scope, value);\n if (!contentEl) return;\n const focusables = getFocusables(contentEl);\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\");\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\");\n }\n });\n },\n cleanupObserver({ refs }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n },\n allowIndicatorTransition({ context }) {\n context.set(\"indicatorTransition\", true);\n },\n setIndicatorRect({ context, event, scope }) {\n const value = event.id ?? context.get(\"value\");\n const indicatorEl = getIndicatorEl(scope);\n if (!indicatorEl) return;\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n if (!triggerEl) return;\n context.set(\"indicatorRect\", getRectById(scope, value));\n nextTick(() => {\n context.set(\"indicatorTransition\", false);\n });\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, refs, scope }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n const value = context.get(\"value\");\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n const indicatorEl = getIndicatorEl(scope);\n if (!triggerEl || !indicatorEl) return;\n const indicatorCleanup = trackElementRect([triggerEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const [rect] = rects;\n context.set(\"indicatorRect\", resolveRect(rect));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n navigateIfNeeded({ context, prop, scope }) {\n const value = context.get(\"value\");\n if (!value) return;\n const triggerEl = getTriggerEl(scope, value);\n if (!isAnchorElement(triggerEl)) return;\n prop(\"navigate\")?.({ value, node: triggerEl });\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"composite\",\n \"deselectable\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar triggerProps = createProps()([\"disabled\", \"value\"]);\nvar splitTriggerProps = createSplitProps(triggerProps);\nvar contentProps = createProps()([\"value\"]);\nvar splitContentProps = createSplitProps(contentProps);\n\nexport { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tabs from '@zag-js/tabs';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTabs = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(tabs.machine, machineProps);\n return tabs.connect(service, normalizeProps);\n};\n\nexport { useTabs };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { useTabs } from './use-tabs.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRoot = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [useTabsProps, localprops] = createSplitProps()(tabsProps, [\n \"activationMode\",\n \"composite\",\n \"defaultValue\",\n \"deselectable\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\"\n ]);\n const tabs = useTabs(useTabsProps);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRoot.displayName = \"TabsRoot\";\n\nexport { TabsRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRootProvider = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [{ value: tabs }, localprops] = createSplitProps()(tabsProps, [\"value\"]);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRootProvider.displayName = \"TabsRootProvider\";\n\nexport { TabsRootProvider };\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","\"use client\";import*as t from\"react\";var M=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=[\"light\",\"dark\"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y===\"class\",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n===\"system\"?c():n;p(y)}catch(n){}};var b=[\"light\",\"dark\"],I=\"(prefers-color-scheme: dark)\",O=typeof window==\"undefined\",x=t.createContext(void 0),U={setTheme:e=>{},themes:[]},z=()=>{var e;return(e=t.useContext(x))!=null?e:U},J=e=>t.useContext(x)?t.createElement(t.Fragment,null,e.children):t.createElement(V,{...e}),N=[\"light\",\"dark\"],V=({forcedTheme:e,disableTransitionOnChange:i=!1,enableSystem:s=!0,enableColorScheme:u=!0,storageKey:m=\"theme\",themes:a=N,defaultTheme:l=s?\"system\":\"light\",attribute:h=\"data-theme\",value:d,children:w,nonce:p,scriptProps:R})=>{let[c,n]=t.useState(()=>H(m,l)),[T,y]=t.useState(()=>c===\"system\"?E():c),k=d?Object.values(d):a,S=t.useCallback(o=>{let r=o;if(!r)return;o===\"system\"&&s&&(r=E());let v=d?d[r]:r,C=i?W(p):null,P=document.documentElement,L=g=>{g===\"class\"?(P.classList.remove(...k),v&&P.classList.add(v)):g.startsWith(\"data-\")&&(v?P.setAttribute(g,v):P.removeAttribute(g))};if(Array.isArray(h)?h.forEach(L):L(h),u){let g=b.includes(l)?l:null,D=b.includes(r)?r:g;P.style.colorScheme=D}C==null||C()},[p]),f=t.useCallback(o=>{let r=typeof o==\"function\"?o(c):o;n(r);try{localStorage.setItem(m,r)}catch(v){}},[c]),A=t.useCallback(o=>{let r=E(o);y(r),c===\"system\"&&s&&!e&&S(\"system\")},[c,e]);t.useEffect(()=>{let o=window.matchMedia(I);return o.addListener(A),A(o),()=>o.removeListener(A)},[A]),t.useEffect(()=>{let o=r=>{r.key===m&&(r.newValue?n(r.newValue):f(l))};return window.addEventListener(\"storage\",o),()=>window.removeEventListener(\"storage\",o)},[f]),t.useEffect(()=>{S(e!=null?e:c)},[e,c]);let Q=t.useMemo(()=>({theme:c,setTheme:f,forcedTheme:e,resolvedTheme:c===\"system\"?T:c,themes:s?[...a,\"system\"]:a,systemTheme:s?T:void 0}),[c,f,e,T,s,a]);return t.createElement(x.Provider,{value:Q},t.createElement(_,{forcedTheme:e,storageKey:m,attribute:h,enableSystem:s,enableColorScheme:u,defaultTheme:l,value:d,themes:a,nonce:p,scriptProps:R}),w)},_=t.memo(({forcedTheme:e,storageKey:i,attribute:s,enableSystem:u,enableColorScheme:m,defaultTheme:a,value:l,themes:h,nonce:d,scriptProps:w})=>{let p=JSON.stringify([s,i,a,e,h,l,u,m]).slice(1,-1);return t.createElement(\"script\",{...w,suppressHydrationWarning:!0,nonce:typeof window==\"undefined\"?d:\"\",dangerouslySetInnerHTML:{__html:`(${M.toString()})(${p})`}})}),H=(e,i)=>{if(O)return;let s;try{s=localStorage.getItem(e)||void 0}catch(u){}return s||i},W=e=>{let i=document.createElement(\"style\");return e&&i.setAttribute(\"nonce\",e),i.appendChild(document.createTextNode(\"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")),document.head.appendChild(i),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(i)},1)}},E=e=>(e||(e=window.matchMedia(I)),e.matches?\"dark\":\"light\");export{J as ThemeProvider,z as useTheme};\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","from","assign","hash","length","charat","trim","match","pattern","replace","replacement","indexof","search","index","substr","begin","end","strlen","sizeof","append","array","combine","callback","line","column","position","character","characters","root","parent","copy","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","i","j","x","y","z","serialize","output","stringify","element","middleware","collection","rulesheet","b","c","d","e","f","g","h","l","m","n","p","q","r","t","v","w","a","u","A","reactIs_production_min","hasSymbol","REACT_PROVIDER_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","hoistNonReactStatics_cjs","wrap","idx","_","pipe","fns","arg","acc","fn","noop","isObject","dataAttr","guard","ariaAttr","ELEMENT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","isHTMLElement","el","isDocument","isWindow","getNodeName","isRootElement","isNode","isShadowRoot","isInputElement","isAnchorElement","isElementVisible","TEXTAREA_SELECT_REGEX","isEditableElement","contains","child","rootNode","getDocument","getDocumentElement","getWindow","getActiveElement","activeElement","getParentNode","result","styleCache","getComputedStyle","isDom","getPlatform","getUserAgent","ua2","brand","version","pt","ua","vn","isTouchDevice","isIPhone","isIPad","isMac","isIos","isApple","isSafari","isFirefox","isAndroid","getComposedPath","event","getEventTarget","isSelfTarget","isOpeningInNewTab","isAppleDevice","localName","isDownloadingEvent","isComposingEvent","getNativeEvent","isPrintableKey","isVirtualClick","isContextMenuEvent","isModifierKey","isTouchEvent","keyMap","rtlKeyMap","getEventKey","options","dir","orientation","getEventPoint","point","addDomEvent","target","eventName","handler","getDescriptor","proto","setElementChecked","checked","dispatchInputCheckedEvent","bubbles","win","getClosestForm","isFormElement","trackFormReset","form","onReset","trackFieldsetDisabled","fieldset","obs","trackFormControl","onFieldsetDisabledChange","onFormReset","cleanups","cleanup","isFrame","hasTabIndex","hasNegativeTabIndex","focusableSelector","getFocusables","container","includeContainer","elements","isFocusable","focusableElements","frameBody","getTabbables","tabbableElements","isTabbable","allFrameTabbable","getTabbableEdges","first","last","getNextTabbable","current","tabbables","doc","currentElement","getTabIndex","getInitialFocus","getInitialEl","filter","enabled","isValidTabEvent","firstTabbable","lastTabbable","nextTick","set","raf2","fn2","id","raf","queueBeforeEvent","cb","cancelTimer","exec","observeAttributesImpl","attributes","changes","change","observeAttributes","nodeOrFn","defer","func","observeChildrenImpl","observeChildren","clickIfLink","click","getNearestOverflowAncestor","parentNode","isOverflowElement","getOverflowAncestors","list","scrollableAncestor","isBody","OVERFLOW_RE","overflow","overflowX","overflowY","display","isScrollable","scrollIntoView","rootEl","scrollOptions","trackPress","pointerNode","keyboardNode","onPress","onPressStart","onPressEnd","isValidKey","removeStartListeners","removeEndListeners","removeAccessibleListeners","getInfo","startPress","cancelPress","removePointerListener","startEvent","removePointerUpListener","endEvent","removePointerCancelListener","removeFocusListener","startAccessiblePress","handleKeydown","keydownEvent","handleKeyup","keyupEvent","evt2","info","evt","handleBlur","removeKeydownListener","removeBlurListener","proxyTabFocusImpl","triggerElement","onFocus","onFocusEnter","body","onKeyDown","elementToFocus","nextTabbableAfterTrigger","noTabbableElements","proxyTabFocus","restOptions","trigger","queryAll","selector","defaultItemToId","itemById","itemToId","item","indexOfId","nextById","loop","prevById","trackElementRect","onEntry","measure","box","elems","entries","rects","sanitize","str","code","getValueText","valueText","query2","getByText","text","currentId","items","setStyle","style","setStyleProperty","prop","getByTypeaheadImpl","baseItems","state2","activeId","timeout","update","getByTypeahead","isValidTypeaheadEvent","visuallyHiddenStyle","fps","waitForElement","timerId","el2","waitForElements","queries","clean","formatProdErrorMessage","url","Internals","createPortal$1","containerInfo","implementation","getCrossOriginStringAs","as","input","reactDom_production","previousTransition","previousUpdatePriority","href","crossOrigin","integrity","fetchPriority","action","initialState","permalink","getValueDescriptorExpectingObjectForWarning","thing","getValueDescriptorExpectingEnumForWarning","resolveDispatcher","reactDom_development","encountered","checkDCE","err","reactDomModule","getErrorMessage","hook","provider","createContext","strict","hookName","providerName","errorMessage","defaultValue","Context","createContext$1","useContext$1","context","useContext","error","EnvironmentContextProvider","useEnvironmentContext","disabled","setContainer","useState","isServer","useSyncExternalStore","subscribe","getRootNode","useEffect","jsx","mountNode","getPortalNode","Children","createPortal","toArray","has","add","remove","addOrRemove","nextIndex","opts","step","next2","len","last2","prevIndex","isArrayLike","isArrayEqual","isEqual","isArray","isObjectLike","isString","isFunction","isNull","hasProp","obj","fnToString","runIfFn","identity","callAll","compact","isPlainObject2","filtered","warn","ensure","clsx","args","CSS_REGEX","res","css","mergeProps","createGuards","guards","params","MachineStatus","MachineStatus2","INIT_STATE","createScope","getDoc","getWin","getActiveElementFn","elem","createNormalizer","_target","createProps","useSafeLayoutEffect","useLayoutEffect","useBindable","initial","eq","initialValue","setValue","controlled","valueRef","useRef","prevValue","setFn","value2","get","flushSync","nextValue","prevValue2","useRefs","refs","ref","useTrack","deps","effect","render","called","useMachine","machine","userProps","scope","useMemo","ids","debug","useProp","flush","ctx","computed","contextRef","useLiveRef","effects","transitionRef","previousEventRef","eventRef","getEvent","getState","state","values","tag","getParams","send","choose","strs","s","transitions","nextState","prevState","cleanup2","hydratedStateRef","statusRef","started","currentState","getCurrentState","transition","changed","normalizeProps","composeRefs","cleanUps","cleanUp","getRef","mayWarn","withAsChild","Component","Comp","memo","forwardRef","asChild","restProps","createElement","onlyChild","isValidElement","childRef","cloneElement","jsxFactory","cache","_thisArg","argArray","asElement","ark","TooltipProvider","useTooltipContext","TooltipArrow","tooltip","mergedProps","TooltipArrowTip","PresenceProvider","usePresenceContext","TooltipContent","presence","TooltipPositioner","createSplitProps","previousValue","currentValue","splitPresenceProps","connect","service","_normalize","present","props2","bindable","track","presentProp","animationName","getAnimationName","onStart","onEnd","cleanupStyles","styles","useEvent","sync","callbackRef","useLatestRef","useCallback","usePresence","lazyMount","unmountOnExit","skipAnimationOnMount","rest","wasEverPresent","machineProps","presence.machine","api","presence.connect","unmounted","getPresenceProps","createAnatomy","parts","isEmpty","newName","part","toKebabCase","nonTextInputTypes","isKeyboardFocusEvent","isTextInput","modality","FOCUS_VISIBLE_INPUT_KEYS","currentModality","changeHandlers","listenerMap","hasEventBeforeFocus","hasBlurredWindowRecently","triggerChangeHandlers","handleKeyboardEvent","handlePointerEvent","handleClickEvent","handleFocusEvent","handleWindowBlur","setupGlobalFocusEvents","focus","tearDownWindowFocusTracking","loadListener","isFocusVisible","trackFocusVisible","autoFocus","onChange","sides","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","_ref","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","data","reset","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","offsets","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","_node$ownerDocument","isTableElement","isTopLayer","isContainingBlock","elementOrCss","webkit","isWebKit","getContainingBlock","currentNode","isLastTraversableNode","getNodeScroll","traverseIframes","_node$ownerDocument2","frameElement","getFrameElement","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","arrow$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","createDOMRect","getDOMRect","anchorRect","getAnchorElement","anchorElement","getAnchorRect","anchor","toVar","cssVars","getTransformOrigin","arrow2","transformOriginMiddleware","transformOrigin","rectMiddleware","shiftArrowMiddleware","arrowEl","getPlacementDetails","align","getPlacementSide","defaultOptions","roundByDpr","dpr","getBoundaryMiddleware","getArrowMiddleware","arrowElement","getOffsetMiddleware","arrowOffset","gutter","hasAlign","shift2","getFlipMiddleware","getShiftMiddleware","getSizeMiddleware","referenceWidth","hideWhenDetachedMiddleware","getAutoUpdateOptions","getPlacementImpl","referenceOrVirtual","onComplete","onPositioned","updatePosition","pos","contentEl","autoUpdateOptions","cancelAutoUpdate","getPlacement","referenceOrFn","floatingOrFn","ARROW_FLOATING_STYLE","getPlacementStyles","sameWidth","fitViewport","GET_ORIGINAL_SYMBOL","getProto","objectsToTrack","isObjectToTrack","getUntracked","markToTrack","mark","glob","globalRef","refSet","isReactElement","isVueElement","isDOMElement","canProxy","isDev","proxyStateMap","buildProxyFunction","objectIs","newProxy","snapCache","createSnapshot","snap","snapshot","proxyCache","versionHolder","proxyFunction2","initialObject","found","listeners","notifyUpdate","op","nextVersion","listener","checkVersion","ensureVersion","nextCheckVersion","propProxyStates","propProxyState","propVersion","createPropListener","newOp","addPropListener","removePropListener","entry","addListener","prevRemove","baseObject","proxyObject","deleted","receiver","hasPrevValue","proxy","childProxyState","proxyState","desc","proxyFunction","notifyInSync","promise","ops","isListenerActive","removeListener","anatomy","getTriggerId","getContentId","getArrowId","getPositionerId","getTriggerEl","getPositionerEl","store","normalize","_event","hasAriaLabel","open","triggerId","contentId","popperStyles","nextOpen","and","not","getPositionerEl2","triggerEl","overflowParent","LocaleContextProvider","useLocaleContext","useTooltip","useId","tooltip.machine","tooltip.connect","TooltipRoot","presenceProps","localProps","TooltipRootProvider","TooltipTrigger","AvatarProvider","useAvatarContext","AvatarFallback","avatar","AvatarImage","getRootId","getImageId","getFallbackId","getRootEl","getImageEl","loaded","src","imageEl","hasLoaded","records","image","useAvatar","avatar.machine","avatar.connect","AvatarRoot","useAvatarProps","AvatarRootProvider","userGeneratedStr","userGenerated","cssPropertiesStr","allCssProperties","properties","cssPropertySelectorRegex","isCssProperty","fastSafeStringify","deterministicStringify","LIMIT_REPLACE_NODE","CIRCULAR_REPLACE_NODE","arr","replacerStack","replacer","spacer","decirc","replaceGetterValues","setReplace","val","propertyDescriptor","edgeIndex","stack","depth","compareFunction","tmp","deterministicDecirc","MenuProvider","useMenuContext","MenuArrow","menu","MenuArrowTip","MenuItemProvider","useMenuItemContext","MenuOptionItemPropsProvider","useMenuOptionItemPropsContext","MenuCheckboxItem","partialOptionItemProps","optionItemProps","optionItemState","MenuContent","MenuContextTrigger","MenuIndicator","MenuItem","itemProps","itemState","MenuItemGroupProvider","useMenuItemGroupContext","MenuItemGroup","optionalItemGroupProps","itemGroupProps","MenuItemGroupLabel","itemGroup","MenuItemIndicator","MenuItemText","MenuPositioner","MenuRadioItem","partialItemProps","MenuRadioItemGroup","useEffectOnce","savedCallback","effectGuard","getWindowFrames","frames","frame","getParentWindow","POINTER_OUTSIDE_EVENT","FOCUS_OUTSIDE_EVENT","isComposedPathFocusable","composedPath","isPointerEvent","isEventPointWithin","isPointInRect","isEventWithinScrollbar","isScrollableY","onScrollbarY","isScrollableX","onScrollbarX","trackInteractOutsideImpl","exclude","onFocusOutside","onPointerDownOutside","onInteractOutside","parentWin","isEventOutside","triggerAncestor","nodeAncestor","pointerdownCleanups","isInShadowRoot","onPointerDown","clickEvent","handler2","fireCustomEvent","timer","onFocusin","trackInteractOutside","init","trackEscapeKeydown","handleKeyDown","layerStack","layer","highestBlockingIndex","branch","num","originalBodyPointerEvents","assignPointerEventToLayers","clearPointerEvent","disablePointerEventsOutside","persistentElements","persistedCleanup","trackDismissableElementImpl","warnOnMissingNode","onDismiss","pointerBlocking","excludeContainers","onEscapeKeyDown","containers","_containers","node2","trackDismissableElement","createPoint","createRect","midX","midY","getRectCorners","right","bottom","getElementPolygon","rectValue","base","isPointInPolygon","polygon","xi","yi","xj","yj","getContextTriggerId","getGroupId","getItemId","getItemValue","getGroupLabelId","getContentEl","getItemEl","getContextTriggerEl","getElements","getFirstEl","getLastEl","isMatch","getNextEl","getPrevEl","getElemByKey","isTargetDisabled","isTriggerItem","itemSelectEvent","dispatchSelectionEvent","isSubmenu","isTypingAhead","composite","currentPlacement","anchorPoint","highlightedValue","getItemState","getOptionItemProps","getOptionItemState","getItemProps","closeOnSelect","childApi","triggerProps","event2","onCheckedChange","option","or","details","resolveItemId","positioning","getContentEl2","restoreFocus","closeRootMenu","isWithinPolygon","itemEl","contentEl2","bleed","first2","prev2","hasChildren","childMenu","childTriggerId","useMenu","menu.machine","menu.connect","MenuMachineProvider","useMenuMachineContext","MenuTriggerItemProvider","useMenuTriggerItemContext","MenuRoot","menuProps","useMenuProps","parentApi","parentMachine","triggerItemContext","MenuRootProvider","MenuSeparator","MenuTrigger","MenuTriggerItem","getTriggerItemProps","CheckboxProvider","useCheckboxContext","CheckboxControl","checkbox","getLabelId","getControlId","getHiddenInputId","getHiddenInputEl","readOnly","invalid","focused","focusVisible","indeterminate","dataAttrs","checked2","focusVisible2","isIndeterminate","isChecked","inputEl","checkboxAnatomy","useControllableState","uncontrolledValue","setUncontrolledValue","useCheckboxGroup","controlledValue","onValueChange","interactive","onChangeProp","toggleValue","removeValue","addValue","CheckboxGroupContextProvider","useCheckboxGroupContext","CheckboxGroup","checkboxGroupProps","checkboxGroup","FieldProvider","useFieldContext","CheckboxHiddenInput","field","CheckboxLabel","useCheckbox","ownProps","checkbox.machine","checkbox.connect","CheckboxRoot","useCheckboxProps","CheckboxRootProvider","FieldErrorText","FieldHelperText","FieldInput","FieldLabel","FieldsetProvider","useFieldsetContext","fieldAnatomy","useField","required","hasErrorText","setHasErrorText","hasHelperText","setHasHelperText","rootRef","rootId","errorTextId","helperTextId","labelId","checkTextElements","observer","labelIds","ids2","getRootProps","getLabelProps","getControlProps","getInputProps","getTextareaProps","getSelectProps","getHelperTextProps","getErrorTextProps","getRequiredIndicatorProps","FieldRoot","useFieldProps","autoresizeTextarea","resize","newHeight","elementPrototype","attrObserver","FieldTextarea","autoresize","textareaProps","textareaRef","RenderStrategyPropsProvider","useRenderStrategyPropsContext","splitRenderStrategyProps","colorPickerAnatomy","__defProp","__defNormalProp","__publicField","fallback","ListCollection","_ListCollection","other","valueA","valueB","indexA","indexB","separator","queryString","query","item2","insert","toIndex","itemsOrValues","itemOrValue","fromIndex","move","to","label","itemString","indices","itemsToMove","createListCollection","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","isIgnoredNode","walkTreeOutside","originalTarget","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","alreadyHidden","counterValue","markerValue","hideOthers","ariaHidden","targetsOrFn","DialogProvider","useDialogContext","DialogBackdrop","dialog","renderStrategyProps","DialogCloseTrigger","DialogContent","DialogDescription","DialogPositioner","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","sharedTrapStack","FocusTrap","targetContained","nextNode","navAcrossContainers","mruContainerIdx","tabbableNodes","mruTabIdx","valueOrHandler","isBackward","destinationNode","isTabEvent","isEscapeEvent","mutations","mutation","firstTabbableGroup","isSelectableInput","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","delay","returnFocusNode","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","containerElements","previousActiveElement","configOverrideOptions","optionName","configOptionName","hasFallback","optionValue","containerIndex","containerGroup","startOfGroupIndex","firstTabbableNode","destinationGroupIndex","destinationGroup","lastOfGroupIndex","lastTabbableNode","focusableNodes","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","nextTabbableNode","forward","nodeIdx","group","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","trapFocus","LOCK_CLASSNAME","getPaddingProperty","documentLeft","preventBodyScroll","_document","scrollbarWidth","setScrollbarWidthProperty","paddingProperty","setBodyStyle","setBodyStyleIOS","scrollX","scrollY","offsetLeft","offsetTop","restoreStyle","getBackdropId","getTitleId","getDescriptionId","getCloseTriggerId","getBackdropEl","getTitleEl","getDescriptionEl","getCloseTriggerEl","ariaLabel","rendered","alertDialog","useDialog","dialog.machine","dialog.connect","DialogRoot","DialogRootProvider","DialogTitle","DialogTrigger","fieldsetAnatomy","HoverCardProvider","useHoverCardContext","HoverCardArrow","hoverCard","HoverCardArrowTip","HoverCardContent","HoverCardContext","HoverCardPositioner","useHoverCard","hoverCard.machine","hoverCard.connect","HoverCardRoot","HoverCardRootProvider","HoverCardTrigger","PopoverProvider","usePopoverContext","PopoverAnchor","popover","PopoverArrow","PopoverArrowTip","PopoverCloseTrigger","PopoverContent","PopoverContext","PopoverDescription","PopoverIndicator","PopoverPositioner","getAnchorId","getAnchorEl","portalled","anchorEl","usePopover","popover.machine","popover.connect","PopoverRoot","PopoverRootProvider","PopoverTitle","PopoverTrigger","RadioGroupProvider","useRadioGroupContext","RadioGroupItemProvider","useRadioGroupItemContext","RadioGroupItemPropsProvider","useRadioGroupItemPropsContext","RadioGroupItem","radioGroup","RadioGroupItemContext","RadioGroupItemControl","RadioGroupItemHiddenInput","RadioGroupItemText","RadioGroupLabel","getItemHiddenInputId","getItemControlId","getItemLabelId","getIndicatorId","getItemHiddenInputEl","getIndicatorEl","getFirstEnabledInputEl","getFirstEnabledAndCheckedInputEl","getInputEls","getRadioEl","getOffsetRect","resolveRect","groupDisabled","getItemDataAttrs","radioEl","indicatorCleanup","useRadioGroup","radio.machine","radio.connect","RadioGroupRoot","useRadioGroupProps","RadioGroupRootProvider","segmentGroupAnatomy","SelectProvider","useSelectContext","SelectClearTrigger","select","SelectContent","SelectControl","SelectHiddenSelect","isValueEmpty","jsxs","SelectIndicator","SelectItemProvider","useSelectItemContext","SelectItemPropsProvider","useSelectItemPropsContext","SelectItem","SelectItemGroupPropsProvider","useSelectItemGroupPropsContext","SelectItemGroup","_itemGroupProps","SelectItemGroupLabel","SelectItemIndicator","SelectItemText","SelectLabel","SelectPositioner","getClearTriggerId","getHiddenSelectId","getItemGroupId","getItemGroupLabelId","getHiddenSelectEl","getClearTriggerEl","collection2","highlightedItem","selectedItems","ariaActiveDescendant","_disabled","htmlFor","immediate","optionEl","scrollToIndexFn","highlightedIndex","positionerEl","firstItem","selectEl","valueAsString","prevSelectedItems","changeEvent","useSelect","select.machine","select.connect","SelectImpl","selectProps","useSelectProps","SelectRoot","SelectRootProvider","SelectTrigger","SelectValueText","placeholder","localprops","SwitchProvider","useSwitchContext","SwitchControl","switchContext","SwitchHiddenInput","SwitchLabel","getThumbId","useSwitch","zagSwitch.machine","zagSwitch.connect","SwitchRoot","switchProps","SwitchRootProvider","SwitchThumb","useDebounce","debouncedValue","setDebouncedValue","TabsProvider","useTabsContext","TabContent","contentProps","tabs","TabIndicator","TabList","TabTrigger","tabProps","getListId","getListEl","getFirstTriggerEl","getLastTriggerEl","getNextTriggerEl","getPrevTriggerEl","getRectById","tab","translations","isHorizontal","getTriggerState","fromValue","triggerState","selected","indicatorRect","indicatorTransition","focusedValue","nullable","indicatorEl","useTabs","tabs.machine","tabs.connect","TabsRoot","tabsProps","useTabsProps","TabsRootProvider","nativeCeil","nativeMax","baseRange","fromRight","freeGlobal","freeSelf","Symbol","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","objectToString","nullTag","undefinedTag","baseGetTag","asyncTag","funcTag","genTag","proxyTag","MAX_SAFE_INTEGER","isLength","reIsUint","isIndex","isIterateeCall","reWhitespace","trimmedEndIndex","string","reTrimStart","baseTrim","symbolTag","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","isBinary","INFINITY","MAX_INTEGER","toFinite","sign","createRange","range","M","S","R","I","O","U","J","V","N","H","T","E","o","C","W","P","L","Q"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252]}
|