@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,551 +1,1479 @@
1
- import { _ as __rest, a as __assign, f as filterDataAttrs } from '../_shared/esm/filter-data-attrs-ea8f4ed4.js';
2
- import React__default, { forwardRef, useState, useRef, useEffect, useCallback, createElement, Children, Fragment, useContext } from 'react';
1
+ import { _ as __rest, a as __assign, b as __spreadArray, f as filterDataAttrs } from '../_shared/esm/index-288c66b5.js';
2
+ import * as React from 'react';
3
+ import React__default, { useRef } from 'react';
3
4
  import { c as classNames } from '../_shared/esm/index-2e73c2e9.js';
4
- import { _ as _extends } from '../_shared/esm/extends-8cc61aad.js';
5
- import { $ as $b1b2314f5f9a1d84$export$25bec8c6f54ee79a, a as $6ed0406888f73fc4$export$c7b2cbe3552a0d05, b as $8927f6f2acc4f386$export$250ffa63cdc0d034, c as $c512c27ab02ef895$export$50c7b4e9d9f19c1, d as $71cd76cc60e0454e$export$6f32135080cb4c3, e as $921a889cee6df7e8$export$99c2b779aa4e8b8b, f as $5e63c961fc1ce211$export$8c6ed5c666ac1360, g as $e42e1063c40fb3ef$export$b9ecd428b558ff10 } from '../_shared/esm/index-87a828b8.js';
6
- import { $ as $1746a345f3d73bb7$export$f680877a34711e37 } from '../_shared/esm/index-3147c5b0.js';
7
- import { $ as $f1701beae083dbae$export$602eac185826482c, a as $5cb92bef7577960e$export$177fb62ff3ec1f22 } from '../_shared/esm/index-4f8d3888.js';
8
- import { $ as $01b9c$RemoveScroll, h as hideOthers } from '../_shared/esm/index-ffd720d0.js';
9
- import { A as ArcRootElementContext } from '../_shared/esm/Base-f200653c.js';
10
- import { H as Heading } from '../_shared/esm/Heading-d16e0e53.js';
11
- import { B as Button } from '../_shared/esm/Button-c3348ed8.js';
12
- import { T as Text } from '../_shared/esm/Text-14f586ac.js';
13
- import { V as VerticalSpace } from '../_shared/esm/VerticalSpace-43cd9138.js';
14
- import { T as ThemeIcon } from '../_shared/esm/ThemeIcon-eab5a4d0.js';
15
- import 'react-dom';
16
- import '../_shared/esm/suffix-modifier-3d548e45.js';
17
- import '../_shared/esm/Surface-0ca6817d.js';
18
- import '../_shared/esm/Icon-9ecaaeab.js';
5
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
6
+ import * as ReactDOM from 'react-dom';
7
+ import ReactDOM__default from 'react-dom';
8
+ import { c as createSidecarMedium, a as useMergeRefs, f as fullWidthClassName, z as zeroRightClassName, s as styleSingleton, R as RemoveScrollBar, e as exportSidecar, h as hideOthers, u as useThemeElement } from '../_shared/esm/component-d0a555cf.js';
9
+ import { H as Heading } from '../_shared/esm/Heading-906c7c7c.js';
10
+ import { B as ButtonV2 } from '../_shared/esm/ButtonV2-49cd0615.js';
11
+ import { T as Text } from '../_shared/esm/Text-a46fb76b.js';
12
+ import { V as VerticalSpace } from '../_shared/esm/VerticalSpace-b07cd8e6.js';
13
+ import { T as ThemeIcon } from '../_shared/esm/ThemeIcon-c2dc41a6.js';
14
+ import { S as Surface } from '../_shared/esm/Surface-71d21a9e.js';
15
+ import '../_shared/esm/suffix-modifier-1ce05abe.js';
16
+ import '../_shared/esm/Icon-512f834f.js';
17
+ import '../_shared/esm/ArcIconEclipse.esm-bb48b82a.js';
19
18
 
20
- const $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';
21
- const $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';
22
- const $d3863c46a17e8a28$var$EVENT_OPTIONS = {
23
- bubbles: false,
24
- cancelable: true
19
+ // packages/core/primitive/src/primitive.tsx
20
+ function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
21
+ return function handleEvent(event) {
22
+ originalEventHandler?.(event);
23
+ if (checkForDefaultPrevented === false || !event.defaultPrevented) {
24
+ return ourEventHandler?.(event);
25
+ }
26
+ };
27
+ }
28
+
29
+ // packages/react/compose-refs/src/composeRefs.tsx
30
+ function setRef(ref, value) {
31
+ if (typeof ref === "function") {
32
+ ref(value);
33
+ } else if (ref !== null && ref !== void 0) {
34
+ ref.current = value;
35
+ }
36
+ }
37
+ function composeRefs(...refs) {
38
+ return (node) => refs.forEach((ref) => setRef(ref, node));
39
+ }
40
+ function useComposedRefs(...refs) {
41
+ return React.useCallback(composeRefs(...refs), refs);
42
+ }
43
+
44
+ // packages/react/context/src/createContext.tsx
45
+ function createContext2(rootComponentName, defaultContext) {
46
+ const Context = React.createContext(defaultContext);
47
+ function Provider(props) {
48
+ const { children, ...context } = props;
49
+ const value = React.useMemo(() => context, Object.values(context));
50
+ return /* @__PURE__ */ jsx(Context.Provider, { value, children });
51
+ }
52
+ function useContext2(consumerName) {
53
+ const context = React.useContext(Context);
54
+ if (context) return context;
55
+ if (defaultContext !== void 0) return defaultContext;
56
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
57
+ }
58
+ Provider.displayName = rootComponentName + "Provider";
59
+ return [Provider, useContext2];
60
+ }
61
+ function createContextScope(scopeName, createContextScopeDeps = []) {
62
+ let defaultContexts = [];
63
+ function createContext3(rootComponentName, defaultContext) {
64
+ const BaseContext = React.createContext(defaultContext);
65
+ const index = defaultContexts.length;
66
+ defaultContexts = [...defaultContexts, defaultContext];
67
+ function Provider(props) {
68
+ const { scope, children, ...context } = props;
69
+ const Context = scope?.[scopeName][index] || BaseContext;
70
+ const value = React.useMemo(() => context, Object.values(context));
71
+ return /* @__PURE__ */ jsx(Context.Provider, { value, children });
72
+ }
73
+ function useContext2(consumerName, scope) {
74
+ const Context = scope?.[scopeName][index] || BaseContext;
75
+ const context = React.useContext(Context);
76
+ if (context) return context;
77
+ if (defaultContext !== void 0) return defaultContext;
78
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
79
+ }
80
+ Provider.displayName = rootComponentName + "Provider";
81
+ return [Provider, useContext2];
82
+ }
83
+ const createScope = () => {
84
+ const scopeContexts = defaultContexts.map((defaultContext) => {
85
+ return React.createContext(defaultContext);
86
+ });
87
+ return function useScope(scope) {
88
+ const contexts = scope?.[scopeName] || scopeContexts;
89
+ return React.useMemo(
90
+ () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
91
+ [scope, contexts]
92
+ );
93
+ };
94
+ };
95
+ createScope.scopeName = scopeName;
96
+ return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];
97
+ }
98
+ function composeContextScopes(...scopes) {
99
+ const baseScope = scopes[0];
100
+ if (scopes.length === 1) return baseScope;
101
+ const createScope = () => {
102
+ const scopeHooks = scopes.map((createScope2) => ({
103
+ useScope: createScope2(),
104
+ scopeName: createScope2.scopeName
105
+ }));
106
+ return function useComposedScopes(overrideScopes) {
107
+ const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
108
+ const scopeProps = useScope(overrideScopes);
109
+ const currentScope = scopeProps[`__scope${scopeName}`];
110
+ return { ...nextScopes2, ...currentScope };
111
+ }, {});
112
+ return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
113
+ };
114
+ };
115
+ createScope.scopeName = baseScope.scopeName;
116
+ return createScope;
117
+ }
118
+
119
+ // packages/react/use-layout-effect/src/useLayoutEffect.tsx
120
+ var useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {
25
121
  };
