boreal-ui 0.0.1 → 0.0.9

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 (311) hide show
  1. package/LICENSE +9 -0
  2. package/dist/core/Accordion-DOhvj3Ty.js.map +1 -1
  3. package/dist/core/Accordion-DQsSUVAE.cjs.map +1 -1
  4. package/dist/core/ArrowRightIcon-BYQv5XS8.js.map +1 -1
  5. package/dist/core/ArrowRightIcon-ClXQHGAD.cjs.map +1 -1
  6. package/dist/core/Avatar-B5aqfDZX.cjs.map +1 -1
  7. package/dist/core/Avatar-mhtrG5FT.js.map +1 -1
  8. package/dist/core/Badge-DfsFGYhY.js.map +1 -1
  9. package/dist/core/Badge-LyKc0uJG.cjs.map +1 -1
  10. package/dist/core/Breadcrumbs-DhioJUB9.js.map +1 -1
  11. package/dist/core/Breadcrumbs-xmUgcTXF.cjs.map +1 -1
  12. package/dist/core/Button-DEYbr8xW.js.map +1 -1
  13. package/dist/core/Button-wz_We8xU.cjs.map +1 -1
  14. package/dist/core/Card-DCxLBwi0.cjs.map +1 -1
  15. package/dist/core/Card-DKPk0zgQ.js.map +1 -1
  16. package/dist/core/Checkbox-BLBbE9Ww.js.map +1 -1
  17. package/dist/core/Checkbox-fVnseKGF.cjs.map +1 -1
  18. package/dist/core/Chip-7R6wAufO.js.map +1 -1
  19. package/dist/core/Chip-CNn0UvOB.cjs.map +1 -1
  20. package/dist/core/CircularProgress-B-N4px22.cjs.map +1 -1
  21. package/dist/core/CircularProgress-ClCxzsSz.js.map +1 -1
  22. package/dist/core/CloseIcon-C3eQm4EK.js.map +1 -1
  23. package/dist/core/CloseIcon-DSnN6ggf.cjs.map +1 -1
  24. package/dist/core/ColorPicker-BQiTjeqQ.js.map +1 -1
  25. package/dist/core/ColorPicker-DR9huYqs.cjs.map +1 -1
  26. package/dist/core/CommandPalette-CHOC0Z2m.js.map +1 -1
  27. package/dist/core/CommandPalette-XTi50U_E.cjs.map +1 -1
  28. package/dist/core/DataTable-DQU1WxPr.js.map +1 -1
  29. package/dist/core/DataTable-DZeVQIC0.cjs.map +1 -1
  30. package/dist/core/DateTimePicker-BtITiL_E.cjs.map +1 -1
  31. package/dist/core/DateTimePicker-O8khtyOu.js.map +1 -1
  32. package/dist/core/Divider-An2VsXog.js.map +1 -1
  33. package/dist/core/Divider-TtfSFBcp.cjs.map +1 -1
  34. package/dist/core/Dropdown-CL7TH2lJ.js.map +1 -1
  35. package/dist/core/Dropdown-CPsxvzTA.cjs.map +1 -1
  36. package/dist/core/EmptyState-BAaCfJzO.cjs.map +1 -1
  37. package/dist/core/EmptyState-Bd-es_rG.js.map +1 -1
  38. package/dist/core/FileUpload-Dv2cvYI2.cjs.map +1 -1
  39. package/dist/core/FileUpload-DxjQ2wnn.js.map +1 -1
  40. package/dist/core/Footer-B4Owy88y.cjs.map +1 -1
  41. package/dist/core/Footer-bKgKgU6L.js.map +1 -1
  42. package/dist/core/FormGroup-BXWYrYOK.cjs.map +1 -1
  43. package/dist/core/FormGroup-DS2tW-lC.js.map +1 -1
  44. package/dist/core/IconButton-B6cAP2hY.js.map +1 -1
  45. package/dist/core/IconButton-BxUXK-xn.cjs.map +1 -1
  46. package/dist/core/MarkdownRenderer-CQVfqnxf.js.map +1 -1
  47. package/dist/core/MarkdownRenderer-taVkZLE9.cjs.map +1 -1
  48. package/dist/core/MessagePopup-By89AGqE.js.map +1 -1
  49. package/dist/core/MessagePopup-OA1gjb8E.cjs.map +1 -1
  50. package/dist/core/MetricBox-D5Dl19d2.js.map +1 -1
  51. package/dist/core/MetricBox-DjE-rdp0.cjs.map +1 -1
  52. package/dist/core/Modal-BhQJOhWV.js.map +1 -1
  53. package/dist/core/Modal-CI2snbvk.cjs.map +1 -1
  54. package/dist/core/NavBar-BAHSDPtT.js.map +1 -1
  55. package/dist/core/NavBar-C5UMiYpA.cjs.map +1 -1
  56. package/dist/core/NotificationCenter-Bp7AqnTg.js.map +1 -1
  57. package/dist/core/NotificationCenter-DxaqoUD1.cjs.map +1 -1
  58. package/dist/core/Pager-2jW3cxx_.js.map +1 -1
  59. package/dist/core/Pager-ByVG_at-.cjs.map +1 -1
  60. package/dist/core/PopOver-DNqWcWjU.js.map +1 -1
  61. package/dist/core/PopOver-OijKNHZU.cjs.map +1 -1
  62. package/dist/core/ProgressBar-CuIHF5N0.js.map +1 -1
  63. package/dist/core/ProgressBar-PiSFvLwa.cjs.map +1 -1
  64. package/dist/core/RadioButton-DP8HSNZD.cjs.map +1 -1
  65. package/dist/core/RadioButton-DTPBlw1t.js.map +1 -1
  66. package/dist/core/Rating-Jx3DBFOd.cjs.map +1 -1
  67. package/dist/core/Rating-QF5O1MFS.js.map +1 -1
  68. package/dist/core/STT-D6L-amjZ.cjs.map +1 -1
  69. package/dist/core/STT-aXWWubSC.js.map +1 -1
  70. package/dist/core/Select-9F6p9ghR.cjs.map +1 -1
  71. package/dist/core/Select-C4a_4B87.js.map +1 -1
  72. package/dist/core/Skeleton-BniIVZmx.js.map +1 -1
  73. package/dist/core/Skeleton-CeMwLgnq.cjs.map +1 -1
  74. package/dist/core/Slider-DZycGDIY.cjs.map +1 -1
  75. package/dist/core/Slider-QEwgd0le.js.map +1 -1
  76. package/dist/core/Spinner-BTmQ7ZN9.cjs.map +1 -1
  77. package/dist/core/Spinner-DGF0pR7I.js.map +1 -1
  78. package/dist/core/Stepper-BkmPckKd.cjs.map +1 -1
  79. package/dist/core/Stepper-PjUFCUBG.js.map +1 -1
  80. package/dist/core/Tabs-DptKFvPK.cjs.map +1 -1
  81. package/dist/core/Tabs-gpyaJFUs.js.map +1 -1
  82. package/dist/core/Taginput-BMPHihSz.cjs.map +1 -1
  83. package/dist/core/Taginput-CrScreYL.js.map +1 -1
  84. package/dist/core/TextArea-B88b8dFf.js.map +1 -1
  85. package/dist/core/TextArea-CxJexFDv.cjs.map +1 -1
  86. package/dist/core/TextInput-8AbKEfUH.cjs.map +1 -1
  87. package/dist/core/TextInput-CtI8fsXR.js.map +1 -1
  88. package/dist/core/ThemeContext-Bo0vLczy.js.map +1 -1
  89. package/dist/core/ThemeContext-CtZXUeeU.cjs.map +1 -1
  90. package/dist/core/Timeline-D7fd8-u_.js.map +1 -1
  91. package/dist/core/Timeline-Dk0q-8BZ.cjs.map +1 -1
  92. package/dist/core/Toggle-CZftIdc3.js.map +1 -1
  93. package/dist/core/Toggle-v31rt4Ya.cjs.map +1 -1
  94. package/dist/core/Toolbar-94Pu5-SL.js.map +1 -1
  95. package/dist/core/Toolbar-Cg_ofRqY.cjs.map +1 -1
  96. package/dist/core/Tooltip-5SfsTZvz.cjs.map +1 -1
  97. package/dist/core/Tooltip-XfsZnGgV.js.map +1 -1
  98. package/dist/core/boreal-style-config-BILmxkZG.js.map +1 -1
  99. package/dist/core/boreal-style-config-Rr5d5Qts.cjs.map +1 -1
  100. package/dist/core/capitalize-C0TSQSPh.js.map +1 -1
  101. package/dist/core/capitalize-DoV-nOmN.cjs.map +1 -1
  102. package/dist/core/colorSchemes.cjs.js.map +1 -1
  103. package/dist/core/colorSchemes.js.map +1 -1
  104. package/dist/core/index.cjs.js.map +1 -1
  105. package/dist/core/index.js.map +1 -1
  106. package/dist/core/registerColorSheme-BPX0H7hl.js.map +1 -1
  107. package/dist/core/registerColorSheme-nhYu5hbY.cjs.map +1 -1
  108. package/dist/next/Accordion-BD-HsAos.cjs.map +1 -1
  109. package/dist/next/Accordion-Bu2IAjE6.js.map +1 -1
  110. package/dist/next/ArrowRightIcon-BVb75OpX.cjs.map +1 -1
  111. package/dist/next/ArrowRightIcon-BYQv5XS8.js.map +1 -1
  112. package/dist/next/{Avatar-B0KvtR9U.js → Avatar-B0vflpuy.js} +3 -3
  113. package/dist/next/{Avatar-B0KvtR9U.js.map → Avatar-B0vflpuy.js.map} +1 -1
  114. package/dist/next/{Avatar-s6BrkUFC.cjs → Avatar-DjuHvrMV.cjs} +3 -3
  115. package/dist/next/{Avatar-s6BrkUFC.cjs.map → Avatar-DjuHvrMV.cjs.map} +1 -1
  116. package/dist/next/Avatar.cjs.js +1 -1
  117. package/dist/next/Avatar.js +1 -1
  118. package/dist/next/Badge-CnKwIP4u.cjs.map +1 -1
  119. package/dist/next/Badge-WWxkzKOl.js.map +1 -1
  120. package/dist/next/{Breadcrumbs-DCPl_wHY.cjs → Breadcrumbs-0cJD4s9s.cjs} +3 -3
  121. package/dist/next/{Breadcrumbs-DCPl_wHY.cjs.map → Breadcrumbs-0cJD4s9s.cjs.map} +1 -1
  122. package/dist/next/{Breadcrumbs-BRfPnjv3.js → Breadcrumbs-liNC5ZzY.js} +3 -3
  123. package/dist/next/{Breadcrumbs-BRfPnjv3.js.map → Breadcrumbs-liNC5ZzY.js.map} +1 -1
  124. package/dist/next/Breadcrumbs.cjs.js +1 -1
  125. package/dist/next/Breadcrumbs.js +1 -1
  126. package/dist/next/{Button-BpVwB1WA.js → Button-CbX-VlK_.js} +2 -2
  127. package/dist/next/{Button-BpVwB1WA.js.map → Button-CbX-VlK_.js.map} +1 -1
  128. package/dist/next/{Button-DUh0L7vy.cjs → Button-WSFdkLsa.cjs} +2 -2
  129. package/dist/next/{Button-DUh0L7vy.cjs.map → Button-WSFdkLsa.cjs.map} +1 -1
  130. package/dist/next/Button.cjs.js +1 -1
  131. package/dist/next/Button.js +1 -1
  132. package/dist/next/{Card-BjYztK13.cjs → Card-BCYMEFyT.cjs} +4 -4
  133. package/dist/next/{Card-BjYztK13.cjs.map → Card-BCYMEFyT.cjs.map} +1 -1
  134. package/dist/next/{Card-RBCzxSIj.js → Card-DhdZiqdl.js} +4 -4
  135. package/dist/next/{Card-RBCzxSIj.js.map → Card-DhdZiqdl.js.map} +1 -1
  136. package/dist/next/Card.cjs.js +1 -1
  137. package/dist/next/Card.js +1 -1
  138. package/dist/next/Checkbox-COcqcXOD.cjs.map +1 -1
  139. package/dist/next/Checkbox-kWrAB9F7.js.map +1 -1
  140. package/dist/next/{Chip-BwyYgH0p.cjs → Chip-DJMY0KHl.cjs} +2 -2
  141. package/dist/next/{Chip-BwyYgH0p.cjs.map → Chip-DJMY0KHl.cjs.map} +1 -1
  142. package/dist/next/{Chip-YKbysMqv.js → Chip-DtHYUkJ4.js} +2 -2
  143. package/dist/next/{Chip-YKbysMqv.js.map → Chip-DtHYUkJ4.js.map} +1 -1
  144. package/dist/next/Chip.cjs.js +1 -1
  145. package/dist/next/Chip.js +1 -1
  146. package/dist/next/CircularProgress-CYo_VUG7.js.map +1 -1
  147. package/dist/next/CircularProgress-DXC_JBTG.cjs.map +1 -1
  148. package/dist/next/CloseIcon-7hy4qJ9o.cjs.map +1 -1
  149. package/dist/next/CloseIcon-C3eQm4EK.js.map +1 -1
  150. package/dist/next/ColorPicker-C-klUf3G.cjs.map +1 -1
  151. package/dist/next/ColorPicker-Ub3qNdeF.js.map +1 -1
  152. package/dist/next/{CommandPalette-Dm_njW12.js → CommandPalette-CEZwvLuu.js} +2 -2
  153. package/dist/next/{CommandPalette-Dm_njW12.js.map → CommandPalette-CEZwvLuu.js.map} +1 -1
  154. package/dist/next/{CommandPalette-BAxyNfRu.cjs → CommandPalette-Dp2pT5ot.cjs} +2 -2
  155. package/dist/next/{CommandPalette-BAxyNfRu.cjs.map → CommandPalette-Dp2pT5ot.cjs.map} +1 -1
  156. package/dist/next/CommandPalette.cjs.js +1 -1
  157. package/dist/next/CommandPalette.js +1 -1
  158. package/dist/next/DataTable-9JLEi0CK.cjs.map +1 -1
  159. package/dist/next/DataTable-D5ffcx-L.js.map +1 -1
  160. package/dist/next/DateTimePicker-C2-or1uL.js.map +1 -1
  161. package/dist/next/DateTimePicker-CoTQNBzD.cjs.map +1 -1
  162. package/dist/next/Divider-BlJMteki.cjs.map +1 -1
  163. package/dist/next/Divider-g7VS0Sbx.js.map +1 -1
  164. package/dist/next/{Dropdown-D2p7q140.cjs → Dropdown-BtbLZeZq.cjs} +2 -2
  165. package/dist/next/{Dropdown-D2p7q140.cjs.map → Dropdown-BtbLZeZq.cjs.map} +1 -1
  166. package/dist/next/{Dropdown-D-Jhdu_7.js → Dropdown-DyBmnKrz.js} +2 -2
  167. package/dist/next/{Dropdown-D-Jhdu_7.js.map → Dropdown-DyBmnKrz.js.map} +1 -1
  168. package/dist/next/Dropdown.cjs.js +1 -1
  169. package/dist/next/Dropdown.js +1 -1
  170. package/dist/next/{EmptyState-C6dGNF-O.js → EmptyState-CSEhZvTp.js} +2 -2
  171. package/dist/next/{EmptyState-C6dGNF-O.js.map → EmptyState-CSEhZvTp.js.map} +1 -1
  172. package/dist/next/{EmptyState-CBGawc9S.cjs → EmptyState-DUZQ2Qmn.cjs} +2 -2
  173. package/dist/next/{EmptyState-CBGawc9S.cjs.map → EmptyState-DUZQ2Qmn.cjs.map} +1 -1
  174. package/dist/next/EmptyState.cjs.js +1 -1
  175. package/dist/next/EmptyState.js +1 -1
  176. package/dist/next/{FileUpload-BOSrZhPq.js → FileUpload-CgPHe6Nn.js} +3 -3
  177. package/dist/next/{FileUpload-BOSrZhPq.js.map → FileUpload-CgPHe6Nn.js.map} +1 -1
  178. package/dist/next/{FileUpload-D65wKrsD.cjs → FileUpload-jh5iTgY-.cjs} +3 -3
  179. package/dist/next/{FileUpload-D65wKrsD.cjs.map → FileUpload-jh5iTgY-.cjs.map} +1 -1
  180. package/dist/next/FileUpload.cjs.js +1 -1
  181. package/dist/next/FileUpload.js +1 -1
  182. package/dist/next/{Footer-CdCqa4Pz.js → Footer-CQAWg2tl.js} +4 -4
  183. package/dist/next/{Footer-CdCqa4Pz.js.map → Footer-CQAWg2tl.js.map} +1 -1
  184. package/dist/next/{Footer-J5Q_SSa-.cjs → Footer-D2veQTa-.cjs} +4 -4
  185. package/dist/next/{Footer-J5Q_SSa-.cjs.map → Footer-D2veQTa-.cjs.map} +1 -1
  186. package/dist/next/Footer.cjs.js +1 -1
  187. package/dist/next/Footer.js +1 -1
  188. package/dist/next/FormGroup-BAtifQGH.cjs.map +1 -1
  189. package/dist/next/FormGroup-DuBfLAMv.js.map +1 -1
  190. package/dist/next/{IconButton-mY_E1gsn.cjs → IconButton-CNzF48hu.cjs} +2 -2
  191. package/dist/next/{IconButton-mY_E1gsn.cjs.map → IconButton-CNzF48hu.cjs.map} +1 -1
  192. package/dist/next/{IconButton-EbX_9a0k.js → IconButton-DFrFh0kg.js} +2 -2
  193. package/dist/next/{IconButton-EbX_9a0k.js.map → IconButton-DFrFh0kg.js.map} +1 -1
  194. package/dist/next/IconButton.cjs.js +1 -1
  195. package/dist/next/IconButton.js +1 -1
  196. package/dist/next/MarkdownRenderer-B-WThNR7.cjs.map +1 -1
  197. package/dist/next/MarkdownRenderer-CxJOetSp.js.map +1 -1
  198. package/dist/next/MessagePopUp.cjs.js +1 -1
  199. package/dist/next/MessagePopUp.js +1 -1
  200. package/dist/next/{MessagePopup-DuXLVt2z.cjs → MessagePopup-C-7N3vB0.cjs} +3 -3
  201. package/dist/next/{MessagePopup-DuXLVt2z.cjs.map → MessagePopup-C-7N3vB0.cjs.map} +1 -1
  202. package/dist/next/{MessagePopup-BL_Tp51e.js → MessagePopup-ClfrvxKq.js} +3 -3
  203. package/dist/next/{MessagePopup-BL_Tp51e.js.map → MessagePopup-ClfrvxKq.js.map} +1 -1
  204. package/dist/next/MetricBox-Dtkrwrtw.cjs.map +1 -1
  205. package/dist/next/MetricBox-rxFYolH_.js.map +1 -1
  206. package/dist/next/{Modal-DkAYQaOH.js → Modal-BZvTcgoM.js} +2 -2
  207. package/dist/next/{Modal-DkAYQaOH.js.map → Modal-BZvTcgoM.js.map} +1 -1
  208. package/dist/next/{Modal-Cr3uE4Wi.cjs → Modal-Bf7egMf2.cjs} +2 -2
  209. package/dist/next/{Modal-Cr3uE4Wi.cjs.map → Modal-Bf7egMf2.cjs.map} +1 -1
  210. package/dist/next/Modal.cjs.js +1 -1
  211. package/dist/next/Modal.js +1 -1
  212. package/dist/next/{NavBar-CyInu_3I.cjs → NavBar-CZtNDAdX.cjs} +103 -87
  213. package/dist/next/NavBar-CZtNDAdX.cjs.map +1 -0
  214. package/dist/next/{NavBar-CsrYdWSV.js → NavBar-DzRWv8W0.js} +103 -87
  215. package/dist/next/NavBar-DzRWv8W0.js.map +1 -0
  216. package/dist/next/NavBar.cjs.js +1 -1
  217. package/dist/next/NavBar.js +1 -1
  218. package/dist/next/{NotificationCenter-BGc41ims.js → NotificationCenter-BCXpVjHd.js} +3 -3
  219. package/dist/next/{NotificationCenter-BGc41ims.js.map → NotificationCenter-BCXpVjHd.js.map} +1 -1
  220. package/dist/next/{NotificationCenter-BTcM5bCY.cjs → NotificationCenter-DmcHIkOp.cjs} +3 -3
  221. package/dist/next/{NotificationCenter-BTcM5bCY.cjs.map → NotificationCenter-DmcHIkOp.cjs.map} +1 -1
  222. package/dist/next/NotificationCenter.cjs.js +1 -1
  223. package/dist/next/NotificationCenter.js +1 -1
  224. package/dist/next/{Pager-CRAgN3LJ.cjs → Pager-B81ecC4j.cjs} +3 -3
  225. package/dist/next/{Pager-CRAgN3LJ.cjs.map → Pager-B81ecC4j.cjs.map} +1 -1
  226. package/dist/next/{Pager-0B36P0k1.js → Pager-BqShs8_d.js} +3 -3
  227. package/dist/next/{Pager-0B36P0k1.js.map → Pager-BqShs8_d.js.map} +1 -1
  228. package/dist/next/Pager.cjs.js +1 -1
  229. package/dist/next/Pager.js +1 -1
  230. package/dist/next/PopOver-CHs0s9rp.cjs.map +1 -1
  231. package/dist/next/PopOver-pllmYvp6.js.map +1 -1
  232. package/dist/next/ProgressBar-Cvf0uNKW.cjs.map +1 -1
  233. package/dist/next/ProgressBar-D_fi1WW3.js.map +1 -1
  234. package/dist/next/RadioButton-BKS65jm9.js.map +1 -1
  235. package/dist/next/RadioButton-cXdUfJD2.cjs.map +1 -1
  236. package/dist/next/Rating-BjN0Sj0r.cjs.map +1 -1
  237. package/dist/next/Rating-Bs7oCe4w.js.map +1 -1
  238. package/dist/next/STT-Br81yPXp.js.map +1 -1
  239. package/dist/next/STT-C0q3yqiJ.cjs.map +1 -1
  240. package/dist/next/Select-DwWTQcCU.js.map +1 -1
  241. package/dist/next/Select-_f1aZuKO.cjs.map +1 -1
  242. package/dist/next/Skeleton-BWBHgsOM.js.map +1 -1
  243. package/dist/next/Skeleton-CMuXs5GO.cjs.map +1 -1
  244. package/dist/next/Slider-B5BJJyaD.js.map +1 -1
  245. package/dist/next/Slider-DbxNKdGq.cjs.map +1 -1
  246. package/dist/next/Spinner-BxvU43sx.js.map +1 -1
  247. package/dist/next/Spinner-Doh4Uft1.cjs.map +1 -1
  248. package/dist/next/{Stepper-DGbO-fUh.js → Stepper-5FojeYPE.js} +2 -2
  249. package/dist/next/{Stepper-DGbO-fUh.js.map → Stepper-5FojeYPE.js.map} +1 -1
  250. package/dist/next/{Stepper-CQaWoBJ2.cjs → Stepper-D2UYDRwT.cjs} +2 -2
  251. package/dist/next/{Stepper-CQaWoBJ2.cjs.map → Stepper-D2UYDRwT.cjs.map} +1 -1
  252. package/dist/next/Stepper.cjs.js +1 -1
  253. package/dist/next/Stepper.js +1 -1
  254. package/dist/next/Tabs-CNU0A_YY.js.map +1 -1
  255. package/dist/next/Tabs-DuZPFjen.cjs.map +1 -1
  256. package/dist/next/TagInput.cjs.js +1 -1
  257. package/dist/next/TagInput.js +1 -1
  258. package/dist/next/{Taginput-DAZs0PlQ.cjs → Taginput-BcNgwFOj.cjs} +3 -3
  259. package/dist/next/{Taginput-DAZs0PlQ.cjs.map → Taginput-BcNgwFOj.cjs.map} +1 -1
  260. package/dist/next/{Taginput-Bppb5ahN.js → Taginput-CdYMgcYY.js} +3 -3
  261. package/dist/next/{Taginput-Bppb5ahN.js.map → Taginput-CdYMgcYY.js.map} +1 -1
  262. package/dist/next/TextArea-CRo_5ZL_.cjs.map +1 -1
  263. package/dist/next/TextArea-W9ekr3ij.js.map +1 -1
  264. package/dist/next/{TextInput-DLROLZ7j.js → TextInput-DkNxrV4X.js} +2 -2
  265. package/dist/next/{TextInput-DLROLZ7j.js.map → TextInput-DkNxrV4X.js.map} +1 -1
  266. package/dist/next/{TextInput-D2cpcHhQ.cjs → TextInput-iQT-2lPj.cjs} +2 -2
  267. package/dist/next/{TextInput-D2cpcHhQ.cjs.map → TextInput-iQT-2lPj.cjs.map} +1 -1
  268. package/dist/next/TextInput.cjs.js +1 -1
  269. package/dist/next/TextInput.js +1 -1
  270. package/dist/next/ThemeContext-BNR3_OIq.cjs.map +1 -1
  271. package/dist/next/ThemeContext-Bo0vLczy.js.map +1 -1
  272. package/dist/next/Timeline-36_Qy1-m.cjs.map +1 -1
  273. package/dist/next/Timeline-EnwGQ4Mi.js.map +1 -1
  274. package/dist/next/Toggle-CU7I_vjc.cjs.map +1 -1
  275. package/dist/next/Toggle-R5pWM7gk.js.map +1 -1
  276. package/dist/next/{Toolbar-vNJ46DTU.js → Toolbar-B8AB6ADW.js} +2 -2
  277. package/dist/next/{Toolbar-vNJ46DTU.js.map → Toolbar-B8AB6ADW.js.map} +1 -1
  278. package/dist/next/{Toolbar-D05Q3wYG.cjs → Toolbar-BIruaq82.cjs} +2 -2
  279. package/dist/next/{Toolbar-D05Q3wYG.cjs.map → Toolbar-BIruaq82.cjs.map} +1 -1
  280. package/dist/next/Toolbar.cjs.js +1 -1
  281. package/dist/next/Toolbar.js +1 -1
  282. package/dist/next/Tooltip-DHhLeygn.cjs.map +1 -1
  283. package/dist/next/Tooltip-G3P0OyTP.js.map +1 -1
  284. package/dist/next/boreal-style-config-BILmxkZG.js.map +1 -1
  285. package/dist/next/boreal-style-config-Rr5d5Qts.cjs.map +1 -1
  286. package/dist/next/capitalize-C0TSQSPh.js.map +1 -1
  287. package/dist/next/capitalize-DoV-nOmN.cjs.map +1 -1
  288. package/dist/next/colorSchemes.cjs.js.map +1 -1
  289. package/dist/next/colorSchemes.js.map +1 -1
  290. package/dist/next/{image-Cs0ZR1Aj.js → image-CEz9QtOW.js} +3 -22
  291. package/dist/next/image-CEz9QtOW.js.map +1 -0
  292. package/dist/next/{image-C5jTmHeD.cjs → image-VX9Ty9NQ.cjs} +3 -22
  293. package/dist/next/image-VX9Ty9NQ.cjs.map +1 -0
  294. package/dist/next/index.cjs.js +20 -20
  295. package/dist/next/index.cjs.js.map +1 -1
  296. package/dist/next/index.js +21 -21
  297. package/dist/next/index.js.map +1 -1
  298. package/dist/next/{link-CX77u6b-.js → link-Bik5xH00.js} +15 -3
  299. package/dist/next/link-Bik5xH00.js.map +1 -0
  300. package/dist/next/{link-B8xgzNiC.cjs → link-hxAaLm0Q.cjs} +15 -3
  301. package/dist/next/link-hxAaLm0Q.cjs.map +1 -0
  302. package/dist/next/registerColorSheme-BPX0H7hl.js.map +1 -1
  303. package/dist/next/registerColorSheme-nhYu5hbY.cjs.map +1 -1
  304. package/dist/tsconfig.build.tsbuildinfo +1 -1
  305. package/package.json +3 -2
  306. package/dist/next/NavBar-CsrYdWSV.js.map +0 -1
  307. package/dist/next/NavBar-CyInu_3I.cjs.map +0 -1
  308. package/dist/next/image-C5jTmHeD.cjs.map +0 -1
  309. package/dist/next/image-Cs0ZR1Aj.js.map +0 -1
  310. package/dist/next/link-B8xgzNiC.cjs.map +0 -1
  311. package/dist/next/link-CX77u6b-.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2025 Davin Chiupka
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion-DOhvj3Ty.js","sources":["../../src/components/Accordion/AccordionBase.tsx","../../src/components/Accordion/core/Accordion.tsx"],"sourcesContent":["import React, { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { AccordionProps } from \"./Accordion.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface AccordionBaseProps extends AccordionProps {\r\n getUniqueId: () => string;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AccordionBase: React.FC<AccordionBaseProps> = ({\r\n title,\r\n id,\r\n children,\r\n lazyLoad = false,\r\n iconPosition = \"right\",\r\n isToggleable = true,\r\n asyncContent = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n description,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n expanded,\r\n disabled,\r\n customCollapsedIcon,\r\n customExpandedIcon,\r\n onToggle,\r\n initiallyExpanded = false,\r\n className = \"\",\r\n getUniqueId,\r\n classMap,\r\n \"data-testid\": testId,\r\n ...rest\r\n}) => {\r\n const isControlled = expanded !== undefined;\r\n const internalId = useMemo(getUniqueId, []);\r\n const [internalExpanded, setInternalExpanded] = useState(initiallyExpanded);\r\n const [hasBeenExpanded, setHasBeenExpanded] = useState(initiallyExpanded);\r\n const [isLoading, setIsLoading] = useState(asyncContent && initiallyExpanded);\r\n const isExpanded = isControlled ? expanded : internalExpanded;\r\n\r\n const contentId = `${id || internalId}-content`;\r\n const buttonId = `${id || internalId}-button`;\r\n const descId = description ? `${id || internalId}-desc` : undefined;\r\n\r\n const toggleAccordion = () => {\r\n if (disabled) return;\r\n if (!isToggleable && isExpanded) return;\r\n isControlled ? onToggle?.(!expanded) : setInternalExpanded((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleAccordion();\r\n }\r\n };\r\n\r\n useMemo(() => {\r\n if (isExpanded && !hasBeenExpanded) {\r\n setHasBeenExpanded(true);\r\n }\r\n }, [isExpanded]);\r\n\r\n useMemo(() => {\r\n if (asyncContent && isExpanded && isLoading) {\r\n const timer = setTimeout(() => {\r\n setIsLoading(false);\r\n }, 1000);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n }, [asyncContent, isExpanded, isLoading]);\r\n\r\n const renderedIcon = isExpanded\r\n ? (customExpandedIcon ?? \"−\")\r\n : (customCollapsedIcon ?? \"+\");\r\n\r\n const wrapperClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.accordion,\r\n classMap[size],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded,\r\n className\r\n ),\r\n [classMap, size, disabled, isExpanded, className]\r\n );\r\n\r\n const headerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.header,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded\r\n ),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const contentClassName = useMemo(\r\n () => combineClassNames(classMap.content, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const iconClassName = useMemo(\r\n () => combineClassNames(classMap.icon, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n return (\r\n <div {...rest} className={wrapperClassName}>\r\n <button\r\n id={buttonId}\r\n className={headerClassName}\r\n onClick={toggleAccordion}\r\n onKeyDown={handleKeyDown}\r\n type=\"button\"\r\n aria-expanded={isExpanded}\r\n aria-controls={contentId}\r\n aria-disabled={disabled}\r\n aria-describedby={descId}\r\n tabIndex={disabled ? -1 : 0}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-accordion-toggle` : undefined}\r\n >\r\n {iconPosition === \"left\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n <span\r\n className={classMap.accordionTitle}\r\n data-testid={testId ? `${testId}-title` : undefined}\r\n >\r\n {title}\r\n </span>\r\n {iconPosition === \"right\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n </button>\r\n\r\n {description && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={testId ? `${testId}-description` : undefined}\r\n >\r\n {description}\r\n </span>\r\n )}\r\n\r\n <div\r\n id={contentId}\r\n role=\"region\"\r\n aria-labelledby={buttonId}\r\n className={contentClassName}\r\n data-state={isExpanded ? \"open\" : \"collapsed\"}\r\n data-testid={testId ? `${testId}-content` : undefined}\r\n >\r\n {isExpanded && asyncContent && isLoading && (\r\n <div className={classMap.loading}>Loading...</div>\r\n )}\r\n {(!lazyLoad || hasBeenExpanded) &&\r\n (!asyncContent || !isLoading) &&\r\n children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nAccordionBase.displayName = \"AccordionBase\";\r\n","import React from \"react\";\r\nimport \"./Accordion.scss\";\r\nimport { AccordionBase } from \"../AccordionBase\";\r\nimport type { AccordionProps } from \"../Accordion.types\";\r\n\r\nconst classes = {\r\n accordion: \"accordion\",\r\n header: \"accordion_header\",\r\n content: \"accordion_content\",\r\n icon: \"accordion_icon\",\r\n title: \"accordion_title\",\r\n\r\n shadowNone: \"accordion_shadow-None\",\r\n shadowLight: \"accordion_shadow-Light\",\r\n shadowMedium: \"accordion_shadow-Medium\",\r\n shadowStrong: \"accordion_shadow-Strong\",\r\n shadowIntense: \"accordion_shadow-Intense\",\r\n\r\n roundNone: \"accordion_round-None\",\r\n roundSmall: \"accordion_round-Small\",\r\n roundMedium: \"accordion_round-Medium\",\r\n roundLarge: \"accordion_round-Large\",\r\n\r\n disabled: \"accordion_disabled\",\r\n expanded: \"accordion_expanded\",\r\n\r\n primary: \"accordion_primary\",\r\n secondary: \"accordion_secondary\",\r\n\r\n tertiary: \"accordion_tertiary\",\r\n quaternary: \"accordion_quaternary\",\r\n\r\n success: \"accordion_success\",\r\n error: \"accordion_error\",\r\n warning: \"accordion_warning\",\r\n clear: \"accordion_clear\",\r\n outline: \"accordion_outline\",\r\n\r\n xs: \"accordion_xs\",\r\n small: \"accordion_small\",\r\n medium: \"accordion_medium\",\r\n large: \"accordion_large\",\r\n xl: \"accordion_xl\",\r\n};\r\n\r\nconst generateUniqueId = (() => {\r\n let counter = 0;\r\n return () => `accordion-core-${counter++}`;\r\n})();\r\n\r\nconst Accordion: React.FC<AccordionProps> = (props) => (\r\n <AccordionBase {...props} getUniqueId={generateUniqueId} classMap={classes} />\r\n);\r\n\r\nexport default Accordion;\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Accordion-DOhvj3Ty.js","sources":["../../src/components/Accordion/AccordionBase.tsx","../../src/components/Accordion/core/Accordion.tsx"],"sourcesContent":["import React, { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { AccordionProps } from \"./Accordion.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface AccordionBaseProps extends AccordionProps {\r\n getUniqueId: () => string;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AccordionBase: React.FC<AccordionBaseProps> = ({\r\n title,\r\n id,\r\n children,\r\n lazyLoad = false,\r\n iconPosition = \"right\",\r\n isToggleable = true,\r\n asyncContent = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n description,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n expanded,\r\n disabled,\r\n customCollapsedIcon,\r\n customExpandedIcon,\r\n onToggle,\r\n initiallyExpanded = false,\r\n className = \"\",\r\n getUniqueId,\r\n classMap,\r\n \"data-testid\": testId,\r\n ...rest\r\n}) => {\r\n const isControlled = expanded !== undefined;\r\n const internalId = useMemo(getUniqueId, []);\r\n const [internalExpanded, setInternalExpanded] = useState(initiallyExpanded);\r\n const [hasBeenExpanded, setHasBeenExpanded] = useState(initiallyExpanded);\r\n const [isLoading, setIsLoading] = useState(asyncContent && initiallyExpanded);\r\n const isExpanded = isControlled ? expanded : internalExpanded;\r\n\r\n const contentId = `${id || internalId}-content`;\r\n const buttonId = `${id || internalId}-button`;\r\n const descId = description ? `${id || internalId}-desc` : undefined;\r\n\r\n const toggleAccordion = () => {\r\n if (disabled) return;\r\n if (!isToggleable && isExpanded) return;\r\n isControlled ? onToggle?.(!expanded) : setInternalExpanded((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleAccordion();\r\n }\r\n };\r\n\r\n useMemo(() => {\r\n if (isExpanded && !hasBeenExpanded) {\r\n setHasBeenExpanded(true);\r\n }\r\n }, [isExpanded]);\r\n\r\n useMemo(() => {\r\n if (asyncContent && isExpanded && isLoading) {\r\n const timer = setTimeout(() => {\r\n setIsLoading(false);\r\n }, 1000);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n }, [asyncContent, isExpanded, isLoading]);\r\n\r\n const renderedIcon = isExpanded\r\n ? (customExpandedIcon ?? \"−\")\r\n : (customCollapsedIcon ?? \"+\");\r\n\r\n const wrapperClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.accordion,\r\n classMap[size],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded,\r\n className\r\n ),\r\n [classMap, size, disabled, isExpanded, className]\r\n );\r\n\r\n const headerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.header,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded\r\n ),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const contentClassName = useMemo(\r\n () => combineClassNames(classMap.content, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const iconClassName = useMemo(\r\n () => combineClassNames(classMap.icon, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n return (\r\n <div {...rest} className={wrapperClassName}>\r\n <button\r\n id={buttonId}\r\n className={headerClassName}\r\n onClick={toggleAccordion}\r\n onKeyDown={handleKeyDown}\r\n type=\"button\"\r\n aria-expanded={isExpanded}\r\n aria-controls={contentId}\r\n aria-disabled={disabled}\r\n aria-describedby={descId}\r\n tabIndex={disabled ? -1 : 0}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-accordion-toggle` : undefined}\r\n >\r\n {iconPosition === \"left\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n <span\r\n className={classMap.accordionTitle}\r\n data-testid={testId ? `${testId}-title` : undefined}\r\n >\r\n {title}\r\n </span>\r\n {iconPosition === \"right\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n </button>\r\n\r\n {description && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={testId ? `${testId}-description` : undefined}\r\n >\r\n {description}\r\n </span>\r\n )}\r\n\r\n <div\r\n id={contentId}\r\n role=\"region\"\r\n aria-labelledby={buttonId}\r\n className={contentClassName}\r\n data-state={isExpanded ? \"open\" : \"collapsed\"}\r\n data-testid={testId ? `${testId}-content` : undefined}\r\n >\r\n {isExpanded && asyncContent && isLoading && (\r\n <div className={classMap.loading}>Loading...</div>\r\n )}\r\n {(!lazyLoad || hasBeenExpanded) &&\r\n (!asyncContent || !isLoading) &&\r\n children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nAccordionBase.displayName = \"AccordionBase\";\r\n","import React from \"react\";\r\nimport \"./Accordion.scss\";\r\nimport { AccordionBase } from \"../AccordionBase\";\r\nimport type { AccordionProps } from \"../Accordion.types\";\r\n\r\nconst classes = {\r\n accordion: \"accordion\",\r\n header: \"accordion_header\",\r\n content: \"accordion_content\",\r\n icon: \"accordion_icon\",\r\n title: \"accordion_title\",\r\n\r\n shadowNone: \"accordion_shadow-None\",\r\n shadowLight: \"accordion_shadow-Light\",\r\n shadowMedium: \"accordion_shadow-Medium\",\r\n shadowStrong: \"accordion_shadow-Strong\",\r\n shadowIntense: \"accordion_shadow-Intense\",\r\n\r\n roundNone: \"accordion_round-None\",\r\n roundSmall: \"accordion_round-Small\",\r\n roundMedium: \"accordion_round-Medium\",\r\n roundLarge: \"accordion_round-Large\",\r\n\r\n disabled: \"accordion_disabled\",\r\n expanded: \"accordion_expanded\",\r\n\r\n primary: \"accordion_primary\",\r\n secondary: \"accordion_secondary\",\r\n\r\n tertiary: \"accordion_tertiary\",\r\n quaternary: \"accordion_quaternary\",\r\n\r\n success: \"accordion_success\",\r\n error: \"accordion_error\",\r\n warning: \"accordion_warning\",\r\n clear: \"accordion_clear\",\r\n outline: \"accordion_outline\",\r\n\r\n xs: \"accordion_xs\",\r\n small: \"accordion_small\",\r\n medium: \"accordion_medium\",\r\n large: \"accordion_large\",\r\n xl: \"accordion_xl\",\r\n};\r\n\r\nconst generateUniqueId = (() => {\r\n let counter = 0;\r\n return () => `accordion-core-${counter++}`;\r\n})();\r\n\r\nconst Accordion: React.FC<AccordionProps> = (props) => (\r\n <AccordionBase {...props} getUniqueId={generateUniqueId} classMap={classes} />\r\n);\r\n\r\nexport default Accordion;\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion-DQsSUVAE.cjs","sources":["../../src/components/Accordion/AccordionBase.tsx","../../src/components/Accordion/core/Accordion.tsx"],"sourcesContent":["import React, { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { AccordionProps } from \"./Accordion.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface AccordionBaseProps extends AccordionProps {\r\n getUniqueId: () => string;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AccordionBase: React.FC<AccordionBaseProps> = ({\r\n title,\r\n id,\r\n children,\r\n lazyLoad = false,\r\n iconPosition = \"right\",\r\n isToggleable = true,\r\n asyncContent = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n description,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n expanded,\r\n disabled,\r\n customCollapsedIcon,\r\n customExpandedIcon,\r\n onToggle,\r\n initiallyExpanded = false,\r\n className = \"\",\r\n getUniqueId,\r\n classMap,\r\n \"data-testid\": testId,\r\n ...rest\r\n}) => {\r\n const isControlled = expanded !== undefined;\r\n const internalId = useMemo(getUniqueId, []);\r\n const [internalExpanded, setInternalExpanded] = useState(initiallyExpanded);\r\n const [hasBeenExpanded, setHasBeenExpanded] = useState(initiallyExpanded);\r\n const [isLoading, setIsLoading] = useState(asyncContent && initiallyExpanded);\r\n const isExpanded = isControlled ? expanded : internalExpanded;\r\n\r\n const contentId = `${id || internalId}-content`;\r\n const buttonId = `${id || internalId}-button`;\r\n const descId = description ? `${id || internalId}-desc` : undefined;\r\n\r\n const toggleAccordion = () => {\r\n if (disabled) return;\r\n if (!isToggleable && isExpanded) return;\r\n isControlled ? onToggle?.(!expanded) : setInternalExpanded((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleAccordion();\r\n }\r\n };\r\n\r\n useMemo(() => {\r\n if (isExpanded && !hasBeenExpanded) {\r\n setHasBeenExpanded(true);\r\n }\r\n }, [isExpanded]);\r\n\r\n useMemo(() => {\r\n if (asyncContent && isExpanded && isLoading) {\r\n const timer = setTimeout(() => {\r\n setIsLoading(false);\r\n }, 1000);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n }, [asyncContent, isExpanded, isLoading]);\r\n\r\n const renderedIcon = isExpanded\r\n ? (customExpandedIcon ?? \"−\")\r\n : (customCollapsedIcon ?? \"+\");\r\n\r\n const wrapperClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.accordion,\r\n classMap[size],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded,\r\n className\r\n ),\r\n [classMap, size, disabled, isExpanded, className]\r\n );\r\n\r\n const headerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.header,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded\r\n ),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const contentClassName = useMemo(\r\n () => combineClassNames(classMap.content, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const iconClassName = useMemo(\r\n () => combineClassNames(classMap.icon, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n return (\r\n <div {...rest} className={wrapperClassName}>\r\n <button\r\n id={buttonId}\r\n className={headerClassName}\r\n onClick={toggleAccordion}\r\n onKeyDown={handleKeyDown}\r\n type=\"button\"\r\n aria-expanded={isExpanded}\r\n aria-controls={contentId}\r\n aria-disabled={disabled}\r\n aria-describedby={descId}\r\n tabIndex={disabled ? -1 : 0}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-accordion-toggle` : undefined}\r\n >\r\n {iconPosition === \"left\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n <span\r\n className={classMap.accordionTitle}\r\n data-testid={testId ? `${testId}-title` : undefined}\r\n >\r\n {title}\r\n </span>\r\n {iconPosition === \"right\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n </button>\r\n\r\n {description && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={testId ? `${testId}-description` : undefined}\r\n >\r\n {description}\r\n </span>\r\n )}\r\n\r\n <div\r\n id={contentId}\r\n role=\"region\"\r\n aria-labelledby={buttonId}\r\n className={contentClassName}\r\n data-state={isExpanded ? \"open\" : \"collapsed\"}\r\n data-testid={testId ? `${testId}-content` : undefined}\r\n >\r\n {isExpanded && asyncContent && isLoading && (\r\n <div className={classMap.loading}>Loading...</div>\r\n )}\r\n {(!lazyLoad || hasBeenExpanded) &&\r\n (!asyncContent || !isLoading) &&\r\n children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nAccordionBase.displayName = \"AccordionBase\";\r\n","import React from \"react\";\r\nimport \"./Accordion.scss\";\r\nimport { AccordionBase } from \"../AccordionBase\";\r\nimport type { AccordionProps } from \"../Accordion.types\";\r\n\r\nconst classes = {\r\n accordion: \"accordion\",\r\n header: \"accordion_header\",\r\n content: \"accordion_content\",\r\n icon: \"accordion_icon\",\r\n title: \"accordion_title\",\r\n\r\n shadowNone: \"accordion_shadow-None\",\r\n shadowLight: \"accordion_shadow-Light\",\r\n shadowMedium: \"accordion_shadow-Medium\",\r\n shadowStrong: \"accordion_shadow-Strong\",\r\n shadowIntense: \"accordion_shadow-Intense\",\r\n\r\n roundNone: \"accordion_round-None\",\r\n roundSmall: \"accordion_round-Small\",\r\n roundMedium: \"accordion_round-Medium\",\r\n roundLarge: \"accordion_round-Large\",\r\n\r\n disabled: \"accordion_disabled\",\r\n expanded: \"accordion_expanded\",\r\n\r\n primary: \"accordion_primary\",\r\n secondary: \"accordion_secondary\",\r\n\r\n tertiary: \"accordion_tertiary\",\r\n quaternary: \"accordion_quaternary\",\r\n\r\n success: \"accordion_success\",\r\n error: \"accordion_error\",\r\n warning: \"accordion_warning\",\r\n clear: \"accordion_clear\",\r\n outline: \"accordion_outline\",\r\n\r\n xs: \"accordion_xs\",\r\n small: \"accordion_small\",\r\n medium: \"accordion_medium\",\r\n large: \"accordion_large\",\r\n xl: \"accordion_xl\",\r\n};\r\n\r\nconst generateUniqueId = (() => {\r\n let counter = 0;\r\n return () => `accordion-core-${counter++}`;\r\n})();\r\n\r\nconst Accordion: React.FC<AccordionProps> = (props) => (\r\n <AccordionBase {...props} getUniqueId={generateUniqueId} classMap={classes} />\r\n);\r\n\r\nexport default Accordion;\r\n"],"names":["getDefaultRounding","getDefaultShadow","getDefaultSize","getDefaultTheme","useMemo","useState","combineClassNames","capitalize","jsxs","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Accordion-DQsSUVAE.cjs","sources":["../../src/components/Accordion/AccordionBase.tsx","../../src/components/Accordion/core/Accordion.tsx"],"sourcesContent":["import React, { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { AccordionProps } from \"./Accordion.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface AccordionBaseProps extends AccordionProps {\r\n getUniqueId: () => string;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AccordionBase: React.FC<AccordionBaseProps> = ({\r\n title,\r\n id,\r\n children,\r\n lazyLoad = false,\r\n iconPosition = \"right\",\r\n isToggleable = true,\r\n asyncContent = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n description,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n expanded,\r\n disabled,\r\n customCollapsedIcon,\r\n customExpandedIcon,\r\n onToggle,\r\n initiallyExpanded = false,\r\n className = \"\",\r\n getUniqueId,\r\n classMap,\r\n \"data-testid\": testId,\r\n ...rest\r\n}) => {\r\n const isControlled = expanded !== undefined;\r\n const internalId = useMemo(getUniqueId, []);\r\n const [internalExpanded, setInternalExpanded] = useState(initiallyExpanded);\r\n const [hasBeenExpanded, setHasBeenExpanded] = useState(initiallyExpanded);\r\n const [isLoading, setIsLoading] = useState(asyncContent && initiallyExpanded);\r\n const isExpanded = isControlled ? expanded : internalExpanded;\r\n\r\n const contentId = `${id || internalId}-content`;\r\n const buttonId = `${id || internalId}-button`;\r\n const descId = description ? `${id || internalId}-desc` : undefined;\r\n\r\n const toggleAccordion = () => {\r\n if (disabled) return;\r\n if (!isToggleable && isExpanded) return;\r\n isControlled ? onToggle?.(!expanded) : setInternalExpanded((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleAccordion();\r\n }\r\n };\r\n\r\n useMemo(() => {\r\n if (isExpanded && !hasBeenExpanded) {\r\n setHasBeenExpanded(true);\r\n }\r\n }, [isExpanded]);\r\n\r\n useMemo(() => {\r\n if (asyncContent && isExpanded && isLoading) {\r\n const timer = setTimeout(() => {\r\n setIsLoading(false);\r\n }, 1000);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n }, [asyncContent, isExpanded, isLoading]);\r\n\r\n const renderedIcon = isExpanded\r\n ? (customExpandedIcon ?? \"−\")\r\n : (customCollapsedIcon ?? \"+\");\r\n\r\n const wrapperClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.accordion,\r\n classMap[size],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded,\r\n className\r\n ),\r\n [classMap, size, disabled, isExpanded, className]\r\n );\r\n\r\n const headerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.header,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded\r\n ),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const contentClassName = useMemo(\r\n () => combineClassNames(classMap.content, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const iconClassName = useMemo(\r\n () => combineClassNames(classMap.icon, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n return (\r\n <div {...rest} className={wrapperClassName}>\r\n <button\r\n id={buttonId}\r\n className={headerClassName}\r\n onClick={toggleAccordion}\r\n onKeyDown={handleKeyDown}\r\n type=\"button\"\r\n aria-expanded={isExpanded}\r\n aria-controls={contentId}\r\n aria-disabled={disabled}\r\n aria-describedby={descId}\r\n tabIndex={disabled ? -1 : 0}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-accordion-toggle` : undefined}\r\n >\r\n {iconPosition === \"left\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n <span\r\n className={classMap.accordionTitle}\r\n data-testid={testId ? `${testId}-title` : undefined}\r\n >\r\n {title}\r\n </span>\r\n {iconPosition === \"right\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n </button>\r\n\r\n {description && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={testId ? `${testId}-description` : undefined}\r\n >\r\n {description}\r\n </span>\r\n )}\r\n\r\n <div\r\n id={contentId}\r\n role=\"region\"\r\n aria-labelledby={buttonId}\r\n className={contentClassName}\r\n data-state={isExpanded ? \"open\" : \"collapsed\"}\r\n data-testid={testId ? `${testId}-content` : undefined}\r\n >\r\n {isExpanded && asyncContent && isLoading && (\r\n <div className={classMap.loading}>Loading...</div>\r\n )}\r\n {(!lazyLoad || hasBeenExpanded) &&\r\n (!asyncContent || !isLoading) &&\r\n children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nAccordionBase.displayName = \"AccordionBase\";\r\n","import React from \"react\";\r\nimport \"./Accordion.scss\";\r\nimport { AccordionBase } from \"../AccordionBase\";\r\nimport type { AccordionProps } from \"../Accordion.types\";\r\n\r\nconst classes = {\r\n accordion: \"accordion\",\r\n header: \"accordion_header\",\r\n content: \"accordion_content\",\r\n icon: \"accordion_icon\",\r\n title: \"accordion_title\",\r\n\r\n shadowNone: \"accordion_shadow-None\",\r\n shadowLight: \"accordion_shadow-Light\",\r\n shadowMedium: \"accordion_shadow-Medium\",\r\n shadowStrong: \"accordion_shadow-Strong\",\r\n shadowIntense: \"accordion_shadow-Intense\",\r\n\r\n roundNone: \"accordion_round-None\",\r\n roundSmall: \"accordion_round-Small\",\r\n roundMedium: \"accordion_round-Medium\",\r\n roundLarge: \"accordion_round-Large\",\r\n\r\n disabled: \"accordion_disabled\",\r\n expanded: \"accordion_expanded\",\r\n\r\n primary: \"accordion_primary\",\r\n secondary: \"accordion_secondary\",\r\n\r\n tertiary: \"accordion_tertiary\",\r\n quaternary: \"accordion_quaternary\",\r\n\r\n success: \"accordion_success\",\r\n error: \"accordion_error\",\r\n warning: \"accordion_warning\",\r\n clear: \"accordion_clear\",\r\n outline: \"accordion_outline\",\r\n\r\n xs: \"accordion_xs\",\r\n small: \"accordion_small\",\r\n medium: \"accordion_medium\",\r\n large: \"accordion_large\",\r\n xl: \"accordion_xl\",\r\n};\r\n\r\nconst generateUniqueId = (() => {\r\n let counter = 0;\r\n return () => `accordion-core-${counter++}`;\r\n})();\r\n\r\nconst Accordion: React.FC<AccordionProps> = (props) => (\r\n <AccordionBase {...props} getUniqueId={generateUniqueId} classMap={classes} />\r\n);\r\n\r\nexport default Accordion;\r\n"],"names":["getDefaultRounding","getDefaultShadow","getDefaultSize","getDefaultTheme","useMemo","useState","combineClassNames","capitalize","jsxs","jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowRightIcon-BYQv5XS8.js","sources":["../../src/Icons/ArrowRightIcon.tsx"],"sourcesContent":["const ArrowRightIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M8.71299 18.6929C8.43273 18.5768 8.25 18.3033 8.25 18V5.99998C8.25 5.69663 8.43273 5.42315 8.71299 5.30707C8.99324 5.19098 9.31583 5.25515 9.53033 5.46965L15.5303 11.4696C15.8232 11.7625 15.8232 12.2374 15.5303 12.5303L9.53033 18.5303C9.31583 18.7448 8.99324 18.809 8.71299 18.6929Z\"\r\n fill=\"currentColor\"\r\n ></path>\r\n </svg>\r\n);\r\nexport default ArrowRightIcon;\r\n"],"names":[],"mappings":";AAAM,MAAA,iBAA0D,CAAC,UAC/D;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACH;"}
1
+ {"version":3,"file":"ArrowRightIcon-BYQv5XS8.js","sources":["../../src/Icons/ArrowRightIcon.tsx"],"sourcesContent":["const ArrowRightIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M8.71299 18.6929C8.43273 18.5768 8.25 18.3033 8.25 18V5.99998C8.25 5.69663 8.43273 5.42315 8.71299 5.30707C8.99324 5.19098 9.31583 5.25515 9.53033 5.46965L15.5303 11.4696C15.8232 11.7625 15.8232 12.2374 15.5303 12.5303L9.53033 18.5303C9.31583 18.7448 8.99324 18.809 8.71299 18.6929Z\"\r\n fill=\"currentColor\"\r\n ></path>\r\n </svg>\r\n);\r\nexport default ArrowRightIcon;\r\n"],"names":[],"mappings":";AAAA,MAAM,iBAA0D,CAAC,UAC/D;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowRightIcon-ClXQHGAD.cjs","sources":["../../src/Icons/ArrowRightIcon.tsx"],"sourcesContent":["const ArrowRightIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M8.71299 18.6929C8.43273 18.5768 8.25 18.3033 8.25 18V5.99998C8.25 5.69663 8.43273 5.42315 8.71299 5.30707C8.99324 5.19098 9.31583 5.25515 9.53033 5.46965L15.5303 11.4696C15.8232 11.7625 15.8232 12.2374 15.5303 12.5303L9.53033 18.5303C9.31583 18.7448 8.99324 18.809 8.71299 18.6929Z\"\r\n fill=\"currentColor\"\r\n ></path>\r\n </svg>\r\n);\r\nexport default ArrowRightIcon;\r\n"],"names":["jsx"],"mappings":";;AAAM,MAAA,iBAA0D,CAAC,UAC/DA,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAAA,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACH;;"}
1
+ {"version":3,"file":"ArrowRightIcon-ClXQHGAD.cjs","sources":["../../src/Icons/ArrowRightIcon.tsx"],"sourcesContent":["const ArrowRightIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M8.71299 18.6929C8.43273 18.5768 8.25 18.3033 8.25 18V5.99998C8.25 5.69663 8.43273 5.42315 8.71299 5.30707C8.99324 5.19098 9.31583 5.25515 9.53033 5.46965L15.5303 11.4696C15.8232 11.7625 15.8232 12.2374 15.5303 12.5303L9.53033 18.5303C9.31583 18.7448 8.99324 18.809 8.71299 18.6929Z\"\r\n fill=\"currentColor\"\r\n ></path>\r\n </svg>\r\n);\r\nexport default ArrowRightIcon;\r\n"],"names":["jsx"],"mappings":";;AAAA,MAAM,iBAA0D,CAAC,UAC/DA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAAA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar-B5aqfDZX.cjs","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/core/Avatar.tsx"],"sourcesContent":["/**\r\n * Returns the initials from a given full name string.\r\n *\r\n * Extracts the first character from the first word and the first character of the second word (if available).\r\n * If only one word is provided, it uses the first two characters of that word as a fallback.\r\n * If no valid characters are found, it returns \"?\".\r\n *\r\n * @param {string} name - The full name to extract initials from.\r\n * @returns {string} A string of up to two uppercase initials, or \"?\" if the input is empty or invalid.\r\n *\r\n * @example\r\n * getInitials(\"John Doe\"); // \"JD\"\r\n * getInitials(\"Alice\"); // \"AL\"\r\n * getInitials(\" \"); // \"?\"\r\n */\r\nexport const getInitials = (name: string): string => {\r\n const words = name.trim().split(/\\s+/);\r\n const first = words[0]?.[0] || \"\";\r\n const second = words[1]?.[0] || words[0]?.[1] || \"\";\r\n return (first + second).toUpperCase() || \"?\";\r\n};\r\n","const FallbackUserIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FallbackUserIcon;\r\n","import React, { useMemo, useState, MouseEvent } from \"react\";\r\nimport { AvatarProps } from \"./Avatar.types\";\r\nimport { getInitials } from \"../../utils/getInitials\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { FallbackUserIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\nexport interface AvatarBaseProps extends AvatarProps {\r\n ImageComponent?: React.ElementType;\r\n LinkComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AvatarBase: React.FC<AvatarBaseProps> = ({\r\n src,\r\n alt,\r\n name = \"\",\r\n label,\r\n onClick,\r\n disabled = false,\r\n href,\r\n status,\r\n statusIcon,\r\n statusPosition = \"bottomRight\",\r\n fallback,\r\n children,\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n shape = \"circle\",\r\n outline = false,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n className = \"\",\r\n priority = false,\r\n ImageComponent = \"img\",\r\n LinkComponent = \"a\",\r\n classMap,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [imgError, setImgError] = useState(false);\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n const fallbackContent =\r\n fallback ??\r\n (name ? (\r\n getInitials(name)\r\n ) : (\r\n <FallbackUserIcon className={classMap.fallback_icon} />\r\n ));\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.avatar,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[shape],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, shape, size, outline, className]\r\n );\r\n\r\n const avatarContent =\r\n !imgError && src ? (\r\n <ImageComponent\r\n src={src}\r\n alt={computedLabel}\r\n className={classMap.image}\r\n onError={() => setImgError(true)}\r\n loading={priority ? \"eager\" : \"lazy\"}\r\n aria-hidden=\"false\"\r\n role=\"img\"\r\n data-testid={testId ? `${testId}-image` : undefined}\r\n fill={true}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.initials}\r\n role=\"img\"\r\n aria-label={computedLabel}\r\n title={computedLabel}\r\n data-testid={testId ? `${testId}-initials` : undefined}\r\n >\r\n {fallbackContent}\r\n </span>\r\n );\r\n\r\n const statusIndicator = (status || statusIcon) && (\r\n <span\r\n className={combineClassNames(\r\n classMap.status,\r\n status && classMap[status],\r\n statusIcon ? \"icon_only\" : undefined,\r\n classMap[statusPosition]\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-status` : undefined}\r\n >\r\n {statusIcon || <span className={classMap.dot} />}\r\n </span>\r\n );\r\n\r\n const content = (\r\n <>\r\n {children ?? avatarContent}\r\n {statusIndicator}\r\n </>\r\n );\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!href) e.preventDefault();\r\n };\r\n\r\n const ariaAttrs = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": false,\r\n };\r\n\r\n if (href) {\r\n if (LinkComponent === \"a\") {\r\n return (\r\n <a\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid=\"avatar\"\r\n target={href.startsWith(\"http\") ? \"_blank\" : undefined}\r\n rel={href.startsWith(\"http\") ? \"noopener noreferrer\" : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </button>\r\n );\r\n};\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","import React from \"react\";\r\nimport \"./Avatar.scss\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\n\r\nconst classes = {\r\n avatar: \"avatar\",\r\n primary: \"avatar_primary\",\r\n secondary: \"avatar_secondary\",\r\n tertiary: \"avatar_tertiary\",\r\n quaternary: \"avatar_quaternary\",\r\n success: \"avatar_success\",\r\n warning: \"avatar_warning\",\r\n error: \"avatar_error\",\r\n clear: \"avatar_clear\",\r\n outline: \"avatar_outline\",\r\n\r\n clickable: \"avatar_clickable\",\r\n disabled: \"avatar_disabled\",\r\n\r\n circle: \"avatar_circle\",\r\n square: \"avatar_square\",\r\n rounded: \"avatar_rounded\",\r\n\r\n xs: \"avatar_xs\",\r\n small: \"avatar_small\",\r\n medium: \"avatar_medium\",\r\n large: \"avatar_large\",\r\n xl: \"avatar_xl\",\r\n\r\n shadowNone: \"avatar_shadow-None\",\r\n shadowLight: \"avatar_shadow-Light\",\r\n shadowMedium: \"avatar_shadow-Medium\",\r\n shadowStrong: \"avatar_shadow-Strong\",\r\n shadowIntense: \"avatar_shadow-Intense\",\r\n\r\n image: \"avatar_image\",\r\n initials: \"avatar_initials\",\r\n fallback_icon: \"avatar_fallback_icon\",\r\n icon_only: \"avatar_icon_only\",\r\n status: \"avatar_status\",\r\n online: \"avatar_status_online\",\r\n offline: \"avatar_status_offline\",\r\n away: \"avatar_status_away\",\r\n busy: \"avatar_status_busy\",\r\n topRight: \"avatar_status_topRight\",\r\n bottomRight: \"avatar_status_bottomRight\",\r\n bottomLeft: \"avatar_status_bottomLeft\",\r\n topLeft: \"avatar_status_topLeft\",\r\n\r\n dot: \"avatar_dot\",\r\n};\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":["jsxs","jsx","getDefaultSize","getDefaultShadow","getDefaultTheme","useState","useMemo","combineClassNames","capitalize","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"Avatar-B5aqfDZX.cjs","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/core/Avatar.tsx"],"sourcesContent":["/**\r\n * Returns the initials from a given full name string.\r\n *\r\n * Extracts the first character from the first word and the first character of the second word (if available).\r\n * If only one word is provided, it uses the first two characters of that word as a fallback.\r\n * If no valid characters are found, it returns \"?\".\r\n *\r\n * @param {string} name - The full name to extract initials from.\r\n * @returns {string} A string of up to two uppercase initials, or \"?\" if the input is empty or invalid.\r\n *\r\n * @example\r\n * getInitials(\"John Doe\"); // \"JD\"\r\n * getInitials(\"Alice\"); // \"AL\"\r\n * getInitials(\" \"); // \"?\"\r\n */\r\nexport const getInitials = (name: string): string => {\r\n const words = name.trim().split(/\\s+/);\r\n const first = words[0]?.[0] || \"\";\r\n const second = words[1]?.[0] || words[0]?.[1] || \"\";\r\n return (first + second).toUpperCase() || \"?\";\r\n};\r\n","const FallbackUserIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FallbackUserIcon;\r\n","import React, { useMemo, useState, MouseEvent } from \"react\";\r\nimport { AvatarProps } from \"./Avatar.types\";\r\nimport { getInitials } from \"../../utils/getInitials\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { FallbackUserIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\nexport interface AvatarBaseProps extends AvatarProps {\r\n ImageComponent?: React.ElementType;\r\n LinkComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AvatarBase: React.FC<AvatarBaseProps> = ({\r\n src,\r\n alt,\r\n name = \"\",\r\n label,\r\n onClick,\r\n disabled = false,\r\n href,\r\n status,\r\n statusIcon,\r\n statusPosition = \"bottomRight\",\r\n fallback,\r\n children,\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n shape = \"circle\",\r\n outline = false,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n className = \"\",\r\n priority = false,\r\n ImageComponent = \"img\",\r\n LinkComponent = \"a\",\r\n classMap,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [imgError, setImgError] = useState(false);\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n const fallbackContent =\r\n fallback ??\r\n (name ? (\r\n getInitials(name)\r\n ) : (\r\n <FallbackUserIcon className={classMap.fallback_icon} />\r\n ));\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.avatar,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[shape],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, shape, size, outline, className]\r\n );\r\n\r\n const avatarContent =\r\n !imgError && src ? (\r\n <ImageComponent\r\n src={src}\r\n alt={computedLabel}\r\n className={classMap.image}\r\n onError={() => setImgError(true)}\r\n loading={priority ? \"eager\" : \"lazy\"}\r\n aria-hidden=\"false\"\r\n role=\"img\"\r\n data-testid={testId ? `${testId}-image` : undefined}\r\n fill={true}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.initials}\r\n role=\"img\"\r\n aria-label={computedLabel}\r\n title={computedLabel}\r\n data-testid={testId ? `${testId}-initials` : undefined}\r\n >\r\n {fallbackContent}\r\n </span>\r\n );\r\n\r\n const statusIndicator = (status || statusIcon) && (\r\n <span\r\n className={combineClassNames(\r\n classMap.status,\r\n status && classMap[status],\r\n statusIcon ? \"icon_only\" : undefined,\r\n classMap[statusPosition]\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-status` : undefined}\r\n >\r\n {statusIcon || <span className={classMap.dot} />}\r\n </span>\r\n );\r\n\r\n const content = (\r\n <>\r\n {children ?? avatarContent}\r\n {statusIndicator}\r\n </>\r\n );\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!href) e.preventDefault();\r\n };\r\n\r\n const ariaAttrs = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": false,\r\n };\r\n\r\n if (href) {\r\n if (LinkComponent === \"a\") {\r\n return (\r\n <a\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid=\"avatar\"\r\n target={href.startsWith(\"http\") ? \"_blank\" : undefined}\r\n rel={href.startsWith(\"http\") ? \"noopener noreferrer\" : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </button>\r\n );\r\n};\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","import React from \"react\";\r\nimport \"./Avatar.scss\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\n\r\nconst classes = {\r\n avatar: \"avatar\",\r\n primary: \"avatar_primary\",\r\n secondary: \"avatar_secondary\",\r\n tertiary: \"avatar_tertiary\",\r\n quaternary: \"avatar_quaternary\",\r\n success: \"avatar_success\",\r\n warning: \"avatar_warning\",\r\n error: \"avatar_error\",\r\n clear: \"avatar_clear\",\r\n outline: \"avatar_outline\",\r\n\r\n clickable: \"avatar_clickable\",\r\n disabled: \"avatar_disabled\",\r\n\r\n circle: \"avatar_circle\",\r\n square: \"avatar_square\",\r\n rounded: \"avatar_rounded\",\r\n\r\n xs: \"avatar_xs\",\r\n small: \"avatar_small\",\r\n medium: \"avatar_medium\",\r\n large: \"avatar_large\",\r\n xl: \"avatar_xl\",\r\n\r\n shadowNone: \"avatar_shadow-None\",\r\n shadowLight: \"avatar_shadow-Light\",\r\n shadowMedium: \"avatar_shadow-Medium\",\r\n shadowStrong: \"avatar_shadow-Strong\",\r\n shadowIntense: \"avatar_shadow-Intense\",\r\n\r\n image: \"avatar_image\",\r\n initials: \"avatar_initials\",\r\n fallback_icon: \"avatar_fallback_icon\",\r\n icon_only: \"avatar_icon_only\",\r\n status: \"avatar_status\",\r\n online: \"avatar_status_online\",\r\n offline: \"avatar_status_offline\",\r\n away: \"avatar_status_away\",\r\n busy: \"avatar_status_busy\",\r\n topRight: \"avatar_status_topRight\",\r\n bottomRight: \"avatar_status_bottomRight\",\r\n bottomLeft: \"avatar_status_bottomLeft\",\r\n topLeft: \"avatar_status_topLeft\",\r\n\r\n dot: \"avatar_dot\",\r\n};\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":["jsxs","jsx","getDefaultSize","getDefaultShadow","getDefaultTheme","useState","useMemo","combineClassNames","capitalize","Fragment"],"mappings":";;;;;;AAeO,MAAM,cAAc,CAAC,SAAyB;;AACnD,QAAM,QAAQ,KAAK,KAAA,EAAO,MAAM,KAAK;AACrC,QAAM,UAAQ,WAAM,CAAC,MAAP,mBAAW,OAAM;AAC/B,QAAM,WAAS,WAAM,CAAC,MAAP,mBAAW,SAAM,WAAM,CAAC,MAAP,mBAAW,OAAM;AACjD,UAAQ,QAAQ,QAAQ,YAAA,KAAiB;AAC3C;ACpBA,MAAM,mBAA4D,CAAC,UACjEA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjBA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AACH;ACRK,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,OAAOC,kBAAAA,eAAA;AAAA,EACP,SAASC,kBAAAA,iBAAA;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQC,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB;AAAA,EACA,eAAe;AACjB,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAIC,MAAAA,SAAS,KAAK;AAC9C,QAAM,gBAAgB,SAAS,OAAO,QAAQ;AAC9C,QAAM,kBACJ,aACC,OACC,YAAY,IAAI,IAEhBJ,+BAAC,kBAAA,EAAiB,WAAW,SAAS,cAAA,CAAe;AAGzD,QAAM,oBAAoBK,MAAAA;AAAAA,IACxB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS;AAAA,MACpB,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,OAAO,OAAO,MAAM,SAAS,SAAS;AAAA,EAAA;AAGzC,QAAM,gBACJ,CAAC,YAAY,MACXP,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,KAAK;AAAA,MACL,WAAW,SAAS;AAAA,MACpB,SAAS,MAAM,YAAY,IAAI;AAAA,MAC/B,SAAS,WAAW,UAAU;AAAA,MAC9B,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,eAAa,SAAS,GAAG,MAAM,WAAW;AAAA,MAC1C,MAAM;AAAA,IAAA;AAAA,EAAA,IAGRA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,SAAS;AAAA,MACpB,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,OAAO;AAAA,MACP,eAAa,SAAS,GAAG,MAAM,cAAc;AAAA,MAE5C,UAAA;AAAA,IAAA;AAAA,EAAA;AAIP,QAAM,mBAAmB,UAAU,eACjCA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWM,WAAAA;AAAAA,QACT,SAAS;AAAA,QACT,UAAU,SAAS,MAAM;AAAA,QACzB,aAAa,cAAc;AAAA,QAC3B,SAAS,cAAc;AAAA,MAAA;AAAA,MAEzB,eAAY;AAAA,MACZ,eAAa,SAAS,GAAG,MAAM,YAAY;AAAA,MAE1C,UAAA,cAAcN,+BAAC,QAAA,EAAK,WAAW,SAAS,IAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AAIlD,QAAM,UACJD,2BAAAA,KAAAS,WAAAA,UAAA,EACG,UAAA;AAAA,IAAA,YAAY;AAAA,IACZ;AAAA,EAAA,GACH;AAGF,QAAM,cAAc,CAAC,MAA+B;AAClD,uCAAU;AACV,QAAI,CAAC,KAAM,GAAE,eAAA;AAAA,EACf;AAEA,QAAM,YAAY;AAAA,IAChB,cAAc;AAAA,IACd,iBAAiB;AAAA,EAAA;AAGnB,MAAI,MAAM;AACR,QAAI,kBAAkB,KAAK;AACzB,aACER,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,WAAW;AAAA,UACX,SAAS;AAAA,UACT,eAAY;AAAA,UACZ,QAAQ,KAAK,WAAW,MAAM,IAAI,WAAW;AAAA,UAC7C,KAAK,KAAK,WAAW,MAAM,IAAI,wBAAwB;AAAA,UACtD,GAAG;AAAA,UAEH,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAGP;AAEA,WACEA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,QACX,SAAS;AAAA,QACT,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,QACxC,GAAG;AAAA,QAEH,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAEA,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,MACT,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,MACxC,GAAG;AAAA,MAEH,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,WAAW,cAAc;ACrKzB,MAAM,UAAU;AAAA,EACd,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EAET,WAAW;AAAA,EACX,UAAU;AAAA,EAEV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,OAAO;AAAA,EACP,UAAU;AAAA,EACV,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EAET,KAAK;AACP;AAEA,MAAM,SAAgC,CAAC,UACrCA,+BAAC,cAAY,GAAG,OAAO,UAAU,QAAA,CAAS;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar-mhtrG5FT.js","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/core/Avatar.tsx"],"sourcesContent":["/**\r\n * Returns the initials from a given full name string.\r\n *\r\n * Extracts the first character from the first word and the first character of the second word (if available).\r\n * If only one word is provided, it uses the first two characters of that word as a fallback.\r\n * If no valid characters are found, it returns \"?\".\r\n *\r\n * @param {string} name - The full name to extract initials from.\r\n * @returns {string} A string of up to two uppercase initials, or \"?\" if the input is empty or invalid.\r\n *\r\n * @example\r\n * getInitials(\"John Doe\"); // \"JD\"\r\n * getInitials(\"Alice\"); // \"AL\"\r\n * getInitials(\" \"); // \"?\"\r\n */\r\nexport const getInitials = (name: string): string => {\r\n const words = name.trim().split(/\\s+/);\r\n const first = words[0]?.[0] || \"\";\r\n const second = words[1]?.[0] || words[0]?.[1] || \"\";\r\n return (first + second).toUpperCase() || \"?\";\r\n};\r\n","const FallbackUserIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FallbackUserIcon;\r\n","import React, { useMemo, useState, MouseEvent } from \"react\";\r\nimport { AvatarProps } from \"./Avatar.types\";\r\nimport { getInitials } from \"../../utils/getInitials\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { FallbackUserIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\nexport interface AvatarBaseProps extends AvatarProps {\r\n ImageComponent?: React.ElementType;\r\n LinkComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AvatarBase: React.FC<AvatarBaseProps> = ({\r\n src,\r\n alt,\r\n name = \"\",\r\n label,\r\n onClick,\r\n disabled = false,\r\n href,\r\n status,\r\n statusIcon,\r\n statusPosition = \"bottomRight\",\r\n fallback,\r\n children,\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n shape = \"circle\",\r\n outline = false,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n className = \"\",\r\n priority = false,\r\n ImageComponent = \"img\",\r\n LinkComponent = \"a\",\r\n classMap,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [imgError, setImgError] = useState(false);\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n const fallbackContent =\r\n fallback ??\r\n (name ? (\r\n getInitials(name)\r\n ) : (\r\n <FallbackUserIcon className={classMap.fallback_icon} />\r\n ));\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.avatar,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[shape],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, shape, size, outline, className]\r\n );\r\n\r\n const avatarContent =\r\n !imgError && src ? (\r\n <ImageComponent\r\n src={src}\r\n alt={computedLabel}\r\n className={classMap.image}\r\n onError={() => setImgError(true)}\r\n loading={priority ? \"eager\" : \"lazy\"}\r\n aria-hidden=\"false\"\r\n role=\"img\"\r\n data-testid={testId ? `${testId}-image` : undefined}\r\n fill={true}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.initials}\r\n role=\"img\"\r\n aria-label={computedLabel}\r\n title={computedLabel}\r\n data-testid={testId ? `${testId}-initials` : undefined}\r\n >\r\n {fallbackContent}\r\n </span>\r\n );\r\n\r\n const statusIndicator = (status || statusIcon) && (\r\n <span\r\n className={combineClassNames(\r\n classMap.status,\r\n status && classMap[status],\r\n statusIcon ? \"icon_only\" : undefined,\r\n classMap[statusPosition]\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-status` : undefined}\r\n >\r\n {statusIcon || <span className={classMap.dot} />}\r\n </span>\r\n );\r\n\r\n const content = (\r\n <>\r\n {children ?? avatarContent}\r\n {statusIndicator}\r\n </>\r\n );\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!href) e.preventDefault();\r\n };\r\n\r\n const ariaAttrs = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": false,\r\n };\r\n\r\n if (href) {\r\n if (LinkComponent === \"a\") {\r\n return (\r\n <a\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid=\"avatar\"\r\n target={href.startsWith(\"http\") ? \"_blank\" : undefined}\r\n rel={href.startsWith(\"http\") ? \"noopener noreferrer\" : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </button>\r\n );\r\n};\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","import React from \"react\";\r\nimport \"./Avatar.scss\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\n\r\nconst classes = {\r\n avatar: \"avatar\",\r\n primary: \"avatar_primary\",\r\n secondary: \"avatar_secondary\",\r\n tertiary: \"avatar_tertiary\",\r\n quaternary: \"avatar_quaternary\",\r\n success: \"avatar_success\",\r\n warning: \"avatar_warning\",\r\n error: \"avatar_error\",\r\n clear: \"avatar_clear\",\r\n outline: \"avatar_outline\",\r\n\r\n clickable: \"avatar_clickable\",\r\n disabled: \"avatar_disabled\",\r\n\r\n circle: \"avatar_circle\",\r\n square: \"avatar_square\",\r\n rounded: \"avatar_rounded\",\r\n\r\n xs: \"avatar_xs\",\r\n small: \"avatar_small\",\r\n medium: \"avatar_medium\",\r\n large: \"avatar_large\",\r\n xl: \"avatar_xl\",\r\n\r\n shadowNone: \"avatar_shadow-None\",\r\n shadowLight: \"avatar_shadow-Light\",\r\n shadowMedium: \"avatar_shadow-Medium\",\r\n shadowStrong: \"avatar_shadow-Strong\",\r\n shadowIntense: \"avatar_shadow-Intense\",\r\n\r\n image: \"avatar_image\",\r\n initials: \"avatar_initials\",\r\n fallback_icon: \"avatar_fallback_icon\",\r\n icon_only: \"avatar_icon_only\",\r\n status: \"avatar_status\",\r\n online: \"avatar_status_online\",\r\n offline: \"avatar_status_offline\",\r\n away: \"avatar_status_away\",\r\n busy: \"avatar_status_busy\",\r\n topRight: \"avatar_status_topRight\",\r\n bottomRight: \"avatar_status_bottomRight\",\r\n bottomLeft: \"avatar_status_bottomLeft\",\r\n topLeft: \"avatar_status_topLeft\",\r\n\r\n dot: \"avatar_dot\",\r\n};\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Avatar-mhtrG5FT.js","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/core/Avatar.tsx"],"sourcesContent":["/**\r\n * Returns the initials from a given full name string.\r\n *\r\n * Extracts the first character from the first word and the first character of the second word (if available).\r\n * If only one word is provided, it uses the first two characters of that word as a fallback.\r\n * If no valid characters are found, it returns \"?\".\r\n *\r\n * @param {string} name - The full name to extract initials from.\r\n * @returns {string} A string of up to two uppercase initials, or \"?\" if the input is empty or invalid.\r\n *\r\n * @example\r\n * getInitials(\"John Doe\"); // \"JD\"\r\n * getInitials(\"Alice\"); // \"AL\"\r\n * getInitials(\" \"); // \"?\"\r\n */\r\nexport const getInitials = (name: string): string => {\r\n const words = name.trim().split(/\\s+/);\r\n const first = words[0]?.[0] || \"\";\r\n const second = words[1]?.[0] || words[0]?.[1] || \"\";\r\n return (first + second).toUpperCase() || \"?\";\r\n};\r\n","const FallbackUserIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FallbackUserIcon;\r\n","import React, { useMemo, useState, MouseEvent } from \"react\";\r\nimport { AvatarProps } from \"./Avatar.types\";\r\nimport { getInitials } from \"../../utils/getInitials\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { FallbackUserIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\nexport interface AvatarBaseProps extends AvatarProps {\r\n ImageComponent?: React.ElementType;\r\n LinkComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AvatarBase: React.FC<AvatarBaseProps> = ({\r\n src,\r\n alt,\r\n name = \"\",\r\n label,\r\n onClick,\r\n disabled = false,\r\n href,\r\n status,\r\n statusIcon,\r\n statusPosition = \"bottomRight\",\r\n fallback,\r\n children,\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n shape = \"circle\",\r\n outline = false,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n className = \"\",\r\n priority = false,\r\n ImageComponent = \"img\",\r\n LinkComponent = \"a\",\r\n classMap,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [imgError, setImgError] = useState(false);\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n const fallbackContent =\r\n fallback ??\r\n (name ? (\r\n getInitials(name)\r\n ) : (\r\n <FallbackUserIcon className={classMap.fallback_icon} />\r\n ));\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.avatar,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[shape],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, shape, size, outline, className]\r\n );\r\n\r\n const avatarContent =\r\n !imgError && src ? (\r\n <ImageComponent\r\n src={src}\r\n alt={computedLabel}\r\n className={classMap.image}\r\n onError={() => setImgError(true)}\r\n loading={priority ? \"eager\" : \"lazy\"}\r\n aria-hidden=\"false\"\r\n role=\"img\"\r\n data-testid={testId ? `${testId}-image` : undefined}\r\n fill={true}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.initials}\r\n role=\"img\"\r\n aria-label={computedLabel}\r\n title={computedLabel}\r\n data-testid={testId ? `${testId}-initials` : undefined}\r\n >\r\n {fallbackContent}\r\n </span>\r\n );\r\n\r\n const statusIndicator = (status || statusIcon) && (\r\n <span\r\n className={combineClassNames(\r\n classMap.status,\r\n status && classMap[status],\r\n statusIcon ? \"icon_only\" : undefined,\r\n classMap[statusPosition]\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-status` : undefined}\r\n >\r\n {statusIcon || <span className={classMap.dot} />}\r\n </span>\r\n );\r\n\r\n const content = (\r\n <>\r\n {children ?? avatarContent}\r\n {statusIndicator}\r\n </>\r\n );\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!href) e.preventDefault();\r\n };\r\n\r\n const ariaAttrs = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": false,\r\n };\r\n\r\n if (href) {\r\n if (LinkComponent === \"a\") {\r\n return (\r\n <a\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid=\"avatar\"\r\n target={href.startsWith(\"http\") ? \"_blank\" : undefined}\r\n rel={href.startsWith(\"http\") ? \"noopener noreferrer\" : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </button>\r\n );\r\n};\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","import React from \"react\";\r\nimport \"./Avatar.scss\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\n\r\nconst classes = {\r\n avatar: \"avatar\",\r\n primary: \"avatar_primary\",\r\n secondary: \"avatar_secondary\",\r\n tertiary: \"avatar_tertiary\",\r\n quaternary: \"avatar_quaternary\",\r\n success: \"avatar_success\",\r\n warning: \"avatar_warning\",\r\n error: \"avatar_error\",\r\n clear: \"avatar_clear\",\r\n outline: \"avatar_outline\",\r\n\r\n clickable: \"avatar_clickable\",\r\n disabled: \"avatar_disabled\",\r\n\r\n circle: \"avatar_circle\",\r\n square: \"avatar_square\",\r\n rounded: \"avatar_rounded\",\r\n\r\n xs: \"avatar_xs\",\r\n small: \"avatar_small\",\r\n medium: \"avatar_medium\",\r\n large: \"avatar_large\",\r\n xl: \"avatar_xl\",\r\n\r\n shadowNone: \"avatar_shadow-None\",\r\n shadowLight: \"avatar_shadow-Light\",\r\n shadowMedium: \"avatar_shadow-Medium\",\r\n shadowStrong: \"avatar_shadow-Strong\",\r\n shadowIntense: \"avatar_shadow-Intense\",\r\n\r\n image: \"avatar_image\",\r\n initials: \"avatar_initials\",\r\n fallback_icon: \"avatar_fallback_icon\",\r\n icon_only: \"avatar_icon_only\",\r\n status: \"avatar_status\",\r\n online: \"avatar_status_online\",\r\n offline: \"avatar_status_offline\",\r\n away: \"avatar_status_away\",\r\n busy: \"avatar_status_busy\",\r\n topRight: \"avatar_status_topRight\",\r\n bottomRight: \"avatar_status_bottomRight\",\r\n bottomLeft: \"avatar_status_bottomLeft\",\r\n topLeft: \"avatar_status_topLeft\",\r\n\r\n dot: \"avatar_dot\",\r\n};\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Badge-DfsFGYhY.js","sources":["../../src/components/Badge/BadgeBase.tsx","../../src/components/Badge/core/Badge.tsx"],"sourcesContent":["import React, { useMemo, MouseEvent } from \"react\";\r\nimport { BadgeProps } from \"./Badge.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BadgeBaseProps extends BadgeProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const BadgeBase: React.FC<BadgeBaseProps> = ({\r\n text,\r\n children,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n disabled = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n title,\r\n size = getDefaultSize(),\r\n outline = false,\r\n icon: Icon,\r\n className = \"\",\r\n classMap,\r\n \"data-testid\": testId,\r\n onClick,\r\n}) => {\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.badge,\r\n classMap[size],\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n if (!text && !children) return null;\r\n\r\n const content = children ?? text;\r\n const label = typeof content === \"string\" ? content : text;\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n if (disabled) return;\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!title && !onClick) e.preventDefault();\r\n };\r\n\r\n return (\r\n <span\r\n className={combinedClassName}\r\n aria-label={label}\r\n title={title || label}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n role=\"status\"\r\n onClick={handleClick}\r\n aria-live=\"polite\"\r\n >\r\n {Icon && (\r\n <Icon\r\n className={classMap[\"badge_icon\"]}\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n />\r\n )}\r\n {content}\r\n </span>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Badge.scss\";\r\nimport { BadgeBase } from \"../BadgeBase\";\r\nimport { BadgeProps } from \"../Badge.types\";\r\n\r\nconst classes = {\r\n badge: \"badge\",\r\n\r\n primary: \"badge_primary\",\r\n secondary: \"badge_secondary\",\r\n tertiary: \"badge_tertiary\",\r\n quaternary: \"badge_quaternary\",\r\n clear: \"badge_clear\",\r\n\r\n success: \"badge_success\",\r\n error: \"badge_error\",\r\n warning: \"badge_warning\",\r\n\r\n xs: \"badge_xs\",\r\n small: \"badge_small\",\r\n medium: \"badge_medium\",\r\n large: \"badge_large\",\r\n xl: \"badge_xl\",\r\n\r\n shadowNone: \"badge_shadow-None\",\r\n shadowLight: \"badge_shadow-Light\",\r\n shadowMedium: \"badge_shadow-Medium\",\r\n shadowStrong: \"badge_shadow-Strong\",\r\n shadowIntense: \"badge_shadow-Intense\",\r\n\r\n roundNone: \"badge_round-None\",\r\n roundSmall: \"badge_round-Small\",\r\n roundMedium: \"badge_round-Medium\",\r\n roundLarge: \"badge_round-Large\",\r\n\r\n outline: \"badge_outline\",\r\n disabled: \"badge_disabled\",\r\n icon: \"badge_icon\",\r\n clickable: \"badge_clickable\",\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = (props) => {\r\n return <BadgeBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Badge;\r\n"],"names":[],"mappings":";;;;;AAeO,MAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,QAAQ,gBAAgB;AAAA,EACxB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAW,mBAAmB;AAAA,EAC9B,SAAS,iBAAiB;AAAA,EAC1B;AAAA,EACA,OAAO,eAAe;AAAA,EACtB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ;AAAA,EACA,eAAe;AAAA,EACf;AACF,MAAM;AACJ,QAAM,oBAAoB;AAAA,IACxB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,MACb,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS;AAAA,MACpB,WAAW,SAAS;AAAA,MACpB;AAAA,IACF;AAAA,IACF,CAAC,OAAO,MAAM,SAAS,SAAS;AAAA,EAClC;AAEA,MAAI,CAAC,QAAQ,CAAC,SAAiB,QAAA;AAE/B,QAAM,UAAU,YAAY;AAC5B,QAAM,QAAQ,OAAO,YAAY,WAAW,UAAU;AAEhD,QAAA,cAAc,CAAC,MAA+B;AAClD,QAAI,SAAU;AACd,uCAAU;AACV,QAAI,CAAC,SAAS,CAAC,WAAW,eAAe;AAAA,EAC3C;AAGE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,cAAY;AAAA,MACZ,OAAO,SAAS;AAAA,MAChB,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,MACzC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,aAAU;AAAA,MAET,UAAA;AAAA,QACC,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS,YAAY;AAAA,YAChC,eAAY;AAAA,YACZ,WAAU;AAAA,YACV,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,UAAA;AAAA,QAC3C;AAAA,QAED;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAEJ;AC5EA,MAAM,UAAU;AAAA,EACd,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb;AAEM,MAAA,QAA8B,CAAC,UAAU;AAC7C,SAAQ,oBAAA,WAAA,EAAW,GAAG,OAAO,UAAU,SAAS;AAClD;"}
1
+ {"version":3,"file":"Badge-DfsFGYhY.js","sources":["../../src/components/Badge/BadgeBase.tsx","../../src/components/Badge/core/Badge.tsx"],"sourcesContent":["import React, { useMemo, MouseEvent } from \"react\";\r\nimport { BadgeProps } from \"./Badge.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BadgeBaseProps extends BadgeProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const BadgeBase: React.FC<BadgeBaseProps> = ({\r\n text,\r\n children,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n disabled = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n title,\r\n size = getDefaultSize(),\r\n outline = false,\r\n icon: Icon,\r\n className = \"\",\r\n classMap,\r\n \"data-testid\": testId,\r\n onClick,\r\n}) => {\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.badge,\r\n classMap[size],\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n if (!text && !children) return null;\r\n\r\n const content = children ?? text;\r\n const label = typeof content === \"string\" ? content : text;\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n if (disabled) return;\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!title && !onClick) e.preventDefault();\r\n };\r\n\r\n return (\r\n <span\r\n className={combinedClassName}\r\n aria-label={label}\r\n title={title || label}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n role=\"status\"\r\n onClick={handleClick}\r\n aria-live=\"polite\"\r\n >\r\n {Icon && (\r\n <Icon\r\n className={classMap[\"badge_icon\"]}\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n />\r\n )}\r\n {content}\r\n </span>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Badge.scss\";\r\nimport { BadgeBase } from \"../BadgeBase\";\r\nimport { BadgeProps } from \"../Badge.types\";\r\n\r\nconst classes = {\r\n badge: \"badge\",\r\n\r\n primary: \"badge_primary\",\r\n secondary: \"badge_secondary\",\r\n tertiary: \"badge_tertiary\",\r\n quaternary: \"badge_quaternary\",\r\n clear: \"badge_clear\",\r\n\r\n success: \"badge_success\",\r\n error: \"badge_error\",\r\n warning: \"badge_warning\",\r\n\r\n xs: \"badge_xs\",\r\n small: \"badge_small\",\r\n medium: \"badge_medium\",\r\n large: \"badge_large\",\r\n xl: \"badge_xl\",\r\n\r\n shadowNone: \"badge_shadow-None\",\r\n shadowLight: \"badge_shadow-Light\",\r\n shadowMedium: \"badge_shadow-Medium\",\r\n shadowStrong: \"badge_shadow-Strong\",\r\n shadowIntense: \"badge_shadow-Intense\",\r\n\r\n roundNone: \"badge_round-None\",\r\n roundSmall: \"badge_round-Small\",\r\n roundMedium: \"badge_round-Medium\",\r\n roundLarge: \"badge_round-Large\",\r\n\r\n outline: \"badge_outline\",\r\n disabled: \"badge_disabled\",\r\n icon: \"badge_icon\",\r\n clickable: \"badge_clickable\",\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = (props) => {\r\n return <BadgeBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Badge;\r\n"],"names":[],"mappings":";;;;;AAeO,MAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT;AAAA,EACA,OAAO,eAAA;AAAA,EACP,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ;AAAA,EACA,eAAe;AAAA,EACf;AACF,MAAM;AACJ,QAAM,oBAAoB;AAAA,IACxB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,MACb,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS;AAAA,MACpB,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,OAAO,MAAM,SAAS,SAAS;AAAA,EAAA;AAGlC,MAAI,CAAC,QAAQ,CAAC,SAAU,QAAO;AAE/B,QAAM,UAAU,YAAY;AAC5B,QAAM,QAAQ,OAAO,YAAY,WAAW,UAAU;AAEtD,QAAM,cAAc,CAAC,MAA+B;AAClD,QAAI,SAAU;AACd,uCAAU;AACV,QAAI,CAAC,SAAS,CAAC,WAAW,eAAA;AAAA,EAC5B;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,cAAY;AAAA,MACZ,OAAO,SAAS;AAAA,MAChB,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,MACzC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,aAAU;AAAA,MAET,UAAA;AAAA,QAAA,QACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS,YAAY;AAAA,YAChC,eAAY;AAAA,YACZ,WAAU;AAAA,YACV,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAG5C;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AC5EA,MAAM,UAAU;AAAA,EACd,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb;AAEA,MAAM,QAA8B,CAAC,UAAU;AAC7C,SAAO,oBAAC,WAAA,EAAW,GAAG,OAAO,UAAU,SAAS;AAClD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Badge-LyKc0uJG.cjs","sources":["../../src/components/Badge/BadgeBase.tsx","../../src/components/Badge/core/Badge.tsx"],"sourcesContent":["import React, { useMemo, MouseEvent } from \"react\";\r\nimport { BadgeProps } from \"./Badge.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BadgeBaseProps extends BadgeProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const BadgeBase: React.FC<BadgeBaseProps> = ({\r\n text,\r\n children,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n disabled = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n title,\r\n size = getDefaultSize(),\r\n outline = false,\r\n icon: Icon,\r\n className = \"\",\r\n classMap,\r\n \"data-testid\": testId,\r\n onClick,\r\n}) => {\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.badge,\r\n classMap[size],\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n if (!text && !children) return null;\r\n\r\n const content = children ?? text;\r\n const label = typeof content === \"string\" ? content : text;\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n if (disabled) return;\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!title && !onClick) e.preventDefault();\r\n };\r\n\r\n return (\r\n <span\r\n className={combinedClassName}\r\n aria-label={label}\r\n title={title || label}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n role=\"status\"\r\n onClick={handleClick}\r\n aria-live=\"polite\"\r\n >\r\n {Icon && (\r\n <Icon\r\n className={classMap[\"badge_icon\"]}\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n />\r\n )}\r\n {content}\r\n </span>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Badge.scss\";\r\nimport { BadgeBase } from \"../BadgeBase\";\r\nimport { BadgeProps } from \"../Badge.types\";\r\n\r\nconst classes = {\r\n badge: \"badge\",\r\n\r\n primary: \"badge_primary\",\r\n secondary: \"badge_secondary\",\r\n tertiary: \"badge_tertiary\",\r\n quaternary: \"badge_quaternary\",\r\n clear: \"badge_clear\",\r\n\r\n success: \"badge_success\",\r\n error: \"badge_error\",\r\n warning: \"badge_warning\",\r\n\r\n xs: \"badge_xs\",\r\n small: \"badge_small\",\r\n medium: \"badge_medium\",\r\n large: \"badge_large\",\r\n xl: \"badge_xl\",\r\n\r\n shadowNone: \"badge_shadow-None\",\r\n shadowLight: \"badge_shadow-Light\",\r\n shadowMedium: \"badge_shadow-Medium\",\r\n shadowStrong: \"badge_shadow-Strong\",\r\n shadowIntense: \"badge_shadow-Intense\",\r\n\r\n roundNone: \"badge_round-None\",\r\n roundSmall: \"badge_round-Small\",\r\n roundMedium: \"badge_round-Medium\",\r\n roundLarge: \"badge_round-Large\",\r\n\r\n outline: \"badge_outline\",\r\n disabled: \"badge_disabled\",\r\n icon: \"badge_icon\",\r\n clickable: \"badge_clickable\",\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = (props) => {\r\n return <BadgeBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Badge;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;AAeO,MAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,QAAQA,kBAAAA,gBAAgB;AAAA,EACxB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAWC,kBAAAA,mBAAmB;AAAA,EAC9B,SAASC,kBAAAA,iBAAiB;AAAA,EAC1B;AAAA,EACA,OAAOC,kBAAAA,eAAe;AAAA,EACtB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ;AAAA,EACA,eAAe;AAAA,EACf;AACF,MAAM;AACJ,QAAM,oBAAoBC,MAAA;AAAA,IACxB,MACEC,WAAA;AAAA,MACE,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,MACb,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS;AAAA,MACpB,WAAW,SAAS;AAAA,MACpB;AAAA,IACF;AAAA,IACF,CAAC,OAAO,MAAM,SAAS,SAAS;AAAA,EAClC;AAEA,MAAI,CAAC,QAAQ,CAAC,SAAiB,QAAA;AAE/B,QAAM,UAAU,YAAY;AAC5B,QAAM,QAAQ,OAAO,YAAY,WAAW,UAAU;AAEhD,QAAA,cAAc,CAAC,MAA+B;AAClD,QAAI,SAAU;AACd,uCAAU;AACV,QAAI,CAAC,SAAS,CAAC,WAAW,eAAe;AAAA,EAC3C;AAGE,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,cAAY;AAAA,MACZ,OAAO,SAAS;AAAA,MAChB,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,MACzC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,aAAU;AAAA,MAET,UAAA;AAAA,QACC,QAAAC,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS,YAAY;AAAA,YAChC,eAAY;AAAA,YACZ,WAAU;AAAA,YACV,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,UAAA;AAAA,QAC3C;AAAA,QAED;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAEJ;AC5EA,MAAM,UAAU;AAAA,EACd,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb;AAEM,MAAA,QAA8B,CAAC,UAAU;AAC7C,SAAQA,2BAAAA,IAAA,WAAA,EAAW,GAAG,OAAO,UAAU,SAAS;AAClD;;"}
1
+ {"version":3,"file":"Badge-LyKc0uJG.cjs","sources":["../../src/components/Badge/BadgeBase.tsx","../../src/components/Badge/core/Badge.tsx"],"sourcesContent":["import React, { useMemo, MouseEvent } from \"react\";\r\nimport { BadgeProps } from \"./Badge.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BadgeBaseProps extends BadgeProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const BadgeBase: React.FC<BadgeBaseProps> = ({\r\n text,\r\n children,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n disabled = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n title,\r\n size = getDefaultSize(),\r\n outline = false,\r\n icon: Icon,\r\n className = \"\",\r\n classMap,\r\n \"data-testid\": testId,\r\n onClick,\r\n}) => {\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.badge,\r\n classMap[size],\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n if (!text && !children) return null;\r\n\r\n const content = children ?? text;\r\n const label = typeof content === \"string\" ? content : text;\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n if (disabled) return;\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!title && !onClick) e.preventDefault();\r\n };\r\n\r\n return (\r\n <span\r\n className={combinedClassName}\r\n aria-label={label}\r\n title={title || label}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n role=\"status\"\r\n onClick={handleClick}\r\n aria-live=\"polite\"\r\n >\r\n {Icon && (\r\n <Icon\r\n className={classMap[\"badge_icon\"]}\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n />\r\n )}\r\n {content}\r\n </span>\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./Badge.scss\";\r\nimport { BadgeBase } from \"../BadgeBase\";\r\nimport { BadgeProps } from \"../Badge.types\";\r\n\r\nconst classes = {\r\n badge: \"badge\",\r\n\r\n primary: \"badge_primary\",\r\n secondary: \"badge_secondary\",\r\n tertiary: \"badge_tertiary\",\r\n quaternary: \"badge_quaternary\",\r\n clear: \"badge_clear\",\r\n\r\n success: \"badge_success\",\r\n error: \"badge_error\",\r\n warning: \"badge_warning\",\r\n\r\n xs: \"badge_xs\",\r\n small: \"badge_small\",\r\n medium: \"badge_medium\",\r\n large: \"badge_large\",\r\n xl: \"badge_xl\",\r\n\r\n shadowNone: \"badge_shadow-None\",\r\n shadowLight: \"badge_shadow-Light\",\r\n shadowMedium: \"badge_shadow-Medium\",\r\n shadowStrong: \"badge_shadow-Strong\",\r\n shadowIntense: \"badge_shadow-Intense\",\r\n\r\n roundNone: \"badge_round-None\",\r\n roundSmall: \"badge_round-Small\",\r\n roundMedium: \"badge_round-Medium\",\r\n roundLarge: \"badge_round-Large\",\r\n\r\n outline: \"badge_outline\",\r\n disabled: \"badge_disabled\",\r\n icon: \"badge_icon\",\r\n clickable: \"badge_clickable\",\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = (props) => {\r\n return <BadgeBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Badge;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;AAeO,MAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,QAAQA,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT;AAAA,EACA,OAAOC,kBAAAA,eAAA;AAAA,EACP,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ;AAAA,EACA,eAAe;AAAA,EACf;AACF,MAAM;AACJ,QAAM,oBAAoBC,MAAAA;AAAAA,IACxB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,MACb,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS;AAAA,MACpB,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,OAAO,MAAM,SAAS,SAAS;AAAA,EAAA;AAGlC,MAAI,CAAC,QAAQ,CAAC,SAAU,QAAO;AAE/B,QAAM,UAAU,YAAY;AAC5B,QAAM,QAAQ,OAAO,YAAY,WAAW,UAAU;AAEtD,QAAM,cAAc,CAAC,MAA+B;AAClD,QAAI,SAAU;AACd,uCAAU;AACV,QAAI,CAAC,SAAS,CAAC,WAAW,eAAA;AAAA,EAC5B;AAEA,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,cAAY;AAAA,MACZ,OAAO,SAAS;AAAA,MAChB,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,MACzC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,aAAU;AAAA,MAET,UAAA;AAAA,QAAA,QACCC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS,YAAY;AAAA,YAChC,eAAY;AAAA,YACZ,WAAU;AAAA,YACV,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAG5C;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AC5EA,MAAM,UAAU;AAAA,EACd,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb;AAEA,MAAM,QAA8B,CAAC,UAAU;AAC7C,SAAOA,2BAAAA,IAAC,WAAA,EAAW,GAAG,OAAO,UAAU,SAAS;AAClD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs-DhioJUB9.js","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.core\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumbs-DhioJUB9.js","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.core\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs-xmUgcTXF.cjs","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.core\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useState","useMemo","combineClassNames","capitalize","jsx","jsxs","ArrowRightIcon","Button"],"mappings":";;;;;;;;;AAmGO,MAAM,iBAAiB;AC7EvB,MAAM,kBAAkD,CAAC;AAAA,EAC9D;AAAA,EACA,QAAQA,kBAAAA,gBAAgB;AAAA,EACxB,WAAWC,kBAAAA,mBAAmB;AAAA,EAC9B,SAASC,kBAAAA,iBAAiB;AAAA,EAC1B,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,OAAOC,kBAAAA,eAAe;AAAA,EACtB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA,eAAe;AACjB,MAAM;AACJ,QAAM,CAAC,YAAY,aAAa,IAAIC,MAAAA,SAAS,KAAK;AAC5C,QAAA,eAAe,MAAM,cAAc,IAAI;AAEvC,QAAA,eAA6BC,MAAAA,QAAQ,MAAM;AAC/C,QAAI,cAAc,CAAC,cAAc,MAAM,UAAU,WAAmB,QAAA;AAC9D,UAAA,QAAQ,MAAM,CAAC;AACrB,UAAM,YAAY,MAAM,MAAM,MAAM,UAAU,aAAa,EAAE;AAC7D,WAAO,CAAC,OAAO,EAAE,OAAO,eAAe,GAAG,GAAG,SAAS;AAAA,EACrD,GAAA,CAAC,OAAO,YAAY,UAAU,CAAC;AAElC,QAAM,mBAAmBA,MAAA;AAAA,IACvB,MACEC,WAAA;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS;AAAA,MACpB;AAAA,IACF;AAAA,IACF,CAAC,OAAO,MAAM,SAAS,SAAS;AAAA,EAClC;AAGE,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,cAAW;AAAA,MACX,eAAa,SAAS,GAAG,MAAM,mBAAmB;AAAA,MAClD,WAAW;AAAA,MACX,WAAS;AAAA,MACT,MAAK;AAAA,MACL,UAAS;AAAA,MAET,UAAAA,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,SAAS;AAAA,UACpB,eAAa,SAAS,GAAG,MAAM,cAAc;AAAA,UAE5C,UAAa,aAAA,IAAI,CAAC,MAAM,UAAU;AAC3B,kBAAA,SAAS,UAAU,aAAa,SAAS;AACzC,kBAAA,aAAa,KAAK,UAAU;AAElC,kBAAM,gBAAgBF,WAAA;AAAA,cACpB,SAAS;AAAA,cACT,cAAc,CAAC,cAAc,SAAS;AAAA,cACtC,UAAU,SAAS;AAAA,YACrB;AAGE,mBAAAG,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAa,SAAS,GAAG,MAAM,cAAc;AAAA,gBAE7C,WAAW;AAAA,gBACX,UAAS;AAAA,gBACT,WAAS;AAAA,gBACT,UAAS;AAAA,gBACT,gBAAc,SAAS,SAAS;AAAA,gBAE/B,UAAA;AAAA,kBACC,aAAAD,2BAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAM;AAAA,sBACN,MAAK;AAAA,sBACL,WAAW,SAAS;AAAA,sBACpB,cAAW;AAAA,sBACX,SAAS;AAAA,sBACT,UAAU;AAAA,sBACV,eAAa,SAAS,GAAG,MAAM,cAAc;AAAA,sBAE5C,UAAK,KAAA;AAAA,oBAAA;AAAA,kBAEN,IAAA,KAAK,QAAQ,CAAC,SAChBA,2BAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAM,KAAK;AAAA,sBACX,UAAS;AAAA,sBACT,WAAW,SAAS;AAAA,sBACpB,OAAO,KAAK;AAAA,sBACZ,eAAa,SAAS,GAAG,MAAM,oBAAoB;AAAA,sBAEnD,UAAAA,2BAAA,IAAC,UAAK,UAAS,QAAO,WAAW,SAAS,YACvC,eAAK,MACR,CAAA;AAAA,oBAAA;AAAA,kBAAA,IAGFA,2BAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAW,SAAS;AAAA,sBACpB,UAAS;AAAA,sBACT,gBAAa;AAAA,sBACb,eACE,SAAS,GAAG,MAAM,sBAAsB;AAAA,sBAGzC,UAAK,KAAA;AAAA,oBAAA;AAAA,kBACR;AAAA,kBAGD,CAAC,UACCA,2BAAAA,IAAA,QAAA,EAAK,WAAW,SAAS,WAAW,eAAY,QAC9C,UAAA,aAAcA,2BAAA,IAAAE,eAAA,gBAAA,CAAe,CAAA,GAChC;AAAA,kBAEFF,+BAAC,UAAK,UAAS,YAAW,SAAS,GAAG,QAAQ,CAAC,GAAI,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAjD9C,GAAG,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAK;AAAA,YAkD1C;AAAA,UAEH,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EACF;AAEJ;AAEA,gBAAgB,cAAc;AC/I9B,MAAM,UAAU;AAAA,EACd,aAAa;AAAA,EAEb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EAEP,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,cAAc;AAAA,EACd,aAAa;AAAA,EACb,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AAAA,EACX,gBAAgB;AAClB;AAEM,MAAA,cAA0C,CAAC,UAAU;AACzD,wCACG,iBAAiB,EAAA,GAAG,OAAO,UAAU,SAAS,iBAAiBG,OAAAA,QAAQ;AAE5E;;;"}
1
+ {"version":3,"file":"Breadcrumbs-xmUgcTXF.cjs","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.core\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useState","useMemo","combineClassNames","capitalize","jsx","jsxs","ArrowRightIcon","Button"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button-DEYbr8xW.js","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/core/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonProps } from \"./Button.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface ButtonBaseProps extends ButtonProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n}\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n href,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n fullWidth = false,\r\n \"data-testid\": testId,\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const computedAriaLabel =\r\n ariaLabel || (typeof children === \"string\" ? children : \"Button\");\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [theme, outline, size, fullWidth, disabled, className]\r\n );\r\n\r\n const sharedProps = {\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-busy\": loading || undefined,\r\n \"aria-disabled\": disabled || undefined,\r\n \"data-testid\": testId,\r\n tabIndex: disabled ? -1 : 0,\r\n onClick: disabled ? undefined : onClick,\r\n };\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon className={classMap.icon} />\r\n </span>\r\n )}\r\n <span\r\n className={classMap.buttonLabel}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n ) : (\r\n children\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href && isExternal) {\r\n return (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n if (href && !isExternal) {\r\n return (\r\n <LinkComponent\r\n href={href}\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","import React from \"react\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport \"./Button.scss\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst classes = {\r\n button: \"button\",\r\n icon: \"button_icon\",\r\n buttonIcon: \"button_button-icon\",\r\n buttonLabel: \"button_label\",\r\n loader: \"button_loader\",\r\n link: \"button_link\",\r\n\r\n fullWidth: \"button_full-width\",\r\n disabled: \"button_disabled\",\r\n outline: \"button_outline\",\r\n\r\n primary: \"button_primary\",\r\n secondary: \"button_secondary\",\r\n tertiary: \"button_tertiary\",\r\n quaternary: \"button_quaternary\",\r\n clear: \"button_clear\",\r\n\r\n success: \"button_success\",\r\n warning: \"button_warning\",\r\n error: \"button_error\",\r\n\r\n xs: \"button_xs\",\r\n small: \"button_small\",\r\n medium: \"button_medium\",\r\n large: \"button_large\",\r\n xl: \"button_xl\",\r\n\r\n shadowNone: \"button_shadow-None\",\r\n shadowLight: \"button_shadow-Light\",\r\n shadowMedium: \"button_shadow-Medium\",\r\n shadowStrong: \"button_shadow-Strong\",\r\n shadowIntense: \"button_shadow-Intense\",\r\n\r\n roundNone: \"button_round-None\",\r\n roundSmall: \"button_round-Small\",\r\n roundMedium: \"button_round-Medium\",\r\n roundLarge: \"button_round-Large\",\r\n};\r\n\r\nconst Button: React.FC<ButtonProps> = (props) => (\r\n <ButtonBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Button;\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button-DEYbr8xW.js","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/core/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonProps } from \"./Button.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface ButtonBaseProps extends ButtonProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n}\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n href,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n fullWidth = false,\r\n \"data-testid\": testId,\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const computedAriaLabel =\r\n ariaLabel || (typeof children === \"string\" ? children : \"Button\");\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [theme, outline, size, fullWidth, disabled, className]\r\n );\r\n\r\n const sharedProps = {\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-busy\": loading || undefined,\r\n \"aria-disabled\": disabled || undefined,\r\n \"data-testid\": testId,\r\n tabIndex: disabled ? -1 : 0,\r\n onClick: disabled ? undefined : onClick,\r\n };\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon className={classMap.icon} />\r\n </span>\r\n )}\r\n <span\r\n className={classMap.buttonLabel}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n ) : (\r\n children\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href && isExternal) {\r\n return (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n if (href && !isExternal) {\r\n return (\r\n <LinkComponent\r\n href={href}\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","import React from \"react\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport \"./Button.scss\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst classes = {\r\n button: \"button\",\r\n icon: \"button_icon\",\r\n buttonIcon: \"button_button-icon\",\r\n buttonLabel: \"button_label\",\r\n loader: \"button_loader\",\r\n link: \"button_link\",\r\n\r\n fullWidth: \"button_full-width\",\r\n disabled: \"button_disabled\",\r\n outline: \"button_outline\",\r\n\r\n primary: \"button_primary\",\r\n secondary: \"button_secondary\",\r\n tertiary: \"button_tertiary\",\r\n quaternary: \"button_quaternary\",\r\n clear: \"button_clear\",\r\n\r\n success: \"button_success\",\r\n warning: \"button_warning\",\r\n error: \"button_error\",\r\n\r\n xs: \"button_xs\",\r\n small: \"button_small\",\r\n medium: \"button_medium\",\r\n large: \"button_large\",\r\n xl: \"button_xl\",\r\n\r\n shadowNone: \"button_shadow-None\",\r\n shadowLight: \"button_shadow-Light\",\r\n shadowMedium: \"button_shadow-Medium\",\r\n shadowStrong: \"button_shadow-Strong\",\r\n shadowIntense: \"button_shadow-Intense\",\r\n\r\n roundNone: \"button_round-None\",\r\n roundSmall: \"button_round-Small\",\r\n roundMedium: \"button_round-Medium\",\r\n roundLarge: \"button_round-Large\",\r\n};\r\n\r\nconst Button: React.FC<ButtonProps> = (props) => (\r\n <ButtonBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Button;\r\n"],"names":[],"mappings":";;;;;AAgBA,MAAM,aAAa;AAAA,EAIjB,CACE;AAAA,IACE,MAAM;AAAA,IACN,QAAQ,gBAAA;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,IACA,OAAO;AAAA,IACP,WAAW,mBAAA;AAAA,IACX,SAAS,iBAAA;AAAA,IACT;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,UAAU;AAAA,IACV,OAAO,eAAA;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,eAAe;AAAA,IACf;AAAA,IACA,gBAAgB;AAAA,IAChB,GAAG;AAAA,EAAA,GAEL,QACG;AACH,UAAM,oBACJ,cAAc,OAAO,aAAa,WAAW,WAAW;AAE1D,UAAM,oBAAoB;AAAA,MACxB,MACE;AAAA,QACE,SAAS;AAAA,QACT,SAAS,KAAK;AAAA,QACd,SAAS,KAAK;AAAA,QACd,SAAS,IAAI;AAAA,QACb,WAAW,SAAS;AAAA,QACpB,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,QAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,QACnD,aAAa,SAAS;AAAA,QACtB,YAAY,SAAS;AAAA,QACrB;AAAA,MAAA;AAAA,MAEJ,CAAC,OAAO,SAAS,MAAM,WAAW,UAAU,SAAS;AAAA,IAAA;AAGvD,UAAM,cAAc;AAAA,MAClB,cAAc;AAAA,MACd,aAAa,WAAW;AAAA,MACxB,iBAAiB,YAAY;AAAA,MAC7B,eAAe;AAAA,MACf,UAAU,WAAW,KAAK;AAAA,MAC1B,SAAS,WAAW,SAAY;AAAA,IAAA;AAGlC,UAAM,UACJ,qBAAA,UAAA,EACG,UAAA;AAAA,MAAA,QACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,SAAS;AAAA,UACpB,eAAY;AAAA,UACZ,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,UAEzC,UAAA,oBAAC,MAAA,EAAK,WAAW,SAAS,KAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAGpC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,SAAS;AAAA,UACpB,eAAa,SAAS,GAAG,MAAM,aAAa;AAAA,UAE3C,UAAA,8BACE,OAAA,EAAI,WAAW,SAAS,QAAQ,eAAY,QAAO,IAEpD;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ,GACF;AAGF,QAAI,QAAQ,YAAY;AACtB,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,QAAO;AAAA,UACP,KAAI;AAAA,UACJ,MAAK;AAAA,UACL,WAAW,kBAAkB,mBAAmB,SAAS,IAAI;AAAA,UAC7D;AAAA,UACC,GAAG;AAAA,UACH,GAAG;AAAA,UAEH,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAGP;AAEA,QAAI,QAAQ,CAAC,YAAY;AACvB,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,WAAW,kBAAkB,mBAAmB,SAAS,IAAI;AAAA,UAC7D;AAAA,UACC,GAAG;AAAA,UACH,GAAG;AAAA,UAEH,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAGP;AAEA,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACC,GAAG;AAAA,QACH,GAAG;AAAA,QAEH,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEA,WAAW,cAAc;AC7IzB,MAAM,UAAU;AAAA,EACd,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EAEN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EAET,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EAEP,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,SAAgC,CAAC,UACrC,oBAAC,cAAY,GAAG,OAAO,UAAU,QAAA,CAAS;"}