@purpur/library 9.5.0 → 9.7.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 (364) hide show
  1. package/CHANGELOG.json +66 -0
  2. package/CHANGELOG.md +29 -1
  3. package/dist/LICENSE.txt +27 -6
  4. package/dist/ThemeProvider-D7oXcAde.js +2 -0
  5. package/dist/{ThemeProvider-Dy771oix.js.map → ThemeProvider-D7oXcAde.js.map} +1 -1
  6. package/dist/ThemeProvider-DiDBfyFA.mjs +348 -0
  7. package/dist/{ThemeProvider-CkX-BNWN.mjs.map → ThemeProvider-DiDBfyFA.mjs.map} +1 -1
  8. package/dist/avatar-CYnD57o4.js +2 -0
  9. package/dist/avatar-CYnD57o4.js.map +1 -0
  10. package/dist/avatar-CzbDD1MK.mjs +27 -0
  11. package/dist/avatar-CzbDD1MK.mjs.map +1 -0
  12. package/dist/avatar.cjs.js +2 -0
  13. package/dist/avatar.cjs.js.map +1 -0
  14. package/dist/avatar.es.js +5 -0
  15. package/dist/avatar.es.js.map +1 -0
  16. package/dist/carousel-BIKcwvYz.mjs +1658 -0
  17. package/dist/carousel-BIKcwvYz.mjs.map +1 -0
  18. package/dist/carousel-DnSaLDZf.js +2 -0
  19. package/dist/carousel-DnSaLDZf.js.map +1 -0
  20. package/dist/carousel.cjs.js +1 -1
  21. package/dist/carousel.es.js +1 -1
  22. package/dist/color-dot-BEE5rKco.js +2 -0
  23. package/dist/color-dot-BEE5rKco.js.map +1 -0
  24. package/dist/color-dot-Dz9yzVX3.mjs +28 -0
  25. package/dist/color-dot-Dz9yzVX3.mjs.map +1 -0
  26. package/dist/color-dot.cjs.js +1 -1
  27. package/dist/color-dot.es.js +4 -3
  28. package/dist/comparison-table-0UDB2BTU.js +2 -0
  29. package/dist/comparison-table-0UDB2BTU.js.map +1 -0
  30. package/dist/comparison-table-CjTE-fHN.mjs +292 -0
  31. package/dist/comparison-table-CjTE-fHN.mjs.map +1 -0
  32. package/dist/comparison-table.cjs.js +1 -1
  33. package/dist/comparison-table.es.js +1 -1
  34. package/dist/components/avatar/src/avatar-constants.d.ts +2 -0
  35. package/dist/components/avatar/src/avatar-constants.d.ts.map +1 -0
  36. package/dist/components/avatar/src/avatar.d.ts +26 -0
  37. package/dist/components/avatar/src/avatar.d.ts.map +1 -0
  38. package/dist/components/button/src/button.visual.fixtures.d.ts +43 -0
  39. package/dist/components/button/src/button.visual.fixtures.d.ts.map +1 -0
  40. package/dist/components/carousel/src/carousel.d.ts.map +1 -1
  41. package/dist/components/color-dot/src/color-dot.d.ts +18 -8
  42. package/dist/components/color-dot/src/color-dot.d.ts.map +1 -1
  43. package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts.map +1 -1
  44. package/dist/components/date-picker/src/date-picker.d.ts +8 -0
  45. package/dist/components/date-picker/src/date-picker.d.ts.map +1 -1
  46. package/dist/components/drawer/src/drawer-content.d.ts +21 -0
  47. package/dist/components/drawer/src/drawer-content.d.ts.map +1 -1
  48. package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts +14 -0
  49. package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts.map +1 -0
  50. package/dist/components/loading/src/loading-dots.d.ts +19 -0
  51. package/dist/components/loading/src/loading-dots.d.ts.map +1 -0
  52. package/dist/components/loading/src/loading-text.d.ts +21 -0
  53. package/dist/components/loading/src/loading-text.d.ts.map +1 -0
  54. package/dist/components/loading/src/loading.d.ts +10 -0
  55. package/dist/components/loading/src/loading.d.ts.map +1 -0
  56. package/dist/components/message/src/message-bubble.d.ts +22 -0
  57. package/dist/components/message/src/message-bubble.d.ts.map +1 -0
  58. package/dist/components/message/src/message-stamp.d.ts +26 -0
  59. package/dist/components/message/src/message-stamp.d.ts.map +1 -0
  60. package/dist/components/message/src/message-utils.d.ts +3 -0
  61. package/dist/components/message/src/message-utils.d.ts.map +1 -0
  62. package/dist/components/message/src/message.d.ts +42 -0
  63. package/dist/components/message/src/message.d.ts.map +1 -0
  64. package/dist/components/modal/src/modal-content.d.ts +21 -0
  65. package/dist/components/modal/src/modal-content.d.ts.map +1 -1
  66. package/dist/components/modal/src/modal.d.ts +2 -0
  67. package/dist/components/modal/src/modal.d.ts.map +1 -1
  68. package/dist/components/popover/src/popover-content.d.ts +14 -0
  69. package/dist/components/popover/src/popover-content.d.ts.map +1 -1
  70. package/dist/components/radio-card-group/src/is-radio-card-item.d.ts +4 -0
  71. package/dist/components/radio-card-group/src/is-radio-card-item.d.ts.map +1 -0
  72. package/dist/components/radio-card-group/src/radio-card-group.constants.d.ts +5 -0
  73. package/dist/components/radio-card-group/src/radio-card-group.constants.d.ts.map +1 -0
  74. package/dist/components/radio-card-group/src/radio-card-group.d.ts +5 -6
  75. package/dist/components/radio-card-group/src/radio-card-group.d.ts.map +1 -1
  76. package/dist/components/radio-card-group/src/radio-card-item.d.ts +1 -2
  77. package/dist/components/radio-card-group/src/radio-card-item.d.ts.map +1 -1
  78. package/dist/components/search-field/src/search-field-autocomplete.d.ts +6 -3
  79. package/dist/components/search-field/src/search-field-autocomplete.d.ts.map +1 -1
  80. package/dist/components/search-field/src/search-field-base.d.ts +10 -3
  81. package/dist/components/search-field/src/search-field-base.d.ts.map +1 -1
  82. package/dist/components/search-field/src/search-field-button.d.ts +3 -1
  83. package/dist/components/search-field/src/search-field-button.d.ts.map +1 -1
  84. package/dist/components/search-field/src/search-field.d.ts +12 -6
  85. package/dist/components/search-field/src/search-field.d.ts.map +1 -1
  86. package/dist/components/table/src/drag-indicator-circle.d.ts +8 -1
  87. package/dist/components/table/src/drag-indicator-circle.d.ts.map +1 -1
  88. package/dist/components/table/src/table.d.ts.map +1 -1
  89. package/dist/components/tooltip/src/tooltip.d.ts +21 -0
  90. package/dist/components/tooltip/src/tooltip.d.ts.map +1 -1
  91. package/dist/components-metadata.js +33 -4
  92. package/dist/date-picker-CIizn3Pv.js +2 -0
  93. package/dist/{date-picker-uyPKJulK.js.map → date-picker-CIizn3Pv.js.map} +1 -1
  94. package/dist/date-picker-DixxW60s.mjs +1617 -0
  95. package/dist/{date-picker-CzxhZxsw.mjs.map → date-picker-DixxW60s.mjs.map} +1 -1
  96. package/dist/date-picker.cjs.js +1 -1
  97. package/dist/date-picker.es.js +1 -1
  98. package/dist/drawer-BzkRd9F0.mjs +577 -0
  99. package/dist/drawer-BzkRd9F0.mjs.map +1 -0
  100. package/dist/drawer-DyhsP34o.js +2 -0
  101. package/dist/drawer-DyhsP34o.js.map +1 -0
  102. package/dist/drawer.cjs.js +1 -1
  103. package/dist/drawer.es.js +1 -1
  104. package/dist/{footer-D9AcPwlH.js → footer-3Y-664-8.js} +2 -2
  105. package/dist/{footer-D9AcPwlH.js.map → footer-3Y-664-8.js.map} +1 -1
  106. package/dist/{footer-BLPlXaZK.mjs → footer-DenAcikt.mjs} +3 -3
  107. package/dist/{footer-BLPlXaZK.mjs.map → footer-DenAcikt.mjs.map} +1 -1
  108. package/dist/footer.cjs.js +1 -1
  109. package/dist/footer.es.js +1 -1
  110. package/dist/{hero-banner-DkC_BqM7.mjs → hero-banner-B7xrDfzN.mjs} +2 -2
  111. package/dist/{hero-banner-DkC_BqM7.mjs.map → hero-banner-B7xrDfzN.mjs.map} +1 -1
  112. package/dist/{hero-banner-D1A-_qou.js → hero-banner-DthITuQ7.js} +2 -2
  113. package/dist/{hero-banner-D1A-_qou.js.map → hero-banner-DthITuQ7.js.map} +1 -1
  114. package/dist/hero-banner.cjs.js +1 -1
  115. package/dist/hero-banner.es.js +1 -1
  116. package/dist/libraries/library/src/avatar.d.ts +6 -0
  117. package/dist/libraries/library/src/avatar.d.ts.map +1 -0
  118. package/dist/libraries/library/src/library.d.ts +3 -0
  119. package/dist/libraries/library/src/library.d.ts.map +1 -1
  120. package/dist/libraries/library/src/loading.d.ts +6 -0
  121. package/dist/libraries/library/src/loading.d.ts.map +1 -0
  122. package/dist/libraries/library/src/message.d.ts +6 -0
  123. package/dist/libraries/library/src/message.d.ts.map +1 -0
  124. package/dist/libraries/theme/src/ThemeProvider.d.ts.map +1 -1
  125. package/dist/libraries/theme/src/theme.d.ts +1 -0
  126. package/dist/libraries/theme/src/theme.d.ts.map +1 -1
  127. package/dist/libraries/theme/src/types.d.ts +7 -0
  128. package/dist/libraries/theme/src/types.d.ts.map +1 -1
  129. package/dist/libraries/theme/src/useThemePortalContainer.d.ts +12 -0
  130. package/dist/libraries/theme/src/useThemePortalContainer.d.ts.map +1 -0
  131. package/dist/library.cjs.js +1 -1
  132. package/dist/library.es.js +630 -623
  133. package/dist/library.es.js.map +1 -1
  134. package/dist/loading-Dwtkjstg.js +2 -0
  135. package/dist/loading-Dwtkjstg.js.map +1 -0
  136. package/dist/loading-r23nxJSz.mjs +107 -0
  137. package/dist/loading-r23nxJSz.mjs.map +1 -0
  138. package/dist/loading.cjs.js +2 -0
  139. package/dist/loading.cjs.js.map +1 -0
  140. package/dist/loading.es.js +5 -0
  141. package/dist/loading.es.js.map +1 -0
  142. package/dist/message-0yTS5pOF.js +3 -0
  143. package/dist/message-0yTS5pOF.js.map +1 -0
  144. package/dist/message-D9CDwcw9.mjs +132 -0
  145. package/dist/message-D9CDwcw9.mjs.map +1 -0
  146. package/dist/message.cjs.js +2 -0
  147. package/dist/message.cjs.js.map +1 -0
  148. package/dist/message.es.js +5 -0
  149. package/dist/message.es.js.map +1 -0
  150. package/dist/modal-DJn9idcw.js +2 -0
  151. package/dist/modal-DJn9idcw.js.map +1 -0
  152. package/dist/{modal-fp37VbrH.mjs → modal-EIP36327.mjs} +83 -80
  153. package/dist/modal-EIP36327.mjs.map +1 -0
  154. package/dist/modal.cjs.js +1 -1
  155. package/dist/modal.es.js +1 -1
  156. package/dist/{popover-I26xNbTz.mjs → popover-DERrvReO.mjs} +328 -325
  157. package/dist/popover-DERrvReO.mjs.map +1 -0
  158. package/dist/popover-DnGgzfQr.js +2 -0
  159. package/dist/popover-DnGgzfQr.js.map +1 -0
  160. package/dist/popover.cjs.js +1 -1
  161. package/dist/popover.es.js +1 -1
  162. package/dist/{product-card-CoY1KggV.js → product-card-8X-Ld2d_.js} +2 -2
  163. package/dist/{product-card-CoY1KggV.js.map → product-card-8X-Ld2d_.js.map} +1 -1
  164. package/dist/{product-card-C3_N0t-R.mjs → product-card-Bt-F0wKr.mjs} +10 -10
  165. package/dist/{product-card-C3_N0t-R.mjs.map → product-card-Bt-F0wKr.mjs.map} +1 -1
  166. package/dist/product-card.cjs.js +1 -1
  167. package/dist/product-card.es.js +1 -1
  168. package/dist/{promotion-card-BiHnQvhn.mjs → promotion-card-BnzIVNQ4.mjs} +2 -2
  169. package/dist/{promotion-card-BiHnQvhn.mjs.map → promotion-card-BnzIVNQ4.mjs.map} +1 -1
  170. package/dist/{promotion-card-Bag64gqP.js → promotion-card-DKc2Cx1h.js} +2 -2
  171. package/dist/{promotion-card-Bag64gqP.js.map → promotion-card-DKc2Cx1h.js.map} +1 -1
  172. package/dist/promotion-card.cjs.js +1 -1
  173. package/dist/promotion-card.es.js +1 -1
  174. package/dist/purpur.css +1 -1
  175. package/dist/radio-card-group-ZBXjYcQs.mjs +166 -0
  176. package/dist/radio-card-group-ZBXjYcQs.mjs.map +1 -0
  177. package/dist/radio-card-group-nrDi5EPK.js +2 -0
  178. package/dist/radio-card-group-nrDi5EPK.js.map +1 -0
  179. package/dist/radio-card-group.cjs.js +1 -1
  180. package/dist/radio-card-group.es.js +3 -5
  181. package/dist/search-field-2vdDbiT0.js +2 -0
  182. package/dist/search-field-2vdDbiT0.js.map +1 -0
  183. package/dist/search-field-DKyNh7pE.mjs +167 -0
  184. package/dist/search-field-DKyNh7pE.mjs.map +1 -0
  185. package/dist/search-field.cjs.js +1 -1
  186. package/dist/search-field.es.js +1 -1
  187. package/dist/{stepper-CWR2vGPj.mjs → stepper-BDsSa6yr.mjs} +2 -2
  188. package/dist/{stepper-CWR2vGPj.mjs.map → stepper-BDsSa6yr.mjs.map} +1 -1
  189. package/dist/{stepper-Df4X7DDR.js → stepper-DpauItjx.js} +2 -2
  190. package/dist/{stepper-Df4X7DDR.js.map → stepper-DpauItjx.js.map} +1 -1
  191. package/dist/stepper.cjs.js +1 -1
  192. package/dist/stepper.es.js +1 -1
  193. package/dist/{table-gnGUejtb.js → table-BOCcBzSO.js} +4 -4
  194. package/dist/table-BOCcBzSO.js.map +1 -0
  195. package/dist/{table-g_n68i4s.mjs → table-i1Gs9e0e.mjs} +440 -440
  196. package/dist/table-i1Gs9e0e.mjs.map +1 -0
  197. package/dist/table.cjs.js +1 -1
  198. package/dist/table.es.js +1 -1
  199. package/dist/{text-area-peNKG7g4.js → text-area-D0truMT1.js} +2 -2
  200. package/dist/{text-area-peNKG7g4.js.map → text-area-D0truMT1.js.map} +1 -1
  201. package/dist/{text-area-kJvg6cFp.mjs → text-area-IVH-k4MM.mjs} +3 -3
  202. package/dist/{text-area-kJvg6cFp.mjs.map → text-area-IVH-k4MM.mjs.map} +1 -1
  203. package/dist/text-area.cjs.js +1 -1
  204. package/dist/text-area.es.js +1 -1
  205. package/dist/theme.cjs.js +1 -1
  206. package/dist/theme.es.js +8 -6
  207. package/dist/theme.es.js.map +1 -1
  208. package/dist/tooltip-CJGmJDFQ.js +2 -0
  209. package/dist/{tooltip-C8Zxnqdb.js.map → tooltip-CJGmJDFQ.js.map} +1 -1
  210. package/dist/{tooltip-LU2Cy-QC.mjs → tooltip-RA-03bKs.mjs} +277 -274
  211. package/dist/{tooltip-LU2Cy-QC.mjs.map → tooltip-RA-03bKs.mjs.map} +1 -1
  212. package/dist/tooltip.cjs.js +1 -1
  213. package/dist/tooltip.es.js +1 -1
  214. package/dist/{useColorScheme-tAkY9LHt.mjs → useColorScheme-B9DWd-LN.mjs} +2 -2
  215. package/dist/{useColorScheme-tAkY9LHt.mjs.map → useColorScheme-B9DWd-LN.mjs.map} +1 -1
  216. package/dist/useColorScheme-DbTQjxNB.js +2 -0
  217. package/dist/{useColorScheme-DNyjsWX9.js.map → useColorScheme-DbTQjxNB.js.map} +1 -1
  218. package/dist/useThemePortalContainer-D9BYjEvT.js +2 -0
  219. package/dist/useThemePortalContainer-D9BYjEvT.js.map +1 -0
  220. package/dist/useThemePortalContainer-tFLTaYKN.mjs +9 -0
  221. package/dist/useThemePortalContainer-tFLTaYKN.mjs.map +1 -0
  222. package/package.json +27 -24
  223. package/src/aliases.ts +12 -0
  224. package/src/avatar.ts +6 -0
  225. package/src/entries.js +3 -0
  226. package/src/library.ts +5 -68
  227. package/src/loading.ts +6 -0
  228. package/src/message.ts +6 -0
  229. package/dist/ThemeProvider-CkX-BNWN.mjs +0 -337
  230. package/dist/ThemeProvider-Dy771oix.js +0 -2
  231. package/dist/carousel-DLkTL9sj.mjs +0 -1633
  232. package/dist/carousel-DLkTL9sj.mjs.map +0 -1
  233. package/dist/carousel-DXrtxRz5.js +0 -2
  234. package/dist/carousel-DXrtxRz5.js.map +0 -1
  235. package/dist/color-dot-6Mxngvce.mjs +0 -34
  236. package/dist/color-dot-6Mxngvce.mjs.map +0 -1
  237. package/dist/color-dot-B9w_ucWb.js +0 -2
  238. package/dist/color-dot-B9w_ucWb.js.map +0 -1
  239. package/dist/comparison-table-C74IAVqz.js +0 -2
  240. package/dist/comparison-table-C74IAVqz.js.map +0 -1
  241. package/dist/comparison-table-DctKxmX9.mjs +0 -267
  242. package/dist/comparison-table-DctKxmX9.mjs.map +0 -1
  243. package/dist/date-picker-CzxhZxsw.mjs +0 -1611
  244. package/dist/date-picker-uyPKJulK.js +0 -2
  245. package/dist/drawer-8Acg4wkV.mjs +0 -574
  246. package/dist/drawer-8Acg4wkV.mjs.map +0 -1
  247. package/dist/drawer-BLHgcEqb.js +0 -2
  248. package/dist/drawer-BLHgcEqb.js.map +0 -1
  249. package/dist/modal-Baisuc6m.js +0 -2
  250. package/dist/modal-Baisuc6m.js.map +0 -1
  251. package/dist/modal-fp37VbrH.mjs.map +0 -1
  252. package/dist/popover-B0XJZ5mj.js +0 -2
  253. package/dist/popover-B0XJZ5mj.js.map +0 -1
  254. package/dist/popover-I26xNbTz.mjs.map +0 -1
  255. package/dist/radio-card-group-CneOprGY.mjs +0 -168
  256. package/dist/radio-card-group-CneOprGY.mjs.map +0 -1
  257. package/dist/radio-card-group-Ctuvg61o.js +0 -2
  258. package/dist/radio-card-group-Ctuvg61o.js.map +0 -1
  259. package/dist/search-field-CpkHGIYi.mjs +0 -151
  260. package/dist/search-field-CpkHGIYi.mjs.map +0 -1
  261. package/dist/search-field-Z0PqDARl.js +0 -2
  262. package/dist/search-field-Z0PqDARl.js.map +0 -1
  263. package/dist/table-g_n68i4s.mjs.map +0 -1
  264. package/dist/table-gnGUejtb.js.map +0 -1
  265. package/dist/tooltip-C8Zxnqdb.js +0 -2
  266. package/dist/useColorScheme-DNyjsWX9.js +0 -2
  267. package/tokens/_dark.scss +0 -9
  268. package/tokens/_index.scss +0 -9
  269. package/tokens/border/variables.css +0 -13
  270. package/tokens/border/variables.d.ts +0 -10
  271. package/tokens/border/variables.dark.css +0 -12
  272. package/tokens/border/variables.dark.d.ts +0 -10
  273. package/tokens/border/variables.dark.js +0 -10
  274. package/tokens/border/variables.dark.json +0 -18
  275. package/tokens/border/variables.dark.scss +0 -10
  276. package/tokens/border/variables.js +0 -10
  277. package/tokens/border/variables.json +0 -18
  278. package/tokens/border/variables.scss +0 -10
  279. package/tokens/breakpoint/variables.css +0 -11
  280. package/tokens/breakpoint/variables.d.ts +0 -8
  281. package/tokens/breakpoint/variables.dark.css +0 -10
  282. package/tokens/breakpoint/variables.dark.d.ts +0 -8
  283. package/tokens/breakpoint/variables.dark.js +0 -8
  284. package/tokens/breakpoint/variables.dark.json +0 -14
  285. package/tokens/breakpoint/variables.dark.scss +0 -8
  286. package/tokens/breakpoint/variables.js +0 -8
  287. package/tokens/breakpoint/variables.json +0 -14
  288. package/tokens/breakpoint/variables.scss +0 -8
  289. package/tokens/color/variables.css +0 -262
  290. package/tokens/color/variables.d.ts +0 -253
  291. package/tokens/color/variables.dark.css +0 -262
  292. package/tokens/color/variables.dark.d.ts +0 -252
  293. package/tokens/color/variables.dark.js +0 -252
  294. package/tokens/color/variables.dark.json +0 -306
  295. package/tokens/color/variables.dark.scss +0 -252
  296. package/tokens/color/variables.js +0 -253
  297. package/tokens/color/variables.json +0 -307
  298. package/tokens/color/variables.scss +0 -253
  299. package/tokens/dark.css +0 -9
  300. package/tokens/dark.d.ts +0 -9
  301. package/tokens/dark.js +0 -9
  302. package/tokens/filter/variables.css +0 -4
  303. package/tokens/filter/variables.d.ts +0 -1
  304. package/tokens/filter/variables.dark.css +0 -3
  305. package/tokens/filter/variables.dark.d.ts +0 -1
  306. package/tokens/filter/variables.dark.js +0 -1
  307. package/tokens/filter/variables.dark.json +0 -7
  308. package/tokens/filter/variables.dark.scss +0 -1
  309. package/tokens/filter/variables.js +0 -1
  310. package/tokens/filter/variables.json +0 -7
  311. package/tokens/filter/variables.scss +0 -1
  312. package/tokens/gradient/variables.css +0 -53
  313. package/tokens/gradient/variables.d.ts +0 -9
  314. package/tokens/gradient/variables.dark.css +0 -51
  315. package/tokens/gradient/variables.dark.d.ts +0 -9
  316. package/tokens/gradient/variables.dark.js +0 -18
  317. package/tokens/gradient/variables.dark.json +0 -27
  318. package/tokens/gradient/variables.dark.scss +0 -36
  319. package/tokens/gradient/variables.js +0 -18
  320. package/tokens/gradient/variables.json +0 -27
  321. package/tokens/gradient/variables.scss +0 -42
  322. package/tokens/index.css +0 -18
  323. package/tokens/index.d.ts +0 -9
  324. package/tokens/index.js +0 -9
  325. package/tokens/motion/variables.css +0 -14
  326. package/tokens/motion/variables.d.ts +0 -11
  327. package/tokens/motion/variables.dark.css +0 -13
  328. package/tokens/motion/variables.dark.d.ts +0 -11
  329. package/tokens/motion/variables.dark.js +0 -11
  330. package/tokens/motion/variables.dark.json +0 -19
  331. package/tokens/motion/variables.dark.scss +0 -11
  332. package/tokens/motion/variables.js +0 -11
  333. package/tokens/motion/variables.json +0 -19
  334. package/tokens/motion/variables.scss +0 -11
  335. package/tokens/shadow/variables.css +0 -11
  336. package/tokens/shadow/variables.d.ts +0 -4
  337. package/tokens/shadow/variables.dark.css +0 -10
  338. package/tokens/shadow/variables.dark.d.ts +0 -4
  339. package/tokens/shadow/variables.dark.js +0 -4
  340. package/tokens/shadow/variables.dark.json +0 -8
  341. package/tokens/shadow/variables.dark.scss +0 -4
  342. package/tokens/shadow/variables.js +0 -4
  343. package/tokens/shadow/variables.json +0 -8
  344. package/tokens/shadow/variables.scss +0 -4
  345. package/tokens/spacing/variables.css +0 -26
  346. package/tokens/spacing/variables.d.ts +0 -23
  347. package/tokens/spacing/variables.dark.css +0 -17
  348. package/tokens/spacing/variables.dark.d.ts +0 -15
  349. package/tokens/spacing/variables.dark.js +0 -15
  350. package/tokens/spacing/variables.dark.json +0 -19
  351. package/tokens/spacing/variables.dark.scss +0 -15
  352. package/tokens/spacing/variables.js +0 -23
  353. package/tokens/spacing/variables.json +0 -31
  354. package/tokens/spacing/variables.scss +0 -23
  355. package/tokens/typography/variables.css +0 -30
  356. package/tokens/typography/variables.d.ts +0 -26
  357. package/tokens/typography/variables.dark.css +0 -29
  358. package/tokens/typography/variables.dark.d.ts +0 -26
  359. package/tokens/typography/variables.dark.js +0 -28
  360. package/tokens/typography/variables.dark.json +0 -38
  361. package/tokens/typography/variables.dark.scss +0 -26
  362. package/tokens/typography/variables.js +0 -28
  363. package/tokens/typography/variables.json +0 -38
  364. package/tokens/typography/variables.scss +0 -26
