boreal-ui 0.0.50 → 0.0.54

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 (241) hide show
  1. package/dist/core/{Card-YD4BgNEU.js → Card-BjLC4t0w.js} +20 -47
  2. package/dist/core/Card-BjLC4t0w.js.map +1 -0
  3. package/dist/core/{Card-C57chjAP.cjs → Card-DRM65kM-.cjs} +20 -47
  4. package/dist/core/Card-DRM65kM-.cjs.map +1 -0
  5. package/dist/core/Card.cjs.js +1 -1
  6. package/dist/core/Card.js +1 -1
  7. package/dist/core/{FileUpload-C0eHx1h8.js → FileUpload-9fIxslAo.js} +2 -2
  8. package/dist/core/{FileUpload-C0eHx1h8.js.map → FileUpload-9fIxslAo.js.map} +1 -1
  9. package/dist/core/{FileUpload-BJ3RJxT3.cjs → FileUpload-DbMxpH-U.cjs} +2 -2
  10. package/dist/core/{FileUpload-BJ3RJxT3.cjs.map → FileUpload-DbMxpH-U.cjs.map} +1 -1
  11. package/dist/core/FileUpload.cjs.js +1 -1
  12. package/dist/core/FileUpload.js +1 -1
  13. package/dist/core/{MessagePopup-B3lEfar7.js → MessagePopup-BMGIVKoJ.js} +4 -4
  14. package/dist/core/{MessagePopup-B3lEfar7.js.map → MessagePopup-BMGIVKoJ.js.map} +1 -1
  15. package/dist/core/{MessagePopup-CtdpuRFv.cjs → MessagePopup-DQQKRCGF.cjs} +4 -4
  16. package/dist/core/{MessagePopup-CtdpuRFv.cjs.map → MessagePopup-DQQKRCGF.cjs.map} +1 -1
  17. package/dist/core/MessagePopup.cjs.js +4 -0
  18. package/dist/core/MessagePopup.cjs.js.map +1 -0
  19. package/dist/core/MessagePopup.js +5 -0
  20. package/dist/core/MessagePopup.js.map +1 -0
  21. package/dist/core/{ProgressBar-DaA5vvnq.js → ProgressBar-BLcSyVgQ.js} +51 -21
  22. package/dist/core/ProgressBar-BLcSyVgQ.js.map +1 -0
  23. package/dist/core/{ProgressBar-BwjYOqoE.cjs → ProgressBar-BbIZLV1t.cjs} +50 -20
  24. package/dist/core/ProgressBar-BbIZLV1t.cjs.map +1 -0
  25. package/dist/core/ProgressBar.cjs.js +1 -1
  26. package/dist/core/ProgressBar.js +1 -1
  27. package/dist/core/{Taginput-BXCxdLf0.cjs → TagInput-BXCxdLf0.cjs} +1 -1
  28. package/dist/core/TagInput-BXCxdLf0.cjs.map +1 -0
  29. package/dist/core/{Taginput-CoxxwLXg.js → TagInput-CoxxwLXg.js} +1 -1
  30. package/dist/core/TagInput-CoxxwLXg.js.map +1 -0
  31. package/dist/core/TagInput.cjs.js +2 -2
  32. package/dist/core/TagInput.js +1 -1
  33. package/dist/core/boreal-ui.css +31 -0
  34. package/dist/core/index.cjs.js +7 -7
  35. package/dist/core/index.js +6 -6
  36. package/dist/next/{Avatar-B-Ws4Ueo.js → Avatar-B24bFFqY.js} +3 -3
  37. package/dist/next/{Avatar-B-Ws4Ueo.js.map → Avatar-B24bFFqY.js.map} +1 -1
  38. package/dist/next/{Avatar-B9sMyRWr.cjs → Avatar-CPaxiA0r.cjs} +3 -3
  39. package/dist/next/{Avatar-B9sMyRWr.cjs.map → Avatar-CPaxiA0r.cjs.map} +1 -1
  40. package/dist/next/Avatar.cjs.js +1 -1
  41. package/dist/next/Avatar.js +1 -1
  42. package/dist/next/{Breadcrumbs-CrKRsQf3.cjs → Breadcrumbs-BlFi63K8.cjs} +3 -3
  43. package/dist/next/{Breadcrumbs-CrKRsQf3.cjs.map → Breadcrumbs-BlFi63K8.cjs.map} +1 -1
  44. package/dist/next/{Breadcrumbs-ZK64MIGd.js → Breadcrumbs-D9BMYEZi.js} +3 -3
  45. package/dist/next/{Breadcrumbs-ZK64MIGd.js.map → Breadcrumbs-D9BMYEZi.js.map} +1 -1
  46. package/dist/next/Breadcrumbs.cjs.js +1 -1
  47. package/dist/next/Breadcrumbs.js +1 -1
  48. package/dist/next/{Button-BI0LErYM.cjs → Button-DPoX7ahh.cjs} +2 -2
  49. package/dist/next/{Button-BI0LErYM.cjs.map → Button-DPoX7ahh.cjs.map} +1 -1
  50. package/dist/next/{Button-qs4m4zx0.js → Button-DhH3Gy0J.js} +2 -2
  51. package/dist/next/{Button-qs4m4zx0.js.map → Button-DhH3Gy0J.js.map} +1 -1
  52. package/dist/next/Button.cjs.js +1 -1
  53. package/dist/next/Button.js +1 -1
  54. package/dist/next/{Card-CNwE1Mkt.js → Card-4SKxHmOQ.js} +23 -50
  55. package/dist/next/Card-4SKxHmOQ.js.map +1 -0
  56. package/dist/next/{Card-CddrG8Xx.cjs → Card-BdzmlYGf.cjs} +23 -50
  57. package/dist/next/Card-BdzmlYGf.cjs.map +1 -0
  58. package/dist/next/Card.cjs.js +1 -1
  59. package/dist/next/Card.js +1 -1
  60. package/dist/next/{Chip-D2mvW5L7.js → Chip-BqMZEDW_.js} +2 -2
  61. package/dist/next/{Chip-D2mvW5L7.js.map → Chip-BqMZEDW_.js.map} +1 -1
  62. package/dist/next/{Chip-BWTBVAIE.cjs → Chip-CqvlZI-K.cjs} +2 -2
  63. package/dist/next/{Chip-BWTBVAIE.cjs.map → Chip-CqvlZI-K.cjs.map} +1 -1
  64. package/dist/next/Chip.cjs.js +1 -1
  65. package/dist/next/Chip.js +1 -1
  66. package/dist/next/{CommandPalette-BO6R9zQs.cjs → CommandPalette-C0NN-NWE.cjs} +2 -2
  67. package/dist/next/{CommandPalette-BO6R9zQs.cjs.map → CommandPalette-C0NN-NWE.cjs.map} +1 -1
  68. package/dist/next/{CommandPalette-CN0BiN0R.js → CommandPalette-vklqlRV0.js} +2 -2
  69. package/dist/next/{CommandPalette-CN0BiN0R.js.map → CommandPalette-vklqlRV0.js.map} +1 -1
  70. package/dist/next/CommandPalette.cjs.js +1 -1
  71. package/dist/next/CommandPalette.js +1 -1
  72. package/dist/next/{Dropdown-Czc7qKPn.js → Dropdown-BjxT8ivq.js} +2 -2
  73. package/dist/next/{Dropdown-Czc7qKPn.js.map → Dropdown-BjxT8ivq.js.map} +1 -1
  74. package/dist/next/{Dropdown-BnuZW883.cjs → Dropdown-IW2Ph6-e.cjs} +2 -2
  75. package/dist/next/{Dropdown-BnuZW883.cjs.map → Dropdown-IW2Ph6-e.cjs.map} +1 -1
  76. package/dist/next/Dropdown.cjs.js +1 -1
  77. package/dist/next/Dropdown.js +1 -1
  78. package/dist/next/{EmptyState-Bb90F-ej.cjs → EmptyState-BS6-CuHp.cjs} +2 -2
  79. package/dist/next/{EmptyState-Bb90F-ej.cjs.map → EmptyState-BS6-CuHp.cjs.map} +1 -1
  80. package/dist/next/{EmptyState-Brd4N36F.js → EmptyState-D_Gcrj_3.js} +2 -2
  81. package/dist/next/{EmptyState-Brd4N36F.js.map → EmptyState-D_Gcrj_3.js.map} +1 -1
  82. package/dist/next/EmptyState.cjs.js +1 -1
  83. package/dist/next/EmptyState.js +1 -1
  84. package/dist/next/{FileUpload-Drm5_xEx.cjs → FileUpload-Cj99fQhe.cjs} +4 -4
  85. package/dist/next/{FileUpload-Drm5_xEx.cjs.map → FileUpload-Cj99fQhe.cjs.map} +1 -1
  86. package/dist/next/{FileUpload-BMMpH1El.js → FileUpload-St2eEaTn.js} +4 -4
  87. package/dist/next/{FileUpload-BMMpH1El.js.map → FileUpload-St2eEaTn.js.map} +1 -1
  88. package/dist/next/FileUpload.cjs.js +1 -1
  89. package/dist/next/FileUpload.js +1 -1
  90. package/dist/next/{Footer-EF2-ryvY.cjs → Footer-B3KTDWBR.cjs} +4 -4
  91. package/dist/next/{Footer-EF2-ryvY.cjs.map → Footer-B3KTDWBR.cjs.map} +1 -1
  92. package/dist/next/{Footer-B6_LG958.js → Footer-dtGtOPyR.js} +4 -4
  93. package/dist/next/{Footer-B6_LG958.js.map → Footer-dtGtOPyR.js.map} +1 -1
  94. package/dist/next/Footer.cjs.js +1 -1
  95. package/dist/next/Footer.js +1 -1
  96. package/dist/next/{IconButton-BTUFKRZt.js → IconButton-Ct3YtlG9.js} +2 -2
  97. package/dist/next/{IconButton-BTUFKRZt.js.map → IconButton-Ct3YtlG9.js.map} +1 -1
  98. package/dist/next/{IconButton-2l-_HOMB.cjs → IconButton-aF7cTy19.cjs} +2 -2
  99. package/dist/next/{IconButton-2l-_HOMB.cjs.map → IconButton-aF7cTy19.cjs.map} +1 -1
  100. package/dist/next/IconButton.cjs.js +1 -1
  101. package/dist/next/IconButton.js +1 -1
  102. package/dist/next/{MessagePopup-WUBGyJ_F.js → MessagePopup-C4n0Qw7n.js} +6 -6
  103. package/dist/next/{MessagePopup-WUBGyJ_F.js.map → MessagePopup-C4n0Qw7n.js.map} +1 -1
  104. package/dist/next/{MessagePopup-DsquzWSn.cjs → MessagePopup-CwOeZAAM.cjs} +6 -6
  105. package/dist/next/{MessagePopup-DsquzWSn.cjs.map → MessagePopup-CwOeZAAM.cjs.map} +1 -1
  106. package/dist/next/MessagePopup.cjs.js +4 -0
  107. package/dist/next/MessagePopup.cjs.js.map +1 -0
  108. package/dist/next/MessagePopup.js +5 -0
  109. package/dist/next/MessagePopup.js.map +1 -0
  110. package/dist/next/{Modal-B2ilLCoi.js → Modal-CIzoBs9H.js} +2 -2
  111. package/dist/next/{Modal-B2ilLCoi.js.map → Modal-CIzoBs9H.js.map} +1 -1
  112. package/dist/next/{Modal-CVKVAEdd.cjs → Modal-DCNGQN70.cjs} +2 -2
  113. package/dist/next/{Modal-CVKVAEdd.cjs.map → Modal-DCNGQN70.cjs.map} +1 -1
  114. package/dist/next/Modal.cjs.js +1 -1
  115. package/dist/next/Modal.js +1 -1
  116. package/dist/next/{NavBar-DVEf0iJH.cjs → NavBar-DDu46bCF.cjs} +3 -3
  117. package/dist/next/{NavBar-DVEf0iJH.cjs.map → NavBar-DDu46bCF.cjs.map} +1 -1
  118. package/dist/next/{NavBar-CmvgkEZt.js → NavBar-DyI3rKSN.js} +3 -3
  119. package/dist/next/{NavBar-CmvgkEZt.js.map → NavBar-DyI3rKSN.js.map} +1 -1
  120. package/dist/next/NavBar.cjs.js +1 -1
  121. package/dist/next/NavBar.js +1 -1
  122. package/dist/next/{NotificationCenter-CtM10CVj.js → NotificationCenter-BIuKaeXk.js} +3 -3
  123. package/dist/next/{NotificationCenter-CtM10CVj.js.map → NotificationCenter-BIuKaeXk.js.map} +1 -1
  124. package/dist/next/{NotificationCenter-CtL6rozQ.cjs → NotificationCenter-CzdOOnWg.cjs} +3 -3
  125. package/dist/next/{NotificationCenter-CtL6rozQ.cjs.map → NotificationCenter-CzdOOnWg.cjs.map} +1 -1
  126. package/dist/next/NotificationCenter.cjs.js +1 -1
  127. package/dist/next/NotificationCenter.js +1 -1
  128. package/dist/next/{Pager-Bxxewb8I.cjs → Pager-C6vww_Lf.cjs} +3 -3
  129. package/dist/next/{Pager-Bxxewb8I.cjs.map → Pager-C6vww_Lf.cjs.map} +1 -1
  130. package/dist/next/{Pager-D0Mw7o7v.js → Pager-DkXLe3dd.js} +3 -3
  131. package/dist/next/{Pager-D0Mw7o7v.js.map → Pager-DkXLe3dd.js.map} +1 -1
  132. package/dist/next/Pager.cjs.js +1 -1
  133. package/dist/next/Pager.js +1 -1
  134. package/dist/next/ProgressBar-BM0Rp63R.js +188 -0
  135. package/dist/next/ProgressBar-BM0Rp63R.js.map +1 -0
  136. package/dist/next/ProgressBar-CDhjp_gn.cjs +187 -0
  137. package/dist/next/ProgressBar-CDhjp_gn.cjs.map +1 -0
  138. package/dist/next/ProgressBar.cjs.js +1 -1
  139. package/dist/next/ProgressBar.js +1 -1
  140. package/dist/next/{Sidebar-DajVSn82.cjs → Sidebar-CBC-Gu5d.cjs} +3 -3
  141. package/dist/next/{Sidebar-DajVSn82.cjs.map → Sidebar-CBC-Gu5d.cjs.map} +1 -1
  142. package/dist/next/{Sidebar-CJ4VrQIW.js → Sidebar-oJzZMxwu.js} +3 -3
  143. package/dist/next/{Sidebar-CJ4VrQIW.js.map → Sidebar-oJzZMxwu.js.map} +1 -1
  144. package/dist/next/Sidebar.cjs.js +1 -1
  145. package/dist/next/Sidebar.js +1 -1
  146. package/dist/next/{Stepper-BvA_ZAho.js → Stepper-DBwramgz.js} +2 -2
  147. package/dist/next/{Stepper-BvA_ZAho.js.map → Stepper-DBwramgz.js.map} +1 -1
  148. package/dist/next/{Stepper-D6X70Sr6.cjs → Stepper-YQqjSOG0.cjs} +2 -2
  149. package/dist/next/{Stepper-D6X70Sr6.cjs.map → Stepper-YQqjSOG0.cjs.map} +1 -1
  150. package/dist/next/Stepper.cjs.js +1 -1
  151. package/dist/next/Stepper.js +1 -1
  152. package/dist/next/{TagInput-DfNJiPKh.cjs → TagInput-B38cJqaG.cjs} +3 -3
  153. package/dist/next/TagInput-B38cJqaG.cjs.map +1 -0
  154. package/dist/next/{TagInput-DKzxPiwU.js → TagInput-BDbDZ1W8.js} +3 -3
  155. package/dist/next/TagInput-BDbDZ1W8.js.map +1 -0
  156. package/dist/next/TagInput.cjs.js +1 -1
  157. package/dist/next/TagInput.js +1 -1
  158. package/dist/next/{TextInput-C1TUvbWx.cjs → TextInput-C3cLfd6E.cjs} +2 -2
  159. package/dist/next/{TextInput-C1TUvbWx.cjs.map → TextInput-C3cLfd6E.cjs.map} +1 -1
  160. package/dist/next/{TextInput-CyGkgvS3.js → TextInput-D68lumzk.js} +2 -2
  161. package/dist/next/{TextInput-CyGkgvS3.js.map → TextInput-D68lumzk.js.map} +1 -1
  162. package/dist/next/TextInput.cjs.js +1 -1
  163. package/dist/next/TextInput.js +1 -1
  164. package/dist/next/{Toolbar-PwnuYGDR.cjs → Toolbar-B-APlNjI.cjs} +2 -2
  165. package/dist/next/{Toolbar-PwnuYGDR.cjs.map → Toolbar-B-APlNjI.cjs.map} +1 -1
  166. package/dist/next/{Toolbar-wbusnAUV.js → Toolbar-DHyc9uqa.js} +2 -2
  167. package/dist/next/{Toolbar-wbusnAUV.js.map → Toolbar-DHyc9uqa.js.map} +1 -1
  168. package/dist/next/Toolbar.cjs.js +1 -1
  169. package/dist/next/Toolbar.js +1 -1
  170. package/dist/next/boreal-ui.css +122 -72
  171. package/dist/next/{image-BBS8QO15.js → image-B9PuwflE.js} +47 -3
  172. package/dist/next/image-B9PuwflE.js.map +1 -0
  173. package/dist/next/{image-A4nTeRaX.cjs → image-Bo_vHlt1.cjs} +47 -3
  174. package/dist/next/image-Bo_vHlt1.cjs.map +1 -0
  175. package/dist/next/index.cjs.js +23 -23
  176. package/dist/next/index.js +23 -23
  177. package/dist/next/{link-lNk_lOdS.cjs → link-B1N-q38H.cjs} +276 -49
  178. package/dist/next/link-B1N-q38H.cjs.map +1 -0
  179. package/dist/next/{link-CxWP3aXr.js → link-CyxHztrS.js} +276 -49
  180. package/dist/next/link-CyxHztrS.js.map +1 -0
  181. package/dist/next/{navigation-DxXFNXZM.js → navigation-C2hD8Jlk.js} +157 -199
  182. package/dist/next/navigation-C2hD8Jlk.js.map +1 -0
  183. package/dist/next/{navigation-CZU71Pmb.cjs → navigation-C3npGZmO.cjs} +157 -199
  184. package/dist/next/navigation-C3npGZmO.cjs.map +1 -0
  185. package/dist/tsconfig.build.tsbuildinfo +1 -1
  186. package/dist/types/components/Card/Card.types.d.ts +4 -4
  187. package/dist/types/components/Card/Card.types.d.ts.map +1 -1
  188. package/dist/types/components/Card/CardBase.d.ts.map +1 -1
  189. package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopup.types.d.ts +2 -2
  190. package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopup.types.d.ts.map +1 -1
  191. package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopupBase.d.ts.map +1 -1
  192. package/dist/types/components/MessagePopup/core/MessagePopup.d.ts +6 -0
  193. package/dist/types/components/{MessagePopUp → MessagePopup}/core/MessagePopup.d.ts.map +1 -1
  194. package/dist/types/components/MessagePopup/next/MessagePopup.d.ts +5 -0
  195. package/dist/types/components/{MessagePopUp → MessagePopup}/next/MessagePopup.d.ts.map +1 -1
  196. package/dist/types/components/ProgressBar/ProgressBar.types.d.ts +10 -1
  197. package/dist/types/components/ProgressBar/ProgressBar.types.d.ts.map +1 -1
  198. package/dist/types/components/ProgressBar/ProgressBarBase.d.ts.map +1 -1
  199. package/dist/types/components/ProgressBar/core/ProgressBar.d.ts.map +1 -1
  200. package/dist/types/components/TagInput/{Taginput.types.d.ts → TagInput.types.d.ts} +1 -1
  201. package/dist/types/components/TagInput/{Taginput.types.d.ts.map → TagInput.types.d.ts.map} +1 -1
  202. package/dist/types/components/TagInput/TagInputBase.d.ts +1 -1
  203. package/dist/types/components/TagInput/core/TagInput.d.ts +6 -0
  204. package/dist/types/components/TagInput/core/{Taginput.d.ts.map → TagInput.d.ts.map} +1 -1
  205. package/dist/types/components/TagInput/next/TagInput.d.ts +1 -1
  206. package/dist/types/index.core.d.ts +2 -2
  207. package/dist/types/index.next.d.ts +1 -1
  208. package/dist/types/public.types.d.ts +2 -2
  209. package/package.json +8 -8
  210. package/dist/core/Card-C57chjAP.cjs.map +0 -1
  211. package/dist/core/Card-YD4BgNEU.js.map +0 -1
  212. package/dist/core/MessagePopUp.cjs.js +0 -4
  213. package/dist/core/MessagePopUp.cjs.js.map +0 -1
  214. package/dist/core/MessagePopUp.js +0 -5
  215. package/dist/core/MessagePopUp.js.map +0 -1
  216. package/dist/core/ProgressBar-BwjYOqoE.cjs.map +0 -1
  217. package/dist/core/ProgressBar-DaA5vvnq.js.map +0 -1
  218. package/dist/core/Taginput-BXCxdLf0.cjs.map +0 -1
  219. package/dist/core/Taginput-CoxxwLXg.js.map +0 -1
  220. package/dist/next/Card-CNwE1Mkt.js.map +0 -1
  221. package/dist/next/Card-CddrG8Xx.cjs.map +0 -1
  222. package/dist/next/MessagePopUp.cjs.js +0 -4
  223. package/dist/next/MessagePopUp.cjs.js.map +0 -1
  224. package/dist/next/MessagePopUp.js +0 -5
  225. package/dist/next/MessagePopUp.js.map +0 -1
  226. package/dist/next/ProgressBar-BMuv0kis.cjs +0 -151
  227. package/dist/next/ProgressBar-BMuv0kis.cjs.map +0 -1
  228. package/dist/next/ProgressBar-DuaWQouO.js +0 -152
  229. package/dist/next/ProgressBar-DuaWQouO.js.map +0 -1
  230. package/dist/next/TagInput-DKzxPiwU.js.map +0 -1
  231. package/dist/next/TagInput-DfNJiPKh.cjs.map +0 -1
  232. package/dist/next/image-A4nTeRaX.cjs.map +0 -1
  233. package/dist/next/image-BBS8QO15.js.map +0 -1
  234. package/dist/next/link-CxWP3aXr.js.map +0 -1
  235. package/dist/next/link-lNk_lOdS.cjs.map +0 -1
  236. package/dist/next/navigation-CZU71Pmb.cjs.map +0 -1
  237. package/dist/next/navigation-DxXFNXZM.js.map +0 -1
  238. package/dist/types/components/MessagePopUp/core/MessagePopup.d.ts +0 -6
  239. package/dist/types/components/MessagePopUp/next/MessagePopup.d.ts +0 -5
  240. package/dist/types/components/TagInput/core/Taginput.d.ts +0 -6
  241. /package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopupBase.d.ts +0 -0
