@arc-ui/components 12.0.0-alpha.0 → 12.0.0-beta.3

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 (566) hide show
  1. package/dist/Alert/Alert.cjs.js +11 -15
  2. package/dist/Alert/Alert.esm.js +9 -13
  3. package/dist/Align/Align.cjs.js +6 -6
  4. package/dist/Align/Align.esm.js +2 -2
  5. package/dist/AppButton/AppButton.cjs.js +73 -0
  6. package/dist/AppButton/AppButton.esm.js +65 -0
  7. package/dist/AppButton/package.json +7 -0
  8. package/dist/Avatar/Avatar.cjs.js +18 -0
  9. package/dist/Avatar/Avatar.esm.js +10 -0
  10. package/dist/Avatar/package.json +7 -0
  11. package/dist/AvatarGroup/AvatarGroup.cjs.js +38 -0
  12. package/dist/AvatarGroup/AvatarGroup.esm.js +30 -0
  13. package/dist/AvatarGroup/package.json +7 -0
  14. package/dist/Badge/Badge.cjs.js +6 -21
  15. package/dist/Badge/Badge.esm.js +6 -21
  16. package/dist/Box/Box.cjs.js +6 -7
  17. package/dist/Box/Box.esm.js +3 -4
  18. package/dist/BrandLogo/BrandLogo.cjs.js +4 -4
  19. package/dist/BrandLogo/BrandLogo.esm.js +4 -4
  20. package/dist/Breadcrumbs/Breadcrumbs.cjs.js +7 -6
  21. package/dist/Breadcrumbs/Breadcrumbs.esm.js +7 -6
  22. package/dist/Button/Button.cjs.js +6 -6
  23. package/dist/Button/Button.esm.js +6 -6
  24. package/dist/ButtonV2/ButtonV2.cjs.js +16 -0
  25. package/dist/ButtonV2/ButtonV2.esm.js +8 -0
  26. package/dist/ButtonV2/package.json +7 -0
  27. package/dist/Calendar/Calendar.cjs.js +22 -0
  28. package/dist/Calendar/Calendar.esm.js +14 -0
  29. package/dist/Calendar/package.json +7 -0
  30. package/dist/Checkbox/Checkbox.cjs.js +9 -8
  31. package/dist/Checkbox/Checkbox.esm.js +9 -8
  32. package/dist/Columns/Columns.cjs.js +3 -3
  33. package/dist/Columns/Columns.esm.js +3 -3
  34. package/dist/DatePicker/DatePicker.cjs.js +40 -0
  35. package/dist/DatePicker/DatePicker.esm.js +27 -0
  36. package/dist/DatePicker/package.json +7 -0
  37. package/dist/Disclosure/Disclosure.cjs.js +15 -12
  38. package/dist/Disclosure/Disclosure.esm.js +12 -9
  39. package/dist/DisclosureMini/DisclosureMini.cjs.js +6 -6
  40. package/dist/DisclosureMini/DisclosureMini.esm.js +6 -6
  41. package/dist/Elevation/Elevation.cjs.js +5 -5
  42. package/dist/Elevation/Elevation.esm.js +1 -1
  43. package/dist/Filter/Filter.cjs.js +4 -3
  44. package/dist/Filter/Filter.esm.js +4 -3
  45. package/dist/FormControl/FormControl.cjs.js +8 -7
  46. package/dist/FormControl/FormControl.esm.js +8 -7
  47. package/dist/Grid/Grid.cjs.js +13 -0
  48. package/dist/Grid/Grid.esm.js +5 -0
  49. package/dist/Grid/package.json +7 -0
  50. package/dist/Group/Group.cjs.js +3 -3
  51. package/dist/Group/Group.esm.js +3 -3
  52. package/dist/Heading/Heading.cjs.js +4 -4
  53. package/dist/Heading/Heading.esm.js +4 -4
  54. package/dist/HeroButton/HeroButton.cjs.js +16 -0
  55. package/dist/HeroButton/HeroButton.esm.js +8 -0
  56. package/dist/HeroButton/package.json +7 -0
  57. package/dist/Hidden/Hidden.cjs.js +24 -0
  58. package/dist/Hidden/Hidden.esm.js +16 -0
  59. package/dist/Hidden/package.json +7 -0
  60. package/dist/Icon/Icon.cjs.js +4 -4
  61. package/dist/Icon/Icon.esm.js +4 -4
  62. package/dist/Image/Image.cjs.js +3 -3
  63. package/dist/Image/Image.esm.js +3 -3
  64. package/dist/ImpactCard/ImpactCard.cjs.js +44 -0
  65. package/dist/ImpactCard/ImpactCard.esm.js +36 -0
  66. package/dist/ImpactCard/package.json +7 -0
  67. package/dist/InformationCard/InformationCard.cjs.js +74 -0
  68. package/dist/InformationCard/InformationCard.esm.js +66 -0
  69. package/dist/InformationCard/package.json +7 -0
  70. package/dist/Link/Link.cjs.js +76 -0
  71. package/dist/Link/Link.esm.js +68 -0
  72. package/dist/Link/package.json +7 -0
  73. package/dist/Markup/Markup.cjs.js +6 -6
  74. package/dist/Markup/Markup.esm.js +2 -2
  75. package/dist/MediaCard/MediaCard.cjs.js +26 -0
  76. package/dist/MediaCard/MediaCard.esm.js +18 -0
  77. package/dist/MediaCard/package.json +7 -0
  78. package/dist/Modal/Modal.cjs.js +1478 -527
  79. package/dist/Modal/Modal.esm.js +1455 -523
  80. package/dist/Pagination/Pagination.cjs.js +14 -17
  81. package/dist/Pagination/Pagination.esm.js +7 -10
  82. package/dist/PaginationSimple/PaginationSimple.cjs.js +24 -27
  83. package/dist/PaginationSimple/PaginationSimple.esm.js +22 -25
  84. package/dist/Poster/Poster.cjs.js +5 -5
  85. package/dist/Poster/Poster.esm.js +5 -5
  86. package/dist/ProgressBar/ProgressBar.cjs.js +21 -18
  87. package/dist/ProgressBar/ProgressBar.esm.js +17 -14
  88. package/dist/ProgressStepper/ProgressStepper.cjs.js +6 -7
  89. package/dist/ProgressStepper/ProgressStepper.esm.js +6 -7
  90. package/dist/RadioGroup/RadioGroup.cjs.js +10 -8
  91. package/dist/RadioGroup/RadioGroup.esm.js +9 -8
  92. package/dist/Rule/Rule.cjs.js +14 -4
  93. package/dist/Rule/Rule.esm.js +15 -5
  94. package/dist/ScrollToTop/ScrollToTop.cjs.js +12 -11
  95. package/dist/ScrollToTop/ScrollToTop.esm.js +7 -6
  96. package/dist/Section/Section.cjs.js +2 -2
  97. package/dist/Section/Section.esm.js +2 -2
  98. package/dist/Select/Select.cjs.js +358 -931
  99. package/dist/Select/Select.esm.js +304 -858
  100. package/dist/SiteFooter/SiteFooter.cjs.js +10 -33
  101. package/dist/SiteFooter/SiteFooter.esm.js +10 -33
  102. package/dist/SiteHeaderV2/SiteHeaderV2.cjs.js +25 -0
  103. package/dist/SiteHeaderV2/SiteHeaderV2.esm.js +17 -0
  104. package/dist/SiteHeaderV2/package.json +7 -0
  105. package/dist/SkipLink/SkipLink.cjs.js +24 -0
  106. package/dist/SkipLink/SkipLink.esm.js +16 -0
  107. package/dist/SkipLink/package.json +7 -0
  108. package/dist/Surface/Surface.cjs.js +2 -2
  109. package/dist/Surface/Surface.esm.js +2 -2
  110. package/dist/Switch/Switch.cjs.js +28 -73
  111. package/dist/Switch/Switch.esm.js +16 -61
  112. package/dist/Tabs/Tabs.cjs.js +11 -10
  113. package/dist/Tabs/Tabs.esm.js +11 -10
  114. package/dist/Tag/Tag.cjs.js +9 -43
  115. package/dist/Tag/Tag.esm.js +8 -42
  116. package/dist/Text/Text.cjs.js +4 -4
  117. package/dist/Text/Text.esm.js +4 -4
  118. package/dist/TextArea/TextArea.cjs.js +66 -46
  119. package/dist/TextArea/TextArea.esm.js +64 -44
  120. package/dist/TextInput/TextInput.cjs.js +10 -9
  121. package/dist/TextInput/TextInput.esm.js +10 -9
  122. package/dist/Theme/Theme.cjs.js +15 -4
  123. package/dist/Theme/Theme.esm.js +15 -4
  124. package/dist/ThemeIcon/ThemeIcon.cjs.js +14 -0
  125. package/dist/ThemeIcon/ThemeIcon.esm.js +6 -0
  126. package/dist/ThemeIcon/package.json +7 -0
  127. package/dist/Toast/Toast.cjs.js +10 -9
  128. package/dist/Toast/Toast.esm.js +10 -9
  129. package/dist/Truncate/Truncate.cjs.js +3 -3
  130. package/dist/Truncate/Truncate.esm.js +1 -1
  131. package/dist/TypographyCard/TypographyCard.cjs.js +41 -0
  132. package/dist/TypographyCard/TypographyCard.esm.js +33 -0
  133. package/dist/TypographyCard/package.json +7 -0
  134. package/dist/UniversalHeader/UniversalHeader.cjs.js +3 -3
  135. package/dist/UniversalHeader/UniversalHeader.esm.js +3 -3
  136. package/dist/VerticalSpace/VerticalSpace.cjs.js +2 -2
  137. package/dist/VerticalSpace/VerticalSpace.esm.js +2 -2
  138. package/dist/VideoPlayer/VideoPlayer.cjs.js +3013 -0
  139. package/dist/VideoPlayer/VideoPlayer.esm.js +3005 -0
  140. package/dist/VideoPlayer/package.json +7 -0
  141. package/dist/Visible/Visible.cjs.js +24 -0
  142. package/dist/Visible/Visible.esm.js +16 -0
  143. package/dist/Visible/package.json +7 -0
  144. package/dist/VisuallyHidden/VisuallyHidden.cjs.js +1 -1
  145. package/dist/VisuallyHidden/VisuallyHidden.esm.js +1 -1
  146. package/dist/_shared/cjs/ArcIconEclipse.esm-ac777a76.js +28 -0
  147. package/dist/_shared/cjs/Avatar-fc0d9b8b.js +49 -0
  148. package/dist/_shared/cjs/{BrandLogo-aea340c8.js → BrandLogo-1d2ca2c7.js} +7 -7
  149. package/dist/_shared/cjs/{Breadcrumbs-f3385e2e.js → Breadcrumbs-7af0af2c.js} +16 -16
  150. package/dist/_shared/cjs/BtIconArrowRight.esm-5989f2ca.js +38 -0
  151. package/dist/_shared/cjs/BtIconChevronRightMid.esm-3e8d18a9.js +28 -0
  152. package/dist/_shared/cjs/BtIconPlayFill.esm-b8997cfc.js +30 -0
  153. package/dist/_shared/cjs/{Button-5c958ce9.js → Button-7d891a89.js} +12 -12
  154. package/dist/_shared/cjs/ButtonV2-b2db3f46.js +48 -0
  155. package/dist/_shared/cjs/Calendar-780bb071.js +1927 -0
  156. package/dist/_shared/cjs/CardFooter-5414bc4f.js +79 -0
  157. package/dist/_shared/cjs/{Checkbox-5f14bb0d.js → Checkbox-0e423653.js} +18 -14
  158. package/dist/_shared/cjs/{Columns-ae4f8cef.js → Columns-1224bdff.js} +9 -16
  159. package/dist/_shared/cjs/Combination-3a639f6d.js +2974 -0
  160. package/dist/_shared/cjs/ConditionalWrapper-be3b2625.js +14 -0
  161. package/dist/_shared/cjs/DatePicker-e27ea988.js +550 -0
  162. package/dist/_shared/cjs/{DisclosureMini-145105a4.js → DisclosureMini-c01ecce0.js} +12 -15
  163. package/dist/_shared/cjs/{Filter-1bde635c.js → Filter-3b897d92.js} +32 -24
  164. package/dist/_shared/cjs/{FormControl-30f2330f.js → FormControl-88d48f42.js} +32 -17
  165. package/dist/_shared/cjs/Grid-9e91fb3d.js +46 -0
  166. package/dist/_shared/cjs/{Group-0429741a.js → Group-3d5ea240.js} +9 -16
  167. package/dist/_shared/cjs/{Heading-27cba320.js → Heading-fb63844f.js} +7 -7
  168. package/dist/_shared/cjs/HeroButton-0586a7c4.js +126 -0
  169. package/dist/_shared/cjs/{Icon-a47b6c0a.js → Icon-0ec0c1fb.js} +12 -8
  170. package/dist/_shared/cjs/Image-e9a5a326.js +56 -0
  171. package/dist/_shared/cjs/MediaCard-e1648705.js +65 -0
  172. package/dist/_shared/cjs/{Poster-499b78da.js → Poster-b7242b37.js} +14 -14
  173. package/dist/_shared/cjs/Preview-0bf3f6e8.js +167 -0
  174. package/dist/_shared/cjs/ProgressStepper-fb8405c2.js +121 -0
  175. package/dist/_shared/cjs/RadioGroup-a4186267.js +85 -0
  176. package/dist/_shared/cjs/{Section-59804166.js → Section-ecfc659b.js} +5 -5
  177. package/dist/_shared/cjs/{SiteFooter-0638c27c.js → SiteFooter-b4247527.js} +13 -12
  178. package/dist/_shared/cjs/SiteHeaderV2-c2d651bc.js +689 -0
  179. package/dist/_shared/cjs/{Surface-038db6e1.js → Surface-8599dbe4.js} +23 -23
  180. package/dist/_shared/cjs/{Tabs-ade6d6b6.js → Tabs-75c34f43.js} +35 -39
  181. package/dist/_shared/cjs/Tag-452048f6.js +44 -0
  182. package/dist/_shared/cjs/{Text-606ca3a2.js → Text-1c1110a4.js} +7 -7
  183. package/dist/_shared/cjs/TextInput-762e2309.js +103 -0
  184. package/dist/_shared/cjs/{ThemeIcon-9534f091.js → ThemeIcon-ee814862.js} +8 -8
  185. package/dist/_shared/cjs/{Toast-6d4021d7.js → Toast-d06a89e0.js} +283 -44
  186. package/dist/_shared/cjs/UniversalHeader-f6d9c63a.js +29 -0
  187. package/dist/_shared/cjs/{VerticalSpace-dc53bb70.js → VerticalSpace-e128ec68.js} +5 -5
  188. package/dist/_shared/cjs/{VisuallyHidden-e2c8b291.js → VisuallyHidden-b0de4c7b.js} +1 -1
  189. package/dist/_shared/cjs/_commonjsHelpers-56412ec5.js +21 -0
  190. package/dist/_shared/cjs/{index-38d3848e.js → component-df82bc05.js} +154 -435
  191. package/dist/_shared/cjs/{debounce-123468fb.js → debounce-a74c28cf.js} +2 -2
  192. package/dist/_shared/cjs/index-039a9d35.js +23 -0
  193. package/dist/_shared/cjs/{index-23b4f49f.js → index-0c6319ec.js} +1 -1
  194. package/dist/_shared/cjs/index-28447df0.js +23 -0
  195. package/dist/_shared/cjs/index-3d629205.js +26 -0
  196. package/dist/_shared/cjs/{index.module-7d7228b3.js → index-3dd54df1.js} +47 -49
  197. package/dist/_shared/cjs/index-41b09e85.js +53 -0
  198. package/dist/_shared/cjs/{index-d75774a9.js → index-7aa7f96a.js} +1 -1
  199. package/dist/_shared/cjs/index-7e31a45b.js +2206 -0
  200. package/dist/_shared/cjs/index-996dec94.js +131 -0
  201. package/dist/_shared/cjs/index-dcfdd5da.js +11 -0
  202. package/dist/_shared/cjs/{filter-data-attrs-1c9a530c.js → index-df60851b.js} +17 -57
  203. package/dist/_shared/cjs/index.es-8b018b0d.js +13 -0
  204. package/dist/_shared/cjs/{suffix-modifier-64dcd338.js → suffix-modifier-c8a34402.js} +2 -2
  205. package/dist/_shared/cjs/{index.es-77def0c9.js → use-media-query-d34c83b9.js} +0 -9
  206. package/dist/_shared/esm/ArcIconEclipse.esm-bb48b82a.js +22 -0
  207. package/dist/_shared/esm/Avatar-38cc0595.js +43 -0
  208. package/dist/_shared/esm/{BrandLogo-1af78f76.js → BrandLogo-7ed8aeda.js} +3 -3
  209. package/dist/_shared/esm/{Breadcrumbs-c4b65cff.js → Breadcrumbs-9078b68e.js} +8 -8
  210. package/dist/_shared/esm/BtIconArrowRight.esm-6a17d0ce.js +31 -0
  211. package/dist/_shared/esm/BtIconChevronRightMid.esm-4764708f.js +22 -0
  212. package/dist/_shared/esm/BtIconPlayFill.esm-05fc0344.js +24 -0
  213. package/dist/_shared/esm/{Button-c3348ed8.js → Button-dde2b46a.js} +6 -6
  214. package/dist/_shared/esm/ButtonV2-49cd0615.js +42 -0
  215. package/dist/_shared/esm/Calendar-f81052f4.js +1918 -0
  216. package/dist/_shared/esm/CardFooter-c79fb2db.js +73 -0
  217. package/dist/_shared/esm/{Checkbox-2a623386.js → Checkbox-0baca464.js} +14 -10
  218. package/dist/_shared/esm/{Columns-d96b7425.js → Columns-6a8f6fbb.js} +3 -10
  219. package/dist/_shared/esm/Combination-ae3a3f08.js +2942 -0
  220. package/dist/_shared/esm/ConditionalWrapper-59be8f35.js +8 -0
  221. package/dist/_shared/esm/DatePicker-2260f260.js +539 -0
  222. package/dist/_shared/esm/{DisclosureMini-bf95a9db.js → DisclosureMini-38f4c459.js} +8 -11
  223. package/dist/_shared/esm/{Filter-58a42358.js → Filter-49dcf5ce.js} +24 -16
  224. package/dist/_shared/esm/{FormControl-433228f5.js → FormControl-d873f7fa.js} +29 -14
  225. package/dist/_shared/esm/Grid-fb9fc522.js +40 -0
  226. package/dist/_shared/esm/{Group-73fdb896.js → Group-66196f07.js} +3 -10
  227. package/dist/_shared/esm/{Heading-d16e0e53.js → Heading-906c7c7c.js} +3 -3
  228. package/dist/_shared/esm/HeroButton-7ea692bf.js +120 -0
  229. package/dist/_shared/esm/{Icon-9ecaaeab.js → Icon-512f834f.js} +9 -5
  230. package/dist/_shared/esm/{Image-12fbd327.js → Image-57d08939.js} +15 -5
  231. package/dist/_shared/esm/MediaCard-01250268.js +59 -0
  232. package/dist/_shared/esm/{Poster-699dc89b.js → Poster-e05a8b45.js} +6 -6
  233. package/dist/_shared/esm/Preview-43b2a75d.js +161 -0
  234. package/dist/_shared/esm/ProgressStepper-189ed0f9.js +115 -0
  235. package/dist/_shared/esm/RadioGroup-8ff17cbb.js +78 -0
  236. package/dist/_shared/esm/{Section-73781b56.js → Section-1acbc06a.js} +1 -1
  237. package/dist/_shared/esm/{SiteFooter-d21da7ab.js → SiteFooter-ef6f0cdc.js} +9 -8
  238. package/dist/_shared/esm/SiteHeaderV2-a041b889.js +683 -0
  239. package/dist/_shared/esm/{Surface-0ca6817d.js → Surface-71d21a9e.js} +17 -17
  240. package/dist/_shared/esm/{Tabs-39d24a7d.js → Tabs-21ac7dfe.js} +11 -15
  241. package/dist/_shared/esm/Tag-2513c185.js +38 -0
  242. package/dist/_shared/esm/{Text-14f586ac.js → Text-a46fb76b.js} +3 -3
  243. package/dist/_shared/esm/TextInput-94c7b1a4.js +96 -0
  244. package/dist/_shared/esm/{ThemeIcon-eab5a4d0.js → ThemeIcon-c2dc41a6.js} +3 -3
  245. package/dist/_shared/esm/{Toast-dce2d01e.js → Toast-de6ca2f3.js} +261 -23
  246. package/dist/_shared/esm/{UniversalHeader-b4c1577c.js → UniversalHeader-456ad60c.js} +8 -13
  247. package/dist/_shared/esm/{VerticalSpace-43cd9138.js → VerticalSpace-b07cd8e6.js} +1 -1
  248. package/dist/_shared/esm/{VisuallyHidden-b9eebf71.js → VisuallyHidden-06692fd3.js} +1 -1
  249. package/dist/_shared/esm/_commonjsHelpers-0109d574.js +18 -0
  250. package/dist/_shared/esm/{index-ffd720d0.js → component-d0a555cf.js} +144 -432
  251. package/dist/_shared/esm/{debounce-6fed6b84.js → debounce-c8e41002.js} +1 -1
  252. package/dist/_shared/esm/{filter-data-attrs-ea8f4ed4.js → index-288c66b5.js} +17 -55
  253. package/dist/_shared/esm/index-4e58de24.js +51 -0
  254. package/dist/_shared/esm/index-5113ed53.js +24 -0
  255. package/dist/_shared/esm/index-6028d797.js +21 -0
  256. package/dist/_shared/esm/index-605031ca.js +2197 -0
  257. package/dist/_shared/esm/index-69089474.js +21 -0
  258. package/dist/_shared/esm/{index-3147c5b0.js → index-7740883c.js} +1 -1
  259. package/dist/_shared/esm/index-a624de47.js +9 -0
  260. package/dist/_shared/esm/{index.module-50b2c98a.js → index-cace3545.js} +43 -45
  261. package/dist/_shared/esm/{index-65264b4e.js → index-f97466e9.js} +1 -1
  262. package/dist/_shared/esm/index-fa93ec97.js +129 -0
  263. package/dist/_shared/esm/index.es-3139cf9e.js +9 -0
  264. package/dist/_shared/esm/{suffix-modifier-3d548e45.js → suffix-modifier-1ce05abe.js} +2 -2
  265. package/dist/_shared/esm/{index.es-00cb3bcb.js → use-media-query-d3622da8.js} +1 -8
  266. package/dist/index.es.js +18330 -38186
  267. package/dist/index.es.js.map +1 -1
  268. package/dist/index.js +18317 -38162
  269. package/dist/index.js.map +1 -1
  270. package/dist/styles.css +7 -38
  271. package/dist/types/components/Alert/Alert.d.ts +1 -1
  272. package/dist/types/components/AppButton/AppButton.d.ts +9 -0
  273. package/dist/types/components/AppButton/icons/AppStore.d.ts +2 -0
  274. package/dist/types/components/AppButton/icons/GooglePlay.d.ts +2 -0
  275. package/dist/types/components/AppButton/index.d.ts +1 -0
  276. package/dist/types/components/Avatar/Avatar.d.ts +14 -0
  277. package/dist/types/components/Avatar/components/AvatarContent/AvatarContent.d.ts +9 -0
  278. package/dist/types/components/Avatar/index.d.ts +1 -0
  279. package/dist/types/components/Avatar/types/avatar-icon-size.d.ts +1 -0
  280. package/dist/types/components/Avatar/types/avatar-image.d.ts +2 -0
  281. package/dist/types/components/Avatar/types/avatar-size.d.ts +1 -0
  282. package/dist/types/components/Avatar/types/avatar-text-size.d.ts +2 -0
  283. package/dist/types/components/AvatarGroup/AvatarGroup.d.ts +14 -0
  284. package/dist/types/components/AvatarGroup/index.d.ts +1 -0
  285. package/dist/types/components/AvatarGroup/types/group-avatar.d.ts +2 -0
  286. package/dist/types/components/AvatarGroup/utils/get-avatars.d.ts +2 -0
  287. package/dist/types/components/Badge/Badge.d.ts +1 -9
  288. package/dist/types/components/Button/Button.d.ts +1 -1
  289. package/dist/types/components/ButtonV2/ButtonV2.d.ts +79 -0
  290. package/dist/types/components/ButtonV2/index.d.ts +1 -0
  291. package/dist/types/components/Calendar/Calendar.d.ts +50 -0
  292. package/dist/types/components/Calendar/Calendar.provider.d.ts +21 -0
  293. package/dist/types/components/Calendar/components/CalendarDateSelect/CalendarDateSelect.d.ts +15 -0
  294. package/dist/types/components/Calendar/components/CalendarDateSelect/index.d.ts +1 -0
  295. package/dist/types/components/Calendar/components/CalendarDayGrid/CalendarDayGrid.d.ts +6 -0
  296. package/dist/types/components/Calendar/components/CalendarDayGrid/index.d.ts +1 -0
  297. package/dist/types/components/Calendar/components/CalendarDayNumber/CalendarDayNumber.d.ts +8 -0
  298. package/dist/types/components/Calendar/components/CalendarDayNumber/index.d.ts +1 -0
  299. package/dist/types/components/Calendar/components/CalendarDoubleMonthView/CalendarDoubleMonthView.d.ts +9 -0
  300. package/dist/types/components/Calendar/components/CalendarDoubleMonthView/index.d.ts +1 -0
  301. package/dist/types/components/Calendar/components/CalendarFooter/CalendarFooter.d.ts +6 -0
  302. package/dist/types/components/Calendar/components/CalendarFooter/index.d.ts +1 -0
  303. package/dist/types/components/Calendar/components/CalendarMonthView/CalendarMonthView.d.ts +9 -0
  304. package/dist/types/components/Calendar/components/CalendarMonthView/index.d.ts +1 -0
  305. package/dist/types/components/Calendar/components/CalendarMonthYearView/CalendarMonthYearView.d.ts +11 -0
  306. package/dist/types/components/Calendar/components/CalendarMonthYearView/index.d.ts +1 -0
  307. package/dist/types/components/Calendar/components/CalendarNavButton/CalendarNavButton.d.ts +10 -0
  308. package/dist/types/components/Calendar/components/CalendarNavButton/index.d.ts +1 -0
  309. package/dist/types/components/Calendar/components/CalendarWrapper/CalendarWrapper.d.ts +5 -0
  310. package/dist/types/components/Calendar/components/CalendarWrapper/index.d.ts +1 -0
  311. package/dist/types/components/Calendar/components/index.d.ts +6 -0
  312. package/dist/types/components/Calendar/constants/day-names.d.ts +5 -0
  313. package/dist/types/components/Calendar/constants/index.d.ts +1 -0
  314. package/dist/types/components/Calendar/helpers/contains-date.d.ts +1 -0
  315. package/dist/types/components/Calendar/helpers/contains-date.test.d.ts +1 -0
  316. package/dist/types/components/Calendar/helpers/date-without-time.d.ts +1 -0
  317. package/dist/types/components/Calendar/helpers/date-without-time.test.d.ts +1 -0
  318. package/dist/types/components/Calendar/helpers/get-calendar-type.d.ts +2 -0
  319. package/dist/types/components/Calendar/helpers/get-calendar-type.test.d.ts +1 -0
  320. package/dist/types/components/Calendar/helpers/get-dates-in-month.d.ts +1 -0
  321. package/dist/types/components/Calendar/helpers/get-dates-in-month.test.d.ts +1 -0
  322. package/dist/types/components/Calendar/helpers/get-double-month-display-range.d.ts +1 -0
  323. package/dist/types/components/Calendar/helpers/get-double-month-display-range.test.d.ts +1 -0
  324. package/dist/types/components/Calendar/helpers/get-focus-date.d.ts +5 -0
  325. package/dist/types/components/Calendar/helpers/get-focus-date.test.d.ts +1 -0
  326. package/dist/types/components/Calendar/helpers/get-highlighted-range.d.ts +6 -0
  327. package/dist/types/components/Calendar/helpers/get-highlighted-range.test.d.ts +1 -0
  328. package/dist/types/components/Calendar/helpers/get-keydown-date.d.ts +6 -0
  329. package/dist/types/components/Calendar/helpers/get-keydown-date.test.d.ts +1 -0
  330. package/dist/types/components/Calendar/helpers/index.d.ts +13 -0
  331. package/dist/types/components/Calendar/helpers/is-day.d.ts +2 -0
  332. package/dist/types/components/Calendar/helpers/is-day.test.d.ts +1 -0
  333. package/dist/types/components/Calendar/helpers/is-disabled-date.d.ts +1 -0
  334. package/dist/types/components/Calendar/helpers/is-disabled-date.test.d.ts +1 -0
  335. package/dist/types/components/Calendar/helpers/is-month-after-max-date.d.ts +1 -0
  336. package/dist/types/components/Calendar/helpers/is-month-after-max-date.test.d.ts +1 -0
  337. package/dist/types/components/Calendar/helpers/is-month-before-min-date.d.ts +1 -0
  338. package/dist/types/components/Calendar/helpers/is-month-before-min-date.test.d.ts +1 -0
  339. package/dist/types/components/Calendar/helpers/process-selected-range.d.ts +9 -0
  340. package/dist/types/components/Calendar/helpers/process-selected-range.test.d.ts +1 -0
  341. package/dist/types/components/Calendar/index.d.ts +2 -0
  342. package/dist/types/components/Calendar/state/handlers/calendar-keydown-handler.d.ts +3 -0
  343. package/dist/types/components/Calendar/state/handlers/day-grid-leave-handler.d.ts +3 -0
  344. package/dist/types/components/Calendar/state/handlers/day-number-select-handler.d.ts +3 -0
  345. package/dist/types/components/Calendar/state/handlers/default-handler.d.ts +2 -0
  346. package/dist/types/components/Calendar/state/handlers/dropdown-change-month-handler.d.ts +3 -0
  347. package/dist/types/components/Calendar/state/handlers/dropdown-change-year-handler.d.ts +3 -0
  348. package/dist/types/components/Calendar/state/handlers/highlight-range-handler.d.ts +3 -0
  349. package/dist/types/components/Calendar/state/handlers/index.d.ts +12 -0
  350. package/dist/types/components/Calendar/state/handlers/range-select-handler.d.ts +3 -0
  351. package/dist/types/components/Calendar/state/handlers/show-next-double-month-handler.d.ts +3 -0
  352. package/dist/types/components/Calendar/state/handlers/show-next-month-handler.d.ts +3 -0
  353. package/dist/types/components/Calendar/state/handlers/show-previous-double-month-handler.d.ts +3 -0
  354. package/dist/types/components/Calendar/state/handlers/show-previous-month-handler.d.ts +3 -0
  355. package/dist/types/components/Calendar/state/index.d.ts +2 -0
  356. package/dist/types/components/Calendar/state/reducer.d.ts +3 -0
  357. package/dist/types/components/Calendar/state/reducer.test.d.ts +1 -0
  358. package/dist/types/components/Calendar/state/types/actions.d.ts +81 -0
  359. package/dist/types/components/Calendar/state/types/state-handler.d.ts +3 -0
  360. package/dist/types/components/Calendar/state/types/state.d.ts +5 -0
  361. package/dist/types/components/Calendar/types/calendar-type.d.ts +1 -0
  362. package/dist/types/components/Calendar/types/date-select-value.d.ts +2 -0
  363. package/dist/types/components/Calendar/types/index.d.ts +6 -0
  364. package/dist/types/components/Calendar/types/key-names.d.ts +13 -0
  365. package/dist/types/components/Calendar/types/range-selection.d.ts +10 -0
  366. package/dist/types/components/Calendar/types/selection-type.d.ts +1 -0
  367. package/dist/types/components/Calendar/types/week-days.d.ts +18 -0
  368. package/dist/types/components/Checkbox/Checkbox.d.ts +7 -4
  369. package/dist/types/components/DatePicker/DatePicker.d.ts +20 -0
  370. package/dist/types/components/DatePicker/constants/date-format.d.ts +1 -0
  371. package/dist/types/components/DatePicker/constants/index.d.ts +1 -0
  372. package/dist/types/components/DatePicker/helpers/convert-date-string-to-date.d.ts +1 -0
  373. package/dist/types/components/DatePicker/helpers/convert-date-string-to-date.test.d.ts +1 -0
  374. package/dist/types/components/DatePicker/helpers/convert-range-string-to-dates.d.ts +1 -0
  375. package/dist/types/components/DatePicker/helpers/convert-range-string-to-dates.test.d.ts +1 -0
  376. package/dist/types/components/DatePicker/helpers/format-date.d.ts +1 -0
  377. package/dist/types/components/DatePicker/helpers/format-date.test.d.ts +1 -0
  378. package/dist/types/components/DatePicker/helpers/index.d.ts +8 -0
  379. package/dist/types/components/DatePicker/helpers/is-date-valid.d.ts +1 -0
  380. package/dist/types/components/DatePicker/helpers/is-date-valid.test.d.ts +1 -0
  381. package/dist/types/components/DatePicker/helpers/is-disabled-date.d.ts +1 -0
  382. package/dist/types/components/DatePicker/helpers/is-disabled-date.test.d.ts +1 -0
  383. package/dist/types/components/DatePicker/helpers/is-range-valid.d.ts +1 -0
  384. package/dist/types/components/DatePicker/helpers/is-range-valid.test.d.ts +1 -0
  385. package/dist/types/components/DatePicker/helpers/parse-date-string.d.ts +5 -0
  386. package/dist/types/components/DatePicker/helpers/parse-date-string.test.d.ts +1 -0
  387. package/dist/types/components/DatePicker/helpers/parse-range-string.d.ts +14 -0
  388. package/dist/types/components/DatePicker/helpers/parse-range-string.test.d.ts +1 -0
  389. package/dist/types/components/DatePicker/index.d.ts +6 -0
  390. package/dist/types/components/Disclosure/Disclosure.d.ts +1 -2
  391. package/dist/types/components/DisclosureMini/DisclosureMini.d.ts +1 -2
  392. package/dist/types/components/Filter/Filter.d.ts +1 -1
  393. package/dist/types/components/Filter/FilterItems/FilterItems.d.ts +4 -0
  394. package/dist/types/components/FormControl/FormControl.d.ts +5 -1
  395. package/dist/types/components/Grid/Grid.constants.d.ts +1 -0
  396. package/dist/types/components/Grid/Grid.d.ts +28 -0
  397. package/dist/types/components/Grid/Grid.types.d.ts +10 -0
  398. package/dist/types/components/Grid/components/Col/Col.d.ts +10 -0
  399. package/dist/types/components/Grid/components/Col/index.d.ts +1 -0
  400. package/dist/types/components/Grid/components/Row/Row.d.ts +10 -0
  401. package/dist/types/components/Grid/components/Row/index.d.ts +1 -0
  402. package/dist/types/components/Grid/index.d.ts +2 -0
  403. package/dist/types/components/HeroButton/HeroButton.d.ts +66 -0
  404. package/dist/types/components/HeroButton/index.d.ts +1 -0
  405. package/dist/types/components/Hidden/Hidden.d.ts +11 -0
  406. package/dist/types/components/Hidden/index.d.ts +1 -0
  407. package/dist/types/components/Icon/Icon.d.ts +4 -0
  408. package/dist/types/components/Image/Image.d.ts +4 -0
  409. package/dist/types/components/ImpactCard/ImpactCard.d.ts +58 -0
  410. package/dist/types/components/ImpactCard/index.d.ts +1 -0
  411. package/dist/types/components/InformationCard/InformationCard.d.ts +62 -0
  412. package/dist/types/components/InformationCard/index.d.ts +1 -0
  413. package/dist/types/components/Link/Link.d.ts +52 -0
  414. package/dist/types/components/Link/index.d.ts +1 -0
  415. package/dist/types/components/MediaCard/MediaCard.d.ts +27 -28
  416. package/dist/types/components/MediaCard/types/index.d.ts +2 -0
  417. package/dist/types/components/MediaCard/types/media-card-image.d.ts +4 -0
  418. package/dist/types/components/MediaCard/types/media-card-video.d.ts +4 -0
  419. package/dist/types/components/Modal/Modal.d.ts +3 -3
  420. package/dist/types/components/Pagination/Pagination.d.ts +1 -1
  421. package/dist/types/components/PaginationSimple/PaginationSimple.d.ts +12 -4
  422. package/dist/types/components/Poster/Poster.d.ts +1 -1
  423. package/dist/types/components/ProgressBar/ProgressBar.d.ts +4 -0
  424. package/dist/types/components/ProgressStepper/ProgressStepper.d.ts +2 -2
  425. package/dist/types/components/ProgressStepper/ProgressStepperItem/ProgressStepperItem.d.ts +3 -7
  426. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Complete.d.ts +2 -0
  427. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Current.d.ts +2 -0
  428. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Error.d.ts +2 -0
  429. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Todo.d.ts +2 -0
  430. package/dist/types/components/ProgressStepper/ProgressStepperItem/icons/Warning.d.ts +2 -0
  431. package/dist/types/components/RadioGroup/RadioButton/RadioButton.d.ts +17 -23
  432. package/dist/types/components/RadioGroup/RadioButtonGroupInput/RadioButtonGroupInput.d.ts +36 -0
  433. package/dist/types/components/RadioGroup/RadioButtonGroupInput/index.d.ts +1 -0
  434. package/dist/types/components/RadioGroup/RadioGroup.d.ts +11 -3
  435. package/dist/types/components/RadioGroup/context.d.ts +1 -1
  436. package/dist/types/components/RadioGroup/index.d.ts +1 -0
  437. package/dist/types/components/Rule/Rule.d.ts +2 -1
  438. package/dist/types/components/Select/Select.d.ts +53 -0
  439. package/dist/types/components/SiteFooter/index.d.ts +0 -1
  440. package/dist/types/components/SiteHeaderV2/SiteHeaderV2.d.ts +82 -0
  441. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/BackButton/BackButton.d.ts +1 -0
  442. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Column/Column.d.ts +1 -1
  443. package/dist/types/components/SiteHeaderV2/components/HorizontalPanel/HorizontalPanel.d.ts +13 -0
  444. package/dist/types/components/SiteHeaderV2/components/HorizontalPanel/index.d.ts +1 -0
  445. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/ItemGroup/ItemGroup.d.ts +1 -0
  446. package/dist/types/components/SiteHeaderV2/components/ItemGroup/index.d.ts +1 -0
  447. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/NavItem/NavItem.d.ts +5 -6
  448. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/NavItem/NavItemWithSubNav.d.ts +13 -4
  449. package/dist/types/components/SiteHeaderV2/components/NavItem/index.d.ts +2 -0
  450. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/NodeItem/NodeItem.d.ts +1 -1
  451. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Panel/Panel.d.ts +8 -2
  452. package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/SubNavItem/SubNavItem.d.ts +5 -7
  453. package/dist/types/components/SiteHeaderV2/components/SubNavItem/index.d.ts +1 -0
  454. package/dist/types/components/SiteHeaderV2/components/VerticalDivider/VerticalDivider.d.ts +2 -0
  455. package/dist/types/components/SiteHeaderV2/components/VerticalDivider/index.d.ts +1 -0
  456. package/dist/types/components/SiteHeaderV2/index.d.ts +1 -0
  457. package/dist/types/components/SkipLink/SkipLink.d.ts +12 -0
  458. package/dist/types/components/SkipLink/SkipLinkItem/SkipLinkItem.d.ts +16 -0
  459. package/dist/types/components/SkipLink/index.d.ts +1 -0
  460. package/dist/types/components/Surface/Surface.d.ts +3 -3
  461. package/dist/types/components/Switch/Switch.d.ts +2 -2
  462. package/dist/types/components/Tabs/Tabs.d.ts +1 -0
  463. package/dist/types/components/Tag/Tag.d.ts +5 -1
  464. package/dist/types/components/TextArea/TextArea.d.ts +17 -0
  465. package/dist/types/components/TextInput/TextInput.d.ts +46 -6
  466. package/dist/types/components/Theme/Theme.d.ts +11 -3
  467. package/dist/types/components/Theme/index.d.ts +1 -1
  468. package/dist/types/components/ThemeIcon/icon-names.d.ts +1 -1
  469. package/dist/types/components/Toast/Toast.d.ts +1 -1
  470. package/dist/types/components/TypographyCard/TypographyCard.d.ts +58 -0
  471. package/dist/types/components/TypographyCard/index.d.ts +1 -0
  472. package/dist/types/components/UniversalHeader/UniversalHeader.d.ts +4 -0
  473. package/dist/types/components/VideoPlayer/VideoPlayer.d.ts +18 -0
  474. package/dist/types/components/VideoPlayer/index.d.ts +1 -0
  475. package/dist/types/components/Visible/Visible.d.ts +11 -0
  476. package/dist/types/components/Visible/index.d.ts +1 -0
  477. package/dist/types/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  478. package/dist/types/components/index.d.ts +17 -5
  479. package/dist/types/helpers/get-theme-img.d.ts +6 -0
  480. package/dist/types/helpers/index.d.ts +1 -0
  481. package/dist/types/hooks/index.d.ts +2 -4
  482. package/dist/types/hooks/private/index.d.ts +5 -0
  483. package/dist/types/hooks/private/use-aria-describedby/index.d.ts +1 -0
  484. package/dist/types/hooks/private/use-interaction-mode/index.d.ts +1 -0
  485. package/dist/types/hooks/private/use-numeric-input/index.d.ts +1 -0
  486. package/dist/types/hooks/{use-numeric-input.d.ts → private/use-numeric-input/use-numeric-input.d.ts} +3 -3
  487. package/dist/types/hooks/private/use-pagination/index.d.ts +1 -0
  488. package/dist/types/hooks/private/use-theme-element/index.d.ts +1 -0
  489. package/dist/types/hooks/public/index.d.ts +1 -0
  490. package/dist/types/hooks/public/use-media-query/index.d.ts +1 -0
  491. package/dist/types/hooks/{use-media-query.d.ts → public/use-media-query/use-media-query.d.ts} +1 -1
  492. package/dist/types/index.d.ts +1 -0
  493. package/dist/types/private-components/CardFooter/CardFooter.d.ts +11 -0
  494. package/dist/types/private-components/CardFooter/index.d.ts +1 -0
  495. package/dist/types/private-components/CardHeading/CardHeading.d.ts +19 -0
  496. package/dist/types/private-components/CardHeading/index.d.ts +1 -0
  497. package/dist/types/private-components/ConditionalWrapper/ConditionalWrapper.d.ts +7 -0
  498. package/dist/types/private-components/ConditionalWrapper/index.d.ts +1 -0
  499. package/dist/types/private-components/index.d.ts +3 -0
  500. package/dist/types/styles.d.ts +22 -5
  501. package/dist/types/types/auto-complete-types.d.ts +1 -0
  502. package/dist/use-media-query/package.json +7 -0
  503. package/dist/use-media-query/use-media-query.cjs.js +10 -0
  504. package/dist/use-media-query/use-media-query.esm.js +2 -0
  505. package/package.json +53 -37
  506. package/dist/Base/Base.cjs.js +0 -11
  507. package/dist/Base/Base.esm.js +0 -3
  508. package/dist/Base/package.json +0 -7
  509. package/dist/Card/Card.cjs.js +0 -18
  510. package/dist/Card/Card.esm.js +0 -10
  511. package/dist/Card/package.json +0 -7
  512. package/dist/Clock/Clock.cjs.js +0 -43
  513. package/dist/Clock/Clock.esm.js +0 -34
  514. package/dist/Clock/package.json +0 -7
  515. package/dist/SiteHeader/SiteHeader.cjs.js +0 -22
  516. package/dist/SiteHeader/SiteHeader.esm.js +0 -13
  517. package/dist/SiteHeader/package.json +0 -7
  518. package/dist/_shared/cjs/Base-f5a86eed.js +0 -22
  519. package/dist/_shared/cjs/Card-eb1c20c1.js +0 -121
  520. package/dist/_shared/cjs/Image-e873b8fc.js +0 -46
  521. package/dist/_shared/cjs/ProgressStepper-74ee1eec.js +0 -88
  522. package/dist/_shared/cjs/RadioGroup-9bc96f6a.js +0 -69
  523. package/dist/_shared/cjs/SiteHeader.rehydrator-42c4a0e0.js +0 -670
  524. package/dist/_shared/cjs/TextInput-a5f72f6f.js +0 -81
  525. package/dist/_shared/cjs/UniversalHeader-5e43d320.js +0 -34
  526. package/dist/_shared/cjs/extends-8c5e4b48.js +0 -18
  527. package/dist/_shared/cjs/index-4aa11039.js +0 -490
  528. package/dist/_shared/cjs/index-4dd46cbe.js +0 -289
  529. package/dist/_shared/esm/Base-f200653c.js +0 -15
  530. package/dist/_shared/esm/Card-45e8e10a.js +0 -115
  531. package/dist/_shared/esm/ProgressStepper-5de34269.js +0 -82
  532. package/dist/_shared/esm/RadioGroup-002a32ba.js +0 -63
  533. package/dist/_shared/esm/SiteHeader.rehydrator-97900e11.js +0 -663
  534. package/dist/_shared/esm/TextInput-28f18769.js +0 -75
  535. package/dist/_shared/esm/extends-8cc61aad.js +0 -16
  536. package/dist/_shared/esm/index-4f8d3888.js +0 -280
  537. package/dist/_shared/esm/index-87a828b8.js +0 -479
  538. package/dist/types/components/Base/Base.d.ts +0 -16
  539. package/dist/types/components/Base/index.d.ts +0 -1
  540. package/dist/types/components/Card/Card.d.ts +0 -128
  541. package/dist/types/components/Card/index.d.ts +0 -1
  542. package/dist/types/components/Clock/Clock.d.ts +0 -12
  543. package/dist/types/components/Clock/Clock.rehydrator.d.ts +0 -2
  544. package/dist/types/components/Clock/index.d.ts +0 -2
  545. package/dist/types/components/MediaCard/MediaCard.stories-wip.d.ts +0 -15
  546. package/dist/types/components/SiteFooter/SiteFooter.rehydrator.d.ts +0 -2
  547. package/dist/types/components/SiteHeader/SiteHeader.d.ts +0 -75
  548. package/dist/types/components/SiteHeader/SiteHeader.rehydrator.d.ts +0 -8
  549. package/dist/types/components/SiteHeader/components/ItemGroup/ItemGroup.rehydrator.d.ts +0 -2
  550. package/dist/types/components/SiteHeader/components/ItemGroup/index.d.ts +0 -2
  551. package/dist/types/components/SiteHeader/components/NavItem/NavItem.rehydrator.d.ts +0 -2
  552. package/dist/types/components/SiteHeader/components/NavItem/NavItemWithSubNav.rehydrator.d.ts +0 -2
  553. package/dist/types/components/SiteHeader/components/NavItem/index.d.ts +0 -4
  554. package/dist/types/components/SiteHeader/components/SubNavItem/SubNavItem.rehydrator.d.ts +0 -2
  555. package/dist/types/components/SiteHeader/components/SubNavItem/index.d.ts +0 -2
  556. package/dist/types/components/SiteHeader/index.d.ts +0 -2
  557. /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/BackButton/index.d.ts +0 -0
  558. /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Column/index.d.ts +0 -0
  559. /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Item/Item.d.ts +0 -0
  560. /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Item/index.d.ts +0 -0
  561. /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/MenuButton/MenuButton.d.ts +0 -0
  562. /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/MenuButton/index.d.ts +0 -0
  563. /package/dist/types/components/{SiteHeader → SiteHeaderV2}/components/Panel/index.d.ts +0 -0
  564. /package/dist/types/hooks/{use-aria-describedby.d.ts → private/use-aria-describedby/use-aria-describedby.d.ts} +0 -0
  565. /package/dist/types/hooks/{use-interaction-mode.d.ts → private/use-interaction-mode/use-interaction-mode.d.ts} +0 -0
  566. /package/dist/types/hooks/{use-pagination.d.ts → private/use-pagination/use-pagination.d.ts} +0 -0
