@dreamcommerce/aurora 3.0.0-64 → 3.0.0-66

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 (259) hide show
  1. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +4 -0
  2. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/build/cjs/external/@floating-ui/core/dist/floating-ui.core.mjs.js +820 -0
  4. package/build/cjs/external/@floating-ui/core/dist/floating-ui.core.mjs.js.map +1 -0
  5. package/build/cjs/external/@floating-ui/dom/dist/floating-ui.dom.mjs.js +726 -0
  6. package/build/cjs/external/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +1 -0
  7. package/build/cjs/external/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +360 -0
  8. package/build/cjs/external/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +1 -0
  9. package/build/cjs/external/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +177 -0
  10. package/build/cjs/external/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +1 -0
  11. package/build/cjs/external/@floating-ui/utils/dist/floating-ui.utils.mjs.js +162 -0
  12. package/build/cjs/external/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +1 -0
  13. package/build/cjs/external/@radix-ui/number/dist/index.mjs.js +16 -0
  14. package/build/cjs/external/@radix-ui/number/dist/index.mjs.js.map +1 -0
  15. package/build/cjs/external/@radix-ui/react-focus-guards/dist/index.mjs.js +37 -0
  16. package/build/cjs/external/@radix-ui/react-focus-guards/dist/index.mjs.js.map +1 -0
  17. package/build/cjs/external/@radix-ui/react-radio-group/dist/index.mjs.js +1 -1
  18. package/build/cjs/external/@radix-ui/react-radio-group/dist/index.mjs.js.map +1 -1
  19. package/build/cjs/external/@radix-ui/react-radio-group/external/@radix-ui/react-roving-focus/dist/index.mjs.js +2 -2
  20. package/build/cjs/external/@radix-ui/react-select/dist/index.mjs.js +1332 -0
  21. package/build/cjs/external/@radix-ui/react-select/dist/index.mjs.js.map +1 -0
  22. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/primitive/dist/index.mjs.js +19 -0
  23. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/primitive/dist/index.mjs.js.map +1 -0
  24. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-arrow/dist/index.mjs.js +35 -0
  25. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-arrow/dist/index.mjs.js.map +1 -0
  26. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-collection/dist/index.mjs.js +102 -0
  27. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-collection/dist/index.mjs.js.map +1 -0
  28. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-compose-refs/dist/index.mjs.js +51 -0
  29. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-compose-refs/dist/index.mjs.js.map +1 -0
  30. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-dismissable-layer/dist/index.mjs.js +247 -0
  31. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-dismissable-layer/dist/index.mjs.js.map +1 -0
  32. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-focus-scope/dist/index.mjs.js +286 -0
  33. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-focus-scope/dist/index.mjs.js.map +1 -0
  34. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-popper/dist/index.mjs.js +349 -0
  35. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-popper/dist/index.mjs.js.map +1 -0
  36. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-portal/dist/index.mjs.js +37 -0
  37. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-portal/dist/index.mjs.js.map +1 -0
  38. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-primitive/dist/index.mjs.js +36 -0
  39. package/build/cjs/external/@radix-ui/react-select/external/@radix-ui/react-primitive/dist/index.mjs.js.map +1 -0
  40. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/Combination.js +14 -0
  41. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
  42. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/SideEffect.js +167 -0
  43. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
  44. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/UI.js +43 -0
  45. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/UI.js.map +1 -0
  46. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/aggresiveCapture.js +26 -0
  47. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
  48. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/handleScroll.js +115 -0
  49. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
  50. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/medium.js +10 -0
  51. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/medium.js.map +1 -0
  52. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/sidecar.js +12 -0
  53. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
  54. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/external/tslib/tslib.es6.mjs.js +60 -0
  55. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll/external/tslib/tslib.es6.mjs.js.map +1 -0
  56. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/component.js +63 -0
  57. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
  58. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/constants.js +18 -0
  59. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
  60. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/utils.js +37 -0
  61. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
  62. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/component.js +24 -0
  63. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/component.js.map +1 -0
  64. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/hook.js +30 -0
  65. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/hook.js.map +1 -0
  66. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/singleton.js +56 -0
  67. package/build/cjs/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  68. package/build/cjs/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/assignRef.js +29 -0
  69. package/build/cjs/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
  70. package/build/cjs/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useMergeRef.js +53 -0
  71. package/build/cjs/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
  72. package/build/cjs/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useRef.js +47 -0
  73. package/build/cjs/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useRef.js.map +1 -0
  74. package/build/cjs/external/@radix-ui/react-use-escape-keydown/dist/index.mjs.js +30 -0
  75. package/build/cjs/external/@radix-ui/react-use-escape-keydown/dist/index.mjs.js.map +1 -0
  76. package/build/cjs/external/@radix-ui/react-visually-hidden/dist/index.mjs.js +32 -0
  77. package/build/cjs/external/@radix-ui/react-visually-hidden/dist/index.mjs.js.map +1 -0
  78. package/build/cjs/external/@radix-ui/react-visually-hidden/external/@radix-ui/react-primitive/dist/index.mjs.js +30 -0
  79. package/build/cjs/external/@radix-ui/react-visually-hidden/external/@radix-ui/react-primitive/dist/index.mjs.js.map +1 -0
  80. package/build/cjs/external/aria-hidden/dist/es2015/index.js +141 -0
  81. package/build/cjs/external/aria-hidden/dist/es2015/index.js.map +1 -0
  82. package/build/cjs/external/get-nonce/dist/es2015/index.js +13 -0
  83. package/build/cjs/external/get-nonce/dist/es2015/index.js.map +1 -0
  84. package/build/cjs/external/react-style-singleton/dist/es2015/component.js +24 -0
  85. package/build/cjs/external/react-style-singleton/dist/es2015/component.js.map +1 -0
  86. package/build/cjs/external/react-style-singleton/dist/es2015/hook.js +30 -0
  87. package/build/cjs/external/react-style-singleton/dist/es2015/hook.js.map +1 -0
  88. package/build/cjs/external/react-style-singleton/dist/es2015/singleton.js +56 -0
  89. package/build/cjs/external/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  90. package/build/cjs/external/use-sidecar/dist/es2015/exports.js +26 -0
  91. package/build/cjs/external/use-sidecar/dist/es2015/exports.js.map +1 -0
  92. package/build/cjs/external/use-sidecar/dist/es2015/medium.js +82 -0
  93. package/build/cjs/external/use-sidecar/dist/es2015/medium.js.map +1 -0
  94. package/build/cjs/external/use-sidecar/external/tslib/tslib.es6.mjs.js +49 -0
  95. package/build/cjs/external/use-sidecar/external/tslib/tslib.es6.mjs.js.map +1 -0
  96. package/build/cjs/packages/aurora/src/assets/icons/arrow_down_s_fill.js +10 -0
  97. package/build/cjs/packages/aurora/src/assets/icons/arrow_down_s_fill.js.map +1 -0
  98. package/build/cjs/packages/aurora/src/assets/icons/close_circle_fill_icon.js +10 -0
  99. package/build/cjs/packages/aurora/src/assets/icons/close_circle_fill_icon.js.map +1 -0
  100. package/build/cjs/packages/aurora/src/assets/icons/search_icon.js +10 -0
  101. package/build/cjs/packages/aurora/src/assets/icons/search_icon.js.map +1 -0
  102. package/build/cjs/packages/aurora/src/components/controls/input_control/input_control.js +6 -4
  103. package/build/cjs/packages/aurora/src/components/controls/input_control/input_control.js.map +1 -1
  104. package/build/cjs/packages/aurora/src/components/input/input.js +1 -2
  105. package/build/cjs/packages/aurora/src/components/input/input.js.map +1 -1
  106. package/build/cjs/packages/aurora/src/components/select/components/select_content.js +76 -0
  107. package/build/cjs/packages/aurora/src/components/select/components/select_content.js.map +1 -0
  108. package/build/cjs/packages/aurora/src/components/select/components/select_item.js +33 -0
  109. package/build/cjs/packages/aurora/src/components/select/components/select_item.js.map +1 -0
  110. package/build/cjs/packages/aurora/src/components/select/components/select_trigger.js +35 -0
  111. package/build/cjs/packages/aurora/src/components/select/components/select_trigger.js.map +1 -0
  112. package/build/cjs/packages/aurora/src/components/select/components/select_value.js +10 -0
  113. package/build/cjs/packages/aurora/src/components/select/components/select_value.js.map +1 -0
  114. package/build/cjs/packages/aurora/src/components/select/select.js +83 -0
  115. package/build/cjs/packages/aurora/src/components/select/select.js.map +1 -0
  116. package/build/cjs/packages/aurora/src/index.js +2 -0
  117. package/build/cjs/packages/aurora/src/index.js.map +1 -1
  118. package/build/esm/_virtual/_rollupPluginBabelHelpers.js +4 -1
  119. package/build/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  120. package/build/esm/external/@floating-ui/core/dist/floating-ui.core.mjs.js +808 -0
  121. package/build/esm/external/@floating-ui/core/dist/floating-ui.core.mjs.js.map +1 -0
  122. package/build/esm/external/@floating-ui/dom/dist/floating-ui.dom.mjs.js +713 -0
  123. package/build/esm/external/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +1 -0
  124. package/build/esm/external/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +347 -0
  125. package/build/esm/external/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +1 -0
  126. package/build/esm/external/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +154 -0
  127. package/build/esm/external/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +1 -0
  128. package/build/esm/external/@floating-ui/utils/dist/floating-ui.utils.mjs.js +137 -0
  129. package/build/esm/external/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +1 -0
  130. package/build/esm/external/@radix-ui/number/dist/index.mjs.js +12 -0
  131. package/build/esm/external/@radix-ui/number/dist/index.mjs.js.map +1 -0
  132. package/build/esm/external/@radix-ui/react-focus-guards/dist/index.mjs.js +33 -0
  133. package/build/esm/external/@radix-ui/react-focus-guards/dist/index.mjs.js.map +1 -0
  134. package/build/esm/external/@radix-ui/react-radio-group/dist/index.mjs.js +1 -1
  135. package/build/esm/external/@radix-ui/react-radio-group/dist/index.mjs.js.map +1 -1
  136. package/build/esm/external/@radix-ui/react-radio-group/external/@radix-ui/react-roving-focus/dist/index.mjs.js +2 -2
  137. package/build/esm/external/@radix-ui/react-select/dist/index.mjs.js +1302 -0
  138. package/build/esm/external/@radix-ui/react-select/dist/index.mjs.js.map +1 -0
  139. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/primitive/dist/index.mjs.js +15 -0
  140. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/primitive/dist/index.mjs.js.map +1 -0
  141. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-arrow/dist/index.mjs.js +30 -0
  142. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-arrow/dist/index.mjs.js.map +1 -0
  143. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-collection/dist/index.mjs.js +94 -0
  144. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-collection/dist/index.mjs.js.map +1 -0
  145. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-compose-refs/dist/index.mjs.js +46 -0
  146. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-compose-refs/dist/index.mjs.js.map +1 -0
  147. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-dismissable-layer/dist/index.mjs.js +242 -0
  148. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-dismissable-layer/dist/index.mjs.js.map +1 -0
  149. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-focus-scope/dist/index.mjs.js +282 -0
  150. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-focus-scope/dist/index.mjs.js.map +1 -0
  151. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-popper/dist/index.mjs.js +337 -0
  152. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-popper/dist/index.mjs.js.map +1 -0
  153. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-portal/dist/index.mjs.js +29 -0
  154. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-portal/dist/index.mjs.js.map +1 -0
  155. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-primitive/dist/index.mjs.js +31 -0
  156. package/build/esm/external/@radix-ui/react-select/external/@radix-ui/react-primitive/dist/index.mjs.js.map +1 -0
  157. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/Combination.js +10 -0
  158. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
  159. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/SideEffect.js +161 -0
  160. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
  161. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/UI.js +39 -0
  162. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/UI.js.map +1 -0
  163. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/aggresiveCapture.js +22 -0
  164. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
  165. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/handleScroll.js +110 -0
  166. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
  167. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/medium.js +6 -0
  168. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/medium.js.map +1 -0
  169. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/sidecar.js +8 -0
  170. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
  171. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/external/tslib/tslib.es6.mjs.js +55 -0
  172. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll/external/tslib/tslib.es6.mjs.js.map +1 -0
  173. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/component.js +57 -0
  174. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
  175. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/constants.js +11 -0
  176. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
  177. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/utils.js +32 -0
  178. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
  179. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/component.js +20 -0
  180. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/component.js.map +1 -0
  181. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/hook.js +26 -0
  182. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/hook.js.map +1 -0
  183. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/singleton.js +52 -0
  184. package/build/esm/external/@radix-ui/react-select/external/react-remove-scroll-bar/external/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  185. package/build/esm/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/assignRef.js +25 -0
  186. package/build/esm/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
  187. package/build/esm/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useMergeRef.js +49 -0
  188. package/build/esm/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
  189. package/build/esm/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useRef.js +43 -0
  190. package/build/esm/external/@radix-ui/react-select/external/use-callback-ref/dist/es2015/useRef.js.map +1 -0
  191. package/build/esm/external/@radix-ui/react-use-escape-keydown/dist/index.mjs.js +26 -0
  192. package/build/esm/external/@radix-ui/react-use-escape-keydown/dist/index.mjs.js.map +1 -0
  193. package/build/esm/external/@radix-ui/react-visually-hidden/dist/index.mjs.js +28 -0
  194. package/build/esm/external/@radix-ui/react-visually-hidden/dist/index.mjs.js.map +1 -0
  195. package/build/esm/external/@radix-ui/react-visually-hidden/external/@radix-ui/react-primitive/dist/index.mjs.js +26 -0
  196. package/build/esm/external/@radix-ui/react-visually-hidden/external/@radix-ui/react-primitive/dist/index.mjs.js.map +1 -0
  197. package/build/esm/external/aria-hidden/dist/es2015/index.js +137 -0
  198. package/build/esm/external/aria-hidden/dist/es2015/index.js.map +1 -0
  199. package/build/esm/external/get-nonce/dist/es2015/index.js +9 -0
  200. package/build/esm/external/get-nonce/dist/es2015/index.js.map +1 -0
  201. package/build/esm/external/react-style-singleton/dist/es2015/component.js +20 -0
  202. package/build/esm/external/react-style-singleton/dist/es2015/component.js.map +1 -0
  203. package/build/esm/external/react-style-singleton/dist/es2015/hook.js +26 -0
  204. package/build/esm/external/react-style-singleton/dist/es2015/hook.js.map +1 -0
  205. package/build/esm/external/react-style-singleton/dist/es2015/singleton.js +52 -0
  206. package/build/esm/external/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  207. package/build/esm/external/use-sidecar/dist/es2015/exports.js +22 -0
  208. package/build/esm/external/use-sidecar/dist/es2015/exports.js.map +1 -0
  209. package/build/esm/external/use-sidecar/dist/es2015/medium.js +78 -0
  210. package/build/esm/external/use-sidecar/dist/es2015/medium.js.map +1 -0
  211. package/build/esm/external/use-sidecar/external/tslib/tslib.es6.mjs.js +45 -0
  212. package/build/esm/external/use-sidecar/external/tslib/tslib.es6.mjs.js.map +1 -0
  213. package/build/esm/packages/aurora/src/assets/icons/arrow_down_s_fill.d.ts +1 -0
  214. package/build/esm/packages/aurora/src/assets/icons/arrow_down_s_fill.js +6 -0
  215. package/build/esm/packages/aurora/src/assets/icons/arrow_down_s_fill.js.map +1 -0
  216. package/build/esm/packages/aurora/src/assets/icons/close_circle_fill_icon.d.ts +1 -0
  217. package/build/esm/packages/aurora/src/assets/icons/close_circle_fill_icon.js +6 -0
  218. package/build/esm/packages/aurora/src/assets/icons/close_circle_fill_icon.js.map +1 -0
  219. package/build/esm/packages/aurora/src/assets/icons/search_icon.d.ts +1 -0
  220. package/build/esm/packages/aurora/src/assets/icons/search_icon.js +6 -0
  221. package/build/esm/packages/aurora/src/assets/icons/search_icon.js.map +1 -0
  222. package/build/esm/packages/aurora/src/components/controls/checkbox_control/checkbox_control.js +2 -1
  223. package/build/esm/packages/aurora/src/components/controls/checkbox_control/checkbox_control.js.map +1 -1
  224. package/build/esm/packages/aurora/src/components/controls/input_control/input_control.js +6 -4
  225. package/build/esm/packages/aurora/src/components/controls/input_control/input_control.js.map +1 -1
  226. package/build/esm/packages/aurora/src/components/controls/input_control/input_control_types.d.ts +2 -2
  227. package/build/esm/packages/aurora/src/components/controls/input_control/input_control_types.js +2 -2
  228. package/build/esm/packages/aurora/src/components/controls/input_control/input_control_types.js.map +1 -1
  229. package/build/esm/packages/aurora/src/components/controls/select_control/select_control.d.ts +3 -0
  230. package/build/esm/packages/aurora/src/components/controls/select_control/select_control.js +15 -0
  231. package/build/esm/packages/aurora/src/components/controls/select_control/select_control.js.map +1 -0
  232. package/build/esm/packages/aurora/src/components/controls/select_control/select_control_types.d.ts +14 -0
  233. package/build/esm/packages/aurora/src/components/controls/select_control/select_control_types.js +3 -0
  234. package/build/esm/packages/aurora/src/components/controls/select_control/select_control_types.js.map +1 -0
  235. package/build/esm/packages/aurora/src/components/input/input.js +1 -2
  236. package/build/esm/packages/aurora/src/components/input/input.js.map +1 -1
  237. package/build/esm/packages/aurora/src/components/select/components/select_content.d.ts +3 -0
  238. package/build/esm/packages/aurora/src/components/select/components/select_content.js +68 -0
  239. package/build/esm/packages/aurora/src/components/select/components/select_content.js.map +1 -0
  240. package/build/esm/packages/aurora/src/components/select/components/select_item.d.ts +3 -0
  241. package/build/esm/packages/aurora/src/components/select/components/select_item.js +25 -0
  242. package/build/esm/packages/aurora/src/components/select/components/select_item.js.map +1 -0
  243. package/build/esm/packages/aurora/src/components/select/components/select_trigger.d.ts +3 -0
  244. package/build/esm/packages/aurora/src/components/select/components/select_trigger.js +27 -0
  245. package/build/esm/packages/aurora/src/components/select/components/select_trigger.js.map +1 -0
  246. package/build/esm/packages/aurora/src/components/select/components/select_value.d.ts +3 -0
  247. package/build/esm/packages/aurora/src/components/select/components/select_value.js +6 -0
  248. package/build/esm/packages/aurora/src/components/select/components/select_value.js.map +1 -0
  249. package/build/esm/packages/aurora/src/components/select/select.d.ts +3 -0
  250. package/build/esm/packages/aurora/src/components/select/select.js +75 -0
  251. package/build/esm/packages/aurora/src/components/select/select.js.map +1 -0
  252. package/build/esm/packages/aurora/src/components/select/select_types.d.ts +27 -0
  253. package/build/esm/packages/aurora/src/components/select/select_types.js +3 -0
  254. package/build/esm/packages/aurora/src/components/select/select_types.js.map +1 -0
  255. package/build/esm/packages/aurora/src/index.d.ts +1 -0
  256. package/build/esm/packages/aurora/src/index.js +1 -0
  257. package/build/esm/packages/aurora/src/index.js.map +1 -1
  258. package/build/index.css +1 -1
  259. package/package.json +2 -1