26
- const $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
27
- const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;
28
- const [container1, setContainer] = useState(null);
29
- const onMountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onMountAutoFocusProp);
30
- const onUnmountAutoFocus = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onUnmountAutoFocusProp);
31
- const lastFocusedElementRef = useRef(null);
32
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, (node)=>setContainer(node)
33
- );
34
- const focusScope = useRef({
35
- paused: false,
36
- pause () {
37
- this.paused = true;
38
- },
39
- resume () {
40
- this.paused = false;
41
- }
42
- }).current; // Takes care of trapping focus if focus is moved outside programmatically for example
43
- useEffect(()=>{
44
- if (trapped) {
45
- function handleFocusIn(event) {
46
- if (focusScope.paused || !container1) return;
47
- const target = event.target;
48
- if (container1.contains(target)) lastFocusedElementRef.current = target;
49
- else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {
50
- select: true
51
- });
52
- }
53
- function handleFocusOut(event) {
54
- if (focusScope.paused || !container1) return;
55
- const relatedTarget = event.relatedTarget; // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:
56
- //
57
- // 1. When the user switches app/tabs/windows/the browser itself loses focus.
58
- // 2. In Google Chrome, when the focused element is removed from the DOM.
59
- //
60
- // We let the browser do its thing here because:
61
- //
62
- // 1. The browser already keeps a memory of what's focused for when the page gets refocused.
63
- // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it
64
- // throws the CPU to 100%, so we avoid doing anything for this reason here too.
65
- if (relatedTarget === null) return; // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)
66
- // that is outside the container, we move focus to the last valid focused element inside.
67
- if (!container1.contains(relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {
68
- select: true
69
- });
70
- } // When the focused element gets removed from the DOM, browsers move focus
71
- // back to the document.body. In this case, we move focus to the container
72
- // to keep focus trapped correctly.
73
- function handleMutations(mutations) {
74
- const focusedElement = document.activeElement;
75
- for (const mutation of mutations){
76
- if (mutation.removedNodes.length > 0) {
77
- if (!(container1 !== null && container1 !== void 0 && container1.contains(focusedElement))) $d3863c46a17e8a28$var$focus(container1);
78
- }
79
- }
80
- }
81
- document.addEventListener('focusin', handleFocusIn);
82
- document.addEventListener('focusout', handleFocusOut);
83
- const mutationObserver = new MutationObserver(handleMutations);
84
- if (container1) mutationObserver.observe(container1, {
85
- childList: true,
86
- subtree: true
87
- });
88
- return ()=>{
89
- document.removeEventListener('focusin', handleFocusIn);
90
- document.removeEventListener('focusout', handleFocusOut);
91
- mutationObserver.disconnect();
92
- };
122
+
123
+ // packages/react/id/src/id.tsx
124
+ var useReactId = React["useId".toString()] || (() => void 0);
125
+ var count$1 = 0;
126
+ function useId(deterministicId) {
127
+ const [id, setId] = React.useState(useReactId());
128
+ useLayoutEffect2(() => {
129
+ if (!deterministicId) setId((reactId) => reactId ?? String(count$1++));
130
+ }, [deterministicId]);
131
+ return deterministicId || (id ? `radix-${id}` : "");
132
+ }
133
+
134
+ // packages/react/use-callback-ref/src/useCallbackRef.tsx
135
+ function useCallbackRef(callback) {
136
+ const callbackRef = React.useRef(callback);
137
+ React.useEffect(() => {
138
+ callbackRef.current = callback;
139
+ });
140
+ return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);
141
+ }
142
+
143
+ // packages/react/use-controllable-state/src/useControllableState.tsx
144
+ function useControllableState({
145
+ prop,
146
+ defaultProp,
147
+ onChange = () => {
148
+ }
149
+ }) {
150
+ const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });
151
+ const isControlled = prop !== void 0;
152
+ const value = isControlled ? prop : uncontrolledProp;
153
+ const handleChange = useCallbackRef(onChange);
154
+ const setValue = React.useCallback(
155
+ (nextValue) => {
156
+ if (isControlled) {
157
+ const setter = nextValue;
158
+ const value2 = typeof nextValue === "function" ? setter(prop) : nextValue;
159
+ if (value2 !== prop) handleChange(value2);
160
+ } else {
161
+ setUncontrolledProp(nextValue);
162
+ }
163
+ },
164
+ [isControlled, prop, setUncontrolledProp, handleChange]
165
+ );
166
+ return [value, setValue];
167
+ }
168
+ function useUncontrolledState({
169
+ defaultProp,
170
+ onChange
171
+ }) {
172
+ const uncontrolledState = React.useState(defaultProp);
173
+ const [value] = uncontrolledState;
174
+ const prevValueRef = React.useRef(value);
175
+ const handleChange = useCallbackRef(onChange);
176
+ React.useEffect(() => {
177
+ if (prevValueRef.current !== value) {
178
+ handleChange(value);
179
+ prevValueRef.current = value;
180
+ }
181
+ }, [value, prevValueRef, handleChange]);
182
+ return uncontrolledState;
183
+ }
184
+
185
+ // packages/react/slot/src/Slot.tsx
186
+ var Slot = React.forwardRef((props, forwardedRef) => {
187
+ const { children, ...slotProps } = props;
188
+ const childrenArray = React.Children.toArray(children);
189
+ const slottable = childrenArray.find(isSlottable);
190
+ if (slottable) {
191
+ const newElement = slottable.props.children;
192
+ const newChildren = childrenArray.map((child) => {
193
+ if (child === slottable) {
194
+ if (React.Children.count(newElement) > 1) return React.Children.only(null);
195
+ return React.isValidElement(newElement) ? newElement.props.children : null;
196
+ } else {
197
+ return child;
198
+ }
199
+ });
200
+ return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });
201
+ }
202
+ return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
203
+ });
204
+ Slot.displayName = "Slot";
205
+ var SlotClone = React.forwardRef((props, forwardedRef) => {
206
+ const { children, ...slotProps } = props;
207
+ if (React.isValidElement(children)) {
208
+ const childrenRef = getElementRef$1(children);
209
+ return React.cloneElement(children, {
210
+ ...mergeProps(slotProps, children.props),
211
+ // @ts-ignore
212
+ ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef
213
+ });
214
+ }
215
+ return React.Children.count(children) > 1 ? React.Children.only(null) : null;
216
+ });
217
+ SlotClone.displayName = "SlotClone";
218
+ var Slottable = ({ children }) => {
219
+ return /* @__PURE__ */ jsx(Fragment, { children });
220
+ };
221
+ function isSlottable(child) {
222
+ return React.isValidElement(child) && child.type === Slottable;
223
+ }
224
+ function mergeProps(slotProps, childProps) {
225
+ const overrideProps = { ...childProps };
226
+ for (const propName in childProps) {
227
+ const slotPropValue = slotProps[propName];
228
+ const childPropValue = childProps[propName];
229
+ const isHandler = /^on[A-Z]/.test(propName);
230
+ if (isHandler) {
231
+ if (slotPropValue && childPropValue) {
232
+ overrideProps[propName] = (...args) => {
233
+ childPropValue(...args);
234
+ slotPropValue(...args);
235
+ };
236
+ } else if (slotPropValue) {
237
+ overrideProps[propName] = slotPropValue;
238
+ }
239
+ } else if (propName === "style") {
240
+ overrideProps[propName] = { ...slotPropValue, ...childPropValue };
241
+ } else if (propName === "className") {
242
+ overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
243
+ }
244
+ }
245
+ return { ...slotProps, ...overrideProps };
246
+ }
247
+ function getElementRef$1(element) {
248
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
249
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
250
+ if (mayWarn) {
251
+ return element.ref;
252
+ }
253
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
254
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
255
+ if (mayWarn) {
256
+ return element.props.ref;
257
+ }
258
+ return element.props.ref || element.ref;
259
+ }
260
+
261
+ // packages/react/primitive/src/Primitive.tsx
262
+ var NODES = [
263
+ "a",
264
+ "button",
265
+ "div",
266
+ "form",
267
+ "h2",
268
+ "h3",
269
+ "img",
270
+ "input",
271
+ "label",
272
+ "li",
273
+ "nav",
274
+ "ol",
275
+ "p",
276
+ "span",
277
+ "svg",
278
+ "ul"
279
+ ];
280
+ var Primitive = NODES.reduce((primitive, node) => {
281
+ const Node = React.forwardRef((props, forwardedRef) => {
282
+ const { asChild, ...primitiveProps } = props;
283
+ const Comp = asChild ? Slot : node;
284
+ if (typeof window !== "undefined") {
285
+ window[Symbol.for("radix-ui")] = true;
286
+ }
287
+ return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });
288
+ });
289
+ Node.displayName = `Primitive.${node}`;
290
+ return { ...primitive, [node]: Node };
291
+ }, {});
292
+ function dispatchDiscreteCustomEvent(target, event) {
293
+ if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));
294
+ }
295
+
296
+ // packages/react/use-escape-keydown/src/useEscapeKeydown.tsx
297
+ function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {
298
+ const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);
299
+ React.useEffect(() => {
300
+ const handleKeyDown = (event) => {
301
+ if (event.key === "Escape") {
302
+ onEscapeKeyDown(event);
303
+ }
304
+ };
305
+ ownerDocument.addEventListener("keydown", handleKeyDown, { capture: true });
306
+ return () => ownerDocument.removeEventListener("keydown", handleKeyDown, { capture: true });
307
+ }, [onEscapeKeyDown, ownerDocument]);
308
+ }
309
+
310
+ var DISMISSABLE_LAYER_NAME = "DismissableLayer";
311
+ var CONTEXT_UPDATE = "dismissableLayer.update";
312
+ var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
313
+ var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
314
+ var originalBodyPointerEvents;
315
+ var DismissableLayerContext = React.createContext({
316
+ layers: /* @__PURE__ */ new Set(),
317
+ layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
318
+ branches: /* @__PURE__ */ new Set()
319
+ });
320
+ var DismissableLayer = React.forwardRef(
321
+ (props, forwardedRef) => {
322
+ const {
323
+ disableOutsidePointerEvents = false,
324
+ onEscapeKeyDown,
325
+ onPointerDownOutside,
326
+ onFocusOutside,
327
+ onInteractOutside,
328
+ onDismiss,
329
+ ...layerProps
330
+ } = props;
331
+ const context = React.useContext(DismissableLayerContext);
332
+ const [node, setNode] = React.useState(null);
333
+ const ownerDocument = node?.ownerDocument ?? globalThis?.document;
334
+ const [, force] = React.useState({});
335
+ const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));
336
+ const layers = Array.from(context.layers);
337
+ const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
338
+ const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
339
+ const index = node ? layers.indexOf(node) : -1;
340
+ const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
341
+ const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
342
+ const pointerDownOutside = usePointerDownOutside((event) => {
343
+ const target = event.target;
344
+ const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
345
+ if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
346
+ onPointerDownOutside?.(event);
347
+ onInteractOutside?.(event);
348
+ if (!event.defaultPrevented) onDismiss?.();
349
+ }, ownerDocument);
350
+ const focusOutside = useFocusOutside((event) => {
351
+ const target = event.target;
352
+ const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));
353
+ if (isFocusInBranch) return;
354
+ onFocusOutside?.(event);
355
+ onInteractOutside?.(event);
356
+ if (!event.defaultPrevented) onDismiss?.();
357
+ }, ownerDocument);
358
+ useEscapeKeydown((event) => {
359
+ const isHighestLayer = index === context.layers.size - 1;
360
+ if (!isHighestLayer) return;
361
+ onEscapeKeyDown?.(event);
362
+ if (!event.defaultPrevented && onDismiss) {
363
+ event.preventDefault();
364
+ onDismiss();
365
+ }
366
+ }, ownerDocument);
367
+ React.useEffect(() => {
368
+ if (!node) return;
369
+ if (disableOutsidePointerEvents) {
370
+ if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
371
+ originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
372
+ ownerDocument.body.style.pointerEvents = "none";
93
373
  }
94
- }, [
95
- trapped,
96
- container1,
97
- focusScope.paused
98
- ]);
99
- useEffect(()=>{
100
- if (container1) {
101
- $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);
102
- const previouslyFocusedElement = document.activeElement;
103
- const hasFocusedCandidate = container1.contains(previouslyFocusedElement);
104
- if (!hasFocusedCandidate) {
105
- const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);
106
- container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
107
- container1.dispatchEvent(mountEvent);
108
- if (!mountEvent.defaultPrevented) {
109
- $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {
110
- select: true
111
- });
112
- if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);
113
- }
114
- }
115
- return ()=>{
116
- container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.
117
- // We need to delay the focus a little to get around it for now.
118
- // See: https://github.com/facebook/react/issues/17894
119
- setTimeout(()=>{
120
- const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);
121
- container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
122
- container1.dispatchEvent(unmountEvent);
123
- if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {
124
- select: true
125
- });
126
- // we need to remove the listener after we `dispatchEvent`
127
- container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
128
- $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);
129
- }, 0);
130
- };
374
+ context.layersWithOutsidePointerEventsDisabled.add(node);
375
+ }
376
+ context.layers.add(node);
377
+ dispatchUpdate();
378
+ return () => {
379
+ if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {
380
+ ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
131
381
  }
132
- }, [
133
- container1,
134
- onMountAutoFocus,
135
- onUnmountAutoFocus,
136
- focusScope
137
- ]); // Takes care of looping focus (when tabbing whilst at the edges)
138
- const handleKeyDown = useCallback((event)=>{
139
- if (!loop && !trapped) return;
140
- if (focusScope.paused) return;
141
- const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;
142
- const focusedElement = document.activeElement;
143
- if (isTabKey && focusedElement) {
144
- const container = event.currentTarget;
145
- const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);
146
- const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges
147
- if (!hasTabbableElementsInside) {
148
- if (focusedElement === container) event.preventDefault();
149
- } else {
150
- if (!event.shiftKey && focusedElement === last) {
151
- event.preventDefault();
152
- if (loop) $d3863c46a17e8a28$var$focus(first, {
153
- select: true
154
- });
155
- } else if (event.shiftKey && focusedElement === first) {
156
- event.preventDefault();
157
- if (loop) $d3863c46a17e8a28$var$focus(last, {
158
- select: true
159
- });
160
- }
161
- }
162
- }
163
- }, [
164
- loop,
165
- trapped,
166
- focusScope.paused
167
- ]);
168
- return /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends({
169
- tabIndex: -1
170
- }, scopeProps, {
382
+ };
383
+ }, [node, ownerDocument, disableOutsidePointerEvents, context]);
384
+ React.useEffect(() => {
385
+ return () => {
386
+ if (!node) return;
387
+ context.layers.delete(node);
388
+ context.layersWithOutsidePointerEventsDisabled.delete(node);
389
+ dispatchUpdate();
390
+ };
391
+ }, [node, context]);
392
+ React.useEffect(() => {
393
+ const handleUpdate = () => force({});
394
+ document.addEventListener(CONTEXT_UPDATE, handleUpdate);
395
+ return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
396
+ }, []);
397
+ return /* @__PURE__ */ jsx(
398
+ Primitive.div,
399
+ {
400
+ ...layerProps,
171
401
  ref: composedRefs,
172
- onKeyDown: handleKeyDown
173
- }));
402
+ style: {
403
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
404
+ ...props.style
405
+ },
406
+ onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
407
+ onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
408
+ onPointerDownCapture: composeEventHandlers(
409
+ props.onPointerDownCapture,
410
+ pointerDownOutside.onPointerDownCapture
411
+ )
412
+ }
413
+ );
414
+ }
415
+ );
416
+ DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
417
+ var BRANCH_NAME = "DismissableLayerBranch";
418
+ var DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {
419
+ const context = React.useContext(DismissableLayerContext);
420
+ const ref = React.useRef(null);
421
+ const composedRefs = useComposedRefs(forwardedRef, ref);
422
+ React.useEffect(() => {
423
+ const node = ref.current;
424
+ if (node) {
425
+ context.branches.add(node);
426
+ return () => {
427
+ context.branches.delete(node);
428
+ };
429
+ }
430
+ }, [context.branches]);
431
+ return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });
174
432
  });
