@preply/ds-web-lib 10.0.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/Accordion-B0hR-tcI.js +96 -0
  2. package/dist/AlertBannerProvider-Cf7w9AOq.js +76 -0
  3. package/dist/AlertDialog-BG-diKBi.js +475 -0
  4. package/dist/Avatar-B-JdqVyg.js +66 -0
  5. package/dist/AvatarWithStatus-CD9jEqEB.js +36 -0
  6. package/dist/Badge-Dd-CLBoW.js +50 -0
  7. package/dist/Box-BJBE9KNm.js +91 -0
  8. package/dist/BubbleCounter.module-BU2S0euA.js +16 -0
  9. package/dist/Button-C35BZJZT.js +91 -0
  10. package/dist/ButtonBase-8eUyTWxX.js +215 -0
  11. package/dist/Checkbox-CtolNbxI.js +108 -0
  12. package/dist/Chips-BRGw7Uup.js +99 -0
  13. package/dist/ChipsPrimitive-Bezq7ptE.js +1179 -0
  14. package/dist/CountryFlag-DVDKHmQH.js +43 -0
  15. package/dist/Dialog.module-Db2BJAn4.js +21 -0
  16. package/dist/DialogCloseButton-DjDd9Mid.js +98 -0
  17. package/dist/DialogDescription-8zw9t6pm.js +44 -0
  18. package/dist/DialogRoot-B67oJduC.js +335 -0
  19. package/dist/DialogRootContext-Bz8RW-Mq.js +12 -0
  20. package/dist/DialogTitle-C2Nn2ys-.js +43 -0
  21. package/dist/Divider-DvwDWB9_.js +17 -0
  22. package/dist/DropdownMenu.primitives-BrsTBvMk.js +4007 -0
  23. package/dist/FieldButton-B2slox8P.js +32 -0
  24. package/dist/FormControl-qnbQL1iF.js +128 -0
  25. package/dist/Heading-DA9gHfsx.js +71 -0
  26. package/dist/Icon-CixAeOSd.js +48 -0
  27. package/dist/IconButton-BPKpgfep.js +31 -0
  28. package/dist/InputContainer-CzzuOe_p.js +38 -0
  29. package/dist/LayoutFlex-e9auDvWD.js +86 -0
  30. package/dist/LayoutFlexItem-D9ziMmHe.js +48 -0
  31. package/dist/LayoutGridItem-Q8Lnvrri.js +34 -0
  32. package/dist/Link-CdoJVeER.js +66 -0
  33. package/dist/Loader-BMOxdJce.js +26 -0
  34. package/dist/OnboardingTooltip-B47_Yrsj.js +165 -0
  35. package/dist/OnboardingTour-DUUoI5WE.js +131 -0
  36. package/dist/PasswordField-Bx5YG62t.js +93 -0
  37. package/dist/PreplyLogo-abgOre30.js +112 -0
  38. package/dist/ProgressBar-CEU4GyHn.js +31 -0
  39. package/dist/ProgressSteps-BSqopxqv.js +45 -0
  40. package/dist/Select-Bo7PX_8V.js +124 -0
  41. package/dist/Slider-Crg4DEn_.js +64 -0
  42. package/dist/Spinner-Ck8KQA22.js +86 -0
  43. package/dist/Stars-D5QspUBE.js +72 -0
  44. package/dist/Steps-DbN5vFrP.js +173 -0
  45. package/dist/Switch-Ck_xB0ID.js +49 -0
  46. package/dist/Text-CaOF75Z-.js +121 -0
  47. package/dist/TextHighlighted-Dwq9Clgn.js +34 -0
  48. package/dist/TextInline-BcA4H2Tk.js +34 -0
  49. package/dist/Toast-wJAjSLfo.js +1019 -0
  50. package/dist/TokyoUIChevronDown-DGcVqR1z.js +14 -0
  51. package/dist/Tooltip-grvKQxTN.js +84 -0
  52. package/dist/VisuallyHidden-CtcHcZCK.js +29 -0
  53. package/dist/align-self-VrZUceie.js +42 -0
  54. package/dist/assets/Accordion.css +2 -2
  55. package/dist/assets/AlertBannerProvider.css +2 -2
  56. package/dist/assets/AlertDialog.css +2 -2
  57. package/dist/assets/Avatar.css +3 -3
  58. package/dist/assets/AvatarWithStatus.css +2 -2
  59. package/dist/assets/Badge.css +1 -1
  60. package/dist/assets/Box.css +3 -3
  61. package/dist/assets/BubbleCounter.css +1 -1
  62. package/dist/assets/Button.css +4 -4
  63. package/dist/assets/ButtonBase.css +40 -46
  64. package/dist/assets/Checkbox.css +1 -1
  65. package/dist/assets/Chips.css +2 -2
  66. package/dist/assets/ChipsPrimitive.css +2 -2
  67. package/dist/assets/CountryFlag.css +1 -1
  68. package/dist/assets/Dialog.css +13 -4
  69. package/dist/assets/Divider.css +1 -1
  70. package/dist/assets/DropdownMenu.css +2 -2
  71. package/dist/assets/FieldButton.css +3 -3
  72. package/dist/assets/FormControl.css +1 -1
  73. package/dist/assets/Heading.css +3 -3
  74. package/dist/assets/Icon.css +3 -3
  75. package/dist/assets/InputContainer.css +2 -2
  76. package/dist/assets/LayoutFlex.css +1 -1
  77. package/dist/assets/LayoutFlexItem.css +1 -1
  78. package/dist/assets/Link.css +3 -3
  79. package/dist/assets/Loader.css +1 -1
  80. package/dist/assets/OnboardingTooltip.css +6 -4
  81. package/dist/assets/OnboardingTour.css +3 -2
  82. package/dist/assets/PreplyLogo.css +1 -1
  83. package/dist/assets/ProgressBar.css +1 -1
  84. package/dist/assets/ProgressSteps.css +1 -1
  85. package/dist/assets/Select.css +2 -2
  86. package/dist/assets/Slider.css +1 -1
  87. package/dist/assets/Spinner.css +3 -3
  88. package/dist/assets/Stars.css +3 -3
  89. package/dist/assets/Steps.css +2 -2
  90. package/dist/assets/Switch.css +1 -1
  91. package/dist/assets/Text.css +3 -3
  92. package/dist/assets/TextHighlighted.css +3 -3
  93. package/dist/assets/TextInline.css +3 -3
  94. package/dist/assets/Toast.css +2 -2
  95. package/dist/assets/Tooltip.css +1 -1
  96. package/dist/assets/align-self.css +1 -1
  97. package/dist/assets/{IconTile.css → components.css} +9 -1
  98. package/dist/assets/exp-color.css +2 -2
  99. package/dist/assets/index.css +1 -1
  100. package/dist/assets/layout-gap.css +3 -3
  101. package/dist/assets/layout-grid.css +3 -3
  102. package/dist/assets/layout-hide.css +1 -1
  103. package/dist/assets/layout-padding.css +3 -3
  104. package/dist/assets/layout-relative.css +1 -1
  105. package/dist/assets/text-accent.css +2 -2
  106. package/dist/assets/text-centered.css +1 -1
  107. package/dist/assets/text-weight.css +2 -2
  108. package/dist/chunk-BVTlhY3a.js +24 -0
  109. package/dist/components/Accordion/Accordion.js +4 -60
  110. package/dist/components/Accordion/hooks/useOnOpenChange.js +19 -28
  111. package/dist/components/AlertBanner/AlertBanner.js +11 -26
  112. package/dist/components/AlertBanner/AlertBannerProvider.js +3 -8
  113. package/dist/components/AlertBanner/primitives/AlertBannerAction.js +11 -69
  114. package/dist/components/AlertBanner/primitives/AlertBannerIcon.js +77 -39
  115. package/dist/components/AlertBanner/primitives/AlertBannerRoot.js +26 -22
  116. package/dist/components/AlertBanner/primitives/AlertBannerText.js +11 -70
  117. package/dist/components/AlertDialog/AlertDialog.d.ts +3 -3
  118. package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -1
  119. package/dist/components/AlertDialog/AlertDialog.js +5 -94
  120. package/dist/components/Avatar/Avatar.js +3 -71
  121. package/dist/components/AvatarWithStatus/AvatarWithStatus.js +3 -43
  122. package/dist/components/Badge/Badge.js +4 -62
  123. package/dist/components/Box/Box.js +3 -95
  124. package/dist/components/BubbleCounter/BubbleCounter.js +23 -28
  125. package/dist/components/Button/Button.js +4 -80
  126. package/dist/components/CalloutBanner/CalloutBanner.js +61 -12
  127. package/dist/components/CalloutBanner/primitives/CalloutBannerDismissButton.js +50 -22
  128. package/dist/components/CalloutBanner/primitives/CalloutBannerIcon.js +86 -45
  129. package/dist/components/CalloutBanner/primitives/CalloutBannerRoot.js +50 -24
  130. package/dist/components/CalloutBanner/primitives/CalloutBannerText.js +41 -11
  131. package/dist/components/Checkbox/Checkbox.js +4 -78
  132. package/dist/components/Checkbox/hooks/useIndeterminate.js +24 -30
  133. package/dist/components/Chips/Chips.types.js +0 -1
  134. package/dist/components/Chips/DismissibleChips.js +117 -86
  135. package/dist/components/Chips/MultiSelectChips.js +98 -64
  136. package/dist/components/Chips/SingleSelectChips.js +94 -57
  137. package/dist/components/Chips/private/ChipsPrimitive.js +4 -17
  138. package/dist/components/CountryFlag/CountryFlag.js +3 -44
  139. package/dist/components/Dialog/Dialog.js +56 -31
  140. package/dist/components/Dialog/DialogSteps.js +40 -29
  141. package/dist/components/Dialog/primitives/DialogActions.js +26 -19
  142. package/dist/components/Dialog/primitives/DialogButtonStack.d.ts.map +1 -1
  143. package/dist/components/Dialog/primitives/DialogButtonStack.js +22 -15
  144. package/dist/components/Dialog/primitives/DialogCloseButton.d.ts +1 -1
  145. package/dist/components/Dialog/primitives/DialogCloseButton.d.ts.map +1 -1
  146. package/dist/components/Dialog/primitives/DialogCloseButton.js +4 -93
  147. package/dist/components/Dialog/primitives/DialogDescription.js +3 -43
  148. package/dist/components/Dialog/primitives/DialogFooter.js +37 -34
  149. package/dist/components/Dialog/primitives/DialogRoot.js +4 -1459
  150. package/dist/components/Dialog/primitives/DialogTitle.js +3 -42
  151. package/dist/components/Divider/Divider.js +3 -14
  152. package/dist/components/DropdownMenu/DropdownMenu.js +253 -188
  153. package/dist/components/DropdownMenu/primitives/DropdownMenu.primitives.js +5 -34
  154. package/dist/components/DropdownMenu/primitives/DropdownMenuSelectItem.primitives.js +121 -71
  155. package/dist/components/FieldButton/FieldButton.js +3 -37
  156. package/dist/components/FormControl/FormControl.js +3 -105
  157. package/dist/components/Heading/Heading.js +3 -78
  158. package/dist/components/Icon/Icon.js +4 -49
  159. package/dist/components/IconButton/IconButton.d.ts +5 -1
  160. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  161. package/dist/components/IconButton/IconButton.js +4 -28
  162. package/dist/components/IconTile/IconTile.js +11 -69
  163. package/dist/components/IntlFormatted/IntlFormattedAggregatedDateTime.js +16 -32
  164. package/dist/components/IntlFormatted/IntlFormattedCurrency.js +20 -42
  165. package/dist/components/IntlFormatted/IntlFormattedDate.js +73 -195
  166. package/dist/components/IntlFormatted/IntlFormattedTime.js +14 -24
  167. package/dist/components/IntlFormatted/Wrapper.js +14 -8
  168. package/dist/components/LayoutFlex/LayoutFlex.js +3 -100
  169. package/dist/components/LayoutFlex/style/getStyleAttrs.js +71 -143
  170. package/dist/components/LayoutFlex/tests/AlignItems.js +67 -97
  171. package/dist/components/LayoutFlex/tests/ColumnReverse.js +63 -100
  172. package/dist/components/LayoutFlex/tests/DataOverride.js +1498 -1093
  173. package/dist/components/LayoutFlex/tests/Default.js +19 -20
  174. package/dist/components/LayoutFlex/tests/Direction.js +65 -88
  175. package/dist/components/LayoutFlex/tests/Gap.js +115 -197
  176. package/dist/components/LayoutFlex/tests/HideInline.js +95 -136
  177. package/dist/components/LayoutFlex/tests/JustifyContent.js +75 -108
  178. package/dist/components/LayoutFlex/tests/Nowrap.js +35 -42
  179. package/dist/components/LayoutFlex/tests/Padding.js +207 -263
  180. package/dist/components/LayoutFlex/tests/Relative.js +49 -64
  181. package/dist/components/LayoutFlexItem/LayoutFlexItem.js +3 -54
  182. package/dist/components/LayoutGrid/LayoutGrid.js +26 -34
  183. package/dist/components/LayoutGridItem/LayoutGridItem.js +3 -41
  184. package/dist/components/Link/Link.js +3 -72
  185. package/dist/components/Loader/Loader.js +3 -32
  186. package/dist/components/NumberField/NumberField.js +33 -35
  187. package/dist/components/ObserveIntersection/ObserveIntersection.js +41 -42
  188. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +4 -115
  189. package/dist/components/OnboardingTour/OnboardingTour.js +4 -114
  190. package/dist/components/PasswordField/PasswordField.js +3 -78
  191. package/dist/components/PreplyLogo/PreplyLogo.js +3 -81
  192. package/dist/components/ProgressBar/ProgressBar.js +3 -27
  193. package/dist/components/ProgressSteps/ProgressSteps.js +3 -48
  194. package/dist/components/Rating/Rating.js +29 -20
  195. package/dist/components/Rating/RatingInput.js +57 -59
  196. package/dist/components/Rating/Stars.js +4 -8
  197. package/dist/components/Rating/hooks/useHasError.js +11 -15
  198. package/dist/components/Rating/hooks/useHoverPercentage.js +37 -45
  199. package/dist/components/Rating/hooks/useInputState.js +18 -24
  200. package/dist/components/Rating/hooks/useLocalizations.js +12 -24
  201. package/dist/components/Rating/utils/roundToHalfDecimal.js +4 -4
  202. package/dist/components/SelectField/Select.js +5 -112
  203. package/dist/components/SelectField/SelectField.js +29 -24
  204. package/dist/components/SelectField/hooks/useBreakpointMatch.js +18 -19
  205. package/dist/components/ShowOnIntersection/ShowOnIntersection.js +32 -21
  206. package/dist/components/Slider/RangeSlider.js +62 -52
  207. package/dist/components/Slider/Slider.js +3 -10
  208. package/dist/components/Steps/Steps.js +4 -210
  209. package/dist/components/Switch/Switch.js +3 -51
  210. package/dist/components/Text/Text.js +3 -128
  211. package/dist/components/TextField/TextField.js +27 -29
  212. package/dist/components/TextHighlighted/TextHighlighted.js +3 -41
  213. package/dist/components/TextInline/TextInline.js +3 -40
  214. package/dist/components/TextareaField/TextareaField.js +26 -28
  215. package/dist/components/Toast/Toast.js +4 -1168
  216. package/dist/components/Tooltip/Tooltip.js +3 -66
  217. package/dist/components/deprecated/Chips/Chips.js +4 -76
  218. package/dist/components/deprecated/NativeSelectField/NativeSelect.js +40 -32
  219. package/dist/components/deprecated/NativeSelectField/NativeSelectField.js +34 -33
  220. package/dist/components/deprecated/index.js +5 -6
  221. package/dist/components/index.js +50 -150
  222. package/dist/components/private/ButtonBase/ButtonBase.d.ts +7 -11
  223. package/dist/components/private/ButtonBase/ButtonBase.d.ts.map +1 -1
  224. package/dist/components/private/ButtonBase/ButtonBase.js +3 -247
  225. package/dist/components/private/Input/Input.js +27 -19
  226. package/dist/components/private/Input/InputContainer.js +3 -5
  227. package/dist/components/private/Input/Textarea.js +24 -20
  228. package/dist/components/private/Input/index.js +2 -4
  229. package/dist/components/private/Spinner/Spinner.js +3 -52
  230. package/dist/components/private/VisuallyHidden/VisuallyHidden.js +3 -15
  231. package/dist/components-BIYP8wHJ.js +200 -0
  232. package/dist/exp-color-C5mKAN91.js +74 -0
  233. package/dist/floating-ui.utils.dom-CoeTbDZx.js +215 -0
  234. package/dist/index.js +50 -150
  235. package/dist/index.module-1c7ENvxc.js +7 -0
  236. package/dist/jsx-runtime-i4KUlhDu.js +743 -0
  237. package/dist/layout-gap.module-DLD8bcR4.js +95 -0
  238. package/dist/layout-grid.module-CZfhrKrB.js +101 -0
  239. package/dist/layout-hide.module-B1P0N4i3.js +53 -0
  240. package/dist/layout-padding-ugY-yd2q.js +389 -0
  241. package/dist/layout-relative.module-B5xrFD9j.js +6 -0
  242. package/dist/render-icon-Ch3b2dE0.js +290 -0
  243. package/dist/shared-styles/align-self/align-self.js +2 -36
  244. package/dist/shared-styles/exp-color/exp-color.js +2 -68
  245. package/dist/shared-styles/layout-gap/layout-gap.js +13 -7
  246. package/dist/shared-styles/layout-grid/layout-grid.js +28 -28
  247. package/dist/shared-styles/layout-grid-responsive-columns/layout-grid-responsive-columns.js +29 -43
  248. package/dist/shared-styles/layout-hide/layout-hide.js +8 -8
  249. package/dist/shared-styles/layout-padding/layout-padding.js +2 -5
  250. package/dist/shared-styles/layout-relative/layout-relative.js +14 -8
  251. package/dist/shared-styles/text-accent/text-accent.js +2 -25
  252. package/dist/shared-styles/text-centered/text-centered.js +2 -24
  253. package/dist/shared-styles/text-weight/text-weight.js +2 -15
  254. package/dist/store-sN_eYeZT.js +1064 -0
  255. package/dist/storybook-utils/consts.js +6 -8
  256. package/dist/storybook-utils/index.js +1 -5
  257. package/dist/text-accent-CfUFx-1K.js +30 -0
  258. package/dist/text-centered-Dwp2_-Yp.js +30 -0
  259. package/dist/text-weight-CwoqmM4o.js +21 -0
  260. package/dist/useBaseUiId-CWAD_PSs.js +13 -0
  261. package/dist/useBreakpointMatch-D9a3CTNK.js +338 -0
  262. package/dist/useButton-DHTh3Hm7.js +148 -0
  263. package/dist/useDialogClose-BzFIyWco.js +22 -0
  264. package/dist/useId-CJsH-2wV.js +34 -0
  265. package/dist/useOpenInteractionType-D8vA_ZKI.js +4104 -0
  266. package/dist/useRenderElement-ZBds6eRN.js +341 -0
  267. package/dist/utils/Orientation/OrientationProvider.js +54 -23
  268. package/dist/utils/Orientation/index.js +2 -4
  269. package/dist/utils/RovingTabIndex/RovingTabIndexProvider.js +70 -44
  270. package/dist/utils/RovingTabIndex/index.js +2 -4
  271. package/dist/utils/createRequiredContext.js +23 -13
  272. package/dist/utils/filterAttributesPassedByRadixUIAtRuntime.js +28 -25
  273. package/dist/utils/render-icon.js +3 -320
  274. package/dist/utils/shared-strings.js +24 -32
  275. package/dist/utils/useBreakpointMatch.d.ts.map +1 -1
  276. package/dist/utils/useBreakpointMatch.js +2 -183
  277. package/dist/utils/useControllableState/useControllableState.js +31 -25
  278. package/dist/utils/useMergeRefs.js +29 -14
  279. package/dist/utils/useStableCallback/useStableCallback.js +28 -13
  280. package/package.json +17 -22
  281. package/dist/AlertBannerProvider-DTx2Xp3V.js +0 -50
  282. package/dist/BubbleCounter.module-QMwXWFIS.js +0 -16
  283. package/dist/ChipsPrimitive-DzsaOWgY.js +0 -1244
  284. package/dist/Dialog.module-Ba1X7b3N.js +0 -29
  285. package/dist/DialogRootContext-BCXmmJAw.js +0 -15
  286. package/dist/DropdownMenu.primitives-CqJE9k4D.js +0 -5871
  287. package/dist/IconTile-D1G7MljH.js +0 -172
  288. package/dist/InputContainer-oHJlLWIi.js +0 -30
  289. package/dist/Slider-DB4Maswa.js +0 -55
  290. package/dist/Stars-C_mHop2H.js +0 -67
  291. package/dist/TokyoUIChevronDown-D_tD1yU8.js +0 -11
  292. package/dist/floating-ui.utils.dom-BvMNldxo.js +0 -234
  293. package/dist/index.module-Q9TzIR6B.js +0 -11
  294. package/dist/layout-gap.module-MKn_un_k.js +0 -97
  295. package/dist/layout-grid.module-P4B4WVUy.js +0 -103
  296. package/dist/layout-hide.module-Bpl3Pl-a.js +0 -55
  297. package/dist/layout-padding-D5I6rRlL.js +0 -373
  298. package/dist/layout-relative.module-1z75aSwo.js +0 -8
  299. package/dist/useBaseUiId-DavsGYu9.js +0 -8
  300. package/dist/useButton-fjQ0ak8m.js +0 -193
  301. package/dist/useId-BhIOp2JG.js +0 -28
  302. package/dist/useOpenInteractionType-DNYFqf-a.js +0 -2880
  303. package/dist/useRenderElement-BSthtPOr.js +0 -350