@@ -16531,7 +16531,38 @@ a:hover {
16531
16531
  min-width: 160px;
16532
16532
  }
16533
16533
  }
16534
+ .progress_layout {
16535
+ display: flex;
16536
+ gap: 0.5rem;
16537
+ }
16538
+ .progress_title_top {
16539
+ flex-direction: column;
16540
+ }
16541
+ .progress_title_bottom {
16542
+ flex-direction: column;
16543
+ }
16544
+ .progress_title_left {
16545
+ flex-direction: row;
16546
+ align-items: center;
16547
+ }
16548
+ .progress_title_right {
16549
+ align-items: center;
16550
+ }
16551
+ .progress_title_overlay {
16552
+ position: absolute;
16553
+ inset: 0;
16554
+ display: flex;
16555
+ align-items: center;
16556
+ justify-content: center;
16557
+ pointer-events: none;
16558
+ }
16559
+ .progress_title {
16560
+ font-size: 0.875em;
16561
+ line-height: 1.2;
16562
+ white-space: nowrap;
16563
+ }
16534
16564
  .progress_bar {
16565
+ position: relative;
16535
16566
  height: 100%;
16536
16567
  width: 0;
16537
16568
  transition: width 0.4s ease-in-out;
@@ -12,8 +12,8 @@ const TextInput = require("./TextInput-DYALlUc_.cjs");
12
12
  const TextArea = require("./TextArea-BJGUr6r_.cjs");
13
13
  const Select = require("./Select-B5Zoc07A.cjs");
14
14
  const Footer = require("./Footer-CYIUIgV1.cjs");
15
- const FileUpload = require("./FileUpload-BJ3RJxT3.cjs");
16
- const Taginput = require("./Taginput-BXCxdLf0.cjs");
15
+ const FileUpload = require("./FileUpload-DbMxpH-U.cjs");
16
+ const TagInput = require("./TagInput-BXCxdLf0.cjs");
17
17
  const RadioButton = require("./RadioButton-BxdmcaZg.cjs");
18
18
  const Slider = require("./Slider-S8KnYlkd.cjs");
19
19
  const Checkbox = require("./Checkbox-JvYzNuZp.cjs");
@@ -28,13 +28,13 @@ const React = require("react");
28
28
  const uuid = require("uuid");
29
29
  const classNames = require("./classNames-BcWMx052.cjs");
30
30
  const Badge = require("./Badge-CyGz8K5W.cjs");
31
- const ProgressBar = require("./ProgressBar-BwjYOqoE.cjs");
31
+ const ProgressBar = require("./ProgressBar-BbIZLV1t.cjs");
32
32
  const CircularProgress = require("./CircularProgress-DpLsV7FP.cjs");
33
33
  const Rating = require("./Rating-U1MIoh5b.cjs");
34
34
  const Skeleton = require("./Skeleton-tetAZCSl.cjs");
35
35
  const Spinner = require("./Spinner-JTcQ_d4T.cjs");
36
36
  const Tooltip = require("./Tooltip-DS7DSyij.cjs");
37
- const MessagePopup = require("./MessagePopup-CtdpuRFv.cjs");
37
+ const MessagePopup = require("./MessagePopup-DQQKRCGF.cjs");
38
38
  const PopOver = require("./PopOver-IzDFOu7Y.cjs");
39
39
  const NavBar = require("./NavBar-Bbd3SVHi.cjs");
40
40
  const Breadcrumbs = require("./Breadcrumbs-BUc98niR.cjs");
@@ -53,7 +53,7 @@ const EmptyState = require("./EmptyState-P-MSItCX.cjs");
53
53
  const CommandPalette = require("./CommandPalette-CPhVbQAc.cjs");
54
54
  const NotificationCenter = require("./NotificationCenter-DfOOEt9N.cjs");
55
55
  const Sidebar = require("./Sidebar-13bKMpw7.cjs");
56
- const Card = require("./Card-C57chjAP.cjs");
56
+ const Card = require("./Card-DRM65kM-.cjs");
57
57
  const Avatar = require("./Avatar-DOg8W9yf.cjs");
58
58
  const ChipGroupBase = React.forwardRef(
59
59
  ({
@@ -167,7 +167,7 @@ exports.Select = Select.Select;
167
167
  exports.Footer = Footer.Footer;
168
168
  exports.ThemeSelect = Footer.UserThemeSettings;
169
169
  exports.FileUpload = FileUpload.FileUpload;
170
- exports.TagInput = Taginput.TagInput;
170
+ exports.TagInput = TagInput.TagInput;
171
171
  exports.RadioButton = RadioButton.RadioButton;
172
172
  exports.Slider = Slider.Slider;
173
173
  exports.Checkbox = Checkbox.Checkbox;
@@ -184,7 +184,7 @@ exports.Rating = Rating.Rating;
184
184
  exports.Skeleton = Skeleton.SkeletonLoader;
185
185
  exports.Spinner = Spinner.Spinner;
186
186
  exports.Tooltip = Tooltip.Tooltip;
187
- exports.MessagePopUp = MessagePopup.MessagePopUp;
187
+ exports.MessagePopup = MessagePopup.MessagePopup;
188
188
  exports.PopOver = PopOver.Popover;
189
189
  exports.Navbar = NavBar.NavBar;
190
190
  exports.Breadcrumbs = Breadcrumbs.Breadcrumbs;
@@ -11,8 +11,8 @@ import { T as T2 } from "./TextInput-qw-jAx_3.js";
11
11
  import { T as T3 } from "./TextArea-CIdsUIzt.js";
12
12
  import { S as S2 } from "./Select-DntK69DL.js";
13
13
  import { F, U } from "./Footer-D9RimHx9.js";
14
- import { F as F2 } from "./FileUpload-C0eHx1h8.js";
15
- import { T as T4 } from "./Taginput-CoxxwLXg.js";
14
+ import { F as F2 } from "./FileUpload-9fIxslAo.js";
15
+ import { T as T4 } from "./TagInput-CoxxwLXg.js";
16
16
  import { R } from "./RadioButton-DygrrlH_.js";
17
17
  import { S as S3 } from "./Slider-WsZnPCUo.js";
18
18
  import { C } from "./Checkbox-BdNhCbz_.js";
@@ -27,13 +27,13 @@ import { forwardRef, useState, useEffect, useCallback, useImperativeHandle } fro
27
27
  import { v4 } from "uuid";
28
28
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
29
29
  import { B as B2 } from "./Badge-DnE8lt7-.js";
30
- import { P } from "./ProgressBar-DaA5vvnq.js";
30
+ import { P } from "./ProgressBar-BLcSyVgQ.js";
31
31
  import { C as C3 } from "./CircularProgress-CGqwPSPq.js";
32
32
  import { R as R2 } from "./Rating-B4qbA_y6.js";
33
33
  import { S as S4 } from "./Skeleton-BjpQHG5i.js";
34
34
  import { S as S5 } from "./Spinner-D1CHbKYU.js";
35
35
  import { T as T5 } from "./Tooltip-BzRqlOTz.js";
36
- import { M as M2 } from "./MessagePopup-B3lEfar7.js";
36
+ import { M as M2 } from "./MessagePopup-BMGIVKoJ.js";
37
37
  import { P as P2 } from "./PopOver-Bt80x5vL.js";
38
38
  import { N } from "./NavBar-DujO5gH_.js";
39
39
  import { B as B3 } from "./Breadcrumbs-Bh_Ocv4_.js";
@@ -52,7 +52,7 @@ import { E } from "./EmptyState-Cp3ocTQX.js";
52
52
  import { C as C4 } from "./CommandPalette-Df69KRv4.js";
53
53
  import { N as N2 } from "./NotificationCenter-DLCzWNve.js";
54
54
  import { S as S7 } from "./Sidebar-DN_J0CwY.js";
55
- import { C as C5 } from "./Card-YD4BgNEU.js";
55
+ import { C as C5 } from "./Card-BjLC4t0w.js";
56
56
  import { A as A2 } from "./Avatar-BM8AwOB6.js";
57
57
  const ChipGroupBase = forwardRef(
58
58
  ({
@@ -175,7 +175,7 @@ export {
175
175
  F3 as FormGroup,
176
176
  I as IconButton,
177
177
  M as MarkdownRenderer,
178
- M2 as MessagePopUp,
178
+ M2 as MessagePopup,
179
179
  M4 as MetricBox,
180
180
  M3 as Modal,
181
181
  N as Navbar,
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { forwardRef, useState, useMemo } from "react";
3
- import { I as Image } from "./image-BBS8QO15.js";
4
- import { L as Link } from "./link-CxWP3aXr.js";
3
+ import { I as Image } from "./image-B9PuwflE.js";
4
+ import { L as Link } from "./link-CyxHztrS.js";
5
5
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
6
6
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
7
7
  import { b as getDefaultShadow, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
@@ -301,4 +301,4 @@ Avatar.displayName = "Avatar";
301
301
  export {
302
302
  Avatar as A
303
303
  };
304
- //# sourceMappingURL=Avatar-B-Ws4Ueo.js.map
304
+ //# sourceMappingURL=Avatar-B24bFFqY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar-B-Ws4Ueo.js","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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, {\r\n useMemo,\r\n useState,\r\n MouseEvent,\r\n AnchorHTMLAttributes,\r\n ButtonHTMLAttributes,\r\n forwardRef,\r\n} from \"react\";\r\nimport { AvatarBaseProps } 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\n\r\nexport const AvatarBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n AvatarBaseProps\r\n>(function AvatarBase(\r\n {\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 = \"avatar\",\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const [imgError, setImgError] = useState(false);\r\n\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n\r\n const linkAria = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": disabled || undefined,\r\n } as const;\r\n const buttonAria = { \"aria-label\": computedLabel } as const;\r\n\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 [\r\n theme,\r\n state,\r\n shape,\r\n size,\r\n shadow,\r\n disabled,\r\n outline,\r\n onClick,\r\n className,\r\n classMap,\r\n ]\r\n );\r\n\r\n const isNextImage = typeof ImageComponent !== \"string\";\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 {...(priority\r\n ? { loading: \"eager\" as const }\r\n : { loading: \"lazy\" as const })}\r\n {...(isNextImage ? { fill: true } : {})}\r\n data-testid={testId ? `${testId}-image` : undefined}\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 ? classMap.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 if (disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n };\r\n\r\n if (href) {\r\n const isHttp = /^https?:\\/\\//i.test(href);\r\n return LinkComponent === \"a\" ? (\r\n <a\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n href={disabled ? undefined : href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n target={isHttp && !disabled ? \"_blank\" : undefined}\r\n rel={isHttp && !disabled ? \"noopener noreferrer\" : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n ) : (\r\n <LinkComponent\r\n ref={ref}\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as Record<string, unknown>)}\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=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...buttonAria}\r\n {...(rest as ButtonHTMLAttributes<HTMLButtonElement>)}\r\n >\r\n {content}\r\n </button>\r\n );\r\n});\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar = forwardRef<HTMLAnchorElement | HTMLButtonElement, AvatarProps>(\r\n (props, ref) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n ref={ref}\r\n />\r\n )\r\n);\r\nAvatar.displayName = \"Avatar\";\r\nexport default Avatar;\r\n"],"names":["AvatarBase","disabled","status","outline"],"mappings":"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"}
1
+ {"version":3,"file":"Avatar-B24bFFqY.js","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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, {\r\n useMemo,\r\n useState,\r\n MouseEvent,\r\n AnchorHTMLAttributes,\r\n ButtonHTMLAttributes,\r\n forwardRef,\r\n} from \"react\";\r\nimport { AvatarBaseProps } 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\n\r\nexport const AvatarBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n AvatarBaseProps\r\n>(function AvatarBase(\r\n {\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 = \"avatar\",\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const [imgError, setImgError] = useState(false);\r\n\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n\r\n const linkAria = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": disabled || undefined,\r\n } as const;\r\n const buttonAria = { \"aria-label\": computedLabel } as const;\r\n\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 [\r\n theme,\r\n state,\r\n shape,\r\n size,\r\n shadow,\r\n disabled,\r\n outline,\r\n onClick,\r\n className,\r\n classMap,\r\n ]\r\n );\r\n\r\n const isNextImage = typeof ImageComponent !== \"string\";\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 {...(priority\r\n ? { loading: \"eager\" as const }\r\n : { loading: \"lazy\" as const })}\r\n {...(isNextImage ? { fill: true } : {})}\r\n data-testid={testId ? `${testId}-image` : undefined}\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 ? classMap.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 if (disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n };\r\n\r\n if (href) {\r\n const isHttp = /^https?:\\/\\//i.test(href);\r\n return LinkComponent === \"a\" ? (\r\n <a\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n href={disabled ? undefined : href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n target={isHttp && !disabled ? \"_blank\" : undefined}\r\n rel={isHttp && !disabled ? \"noopener noreferrer\" : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n ) : (\r\n <LinkComponent\r\n ref={ref}\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as Record<string, unknown>)}\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=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...buttonAria}\r\n {...(rest as ButtonHTMLAttributes<HTMLButtonElement>)}\r\n >\r\n {content}\r\n </button>\r\n );\r\n});\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar = forwardRef<HTMLAnchorElement | HTMLButtonElement, AvatarProps>(\r\n (props, ref) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n ref={ref}\r\n />\r\n )\r\n);\r\nAvatar.displayName = \"Avatar\";\r\nexport default Avatar;\r\n"],"names":["AvatarBase","disabled","status","outline"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
3
  const React = require("react");
4
- const image$1 = require("./image-A4nTeRaX.cjs");
5
- const link = require("./link-lNk_lOdS.cjs");
4
+ const image$1 = require("./image-Bo_vHlt1.cjs");
5
+ const link = require("./link-B1N-q38H.cjs");
6
6
  const classNames = require("./classNames-BcWMx052.cjs");
7
7
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
8
8
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
@@ -300,4 +300,4 @@ const Avatar = React.forwardRef(
300
300
  );
301
301
  Avatar.displayName = "Avatar";
302
302
  exports.Avatar = Avatar;
303
- //# sourceMappingURL=Avatar-B9sMyRWr.cjs.map
303
+ //# sourceMappingURL=Avatar-CPaxiA0r.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar-B9sMyRWr.cjs","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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, {\r\n useMemo,\r\n useState,\r\n MouseEvent,\r\n AnchorHTMLAttributes,\r\n ButtonHTMLAttributes,\r\n forwardRef,\r\n} from \"react\";\r\nimport { AvatarBaseProps } 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\n\r\nexport const AvatarBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n AvatarBaseProps\r\n>(function AvatarBase(\r\n {\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 = \"avatar\",\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const [imgError, setImgError] = useState(false);\r\n\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n\r\n const linkAria = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": disabled || undefined,\r\n } as const;\r\n const buttonAria = { \"aria-label\": computedLabel } as const;\r\n\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 [\r\n theme,\r\n state,\r\n shape,\r\n size,\r\n shadow,\r\n disabled,\r\n outline,\r\n onClick,\r\n className,\r\n classMap,\r\n ]\r\n );\r\n\r\n const isNextImage = typeof ImageComponent !== \"string\";\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 {...(priority\r\n ? { loading: \"eager\" as const }\r\n : { loading: \"lazy\" as const })}\r\n {...(isNextImage ? { fill: true } : {})}\r\n data-testid={testId ? `${testId}-image` : undefined}\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 ? classMap.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 if (disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n };\r\n\r\n if (href) {\r\n const isHttp = /^https?:\\/\\//i.test(href);\r\n return LinkComponent === \"a\" ? (\r\n <a\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n href={disabled ? undefined : href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n target={isHttp && !disabled ? \"_blank\" : undefined}\r\n rel={isHttp && !disabled ? \"noopener noreferrer\" : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n ) : (\r\n <LinkComponent\r\n ref={ref}\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as Record<string, unknown>)}\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=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...buttonAria}\r\n {...(rest as ButtonHTMLAttributes<HTMLButtonElement>)}\r\n >\r\n {content}\r\n </button>\r\n );\r\n});\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar = forwardRef<HTMLAnchorElement | HTMLButtonElement, AvatarProps>(\r\n (props, ref) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n ref={ref}\r\n />\r\n )\r\n);\r\nAvatar.displayName = \"Avatar\";\r\nexport default Avatar;\r\n"],"names":["jsxs","jsx","forwardRef","AvatarBase","disabled","status","getDefaultSize","getDefaultShadow","outline","getDefaultTheme","useState","useMemo","combineClassNames","capitalize","Fragment","Image","Link"],"mappings":"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"}
1
+ {"version":3,"file":"Avatar-CPaxiA0r.cjs","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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, {\r\n useMemo,\r\n useState,\r\n MouseEvent,\r\n AnchorHTMLAttributes,\r\n ButtonHTMLAttributes,\r\n forwardRef,\r\n} from \"react\";\r\nimport { AvatarBaseProps } 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\n\r\nexport const AvatarBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n AvatarBaseProps\r\n>(function AvatarBase(\r\n {\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 = \"avatar\",\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const [imgError, setImgError] = useState(false);\r\n\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n\r\n const linkAria = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": disabled || undefined,\r\n } as const;\r\n const buttonAria = { \"aria-label\": computedLabel } as const;\r\n\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 [\r\n theme,\r\n state,\r\n shape,\r\n size,\r\n shadow,\r\n disabled,\r\n outline,\r\n onClick,\r\n className,\r\n classMap,\r\n ]\r\n );\r\n\r\n const isNextImage = typeof ImageComponent !== \"string\";\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 {...(priority\r\n ? { loading: \"eager\" as const }\r\n : { loading: \"lazy\" as const })}\r\n {...(isNextImage ? { fill: true } : {})}\r\n data-testid={testId ? `${testId}-image` : undefined}\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 ? classMap.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 if (disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n };\r\n\r\n if (href) {\r\n const isHttp = /^https?:\\/\\//i.test(href);\r\n return LinkComponent === \"a\" ? (\r\n <a\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n href={disabled ? undefined : href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n target={isHttp && !disabled ? \"_blank\" : undefined}\r\n rel={isHttp && !disabled ? \"noopener noreferrer\" : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n ) : (\r\n <LinkComponent\r\n ref={ref}\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n tabIndex={disabled ? -1 : 0}\r\n {...linkAria}\r\n {...(rest as Record<string, unknown>)}\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=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...buttonAria}\r\n {...(rest as ButtonHTMLAttributes<HTMLButtonElement>)}\r\n >\r\n {content}\r\n </button>\r\n );\r\n});\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar = forwardRef<HTMLAnchorElement | HTMLButtonElement, AvatarProps>(\r\n (props, ref) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n ref={ref}\r\n />\r\n )\r\n);\r\nAvatar.displayName = \"Avatar\";\r\nexport default Avatar;\r\n"],"names":["jsxs","jsx","forwardRef","AvatarBase","disabled","status","getDefaultSize","getDefaultShadow","outline","getDefaultTheme","useState","useMemo","combineClassNames","capitalize","Fragment","Image","Link"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Avatar = require("./Avatar-B9sMyRWr.cjs");
2
+ const Avatar = require("./Avatar-CPaxiA0r.cjs");
3
3
  module.exports = Avatar.Avatar;
4
4
  //# sourceMappingURL=Avatar.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { A } from "./Avatar-B-Ws4Ueo.js";
1
+ import { A } from "./Avatar-B24bFFqY.js";
2
2
  export {
3
3
  A as default
4
4
  };
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
- const link$1 = require("./link-lNk_lOdS.cjs");
3
+ const link$1 = require("./link-B1N-q38H.cjs");
4
4
  const React = require("react");
5
5
  const classNames = require("./classNames-BcWMx052.cjs");
6
6
  const ArrowRightIcon = require("./ArrowRightIcon-BVb75OpX.cjs");
7
7
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
8
8
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
9
9
  ;/* empty css */
10
- const Button = require("./Button-BI0LErYM.cjs");
10
+ const Button = require("./Button-DPoX7ahh.cjs");
11
11
  const breadcrumbs = "_breadcrumbs_1c6om_85";
12
12
  const ellipsis = "_ellipsis_1c6om_111";
13
13
  const roundNone = "_roundNone_1c6om_115";
@@ -235,4 +235,4 @@ const Breadcrumbs = (props) => {
235
235
  Breadcrumbs.displayName = "Breadcrumbs";
236
236
  exports.Breadcrumbs = Breadcrumbs;
237
237
  exports.ELLIPSIS_LABEL = ELLIPSIS_LABEL;
238
- //# sourceMappingURL=Breadcrumbs-CrKRsQf3.cjs.map
238
+ //# sourceMappingURL=Breadcrumbs-BlFi63K8.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs-CrKRsQf3.cjs","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/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\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","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsBaseProps,\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 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 = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n if (!items || items.length === 0) return null;\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 [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ]\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 >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\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 >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n onClick={disabled ? undefined : handleExpand}\r\n disabled={disabled}\r\n tabIndex={disabled ? -1 : 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 disabled ? (\r\n // Disabled: render non-interactive label for links\r\n <span\r\n className={classMap.link_disabled}\r\n title={item.label}\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={item.label}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\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 ) : (\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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","separator","disabled","getDefaultSize","outline","useState","useMemo","combineClassNames","capitalize","jsx","item","jsxs","ArrowRightIcon","Link","Button"],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumbs-BlFi63K8.cjs","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/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\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","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsBaseProps,\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 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 = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n if (!items || items.length === 0) return null;\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 [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ]\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 >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\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 >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n onClick={disabled ? undefined : handleExpand}\r\n disabled={disabled}\r\n tabIndex={disabled ? -1 : 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 disabled ? (\r\n // Disabled: render non-interactive label for links\r\n <span\r\n className={classMap.link_disabled}\r\n title={item.label}\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={item.label}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\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 ) : (\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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","separator","disabled","getDefaultSize","outline","useState","useMemo","combineClassNames","capitalize","jsx","item","jsxs","ArrowRightIcon","Link","Button"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { L as Link } from "./link-CxWP3aXr.js";
2
+ import { L as Link } from "./link-CyxHztrS.js";
3
3
  import { useState, useMemo } from "react";
4
4
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
5
5
  import { A as ArrowRightIcon } from "./ArrowRightIcon-BYQv5XS8.js";
6
6
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
7
7
  import { a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
8
8
  /* empty css */
9
- import { B as Button } from "./Button-qs4m4zx0.js";
9
+ import { B as Button } from "./Button-DhH3Gy0J.js";
10
10
  const breadcrumbs = "_breadcrumbs_1c6om_85";
11
11
  const ellipsis = "_ellipsis_1c6om_111";
12
12
  const roundNone = "_roundNone_1c6om_115";
@@ -236,4 +236,4 @@ export {
236
236
  Breadcrumbs as B,
237
237
  ELLIPSIS_LABEL as E
238
238
  };
239
- //# sourceMappingURL=Breadcrumbs-ZK64MIGd.js.map
239
+ //# sourceMappingURL=Breadcrumbs-D9BMYEZi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs-ZK64MIGd.js","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/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\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","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsBaseProps,\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 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 = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n if (!items || items.length === 0) return null;\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 [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ]\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 >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\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 >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n onClick={disabled ? undefined : handleExpand}\r\n disabled={disabled}\r\n tabIndex={disabled ? -1 : 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 disabled ? (\r\n // Disabled: render non-interactive label for links\r\n <span\r\n className={classMap.link_disabled}\r\n title={item.label}\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={item.label}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\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 ) : (\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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":["separator","disabled","outline","item"],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumbs-D9BMYEZi.js","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/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\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","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsBaseProps,\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 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 = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n if (!items || items.length === 0) return null;\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 [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ]\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 >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\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 >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n onClick={disabled ? undefined : handleExpand}\r\n disabled={disabled}\r\n tabIndex={disabled ? -1 : 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 disabled ? (\r\n // Disabled: render non-interactive label for links\r\n <span\r\n className={classMap.link_disabled}\r\n title={item.label}\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={item.label}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\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 ) : (\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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":["separator","disabled","outline","item"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Breadcrumbs = require("./Breadcrumbs-CrKRsQf3.cjs");
3
+ const Breadcrumbs = require("./Breadcrumbs-BlFi63K8.cjs");
4
4
  exports.ELLIPSIS_LABEL = Breadcrumbs.ELLIPSIS_LABEL;
5
5
  exports.default = Breadcrumbs.Breadcrumbs;
6
6
  //# sourceMappingURL=Breadcrumbs.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { E, B } from "./Breadcrumbs-ZK64MIGd.js";
1
+ import { E, B } from "./Breadcrumbs-D9BMYEZi.js";
2
2
  export {
3
3
  E as ELLIPSIS_LABEL,
4
4
  B as default
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
3
  const React = require("react");
4
- const link = require("./link-lNk_lOdS.cjs");
4
+ const link = require("./link-B1N-q38H.cjs");
5
5
  const classNames = require("./classNames-BcWMx052.cjs");
6
6
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
7
7
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
@@ -228,4 +228,4 @@ ButtonBase.displayName = "ButtonBase";
228
228
  const Button = React.forwardRef((props, ref) => /* @__PURE__ */ require$$2.jsx(ButtonBase, { ...props, classMap: styles, LinkComponent: link.Link, ref }));
229
229
  Button.displayName = "Button";
230
230
  exports.Button = Button;
231
- //# sourceMappingURL=Button-BI0LErYM.cjs.map
231
+ //# sourceMappingURL=Button-DPoX7ahh.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button-BI0LErYM.cjs","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/next/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonBaseProps } 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\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 = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const iconOnly =\r\n !children ||\r\n (typeof children !== \"string\" && React.Children.count(children) === 0);\r\n const computedAriaLabel = iconOnly ? ariaLabel : undefined;\r\n\r\n if (process.env.NODE_ENV === \"development\" && iconOnly && !ariaLabel) {\r\n console.warn(\"ButtonBase: icon-only buttons must provide `ariaLabel`.\");\r\n }\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 [\r\n theme,\r\n state,\r\n outline,\r\n size,\r\n shadow,\r\n rounding,\r\n fullWidth,\r\n disabled,\r\n className,\r\n classMap,\r\n ]\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 aria-live={loading ? \"polite\" : undefined}\r\n aria-atomic={loading || undefined}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <>\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n <span className=\"sr_only\">Loading</span>\r\n </>\r\n ) : (\r\n <>\r\n {children}\r\n {href && (isExternal ?? /^https?:\\/\\//i.test(href)) && (\r\n <span className=\"sr_only\"> (opens in a new tab)</span>\r\n )}\r\n </>\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href) {\r\n const Comp = (LinkComponent ?? \"a\") as React.ElementType;\r\n const external = (isExternal ?? /^https?:\\/\\//i.test(href)) && !disabled;\r\n\r\n const linkCommon = {\r\n ref: ref as React.Ref<HTMLAnchorElement>,\r\n className: combineClassNames(combinedClassName, classMap.link),\r\n onClick: disabled\r\n ? (e: React.MouseEvent) => e.preventDefault()\r\n : onClick,\r\n \"aria-disabled\": disabled || undefined,\r\n tabIndex: disabled ? -1 : undefined,\r\n ...(computedAriaLabel ? { \"aria-label\": computedAriaLabel } : {}),\r\n \"data-testid\": testId,\r\n } as const;\r\n\r\n if (Comp === \"a\") {\r\n return (\r\n <a\r\n {...linkCommon}\r\n href={disabled ? undefined : href}\r\n target={external ? \"_blank\" : undefined}\r\n rel={external ? \"noopener noreferrer\" : undefined}\r\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <Comp\r\n {...(linkCommon as Omit<\r\n React.ComponentPropsWithoutRef<typeof Comp>,\r\n \"children\"\r\n >)}\r\n href={href as never}\r\n {...(rest as React.ComponentPropsWithoutRef<typeof Comp>)}\r\n >\r\n {content}\r\n </Comp>\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 || loading}\r\n aria-busy={loading || undefined}\r\n {...(computedAriaLabel ? { \"aria-label\": computedAriaLabel } : {})}\r\n data-testid={testId}\r\n onClick={disabled ? undefined : onClick}\r\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\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","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Button.module.scss\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => (\r\n <ButtonBase {...props} classMap={styles} LinkComponent={Link} ref={ref} />\r\n));\r\nButton.displayName = \"Button\";\r\nexport default Button;\r\n"],"names":["forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","disabled","outline","getDefaultSize","fullWidth","useMemo","combineClassNames","capitalize","jsxs","Fragment","jsx","Link"],"mappings":"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"}
1
+ {"version":3,"file":"Button-DPoX7ahh.cjs","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/next/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonBaseProps } 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\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 = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const iconOnly =\r\n !children ||\r\n (typeof children !== \"string\" && React.Children.count(children) === 0);\r\n const computedAriaLabel = iconOnly ? ariaLabel : undefined;\r\n\r\n if (process.env.NODE_ENV === \"development\" && iconOnly && !ariaLabel) {\r\n console.warn(\"ButtonBase: icon-only buttons must provide `ariaLabel`.\");\r\n }\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 [\r\n theme,\r\n state,\r\n outline,\r\n size,\r\n shadow,\r\n rounding,\r\n fullWidth,\r\n disabled,\r\n className,\r\n classMap,\r\n ]\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 aria-live={loading ? \"polite\" : undefined}\r\n aria-atomic={loading || undefined}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <>\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n <span className=\"sr_only\">Loading</span>\r\n </>\r\n ) : (\r\n <>\r\n {children}\r\n {href && (isExternal ?? /^https?:\\/\\//i.test(href)) && (\r\n <span className=\"sr_only\"> (opens in a new tab)</span>\r\n )}\r\n </>\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href) {\r\n const Comp = (LinkComponent ?? \"a\") as React.ElementType;\r\n const external = (isExternal ?? /^https?:\\/\\//i.test(href)) && !disabled;\r\n\r\n const linkCommon = {\r\n ref: ref as React.Ref<HTMLAnchorElement>,\r\n className: combineClassNames(combinedClassName, classMap.link),\r\n onClick: disabled\r\n ? (e: React.MouseEvent) => e.preventDefault()\r\n : onClick,\r\n \"aria-disabled\": disabled || undefined,\r\n tabIndex: disabled ? -1 : undefined,\r\n ...(computedAriaLabel ? { \"aria-label\": computedAriaLabel } : {}),\r\n \"data-testid\": testId,\r\n } as const;\r\n\r\n if (Comp === \"a\") {\r\n return (\r\n <a\r\n {...linkCommon}\r\n href={disabled ? undefined : href}\r\n target={external ? \"_blank\" : undefined}\r\n rel={external ? \"noopener noreferrer\" : undefined}\r\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <Comp\r\n {...(linkCommon as Omit<\r\n React.ComponentPropsWithoutRef<typeof Comp>,\r\n \"children\"\r\n >)}\r\n href={href as never}\r\n {...(rest as React.ComponentPropsWithoutRef<typeof Comp>)}\r\n >\r\n {content}\r\n </Comp>\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 || loading}\r\n aria-busy={loading || undefined}\r\n {...(computedAriaLabel ? { \"aria-label\": computedAriaLabel } : {})}\r\n data-testid={testId}\r\n onClick={disabled ? undefined : onClick}\r\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\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","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Button.module.scss\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => (\r\n <ButtonBase {...props} classMap={styles} LinkComponent={Link} ref={ref} />\r\n));\r\nButton.displayName = \"Button\";\r\nexport default Button;\r\n"],"names":["forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","disabled","outline","getDefaultSize","fullWidth","useMemo","combineClassNames","capitalize","jsxs","Fragment","jsx","Link"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import React, { forwardRef, useMemo } from "react";
3
- import { L as Link } from "./link-CxWP3aXr.js";
3
+ import { L as Link } from "./link-CyxHztrS.js";
4
4
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
5
5
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
6
6
  import { a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
@@ -229,4 +229,4 @@ Button.displayName = "Button";
229
229
  export {
230
230
  Button as B
231
231
  };
232
- //# sourceMappingURL=Button-qs4m4zx0.js.map
232
+ //# sourceMappingURL=Button-DhH3Gy0J.js.map