@@ -1,18 +1,20 @@
1
- import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
- import { P as k, O as q, C as G, T as J, D, a as Q, b as X, R as Y } from "./index-3NV-ckDX.mjs";
3
- import { forwardRef as H, useState as O, useRef as b, useCallback as Z, useEffect as g } from "react";
4
- import { b as tt } from "./button-4-yWOgtD.mjs";
5
- import { H as et } from "./heading-xwBuT_-9.mjs";
6
- import { r as rt } from "./close.es-BPmk2wkU.mjs";
7
- import { P as nt } from "./paragraph-DSxXmX_0.mjs";
8
- import { V as ot } from "./visually-hidden-BYFkJEp1.mjs";
9
- import { c as at } from "./bind-CU-R61T-.mjs";
10
- const lt = "_fadeIn_1nrj3_1", st = "_fadeOut_1nrj3_1", _t = "_slideUp_1nrj3_1", dt = "_slideDown_1nrj3_1", ct = {
1
+ import { jsxs as l, jsx as t } from "react/jsx-runtime";
2
+ import { P as J, O as Q, C as X, T as Y, D as O, a as Z, b as tt, R as et } from "./index-3NV-ckDX.mjs";
3
+ import { forwardRef as I, useState as P, useRef as b, useCallback as rt, useEffect as g } from "react";
4
+ import { b as nt } from "./button-4-yWOgtD.mjs";
5
+ import { H as ot } from "./heading-xwBuT_-9.mjs";
6
+ import { r as at } from "./close.es-BPmk2wkU.mjs";
7
+ import { P as st } from "./paragraph-DSxXmX_0.mjs";
8
+ import "./ThemeProvider-DiDBfyFA.mjs";
9
+ import { u as lt } from "./useThemePortalContainer-tFLTaYKN.mjs";
10
+ import { V as _t } from "./visually-hidden-BYFkJEp1.mjs";
11
+ import { c as dt } from "./bind-CU-R61T-.mjs";
12
+ const it = "_fadeIn_1nrj3_1", ct = "_fadeOut_1nrj3_1", ut = "_slideUp_1nrj3_1", pt = "_slideDown_1nrj3_1", mt = {
11
13
  "purpur-modal-content": "_purpur-modal-content_1nrj3_1",
12
- fadeIn: lt,
13
- fadeOut: st,
14
- slideUp: _t,
15
- slideDown: dt,
14
+ fadeIn: it,
15
+ fadeOut: ct,
16
+ slideUp: ut,
17
+ slideDown: pt,
16
18
  "purpur-modal-content__overlay": "_purpur-modal-content__overlay_1nrj3_49",
17
19
  "purpur-modal-content__close-button": "_purpur-modal-content__close-button_1nrj3_65",
18
20
  "purpur-modal-content__wrapper": "_purpur-modal-content__wrapper_1nrj3_75",
@@ -31,104 +33,105 @@ const lt = "_fadeIn_1nrj3_1", st = "_fadeOut_1nrj3_1", _t = "_slideUp_1nrj3_1",
31
33
  "purpur-modal-content__actions": "_purpur-modal-content__actions_1nrj3_154",
32
34
  "purpur-modal-content__actions-separator": "_purpur-modal-content__actions-separator_1nrj3_206",
33
35
  "purpur-modal-content--sticky-footer": "_purpur-modal-content--sticky-footer_1nrj3_216"
34
- }, P = (n) => n.showCloseButton === !0, r = at.bind(ct), e = "purpur-modal-content", it = H(
36
+ }, R = (n) => n.showCloseButton === !0, r = dt.bind(mt), e = "purpur-modal-content", ht = I(
35
37
  ({
36
38
  ["data-testid"]: n,
37
39
  actions: o,
38
40
  children: a,
39
- className: c,
40
- description: i,
41
+ className: i,
42
+ description: c,
41
43
  disableCloseOnClickOutside: $,
42
- hideDescription: N,
44
+ hideDescription: C,
43
45
  image: u,
44
46
  stickyButtons: w = !0,
45
- title: I,
47
+ title: M,
46
48
  notification: v = void 0,
47
- zIndex: C,
48
- onCloseAutoFocus: M,
49
+ zIndex: N,
50
+ container: D,
51
+ onCloseAutoFocus: T,
49
52
  ...y
50
53
  }, E) => {
51
- const { closeButtonAriaLabel: m, showCloseButton: S, ...T } = y, [B, V] = O(!1), [W, z] = O(0), p = b(null), h = b(null), A = r(
54
+ const { closeButtonAriaLabel: m, showCloseButton: S, ...B } = y, [V, W] = P(!1), [z, A] = P(0), p = b(null), h = b(null), F = lt(), L = D === void 0 ? F : D ?? void 0, U = r(
52
55
  e,
53
56
  { [`${e}--with-image`]: !!u },
54
- { [`${e}--overflow`]: B },
57
+ { [`${e}--overflow`]: V },
55
58
  { [`${e}--sticky-footer`]: w },
56
- c
57
- ), _ = (l) => n ? `${n} ${l}` : void 0, F = (l) => {
58
- $ && l.preventDefault();
59
- }, d = Z(() => {
59
+ i
60
+ ), _ = (s) => n ? `${n} ${s}` : void 0, K = (s) => {
61
+ $ && s.preventDefault();
62
+ }, d = rt(() => {
60
63
  if (!p.current || !h.current)
61
64
  return;
62
- const l = window.getComputedStyle(p.current, null), f = parseFloat(l.getPropertyValue("height")), K = h.current.offsetHeight;
63
- V(f < K), z(
65
+ const s = window.getComputedStyle(p.current, null), f = parseFloat(s.getPropertyValue("height")), G = h.current.offsetHeight;
66
+ W(f < G), A(
64
67
  (p.current.offsetWidth ?? 0) - (p.current.clientWidth ?? 0)
65
68
  );
66
- }, []), L = () => {
67
- const l = h.current;
68
- if (l) {
69
- const f = l.querySelector("h2");
69
+ }, []), k = () => {
70
+ const s = h.current;
71
+ if (s) {
72
+ const f = s.querySelector("h2");
70
73
  f && setTimeout(() => {
71
74
  f.focus();
72
75
  });
73
76
  }
74
- }, U = (l) => {
75
- $ && !S && l.preventDefault();
77
+ }, q = (s) => {
78
+ $ && !S && s.preventDefault();
76
79
  };
77
80
  return g(() => (window.addEventListener("resize", d), () => {
78
81
  window.removeEventListener("resize", d);
79
82
  }), [d]), g(() => {
80
83
  d();
81
- }, [v, a, d]), /* @__PURE__ */ s(k, { children: [
82
- /* @__PURE__ */ t(q, { className: r(`${e}__overlay`), style: { zIndex: C } }),
83
- /* @__PURE__ */ s(
84
- G,
84
+ }, [v, a, d]), /* @__PURE__ */ l(J, { container: L, children: [
85
+ /* @__PURE__ */ t(Q, { className: r(`${e}__overlay`), style: { zIndex: N } }),
86
+ /* @__PURE__ */ l(
87
+ X,
85
88
  {
86
- ...T,
87
- className: A,
89
+ ...B,
90
+ className: U,
88
91
  "data-testid": n,
89
92
  ref: E,
90
- ...!i && { "aria-describedby": void 0 },
91
- onPointerDownOutside: F,
93
+ ...!c && { "aria-describedby": void 0 },
94
+ onPointerDownOutside: K,
92
95
  onOpenAutoFocus: () => {
93
- d(), L();
96
+ d(), k();
94
97
  },
95
- onEscapeKeyDown: U,
96
- onCloseAutoFocus: M,
97
- style: { zIndex: `calc(${C} + 1)` },
98
+ onEscapeKeyDown: q,
99
+ onCloseAutoFocus: T,
100
+ style: { zIndex: `calc(${N} + 1)` },
98
101
  children: [
99
- /* @__PURE__ */ s("div", { ref: p, className: r(`${e}__wrapper`), children: [
100
- P(y) && m && u && /* @__PURE__ */ t(
101
- R,
102
+ /* @__PURE__ */ l("div", { ref: p, className: r(`${e}__wrapper`), children: [
103
+ R(y) && m && u && /* @__PURE__ */ t(
104
+ x,
102
105
  {
103
106
  "aria-label": m,
104
107
  hasImage: !0,
105
- scrollbarWidth: W,
108
+ scrollbarWidth: z,
106
109
  "data-testid": _("close-button")
107
110
  }
108
111
  ),
109
- /* @__PURE__ */ s("div", { ref: h, className: r(`${e}__wrapper-inner`), children: [
110
- /* @__PURE__ */ s("div", { className: r(`${e}__header`), children: [
111
- P(y) && m && !u && /* @__PURE__ */ t(
112
- R,
112
+ /* @__PURE__ */ l("div", { ref: h, className: r(`${e}__wrapper-inner`), children: [
113
+ /* @__PURE__ */ l("div", { className: r(`${e}__header`), children: [
114
+ R(y) && m && !u && /* @__PURE__ */ t(
115
+ x,
113
116
  {
114
117
  "aria-label": m,
115
118
  "data-testid": _("close-button")
116
119
  }
117
120
  ),
118
121
  /* @__PURE__ */ t(
119
- J,
122
+ Y,
120
123
  {
121
124
  asChild: !0,
122
125
  className: r(`${e}__title`),
123
126
  "data-testid": _("title"),
124
127
  children: /* @__PURE__ */ t(
125
- et,
128
+ ot,
126
129
  {
127
130
  tag: "h2",
128
131
  variant: "display-10",
129
132
  tabIndex: -1,
130
133
  className: r(`${e}__heading`),
131
- children: I
134
+ children: M
132
135
  }
133
136
  )
134
137
  }
@@ -142,35 +145,35 @@ const lt = "_fadeIn_1nrj3_1", st = "_fadeOut_1nrj3_1", _t = "_slideUp_1nrj3_1",
142
145
  children: u
143
146
  }
144
147
  ),
145
- /* @__PURE__ */ t("div", { className: r(`${e}__body`), children: /* @__PURE__ */ s("div", { className: r(`${e}__body-inner`), children: [
146
- i && N && /* @__PURE__ */ t(ot, { asChild: !0, children: /* @__PURE__ */ t(D, { "data-testid": _("description"), children: i }) }),
147
- i && !N && /* @__PURE__ */ t(
148
- D,
148
+ /* @__PURE__ */ t("div", { className: r(`${e}__body`), children: /* @__PURE__ */ l("div", { className: r(`${e}__body-inner`), children: [
149
+ c && C && /* @__PURE__ */ t(_t, { asChild: !0, children: /* @__PURE__ */ t(O, { "data-testid": _("description"), children: c }) }),
150
+ c && !C && /* @__PURE__ */ t(
151
+ O,
149
152
  {
150
153
  asChild: !0,
151
154
  className: r(`${e}__description`),
152
155
  "data-testid": _("description"),
153
- children: /* @__PURE__ */ t(nt, { variant: "paragraph-100", children: i })
156
+ children: /* @__PURE__ */ t(st, { variant: "paragraph-100", children: c })
154
157
  }
155
158
  ),
156
159
  /* @__PURE__ */ t("div", { children: a }),
157
- !w && /* @__PURE__ */ t(x, { actions: o, notification: v })
160
+ !w && /* @__PURE__ */ t(H, { actions: o, notification: v })
158
161
  ] }) })
159
162
  ] })
160
163
  ] }),
161
- w && /* @__PURE__ */ t(x, { actions: o, notification: v })
164
+ w && /* @__PURE__ */ t(H, { actions: o, notification: v })
162
165
  ]
163
166
  }
164
167
  )
165
168
  ] });
166
169
  }
167
- ), R = ({
170
+ ), x = ({
168
171
  ["aria-label"]: n,
169
172
  hasImage: o,
170
173
  scrollbarWidth: a,
171
- ["data-testid"]: c
172
- }) => /* @__PURE__ */ t(Q, { asChild: !0, children: /* @__PURE__ */ t(
173
- tt,
174
+ ["data-testid"]: i
175
+ }) => /* @__PURE__ */ t(Z, { asChild: !0, children: /* @__PURE__ */ t(
176
+ nt,
174
177
  {
175
178
  variant: o ? "primary" : "tertiary-purple",
176
179
  negative: o,
@@ -179,33 +182,33 @@ const lt = "_fadeIn_1nrj3_1", st = "_fadeOut_1nrj3_1", _t = "_slideUp_1nrj3_1",
179
182
  "aria-label": n,
180
183
  className: r(`${e}__close-button`),
181
184
  style: { right: `calc(var(--purpur-spacing-100) + ${a || 0}px)` },
182
- "data-testid": c,
183
- children: /* @__PURE__ */ t(rt, {})
185
+ "data-testid": i,
186
+ children: /* @__PURE__ */ t(at, {})
184
187
  }
185
- ) }), x = ({
188
+ ) }), H = ({
186
189
  actions: n,
187
190
  notification: o
188
191
  }) => {
189
192
  const a = b(null);
190
193
  return g(() => {
191
194
  o && a?.current?.scrollIntoView?.(!1);
192
- }, [o]), n ? /* @__PURE__ */ s("div", { className: r(`${e}__actions`), children: [
195
+ }, [o]), n ? /* @__PURE__ */ l("div", { className: r(`${e}__actions`), children: [
193
196
  /* @__PURE__ */ t("div", { className: r(`${e}__actions-buttons`), "data-testid": "modal actions", children: n }),
194
197
  o && /* @__PURE__ */ t("div", { className: r(`${e}__notification`), ref: a, children: o }),
195
198
  /* @__PURE__ */ t("span", { className: r(`${e}__actions-separator`) })
196
199
  ] }) : null;
197
- }, ut = H(
198
- ({ children: n, ...o }, a) => /* @__PURE__ */ t(X, { asChild: !0, ref: a, ...o, children: n })
200
+ }, ft = I(
201
+ ({ children: n, ...o }, a) => /* @__PURE__ */ t(tt, { asChild: !0, ref: a, ...o, children: n })
199
202
  ), j = ({
200
203
  ["data-testid"]: n,
201
204
  children: o,
202
205
  open: a,
203
- onOpenChange: c
204
- }) => /* @__PURE__ */ t(Y, { open: a, onOpenChange: c, "data-testid": n, children: o });
205
- j.Trigger = ut;
206
- j.Content = it;
206
+ onOpenChange: i
207
+ }) => /* @__PURE__ */ t(et, { open: a, onOpenChange: i, "data-testid": n, children: o });
208
+ j.Trigger = ft;
209
+ j.Content = ht;
207
210
  j.displayName = "Modal";
208
211
  export {
209
212
  j as M
210
213
  };
211
- //# sourceMappingURL=modal-fp37VbrH.mjs.map
214
+ //# sourceMappingURL=modal-EIP36327.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-EIP36327.mjs","sources":["../../../components/modal/src/modal-content.tsx","../../../components/modal/src/modal-trigger.tsx","../../../components/modal/src/modal.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Heading } from \"@purpur/heading\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { useThemePortalContainer } from \"@purpur/theme\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport {\n Close as RadixClose,\n Content as RadixContent,\n Description as RadixDescription,\n Overlay as RadixOverlay,\n Portal as RadixPortal,\n Title as RadixTitle,\n} from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport \"@purpur/notification/styles\";\nimport styles from \"./modal-content.module.scss\";\n\nexport type DefaultProps = Omit<BaseProps, \"children\"> & {\n /**\n * One or several CTA links or buttons\n * */\n actions?: ReactNode;\n children: ReactNode;\n /**\n * An optional accessible description to be announced when the dialog is opened.\n * */\n description?: string;\n /**\n * Prevents the modal from closing on click outside if set to `true`.\n * */\n disableCloseOnClickOutside?: boolean;\n /**\n * Visually hides the description if set to `true`.\n * */\n hideDescription?: boolean;\n /**\n * An optional image to be displayed at the top of the modal.\n * */\n image?: ReactNode;\n /**\n * Provide a Purpur Notification which will render beneath the modal buttons, otherwise leave it undefined.\n * */\n notification?: ReactNode;\n /**\n * Determines whether the button group should be fixed at the bottom or scroll with the content.\n * */\n stickyButtons?: boolean;\n /**\n * An accessible title to be announced when the dialog is opened.\n * */\n title: string;\n /**\n * z-index of the modal\n * */\n zIndex?: number;\n /**\n * Optional DOM element to portal the modal content into. When omitted,\n * the modal renders inside the nearest `ThemeProvider` so it inherits\n * the active color scheme. Pass `document.body` (or any other element) to\n * override. Pass `null` to fall back to Radix' default (`document.body`).\n * */\n container?: HTMLElement | null;\n /**\n * Event handler called when focus moves to the trigger after closing.\n * */\n onCloseAutoFocus?: (e: Event) => void;\n};\n\ntype NoCloseButtonProps = {\n /**\n * An accessible label for the close button.\n * */\n closeButtonAriaLabel?: never;\n /**\n * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.\n * */\n showCloseButton?: false;\n};\n\ntype CloseButtonProps = {\n /**\n * An accessible label for the close button.\n * */\n closeButtonAriaLabel: string;\n /**\n * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.\n * */\n showCloseButton: true;\n};\n\nexport type ModalContentProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);\n\nconst hasCloseButtonProps = (\n props: CloseButtonProps | NoCloseButtonProps\n): props is CloseButtonProps => (props as CloseButtonProps).showCloseButton === true;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-modal-content\";\n\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n actions,\n children,\n className,\n description,\n disableCloseOnClickOutside,\n hideDescription,\n image,\n stickyButtons = true,\n title,\n notification = undefined,\n zIndex,\n container,\n onCloseAutoFocus,\n ...props\n },\n ref\n ) => {\n const { closeButtonAriaLabel, showCloseButton, ...rest } = props;\n const [contentOverflow, setContentOverflow] = useState(false);\n const [scrollbarWidth, setScrollbarWidth] = useState(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const wrapperInnerRef = useRef<HTMLDivElement>(null);\n const themePortalContainer = useThemePortalContainer();\n const portalContainer =\n container === undefined ? themePortalContainer : container ?? undefined;\n\n const classes = cx(\n rootClassName,\n { [`${rootClassName}--with-image`]: !!image },\n { [`${rootClassName}--overflow`]: contentOverflow },\n { [`${rootClassName}--sticky-footer`]: stickyButtons },\n className\n );\n\n const getTestId = (id: string) => (dataTestId ? `${dataTestId} ${id}` : undefined);\n\n const handlePointerDownOutside = (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n if (disableCloseOnClickOutside) {\n event.preventDefault();\n }\n };\n\n const handleContentOverflow = useCallback(() => {\n if (!wrapperRef.current || !wrapperInnerRef.current) {\n return;\n }\n\n const computedStyle = window.getComputedStyle(wrapperRef.current, null);\n const wrapperHeight = parseFloat(computedStyle.getPropertyValue(\"height\"));\n const innerHeight = wrapperInnerRef.current.offsetHeight;\n\n setContentOverflow(wrapperHeight < innerHeight);\n\n setScrollbarWidth(\n (wrapperRef.current.offsetWidth ?? 0) - (wrapperRef.current.clientWidth ?? 0)\n );\n }, []);\n\n const handleInitialFocus = () => {\n const frame = wrapperInnerRef.current;\n if (frame) {\n const heading = frame.querySelector(\"h2\");\n\n heading &&\n setTimeout(() => {\n heading.focus();\n });\n }\n };\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (disableCloseOnClickOutside && !showCloseButton) {\n event.preventDefault();\n }\n };\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleContentOverflow);\n\n return () => {\n window.removeEventListener(\"resize\", handleContentOverflow);\n };\n }, [handleContentOverflow]);\n\n useEffect(() => {\n handleContentOverflow();\n }, [notification, children, handleContentOverflow]);\n\n return (\n <RadixPortal container={portalContainer}>\n <RadixOverlay className={cx(`${rootClassName}__overlay`)} style={{ zIndex }} />\n <RadixContent\n {...rest}\n className={classes}\n data-testid={dataTestId}\n ref={ref}\n {...(!description && { [\"aria-describedby\"]: undefined })}\n onPointerDownOutside={handlePointerDownOutside}\n onOpenAutoFocus={() => {\n handleContentOverflow();\n handleInitialFocus();\n }}\n onEscapeKeyDown={handleEscapeKeyDown}\n onCloseAutoFocus={onCloseAutoFocus}\n style={{ zIndex: `calc(${zIndex} + 1)` }}\n >\n <div ref={wrapperRef} className={cx(`${rootClassName}__wrapper`)}>\n {hasCloseButtonProps(props) && closeButtonAriaLabel && image && (\n <CloseButton\n aria-label={closeButtonAriaLabel}\n hasImage\n scrollbarWidth={scrollbarWidth}\n data-testid={getTestId(\"close-button\")}\n />\n )}\n <div ref={wrapperInnerRef} className={cx(`${rootClassName}__wrapper-inner`)}>\n <div className={cx(`${rootClassName}__header`)}>\n {hasCloseButtonProps(props) && closeButtonAriaLabel && !image && (\n <CloseButton\n aria-label={closeButtonAriaLabel}\n data-testid={getTestId(\"close-button\")}\n />\n )}\n <RadixTitle\n asChild\n className={cx(`${rootClassName}__title`)}\n data-testid={getTestId(\"title\")}\n >\n <Heading\n tag=\"h2\"\n variant=\"display-10\"\n tabIndex={-1}\n className={cx(`${rootClassName}__heading`)}\n >\n {title}\n </Heading>\n </RadixTitle>\n </div>\n {image && (\n <div\n className={cx(`${rootClassName}__image-wrapper`)}\n data-testid={getTestId(\"image\")}\n >\n {image}\n </div>\n )}\n <div className={cx(`${rootClassName}__body`)}>\n <div className={cx(`${rootClassName}__body-inner`)}>\n {description && hideDescription && (\n <VisuallyHidden asChild>\n <RadixDescription data-testid={getTestId(\"description\")}>\n {description}\n </RadixDescription>\n </VisuallyHidden>\n )}\n {description && !hideDescription && (\n <RadixDescription\n asChild\n className={cx(`${rootClassName}__description`)}\n data-testid={getTestId(\"description\")}\n >\n <Paragraph variant=\"paragraph-100\">{description}</Paragraph>\n </RadixDescription>\n )}\n <div>{children}</div>\n {!stickyButtons && <ModalActions actions={actions} notification={notification} />}\n </div>\n </div>\n </div>\n </div>\n\n {stickyButtons && <ModalActions actions={actions} notification={notification} />}\n </RadixContent>\n </RadixPortal>\n );\n }\n);\n\nconst CloseButton = ({\n [\"aria-label\"]: ariaLabel,\n hasImage,\n scrollbarWidth,\n [\"data-testid\"]: dataTestId,\n}: {\n [\"aria-label\"]: string;\n hasImage?: boolean;\n scrollbarWidth?: number;\n [\"data-testid\"]?: string;\n}) => (\n <RadixClose asChild>\n <Button\n variant={hasImage ? \"primary\" : \"tertiary-purple\"}\n negative={hasImage}\n size=\"sm\"\n iconOnly\n aria-label={ariaLabel}\n className={cx(`${rootClassName}__close-button`)}\n style={{ right: `calc(var(--purpur-spacing-100) + ${scrollbarWidth || 0}px)` }}\n data-testid={dataTestId}\n >\n <IconClose />\n </Button>\n </RadixClose>\n);\n\nexport const MAX_NUMBER_OF_ACTIONS = 3;\n\nexport const ModalActions = ({\n actions,\n notification,\n}: Pick<ModalContentProps, \"actions\" | \"notification\">) => {\n const notificationRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (notification) {\n notificationRef?.current?.scrollIntoView?.(false);\n }\n }, [notification]);\n\n return actions ? (\n <div className={cx(`${rootClassName}__actions`)}>\n <div className={cx(`${rootClassName}__actions-buttons`)} data-testid=\"modal actions\">\n {actions}\n </div>\n {notification && (\n <div className={cx(`${rootClassName}__notification`)} ref={notificationRef}>\n {notification}\n </div>\n )}\n <span className={cx(`${rootClassName}__actions-separator`)} />\n </div>\n ) : null;\n};\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Trigger as RadixTrigger } from \"@radix-ui/react-dialog\";\n\nexport type ModalTriggerProps = Omit<BaseProps<\"button\">, \"children\"> & {\n children: ReactNode;\n};\n\nexport const ModalTrigger = forwardRef<HTMLButtonElement, ModalTriggerProps>(\n ({ children, ...props }, ref) => {\n return (\n <RadixTrigger asChild ref={ref} {...props}>\n {children}\n </RadixTrigger>\n );\n }\n);\n","import React, { type ReactNode } from \"react\";\nimport { Root as RadixRoot } from \"@radix-ui/react-dialog\";\n\nimport { ModalContent } from \"./modal-content\";\nimport { ModalTrigger } from \"./modal-trigger\";\n\nexport type ModalProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * Event handler called when the open state of the dialog changes.\n * */\n onOpenChange?: (value: boolean) => void;\n /**\n * The controlled open state of the dialog. Must be used in conjunction with `onOpenChange`.\n * */\n open?: boolean;\n};\n\nexport const Modal = ({\n [\"data-testid\"]: dataTestId,\n children,\n open,\n onOpenChange,\n}: ModalProps) => (\n <RadixRoot open={open} onOpenChange={onOpenChange} data-testid={dataTestId}>\n {children}\n </RadixRoot>\n);\n\nModal.Trigger = ModalTrigger;\nModal.Content = ModalContent;\n\nModal.displayName = \"Modal\";\n"],"names":["hasCloseButtonProps","props","cx","c","styles","rootClassName","ModalContent","forwardRef","dataTestId","actions","children","className","description","disableCloseOnClickOutside","hideDescription","image","stickyButtons","title","notification","zIndex","container","onCloseAutoFocus","ref","closeButtonAriaLabel","showCloseButton","rest","contentOverflow","setContentOverflow","useState","scrollbarWidth","setScrollbarWidth","wrapperRef","useRef","wrapperInnerRef","themePortalContainer","useThemePortalContainer","portalContainer","classes","getTestId","id","handlePointerDownOutside","event","handleContentOverflow","useCallback","computedStyle","wrapperHeight","innerHeight","handleInitialFocus","frame","heading","handleEscapeKeyDown","useEffect","jsxs","RadixPortal","jsx","RadixOverlay","RadixContent","CloseButton","RadixTitle","Heading","VisuallyHidden","RadixDescription","Paragraph","ModalActions","ariaLabel","hasImage","RadixClose","Button","IconClose","notificationRef","ModalTrigger","RadixTrigger","Modal","open","onOpenChange","RadixRoot"],"mappings":"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"}
package/dist/modal.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./modal-Baisuc6m.js");exports.Modal=e.Modal;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./modal-DJn9idcw.js");exports.Modal=e.Modal;
2
2
  //# sourceMappingURL=modal.cjs.js.map
package/dist/modal.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { M as r } from "./modal-fp37VbrH.mjs";
1
+ import { M as r } from "./modal-EIP36327.mjs";
2
2
  export {
3
3
  r as Modal
4
4
  };