@@ -0,0 +1,96 @@
1
+ "use client";
2
+ import { t as Icon } from "./Icon-CixAeOSd.js";
3
+ import { t as require_jsx_runtime } from "./jsx-runtime-i4KUlhDu.js";
4
+ import { t as Text } from "./Text-CaOF75Z-.js";
5
+ import { useOnOpenChange } from "./components/Accordion/hooks/useOnOpenChange.js";
6
+ import { forwardRef } from "react";
7
+ import { getDatasetProps } from "@preply/ds-web-core";
8
+ import TokyoUIChevronDown from "@preply/ds-media-icons/dist/24/TokyoUIChevronDown.svg";
9
+ import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
10
+ import './assets/Accordion.css';var index_module_default = {
11
+ accordion: "accordion__GSBx4",
12
+ "--dsInternalSimulation-focus": "_--dsInternalSimulation-focus__XvNco",
13
+ "--dsInternalSimulation-noAnimation": "_--dsInternalSimulation-noAnimation__eyg-P"
14
+ };
15
+ //#endregion
16
+ //#region src/components/Accordion/Accordion.tsx
17
+ var import_jsx_runtime = require_jsx_runtime();
18
+ /**
19
+ * An Accordion container.
20
+ *
21
+ * Add `AccordionItem` children to render a list of disclosable contents.
22
+ *
23
+ * @example
24
+ * <Accordion>
25
+ * <AccordionItem>
26
+ * <AccordionHeader>
27
+ * Is Preply the best platform for learning a language?
28
+ * </AccordionHeader>
29
+ * <AccordionContent>Of course it is!</AccordionContent>
30
+ * </AccordionItem>
31
+ * <AccordionItem>
32
+ * <AccordionHeader>Why?</AccordionHeader>
33
+ * <AccordionContent>
34
+ * If you are wondering, it means you have not tried it out yet!
35
+ * </AccordionContent>
36
+ * </AccordionItem>
37
+ * </Accordion>
38
+ *
39
+ * @see AccordionItem
40
+ * @see AccordionHeader
41
+ * @see AccordionContent
42
+ */
43
+ var Accordion = ({ dataset, children, "aria-label": ariaLabel }) => {
44
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
45
+ className: index_module_default.accordion,
46
+ "aria-label": ariaLabel,
47
+ ...getDatasetProps(dataset),
48
+ "data-preply-ds-component": webComponentNames.Accordion,
49
+ children
50
+ });
51
+ };
52
+ /**
53
+ * A single `Accordion` item, the wrapper of AccordionHeader and AccordionContent.
54
+ */
55
+ var AccordionItem = forwardRef(function AccordionItem({ open, name, dataset, children, onOpenChange, dsInternalSimulation }, ref) {
56
+ const { mergedRef } = useOnOpenChange({
57
+ ref,
58
+ onOpenChange
59
+ });
60
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("details", {
61
+ ref: mergedRef,
62
+ name,
63
+ open,
64
+ ...getDatasetProps(dataset),
65
+ className: index_module_default[`--dsInternalSimulation-${dsInternalSimulation}`],
66
+ children
67
+ });
68
+ });
69
+ /**
70
+ * The header of a single `Accordion` item, to be used in conjunction with AccordionItem and wrapped inside AccordionContent.
71
+ */
72
+ var AccordionHeader = forwardRef(function AccordionItem({ dataset, children, onClick }, ref) {
73
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("summary", {
74
+ ref,
75
+ ...getDatasetProps(dataset),
76
+ onClick,
77
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
78
+ variant: "default-semibold",
79
+ children
80
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { svg: TokyoUIChevronDown })]
81
+ });
82
+ });
83
+ /**
84
+ * The content of a single `Accordion` item, to be used in conjunction with AccordionHeader wrapped inside AccordionContent.
85
+ */
86
+ var AccordionContent = forwardRef(function AccordionItem({ dataset, children }, ref) {
87
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
88
+ tag: "div",
89
+ variant: "small-regular",
90
+ ref,
91
+ ...getDatasetProps(dataset),
92
+ children
93
+ });
94
+ });
95
+ //#endregion
96
+ export { AccordionItem as i, AccordionContent as n, AccordionHeader as r, Accordion as t };
@@ -0,0 +1,76 @@
1
+ "use client";
2
+ import { t as require_jsx_runtime } from "./jsx-runtime-i4KUlhDu.js";
3
+ import { createContext, useContext, useState } from "react";
4
+ import { useIntl } from "react-intl";
5
+ import './assets/AlertBannerProvider.css';var AlertBanner_module_default = {
6
+ alertBannerHost: "alertBannerHost__LKZaB",
7
+ alertBanner: "alertBanner__C0J87",
8
+ icon: "icon__5M08K",
9
+ description: "description__pXWo6",
10
+ action: "action__uKuZ4"
11
+ };
12
+ //#endregion
13
+ //#region src/components/AlertBanner/AlertBannerProvider.tsx
14
+ var import_jsx_runtime = require_jsx_runtime();
15
+ var AlertBannerHostContext = createContext({ hostEl: null });
16
+ /**
17
+ * If you have issues with AlertBannerHostContext, ensures `AlertBannerProvider` is put at the top of
18
+ * your app component tree
19
+ *
20
+ * @see AlertBannerProvider
21
+ */
22
+ function useAlertBannerHost() {
23
+ const ctx = useContext(AlertBannerHostContext);
24
+ if (!ctx) throw new Error("useAlertBannerHost must be used within AlertBannerHostContext");
25
+ return ctx.hostEl;
26
+ }
27
+ /**
28
+ * A region where all the `AlertBanner`s will be rendered into, and announced accordingly. It should
29
+ * be the first element of the page.
30
+ *
31
+ * From an affordance perspective:
32
+ * 1. Sighted users can see the page-wide banner with their eyes. The visual prominence ensures the
33
+ * alerts are noticed.
34
+ * 2. Screen readers announce the banners when they are added, and the text content of the banner
35
+ * help the users to understand the level of importance.
36
+ *
37
+ * For blind users readers, it's important that AlertBannerProvider wraps the whole app so its DOM
38
+ * element is put at the top of the page, because:
39
+ * 1. Screen readers announce the banner contents, but don't allow users to navigate to them and
40
+ * interact with them.
41
+ * 2. So, if this element is put on the top of the page, screen readers wil read the label ("Alerts,
42
+ * warnings, and updates") as the first element, so the users are aware since the beginning that
43
+ * there is a dedicated region for alerts.
44
+ * 3. When an alert appears, it's announced with something like "Alert: we can't renew your
45
+ * subscription", and they can connect the initially announced region with the newly appeared alert.
46
+ * 4. They can then navigate to the alerts region, and interact with the alert actions.
47
+ *
48
+ * @example
49
+ * <App>
50
+ * <AlertBannerProvider>
51
+ * ...rest of the app
52
+ * </AlertBannerProvider>
53
+ * </App>
54
+ */
55
+ function AlertBannerProvider({ children, ...props }) {
56
+ const [hostEl, setHostEl] = useState(null);
57
+ const { formatMessage } = useIntl();
58
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertBannerHostContext.Provider, {
59
+ value: { hostEl },
60
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
61
+ className: AlertBanner_module_default.alertBannerHost,
62
+ role: "region",
63
+ "aria-live": "polite",
64
+ "aria-atomic": "false",
65
+ "aria-label": formatMessage({
66
+ id: "preply-ds.alert-banner.host-region",
67
+ defaultMessage: "Alerts, warnings, and updates",
68
+ description: "It's announced by screen readers when they scan the content of the page, and they find the alert banners container."
69
+ }),
70
+ ref: setHostEl,
71
+ ...props
72
+ }), children]
73
+ });
74
+ }
75
+ //#endregion
76
+ export { useAlertBannerHost as n, AlertBanner_module_default as r, AlertBannerProvider as t };
@@ -0,0 +1,475 @@
1
+ "use client";
2
+ import { t as require_jsx_runtime } from "./jsx-runtime-i4KUlhDu.js";
3
+ import { f as useRefWithInit, t as useRenderElement, u as EMPTY_OBJECT } from "./useRenderElement-ZBds6eRN.js";
4
+ import { S as useEventCallback } from "./floating-ui.utils.dom-CoeTbDZx.js";
5
+ import { t as useBaseUiId } from "./useBaseUiId-CWAD_PSs.js";
6
+ import { A as inertValue, F as useOpenChangeComplete, L as COMPOSITE_KEYS, M as popupStateMapping, P as triggerOpenStateMapping, ft as transitionStatusMapping, j as CommonPopupDataAttributes, o as getEmptyContext, r as InternalBackdrop, v as FloatingFocusManager, y as FloatingPortal } from "./useOpenInteractionType-D8vA_ZKI.js";
7
+ import { t as useButton } from "./useButton-DHTh3Hm7.js";
8
+ import { n as useDialogRootContext, t as DialogRootContext } from "./DialogRootContext-Bz8RW-Mq.js";
9
+ import { t as useDialogClose } from "./useDialogClose-BzFIyWco.js";
10
+ import { n as useDialogRoot, t as DialogStore } from "./store-sN_eYeZT.js";
11
+ import { t as Heading } from "./Heading-DA9gHfsx.js";
12
+ import { t as Button } from "./Button-C35BZJZT.js";
13
+ import * as React$1 from "react";
14
+ import { Children, cloneElement, forwardRef, isValidElement } from "react";
15
+ import { getDatasetProps } from "@preply/ds-web-core";
16
+ import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
17
+ import { usePortalElement } from "@preply/ds-web-root";
18
+ import './assets/AlertDialog.css';//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/backdrop/AlertDialogBackdrop.js
19
+ var stateAttributesMapping$1 = {
20
+ ...popupStateMapping,
21
+ ...transitionStatusMapping
22
+ };
23
+ /**
24
+ * An overlay displayed beneath the popup.
25
+ * Renders a `<div>` element.
26
+ *
27
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
28
+ */
29
+ var AlertDialogBackdrop = /* @__PURE__ */ React$1.forwardRef(function AlertDialogBackdrop(componentProps, forwardedRef) {
30
+ const { render, className, forceRender = false, ...elementProps } = componentProps;
31
+ const { store } = useDialogRootContext();
32
+ const open = store.useState("open");
33
+ const nested = store.useState("nested");
34
+ const mounted = store.useState("mounted");
35
+ const transitionStatus = store.useState("transitionStatus");
36
+ return useRenderElement("div", componentProps, {
37
+ state: React$1.useMemo(() => ({
38
+ open,
39
+ transitionStatus
40
+ }), [open, transitionStatus]),
41
+ ref: [store.context.backdropRef, forwardedRef],
42
+ props: [{
43
+ role: "presentation",
44
+ hidden: !mounted,
45
+ style: {
46
+ userSelect: "none",
47
+ WebkitUserSelect: "none"
48
+ }
49
+ }, elementProps],
50
+ stateAttributesMapping: stateAttributesMapping$1,
51
+ enabled: forceRender || !nested
52
+ });
53
+ });
54
+ if (process.env.NODE_ENV !== "production") AlertDialogBackdrop.displayName = "AlertDialogBackdrop";
55
+ //#endregion
56
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/close/AlertDialogClose.js
57
+ /**
58
+ * A button that closes the alert dialog.
59
+ * Renders a `<button>` element.
60
+ *
61
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
62
+ */
63
+ var AlertDialogClose = /* @__PURE__ */ React$1.forwardRef(function AlertDialogClose(componentProps, forwardedRef) {
64
+ const { render, className, disabled = false, nativeButton = true, ...elementProps } = componentProps;
65
+ const { store } = useDialogRootContext();
66
+ const { getRootProps, ref } = useDialogClose({
67
+ disabled,
68
+ open: store.useState("open"),
69
+ setOpen: store.setOpen,
70
+ nativeButton
71
+ });
72
+ return useRenderElement("button", componentProps, {
73
+ state: React$1.useMemo(() => ({ disabled }), [disabled]),
74
+ ref: [forwardedRef, ref],
75
+ props: [elementProps, getRootProps]
76
+ });
77
+ });
78
+ if (process.env.NODE_ENV !== "production") AlertDialogClose.displayName = "AlertDialogClose";
79
+ //#endregion
80
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/description/AlertDialogDescription.js
81
+ /**
82
+ * A paragraph with additional information about the alert dialog.
83
+ * Renders a `<p>` element.
84
+ *
85
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
86
+ */
87
+ var AlertDialogDescription = /* @__PURE__ */ React$1.forwardRef(function AlertDialogDescription(componentProps, forwardedRef) {
88
+ const { render, className, id: idProp, ...elementProps } = componentProps;
89
+ const { store } = useDialogRootContext();
90
+ const id = useBaseUiId(idProp);
91
+ store.useSyncedValueWithCleanup("descriptionElementId", id);
92
+ return useRenderElement("p", componentProps, {
93
+ ref: forwardedRef,
94
+ props: [{ id }, elementProps]
95
+ });
96
+ });
97
+ if (process.env.NODE_ENV !== "production") AlertDialogDescription.displayName = "AlertDialogDescription";
98
+ //#endregion
99
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/popup/AlertDialogPopupCssVars.js
100
+ var AlertDialogPopupCssVars = /* @__PURE__ */ function(AlertDialogPopupCssVars) {
101
+ /**
102
+ * Indicates how many dialogs are nested within.
103
+ * @type {number}
104
+ */
105
+ AlertDialogPopupCssVars["nestedDialogs"] = "--nested-dialogs";
106
+ return AlertDialogPopupCssVars;
107
+ }({});
108
+ //#endregion
109
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/popup/AlertDialogPopupDataAttributes.js
110
+ var AlertDialogPopupDataAttributes = function(AlertDialogPopupDataAttributes) {
111
+ /**
112
+ * Present when the dialog is open.
113
+ */
114
+ AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["open"] = CommonPopupDataAttributes.open] = "open";
115
+ /**
116
+ * Present when the dialog is closed.
117
+ */
118
+ AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
119
+ /**
120
+ * Present when the dialog is animating in.
121
+ */
122
+ AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
123
+ /**
124
+ * Present when the dialog is animating out.
125
+ */
126
+ AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["endingStyle"] = CommonPopupDataAttributes.endingStyle] = "endingStyle";
127
+ /**
128
+ * Present when the dialog is nested within another dialog.
129
+ */
130
+ AlertDialogPopupDataAttributes["nested"] = "data-nested";
131
+ /**
132
+ * Present when the dialog has other open dialogs nested within it.
133
+ */
134
+ AlertDialogPopupDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
135
+ return AlertDialogPopupDataAttributes;
136
+ }({});
137
+ //#endregion
138
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/portal/AlertDialogPortalContext.js
139
+ var AlertDialogPortalContext = /* @__PURE__ */ React$1.createContext(void 0);
140
+ if (process.env.NODE_ENV !== "production") AlertDialogPortalContext.displayName = "AlertDialogPortalContext";
141
+ function useAlertDialogPortalContext() {
142
+ const value = React$1.useContext(AlertDialogPortalContext);
143
+ if (value === void 0) throw new Error("Base UI: <AlertDialog.Portal> is missing.");
144
+ return value;
145
+ }
146
+ //#endregion
147
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/popup/AlertDialogPopup.js
148
+ var import_jsx_runtime = require_jsx_runtime();
149
+ var stateAttributesMapping = {
150
+ ...popupStateMapping,
151
+ ...transitionStatusMapping,
152
+ nestedDialogOpen(value) {
153
+ return value ? { [AlertDialogPopupDataAttributes.nestedDialogOpen]: "" } : null;
154
+ }
155
+ };
156
+ /**
157
+ * A container for the alert dialog contents.
158
+ * Renders a `<div>` element.
159
+ *
160
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
161
+ */
162
+ var AlertDialogPopup = /* @__PURE__ */ React$1.forwardRef(function AlertDialogPopup(componentProps, forwardedRef) {
163
+ const { className, render, initialFocus, finalFocus, ...elementProps } = componentProps;
164
+ const { store } = useDialogRootContext();
165
+ const descriptionElementId = store.useState("descriptionElementId");
166
+ const floatingRootContext = store.useState("floatingRootContext");
167
+ const rootPopupProps = store.useState("popupProps");
168
+ const mounted = store.useState("mounted");
169
+ const nested = store.useState("nested");
170
+ const nestedOpenDialogCount = store.useState("nestedOpenDialogCount");
171
+ const open = store.useState("open");
172
+ const titleElementId = store.useState("titleElementId");
173
+ const transitionStatus = store.useState("transitionStatus");
174
+ useAlertDialogPortalContext();
175
+ useOpenChangeComplete({
176
+ open,
177
+ ref: store.context.popupRef,
178
+ onComplete() {
179
+ if (open) {
180
+ var _store$context$openCh, _store$context;
181
+ (_store$context$openCh = (_store$context = store.context).openChangeComplete) === null || _store$context$openCh === void 0 || _store$context$openCh.call(_store$context, true);
182
+ }
183
+ }
184
+ });
185
+ const defaultInitialFocus = useEventCallback((interactionType) => {
186
+ if (interactionType === "touch") return store.context.popupRef.current;
187
+ return true;
188
+ });
189
+ const resolvedInitialFocus = initialFocus === void 0 ? defaultInitialFocus : initialFocus;
190
+ const nestedDialogOpen = nestedOpenDialogCount > 0;
191
+ const element = useRenderElement("div", componentProps, {
192
+ state: React$1.useMemo(() => ({
193
+ open,
194
+ nested,
195
+ transitionStatus,
196
+ nestedDialogOpen
197
+ }), [
198
+ open,
199
+ nested,
200
+ transitionStatus,
201
+ nestedDialogOpen
202
+ ]),
203
+ props: [
204
+ rootPopupProps,
205
+ {
206
+ "aria-labelledby": titleElementId !== null && titleElementId !== void 0 ? titleElementId : void 0,
207
+ "aria-describedby": descriptionElementId !== null && descriptionElementId !== void 0 ? descriptionElementId : void 0,
208
+ role: "alertdialog",
209
+ tabIndex: -1,
210
+ hidden: !mounted,
211
+ onKeyDown(event) {
212
+ if (COMPOSITE_KEYS.has(event.key)) event.stopPropagation();
213
+ },
214
+ style: { [AlertDialogPopupCssVars.nestedDialogs]: nestedOpenDialogCount }
215
+ },
216
+ elementProps
217
+ ],
218
+ ref: [
219
+ forwardedRef,
220
+ store.context.popupRef,
221
+ store.getElementSetter("popupElement")
222
+ ],
223
+ stateAttributesMapping
224
+ });
225
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(React$1.Fragment, { children: [mounted && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(InternalBackdrop, {
226
+ ref: store.context.internalBackdropRef,
227
+ inert: inertValue(!open)
228
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FloatingFocusManager, {
229
+ context: floatingRootContext,
230
+ disabled: !mounted,
231
+ initialFocus: resolvedInitialFocus,
232
+ returnFocus: finalFocus,
233
+ children: element
234
+ })] });
235
+ });
236
+ if (process.env.NODE_ENV !== "production") AlertDialogPopup.displayName = "AlertDialogPopup";
237
+ //#endregion
238
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/portal/AlertDialogPortal.js
239
+ /**
240
+ * A portal element that moves the popup to a different part of the DOM.
241
+ * By default, the portal element is appended to `<body>`.
242
+ *
243
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
244
+ */
245
+ function AlertDialogPortal(props) {
246
+ const { children, keepMounted = false, container } = props;
247
+ const { store } = useDialogRootContext();
248
+ if (!(store.useState("mounted") || keepMounted)) return null;
249
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogPortalContext.Provider, {
250
+ value: keepMounted,
251
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FloatingPortal, {
252
+ root: container,
253
+ children
254
+ })
255
+ });
256
+ }
257
+ //#endregion
258
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/root/AlertDialogRoot.js
259
+ var INITIAL_STATE = {
260
+ open: false,
261
+ dismissible: false,
262
+ nested: false,
263
+ popupElement: null,
264
+ triggerElement: null,
265
+ modal: true,
266
+ descriptionElementId: void 0,
267
+ titleElementId: void 0,
268
+ openMethod: null,
269
+ mounted: false,
270
+ transitionStatus: "idle",
271
+ nestedOpenDialogCount: 0,
272
+ triggerProps: EMPTY_OBJECT,
273
+ popupProps: EMPTY_OBJECT,
274
+ floatingRootContext: getEmptyContext()
275
+ };
276
+ /**
277
+ * Groups all parts of the alert dialog.
278
+ * Doesn’t render its own HTML element.
279
+ *
280
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
281
+ */
282
+ var AlertDialogRoot = function AlertDialogRoot(props) {
283
+ const { children, defaultOpen = false, onOpenChange, onOpenChangeComplete, open: openProp, actionsRef } = props;
284
+ const parentDialogRootContext = useDialogRootContext();
285
+ const nested = Boolean(parentDialogRootContext);
286
+ const store = useRefWithInit(DialogStore.create, INITIAL_STATE).current;
287
+ store.useControlledProp("open", openProp, defaultOpen);
288
+ store.useSyncedValue("nested", nested);
289
+ store.useContextCallback("openChange", onOpenChange);
290
+ store.useContextCallback("openChangeComplete", onOpenChangeComplete);
291
+ useDialogRoot({
292
+ store,
293
+ actionsRef,
294
+ parentContext: parentDialogRootContext === null || parentDialogRootContext === void 0 ? void 0 : parentDialogRootContext.store.context,
295
+ onOpenChange
296
+ });
297
+ const contextValue = React$1.useMemo(() => ({ store }), [store]);
298
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogRootContext.Provider, {
299
+ value: contextValue,
300
+ children
301
+ });
302
+ };
303
+ if (process.env.NODE_ENV !== "production") AlertDialogRoot.displayName = "AlertDialogRoot";
304
+ //#endregion
305
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/title/AlertDialogTitle.js
306
+ /**
307
+ * A heading that labels the dialog.
308
+ * Renders an `<h2>` element.
309
+ *
310
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
311
+ */
312
+ var AlertDialogTitle = /* @__PURE__ */ React$1.forwardRef(function AlertDialogTitle(componentProps, forwardedRef) {
313
+ const { render, className, id: idProp, ...elementProps } = componentProps;
314
+ const { store } = useDialogRootContext();
315
+ const id = useBaseUiId(idProp);
316
+ store.useSyncedValueWithCleanup("titleElementId", id);
317
+ return useRenderElement("h2", componentProps, {
318
+ ref: forwardedRef,
319
+ props: [{ id }, elementProps]
320
+ });
321
+ });
322
+ if (process.env.NODE_ENV !== "production") AlertDialogTitle.displayName = "AlertDialogTitle";
323
+ //#endregion
324
+ //#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/trigger/AlertDialogTrigger.js
325
+ /**
326
+ * A button that opens the alert dialog.
327
+ * Renders a `<button>` element.
328
+ *
329
+ * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
330
+ */
331
+ var AlertDialogTrigger$1 = /* @__PURE__ */ React$1.forwardRef(function AlertDialogTrigger(componentProps, forwardedRef) {
332
+ const { render, className, disabled = false, nativeButton = true, ...elementProps } = componentProps;
333
+ const { store } = useDialogRootContext();
334
+ const open = store.useState("open");
335
+ const triggerProps = store.useState("triggerProps");
336
+ const state = React$1.useMemo(() => ({
337
+ disabled,
338
+ open
339
+ }), [disabled, open]);
340
+ const { getButtonProps, buttonRef } = useButton({
341
+ disabled,
342
+ native: nativeButton
343
+ });
344
+ return useRenderElement("button", componentProps, {
345
+ state,
346
+ ref: [
347
+ forwardedRef,
348
+ buttonRef,
349
+ store.getElementSetter("triggerElement")
350
+ ],
351
+ stateAttributesMapping: triggerOpenStateMapping,
352
+ props: [
353
+ triggerProps,
354
+ elementProps,
355
+ getButtonProps
356
+ ]
357
+ });
358
+ });
359
+ if (process.env.NODE_ENV !== "production") AlertDialogTrigger$1.displayName = "AlertDialogTrigger";
360
+ var AlertDialog_module_default = {
361
+ overlay: "overlay__cqEa0",
362
+ overlayShow: "overlayShow__DlV95",
363
+ content: "content__U-iLo",
364
+ contentShow: "contentShow__8iLk2",
365
+ description: "description__7w95W",
366
+ actions: "actions__DbfEY"
367
+ };
368
+ //#endregion
369
+ //#region src/components/AlertDialog/AlertDialog.tsx
370
+ var AlertDialogTrigger = forwardRef(function AlertDialogActionComponent(props, ref) {
371
+ const child = Children.only(props.children);
372
+ if (!isValidElement(child)) return null;
373
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogTrigger$1, { render: (primitiveProps) => {
374
+ return cloneElement(child, {
375
+ ...primitiveProps,
376
+ ref
377
+ });
378
+ } });
379
+ });
380
+ var AlertDialogAction = forwardRef(function AlertDialogActionComponent(props, ref) {
381
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogClose, {
382
+ ref,
383
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {}),
384
+ ...props
385
+ });
386
+ });
387
+ var AlertDialogCancel = forwardRef(function AlertDialogCancelComponent(props, ref) {
388
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogClose, {
389
+ ref,
390
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {}),
391
+ ...props
392
+ });
393
+ });
394
+ var AlertDialogComponent = ({ open, title, description, dataset, children }) => {
395
+ const container = usePortalElement();
396
+ const datasetProps = getDatasetProps(dataset, { preplyDsComponent: webComponentNames.AlertDialog });
397
+ let trigger;
398
+ const actions = [];
399
+ Children.forEach(children, (child) => {
400
+ if (isValidElement(child)) if (child.type === AlertDialogTrigger) trigger = child;
401
+ else actions.push(child);
402
+ });
403
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertDialogRoot, {
404
+ open,
405
+ children: [trigger, /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertDialogPortal, {
406
+ container,
407
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogBackdrop, { className: AlertDialog_module_default.overlay }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertDialogPopup, {
408
+ ...datasetProps,
409
+ className: AlertDialog_module_default.content,
410
+ children: [
411
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogTitle, { render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heading, {
412
+ tag: "h3",
413
+ variant: "medium",
414
+ children: title
415
+ }) }),
416
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogDescription, {
417
+ className: AlertDialog_module_default.description,
418
+ children: description
419
+ }),
420
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
421
+ className: AlertDialog_module_default.actions,
422
+ children: actions
423
+ })
424
+ ]
425
+ })]
426
+ })]
427
+ });
428
+ };
429
+ /**
430
+ * A modal alertdialog that interrupts the user with important content and expects a response.
431
+ *
432
+ * Unlike a `Dialog`, it cannot be dismissed by clicking outside or pressing escape.
433
+ *
434
+ * @example
435
+ * // Controlled:
436
+ * <Button variant="critical" onClick={() => setIsOpen(true)}>
437
+ * Delete Account
438
+ * </Button>
439
+ * <AlertDialog
440
+ * open={isOpen}
441
+ * title="Delete Account"
442
+ * description="This action cannot be undone."
443
+ * >
444
+ * <AlertDialog.Cancel variant="secondary" onClick={() => setIsOpen(false)}>
445
+ * Cancel
446
+ * </AlertDialog.Cancel>
447
+ * <AlertDialog.Action variant="critical" onClick={() => setIsOpen(false)}>
448
+ * Delete
449
+ * </AlertDialog.Action>
450
+ * </AlertDialog>
451
+ *
452
+ * @example
453
+ * // Uncontrolled:
454
+ * <AlertDialog
455
+ * title="Delete Account"
456
+ * description="This action cannot be undone."
457
+ * >
458
+ * <AlertDialog.Trigger>
459
+ * <Button variant="critical">Delete Account</Button>
460
+ * </AlertDialog.Trigger>
461
+ * <AlertDialog.Cancel variant="secondary">
462
+ * Cancel
463
+ * </AlertDialog.Cancel>
464
+ * <AlertDialog.Action variant="critical">
465
+ * Delete
466
+ * </AlertDialog.Action>
467
+ * </AlertDialog>
468
+ */
469
+ var AlertDialog = Object.assign(AlertDialogComponent, {
470
+ Trigger: AlertDialogTrigger,
471
+ Action: AlertDialogAction,
472
+ Cancel: AlertDialogCancel
473
+ });
474
+ //#endregion
475
+ export { AlertDialog as t };