@@ -1,673 +1,29 @@
1
- import { _ as __rest, a as __assign, f as filterDataAttrs } from '../_shared/esm/filter-data-attrs-ea8f4ed4.js';
1
+ import { _ as __rest, a as __assign, f as filterDataAttrs } from '../_shared/esm/index-288c66b5.js';
2
2
  import { c as classNames } from '../_shared/esm/index-2e73c2e9.js';
3
- import * as React from 'react';
4
- import React__default, { useContext, createContext, useEffect, forwardRef, useState, createElement, useRef, useCallback, Fragment, useMemo, useId } from 'react';
5
- import { _ as _extends } from '../_shared/esm/extends-8cc61aad.js';
6
- import $7SXl2$reactdom, { createPortal } from 'react-dom';
7
- import { $ as $c512c27ab02ef895$export$50c7b4e9d9f19c1, a as $6ed0406888f73fc4$export$c7b2cbe3552a0d05, b as $5e63c961fc1ce211$export$8c6ed5c666ac1360, c as $b1b2314f5f9a1d84$export$25bec8c6f54ee79a, d as $8927f6f2acc4f386$export$250ffa63cdc0d034, e as $e42e1063c40fb3ef$export$b9ecd428b558ff10, f as $8927f6f2acc4f386$export$6d1a0317bde7de7f, g as $9f79659886946c16$export$e5c5a5f917a5871c, h as $71cd76cc60e0454e$export$6f32135080cb4c3, i as $010c2913dbd2fe3d$export$5cae361ad82dce8b } from '../_shared/esm/index.module-50b2c98a.js';
8
- import { h as hideOthers, $ as $01b9c$RemoveScroll } from '../_shared/esm/index-ffd720d0.js';
9
- import { F as FormControl } from '../_shared/esm/FormControl-433228f5.js';
10
- import { C as Context } from '../_shared/esm/Surface-0ca6817d.js';
11
- import { A as ArcRootElementContext } from '../_shared/esm/Base-f200653c.js';
12
- import { T as ThemeIcon } from '../_shared/esm/ThemeIcon-eab5a4d0.js';
13
- import '../_shared/esm/DisclosureMini-bf95a9db.js';
14
- import '../_shared/esm/Text-14f586ac.js';
15
- import '../_shared/esm/suffix-modifier-3d548e45.js';
3
+ import React__default, { useState, useRef, createElement, useCallback, forwardRef, Fragment, useEffect, useMemo, useId, useContext } from 'react';
4
+ import { $ as $c512c27ab02ef895$export$50c7b4e9d9f19c1, a as $71cd76cc60e0454e$export$6f32135080cb4c3, b as $6ed0406888f73fc4$export$c7b2cbe3552a0d05, _ as _extends, e as $8927f6f2acc4f386$export$250ffa63cdc0d034, d as $e42e1063c40fb3ef$export$b9ecd428b558ff10, h as $9f79659886946c16$export$e5c5a5f917a5871c, c as $5e63c961fc1ce211$export$8c6ed5c666ac1360, f as $b1b2314f5f9a1d84$export$25bec8c6f54ee79a } from '../_shared/esm/index-cace3545.js';
5
+ import { createPortal } from 'react-dom';
6
+ import { $ as $e02a7d9cb1dc128c$export$c74125a8e3af6bb2 } from '../_shared/esm/index-f97466e9.js';
7
+ import { $ as $f631663db3294ace$export$b39126d51d94e6f3 } from '../_shared/esm/index-a624de47.js';
8
+ import { $ as $cf1ac5d9fe0e8206$export$722aac194ae923, a as $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, b as $cf1ac5d9fe0e8206$export$b688253958b8dfe7, c as $f1701beae083dbae$export$602eac185826482c, e as $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c, d as $01b9c$RemoveScroll, f as $d3863c46a17e8a28$export$20e40289641fbbb6, g as $5cb92bef7577960e$export$177fb62ff3ec1f22, h as $cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2 } from '../_shared/esm/Combination-ae3a3f08.js';
9
+ import { $ as $1746a345f3d73bb7$export$f680877a34711e37 } from '../_shared/esm/index-7740883c.js';
10
+ import { $ as $010c2913dbd2fe3d$export$5cae361ad82dce8b } from '../_shared/esm/index-69089474.js';
11
+ import { $ as $ea1ef594cf570d83$export$439d29a4e110a164 } from '../_shared/esm/index-5113ed53.js';
12
+ import { h as hideOthers, u as useThemeElement } from '../_shared/esm/component-d0a555cf.js';
13
+ import { F as FormControl } from '../_shared/esm/FormControl-d873f7fa.js';
14
+ import { C as Context } from '../_shared/esm/Surface-71d21a9e.js';
15
+ import { T as ThemeIcon } from '../_shared/esm/ThemeIcon-c2dc41a6.js';
16
+ import '../_shared/esm/index-6028d797.js';
17
+ import '../_shared/esm/index-4e58de24.js';
18
+ import '../_shared/esm/DisclosureMini-38f4c459.js';
19
+ import '../_shared/esm/Text-a46fb76b.js';
20
+ import '../_shared/esm/suffix-modifier-1ce05abe.js';
21
+ import '../_shared/esm/VisuallyHidden-06692fd3.js';
16
22
 