175
- /* -------------------------------------------------------------------------------------------------
176
- * Utils
177
- * -----------------------------------------------------------------------------------------------*/ /**
178
- * Attempts focusing the first element in a list of candidates.
179
- * Stops when focus has actually moved.
180
- */ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {
181
- const previouslyFocusedElement = document.activeElement;
182
- for (const candidate of candidates){
183
- $d3863c46a17e8a28$var$focus(candidate, {
184
- select: select
433
+ DismissableLayerBranch.displayName = BRANCH_NAME;
434
+ function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
435
+ const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
436
+ const isPointerInsideReactTreeRef = React.useRef(false);
437
+ const handleClickRef = React.useRef(() => {
438
+ });
439
+ React.useEffect(() => {
440
+ const handlePointerDown = (event) => {
441
+ if (event.target && !isPointerInsideReactTreeRef.current) {
442
+ let handleAndDispatchPointerDownOutsideEvent2 = function() {
443
+ handleAndDispatchCustomEvent(
444
+ POINTER_DOWN_OUTSIDE,
445
+ handlePointerDownOutside,
446
+ eventDetail,
447
+ { discrete: true }
448
+ );
449
+ };
450
+ const eventDetail = { originalEvent: event };
451
+ if (event.pointerType === "touch") {
452
+ ownerDocument.removeEventListener("click", handleClickRef.current);
453
+ handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
454
+ ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
455
+ } else {
456
+ handleAndDispatchPointerDownOutsideEvent2();
457
+ }
458
+ } else {
459
+ ownerDocument.removeEventListener("click", handleClickRef.current);
460
+ }
461
+ isPointerInsideReactTreeRef.current = false;
462
+ };
463
+ const timerId = window.setTimeout(() => {
464
+ ownerDocument.addEventListener("pointerdown", handlePointerDown);
465
+ }, 0);
466
+ return () => {
467
+ window.clearTimeout(timerId);
468
+ ownerDocument.removeEventListener("pointerdown", handlePointerDown);
469
+ ownerDocument.removeEventListener("click", handleClickRef.current);
470
+ };
471
+ }, [ownerDocument, handlePointerDownOutside]);
472
+ return {
473
+ // ensures we check React component tree (not just DOM tree)
474
+ onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true
475
+ };
476
+ }
477
+ function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {
478
+ const handleFocusOutside = useCallbackRef(onFocusOutside);
479
+ const isFocusInsideReactTreeRef = React.useRef(false);
480
+ React.useEffect(() => {
481
+ const handleFocus = (event) => {
482
+ if (event.target && !isFocusInsideReactTreeRef.current) {
483
+ const eventDetail = { originalEvent: event };
484
+ handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
485
+ discrete: false
185
486
  });
186
- if (document.activeElement !== previouslyFocusedElement) return;
187
- }
487
+ }
488
+ };
489
+ ownerDocument.addEventListener("focusin", handleFocus);
490
+ return () => ownerDocument.removeEventListener("focusin", handleFocus);
491
+ }, [ownerDocument, handleFocusOutside]);
492
+ return {
493
+ onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
494
+ onBlurCapture: () => isFocusInsideReactTreeRef.current = false
495
+ };
188
496
  }
189
- /**
190
- * Returns the first and last tabbable elements inside a container.
191
- */ function $d3863c46a17e8a28$var$getTabbableEdges(container) {
192
- const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);
193
- const first = $d3863c46a17e8a28$var$findVisible(candidates, container);
194
- const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);
195
- return [
196
- first,
197
- last
198
- ];
497
+ function dispatchUpdate() {
498
+ const event = new CustomEvent(CONTEXT_UPDATE);
499
+ document.dispatchEvent(event);
199
500
  }
200
- /**
201
- * Returns a list of potential tabbable candidates.
202
- *
203
- * NOTE: This is only a close approximation. For example it doesn't take into account cases like when
204
- * elements are not visible. This cannot be worked out easily by just reading a property, but rather
205
- * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.
206
- *
207
- * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
208
- * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
209
- */ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {
210
- const nodes = [];
211
- const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
212
- acceptNode: (node)=>{
213
- const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';
214
- if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the
215
- // runtime's understanding of tabbability, so this automatically accounts
216
- // for any kind of element that could be tabbed to.
217
- return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
218
- }
219
- });
220
- while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it
221
- // hinders accessibility to have tab order different from visual order.
222
- return nodes;
501
+ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
502
+ const target = detail.originalEvent.target;
503
+ const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
504
+ if (handler) target.addEventListener(name, handler, { once: true });
505
+ if (discrete) {
506
+ dispatchDiscreteCustomEvent(target, event);
507
+ } else {
508
+ target.dispatchEvent(event);
509
+ }
223
510
  }
224
- /**
225
- * Returns the first visible element in a list.
226
- * NOTE: Only checks visibility up to the `container`.
227
- */ function $d3863c46a17e8a28$var$findVisible(elements, container) {
228
- for (const element of elements){
229
- // we stop checking if it's hidden at the `container` level (excluding)
230
- if (!$d3863c46a17e8a28$var$isHidden(element, {
231
- upTo: container
232
- })) return element;
511
+
512
+ var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
513
+ var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
514
+ var EVENT_OPTIONS = { bubbles: false, cancelable: true };
515
+ var FOCUS_SCOPE_NAME = "FocusScope";
516
+ var FocusScope = React.forwardRef((props, forwardedRef) => {
517
+ const {
518
+ loop = false,
519
+ trapped = false,
520
+ onMountAutoFocus: onMountAutoFocusProp,
521
+ onUnmountAutoFocus: onUnmountAutoFocusProp,
522
+ ...scopeProps
523
+ } = props;
524
+ const [container, setContainer] = React.useState(null);
525
+ const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);
526
+ const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);
527
+ const lastFocusedElementRef = React.useRef(null);
528
+ const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));
529
+ const focusScope = React.useRef({
530
+ paused: false,
531
+ pause() {
532
+ this.paused = true;
533
+ },
534
+ resume() {
535
+ this.paused = false;
536
+ }
537
+ }).current;
538
+ React.useEffect(() => {
539
+ if (trapped) {
540
+ let handleFocusIn2 = function(event) {
541
+ if (focusScope.paused || !container) return;
542
+ const target = event.target;
543
+ if (container.contains(target)) {
544
+ lastFocusedElementRef.current = target;
545
+ } else {
546
+ focus(lastFocusedElementRef.current, { select: true });
547
+ }
548
+ }, handleFocusOut2 = function(event) {
549
+ if (focusScope.paused || !container) return;
550
+ const relatedTarget = event.relatedTarget;
551
+ if (relatedTarget === null) return;
552
+ if (!container.contains(relatedTarget)) {
553
+ focus(lastFocusedElementRef.current, { select: true });
554
+ }
555
+ }, handleMutations2 = function(mutations) {
556
+ const focusedElement = document.activeElement;
557
+ if (focusedElement !== document.body) return;
558
+ for (const mutation of mutations) {
559
+ if (mutation.removedNodes.length > 0) focus(container);
560
+ }
561
+ };
562
+ document.addEventListener("focusin", handleFocusIn2);
563
+ document.addEventListener("focusout", handleFocusOut2);
564
+ const mutationObserver = new MutationObserver(handleMutations2);
565
+ if (container) mutationObserver.observe(container, { childList: true, subtree: true });
566
+ return () => {
567
+ document.removeEventListener("focusin", handleFocusIn2);
568
+ document.removeEventListener("focusout", handleFocusOut2);
569
+ mutationObserver.disconnect();
570
+ };
571
+ }
572
+ }, [trapped, container, focusScope.paused]);
573
+ React.useEffect(() => {
574
+ if (container) {
575
+ focusScopesStack.add(focusScope);
576
+ const previouslyFocusedElement = document.activeElement;
577
+ const hasFocusedCandidate = container.contains(previouslyFocusedElement);
578
+ if (!hasFocusedCandidate) {
579
+ const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
580
+ container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
581
+ container.dispatchEvent(mountEvent);
582
+ if (!mountEvent.defaultPrevented) {
583
+ focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });
584
+ if (document.activeElement === previouslyFocusedElement) {
585
+ focus(container);
586
+ }
587
+ }
588
+ }
589
+ return () => {
590
+ container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
591
+ setTimeout(() => {
592
+ const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
593
+ container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
594
+ container.dispatchEvent(unmountEvent);
595
+ if (!unmountEvent.defaultPrevented) {
596
+ focus(previouslyFocusedElement ?? document.body, { select: true });
597
+ }
598
+ container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);
599
+ focusScopesStack.remove(focusScope);
600
+ }, 0);
601
+ };
233
602
  }
