@purpur/library 9.10.1 → 10.0.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 (496) hide show
  1. package/CHANGELOG.json +106 -0
  2. package/CHANGELOG.md +44 -1
  3. package/dist/LICENSE.txt +234 -179
  4. package/dist/{RichText-IejAKqm2.js → RichText-B865Qkzj.js} +2 -2
  5. package/dist/{RichText-IejAKqm2.js.map → RichText-B865Qkzj.js.map} +1 -1
  6. package/dist/{RichText-2_z57EYi.mjs → RichText-CPkBwXNI.mjs} +2 -2
  7. package/dist/{RichText-2_z57EYi.mjs.map → RichText-CPkBwXNI.mjs.map} +1 -1
  8. package/dist/accordion-aEZas0k1.mjs +122 -0
  9. package/dist/accordion-aEZas0k1.mjs.map +1 -0
  10. package/dist/accordion-zwsF1oUj.js +2 -0
  11. package/dist/accordion-zwsF1oUj.js.map +1 -0
  12. package/dist/accordion.cjs.js +1 -1
  13. package/dist/accordion.es.js +1 -1
  14. package/dist/button-C5CYysw5.js +2 -0
  15. package/dist/button-C5CYysw5.js.map +1 -0
  16. package/dist/button-mHw_J7JU.mjs +106 -0
  17. package/dist/button-mHw_J7JU.mjs.map +1 -0
  18. package/dist/button.cjs.js +1 -1
  19. package/dist/button.es.js +1 -1
  20. package/dist/{calendar-CTWhxuS4.mjs → calendar-DTL_g0ue.mjs} +4 -14
  21. package/dist/{calendar-CTWhxuS4.mjs.map → calendar-DTL_g0ue.mjs.map} +1 -1
  22. package/dist/{calendar-Cwzqytai.js → calendar-DVOrK53J.js} +2 -2
  23. package/dist/{calendar-Cwzqytai.js.map → calendar-DVOrK53J.js.map} +1 -1
  24. package/dist/calendar.cjs.js +1 -1
  25. package/dist/calendar.es.js +1 -1
  26. package/dist/{card-t2ZkZ82G.mjs → card-C0yhMN5d.mjs} +3 -3
  27. package/dist/card-C0yhMN5d.mjs.map +1 -0
  28. package/dist/{card-pdsBEJif.js → card-CIlY38WI.js} +2 -2
  29. package/dist/card-CIlY38WI.js.map +1 -0
  30. package/dist/card.cjs.js +1 -1
  31. package/dist/card.es.js +1 -1
  32. package/dist/{carousel-DiKGSL-7.mjs → carousel-Dq9yzk_-.mjs} +2 -2
  33. package/dist/{carousel-DiKGSL-7.mjs.map → carousel-Dq9yzk_-.mjs.map} +1 -1
  34. package/dist/{carousel-Dz_bUGo4.js → carousel-j-s6M1hu.js} +2 -2
  35. package/dist/{carousel-Dz_bUGo4.js.map → carousel-j-s6M1hu.js.map} +1 -1
  36. package/dist/carousel.cjs.js +1 -1
  37. package/dist/carousel.es.js +1 -1
  38. package/dist/{chat-field-B2jmpVNr.js → chat-field-CLAjIHlM.js} +2 -2
  39. package/dist/{chat-field-B2jmpVNr.js.map → chat-field-CLAjIHlM.js.map} +1 -1
  40. package/dist/{chat-field-8cKqYcKi.mjs → chat-field-nxFRXoQx.mjs} +2 -2
  41. package/dist/{chat-field-8cKqYcKi.mjs.map → chat-field-nxFRXoQx.mjs.map} +1 -1
  42. package/dist/chat-field.cjs.js +1 -1
  43. package/dist/chat-field.es.js +1 -1
  44. package/dist/{chip-group-B775zvKD.js → chip-group-BLuG0MC6.js} +2 -2
  45. package/dist/{chip-group-B775zvKD.js.map → chip-group-BLuG0MC6.js.map} +1 -1
  46. package/dist/{chip-group-xuOe7nL3.mjs → chip-group-Bo4kJ8Vq.mjs} +2 -2
  47. package/dist/{chip-group-xuOe7nL3.mjs.map → chip-group-Bo4kJ8Vq.mjs.map} +1 -1
  48. package/dist/chip-group.cjs.js +1 -1
  49. package/dist/chip-group.es.js +1 -1
  50. package/dist/color-dot-BEE5rKco.js.map +1 -1
  51. package/dist/color-dot-Dz9yzVX3.mjs.map +1 -1
  52. package/dist/{comparison-table-N5G3k2kr.js → comparison-table-CRWRijfG.js} +2 -2
  53. package/dist/{comparison-table-N5G3k2kr.js.map → comparison-table-CRWRijfG.js.map} +1 -1
  54. package/dist/{comparison-table-CmtSOUfK.mjs → comparison-table-DYaRaP9Z.mjs} +3 -3
  55. package/dist/{comparison-table-CmtSOUfK.mjs.map → comparison-table-DYaRaP9Z.mjs.map} +1 -1
  56. package/dist/comparison-table.cjs.js +1 -1
  57. package/dist/comparison-table.es.js +1 -1
  58. package/dist/components/accordion/src/accordion-item.d.ts +5 -5
  59. package/dist/components/accordion/src/accordion-item.d.ts.map +1 -1
  60. package/dist/components/accordion/src/accordion.d.ts +2 -6
  61. package/dist/components/accordion/src/accordion.d.ts.map +1 -1
  62. package/dist/components/accordion/src/accordion.visual.fixtures.d.ts.map +1 -1
  63. package/dist/components/alert-badge/src/alert-badge.d.ts +1 -1
  64. package/dist/components/badge/src/badge.d.ts +1 -1
  65. package/dist/components/button/src/button.d.ts +3 -4
  66. package/dist/components/button/src/button.d.ts.map +1 -1
  67. package/dist/components/button/src/button.visual.fixtures.d.ts +1 -1
  68. package/dist/components/calendar/src/calendar.d.ts.map +1 -1
  69. package/dist/components/card/src/card-badge.d.ts +1 -1
  70. package/dist/components/card/src/card-content-container.d.ts +1 -1
  71. package/dist/components/card/src/card-content.d.ts +1 -1
  72. package/dist/components/card/src/card-heading.d.ts +5 -5
  73. package/dist/components/card/src/card-heading.d.ts.map +1 -1
  74. package/dist/components/card/src/card-root.d.ts +1 -1
  75. package/dist/components/color-dot/src/color-dot.d.ts +2 -1
  76. package/dist/components/color-dot/src/color-dot.d.ts.map +1 -1
  77. package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts +1 -1
  78. package/dist/components/content-block/src/content-block-group.d.ts +1 -1
  79. package/dist/components/content-block/src/content-block.d.ts +2 -2
  80. package/dist/components/content-block/src/content-block.d.ts.map +1 -1
  81. package/dist/components/counter-badge/src/counter-badge.d.ts +1 -1
  82. package/dist/components/country-flag-icon/src/all-country-flag-assets.d.ts +0 -1
  83. package/dist/components/country-flag-icon/src/all-country-flag-assets.d.ts.map +1 -1
  84. package/dist/components/country-flag-icon/src/country-flag-icon.d.ts +1 -1
  85. package/dist/components/cta-link/src/cta-link.d.ts +10 -10
  86. package/dist/components/date-field/src/date-field.d.ts +1 -1
  87. package/dist/components/date-picker/src/date-picker.d.ts +1 -1
  88. package/dist/components/date-range-field/src/date-range-field.d.ts +2 -2
  89. package/dist/components/date-range-field/src/date-range-field.d.ts.map +1 -1
  90. package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts +2 -2
  91. package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts.map +1 -1
  92. package/dist/components/drawer/src/drawer-container.d.ts +1 -1
  93. package/dist/components/drawer/src/drawer-container.d.ts.map +1 -1
  94. package/dist/components/drawer/src/drawer-frame.d.ts +2 -2
  95. package/dist/components/drawer/src/drawer-handle.d.ts +1 -1
  96. package/dist/components/drawer/src/drawer-header.d.ts +1 -1
  97. package/dist/components/drawer/src/drawer-scroll-area.d.ts +1 -1
  98. package/dist/components/drawer/src/drawer-trigger.d.ts +1 -1
  99. package/dist/components/drawer/src/drawer.context.d.ts +2 -0
  100. package/dist/components/drawer/src/drawer.context.d.ts.map +1 -1
  101. package/dist/components/drawer/src/drawer.d.ts +2 -0
  102. package/dist/components/drawer/src/drawer.d.ts.map +1 -1
  103. package/dist/components/dropdown/src/dropdown-combobox.d.ts +2 -34
  104. package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -1
  105. package/dist/components/dropdown/src/dropdown-select.d.ts +2 -34
  106. package/dist/components/dropdown/src/dropdown-select.d.ts.map +1 -1
  107. package/dist/components/dropdown/src/dropdown-shared.d.ts +2 -1
  108. package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -1
  109. package/dist/components/dropdown/src/dropdown.types.d.ts +24 -13
  110. package/dist/components/dropdown/src/dropdown.types.d.ts.map +1 -1
  111. package/dist/components/dropdown/src/useDropdown.d.ts +1 -1
  112. package/dist/components/dropdown/src/useDropdown.d.ts.map +1 -1
  113. package/dist/components/dropdown/src/useDropdownFilter.d.ts.map +1 -1
  114. package/dist/components/dropdown/src/useDropdownInput.d.ts.map +1 -1
  115. package/dist/components/field-helper-text/src/field-helper-text.d.ts +1 -1
  116. package/dist/components/file-upload/src/file-upload-button.d.ts +22 -0
  117. package/dist/components/file-upload/src/file-upload-button.d.ts.map +1 -0
  118. package/dist/components/file-upload/src/file-upload-drag-and-drop.d.ts +10 -0
  119. package/dist/components/file-upload/src/file-upload-drag-and-drop.d.ts.map +1 -0
  120. package/dist/components/file-upload/src/file-upload-file-name-label.d.ts +8 -0
  121. package/dist/components/file-upload/src/file-upload-file-name-label.d.ts.map +1 -0
  122. package/dist/components/file-upload/src/file-upload-icon.d.ts +8 -0
  123. package/dist/components/file-upload/src/file-upload-icon.d.ts.map +1 -0
  124. package/dist/components/file-upload/src/file-upload-types.d.ts +82 -0
  125. package/dist/components/file-upload/src/file-upload-types.d.ts.map +1 -0
  126. package/dist/components/file-upload/src/file-upload-utils.d.ts +7 -0
  127. package/dist/components/file-upload/src/file-upload-utils.d.ts.map +1 -0
  128. package/dist/components/file-upload/src/file-upload.d.ts +6 -0
  129. package/dist/components/file-upload/src/file-upload.d.ts.map +1 -0
  130. package/dist/components/file-upload/src/file-upload.visual.fixtures.d.ts +14 -0
  131. package/dist/components/file-upload/src/file-upload.visual.fixtures.d.ts.map +1 -0
  132. package/dist/components/footer/src/footer-social-link.d.ts +3 -3
  133. package/dist/components/heading/src/heading.d.ts +22 -4
  134. package/dist/components/heading/src/heading.d.ts.map +1 -1
  135. package/dist/components/hero-banner/src/hero-banner-types.d.ts +4 -4
  136. package/dist/components/hero-banner/src/hero-banner-types.d.ts.map +1 -1
  137. package/dist/components/hero-banner/src/hero-banner.d.ts +1 -1
  138. package/dist/components/hero-banner/src/hero-banner.d.ts.map +1 -1
  139. package/dist/components/icon/src/icon.d.ts +2 -2
  140. package/dist/components/illustrative-icon/src/static-illustrative-icon.d.ts +2 -2
  141. package/dist/components/label/src/label.d.ts +1 -1
  142. package/dist/components/listbox/src/listbox.d.ts +1 -1
  143. package/dist/components/loading/src/loading-illustrative.d.ts +1 -1
  144. package/dist/components/logo/src/logo.types.d.ts +1 -1
  145. package/dist/components/modal/src/modal-content.d.ts +1 -1
  146. package/dist/components/modal/src/modal-content.d.ts.map +1 -1
  147. package/dist/components/notification-banner/src/notification-banner.d.ts +3 -3
  148. package/dist/components/notification-banner/src/notification-banner.d.ts.map +1 -1
  149. package/dist/components/pagination/src/pagination-page-size-selector.d.ts +2 -2
  150. package/dist/components/pagination/src/pagination-page-trigger.d.ts +1 -1
  151. package/dist/components/pagination/src/pagination-pages.d.ts +2 -2
  152. package/dist/components/pagination/src/pagination-step-trigger.d.ts +2 -2
  153. package/dist/components/pagination/src/pagination-truncation-separator.d.ts +1 -1
  154. package/dist/components/pagination/src/types.d.ts +1 -1
  155. package/dist/components/pagination/src/use-page-options.hook.d.ts +1 -1
  156. package/dist/components/pagination/src/use-page-size-options.hook.d.ts +1 -1
  157. package/dist/components/paragraph/src/paragraph.d.ts +1 -1
  158. package/dist/components/password-field/src/password-strength-indicator.d.ts +1 -1
  159. package/dist/components/popover/src/popover-button.d.ts +2 -2
  160. package/dist/components/product-card/src/product-card.d.ts +1 -1
  161. package/dist/components/promotion-card/src/promotion-card.d.ts +10 -10
  162. package/dist/components/promotion-card/src/promotion-card.d.ts.map +1 -1
  163. package/dist/components/quantity-selector/src/quantity-selector-button.d.ts +2 -3
  164. package/dist/components/quantity-selector/src/quantity-selector-button.d.ts.map +1 -1
  165. package/dist/components/quantity-selector/src/quantity-selector.d.ts +3 -6
  166. package/dist/components/quantity-selector/src/quantity-selector.d.ts.map +1 -1
  167. package/dist/components/radio-button-group/src/radio-button-group-root.d.ts +1 -1
  168. package/dist/components/radio-card-group/src/radio-card-item.d.ts +1 -1
  169. package/dist/components/rich-text/src/types.d.ts +3 -3
  170. package/dist/components/search-field/src/search-field-autocomplete.d.ts +1 -1
  171. package/dist/components/search-field/src/search-field-base.d.ts +1 -1
  172. package/dist/components/select/src/select.d.ts +1 -1
  173. package/dist/components/skeleton/src/skeleton.d.ts +1 -1
  174. package/dist/components/spacer/src/spacer.d.ts +2 -2
  175. package/dist/components/spinner/src/spinner.d.ts +3 -3
  176. package/dist/components/stepper/src/stepper-container.d.ts +1 -1
  177. package/dist/components/stepper/src/{stepper-button.d.ts → stepper-link.d.ts} +5 -4
  178. package/dist/components/stepper/src/stepper-link.d.ts.map +1 -0
  179. package/dist/components/stepper/src/stepper-nav-items.d.ts +1 -0
  180. package/dist/components/stepper/src/stepper-nav-items.d.ts.map +1 -1
  181. package/dist/components/stepper/src/stepper.d.ts +2 -2
  182. package/dist/components/stepper/src/stepper.d.ts.map +1 -1
  183. package/dist/components/stepper/src/types.d.ts +2 -2
  184. package/dist/components/stepper/src/types.d.ts.map +1 -1
  185. package/dist/components/stepper/src/use-content-focus.hook.d.ts.map +1 -1
  186. package/dist/components/table/src/cell-types/button-group-cell.d.ts +2 -2
  187. package/dist/components/table/src/draggable-table.d.ts.map +1 -1
  188. package/dist/components/table/src/empty-table.d.ts +2 -2
  189. package/dist/components/table/src/table-column-header-cell.d.ts +1 -2
  190. package/dist/components/table/src/table-column-header-cell.d.ts.map +1 -1
  191. package/dist/components/table/src/table-content.d.ts +1 -1
  192. package/dist/components/table/src/table-headers.d.ts +2 -3
  193. package/dist/components/table/src/table-headers.d.ts.map +1 -1
  194. package/dist/components/table/src/table-settings-drawer.d.ts +11 -20
  195. package/dist/components/table/src/table-settings-drawer.d.ts.map +1 -1
  196. package/dist/components/table/src/table.d.ts +1 -8
  197. package/dist/components/table/src/table.d.ts.map +1 -1
  198. package/dist/components/table/src/test-utils/helpers.d.ts +10 -19
  199. package/dist/components/table/src/test-utils/helpers.d.ts.map +1 -1
  200. package/dist/components/tabs/src/tab-content.d.ts +4 -2
  201. package/dist/components/tabs/src/tab-content.d.ts.map +1 -1
  202. package/dist/components/text-field/src/text-field-ai.d.ts +4 -4
  203. package/dist/components/text-field/src/text-field-base.d.ts +4 -4
  204. package/dist/components/text-field/src/text-field.d.ts +5 -5
  205. package/dist/components/text-spacing/src/text-spacing.d.ts +1 -1
  206. package/dist/components/toggle/src/toggle.d.ts +1 -1
  207. package/dist/components/tooltip/src/tooltip.d.ts +4 -6
  208. package/dist/components/tooltip/src/tooltip.d.ts.map +1 -1
  209. package/dist/components-metadata.js +20 -10
  210. package/dist/{content-block-CDMrz41K.mjs → content-block-BCM0I3Y2.mjs} +2 -2
  211. package/dist/content-block-BCM0I3Y2.mjs.map +1 -0
  212. package/dist/{content-block-DyYAnL2e.js → content-block-DQppQumZ.js} +2 -2
  213. package/dist/content-block-DQppQumZ.js.map +1 -0
  214. package/dist/content-block.cjs.js +1 -1
  215. package/dist/content-block.es.js +1 -1
  216. package/dist/core.esm-BmIwrKkJ.js +6 -0
  217. package/dist/core.esm-BmIwrKkJ.js.map +1 -0
  218. package/dist/core.esm-CKGHpLM_.mjs +2892 -0
  219. package/dist/core.esm-CKGHpLM_.mjs.map +1 -0
  220. package/dist/country-flag-icon/LICENSE.txt +11 -0
  221. package/dist/country-flag-icon/all-country-flag-assets.cjs.js +1 -1
  222. package/dist/country-flag-icon/all-country-flag-assets.cjs.js.map +1 -1
  223. package/dist/country-flag-icon/all-country-flag-assets.d.ts +0 -1
  224. package/dist/country-flag-icon/all-country-flag-assets.d.ts.map +1 -1
  225. package/dist/country-flag-icon/all-country-flag-assets.es.js +0 -1
  226. package/dist/country-flag-icon/all-country-flag-assets.es.js.map +1 -1
  227. package/dist/country-flag-icon/dynamic-country-flag-icon.cjs.js +2 -0
  228. package/dist/country-flag-icon/dynamic-country-flag-icon.cjs.js.map +1 -0
  229. package/dist/country-flag-icon/dynamic-country-flag-icon.es.js +366 -0
  230. package/dist/country-flag-icon/dynamic-country-flag-icon.es.js.map +1 -0
  231. package/dist/{date-field-CwZ64buh.js → date-field-CtpWDaSh.js} +2 -2
  232. package/dist/{date-field-CwZ64buh.js.map → date-field-CtpWDaSh.js.map} +1 -1
  233. package/dist/{date-field-ChYx0N2j.mjs → date-field-_rCuf15v.mjs} +2 -2
  234. package/dist/{date-field-ChYx0N2j.mjs.map → date-field-_rCuf15v.mjs.map} +1 -1
  235. package/dist/date-field.cjs.js +1 -1
  236. package/dist/date-field.es.js +1 -1
  237. package/dist/{date-picker-BWMKTOq6.js → date-picker-BYlszX1W.js} +2 -2
  238. package/dist/{date-picker-BWMKTOq6.js.map → date-picker-BYlszX1W.js.map} +1 -1
  239. package/dist/{date-picker-CTyqgBRB.mjs → date-picker-sqcNAplg.mjs} +6 -6
  240. package/dist/{date-picker-CTyqgBRB.mjs.map → date-picker-sqcNAplg.mjs.map} +1 -1
  241. package/dist/date-picker.cjs.js +1 -1
  242. package/dist/date-picker.es.js +1 -1
  243. package/dist/date-range-field-B33XeBW8.js +2 -0
  244. package/dist/date-range-field-B33XeBW8.js.map +1 -0
  245. package/dist/{date-range-field-DDr-qEGX.mjs → date-range-field-BmjQeiOv.mjs} +23 -23
  246. package/dist/date-range-field-BmjQeiOv.mjs.map +1 -0
  247. package/dist/date-range-field.cjs.js +1 -1
  248. package/dist/date-range-field.es.js +1 -1
  249. package/dist/{dismissable-chip-group-2updhyuR.js → dismissable-chip-group-5ALErhD2.js} +2 -2
  250. package/dist/dismissable-chip-group-5ALErhD2.js.map +1 -0
  251. package/dist/{dismissable-chip-group-Cfs2s2BH.mjs → dismissable-chip-group-DMNU7g5e.mjs} +3 -3
  252. package/dist/dismissable-chip-group-DMNU7g5e.mjs.map +1 -0
  253. package/dist/dismissable-chip-group.cjs.js +1 -1
  254. package/dist/dismissable-chip-group.es.js +1 -1
  255. package/dist/{drawer-Cnk2OKgi.mjs → drawer-Chx3H8EU.mjs} +241 -233
  256. package/dist/drawer-Chx3H8EU.mjs.map +1 -0
  257. package/dist/drawer-oFJcxW58.js +2 -0
  258. package/dist/drawer-oFJcxW58.js.map +1 -0
  259. package/dist/drawer.cjs.js +1 -1
  260. package/dist/drawer.es.js +1 -1
  261. package/dist/dropdown-Bn7WvsL2.js +2 -0
  262. package/dist/dropdown-Bn7WvsL2.js.map +1 -0
  263. package/dist/dropdown-CrufJnb4.mjs +945 -0
  264. package/dist/dropdown-CrufJnb4.mjs.map +1 -0
  265. package/dist/dropdown.cjs.js +1 -1
  266. package/dist/dropdown.es.js +1 -1
  267. package/dist/file-upload-Ctw6LCTU.mjs +589 -0
  268. package/dist/file-upload-Ctw6LCTU.mjs.map +1 -0
  269. package/dist/file-upload-MvNuX4ks.js +2 -0
  270. package/dist/file-upload-MvNuX4ks.js.map +1 -0
  271. package/dist/file-upload.cjs.js +2 -0
  272. package/dist/file-upload.cjs.js.map +1 -0
  273. package/dist/file-upload.es.js +5 -0
  274. package/dist/file-upload.es.js.map +1 -0
  275. package/dist/{floating-ui.react-dom-EredA301.mjs → floating-ui.react-dom-1kwKo24Z.mjs} +15 -15
  276. package/dist/{floating-ui.react-dom-EredA301.mjs.map → floating-ui.react-dom-1kwKo24Z.mjs.map} +1 -1
  277. package/dist/footer-Bbemct3Z.js +2 -0
  278. package/dist/footer-Bbemct3Z.js.map +1 -0
  279. package/dist/{footer-D5YkHmCo.mjs → footer-DkVmTd-f.mjs} +24 -24
  280. package/dist/footer-DkVmTd-f.mjs.map +1 -0
  281. package/dist/footer.cjs.js +1 -1
  282. package/dist/footer.es.js +1 -1
  283. package/dist/{heading-xwBuT_-9.mjs → heading-BG7JTFO1.mjs} +25 -24
  284. package/dist/heading-BG7JTFO1.mjs.map +1 -0
  285. package/dist/{heading-drD5ugCC.js → heading-BPeRwNYu.js} +2 -2
  286. package/dist/heading-BPeRwNYu.js.map +1 -0
  287. package/dist/heading.cjs.js +1 -1
  288. package/dist/heading.es.js +6 -5
  289. package/dist/{hero-banner-BXRArPWP.mjs → hero-banner-ChDoFRhq.mjs} +4 -4
  290. package/dist/hero-banner-ChDoFRhq.mjs.map +1 -0
  291. package/dist/{hero-banner-CW7DIEZe.js → hero-banner-Mag1OwL4.js} +2 -2
  292. package/dist/hero-banner-Mag1OwL4.js.map +1 -0
  293. package/dist/hero-banner.cjs.js +1 -1
  294. package/dist/hero-banner.es.js +1 -1
  295. package/dist/index-BPY_9ddu.js +2 -0
  296. package/dist/index-BPY_9ddu.js.map +1 -0
  297. package/dist/index-Fewa56cA.mjs +440 -0
  298. package/dist/index-Fewa56cA.mjs.map +1 -0
  299. package/dist/libraries/library/src/calendar.d.ts +1 -1
  300. package/dist/libraries/library/src/card.d.ts +1 -1
  301. package/dist/libraries/library/src/container.d.ts +1 -1
  302. package/dist/libraries/library/src/content-block.d.ts +1 -1
  303. package/dist/libraries/library/src/dismissable-chip-group.d.ts +1 -1
  304. package/dist/libraries/library/src/drawer.d.ts +1 -1
  305. package/dist/libraries/library/src/file-upload.d.ts +6 -0
  306. package/dist/libraries/library/src/file-upload.d.ts.map +1 -0
  307. package/dist/libraries/library/src/library.d.ts +1 -1
  308. package/dist/libraries/library/src/library.d.ts.map +1 -1
  309. package/dist/libraries/library/src/notification-banner.d.ts +1 -1
  310. package/dist/libraries/library/src/notification.d.ts +1 -1
  311. package/dist/libraries/theme/src/ThemeProvider.d.ts +1 -1
  312. package/dist/library.cjs.js +1 -1
  313. package/dist/library.es.js +595 -596
  314. package/dist/{modal-CnC4Zyjk.js → modal-CXOYUsJm.js} +2 -2
  315. package/dist/modal-CXOYUsJm.js.map +1 -0
  316. package/dist/{modal-BuUQrUYJ.mjs → modal-Pwvhrzn-.mjs} +31 -31
  317. package/dist/modal-Pwvhrzn-.mjs.map +1 -0
  318. package/dist/modal.cjs.js +1 -1
  319. package/dist/modal.es.js +1 -1
  320. package/dist/{notification-CeoAXDXq.js → notification-BkM2vLzI.js} +2 -2
  321. package/dist/{notification-CeoAXDXq.js.map → notification-BkM2vLzI.js.map} +1 -1
  322. package/dist/{notification-C3f3N1K1.mjs → notification-Cbn0UN1p.mjs} +3 -3
  323. package/dist/{notification-C3f3N1K1.mjs.map → notification-Cbn0UN1p.mjs.map} +1 -1
  324. package/dist/notification-banner-B9RhXAZ8.js +2 -0
  325. package/dist/notification-banner-B9RhXAZ8.js.map +1 -0
  326. package/dist/{notification-banner-BvAy8dlg.mjs → notification-banner-C4NVekCZ.mjs} +5 -5
  327. package/dist/notification-banner-C4NVekCZ.mjs.map +1 -0
  328. package/dist/notification-banner.cjs.js +1 -1
  329. package/dist/notification-banner.es.js +1 -1
  330. package/dist/notification.cjs.js +1 -1
  331. package/dist/notification.es.js +1 -1
  332. package/dist/{password-field-C_E4563x.mjs → password-field-Cy_E-D_G.mjs} +29 -29
  333. package/dist/{password-field-C_E4563x.mjs.map → password-field-Cy_E-D_G.mjs.map} +1 -1
  334. package/dist/{password-field-BjKdBoIK.js → password-field-lKyWHjQS.js} +2 -2
  335. package/dist/{password-field-BjKdBoIK.js.map → password-field-lKyWHjQS.js.map} +1 -1
  336. package/dist/password-field.cjs.js +1 -1
  337. package/dist/password-field.es.js +1 -1
  338. package/dist/popover-B6ntmuEK.mjs +614 -0
  339. package/dist/popover-B6ntmuEK.mjs.map +1 -0
  340. package/dist/popover-DJHMEFXP.js +2 -0
  341. package/dist/popover-DJHMEFXP.js.map +1 -0
  342. package/dist/popover.cjs.js +1 -1
  343. package/dist/popover.es.js +1 -1
  344. package/dist/{product-card-CxfHfJVV.mjs → product-card-BMseoNrG.mjs} +3 -3
  345. package/dist/{product-card-CxfHfJVV.mjs.map → product-card-BMseoNrG.mjs.map} +1 -1
  346. package/dist/{product-card-XxBwuxM-.js → product-card-D0jX5-up.js} +2 -2
  347. package/dist/{product-card-XxBwuxM-.js.map → product-card-D0jX5-up.js.map} +1 -1
  348. package/dist/product-card.cjs.js +1 -1
  349. package/dist/product-card.es.js +1 -1
  350. package/dist/{promotion-card-C1UoxzcV.js → promotion-card-B3mz__m7.js} +2 -2
  351. package/dist/promotion-card-B3mz__m7.js.map +1 -0
  352. package/dist/{promotion-card-CooYPpFo.mjs → promotion-card-Co6qAkTZ.mjs} +5 -5
  353. package/dist/promotion-card-Co6qAkTZ.mjs.map +1 -0
  354. package/dist/promotion-card.cjs.js +1 -1
  355. package/dist/promotion-card.es.js +1 -1
  356. package/dist/purpur.css +1 -1
  357. package/dist/quantity-selector-Cy0aJGGX.js +2 -0
  358. package/dist/quantity-selector-Cy0aJGGX.js.map +1 -0
  359. package/dist/quantity-selector-k6ZaVrk1.mjs +162 -0
  360. package/dist/quantity-selector-k6ZaVrk1.mjs.map +1 -0
  361. package/dist/quantity-selector.cjs.js +1 -1
  362. package/dist/quantity-selector.es.js +2 -3
  363. package/dist/{radio-button-group-D_F6kWD6.mjs → radio-button-group-DjiTo3b1.mjs} +2 -2
  364. package/dist/{radio-button-group-D_F6kWD6.mjs.map → radio-button-group-DjiTo3b1.mjs.map} +1 -1
  365. package/dist/{radio-button-group-CdUrC7h9.js → radio-button-group-uCRGh1H5.js} +2 -2
  366. package/dist/{radio-button-group-CdUrC7h9.js.map → radio-button-group-uCRGh1H5.js.map} +1 -1
  367. package/dist/radio-button-group.cjs.js +1 -1
  368. package/dist/radio-button-group.es.js +1 -1
  369. package/dist/{radio-card-group-B9_jOJnM.mjs → radio-card-group-DoM7qYO1.mjs} +2 -2
  370. package/dist/{radio-card-group-B9_jOJnM.mjs.map → radio-card-group-DoM7qYO1.mjs.map} +1 -1
  371. package/dist/{radio-card-group-DcdGkfOp.js → radio-card-group-_9wJC-s3.js} +2 -2
  372. package/dist/{radio-card-group-DcdGkfOp.js.map → radio-card-group-_9wJC-s3.js.map} +1 -1
  373. package/dist/radio-card-group.cjs.js +1 -1
  374. package/dist/radio-card-group.es.js +1 -1
  375. package/dist/rich-text.cjs.js +1 -1
  376. package/dist/rich-text.es.js +1 -1
  377. package/dist/{search-field-BTqVE1-l.mjs → search-field-BTJtRyw5.mjs} +3 -3
  378. package/dist/{search-field-BTqVE1-l.mjs.map → search-field-BTJtRyw5.mjs.map} +1 -1
  379. package/dist/{search-field-DkJrwzJB.js → search-field-nzVXak1a.js} +2 -2
  380. package/dist/{search-field-DkJrwzJB.js.map → search-field-nzVXak1a.js.map} +1 -1
  381. package/dist/search-field.cjs.js +1 -1
  382. package/dist/search-field.es.js +1 -1
  383. package/dist/stepper-D59T-Y2_.mjs +469 -0
  384. package/dist/stepper-D59T-Y2_.mjs.map +1 -0
  385. package/dist/stepper-Dao4XaDV.js +2 -0
  386. package/dist/stepper-Dao4XaDV.js.map +1 -0
  387. package/dist/stepper.cjs.js +1 -1
  388. package/dist/stepper.es.js +1 -1
  389. package/dist/table-DRSgesQ4.mjs +4545 -0
  390. package/dist/table-DRSgesQ4.mjs.map +1 -0
  391. package/dist/table-zBs9JALh.js +5 -0
  392. package/dist/table-zBs9JALh.js.map +1 -0
  393. package/dist/table.cjs.js +1 -1
  394. package/dist/table.es.js +1 -1
  395. package/dist/tabs-D2__wbCs.js +2 -0
  396. package/dist/tabs-D2__wbCs.js.map +1 -0
  397. package/dist/tabs-DOG5g2wf.mjs +440 -0
  398. package/dist/tabs-DOG5g2wf.mjs.map +1 -0
  399. package/dist/tabs.cjs.js +1 -1
  400. package/dist/tabs.es.js +1 -1
  401. package/dist/{text-field-CS0PT5T6.js → text-field-BSgqJjpv.js} +2 -2
  402. package/dist/text-field-BSgqJjpv.js.map +1 -0
  403. package/dist/{text-field-C9LX7LBf.mjs → text-field-MQHeITxy.mjs} +3 -3
  404. package/dist/text-field-MQHeITxy.mjs.map +1 -0
  405. package/dist/text-field.cjs.js +1 -1
  406. package/dist/text-field.es.js +1 -1
  407. package/dist/tooltip-DeP1UsPW.js +2 -0
  408. package/dist/{tooltip-COFCRUKv.js.map → tooltip-DeP1UsPW.js.map} +1 -1
  409. package/dist/{tooltip-FH9R2MAA.mjs → tooltip-bqdd2lJL.mjs} +347 -309
  410. package/dist/{tooltip-FH9R2MAA.mjs.map → tooltip-bqdd2lJL.mjs.map} +1 -1
  411. package/dist/tooltip.cjs.js +1 -1
  412. package/dist/tooltip.es.js +1 -1
  413. package/package.json +25 -25
  414. package/src/aliases.ts +4 -4
  415. package/src/entries.js +1 -1
  416. package/src/{autocomplete.ts → file-upload.ts} +1 -1
  417. package/src/library.ts +1 -1
  418. package/src/purpur.css +4 -0
  419. package/dist/accordion-B6OoQ4uZ.mjs +0 -128
  420. package/dist/accordion-B6OoQ4uZ.mjs.map +0 -1
  421. package/dist/accordion-BfpN5h4C.js +0 -2
  422. package/dist/accordion-BfpN5h4C.js.map +0 -1
  423. package/dist/autocomplete-C6AqdYaZ.mjs +0 -228
  424. package/dist/autocomplete-C6AqdYaZ.mjs.map +0 -1
  425. package/dist/autocomplete-yrPbF5gq.js +0 -2
  426. package/dist/autocomplete-yrPbF5gq.js.map +0 -1
  427. package/dist/autocomplete.cjs.js +0 -2
  428. package/dist/autocomplete.cjs.js.map +0 -1
  429. package/dist/autocomplete.es.js +0 -6
  430. package/dist/autocomplete.es.js.map +0 -1
  431. package/dist/button-DZgtrGqN.js +0 -2
  432. package/dist/button-DZgtrGqN.js.map +0 -1
  433. package/dist/button-EVRfctR8.mjs +0 -109
  434. package/dist/button-EVRfctR8.mjs.map +0 -1
  435. package/dist/card-pdsBEJif.js.map +0 -1
  436. package/dist/card-t2ZkZ82G.mjs.map +0 -1
  437. package/dist/components/autocomplete/src/autocomplete.d.ts +0 -18
  438. package/dist/components/autocomplete/src/autocomplete.d.ts.map +0 -1
  439. package/dist/components/autocomplete/src/useAutocomplete.d.ts +0 -59
  440. package/dist/components/autocomplete/src/useAutocomplete.d.ts.map +0 -1
  441. package/dist/components/autocomplete/src/utils.d.ts +0 -7
  442. package/dist/components/autocomplete/src/utils.d.ts.map +0 -1
  443. package/dist/components/stepper/src/stepper-button.d.ts.map +0 -1
  444. package/dist/content-block-CDMrz41K.mjs.map +0 -1
  445. package/dist/content-block-DyYAnL2e.js.map +0 -1
  446. package/dist/date-range-field-CvzOl-eC.js +0 -2
  447. package/dist/date-range-field-CvzOl-eC.js.map +0 -1
  448. package/dist/date-range-field-DDr-qEGX.mjs.map +0 -1
  449. package/dist/dismissable-chip-group-2updhyuR.js.map +0 -1
  450. package/dist/dismissable-chip-group-Cfs2s2BH.mjs.map +0 -1
  451. package/dist/drawer-BnqxUIPM.js +0 -2
  452. package/dist/drawer-BnqxUIPM.js.map +0 -1
  453. package/dist/drawer-Cnk2OKgi.mjs.map +0 -1
  454. package/dist/dropdown-C8VsfTQw.mjs +0 -936
  455. package/dist/dropdown-C8VsfTQw.mjs.map +0 -1
  456. package/dist/dropdown-p4R2yCnJ.js +0 -2
  457. package/dist/dropdown-p4R2yCnJ.js.map +0 -1
  458. package/dist/footer-B8rzVSrZ.js +0 -2
  459. package/dist/footer-B8rzVSrZ.js.map +0 -1
  460. package/dist/footer-D5YkHmCo.mjs.map +0 -1
  461. package/dist/heading-drD5ugCC.js.map +0 -1
  462. package/dist/heading-xwBuT_-9.mjs.map +0 -1
  463. package/dist/hero-banner-BXRArPWP.mjs.map +0 -1
  464. package/dist/hero-banner-CW7DIEZe.js.map +0 -1
  465. package/dist/libraries/library/src/autocomplete.d.ts +0 -6
  466. package/dist/libraries/library/src/autocomplete.d.ts.map +0 -1
  467. package/dist/modal-BuUQrUYJ.mjs.map +0 -1
  468. package/dist/modal-CnC4Zyjk.js.map +0 -1
  469. package/dist/notification-banner-BvAy8dlg.mjs.map +0 -1
  470. package/dist/notification-banner-DUe4fT1r.js +0 -2
  471. package/dist/notification-banner-DUe4fT1r.js.map +0 -1
  472. package/dist/popover-4phnhJLj.js +0 -2
  473. package/dist/popover-4phnhJLj.js.map +0 -1
  474. package/dist/popover-DhObSx97.mjs +0 -1043
  475. package/dist/popover-DhObSx97.mjs.map +0 -1
  476. package/dist/promotion-card-C1UoxzcV.js.map +0 -1
  477. package/dist/promotion-card-CooYPpFo.mjs.map +0 -1
  478. package/dist/quantity-selector-Ds7d4MnV.js +0 -2
  479. package/dist/quantity-selector-Ds7d4MnV.js.map +0 -1
  480. package/dist/quantity-selector-DwkKKmFy.mjs +0 -172
  481. package/dist/quantity-selector-DwkKKmFy.mjs.map +0 -1
  482. package/dist/stepper-5rQ3cK18.js +0 -2
  483. package/dist/stepper-5rQ3cK18.js.map +0 -1
  484. package/dist/stepper-B3p9r3gv.mjs +0 -449
  485. package/dist/stepper-B3p9r3gv.mjs.map +0 -1
  486. package/dist/table-BIyaTsOh.js +0 -9
  487. package/dist/table-BIyaTsOh.js.map +0 -1
  488. package/dist/table-BtymEUG4.mjs +0 -7428
  489. package/dist/table-BtymEUG4.mjs.map +0 -1
  490. package/dist/tabs-Bye5lgZ1.mjs +0 -424
  491. package/dist/tabs-Bye5lgZ1.mjs.map +0 -1
  492. package/dist/tabs-D-nfZHIA.js +0 -2
  493. package/dist/tabs-D-nfZHIA.js.map +0 -1
  494. package/dist/text-field-C9LX7LBf.mjs.map +0 -1
  495. package/dist/text-field-CS0PT5T6.js.map +0 -1
  496. package/dist/tooltip-COFCRUKv.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-banner-C4NVekCZ.mjs","sources":["../../../components/notification-banner/src/notification-banner.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Grid } from \"@purpur/grid\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { IconInfo } from \"@purpur/icon/info\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./notification-banner.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type DefaultProps = BaseProps & {\n closeButtonAriaLabel?: string;\n description?: string;\n hideIcon?: boolean;\n icon?: ReactNode;\n link?: ReactNode;\n headingTag?: HeadingTagType;\n title?: string;\n};\n\ntype CloseButtonProps = {\n onClose: () => void;\n closeButtonAriaLabel: string;\n};\n\ntype NoCloseButtonProps = {\n onClose?: never;\n closeButtonAriaLabel?: never;\n};\n\nexport type NotificationBannerProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);\n\nconst rootClassName = \"purpur-notification-banner\";\n\nexport const NotificationBanner = forwardRef<HTMLDivElement, NotificationBannerProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n children,\n className,\n closeButtonAriaLabel,\n description,\n hideIcon,\n icon,\n link,\n onClose,\n headingTag = \"h4\",\n title,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <div {...props} className={classes} role=\"alert\" ref={ref} data-testid={dataTestId}>\n <Grid>\n <div className={cx(`${rootClassName}__container`)}>\n {!hideIcon ? (\n icon ? (\n <span className={cx(`${rootClassName}__icon`)}>{icon}</span>\n ) : (\n <IconInfo className={cx(`${rootClassName}__icon`)} size=\"sm\" />\n )\n ) : null}\n <div className={cx(`${rootClassName}__content`)}>\n <Heading\n tag={headingTag}\n variant=\"subsection-100\"\n className={cx([\n `${rootClassName}__heading`,\n { [`${rootClassName}__heading--no-overlap`]: onClose },\n ])}\n >\n {title}\n </Heading>\n <div>\n {description} {link}\n </div>\n {children}\n </div>\n {onClose && (\n <Button\n data-testid={dataTestId ? `${dataTestId}-close-button` : undefined}\n variant=\"text\"\n size=\"sm\"\n iconOnly\n aria-label={closeButtonAriaLabel}\n onClick={onClose}\n className={cx(`${rootClassName}__close-button`)}\n >\n <IconClose size=\"sm\" />\n </Button>\n )}\n </div>\n </Grid>\n </div>\n );\n }\n);\n\nNotificationBanner.displayName = \"NotificationBanner\";\n"],"names":["cx","c","styles","rootClassName","NotificationBanner","forwardRef","dataTestId","children","className","closeButtonAriaLabel","description","hideIcon","icon","link","onClose","headingTag","title","props","ref","classes","jsx","Grid","IconInfo","Heading","Button","IconClose"],"mappings":";;;;;;;;;;;;;;;;GAWMA,IAAKC,EAAE,KAAKC,CAAM,GAwBlBC,IAAgB,8BAETC,IAAqBC;AAAA,EAChC,CACE;AAAA,IACE,CAAC,gBAAgBC;AAAA,IACjB,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAUnB,EAAGQ,GAAWL,CAAa;AAE3C,WACE,gBAAAiB,EAAC,SAAK,GAAGH,GAAO,WAAWE,GAAS,MAAK,SAAQ,KAAAD,GAAU,eAAaZ,GACtE,UAAA,gBAAAc,EAACC,GAAA,EACC,4BAAC,OAAA,EAAI,WAAWrB,EAAG,GAAGG,CAAa,aAAa,GAC7C,UAAA;AAAA,MAACQ,IAME,OALFC,IACE,gBAAAQ,EAAC,QAAA,EAAK,WAAWpB,EAAG,GAAGG,CAAa,QAAQ,GAAI,UAAAS,GAAK,IAErD,gBAAAQ,EAACE,GAAA,EAAS,WAAWtB,EAAG,GAAGG,CAAa,QAAQ,GAAG,MAAK,KAAA,CAAK;AAAA,wBAGhE,OAAA,EAAI,WAAWH,EAAG,GAAGG,CAAa,WAAW,GAC5C,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,KAAKR;AAAA,YACL,SAAQ;AAAA,YACR,WAAWf,EAAG;AAAA,cACZ,GAAGG,CAAa;AAAA,cAChB,EAAE,CAAC,GAAGA,CAAa,uBAAuB,GAAGW,EAAA;AAAA,YAAQ,CACtD;AAAA,YAEA,UAAAE;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEF,OAAA,EACE,UAAA;AAAA,UAAAN;AAAA,UAAY;AAAA,UAAEG;AAAA,QAAA,GACjB;AAAA,QACCN;AAAA,MAAA,GACH;AAAA,MACCO,KACC,gBAAAM;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,eAAalB,IAAa,GAAGA,CAAU,kBAAkB;AAAA,UACzD,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,UAAQ;AAAA,UACR,cAAYG;AAAA,UACZ,SAASK;AAAA,UACT,WAAWd,EAAG,GAAGG,CAAa,gBAAgB;AAAA,UAE9C,UAAA,gBAAAiB,EAACK,GAAA,EAAU,MAAK,KAAA,CAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACvB,EAAA,CAEJ,GACF,GACF;AAAA,EAEJ;AACF;AAEArB,EAAmB,cAAc;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-banner-DUe4fT1r.js");exports.NotificationBanner=i.NotificationBanner;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-banner-B9RhXAZ8.js");exports.NotificationBanner=i.NotificationBanner;