17
23
  function $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {
18
24
  return Math.min(max, Math.max(min, value));
19
25
  }
20
26
 
21
- // We have resorted to returning slots directly rather than exposing primitives that can then
22
- // be slotted like `<CollectionItem as={Slot}>…</CollectionItem>`.
23
- // This is because we encountered issues with generic types that cannot be statically analysed
24
- // due to creating them dynamically via createCollection.
25
- function $e02a7d9cb1dc128c$export$c74125a8e3af6bb2(name) {
26
- /* -----------------------------------------------------------------------------------------------
27
- * CollectionProvider
28
- * ---------------------------------------------------------------------------------------------*/ const PROVIDER_NAME = name + 'CollectionProvider';
29
- const [createCollectionContext, createCollectionScope] = $c512c27ab02ef895$export$50c7b4e9d9f19c1(PROVIDER_NAME);
30
- const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {
31
- collectionRef: {
32
- current: null
33
- },
34
- itemMap: new Map()
35
- });
36
- const CollectionProvider = (props)=>{
37
- const { scope: scope , children: children } = props;
38
- const ref = React__default.useRef(null);
39
- const itemMap = React__default.useRef(new Map()).current;
40
- return /*#__PURE__*/ React__default.createElement(CollectionProviderImpl, {
41
- scope: scope,
42
- itemMap: itemMap,
43
- collectionRef: ref
44
- }, children);
45
- };
46
- /* -----------------------------------------------------------------------------------------------
47
- * CollectionSlot
48
- * ---------------------------------------------------------------------------------------------*/ const COLLECTION_SLOT_NAME = name + 'CollectionSlot';
49
- const CollectionSlot = /*#__PURE__*/ React__default.forwardRef((props, forwardedRef)=>{
50
- const { scope: scope , children: children } = props;
51
- const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
52
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.collectionRef);
53
- return /*#__PURE__*/ React__default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {
54
- ref: composedRefs
55
- }, children);
56
- });
57
- /* -----------------------------------------------------------------------------------------------
58
- * CollectionItem
59
- * ---------------------------------------------------------------------------------------------*/ const ITEM_SLOT_NAME = name + 'CollectionItemSlot';
60
- const ITEM_DATA_ATTR = 'data-radix-collection-item';
61
- const CollectionItemSlot = /*#__PURE__*/ React__default.forwardRef((props, forwardedRef)=>{
62
- const { scope: scope , children: children , ...itemData } = props;
63
- const ref = React__default.useRef(null);
64
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);
65
- const context = useCollectionContext(ITEM_SLOT_NAME, scope);
66
- React__default.useEffect(()=>{
67
- context.itemMap.set(ref, {
68
- ref: ref,
69
- ...itemData
70
- });
71
- return ()=>void context.itemMap.delete(ref)
72
- ;
73
- });
74
- return /*#__PURE__*/ React__default.createElement($5e63c961fc1ce211$export$8c6ed5c666ac1360, {
75
- [ITEM_DATA_ATTR]: '',
76
- ref: composedRefs
77
- }, children);
78
- });
79
- /* -----------------------------------------------------------------------------------------------
80
- * useCollection
81
- * ---------------------------------------------------------------------------------------------*/ function useCollection(scope) {
82
- const context = useCollectionContext(name + 'CollectionConsumer', scope);
83
- const getItems = React__default.useCallback(()=>{
84
- const collectionNode = context.collectionRef.current;
85
- if (!collectionNode) return [];
86
- const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
87
- const items = Array.from(context.itemMap.values());
88
- const orderedItems = items.sort((a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)
89
- );
90
- return orderedItems;
91
- }, [
92
- context.collectionRef,
93
- context.itemMap
94
- ]);
95
- return getItems;
96
- }
97
- return [
98
- {
99
- Provider: CollectionProvider,
100
- Slot: CollectionSlot,
101
- ItemSlot: CollectionItemSlot
102
- },
103
- useCollection,
104
- createCollectionScope
105
- ];
106
- }
107
-
108
- const $f631663db3294ace$var$DirectionContext = /*#__PURE__*/ createContext(undefined);
109
- /* -----------------------------------------------------------------------------------------------*/ function $f631663db3294ace$export$b39126d51d94e6f3(localDir) {
110
- const globalDir = useContext($f631663db3294ace$var$DirectionContext);
111
- return localDir || globalDir || 'ltr';
112
- }
113
-
114
- /**
115
- * Listens for when the escape key is down
116
- */ function $addc16e1bbe58fd0$export$3a72a57244d6e765(onEscapeKeyDownProp, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {
117
- const onEscapeKeyDown = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onEscapeKeyDownProp);
118
- useEffect(()=>{
119
- const handleKeyDown = (event)=>{
120
- if (event.key === 'Escape') onEscapeKeyDown(event);
121
- };
122
- ownerDocument.addEventListener('keydown', handleKeyDown);
123
- return ()=>ownerDocument.removeEventListener('keydown', handleKeyDown)
124
- ;
125
- }, [
126
- onEscapeKeyDown,
127
- ownerDocument
128
- ]);
129
- }
130
-
131
- const $5cb92bef7577960e$var$CONTEXT_UPDATE = 'dismissableLayer.update';
132
- const $5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';
133
- const $5cb92bef7577960e$var$FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';
134
- let $5cb92bef7577960e$var$originalBodyPointerEvents;
135
- const $5cb92bef7577960e$var$DismissableLayerContext = /*#__PURE__*/ createContext({
136
- layers: new Set(),
137
- layersWithOutsidePointerEventsDisabled: new Set(),
138
- branches: new Set()
139
- });
140
- const $5cb92bef7577960e$export$177fb62ff3ec1f22 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
141
- var _node$ownerDocument;
142
- const { disableOutsidePointerEvents: disableOutsidePointerEvents = false , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , onDismiss: onDismiss , ...layerProps } = props;
143
- const context = useContext($5cb92bef7577960e$var$DismissableLayerContext);
144
- const [node1, setNode] = useState(null);
145
- const ownerDocument = (_node$ownerDocument = node1 === null || node1 === void 0 ? void 0 : node1.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;
146
- const [, force] = useState({});
147
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setNode(node)
148
- );
149
- const layers = Array.from(context.layers);
150
- const [highestLayerWithOutsidePointerEventsDisabled] = [
151
- ...context.layersWithOutsidePointerEventsDisabled
152
- ].slice(-1); // prettier-ignore
153
- const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore
154
- const index = node1 ? layers.indexOf(node1) : -1;
155
- const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
156
- const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
157
- const pointerDownOutside = $5cb92bef7577960e$var$usePointerDownOutside((event)=>{
158
- const target = event.target;
159
- const isPointerDownOnBranch = [
160
- ...context.branches
161
- ].some((branch)=>branch.contains(target)
162
- );
163
- if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
164
- onPointerDownOutside === null || onPointerDownOutside === void 0 || onPointerDownOutside(event);
165
- onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);
166
- if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();
167
- }, ownerDocument);
168
- const focusOutside = $5cb92bef7577960e$var$useFocusOutside((event)=>{
169
- const target = event.target;
170
- const isFocusInBranch = [
171
- ...context.branches
172
- ].some((branch)=>branch.contains(target)
173
- );
174
- if (isFocusInBranch) return;
175
- onFocusOutside === null || onFocusOutside === void 0 || onFocusOutside(event);
176
- onInteractOutside === null || onInteractOutside === void 0 || onInteractOutside(event);
177
- if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 || onDismiss();
178
- }, ownerDocument);
179
- $addc16e1bbe58fd0$export$3a72a57244d6e765((event)=>{
180
- const isHighestLayer = index === context.layers.size - 1;
181
- if (!isHighestLayer) return;
182
- onEscapeKeyDown === null || onEscapeKeyDown === void 0 || onEscapeKeyDown(event);
183
- if (!event.defaultPrevented && onDismiss) {
184
- event.preventDefault();
185
- onDismiss();
186
- }
187
- }, ownerDocument);
188
- useEffect(()=>{
189
- if (!node1) return;
190
- if (disableOutsidePointerEvents) {
191
- if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
192
- $5cb92bef7577960e$var$originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
193
- ownerDocument.body.style.pointerEvents = 'none';
194
- }
195
- context.layersWithOutsidePointerEventsDisabled.add(node1);
196
- }
197
- context.layers.add(node1);
198
- $5cb92bef7577960e$var$dispatchUpdate();
199
- return ()=>{
200
- if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) ownerDocument.body.style.pointerEvents = $5cb92bef7577960e$var$originalBodyPointerEvents;
201
- };
202
- }, [
203
- node1,
204
- ownerDocument,
205
- disableOutsidePointerEvents,
206
- context
207
- ]);
208
- /**
209
- * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect
210
- * because a change to `disableOutsidePointerEvents` would remove this layer from the stack
211
- * and add it to the end again so the layering order wouldn't be _creation order_.
212
- * We only want them to be removed from context stacks when unmounted.
213
- */ useEffect(()=>{
214
- return ()=>{
215
- if (!node1) return;
216
- context.layers.delete(node1);
217
- context.layersWithOutsidePointerEventsDisabled.delete(node1);
218
- $5cb92bef7577960e$var$dispatchUpdate();
219
- };
220
- }, [
221
- node1,
222
- context
223
- ]);
224
- useEffect(()=>{
225
- const handleUpdate = ()=>force({})
226
- ;
227
- document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate);
228
- return ()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE, handleUpdate)
229
- ;
230
- }, []);
231
- return /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends({}, layerProps, {
232
- ref: composedRefs,
233
- style: {
234
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? 'auto' : 'none' : undefined,
235
- ...props.style
236
- },
237
- onFocusCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusCapture, focusOutside.onFocusCapture),
238
- onBlurCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onBlurCapture, focusOutside.onBlurCapture),
239
- onPointerDownCapture: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)
240
- }));
241
- });
242
- /* -----------------------------------------------------------------------------------------------*/ /**
243
- * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`
244
- * to mimic layer dismissing behaviour present in OS.
245
- * Returns props to pass to the node we want to check for outside events.
246
- */ function $5cb92bef7577960e$var$usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {
247
- const handlePointerDownOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onPointerDownOutside);
248
- const isPointerInsideReactTreeRef = useRef(false);
249
- const handleClickRef = useRef(()=>{});
250
- useEffect(()=>{
251
- const handlePointerDown = (event)=>{
252
- if (event.target && !isPointerInsideReactTreeRef.current) {
253
- const eventDetail = {
254
- originalEvent: event
255
- };
256
- function handleAndDispatchPointerDownOutsideEvent() {
257
- $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {
258
- discrete: true
259
- });
260
- }
261
- /**
262
- * On touch devices, we need to wait for a click event because browsers implement
263
- * a ~350ms delay between the time the user stops touching the display and when the
264
- * browser executres events. We need to ensure we don't reactivate pointer-events within
265
- * this timeframe otherwise the browser may execute events that should have been prevented.
266
- *
267
- * Additionally, this also lets us deal automatically with cancellations when a click event
268
- * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.
269
- *
270
- * This is why we also continuously remove the previous listener, because we cannot be
271
- * certain that it was raised, and therefore cleaned-up.
272
- */ if (event.pointerType === 'touch') {
273
- ownerDocument.removeEventListener('click', handleClickRef.current);
274
- handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;
275
- ownerDocument.addEventListener('click', handleClickRef.current, {
276
- once: true
277
- });
278
- } else handleAndDispatchPointerDownOutsideEvent();
279
- }
280
- isPointerInsideReactTreeRef.current = false;
281
- };
282
- /**
283
- * if this hook executes in a component that mounts via a `pointerdown` event, the event
284
- * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid
285
- * this by delaying the event listener registration on the document.
286
- * This is not React specific, but rather how the DOM works, ie:
287
- * ```
288
- * button.addEventListener('pointerdown', () => {
289
- * console.log('I will log');
290
- * document.addEventListener('pointerdown', () => {
291
- * console.log('I will also log');
292
- * })
293
- * });
294
- */ const timerId = window.setTimeout(()=>{
295
- ownerDocument.addEventListener('pointerdown', handlePointerDown);
296
- }, 0);
297
- return ()=>{
298
- window.clearTimeout(timerId);
299
- ownerDocument.removeEventListener('pointerdown', handlePointerDown);
300
- ownerDocument.removeEventListener('click', handleClickRef.current);
301
- };
302
- }, [
303
- ownerDocument,
304
- handlePointerDownOutside
305
- ]);
306
- return {
307
- // ensures we check React component tree (not just DOM tree)
308
- onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true
309
- };
310
- }
311
- /**
312
- * Listens for when focus happens outside a react subtree.
313
- * Returns props to pass to the root (node) of the subtree we want to check.
314
- */ function $5cb92bef7577960e$var$useFocusOutside(onFocusOutside, ownerDocument = globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) {
315
- const handleFocusOutside = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onFocusOutside);
316
- const isFocusInsideReactTreeRef = useRef(false);
317
- useEffect(()=>{
318
- const handleFocus = (event)=>{
319
- if (event.target && !isFocusInsideReactTreeRef.current) {
320
- const eventDetail = {
321
- originalEvent: event
322
- };
323
- $5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
324
- discrete: false
325
- });
326
- }
327
- };
328
- ownerDocument.addEventListener('focusin', handleFocus);
329
- return ()=>ownerDocument.removeEventListener('focusin', handleFocus)
330
- ;
331
- }, [
332
- ownerDocument,
333
- handleFocusOutside
334
- ]);
335
- return {
336
- onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true
337
- ,
338
- onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false
339
- };
340
- }
341
- function $5cb92bef7577960e$var$dispatchUpdate() {
342
- const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);
343
- document.dispatchEvent(event);
344
- }
345
- function $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete: discrete }) {
346
- const target = detail.originalEvent.target;
347
- const event = new CustomEvent(name, {
348
- bubbles: false,
349
- cancelable: true,
350
- detail: detail
351
- });
352
- if (handler) target.addEventListener(name, handler, {
353
- once: true
354
- });
355
- if (discrete) $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event);
356
- else target.dispatchEvent(event);
357
- }
358
-
359
- /** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;
360
- /**
361
- * Injects a pair of focus guards at the edges of the whole DOM tree
362
- * to ensure `focusin` & `focusout` events can be caught consistently.
363
- */ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {
364
- useEffect(()=>{
365
- var _edgeGuards$, _edgeGuards$2;
366
- const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');
367
- document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());
368
- document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());
369
- $3db38b7d1fb3fe6a$var$count++;
370
- return ()=>{
371
- if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()
372
- );
373
- $3db38b7d1fb3fe6a$var$count--;
374
- };
375
- }, []);
376
- }
377
- function $3db38b7d1fb3fe6a$var$createFocusGuard() {
378
- const element = document.createElement('span');
379
- element.setAttribute('data-radix-focus-guard', '');
380
- element.tabIndex = 0;
381
- element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';
382
- return element;
383
- }
384
-
385
- const $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';
386
- const $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';
387
- const $d3863c46a17e8a28$var$EVENT_OPTIONS = {
388
- bubbles: false,
389
- cancelable: true
390
- };
391
- const $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
392
- const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;
393
- const [container1, setContainer] = useState(null);
394
- const onMountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onMountAutoFocusProp);
395
- const onUnmountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onUnmountAutoFocusProp);
396
- const lastFocusedElementRef = useRef(null);
397
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setContainer(node)
398
- );
399
- const focusScope = useRef({
400
- paused: false,
401
- pause () {
402
- this.paused = true;
403
- },
404
- resume () {
405
- this.paused = false;
406
- }
407
- }).current; // Takes care of trapping focus if focus is moved outside programmatically for example
408
- useEffect(()=>{
409
- if (trapped) {
410
- function handleFocusIn(event) {
411
- if (focusScope.paused || !container1) return;
412
- const target = event.target;
413
- if (container1.contains(target)) lastFocusedElementRef.current = target;
414
- else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {
415
- select: true
416
- });
417
- }
418
- function handleFocusOut(event) {
419
- if (focusScope.paused || !container1) return;
420
- if (!container1.contains(event.relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {
421
- select: true
422
- });
423
- }
424
- document.addEventListener('focusin', handleFocusIn);
425
- document.addEventListener('focusout', handleFocusOut);
426
- return ()=>{
427
- document.removeEventListener('focusin', handleFocusIn);
428
- document.removeEventListener('focusout', handleFocusOut);
429
- };
430
- }
431
- }, [
432
- trapped,
433
- container1,
434
- focusScope.paused
435
- ]);
436
- useEffect(()=>{
437
- if (container1) {
438
- $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);
439
- const previouslyFocusedElement = document.activeElement;
440
- const hasFocusedCandidate = container1.contains(previouslyFocusedElement);
441
- if (!hasFocusedCandidate) {
442
- const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);
443
- container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
444
- container1.dispatchEvent(mountEvent);
445
- if (!mountEvent.defaultPrevented) {
446
- $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {
447
- select: true
448
- });
449
- if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);
450
- }
451
- }
452
- return ()=>{
453
- container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.
454
- // We need to delay the focus a little to get around it for now.
455
- // See: https://github.com/facebook/react/issues/17894
456
- setTimeout(()=>{
457
- const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);
458
- container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
459
- container1.dispatchEvent(unmountEvent);
460
- if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {
461
- select: true
462
- });
463
- // we need to remove the listener after we `dispatchEvent`
464
- container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
465
- $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);
466
- }, 0);
467
- };
468
- }
469
- }, [
470
- container1,
471
- onMountAutoFocus,
472
- onUnmountAutoFocus,
473
- focusScope
474
- ]); // Takes care of looping focus (when tabbing whilst at the edges)
475
- const handleKeyDown = useCallback((event)=>{
476
- if (!loop && !trapped) return;
477
- if (focusScope.paused) return;
478
- const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;
479
- const focusedElement = document.activeElement;
480
- if (isTabKey && focusedElement) {
481
- const container = event.currentTarget;
482
- const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);
483
- const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges
484
- if (!hasTabbableElementsInside) {
485
- if (focusedElement === container) event.preventDefault();
486
- } else {
487
- if (!event.shiftKey && focusedElement === last) {
488
- event.preventDefault();
489
- if (loop) $d3863c46a17e8a28$var$focus(first, {
490
- select: true
491
- });
492
- } else if (event.shiftKey && focusedElement === first) {
493
- event.preventDefault();
494
- if (loop) $d3863c46a17e8a28$var$focus(last, {
495
- select: true
496
- });
497
- }
498
- }
499
- }
500
- }, [
501
- loop,
502
- trapped,
503
- focusScope.paused
504
- ]);
505
- return /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends({
506
- tabIndex: -1
507
- }, scopeProps, {
508
- ref: composedRefs,
509
- onKeyDown: handleKeyDown
510
- }));
511
- });
512
- /* -------------------------------------------------------------------------------------------------
513
- * Utils
514
- * -----------------------------------------------------------------------------------------------*/ /**
515
- * Attempts focusing the first element in a list of candidates.
516
- * Stops when focus has actually moved.
517
- */ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {
518
- const previouslyFocusedElement = document.activeElement;
519
- for (const candidate of candidates){
520
- $d3863c46a17e8a28$var$focus(candidate, {
521
- select: select
522
- });
523
- if (document.activeElement !== previouslyFocusedElement) return;
524
- }
525
- }
526
- /**
527
- * Returns the first and last tabbable elements inside a container.
528
- */ function $d3863c46a17e8a28$var$getTabbableEdges(container) {
529
- const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);
530
- const first = $d3863c46a17e8a28$var$findVisible(candidates, container);
531
- const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);
532
- return [
533
- first,
534
- last
535
- ];
536
- }
537
- /**
538
- * Returns a list of potential tabbable candidates.
539
- *
540
- * NOTE: This is only a close approximation. For example it doesn't take into account cases like when
541
- * elements are not visible. This cannot be worked out easily by just reading a property, but rather
542
- * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.
543
- *
544
- * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
545
- * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
546
- */ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {
547
- const nodes = [];
548
- const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
549
- acceptNode: (node)=>{
550
- const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';
551
- if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the
552
- // runtime's understanding of tabbability, so this automatically accounts
553
- // for any kind of element that could be tabbed to.
554
- return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
555
- }
556
- });
557
- while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it
558
- // hinders accessibility to have tab order different from visual order.
559
- return nodes;
560
- }
561
- /**
562
- * Returns the first visible element in a list.
563
- * NOTE: Only checks visibility up to the `container`.
564
- */ function $d3863c46a17e8a28$var$findVisible(elements, container) {
565
- for (const element of elements){
566
- // we stop checking if it's hidden at the `container` level (excluding)
567
- if (!$d3863c46a17e8a28$var$isHidden(element, {
568
- upTo: container
569
- })) return element;
570
- }
571
- }
572
- function $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {
573
- if (getComputedStyle(node).visibility === 'hidden') return true;
574
- while(node){
575
- // we stop at `upTo` (excluding it)
576
- if (upTo !== undefined && node === upTo) return false;
577
- if (getComputedStyle(node).display === 'none') return true;
578
- node = node.parentElement;
579
- }
580
- return false;
581
- }
582
- function $d3863c46a17e8a28$var$isSelectableInput(element) {
583
- return element instanceof HTMLInputElement && 'select' in element;
584
- }
585
- function $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {
586
- // only focus if that element is focusable
587
- if (element && element.focus) {
588
- const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users
589
- element.focus({
590
- preventScroll: true
591
- }); // only select if its not the same element, it supports selection and we need to select
592
- if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();
593
- }
594
- }
595
- /* -------------------------------------------------------------------------------------------------
596
- * FocusScope stack
597
- * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();
598
- function $d3863c46a17e8a28$var$createFocusScopesStack() {
599
- /** A stack of focus scopes, with the active one at the top */ let stack = [];
600
- return {
601
- add (focusScope) {
602
- // pause the currently active focus scope (at the top of the stack)
603
- const activeFocusScope = stack[0];
604
- if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();
605
- // remove in case it already exists (because we'll re-add it at the top of the stack)
606
- stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);
607
- stack.unshift(focusScope);
608
- },
609
- remove (focusScope) {
610
- var _stack$;
611
- stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);
612
- (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();
613
- }
614
- };
615
- }
616
- function $d3863c46a17e8a28$var$arrayRemove(array, item) {
617
- const updatedArray = [
618
- ...array
619
- ];
620
- const index = updatedArray.indexOf(item);
621
- if (index !== -1) updatedArray.splice(index, 1);
622
- return updatedArray;
623
- }
624
- function $d3863c46a17e8a28$var$removeLinks(items) {
625
- return items.filter((item)=>item.tagName !== 'A'
626
- );
627
- }
628
-
629
- const $1746a345f3d73bb7$var$useReactId = React['useId'.toString()] || (()=>undefined
630
- );
631
- let $1746a345f3d73bb7$var$count = 0;
632
- function $1746a345f3d73bb7$export$f680877a34711e37(deterministicId) {
633
- const [id, setId] = React.useState($1746a345f3d73bb7$var$useReactId()); // React versions older than 18 will have client-side ids only.
634
- $9f79659886946c16$export$e5c5a5f917a5871c(()=>{
635
- if (!deterministicId) setId((reactId)=>reactId !== null && reactId !== void 0 ? reactId : String($1746a345f3d73bb7$var$count++)
636
- );
637
- }, [
638
- deterministicId
639
- ]);
640
- return deterministicId || (id ? `radix-${id}` : '');
641
- }
642
-
643
- const $f1701beae083dbae$export$602eac185826482c = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
644
- var _globalThis$document;
645
- const { container: container = globalThis === null || globalThis === void 0 ? void 0 : (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body , ...portalProps } = props;
646
- return container ? /*#__PURE__*/ $7SXl2$reactdom.createPortal(/*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends({}, portalProps, {
647
- ref: forwardedRef
648
- })), container) : null;
649
- });
650
-
651
- const $ea1ef594cf570d83$export$439d29a4e110a164 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
652
- return /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.span, _extends({}, props, {
653
- ref: forwardedRef,
654
- style: {
655
- // See: https://github.com/twbs/bootstrap/blob/master/scss/mixins/_screen-reader.scss
656
- position: 'absolute',
657
- border: 0,
658
- width: 1,
659
- height: 1,
660
- padding: 0,
661
- margin: -1,
662
- overflow: 'hidden',
663
- clip: 'rect(0, 0, 0, 0)',
664
- whiteSpace: 'nowrap',
665
- wordWrap: 'normal',
666
- ...props.style
667
- }
668
- }));
669
- });
670
-
671
27
  const $cc7e05a45900e73f$var$OPEN_KEYS = [
672
28
  ' ',
673
29
  'Enter',
@@ -683,12 +39,15 @@ const $cc7e05a45900e73f$var$SELECTION_KEYS = [
683
39
  * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SELECT_NAME = 'Select';
684
40
  const [$cc7e05a45900e73f$var$Collection, $cc7e05a45900e73f$var$useCollection, $cc7e05a45900e73f$var$createCollectionScope] = $e02a7d9cb1dc128c$export$c74125a8e3af6bb2($cc7e05a45900e73f$var$SELECT_NAME);
685
41
  const [$cc7e05a45900e73f$var$createSelectContext, $cc7e05a45900e73f$export$286727a75dc039bd] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($cc7e05a45900e73f$var$SELECT_NAME, [
686
- $cc7e05a45900e73f$var$createCollectionScope
42
+ $cc7e05a45900e73f$var$createCollectionScope,
43
+ $cf1ac5d9fe0e8206$export$722aac194ae923
687
44
  ]);
45
+ const $cc7e05a45900e73f$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();
688
46
  const [$cc7e05a45900e73f$var$SelectProvider, $cc7e05a45900e73f$var$useSelectContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);
689
47
  const [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);
690
48
  const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
691
49
  const { __scopeSelect: __scopeSelect , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , value: valueProp , defaultValue: defaultValue , onValueChange: onValueChange , dir: dir , name: name , autoComplete: autoComplete , disabled: disabled , required: required } = props;
50
+ const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);
692
51
  const [trigger, setTrigger] = useState(null);
693
52
  const [valueNode, setValueNode] = useState(null);
694
53
  const [valueNodeHasChildren, setValueNodeHasChildren] = useState(false);
@@ -712,7 +71,7 @@ const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
712
71
  // each time the options change.
713
72
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value
714
73
  ).join(';');
715
- return /*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectProvider, {
74
+ return /*#__PURE__*/ createElement($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, /*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectProvider, {
716
75
  required: required,
717
76
  scope: __scopeSelect,
718
77
  trigger: trigger,
@@ -758,13 +117,14 @@ const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
758
117
  disabled: disabled
759
118
  }, value === undefined ? /*#__PURE__*/ createElement("option", {
760
119
  value: ""
761
- }) : null, Array.from(nativeOptionsSet)) : null);
120
+ }) : null, Array.from(nativeOptionsSet)) : null));
762
121
  };