603
+ }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
604
+ const handleKeyDown = React.useCallback(
605
+ (event) => {
606
+ if (!loop && !trapped) return;
607
+ if (focusScope.paused) return;
608
+ const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
609
+ const focusedElement = document.activeElement;
610
+ if (isTabKey && focusedElement) {
611
+ const container2 = event.currentTarget;
612
+ const [first, last] = getTabbableEdges(container2);
613
+ const hasTabbableElementsInside = first && last;
614
+ if (!hasTabbableElementsInside) {
615
+ if (focusedElement === container2) event.preventDefault();
616
+ } else {
617
+ if (!event.shiftKey && focusedElement === last) {
618
+ event.preventDefault();
619
+ if (loop) focus(first, { select: true });
620
+ } else if (event.shiftKey && focusedElement === first) {
621
+ event.preventDefault();
622
+ if (loop) focus(last, { select: true });
623
+ }
624
+ }
625
+ }
626
+ },
627
+ [loop, trapped, focusScope.paused]
628
+ );
629
+ return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
630
+ });
631
+ FocusScope.displayName = FOCUS_SCOPE_NAME;
632
+ function focusFirst(candidates, { select = false } = {}) {
633
+ const previouslyFocusedElement = document.activeElement;
634
+ for (const candidate of candidates) {
635
+ focus(candidate, { select });
636
+ if (document.activeElement !== previouslyFocusedElement) return;
637
+ }
638
+ }
639
+ function getTabbableEdges(container) {
640
+ const candidates = getTabbableCandidates(container);
641
+ const first = findVisible(candidates, container);
642
+ const last = findVisible(candidates.reverse(), container);
643
+ return [first, last];
234
644
  }
235
- function $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {
236
- if (getComputedStyle(node).visibility === 'hidden') return true;
237
- while(node){
238
- // we stop at `upTo` (excluding it)
239
- if (upTo !== undefined && node === upTo) return false;
240
- if (getComputedStyle(node).display === 'none') return true;
241
- node = node.parentElement;
645
+ function getTabbableCandidates(container) {
646
+ const nodes = [];
647
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
648
+ acceptNode: (node) => {
649
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
650
+ if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;
651
+ return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
242
652
  }
243
- return false;
653
+ });
654
+ while (walker.nextNode()) nodes.push(walker.currentNode);
655
+ return nodes;
656
+ }
657
+ function findVisible(elements, container) {
658
+ for (const element of elements) {
659
+ if (!isHidden(element, { upTo: container })) return element;
660
+ }
661
+ }
662
+ function isHidden(node, { upTo }) {
663
+ if (getComputedStyle(node).visibility === "hidden") return true;
664
+ while (node) {
665
+ if (upTo !== void 0 && node === upTo) return false;
666
+ if (getComputedStyle(node).display === "none") return true;
667
+ node = node.parentElement;
668
+ }
669
+ return false;
670
+ }
671
+ function isSelectableInput(element) {
672
+ return element instanceof HTMLInputElement && "select" in element;
673
+ }
674
+ function focus(element, { select = false } = {}) {
675
+ if (element && element.focus) {
676
+ const previouslyFocusedElement = document.activeElement;
677
+ element.focus({ preventScroll: true });
678
+ if (element !== previouslyFocusedElement && isSelectableInput(element) && select)
679
+ element.select();
680
+ }
244
681
  }