2
2
  //# sourceMappingURL=notification-banner.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { N as i } from "./notification-banner-BvAy8dlg.mjs";
1
+ import { N as i } from "./notification-banner-C4NVekCZ.mjs";
2
2
  export {
3
3
  i as NotificationBanner
4
4
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-CeoAXDXq.js");exports.NOTIFICATION_ARIA_LIVE=i.NOTIFICATION_ARIA_LIVE;exports.NOTIFICATION_ROLE=i.NOTIFICATION_ROLE;exports.NOTIFICATION_STATUS=i.NOTIFICATION_STATUS;exports.Notification=i.Notification;exports.notificationAriaLiveValues=i.notificationAriaLiveValues;exports.notificationRoles=i.notificationRoles;exports.notificationStatuses=i.notificationStatuses;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-BkM2vLzI.js");exports.NOTIFICATION_ARIA_LIVE=i.NOTIFICATION_ARIA_LIVE;exports.NOTIFICATION_ROLE=i.NOTIFICATION_ROLE;exports.NOTIFICATION_STATUS=i.NOTIFICATION_STATUS;exports.Notification=i.Notification;exports.notificationAriaLiveValues=i.notificationAriaLiveValues;exports.notificationRoles=i.notificationRoles;exports.notificationStatuses=i.notificationStatuses;
2
2
  //# sourceMappingURL=notification.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { N as o, a as s, b as t, c as I, n, d as N, e as T } from "./notification-C3f3N1K1.mjs";