763
122
  /* -------------------------------------------------------------------------------------------------
764
123
  * SelectTrigger
765
124
  * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$TRIGGER_NAME = 'SelectTrigger';
766
125
  const $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
767
126
  const { __scopeSelect: __scopeSelect , disabled: disabled = false , ...triggerProps } = props;
127
+ const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);
768
128
  const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$TRIGGER_NAME, __scopeSelect);
769
129
  const isDisabled = context.disabled || disabled;
770
130
  const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.onTriggerChange);
@@ -783,7 +143,9 @@ const $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = /*#__PURE__*/ forwardRef((props
783
143
  resetTypeahead();
784
144
  }
785
145
  };
786
- return /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends({
146
+ return /*#__PURE__*/ createElement($cf1ac5d9fe0e8206$export$b688253958b8dfe7, _extends({
147
+ asChild: true
148
+ }, popperScope), /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.button, _extends({
787
149
  type: "button",
788
150
  role: "combobox",
789
151
  "aria-controls": context.contentId,
@@ -794,7 +156,7 @@ const $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = /*#__PURE__*/ forwardRef((props
794
156
  "data-state": context.open ? 'open' : 'closed',
795
157
  disabled: isDisabled,
796
158
  "data-disabled": isDisabled ? '' : undefined,
797
- "data-placeholder": context.value === undefined ? '' : undefined
159
+ "data-placeholder": $cc7e05a45900e73f$var$shouldShowPlaceholder(context.value) ? '' : undefined
798
160
  }, triggerProps, {
799
161
  ref: composedRefs // Enable compatibility with native label or custom `Label` "click" for Safari:
800
162
  ,
@@ -832,14 +194,14 @@ const $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = /*#__PURE__*/ forwardRef((props
832
194
  event.preventDefault();
833
195
  }
834
196
  })
835
- }));
197
+ })));
836
198
  });