245
- function $d3863c46a17e8a28$var$isSelectableInput(element) {
246
- return element instanceof HTMLInputElement && 'select' in element;
247
- }
248
- function $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {
249
- // only focus if that element is focusable
250
- if (element && element.focus) {
251
- const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users
252
- element.focus({
253
- preventScroll: true
254
- }); // only select if its not the same element, it supports selection and we need to select
255
- if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();
682
+ var focusScopesStack = createFocusScopesStack();
683
+ function createFocusScopesStack() {
684
+ let stack = [];
685
+ return {
686
+ add(focusScope) {
687
+ const activeFocusScope = stack[0];
688
+ if (focusScope !== activeFocusScope) {
689
+ activeFocusScope?.pause();
690
+ }
691
+ stack = arrayRemove(stack, focusScope);
692
+ stack.unshift(focusScope);
693
+ },
694
+ remove(focusScope) {
695
+ stack = arrayRemove(stack, focusScope);
696
+ stack[0]?.resume();
256
697
  }
698
+ };
257
699
  }
258
- /* -------------------------------------------------------------------------------------------------
259
- * FocusScope stack
260
- * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();
261
- function $d3863c46a17e8a28$var$createFocusScopesStack() {
262
- /** A stack of focus scopes, with the active one at the top */ let stack = [];
263
- return {
264
- add (focusScope) {
265
- // pause the currently active focus scope (at the top of the stack)
266
- const activeFocusScope = stack[0];
267
- if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();
268
- // remove in case it already exists (because we'll re-add it at the top of the stack)
269
- stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);
270
- stack.unshift(focusScope);
271
- },
272
- remove (focusScope) {
273
- var _stack$;
274
- stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);
275
- (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();
700
+ function arrayRemove(array, item) {
701
+ const updatedArray = [...array];
702
+ const index = updatedArray.indexOf(item);
703
+ if (index !== -1) {
704
+ updatedArray.splice(index, 1);
705
+ }
706
+ return updatedArray;
707
+ }
708
+ function removeLinks(items) {
709
+ return items.filter((item) => item.tagName !== "A");
710
+ }
711
+
712
+ var PORTAL_NAME$1 = "Portal";
713
+ var Portal$1 = React.forwardRef((props, forwardedRef) => {
714
+ const { container: containerProp, ...portalProps } = props;
715
+ const [mounted, setMounted] = React.useState(false);
716
+ useLayoutEffect2(() => setMounted(true), []);
717
+ const container = containerProp || mounted && globalThis?.document?.body;
718
+ return container ? ReactDOM__default.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
719
+ });
720
+ Portal$1.displayName = PORTAL_NAME$1;
721
+
722
+ function useStateMachine(initialState, machine) {
723
+ return React.useReducer((state, event) => {
724
+ const nextState = machine[state][event];
725
+ return nextState ?? state;
726
+ }, initialState);
727
+ }
728
+
729
+ // packages/react/presence/src/Presence.tsx
730
+ var Presence = (props) => {
731
+ const { present, children } = props;
732
+ const presence = usePresence(present);
733
+ const child = typeof children === "function" ? children({ present: presence.isPresent }) : React.Children.only(children);
734
+ const ref = useComposedRefs(presence.ref, getElementRef(child));
735
+ const forceMount = typeof children === "function";
736
+ return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;
737
+ };
738
+ Presence.displayName = "Presence";
739
+ function usePresence(present) {
740
+ const [node, setNode] = React.useState();
741
+ const stylesRef = React.useRef({});
742
+ const prevPresentRef = React.useRef(present);
743
+ const prevAnimationNameRef = React.useRef("none");
744
+ const initialState = present ? "mounted" : "unmounted";
745
+ const [state, send] = useStateMachine(initialState, {
746
+ mounted: {
747
+ UNMOUNT: "unmounted",
748
+ ANIMATION_OUT: "unmountSuspended"
749
+ },
750
+ unmountSuspended: {
751
+ MOUNT: "mounted",
752
+ ANIMATION_END: "unmounted"
753
+ },
754
+ unmounted: {
755
+ MOUNT: "mounted"
756
+ }
757
+ });
758
+ React.useEffect(() => {
759
+ const currentAnimationName = getAnimationName(stylesRef.current);
760
+ prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
761
+ }, [state]);
762
+ useLayoutEffect2(() => {
763
+ const styles = stylesRef.current;
764
+ const wasPresent = prevPresentRef.current;
765
+ const hasPresentChanged = wasPresent !== present;
766
+ if (hasPresentChanged) {
767
+ const prevAnimationName = prevAnimationNameRef.current;
768
+ const currentAnimationName = getAnimationName(styles);
769
+ if (present) {
770
+ send("MOUNT");
771
+ } else if (currentAnimationName === "none" || styles?.display === "none") {
772
+ send("UNMOUNT");
773
+ } else {
774
+ const isAnimating = prevAnimationName !== currentAnimationName;
775
+ if (wasPresent && isAnimating) {
776
+ send("ANIMATION_OUT");
777
+ } else {
778
+ send("UNMOUNT");
276
779
  }
277
- };
780
+ }
781
+ prevPresentRef.current = present;
782
+ }
783
+ }, [present, send]);
784
+ useLayoutEffect2(() => {
785
+ if (node) {
786
+ const handleAnimationEnd = (event) => {
787
+ const currentAnimationName = getAnimationName(stylesRef.current);
788
+ const isCurrentAnimation = currentAnimationName.includes(event.animationName);
789
+ if (event.target === node && isCurrentAnimation) {
790
+ ReactDOM.flushSync(() => send("ANIMATION_END"));
791
+ }
792
+ };
793
+ const handleAnimationStart = (event) => {
794
+ if (event.target === node) {
795
+ prevAnimationNameRef.current = getAnimationName(stylesRef.current);
796
+ }
797
+ };
798
+ node.addEventListener("animationstart", handleAnimationStart);
799
+ node.addEventListener("animationcancel", handleAnimationEnd);
800
+ node.addEventListener("animationend", handleAnimationEnd);
801
+ return () => {
802
+ node.removeEventListener("animationstart", handleAnimationStart);
803
+ node.removeEventListener("animationcancel", handleAnimationEnd);
804
+ node.removeEventListener("animationend", handleAnimationEnd);
805
+ };
806
+ } else {
807
+ send("ANIMATION_END");
808
+ }
809
+ }, [node, send]);
810
+ return {
811
+ isPresent: ["mounted", "unmountSuspended"].includes(state),
812
+ ref: React.useCallback((node2) => {
813
+ if (node2) stylesRef.current = getComputedStyle(node2);
814
+ setNode(node2);
815
+ }, [])
816
+ };
278
817
  }
279
- function $d3863c46a17e8a28$var$arrayRemove(array, item) {
280
- const updatedArray = [
281
- ...array
282
- ];
283
- const index = updatedArray.indexOf(item);
284
- if (index !== -1) updatedArray.splice(index, 1);
285
- return updatedArray;
818
+ function getAnimationName(styles) {
819
+ return styles?.animationName || "none";
286
820
  }
287
- function $d3863c46a17e8a28$var$removeLinks(items) {
288
- return items.filter((item)=>item.tagName !== 'A'
289
- );
821
+ function getElementRef(element) {
822
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
823
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
824
+ if (mayWarn) {
825
+ return element.ref;
826
+ }
827
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
828
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
829
+ if (mayWarn) {
830
+ return element.props.ref;
831
+ }
832
+ return element.props.ref || element.ref;
833
+ }
834
+
835
+ var count = 0;
836
+ function useFocusGuards() {
837
+ React.useEffect(() => {
838
+ const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]");
839
+ document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard());
840
+ document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard());
841
+ count++;
842
+ return () => {
843
+ if (count === 1) {
844
+ document.querySelectorAll("[data-radix-focus-guard]").forEach((node) => node.remove());
845
+ }
846
+ count--;
847
+ };
848
+ }, []);
290
849
  }
850
+ function createFocusGuard() {
851
+ const element = document.createElement("span");
852
+ element.setAttribute("data-radix-focus-guard", "");
853
+ element.tabIndex = 0;
854
+ element.style.cssText = "outline: none; opacity: 0; position: fixed; pointer-events: none";
855
+ return element;
856
+ }
857
+
858
+ var effectCar = createSidecarMedium();
291
859
 
292
- /** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;
860
+ var nothing = function () {
861
+ return;
862
+ };
293
863
  /**
294
- * Injects a pair of focus guards at the edges of the whole DOM tree
295
- * to ensure `focusin` & `focusout` events can be caught consistently.
296
- */ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {
297
- useEffect(()=>{
298
- var _edgeGuards$, _edgeGuards$2;
299
- const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');
300
- document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());
301
- document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());
302
- $3db38b7d1fb3fe6a$var$count++;
303
- return ()=>{
304
- if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()
305
- );
306
- $3db38b7d1fb3fe6a$var$count--;
864
+ * Removes scrollbar from the page and contain the scroll within the Lock
865
+ */
866
+ var RemoveScroll$1 = React.forwardRef(function (props, parentRef) {
867
+ var ref = React.useRef(null);
868
+ var _a = React.useState({
869
+ onScrollCapture: nothing,
870
+ onWheelCapture: nothing,
871
+ onTouchMoveCapture: nothing,
872
+ }), callbacks = _a[0], setCallbacks = _a[1];
873
+ var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noIsolation", "inert", "allowPinchZoom", "as", "gapMode"]);
874
+ var SideCar = sideCar;
875
+ var containerRef = useMergeRefs([ref, parentRef]);
876
+ var containerProps = __assign(__assign({}, rest), callbacks);
877
+ return (React.createElement(React.Fragment, null,
878
+ enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),
879
+ forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));
880
+ });
881
+ RemoveScroll$1.defaultProps = {
882
+ enabled: true,
883
+ removeScrollBar: true,
884
+ inert: false,
885
+ };
886
+ RemoveScroll$1.classNames = {
887
+ fullWidth: fullWidthClassName,
888
+ zeroRight: zeroRightClassName,
889
+ };
890
+
891
+ var passiveSupported = false;
892
+ if (typeof window !== 'undefined') {
893
+ try {
894
+ var options = Object.defineProperty({}, 'passive', {
895
+ get: function () {
896
+ passiveSupported = true;
897
+ return true;
898
+ },
899
+ });
900
+ // @ts-ignore
901
+ window.addEventListener('test', options, options);
902
+ // @ts-ignore
903
+ window.removeEventListener('test', options, options);
904
+ }
905
+ catch (err) {
906
+ passiveSupported = false;
907
+ }
908
+ }
909
+ var nonPassive = passiveSupported ? { passive: false } : false;
910
+
911
+ var alwaysContainsScroll = function (node) {
912
+ // textarea will always _contain_ scroll inside self. It only can be hidden
913
+ return node.tagName === 'TEXTAREA';
914
+ };
915
+ var elementCanBeScrolled = function (node, overflow) {
916
+ var styles = window.getComputedStyle(node);
917
+ return (
918
+ // not-not-scrollable
919
+ styles[overflow] !== 'hidden' &&
920
+ // contains scroll inside self
921
+ !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));
922
+ };
923
+ var elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };
924
+ var elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };
925
+ var locationCouldBeScrolled = function (axis, node) {
926
+ var ownerDocument = node.ownerDocument;
927
+ var current = node;
928
+ do {
929
+ // Skip over shadow root
930
+ if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {
931
+ current = current.host;
932
+ }
933
+ var isScrollable = elementCouldBeScrolled(axis, current);
934
+ if (isScrollable) {
935
+ var _a = getScrollVariables(axis, current), s = _a[1], d = _a[2];
936
+ if (s > d) {
937
+ return true;
938
+ }
939
+ }
940
+ current = current.parentNode;
941
+ } while (current && current !== ownerDocument.body);
942
+ return false;
943
+ };
944
+ var getVScrollVariables = function (_a) {
945
+ var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;
946
+ return [
947
+ scrollTop,
948
+ scrollHeight,
949
+ clientHeight,
950
+ ];
951
+ };
952
+ var getHScrollVariables = function (_a) {
953
+ var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
954
+ return [
955
+ scrollLeft,
956
+ scrollWidth,
957
+ clientWidth,
958
+ ];
959
+ };
960
+ var elementCouldBeScrolled = function (axis, node) {
961
+ return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);
962
+ };
963
+ var getScrollVariables = function (axis, node) {
964
+ return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);
965
+ };
966
+ var getDirectionFactor = function (axis, direction) {
967
+ /**
968
+ * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,
969
+ * and then increasingly negative as you scroll towards the end of the content.
970
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft
971
+ */
972
+ return axis === 'h' && direction === 'rtl' ? -1 : 1;
973
+ };
974
+ var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {
975
+ var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);
976
+ var delta = directionFactor * sourceDelta;
977
+ // find scrollable target
978
+ var target = event.target;
979
+ var targetInLock = endTarget.contains(target);
980
+ var shouldCancelScroll = false;
981
+ var isDeltaPositive = delta > 0;
982
+ var availableScroll = 0;
983
+ var availableScrollTop = 0;
984
+ do {
985
+ var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];
986
+ var elementScroll = scroll_1 - capacity - directionFactor * position;
987
+ if (position || elementScroll) {
988
+ if (elementCouldBeScrolled(axis, target)) {
989
+ availableScroll += elementScroll;
990
+ availableScrollTop += position;
991
+ }
992
+ }
993
+ if (target instanceof ShadowRoot) {
994
+ target = target.host;
995
+ }
996
+ else {
997
+ target = target.parentNode;
998
+ }
999
+ } while (
1000
+ // portaled content
1001
+ (!targetInLock && target !== document.body) ||
1002
+ // self content
1003
+ (targetInLock && (endTarget.contains(target) || endTarget === target)));
1004
+ // handle epsilon around 0 (non standard zoom levels)
1005
+ if (isDeltaPositive &&
1006
+ ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {
1007
+ shouldCancelScroll = true;
1008
+ }
1009
+ else if (!isDeltaPositive &&
1010
+ ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {
1011
+ shouldCancelScroll = true;
1012
+ }
1013
+ return shouldCancelScroll;
1014
+ };
1015
+
1016
+ var getTouchXY = function (event) {
1017
+ return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];
1018
+ };
1019
+ var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };
1020
+ var extractRef = function (ref) {
1021
+ return ref && 'current' in ref ? ref.current : ref;
1022
+ };
1023
+ var deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };
1024
+ var generateStyle = function (id) { return "\n .block-interactivity-".concat(id, " {pointer-events: none;}\n .allow-interactivity-").concat(id, " {pointer-events: all;}\n"); };
1025
+ var idCounter = 0;
1026
+ var lockStack = [];
1027
+ function RemoveScrollSideCar(props) {
1028
+ var shouldPreventQueue = React.useRef([]);
1029
+ var touchStartRef = React.useRef([0, 0]);
1030
+ var activeAxis = React.useRef();
1031
+ var id = React.useState(idCounter++)[0];
1032
+ var Style = React.useState(styleSingleton)[0];
1033
+ var lastProps = React.useRef(props);
1034
+ React.useEffect(function () {
1035
+ lastProps.current = props;
1036
+ }, [props]);
1037
+ React.useEffect(function () {
1038
+ if (props.inert) {
1039
+ document.body.classList.add("block-interactivity-".concat(id));
1040
+ var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
1041
+ allow_1.forEach(function (el) { return el.classList.add("allow-interactivity-".concat(id)); });
1042
+ return function () {
1043
+ document.body.classList.remove("block-interactivity-".concat(id));
1044
+ allow_1.forEach(function (el) { return el.classList.remove("allow-interactivity-".concat(id)); });
1045
+ };
1046
+ }
1047
+ return;
1048
+ }, [props.inert, props.lockRef.current, props.shards]);
1049
+ var shouldCancelEvent = React.useCallback(function (event, parent) {
1050
+ if ('touches' in event && event.touches.length === 2) {
1051
+ return !lastProps.current.allowPinchZoom;
1052
+ }
1053
+ var touch = getTouchXY(event);
1054
+ var touchStart = touchStartRef.current;
1055
+ var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];
1056
+ var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];
1057
+ var currentAxis;
1058
+ var target = event.target;
1059
+ var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';
1060
+ // allow horizontal touch move on Range inputs. They will not cause any scroll
1061
+ if ('touches' in event && moveDirection === 'h' && target.type === 'range') {
1062
+ return false;
1063
+ }
1064
+ var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);
1065
+ if (!canBeScrolledInMainDirection) {
1066
+ return true;
1067
+ }
1068
+ if (canBeScrolledInMainDirection) {
1069
+ currentAxis = moveDirection;
1070
+ }
1071
+ else {
1072
+ currentAxis = moveDirection === 'v' ? 'h' : 'v';
1073
+ canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);
1074
+ // other axis might be not scrollable
1075
+ }
1076
+ if (!canBeScrolledInMainDirection) {
1077
+ return false;
1078
+ }
1079
+ if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {
1080
+ activeAxis.current = currentAxis;
1081
+ }
1082
+ if (!currentAxis) {
1083
+ return true;
1084
+ }
1085
+ var cancelingAxis = activeAxis.current || currentAxis;
1086
+ return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);
1087
+ }, []);
1088
+ var shouldPrevent = React.useCallback(function (_event) {
1089
+ var event = _event;
1090
+ if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {
1091
+ // not the last active
1092
+ return;
1093
+ }
1094
+ var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);
1095
+ var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];
1096
+ // self event, and should be canceled
1097
+ if (sourceEvent && sourceEvent.should) {
1098
+ if (event.cancelable) {
1099
+ event.preventDefault();
1100
+ }
1101
+ return;
1102
+ }
1103
+ // outside or shard event
1104
+ if (!sourceEvent) {
1105
+ var shardNodes = (lastProps.current.shards || [])
1106
+ .map(extractRef)
1107
+ .filter(Boolean)
1108
+ .filter(function (node) { return node.contains(event.target); });
1109
+ var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;
1110
+ if (shouldStop) {
1111
+ if (event.cancelable) {
1112
+ event.preventDefault();
1113
+ }
1114
+ }
1115
+ }
1116
+ }, []);
1117
+ var shouldCancel = React.useCallback(function (name, delta, target, should) {
1118
+ var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };
1119
+ shouldPreventQueue.current.push(event);
1120
+ setTimeout(function () {
1121
+ shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });
1122
+ }, 1);
1123
+ }, []);
1124
+ var scrollTouchStart = React.useCallback(function (event) {
1125
+ touchStartRef.current = getTouchXY(event);
1126
+ activeAxis.current = undefined;
1127
+ }, []);
1128
+ var scrollWheel = React.useCallback(function (event) {
1129
+ shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
1130
+ }, []);
1131
+ var scrollTouchMove = React.useCallback(function (event) {
1132
+ shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));
1133
+ }, []);
1134
+ React.useEffect(function () {
1135
+ lockStack.push(Style);
1136
+ props.setCallbacks({
1137
+ onScrollCapture: scrollWheel,
1138
+ onWheelCapture: scrollWheel,
1139
+ onTouchMoveCapture: scrollTouchMove,
1140
+ });
1141
+ document.addEventListener('wheel', shouldPrevent, nonPassive);
1142
+ document.addEventListener('touchmove', shouldPrevent, nonPassive);
1143
+ document.addEventListener('touchstart', scrollTouchStart, nonPassive);
1144
+ return function () {
1145
+ lockStack = lockStack.filter(function (inst) { return inst !== Style; });
1146
+ document.removeEventListener('wheel', shouldPrevent, nonPassive);
1147
+ document.removeEventListener('touchmove', shouldPrevent, nonPassive);
1148
+ document.removeEventListener('touchstart', scrollTouchStart, nonPassive);
307
1149
  };
308
1150
  }, []);