@@ -0,0 +1,1302 @@
1
+ import { useState, useRef, useCallback, forwardRef, useEffect, useMemo } from 'react';
2
+ import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, objectWithoutProperties as _objectWithoutProperties, toArray as _toArray, createForOfIteratorHelper as _createForOfIteratorHelper } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
3
+ import { createPortal } from 'react-dom';
4
+ import { Slot } from '@radix-ui/react-slot';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+ import { createContextScope } from '../../react-context/dist/index.mjs.js';
7
+ import { useCallbackRef } from '../../react-use-callback-ref/dist/index.mjs.js';
8
+ import { useControllableState } from '../../react-use-controllable-state/dist/index.mjs.js';
9
+ import { usePrevious } from '../../react-use-previous/dist/index.mjs.js';
10
+ import { useLayoutEffect as useLayoutEffect2 } from '../../react-use-layout-effect/dist/index.mjs.js';
11
+ import { clamp } from '../../number/dist/index.mjs.js';
12
+ import { composeEventHandlers } from '../external/@radix-ui/primitive/dist/index.mjs.js';
13
+ import { useComposedRefs } from '../external/@radix-ui/react-compose-refs/dist/index.mjs.js';
14
+ import { createCollection } from '../external/@radix-ui/react-collection/dist/index.mjs.js';
15
+ import { useDirection } from '../../react-direction/dist/index.mjs.js';
16
+ import { Primitive } from '../external/@radix-ui/react-primitive/dist/index.mjs.js';
17
+ import { DismissableLayer } from '../external/@radix-ui/react-dismissable-layer/dist/index.mjs.js';
18
+ import { useFocusGuards } from '../../react-focus-guards/dist/index.mjs.js';
19
+ import { FocusScope } from '../external/@radix-ui/react-focus-scope/dist/index.mjs.js';
20
+ import { useId } from '../../react-id/dist/index.mjs.js';
21
+ import { createPopperScope, Root as Root2$1, Anchor, Content, Arrow } from '../external/@radix-ui/react-popper/dist/index.mjs.js';
22
+ import { Portal as Portal$1 } from '../external/@radix-ui/react-portal/dist/index.mjs.js';
23
+ import { VisuallyHidden } from '../../react-visually-hidden/dist/index.mjs.js';
24
+ import { hideOthers } from '../../../aria-hidden/dist/es2015/index.js';
25
+ import ReactRemoveScroll from '../external/react-remove-scroll/dist/es2015/Combination.js';
26
+
27
+ var _excluded = ["__scopeSelect", "disabled"],
28
+ _excluded2 = ["__scopeSelect", "className", "style", "children", "placeholder"],
29
+ _excluded3 = ["__scopeSelect", "children"],
30
+ _excluded4 = ["__scopeSelect", "position", "onCloseAutoFocus", "onEscapeKeyDown", "onPointerDownOutside", "side", "sideOffset", "align", "alignOffset", "arrowPadding", "collisionBoundary", "collisionPadding", "sticky", "hideWhenDetached", "avoidCollisions"],
31
+ _excluded5 = ["__scopeSelect", "onPlaced"],
32
+ _excluded6 = ["__scopeSelect", "align", "collisionPadding"],
33
+ _excluded7 = ["__scopeSelect", "nonce"],
34
+ _excluded8 = ["__scopeSelect"],
35
+ _excluded9 = ["__scopeSelect"],
36
+ _excluded10 = ["__scopeSelect", "value", "disabled", "textValue"],
37
+ _excluded11 = ["__scopeSelect", "className", "style"],
38
+ _excluded12 = ["__scopeSelect"],
39
+ _excluded13 = ["__scopeSelect", "onAutoScroll"],
40
+ _excluded14 = ["__scopeSelect"],
41
+ _excluded15 = ["__scopeSelect"],
42
+ _excluded16 = ["value"];
43
+ var OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
44
+ var SELECTION_KEYS = [" ", "Enter"];
45
+ var SELECT_NAME = "Select";
46
+ var _createCollection = createCollection(SELECT_NAME),
47
+ _createCollection2 = _slicedToArray(_createCollection, 3),
48
+ Collection = _createCollection2[0],
49
+ useCollection = _createCollection2[1],
50
+ createCollectionScope = _createCollection2[2];
51
+ var _createContextScope = createContextScope(SELECT_NAME, [createCollectionScope, createPopperScope]),
52
+ _createContextScope2 = _slicedToArray(_createContextScope, 2),
53
+ createSelectContext = _createContextScope2[0],
54
+ createSelectScope = _createContextScope2[1];
55
+ var usePopperScope = createPopperScope();
56
+ var _createSelectContext = createSelectContext(SELECT_NAME),
57
+ _createSelectContext2 = _slicedToArray(_createSelectContext, 2),
58
+ SelectProvider = _createSelectContext2[0],
59
+ useSelectContext = _createSelectContext2[1];
60
+ var _createSelectContext3 = createSelectContext(SELECT_NAME),
61
+ _createSelectContext4 = _slicedToArray(_createSelectContext3, 2),
62
+ SelectNativeOptionsProvider = _createSelectContext4[0],
63
+ useSelectNativeOptionsContext = _createSelectContext4[1];
64
+ var Select = function Select(props) {
65
+ var __scopeSelect = props.__scopeSelect,
66
+ children = props.children,
67
+ openProp = props.open,
68
+ defaultOpen = props.defaultOpen,
69
+ onOpenChange = props.onOpenChange,
70
+ valueProp = props.value,
71
+ defaultValue = props.defaultValue,
72
+ onValueChange = props.onValueChange,
73
+ dir = props.dir,
74
+ name = props.name,
75
+ autoComplete = props.autoComplete,
76
+ disabled = props.disabled,
77
+ required = props.required,
78
+ form = props.form;
79
+ var popperScope = usePopperScope(__scopeSelect);
80
+ var _React$useState = useState(null),
81
+ _React$useState2 = _slicedToArray(_React$useState, 2),
82
+ trigger = _React$useState2[0],
83
+ setTrigger = _React$useState2[1];
84
+ var _React$useState3 = useState(null),
85
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
86
+ valueNode = _React$useState4[0],
87
+ setValueNode = _React$useState4[1];
88
+ var _React$useState5 = useState(false),
89
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
90
+ valueNodeHasChildren = _React$useState6[0],
91
+ setValueNodeHasChildren = _React$useState6[1];
92
+ var direction = useDirection(dir);
93
+ var _useControllableState = useControllableState({
94
+ prop: openProp,
95
+ defaultProp: defaultOpen,
96
+ onChange: onOpenChange
97
+ }),
98
+ _useControllableState2 = _slicedToArray(_useControllableState, 2),
99
+ _useControllableState3 = _useControllableState2[0],
100
+ open = _useControllableState3 === void 0 ? false : _useControllableState3,
101
+ setOpen = _useControllableState2[1];
102
+ var _useControllableState4 = useControllableState({
103
+ prop: valueProp,
104
+ defaultProp: defaultValue,
105
+ onChange: onValueChange
106
+ }),
107
+ _useControllableState5 = _slicedToArray(_useControllableState4, 2),
108
+ value = _useControllableState5[0],
109
+ setValue = _useControllableState5[1];
110
+ var triggerPointerDownPosRef = useRef(null);
111
+ var isFormControl = trigger ? form || !!trigger.closest("form") : true;
112
+ var _React$useState7 = useState(/* @__PURE__ */new Set()),
113
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
114
+ nativeOptionsSet = _React$useState8[0],
115
+ setNativeOptionsSet = _React$useState8[1];
116
+ var nativeSelectKey = Array.from(nativeOptionsSet).map(function (option) {
117
+ return option.props.value;
118
+ }).join(";");
119
+ return /* @__PURE__ */jsx(Root2$1, _objectSpread2(_objectSpread2({}, popperScope), {}, {
120
+ children: /* @__PURE__ */jsxs(SelectProvider, {
121
+ required: required,
122
+ scope: __scopeSelect,
123
+ trigger: trigger,
124
+ onTriggerChange: setTrigger,
125
+ valueNode: valueNode,
126
+ onValueNodeChange: setValueNode,
127
+ valueNodeHasChildren: valueNodeHasChildren,
128
+ onValueNodeHasChildrenChange: setValueNodeHasChildren,
129
+ contentId: useId(),
130
+ value: value,
131
+ onValueChange: setValue,
132
+ open: open,
133
+ onOpenChange: setOpen,
134
+ dir: direction,
135
+ triggerPointerDownPosRef: triggerPointerDownPosRef,
136
+ disabled: disabled,
137
+ children: [/* @__PURE__ */jsx(Collection.Provider, {
138
+ scope: __scopeSelect,
139
+ children: /* @__PURE__ */jsx(SelectNativeOptionsProvider, {
140
+ scope: props.__scopeSelect,
141
+ onNativeOptionAdd: useCallback(function (option) {
142
+ setNativeOptionsSet(function (prev) {
143
+ return new Set(prev).add(option);
144
+ });
145
+ }, []),
146
+ onNativeOptionRemove: useCallback(function (option) {
147
+ setNativeOptionsSet(function (prev) {
148
+ var optionsSet = new Set(prev);
149
+ optionsSet.delete(option);
150
+ return optionsSet;
151
+ });
152
+ }, []),
153
+ children: children
154
+ })
155
+ }), isFormControl ? /* @__PURE__ */jsxs(BubbleSelect, {
156
+ "aria-hidden": true,
157
+ required: required,
158
+ tabIndex: -1,
159
+ name: name,
160
+ autoComplete: autoComplete,
161
+ value: value,
162
+ onChange: function onChange(event) {
163
+ return setValue(event.target.value);
164
+ },
165
+ disabled: disabled,
166
+ form: form,
167
+ children: [value === void 0 ? /* @__PURE__ */jsx("option", {
168
+ value: ""
169
+ }) : null, Array.from(nativeOptionsSet)]
170
+ }, nativeSelectKey) : null]
171
+ })
172
+ }));
173
+ };
174
+ Select.displayName = SELECT_NAME;
175
+ var TRIGGER_NAME = "SelectTrigger";
176
+ var SelectTrigger = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
177
+ var __scopeSelect = props.__scopeSelect,
178
+ _props$disabled = props.disabled,
179
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
180
+ triggerProps = _objectWithoutProperties(props, _excluded);
181
+ var popperScope = usePopperScope(__scopeSelect);
182
+ var context = useSelectContext(TRIGGER_NAME, __scopeSelect);
183
+ var isDisabled = context.disabled || disabled;
184
+ var composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);
185
+ var getItems = useCollection(__scopeSelect);
186
+ var pointerTypeRef = useRef("touch");
187
+ var _useTypeaheadSearch = useTypeaheadSearch(function (search) {
188
+ var enabledItems = getItems().filter(function (item) {
189
+ return !item.disabled;
190
+ });
191
+ var currentItem = enabledItems.find(function (item) {
192
+ return item.value === context.value;
193
+ });
194
+ var nextItem = findNextItem(enabledItems, search, currentItem);
195
+ if (nextItem !== void 0) {
196
+ context.onValueChange(nextItem.value);
197
+ }
198
+ }),
199
+ _useTypeaheadSearch2 = _slicedToArray(_useTypeaheadSearch, 3),
200
+ searchRef = _useTypeaheadSearch2[0],
201
+ handleTypeaheadSearch = _useTypeaheadSearch2[1],
202
+ resetTypeahead = _useTypeaheadSearch2[2];
203
+ var handleOpen = function handleOpen(pointerEvent) {
204
+ if (!isDisabled) {
205
+ context.onOpenChange(true);
206
+ resetTypeahead();
207
+ }
208
+ if (pointerEvent) {
209
+ context.triggerPointerDownPosRef.current = {
210
+ x: Math.round(pointerEvent.pageX),
211
+ y: Math.round(pointerEvent.pageY)
212
+ };
213
+ }
214
+ };
215
+ return /* @__PURE__ */jsx(Anchor, _objectSpread2(_objectSpread2({
216
+ asChild: true
217
+ }, popperScope), {}, {
218
+ children: /* @__PURE__ */jsx(Primitive.button, _objectSpread2(_objectSpread2({
219
+ type: "button",
220
+ role: "combobox",
221
+ "aria-controls": context.contentId,
222
+ "aria-expanded": context.open,
223
+ "aria-required": context.required,
224
+ "aria-autocomplete": "none",
225
+ dir: context.dir,
226
+ "data-state": context.open ? "open" : "closed",
227
+ disabled: isDisabled,
228
+ "data-disabled": isDisabled ? "" : void 0,
229
+ "data-placeholder": shouldShowPlaceholder(context.value) ? "" : void 0
230
+ }, triggerProps), {}, {
231
+ ref: composedRefs,
232
+ onClick: composeEventHandlers(triggerProps.onClick, function (event) {
233
+ event.currentTarget.focus();
234
+ if (pointerTypeRef.current !== "mouse") {
235
+ handleOpen(event);
236
+ }
237
+ }),
238
+ onPointerDown: composeEventHandlers(triggerProps.onPointerDown, function (event) {
239
+ pointerTypeRef.current = event.pointerType;
240
+ var target = event.target;
241
+ if (target.hasPointerCapture(event.pointerId)) {
242
+ target.releasePointerCapture(event.pointerId);
243
+ }
244
+ if (event.button === 0 && event.ctrlKey === false && event.pointerType === "mouse") {
245
+ handleOpen(event);
246
+ event.preventDefault();
247
+ }
248
+ }),
249
+ onKeyDown: composeEventHandlers(triggerProps.onKeyDown, function (event) {
250
+ var isTypingAhead = searchRef.current !== "";
251
+ var isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
252
+ if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
253
+ if (isTypingAhead && event.key === " ") return;
254
+ if (OPEN_KEYS.includes(event.key)) {
255
+ handleOpen();
256
+ event.preventDefault();
257
+ }
258
+ })
259
+ }))
260
+ }));
261
+ });
262
+ SelectTrigger.displayName = TRIGGER_NAME;
263
+ var VALUE_NAME = "SelectValue";
264
+ var SelectValue = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
265
+ var __scopeSelect = props.__scopeSelect,
266
+ className = props.className,
267
+ style = props.style,
268
+ children = props.children,
269
+ _props$placeholder = props.placeholder,
270
+ placeholder = _props$placeholder === void 0 ? "" : _props$placeholder,
271
+ valueProps = _objectWithoutProperties(props, _excluded2);
272
+ var context = useSelectContext(VALUE_NAME, __scopeSelect);
273
+ var onValueNodeHasChildrenChange = context.onValueNodeHasChildrenChange;
274
+ var hasChildren = children !== void 0;
275
+ var composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);
276
+ useLayoutEffect2(function () {
277
+ onValueNodeHasChildrenChange(hasChildren);
278
+ }, [onValueNodeHasChildrenChange, hasChildren]);
279
+ return /* @__PURE__ */jsx(Primitive.span, _objectSpread2(_objectSpread2({}, valueProps), {}, {
280
+ ref: composedRefs,
281
+ style: {
282
+ pointerEvents: "none"
283
+ },
284
+ children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */jsx(Fragment, {
285
+ children: placeholder
286
+ }) : children
287
+ }));
288
+ });
289
+ SelectValue.displayName = VALUE_NAME;
290
+ var ICON_NAME = "SelectIcon";
291
+ var SelectIcon = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
292
+ var __scopeSelect = props.__scopeSelect,
293
+ children = props.children,
294
+ iconProps = _objectWithoutProperties(props, _excluded3);
295
+ return /* @__PURE__ */jsx(Primitive.span, _objectSpread2(_objectSpread2({
296
+ "aria-hidden": true
297
+ }, iconProps), {}, {
298
+ ref: forwardedRef,
299
+ children: children || "\u25BC"
300
+ }));
301
+ });
302
+ SelectIcon.displayName = ICON_NAME;
303
+ var PORTAL_NAME = "SelectPortal";
304
+ var SelectPortal = function SelectPortal(props) {
305
+ return /* @__PURE__ */jsx(Portal$1, _objectSpread2({
306
+ asChild: true
307
+ }, props));
308
+ };
309
+ SelectPortal.displayName = PORTAL_NAME;
310
+ var CONTENT_NAME = "SelectContent";
311
+ var SelectContent = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
312
+ var context = useSelectContext(CONTENT_NAME, props.__scopeSelect);
313
+ var _React$useState9 = useState(),
314
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
315
+ fragment = _React$useState10[0],
316
+ setFragment = _React$useState10[1];
317
+ useLayoutEffect2(function () {
318
+ setFragment(new DocumentFragment());
319
+ }, []);
320
+ if (!context.open) {
321
+ var frag = fragment;
322
+ return frag ? /*#__PURE__*/createPortal(/* @__PURE__ */jsx(SelectContentProvider, {
323
+ scope: props.__scopeSelect,
324
+ children: /* @__PURE__ */jsx(Collection.Slot, {
325
+ scope: props.__scopeSelect,
326
+ children: /* @__PURE__ */jsx("div", {
327
+ children: props.children
328
+ })
329
+ })
330
+ }), frag) : null;
331
+ }
332
+ return /* @__PURE__ */jsx(SelectContentImpl, _objectSpread2(_objectSpread2({}, props), {}, {
333
+ ref: forwardedRef
334
+ }));
335
+ });
336
+ SelectContent.displayName = CONTENT_NAME;
337
+ var CONTENT_MARGIN = 10;
338
+ var _createSelectContext5 = createSelectContext(CONTENT_NAME),
339
+ _createSelectContext6 = _slicedToArray(_createSelectContext5, 2),
340
+ SelectContentProvider = _createSelectContext6[0],
341
+ useSelectContentContext = _createSelectContext6[1];
342
+ var CONTENT_IMPL_NAME = "SelectContentImpl";
343
+ var SelectContentImpl = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
344
+ var __scopeSelect = props.__scopeSelect,
345
+ _props$position = props.position,
346
+ position = _props$position === void 0 ? "item-aligned" : _props$position,
347
+ onCloseAutoFocus = props.onCloseAutoFocus,
348
+ onEscapeKeyDown = props.onEscapeKeyDown,
349
+ onPointerDownOutside = props.onPointerDownOutside,
350
+ side = props.side,
351
+ sideOffset = props.sideOffset,
352
+ align = props.align,
353
+ alignOffset = props.alignOffset,
354
+ arrowPadding = props.arrowPadding,
355
+ collisionBoundary = props.collisionBoundary,
356
+ collisionPadding = props.collisionPadding,
357
+ sticky = props.sticky,
358
+ hideWhenDetached = props.hideWhenDetached,
359
+ avoidCollisions = props.avoidCollisions,
360
+ contentProps = _objectWithoutProperties(props, _excluded4);
361
+ var context = useSelectContext(CONTENT_NAME, __scopeSelect);
362
+ var _React$useState11 = useState(null),
363
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
364
+ content = _React$useState12[0],
365
+ setContent = _React$useState12[1];
366
+ var _React$useState13 = useState(null),
367
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
368
+ viewport = _React$useState14[0],
369
+ setViewport = _React$useState14[1];
370
+ var composedRefs = useComposedRefs(forwardedRef, function (node) {
371
+ return setContent(node);
372
+ });
373
+ var _React$useState15 = useState(null),
374
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
375
+ selectedItem = _React$useState16[0],
376
+ setSelectedItem = _React$useState16[1];
377
+ var _React$useState17 = useState(null),
378
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
379
+ selectedItemText = _React$useState18[0],
380
+ setSelectedItemText = _React$useState18[1];
381
+ var getItems = useCollection(__scopeSelect);
382
+ var _React$useState19 = useState(false),
383
+ _React$useState20 = _slicedToArray(_React$useState19, 2),
384
+ isPositioned = _React$useState20[0],
385
+ setIsPositioned = _React$useState20[1];
386
+ var firstValidItemFoundRef = useRef(false);
387
+ useEffect(function () {
388
+ if (content) return hideOthers(content);
389
+ }, [content]);
390
+ useFocusGuards();
391
+ var focusFirst = useCallback(function (candidates) {
392
+ var _getItems$map = getItems().map(function (item) {
393
+ return item.ref.current;
394
+ }),
395
+ _getItems$map2 = _toArray(_getItems$map),
396
+ firstItem = _getItems$map2[0],
397
+ restItems = _getItems$map2.slice(1);
398
+ var _restItems$slice = restItems.slice(-1),
399
+ _restItems$slice2 = _slicedToArray(_restItems$slice, 1),
400
+ lastItem = _restItems$slice2[0];
401
+ var PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
402
+ var _iterator = _createForOfIteratorHelper(candidates),
403
+ _step;
404
+ try {
405
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
406
+ var candidate = _step.value;
407
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
408
+ candidate === null || candidate === void 0 ? void 0 : candidate.scrollIntoView({
409
+ block: "nearest"
410
+ });
411
+ if (candidate === firstItem && viewport) viewport.scrollTop = 0;
412
+ if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;
413
+ candidate === null || candidate === void 0 ? void 0 : candidate.focus();
414
+ if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
415
+ }
416
+ } catch (err) {
417
+ _iterator.e(err);
418
+ } finally {
419
+ _iterator.f();
420
+ }
421
+ }, [getItems, viewport]);
422
+ var focusSelectedItem = useCallback(function () {
423
+ return focusFirst([selectedItem, content]);
424
+ }, [focusFirst, selectedItem, content]);
425
+ useEffect(function () {
426
+ if (isPositioned) {
427
+ focusSelectedItem();
428
+ }
429
+ }, [isPositioned, focusSelectedItem]);
430
+ var onOpenChange = context.onOpenChange,
431
+ triggerPointerDownPosRef = context.triggerPointerDownPosRef;
432
+ useEffect(function () {
433
+ if (content) {
434
+ var pointerMoveDelta = {
435
+ x: 0,
436
+ y: 0
437
+ };
438
+ var handlePointerMove = function handlePointerMove(event) {
439
+ var _triggerPointerDownPo, _triggerPointerDownPo2, _triggerPointerDownPo3, _triggerPointerDownPo4;
440
+ pointerMoveDelta = {
441
+ x: Math.abs(Math.round(event.pageX) - ((_triggerPointerDownPo = (_triggerPointerDownPo2 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo2 === void 0 ? void 0 : _triggerPointerDownPo2.x) !== null && _triggerPointerDownPo !== void 0 ? _triggerPointerDownPo : 0)),
442
+ y: Math.abs(Math.round(event.pageY) - ((_triggerPointerDownPo3 = (_triggerPointerDownPo4 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo4 === void 0 ? void 0 : _triggerPointerDownPo4.y) !== null && _triggerPointerDownPo3 !== void 0 ? _triggerPointerDownPo3 : 0))
443
+ };
444
+ };
445
+ var handlePointerUp = function handlePointerUp(event) {
446
+ if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {
447
+ event.preventDefault();
448
+ } else {
449
+ if (!content.contains(event.target)) {
450
+ onOpenChange(false);
451
+ }
452
+ }
453
+ document.removeEventListener("pointermove", handlePointerMove);
454
+ triggerPointerDownPosRef.current = null;
455
+ };
456
+ if (triggerPointerDownPosRef.current !== null) {
457
+ document.addEventListener("pointermove", handlePointerMove);
458
+ document.addEventListener("pointerup", handlePointerUp, {
459
+ capture: true,
460
+ once: true
461
+ });
462
+ }
463
+ return function () {
464
+ document.removeEventListener("pointermove", handlePointerMove);
465
+ document.removeEventListener("pointerup", handlePointerUp, {
466
+ capture: true
467
+ });
468
+ };
469
+ }
470
+ }, [content, onOpenChange, triggerPointerDownPosRef]);
471
+ useEffect(function () {
472
+ var close = function close() {
473
+ return onOpenChange(false);
474
+ };
475
+ window.addEventListener("blur", close);
476
+ window.addEventListener("resize", close);
477
+ return function () {
478
+ window.removeEventListener("blur", close);
479
+ window.removeEventListener("resize", close);
480
+ };
481
+ }, [onOpenChange]);
482
+ var _useTypeaheadSearch3 = useTypeaheadSearch(function (search) {
483
+ var enabledItems = getItems().filter(function (item) {
484
+ return !item.disabled;
485
+ });
486
+ var currentItem = enabledItems.find(function (item) {
487
+ return item.ref.current === document.activeElement;
488
+ });
489
+ var nextItem = findNextItem(enabledItems, search, currentItem);
490
+ if (nextItem) {
491
+ setTimeout(function () {
492
+ return nextItem.ref.current.focus();
493
+ });
494
+ }
495
+ }),
496
+ _useTypeaheadSearch4 = _slicedToArray(_useTypeaheadSearch3, 2),
497
+ searchRef = _useTypeaheadSearch4[0],
498
+ handleTypeaheadSearch = _useTypeaheadSearch4[1];
499
+ var itemRefCallback = useCallback(function (node, value, disabled) {
500
+ var isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
501
+ var isSelectedItem = context.value !== void 0 && context.value === value;
502
+ if (isSelectedItem || isFirstValidItem) {
503
+ setSelectedItem(node);
504
+ if (isFirstValidItem) firstValidItemFoundRef.current = true;
505
+ }
506
+ }, [context.value]);
507
+ var handleItemLeave = useCallback(function () {
508
+ return content === null || content === void 0 ? void 0 : content.focus();
509
+ }, [content]);
510
+ var itemTextRefCallback = useCallback(function (node, value, disabled) {
511
+ var isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
512
+ var isSelectedItem = context.value !== void 0 && context.value === value;
513
+ if (isSelectedItem || isFirstValidItem) {
514
+ setSelectedItemText(node);
515
+ }
516
+ }, [context.value]);
517
+ var SelectPosition = position === "popper" ? SelectPopperPosition : SelectItemAlignedPosition;
518
+ var popperContentProps = SelectPosition === SelectPopperPosition ? {
519
+ side: side,
520
+ sideOffset: sideOffset,
521
+ align: align,
522
+ alignOffset: alignOffset,
523
+ arrowPadding: arrowPadding,
524
+ collisionBoundary: collisionBoundary,
525
+ collisionPadding: collisionPadding,
526
+ sticky: sticky,
527
+ hideWhenDetached: hideWhenDetached,
528
+ avoidCollisions: avoidCollisions
529
+ } : {};
530
+ return /* @__PURE__ */jsx(SelectContentProvider, {
531
+ scope: __scopeSelect,
532
+ content: content,
533
+ viewport: viewport,
534
+ onViewportChange: setViewport,
535
+ itemRefCallback: itemRefCallback,
536
+ selectedItem: selectedItem,
537
+ onItemLeave: handleItemLeave,
538
+ itemTextRefCallback: itemTextRefCallback,
539
+ focusSelectedItem: focusSelectedItem,
540
+ selectedItemText: selectedItemText,
541
+ position: position,
542
+ isPositioned: isPositioned,
543
+ searchRef: searchRef,
544
+ children: /* @__PURE__ */jsx(ReactRemoveScroll, {
545
+ as: Slot,
546
+ allowPinchZoom: true,
547
+ children: /* @__PURE__ */jsx(FocusScope, {
548
+ asChild: true,
549
+ trapped: context.open,
550
+ onMountAutoFocus: function onMountAutoFocus(event) {
551
+ event.preventDefault();
552
+ },
553
+ onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, function (event) {
554
+ var _context$trigger;
555
+ (_context$trigger = context.trigger) === null || _context$trigger === void 0 ? void 0 : _context$trigger.focus({
556
+ preventScroll: true
557
+ });
558
+ event.preventDefault();
559
+ }),
560
+ children: /* @__PURE__ */jsx(DismissableLayer, {
561
+ asChild: true,
562
+ disableOutsidePointerEvents: true,
563
+ onEscapeKeyDown: onEscapeKeyDown,
564
+ onPointerDownOutside: onPointerDownOutside,
565
+ onFocusOutside: function onFocusOutside(event) {
566
+ return event.preventDefault();
567
+ },
568
+ onDismiss: function onDismiss() {
569
+ return context.onOpenChange(false);
570
+ },
571
+ children: /* @__PURE__ */jsx(SelectPosition, _objectSpread2(_objectSpread2(_objectSpread2({
572
+ role: "listbox",
573
+ id: context.contentId,
574
+ "data-state": context.open ? "open" : "closed",
575
+ dir: context.dir,
576
+ onContextMenu: function onContextMenu(event) {
577
+ return event.preventDefault();
578
+ }
579
+ }, contentProps), popperContentProps), {}, {
580
+ onPlaced: function onPlaced() {
581
+ return setIsPositioned(true);
582
+ },
583
+ ref: composedRefs,
584
+ style: _objectSpread2({
585
+ // flex layout so we can place the scroll buttons properly
586
+ display: "flex",
587
+ flexDirection: "column",
588
+ // reset the outline by default as the content MAY get focused
589
+ outline: "none"
590
+ }, contentProps.style),
591
+ onKeyDown: composeEventHandlers(contentProps.onKeyDown, function (event) {
592
+ var isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
593
+ if (event.key === "Tab") event.preventDefault();
594
+ if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
595
+ if (["ArrowUp", "ArrowDown", "Home", "End"].includes(event.key)) {
596
+ var items = getItems().filter(function (item) {
597
+ return !item.disabled;
598
+ });
599
+ var candidateNodes = items.map(function (item) {
600
+ return item.ref.current;
601
+ });
602
+ if (["ArrowUp", "End"].includes(event.key)) {
603
+ candidateNodes = candidateNodes.slice().reverse();
604
+ }
605
+ if (["ArrowUp", "ArrowDown"].includes(event.key)) {
606
+ var currentElement = event.target;
607
+ var currentIndex = candidateNodes.indexOf(currentElement);
608
+ candidateNodes = candidateNodes.slice(currentIndex + 1);
609
+ }
610
+ setTimeout(function () {
611
+ return focusFirst(candidateNodes);
612
+ });
613
+ event.preventDefault();
614
+ }
615
+ })
616
+ }))
617
+ })
618
+ })
619
+ })
620
+ });
621
+ });
622
+ SelectContentImpl.displayName = CONTENT_IMPL_NAME;
623
+ var ITEM_ALIGNED_POSITION_NAME = "SelectItemAlignedPosition";
624
+ var SelectItemAlignedPosition = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
625
+ var __scopeSelect = props.__scopeSelect,
626
+ onPlaced = props.onPlaced,
627
+ popperProps = _objectWithoutProperties(props, _excluded5);
628
+ var context = useSelectContext(CONTENT_NAME, __scopeSelect);
629
+ var contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);
630
+ var _React$useState21 = useState(null),
631
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
632
+ contentWrapper = _React$useState22[0],
633
+ setContentWrapper = _React$useState22[1];
634
+ var _React$useState23 = useState(null),
635
+ _React$useState24 = _slicedToArray(_React$useState23, 2),
636
+ content = _React$useState24[0],
637
+ setContent = _React$useState24[1];
638
+ var composedRefs = useComposedRefs(forwardedRef, function (node) {
639
+ return setContent(node);
640
+ });
641
+ var getItems = useCollection(__scopeSelect);
642
+ var shouldExpandOnScrollRef = useRef(false);
643
+ var shouldRepositionRef = useRef(true);
644
+ var viewport = contentContext.viewport,
645
+ selectedItem = contentContext.selectedItem,
646
+ selectedItemText = contentContext.selectedItemText,
647
+ focusSelectedItem = contentContext.focusSelectedItem;
648
+ var position = useCallback(function () {
649
+ if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
650
+ var triggerRect = context.trigger.getBoundingClientRect();
651
+ var contentRect = content.getBoundingClientRect();
652
+ var valueNodeRect = context.valueNode.getBoundingClientRect();
653
+ var itemTextRect = selectedItemText.getBoundingClientRect();
654
+ if (context.dir !== "rtl") {
655
+ var itemTextOffset = itemTextRect.left - contentRect.left;
656
+ var left = valueNodeRect.left - itemTextOffset;
657
+ var leftDelta = triggerRect.left - left;
658
+ var minContentWidth = triggerRect.width + leftDelta;
659
+ var contentWidth = Math.max(minContentWidth, contentRect.width);
660
+ var rightEdge = window.innerWidth - CONTENT_MARGIN;
661
+ var clampedLeft = clamp(left, [CONTENT_MARGIN,
662
+ // Prevents the content from going off the starting edge of the
663
+ // viewport. It may still go off the ending edge, but this can be
664
+ // controlled by the user since they may want to manage overflow in a
665
+ // specific way.
666
+ // https://github.com/radix-ui/primitives/issues/2049
667
+ Math.max(CONTENT_MARGIN, rightEdge - contentWidth)]);
668
+ contentWrapper.style.minWidth = minContentWidth + "px";
669
+ contentWrapper.style.left = clampedLeft + "px";
670
+ } else {
671
+ var _itemTextOffset = contentRect.right - itemTextRect.right;
672
+ var right = window.innerWidth - valueNodeRect.right - _itemTextOffset;
673
+ var rightDelta = window.innerWidth - triggerRect.right - right;
674
+ var _minContentWidth = triggerRect.width + rightDelta;
675
+ var _contentWidth = Math.max(_minContentWidth, contentRect.width);
676
+ var leftEdge = window.innerWidth - CONTENT_MARGIN;
677
+ var clampedRight = clamp(right, [CONTENT_MARGIN, Math.max(CONTENT_MARGIN, leftEdge - _contentWidth)]);
678
+ contentWrapper.style.minWidth = _minContentWidth + "px";
679
+ contentWrapper.style.right = clampedRight + "px";
680
+ }
681
+ var items = getItems();
682
+ var availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
683
+ var itemsHeight = viewport.scrollHeight;
684
+ var contentStyles = window.getComputedStyle(content);
685
+ var contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);
686
+ var contentPaddingTop = parseInt(contentStyles.paddingTop, 10);
687
+ var contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);
688
+ var contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);
689
+ var fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;
690
+ var minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);
691
+ var viewportStyles = window.getComputedStyle(viewport);
692
+ var viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);
693
+ var viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);
694
+ var topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;
695
+ var triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
696
+ var selectedItemHalfHeight = selectedItem.offsetHeight / 2;
697
+ var itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;
698
+ var contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
699
+ var itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
700
+ var willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;
701
+ if (willAlignWithoutTopOverflow) {
702
+ var isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;
703
+ contentWrapper.style.bottom = "0px";
704
+ var viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;
705
+ var clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (
706
+ // viewport might have padding bottom, include it to avoid a scrollable viewport
707
+ isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);
708
+ var height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;
709
+ contentWrapper.style.height = height + "px";
710
+ } else {
711
+ var isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;
712
+ contentWrapper.style.top = "0px";
713
+ var clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (
714
+ // viewport might have padding top, include it to avoid a scrollable viewport
715
+ isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);
716
+ var _height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;
717
+ contentWrapper.style.height = _height + "px";
718
+ viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;
719
+ }
720
+ contentWrapper.style.margin = "".concat(CONTENT_MARGIN, "px 0");
721
+ contentWrapper.style.minHeight = minContentHeight + "px";
722
+ contentWrapper.style.maxHeight = availableHeight + "px";
723
+ onPlaced === null || onPlaced === void 0 ? void 0 : onPlaced();
724
+ requestAnimationFrame(function () {
725
+ return shouldExpandOnScrollRef.current = true;
726
+ });
727
+ }
728
+ }, [getItems, context.trigger, context.valueNode, contentWrapper, content, viewport, selectedItem, selectedItemText, context.dir, onPlaced]);
729
+ useLayoutEffect2(function () {
730
+ return position();
731
+ }, [position]);
732
+ var _React$useState25 = useState(),
733
+ _React$useState26 = _slicedToArray(_React$useState25, 2),
734
+ contentZIndex = _React$useState26[0],
735
+ setContentZIndex = _React$useState26[1];
736
+ useLayoutEffect2(function () {
737
+ if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
738
+ }, [content]);
739
+ var handleScrollButtonChange = useCallback(function (node) {
740
+ if (node && shouldRepositionRef.current === true) {
741
+ position();
742
+ focusSelectedItem === null || focusSelectedItem === void 0 ? void 0 : focusSelectedItem();
743
+ shouldRepositionRef.current = false;
744
+ }
745
+ }, [position, focusSelectedItem]);
746
+ return /* @__PURE__ */jsx(SelectViewportProvider, {
747
+ scope: __scopeSelect,
748
+ contentWrapper: contentWrapper,
749
+ shouldExpandOnScrollRef: shouldExpandOnScrollRef,
750
+ onScrollButtonChange: handleScrollButtonChange,
751
+ children: /* @__PURE__ */jsx("div", {
752
+ ref: setContentWrapper,
753
+ style: {
754
+ display: "flex",
755
+ flexDirection: "column",
756
+ position: "fixed",
757
+ zIndex: contentZIndex
758
+ },
759
+ children: /* @__PURE__ */jsx(Primitive.div, _objectSpread2(_objectSpread2({}, popperProps), {}, {
760
+ ref: composedRefs,
761
+ style: _objectSpread2({
762
+ // When we get the height of the content, it includes borders. If we were to set
763
+ // the height without having `boxSizing: 'border-box'` it would be too big.
764
+ boxSizing: "border-box",
765
+ // We need to ensure the content doesn't get taller than the wrapper
766
+ maxHeight: "100%"
767
+ }, popperProps.style)
768
+ }))
769
+ })
770
+ });
771
+ });
772
+ SelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;
773
+ var POPPER_POSITION_NAME = "SelectPopperPosition";
774
+ var SelectPopperPosition = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
775
+ var __scopeSelect = props.__scopeSelect,
776
+ _props$align = props.align,
777
+ align = _props$align === void 0 ? "start" : _props$align,
778
+ _props$collisionPaddi = props.collisionPadding,
779
+ collisionPadding = _props$collisionPaddi === void 0 ? CONTENT_MARGIN : _props$collisionPaddi,
780
+ popperProps = _objectWithoutProperties(props, _excluded6);
781
+ var popperScope = usePopperScope(__scopeSelect);
782
+ return /* @__PURE__ */jsx(Content, _objectSpread2(_objectSpread2(_objectSpread2({}, popperScope), popperProps), {}, {
783
+ ref: forwardedRef,
784
+ align: align,
785
+ collisionPadding: collisionPadding,
786
+ style: _objectSpread2(_objectSpread2({
787
+ // Ensure border-box for floating-ui calculations
788
+ boxSizing: "border-box"
789
+ }, popperProps.style), {
790
+ "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
791
+ "--radix-select-content-available-width": "var(--radix-popper-available-width)",
792
+ "--radix-select-content-available-height": "var(--radix-popper-available-height)",
793
+ "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
794
+ "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
795
+ })
796
+ }));
797
+ });
798
+ SelectPopperPosition.displayName = POPPER_POSITION_NAME;
799
+ var _createSelectContext7 = createSelectContext(CONTENT_NAME, {}),
800
+ _createSelectContext8 = _slicedToArray(_createSelectContext7, 2),
801
+ SelectViewportProvider = _createSelectContext8[0],
802
+ useSelectViewportContext = _createSelectContext8[1];
803
+ var VIEWPORT_NAME = "SelectViewport";
804
+ var SelectViewport = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
805
+ var __scopeSelect = props.__scopeSelect,
806
+ nonce = props.nonce,
807
+ viewportProps = _objectWithoutProperties(props, _excluded7);
808
+ var contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);
809
+ var viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
810
+ var composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);
811
+ var prevScrollTopRef = useRef(0);
812
+ return /* @__PURE__ */jsxs(Fragment, {
813
+ children: [/* @__PURE__ */jsx("style", {
814
+ dangerouslySetInnerHTML: {
815
+ __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"
816
+ },
817
+ nonce: nonce
818
+ }), /* @__PURE__ */jsx(Collection.Slot, {
819
+ scope: __scopeSelect,
820
+ children: /* @__PURE__ */jsx(Primitive.div, _objectSpread2(_objectSpread2({
821
+ "data-radix-select-viewport": "",
822
+ role: "presentation"
823
+ }, viewportProps), {}, {
824
+ ref: composedRefs,
825
+ style: _objectSpread2({
826
+ // we use position: 'relative' here on the `viewport` so that when we call
827
+ // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport
828
+ // (independent of the scrollUpButton).
829
+ position: "relative",
830
+ flex: 1,
831
+ // Viewport should only be scrollable in the vertical direction.
832
+ // This won't work in vertical writing modes, so we'll need to
833
+ // revisit this if/when that is supported
834
+ // https://developer.chrome.com/blog/vertical-form-controls
835
+ overflow: "hidden auto"
836
+ }, viewportProps.style),
837
+ onScroll: composeEventHandlers(viewportProps.onScroll, function (event) {
838
+ var viewport = event.currentTarget;
839
+ var contentWrapper = viewportContext.contentWrapper,
840
+ shouldExpandOnScrollRef = viewportContext.shouldExpandOnScrollRef;
841
+ if (shouldExpandOnScrollRef !== null && shouldExpandOnScrollRef !== void 0 && shouldExpandOnScrollRef.current && contentWrapper) {
842
+ var scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);
843
+ if (scrolledBy > 0) {
844
+ var availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
845
+ var cssMinHeight = parseFloat(contentWrapper.style.minHeight);
846
+ var cssHeight = parseFloat(contentWrapper.style.height);
847
+ var prevHeight = Math.max(cssMinHeight, cssHeight);
848
+ if (prevHeight < availableHeight) {
849
+ var nextHeight = prevHeight + scrolledBy;
850
+ var clampedNextHeight = Math.min(availableHeight, nextHeight);
851
+ var heightDiff = nextHeight - clampedNextHeight;
852
+ contentWrapper.style.height = clampedNextHeight + "px";
853
+ if (contentWrapper.style.bottom === "0px") {
854
+ viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;
855
+ contentWrapper.style.justifyContent = "flex-end";
856
+ }
857
+ }
858
+ }
859
+ }
860
+ prevScrollTopRef.current = viewport.scrollTop;
861
+ })
862
+ }))
863
+ })]
864
+ });
865
+ });
866
+ SelectViewport.displayName = VIEWPORT_NAME;
867
+ var GROUP_NAME = "SelectGroup";
868
+ var _createSelectContext9 = createSelectContext(GROUP_NAME),
869
+ _createSelectContext10 = _slicedToArray(_createSelectContext9, 2),
870
+ SelectGroupContextProvider = _createSelectContext10[0],
871
+ useSelectGroupContext = _createSelectContext10[1];
872
+ var SelectGroup = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
873
+ var __scopeSelect = props.__scopeSelect,
874
+ groupProps = _objectWithoutProperties(props, _excluded8);
875
+ var groupId = useId();
876
+ return /* @__PURE__ */jsx(SelectGroupContextProvider, {
877
+ scope: __scopeSelect,
878
+ id: groupId,
879
+ children: /* @__PURE__ */jsx(Primitive.div, _objectSpread2(_objectSpread2({
880
+ role: "group",
881
+ "aria-labelledby": groupId
882
+ }, groupProps), {}, {
883
+ ref: forwardedRef
884
+ }))
885
+ });
886
+ });
887
+ SelectGroup.displayName = GROUP_NAME;
888
+ var LABEL_NAME = "SelectLabel";
889
+ var SelectLabel = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
890
+ var __scopeSelect = props.__scopeSelect,
891
+ labelProps = _objectWithoutProperties(props, _excluded9);
892
+ var groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
893
+ return /* @__PURE__ */jsx(Primitive.div, _objectSpread2(_objectSpread2({
894
+ id: groupContext.id
895
+ }, labelProps), {}, {
896
+ ref: forwardedRef
897
+ }));
898
+ });
899
+ SelectLabel.displayName = LABEL_NAME;
900
+ var ITEM_NAME = "SelectItem";
901
+ var _createSelectContext11 = createSelectContext(ITEM_NAME),
902
+ _createSelectContext12 = _slicedToArray(_createSelectContext11, 2),
903
+ SelectItemContextProvider = _createSelectContext12[0],
904
+ useSelectItemContext = _createSelectContext12[1];
905
+ var SelectItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
906
+ var __scopeSelect = props.__scopeSelect,
907
+ value = props.value,
908
+ _props$disabled2 = props.disabled,
909
+ disabled = _props$disabled2 === void 0 ? false : _props$disabled2,
910
+ textValueProp = props.textValue,
911
+ itemProps = _objectWithoutProperties(props, _excluded10);
912
+ var context = useSelectContext(ITEM_NAME, __scopeSelect);
913
+ var contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);
914
+ var isSelected = context.value === value;
915
+ var _React$useState27 = useState(textValueProp !== null && textValueProp !== void 0 ? textValueProp : ""),
916
+ _React$useState28 = _slicedToArray(_React$useState27, 2),
917
+ textValue = _React$useState28[0],
918
+ setTextValue = _React$useState28[1];
919
+ var _React$useState29 = useState(false),
920
+ _React$useState30 = _slicedToArray(_React$useState29, 2),
921
+ isFocused = _React$useState30[0],
922
+ setIsFocused = _React$useState30[1];
923
+ var composedRefs = useComposedRefs(forwardedRef, function (node) {
924
+ var _contentContext$itemR;
925
+ return (_contentContext$itemR = contentContext.itemRefCallback) === null || _contentContext$itemR === void 0 ? void 0 : _contentContext$itemR.call(contentContext, node, value, disabled);
926
+ });
927
+ var textId = useId();
928
+ var pointerTypeRef = useRef("touch");
929
+ var handleSelect = function handleSelect() {
930
+ if (!disabled) {
931
+ context.onValueChange(value);
932
+ context.onOpenChange(false);
933
+ }
934
+ };
935
+ if (value === "") {
936
+ throw new Error("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.");
937
+ }
938
+ return /* @__PURE__ */jsx(SelectItemContextProvider, {
939
+ scope: __scopeSelect,
940
+ value: value,
941
+ disabled: disabled,
942
+ textId: textId,
943
+ isSelected: isSelected,
944
+ onItemTextChange: useCallback(function (node) {
945
+ setTextValue(function (prevTextValue) {
946
+ var _node$textContent;
947
+ return prevTextValue || ((_node$textContent = node === null || node === void 0 ? void 0 : node.textContent) !== null && _node$textContent !== void 0 ? _node$textContent : "").trim();
948
+ });
949
+ }, []),
950
+ children: /* @__PURE__ */jsx(Collection.ItemSlot, {
951
+ scope: __scopeSelect,
952
+ value: value,
953
+ disabled: disabled,
954
+ textValue: textValue,
955
+ children: /* @__PURE__ */jsx(Primitive.div, _objectSpread2(_objectSpread2({
956
+ role: "option",
957
+ "aria-labelledby": textId,
958
+ "data-highlighted": isFocused ? "" : void 0,
959
+ "aria-selected": isSelected && isFocused,
960
+ "data-state": isSelected ? "checked" : "unchecked",
961
+ "aria-disabled": disabled || void 0,
962
+ "data-disabled": disabled ? "" : void 0,
963
+ tabIndex: disabled ? void 0 : -1
964
+ }, itemProps), {}, {
965
+ ref: composedRefs,
966
+ onFocus: composeEventHandlers(itemProps.onFocus, function () {
967
+ return setIsFocused(true);
968
+ }),
969
+ onBlur: composeEventHandlers(itemProps.onBlur, function () {
970
+ return setIsFocused(false);
971
+ }),
972
+ onClick: composeEventHandlers(itemProps.onClick, function () {
973
+ if (pointerTypeRef.current !== "mouse") handleSelect();
974
+ }),
975
+ onPointerUp: composeEventHandlers(itemProps.onPointerUp, function () {
976
+ if (pointerTypeRef.current === "mouse") handleSelect();
977
+ }),
978
+ onPointerDown: composeEventHandlers(itemProps.onPointerDown, function (event) {
979
+ pointerTypeRef.current = event.pointerType;
980
+ }),
981
+ onPointerMove: composeEventHandlers(itemProps.onPointerMove, function (event) {
982
+ pointerTypeRef.current = event.pointerType;
983
+ if (disabled) {
984
+ var _contentContext$onIte;
985
+ (_contentContext$onIte = contentContext.onItemLeave) === null || _contentContext$onIte === void 0 ? void 0 : _contentContext$onIte.call(contentContext);
986
+ } else if (pointerTypeRef.current === "mouse") {
987
+ event.currentTarget.focus({
988
+ preventScroll: true
989
+ });
990
+ }
991
+ }),
992
+ onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, function (event) {
993
+ if (event.currentTarget === document.activeElement) {
994
+ var _contentContext$onIte2;
995
+ (_contentContext$onIte2 = contentContext.onItemLeave) === null || _contentContext$onIte2 === void 0 ? void 0 : _contentContext$onIte2.call(contentContext);
996
+ }
997
+ }),
998
+ onKeyDown: composeEventHandlers(itemProps.onKeyDown, function (event) {
999
+ var _contentContext$searc;
1000
+ var isTypingAhead = ((_contentContext$searc = contentContext.searchRef) === null || _contentContext$searc === void 0 ? void 0 : _contentContext$searc.current) !== "";
1001
+ if (isTypingAhead && event.key === " ") return;
1002
+ if (SELECTION_KEYS.includes(event.key)) handleSelect();
1003
+ if (event.key === " ") event.preventDefault();
1004
+ })
1005
+ }))
1006
+ })
1007
+ });
1008
+ });
1009
+ SelectItem.displayName = ITEM_NAME;
1010
+ var ITEM_TEXT_NAME = "SelectItemText";
1011
+ var SelectItemText = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1012
+ var __scopeSelect = props.__scopeSelect,
1013
+ className = props.className,
1014
+ style = props.style,
1015
+ itemTextProps = _objectWithoutProperties(props, _excluded11);
1016
+ var context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);
1017
+ var contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);
1018
+ var itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
1019
+ var nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);
1020
+ var _React$useState31 = useState(null),
1021
+ _React$useState32 = _slicedToArray(_React$useState31, 2),
1022
+ itemTextNode = _React$useState32[0],
1023
+ setItemTextNode = _React$useState32[1];
1024
+ var composedRefs = useComposedRefs(forwardedRef, function (node) {
1025
+ return setItemTextNode(node);
1026
+ }, itemContext.onItemTextChange, function (node) {
1027
+ var _contentContext$itemT;
1028
+ return (_contentContext$itemT = contentContext.itemTextRefCallback) === null || _contentContext$itemT === void 0 ? void 0 : _contentContext$itemT.call(contentContext, node, itemContext.value, itemContext.disabled);
1029
+ });
1030
+ var textContent = itemTextNode === null || itemTextNode === void 0 ? void 0 : itemTextNode.textContent;
1031
+ var nativeOption = useMemo(function () {
1032
+ return /* @__PURE__ */jsx("option", {
1033
+ value: itemContext.value,
1034
+ disabled: itemContext.disabled,
1035
+ children: textContent
1036
+ }, itemContext.value);
1037
+ }, [itemContext.disabled, itemContext.value, textContent]);
1038
+ var onNativeOptionAdd = nativeOptionsContext.onNativeOptionAdd,
1039
+ onNativeOptionRemove = nativeOptionsContext.onNativeOptionRemove;
1040
+ useLayoutEffect2(function () {
1041
+ onNativeOptionAdd(nativeOption);
1042
+ return function () {
1043
+ return onNativeOptionRemove(nativeOption);
1044
+ };
1045
+ }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
1046
+ return /* @__PURE__ */jsxs(Fragment, {
1047
+ children: [/* @__PURE__ */jsx(Primitive.span, _objectSpread2(_objectSpread2({
1048
+ id: itemContext.textId
1049
+ }, itemTextProps), {}, {
1050
+ ref: composedRefs
1051
+ })), itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? /*#__PURE__*/createPortal(itemTextProps.children, context.valueNode) : null]
1052
+ });
1053
+ });
1054
+ SelectItemText.displayName = ITEM_TEXT_NAME;
1055
+ var ITEM_INDICATOR_NAME = "SelectItemIndicator";
1056
+ var SelectItemIndicator = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1057
+ var __scopeSelect = props.__scopeSelect,
1058
+ itemIndicatorProps = _objectWithoutProperties(props, _excluded12);
1059
+ var itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
1060
+ return itemContext.isSelected ? /* @__PURE__ */jsx(Primitive.span, _objectSpread2(_objectSpread2({
1061
+ "aria-hidden": true
1062
+ }, itemIndicatorProps), {}, {
1063
+ ref: forwardedRef
1064
+ })) : null;
1065
+ });
1066
+ SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
1067
+ var SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
1068
+ var SelectScrollUpButton = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1069
+ var contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
1070
+ var viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
1071
+ var _React$useState33 = useState(false),
1072
+ _React$useState34 = _slicedToArray(_React$useState33, 2),
1073
+ canScrollUp = _React$useState34[0],
1074
+ setCanScrollUp = _React$useState34[1];
1075
+ var composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
1076
+ useLayoutEffect2(function () {
1077
+ if (contentContext.viewport && contentContext.isPositioned) {
1078
+ var handleScroll2 = function handleScroll2() {
1079
+ var canScrollUp2 = viewport.scrollTop > 0;
1080
+ setCanScrollUp(canScrollUp2);
1081
+ };
1082
+ var viewport = contentContext.viewport;
1083
+ handleScroll2();
1084
+ viewport.addEventListener("scroll", handleScroll2);
1085
+ return function () {
1086
+ return viewport.removeEventListener("scroll", handleScroll2);
1087
+ };
1088
+ }
1089
+ }, [contentContext.viewport, contentContext.isPositioned]);
1090
+ return canScrollUp ? /* @__PURE__ */jsx(SelectScrollButtonImpl, _objectSpread2(_objectSpread2({}, props), {}, {
1091
+ ref: composedRefs,
1092
+ onAutoScroll: function onAutoScroll() {
1093
+ var viewport = contentContext.viewport,
1094
+ selectedItem = contentContext.selectedItem;
1095
+ if (viewport && selectedItem) {
1096
+ viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;
1097
+ }
1098
+ }
1099
+ })) : null;
1100
+ });
1101
+ SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
1102
+ var SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
1103
+ var SelectScrollDownButton = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1104
+ var contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
1105
+ var viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
1106
+ var _React$useState35 = useState(false),
1107
+ _React$useState36 = _slicedToArray(_React$useState35, 2),
1108
+ canScrollDown = _React$useState36[0],
1109
+ setCanScrollDown = _React$useState36[1];
1110
+ var composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
1111
+ useLayoutEffect2(function () {
1112
+ if (contentContext.viewport && contentContext.isPositioned) {
1113
+ var handleScroll2 = function handleScroll2() {
1114
+ var maxScroll = viewport.scrollHeight - viewport.clientHeight;
1115
+ var canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;
1116
+ setCanScrollDown(canScrollDown2);
1117
+ };
1118
+ var viewport = contentContext.viewport;
1119
+ handleScroll2();
1120
+ viewport.addEventListener("scroll", handleScroll2);
1121
+ return function () {
1122
+ return viewport.removeEventListener("scroll", handleScroll2);
1123
+ };
1124
+ }
1125
+ }, [contentContext.viewport, contentContext.isPositioned]);
1126
+ return canScrollDown ? /* @__PURE__ */jsx(SelectScrollButtonImpl, _objectSpread2(_objectSpread2({}, props), {}, {
1127
+ ref: composedRefs,
1128
+ onAutoScroll: function onAutoScroll() {
1129
+ var viewport = contentContext.viewport,
1130
+ selectedItem = contentContext.selectedItem;
1131
+ if (viewport && selectedItem) {
1132
+ viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;
1133
+ }
1134
+ }
1135
+ })) : null;
1136
+ });
1137
+ SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
1138
+ var SelectScrollButtonImpl = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1139
+ var __scopeSelect = props.__scopeSelect,
1140
+ onAutoScroll = props.onAutoScroll,
1141
+ scrollIndicatorProps = _objectWithoutProperties(props, _excluded13);
1142
+ var contentContext = useSelectContentContext("SelectScrollButton", __scopeSelect);
1143
+ var autoScrollTimerRef = useRef(null);
1144
+ var getItems = useCollection(__scopeSelect);
1145
+ var clearAutoScrollTimer = useCallback(function () {
1146
+ if (autoScrollTimerRef.current !== null) {
1147
+ window.clearInterval(autoScrollTimerRef.current);
1148
+ autoScrollTimerRef.current = null;
1149
+ }
1150
+ }, []);
1151
+ useEffect(function () {
1152
+ return function () {
1153
+ return clearAutoScrollTimer();
1154
+ };
1155
+ }, [clearAutoScrollTimer]);
1156
+ useLayoutEffect2(function () {
1157
+ var _activeItem$ref$curre;
1158
+ var activeItem = getItems().find(function (item) {
1159
+ return item.ref.current === document.activeElement;
1160
+ });
1161
+ activeItem === null || activeItem === void 0 ? void 0 : (_activeItem$ref$curre = activeItem.ref.current) === null || _activeItem$ref$curre === void 0 ? void 0 : _activeItem$ref$curre.scrollIntoView({
1162
+ block: "nearest"
1163
+ });
1164
+ }, [getItems]);
1165
+ return /* @__PURE__ */jsx(Primitive.div, _objectSpread2(_objectSpread2({
1166
+ "aria-hidden": true
1167
+ }, scrollIndicatorProps), {}, {
1168
+ ref: forwardedRef,
1169
+ style: _objectSpread2({
1170
+ flexShrink: 0
1171
+ }, scrollIndicatorProps.style),
1172
+ onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, function () {
1173
+ if (autoScrollTimerRef.current === null) {
1174
+ autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
1175
+ }
1176
+ }),
1177
+ onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, function () {
1178
+ var _contentContext$onIte3;
1179
+ (_contentContext$onIte3 = contentContext.onItemLeave) === null || _contentContext$onIte3 === void 0 ? void 0 : _contentContext$onIte3.call(contentContext);
1180
+ if (autoScrollTimerRef.current === null) {
1181
+ autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
1182
+ }
1183
+ }),
1184
+ onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, function () {
1185
+ clearAutoScrollTimer();
1186
+ })
1187
+ }));
1188
+ });
1189
+ var SEPARATOR_NAME = "SelectSeparator";
1190
+ var SelectSeparator = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1191
+ var __scopeSelect = props.__scopeSelect,
1192
+ separatorProps = _objectWithoutProperties(props, _excluded14);
1193
+ return /* @__PURE__ */jsx(Primitive.div, _objectSpread2(_objectSpread2({
1194
+ "aria-hidden": true
1195
+ }, separatorProps), {}, {
1196
+ ref: forwardedRef
1197
+ }));
1198
+ });
1199
+ SelectSeparator.displayName = SEPARATOR_NAME;
1200
+ var ARROW_NAME = "SelectArrow";
1201
+ var SelectArrow = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1202
+ var __scopeSelect = props.__scopeSelect,
1203
+ arrowProps = _objectWithoutProperties(props, _excluded15);
1204
+ var popperScope = usePopperScope(__scopeSelect);
1205
+ var context = useSelectContext(ARROW_NAME, __scopeSelect);
1206
+ var contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
1207
+ return context.open && contentContext.position === "popper" ? /* @__PURE__ */jsx(Arrow, _objectSpread2(_objectSpread2(_objectSpread2({}, popperScope), arrowProps), {}, {
1208
+ ref: forwardedRef
1209
+ })) : null;
1210
+ });
1211
+ SelectArrow.displayName = ARROW_NAME;
1212
+ function shouldShowPlaceholder(value) {
1213
+ return value === "" || value === void 0;
1214
+ }
1215
+ var BubbleSelect = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
1216
+ var value = props.value,
1217
+ selectProps = _objectWithoutProperties(props, _excluded16);
1218
+ var ref = useRef(null);
1219
+ var composedRefs = useComposedRefs(forwardedRef, ref);
1220
+ var prevValue = usePrevious(value);
1221
+ useEffect(function () {
1222
+ var select = ref.current;
1223
+ var selectProto = window.HTMLSelectElement.prototype;
1224
+ var descriptor = Object.getOwnPropertyDescriptor(selectProto, "value");
1225
+ var setValue = descriptor.set;
1226
+ if (prevValue !== value && setValue) {
1227
+ var event = new Event("change", {
1228
+ bubbles: true
1229
+ });
1230
+ setValue.call(select, value);
1231
+ select.dispatchEvent(event);
1232
+ }
1233
+ }, [prevValue, value]);
1234
+ return /* @__PURE__ */jsx(VisuallyHidden, {
1235
+ asChild: true,
1236
+ children: /* @__PURE__ */jsx("select", _objectSpread2(_objectSpread2({}, selectProps), {}, {
1237
+ ref: composedRefs,
1238
+ defaultValue: value
1239
+ }))
1240
+ });
1241
+ });
1242
+ BubbleSelect.displayName = "BubbleSelect";
1243
+ function useTypeaheadSearch(onSearchChange) {
1244
+ var handleSearchChange = useCallbackRef(onSearchChange);
1245
+ var searchRef = useRef("");
1246
+ var timerRef = useRef(0);
1247
+ var handleTypeaheadSearch = useCallback(function (key) {
1248
+ var search = searchRef.current + key;
1249
+ handleSearchChange(search);
1250
+ (function updateSearch(value) {
1251
+ searchRef.current = value;
1252
+ window.clearTimeout(timerRef.current);
1253
+ if (value !== "") timerRef.current = window.setTimeout(function () {
1254
+ return updateSearch("");
1255
+ }, 1e3);
1256
+ })(search);
1257
+ }, [handleSearchChange]);
1258
+ var resetTypeahead = useCallback(function () {
1259
+ searchRef.current = "";
1260
+ window.clearTimeout(timerRef.current);
1261
+ }, []);
1262
+ useEffect(function () {
1263
+ return function () {
1264
+ return window.clearTimeout(timerRef.current);
1265
+ };
1266
+ }, []);
1267
+ return [searchRef, handleTypeaheadSearch, resetTypeahead];
1268
+ }
1269
+ function findNextItem(items, search, currentItem) {
1270
+ var isRepeated = search.length > 1 && Array.from(search).every(function (char) {
1271
+ return char === search[0];
1272
+ });
1273
+ var normalizedSearch = isRepeated ? search[0] : search;
1274
+ var currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;
1275
+ var wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));
1276
+ var excludeCurrentItem = normalizedSearch.length === 1;
1277
+ if (excludeCurrentItem) wrappedItems = wrappedItems.filter(function (v) {
1278
+ return v !== currentItem;
1279
+ });
1280
+ var nextItem = wrappedItems.find(function (item) {
1281
+ return item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase());
1282
+ });
1283
+ return nextItem !== currentItem ? nextItem : void 0;
1284
+ }
1285
+ function wrapArray(array, startIndex) {
1286
+ return array.map(function (_, index) {
1287
+ return array[(startIndex + index) % array.length];
1288
+ });
1289
+ }
1290
+ var Root2 = Select;
1291
+ var Trigger = SelectTrigger;
1292
+ var Value = SelectValue;
1293
+ var Icon = SelectIcon;
1294
+ var Portal = SelectPortal;
1295
+ var Content2 = SelectContent;
1296
+ var Viewport = SelectViewport;
1297
+ var Item = SelectItem;
1298
+ var ItemText = SelectItemText;
1299
+ var ItemIndicator = SelectItemIndicator;
1300
+
1301
+ export { Content2 as Content, Icon, Item, ItemIndicator, ItemText, Portal, Root2 as Root, Select, SelectArrow, SelectContent, SelectGroup, SelectIcon, SelectItem, SelectItemIndicator, SelectItemText, SelectLabel, SelectPortal, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectViewport, Trigger, Value, Viewport, createSelectScope };
1302
+ //# sourceMappingURL=index.mjs.js.map