837
199
  /* -------------------------------------------------------------------------------------------------
838
200
  * SelectValue
839
201
  * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$VALUE_NAME = 'SelectValue';
840
202
  const $cc7e05a45900e73f$export$e288731fd71264f0 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
841
203
  // We ignore `className` and `style` as this part shouldn't be styled.
842
- const { __scopeSelect: __scopeSelect , className: className , style: style , children: children , placeholder: placeholder , ...valueProps } = props;
204
+ const { __scopeSelect: __scopeSelect , className: className , style: style , children: children , placeholder: placeholder = '' , ...valueProps } = props;
843
205
  const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$VALUE_NAME, __scopeSelect);
844
206
  const { onValueNodeHasChildrenChange: onValueNodeHasChildrenChange } = context;
845
207
  const hasChildren = children !== undefined;
@@ -856,7 +218,7 @@ const $cc7e05a45900e73f$export$e288731fd71264f0 = /*#__PURE__*/ forwardRef((prop
856
218
  style: {
857
219
  pointerEvents: 'none'
858
220
  }
859
- }), context.value === undefined && placeholder !== undefined ? placeholder : children);
221
+ }), $cc7e05a45900e73f$var$shouldShowPlaceholder(context.value) ? /*#__PURE__*/ createElement(Fragment, null, placeholder) : children);
860
222
  });