1
+ import { N as o, a as s, b as t, c as I, n, d as N, e as T } from "./notification-Cbn0UN1p.mjs";
2
2
  export {
3
3
  o as NOTIFICATION_ARIA_LIVE,
4
4
  s as NOTIFICATION_ROLE,
@@ -1,8 +1,8 @@
1
1
  import { jsx as o, jsxs as m } from "react/jsx-runtime";
2
2
  import { forwardRef as N, useState as S, useMemo as M, useEffect as W, isValidElement as z } from "react";
3
- import { b as k } from "./button-EVRfctR8.mjs";
3
+ import { b as k } from "./button-mHw_J7JU.mjs";
4
4
  import { b as E } from "./icon-DNHpBTHs-JfI8WyiR.mjs";
5
- import { T as I } from "./text-field-C9LX7LBf.mjs";
5
+ import { T as I } from "./text-field-MQHeITxy.mjs";
6
6
  import { c as b } from "./bind-CU-R61T-.mjs";
7
7
  import { P as Z } from "./paragraph-CwAdFoIm.mjs";
8
8
  const F = {
@@ -46,37 +46,37 @@ const h = {
46
46
  ["data-testid"]: s = "password-strength-indicator",
47
47
  active: e,
48
48
  className: n,
49
- passwordStrength: t,
49
+ passwordStrength: r,
50
50
  ...i
51
51
  }, d) => {
52
52
  const p = V(
53
53
  n,
54
54
  y,
55
- { [`${y}--${t}`]: t },
55
+ { [`${y}--${r}`]: r },
56
56
  { [`${y}--active`]: e }
57
57
  );
58
58
  return /* @__PURE__ */ o("div", { ...i, "data-testid": s, className: p, ref: d });
59
59
  }
60
60
  );