1151
+ var removeScrollBar = props.removeScrollBar, inert = props.inert;
1152
+ return (React.createElement(React.Fragment, null,
1153
+ inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,
1154
+ removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));
309
1155
  }
310
- function $3db38b7d1fb3fe6a$var$createFocusGuard() {
311
- const element = document.createElement('span');
312
- element.setAttribute('data-radix-focus-guard', '');
313
- element.tabIndex = 0;
314
- element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';
315
- return element;
1156
+ function getOutermostShadowParent(node) {
1157
+ var shadowParent = null;
1158
+ while (node !== null) {
1159
+ if (node instanceof ShadowRoot) {
1160
+ shadowParent = node.host;
1161
+ node = node.host;
1162
+ }
1163
+ node = node.parentNode;
1164
+ }
1165
+ return shadowParent;
316
1166
  }
317
1167
 
318
- /* -------------------------------------------------------------------------------------------------
319
- * Dialog
320
- * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DIALOG_NAME = 'Dialog';
321
- const [$5d3850c4d0b4e6c7$var$createDialogContext, $5d3850c4d0b4e6c7$export$cc702773b8ea3e41] = $c512c27ab02ef895$export$50c7b4e9d9f19c1($5d3850c4d0b4e6c7$var$DIALOG_NAME);
322
- const [$5d3850c4d0b4e6c7$var$DialogProvider, $5d3850c4d0b4e6c7$var$useDialogContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$DIALOG_NAME);
323
- const $5d3850c4d0b4e6c7$export$3ddf2d174ce01153 = (props)=>{
324
- const { __scopeDialog: __scopeDialog , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , modal: modal = true } = props;
325
- const triggerRef = useRef(null);
326
- const contentRef = useRef(null);
327
- const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({
328
- prop: openProp,
329
- defaultProp: defaultOpen,
330
- onChange: onOpenChange
331
- });
332
- return /*#__PURE__*/ createElement($5d3850c4d0b4e6c7$var$DialogProvider, {
333
- scope: __scopeDialog,
334
- triggerRef: triggerRef,
335
- contentRef: contentRef,
336
- contentId: $1746a345f3d73bb7$export$f680877a34711e37(),
337
- titleId: $1746a345f3d73bb7$export$f680877a34711e37(),
338
- descriptionId: $1746a345f3d73bb7$export$f680877a34711e37(),
339
- open: open,
340
- onOpenChange: setOpen,
341
- onOpenToggle: useCallback(()=>setOpen((prevOpen)=>!prevOpen
342
- )
343
- , [
344
- setOpen
345
- ]),
346
- modal: modal
347
- }, children);
1168
+ var SideCar = exportSidecar(effectCar, RemoveScrollSideCar);
1169
+
1170
+ var ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll$1, __assign({}, props, { ref: ref, sideCar: SideCar }))); });
1171
+ ReactRemoveScroll.classNames = RemoveScroll$1.classNames;
1172
+ var RemoveScroll = ReactRemoveScroll;
1173
+
1174
+ var DIALOG_NAME = "Dialog";
1175
+ var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
1176
+ var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
1177
+ var Dialog = (props) => {
1178
+ const {
1179
+ __scopeDialog,
1180
+ children,
1181
+ open: openProp,
1182
+ defaultOpen,
1183
+ onOpenChange,
1184
+ modal = true
1185
+ } = props;
1186
+ const triggerRef = React.useRef(null);
1187
+ const contentRef = React.useRef(null);
1188
+ const [open = false, setOpen] = useControllableState({
1189
+ prop: openProp,
1190
+ defaultProp: defaultOpen,
1191
+ onChange: onOpenChange
1192
+ });
1193
+ return /* @__PURE__ */ jsx(
1194
+ DialogProvider,
1195
+ {
1196
+ scope: __scopeDialog,
1197
+ triggerRef,
1198
+ contentRef,
1199
+ contentId: useId(),
1200
+ titleId: useId(),
1201
+ descriptionId: useId(),
1202
+ open,
1203
+ onOpenChange: setOpen,
1204
+ onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
1205
+ modal,
1206
+ children
1207
+ }
1208
+ );
348
1209
  };
349
- /* -------------------------------------------------------------------------------------------------
350
- * DialogPortal
351
- * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$PORTAL_NAME = 'DialogPortal';
352
- const [$5d3850c4d0b4e6c7$var$PortalProvider, $5d3850c4d0b4e6c7$var$usePortalContext] = $5d3850c4d0b4e6c7$var$createDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, {
353
- forceMount: undefined
1210
+ Dialog.displayName = DIALOG_NAME;
1211
+ var TRIGGER_NAME = "DialogTrigger";
1212
+ var DialogTrigger = React.forwardRef(
1213
+ (props, forwardedRef) => {
1214
+ const { __scopeDialog, ...triggerProps } = props;
1215
+ const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
1216
+ const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
1217
+ return /* @__PURE__ */ jsx(
1218
+ Primitive.button,
1219
+ {
1220
+ type: "button",
1221
+ "aria-haspopup": "dialog",
1222
+ "aria-expanded": context.open,
1223
+ "aria-controls": context.contentId,
1224
+ "data-state": getState(context.open),
1225
+ ...triggerProps,
1226
+ ref: composedTriggerRef,
1227
+ onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
1228
+ }
1229
+ );
1230
+ }
1231
+ );
1232
+ DialogTrigger.displayName = TRIGGER_NAME;
1233
+ var PORTAL_NAME = "DialogPortal";
1234
+ var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {
1235
+ forceMount: void 0
354
1236
  });
355
- const $5d3850c4d0b4e6c7$export$dad7c95542bacce0 = (props)=>{
356
- const { __scopeDialog: __scopeDialog , forceMount: forceMount , children: children , container: container } = props;
357
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$PORTAL_NAME, __scopeDialog);
358
- return /*#__PURE__*/ createElement($5d3850c4d0b4e6c7$var$PortalProvider, {
359
- scope: __scopeDialog,
360
- forceMount: forceMount
361
- }, Children.map(children, (child)=>/*#__PURE__*/ createElement($921a889cee6df7e8$export$99c2b779aa4e8b8b, {
362
- present: forceMount || context.open
363
- }, /*#__PURE__*/ createElement($f1701beae083dbae$export$602eac185826482c, {
364
- asChild: true,
365
- container: container
366
- }, child))
367
- ));
1237
+ var DialogPortal = (props) => {
1238
+ const { __scopeDialog, forceMount, children, container } = props;
1239
+ const context = useDialogContext(PORTAL_NAME, __scopeDialog);
1240
+ return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$1, { asChild: true, container, children: child }) })) });
368
1241
  };