861
223
  const $cc7e05a45900e73f$export$99b400cabb58c515 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
862
224
  const { __scopeSelect: __scopeSelect , children: children , ...iconProps } = props;
@@ -880,20 +242,28 @@ const $cc7e05a45900e73f$export$c973a4b3cb86a03d = /*#__PURE__*/ forwardRef((prop
880
242
  $9f79659886946c16$export$e5c5a5f917a5871c(()=>{
881
243
  setFragment(new DocumentFragment());
882
244
  }, []);
883
- return /*#__PURE__*/ createElement(Fragment, null, context.open ? /*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectContentImpl, _extends({}, props, {
245
+ if (!context.open) {
246
+ const frag = fragment;
247
+ return frag ? /*#__PURE__*/ createPortal(/*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectContentProvider, {
248
+ scope: props.__scopeSelect
249
+ }, /*#__PURE__*/ createElement($cc7e05a45900e73f$var$Collection.Slot, {
250
+ scope: props.__scopeSelect
251
+ }, /*#__PURE__*/ createElement("div", null, props.children))), frag) : null;
252
+ }
253
+ return /*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectContentImpl, _extends({}, props, {
884
254
  ref: forwardedRef
885
- })) : fragment ? /*#__PURE__*/ createPortal(/*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectContentProvider, {
886
- scope: props.__scopeSelect
887
- }, /*#__PURE__*/ createElement($cc7e05a45900e73f$var$Collection.Slot, {
888
- scope: props.__scopeSelect
889
- }, /*#__PURE__*/ createElement("div", null, props.children))), fragment) : null);
255
+ }));
890
256
  });
891
- const $cc7e05a45900e73f$var$CONTENT_MARGIN = 10;
257
+ /* -------------------------------------------------------------------------------------------------
258
+ * SelectContentImpl
259
+ * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$CONTENT_MARGIN = 10;
892
260
  const [$cc7e05a45900e73f$var$SelectContentProvider, $cc7e05a45900e73f$var$useSelectContentContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME);
893
261
  const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
894
- const { __scopeSelect: __scopeSelect , onCloseAutoFocus: onCloseAutoFocus , ...contentProps } = props;
262
+ const { __scopeSelect: __scopeSelect , position: position = 'item-aligned' , onCloseAutoFocus: onCloseAutoFocus , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , side: //
263
+ // PopperContent props
264
+ side , sideOffset: sideOffset , align: align , alignOffset: alignOffset , arrowPadding: arrowPadding , collisionBoundary: collisionBoundary , collisionPadding: collisionPadding , sticky: sticky , hideWhenDetached: hideWhenDetached , avoidCollisions: avoidCollisions , //
265
+ ...contentProps } = props;
895
266
  const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);
896
- const [contentWrapper, setContentWrapper] = useState(null);
897
267
  const [content, setContent] = useState(null);
898
268
  const [viewport, setViewport] = useState(null);
899
269
  const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setContent(node)
@@ -902,8 +272,6 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
902
272
  const [selectedItemText, setSelectedItemText] = useState(null);
903
273
  const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);
904
274
  const [isPositioned, setIsPositioned] = useState(false);
905
- const shouldRepositionRef = useRef(true);
906
- const shouldExpandOnScrollRef = useRef(false);
907
275
  const firstValidItemFoundRef = useRef(false); // aria-hide everything except the content (better supported equivalent to setting aria-modal)
908
276
  useEffect(()=>{
909
277
  if (content) return hideOthers(content);
@@ -912,12 +280,6 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
912
280
  ]); // Make sure the whole tree has focus guards as our `Select` may be
913
281
  // the last element in the DOM (because of the `Portal`)
914
282
  $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();
915
- const [contentZIndex, setContentZIndex] = useState();
916
- $9f79659886946c16$export$e5c5a5f917a5871c(()=>{
917
- if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
918
- }, [
919
- content
920
- ]);
921
283
  const focusFirst = useCallback((candidates)=>{
922
284
  const [firstItem, ...restItems] = getItems().map((item)=>item.ref.current
923
285
  );
@@ -938,101 +300,6 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
938
300
  getItems,
939
301
  viewport
940
302
  ]);
941
- const position = useCallback(()=>{
942
- if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
943
- const triggerRect = context.trigger.getBoundingClientRect(); // -----------------------------------------------------------------------------------------
944
- // Horizontal positioning
945
- // -----------------------------------------------------------------------------------------
946
- const contentRect = content.getBoundingClientRect();
947
- const valueNodeRect = context.valueNode.getBoundingClientRect();
948
- const itemTextRect = selectedItemText.getBoundingClientRect();
949
- if (context.dir !== 'rtl') {
950
- const itemTextOffset = itemTextRect.left - contentRect.left;
951
- const left = valueNodeRect.left - itemTextOffset;
952
- const leftDelta = triggerRect.left - left;
953
- const minContentWidth = triggerRect.width + leftDelta;
954
- const contentWidth = Math.max(minContentWidth, contentRect.width);
955
- const rightEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;
956
- const clampedLeft = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(left, [
957
- $cc7e05a45900e73f$var$CONTENT_MARGIN,
958
- rightEdge - contentWidth
959
- ]);
960
- contentWrapper.style.minWidth = minContentWidth + 'px';
961
- contentWrapper.style.left = clampedLeft + 'px';
962
- } else {
963
- const itemTextOffset = contentRect.right - itemTextRect.right;
964
- const right = window.innerWidth - valueNodeRect.right - itemTextOffset;
965
- const rightDelta = window.innerWidth - triggerRect.right - right;
966
- const minContentWidth = triggerRect.width + rightDelta;
967
- const contentWidth = Math.max(minContentWidth, contentRect.width);
968
- const leftEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;
969
- const clampedRight = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(right, [
970
- $cc7e05a45900e73f$var$CONTENT_MARGIN,
971
- leftEdge - contentWidth
972
- ]);
973
- contentWrapper.style.minWidth = minContentWidth + 'px';
974
- contentWrapper.style.right = clampedRight + 'px';
975
- } // -----------------------------------------------------------------------------------------
976
- // Vertical positioning
977
- // -----------------------------------------------------------------------------------------
978
- const items = getItems();
979
- const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;
980
- const itemsHeight = viewport.scrollHeight;
981
- const contentStyles = window.getComputedStyle(content);
982
- const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);
983
- const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);
984
- const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);
985
- const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);
986
- const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth; // prettier-ignore
987
- const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);
988
- const viewportStyles = window.getComputedStyle(viewport);
989
- const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);
990
- const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);
991
- const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - $cc7e05a45900e73f$var$CONTENT_MARGIN;
992
- const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
993
- const selectedItemHalfHeight = selectedItem.offsetHeight / 2;
994
- const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;
995
- const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
996
- const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
997
- const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;
998
- if (willAlignWithoutTopOverflow) {
999
- const isLastItem = selectedItem === items[items.length - 1].ref.current;
1000
- contentWrapper.style.bottom = "0px";
1001
- const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;
1002
- const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);
1003
- const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;
1004
- contentWrapper.style.height = height + 'px';
1005
- } else {
1006
- const isFirstItem = selectedItem === items[0].ref.current;
1007
- contentWrapper.style.top = "0px";
1008
- const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);
1009
- const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;
1010
- contentWrapper.style.height = height + 'px';
1011
- viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;
1012
- }
1013
- contentWrapper.style.margin = `${$cc7e05a45900e73f$var$CONTENT_MARGIN}px 0`;
1014
- contentWrapper.style.minHeight = minContentHeight + 'px';
1015
- contentWrapper.style.maxHeight = availableHeight + 'px'; // -----------------------------------------------------------------------------------------
1016
- setIsPositioned(true); // we don't want the initial scroll position adjustment to trigger "expand on scroll"
1017
- // so we explicitly turn it on only after they've registered.
1018
- requestAnimationFrame(()=>shouldExpandOnScrollRef.current = true
1019
- );
1020
- }
1021
- }, [
1022
- getItems,
1023
- context.trigger,
1024
- context.valueNode,
1025
- contentWrapper,
1026
- content,
1027
- viewport,
1028
- selectedItem,
1029
- selectedItemText,
1030
- context.dir
1031
- ]);
1032
- $9f79659886946c16$export$e5c5a5f917a5871c(()=>position()
1033
- , [
1034
- position
1035
- ]);
1036
303
  const focusSelectedItem = useCallback(()=>focusFirst([
1037
304
  selectedItem,
1038
305
  content
@@ -1048,19 +315,6 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
1048
315
  }, [
1049
316
  isPositioned,
1050
317
  focusSelectedItem
1051
- ]); // When the viewport becomes scrollable at the top, the scroll up button will mount.
1052
- // Because it is part of the normal flow, it will push down the viewport, thus throwing our
1053
- // trigger => selectedItem alignment off by the amount the viewport was pushed down.
1054
- // We wait for this to happen and then re-run the positining logic one more time to account for it.
1055
- const handleScrollButtonChange = useCallback((node)=>{
1056
- if (node && shouldRepositionRef.current === true) {
1057
- position();
1058
- focusSelectedItem();
1059
- shouldRepositionRef.current = false;
1060
- }
1061
- }, [
1062
- position,
1063
- focusSelectedItem
1064
318
  ]); // prevent selecting items on `pointerup` in some cases after opening from `pointerdown`
1065
319
  // and close on `pointerup` outside.
1066
320
  const { onOpenChange: onOpenChange , triggerPointerDownPosRef: triggerPointerDownPosRef } = context;
@@ -1149,9 +403,21 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
1149
403
  }, [
1150
404
  context.value
1151
405
  ]);
406
+ const SelectPosition = position === 'popper' ? $cc7e05a45900e73f$var$SelectPopperPosition : $cc7e05a45900e73f$var$SelectItemAlignedPosition; // Silently ignore props that are not supported by `SelectItemAlignedPosition`
407
+ const popperContentProps = SelectPosition === $cc7e05a45900e73f$var$SelectPopperPosition ? {
408
+ side: side,
409
+ sideOffset: sideOffset,
410
+ align: align,
411
+ alignOffset: alignOffset,
412
+ arrowPadding: arrowPadding,
413
+ collisionBoundary: collisionBoundary,
414
+ collisionPadding: collisionPadding,
415
+ sticky: sticky,
416
+ hideWhenDetached: hideWhenDetached,
417
+ avoidCollisions: avoidCollisions
418
+ } : {};
1152
419
  return /*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectContentProvider, {
1153
420
  scope: __scopeSelect,
1154
- contentWrapper: contentWrapper,
1155
421
  content: content,
1156
422
  viewport: viewport,
1157
423
  onViewportChange: setViewport,
@@ -1159,22 +425,14 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
1159
425
  selectedItem: selectedItem,
1160
426
  onItemLeave: handleItemLeave,
1161
427
  itemTextRefCallback: itemTextRefCallback,
428
+ focusSelectedItem: focusSelectedItem,
1162
429
  selectedItemText: selectedItemText,
1163
- onScrollButtonChange: handleScrollButtonChange,
430
+ position: position,
1164
431
  isPositioned: isPositioned,
1165
- shouldExpandOnScrollRef: shouldExpandOnScrollRef,
1166
432
  searchRef: searchRef
1167
433
  }, /*#__PURE__*/ createElement($01b9c$RemoveScroll, {
1168
434
  as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,
1169
435
  allowPinchZoom: true
1170
- }, /*#__PURE__*/ createElement("div", {
1171
- ref: setContentWrapper,
1172
- style: {
1173
- display: 'flex',
1174
- flexDirection: 'column',
1175
- position: 'fixed',
1176
- zIndex: contentZIndex
1177
- }
1178
436
  }, /*#__PURE__*/ createElement($d3863c46a17e8a28$export$20e40289641fbbb6, {
1179
437
  asChild: true // we make sure we're not trapping once it's been closed
1180
438
  ,
@@ -1190,30 +448,33 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
1190
448
  });
1191
449
  event.preventDefault();
1192
450
  })
