@nation-a/ui 0.16.28 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/ark-ui-D--_sKY0.js +7066 -0
  2. package/dist/ark-ui-D--_sKY0.js.map +1 -0
  3. package/dist/ark-ui-e4-hVrsF.cjs +2 -0
  4. package/dist/ark-ui-e4-hVrsF.cjs.map +1 -0
  5. package/dist/{index-BroabscA.cjs → index-B5IKaL0m.cjs} +2 -2
  6. package/dist/index-B5IKaL0m.cjs.map +1 -0
  7. package/dist/{index-B4n-XEbJ.js → index-FC3cETza.js} +2 -2
  8. package/dist/index-FC3cETza.js.map +1 -0
  9. package/dist/index.cjs +7 -7
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +5033 -4981
  12. package/dist/index.js.map +1 -1
  13. package/dist/react-hot-toast-BCKriZQY.js +404 -0
  14. package/dist/react-hot-toast-BCKriZQY.js.map +1 -0
  15. package/dist/react-hot-toast-CvGdrsnM.cjs +178 -0
  16. package/dist/react-hot-toast-CvGdrsnM.cjs.map +1 -0
  17. package/dist/{react-lottie-DygynGMG.js → react-lottie-BoWlnUa4.js} +257 -257
  18. package/dist/react-lottie-BoWlnUa4.js.map +1 -0
  19. package/dist/react-lottie-D3xAW5ky.cjs +29 -0
  20. package/dist/react-lottie-D3xAW5ky.cjs.map +1 -0
  21. package/dist/stats.html +1 -1
  22. package/dist/styled-system/css/conditions.mjs +1 -1
  23. package/dist/styled-system/css/css.mjs +1 -1
  24. package/dist/styled-system/css/sva.mjs +9 -4
  25. package/dist/styled-system/helpers.mjs +12 -20
  26. package/dist/styled-system/jsx/create-style-context.d.ts +54 -0
  27. package/dist/styled-system/jsx/create-style-context.mjs +98 -0
  28. package/dist/styled-system/jsx/factory.mjs +14 -5
  29. package/dist/styled-system/jsx/index.d.ts +1 -0
  30. package/dist/styled-system/jsx/index.mjs +1 -0
  31. package/dist/styled-system/patterns/aspect-ratio.d.ts +0 -1
  32. package/dist/styled-system/patterns/bleed.d.ts +0 -1
  33. package/dist/styled-system/patterns/box.d.ts +0 -1
  34. package/dist/styled-system/patterns/center.d.ts +0 -1
  35. package/dist/styled-system/patterns/circle.d.ts +0 -1
  36. package/dist/styled-system/patterns/container.d.ts +0 -1
  37. package/dist/styled-system/patterns/cq.d.ts +0 -1
  38. package/dist/styled-system/patterns/divider.d.ts +0 -1
  39. package/dist/styled-system/patterns/flex.d.ts +0 -1
  40. package/dist/styled-system/patterns/float.d.ts +0 -1
  41. package/dist/styled-system/patterns/grid-item.d.ts +0 -1
  42. package/dist/styled-system/patterns/grid.d.ts +0 -1
  43. package/dist/styled-system/patterns/grid.mjs +1 -1
  44. package/dist/styled-system/patterns/hstack.d.ts +0 -1
  45. package/dist/styled-system/patterns/hstack.mjs +1 -1
  46. package/dist/styled-system/patterns/link-overlay.d.ts +0 -1
  47. package/dist/styled-system/patterns/spacer.d.ts +0 -1
  48. package/dist/styled-system/patterns/square.d.ts +0 -1
  49. package/dist/styled-system/patterns/stack.d.ts +0 -1
  50. package/dist/styled-system/patterns/stack.mjs +1 -1
  51. package/dist/styled-system/patterns/visually-hidden.d.ts +0 -1
  52. package/dist/styled-system/patterns/vstack.d.ts +0 -1
  53. package/dist/styled-system/patterns/vstack.mjs +1 -1
  54. package/dist/styled-system/patterns/wrap.d.ts +0 -1
  55. package/dist/styled-system/patterns/wrap.mjs +1 -1
  56. package/dist/styled-system/styles.css +1003 -993
  57. package/dist/styled-system/tokens/tokens.d.ts +1 -1
  58. package/dist/styled-system/types/composition.d.ts +83 -23
  59. package/dist/styled-system/types/conditions.d.ts +13 -9
  60. package/dist/styled-system/types/jsx.d.ts +25 -10
  61. package/dist/styled-system/types/prop-type.d.ts +12 -1
  62. package/dist/styled-system/types/style-props.d.ts +17 -5
  63. package/dist/styled-system/types/system-types.d.ts +76 -0
  64. package/dist/types/components/BottomSheet/BottomSheet.stories.d.ts +322 -4
  65. package/dist/types/components/BottomSheet/index.d.ts +23 -21
  66. package/dist/types/components/BottomSheet/react-modal-sheet/SheetBackdrop.d.ts +6 -1
  67. package/dist/types/components/BottomSheet/react-modal-sheet/SheetContainer.d.ts +7 -5
  68. package/dist/types/components/BottomSheet/react-modal-sheet/SheetContent.d.ts +7 -6
  69. package/dist/types/components/BottomSheet/react-modal-sheet/SheetHeader.d.ts +7 -6
  70. package/dist/types/components/BottomSheet/react-modal-sheet/SheetScroller.d.ts +7 -3
  71. package/dist/types/components/BottomSheet/react-modal-sheet/constants.d.ts +3 -8
  72. package/dist/types/components/BottomSheet/react-modal-sheet/hooks.d.ts +1 -1
  73. package/dist/types/components/BottomSheet/react-modal-sheet/index.d.ts +1 -1
  74. package/dist/types/components/BottomSheet/react-modal-sheet/sheet.d.ts +7 -16
  75. package/dist/types/components/BottomSheet/react-modal-sheet/types.d.ts +5 -5
  76. package/dist/types/components/Button/Button.stories.d.ts +10 -3
  77. package/dist/types/components/Button/index.d.ts +8 -298
  78. package/dist/types/components/Checkbox/checkbox.stories.d.ts +15 -3
  79. package/dist/types/components/Checkbox/checkbox.styled.d.ts +29 -12
  80. package/dist/types/components/Checkbox/index.d.ts +4 -1
  81. package/dist/types/components/Dialog/Dialog.stories.d.ts +9 -3
  82. package/dist/types/components/Dialog/index.d.ts +15 -25
  83. package/dist/types/components/Fab/Fab.stories.d.ts +25 -3
  84. package/dist/types/components/Fab/index.d.ts +300 -5
  85. package/dist/types/components/IconButton/IconButton.stories.d.ts +43 -3
  86. package/dist/types/components/IconButton/index.d.ts +5 -6
  87. package/dist/types/components/Input/Input.stories.d.ts +1 -1
  88. package/dist/types/components/Input/index.d.ts +4 -1
  89. package/dist/types/components/Layout/index.d.ts +19 -42
  90. package/dist/types/components/List/List.stories.d.ts +64 -4
  91. package/dist/types/components/List/index.d.ts +82 -13
  92. package/dist/types/components/Navigation/Navigation.stories.d.ts +9 -4
  93. package/dist/types/components/Navigation/index.d.ts +6 -9
  94. package/dist/types/components/RadioGroup/Radio.stories.d.ts +8 -3
  95. package/dist/types/components/RadioGroup/index.d.ts +10 -9
  96. package/dist/types/components/RadioGroup/radio.recipe.d.ts +1 -1
  97. package/dist/types/components/Select/Select.stories.d.ts +1 -9
  98. package/dist/types/components/Select/index.d.ts +75 -28
  99. package/dist/types/components/Select/select.recipe.d.ts +1 -1
  100. package/dist/types/components/Spinner/Spinner.stories.d.ts +1 -1
  101. package/dist/types/components/Spinner/index.d.ts +4 -1
  102. package/dist/types/components/Switch/Switch.stories.d.ts +1 -1
  103. package/dist/types/components/Switch/index.d.ts +5 -2
  104. package/dist/types/components/Switch/switch.styled.d.ts +89 -15
  105. package/dist/types/components/Tabs/Tabs.stories.d.ts +8 -4
  106. package/dist/types/components/Tabs/index.d.ts +208 -29
  107. package/dist/types/components/Tag/Tag.stories.d.ts +9 -4
  108. package/dist/types/components/Tag/index.d.ts +5 -2
  109. package/dist/types/components/Text/Text.stories.d.ts +25 -3
  110. package/dist/types/components/Text/index.d.ts +4 -276
  111. package/dist/types/components/TextArea/TextArea.stories.d.ts +9 -4
  112. package/dist/types/components/TextArea/index.d.ts +4 -1
  113. package/dist/types/components/Toast/Toast.stories.d.ts +9 -4
  114. package/dist/types/components/Toast/index.d.ts +47 -24
  115. package/dist/types/index.d.ts +0 -1
  116. package/dist/types/utils/with-polymorphic-component.d.ts +5 -4
  117. package/package.json +35 -40
  118. package/dist/ark-ui-BakX7_HR.cjs +0 -2
  119. package/dist/ark-ui-BakX7_HR.cjs.map +0 -1
  120. package/dist/ark-ui-BitYUtmQ.js +0 -6713
  121. package/dist/ark-ui-BitYUtmQ.js.map +0 -1
  122. package/dist/index-B4n-XEbJ.js.map +0 -1
  123. package/dist/index-BroabscA.cjs.map +0 -1
  124. package/dist/react-hot-toast-BQTk3w2h.cjs +0 -178
  125. package/dist/react-hot-toast-BQTk3w2h.cjs.map +0 -1
  126. package/dist/react-hot-toast-CPO7pUT3.js +0 -389
  127. package/dist/react-hot-toast-CPO7pUT3.js.map +0 -1
  128. package/dist/react-lottie-DTf3gNPc.cjs +0 -29
  129. package/dist/react-lottie-DTf3gNPc.cjs.map +0 -1
  130. package/dist/react-lottie-DygynGMG.js.map +0 -1
  131. package/dist/types/utils/create-style-context.d.ts +0 -20
  132. package/dist/types/utils/index.d.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ark-ui-D--_sKY0.js","sources":["../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/utils/create-context.js","../../../node_modules/.pnpm/@zag-js+utils@1.26.3/node_modules/@zag-js/utils/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dom-query@1.26.3/node_modules/@zag-js/dom-query/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+core@1.26.3/node_modules/@zag-js/core/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+types@1.26.3/node_modules/@zag-js/types/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+react@1.26.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@zag-js/react/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/utils/compose-refs.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/factory.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/utils/create-split-props.js","../../../node_modules/.pnpm/@zag-js+anatomy@1.26.3/node_modules/@zag-js/anatomy/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/providers/environment/use-environment-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/providers/locale/use-locale-context.js","../../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/.pnpm/@zag-js+popper@1.26.3/node_modules/@zag-js/popper/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+interact-outside@1.26.3/node_modules/@zag-js/interact-outside/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dismissable@1.26.3/node_modules/@zag-js/dismissable/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/utils/render-strategy.js","../../../node_modules/.pnpm/@zag-js+presence@1.26.3/node_modules/@zag-js/presence/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/utils/use-event.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/presence/use-presence.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/presence/use-presence-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/presence/split-presence-props.js","../../../node_modules/.pnpm/@zag-js+aria-hidden@1.26.3/node_modules/@zag-js/aria-hidden/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+focus-trap@1.26.3/node_modules/@zag-js/focus-trap/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+remove-scroll@1.26.3/node_modules/@zag-js/remove-scroll/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-control.js","../../../node_modules/.pnpm/@zag-js+focus-visible@1.26.3/node_modules/@zag-js/focus-visible/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+checkbox@1.26.3/node_modules/@zag-js/checkbox/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox.anatomy.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/utils/use-controllable-state.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/field/use-field-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-indicator.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-label.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root-provider.js","../../../node_modules/.pnpm/@zag-js+collection@1.26.3/node_modules/@zag-js/collection/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/collection/list-collection.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/use-dialog-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-backdrop.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-close-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-description.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-positioner.js","../../../node_modules/.pnpm/@zag-js+dialog@1.26.3/node_modules/@zag-js/dialog/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/use-dialog.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-title.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/dialog/dialog-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/portal/portal.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-props-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-text.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-label.js","../../../node_modules/.pnpm/@zag-js+radio-group@1.26.3/node_modules/@zag-js/radio-group/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/use-select-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/use-select-item-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/use-select-item-props-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-item.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-label.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-positioner.js","../../../node_modules/.pnpm/@zag-js+select@1.26.3/node_modules/@zag-js/select/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/use-select.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/select/select-value-text.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/switch/use-switch-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/switch/switch-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/switch/switch-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/switch/switch-label.js","../../../node_modules/.pnpm/@zag-js+switch@1.26.3/node_modules/@zag-js/switch/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/switch/use-switch.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/switch/switch-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/switch/switch-thumb.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../../node_modules/.pnpm/@zag-js+tabs@1.26.3/node_modules/@zag-js/tabs/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../../node_modules/.pnpm/@ark-ui+react@5.26.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js"],"sourcesContent":["'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","var __defProp = Object.defineProperty;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n\n// src/array.ts\nfunction toArray(v) {\n if (v == null) return [];\n return Array.isArray(v) ? v : [v];\n}\nvar fromLength = (length) => Array.from(Array(length).keys());\nvar first = (v) => v[0];\nvar last = (v) => v[v.length - 1];\nvar isEmpty = (v) => v.length === 0;\nvar has = (v, t) => v.indexOf(t) !== -1;\nvar add = (v, ...items) => v.concat(items);\nvar remove = (v, ...items) => v.filter((t) => !items.includes(t));\nvar removeAt = (v, i) => v.filter((_, idx) => idx !== i);\nvar insertAt = (v, i, ...items) => [...v.slice(0, i), ...items, ...v.slice(i)];\nvar uniq = (v) => Array.from(new Set(v));\nvar diff = (a, b) => {\n const set = new Set(b);\n return a.filter((t) => !set.has(t));\n};\nvar addOrRemove = (v, item) => has(v, item) ? remove(v, item) : add(v, item);\nfunction clear(v) {\n while (v.length > 0) v.pop();\n return v;\n}\nfunction nextIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n const next2 = idx + step;\n const len = v.length;\n const last2 = len - 1;\n if (idx === -1) return step > 0 ? 0 : last2;\n if (next2 < 0) return loop ? last2 : 0;\n if (next2 >= len) return loop ? 0 : idx > len ? len : idx;\n return next2;\n}\nfunction next(v, idx, opts = {}) {\n return v[nextIndex(v, idx, opts)];\n}\nfunction prevIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n return nextIndex(v, idx, { step: -step, loop });\n}\nfunction prev(v, index, opts = {}) {\n return v[prevIndex(v, index, opts)];\n}\nfunction chunk(v, size) {\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value]);\n else last(rows)?.push(value);\n return rows;\n }, []);\n}\nfunction flatArray(arr) {\n return arr.reduce((flat, item) => {\n if (Array.isArray(item)) {\n return flat.concat(flatArray(item));\n }\n return flat.concat(item);\n }, []);\n}\nfunction partition(arr, fn) {\n return arr.reduce(\n ([pass, fail], value) => {\n if (fn(value)) pass.push(value);\n else fail.push(value);\n return [pass, fail];\n },\n [[], []]\n );\n}\n\n// src/equal.ts\nvar isArrayLike = (value) => value?.constructor.name === \"Array\";\nvar isArrayEqual = (a, b) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false;\n }\n return true;\n};\nvar isEqual = (a, b) => {\n if (Object.is(a, b)) return true;\n if (a == null && b != null || a != null && b == null) return false;\n if (typeof a?.isEqual === \"function\" && typeof b?.isEqual === \"function\") {\n return a.isEqual(b);\n }\n if (typeof a === \"function\" && typeof b === \"function\") {\n return a.toString() === b.toString();\n }\n if (isArrayLike(a) && isArrayLike(b)) {\n return isArrayEqual(Array.from(a), Array.from(b));\n }\n if (!(typeof a === \"object\") || !(typeof b === \"object\")) return false;\n const keys = Object.keys(b ?? /* @__PURE__ */ Object.create(null));\n const length = keys.length;\n for (let i = 0; i < length; i++) {\n const hasKey = Reflect.has(a, keys[i]);\n if (!hasKey) return false;\n }\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n if (!isEqual(a[key], b[key])) return false;\n }\n return true;\n};\n\n// src/guard.ts\nvar isDev = () => process.env.NODE_ENV !== \"production\";\nvar isArray = (v) => Array.isArray(v);\nvar isBoolean = (v) => v === true || v === false;\nvar isObjectLike = (v) => v != null && typeof v === \"object\";\nvar isObject = (v) => isObjectLike(v) && !isArray(v);\nvar isNumber = (v) => typeof v === \"number\" && !Number.isNaN(v);\nvar isString = (v) => typeof v === \"string\";\nvar isFunction = (v) => typeof v === \"function\";\nvar isNull = (v) => v == null;\nvar hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar baseGetTag = (v) => Object.prototype.toString.call(v);\nvar fnToString = Function.prototype.toString;\nvar objectCtorString = fnToString.call(Object);\nvar isPlainObject = (v) => {\n if (!isObjectLike(v) || baseGetTag(v) != \"[object Object]\" || isFrameworkElement(v)) return false;\n const proto = Object.getPrototypeOf(v);\n if (proto === null) return true;\n const Ctor = hasProp(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && fnToString.call(Ctor) == objectCtorString;\n};\nvar isReactElement = (x) => typeof x === \"object\" && x !== null && \"$$typeof\" in x && \"props\" in x;\nvar isVueElement = (x) => typeof x === \"object\" && x !== null && \"__v_isVNode\" in x;\nvar isFrameworkElement = (x) => isReactElement(x) || isVueElement(x);\n\n// src/functions.ts\nvar runIfFn = (v, ...a) => {\n const res = typeof v === \"function\" ? v(...a) : v;\n return res ?? void 0;\n};\nvar cast = (v) => v;\nvar identity = (v) => v();\nvar noop = () => {\n};\nvar callAll = (...fns) => (...a) => {\n fns.forEach(function(fn) {\n fn?.(...a);\n });\n};\nvar uuid = /* @__PURE__ */ (() => {\n let id = 0;\n return () => {\n id++;\n return id.toString(36);\n };\n})();\nfunction match(key, record, ...args) {\n if (key in record) {\n const fn = record[key];\n return isFunction(fn) ? fn(...args) : fn;\n }\n const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`);\n Error.captureStackTrace?.(error, match);\n throw error;\n}\nvar tryCatch = (fn, fallback) => {\n try {\n return fn();\n } catch (error) {\n if (error instanceof Error) {\n Error.captureStackTrace?.(error, tryCatch);\n }\n return fallback?.();\n }\n};\nfunction throttle(fn, wait = 0) {\n let lastCall = 0;\n let timeout = null;\n return ((...args) => {\n const now = Date.now();\n const timeSinceLastCall = now - lastCall;\n if (timeSinceLastCall >= wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n fn(...args);\n lastCall = now;\n } else if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n lastCall = Date.now();\n timeout = null;\n }, wait - timeSinceLastCall);\n }\n });\n}\nfunction debounce(fn, wait = 0) {\n let timeout = null;\n return ((...args) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n timeout = setTimeout(() => {\n fn(...args);\n }, wait);\n });\n}\n\n// src/number.ts\nvar { floor, abs, round, min, max, pow, sign } = Math;\nvar isNaN = (v) => Number.isNaN(v);\nvar nan = (v) => isNaN(v) ? 0 : v;\nvar mod = (v, m) => (v % m + m) % m;\nvar wrap = (v, vmax) => (v % vmax + vmax) % vmax;\nvar getMinValueAtIndex = (i, v, vmin) => i === 0 ? vmin : v[i - 1];\nvar getMaxValueAtIndex = (i, v, vmax) => i === v.length - 1 ? vmax : v[i + 1];\nvar isValueAtMax = (v, vmax) => nan(v) >= vmax;\nvar isValueAtMin = (v, vmin) => nan(v) <= vmin;\nvar isValueWithinRange = (v, vmin, vmax) => {\n const value = nan(v);\n const minCheck = vmin == null || value >= vmin;\n const maxCheck = vmax == null || value <= vmax;\n return minCheck && maxCheck;\n};\nvar roundValue = (v, vmin, step) => round((nan(v) - vmin) / step) * step + vmin;\nvar clampValue = (v, vmin, vmax) => min(max(nan(v), vmin), vmax);\nvar clampPercent = (v) => clampValue(v, 0, 1);\nvar getValuePercent = (v, vmin, vmax) => (nan(v) - vmin) / (vmax - vmin);\nvar getPercentValue = (p, vmin, vmax, step) => clampValue(roundValue(p * (vmax - vmin) + vmin, vmin, step), vmin, vmax);\nvar roundToStepPrecision = (v, step) => {\n let rv = v;\n let ss = step.toString();\n let pi = ss.indexOf(\".\");\n let p = pi >= 0 ? ss.length - pi : 0;\n if (p > 0) {\n let pw = pow(10, p);\n rv = round(rv * pw) / pw;\n }\n return rv;\n};\nvar roundToDpr = (v, dpr) => typeof dpr === \"number\" ? floor(v * dpr + 0.5) / dpr : round(v);\nvar snapValueToStep = (v, vmin, vmax, step) => {\n const min2 = vmin != null ? Number(vmin) : 0;\n const max2 = Number(vmax);\n const remainder = (v - min2) % step;\n let snapped = abs(remainder) * 2 >= step ? v + sign(remainder) * (step - abs(remainder)) : v - remainder;\n snapped = roundToStepPrecision(snapped, step);\n if (!isNaN(min2) && snapped < min2) {\n snapped = min2;\n } else if (!isNaN(max2) && snapped > max2) {\n const stepsInRange = floor((max2 - min2) / step);\n const largestValidStep = min2 + stepsInRange * step;\n snapped = stepsInRange <= 0 || largestValidStep < min2 ? max2 : largestValidStep;\n }\n return roundToStepPrecision(snapped, step);\n};\nvar setValueAtIndex = (vs, i, v) => {\n if (vs[i] === v) return vs;\n return [...vs.slice(0, i), v, ...vs.slice(i + 1)];\n};\nfunction getValueSetterAtIndex(index, ctx) {\n const minValueAtIndex = getMinValueAtIndex(index, ctx.values, ctx.min);\n const maxValueAtIndex = getMaxValueAtIndex(index, ctx.values, ctx.max);\n let nextValues = ctx.values.slice();\n return function setValue(value) {\n let nextValue = snapValueToStep(value, minValueAtIndex, maxValueAtIndex, ctx.step);\n nextValues = setValueAtIndex(nextValues, index, value);\n nextValues[index] = nextValue;\n return nextValues;\n };\n}\nfunction getNextStepValue(index, ctx) {\n const nextValue = ctx.values[index] + ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nfunction getPreviousStepValue(index, ctx) {\n const nextValue = ctx.values[index] - ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nvar getClosestValueIndex = (vs, t) => {\n let i = vs.findIndex((v) => t - v < 0);\n if (i === 0) return i;\n if (i === -1) return vs.length - 1;\n let vLeft = vs[i - 1];\n let vRight = vs[i];\n if (abs(vLeft - t) < abs(vRight - t)) return i - 1;\n return i;\n};\nvar getClosestValue = (vs, t) => vs[getClosestValueIndex(vs, t)];\nvar getValueRanges = (vs, vmin, vmax, gap) => vs.map((v, i) => ({\n min: i === 0 ? vmin : vs[i - 1] + gap,\n max: i === vs.length - 1 ? vmax : vs[i + 1] - gap,\n value: v\n}));\nvar getValueTransformer = (va, vb) => {\n const [a, b] = va;\n const [c, d] = vb;\n return (v) => a === b || c === d ? c : c + (d - c) / (b - a) * (v - a);\n};\nvar toFixedNumber = (v, d = 0, b = 10) => {\n const pow2 = Math.pow(b, d);\n return round(v * pow2) / pow2;\n};\nvar countDecimals = (value) => {\n if (!Number.isFinite(value)) return 0;\n let e = 1, p = 0;\n while (Math.round(value * e) / e !== value) {\n e *= 10;\n p += 1;\n }\n return p;\n};\nvar decimalOp = (a, op, b) => {\n let result = op === \"+\" ? a + b : a - b;\n if (a % 1 !== 0 || b % 1 !== 0) {\n const multiplier = 10 ** Math.max(countDecimals(a), countDecimals(b));\n a = Math.round(a * multiplier);\n b = Math.round(b * multiplier);\n result = op === \"+\" ? a + b : a - b;\n result /= multiplier;\n }\n return result;\n};\nvar incrementValue = (v, s) => decimalOp(nan(v), \"+\", s);\nvar decrementValue = (v, s) => decimalOp(nan(v), \"-\", s);\nvar toPx = (v) => typeof v === \"number\" ? `${v}px` : v;\n\n// src/object.ts\nfunction compact(obj) {\n if (!isPlainObject(obj) || obj === void 0) return obj;\n const keys = Reflect.ownKeys(obj).filter((key) => typeof key === \"string\");\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = compact(value);\n }\n }\n return filtered;\n}\nvar json = (v) => JSON.parse(JSON.stringify(v));\nfunction pick(obj, keys) {\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = value;\n }\n }\n return filtered;\n}\nfunction splitProps(props, keys) {\n const rest = {};\n const result = {};\n const keySet = new Set(keys);\n 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/store.ts\nfunction createStore(initialState, compare = Object.is) {\n let state = { ...initialState };\n const listeners = /* @__PURE__ */ new Set();\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const publish = () => {\n listeners.forEach((listener) => listener());\n };\n const get = (key) => {\n return state[key];\n };\n const set = (key, value) => {\n if (!compare(state[key], value)) {\n state[key] = value;\n publish();\n }\n };\n const update = (updates) => {\n let hasChanges = false;\n for (const key in updates) {\n const value = updates[key];\n if (value !== void 0 && !compare(state[key], value)) {\n state[key] = value;\n hasChanges = true;\n }\n }\n if (hasChanges) {\n publish();\n }\n };\n const snapshot = () => ({ ...state });\n return {\n subscribe,\n get,\n set,\n update,\n snapshot\n };\n}\n\n// src/timers.ts\nvar currentTime = () => performance.now();\nvar _tick;\nvar Timer = class {\n constructor(onTick) {\n this.onTick = onTick;\n __publicField(this, \"frameId\", null);\n __publicField(this, \"pausedAtMs\", null);\n __publicField(this, \"context\");\n __publicField(this, \"cancelFrame\", () => {\n if (this.frameId === null) return;\n cancelAnimationFrame(this.frameId);\n this.frameId = null;\n });\n __publicField(this, \"setStartMs\", (startMs) => {\n this.context.startMs = startMs;\n });\n __publicField(this, \"start\", () => {\n if (this.frameId !== null) return;\n const now = currentTime();\n if (this.pausedAtMs !== null) {\n this.context.startMs += now - this.pausedAtMs;\n this.pausedAtMs = null;\n } else {\n this.context.startMs = now;\n }\n this.frameId = requestAnimationFrame(__privateGet(this, _tick));\n });\n __publicField(this, \"pause\", () => {\n if (this.frameId === null) return;\n this.cancelFrame();\n this.pausedAtMs = currentTime();\n });\n __publicField(this, \"stop\", () => {\n if (this.frameId === null) return;\n this.cancelFrame();\n this.pausedAtMs = null;\n });\n __privateAdd(this, _tick, (now) => {\n this.context.now = now;\n this.context.deltaMs = now - this.context.startMs;\n const shouldContinue = this.onTick(this.context);\n if (shouldContinue === false) {\n this.stop();\n return;\n }\n this.frameId = requestAnimationFrame(__privateGet(this, _tick));\n });\n this.context = { now: 0, startMs: currentTime(), deltaMs: 0 };\n }\n get elapsedMs() {\n if (this.pausedAtMs !== null) {\n return this.pausedAtMs - this.context.startMs;\n }\n return currentTime() - this.context.startMs;\n }\n};\n_tick = new WeakMap();\nfunction setRafInterval(fn, intervalMs) {\n const timer = new Timer(({ now, deltaMs }) => {\n if (deltaMs >= intervalMs) {\n const startMs = intervalMs > 0 ? now - deltaMs % intervalMs : now;\n timer.setStartMs(startMs);\n fn({ startMs, deltaMs });\n }\n });\n timer.start();\n return () => timer.stop();\n}\nfunction setRafTimeout(fn, delayMs) {\n const timer = new Timer(({ deltaMs }) => {\n if (deltaMs >= delayMs) {\n fn();\n return false;\n }\n });\n timer.start();\n return () => timer.stop();\n}\n\n// src/warning.ts\nfunction warn(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m);\n }\n}\nfunction invariant(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m);\n }\n}\nfunction ensure(c, m) {\n if (c == null) throw new Error(m());\n}\nfunction ensureProps(props, keys, scope) {\n let missingKeys = [];\n for (const key of keys) {\n if (props[key] == null) missingKeys.push(key);\n }\n if (missingKeys.length > 0)\n throw new Error(`[zag-js${scope ? ` > ${scope}` : \"\"}] missing required props: ${missingKeys.join(\", \")}`);\n}\n\nexport { Timer, add, addOrRemove, callAll, cast, chunk, clampPercent, clampValue, clear, compact, createSplitProps, createStore, debounce, decrementValue, diff, ensure, ensureProps, first, flatArray, fromLength, getClosestValue, getClosestValueIndex, getMaxValueAtIndex, getMinValueAtIndex, getNextStepValue, getPercentValue, getPreviousStepValue, getValuePercent, getValueRanges, getValueSetterAtIndex, getValueTransformer, has, hasProp, identity, incrementValue, insertAt, invariant, isArray, isBoolean, isDev, isEmpty, isEqual, isFunction, isNaN, isNull, isNumber, isObject, isObjectLike, isPlainObject, isString, isValueAtMax, isValueAtMin, isValueWithinRange, json, last, match, mod, nan, next, nextIndex, noop, omit, partition, pick, prev, prevIndex, remove, removeAt, roundToDpr, roundToStepPrecision, roundValue, runIfFn, setRafInterval, setRafTimeout, setValueAtIndex, snapValueToStep, splitProps, throttle, toArray, toFixedNumber, toPx, tryCatch, uniq, uuid, warn, wrap };\n","// src/caret.ts\nfunction isCaretAtStart(input) {\n if (!input) return false;\n try {\n return input.selectionStart === 0 && input.selectionEnd === 0;\n } catch {\n return input.value === \"\";\n }\n}\nfunction setCaretToEnd(input) {\n if (!input) return;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n if (Math.abs(end - start) !== 0) return;\n if (start !== 0) return;\n input.setSelectionRange(input.value.length, input.value.length);\n}\n\n// src/shared.ts\nvar clamp = (value) => Math.max(0, Math.min(1, value));\nvar wrap = (v, idx) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nvar pipe = (...fns) => (arg) => fns.reduce((acc, fn) => fn(acc), arg);\nvar noop = () => void 0;\nvar isObject = (v) => typeof v === \"object\" && v !== null;\nvar MAX_Z_INDEX = 2147483647;\nvar dataAttr = (guard) => guard ? \"\" : void 0;\nvar ariaAttr = (guard) => guard ? \"true\" : void 0;\n\n// src/node.ts\nvar ELEMENT_NODE = 1;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\nvar isHTMLElement = (el) => isObject(el) && el.nodeType === ELEMENT_NODE && typeof el.nodeName === \"string\";\nvar isDocument = (el) => isObject(el) && el.nodeType === DOCUMENT_NODE;\nvar isWindow = (el) => isObject(el) && el === el.window;\nvar isVisualViewport = (el) => isObject(el) && el.constructor.name === \"VisualViewport\";\nvar getNodeName = (node) => {\n if (isHTMLElement(node)) return node.localName || \"\";\n return \"#document\";\n};\nfunction isRootElement(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nvar isNode = (el) => isObject(el) && el.nodeType !== void 0;\nvar isShadowRoot = (el) => isNode(el) && el.nodeType === DOCUMENT_FRAGMENT_NODE && \"host\" in el;\nvar isInputElement = (el) => isHTMLElement(el) && el.localName === \"input\";\nvar isAnchorElement = (el) => !!el?.matches(\"a[href]\");\nvar isElementVisible = (el) => {\n if (!isHTMLElement(el)) return false;\n return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0;\n};\nfunction isActiveElement(element) {\n if (!element) return false;\n const rootNode = element.getRootNode();\n return getActiveElement(rootNode) === element;\n}\nvar TEXTAREA_SELECT_REGEX = /(textarea|select)/;\nfunction isEditableElement(el) {\n if (el == null || !isHTMLElement(el)) return false;\n try {\n return isInputElement(el) && el.selectionStart != null || TEXTAREA_SELECT_REGEX.test(el.localName) || el.isContentEditable || el.getAttribute(\"contenteditable\") === \"true\" || el.getAttribute(\"contenteditable\") === \"\";\n } catch {\n return false;\n }\n}\nfunction contains(parent, child) {\n if (!parent || !child) return false;\n if (!isHTMLElement(parent) || !isHTMLElement(child)) return false;\n const rootNode = child.getRootNode?.();\n if (parent === child) return true;\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction getDocument(el) {\n if (isDocument(el)) return el;\n if (isWindow(el)) return el.document;\n return el?.ownerDocument ?? document;\n}\nfunction getDocumentElement(el) {\n return getDocument(el).documentElement;\n}\nfunction getWindow(el) {\n if (isShadowRoot(el)) return getWindow(el.host);\n if (isDocument(el)) return el.defaultView ?? window;\n if (isHTMLElement(el)) return el.ownerDocument?.defaultView ?? window;\n return window;\n}\nfunction getActiveElement(rootNode) {\n let activeElement = rootNode.activeElement;\n while (activeElement?.shadowRoot) {\n const el = activeElement.shadowRoot.activeElement;\n if (!el || el === activeElement) break;\n else activeElement = el;\n }\n return activeElement;\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") return node;\n const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getRootNode(node) {\n let result;\n try {\n result = node.getRootNode({ composed: true });\n if (isDocument(result) || isShadowRoot(result)) return result;\n } catch {\n }\n return node.ownerDocument ?? document;\n}\n\n// src/computed-style.ts\nvar styleCache = /* @__PURE__ */ new WeakMap();\nfunction getComputedStyle(el) {\n if (!styleCache.has(el)) {\n styleCache.set(el, getWindow(el).getComputedStyle(el));\n }\n return styleCache.get(el);\n}\n\n// src/controller.ts\nvar INTERACTIVE_CONTAINER_ROLE = /* @__PURE__ */ new Set([\"menu\", \"listbox\", \"dialog\", \"grid\", \"tree\", \"region\"]);\nvar isInteractiveContainerRole = (role) => INTERACTIVE_CONTAINER_ROLE.has(role);\nvar getAriaControls = (element) => element.getAttribute(\"aria-controls\")?.split(\" \") || [];\nfunction isControlledElement(container, element) {\n const visitedIds = /* @__PURE__ */ new Set();\n const rootNode = getRootNode(container);\n const checkElement = (searchRoot) => {\n const controllingElements = searchRoot.querySelectorAll(\"[aria-controls]\");\n for (const controller of controllingElements) {\n if (controller.getAttribute(\"aria-expanded\") !== \"true\") continue;\n const controlledIds = getAriaControls(controller);\n for (const id of controlledIds) {\n if (!id || visitedIds.has(id)) continue;\n visitedIds.add(id);\n const controlledElement = rootNode.getElementById(id);\n if (controlledElement) {\n const role = controlledElement.getAttribute(\"role\");\n const modal = controlledElement.getAttribute(\"aria-modal\") === \"true\";\n if (role && isInteractiveContainerRole(role) && !modal) {\n if (controlledElement === element || controlledElement.contains(element)) {\n return true;\n }\n if (checkElement(controlledElement)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n return checkElement(container);\n}\nfunction findControlledElements(searchRoot, callback) {\n const rootNode = getRootNode(searchRoot);\n const visitedIds = /* @__PURE__ */ new Set();\n const findRecursive = (root) => {\n const controllingElements = root.querySelectorAll(\"[aria-controls]\");\n for (const controller of controllingElements) {\n if (controller.getAttribute(\"aria-expanded\") !== \"true\") continue;\n const controlledIds = getAriaControls(controller);\n for (const id of controlledIds) {\n if (!id || visitedIds.has(id)) continue;\n visitedIds.add(id);\n const controlledElement = rootNode.getElementById(id);\n if (controlledElement) {\n const role = controlledElement.getAttribute(\"role\");\n const modal = controlledElement.getAttribute(\"aria-modal\") === \"true\";\n if (role && INTERACTIVE_CONTAINER_ROLE.has(role) && !modal) {\n callback(controlledElement);\n findRecursive(controlledElement);\n }\n }\n }\n }\n };\n findRecursive(searchRoot);\n}\nfunction getControlledElements(container) {\n const controlledElements = /* @__PURE__ */ new Set();\n findControlledElements(container, (controlledElement) => {\n if (!container.contains(controlledElement)) {\n controlledElements.add(controlledElement);\n }\n });\n return Array.from(controlledElements);\n}\nfunction isInteractiveContainerElement(element) {\n const role = element.getAttribute(\"role\");\n return Boolean(role && INTERACTIVE_CONTAINER_ROLE.has(role));\n}\nfunction isControllerElement(element) {\n return element.hasAttribute(\"aria-controls\") && element.getAttribute(\"aria-expanded\") === \"true\";\n}\nfunction hasControllerElements(element) {\n if (isControllerElement(element)) return true;\n return Boolean(element.querySelector?.('[aria-controls][aria-expanded=\"true\"]'));\n}\nfunction isControlledByExpandedController(element) {\n if (!element.id) return false;\n const rootNode = getRootNode(element);\n const escapedId = CSS.escape(element.id);\n const selector = `[aria-controls~=\"${escapedId}\"][aria-expanded=\"true\"], [aria-controls=\"${escapedId}\"][aria-expanded=\"true\"]`;\n const controller = rootNode.querySelector(selector);\n return Boolean(controller && isInteractiveContainerElement(element));\n}\n\n// src/data-url.ts\nfunction getDataUrl(svg, opts) {\n const { type, quality = 0.92, background } = opts;\n if (!svg) throw new Error(\"[zag-js > getDataUrl]: Could not find the svg element\");\n const win = getWindow(svg);\n const doc = win.document;\n const svgBounds = svg.getBoundingClientRect();\n const svgClone = svg.cloneNode(true);\n if (!svgClone.hasAttribute(\"viewBox\")) {\n svgClone.setAttribute(\"viewBox\", `0 0 ${svgBounds.width} ${svgBounds.height}`);\n }\n const serializer = new win.XMLSerializer();\n const source = '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + serializer.serializeToString(svgClone);\n const svgString = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n if (type === \"image/svg+xml\") {\n return Promise.resolve(svgString).then((str) => {\n svgClone.remove();\n return str;\n });\n }\n const dpr = win.devicePixelRatio || 1;\n const canvas = doc.createElement(\"canvas\");\n const image = new win.Image();\n image.src = svgString;\n canvas.width = svgBounds.width * dpr;\n canvas.height = svgBounds.height * dpr;\n const context = canvas.getContext(\"2d\");\n if (type === \"image/jpeg\" || background) {\n context.fillStyle = background || \"white\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n return new Promise((resolve) => {\n image.onload = () => {\n context?.drawImage(image, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(type, quality));\n svgClone.remove();\n };\n });\n}\n\n// src/platform.ts\nvar isDom = () => typeof document !== \"undefined\";\nfunction getPlatform() {\n const agent = navigator.userAgentData;\n return agent?.platform ?? navigator.platform;\n}\nfunction getUserAgent() {\n const ua2 = navigator.userAgentData;\n if (ua2 && Array.isArray(ua2.brands)) {\n return ua2.brands.map(({ brand, version }) => `${brand}/${version}`).join(\" \");\n }\n return navigator.userAgent;\n}\nvar pt = (v) => isDom() && v.test(getPlatform());\nvar ua = (v) => isDom() && v.test(getUserAgent());\nvar vn = (v) => isDom() && v.test(navigator.vendor);\nvar isTouchDevice = () => isDom() && !!navigator.maxTouchPoints;\nvar isIPhone = () => pt(/^iPhone/i);\nvar isIPad = () => pt(/^iPad/i) || isMac() && navigator.maxTouchPoints > 1;\nvar isIos = () => isIPhone() || isIPad();\nvar isApple = () => isMac() || isIos();\nvar isMac = () => pt(/^Mac/i);\nvar isSafari = () => isApple() && vn(/apple/i);\nvar isFirefox = () => ua(/Firefox/i);\nvar isChrome = () => ua(/Chrome/i);\nvar isWebKit = () => ua(/AppleWebKit/i) && !isChrome();\nvar isAndroid = () => ua(/Android/i);\n\n// src/event.ts\nfunction getBeforeInputValue(event) {\n const { selectionStart, selectionEnd, value } = event.currentTarget;\n const data = event.data;\n return value.slice(0, selectionStart) + (data ?? \"\") + value.slice(selectionEnd);\n}\nfunction getComposedPath(event) {\n return event.composedPath?.() ?? event.nativeEvent?.composedPath?.();\n}\nfunction getEventTarget(event) {\n const composedPath = getComposedPath(event);\n return composedPath?.[0] ?? event.target;\n}\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const validElement = element.matches(\"a[href], button[type='submit'], input[type='submit']\");\n if (!validElement) return false;\n const isMiddleClick = event.button === 1;\n const isModKeyClick = isCtrlOrMetaKey(event);\n return isMiddleClick || isModKeyClick;\n}\nfunction isDownloadingEvent(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const localName = element.localName;\n if (!event.altKey) return false;\n if (localName === \"a\") return true;\n if (localName === \"button\" && element.type === \"submit\") return true;\n if (localName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isComposingEvent(event) {\n return getNativeEvent(event).isComposing || event.keyCode === 229;\n}\nfunction isKeyboardClick(e) {\n return e.detail === 0 || e.clientX === 0 && e.clientY === 0;\n}\nfunction isCtrlOrMetaKey(e) {\n if (isMac()) return e.metaKey;\n return e.ctrlKey;\n}\nfunction isPrintableKey(e) {\n return e.key.length === 1 && !e.ctrlKey && !e.metaKey;\n}\nfunction isVirtualPointerEvent(e) {\n return e.width === 0 && e.height === 0 || e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === \"mouse\";\n}\nfunction isVirtualClick(e) {\n if (e.pointerType === \"\" && e.isTrusted) return true;\n if (isAndroid() && e.pointerType) {\n return e.type === \"click\" && e.buttons === 1;\n }\n return e.detail === 0 && !e.pointerType;\n}\nvar isLeftClick = (e) => e.button === 0;\nvar isContextMenuEvent = (e) => {\n return e.button === 2 || isMac() && e.ctrlKey && e.button === 0;\n};\nvar isModifierKey = (e) => e.ctrlKey || e.altKey || e.metaKey;\nvar isTouchEvent = (event) => \"touches\" in event && event.touches.length > 0;\nvar keyMap = {\n Up: \"ArrowUp\",\n Down: \"ArrowDown\",\n Esc: \"Escape\",\n \" \": \"Space\",\n \",\": \"Comma\",\n Left: \"ArrowLeft\",\n Right: \"ArrowRight\"\n};\nvar rtlKeyMap = {\n ArrowLeft: \"ArrowRight\",\n ArrowRight: \"ArrowLeft\"\n};\nfunction getEventKey(event, options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\" } = options;\n let key = event.key;\n key = keyMap[key] ?? key;\n const isRtl = dir === \"rtl\" && orientation === \"horizontal\";\n if (isRtl && key in rtlKeyMap) key = rtlKeyMap[key];\n return key;\n}\nfunction getNativeEvent(event) {\n return event.nativeEvent ?? event;\n}\nvar pageKeys = /* @__PURE__ */ new Set([\"PageUp\", \"PageDown\"]);\nvar arrowKeys = /* @__PURE__ */ new Set([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"]);\nfunction getEventStep(event) {\n if (event.ctrlKey || event.metaKey) {\n return 0.1;\n } else {\n const isPageKey = pageKeys.has(event.key);\n const isSkipKey = isPageKey || event.shiftKey && arrowKeys.has(event.key);\n return isSkipKey ? 10 : 1;\n }\n}\nfunction getEventPoint(event, type = \"client\") {\n const point = isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : event;\n return { x: point[`${type}X`], y: point[`${type}Y`] };\n}\nvar addDomEvent = (target, eventName, handler, options) => {\n const node = typeof target === \"function\" ? target() : target;\n node?.addEventListener(eventName, handler, options);\n return () => {\n node?.removeEventListener(eventName, handler, options);\n };\n};\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 ?? getActiveElement(doc);\n if (!currentElement) return null;\n const index = tabbables.indexOf(currentElement);\n return tabbables[index + 1] || null;\n}\nfunction getTabIndex(node) {\n if (node.tabIndex < 0) {\n if ((/^(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 if (isActiveElement(firstTabbable) && event.shiftKey) return false;\n if (isActiveElement(lastTabbable) && !event.shiftKey) return false;\n if (!firstTabbable && !lastTabbable) return false;\n return true;\n}\n\n// src/raf.ts\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 = () => {\n const win = getWindow(el);\n el.dispatchEvent(new win.MouseEvent(\"click\"));\n };\n if (isFirefox()) {\n queueBeforeEvent(el, \"keyup\", click);\n } else {\n queueMicrotask(click);\n }\n}\n\n// src/overflow.ts\nfunction getNearestOverflowAncestor(el) {\n const parentNode = getParentNode(el);\n if (isRootElement(parentNode)) return getDocument(parentNode).body;\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) return parentNode;\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(el, list = []) {\n const scrollableAncestor = getNearestOverflowAncestor(el);\n const isBody = scrollableAncestor === el.ownerDocument.body;\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, []));\n}\nvar getElementRect = (el) => {\n if (isHTMLElement(el)) return el.getBoundingClientRect();\n if (isVisualViewport(el)) return { top: 0, left: 0, bottom: el.height, right: el.width };\n return { top: 0, left: 0, bottom: el.innerHeight, right: el.innerWidth };\n};\nfunction isInView(el, ancestor) {\n if (!isHTMLElement(el)) return true;\n const ancestorRect = getElementRect(ancestor);\n const elRect = el.getBoundingClientRect();\n return elRect.top >= ancestorRect.top && elRect.left >= ancestorRect.left && elRect.bottom <= ancestorRect.bottom && elRect.right <= ancestorRect.right;\n}\nvar OVERFLOW_RE = /auto|scroll|overlay|hidden|clip/;\nvar nonOverflowValues = /* @__PURE__ */ new Set([\"inline\", \"contents\"]);\nfunction isOverflowElement(el) {\n const win = getWindow(el);\n const { overflow, overflowX, overflowY, display } = win.getComputedStyle(el);\n return OVERFLOW_RE.test(overflow + overflowY + overflowX) && !nonOverflowValues.has(display);\n}\nfunction isScrollable(el) {\n return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;\n}\nfunction scrollIntoView(el, options) {\n const { rootEl, ...scrollOptions } = options || {};\n if (!el || !rootEl) return;\n if (!isOverflowElement(rootEl) || !isScrollable(rootEl)) return;\n el.scrollIntoView(scrollOptions);\n}\nfunction getScrollPosition(element) {\n if (isHTMLElement(element)) {\n return { scrollLeft: element.scrollLeft, scrollTop: element.scrollTop };\n }\n return { scrollLeft: element.scrollX, scrollTop: element.scrollY };\n}\n\n// src/point.ts\nfunction getRelativePoint(point, element) {\n const { left, top, width, height } = element.getBoundingClientRect();\n const offset = { x: point.x - left, y: point.y - top };\n const percent = { x: clamp(offset.x / width), y: clamp(offset.y / height) };\n function getPercentValue(options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\", inverted } = options;\n const invertX = typeof inverted === \"object\" ? inverted.x : inverted;\n const invertY = typeof inverted === \"object\" ? inverted.y : inverted;\n if (orientation === \"horizontal\") {\n return dir === \"rtl\" || invertX ? 1 - percent.x : percent.x;\n }\n return invertY ? 1 - percent.y : percent.y;\n }\n return { offset, percent, getPercentValue };\n}\n\n// src/pointer-lock.ts\nfunction requestPointerLock(doc, fn) {\n const body = doc.body;\n const supported = \"pointerLockElement\" in doc || \"mozPointerLockElement\" in doc;\n const isLocked = () => !!doc.pointerLockElement;\n function onPointerChange() {\n fn?.(isLocked());\n }\n function onPointerError(event) {\n if (isLocked()) fn?.(false);\n console.error(\"PointerLock error occurred:\", event);\n doc.exitPointerLock();\n }\n if (!supported) return;\n try {\n body.requestPointerLock();\n } catch {\n }\n const cleanup = [\n addDomEvent(doc, \"pointerlockchange\", onPointerChange, false),\n addDomEvent(doc, \"pointerlockerror\", onPointerError, false)\n ];\n return () => {\n cleanup.forEach((cleanup2) => cleanup2());\n doc.exitPointerLock();\n };\n}\n\n// src/text-selection.ts\nvar state = \"default\";\nvar userSelect = \"\";\nvar elementMap = /* @__PURE__ */ new WeakMap();\nfunction disableTextSelectionImpl(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state === \"default\") {\n userSelect = rootEl.style.webkitUserSelect;\n rootEl.style.webkitUserSelect = \"none\";\n }\n state = \"disabled\";\n } else if (target) {\n elementMap.set(target, target.style.userSelect);\n target.style.userSelect = \"none\";\n }\n return () => restoreTextSelection({ target, doc: docNode });\n}\nfunction restoreTextSelection(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state !== \"disabled\") return;\n state = \"restoring\";\n setTimeout(() => {\n nextTick(() => {\n if (state === \"restoring\") {\n if (rootEl.style.webkitUserSelect === \"none\") {\n rootEl.style.webkitUserSelect = userSelect || \"\";\n }\n userSelect = \"\";\n state = \"default\";\n }\n });\n }, 300);\n } else {\n if (target && elementMap.has(target)) {\n const prevUserSelect = elementMap.get(target);\n if (target.style.userSelect === \"none\") {\n target.style.userSelect = prevUserSelect ?? \"\";\n }\n if (target.getAttribute(\"style\") === \"\") {\n target.removeAttribute(\"style\");\n }\n elementMap.delete(target);\n }\n }\n}\nfunction disableTextSelection(options = {}) {\n const { defer, target, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof target === \"function\" ? target() : target;\n cleanups.push(disableTextSelectionImpl({ ...restOptions, target: node }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/pointer-move.ts\nfunction trackPointerMove(doc, handlers) {\n const { onPointerMove, onPointerUp } = handlers;\n const handleMove = (event) => {\n const point = getEventPoint(event);\n const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n const moveBuffer = event.pointerType === \"touch\" ? 10 : 5;\n if (distance < moveBuffer) return;\n if (event.pointerType === \"mouse\" && event.button === 0) {\n handleUp(event);\n return;\n }\n onPointerMove({ point, event });\n };\n const handleUp = (event) => {\n const point = getEventPoint(event);\n onPointerUp({ point, event });\n };\n const cleanups = [\n addDomEvent(doc, \"pointermove\", handleMove, false),\n addDomEvent(doc, \"pointerup\", handleUp, false),\n addDomEvent(doc, \"pointercancel\", handleUp, false),\n addDomEvent(doc, \"contextmenu\", handleUp, false),\n disableTextSelection({ doc })\n ];\n return () => {\n cleanups.forEach((cleanup) => cleanup());\n };\n}\n\n// src/press.ts\nfunction trackPress(options) {\n const {\n pointerNode,\n keyboardNode = pointerNode,\n onPress,\n onPressStart,\n onPressEnd,\n isValidKey = (e) => e.key === \"Enter\"\n } = options;\n if (!pointerNode) return noop;\n const win = getWindow(pointerNode);\n let removeStartListeners = noop;\n let removeEndListeners = noop;\n let removeAccessibleListeners = noop;\n const getInfo = (event) => ({\n point: getEventPoint(event),\n event\n });\n function startPress(event) {\n onPressStart?.(getInfo(event));\n }\n function cancelPress(event) {\n onPressEnd?.(getInfo(event));\n }\n const startPointerPress = (startEvent) => {\n removeEndListeners();\n const endPointerPress = (endEvent) => {\n const target = getEventTarget(endEvent);\n if (contains(pointerNode, target)) {\n onPress?.(getInfo(endEvent));\n } else {\n onPressEnd?.(getInfo(endEvent));\n }\n };\n const removePointerUpListener = addDomEvent(win, \"pointerup\", endPointerPress, { passive: !onPress, once: true });\n const removePointerCancelListener = addDomEvent(win, \"pointercancel\", cancelPress, {\n passive: !onPressEnd,\n once: true\n });\n removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n if (isActiveElement(keyboardNode) && startEvent.pointerType === \"mouse\") {\n startEvent.preventDefault();\n }\n startPress(startEvent);\n };\n const removePointerListener = addDomEvent(pointerNode, \"pointerdown\", startPointerPress, { passive: !onPressStart });\n const removeFocusListener = addDomEvent(keyboardNode, \"focus\", startAccessiblePress);\n removeStartListeners = pipe(removePointerListener, removeFocusListener);\n function startAccessiblePress() {\n const handleKeydown = (keydownEvent) => {\n if (!isValidKey(keydownEvent)) return;\n const handleKeyup = (keyupEvent) => {\n if (!isValidKey(keyupEvent)) return;\n const evt2 = new win.PointerEvent(\"pointerup\");\n const info = getInfo(evt2);\n onPress?.(info);\n onPressEnd?.(info);\n };\n removeEndListeners();\n removeEndListeners = addDomEvent(keyboardNode, \"keyup\", handleKeyup);\n const evt = new win.PointerEvent(\"pointerdown\");\n startPress(evt);\n };\n const handleBlur = () => {\n const evt = new win.PointerEvent(\"pointercancel\");\n cancelPress(evt);\n };\n const removeKeydownListener = addDomEvent(keyboardNode, \"keydown\", handleKeydown);\n const removeBlurListener = addDomEvent(keyboardNode, \"blur\", handleBlur);\n removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n }\n return () => {\n removeStartListeners();\n removeEndListeners();\n removeAccessibleListeners();\n };\n}\n\n// src/proxy-tab-focus.ts\nfunction proxyTabFocusImpl(container, options = {}) {\n const { triggerElement, onFocus, onFocusEnter } = 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 && isActiveElement(nextTabbableAfterTrigger)) {\n onFocusEnter?.();\n elementToFocus = lastTabbable;\n } else if (event.shiftKey && (isActiveElement(firstTabbable) || noTabbableElements)) {\n elementToFocus = triggerElement;\n } else if (!event.shiftKey && isActiveElement(triggerElement)) {\n onFocusEnter?.();\n elementToFocus = firstTabbable;\n } else if (!event.shiftKey && (isActiveElement(lastTabbable) || noTabbableElements)) {\n elementToFocus = nextTabbableAfterTrigger;\n }\n if (!elementToFocus) return;\n event.preventDefault();\n if (typeof onFocus === \"function\") {\n onFocus(elementToFocus);\n } else {\n elementToFocus.focus();\n }\n }\n return addDomEvent(doc, \"keydown\", onKeyDown, true);\n}\nfunction proxyTabFocus(container, options) {\n const { defer, triggerElement, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof container === \"function\" ? container() : container;\n const trigger = typeof triggerElement === \"function\" ? triggerElement() : triggerElement;\n cleanups.push(proxyTabFocusImpl(node, { triggerElement: trigger, ...restOptions }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/query.ts\nfunction queryAll(root, selector) {\n return Array.from(root?.querySelectorAll(selector) ?? []);\n}\nfunction query(root, selector) {\n return root?.querySelector(selector) ?? null;\n}\nvar defaultItemToId = (v) => v.id;\nfunction itemById(v, id, itemToId = defaultItemToId) {\n return v.find((item) => itemToId(item) === id);\n}\nfunction indexOfId(v, id, itemToId = defaultItemToId) {\n const item = itemById(v, id, itemToId);\n return item ? v.indexOf(item) : -1;\n}\nfunction nextById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n idx = loop ? (idx + 1) % v.length : Math.min(idx + 1, v.length - 1);\n return v[idx];\n}\nfunction prevById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n if (idx === -1) return loop ? v[v.length - 1] : null;\n idx = loop ? (idx - 1 + v.length) % v.length : Math.max(0, idx - 1);\n return v[idx];\n}\n\n// src/resize-observer.ts\nfunction 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,\n getById: (ctx, id) => dom.getRootNode(ctx).getElementById(id),\n setValue: (elem, value) => {\n if (elem == null || value == null) return;\n setElementValue(elem, value.toString());\n }\n };\n return { ...dom, ...methods };\n}\n\n// src/searchable.ts\nvar sanitize = (str) => str.split(\"\").map((char) => {\n const code = char.charCodeAt(0);\n if (code > 0 && code < 128) return char;\n if (code >= 128 && code <= 255) return `/x${code.toString(16)}`.replace(\"/\", \"\\\\\");\n return \"\";\n}).join(\"\").trim();\nvar getValueText = (el) => {\n return sanitize(el.dataset?.valuetext ?? el.textContent ?? \"\");\n};\nvar match = (valueText, query2) => {\n return valueText.trim().toLowerCase().startsWith(query2.toLowerCase());\n};\nfunction getByText(v, text, currentId, itemToId = defaultItemToId) {\n const index = currentId ? indexOfId(v, currentId, itemToId) : -1;\n let items = currentId ? wrap(v, index) : v;\n const isSingleKey = text.length === 1;\n if (isSingleKey) {\n items = items.filter((item) => itemToId(item) !== currentId);\n }\n return items.find((item) => match(getValueText(item), text));\n}\n\n// src/set.ts\nfunction setAttribute(el, attr, v) {\n const prev = el.getAttribute(attr);\n const exists = prev != null;\n el.setAttribute(attr, v);\n return () => {\n if (!exists) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, prev);\n }\n };\n}\nfunction setProperty(el, prop, v) {\n const exists = prop in el;\n const prev = el[prop];\n el[prop] = v;\n return () => {\n if (!exists) {\n delete el[prop];\n } else {\n el[prop] = prev;\n }\n };\n}\nfunction setStyle(el, style) {\n if (!el) return noop;\n const prev = Object.keys(style).reduce((acc, key) => {\n acc[key] = el.style.getPropertyValue(key);\n return acc;\n }, {});\n Object.assign(el.style, style);\n return () => {\n Object.assign(el.style, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\nfunction setStyleProperty(el, prop, value) {\n if (!el) return noop;\n const prev = el.style.getPropertyValue(prop);\n el.style.setProperty(prop, value);\n return () => {\n el.style.setProperty(prop, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\n\n// src/typeahead.ts\nfunction getByTypeaheadImpl(baseItems, options) {\n const { state: state2, activeId, key, timeout = 350, itemToId } = options;\n const search = state2.keysSoFar + key;\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const query2 = isRepeated ? search[0] : search;\n let items = baseItems.slice();\n const next = getByText(items, query2, activeId, itemToId);\n function cleanup() {\n clearTimeout(state2.timer);\n state2.timer = -1;\n }\n function update(value) {\n state2.keysSoFar = value;\n cleanup();\n if (value !== \"\") {\n state2.timer = +setTimeout(() => {\n update(\"\");\n cleanup();\n }, timeout);\n }\n }\n update(search);\n return next;\n}\nvar getByTypeahead = /* @__PURE__ */ Object.assign(getByTypeaheadImpl, {\n defaultOptions: { keysSoFar: \"\", timer: -1 },\n isValidEvent: isValidTypeaheadEvent\n});\nfunction isValidTypeaheadEvent(event) {\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\n\n// src/visual-viewport.ts\nfunction trackVisualViewport(doc, fn) {\n const win = doc?.defaultView || window;\n const onResize = () => {\n fn?.(getViewportSize(win));\n };\n onResize();\n return addDomEvent(win.visualViewport ?? win, \"resize\", onResize);\n}\nfunction getViewportSize(win) {\n return {\n width: win.visualViewport?.width || win.innerWidth,\n height: win.visualViewport?.height || win.innerHeight\n };\n}\n\n// src/visually-hidden.ts\nvar visuallyHiddenStyle = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n};\nfunction setVisuallyHidden(el) {\n Object.assign(el.style, visuallyHiddenStyle);\n}\n\n// src/wait-for.ts\nfunction waitForPromise(promise, controller, timeout) {\n const { signal } = controller;\n const wrappedPromise = new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n reject(new Error(`Timeout of ${timeout}ms exceeded`));\n }, timeout);\n signal.addEventListener(\"abort\", () => {\n clearTimeout(timeoutId);\n reject(new Error(\"Promise aborted\"));\n });\n promise.then((result) => {\n if (!signal.aborted) {\n clearTimeout(timeoutId);\n resolve(result);\n }\n }).catch((error) => {\n if (!signal.aborted) {\n clearTimeout(timeoutId);\n reject(error);\n }\n });\n });\n const abort = () => controller.abort();\n return [wrappedPromise, abort];\n}\nfunction waitForElement(target, options) {\n const { timeout, rootNode } = options;\n const win = getWindow(rootNode);\n const doc = getDocument(rootNode);\n const controller = new win.AbortController();\n return waitForPromise(\n new Promise((resolve) => {\n const el = target();\n if (el) {\n resolve(el);\n return;\n }\n const observer = new win.MutationObserver(() => {\n const el2 = target();\n if (el2 && el2.isConnected) {\n observer.disconnect();\n resolve(el2);\n }\n });\n observer.observe(doc.body, {\n childList: true,\n subtree: true\n });\n }),\n controller,\n timeout\n );\n}\n\nexport { MAX_Z_INDEX, addDomEvent, ariaAttr, clickIfLink, contains, createScope, dataAttr, defaultItemToId, disableTextSelection, dispatchInputCheckedEvent, dispatchInputValueEvent, findControlledElements, getActiveElement, getBeforeInputValue, getByText, getByTypeahead, getComputedStyle, getControlledElements, getDataUrl, getDocument, getDocumentElement, getEventKey, getEventPoint, getEventStep, getEventTarget, getFirstFocusable, getFirstTabbable, getFocusables, getInitialFocus, getLastTabbable, getNativeEvent, getNearestOverflowAncestor, getNextTabbable, getNodeName, getOverflowAncestors, getParentNode, getPlatform, getRelativePoint, getRootNode, getScrollPosition, getTabIndex, getTabbableEdges, getTabbables, getUserAgent, getWindow, hasControllerElements, indexOfId, isActiveElement, isAnchorElement, isAndroid, isApple, isCaretAtStart, isChrome, isComposingEvent, isContextMenuEvent, isControlledByExpandedController, isControlledElement, isControllerElement, isCtrlOrMetaKey, isDocument, isDom, isDownloadingEvent, isEditableElement, isElementVisible, isFirefox, isFocusable, isHTMLElement, isIPad, isIPhone, isInView, isInputElement, isInteractiveContainerElement, isIos, isKeyboardClick, isLeftClick, isMac, isModifierKey, isNode, isOpeningInNewTab, isOverflowElement, isPrintableKey, isRootElement, isSafari, 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, waitForPromise };\n","import { callAll, isEqual, isString } from '@zag-js/utils';\nimport { isActiveElement, getActiveElement, getDocument } from '@zag-js/dom-query';\n\n// src/merge-props.ts\nvar clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(\" \");\nvar CSS_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\nvar serialize = (style) => {\n const res = {};\n let match;\n while (match = CSS_REGEX.exec(style)) {\n res[match[1]] = match[2];\n }\n return res;\n};\nvar css = (a, b) => {\n if (isString(a)) {\n if (isString(b)) return `${a};${b}`;\n a = serialize(a);\n } else if (isString(b)) {\n b = serialize(b);\n }\n return Object.assign({}, a ?? {}, b ?? {});\n};\nfunction mergeProps(...args) {\n let result = {};\n for (let props of args) {\n if (!props) continue;\n for (let key in result) {\n if (key.startsWith(\"on\") && typeof result[key] === \"function\" && typeof props[key] === \"function\") {\n result[key] = callAll(props[key], result[key]);\n continue;\n }\n if (key === \"className\" || key === \"class\") {\n result[key] = clsx(result[key], props[key]);\n continue;\n }\n if (key === \"style\") {\n result[key] = css(result[key], props[key]);\n continue;\n }\n result[key] = props[key] !== void 0 ? props[key] : result[key];\n }\n for (let key in props) {\n if (result[key] === void 0) {\n result[key] = props[key];\n }\n }\n const symbols = Object.getOwnPropertySymbols(props);\n for (let symbol of symbols) {\n result[symbol] = props[symbol];\n }\n }\n return result;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return (depArgs) => {\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => !isEqual(deps[index], dep));\n if (!depsChanged) return result;\n deps = newDeps;\n result = fn(newDeps, depArgs);\n opts?.onChange?.(result);\n return result;\n };\n}\n\n// src/create-machine.ts\nfunction createGuards() {\n return {\n and: (...guards) => {\n return function andGuard(params) {\n return guards.every((str) => params.guard(str));\n };\n },\n or: (...guards) => {\n return function orGuard(params) {\n return guards.some((str) => params.guard(str));\n };\n },\n not: (guard) => {\n return function notGuard(params) {\n return !params.guard(guard);\n };\n }\n };\n}\nfunction createMachine(config) {\n return config;\n}\nfunction setup() {\n return {\n guards: createGuards(),\n createMachine: (config) => {\n return createMachine(config);\n },\n choose: (transitions) => {\n return function chooseFn({ choose }) {\n return choose(transitions)?.actions;\n };\n }\n };\n}\n\n// src/types.ts\nvar MachineStatus = /* @__PURE__ */ ((MachineStatus2) => {\n MachineStatus2[\"NotStarted\"] = \"Not Started\";\n MachineStatus2[\"Started\"] = \"Started\";\n MachineStatus2[\"Stopped\"] = \"Stopped\";\n return MachineStatus2;\n})(MachineStatus || {});\nvar INIT_STATE = \"__init__\";\nfunction createScope(props) {\n const getRootNode = () => props.getRootNode?.() ?? document;\n const getDoc = () => getDocument(getRootNode());\n const getWin = () => getDoc().defaultView ?? window;\n const getActiveElementFn = () => getActiveElement(getRootNode());\n const getById = (id) => getRootNode().getElementById(id);\n return {\n ...props,\n getRootNode,\n getDoc,\n getWin,\n getActiveElement: getActiveElementFn,\n isActiveElement,\n getById\n };\n}\n\nexport { INIT_STATE, MachineStatus, createGuards, createMachine, createScope, memo, mergeProps, setup };\n","// src/prop-types.ts\nfunction createNormalizer(fn) {\n return new Proxy({}, {\n get(_target, key) {\n if (key === \"style\")\n return (props) => {\n return fn({ style: props }).style;\n };\n return fn;\n }\n });\n}\n\n// src/create-props.ts\nvar createProps = () => (props) => Array.from(new Set(props));\n\nexport { createNormalizer, createProps };\n","\"use client\";\n\nimport { createScope, MachineStatus, INIT_STATE } from '@zag-js/core';\nexport { mergeProps } from '@zag-js/core';\nimport { compact, ensure, isFunction, warn, toArray, isString, identity } from '@zag-js/utils';\nimport * as React from 'react';\nimport { useMemo, useRef, useLayoutEffect, useEffect, useState } from 'react';\nimport { flushSync, createPortal } from 'react-dom';\nimport { createNormalizer } from '@zag-js/types';\nimport { jsx } from 'react/jsx-runtime';\n\n// src/index.ts\nvar useSafeLayoutEffect = typeof globalThis.document !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/bindable.ts\nfunction useBindable(props) {\n const initial = props().value ?? props().defaultValue;\n const eq = props().isEqual ?? Object.is;\n const [initialValue] = useState(initial);\n const [value, setValue] = useState(initialValue);\n const controlled = props().value !== void 0;\n const valueRef = useRef(value);\n valueRef.current = controlled ? props().value : value;\n const prevValue = useRef(valueRef.current);\n useSafeLayoutEffect(() => {\n prevValue.current = valueRef.current;\n }, [value, props().value]);\n const setFn = (value2) => {\n const prev = prevValue.current;\n const next = isFunction(value2) ? value2(prev) : value2;\n if (props().debug) {\n console.log(`[bindable > ${props().debug}] setValue`, { next, prev });\n }\n if (!controlled) setValue(next);\n if (!eq(next, prev)) {\n props().onChange?.(next, prev);\n }\n };\n function get() {\n return controlled ? props().value : value;\n }\n return {\n initial: initialValue,\n ref: valueRef,\n get,\n set(value2) {\n const exec = props().sync ? flushSync : identity;\n exec(() => setFn(value2));\n },\n invoke(nextValue, prevValue2) {\n props().onChange?.(nextValue, prevValue2);\n },\n hash(value2) {\n return props().hash?.(value2) ?? String(value2);\n }\n };\n}\nuseBindable.cleanup = (fn) => {\n useEffect(() => fn, []);\n};\nuseBindable.ref = (defaultValue) => {\n const value = useRef(defaultValue);\n return {\n get: () => value.current,\n set: (next) => {\n value.current = next;\n }\n };\n};\nfunction useRefs(refs) {\n const ref = useRef(refs);\n return {\n get(key) {\n return ref.current[key];\n },\n set(key, value) {\n ref.current[key] = value;\n }\n };\n}\nvar useTrack = (deps, effect) => {\n const render = useRef(false);\n const called = useRef(false);\n useEffect(() => {\n const mounted = render.current;\n const run = mounted && called.current;\n if (run) return effect();\n called.current = true;\n }, [...(deps ?? []).map((d) => typeof d === \"function\" ? d() : d)]);\n useEffect(() => {\n render.current = true;\n return () => {\n render.current = false;\n };\n }, []);\n};\n\n// src/machine.ts\nfunction useMachine(machine, userProps = {}) {\n const scope = useMemo(() => {\n const { id, ids, getRootNode } = userProps;\n return createScope({ id, ids, getRootNode });\n }, [userProps]);\n const debug = (...args) => {\n if (machine.debug) console.log(...args);\n };\n const props = machine.props?.({ props: compact(userProps), scope }) ?? userProps;\n const prop = useProp(props);\n const context = machine.context?.({\n prop,\n bindable: useBindable,\n scope,\n flush,\n getContext() {\n return ctx;\n },\n getComputed() {\n return computed;\n },\n getRefs() {\n return refs;\n },\n getEvent() {\n return getEvent();\n }\n });\n const contextRef = useLiveRef(context);\n const ctx = {\n get(key) {\n return contextRef.current?.[key].ref.current;\n },\n set(key, value) {\n contextRef.current?.[key].set(value);\n },\n initial(key) {\n return contextRef.current?.[key].initial;\n },\n hash(key) {\n const current = contextRef.current?.[key].get();\n return contextRef.current?.[key].hash(current);\n }\n };\n const effects = useRef(/* @__PURE__ */ new Map());\n const transitionRef = useRef(null);\n const previousEventRef = useRef(null);\n const eventRef = useRef({ type: \"\" });\n const getEvent = () => ({\n ...eventRef.current,\n current() {\n return eventRef.current;\n },\n previous() {\n return previousEventRef.current;\n }\n });\n const getState = () => ({\n ...state,\n matches(...values) {\n return values.includes(state.ref.current);\n },\n hasTag(tag) {\n return !!machine.states[state.ref.current]?.tags?.includes(tag);\n }\n });\n const refs = useRefs(machine.refs?.({ prop, context: ctx }) ?? {});\n const getParams = () => ({\n state: getState(),\n context: ctx,\n event: getEvent(),\n prop,\n send,\n action,\n guard,\n track: useTrack,\n refs,\n computed,\n flush,\n scope,\n choose\n });\n const action = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.actions?.[s];\n if (!fn) warn(`[zag-js] No implementation found for action \"${JSON.stringify(s)}\"`);\n return fn;\n });\n for (const fn of fns) {\n fn?.(getParams());\n }\n };\n const guard = (str) => {\n if (isFunction(str)) return str(getParams());\n return machine.implementations?.guards?.[str](getParams());\n };\n const effect = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.effects?.[s];\n if (!fn) warn(`[zag-js] No implementation found for effect \"${JSON.stringify(s)}\"`);\n return fn;\n });\n const cleanups = [];\n for (const fn of fns) {\n const cleanup = fn?.(getParams());\n if (cleanup) cleanups.push(cleanup);\n }\n return () => cleanups.forEach((fn) => fn?.());\n };\n const choose = (transitions) => {\n return toArray(transitions).find((t) => {\n let result = !t.guard;\n if (isString(t.guard)) result = !!guard(t.guard);\n else if (isFunction(t.guard)) result = t.guard(getParams());\n return result;\n });\n };\n const computed = (key) => {\n ensure(machine.computed, () => `[zag-js] No computed object found on machine`);\n const fn = machine.computed[key];\n return fn({\n context: ctx,\n event: getEvent(),\n prop,\n refs,\n scope,\n computed\n });\n };\n const state = useBindable(() => ({\n defaultValue: machine.initialState({ prop }),\n onChange(nextState, prevState) {\n if (prevState) {\n const exitEffects = effects.current.get(prevState);\n exitEffects?.();\n effects.current.delete(prevState);\n }\n if (prevState) {\n action(machine.states[prevState]?.exit);\n }\n action(transitionRef.current?.actions);\n const cleanup = effect(machine.states[nextState]?.effects);\n if (cleanup) effects.current.set(nextState, cleanup);\n if (prevState === INIT_STATE) {\n action(machine.entry);\n const cleanup2 = effect(machine.effects);\n if (cleanup2) effects.current.set(INIT_STATE, cleanup2);\n }\n action(machine.states[nextState]?.entry);\n }\n }));\n const hydratedStateRef = useRef(void 0);\n const statusRef = useRef(MachineStatus.NotStarted);\n useSafeLayoutEffect(() => {\n queueMicrotask(() => {\n const started = statusRef.current === MachineStatus.Started;\n statusRef.current = MachineStatus.Started;\n debug(started ? \"rehydrating...\" : \"initializing...\");\n const initialState = hydratedStateRef.current ?? state.initial;\n state.invoke(initialState, started ? state.get() : INIT_STATE);\n });\n const fns = effects.current;\n const currentState = state.ref.current;\n return () => {\n debug(\"unmounting...\");\n hydratedStateRef.current = currentState;\n statusRef.current = MachineStatus.Stopped;\n fns.forEach((fn) => fn?.());\n effects.current = /* @__PURE__ */ new Map();\n transitionRef.current = null;\n queueMicrotask(() => {\n action(machine.exit);\n });\n };\n }, []);\n const getCurrentState = () => {\n if (\"ref\" in state) return state.ref.current;\n return state.get();\n };\n const send = (event) => {\n queueMicrotask(() => {\n if (statusRef.current !== MachineStatus.Started) return;\n previousEventRef.current = eventRef.current;\n eventRef.current = event;\n let currentState = getCurrentState();\n const transitions = (\n // @ts-ignore\n machine.states[currentState].on?.[event.type] ?? // @ts-ignore\n machine.on?.[event.type]\n );\n const transition = choose(transitions);\n if (!transition) return;\n transitionRef.current = transition;\n const target = transition.target ?? currentState;\n debug(\"transition\", event.type, transition.target || currentState, `(${transition.actions})`);\n const changed = target !== currentState;\n if (changed) {\n flushSync(() => state.set(target));\n } else if (transition.reenter && !changed) {\n state.invoke(currentState, currentState);\n } else {\n action(transition.actions ?? []);\n }\n });\n };\n machine.watch?.(getParams());\n return {\n state: getState(),\n send,\n context: ctx,\n prop,\n scope,\n refs,\n computed,\n event: getEvent(),\n getStatus: () => statusRef.current\n };\n}\nfunction useLiveRef(value) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\nfunction useProp(value) {\n const ref = useLiveRef(value);\n return function get(key) {\n return ref.current[key];\n };\n}\nfunction flush(fn) {\n queueMicrotask(() => {\n flushSync(() => fn());\n });\n}\nvar normalizeProps = createNormalizer((v) => v);\nvar Portal = (props) => {\n const { children, container, disabled, getRootNode } = props;\n const isServer = typeof window === \"undefined\";\n if (isServer || disabled) return /* @__PURE__ */ jsx(React.Fragment, { children });\n const doc = getRootNode?.().ownerDocument ?? document;\n const mountNode = container?.current ?? doc.body;\n return /* @__PURE__ */ jsx(React.Fragment, { children: React.Children.map(children, (child) => createPortal(child, mountNode)) });\n};\n\nexport { Portal, normalizeProps, useMachine };\n","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, isValidElement, Children, 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 if (!isValidElement(children)) {\n return null;\n }\n const onlyChild = Children.only(children);\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';\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","// src/create-anatomy.ts\nvar createAnatomy = (name, parts = []) => ({\n parts: (...values) => {\n if (isEmpty(parts)) {\n return createAnatomy(name, values);\n }\n throw new Error(\"createAnatomy().parts(...) should only be called once. Did you mean to use .extendWith(...) ?\");\n },\n extendWith: (...values) => createAnatomy(name, [...parts, ...values]),\n omit: (...values) => createAnatomy(name, parts.filter((part) => !values.includes(part))),\n rename: (newName) => createAnatomy(newName, parts),\n keys: () => parts,\n build: () => [...new Set(parts)].reduce(\n (prev, part) => Object.assign(prev, {\n [part]: {\n selector: [\n `&[data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`,\n `& [data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`\n ].join(\", \"),\n attrs: { \"data-scope\": toKebabCase(name), \"data-part\": toKebabCase(part) }\n }\n }),\n {}\n )\n});\nvar toKebabCase = (value) => value.replace(/([A-Z])([A-Z])/g, \"$1-$2\").replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\nvar isEmpty = (v) => v.length === 0;\n\nexport { createAnatomy };\n","'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 { 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","/**\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}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(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}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\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 const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\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\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\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\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 = originSides.has(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 = originSides.has(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}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\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) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\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 transformProperties.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) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.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}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(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, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, 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$1(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$1(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) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - 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) : 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$1(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\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\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 const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\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$1(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$1(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$1(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 && absoluteOrFixed.has(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\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 function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\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 setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\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$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(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$1(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 } 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 getSideAxis = (side) => side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\nfunction createTransformOriginMiddleware(opts, arrowEl) {\n return {\n name: \"transformOrigin\",\n fn(state) {\n const { elements, middlewareData, placement, rects, y } = state;\n const side = placement.split(\"-\")[0];\n const axis = getSideAxis(side);\n const arrowX = middlewareData.arrow?.x || 0;\n const arrowY = middlewareData.arrow?.y || 0;\n const arrowWidth = arrowEl?.clientWidth || 0;\n const arrowHeight = arrowEl?.clientHeight || 0;\n const transformX = arrowX + arrowWidth / 2;\n const transformY = arrowY + arrowHeight / 2;\n const shiftY = Math.abs(middlewareData.shift?.y || 0);\n const halfAnchorHeight = rects.reference.height / 2;\n const arrowOffset = arrowHeight / 2;\n const gutter = opts.offset?.mainAxis ?? opts.gutter;\n const sideOffsetValue = typeof gutter === \"number\" ? gutter + arrowOffset : gutter ?? arrowOffset;\n const isOverlappingAnchor = shiftY > sideOffsetValue;\n const adjacentTransformOrigin = {\n top: `${transformX}px calc(100% + ${sideOffsetValue}px)`,\n bottom: `${transformX}px ${-sideOffsetValue}px`,\n left: `calc(100% + ${sideOffsetValue}px) ${transformY}px`,\n right: `${-sideOffsetValue}px ${transformY}px`\n }[side];\n const overlapTransformOrigin = `${transformX}px ${rects.reference.y + halfAnchorHeight - y}px`;\n const useOverlap = Boolean(opts.overlap) && axis === \"y\" && isOverlappingAnchor;\n elements.floating.style.setProperty(\n cssVars.transformOrigin.variable,\n useOverlap ? overlapTransformOrigin : adjacentTransformOrigin\n );\n return {\n data: {\n transformOrigin: useOverlap ? overlapTransformOrigin : adjacentTransformOrigin\n }\n };\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 resolveBoundaryOption(boundary) {\n if (typeof boundary === \"function\") return boundary();\n if (boundary === \"clipping-ancestors\") return \"clippingAncestors\";\n return boundary;\n}\nfunction getArrowMiddleware(arrowElement, doc, opts) {\n const element = arrowElement || doc.createElement(\"div\");\n return arrow({ element, padding: opts.arrowPadding });\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 const boundary = resolveBoundaryOption(opts.boundary);\n return flip({\n ...boundary ? { boundary } : void 0,\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 const boundary = resolveBoundaryOption(opts.boundary);\n return shift({\n ...boundary ? { boundary } : void 0,\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 const referenceHeight = Math.round(rects.reference.height);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n floating.style.setProperty(\"--reference-width\", `${referenceWidth}px`);\n floating.style.setProperty(\"--reference-height\", `${referenceHeight}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: resolveBoundaryOption(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, floating.ownerDocument, options),\n shiftArrowMiddleware(arrowEl),\n createTransformOriginMiddleware(\n { gutter: options.gutter, offset: options.offset, overlap: options.overlap },\n arrowEl\n ),\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, floatingElement: floating });\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","import { raf, getDocument, getWindow, isShadowRoot, addDomEvent, isTouchDevice, getEventTarget, isFocusable, isContextMenuEvent, isHTMLElement, contains, isControlledElement, 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 {\n exclude,\n onFocusOutside,\n onPointerDownOutside,\n onInteractOutside,\n defer,\n followControlledElements = true\n } = 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 if (followControlledElements && isControlledElement(node, target)) 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, waitForElement, isHTMLElement, setStyle, addDomEvent, getEventTarget } 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 LAYER_REQUEST_DISMISS_EVENT = \"layer:request-dismiss\";\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 getLayersByType(type) {\n return this.layers.filter((layer) => layer.type === type);\n },\n getNestedLayersByType(node, type) {\n const index = this.indexOf(node);\n if (index === -1) return [];\n return this.layers.slice(index + 1).filter((layer) => layer.type === type);\n },\n getParentLayerOfType(node, type) {\n const index = this.indexOf(node);\n if (index <= 0) return void 0;\n return this.layers.slice(0, index).reverse().find((layer) => layer.type === type);\n },\n countNestedLayersOfType(node, type) {\n return this.getNestedLayersByType(node, type).length;\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 this.layers.push(layer);\n this.syncLayers();\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) => layerStack.dismiss(layer.node, node));\n }\n this.layers.splice(index, 1);\n this.syncLayers();\n },\n removeBranch(node) {\n const index = this.branches.indexOf(node);\n if (index >= 0) this.branches.splice(index, 1);\n },\n syncLayers() {\n this.layers.forEach((layer, index) => {\n layer.node.style.setProperty(\"--layer-index\", `${index}`);\n layer.node.removeAttribute(\"data-nested\");\n layer.node.removeAttribute(\"data-has-nested\");\n const parentOfSameType = this.getParentLayerOfType(layer.node, layer.type);\n if (parentOfSameType) {\n layer.node.setAttribute(\"data-nested\", layer.type);\n }\n const nestedCount = this.countNestedLayersOfType(layer.node, layer.type);\n if (nestedCount > 0) {\n layer.node.setAttribute(\"data-has-nested\", layer.type);\n }\n layer.node.style.setProperty(\"--nested-layer-count\", `${nestedCount}`);\n });\n },\n indexOf(node) {\n return this.layers.findIndex((layer) => layer.node === node);\n },\n dismiss(node, parent) {\n const index = this.indexOf(node);\n if (index === -1) return;\n const layer = this.layers[index];\n addListenerOnce(node, LAYER_REQUEST_DISMISS_EVENT, (event) => {\n layer.requestDismiss?.(event);\n if (!event.defaultPrevented) {\n layer?.dismiss();\n }\n });\n fireCustomEvent(node, LAYER_REQUEST_DISMISS_EVENT, {\n originalLayer: node,\n targetLayer: parent,\n originalIndex: index,\n targetIndex: parent ? this.indexOf(parent) : -1\n });\n this.syncLayers();\n },\n clear() {\n this.remove(this.layers[0].node);\n }\n};\nfunction fireCustomEvent(el, type, detail) {\n const win = el.ownerDocument.defaultView || window;\n const event = new win.CustomEvent(type, { cancelable: true, bubbles: true, detail });\n return el.dispatchEvent(event);\n}\nfunction addListenerOnce(el, type, callback) {\n el.addEventListener(type, callback, { once: true });\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 persistentElements?.forEach((el) => {\n const [promise, abort] = waitForElement(\n () => {\n const node2 = el();\n return isHTMLElement(node2) ? node2 : null;\n },\n { timeout: 1e3 }\n );\n promise.then((el2) => cleanups.push(setStyle(el2, { pointerEvents: \"auto\" })));\n cleanups.push(abort);\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, onRequestDismiss, pointerBlocking, exclude: excludeContainers, debug, type = \"dialog\" } = options;\n const layer = { dismiss: onDismiss, node, type, pointerBlocking, requestDismiss: onRequestDismiss };\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","'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 { 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, prop, send }) {\n track([() => prop(\"present\")], () => {\n send({ type: \"PRESENCE.CHANGED\" });\n });\n },\n on: {\n \"NODE.SET\": {\n actions: [\"setupNode\"]\n },\n \"PRESENCE.CHANGED\": {\n actions: [\"setInitial\", \"syncPresence\"]\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 invokeOnExitComplete: ({ prop }) => {\n prop(\"onExitComplete\")?.();\n },\n setupNode: ({ refs, event }) => {\n if (refs.get(\"node\") === event.node) return;\n refs.set(\"node\", event.node);\n refs.set(\"styles\", getComputedStyle(event.node));\n },\n cleanupNode: ({ refs }) => {\n refs.set(\"node\", null);\n refs.set(\"styles\", null);\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, prop }) => {\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\") && !prop(\"present\")) {\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 (...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","'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 { 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 { isHTMLElement, findControlledElements } from '@zag-js/dom-query';\n\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 ignoreableNodes = /* @__PURE__ */ new Set([\"script\", \"output\", \"status\", \"next-route-announcer\"]);\nvar isIgnoredNode = (node) => {\n if (ignoreableNodes.has(node.localName)) return true;\n if (node.role === \"status\") 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, followControlledElements = true } = 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((target) => {\n keep(target);\n if (followControlledElements && isHTMLElement(target)) {\n findControlledElements(target, (controlledElement) => {\n keep(controlledElement);\n });\n }\n });\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\", followControlledElements = true) => {\n if (!parentNode) return;\n return walkTreeOutside(originalTarget, {\n parentNode,\n markerName,\n controlAttribute: \"aria-hidden\",\n followControlledElements\n });\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","import { getDocument, getControlledElements, isControlledElement, getTabbables, getFocusables, isTabbable, getTabIndex, addDomEvent, getActiveElement, raf, getEventTarget, isDocument, hasControllerElements, isControlledByExpandedController, isFocusable } 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 // Track portal containers that contain controlled elements\n __publicField(this, \"portalContainers\", /* @__PURE__ */ new Set());\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 const hasControlledChanges = mutations.some((mutation) => {\n if (mutation.type === \"attributes\" && (mutation.attributeName === \"aria-controls\" || mutation.attributeName === \"aria-expanded\")) {\n return true;\n }\n if (mutation.type === \"childList\" && mutation.addedNodes.length > 0) {\n return Array.from(mutation.addedNodes).some((node) => {\n if (node.nodeType !== Node.ELEMENT_NODE) return false;\n const element = node;\n if (hasControllerElements(element)) {\n return true;\n }\n if (element.id && !this.state.containers.some((c) => c.contains(element))) {\n return isControlledByExpandedController(element);\n }\n return false;\n });\n }\n return false;\n });\n if (hasControlledChanges && this.state.active && !this.state.paused) {\n this.updateTabbableNodes();\n this.updatePortalContainers();\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, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"aria-controls\", \"aria-expanded\"]\n });\n });\n this.portalContainers.forEach((portalContainer) => {\n this.observePortalContainer(portalContainer);\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 const activeElement = getActiveElement(this.doc);\n if (activeElement && this.findContainerIndex(activeElement) >= 0) {\n node = 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 this.portalContainers.clear();\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 followControlledElements: 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 addPortalContainer(controlledElement) {\n const portalContainer = controlledElement.parentElement;\n if (portalContainer && !this.portalContainers.has(portalContainer)) {\n this.portalContainers.add(portalContainer);\n if (this.state.active && !this.state.paused) {\n this.observePortalContainer(portalContainer);\n }\n }\n }\n observePortalContainer(portalContainer) {\n this._mutationObserver?.observe(portalContainer, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"aria-controls\", \"aria-expanded\"]\n });\n }\n updatePortalContainers() {\n if (!this.config.followControlledElements) return;\n this.state.containers.forEach((container) => {\n const controlledElements = getControlledElements(container);\n controlledElements.forEach((controlledElement) => {\n this.addPortalContainer(controlledElement);\n });\n });\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) || this.isControlledElement(container, element)\n );\n }\n isControlledElement(container, element) {\n if (!this.config.followControlledElements) return false;\n return isControlledElement(container, element);\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 = getActiveElement(this.doc);\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 const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n body.setAttribute(LOCK_CLASSNAME, \"\");\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","'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 { 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 function patchedFocus() {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", null);\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n }\n try {\n Object.defineProperty(win.HTMLElement.prototype, \"focus\", {\n configurable: true,\n value: patchedFocus\n });\n } catch {\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 const listenerData = listenerMap.get(win);\n if (!listenerData) {\n return;\n }\n try {\n Object.defineProperty(win.HTMLElement.prototype, \"focus\", {\n configurable: true,\n value: listenerData.focus\n });\n } catch {\n }\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","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 required = !!prop(\"required\");\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 checkedState = context.get(\"checked\");\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 \"data-required\": dataAttr(required)\n };\n return {\n checked,\n disabled,\n indeterminate,\n focused,\n checkedState,\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 ?? false\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 CheckboxIndicator = forwardRef((props, ref) => {\n const { indeterminate, ...rest } = props;\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getIndicatorProps(), rest);\n const isVisible = indeterminate ? checkbox.indeterminate : checkbox.checked;\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, hidden: !isVisible, ref });\n});\nCheckboxIndicator.displayName = \"CheckboxIndicator\";\n\nexport { CheckboxIndicator };\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","import { hasProp, isObject, isEqual, chunk, prevIndex, nextIndex } 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, \"indexMap\", null);\n /**\n * Copy the collection\n */\n __publicField(this, \"copy\", (items) => {\n return new _ListCollection({ ...this.options, items: items ?? [...this.items] });\n });\n /**\n * Check if the collection is equal to another collection\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 const values = [];\n for (const item of items) {\n const value = this.getItemValue(item);\n if (value != null) values.push(value);\n }\n return values;\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.indexOf(value);\n return index !== -1 ? this.at(index) : null;\n });\n /**\n * Get the items based on its values\n */\n __publicField(this, \"findMany\", (values) => {\n const result = [];\n for (const value of values) {\n const item = this.find(value);\n if (item != null) result.push(item);\n }\n return result;\n });\n /**\n * Get the item based on its index\n */\n __publicField(this, \"at\", (index) => {\n if (!this.options.groupBy && !this.options.groupSort) {\n return this.items[index] ?? null;\n }\n let idx = 0;\n const groups = this.group();\n for (const [, items] of groups) {\n for (const item of items) {\n if (idx === index) return item;\n idx++;\n }\n }\n return 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 const strs = [];\n for (const item of items) {\n const str = this.stringifyItem(item);\n if (str != null) strs.push(str);\n }\n return strs.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 * Group items by the groupBy function provided in options\n * Returns an array of [groupKey, items] tuples\n */\n __publicField(this, \"group\", () => {\n const { groupBy, groupSort } = this.options;\n if (!groupBy) return [[\"\", [...this.items]]];\n const groups = /* @__PURE__ */ new Map();\n this.items.forEach((item, index) => {\n const groupKey = groupBy(item, index);\n if (!groups.has(groupKey)) {\n groups.set(groupKey, []);\n }\n groups.get(groupKey).push(item);\n });\n let entries = Array.from(groups.entries());\n if (groupSort) {\n entries.sort(([a], [b]) => {\n if (typeof groupSort === \"function\") return groupSort(a, b);\n if (Array.isArray(groupSort)) {\n const indexA = groupSort.indexOf(a);\n const indexB = groupSort.indexOf(b);\n if (indexA === -1) return 1;\n if (indexB === -1) return -1;\n return indexA - indexB;\n }\n if (groupSort === \"asc\") return a.localeCompare(b);\n if (groupSort === \"desc\") return b.localeCompare(a);\n return 0;\n });\n }\n return entries;\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 if (!this.options.groupBy && !this.options.groupSort) {\n return this.items.findIndex((item) => this.getItemValue(item) === value);\n }\n if (!this.indexMap) {\n this.indexMap = /* @__PURE__ */ new Map();\n let idx = 0;\n const groups = this.group();\n for (const [, items] of groups) {\n for (const item of items) {\n const itemValue = this.getItemValue(item);\n if (itemValue != null) {\n this.indexMap.set(itemValue, idx);\n }\n idx++;\n }\n }\n }\n return this.indexMap.get(value) ?? -1;\n });\n __publicField(this, \"getByText\", (text, current) => {\n const currentIndex = current != null ? this.indexOf(current) : -1;\n const isSingleKey = text.length === 1;\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[(currentIndex + i + 1) % this.items.length];\n if (isSingleKey && this.getItemValue(item) === current) continue;\n if (this.getItemDisabled(item)) continue;\n if (match(this.stringifyItem(item), text)) return item;\n }\n return void 0;\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 /**\n * Update an item in the collection\n */\n __publicField(this, \"update\", (value, item) => {\n let index = this.indexOf(value);\n if (index === -1) return this;\n return this.copy([...this.items.slice(0, index), item, ...this.items.slice(index + 1)]);\n });\n /**\n * Update an item in the collection if it exists, otherwise append it\n */\n __publicField(this, \"upsert\", (value, item, mode = \"append\") => {\n let index = this.indexOf(value);\n if (index === -1) {\n const fn = mode === \"append\" ? this.append : this.prepend;\n return fn(item);\n }\n return this.copy([...this.items.slice(0, index), item, ...this.items.slice(index + 1)]);\n });\n /**\n * Insert items at a specific index\n */\n __publicField(this, \"insert\", (index, ...items) => {\n return this.copy(insert(this.items, index, ...items));\n });\n /**\n * Insert items before a specific value\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 /**\n * Insert items after a specific value\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 /**\n * Prepend items to the collection\n */\n __publicField(this, \"prepend\", (...items) => {\n return this.copy(insert(this.items, 0, ...items));\n });\n /**\n * Append items to the collection\n */\n __publicField(this, \"append\", (...items) => {\n return this.copy(insert(this.items, this.items.length, ...items));\n });\n /**\n * Filter the collection\n */\n __publicField(this, \"filter\", (fn) => {\n const filteredItems = this.items.filter((item, index) => fn(this.stringifyItem(item), index, item));\n return this.copy(filteredItems);\n });\n /**\n * Remove items from the collection\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 /**\n * Move an item to a specific index\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 /**\n * Move items before a specific value\n */\n __publicField(this, \"moveBefore\", (value, ...values) => {\n let toIndex = this.items.findIndex((item) => this.getItemValue(item) === value);\n if (toIndex === -1) return this;\n let indices = values.map((value2) => this.items.findIndex((item) => this.getItemValue(item) === value2)).sort((a, b) => a - b);\n return this.copy(move(this.items, indices, toIndex));\n });\n /**\n * Move items after a specific value\n */\n __publicField(this, \"moveAfter\", (value, ...values) => {\n let toIndex = this.items.findIndex((item) => this.getItemValue(item) === value);\n if (toIndex === -1) return this;\n let indices = values.map((value2) => this.items.findIndex((item) => this.getItemValue(item) === value2)).sort((a, b) => a - b);\n return this.copy(move(this.items, indices, toIndex + 1));\n });\n /**\n * Reorder items\n */\n __publicField(this, \"reorder\", (fromIndex, toIndex) => {\n return this.copy(move(this.items, [fromIndex], toIndex));\n });\n /**\n * Compare two values\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 /**\n * Get the range of values between two values\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 /**\n * Get the range of values between two values\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 /**\n * Convert the collection to a string\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 /**\n * Convert the collection to a JSON object\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};\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 __publicField(this, \"rows\", null);\n /**\n * Returns the row data in the grid\n */\n __publicField(this, \"getRows\", () => {\n if (!this.rows) {\n this.rows = chunk([...this.items], this.columnCount);\n }\n return this.rows;\n });\n /**\n * Returns the number of rows in the grid\n */\n __publicField(this, \"getRowCount\", () => {\n return Math.ceil(this.items.length / this.columnCount);\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 = rows.length;\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 = rows.length;\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 hasProp(v, \"columnCount\") && hasProp(v, \"getRows\");\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\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 findAll(node, options) {\n const found = [];\n visit(node, {\n onEnter: (child, indexPath) => {\n if (options.predicate(child, indexPath)) found.push(child);\n },\n getChildren: options.getChildren\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 filter(node, options) {\n const { predicate, create, getChildren } = options;\n const filterRecursive = (node2, indexPath) => {\n const children = getChildren(node2, indexPath);\n const filteredChildren = [];\n children.forEach((child, index) => {\n const childIndexPath = [...indexPath, index];\n const filteredChild = filterRecursive(child, childIndexPath);\n if (filteredChild) filteredChildren.push(filteredChild);\n });\n const isRoot = indexPath.length === 0;\n const nodeMatches = predicate(node2, indexPath);\n const hasFilteredChildren = filteredChildren.length > 0;\n if (isRoot || nodeMatches || hasFilteredChildren) {\n return create(node2, filteredChildren, indexPath);\n }\n return null;\n };\n return filterRecursive(node, []) || create(node, [], []);\n}\nfunction flatten(rootNode, options) {\n const nodes = [];\n let idx = 0;\n const idxMap = /* @__PURE__ */ new Map();\n const parentMap = /* @__PURE__ */ new Map();\n visit(rootNode, {\n getChildren: options.getChildren,\n onEnter: (node, indexPath) => {\n if (!idxMap.has(node)) {\n idxMap.set(node, idx++);\n }\n const children = options.getChildren(node, indexPath);\n children.forEach((child) => {\n if (!parentMap.has(child)) {\n parentMap.set(child, node);\n }\n if (!idxMap.has(child)) {\n idxMap.set(child, idx++);\n }\n });\n const _children = children.length > 0 ? children.map((child) => idxMap.get(child)) : void 0;\n const parent = parentMap.get(node);\n const _parent = parent ? idxMap.get(parent) : void 0;\n const _index = idxMap.get(node);\n nodes.push({ ...node, _children, _parent, _index });\n }\n });\n return nodes;\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 _TreeCollection {\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) ?? fallbackMethods.nodeToChildren(node) ?? [];\n });\n __publicField(this, \"resolveIndexPath\", (valueOrIndexPath) => {\n return typeof valueOrIndexPath === \"string\" ? this.getIndexPath(valueOrIndexPath) : valueOrIndexPath;\n });\n __publicField(this, \"resolveNode\", (valueOrIndexPath) => {\n const indexPath = this.resolveIndexPath(valueOrIndexPath);\n return indexPath ? this.at(indexPath) : void 0;\n });\n __publicField(this, \"getNodeChildrenCount\", (node) => {\n return this.options.nodeToChildrenCount?.(node) ?? fallbackMethods.nodeToChildrenCount(node);\n });\n __publicField(this, \"getNodeValue\", (node) => {\n return this.options.nodeToValue?.(node) ?? fallbackMethods.nodeToValue(node);\n });\n __publicField(this, \"getNodeDisabled\", (node) => {\n return this.options.isNodeDisabled?.(node) ?? fallbackMethods.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) ?? fallbackMethods.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 if (this.isSameNode(node, rootNode)) return;\n if (opts.skip?.({ value: this.getNodeValue(node), node, indexPath })) return \"skip\";\n if (indexPath.length > 0 && !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, \"findNodes\", (values, rootNode = this.rootNode) => {\n const v = new Set(values.filter((v2) => v2 != null));\n return findAll(rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => v.has(this.getNodeValue(node))\n });\n });\n __publicField(this, \"sort\", (values) => {\n return values.reduce((acc, value) => {\n const indexPath = this.getIndexPath(value);\n if (indexPath) acc.push({ value, indexPath });\n return acc;\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, \"isSameNode\", (node, other) => {\n return this.getNodeValue(node) === this.getNodeValue(other);\n });\n __publicField(this, \"isRootNode\", (node) => {\n return this.isSameNode(node, 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\", (valueOrIndexPath) => {\n const indexPath = this.resolveIndexPath(valueOrIndexPath)?.slice();\n if (!indexPath) return [];\n const result = [];\n while (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, \"getDescendantNodes\", (valueOrIndexPath, options) => {\n const parentNode = this.resolveNode(valueOrIndexPath);\n if (!parentNode) return [];\n const result = [];\n visit(parentNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, nodeIndexPath) => {\n if (nodeIndexPath.length === 0) return;\n if (!options?.withBranch && this.isBranchNode(node)) return;\n result.push(node);\n }\n });\n return result;\n });\n __publicField(this, \"getDescendantValues\", (valueOrIndexPath, options) => {\n const children = this.getDescendantNodes(valueOrIndexPath, options);\n return children.map((child) => this.getNodeValue(child));\n });\n __publicField(this, \"getParentIndexPath\", (indexPath) => {\n return indexPath.slice(0, -1);\n });\n __publicField(this, \"getParentNode\", (valueOrIndexPath) => {\n const indexPath = this.resolveIndexPath(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 = indexPath[indexPath.length - 1];\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 = indexPath[indexPath.length - 1];\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, \"isValidDepth\", (indexPath, depth) => {\n if (depth == null) return true;\n if (typeof depth === \"function\") return depth(indexPath.length);\n return indexPath.length === depth;\n });\n __publicField(this, \"isBranchNode\", (node) => {\n return this.getNodeChildren(node).length > 0 || this.getNodeChildrenCount(node) != null;\n });\n __publicField(this, \"getBranchValues\", (rootNode = this.rootNode, opts = {}) => {\n let values = [];\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (indexPath.length === 0) return;\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) return \"skip\";\n if (this.isBranchNode(node) && this.isValidDepth(indexPath, opts.depth)) {\n values.push(this.getNodeValue(node));\n }\n }\n });\n return values;\n });\n __publicField(this, \"flatten\", (rootNode = this.rootNode) => {\n return flatten(rootNode, { getChildren: this.getNodeChildren });\n });\n __publicField(this, \"_create\", (node, children) => {\n if (this.getNodeChildren(node).length > 0 || children.length > 0) {\n return { ...node, children };\n }\n return { ...node };\n });\n __publicField(this, \"_insert\", (rootNode, indexPath, nodes) => {\n return this.copy(\n insert2(rootNode, { at: indexPath, nodes, getChildren: this.getNodeChildren, create: this._create })\n );\n });\n __publicField(this, \"copy\", (rootNode) => {\n return new _TreeCollection({ ...this.options, rootNode });\n });\n __publicField(this, \"_replace\", (rootNode, indexPath, node) => {\n return this.copy(\n replace(rootNode, { at: indexPath, node, getChildren: this.getNodeChildren, create: this._create })\n );\n });\n __publicField(this, \"_move\", (rootNode, indexPaths, to) => {\n return this.copy(move2(rootNode, { indexPaths, to, getChildren: this.getNodeChildren, create: this._create }));\n });\n __publicField(this, \"_remove\", (rootNode, indexPaths) => {\n return this.copy(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, \"filter\", (predicate) => {\n const filteredRoot = filter(this.rootNode, {\n predicate,\n getChildren: this.getNodeChildren,\n create: this._create\n });\n return this.copy(filteredRoot);\n });\n __publicField(this, \"toJSON\", () => {\n return this.getValues(this.rootNode);\n });\n this.rootNode = options.rootNode;\n }\n};\nfunction flattenedToTree(nodes, options = fallbackMethods) {\n if (nodes.length === 0) {\n throw new Error(\"[zag-js/tree] Cannot create tree from empty flattened array\");\n }\n const rootFlatNode = nodes.find((node) => node._parent === void 0);\n if (!rootFlatNode) {\n throw new Error(\"[zag-js/tree] No root node found in flattened data\");\n }\n const nodeMap = /* @__PURE__ */ new Map();\n nodes.forEach((node) => {\n nodeMap.set(node._index, node);\n });\n const buildNode = (idx) => {\n const flatNode = nodeMap.get(idx);\n if (!flatNode) return {};\n const { _children, _parent, _index, ...cleanNode } = flatNode;\n const children = [];\n _children?.forEach((childIndex) => {\n children.push(buildNode(childIndex));\n });\n return {\n ...cleanNode,\n ...children.length > 0 && { children }\n };\n };\n const rootNode = buildNode(rootFlatNode._index);\n return new TreeCollection({ ...options, 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, index) => {\n let childNode = currentNode.children?.find((child) => child.label === part);\n if (!childNode) {\n childNode = {\n value: parts.slice(0, index + 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 fallbackMethods = {\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 fallbackMethods.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 nodeToChildrenCount(node) {\n if (isObject(node) && hasProp(node, \"childrenCount\")) return node.childrenCount;\n }\n};\n\nexport { GridCollection, ListCollection, Selection, TreeCollection, filePathToTree, flattenedToTree, isGridCollection, isListCollection };\n","'use client';\nimport { ListCollection } from '@zag-js/collection';\n\nconst createListCollection = (options) => new ListCollection(options);\n\nexport { createListCollection };\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 { 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 const modal = typeof props2.modal === \"boolean\" ? props2.modal : true;\n return {\n role: \"dialog\",\n modal,\n trapFocus: modal,\n preventScroll: modal,\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 type: \"dialog\",\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 onRequestDismiss: prop(\"onRequestDismiss\"),\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\")) 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 node?.style.setProperty(\"--layer-index\", styles.getPropertyValue(\"--layer-index\"));\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 \"onRequestDismiss\",\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 { 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","'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","'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 { useRadioGroupContext } from './use-radio-group-context.js';\n\nconst RadioGroupContext = (props) => props.children(useRadioGroupContext());\n\nexport { RadioGroupContext };\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 { 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, isLeftClick } 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 if (!el) {\n return { left: 0, top: 0, width: 0, height: 0 };\n }\n const rect = el.getBoundingClientRect();\n const parent = el.offsetParent?.getBoundingClientRect();\n return {\n left: parent ? rect.left - parent.left : rect.left,\n top: parent ? rect.top - parent.top : rect.top,\n width: rect.width,\n height: rect.height\n };\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, refs } = service;\n const groupDisabled = computed(\"isDisabled\");\n const readOnly = prop(\"readOnly\");\n function getItemState(props2) {\n return {\n value: props2.value,\n invalid: !!props2.invalid,\n disabled: !!props2.disabled || groupDisabled,\n checked: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n focusVisible: refs.get(\"focusVisibleValue\") === props2.value,\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 (!isLeftClick(event)) 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 const focusVisible = isFocusVisible();\n send({ type: \"SET_FOCUSED\", value: props2.value, focused: true, focusVisible });\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 || readOnly,\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 focusVisibleValue: 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, refs }) {\n context.set(\"focusedValue\", event.value);\n refs.set(\"focusVisibleValue\", event.focusVisible ? event.value : null);\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 { 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 { 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 { 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 { 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, contains, getEventTarget, isValidTabEvent, getEventKey, 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) => {\n if (id == null) return null;\n return ctx.getById(getItemId(ctx, id));\n};\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 required = !!prop(\"required\");\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: computed(\"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 setHighlightValue(value) {\n send({ type: \"HIGHLIGHTED_VALUE.SET\", value });\n },\n clearHighlightValue() {\n send({ type: \"HIGHLIGHTED_VALUE.CLEAR\" });\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 \"data-required\": dataAttr(required),\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-required\": required,\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 (!contains(event.currentTarget, getEventTarget(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 };\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 valueAsString: ({ context, prop }) => prop(\"collection\").stringifyItems(context.get(\"selectedItems\"))\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 \"HIGHLIGHTED_VALUE.CLEAR\": {\n actions: [\"clearHighlightedItem\"]\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 {\n guard: \"restoreFocus\",\n target: \"focused\",\n actions: [\"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n {\n target: \"idle\",\n actions: [\"clearHighlightedItem\"]\n }\n ],\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n guard: \"restoreFocus\",\n target: \"focused\",\n actions: [\"invokeOnClose\", \"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n {\n target: \"idle\",\n actions: [\"invokeOnClose\", \"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 restoreFocus: ({ event }) => restoreFocusFn(event),\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 type: \"listbox\",\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 contentEl2 = getContentEl(scope);\n const scrollToIndexFn = prop(\"scrollToIndexFn\");\n if (scrollToIndexFn) {\n const highlightedIndex = prop(\"collection\").indexOf(highlightedValue);\n scrollToIndexFn?.({\n index: highlightedIndex,\n immediate,\n getElement: () => getItemEl(scope, highlightedValue)\n });\n return;\n }\n const itemEl = getItemEl(scope, highlightedValue);\n scrollIntoView(itemEl, { 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 if (value == null) return;\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 if (value == null) return;\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 if (!restoreFocusFn(event)) 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 || !prop(\"collection\").has(value)) return;\n prop(\"onSelect\")?.({ value });\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 prop(\"onSelect\")?.({ value: event.value });\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 const firstValue = prop(\"collection\").firstValue;\n prop(\"scrollToIndexFn\")?.({\n index: 0,\n immediate: true,\n getElement: () => getItemEl(scope, firstValue)\n });\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 },\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 },\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});\nfunction restoreFocusFn(event) {\n const v = event.restoreFocus ?? event.previousEvent?.restoreFocus;\n return v == null || !!v;\n}\nvar props = createProps()([\n \"closeOnSelect\",\n \"collection\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"deselectable\",\n \"dir\",\n \"disabled\",\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 \"onSelect\",\n \"onValueChange\",\n \"open\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"value\"\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 \"onSelect\",\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 { 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","'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 required = !!prop(\"required\");\n const checked = !!context.get(\"checked\");\n const focused = !disabled && context.get(\"focused\");\n const focusVisible = !disabled && context.get(\"focusVisible\");\n const active = !disabled && context.get(\"active\");\n const dataAttrs = {\n \"data-active\": dataAttr(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 \"data-required\": dataAttr(required)\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 { 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 { 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 { 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: tabs.value === props.value,\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, isOpeningInNewTab, isSafari, isComposingEvent, contains, getEventTarget, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { setup } 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?.(id) ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger?.(id) ?? `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 if (!el) {\n return { left: 0, top: 0, width: 0, height: 0 };\n }\n const rect = el.getBoundingClientRect();\n const parent = el.offsetParent?.getBoundingClientRect();\n return {\n left: parent ? rect.left - parent.left : rect.left,\n top: parent ? rect.top - parent.top : rect.top,\n width: rect.width,\n height: rect.height\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 (isComposingEvent(event)) return;\n if (!contains(event.currentTarget, getEventTarget(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 };\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 return;\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 (isOpeningInNewTab(event)) 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 { createMachine } = setup();\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 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 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)) {\n prop(\"navigate\")?.({ value, node: triggerEl, href: triggerEl.href });\n }\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"],"names":["getErrorMessage","hook","provider","createContext","options","name","strict","hookName","providerName","errorMessage","defaultValue","Context","createContext$1","useContext$1","context","useContext","error","_a","toArray","v","first","last","has","add","items","remove","t","addOrRemove","item","isArrayLike","value","isArrayEqual","a","b","i","isEqual","keys","length","key","isArray","isObjectLike","isObject","isString","isFunction","isNull","hasProp","obj","prop","baseGetTag","fnToString","objectCtorString","isPlainObject","isFrameworkElement","proto","Ctor","isReactElement","x","isVueElement","identity","noop","callAll","fns","fn","compact","filtered","warn","m","ensure","c","wrap","idx","_","index","pipe","arg","acc","dataAttr","guard","ariaAttr","ELEMENT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","isHTMLElement","el","isDocument","isWindow","getNodeName","node","isRootElement","isNode","isShadowRoot","isInputElement","isAnchorElement","isElementVisible","isActiveElement","element","rootNode","getActiveElement","TEXTAREA_SELECT_REGEX","isEditableElement","e","contains","parent","child","next","getDocument","getDocumentElement","getWindow","_c","_b","activeElement","getParentNode","result","getRootNode","styleCache","getComputedStyle","INTERACTIVE_CONTAINER_ROLE","isInteractiveContainerRole","role","getAriaControls","isControlledElement","container","visitedIds","checkElement","searchRoot","controllingElements","controller","controlledIds","id","controlledElement","modal","findControlledElements","callback","findRecursive","root","getControlledElements","controlledElements","isInteractiveContainerElement","isControllerElement","hasControllerElements","isControlledByExpandedController","escapedId","selector","isDom","getPlatform","agent","getUserAgent","ua2","brand","version","pt","ua","vn","isTouchDevice","isIPhone","isIPad","isMac","isIos","isApple","isSafari","isFirefox","isAndroid","getComposedPath","event","_d","getEventTarget","composedPath","isOpeningInNewTab","isMiddleClick","isModKeyClick","isCtrlOrMetaKey","isComposingEvent","getNativeEvent","isVirtualClick","isLeftClick","isContextMenuEvent","isTouchEvent","keyMap","rtlKeyMap","getEventKey","dir","orientation","getEventPoint","type","point","addDomEvent","target","eventName","handler","getDescriptor","property","setElementChecked","checked","dispatchInputCheckedEvent","bubbles","win","getClosestForm","isFormElement","trackFormReset","form","onReset","trackFieldsetDisabled","fieldset","obs","trackFormControl","onFieldsetDisabledChange","onFormReset","cleanups","cleanup","isFrame","hasTabIndex","hasNegativeTabIndex","focusableSelector","getFocusables","includeContainer","elements","isFocusable","focusableElements","frameBody","getTabbables","tabbableElements","isTabbable","allFrameTabbable","getTabbableEdges","getTabIndex","getInitialFocus","getInitialEl","filter","enabled","tabbables","isValidTabEvent","firstTabbable","lastTabbable","nextTick","set","raf2","fn2","raf","queueBeforeEvent","cb","cancelTimer","exec","observeAttributesImpl","attributes","changes","change","observeAttributes","nodeOrFn","func","clickIfLink","click","getNearestOverflowAncestor","parentNode","isOverflowElement","OVERFLOW_RE","nonOverflowValues","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","queryAll","defaultItemToId","itemById","itemToId","indexOfId","nextById","loop","prevById","trackElementRect","onEntry","measure","box","elems","trigger","entries","rects","sanitize","str","char","code","getValueText","match","valueText","query2","getByText","text","currentId","setStyle","style","prev","setStyleProperty","getByTypeaheadImpl","baseItems","state2","activeId","timeout","search","update","getByTypeahead","isValidTypeaheadEvent","visuallyHiddenStyle","waitForPromise","promise","signal","resolve","reject","timeoutId","waitForElement","doc","observer","el2","clsx","args","CSS_REGEX","serialize","res","css","mergeProps","props","symbols","symbol","createGuards","guards","params","setup","config","transitions","choose","MachineStatus","MachineStatus2","INIT_STATE","createScope","getDoc","createNormalizer","_target","createProps","useSafeLayoutEffect","useLayoutEffect","useEffect","useBindable","initial","eq","initialValue","useState","setValue","controlled","valueRef","useRef","prevValue","setFn","value2","get","flushSync","nextValue","prevValue2","useRefs","refs","ref","useTrack","deps","effect","render","called","d","useMachine","machine","userProps","scope","useMemo","ids","debug","useProp","flush","ctx","computed","getEvent","contextRef","useLiveRef","current","effects","transitionRef","previousEventRef","eventRef","getState","state","values","tag","_e","getParams","send","action","strs","s","nextState","prevState","exitEffects","cleanup2","hydratedStateRef","statusRef","started","initialState","currentState","getCurrentState","transition","changed","_f","normalizeProps","composeRefs","cleanUps","cleanUp","getRef","getter","mayWarn","withAsChild","Component","Comp","memo","forwardRef","asChild","children","restProps","createElement","isValidElement","onlyChild","Children","childRef","cloneElement","jsxFactory","cache","_thisArg","argArray","asElement","ark","createSplitProps","previousValue","currentValue","source","createAnatomy","parts","isEmpty","part","newName","toKebabCase","EnvironmentContextProvider","useEnvironmentContext","LocaleContextProvider","useLocaleContext","sides","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","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","offset","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","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","offsets","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","_node$ownerDocument","isElement","invalidOverflowDisplayValues","tableElements","isTableElement","topLayerSelectors","isTopLayer","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","getContainingBlock","currentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","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","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","_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","createTransformOriginMiddleware","opts","arrowEl","arrowX","arrowY","arrowWidth","arrowHeight","transformX","transformY","shiftY","halfAnchorHeight","arrowOffset","gutter","sideOffsetValue","isOverlappingAnchor","adjacentTransformOrigin","overlapTransformOrigin","useOverlap","rectMiddleware","shiftArrowMiddleware","getPlacementDetails","align","defaultOptions","roundByDpr","dpr","resolveBoundaryOption","getArrowMiddleware","arrowElement","getOffsetMiddleware","hasAlign","shift2","getFlipMiddleware","getShiftMiddleware","getSizeMiddleware","referenceWidth","referenceHeight","hideWhenDetachedMiddleware","getAutoUpdateOptions","getPlacementImpl","referenceOrVirtual","onComplete","onPositioned","updatePosition","pos","contentEl","styles","autoUpdateOptions","cancelAutoUpdate","getPlacement","referenceOrFn","floatingOrFn","defer","ARROW_FLOATING_STYLE","getPlacementStyles","sameWidth","fitViewport","getWindowFrames","frames","frame","listener","getParentWindow","POINTER_OUTSIDE_EVENT","FOCUS_OUTSIDE_EVENT","isComposedPathFocusable","isPointerEvent","isEventPointWithin","isPointInRect","isEventWithinScrollbar","isScrollableY","onScrollbarY","isScrollableX","onScrollbarX","trackInteractOutsideImpl","exclude","onFocusOutside","onPointerDownOutside","onInteractOutside","followControlledElements","parentWin","isEventOutside","triggerEl","triggerAncestor","nodeAncestor","pointerdownCleanups","isInShadowRoot","onPointerDown","clickEvent","handler2","fireCustomEvent","timer","onFocusin","trackInteractOutside","init","trackEscapeKeydown","handleKeyDown","LAYER_REQUEST_DISMISS_EVENT","layerStack","layer","highestBlockingIndex","branch","nestedCount","addListenerOnce","detail","originalBodyPointerEvents","assignPointerEventToLayers","clearPointerEvent","disablePointerEventsOutside","persistentElements","abort","node2","trackDismissableElementImpl","warnOnMissingNode","onDismiss","onRequestDismiss","pointerBlocking","excludeContainers","onEscapeKeyDown","containers","_containers","trackDismissableElement","RenderStrategyPropsProvider","useRenderStrategyPropsContext","splitRenderStrategyProps","connect","service","_normalize","present","props2","bindable","track","presentProp","animationName","getAnimationName","onStart","onEnd","cleanupStyles","useEvent","sync","callbackRef","useLatestRef","useCallback","usePresence","lazyMount","unmountOnExit","skipAnimationOnMount","rest","wasEverPresent","machineProps","presence.machine","api","presence.connect","unmounted","getPresenceProps","PresenceProvider","usePresenceContext","splitPresenceProps","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","ignoreableNodes","isIgnoredNode","walkTreeOutside","originalTarget","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","alreadyHidden","counterValue","markerValue","hideOthers","ariaHidden","targetsOrFn","__defProp","__defNormalProp","__publicField","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","sharedTrapStack","FocusTrap","targetContained","nextNode","navAcrossContainers","mruContainerIdx","tabbableNodes","mruTabIdx","g","n","valueOrHandler","isBackward","destinationNode","isTabEvent","isEscapeEvent","mutations","mutation","portalContainer","firstTabbableGroup","isSelectableInput","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","delay","returnFocusNode","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","containerElements","previousActiveElement","configOverrideOptions","optionName","configOptionName","hasFallback","optionValue","err","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","CheckboxProvider","useCheckboxContext","CheckboxControl","checkbox","mergedProps","jsx","nonTextInputTypes","isKeyboardFocusEvent","isTextInput","modality","FOCUS_VISIBLE_INPUT_KEYS","currentModality","changeHandlers","listenerMap","hasEventBeforeFocus","hasBlurredWindowRecently","triggerChangeHandlers","handleKeyboardEvent","handlePointerEvent","handleClickEvent","handleFocusEvent","handleWindowBlur","setupGlobalFocusEvents","focus","patchedFocus","tearDownWindowFocusTracking","loadListener","listenerData","isFocusVisible","trackFocusVisible","autoFocus","onChange","anatomy","getRootId","getLabelId","getControlId","getHiddenInputId","getRootEl","getHiddenInputEl","normalize","disabled","readOnly","required","invalid","focused","focusVisible","indeterminate","checkedState","dataAttrs","checked2","focusVisible2","not","isIndeterminate","isChecked","inputEl","checkboxAnatomy","useControllableState","uncontrolledValue","setUncontrolledValue","useCheckboxGroup","controlledValue","onValueChange","interactive","onChangeProp","val","toggleValue","removeValue","addValue","CheckboxGroupContextProvider","useCheckboxGroupContext","CheckboxGroup","checkboxGroupProps","localProps","checkboxGroup","FieldProvider","useFieldContext","CheckboxHiddenInput","field","CheckboxIndicator","isVisible","CheckboxLabel","useCheckbox","ownProps","useId","checkbox.machine","checkbox.connect","CheckboxRoot","useCheckboxProps","CheckboxRootProvider","fallback","ListCollection","_ListCollection","other","groups","valueA","valueB","indexA","indexB","separator","groupBy","groupSort","groupKey","step","itemValue","currentIndex","isSingleKey","queryString","query","mode","insert","toIndex","filteredItems","itemsOrValues","itemOrValue","fromIndex","move","indices","from","to","label","itemString","itemsToMove","createListCollection","DialogProvider","useDialogContext","DialogBackdrop","dialog","renderStrategyProps","presence","DialogCloseTrigger","DialogContent","DialogDescription","DialogPositioner","getPositionerId","getBackdropId","getContentId","getTriggerId","getTitleId","getDescriptionId","getCloseTriggerId","getContentEl","getPositionerEl","getBackdropEl","getTriggerEl","getTitleEl","getDescriptionEl","getCloseTriggerEl","ariaLabel","open","nextOpen","rendered","alertDialog","initialFocusEl","useDialog","dialog.machine","dialog.connect","DialogRoot","presenceProps","DialogTitle","DialogTrigger","Portal","setContainer","isServer","useSyncExternalStore","subscribe","Fragment","mountNode","getPortalNode","createPortal","RadioGroupProvider","useRadioGroupContext","RadioGroupContext","RadioGroupItemProvider","RadioGroupItemPropsProvider","useRadioGroupItemPropsContext","RadioGroupItem","itemProps","radioGroup","itemState","RadioGroupItemControl","RadioGroupItemHiddenInput","RadioGroupItemText","RadioGroupLabel","getItemId","getItemHiddenInputId","getItemControlId","getItemLabelId","getIndicatorId","getItemHiddenInputEl","getIndicatorEl","getFirstEnabledInputEl","getFirstEnabledAndCheckedInputEl","getInputEls","getRadioEl","getOffsetRect","resolveRect","groupDisabled","getItemState","getItemDataAttrs","nodeToFocus","input","radioEl","indicatorCleanup","useRadioGroup","radio.machine","radio.connect","RadioGroupRoot","useRadioGroupProps","SelectProvider","useSelectContext","SelectContent","select","SelectControl","SelectItemProvider","SelectItemPropsProvider","SelectItem","SelectLabel","SelectPositioner","collection","getClearTriggerId","getHiddenSelectId","getItemGroupId","getItemGroupLabelId","getHiddenSelectEl","getClearTriggerEl","getItemEl","composite","collection2","highlightedValue","highlightedItem","selectedItems","currentPlacement","isTypingAhead","ariaActiveDescendant","_disabled","popperStyles","event2","htmlFor","and","or","restoreFocusFn","restoreFocus","positioning","immediate","contentEl2","scrollToIndexFn","highlightedIndex","itemEl","positionerEl","firstItem","firstValue","selectEl","option","prevSelectedItems","item2","changeEvent","useSelect","select.machine","select.connect","SelectImpl","selectProps","useSelectProps","SelectRoot","SelectTrigger","SelectValueText","placeholder","localprops","SwitchProvider","useSwitchContext","SwitchControl","switchContext","SwitchHiddenInput","SwitchLabel","getThumbId","active","useSwitch","zagSwitch.machine","zagSwitch.connect","SwitchRoot","switchProps","SwitchThumb","TabsProvider","useTabsContext","TabContent","contentProps","tabs","TabIndicator","TabList","TabTrigger","tabProps","getListId","getListEl","getElements","getFirstTriggerEl","getLastTriggerEl","getNextTriggerEl","getPrevTriggerEl","getRectById","tab","translations","isHorizontal","getTriggerState","fromValue","triggerState","selected","indicatorRect","indicatorTransition","createMachine","details","focusedValue","nullable","indicatorEl","useTabs","tabs.machine","tabs.connect","TabsRoot","tabsProps","useTabsProps"],"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]}