369
- /* -------------------------------------------------------------------------------------------------
370
- * DialogOverlay
371
- * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$OVERLAY_NAME = 'DialogOverlay';
372
- const $5d3850c4d0b4e6c7$export$bd1d06c79be19e17 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
373
- const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);
374
- const { forceMount: forceMount = portalContext.forceMount , ...overlayProps } = props;
375
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, props.__scopeDialog);
376
- return context.modal ? /*#__PURE__*/ createElement($921a889cee6df7e8$export$99c2b779aa4e8b8b, {
377
- present: forceMount || context.open
378
- }, /*#__PURE__*/ createElement($5d3850c4d0b4e6c7$var$DialogOverlayImpl, _extends({}, overlayProps, {
379
- ref: forwardedRef
380
- }))) : null;
381
- });
382
- const $5d3850c4d0b4e6c7$var$DialogOverlayImpl = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
383
- const { __scopeDialog: __scopeDialog , ...overlayProps } = props;
384
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$OVERLAY_NAME, __scopeDialog);
385
- return(/*#__PURE__*/ // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
386
- // ie. when `Overlay` and `Content` are siblings
387
- createElement($01b9c$RemoveScroll, {
388
- as: $5e63c961fc1ce211$export$8c6ed5c666ac1360,
389
- allowPinchZoom: true,
390
- shards: [
391
- context.contentRef
392
- ]
393
- }, /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div, _extends({
394
- "data-state": $5d3850c4d0b4e6c7$var$getState(context.open)
395
- }, overlayProps, {
396
- ref: forwardedRef // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.
397
- ,
398
- style: {
399
- pointerEvents: 'auto',
400
- ...overlayProps.style
1242
+ DialogPortal.displayName = PORTAL_NAME;
1243
+ var OVERLAY_NAME = "DialogOverlay";
1244
+ var DialogOverlay = React.forwardRef(
1245
+ (props, forwardedRef) => {
1246
+ const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
1247
+ const { forceMount = portalContext.forceMount, ...overlayProps } = props;
1248
+ const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
1249
+ return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
1250
+ }
1251
+ );
1252
+ DialogOverlay.displayName = OVERLAY_NAME;
1253
+ var DialogOverlayImpl = React.forwardRef(
1254
+ (props, forwardedRef) => {
1255
+ const { __scopeDialog, ...overlayProps } = props;
1256
+ const context = useDialogContext(OVERLAY_NAME, __scopeDialog);
1257
+ return (
1258
+ // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
1259
+ // ie. when `Overlay` and `Content` are siblings
1260
+ /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(
1261
+ Primitive.div,
1262
+ {
1263
+ "data-state": getState(context.open),
1264
+ ...overlayProps,
1265
+ ref: forwardedRef,
1266
+ style: { pointerEvents: "auto", ...overlayProps.style }
401
1267
  }
402
- }))));
403
- });
404
- /* -------------------------------------------------------------------------------------------------
405
- * DialogContent
406
- * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$CONTENT_NAME = 'DialogContent';
407
- const $5d3850c4d0b4e6c7$export$b6d9565de1e068cf = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
408
- const portalContext = $5d3850c4d0b4e6c7$var$usePortalContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);
409
- const { forceMount: forceMount = portalContext.forceMount , ...contentProps } = props;
410
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);
411
- return /*#__PURE__*/ createElement($921a889cee6df7e8$export$99c2b779aa4e8b8b, {
412
- present: forceMount || context.open
413
- }, context.modal ? /*#__PURE__*/ createElement($5d3850c4d0b4e6c7$var$DialogContentModal, _extends({}, contentProps, {
414
- ref: forwardedRef
415
- })) : /*#__PURE__*/ createElement($5d3850c4d0b4e6c7$var$DialogContentNonModal, _extends({}, contentProps, {
416
- ref: forwardedRef
417
- })));
418
- });
419
- /* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentModal = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
420
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);
421
- const contentRef = useRef(null);
422
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, context.contentRef, contentRef); // aria-hide everything except the content (better supported equivalent to setting aria-modal)
423
- useEffect(()=>{
424
- const content = contentRef.current;
425
- if (content) return hideOthers(content);
1268
+ ) })
1269
+ );
1270
+ }
1271
+ );
1272
+ var CONTENT_NAME = "DialogContent";
1273
+ var DialogContent = React.forwardRef(
1274
+ (props, forwardedRef) => {
1275
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
1276
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
1277
+ const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
1278
+ return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
1279
+ }
1280
+ );
1281
+ DialogContent.displayName = CONTENT_NAME;
1282
+ var DialogContentModal = React.forwardRef(
1283
+ (props, forwardedRef) => {
1284
+ const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
1285
+ const contentRef = React.useRef(null);
1286
+ const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
1287
+ React.useEffect(() => {
1288
+ const content = contentRef.current;
1289
+ if (content) return hideOthers(content);
426
1290
  }, []);
427
- return /*#__PURE__*/ createElement($5d3850c4d0b4e6c7$var$DialogContentImpl, _extends({}, props, {
428
- ref: composedRefs // we make sure focus isn't trapped once `DialogContent` has been closed
429
- ,
1291
+ return /* @__PURE__ */ jsx(
1292
+ DialogContentImpl,
1293
+ {
1294
+ ...props,
1295
+ ref: composedRefs,
430
1296
  trapFocus: context.open,
431
1297
  disableOutsidePointerEvents: true,
432
- onCloseAutoFocus: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onCloseAutoFocus, (event)=>{
433
- var _context$triggerRef$c;
434
- event.preventDefault();
435
- (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();
1298
+ onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
1299
+ event.preventDefault();
1300
+ context.triggerRef.current?.focus();
436
1301
  }),
437
- onPointerDownOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerDownOutside, (event)=>{
438
- const originalEvent = event.detail.originalEvent;
439
- const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
440
- const isRightClick = originalEvent.button === 2 || ctrlLeftClick; // If the event is a right-click, we shouldn't close because
441
- // it is effectively as if we right-clicked the `Overlay`.
442
- if (isRightClick) event.preventDefault();
443
- }) // When focus is trapped, a `focusout` event may still happen.
444
- ,
445
- onFocusOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusOutside, (event)=>event.preventDefault()
1302
+ onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {
1303
+ const originalEvent = event.detail.originalEvent;
1304
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
1305
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
1306
+ if (isRightClick) event.preventDefault();
1307
+ }),
1308
+ onFocusOutside: composeEventHandlers(
1309
+ props.onFocusOutside,
1310
+ (event) => event.preventDefault()
446
1311
  )
447
- }));
448
- });
449
- /* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentNonModal = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
450
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, props.__scopeDialog);
451
- const hasInteractedOutsideRef = useRef(false);
452
- const hasPointerDownOutsideRef = useRef(false);
453
- return /*#__PURE__*/ createElement($5d3850c4d0b4e6c7$var$DialogContentImpl, _extends({}, props, {
1312
+ }
1313
+ );
1314
+ }
1315
+ );
1316
+ var DialogContentNonModal = React.forwardRef(
1317
+ (props, forwardedRef) => {
1318
+ const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
1319
+ const hasInteractedOutsideRef = React.useRef(false);
1320
+ const hasPointerDownOutsideRef = React.useRef(false);
1321
+ return /* @__PURE__ */ jsx(
1322
+ DialogContentImpl,
1323
+ {
1324
+ ...props,
454
1325
  ref: forwardedRef,
455
1326
  trapFocus: false,
456
1327
  disableOutsidePointerEvents: false,
457
- onCloseAutoFocus: (event)=>{
458
- var _props$onCloseAutoFoc;
459
- (_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);
460
- if (!event.defaultPrevented) {
461
- var _context$triggerRef$c2;
462
- if (!hasInteractedOutsideRef.current) (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus(); // Always prevent auto focus because we either focus manually or want user agent focus
463
- event.preventDefault();
464
- }
465
- hasInteractedOutsideRef.current = false;
466
- hasPointerDownOutsideRef.current = false;
1328
+ onCloseAutoFocus: (event) => {
1329
+ props.onCloseAutoFocus?.(event);
1330
+ if (!event.defaultPrevented) {
1331
+ if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();
1332
+ event.preventDefault();
1333
+ }
1334
+ hasInteractedOutsideRef.current = false;
1335
+ hasPointerDownOutsideRef.current = false;
467
1336
  },
468
- onInteractOutside: (event)=>{
469
- var _props$onInteractOuts, _context$triggerRef$c3;
470
- (_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);
471
- if (!event.defaultPrevented) {
472
- hasInteractedOutsideRef.current = true;
473
- if (event.detail.originalEvent.type === 'pointerdown') hasPointerDownOutsideRef.current = true;
474
- } // Prevent dismissing when clicking the trigger.
475
- // As the trigger is already setup to close, without doing so would
476
- // cause it to close and immediately open.
477
- const target = event.target;
478
- const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);
479
- if (targetIsTrigger) event.preventDefault(); // On Safari if the trigger is inside a container with tabIndex={0}, when clicked
480
- // we will get the pointer down outside event on the trigger, but then a subsequent
481
- // focus outside event on the container, we ignore any focus outside event when we've
482
- // already had a pointer down outside event.
483
- if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) event.preventDefault();
1337
+ onInteractOutside: (event) => {
1338
+ props.onInteractOutside?.(event);
1339
+ if (!event.defaultPrevented) {
1340
+ hasInteractedOutsideRef.current = true;
1341
+ if (event.detail.originalEvent.type === "pointerdown") {
1342
+ hasPointerDownOutsideRef.current = true;
1343
+ }
1344
+ }
1345
+ const target = event.target;
1346
+ const targetIsTrigger = context.triggerRef.current?.contains(target);
1347
+ if (targetIsTrigger) event.preventDefault();
1348
+ if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
1349
+ event.preventDefault();
1350
+ }
484
1351
  }
485
- }));
486
- });
487
- /* -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DialogContentImpl = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
488
- const { __scopeDialog: __scopeDialog , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , ...contentProps } = props;
489
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$CONTENT_NAME, __scopeDialog);
490
- const contentRef = useRef(null);
491
- const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, contentRef); // Make sure the whole tree has focus guards as our `Dialog` will be
492
- // the last element in the DOM (beacuse of the `Portal`)
493
- $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();
494
- return /*#__PURE__*/ createElement(Fragment, null, /*#__PURE__*/ createElement($d3863c46a17e8a28$export$20e40289641fbbb6, {
495
- asChild: true,
496
- loop: true,
497
- trapped: trapFocus,
498
- onMountAutoFocus: onOpenAutoFocus,
499
- onUnmountAutoFocus: onCloseAutoFocus
500
- }, /*#__PURE__*/ createElement($5cb92bef7577960e$export$177fb62ff3ec1f22, _extends({
501
- role: "dialog",
502
- id: context.contentId,
503
- "aria-describedby": context.descriptionId,
504
- "aria-labelledby": context.titleId,
505
- "data-state": $5d3850c4d0b4e6c7$var$getState(context.open)
506
- }, contentProps, {
507
- ref: composedRefs,
508
- onDismiss: ()=>context.onOpenChange(false)
509
- }))), false);
510
- });
511
- /* -------------------------------------------------------------------------------------------------
512
- * DialogTitle
513
- * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$TITLE_NAME = 'DialogTitle';
514
- const $5d3850c4d0b4e6c7$export$16f7638e4a34b909 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
515
- const { __scopeDialog: __scopeDialog , ...titleProps } = props;
516
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$TITLE_NAME, __scopeDialog);
517
- return /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.h2, _extends({
518
- id: context.titleId
519
- }, titleProps, {
520
- ref: forwardedRef
521
- }));
522
- });
523
- /* -------------------------------------------------------------------------------------------------
524
- * DialogDescription
525
- * -----------------------------------------------------------------------------------------------*/ const $5d3850c4d0b4e6c7$var$DESCRIPTION_NAME = 'DialogDescription';
526
- const $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5 = /*#__PURE__*/ forwardRef((props, forwardedRef)=>{
527
- const { __scopeDialog: __scopeDialog , ...descriptionProps } = props;
528
- const context = $5d3850c4d0b4e6c7$var$useDialogContext($5d3850c4d0b4e6c7$var$DESCRIPTION_NAME, __scopeDialog);
529
- return /*#__PURE__*/ createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.p, _extends({
530
- id: context.descriptionId
531
- }, descriptionProps, {
532
- ref: forwardedRef
533
- }));
1352
+ }
1353
+ );
1354
+ }
1355
+ );
1356
+ var DialogContentImpl = React.forwardRef(
1357
+ (props, forwardedRef) => {
1358
+ const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;
1359
+ const context = useDialogContext(CONTENT_NAME, __scopeDialog);
1360
+ const contentRef = React.useRef(null);
1361
+ const composedRefs = useComposedRefs(forwardedRef, contentRef);
1362
+ useFocusGuards();
1363
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1364
+ /* @__PURE__ */ jsx(
1365
+ FocusScope,
1366
+ {
1367
+ asChild: true,
1368
+ loop: true,
1369
+ trapped: trapFocus,
1370
+ onMountAutoFocus: onOpenAutoFocus,
1371
+ onUnmountAutoFocus: onCloseAutoFocus,
1372
+ children: /* @__PURE__ */ jsx(
1373
+ DismissableLayer,
1374
+ {
1375
+ role: "dialog",
1376
+ id: context.contentId,
1377
+ "aria-describedby": context.descriptionId,
1378
+ "aria-labelledby": context.titleId,
1379
+ "data-state": getState(context.open),
1380
+ ...contentProps,
1381
+ ref: composedRefs,
1382
+ onDismiss: () => context.onOpenChange(false)
1383
+ }
1384
+ )
1385
+ }
1386
+ ),
1387
+ /* @__PURE__ */ jsxs(Fragment, { children: [
1388
+ /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),
1389
+ /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
1390
+ ] })
1391
+ ] });
1392
+ }
1393
+ );
1394
+ var TITLE_NAME = "DialogTitle";
1395
+ var DialogTitle = React.forwardRef(
1396
+ (props, forwardedRef) => {
1397
+ const { __scopeDialog, ...titleProps } = props;
1398
+ const context = useDialogContext(TITLE_NAME, __scopeDialog);
1399
+ return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
1400
+ }
1401
+ );
1402
+ DialogTitle.displayName = TITLE_NAME;
1403
+ var DESCRIPTION_NAME = "DialogDescription";
1404
+ var DialogDescription = React.forwardRef(
1405
+ (props, forwardedRef) => {
1406
+ const { __scopeDialog, ...descriptionProps } = props;
1407
+ const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
1408
+ return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
1409
+ }
1410
+ );
1411
+ DialogDescription.displayName = DESCRIPTION_NAME;
1412
+ var CLOSE_NAME = "DialogClose";
1413
+ var DialogClose = React.forwardRef(
1414
+ (props, forwardedRef) => {
1415
+ const { __scopeDialog, ...closeProps } = props;
1416
+ const context = useDialogContext(CLOSE_NAME, __scopeDialog);
1417
+ return /* @__PURE__ */ jsx(
1418
+ Primitive.button,
1419
+ {
1420
+ type: "button",
1421
+ ...closeProps,
1422
+ ref: forwardedRef,
1423
+ onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))
1424
+ }
1425
+ );
1426
+ }
1427
+ );
1428
+ DialogClose.displayName = CLOSE_NAME;
1429
+ function getState(open) {
1430
+ return open ? "open" : "closed";
1431
+ }
1432
+ var TITLE_WARNING_NAME = "DialogTitleWarning";
1433
+ var [WarningProvider, useWarningContext] = createContext2(TITLE_WARNING_NAME, {
1434
+ contentName: CONTENT_NAME,
1435
+ titleName: TITLE_NAME,
1436
+ docsSlug: "dialog"
534
1437
  });