1193
- }, /*#__PURE__*/ createElement($5cb92bef7577960e$export$177fb62ff3ec1f22, _extends({
451
+ }, /*#__PURE__*/ createElement($5cb92bef7577960e$export$177fb62ff3ec1f22, {
452
+ asChild: true,
453
+ disableOutsidePointerEvents: true,
454
+ onEscapeKeyDown: onEscapeKeyDown,
455
+ onPointerDownOutside: onPointerDownOutside // When focus is trapped, a focusout event may still happen.
456
+ ,
457
+ onFocusOutside: (event)=>event.preventDefault()
458
+ ,
459
+ onDismiss: ()=>context.onOpenChange(false)
460
+ }, /*#__PURE__*/ createElement(SelectPosition, _extends({
1194
461
  role: "listbox",
1195
462
  id: context.contentId,
1196
463
  "data-state": context.open ? 'open' : 'closed',
1197
464
  dir: context.dir,
1198
465
  onContextMenu: (event)=>event.preventDefault()
1199
- }, contentProps, {
466
+ }, contentProps, popperContentProps, {
467
+ onPlaced: ()=>setIsPositioned(true)
468
+ ,
1200
469
  ref: composedRefs,
1201
470
  style: {
471
+ // flex layout so we can place the scroll buttons properly
1202
472
  display: 'flex',
1203
473
  flexDirection: 'column',
1204
- // When we get the height of the content, it includes borders. If we were to set
1205
- // the height without having `boxSizing: 'border-box'` it would be too big.
1206
- boxSizing: 'border-box',
1207
- maxHeight: '100%',
474
+ // reset the outline by default as the content MAY get focused
1208
475
  outline: 'none',
1209
476
  ...contentProps.style
1210
477
  },
1211
- disableOutsidePointerEvents: true // When focus is trapped, a focusout event may still happen.
1212
- ,
1213
- onFocusOutside: (event)=>event.preventDefault()
1214
- ,
1215
- onDismiss: ()=>context.onOpenChange(false)
1216
- ,
1217
478
  onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(contentProps.onKeyDown, (event)=>{
1218
479
  const isModifierKey = event.ctrlKey || event.altKey || event.metaKey; // select should not be navigated using tab key so we prevent it
1219
480
  if (event.key === 'Tab') event.preventDefault();
@@ -1250,12 +511,185 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ forwardRef((props,
1250
511
  })
1251
512
  }))))));
1252
513
  });
514
+ const $cc7e05a45900e73f$var$SelectItemAlignedPosition = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
515
+ const { __scopeSelect: __scopeSelect , onPlaced: onPlaced , ...popperProps } = props;
516
+ const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);
517
+ const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);
518
+ const [contentWrapper, setContentWrapper] = useState(null);
519
+ const [content, setContent] = useState(null);
520
+ const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setContent(node)
521
+ );
522
+ const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);
523
+ const shouldExpandOnScrollRef = useRef(false);
524
+ const shouldRepositionRef = useRef(true);
525
+ const { viewport: viewport , selectedItem: selectedItem , selectedItemText: selectedItemText , focusSelectedItem: focusSelectedItem } = contentContext;
526
+ const position = useCallback(()=>{
527
+ if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
528
+ const triggerRect = context.trigger.getBoundingClientRect(); // -----------------------------------------------------------------------------------------
529
+ // Horizontal positioning
530
+ // -----------------------------------------------------------------------------------------
531
+ const contentRect = content.getBoundingClientRect();
532
+ const valueNodeRect = context.valueNode.getBoundingClientRect();
533
+ const itemTextRect = selectedItemText.getBoundingClientRect();
534
+ if (context.dir !== 'rtl') {
535
+ const itemTextOffset = itemTextRect.left - contentRect.left;
536
+ const left = valueNodeRect.left - itemTextOffset;
537
+ const leftDelta = triggerRect.left - left;
538
+ const minContentWidth = triggerRect.width + leftDelta;
539
+ const contentWidth = Math.max(minContentWidth, contentRect.width);
540
+ const rightEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;
541
+ const clampedLeft = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(left, [
542
+ $cc7e05a45900e73f$var$CONTENT_MARGIN,
543
+ rightEdge - contentWidth
544
+ ]);
545
+ contentWrapper.style.minWidth = minContentWidth + 'px';
546
+ contentWrapper.style.left = clampedLeft + 'px';
547
+ } else {
548
+ const itemTextOffset = contentRect.right - itemTextRect.right;
549
+ const right = window.innerWidth - valueNodeRect.right - itemTextOffset;
550
+ const rightDelta = window.innerWidth - triggerRect.right - right;
551
+ const minContentWidth = triggerRect.width + rightDelta;
552
+ const contentWidth = Math.max(minContentWidth, contentRect.width);
553
+ const leftEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;
554
+ const clampedRight = $ae6933e535247d3d$export$7d15b64cf5a3a4c4(right, [
555
+ $cc7e05a45900e73f$var$CONTENT_MARGIN,
556
+ leftEdge - contentWidth
557
+ ]);
558
+ contentWrapper.style.minWidth = minContentWidth + 'px';
559
+ contentWrapper.style.right = clampedRight + 'px';
560
+ } // -----------------------------------------------------------------------------------------
561
+ // Vertical positioning
562
+ // -----------------------------------------------------------------------------------------
563
+ const items = getItems();
564
+ const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;
565
+ const itemsHeight = viewport.scrollHeight;
566
+ const contentStyles = window.getComputedStyle(content);
567
+ const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);
568
+ const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);
569
+ const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);
570
+ const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);
571
+ const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth; // prettier-ignore
572
+ const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);
573
+ const viewportStyles = window.getComputedStyle(viewport);
574
+ const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);
575
+ const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);
576
+ const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - $cc7e05a45900e73f$var$CONTENT_MARGIN;
577
+ const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
578
+ const selectedItemHalfHeight = selectedItem.offsetHeight / 2;
579
+ const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;
580
+ const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
581
+ const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
582
+ const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;
583
+ if (willAlignWithoutTopOverflow) {
584
+ const isLastItem = selectedItem === items[items.length - 1].ref.current;
585
+ contentWrapper.style.bottom = "0px";
586
+ const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;
587
+ const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);
588
+ const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;
589
+ contentWrapper.style.height = height + 'px';
590
+ } else {
591
+ const isFirstItem = selectedItem === items[0].ref.current;
592
+ contentWrapper.style.top = "0px";
593
+ const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);
594
+ const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;
595
+ contentWrapper.style.height = height + 'px';
596
+ viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;
597
+ }
598
+ contentWrapper.style.margin = `${$cc7e05a45900e73f$var$CONTENT_MARGIN}px 0`;
599
+ contentWrapper.style.minHeight = minContentHeight + 'px';
600
+ contentWrapper.style.maxHeight = availableHeight + 'px'; // -----------------------------------------------------------------------------------------
601
+ onPlaced === null || onPlaced === void 0 || onPlaced(); // we don't want the initial scroll position adjustment to trigger "expand on scroll"
602
+ // so we explicitly turn it on only after they've registered.
603
+ requestAnimationFrame(()=>shouldExpandOnScrollRef.current = true
604
+ );
605
+ }
606
+ }, [
607
+ getItems,
608
+ context.trigger,
609
+ context.valueNode,
610
+ contentWrapper,
611
+ content,
612
+ viewport,
613
+ selectedItem,
614
+ selectedItemText,
615
+ context.dir,
616
+ onPlaced
617
+ ]);
618
+ $9f79659886946c16$export$e5c5a5f917a5871c(()=>position()
619
+ , [
620
+ position
621
+ ]); // copy z-index from content to wrapper
622
+ const [contentZIndex, setContentZIndex] = useState();
623
+ $9f79659886946c16$export$e5c5a5f917a5871c(()=>{
624
+ if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
625
+ }, [
626
+ content
627
+ ]); // When the viewport becomes scrollable at the top, the scroll up button will mount.
628
+ // Because it is part of the normal flow, it will push down the viewport, thus throwing our
629
+ // trigger => selectedItem alignment off by the amount the viewport was pushed down.
630
+ // We wait for this to happen and then re-run the positining logic one more time to account for it.
631
+ const handleScrollButtonChange = useCallback((node)=>{
632
+ if (node && shouldRepositionRef.current === true) {
633
+ position();
634
+ focusSelectedItem === null || focusSelectedItem === void 0 || focusSelectedItem();
635
+ shouldRepositionRef.current = false;
636
+ }
637
+ }, [
638
+ position,
639
+ focusSelectedItem
640
+ ]);
641
+ return /*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectViewportProvider, {
642
+ scope: __scopeSelect,
643
+ contentWrapper: contentWrapper,
644
+ shouldExpandOnScrollRef: shouldExpandOnScrollRef,
645
+ onScrollButtonChange: handleScrollButtonChange
646
+ }, /*#__PURE__*/ createElement("div", {
647
+ ref: setContentWrapper,
648
+ style: {
649
+ display: 'flex',
650
+ flexDirection: 'column',
651
+ position: 'fixed',
652
+ zIndex: contentZIndex
653
+ }
654
+ }, /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends({}, popperProps, {
655
+ ref: composedRefs,
656
+ style: {
657
+ // When we get the height of the content, it includes borders. If we were to set
658
+ // the height without having `boxSizing: 'border-box'` it would be too big.
659
+ boxSizing: 'border-box',
660
+ // We need to ensure the content doesn't get taller than the wrapper
661
+ maxHeight: '100%',
662
+ ...popperProps.style
663
+ }
664
+ }))));
665
+ });
666
+ const $cc7e05a45900e73f$var$SelectPopperPosition = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
667
+ const { __scopeSelect: __scopeSelect , align: align = 'start' , collisionPadding: collisionPadding = $cc7e05a45900e73f$var$CONTENT_MARGIN , ...popperProps } = props;
668
+ const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);
669
+ return /*#__PURE__*/ createElement($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2, _extends({}, popperScope, popperProps, {
670
+ ref: forwardedRef,
671
+ align: align,
672
+ collisionPadding: collisionPadding,
673
+ style: {
674
+ // Ensure border-box for floating-ui calculations
675
+ boxSizing: 'border-box',
676
+ ...popperProps.style,
677
+ '--radix-select-content-transform-origin': 'var(--radix-popper-transform-origin)',
678
+ '--radix-select-content-available-width': 'var(--radix-popper-available-width)',
679
+ '--radix-select-content-available-height': 'var(--radix-popper-available-height)',
680
+ '--radix-select-trigger-width': 'var(--radix-popper-anchor-width)',
681
+ '--radix-select-trigger-height': 'var(--radix-popper-anchor-height)'
682
+ }
683
+ }));
684
+ });
1253
685
  /* -------------------------------------------------------------------------------------------------
1254
686
  * SelectViewport
1255
- * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$VIEWPORT_NAME = 'SelectViewport';
687
+ * -----------------------------------------------------------------------------------------------*/ const [$cc7e05a45900e73f$var$SelectViewportProvider, $cc7e05a45900e73f$var$useSelectViewportContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, {});
688
+ const $cc7e05a45900e73f$var$VIEWPORT_NAME = 'SelectViewport';
1256
689
  const $cc7e05a45900e73f$export$9ed6e7b40248d36d = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
1257
690
  const { __scopeSelect: __scopeSelect , ...viewportProps } = props;
1258
691
  const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);
692
+ const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);
1259
693
  const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onViewportChange);
1260
694
  const prevScrollTopRef = useRef(0);
