@profiq/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/README.md +36 -0
  2. package/dist/components/custom/basic/accordion.d.ts +31 -0
  3. package/dist/components/custom/basic/accordion.d.ts.map +1 -0
  4. package/dist/components/custom/basic/accordion.js +68 -0
  5. package/dist/components/custom/basic/button.d.ts +16 -0
  6. package/dist/components/custom/basic/button.d.ts.map +1 -0
  7. package/dist/components/custom/basic/button.js +46 -0
  8. package/dist/components/custom/basic/input.d.ts +22 -0
  9. package/dist/components/custom/basic/input.d.ts.map +1 -0
  10. package/dist/components/custom/basic/input.js +106 -0
  11. package/dist/components/custom/basic/select.d.ts +18 -0
  12. package/dist/components/custom/basic/select.d.ts.map +1 -0
  13. package/dist/components/custom/basic/select.js +67 -0
  14. package/dist/components/custom/basic/slider.d.ts +24 -0
  15. package/dist/components/custom/basic/slider.d.ts.map +1 -0
  16. package/dist/components/custom/basic/slider.js +54 -0
  17. package/dist/components/custom/basic/switch.d.ts +17 -0
  18. package/dist/components/custom/basic/switch.d.ts.map +1 -0
  19. package/dist/components/custom/basic/switch.js +105 -0
  20. package/dist/components/custom/basic/table.d.ts +9 -0
  21. package/dist/components/custom/basic/table.d.ts.map +1 -0
  22. package/dist/components/custom/basic/table.js +74 -0
  23. package/dist/components/custom/basic/text.d.ts +10 -0
  24. package/dist/components/custom/basic/text.d.ts.map +1 -0
  25. package/dist/components/custom/basic/text.js +26 -0
  26. package/dist/components/custom/basic/textarea.d.ts +7 -0
  27. package/dist/components/custom/basic/textarea.d.ts.map +1 -0
  28. package/dist/components/custom/basic/textarea.js +24 -0
  29. package/dist/components/custom/icons/Backpack.d.ts +3 -0
  30. package/dist/components/custom/icons/Backpack.d.ts.map +1 -0
  31. package/dist/components/custom/icons/Backpack.js +28 -0
  32. package/dist/components/custom/icons/CaretDown.d.ts +3 -0
  33. package/dist/components/custom/icons/CaretDown.d.ts.map +1 -0
  34. package/dist/components/custom/icons/CaretDown.js +20 -0
  35. package/dist/components/custom/icons/CaretUp.d.ts +3 -0
  36. package/dist/components/custom/icons/CaretUp.d.ts.map +1 -0
  37. package/dist/components/custom/icons/CaretUp.js +20 -0
  38. package/dist/components/custom/icons/DotsVertical.d.ts +3 -0
  39. package/dist/components/custom/icons/DotsVertical.d.ts.map +1 -0
  40. package/dist/components/custom/icons/DotsVertical.js +28 -0
  41. package/dist/components/custom/icons/HamburgerMenu.d.ts +3 -0
  42. package/dist/components/custom/icons/HamburgerMenu.d.ts.map +1 -0
  43. package/dist/components/custom/icons/HamburgerMenu.js +28 -0
  44. package/dist/components/custom/icons/Home.d.ts +3 -0
  45. package/dist/components/custom/icons/Home.d.ts.map +1 -0
  46. package/dist/components/custom/icons/Home.js +28 -0
  47. package/dist/components/custom/icons/Icons.d.ts +27 -0
  48. package/dist/components/custom/icons/Icons.d.ts.map +1 -0
  49. package/dist/components/custom/icons/Icons.js +23 -0
  50. package/dist/components/custom/icons/MagnifyingGlass.d.ts +3 -0
  51. package/dist/components/custom/icons/MagnifyingGlass.d.ts.map +1 -0
  52. package/dist/components/custom/icons/MagnifyingGlass.js +24 -0
  53. package/dist/components/custom/icons/Moon.d.ts +3 -0
  54. package/dist/components/custom/icons/Moon.d.ts.map +1 -0
  55. package/dist/components/custom/icons/Moon.js +28 -0
  56. package/dist/components/custom/icons/Sun.d.ts +3 -0
  57. package/dist/components/custom/icons/Sun.d.ts.map +1 -0
  58. package/dist/components/custom/icons/Sun.js +28 -0
  59. package/dist/components/custom/icons/logo/Profiq.d.ts +6 -0
  60. package/dist/components/custom/icons/logo/Profiq.d.ts.map +1 -0
  61. package/dist/components/custom/icons/logo/Profiq.js +92 -0
  62. package/dist/components/custom/icons/logo/logoVariations.d.ts +10 -0
  63. package/dist/components/custom/icons/logo/logoVariations.d.ts.map +1 -0
  64. package/dist/components/custom/icons/logo/logoVariations.js +65 -0
  65. package/dist/components/ui/accordion.d.ts +8 -0
  66. package/dist/components/ui/accordion.d.ts.map +1 -0
  67. package/dist/components/ui/accordion.js +65 -0
  68. package/dist/components/ui/button.d.ts +8 -0
  69. package/dist/components/ui/button.d.ts.map +1 -0
  70. package/dist/components/ui/button.js +29 -0
  71. package/dist/components/ui/buttonVariants.d.ts +5 -0
  72. package/dist/components/ui/buttonVariants.d.ts.map +1 -0
  73. package/dist/components/ui/buttonVariants.js +33 -0
  74. package/dist/components/ui/field.d.ts +25 -0
  75. package/dist/components/ui/field.d.ts.map +1 -0
  76. package/dist/components/ui/field.js +221 -0
  77. package/dist/components/ui/input.d.ts +4 -0
  78. package/dist/components/ui/input.d.ts.map +1 -0
  79. package/dist/components/ui/input.js +22 -0
  80. package/dist/components/ui/label.d.ts +5 -0
  81. package/dist/components/ui/label.d.ts.map +1 -0
  82. package/dist/components/ui/label.js +23 -0
  83. package/dist/components/ui/select.d.ts +16 -0
  84. package/dist/components/ui/select.d.ts.map +1 -0
  85. package/dist/components/ui/select.js +181 -0
  86. package/dist/components/ui/separator.d.ts +5 -0
  87. package/dist/components/ui/separator.d.ts.map +1 -0
  88. package/dist/components/ui/separator.js +27 -0
  89. package/dist/components/ui/slider.d.ts +13 -0
  90. package/dist/components/ui/slider.d.ts.map +1 -0
  91. package/dist/components/ui/slider.js +101 -0
  92. package/dist/components/ui/switch.d.ts +8 -0
  93. package/dist/components/ui/switch.d.ts.map +1 -0
  94. package/dist/components/ui/switch.js +36 -0
  95. package/dist/components/ui/table.d.ts +11 -0
  96. package/dist/components/ui/table.d.ts.map +1 -0
  97. package/dist/components/ui/table.js +115 -0
  98. package/dist/components/ui/textarea.d.ts +4 -0
  99. package/dist/components/ui/textarea.d.ts.map +1 -0
  100. package/dist/components/ui/textarea.js +19 -0
  101. package/dist/components/ui/tooltip.d.ts +10 -0
  102. package/dist/components/ui/tooltip.d.ts.map +1 -0
  103. package/dist/components/ui/tooltip.js +66 -0
  104. package/dist/fonts/Franklin_Gothic/FRANKGO.ttf +0 -0
  105. package/dist/fonts/Franklin_Gothic/Franklin Gothic Condensed.ttf +0 -0
  106. package/dist/fonts/Franklin_Gothic/FranklinGothic.ttf +0 -0
  107. package/dist/fonts/Franklin_Gothic/FranklinGothicITALIC.ttf +0 -0
  108. package/dist/fonts/Franklin_Gothic/fgwo____.ttf +0 -0
  109. package/dist/fonts/Roboto_Slab/LICENSE.txt +202 -0
  110. package/dist/fonts/Roboto_Slab/README.txt +71 -0
  111. package/dist/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
  112. package/dist/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
  113. package/dist/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
  114. package/dist/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
  115. package/dist/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
  116. package/dist/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
  117. package/dist/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
  118. package/dist/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
  119. package/dist/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
  120. package/dist/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
  121. package/dist/index.css +571 -0
  122. package/dist/index.js +11 -0
  123. package/dist/lib/baseProps.d.ts +9 -0
  124. package/dist/lib/baseProps.d.ts.map +1 -0
  125. package/dist/lib/baseProps.js +13 -0
  126. package/dist/lib/buttonVariants.d.ts +3 -0
  127. package/dist/lib/buttonVariants.d.ts.map +1 -0
  128. package/dist/lib/hooks/useMakeTestId.d.ts +34 -0
  129. package/dist/lib/hooks/useMakeTestId.d.ts.map +1 -0
  130. package/dist/lib/hooks/useMakeTestId.js +26 -0
  131. package/dist/lib/index.d.ts +6 -0
  132. package/dist/lib/index.d.ts.map +1 -0
  133. package/dist/lib/text.types.d.ts +6 -0
  134. package/dist/lib/text.types.d.ts.map +1 -0
  135. package/dist/lib/text.types.js +17 -0
  136. package/dist/lib/utils.d.ts +3 -0
  137. package/dist/lib/utils.d.ts.map +1 -0
  138. package/dist/lib/utils.js +8 -0
  139. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +532 -0
  140. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +402 -0
  141. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +208 -0
  142. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +136 -0
  143. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +130 -0
  144. package/dist/node_modules/@radix-ui/number/dist/index.js +6 -0
  145. package/dist/node_modules/@radix-ui/primitive/dist/index.js +9 -0
  146. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +235 -0
  147. package/dist/node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  148. package/dist/node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  149. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +24 -0
  150. package/dist/node_modules/@radix-ui/react-arrow/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  151. package/dist/node_modules/@radix-ui/react-arrow/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  152. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +120 -0
  153. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  154. package/dist/node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  155. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +50 -0
  156. package/dist/node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  157. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +29 -0
  158. package/dist/node_modules/@radix-ui/react-context/dist/index.js +53 -0
  159. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +10 -0
  160. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +127 -0
  161. package/dist/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.js +36 -0
  162. package/dist/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  163. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +17 -0
  164. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +136 -0
  165. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  166. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  167. package/dist/node_modules/@radix-ui/react-id/dist/index.js +13 -0
  168. package/dist/node_modules/@radix-ui/react-label/dist/index.js +19 -0
  169. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +219 -0
  170. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  171. package/dist/node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  172. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +15 -0
  173. package/dist/node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  174. package/dist/node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  175. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +70 -0
  176. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  177. package/dist/node_modules/@radix-ui/react-select/dist/index.js +848 -0
  178. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  179. package/dist/node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  180. package/dist/node_modules/@radix-ui/react-separator/dist/index.js +24 -0
  181. package/dist/node_modules/@radix-ui/react-slider/dist/index.js +436 -0
  182. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  183. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  184. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +61 -0
  185. package/dist/node_modules/@radix-ui/react-switch/dist/index.js +132 -0
  186. package/dist/node_modules/@radix-ui/react-switch/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  187. package/dist/node_modules/@radix-ui/react-switch/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  188. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js +338 -0
  189. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  190. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.js +55 -0
  191. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +10 -0
  192. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +52 -0
  193. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +14 -0
  194. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +6 -0
  195. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +8 -0
  196. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +27 -0
  197. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +32 -0
  198. package/dist/node_modules/@radix-ui/react-visually-hidden/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  199. package/dist/node_modules/@radix-ui/react-visually-hidden/node_modules/@radix-ui/react-slot/dist/index.js +49 -0
  200. package/dist/node_modules/@tanstack/react-table/build/lib/index.js +88 -0
  201. package/dist/node_modules/@tanstack/table-core/build/lib/index.js +1667 -0
  202. package/dist/node_modules/aria-hidden/dist/es2015/index.js +52 -0
  203. package/dist/node_modules/class-variance-authority/dist/index.js +35 -0
  204. package/dist/node_modules/clsx/dist/clsx.js +16 -0
  205. package/dist/node_modules/get-nonce/dist/es2015/index.js +7 -0
  206. package/dist/node_modules/lucide-react/dist/esm/Icon.js +36 -0
  207. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +23 -0
  208. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +14 -0
  209. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +6 -0
  210. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +6 -0
  211. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +6 -0
  212. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js +9 -0
  213. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js +4 -0
  214. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js +7 -0
  215. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js +4 -0
  216. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js +8 -0
  217. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +11 -0
  218. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +115 -0
  219. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +31 -0
  220. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +16 -0
  221. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +68 -0
  222. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +5 -0
  223. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +7 -0
  224. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +71 -0
  225. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +7 -0
  226. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +25 -0
  227. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +11 -0
  228. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +15 -0
  229. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +30 -0
  230. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2924 -0
  231. package/dist/node_modules/tslib/tslib.es6.js +27 -0
  232. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +6 -0
  233. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +26 -0
  234. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +25 -0
  235. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +18 -0
  236. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +67 -0
  237. package/package.json +124 -0