61
61
  P.displayName = "PasswordStrengthIndicator";
62
- const X = (s, e, n, t) => {
62
+ const X = (s, e, n, r) => {
63
63
  const [i, d] = S(0), [p, w] = S(), [g, a] = S(void 0), c = M(
64
64
  () => ({
65
65
  0: [h.WEAK, e],
66
66
  1: [h.WEAK, e],
67
67
  2: [h.MEDIUM, n],
68
- 3: [h.STRONG, t],
69
- 4: [h.STRONG, t]
68
+ 3: [h.STRONG, r],
69
+ 4: [h.STRONG, r]
70
70
  }),
71
- [e, n, t]
71
+ [e, n, r]
72
72
  );
73
73
  return W(() => {
74
74
  (async () => {
75
75
  if (!s)
76
76
  d(0), w(void 0), a(void 0);
77
77
  else {
78
- const { default: r } = await import("./main-L71Sqg3s.mjs").then((D) => D.m), { score: l } = r(s), [f, x] = c[l];
79
- d(l), w(f), a(x);
78
+ const { default: t } = await import("./main-L71Sqg3s.mjs").then((D) => D.m), { score: l } = t(s), [x, f] = c[l];
79
+ d(l), w(x), a(f);
80
80
  }
81
81
  })();
82
82
  }, [s, c]), {
@@ -89,13 +89,13 @@ const X = (s, e, n, t) => {
89
89
  ["data-testid"]: s = "password-strength",
90
90
  className: e,
91
91
  value: n,
92
- label: t,
92
+ label: r,
93
93
  weakText: i,
94
94
  mediumText: d,
95
95
  strongText: p,
96
96
  ...w
97
97
  }, g) => {
98
- const a = v(e, _), { score: c, passwordStrength: r, currentPasswordStrengthText: l } = X(
98
+ const a = v(e, _), { score: c, passwordStrength: t, currentPasswordStrengthText: l } = X(
99
99
  n,
100
100
  i,
101
101
  d,
@@ -106,22 +106,22 @@ const X = (s, e, n, t) => {
106
106
  /* @__PURE__ */ o(
107
107
  P,
108
108
  {
109
- active: !!r,
110
- passwordStrength: r
109
+ active: !!t,
110
+ passwordStrength: t
111
111
  }
112
112
  ),
113
113
  /* @__PURE__ */ o(
114
114
  P,
115
115
  {
116
- active: !!r && c > 1,
117
- passwordStrength: r
116
+ active: !!t && c > 1,
117
+ passwordStrength: t
118
118
  }
119
119
  ),
120
120
  /* @__PURE__ */ o(
121
121
  P,
122
122
  {
123
- active: !!r && c > 2,
124
- passwordStrength: r
123
+ active: !!t && c > 2,
124
+ passwordStrength: t
125
125
  }
126
126
  )
127
127
  ] }),
@@ -131,11 +131,11 @@ const X = (s, e, n, t) => {
131
131
  "aria-live": "polite",
132
132
  "data-testid": `${s}-text`,
133
133
  className: v(`${_}__password-strength-text`, {
134
- [`${_}__password-strength-text--${r}`]: r
134
+ [`${_}__password-strength-text--${t}`]: t
135
135
  }),
136
136
  children: [
137
137
  /* @__PURE__ */ m("span", { className: v(`${_}__password-strength-label`), children: [
138
- t,
138
+ r,
139
139
  l ? ": " : ""
140
140
  ] }),
141
141
  l
@@ -151,36 +151,36 @@ const $ = b.bind(L), C = "purpur-password-field", O = N(
151
151
  ["data-testid"]: s = "password-field",
152
152
  children: e,
153
153
  className: n,
154
- hidePasswordAriaLabel: t,
154
+ hidePasswordAriaLabel: r,
155
155
  onChange: i,
156
156
  showPasswordAriaLabel: d,
157
157
  ...p
158
158
  }, w) => {
159
- const g = $(n, C), [a, c] = S(u.PASSWORD), r = async (x) => {
160
- i?.(x);
159
+ const g = $(n, C), [a, c] = S(u.PASSWORD), t = async (f) => {
160
+ i?.(f);
161
161
  }, l = () => {
162
162
  c(a === u.PASSWORD ? u.TEXT : u.PASSWORD);
163
- }, f = a === u.PASSWORD ? T : R;
163
+ }, x = a === u.PASSWORD ? T : R;
164
164
  return /* @__PURE__ */ m("div", { className: g, children: [
165
165
  /* @__PURE__ */ o(
166
166
  I,
167
167
  {
168
168
  className: $(`${C}__text-field`),
169
169
  "data-testid": s,
170
- onChange: r,
170
+ onChange: t,
171
171
  ref: w,
172
172
  type: a,
173
173
  endAdornment: /* @__PURE__ */ o(
174
174
  k,
175
175
  {
176
- "aria-label": a === u.PASSWORD ? d : t,
176
+ "aria-label": a === u.PASSWORD ? d : r,
177
177
  "aria-pressed": a === u.TEXT,
178
178
  "data-testid": `${s}-type-toggle-button`,
179
179
  onClick: l,
180
180
  size: "sm",
181
- variant: "tertiary-purple",
181
+ variant: "text",
182
182
  iconOnly: !0,
183
- children: /* @__PURE__ */ o(f, { size: "sm" })
183
+ children: /* @__PURE__ */ o(x, { size: "sm" })
184
184
  }
185
185
  ),
186
186
  ...p
@@ -197,4 +197,4 @@ export {
197
197
  O as P,
198
198
  ss as i
199
199
  };
200
- //# sourceMappingURL=password-field-C_E4563x.mjs.map
200
+ //# sourceMappingURL=password-field-Cy_E-D_G.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"password-field-C_E4563x.mjs","sources":["../../../components/icon/dist/components/password-invisible.es.js","../../../components/icon/dist/components/password-visible.es.js","../../../components/password-field/src/constants.ts","../../../components/password-field/src/password-strength-indicator.tsx","../../../components/password-field/src/use-password-strength.ts","../../../components/password-field/src/password-strength.tsx","../../../components/password-field/src/password-field.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nimport { I as o } from \"../icon-DNHpBTHs.mjs\";\nconst l = {\n name: \"password-invisible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M2.364 2.364a.9.9 0 0 1 1.272 0l3.809 3.808a11.61 11.61 0 0 1 2.218-.789A9.944 9.944 0 0 1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.647.969-1.81 2.33-3.349 3.547a.9.9 0 0 1-1.116-1.413A15.273 15.273 0 0 0 20.894 12a15.297 15.297 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-.655 0-1.295.083-1.914.233-.435.105-.86.242-1.274.407l.418.417a4.9 4.9 0 0 1 7.632 4.654.9.9 0 1 1-1.786-.222 3.1 3.1 0 0 0-4.538-3.123l11.098 11.098a.9.9 0 1 1-1.272 1.272l-3.809-3.808c-1.362.642-2.9 1.072-4.555 1.072-2.651 0-5-1.103-6.826-2.42-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.645-.966 1.804-2.322 3.335-3.536a.9.9 0 1 1 1.118 1.411A15.266 15.266 0 0 0 3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c1.114 0 2.185-.24 3.188-.64l-.418-.418A4.9 4.9 0 0 1 7.1 12a8.888 8.888 0 0 1-.007-.225 2.488 2.488 0 0 1 .014-.385.9.9 0 1 1 1.786.222.79.79 0 0 0-.001.11A6.245 6.245 0 0 1 8.9 12a3.1 3.1 0 0 0 4.562 2.734L8.586 9.859a.912.912 0 0 1-.102-.102l-6.12-6.12a.9.9 0 0 1 0-1.273Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-invisible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ a(o, { ...s, svg: l });\ni.displayName = \"IconPasswordInvisible\";\nexport {\n i as IconPasswordInvisible\n};\n//# sourceMappingURL=password-invisible.es.js.map\n","import { jsx as o } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-DNHpBTHs.mjs\";\nconst e = {\n name: \"password-visible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c2.149 0 4.134-.897 5.774-2.08a15.295 15.295 0 0 0 3.12-3.02 15.3 15.3 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-2.149 0-4.134.897-5.774 2.08A15.299 15.299 0 0 0 3.106 12Zm2.067-4.48C7 6.203 9.349 5.1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.722 1.083-2.096 2.663-3.923 3.98C17 17.797 14.651 18.9 12 18.9s-5-1.103-6.826-2.42c-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.722-1.083 2.096-2.663 3.923-3.98ZM12 8.9a3.1 3.1 0 1 0 0 6.2 3.1 3.1 0 0 0 0-6.2ZM7.1 12a4.9 4.9 0 1 1 9.8 0 4.9 4.9 0 0 1-9.8 0Zm4-1.538a.9.9 0 0 1 .9-.9A2.438 2.438 0 0 1 14.438 12a.9.9 0 0 1-1.8 0 .638.638 0 0 0-.638-.638.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-visible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ o(a, { ...s, svg: e });\ni.displayName = \"IconPasswordVisible\";\nexport {\n i as IconPasswordVisible\n};\n//# sourceMappingURL=password-visible.es.js.map\n","export const PASSWORD_STRENGTH = {\n WEAK: \"weak\",\n MEDIUM: \"medium\",\n STRONG: \"strong\",\n} as const;\n\nexport const FIELD_TYPE = {\n PASSWORD: \"password\",\n TEXT: \"text\",\n} as const;\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength-indicator.module.scss\";\nimport type { PasswordStrengthValue } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthIndicatorProps = Omit<BaseProps, \"children\"> & {\n active: boolean;\n passwordStrength?: PasswordStrengthValue;\n};\n\nconst rootClassName = \"purpur-password-strength-indicator\";\n\nexport const PasswordStrengthIndicator = forwardRef<HTMLDivElement, PasswordStrengthIndicatorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength-indicator\",\n active,\n className,\n passwordStrength,\n ...props\n },\n ref\n ) => {\n const classes = cx(\n className,\n rootClassName,\n { [`${rootClassName}--${passwordStrength}`]: passwordStrength },\n { [`${rootClassName}--active`]: active }\n );\n\n return <div {...props} data-testid={dataTestId} className={classes} ref={ref} />;\n }\n);\n\nPasswordStrengthIndicator.displayName = \"PasswordStrengthIndicator\";\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { PASSWORD_STRENGTH } from \"./constants\";\nimport {\n type PasswordScore,\n type PasswordStrengthMapValue,\n type PasswordStrengthValue,\n} from \"./types\";\n\ntype UsePasswordStrengthHook = {\n score: number;\n passwordStrength: PasswordStrengthValue | undefined;\n currentPasswordStrengthText: string | undefined;\n};\n\nexport const usePasswordStrength = (\n password: string,\n weakText: string,\n mediumText: string,\n strongText: string\n): UsePasswordStrengthHook => {\n const [score, setScore] = useState<PasswordScore>(0);\n const [passwordStrength, setPasswordStrength] = useState<PasswordStrengthValue | undefined>();\n const [currentPasswordStrengthText, setCurrentPasswordStrengthText] = useState<\n string | undefined\n >(undefined);\n\n const passwordStrengthMap: Record<PasswordScore, PasswordStrengthMapValue> = useMemo(\n () => ({\n 0: [PASSWORD_STRENGTH.WEAK, weakText],\n 1: [PASSWORD_STRENGTH.WEAK, weakText],\n 2: [PASSWORD_STRENGTH.MEDIUM, mediumText],\n 3: [PASSWORD_STRENGTH.STRONG, strongText],\n 4: [PASSWORD_STRENGTH.STRONG, strongText],\n }),\n [weakText, mediumText, strongText]\n );\n\n useEffect(() => {\n (async () => {\n if (!password) {\n setScore(0);\n setPasswordStrength(undefined);\n setCurrentPasswordStrengthText(undefined);\n } else {\n const { default: zxcvbn } = await import(\"zxcvbn\");\n const { score } = zxcvbn(password);\n const [passwordStrength, passwordStrengthText] = passwordStrengthMap[score];\n setScore(score);\n setPasswordStrength(passwordStrength);\n setCurrentPasswordStrengthText(passwordStrengthText);\n }\n })();\n }, [password, passwordStrengthMap]);\n\n return {\n score,\n passwordStrength,\n currentPasswordStrengthText,\n };\n};\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength.module.scss\";\nimport { PasswordStrengthIndicator } from \"./password-strength-indicator\";\nimport { usePasswordStrength } from \"./use-password-strength\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthProps = Omit<BaseProps, \"children\"> & {\n value: string;\n label: string;\n weakText: string;\n mediumText: string;\n strongText: string;\n};\n\nconst rootClassName = \"purpur-password-strength\";\n\nexport const PasswordStrength = forwardRef<HTMLDivElement, PasswordStrengthProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength\",\n className,\n value,\n label,\n weakText,\n mediumText,\n strongText,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const { score, passwordStrength, currentPasswordStrengthText } = usePasswordStrength(\n value,\n weakText,\n mediumText,\n strongText\n );\n\n return (\n <div data-testid={dataTestId} className={classes} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__indicator-container`)}>\n <PasswordStrengthIndicator\n active={!!passwordStrength}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 1}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 2}\n passwordStrength={passwordStrength}\n />\n </div>\n <Paragraph\n aria-live=\"polite\"\n data-testid={`${dataTestId}-text`}\n className={cx(`${rootClassName}__password-strength-text`, {\n [`${rootClassName}__password-strength-text--${passwordStrength}`]: passwordStrength,\n })}\n >\n <span className={cx(`${rootClassName}__password-strength-label`)}>\n {label}\n {currentPasswordStrengthText ? \": \" : \"\"}\n </span>\n {currentPasswordStrengthText}\n </Paragraph>\n </div>\n );\n }\n);\n\nPasswordStrength.displayName = \"PasswordStrength\";\n","import React, {\n type ChangeEvent,\n forwardRef,\n isValidElement,\n type ReactElement,\n type ReactNode,\n type ReactPortal,\n useState,\n} from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconPasswordInvisible } from \"@purpur/icon/password-invisible\";\nimport { IconPasswordVisible } from \"@purpur/icon/password-visible\";\nimport { TextField, type TextFieldProps } from \"@purpur/text-field\";\nimport c from \"classnames/bind\";\n\nimport { FIELD_TYPE } from \"./constants\";\nimport styles from \"./password-field.module.scss\";\nimport { PasswordStrength } from \"./password-strength\";\nimport { type FieldType } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordFieldDefaultProps = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n showPasswordAriaLabel: string;\n hidePasswordAriaLabel: string;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype TextFieldClearProps =\n | {\n clearButtonAriaLabel: string;\n onClear: () => void;\n }\n | {\n clearButtonAriaLabel?: never;\n onClear?: never;\n };\n\nexport type PasswordFieldProps = PasswordFieldDefaultProps &\n Omit<TextFieldProps, \"startAdornment\" | \"endAdornment\" | \"afterField\" | \"type\" | \"onChange\"> &\n TextFieldClearProps;\n\nconst rootClassName = \"purpur-password-field\";\n\ntype PasswordFieldCmp<P> = React.ForwardRefExoticComponent<\n P & React.RefAttributes<HTMLInputElement>\n> & {\n PasswordStrength: typeof PasswordStrength;\n};\n\nexport const PasswordField = forwardRef<HTMLInputElement, PasswordFieldProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-field\",\n children,\n className,\n hidePasswordAriaLabel,\n onChange,\n showPasswordAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [type, setType] = useState<FieldType>(FIELD_TYPE.PASSWORD);\n\n const handleChange = async (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n };\n\n const handleVisibilityChange = () => {\n setType(type === FIELD_TYPE.PASSWORD ? FIELD_TYPE.TEXT : FIELD_TYPE.PASSWORD);\n };\n\n const IconComponent =\n type === FIELD_TYPE.PASSWORD ? IconPasswordVisible : IconPasswordInvisible;\n\n return (\n <div className={classes}>\n <TextField\n className={cx(`${rootClassName}__text-field`)}\n data-testid={dataTestId}\n onChange={handleChange}\n ref={ref}\n type={type}\n endAdornment={\n <Button\n aria-label={\n type === FIELD_TYPE.PASSWORD ? showPasswordAriaLabel : hidePasswordAriaLabel\n }\n aria-pressed={type === FIELD_TYPE.TEXT}\n data-testid={`${dataTestId}-type-toggle-button`}\n onClick={handleVisibilityChange}\n size=\"sm\"\n variant=\"tertiary-purple\"\n iconOnly\n >\n <IconComponent size=\"sm\" />\n </Button>\n }\n {...props}\n />\n {children}\n </div>\n );\n }\n) as PasswordFieldCmp<PasswordFieldProps>;\n\nPasswordField.PasswordStrength = PasswordStrength;\n\nPasswordField.displayName = \"PasswordField\";\n\nexport const isPasswordStrength = (\n child:\n | ReactElement\n | Iterable<ReactNode>\n | ReactPortal\n | string\n | number\n | boolean\n | null\n | undefined\n): child is ReactElement<PasswordFieldProps> =>\n isValidElement<PasswordFieldProps>(child) && child?.type === PasswordStrength;\n"],"names":["l","i","a","o","e","PASSWORD_STRENGTH","FIELD_TYPE","cx","c","styles","rootClassName","PasswordStrengthIndicator","forwardRef","dataTestId","active","className","passwordStrength","props","ref","classes","jsx","usePasswordStrength","password","weakText","mediumText","strongText","score","setScore","useState","setPasswordStrength","currentPasswordStrengthText","setCurrentPasswordStrengthText","passwordStrengthMap","useMemo","useEffect","zxcvbn","n","passwordStrengthText","PasswordStrength","value","label","jsxs","Paragraph","PasswordField","children","hidePasswordAriaLabel","onChange","showPasswordAriaLabel","type","setType","handleChange","event","handleVisibilityChange","IconComponent","IconPasswordVisible","IconPasswordInvisible","TextField","Button","isPasswordStrength","child","isValidElement"],"mappings":"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"}
1
+ {"version":3,"file":"password-field-Cy_E-D_G.mjs","sources":["../../../components/icon/dist/components/password-invisible.es.js","../../../components/icon/dist/components/password-visible.es.js","../../../components/password-field/src/constants.ts","../../../components/password-field/src/password-strength-indicator.tsx","../../../components/password-field/src/use-password-strength.ts","../../../components/password-field/src/password-strength.tsx","../../../components/password-field/src/password-field.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nimport { I as o } from \"../icon-DNHpBTHs.mjs\";\nconst l = {\n name: \"password-invisible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M2.364 2.364a.9.9 0 0 1 1.272 0l3.809 3.808a11.61 11.61 0 0 1 2.218-.789A9.944 9.944 0 0 1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.647.969-1.81 2.33-3.349 3.547a.9.9 0 0 1-1.116-1.413A15.273 15.273 0 0 0 20.894 12a15.297 15.297 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-.655 0-1.295.083-1.914.233-.435.105-.86.242-1.274.407l.418.417a4.9 4.9 0 0 1 7.632 4.654.9.9 0 1 1-1.786-.222 3.1 3.1 0 0 0-4.538-3.123l11.098 11.098a.9.9 0 1 1-1.272 1.272l-3.809-3.808c-1.362.642-2.9 1.072-4.555 1.072-2.651 0-5-1.103-6.826-2.42-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.645-.966 1.804-2.322 3.335-3.536a.9.9 0 1 1 1.118 1.411A15.266 15.266 0 0 0 3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c1.114 0 2.185-.24 3.188-.64l-.418-.418A4.9 4.9 0 0 1 7.1 12a8.888 8.888 0 0 1-.007-.225 2.488 2.488 0 0 1 .014-.385.9.9 0 1 1 1.786.222.79.79 0 0 0-.001.11A6.245 6.245 0 0 1 8.9 12a3.1 3.1 0 0 0 4.562 2.734L8.586 9.859a.912.912 0 0 1-.102-.102l-6.12-6.12a.9.9 0 0 1 0-1.273Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-invisible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ a(o, { ...s, svg: l });\ni.displayName = \"IconPasswordInvisible\";\nexport {\n i as IconPasswordInvisible\n};\n//# sourceMappingURL=password-invisible.es.js.map\n","import { jsx as o } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-DNHpBTHs.mjs\";\nconst e = {\n name: \"password-visible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c2.149 0 4.134-.897 5.774-2.08a15.295 15.295 0 0 0 3.12-3.02 15.3 15.3 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-2.149 0-4.134.897-5.774 2.08A15.299 15.299 0 0 0 3.106 12Zm2.067-4.48C7 6.203 9.349 5.1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.722 1.083-2.096 2.663-3.923 3.98C17 17.797 14.651 18.9 12 18.9s-5-1.103-6.826-2.42c-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.722-1.083 2.096-2.663 3.923-3.98ZM12 8.9a3.1 3.1 0 1 0 0 6.2 3.1 3.1 0 0 0 0-6.2ZM7.1 12a4.9 4.9 0 1 1 9.8 0 4.9 4.9 0 0 1-9.8 0Zm4-1.538a.9.9 0 0 1 .9-.9A2.438 2.438 0 0 1 14.438 12a.9.9 0 0 1-1.8 0 .638.638 0 0 0-.638-.638.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-visible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ o(a, { ...s, svg: e });\ni.displayName = \"IconPasswordVisible\";\nexport {\n i as IconPasswordVisible\n};\n//# sourceMappingURL=password-visible.es.js.map\n","export const PASSWORD_STRENGTH = {\n WEAK: \"weak\",\n MEDIUM: \"medium\",\n STRONG: \"strong\",\n} as const;\n\nexport const FIELD_TYPE = {\n PASSWORD: \"password\",\n TEXT: \"text\",\n} as const;\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength-indicator.module.scss\";\nimport type { PasswordStrengthValue } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthIndicatorProps = Omit<BaseProps, \"children\"> & {\n active: boolean;\n passwordStrength?: PasswordStrengthValue;\n};\n\nconst rootClassName = \"purpur-password-strength-indicator\";\n\nexport const PasswordStrengthIndicator = forwardRef<HTMLDivElement, PasswordStrengthIndicatorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength-indicator\",\n active,\n className,\n passwordStrength,\n ...props\n },\n ref\n ) => {\n const classes = cx(\n className,\n rootClassName,\n { [`${rootClassName}--${passwordStrength}`]: passwordStrength },\n { [`${rootClassName}--active`]: active }\n );\n\n return <div {...props} data-testid={dataTestId} className={classes} ref={ref} />;\n }\n);\n\nPasswordStrengthIndicator.displayName = \"PasswordStrengthIndicator\";\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { PASSWORD_STRENGTH } from \"./constants\";\nimport {\n type PasswordScore,\n type PasswordStrengthMapValue,\n type PasswordStrengthValue,\n} from \"./types\";\n\ntype UsePasswordStrengthHook = {\n score: number;\n passwordStrength: PasswordStrengthValue | undefined;\n currentPasswordStrengthText: string | undefined;\n};\n\nexport const usePasswordStrength = (\n password: string,\n weakText: string,\n mediumText: string,\n strongText: string\n): UsePasswordStrengthHook => {\n const [score, setScore] = useState<PasswordScore>(0);\n const [passwordStrength, setPasswordStrength] = useState<PasswordStrengthValue | undefined>();\n const [currentPasswordStrengthText, setCurrentPasswordStrengthText] = useState<\n string | undefined\n >(undefined);\n\n const passwordStrengthMap: Record<PasswordScore, PasswordStrengthMapValue> = useMemo(\n () => ({\n 0: [PASSWORD_STRENGTH.WEAK, weakText],\n 1: [PASSWORD_STRENGTH.WEAK, weakText],\n 2: [PASSWORD_STRENGTH.MEDIUM, mediumText],\n 3: [PASSWORD_STRENGTH.STRONG, strongText],\n 4: [PASSWORD_STRENGTH.STRONG, strongText],\n }),\n [weakText, mediumText, strongText]\n );\n\n useEffect(() => {\n (async () => {\n if (!password) {\n setScore(0);\n setPasswordStrength(undefined);\n setCurrentPasswordStrengthText(undefined);\n } else {\n const { default: zxcvbn } = await import(\"zxcvbn\");\n const { score } = zxcvbn(password);\n const [passwordStrength, passwordStrengthText] = passwordStrengthMap[score];\n setScore(score);\n setPasswordStrength(passwordStrength);\n setCurrentPasswordStrengthText(passwordStrengthText);\n }\n })();\n }, [password, passwordStrengthMap]);\n\n return {\n score,\n passwordStrength,\n currentPasswordStrengthText,\n };\n};\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength.module.scss\";\nimport { PasswordStrengthIndicator } from \"./password-strength-indicator\";\nimport { usePasswordStrength } from \"./use-password-strength\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthProps = Omit<BaseProps, \"children\"> & {\n value: string;\n label: string;\n weakText: string;\n mediumText: string;\n strongText: string;\n};\n\nconst rootClassName = \"purpur-password-strength\";\n\nexport const PasswordStrength = forwardRef<HTMLDivElement, PasswordStrengthProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength\",\n className,\n value,\n label,\n weakText,\n mediumText,\n strongText,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const { score, passwordStrength, currentPasswordStrengthText } = usePasswordStrength(\n value,\n weakText,\n mediumText,\n strongText\n );\n\n return (\n <div data-testid={dataTestId} className={classes} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__indicator-container`)}>\n <PasswordStrengthIndicator\n active={!!passwordStrength}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 1}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 2}\n passwordStrength={passwordStrength}\n />\n </div>\n <Paragraph\n aria-live=\"polite\"\n data-testid={`${dataTestId}-text`}\n className={cx(`${rootClassName}__password-strength-text`, {\n [`${rootClassName}__password-strength-text--${passwordStrength}`]: passwordStrength,\n })}\n >\n <span className={cx(`${rootClassName}__password-strength-label`)}>\n {label}\n {currentPasswordStrengthText ? \": \" : \"\"}\n </span>\n {currentPasswordStrengthText}\n </Paragraph>\n </div>\n );\n }\n);\n\nPasswordStrength.displayName = \"PasswordStrength\";\n","import React, {\n type ChangeEvent,\n forwardRef,\n isValidElement,\n type ReactElement,\n type ReactNode,\n type ReactPortal,\n useState,\n} from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconPasswordInvisible } from \"@purpur/icon/password-invisible\";\nimport { IconPasswordVisible } from \"@purpur/icon/password-visible\";\nimport { TextField, type TextFieldProps } from \"@purpur/text-field\";\nimport c from \"classnames/bind\";\n\nimport { FIELD_TYPE } from \"./constants\";\nimport styles from \"./password-field.module.scss\";\nimport { PasswordStrength } from \"./password-strength\";\nimport { type FieldType } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordFieldDefaultProps = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n showPasswordAriaLabel: string;\n hidePasswordAriaLabel: string;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype TextFieldClearProps =\n | {\n clearButtonAriaLabel: string;\n onClear: () => void;\n }\n | {\n clearButtonAriaLabel?: never;\n onClear?: never;\n };\n\nexport type PasswordFieldProps = PasswordFieldDefaultProps &\n Omit<TextFieldProps, \"startAdornment\" | \"endAdornment\" | \"afterField\" | \"type\" | \"onChange\"> &\n TextFieldClearProps;\n\nconst rootClassName = \"purpur-password-field\";\n\ntype PasswordFieldCmp<P> = React.ForwardRefExoticComponent<\n P & React.RefAttributes<HTMLInputElement>\n> & {\n PasswordStrength: typeof PasswordStrength;\n};\n\nexport const PasswordField = forwardRef<HTMLInputElement, PasswordFieldProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-field\",\n children,\n className,\n hidePasswordAriaLabel,\n onChange,\n showPasswordAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [type, setType] = useState<FieldType>(FIELD_TYPE.PASSWORD);\n\n const handleChange = async (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n };\n\n const handleVisibilityChange = () => {\n setType(type === FIELD_TYPE.PASSWORD ? FIELD_TYPE.TEXT : FIELD_TYPE.PASSWORD);\n };\n\n const IconComponent =\n type === FIELD_TYPE.PASSWORD ? IconPasswordVisible : IconPasswordInvisible;\n\n return (\n <div className={classes}>\n <TextField\n className={cx(`${rootClassName}__text-field`)}\n data-testid={dataTestId}\n onChange={handleChange}\n ref={ref}\n type={type}\n endAdornment={\n <Button\n aria-label={\n type === FIELD_TYPE.PASSWORD ? showPasswordAriaLabel : hidePasswordAriaLabel\n }\n aria-pressed={type === FIELD_TYPE.TEXT}\n data-testid={`${dataTestId}-type-toggle-button`}\n onClick={handleVisibilityChange}\n size=\"sm\"\n variant=\"text\"\n iconOnly\n >\n <IconComponent size=\"sm\" />\n </Button>\n }\n {...props}\n />\n {children}\n </div>\n );\n }\n) as PasswordFieldCmp<PasswordFieldProps>;\n\nPasswordField.PasswordStrength = PasswordStrength;\n\nPasswordField.displayName = \"PasswordField\";\n\nexport const isPasswordStrength = (\n child:\n | ReactElement\n | Iterable<ReactNode>\n | ReactPortal\n | string\n | number\n | boolean\n | null\n | undefined\n): child is ReactElement<PasswordFieldProps> =>\n isValidElement<PasswordFieldProps>(child) && child?.type === PasswordStrength;\n"],"names":["l","i","a","o","e","PASSWORD_STRENGTH","FIELD_TYPE","cx","c","styles","rootClassName","PasswordStrengthIndicator","forwardRef","dataTestId","active","className","passwordStrength","props","ref","classes","jsx","usePasswordStrength","password","weakText","mediumText","strongText","score","setScore","useState","setPasswordStrength","currentPasswordStrengthText","setCurrentPasswordStrengthText","passwordStrengthMap","useMemo","useEffect","zxcvbn","n","passwordStrengthText","PasswordStrength","value","label","jsxs","Paragraph","PasswordField","children","hidePasswordAriaLabel","onChange","showPasswordAriaLabel","type","setType","handleChange","event","handleVisibilityChange","IconComponent","IconPasswordVisible","IconPasswordInvisible","TextField","Button","isPasswordStrength","child","isValidElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("react/jsx-runtime"),o=require("react"),T=require("./button-DZgtrGqN.js"),C=require("./icon-DNHpBTHs-faYHqTXU.js"),D=require("./text-field-CS0PT5T6.js"),b=require("./bind-DeUYJ6m9.js"),O=require("./paragraph-B8HFdNne.js"),M={name:"password-invisible",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M2.364 2.364a.9.9 0 0 1 1.272 0l3.809 3.808a11.61 11.61 0 0 1 2.218-.789A9.944 9.944 0 0 1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.647.969-1.81 2.33-3.349 3.547a.9.9 0 0 1-1.116-1.413A15.273 15.273 0 0 0 20.894 12a15.297 15.297 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-.655 0-1.295.083-1.914.233-.435.105-.86.242-1.274.407l.418.417a4.9 4.9 0 0 1 7.632 4.654.9.9 0 1 1-1.786-.222 3.1 3.1 0 0 0-4.538-3.123l11.098 11.098a.9.9 0 1 1-1.272 1.272l-3.809-3.808c-1.362.642-2.9 1.072-4.555 1.072-2.651 0-5-1.103-6.826-2.42-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.645-.966 1.804-2.322 3.335-3.536a.9.9 0 1 1 1.118 1.411A15.266 15.266 0 0 0 3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c1.114 0 2.185-.24 3.188-.64l-.418-.418A4.9 4.9 0 0 1 7.1 12a8.888 8.888 0 0 1-.007-.225 2.488 2.488 0 0 1 .014-.385.9.9 0 1 1 1.786.222.79.79 0 0 0-.001.11A6.245 6.245 0 0 1 8.9 12a3.1 3.1 0 0 0 4.562 2.734L8.586 9.859a.912.912 0 0 1-.102-.102l-6.12-6.12a.9.9 0 0 1 0-1.273Z" clip-rule="evenodd"/></svg>',keywords:["password-invisible"],category:"action"},R=s=>t.jsx(C.b,{...s,svg:M});R.displayName="IconPasswordInvisible";const W={name:"password-visible",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c2.149 0 4.134-.897 5.774-2.08a15.295 15.295 0 0 0 3.12-3.02 15.3 15.3 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-2.149 0-4.134.897-5.774 2.08A15.299 15.299 0 0 0 3.106 12Zm2.067-4.48C7 6.203 9.349 5.1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.722 1.083-2.096 2.663-3.923 3.98C17 17.797 14.651 18.9 12 18.9s-5-1.103-6.826-2.42c-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.722-1.083 2.096-2.663 3.923-3.98ZM12 8.9a3.1 3.1 0 1 0 0 6.2 3.1 3.1 0 0 0 0-6.2ZM7.1 12a4.9 4.9 0 1 1 9.8 0 4.9 4.9 0 0 1-9.8 0Zm4-1.538a.9.9 0 0 1 .9-.9A2.438 2.438 0 0 1 14.438 12a.9.9 0 0 1-1.8 0 .638.638 0 0 0-.638-.638.9.9 0 0 1-.9-.9Z" clip-rule="evenodd"/></svg>',keywords:["password-visible"],category:"action"},j=s=>t.jsx(C.b,{...s,svg:W});j.displayName="IconPasswordVisible";const _={WEAK:"weak",MEDIUM:"medium",STRONG:"strong"},w={PASSWORD:"password",TEXT:"text"},q={"purpur-password-field":"_purpur-password-field_co7kv_1"},z={"purpur-password-strength":"_purpur-password-strength_sa1ua_1","purpur-password-strength__indicator-container":"_purpur-password-strength__indicator-container_sa1ua_6","purpur-password-strength__password-strength-text--weak":"_purpur-password-strength__password-strength-text--weak_sa1ua_10","purpur-password-strength__password-strength-text--medium":"_purpur-password-strength__password-strength-text--medium_sa1ua_13","purpur-password-strength__password-strength-text--strong":"_purpur-password-strength__password-strength-text--strong_sa1ua_16","purpur-password-strength__password-strength-label":"_purpur-password-strength__password-strength-label_sa1ua_19"},k={"purpur-password-strength-indicator":"_purpur-password-strength-indicator_1o6zr_1","purpur-password-strength-indicator--active":"_purpur-password-strength-indicator--active_1o6zr_7","purpur-password-strength-indicator--weak":"_purpur-password-strength-indicator--weak_1o6zr_7","purpur-password-strength-indicator--medium":"_purpur-password-strength-indicator--medium_1o6zr_10","purpur-password-strength-indicator--strong":"_purpur-password-strength-indicator--strong_1o6zr_13"},I=b.c.bind(k),y="purpur-password-strength-indicator",m=o.forwardRef(({["data-testid"]:s="password-strength-indicator",active:n,className:d,passwordStrength:e,...p},i)=>{const c=I(d,y,{[`${y}--${e}`]:e},{[`${y}--active`]:n});return t.jsx("div",{...p,"data-testid":s,className:c,ref:i})});m.displayName="PasswordStrengthIndicator";const F=(s,n,d,e)=>{const[p,i]=o.useState(0),[c,g]=o.useState(),[h,a]=o.useState(void 0),u=o.useMemo(()=>({0:[_.WEAK,n],1:[_.WEAK,n],2:[_.MEDIUM,d],3:[_.STRONG,e],4:[_.STRONG,e]}),[n,d,e]);return o.useEffect(()=>{(async()=>{if(!s)i(0),g(void 0),a(void 0);else{const{default:r}=await Promise.resolve().then(()=>require("./main-B501z9Ql.js")).then(E=>E.main),{score:l}=r(s),[x,P]=u[l];i(l),g(x),a(P)}})()},[s,u]),{score:p,passwordStrength:c,currentPasswordStrengthText:h}},S=b.c.bind(z),v="purpur-password-strength",N=o.forwardRef(({["data-testid"]:s="password-strength",className:n,value:d,label:e,weakText:p,mediumText:i,strongText:c,...g},h)=>{const a=S(n,v),{score:u,passwordStrength:r,currentPasswordStrengthText:l}=F(d,p,i,c);return t.jsxs("div",{"data-testid":s,className:a,ref:h,...g,children:[t.jsxs("div",{className:S(`${v}__indicator-container`),children:[t.jsx(m,{active:!!r,passwordStrength:r}),t.jsx(m,{active:!!r&&u>1,passwordStrength:r}),t.jsx(m,{active:!!r&&u>2,passwordStrength:r})]}),t.jsxs(O.Paragraph,{"aria-live":"polite","data-testid":`${s}-text`,className:S(`${v}__password-strength-text`,{[`${v}__password-strength-text--${r}`]:r}),children:[t.jsxs("span",{className:S(`${v}__password-strength-label`),children:[e,l?": ":""]}),l]})]})});N.displayName="PasswordStrength";const A=b.c.bind(q),$="purpur-password-field",f=o.forwardRef(({["data-testid"]:s="password-field",children:n,className:d,hidePasswordAriaLabel:e,onChange:p,showPasswordAriaLabel:i,...c},g)=>{const h=A(d,$),[a,u]=o.useState(w.PASSWORD),r=async P=>{p?.(P)},l=()=>{u(a===w.PASSWORD?w.TEXT:w.PASSWORD)},x=a===w.PASSWORD?j:R;return t.jsxs("div",{className:h,children:[t.jsx(D.TextField,{className:A(`${$}__text-field`),"data-testid":s,onChange:r,ref:g,type:a,endAdornment:t.jsx(T.Button,{"aria-label":a===w.PASSWORD?i:e,"aria-pressed":a===w.TEXT,"data-testid":`${s}-type-toggle-button`,onClick:l,size:"sm",variant:"tertiary-purple",iconOnly:!0,children:t.jsx(x,{size:"sm"})}),...c}),n]})});f.PasswordStrength=N;f.displayName="PasswordField";const Z=s=>o.isValidElement(s)&&s?.type===N;exports.PasswordField=f;exports.isPasswordStrength=Z;
2
- //# sourceMappingURL=password-field-BjKdBoIK.js.map
1
+ "use strict";const t=require("react/jsx-runtime"),o=require("react"),T=require("./button-C5CYysw5.js"),C=require("./icon-DNHpBTHs-faYHqTXU.js"),D=require("./text-field-BSgqJjpv.js"),y=require("./bind-DeUYJ6m9.js"),O=require("./paragraph-B8HFdNne.js"),M={name:"password-invisible",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M2.364 2.364a.9.9 0 0 1 1.272 0l3.809 3.808a11.61 11.61 0 0 1 2.218-.789A9.944 9.944 0 0 1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.647.969-1.81 2.33-3.349 3.547a.9.9 0 0 1-1.116-1.413A15.273 15.273 0 0 0 20.894 12a15.297 15.297 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-.655 0-1.295.083-1.914.233-.435.105-.86.242-1.274.407l.418.417a4.9 4.9 0 0 1 7.632 4.654.9.9 0 1 1-1.786-.222 3.1 3.1 0 0 0-4.538-3.123l11.098 11.098a.9.9 0 1 1-1.272 1.272l-3.809-3.808c-1.362.642-2.9 1.072-4.555 1.072-2.651 0-5-1.103-6.826-2.42-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.645-.966 1.804-2.322 3.335-3.536a.9.9 0 1 1 1.118 1.411A15.266 15.266 0 0 0 3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c1.114 0 2.185-.24 3.188-.64l-.418-.418A4.9 4.9 0 0 1 7.1 12a8.888 8.888 0 0 1-.007-.225 2.488 2.488 0 0 1 .014-.385.9.9 0 1 1 1.786.222.79.79 0 0 0-.001.11A6.245 6.245 0 0 1 8.9 12a3.1 3.1 0 0 0 4.562 2.734L8.586 9.859a.912.912 0 0 1-.102-.102l-6.12-6.12a.9.9 0 0 1 0-1.273Z" clip-rule="evenodd"/></svg>',keywords:["password-invisible"],category:"action"},R=s=>t.jsx(C.b,{...s,svg:M});R.displayName="IconPasswordInvisible";const W={name:"password-visible",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c2.149 0 4.134-.897 5.774-2.08a15.295 15.295 0 0 0 3.12-3.02 15.3 15.3 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-2.149 0-4.134.897-5.774 2.08A15.299 15.299 0 0 0 3.106 12Zm2.067-4.48C7 6.203 9.349 5.1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.722 1.083-2.096 2.663-3.923 3.98C17 17.797 14.651 18.9 12 18.9s-5-1.103-6.826-2.42c-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.722-1.083 2.096-2.663 3.923-3.98ZM12 8.9a3.1 3.1 0 1 0 0 6.2 3.1 3.1 0 0 0 0-6.2ZM7.1 12a4.9 4.9 0 1 1 9.8 0 4.9 4.9 0 0 1-9.8 0Zm4-1.538a.9.9 0 0 1 .9-.9A2.438 2.438 0 0 1 14.438 12a.9.9 0 0 1-1.8 0 .638.638 0 0 0-.638-.638.9.9 0 0 1-.9-.9Z" clip-rule="evenodd"/></svg>',keywords:["password-visible"],category:"action"},j=s=>t.jsx(C.b,{...s,svg:W});j.displayName="IconPasswordVisible";const _={WEAK:"weak",MEDIUM:"medium",STRONG:"strong"},w={PASSWORD:"password",TEXT:"text"},q={"purpur-password-field":"_purpur-password-field_co7kv_1"},z={"purpur-password-strength":"_purpur-password-strength_sa1ua_1","purpur-password-strength__indicator-container":"_purpur-password-strength__indicator-container_sa1ua_6","purpur-password-strength__password-strength-text--weak":"_purpur-password-strength__password-strength-text--weak_sa1ua_10","purpur-password-strength__password-strength-text--medium":"_purpur-password-strength__password-strength-text--medium_sa1ua_13","purpur-password-strength__password-strength-text--strong":"_purpur-password-strength__password-strength-text--strong_sa1ua_16","purpur-password-strength__password-strength-label":"_purpur-password-strength__password-strength-label_sa1ua_19"},k={"purpur-password-strength-indicator":"_purpur-password-strength-indicator_1o6zr_1","purpur-password-strength-indicator--active":"_purpur-password-strength-indicator--active_1o6zr_7","purpur-password-strength-indicator--weak":"_purpur-password-strength-indicator--weak_1o6zr_7","purpur-password-strength-indicator--medium":"_purpur-password-strength-indicator--medium_1o6zr_10","purpur-password-strength-indicator--strong":"_purpur-password-strength-indicator--strong_1o6zr_13"},I=y.c.bind(k),b="purpur-password-strength-indicator",m=o.forwardRef(({["data-testid"]:s="password-strength-indicator",active:n,className:d,passwordStrength:e,...c},i)=>{const p=I(d,b,{[`${b}--${e}`]:e},{[`${b}--active`]:n});return t.jsx("div",{...c,"data-testid":s,className:p,ref:i})});m.displayName="PasswordStrengthIndicator";const F=(s,n,d,e)=>{const[c,i]=o.useState(0),[p,g]=o.useState(),[h,a]=o.useState(void 0),u=o.useMemo(()=>({0:[_.WEAK,n],1:[_.WEAK,n],2:[_.MEDIUM,d],3:[_.STRONG,e],4:[_.STRONG,e]}),[n,d,e]);return o.useEffect(()=>{(async()=>{if(!s)i(0),g(void 0),a(void 0);else{const{default:r}=await Promise.resolve().then(()=>require("./main-B501z9Ql.js")).then(E=>E.main),{score:l}=r(s),[x,P]=u[l];i(l),g(x),a(P)}})()},[s,u]),{score:c,passwordStrength:p,currentPasswordStrengthText:h}},S=y.c.bind(z),v="purpur-password-strength",N=o.forwardRef(({["data-testid"]:s="password-strength",className:n,value:d,label:e,weakText:c,mediumText:i,strongText:p,...g},h)=>{const a=S(n,v),{score:u,passwordStrength:r,currentPasswordStrengthText:l}=F(d,c,i,p);return t.jsxs("div",{"data-testid":s,className:a,ref:h,...g,children:[t.jsxs("div",{className:S(`${v}__indicator-container`),children:[t.jsx(m,{active:!!r,passwordStrength:r}),t.jsx(m,{active:!!r&&u>1,passwordStrength:r}),t.jsx(m,{active:!!r&&u>2,passwordStrength:r})]}),t.jsxs(O.Paragraph,{"aria-live":"polite","data-testid":`${s}-text`,className:S(`${v}__password-strength-text`,{[`${v}__password-strength-text--${r}`]:r}),children:[t.jsxs("span",{className:S(`${v}__password-strength-label`),children:[e,l?": ":""]}),l]})]})});N.displayName="PasswordStrength";const A=y.c.bind(q),$="purpur-password-field",f=o.forwardRef(({["data-testid"]:s="password-field",children:n,className:d,hidePasswordAriaLabel:e,onChange:c,showPasswordAriaLabel:i,...p},g)=>{const h=A(d,$),[a,u]=o.useState(w.PASSWORD),r=async P=>{c?.(P)},l=()=>{u(a===w.PASSWORD?w.TEXT:w.PASSWORD)},x=a===w.PASSWORD?j:R;return t.jsxs("div",{className:h,children:[t.jsx(D.TextField,{className:A(`${$}__text-field`),"data-testid":s,onChange:r,ref:g,type:a,endAdornment:t.jsx(T.Button,{"aria-label":a===w.PASSWORD?i:e,"aria-pressed":a===w.TEXT,"data-testid":`${s}-type-toggle-button`,onClick:l,size:"sm",variant:"text",iconOnly:!0,children:t.jsx(x,{size:"sm"})}),...p}),n]})});f.PasswordStrength=N;f.displayName="PasswordField";const Z=s=>o.isValidElement(s)&&s?.type===N;exports.PasswordField=f;exports.isPasswordStrength=Z;
2
+ //# sourceMappingURL=password-field-lKyWHjQS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"password-field-BjKdBoIK.js","sources":["../../../components/icon/dist/components/password-invisible.es.js","../../../components/icon/dist/components/password-visible.es.js","../../../components/password-field/src/constants.ts","../../../components/password-field/src/password-strength-indicator.tsx","../../../components/password-field/src/use-password-strength.ts","../../../components/password-field/src/password-strength.tsx","../../../components/password-field/src/password-field.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nimport { I as o } from \"../icon-DNHpBTHs.mjs\";\nconst l = {\n name: \"password-invisible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M2.364 2.364a.9.9 0 0 1 1.272 0l3.809 3.808a11.61 11.61 0 0 1 2.218-.789A9.944 9.944 0 0 1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.647.969-1.81 2.33-3.349 3.547a.9.9 0 0 1-1.116-1.413A15.273 15.273 0 0 0 20.894 12a15.297 15.297 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-.655 0-1.295.083-1.914.233-.435.105-.86.242-1.274.407l.418.417a4.9 4.9 0 0 1 7.632 4.654.9.9 0 1 1-1.786-.222 3.1 3.1 0 0 0-4.538-3.123l11.098 11.098a.9.9 0 1 1-1.272 1.272l-3.809-3.808c-1.362.642-2.9 1.072-4.555 1.072-2.651 0-5-1.103-6.826-2.42-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.645-.966 1.804-2.322 3.335-3.536a.9.9 0 1 1 1.118 1.411A15.266 15.266 0 0 0 3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c1.114 0 2.185-.24 3.188-.64l-.418-.418A4.9 4.9 0 0 1 7.1 12a8.888 8.888 0 0 1-.007-.225 2.488 2.488 0 0 1 .014-.385.9.9 0 1 1 1.786.222.79.79 0 0 0-.001.11A6.245 6.245 0 0 1 8.9 12a3.1 3.1 0 0 0 4.562 2.734L8.586 9.859a.912.912 0 0 1-.102-.102l-6.12-6.12a.9.9 0 0 1 0-1.273Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-invisible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ a(o, { ...s, svg: l });\ni.displayName = \"IconPasswordInvisible\";\nexport {\n i as IconPasswordInvisible\n};\n//# sourceMappingURL=password-invisible.es.js.map\n","import { jsx as o } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-DNHpBTHs.mjs\";\nconst e = {\n name: \"password-visible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c2.149 0 4.134-.897 5.774-2.08a15.295 15.295 0 0 0 3.12-3.02 15.3 15.3 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-2.149 0-4.134.897-5.774 2.08A15.299 15.299 0 0 0 3.106 12Zm2.067-4.48C7 6.203 9.349 5.1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.722 1.083-2.096 2.663-3.923 3.98C17 17.797 14.651 18.9 12 18.9s-5-1.103-6.826-2.42c-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.722-1.083 2.096-2.663 3.923-3.98ZM12 8.9a3.1 3.1 0 1 0 0 6.2 3.1 3.1 0 0 0 0-6.2ZM7.1 12a4.9 4.9 0 1 1 9.8 0 4.9 4.9 0 0 1-9.8 0Zm4-1.538a.9.9 0 0 1 .9-.9A2.438 2.438 0 0 1 14.438 12a.9.9 0 0 1-1.8 0 .638.638 0 0 0-.638-.638.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-visible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ o(a, { ...s, svg: e });\ni.displayName = \"IconPasswordVisible\";\nexport {\n i as IconPasswordVisible\n};\n//# sourceMappingURL=password-visible.es.js.map\n","export const PASSWORD_STRENGTH = {\n WEAK: \"weak\",\n MEDIUM: \"medium\",\n STRONG: \"strong\",\n} as const;\n\nexport const FIELD_TYPE = {\n PASSWORD: \"password\",\n TEXT: \"text\",\n} as const;\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength-indicator.module.scss\";\nimport type { PasswordStrengthValue } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthIndicatorProps = Omit<BaseProps, \"children\"> & {\n active: boolean;\n passwordStrength?: PasswordStrengthValue;\n};\n\nconst rootClassName = \"purpur-password-strength-indicator\";\n\nexport const PasswordStrengthIndicator = forwardRef<HTMLDivElement, PasswordStrengthIndicatorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength-indicator\",\n active,\n className,\n passwordStrength,\n ...props\n },\n ref\n ) => {\n const classes = cx(\n className,\n rootClassName,\n { [`${rootClassName}--${passwordStrength}`]: passwordStrength },\n { [`${rootClassName}--active`]: active }\n );\n\n return <div {...props} data-testid={dataTestId} className={classes} ref={ref} />;\n }\n);\n\nPasswordStrengthIndicator.displayName = \"PasswordStrengthIndicator\";\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { PASSWORD_STRENGTH } from \"./constants\";\nimport {\n type PasswordScore,\n type PasswordStrengthMapValue,\n type PasswordStrengthValue,\n} from \"./types\";\n\ntype UsePasswordStrengthHook = {\n score: number;\n passwordStrength: PasswordStrengthValue | undefined;\n currentPasswordStrengthText: string | undefined;\n};\n\nexport const usePasswordStrength = (\n password: string,\n weakText: string,\n mediumText: string,\n strongText: string\n): UsePasswordStrengthHook => {\n const [score, setScore] = useState<PasswordScore>(0);\n const [passwordStrength, setPasswordStrength] = useState<PasswordStrengthValue | undefined>();\n const [currentPasswordStrengthText, setCurrentPasswordStrengthText] = useState<\n string | undefined\n >(undefined);\n\n const passwordStrengthMap: Record<PasswordScore, PasswordStrengthMapValue> = useMemo(\n () => ({\n 0: [PASSWORD_STRENGTH.WEAK, weakText],\n 1: [PASSWORD_STRENGTH.WEAK, weakText],\n 2: [PASSWORD_STRENGTH.MEDIUM, mediumText],\n 3: [PASSWORD_STRENGTH.STRONG, strongText],\n 4: [PASSWORD_STRENGTH.STRONG, strongText],\n }),\n [weakText, mediumText, strongText]\n );\n\n useEffect(() => {\n (async () => {\n if (!password) {\n setScore(0);\n setPasswordStrength(undefined);\n setCurrentPasswordStrengthText(undefined);\n } else {\n const { default: zxcvbn } = await import(\"zxcvbn\");\n const { score } = zxcvbn(password);\n const [passwordStrength, passwordStrengthText] = passwordStrengthMap[score];\n setScore(score);\n setPasswordStrength(passwordStrength);\n setCurrentPasswordStrengthText(passwordStrengthText);\n }\n })();\n }, [password, passwordStrengthMap]);\n\n return {\n score,\n passwordStrength,\n currentPasswordStrengthText,\n };\n};\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength.module.scss\";\nimport { PasswordStrengthIndicator } from \"./password-strength-indicator\";\nimport { usePasswordStrength } from \"./use-password-strength\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthProps = Omit<BaseProps, \"children\"> & {\n value: string;\n label: string;\n weakText: string;\n mediumText: string;\n strongText: string;\n};\n\nconst rootClassName = \"purpur-password-strength\";\n\nexport const PasswordStrength = forwardRef<HTMLDivElement, PasswordStrengthProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength\",\n className,\n value,\n label,\n weakText,\n mediumText,\n strongText,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const { score, passwordStrength, currentPasswordStrengthText } = usePasswordStrength(\n value,\n weakText,\n mediumText,\n strongText\n );\n\n return (\n <div data-testid={dataTestId} className={classes} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__indicator-container`)}>\n <PasswordStrengthIndicator\n active={!!passwordStrength}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 1}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 2}\n passwordStrength={passwordStrength}\n />\n </div>\n <Paragraph\n aria-live=\"polite\"\n data-testid={`${dataTestId}-text`}\n className={cx(`${rootClassName}__password-strength-text`, {\n [`${rootClassName}__password-strength-text--${passwordStrength}`]: passwordStrength,\n })}\n >\n <span className={cx(`${rootClassName}__password-strength-label`)}>\n {label}\n {currentPasswordStrengthText ? \": \" : \"\"}\n </span>\n {currentPasswordStrengthText}\n </Paragraph>\n </div>\n );\n }\n);\n\nPasswordStrength.displayName = \"PasswordStrength\";\n","import React, {\n type ChangeEvent,\n forwardRef,\n isValidElement,\n type ReactElement,\n type ReactNode,\n type ReactPortal,\n useState,\n} from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconPasswordInvisible } from \"@purpur/icon/password-invisible\";\nimport { IconPasswordVisible } from \"@purpur/icon/password-visible\";\nimport { TextField, type TextFieldProps } from \"@purpur/text-field\";\nimport c from \"classnames/bind\";\n\nimport { FIELD_TYPE } from \"./constants\";\nimport styles from \"./password-field.module.scss\";\nimport { PasswordStrength } from \"./password-strength\";\nimport { type FieldType } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordFieldDefaultProps = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n showPasswordAriaLabel: string;\n hidePasswordAriaLabel: string;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype TextFieldClearProps =\n | {\n clearButtonAriaLabel: string;\n onClear: () => void;\n }\n | {\n clearButtonAriaLabel?: never;\n onClear?: never;\n };\n\nexport type PasswordFieldProps = PasswordFieldDefaultProps &\n Omit<TextFieldProps, \"startAdornment\" | \"endAdornment\" | \"afterField\" | \"type\" | \"onChange\"> &\n TextFieldClearProps;\n\nconst rootClassName = \"purpur-password-field\";\n\ntype PasswordFieldCmp<P> = React.ForwardRefExoticComponent<\n P & React.RefAttributes<HTMLInputElement>\n> & {\n PasswordStrength: typeof PasswordStrength;\n};\n\nexport const PasswordField = forwardRef<HTMLInputElement, PasswordFieldProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-field\",\n children,\n className,\n hidePasswordAriaLabel,\n onChange,\n showPasswordAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [type, setType] = useState<FieldType>(FIELD_TYPE.PASSWORD);\n\n const handleChange = async (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n };\n\n const handleVisibilityChange = () => {\n setType(type === FIELD_TYPE.PASSWORD ? FIELD_TYPE.TEXT : FIELD_TYPE.PASSWORD);\n };\n\n const IconComponent =\n type === FIELD_TYPE.PASSWORD ? IconPasswordVisible : IconPasswordInvisible;\n\n return (\n <div className={classes}>\n <TextField\n className={cx(`${rootClassName}__text-field`)}\n data-testid={dataTestId}\n onChange={handleChange}\n ref={ref}\n type={type}\n endAdornment={\n <Button\n aria-label={\n type === FIELD_TYPE.PASSWORD ? showPasswordAriaLabel : hidePasswordAriaLabel\n }\n aria-pressed={type === FIELD_TYPE.TEXT}\n data-testid={`${dataTestId}-type-toggle-button`}\n onClick={handleVisibilityChange}\n size=\"sm\"\n variant=\"tertiary-purple\"\n iconOnly\n >\n <IconComponent size=\"sm\" />\n </Button>\n }\n {...props}\n />\n {children}\n </div>\n );\n }\n) as PasswordFieldCmp<PasswordFieldProps>;\n\nPasswordField.PasswordStrength = PasswordStrength;\n\nPasswordField.displayName = \"PasswordField\";\n\nexport const isPasswordStrength = (\n child:\n | ReactElement\n | Iterable<ReactNode>\n | ReactPortal\n | string\n | number\n | boolean\n | null\n | undefined\n): child is ReactElement<PasswordFieldProps> =>\n isValidElement<PasswordFieldProps>(child) && child?.type === PasswordStrength;\n"],"names":["l","i","a","o","e","PASSWORD_STRENGTH","FIELD_TYPE","cx","c","styles","rootClassName","PasswordStrengthIndicator","forwardRef","dataTestId","active","className","passwordStrength","props","ref","classes","jsx","usePasswordStrength","password","weakText","mediumText","strongText","score","setScore","useState","setPasswordStrength","currentPasswordStrengthText","setCurrentPasswordStrengthText","passwordStrengthMap","useMemo","useEffect","zxcvbn","n","passwordStrengthText","PasswordStrength","value","label","jsxs","Paragraph","PasswordField","children","hidePasswordAriaLabel","onChange","showPasswordAriaLabel","type","setType","handleChange","event","handleVisibilityChange","IconComponent","IconPasswordVisible","IconPasswordInvisible","TextField","Button","isPasswordStrength","child","isValidElement"],"mappings":"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"}
1
+ {"version":3,"file":"password-field-lKyWHjQS.js","sources":["../../../components/icon/dist/components/password-invisible.es.js","../../../components/icon/dist/components/password-visible.es.js","../../../components/password-field/src/constants.ts","../../../components/password-field/src/password-strength-indicator.tsx","../../../components/password-field/src/use-password-strength.ts","../../../components/password-field/src/password-strength.tsx","../../../components/password-field/src/password-field.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nimport { I as o } from \"../icon-DNHpBTHs.mjs\";\nconst l = {\n name: \"password-invisible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M2.364 2.364a.9.9 0 0 1 1.272 0l3.809 3.808a11.61 11.61 0 0 1 2.218-.789A9.944 9.944 0 0 1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.647.969-1.81 2.33-3.349 3.547a.9.9 0 0 1-1.116-1.413A15.273 15.273 0 0 0 20.894 12a15.297 15.297 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-.655 0-1.295.083-1.914.233-.435.105-.86.242-1.274.407l.418.417a4.9 4.9 0 0 1 7.632 4.654.9.9 0 1 1-1.786-.222 3.1 3.1 0 0 0-4.538-3.123l11.098 11.098a.9.9 0 1 1-1.272 1.272l-3.809-3.808c-1.362.642-2.9 1.072-4.555 1.072-2.651 0-5-1.103-6.826-2.42-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.645-.966 1.804-2.322 3.335-3.536a.9.9 0 1 1 1.118 1.411A15.266 15.266 0 0 0 3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c1.114 0 2.185-.24 3.188-.64l-.418-.418A4.9 4.9 0 0 1 7.1 12a8.888 8.888 0 0 1-.007-.225 2.488 2.488 0 0 1 .014-.385.9.9 0 1 1 1.786.222.79.79 0 0 0-.001.11A6.245 6.245 0 0 1 8.9 12a3.1 3.1 0 0 0 4.562 2.734L8.586 9.859a.912.912 0 0 1-.102-.102l-6.12-6.12a.9.9 0 0 1 0-1.273Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-invisible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ a(o, { ...s, svg: l });\ni.displayName = \"IconPasswordInvisible\";\nexport {\n i as IconPasswordInvisible\n};\n//# sourceMappingURL=password-invisible.es.js.map\n","import { jsx as o } from \"react/jsx-runtime\";\nimport { I as a } from \"../icon-DNHpBTHs.mjs\";\nconst e = {\n name: \"password-visible\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.107 12a15.294 15.294 0 0 0 3.12 3.02C7.866 16.203 9.85 17.1 12 17.1c2.149 0 4.134-.897 5.774-2.08a15.295 15.295 0 0 0 3.12-3.02 15.3 15.3 0 0 0-3.12-3.02C16.134 7.797 14.148 6.9 12 6.9c-2.149 0-4.134.897-5.774 2.08A15.299 15.299 0 0 0 3.106 12Zm2.067-4.48C7 6.203 9.349 5.1 12 5.1c2.652 0 5 1.103 6.826 2.42 1.827 1.317 3.2 2.897 3.923 3.98l.333.5-.333.5c-.722 1.083-2.096 2.663-3.923 3.98C17 17.797 14.651 18.9 12 18.9s-5-1.103-6.826-2.42c-1.827-1.317-3.2-2.897-3.923-3.98L.918 12l.333-.5c.722-1.083 2.096-2.663 3.923-3.98ZM12 8.9a3.1 3.1 0 1 0 0 6.2 3.1 3.1 0 0 0 0-6.2ZM7.1 12a4.9 4.9 0 1 1 9.8 0 4.9 4.9 0 0 1-9.8 0Zm4-1.538a.9.9 0 0 1 .9-.9A2.438 2.438 0 0 1 14.438 12a.9.9 0 0 1-1.8 0 .638.638 0 0 0-.638-.638.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"password-visible\"],\n category: \"action\"\n}, i = (s) => /* @__PURE__ */ o(a, { ...s, svg: e });\ni.displayName = \"IconPasswordVisible\";\nexport {\n i as IconPasswordVisible\n};\n//# sourceMappingURL=password-visible.es.js.map\n","export const PASSWORD_STRENGTH = {\n WEAK: \"weak\",\n MEDIUM: \"medium\",\n STRONG: \"strong\",\n} as const;\n\nexport const FIELD_TYPE = {\n PASSWORD: \"password\",\n TEXT: \"text\",\n} as const;\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength-indicator.module.scss\";\nimport type { PasswordStrengthValue } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthIndicatorProps = Omit<BaseProps, \"children\"> & {\n active: boolean;\n passwordStrength?: PasswordStrengthValue;\n};\n\nconst rootClassName = \"purpur-password-strength-indicator\";\n\nexport const PasswordStrengthIndicator = forwardRef<HTMLDivElement, PasswordStrengthIndicatorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength-indicator\",\n active,\n className,\n passwordStrength,\n ...props\n },\n ref\n ) => {\n const classes = cx(\n className,\n rootClassName,\n { [`${rootClassName}--${passwordStrength}`]: passwordStrength },\n { [`${rootClassName}--active`]: active }\n );\n\n return <div {...props} data-testid={dataTestId} className={classes} ref={ref} />;\n }\n);\n\nPasswordStrengthIndicator.displayName = \"PasswordStrengthIndicator\";\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { PASSWORD_STRENGTH } from \"./constants\";\nimport {\n type PasswordScore,\n type PasswordStrengthMapValue,\n type PasswordStrengthValue,\n} from \"./types\";\n\ntype UsePasswordStrengthHook = {\n score: number;\n passwordStrength: PasswordStrengthValue | undefined;\n currentPasswordStrengthText: string | undefined;\n};\n\nexport const usePasswordStrength = (\n password: string,\n weakText: string,\n mediumText: string,\n strongText: string\n): UsePasswordStrengthHook => {\n const [score, setScore] = useState<PasswordScore>(0);\n const [passwordStrength, setPasswordStrength] = useState<PasswordStrengthValue | undefined>();\n const [currentPasswordStrengthText, setCurrentPasswordStrengthText] = useState<\n string | undefined\n >(undefined);\n\n const passwordStrengthMap: Record<PasswordScore, PasswordStrengthMapValue> = useMemo(\n () => ({\n 0: [PASSWORD_STRENGTH.WEAK, weakText],\n 1: [PASSWORD_STRENGTH.WEAK, weakText],\n 2: [PASSWORD_STRENGTH.MEDIUM, mediumText],\n 3: [PASSWORD_STRENGTH.STRONG, strongText],\n 4: [PASSWORD_STRENGTH.STRONG, strongText],\n }),\n [weakText, mediumText, strongText]\n );\n\n useEffect(() => {\n (async () => {\n if (!password) {\n setScore(0);\n setPasswordStrength(undefined);\n setCurrentPasswordStrengthText(undefined);\n } else {\n const { default: zxcvbn } = await import(\"zxcvbn\");\n const { score } = zxcvbn(password);\n const [passwordStrength, passwordStrengthText] = passwordStrengthMap[score];\n setScore(score);\n setPasswordStrength(passwordStrength);\n setCurrentPasswordStrengthText(passwordStrengthText);\n }\n })();\n }, [password, passwordStrengthMap]);\n\n return {\n score,\n passwordStrength,\n currentPasswordStrengthText,\n };\n};\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./password-strength.module.scss\";\nimport { PasswordStrengthIndicator } from \"./password-strength-indicator\";\nimport { usePasswordStrength } from \"./use-password-strength\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordStrengthProps = Omit<BaseProps, \"children\"> & {\n value: string;\n label: string;\n weakText: string;\n mediumText: string;\n strongText: string;\n};\n\nconst rootClassName = \"purpur-password-strength\";\n\nexport const PasswordStrength = forwardRef<HTMLDivElement, PasswordStrengthProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-strength\",\n className,\n value,\n label,\n weakText,\n mediumText,\n strongText,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const { score, passwordStrength, currentPasswordStrengthText } = usePasswordStrength(\n value,\n weakText,\n mediumText,\n strongText\n );\n\n return (\n <div data-testid={dataTestId} className={classes} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__indicator-container`)}>\n <PasswordStrengthIndicator\n active={!!passwordStrength}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 1}\n passwordStrength={passwordStrength}\n />\n <PasswordStrengthIndicator\n active={!!passwordStrength && score > 2}\n passwordStrength={passwordStrength}\n />\n </div>\n <Paragraph\n aria-live=\"polite\"\n data-testid={`${dataTestId}-text`}\n className={cx(`${rootClassName}__password-strength-text`, {\n [`${rootClassName}__password-strength-text--${passwordStrength}`]: passwordStrength,\n })}\n >\n <span className={cx(`${rootClassName}__password-strength-label`)}>\n {label}\n {currentPasswordStrengthText ? \": \" : \"\"}\n </span>\n {currentPasswordStrengthText}\n </Paragraph>\n </div>\n );\n }\n);\n\nPasswordStrength.displayName = \"PasswordStrength\";\n","import React, {\n type ChangeEvent,\n forwardRef,\n isValidElement,\n type ReactElement,\n type ReactNode,\n type ReactPortal,\n useState,\n} from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconPasswordInvisible } from \"@purpur/icon/password-invisible\";\nimport { IconPasswordVisible } from \"@purpur/icon/password-visible\";\nimport { TextField, type TextFieldProps } from \"@purpur/text-field\";\nimport c from \"classnames/bind\";\n\nimport { FIELD_TYPE } from \"./constants\";\nimport styles from \"./password-field.module.scss\";\nimport { PasswordStrength } from \"./password-strength\";\nimport { type FieldType } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PasswordFieldDefaultProps = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n showPasswordAriaLabel: string;\n hidePasswordAriaLabel: string;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n};\n\ntype TextFieldClearProps =\n | {\n clearButtonAriaLabel: string;\n onClear: () => void;\n }\n | {\n clearButtonAriaLabel?: never;\n onClear?: never;\n };\n\nexport type PasswordFieldProps = PasswordFieldDefaultProps &\n Omit<TextFieldProps, \"startAdornment\" | \"endAdornment\" | \"afterField\" | \"type\" | \"onChange\"> &\n TextFieldClearProps;\n\nconst rootClassName = \"purpur-password-field\";\n\ntype PasswordFieldCmp<P> = React.ForwardRefExoticComponent<\n P & React.RefAttributes<HTMLInputElement>\n> & {\n PasswordStrength: typeof PasswordStrength;\n};\n\nexport const PasswordField = forwardRef<HTMLInputElement, PasswordFieldProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"password-field\",\n children,\n className,\n hidePasswordAriaLabel,\n onChange,\n showPasswordAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [type, setType] = useState<FieldType>(FIELD_TYPE.PASSWORD);\n\n const handleChange = async (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n };\n\n const handleVisibilityChange = () => {\n setType(type === FIELD_TYPE.PASSWORD ? FIELD_TYPE.TEXT : FIELD_TYPE.PASSWORD);\n };\n\n const IconComponent =\n type === FIELD_TYPE.PASSWORD ? IconPasswordVisible : IconPasswordInvisible;\n\n return (\n <div className={classes}>\n <TextField\n className={cx(`${rootClassName}__text-field`)}\n data-testid={dataTestId}\n onChange={handleChange}\n ref={ref}\n type={type}\n endAdornment={\n <Button\n aria-label={\n type === FIELD_TYPE.PASSWORD ? showPasswordAriaLabel : hidePasswordAriaLabel\n }\n aria-pressed={type === FIELD_TYPE.TEXT}\n data-testid={`${dataTestId}-type-toggle-button`}\n onClick={handleVisibilityChange}\n size=\"sm\"\n variant=\"text\"\n iconOnly\n >\n <IconComponent size=\"sm\" />\n </Button>\n }\n {...props}\n />\n {children}\n </div>\n );\n }\n) as PasswordFieldCmp<PasswordFieldProps>;\n\nPasswordField.PasswordStrength = PasswordStrength;\n\nPasswordField.displayName = \"PasswordField\";\n\nexport const isPasswordStrength = (\n child:\n | ReactElement\n | Iterable<ReactNode>\n | ReactPortal\n | string\n | number\n | boolean\n | null\n | undefined\n): child is ReactElement<PasswordFieldProps> =>\n isValidElement<PasswordFieldProps>(child) && child?.type === PasswordStrength;\n"],"names":["l","i","a","o","e","PASSWORD_STRENGTH","FIELD_TYPE","cx","c","styles","rootClassName","PasswordStrengthIndicator","forwardRef","dataTestId","active","className","passwordStrength","props","ref","classes","jsx","usePasswordStrength","password","weakText","mediumText","strongText","score","setScore","useState","setPasswordStrength","currentPasswordStrengthText","setCurrentPasswordStrengthText","passwordStrengthMap","useMemo","useEffect","zxcvbn","n","passwordStrengthText","PasswordStrength","value","label","jsxs","Paragraph","PasswordField","children","hidePasswordAriaLabel","onChange","showPasswordAriaLabel","type","setType","handleChange","event","handleVisibilityChange","IconComponent","IconPasswordVisible","IconPasswordInvisible","TextField","Button","isPasswordStrength","child","isValidElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./password-field-BjKdBoIK.js");exports.PasswordField=s.PasswordField;exports.isPasswordStrength=s.isPasswordStrength;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./password-field-lKyWHjQS.js");exports.PasswordField=s.PasswordField;exports.isPasswordStrength=s.isPasswordStrength;
2
2
  //# sourceMappingURL=password-field.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { P as a, i as o } from "./password-field-C_E4563x.mjs";
1
+ import { P as a, i as o } from "./password-field-Cy_E-D_G.mjs";
2
2
  export {
3
3
  a as PasswordField,
4
4
  o as isPasswordStrength