535
- /* -----------------------------------------------------------------------------------------------*/ function $5d3850c4d0b4e6c7$var$getState(open) {
536
- return open ? 'open' : 'closed';
537
- }
538
- const $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9 = $5d3850c4d0b4e6c7$export$3ddf2d174ce01153;
539
- const $5d3850c4d0b4e6c7$export$602eac185826482c = $5d3850c4d0b4e6c7$export$dad7c95542bacce0;
540
- const $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff = $5d3850c4d0b4e6c7$export$bd1d06c79be19e17;
541
- const $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 = $5d3850c4d0b4e6c7$export$b6d9565de1e068cf;
542
- const $5d3850c4d0b4e6c7$export$f99233281efd08a0 = $5d3850c4d0b4e6c7$export$16f7638e4a34b909;
543
- const $5d3850c4d0b4e6c7$export$393edc798c47379d = $5d3850c4d0b4e6c7$export$94e94c2ec2c954d5;
1438
+ var TitleWarning = ({ titleId }) => {
1439
+ const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);
1440
+ const MESSAGE = `\`${titleWarningContext.contentName}\` requires a \`${titleWarningContext.titleName}\` for the component to be accessible for screen reader users.
1441
+
1442
+ If you want to hide the \`${titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component.
1443
+
1444
+ For more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;
1445
+ React.useEffect(() => {
1446
+ if (titleId) {
1447
+ const hasTitle = document.getElementById(titleId);
1448
+ if (!hasTitle) console.error(MESSAGE);
1449
+ }
1450
+ }, [MESSAGE, titleId]);
1451
+ return null;
1452
+ };
1453
+ var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning";
1454
+ var DescriptionWarning = ({ contentRef, descriptionId }) => {
1455
+ const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);
1456
+ const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${descriptionWarningContext.contentName}}.`;
1457
+ React.useEffect(() => {
1458
+ const describedById = contentRef.current?.getAttribute("aria-describedby");
1459
+ if (descriptionId && describedById) {
1460
+ const hasDescription = document.getElementById(descriptionId);
1461
+ if (!hasDescription) console.warn(MESSAGE);
1462
+ }
1463
+ }, [MESSAGE, contentRef, descriptionId]);
1464
+ return null;
1465
+ };
1466
+ var Root = Dialog;
1467
+ var Portal = DialogPortal;
1468
+ var Overlay = DialogOverlay;
1469
+ var Content = DialogContent;
1470
+ var Title = DialogTitle;
1471
+ var Description = DialogDescription;
544
1472
 
545
- /** Use `Modal` to focus a user's attention to an urgent or required prompt for interaction or input. */
1473
+ /** Use `Modal` to display information that needs immediate action from a user. */
546
1474
  var Modal = function (_a) {
547
1475
  var title = _a.title, description = _a.description, ariaDescribedBy = _a.ariaDescribedBy, isOpen = _a.isOpen, actions = _a.actions, onRequestClose = _a.onRequestClose, children = _a.children, _b = _a.role, role = _b === void 0 ? "dialog" : _b, _c = _a.shouldReturnFocus, shouldReturnFocus = _c === void 0 ? true : _c, _d = _a.isContentScrollable, isContentScrollable = _d === void 0 ? false : _d, _e = _a.size, size = _e === void 0 ? "l" : _e, props = __rest(_a, ["title", "description", "ariaDescribedBy", "isOpen", "actions", "onRequestClose", "children", "role", "shouldReturnFocus", "isContentScrollable", "size"]);
548
- var arcRootElement = useContext(ArcRootElementContext);
1476
+ var _f = useThemeElement(), themeElement = _f[0], setThemeElement = _f[1];
549
1477
  var triggerRef = useRef(null);
550
1478
  var setTriggerElement = function () {
551
1479
  return shouldReturnFocus &&
@@ -564,28 +1492,32 @@ var Modal = function (_a) {
564
1492
  onRequestClose();
565
1493
  }
566
1494
  };
567
- return (React__default.createElement($5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9, { open: isOpen },
568
- React__default.createElement($5d3850c4d0b4e6c7$export$602eac185826482c, { container: arcRootElement || undefined },
569
- React__default.createElement($5d3850c4d0b4e6c7$export$c6fdb837b070b4ff, { className: "arc-Modal-overlay" },
570
- React__default.createElement($5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2, __assign({}, ariaProps, { role: role, onOpenAutoFocus: setTriggerElement, onCloseAutoFocus: focusTriggerElement, onEscapeKeyDown: closeModal, onInteractOutside: closeModal, className: classNames("arc-Modal-dialog", "arc-Modal-dialog--".concat(size), {
571
- "arc-Modal-dialog--maxHeightWindow": isContentScrollable
572
- }) }, filterDataAttrs(props)),
573
- React__default.createElement("div", { className: "arc-Modal-section" },
574
- React__default.createElement($5d3850c4d0b4e6c7$export$f99233281efd08a0, { asChild: true },
575
- React__default.createElement(Heading, { level: "1", size: "m" }, title))),
576
- React__default.createElement(VerticalSpace, { size: "12" }),
577
- hasContent && (React__default.createElement("div", { className: "arc-Modal-content" },
1495
+ return (React__default.createElement("div", { ref: setThemeElement },
1496
+ React__default.createElement(Root, { open: isOpen },
1497
+ React__default.createElement(Portal, { container: themeElement },
1498
+ React__default.createElement(Overlay, { className: "arc-Modal-overlay" },
1499
+ React__default.createElement(Content, __assign({}, ariaProps, { role: role, onOpenAutoFocus: setTriggerElement, onCloseAutoFocus: focusTriggerElement, onEscapeKeyDown: closeModal, onInteractOutside: closeModal, "aria-modal": "true", className: classNames("arc-Modal-dialog", "arc-Modal-dialog--".concat(size), {
1500
+ "arc-Modal-dialog--maxHeightWindow": isContentScrollable
1501
+ }) }, filterDataAttrs(props)),
578
1502
  React__default.createElement("div", { className: "arc-Modal-section" },
579
- description && (React__default.createElement($5d3850c4d0b4e6c7$export$393edc798c47379d, { asChild: true },
580
- React__default.createElement(Text, null, description))),
581
- description && children && (React__default.createElement(VerticalSpace, { "data-testid": "arc-modal-vertical-space", size: "20" })),
582
- children))),
583
- actions && (React__default.createElement("div", { className: "arc-Modal-section" },
584
- React__default.createElement("div", { className: "arc-Modal-actions" }, actions.map(function (props, i) { return (React__default.createElement("div", { key: "arc-modal-button-".concat(i), className: "arc-Modal-actionButton" },
585
- React__default.createElement(Button, __assign({ isFullWidth: true }, props)))); })))),
586
- canShowClose && (React__default.createElement("div", { className: "arc-Modal-iconContainer" },
587
- React__default.createElement("button", { "aria-label": "close", onClick: closeModal, className: "arc-Modal-closeButton" },
588
- React__default.createElement(ThemeIcon, { size: 32, icon: "modalClose" })))))))));
1503
+ React__default.createElement(Surface, null,
1504
+ React__default.createElement(Title, { asChild: true },
1505
+ React__default.createElement(Heading, { level: "1", size: "m" }, title)))),
1506
+ React__default.createElement(VerticalSpace, { size: "12" }),
1507
+ hasContent && (React__default.createElement("div", { className: "arc-Modal-content" },
1508
+ React__default.createElement("div", { className: "arc-Modal-section" },
1509
+ React__default.createElement(Surface, null,
1510
+ description && (React__default.createElement(Description, { asChild: true },
1511
+ React__default.createElement(Text, null, description))),
1512
+ description && children && (React__default.createElement(VerticalSpace, { "data-testid": "arc-modal-vertical-space", size: "20" })),
1513
+ children)))),
1514
+ actions && (React__default.createElement("div", { className: "arc-Modal-section" },
1515
+ React__default.createElement(Surface, null,
1516
+ React__default.createElement("div", { className: "arc-Modal-actions" }, actions.map(function (props, i) { return (React__default.createElement("div", { key: "arc-modal-button-".concat(i), className: "arc-Modal-actionButton" },
1517
+ React__default.createElement(ButtonV2, __assign({ isFullWidth: true }, props)))); }))))),
1518
+ canShowClose && (React__default.createElement("div", { className: "arc-Modal-iconContainer" },
1519
+ React__default.createElement("button", { "aria-label": "close", onClick: closeModal, className: "arc-Modal-closeButton" },
1520
+ React__default.createElement(ThemeIcon, { size: 32, icon: "modalClose" }))))))))));
589
1521
  };
590
1522
 
591
1523
  export { Modal };