@@ -0,0 +1,848 @@
1
+ import * as t from "react";
2
+ import * as be from "react-dom";
3
+ import { clamp as Re } from "../../number/dist/index.js";
4
+ import { composeEventHandlers as R } from "../../primitive/dist/index.js";
5
+ import { createCollection as lt } from "../../react-collection/dist/index.js";
6
+ import { useComposedRefs as k } from "../../react-compose-refs/dist/index.js";
7
+ import { createContextScope as ct } from "../../react-context/dist/index.js";
8
+ import { useDirection as st } from "../../react-direction/dist/index.js";
9
+ import { DismissableLayer as it } from "../../react-dismissable-layer/dist/index.js";
10
+ import { useFocusGuards as at } from "../../react-focus-guards/dist/index.js";
11
+ import { FocusScope as dt } from "../../react-focus-scope/dist/index.js";
12
+ import { useId as Ie } from "../../react-id/dist/index.js";
13
+ import { Root as ut, Anchor as pt, createPopperScope as _e, Content as ft, Arrow as mt } from "../../react-popper/dist/index.js";
14
+ import { Portal as ht } from "../../react-portal/dist/index.js";
15
+ import { Primitive as M } from "../node_modules/@radix-ui/react-primitive/dist/index.js";
16
+ import { createSlot as vt } from "../node_modules/@radix-ui/react-slot/dist/index.js";
17
+ import { useCallbackRef as gt } from "../../react-use-callback-ref/dist/index.js";
18
+ import { useControllableState as Ee } from "../../react-use-controllable-state/dist/index.js";
19
+ import { useLayoutEffect as Y } from "../../react-use-layout-effect/dist/index.js";
20
+ import { usePrevious as St } from "../../react-use-previous/dist/index.js";
21
+ import { VISUALLY_HIDDEN_STYLES as wt } from "../../react-visually-hidden/dist/index.js";
22
+ import { hideOthers as Ct } from "../../../aria-hidden/dist/es2015/index.js";
23
+ import xt from "../../../react-remove-scroll/dist/es2015/Combination.js";
24
+ import { jsx as p, jsxs as se, Fragment as Te } from "react/jsx-runtime";
25
+ var yt = [" ", "Enter", "ArrowUp", "ArrowDown"], It = [" ", "Enter"], J = "Select", [ae, de, Tt] = lt(J), [te] = ct(J, [
26
+ Tt,
27
+ _e
28
+ ]), ue = _e(), [Pt, j] = te(J), [Rt, Et] = te(J), Ne = (o) => {
29
+ const {
30
+ __scopeSelect: s,
31
+ children: e,
32
+ open: i,
33
+ defaultOpen: l,
34
+ onOpenChange: d,
35
+ value: n,
36
+ defaultValue: r,
37
+ onValueChange: c,
38
+ dir: f,
39
+ name: g,
40
+ autoComplete: C,
41
+ disabled: E,
42
+ required: T,
43
+ form: y
44
+ } = o, a = ue(s), [h, S] = t.useState(null), [m, v] = t.useState(null), [F, A] = t.useState(!1), oe = st(f), [b, D] = Ee({
45
+ prop: i,
46
+ defaultProp: l ?? !1,
47
+ onChange: d,
48
+ caller: J
49
+ }), [K, X] = Ee({
50
+ prop: n,
51
+ defaultProp: r,
52
+ onChange: c,
53
+ caller: J
54
+ }), B = t.useRef(null), V = h ? y || !!h.closest("form") : !0, [G, H] = t.useState(/* @__PURE__ */ new Set()), U = Array.from(G).map((_) => _.props.value).join(";");
55
+ return /* @__PURE__ */ p(ut, { ...a, children: /* @__PURE__ */ se(
56
+ Pt,
57
+ {
58
+ required: T,
59
+ scope: s,
60
+ trigger: h,
61
+ onTriggerChange: S,
62
+ valueNode: m,
63
+ onValueNodeChange: v,
64
+ valueNodeHasChildren: F,
65
+ onValueNodeHasChildrenChange: A,
66
+ contentId: Ie(),
67
+ value: K,
68
+ onValueChange: X,
69
+ open: b,
70
+ onOpenChange: D,
71
+ dir: oe,
72
+ triggerPointerDownPosRef: B,
73
+ disabled: E,
74
+ children: [
75
+ /* @__PURE__ */ p(ae.Provider, { scope: s, children: /* @__PURE__ */ p(
76
+ Rt,
77
+ {
78
+ scope: o.__scopeSelect,
79
+ onNativeOptionAdd: t.useCallback((_) => {
80
+ H((L) => new Set(L).add(_));
81
+ }, []),
82
+ onNativeOptionRemove: t.useCallback((_) => {
83
+ H((L) => {
84
+ const W = new Set(L);
85
+ return W.delete(_), W;
86
+ });
87
+ }, []),
88
+ children: e
89
+ }
90
+ ) }),
91
+ V ? /* @__PURE__ */ se(
92
+ tt,
93
+ {
94
+ "aria-hidden": !0,
95
+ required: T,
96
+ tabIndex: -1,
97
+ name: g,
98
+ autoComplete: C,
99
+ value: K,
100
+ onChange: (_) => X(_.target.value),
101
+ disabled: E,
102
+ form: y,
103
+ children: [
104
+ K === void 0 ? /* @__PURE__ */ p("option", { value: "" }) : null,
105
+ Array.from(G)
106
+ ]
107
+ },
108
+ U
109
+ ) : null
110
+ ]
111
+ }
112
+ ) });
113
+ };
114
+ Ne.displayName = J;
115
+ var Me = "SelectTrigger", Ae = t.forwardRef(
116
+ (o, s) => {
117
+ const { __scopeSelect: e, disabled: i = !1, ...l } = o, d = ue(e), n = j(Me, e), r = n.disabled || i, c = k(s, n.onTriggerChange), f = de(e), g = t.useRef("touch"), [C, E, T] = nt((a) => {
118
+ const h = f().filter((v) => !v.disabled), S = h.find((v) => v.value === n.value), m = rt(h, a, S);
119
+ m !== void 0 && n.onValueChange(m.value);
120
+ }), y = (a) => {
121
+ r || (n.onOpenChange(!0), T()), a && (n.triggerPointerDownPosRef.current = {
122
+ x: Math.round(a.pageX),
123
+ y: Math.round(a.pageY)
124
+ });
125
+ };
126
+ return /* @__PURE__ */ p(pt, { asChild: !0, ...d, children: /* @__PURE__ */ p(
127
+ M.button,
128
+ {
129
+ type: "button",
130
+ role: "combobox",
131
+ "aria-controls": n.contentId,
132
+ "aria-expanded": n.open,
133
+ "aria-required": n.required,
134
+ "aria-autocomplete": "none",
135
+ dir: n.dir,
136
+ "data-state": n.open ? "open" : "closed",
137
+ disabled: r,
138
+ "data-disabled": r ? "" : void 0,
139
+ "data-placeholder": ot(n.value) ? "" : void 0,
140
+ ...l,
141
+ ref: c,
142
+ onClick: R(l.onClick, (a) => {
143
+ a.currentTarget.focus(), g.current !== "mouse" && y(a);
144
+ }),
145
+ onPointerDown: R(l.onPointerDown, (a) => {
146
+ g.current = a.pointerType;
147
+ const h = a.target;
148
+ h.hasPointerCapture(a.pointerId) && h.releasePointerCapture(a.pointerId), a.button === 0 && a.ctrlKey === !1 && a.pointerType === "mouse" && (y(a), a.preventDefault());
149
+ }),
150
+ onKeyDown: R(l.onKeyDown, (a) => {
151
+ const h = C.current !== "";
152
+ !(a.ctrlKey || a.altKey || a.metaKey) && a.key.length === 1 && E(a.key), !(h && a.key === " ") && yt.includes(a.key) && (y(), a.preventDefault());
153
+ })
154
+ }
155
+ ) });
156
+ }
157
+ );
158
+ Ae.displayName = Me;
159
+ var Oe = "SelectValue", De = t.forwardRef(
160
+ (o, s) => {
161
+ const { __scopeSelect: e, className: i, style: l, children: d, placeholder: n = "", ...r } = o, c = j(Oe, e), { onValueNodeHasChildrenChange: f } = c, g = d !== void 0, C = k(s, c.onValueNodeChange);
162
+ return Y(() => {
163
+ f(g);
164
+ }, [f, g]), /* @__PURE__ */ p(
165
+ M.span,
166
+ {
167
+ ...r,
168
+ ref: C,
169
+ style: { pointerEvents: "none" },
170
+ children: ot(c.value) ? /* @__PURE__ */ p(Te, { children: n }) : d
171
+ }
172
+ );
173
+ }
174
+ );
175
+ De.displayName = Oe;
176
+ var bt = "SelectIcon", Le = t.forwardRef(
177
+ (o, s) => {
178
+ const { __scopeSelect: e, children: i, ...l } = o;
179
+ return /* @__PURE__ */ p(M.span, { "aria-hidden": !0, ...l, ref: s, children: i || "▼" });
180
+ }
181
+ );
182
+ Le.displayName = bt;
183
+ var _t = "SelectPortal", ke = (o) => /* @__PURE__ */ p(ht, { asChild: !0, ...o });
184
+ ke.displayName = _t;
185
+ var Q = "SelectContent", Be = t.forwardRef(
186
+ (o, s) => {
187
+ const e = j(Q, o.__scopeSelect), [i, l] = t.useState();
188
+ if (Y(() => {
189
+ l(new DocumentFragment());
190
+ }, []), !e.open) {
191
+ const d = i;
192
+ return d ? be.createPortal(
193
+ /* @__PURE__ */ p(Ve, { scope: o.__scopeSelect, children: /* @__PURE__ */ p(ae.Slot, { scope: o.__scopeSelect, children: /* @__PURE__ */ p("div", { children: o.children }) }) }),
194
+ d
195
+ ) : null;
196
+ }
197
+ return /* @__PURE__ */ p(He, { ...o, ref: s });
198
+ }
199
+ );
200
+ Be.displayName = Q;
201
+ var O = 10, [Ve, q] = te(Q), Nt = "SelectContentImpl", Mt = vt("SelectContent.RemoveScroll"), He = t.forwardRef(
202
+ (o, s) => {
203
+ const {
204
+ __scopeSelect: e,
205
+ position: i = "item-aligned",
206
+ onCloseAutoFocus: l,
207
+ onEscapeKeyDown: d,
208
+ onPointerDownOutside: n,
209
+ //
210
+ // PopperContent props
211
+ side: r,
212
+ sideOffset: c,
213
+ align: f,
214
+ alignOffset: g,
215
+ arrowPadding: C,
216
+ collisionBoundary: E,
217
+ collisionPadding: T,
218
+ sticky: y,
219
+ hideWhenDetached: a,
220
+ avoidCollisions: h,
221
+ //
222
+ ...S
223
+ } = o, m = j(Q, e), [v, F] = t.useState(null), [A, oe] = t.useState(null), b = k(s, (u) => F(u)), [D, K] = t.useState(null), [X, B] = t.useState(
224
+ null
225
+ ), V = de(e), [G, H] = t.useState(!1), U = t.useRef(!1);
226
+ t.useEffect(() => {
227
+ if (v) return Ct(v);
228
+ }, [v]), at();
229
+ const _ = t.useCallback(
230
+ (u) => {
231
+ const [I, ...N] = V().map((P) => P.ref.current), [w] = N.slice(-1), x = document.activeElement;
232
+ for (const P of u)
233
+ if (P === x || (P?.scrollIntoView({ block: "nearest" }), P === I && A && (A.scrollTop = 0), P === w && A && (A.scrollTop = A.scrollHeight), P?.focus(), document.activeElement !== x)) return;
234
+ },
235
+ [V, A]
236
+ ), L = t.useCallback(
237
+ () => _([D, v]),
238
+ [_, D, v]
239
+ );
240
+ t.useEffect(() => {
241
+ G && L();
242
+ }, [G, L]);
243
+ const { onOpenChange: W, triggerPointerDownPosRef: z } = m;
244
+ t.useEffect(() => {
245
+ if (v) {
246
+ let u = { x: 0, y: 0 };
247
+ const I = (w) => {
248
+ u = {
249
+ x: Math.abs(Math.round(w.pageX) - (z.current?.x ?? 0)),
250
+ y: Math.abs(Math.round(w.pageY) - (z.current?.y ?? 0))
251
+ };
252
+ }, N = (w) => {
253
+ u.x <= 10 && u.y <= 10 ? w.preventDefault() : v.contains(w.target) || W(!1), document.removeEventListener("pointermove", I), z.current = null;
254
+ };
255
+ return z.current !== null && (document.addEventListener("pointermove", I), document.addEventListener("pointerup", N, { capture: !0, once: !0 })), () => {
256
+ document.removeEventListener("pointermove", I), document.removeEventListener("pointerup", N, { capture: !0 });
257
+ };
258
+ }
259
+ }, [v, W, z]), t.useEffect(() => {
260
+ const u = () => W(!1);
261
+ return window.addEventListener("blur", u), window.addEventListener("resize", u), () => {
262
+ window.removeEventListener("blur", u), window.removeEventListener("resize", u);
263
+ };
264
+ }, [W]);
265
+ const [pe, le] = nt((u) => {
266
+ const I = V().filter((x) => !x.disabled), N = I.find((x) => x.ref.current === document.activeElement), w = rt(I, u, N);
267
+ w && setTimeout(() => w.ref.current.focus());
268
+ }), fe = t.useCallback(
269
+ (u, I, N) => {
270
+ const w = !U.current && !N;
271
+ (m.value !== void 0 && m.value === I || w) && (K(u), w && (U.current = !0));
272
+ },
273
+ [m.value]
274
+ ), me = t.useCallback(() => v?.focus(), [v]), ee = t.useCallback(
275
+ (u, I, N) => {
276
+ const w = !U.current && !N;
277
+ (m.value !== void 0 && m.value === I || w) && B(u);
278
+ },
279
+ [m.value]
280
+ ), ce = i === "popper" ? Se : Ue, ne = ce === Se ? {
281
+ side: r,
282
+ sideOffset: c,
283
+ align: f,
284
+ alignOffset: g,
285
+ arrowPadding: C,
286
+ collisionBoundary: E,
287
+ collisionPadding: T,
288
+ sticky: y,
289
+ hideWhenDetached: a,
290
+ avoidCollisions: h
291
+ } : {};
292
+ return /* @__PURE__ */ p(
293
+ Ve,
294
+ {
295
+ scope: e,
296
+ content: v,
297
+ viewport: A,
298
+ onViewportChange: oe,
299
+ itemRefCallback: fe,
300
+ selectedItem: D,
301
+ onItemLeave: me,
302
+ itemTextRefCallback: ee,
303
+ focusSelectedItem: L,
304
+ selectedItemText: X,
305
+ position: i,
306
+ isPositioned: G,
307
+ searchRef: pe,
308
+ children: /* @__PURE__ */ p(xt, { as: Mt, allowPinchZoom: !0, children: /* @__PURE__ */ p(
309
+ dt,
310
+ {
311
+ asChild: !0,
312
+ trapped: m.open,
313
+ onMountAutoFocus: (u) => {
314
+ u.preventDefault();
315
+ },
316
+ onUnmountAutoFocus: R(l, (u) => {
317
+ m.trigger?.focus({ preventScroll: !0 }), u.preventDefault();
318
+ }),
319
+ children: /* @__PURE__ */ p(
320
+ it,
321
+ {
322
+ asChild: !0,
323
+ disableOutsidePointerEvents: !0,
324
+ onEscapeKeyDown: d,
325
+ onPointerDownOutside: n,
326
+ onFocusOutside: (u) => u.preventDefault(),
327
+ onDismiss: () => m.onOpenChange(!1),
328
+ children: /* @__PURE__ */ p(
329
+ ce,
330
+ {
331
+ role: "listbox",
332
+ id: m.contentId,
333
+ "data-state": m.open ? "open" : "closed",
334
+ dir: m.dir,
335
+ onContextMenu: (u) => u.preventDefault(),
336
+ ...S,
337
+ ...ne,
338
+ onPlaced: () => H(!0),
339
+ ref: b,
340
+ style: {
341
+ // flex layout so we can place the scroll buttons properly
342
+ display: "flex",
343
+ flexDirection: "column",
344
+ // reset the outline by default as the content MAY get focused
345
+ outline: "none",
346
+ ...S.style
347
+ },
348
+ onKeyDown: R(S.onKeyDown, (u) => {
349
+ const I = u.ctrlKey || u.altKey || u.metaKey;
350
+ if (u.key === "Tab" && u.preventDefault(), !I && u.key.length === 1 && le(u.key), ["ArrowUp", "ArrowDown", "Home", "End"].includes(u.key)) {
351
+ let w = V().filter((x) => !x.disabled).map((x) => x.ref.current);
352
+ if (["ArrowUp", "End"].includes(u.key) && (w = w.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(u.key)) {
353
+ const x = u.target, P = w.indexOf(x);
354
+ w = w.slice(P + 1);
355
+ }
356
+ setTimeout(() => _(w)), u.preventDefault();
357
+ }
358
+ })
359
+ }
360
+ )
361
+ }
362
+ )
363
+ }
364
+ ) })
365
+ }
366
+ );
367
+ }
368
+ );
369
+ He.displayName = Nt;
370
+ var At = "SelectItemAlignedPosition", Ue = t.forwardRef((o, s) => {
371
+ const { __scopeSelect: e, onPlaced: i, ...l } = o, d = j(Q, e), n = q(Q, e), [r, c] = t.useState(null), [f, g] = t.useState(null), C = k(s, (b) => g(b)), E = de(e), T = t.useRef(!1), y = t.useRef(!0), { viewport: a, selectedItem: h, selectedItemText: S, focusSelectedItem: m } = n, v = t.useCallback(() => {
372
+ if (d.trigger && d.valueNode && r && f && a && h && S) {
373
+ const b = d.trigger.getBoundingClientRect(), D = f.getBoundingClientRect(), K = d.valueNode.getBoundingClientRect(), X = S.getBoundingClientRect();
374
+ if (d.dir !== "rtl") {
375
+ const x = X.left - D.left, P = K.left - x, Z = b.left - P, $ = b.width + Z, he = Math.max($, D.width), ve = window.innerWidth - O, ge = Re(P, [
376
+ O,
377
+ // Prevents the content from going off the starting edge of the
378
+ // viewport. It may still go off the ending edge, but this can be
379
+ // controlled by the user since they may want to manage overflow in a
380
+ // specific way.
381
+ // https://github.com/radix-ui/primitives/issues/2049
382
+ Math.max(O, ve - he)
383
+ ]);
384
+ r.style.minWidth = $ + "px", r.style.left = ge + "px";
385
+ } else {
386
+ const x = D.right - X.right, P = window.innerWidth - K.right - x, Z = window.innerWidth - b.right - P, $ = b.width + Z, he = Math.max($, D.width), ve = window.innerWidth - O, ge = Re(P, [
387
+ O,
388
+ Math.max(O, ve - he)
389
+ ]);
390
+ r.style.minWidth = $ + "px", r.style.right = ge + "px";
391
+ }
392
+ const B = E(), V = window.innerHeight - O * 2, G = a.scrollHeight, H = window.getComputedStyle(f), U = parseInt(H.borderTopWidth, 10), _ = parseInt(H.paddingTop, 10), L = parseInt(H.borderBottomWidth, 10), W = parseInt(H.paddingBottom, 10), z = U + _ + G + W + L, pe = Math.min(h.offsetHeight * 5, z), le = window.getComputedStyle(a), fe = parseInt(le.paddingTop, 10), me = parseInt(le.paddingBottom, 10), ee = b.top + b.height / 2 - O, ce = V - ee, ne = h.offsetHeight / 2, u = h.offsetTop + ne, I = U + _ + u, N = z - I;
393
+ if (I <= ee) {
394
+ const x = B.length > 0 && h === B[B.length - 1].ref.current;
395
+ r.style.bottom = "0px";
396
+ const P = f.clientHeight - a.offsetTop - a.offsetHeight, Z = Math.max(
397
+ ce,
398
+ ne + // viewport might have padding bottom, include it to avoid a scrollable viewport
399
+ (x ? me : 0) + P + L
400
+ ), $ = I + Z;
401
+ r.style.height = $ + "px";
402
+ } else {
403
+ const x = B.length > 0 && h === B[0].ref.current;
404
+ r.style.top = "0px";
405
+ const Z = Math.max(
406
+ ee,
407
+ U + a.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport
408
+ (x ? fe : 0) + ne
409
+ ) + N;
410
+ r.style.height = Z + "px", a.scrollTop = I - ee + a.offsetTop;
411
+ }
412
+ r.style.margin = `${O}px 0`, r.style.minHeight = pe + "px", r.style.maxHeight = V + "px", i?.(), requestAnimationFrame(() => T.current = !0);
413
+ }
414
+ }, [
415
+ E,
416
+ d.trigger,
417
+ d.valueNode,
418
+ r,
419
+ f,
420
+ a,
421
+ h,
422
+ S,
423
+ d.dir,
424
+ i
425
+ ]);
426
+ Y(() => v(), [v]);
427
+ const [F, A] = t.useState();
428
+ Y(() => {
429
+ f && A(window.getComputedStyle(f).zIndex);
430
+ }, [f]);
431
+ const oe = t.useCallback(
432
+ (b) => {
433
+ b && y.current === !0 && (v(), m?.(), y.current = !1);
434
+ },
435
+ [v, m]
436
+ );
437
+ return /* @__PURE__ */ p(
438
+ Dt,
439
+ {
440
+ scope: e,
441
+ contentWrapper: r,
442
+ shouldExpandOnScrollRef: T,
443
+ onScrollButtonChange: oe,
444
+ children: /* @__PURE__ */ p(
445
+ "div",
446
+ {
447
+ ref: c,
448
+ style: {
449
+ display: "flex",
450
+ flexDirection: "column",
451
+ position: "fixed",
452
+ zIndex: F
453
+ },
454
+ children: /* @__PURE__ */ p(
455
+ M.div,
456
+ {
457
+ ...l,
458
+ ref: C,
459
+ style: {
460
+ // When we get the height of the content, it includes borders. If we were to set
461
+ // the height without having `boxSizing: 'border-box'` it would be too big.
462
+ boxSizing: "border-box",
463
+ // We need to ensure the content doesn't get taller than the wrapper
464
+ maxHeight: "100%",
465
+ ...l.style
466
+ }
467
+ }
468
+ )
469
+ }
470
+ )
471
+ }
472
+ );
473
+ });
474
+ Ue.displayName = At;
475
+ var Ot = "SelectPopperPosition", Se = t.forwardRef((o, s) => {
476
+ const {
477
+ __scopeSelect: e,
478
+ align: i = "start",
479
+ collisionPadding: l = O,
480
+ ...d
481
+ } = o, n = ue(e);
482
+ return /* @__PURE__ */ p(
483
+ ft,
484
+ {
485
+ ...n,
486
+ ...d,
487
+ ref: s,
488
+ align: i,
489
+ collisionPadding: l,
490
+ style: {
491
+ // Ensure border-box for floating-ui calculations
492
+ boxSizing: "border-box",
493
+ ...d.style,
494
+ "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
495
+ "--radix-select-content-available-width": "var(--radix-popper-available-width)",
496
+ "--radix-select-content-available-height": "var(--radix-popper-available-height)",
497
+ "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
498
+ "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
499
+ }
500
+ }
501
+ );
502
+ });
503
+ Se.displayName = Ot;
504
+ var [Dt, Pe] = te(Q, {}), we = "SelectViewport", We = t.forwardRef(
505
+ (o, s) => {
506
+ const { __scopeSelect: e, nonce: i, ...l } = o, d = q(we, e), n = Pe(we, e), r = k(s, d.onViewportChange), c = t.useRef(0);
507
+ return /* @__PURE__ */ se(Te, { children: [
508
+ /* @__PURE__ */ p(
509
+ "style",
510
+ {
511
+ dangerouslySetInnerHTML: {
512
+ __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"
513
+ },
514
+ nonce: i
515
+ }
516
+ ),
517
+ /* @__PURE__ */ p(ae.Slot, { scope: e, children: /* @__PURE__ */ p(
518
+ M.div,
519
+ {
520
+ "data-radix-select-viewport": "",
521
+ role: "presentation",
522
+ ...l,
523
+ ref: r,
524
+ style: {
525
+ // we use position: 'relative' here on the `viewport` so that when we call
526
+ // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport
527
+ // (independent of the scrollUpButton).
528
+ position: "relative",
529
+ flex: 1,
530
+ // Viewport should only be scrollable in the vertical direction.
531
+ // This won't work in vertical writing modes, so we'll need to
532
+ // revisit this if/when that is supported
533
+ // https://developer.chrome.com/blog/vertical-form-controls
534
+ overflow: "hidden auto",
535
+ ...l.style
536
+ },
537
+ onScroll: R(l.onScroll, (f) => {
538
+ const g = f.currentTarget, { contentWrapper: C, shouldExpandOnScrollRef: E } = n;
539
+ if (E?.current && C) {
540
+ const T = Math.abs(c.current - g.scrollTop);
541
+ if (T > 0) {
542
+ const y = window.innerHeight - O * 2, a = parseFloat(C.style.minHeight), h = parseFloat(C.style.height), S = Math.max(a, h);
543
+ if (S < y) {
544
+ const m = S + T, v = Math.min(y, m), F = m - v;
545
+ C.style.height = v + "px", C.style.bottom === "0px" && (g.scrollTop = F > 0 ? F : 0, C.style.justifyContent = "flex-end");
546
+ }
547
+ }
548
+ }
549
+ c.current = g.scrollTop;
550
+ })
551
+ }
552
+ ) })
553
+ ] });
554
+ }
555
+ );
556
+ We.displayName = we;
557
+ var Fe = "SelectGroup", [Lt, kt] = te(Fe), Ke = t.forwardRef(
558
+ (o, s) => {
559
+ const { __scopeSelect: e, ...i } = o, l = Ie();
560
+ return /* @__PURE__ */ p(Lt, { scope: e, id: l, children: /* @__PURE__ */ p(M.div, { role: "group", "aria-labelledby": l, ...i, ref: s }) });
561
+ }
562
+ );
563
+ Ke.displayName = Fe;
564
+ var Ge = "SelectLabel", ze = t.forwardRef(
565
+ (o, s) => {
566
+ const { __scopeSelect: e, ...i } = o, l = kt(Ge, e);
567
+ return /* @__PURE__ */ p(M.div, { id: l.id, ...i, ref: s });
568
+ }
569
+ );
570
+ ze.displayName = Ge;
571
+ var ie = "SelectItem", [Bt, Ye] = te(ie), je = t.forwardRef(
572
+ (o, s) => {
573
+ const {
574
+ __scopeSelect: e,
575
+ value: i,
576
+ disabled: l = !1,
577
+ textValue: d,
578
+ ...n
579
+ } = o, r = j(ie, e), c = q(ie, e), f = r.value === i, [g, C] = t.useState(d ?? ""), [E, T] = t.useState(!1), y = k(
580
+ s,
581
+ (m) => c.itemRefCallback?.(m, i, l)
582
+ ), a = Ie(), h = t.useRef("touch"), S = () => {
583
+ l || (r.onValueChange(i), r.onOpenChange(!1));
584
+ };
585
+ if (i === "")
586
+ throw new Error(
587
+ "A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder."
588
+ );
589
+ return /* @__PURE__ */ p(
590
+ Bt,
591
+ {
592
+ scope: e,
593
+ value: i,
594
+ disabled: l,
595
+ textId: a,
596
+ isSelected: f,
597
+ onItemTextChange: t.useCallback((m) => {
598
+ C((v) => v || (m?.textContent ?? "").trim());
599
+ }, []),
600
+ children: /* @__PURE__ */ p(
601
+ ae.ItemSlot,
602
+ {
603
+ scope: e,
604
+ value: i,
605
+ disabled: l,
606
+ textValue: g,
607
+ children: /* @__PURE__ */ p(
608
+ M.div,
609
+ {
610
+ role: "option",
611
+ "aria-labelledby": a,
612
+ "data-highlighted": E ? "" : void 0,
613
+ "aria-selected": f && E,
614
+ "data-state": f ? "checked" : "unchecked",
615
+ "aria-disabled": l || void 0,
616
+ "data-disabled": l ? "" : void 0,
617
+ tabIndex: l ? void 0 : -1,
618
+ ...n,
619
+ ref: y,
620
+ onFocus: R(n.onFocus, () => T(!0)),
621
+ onBlur: R(n.onBlur, () => T(!1)),
622
+ onClick: R(n.onClick, () => {
623
+ h.current !== "mouse" && S();
624
+ }),
625
+ onPointerUp: R(n.onPointerUp, () => {
626
+ h.current === "mouse" && S();
627
+ }),
628
+ onPointerDown: R(n.onPointerDown, (m) => {
629
+ h.current = m.pointerType;
630
+ }),
631
+ onPointerMove: R(n.onPointerMove, (m) => {
632
+ h.current = m.pointerType, l ? c.onItemLeave?.() : h.current === "mouse" && m.currentTarget.focus({ preventScroll: !0 });
633
+ }),
634
+ onPointerLeave: R(n.onPointerLeave, (m) => {
635
+ m.currentTarget === document.activeElement && c.onItemLeave?.();
636
+ }),
637
+ onKeyDown: R(n.onKeyDown, (m) => {
638
+ c.searchRef?.current !== "" && m.key === " " || (It.includes(m.key) && S(), m.key === " " && m.preventDefault());
639
+ })
640
+ }
641
+ )
642
+ }
643
+ )
644
+ }
645
+ );
646
+ }
647
+ );
648
+ je.displayName = ie;
649
+ var re = "SelectItemText", qe = t.forwardRef(
650
+ (o, s) => {
651
+ const { __scopeSelect: e, className: i, style: l, ...d } = o, n = j(re, e), r = q(re, e), c = Ye(re, e), f = Et(re, e), [g, C] = t.useState(null), E = k(
652
+ s,
653
+ (S) => C(S),
654
+ c.onItemTextChange,
655
+ (S) => r.itemTextRefCallback?.(S, c.value, c.disabled)
656
+ ), T = g?.textContent, y = t.useMemo(
657
+ () => /* @__PURE__ */ p("option", { value: c.value, disabled: c.disabled, children: T }, c.value),
658
+ [c.disabled, c.value, T]
659
+ ), { onNativeOptionAdd: a, onNativeOptionRemove: h } = f;
660
+ return Y(() => (a(y), () => h(y)), [a, h, y]), /* @__PURE__ */ se(Te, { children: [
661
+ /* @__PURE__ */ p(M.span, { id: c.textId, ...d, ref: E }),
662
+ c.isSelected && n.valueNode && !n.valueNodeHasChildren ? be.createPortal(d.children, n.valueNode) : null
663
+ ] });
664
+ }
665
+ );
666
+ qe.displayName = re;
667
+ var Xe = "SelectItemIndicator", Ze = t.forwardRef(
668
+ (o, s) => {
669
+ const { __scopeSelect: e, ...i } = o;
670
+ return Ye(Xe, e).isSelected ? /* @__PURE__ */ p(M.span, { "aria-hidden": !0, ...i, ref: s }) : null;
671
+ }
672
+ );
673
+ Ze.displayName = Xe;
674
+ var Ce = "SelectScrollUpButton", $e = t.forwardRef((o, s) => {
675
+ const e = q(Ce, o.__scopeSelect), i = Pe(Ce, o.__scopeSelect), [l, d] = t.useState(!1), n = k(s, i.onScrollButtonChange);
676
+ return Y(() => {
677
+ if (e.viewport && e.isPositioned) {
678
+ let r = function() {
679
+ const f = c.scrollTop > 0;
680
+ d(f);
681
+ };
682
+ const c = e.viewport;
683
+ return r(), c.addEventListener("scroll", r), () => c.removeEventListener("scroll", r);
684
+ }
685
+ }, [e.viewport, e.isPositioned]), l ? /* @__PURE__ */ p(
686
+ Qe,
687
+ {
688
+ ...o,
689
+ ref: n,
690
+ onAutoScroll: () => {
691
+ const { viewport: r, selectedItem: c } = e;
692
+ r && c && (r.scrollTop = r.scrollTop - c.offsetHeight);
693
+ }
694
+ }
695
+ ) : null;
696
+ });
697
+ $e.displayName = Ce;
698
+ var xe = "SelectScrollDownButton", Je = t.forwardRef((o, s) => {
699
+ const e = q(xe, o.__scopeSelect), i = Pe(xe, o.__scopeSelect), [l, d] = t.useState(!1), n = k(s, i.onScrollButtonChange);
700
+ return Y(() => {
701
+ if (e.viewport && e.isPositioned) {
702
+ let r = function() {
703
+ const f = c.scrollHeight - c.clientHeight, g = Math.ceil(c.scrollTop) < f;
704
+ d(g);
705
+ };
706
+ const c = e.viewport;
707
+ return r(), c.addEventListener("scroll", r), () => c.removeEventListener("scroll", r);
708
+ }
709
+ }, [e.viewport, e.isPositioned]), l ? /* @__PURE__ */ p(
710
+ Qe,
711
+ {
712
+ ...o,
713
+ ref: n,
714
+ onAutoScroll: () => {
715
+ const { viewport: r, selectedItem: c } = e;
716
+ r && c && (r.scrollTop = r.scrollTop + c.offsetHeight);
717
+ }
718
+ }
719
+ ) : null;
720
+ });
721
+ Je.displayName = xe;
722
+ var Qe = t.forwardRef((o, s) => {
723
+ const { __scopeSelect: e, onAutoScroll: i, ...l } = o, d = q("SelectScrollButton", e), n = t.useRef(null), r = de(e), c = t.useCallback(() => {
724
+ n.current !== null && (window.clearInterval(n.current), n.current = null);
725
+ }, []);
726
+ return t.useEffect(() => () => c(), [c]), Y(() => {
727
+ r().find((g) => g.ref.current === document.activeElement)?.ref.current?.scrollIntoView({ block: "nearest" });
728
+ }, [r]), /* @__PURE__ */ p(
729
+ M.div,
730
+ {
731
+ "aria-hidden": !0,
732
+ ...l,
733
+ ref: s,
734
+ style: { flexShrink: 0, ...l.style },
735
+ onPointerDown: R(l.onPointerDown, () => {
736
+ n.current === null && (n.current = window.setInterval(i, 50));
737
+ }),
738
+ onPointerMove: R(l.onPointerMove, () => {
739
+ d.onItemLeave?.(), n.current === null && (n.current = window.setInterval(i, 50));
740
+ }),
741
+ onPointerLeave: R(l.onPointerLeave, () => {
742
+ c();
743
+ })
744
+ }
745
+ );
746
+ }), Vt = "SelectSeparator", et = t.forwardRef(
747
+ (o, s) => {
748
+ const { __scopeSelect: e, ...i } = o;
749
+ return /* @__PURE__ */ p(M.div, { "aria-hidden": !0, ...i, ref: s });
750
+ }
751
+ );
752
+ et.displayName = Vt;
753
+ var ye = "SelectArrow", Ht = t.forwardRef(
754
+ (o, s) => {
755
+ const { __scopeSelect: e, ...i } = o, l = ue(e), d = j(ye, e), n = q(ye, e);
756
+ return d.open && n.position === "popper" ? /* @__PURE__ */ p(mt, { ...l, ...i, ref: s }) : null;
757
+ }
758
+ );
759
+ Ht.displayName = ye;
760
+ var Ut = "SelectBubbleInput", tt = t.forwardRef(
761
+ ({ __scopeSelect: o, value: s, ...e }, i) => {
762
+ const l = t.useRef(null), d = k(i, l), n = St(s);
763
+ return t.useEffect(() => {
764
+ const r = l.current;
765
+ if (!r) return;
766
+ const c = window.HTMLSelectElement.prototype, g = Object.getOwnPropertyDescriptor(
767
+ c,
768
+ "value"
769
+ ).set;
770
+ if (n !== s && g) {
771
+ const C = new Event("change", { bubbles: !0 });
772
+ g.call(r, s), r.dispatchEvent(C);
773
+ }
774
+ }, [n, s]), /* @__PURE__ */ p(
775
+ M.select,
776
+ {
777
+ ...e,
778
+ style: { ...wt, ...e.style },
779
+ ref: d,
780
+ defaultValue: s
781
+ }
782
+ );
783
+ }
784
+ );
785
+ tt.displayName = Ut;
786
+ function ot(o) {
787
+ return o === "" || o === void 0;
788
+ }
789
+ function nt(o) {
790
+ const s = gt(o), e = t.useRef(""), i = t.useRef(0), l = t.useCallback(
791
+ (n) => {
792
+ const r = e.current + n;
793
+ s(r), (function c(f) {
794
+ e.current = f, window.clearTimeout(i.current), f !== "" && (i.current = window.setTimeout(() => c(""), 1e3));
795
+ })(r);
796
+ },
797
+ [s]
798
+ ), d = t.useCallback(() => {
799
+ e.current = "", window.clearTimeout(i.current);
800
+ }, []);
801
+ return t.useEffect(() => () => window.clearTimeout(i.current), []), [e, l, d];
802
+ }
803
+ function rt(o, s, e) {
804
+ const l = s.length > 1 && Array.from(s).every((f) => f === s[0]) ? s[0] : s, d = e ? o.indexOf(e) : -1;
805
+ let n = Wt(o, Math.max(d, 0));
806
+ l.length === 1 && (n = n.filter((f) => f !== e));
807
+ const c = n.find(
808
+ (f) => f.textValue.toLowerCase().startsWith(l.toLowerCase())
809
+ );
810
+ return c !== e ? c : void 0;
811
+ }
812
+ function Wt(o, s) {
813
+ return o.map((e, i) => o[(s + i) % o.length]);
814
+ }
815
+ var uo = Ne, po = Ae, fo = De, mo = Le, ho = ke, vo = Be, go = We, So = Ke, wo = ze, Co = je, xo = qe, yo = Ze, Io = $e, To = Je, Po = et;
816
+ export {
817
+ vo as Content,
818
+ So as Group,
819
+ mo as Icon,
820
+ Co as Item,
821
+ yo as ItemIndicator,
822
+ xo as ItemText,
823
+ wo as Label,
824
+ ho as Portal,
825
+ uo as Root,
826
+ To as ScrollDownButton,
827
+ Io as ScrollUpButton,
828
+ Ne as Select,
829
+ Ht as SelectArrow,
830
+ Be as SelectContent,
831
+ Ke as SelectGroup,
832
+ Le as SelectIcon,
833
+ je as SelectItem,
834
+ Ze as SelectItemIndicator,
835
+ qe as SelectItemText,
836
+ ze as SelectLabel,
837
+ ke as SelectPortal,
838
+ Je as SelectScrollDownButton,
839
+ $e as SelectScrollUpButton,
840
+ et as SelectSeparator,
841
+ Ae as SelectTrigger,
842
+ De as SelectValue,
843
+ We as SelectViewport,
844
+ Po as Separator,
845
+ po as Trigger,
846
+ fo as Value,
847
+ go as Viewport
848
+ };