1261
695
  return /*#__PURE__*/ createElement(Fragment, null, /*#__PURE__*/ createElement("style", {
@@ -1280,7 +714,7 @@ const $cc7e05a45900e73f$export$9ed6e7b40248d36d = /*#__PURE__*/ forwardRef((prop
1280
714
  },
1281
715
  onScroll: $e42e1063c40fb3ef$export$b9ecd428b558ff10(viewportProps.onScroll, (event)=>{
1282
716
  const viewport = event.currentTarget;
1283
- const { contentWrapper: contentWrapper , shouldExpandOnScrollRef: shouldExpandOnScrollRef } = contentContext;
717
+ const { contentWrapper: contentWrapper , shouldExpandOnScrollRef: shouldExpandOnScrollRef } = viewportContext;
1284
718
  if (shouldExpandOnScrollRef !== null && shouldExpandOnScrollRef !== void 0 && shouldExpandOnScrollRef.current && contentWrapper) {
1285
719
  const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);
1286
720
  if (scrolledBy > 0) {
@@ -1330,6 +764,7 @@ const $cc7e05a45900e73f$export$13ef48a934230896 = /*#__PURE__*/ forwardRef((prop
1330
764
  context.onOpenChange(false);
1331
765
  }
1332
766
  };
767
+ if (value === '') 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.');
1333
768
  return /*#__PURE__*/ createElement($cc7e05a45900e73f$var$SelectItemContextProvider, {
1334
769
  scope: __scopeSelect,
1335
770
  value: value,
@@ -1449,8 +884,9 @@ const $cc7e05a45900e73f$export$6b9198de19accfe6 = /*#__PURE__*/ forwardRef((prop
1449
884
  * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME = 'SelectScrollUpButton';
1450
885
  const $cc7e05a45900e73f$export$d8117927658af6d7 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
1451
886
  const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
887
+ const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
1452
888
  const [canScrollUp1, setCanScrollUp] = useState(false);
1453
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onScrollButtonChange);
889
+ const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, viewportContext.onScrollButtonChange);
1454
890
  $9f79659886946c16$export$e5c5a5f917a5871c(()=>{
1455
891
  if (contentContext.viewport && contentContext.isPositioned) {
1456
892
  const viewport = contentContext.viewport;
@@ -1480,8 +916,9 @@ const $cc7e05a45900e73f$export$d8117927658af6d7 = /*#__PURE__*/ forwardRef((prop
1480
916
  * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME = 'SelectScrollDownButton';
1481
917
  const $cc7e05a45900e73f$export$ff951e476c12189 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
1482
918
  const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
919
+ const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
1483
920
  const [canScrollDown1, setCanScrollDown] = useState(false);
1484
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentContext.onScrollButtonChange);
921
+ const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, viewportContext.onScrollButtonChange);
1485
922
  $9f79659886946c16$export$e5c5a5f917a5871c(()=>{
1486
923
  if (contentContext.viewport && contentContext.isPositioned) {
1487
924
  const viewport = contentContext.viewport;
@@ -1546,6 +983,9 @@ const $cc7e05a45900e73f$var$SelectScrollButtonImpl = /*#__PURE__*/ forwardRef((p
1546
983
  flexShrink: 0,
1547
984
  ...scrollIndicatorProps.style
1548
985
  },
986
+ onPointerDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerDown, ()=>{
987
+ if (autoScrollTimerRef.current === null) autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
988
+ }),
1549
989
  onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(scrollIndicatorProps.onPointerMove, ()=>{
1550
990
  var _contentContext$onIte3;
1551
991
  (_contentContext$onIte3 = contentContext.onItemLeave) === null || _contentContext$onIte3 === void 0 || _contentContext$onIte3.call(contentContext);
@@ -1556,7 +996,10 @@ const $cc7e05a45900e73f$var$SelectScrollButtonImpl = /*#__PURE__*/ forwardRef((p
1556
996
  })
1557
997
  }));
1558
998
  });
1559
- /* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$BubbleSelect = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
999
+ /* -----------------------------------------------------------------------------------------------*/ function $cc7e05a45900e73f$var$shouldShowPlaceholder(value) {
1000
+ return value === '' || value === undefined;
1001
+ }
1002
+ const $cc7e05a45900e73f$var$BubbleSelect = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
1560
1003
  const { value: value , ...selectProps } = props;
1561
1004
  const ref = useRef(null);
1562
1005
  const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);
@@ -1678,14 +1121,16 @@ const $cc7e05a45900e73f$export$bf1aedc3039c8d63 = $cc7e05a45900e73f$export$ff951
1678
1121
  /** Use `Select` to choose from a dropdown list of options. */
1679
1122
  var Select = function (_a) {
1680
1123
  var _b;
1681
- var isRequired = _a.isRequired, isDisabled = _a.isDisabled, placeholder = _a.placeholder, label = _a.label, _c = _a.ariaLabel, ariaLabel = _c === void 0 ? label : _c, options = _a.options, onOpenChange = _a.onOpenChange, isDefaultOpen = _a.isDefaultOpen, defaultValue = _a.defaultValue, errorMessage = _a.errorMessage, labelSize = _a.labelSize, helper = _a.helper, name = _a.name, isFluid = _a.isFluid, onBlur = _a.onBlur, onChange = _a.onChange, disclosureTitle = _a.disclosureTitle, disclosureText = _a.disclosureText, onClickDisclosure = _a.onClickDisclosure, _d = _a.selectSize, selectSize = _d === void 0 ? "m" : _d, props = __rest(_a, ["isRequired", "isDisabled", "placeholder", "label", "ariaLabel", "options", "onOpenChange", "isDefaultOpen", "defaultValue", "errorMessage", "labelSize", "helper", "name", "isFluid", "onBlur", "onChange", "disclosureTitle", "disclosureText", "onClickDisclosure", "selectSize"]);
1124
+ var isRequired = _a.isRequired, isDisabled = _a.isDisabled, placeholder = _a.placeholder, label = _a.label, value = _a.value, _c = _a.ariaLabel, ariaLabel = _c === void 0 ? label : _c, options = _a.options, onOpenChange = _a.onOpenChange, isDefaultOpen = _a.isDefaultOpen, defaultValue = _a.defaultValue, errorMessage = _a.errorMessage, labelSize = _a.labelSize, helper = _a.helper, hideLabel = _a.hideLabel, name = _a.name, width = _a.width, isFluid = _a.isFluid, onBlur = _a.onBlur, onChange = _a.onChange, disclosureTitle = _a.disclosureTitle, disclosureText = _a.disclosureText, onClickDisclosure = _a.onClickDisclosure, _d = _a.selectSize, selectSize = _d === void 0 ? "m" : _d, props = __rest(_a, ["isRequired", "isDisabled", "placeholder", "label", "value", "ariaLabel", "options", "onOpenChange", "isDefaultOpen", "defaultValue", "errorMessage", "labelSize", "helper", "hideLabel", "name", "width", "isFluid", "onBlur", "onChange", "disclosureTitle", "disclosureText", "onClickDisclosure", "selectSize"]);
1682
1125
  var id = useId();
1683
- var arcRootElement = useContext(ArcRootElementContext);
1126
+ var _e = useThemeElement(), themeElement = _e[0], setThemeElement = _e[1];
1684
1127
  var surface = useContext(Context).surface;
1685
- var _e = useState(defaultValue), selectedValue = _e[0], setSelectedValue = _e[1];
1128
+ var _f = useState(defaultValue), uncontrolledValue = _f[0], setUncontrolledValue = _f[1];
1129
+ var isControlled = typeof value !== "undefined";
1130
+ var selectValue = isControlled ? value : uncontrolledValue;
1686
1131
  var onValueChange = function (value) {
1687
1132
  onChange && onChange(value);
1688
- setSelectedValue(value);
1133
+ setUncontrolledValue(value);
1689
1134
  };
1690
1135
  var getSelectedValueName = function (value) {
1691
1136
  var _a;
@@ -1701,35 +1146,36 @@ var Select = function (_a) {
1701
1146
  return 20;
1702
1147
  }
1703
1148
  };
1704
- return (React__default.createElement(FormControl, { errorMessage: errorMessage, helper: helper, htmlFor: id, label: label, labelSize: labelSize, requirementStatus: isRequired ? "required" : "optional", isDisabled: isDisabled, disclosureText: disclosureText, disclosureTitle: disclosureTitle, onClickDisclosure: onClickDisclosure },
1705
- React__default.createElement($cc7e05a45900e73f$export$be92b6f5f03c0fe9, { name: name, required: isRequired, disabled: isDisabled, defaultOpen: isDefaultOpen, value: selectedValue, onOpenChange: onOpenChange, onValueChange: function (value) { return onValueChange(value); } },
1706
- React__default.createElement($cc7e05a45900e73f$export$41fb9f06171c75f4, __assign({ id: id, name: name, onBlur: onBlur, "aria-label": ariaLabel, className: classNames("arc-Select-trigger", (_b = {
1707
- "arc-Select-trigger--constrained": !isFluid,
1708
- "arc-Select-trigger--onDarkSurface": surface === "dark",
1709
- "arc-Select-trigger--invalid": errorMessage
1710
- },
1711
- _b["arc-Select-trigger--size".concat(selectSize && selectSize.toUpperCase())] = selectSize && selectSize !== "m",
1712
- _b)) }, filterDataAttrs(props)),
1713
- React__default.createElement($cc7e05a45900e73f$export$4c8d1a57a761ef94, { asChild: true, "aria-label": getSelectedValueName(selectedValue) }, !selectedValue ? (React__default.createElement("span", { "aria-hidden": true, className: "arc-Select-placeHolder" }, placeholder)) : (React__default.createElement("span", { className: "arc-Select-valueItem" }, getSelectedValueName(selectedValue)))),
1714
- React__default.createElement($cc7e05a45900e73f$export$f04a61298a47a40f, { className: "arc-Select-triggerIcon" },
1715
- React__default.createElement(ThemeIcon, { size: getIconSize(selectSize), icon: "selectTrigger" }))),
1716
- React__default.createElement($cc7e05a45900e73f$export$602eac185826482c, { container: arcRootElement || undefined },
1717
- React__default.createElement($cc7e05a45900e73f$export$7c6e2c02157bb7d2, { className: classNames("arc-Select-content", {
1718
- "arc-Select-content--onDarkSurface": surface === "dark"
1719
- }) },
1720
- React__default.createElement($cc7e05a45900e73f$export$2f60d3ec9ad468f2, { className: "arc-Select-scrollButton" },
1721
- React__default.createElement(ThemeIcon, { size: 16, icon: "selectScrollUp" })),
1722
- React__default.createElement($cc7e05a45900e73f$export$d5c6c08dc2d3ca7, null, options.map(function (_a, i) {
1723
- var name = _a.name, value = _a.value;
1724
- return (React__default.createElement($cc7e05a45900e73f$export$6d08773d2e66f8f2, { className: "arc-Select-item", key: "select-item-".concat(i), value: value },
1725
- React__default.createElement("div", { className: "arc-Select-itemTextWrapper" },
1726
- React__default.createElement($cc7e05a45900e73f$export$d6e5bf9c43ea9319, { asChild: true },
1727
- React__default.createElement("span", { className: "arc-Select-itemText" }, name))),
1728
- React__default.createElement($cc7e05a45900e73f$export$c3468e2714d175fa, null,
1729
- React__default.createElement(ThemeIcon, { size: 20, icon: "selectIndicator" }))));
1730
- })),
1731
- React__default.createElement($cc7e05a45900e73f$export$bf1aedc3039c8d63, { className: "arc-Select-scrollButton" },
1732
- React__default.createElement(ThemeIcon, { size: 16, icon: "selectScrollDown" })))))));
1149
+ return (React__default.createElement(FormControl, { errorMessage: errorMessage, helper: helper, htmlFor: id, label: label, hideLabel: hideLabel, labelSize: labelSize, requirementStatus: isRequired ? "required" : "optional", isDisabled: isDisabled, disclosureText: disclosureText, disclosureTitle: disclosureTitle, onClickDisclosure: onClickDisclosure },
1150
+ React__default.createElement($cc7e05a45900e73f$export$be92b6f5f03c0fe9, { name: name, required: isRequired, disabled: isDisabled, defaultOpen: isDefaultOpen, value: selectValue, onOpenChange: onOpenChange, onValueChange: function (value) { return onValueChange(value); } },
1151
+ React__default.createElement("div", { ref: setThemeElement, className: "arc-Select-wrapper" },
1152
+ React__default.createElement($cc7e05a45900e73f$export$41fb9f06171c75f4, __assign({ id: id, name: name, onBlur: onBlur, "aria-label": ariaLabel, style: { width: width }, className: classNames("arc-Select-trigger", (_b = {
1153
+ "arc-Select-trigger--constrained": !isFluid,
1154
+ "arc-Select-trigger--onDarkSurface": surface === "dark",
1155
+ "arc-Select-trigger--invalid": errorMessage
1156
+ },
1157
+ _b["arc-Select-trigger--size".concat(selectSize && selectSize.toUpperCase())] = selectSize && selectSize !== "m",
1158
+ _b)), "aria-describedby": "".concat(id, "-helper") }, filterDataAttrs(props)),
1159
+ React__default.createElement($cc7e05a45900e73f$export$4c8d1a57a761ef94, { className: "arc-Select-triggerText", placeholder: placeholder, "aria-label": getSelectedValueName(uncontrolledValue) }),
1160
+ React__default.createElement($cc7e05a45900e73f$export$f04a61298a47a40f, { className: "arc-Select-triggerIcon" },
1161
+ React__default.createElement(ThemeIcon, { size: getIconSize(selectSize), icon: "selectTrigger" }))),
1162
+ React__default.createElement($cc7e05a45900e73f$export$602eac185826482c, { container: themeElement },
1163
+ React__default.createElement($cc7e05a45900e73f$export$7c6e2c02157bb7d2, { sideOffset: 5, position: "popper", className: classNames("arc-Select-content", {
1164
+ "arc-Select-content--onDarkSurface": surface === "dark"
1165
+ }) },
1166
+ React__default.createElement($cc7e05a45900e73f$export$2f60d3ec9ad468f2, { className: "arc-Select-scrollButton" },
1167
+ React__default.createElement(ThemeIcon, { size: 16, icon: "selectScrollUp" })),
1168
+ React__default.createElement($cc7e05a45900e73f$export$d5c6c08dc2d3ca7, null, options.map(function (_a, i) {
1169
+ var name = _a.name, value = _a.value;
1170
+ return (React__default.createElement($cc7e05a45900e73f$export$6d08773d2e66f8f2, { className: "arc-Select-item", key: "select-item-".concat(i), value: value },
1171
+ React__default.createElement("div", { className: "arc-Select-itemTextWrapper" },
1172
+ React__default.createElement($cc7e05a45900e73f$export$d6e5bf9c43ea9319, { asChild: true },
1173
+ React__default.createElement("span", { className: "arc-Select-itemText" }, name))),
1174
+ React__default.createElement($cc7e05a45900e73f$export$c3468e2714d175fa, null,
1175
+ React__default.createElement(ThemeIcon, { size: 20, icon: "selectIndicator" }))));
1176
+ })),
1177
+ React__default.createElement($cc7e05a45900e73f$export$bf1aedc3039c8d63, { className: "arc-Select-scrollButton" },
1178
+ React__default.createElement(ThemeIcon, { size: 16, icon: "selectScrollDown" }))))))));
1733
1179
  };
1734
1180
 
1735
1181
  export { Select };