boreal-ui 0.0.24 → 0.0.26

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 (288) hide show
  1. package/dist/core/{Badge-DfsFGYhY.js → Badge-DUALACa_.js} +2 -2
  2. package/dist/core/Badge-DUALACa_.js.map +1 -0
  3. package/dist/core/{Badge-LyKc0uJG.cjs → Badge-DwjSTlvN.cjs} +2 -2
  4. package/dist/core/Badge-DwjSTlvN.cjs.map +1 -0
  5. package/dist/core/Badge.cjs.js +1 -1
  6. package/dist/core/Badge.js +1 -1
  7. package/dist/core/{Breadcrumbs-DhioJUB9.js → Breadcrumbs-BKx89feu.js} +3 -3
  8. package/dist/core/Breadcrumbs-BKx89feu.js.map +1 -0
  9. package/dist/core/{Breadcrumbs-xmUgcTXF.cjs → Breadcrumbs-DrfR3704.cjs} +3 -3
  10. package/dist/core/Breadcrumbs-DrfR3704.cjs.map +1 -0
  11. package/dist/core/Breadcrumbs.cjs.js +1 -1
  12. package/dist/core/Breadcrumbs.js +1 -1
  13. package/dist/core/{Button-wz_We8xU.cjs → Button-BnyCKkUs.cjs} +2 -2
  14. package/dist/core/Button-BnyCKkUs.cjs.map +1 -0
  15. package/dist/core/{Button-DEYbr8xW.js → Button-brEyEh7E.js} +2 -2
  16. package/dist/core/Button-brEyEh7E.js.map +1 -0
  17. package/dist/core/Button.cjs.js +1 -1
  18. package/dist/core/Button.js +1 -1
  19. package/dist/core/{Card-DKPk0zgQ.js → Card-Bae4H8tR.js} +25 -9
  20. package/dist/core/Card-Bae4H8tR.js.map +1 -0
  21. package/dist/core/{Card-DCxLBwi0.cjs → Card-BsYXSByx.cjs} +25 -9
  22. package/dist/core/Card-BsYXSByx.cjs.map +1 -0
  23. package/dist/core/Card.cjs.js +1 -1
  24. package/dist/core/Card.js +1 -1
  25. package/dist/core/{Checkbox-BLBbE9Ww.js → Checkbox-BykCObI-.js} +2 -2
  26. package/dist/core/Checkbox-BykCObI-.js.map +1 -0
  27. package/dist/core/{Checkbox-fVnseKGF.cjs → Checkbox-Ye8jGIKV.cjs} +2 -2
  28. package/dist/core/Checkbox-Ye8jGIKV.cjs.map +1 -0
  29. package/dist/core/Checkbox.cjs.js +1 -1
  30. package/dist/core/Checkbox.js +1 -1
  31. package/dist/core/{Chip-M8cB2nXM.js → Chip-DjWJJ19V.js} +2 -2
  32. package/dist/core/{Chip-M8cB2nXM.js.map → Chip-DjWJJ19V.js.map} +1 -1
  33. package/dist/core/{Chip-BtQlcu8Z.cjs → Chip-JKvM6DlT.cjs} +2 -2
  34. package/dist/core/{Chip-BtQlcu8Z.cjs.map → Chip-JKvM6DlT.cjs.map} +1 -1
  35. package/dist/core/Chip.cjs.js +1 -1
  36. package/dist/core/Chip.js +1 -1
  37. package/dist/core/{CommandPalette-CHOC0Z2m.js → CommandPalette-PhWRjxbF.js} +2 -2
  38. package/dist/core/{CommandPalette-CHOC0Z2m.js.map → CommandPalette-PhWRjxbF.js.map} +1 -1
  39. package/dist/core/{CommandPalette-XTi50U_E.cjs → CommandPalette-XZ3MmC7j.cjs} +2 -2
  40. package/dist/core/{CommandPalette-XTi50U_E.cjs.map → CommandPalette-XZ3MmC7j.cjs.map} +1 -1
  41. package/dist/core/CommandPalette.cjs.js +1 -1
  42. package/dist/core/CommandPalette.js +1 -1
  43. package/dist/core/{Dropdown-CL7TH2lJ.js → Dropdown-CPKkSeq2.js} +2 -2
  44. package/dist/core/{Dropdown-CL7TH2lJ.js.map → Dropdown-CPKkSeq2.js.map} +1 -1
  45. package/dist/core/{Dropdown-CPsxvzTA.cjs → Dropdown-iTrhrEMO.cjs} +2 -2
  46. package/dist/core/{Dropdown-CPsxvzTA.cjs.map → Dropdown-iTrhrEMO.cjs.map} +1 -1
  47. package/dist/core/Dropdown.cjs.js +1 -1
  48. package/dist/core/Dropdown.js +1 -1
  49. package/dist/core/{EmptyState-BAaCfJzO.cjs → EmptyState-C0TYr_9h.cjs} +2 -2
  50. package/dist/core/{EmptyState-BAaCfJzO.cjs.map → EmptyState-C0TYr_9h.cjs.map} +1 -1
  51. package/dist/core/{EmptyState-Bd-es_rG.js → EmptyState-DHNuzYnG.js} +2 -2
  52. package/dist/core/{EmptyState-Bd-es_rG.js.map → EmptyState-DHNuzYnG.js.map} +1 -1
  53. package/dist/core/EmptyState.cjs.js +1 -1
  54. package/dist/core/EmptyState.js +1 -1
  55. package/dist/core/{FileUpload-DxjQ2wnn.js → FileUpload-BJu-5NKg.js} +3 -3
  56. package/dist/core/{FileUpload-DxjQ2wnn.js.map → FileUpload-BJu-5NKg.js.map} +1 -1
  57. package/dist/core/{FileUpload-Dv2cvYI2.cjs → FileUpload-CuJ8RYA7.cjs} +3 -3
  58. package/dist/core/{FileUpload-Dv2cvYI2.cjs.map → FileUpload-CuJ8RYA7.cjs.map} +1 -1
  59. package/dist/core/FileUpload.cjs.js +1 -1
  60. package/dist/core/FileUpload.js +1 -1
  61. package/dist/core/{Footer-BKfoTV0l.cjs → Footer-C0xaMboS.cjs} +5 -10
  62. package/dist/core/Footer-C0xaMboS.cjs.map +1 -0
  63. package/dist/core/{Footer-CJOKuXJh.js → Footer-CcSbV-IP.js} +5 -10
  64. package/dist/core/Footer-CcSbV-IP.js.map +1 -0
  65. package/dist/core/Footer.cjs.js +1 -1
  66. package/dist/core/Footer.js +1 -1
  67. package/dist/core/{IconButton-BxUXK-xn.cjs → IconButton-BADgP1DD.cjs} +2 -2
  68. package/dist/core/IconButton-BADgP1DD.cjs.map +1 -0
  69. package/dist/core/{IconButton-B6cAP2hY.js → IconButton-Dsw2M1s8.js} +2 -2
  70. package/dist/core/IconButton-Dsw2M1s8.js.map +1 -0
  71. package/dist/core/IconButton.cjs.js +1 -1
  72. package/dist/core/IconButton.js +1 -1
  73. package/dist/core/{MessagePopUp-CC7r9RHN.js → MessagePopUp--LfNe9F6.js} +3 -3
  74. package/dist/core/{MessagePopUp-CC7r9RHN.js.map → MessagePopUp--LfNe9F6.js.map} +1 -1
  75. package/dist/core/{MessagePopUp-BUS6ICem.cjs → MessagePopUp-D6rtyzX3.cjs} +3 -3
  76. package/dist/core/{MessagePopUp-BUS6ICem.cjs.map → MessagePopUp-D6rtyzX3.cjs.map} +1 -1
  77. package/dist/core/MessagePopUp.cjs.js +1 -1
  78. package/dist/core/MessagePopUp.js +1 -1
  79. package/dist/core/{Modal-CI2snbvk.cjs → Modal--5xg1kDj.cjs} +2 -2
  80. package/dist/core/{Modal-CI2snbvk.cjs.map → Modal--5xg1kDj.cjs.map} +1 -1
  81. package/dist/core/{Modal-BhQJOhWV.js → Modal-CYw6ZB5A.js} +2 -2
  82. package/dist/core/{Modal-BhQJOhWV.js.map → Modal-CYw6ZB5A.js.map} +1 -1
  83. package/dist/core/Modal.cjs.js +1 -1
  84. package/dist/core/Modal.js +1 -1
  85. package/dist/core/{NotificationCenter-Bp7AqnTg.js → NotificationCenter-C8acfI4Y.js} +3 -3
  86. package/dist/core/{NotificationCenter-Bp7AqnTg.js.map → NotificationCenter-C8acfI4Y.js.map} +1 -1
  87. package/dist/core/{NotificationCenter-DxaqoUD1.cjs → NotificationCenter-DdPqMwuQ.cjs} +3 -3
  88. package/dist/core/{NotificationCenter-DxaqoUD1.cjs.map → NotificationCenter-DdPqMwuQ.cjs.map} +1 -1
  89. package/dist/core/NotificationCenter.cjs.js +1 -1
  90. package/dist/core/NotificationCenter.js +1 -1
  91. package/dist/core/{Pager-2jW3cxx_.js → Pager-Dfaqg2oX.js} +3 -3
  92. package/dist/core/{Pager-2jW3cxx_.js.map → Pager-Dfaqg2oX.js.map} +1 -1
  93. package/dist/core/{Pager-ByVG_at-.cjs → Pager-DrKL8NGY.cjs} +3 -3
  94. package/dist/core/{Pager-ByVG_at-.cjs.map → Pager-DrKL8NGY.cjs.map} +1 -1
  95. package/dist/core/Pager.cjs.js +1 -1
  96. package/dist/core/Pager.js +1 -1
  97. package/dist/core/{Stepper-PjUFCUBG.js → Stepper-B-wTooCi.js} +2 -2
  98. package/dist/core/{Stepper-PjUFCUBG.js.map → Stepper-B-wTooCi.js.map} +1 -1
  99. package/dist/core/{Stepper-BkmPckKd.cjs → Stepper-CZ0lJwyQ.cjs} +2 -2
  100. package/dist/core/{Stepper-BkmPckKd.cjs.map → Stepper-CZ0lJwyQ.cjs.map} +1 -1
  101. package/dist/core/Stepper.cjs.js +1 -1
  102. package/dist/core/Stepper.js +1 -1
  103. package/dist/core/{TagInput-CrScreYL.js → TagInput-B3yI5CWh.js} +3 -3
  104. package/dist/core/{TagInput-CrScreYL.js.map → TagInput-B3yI5CWh.js.map} +1 -1
  105. package/dist/core/{TagInput-BMPHihSz.cjs → TagInput-DftgiPXn.cjs} +3 -3
  106. package/dist/core/{TagInput-BMPHihSz.cjs.map → TagInput-DftgiPXn.cjs.map} +1 -1
  107. package/dist/core/TagInput.cjs.js +1 -1
  108. package/dist/core/TagInput.js +1 -1
  109. package/dist/core/{TextArea-B0it55lO.js → TextArea-DrU4oCj0.js} +3 -3
  110. package/dist/core/TextArea-DrU4oCj0.js.map +1 -0
  111. package/dist/core/{TextArea-Dn9aynnY.cjs → TextArea-Nj-eO3Pv.cjs} +3 -3
  112. package/dist/core/TextArea-Nj-eO3Pv.cjs.map +1 -0
  113. package/dist/core/TextArea.cjs.js +1 -1
  114. package/dist/core/TextArea.js +1 -1
  115. package/dist/core/{TextInput-8AbKEfUH.cjs → TextInput-BP3o-iku.cjs} +2 -2
  116. package/dist/core/{TextInput-8AbKEfUH.cjs.map → TextInput-BP3o-iku.cjs.map} +1 -1
  117. package/dist/core/{TextInput-CtI8fsXR.js → TextInput-CXb9gNEa.js} +2 -2
  118. package/dist/core/{TextInput-CtI8fsXR.js.map → TextInput-CXb9gNEa.js.map} +1 -1
  119. package/dist/core/TextInput.cjs.js +1 -1
  120. package/dist/core/TextInput.js +1 -1
  121. package/dist/core/index.cjs.js +20 -20
  122. package/dist/core/index.js +20 -20
  123. package/dist/core/style.css +8 -1
  124. package/dist/next/{Badge-d7iY-oiw.cjs → Badge-DUUW_Zp1.cjs} +2 -2
  125. package/dist/next/Badge-DUUW_Zp1.cjs.map +1 -0
  126. package/dist/next/{Badge-C4JwPL9J.js → Badge-DywmGB1E.js} +2 -2
  127. package/dist/next/Badge-DywmGB1E.js.map +1 -0
  128. package/dist/next/Badge.cjs.js +1 -1
  129. package/dist/next/Badge.js +1 -1
  130. package/dist/next/{Breadcrumbs-CEHoh3s2.cjs → Breadcrumbs-7MNPobUi.cjs} +3 -3
  131. package/dist/next/Breadcrumbs-7MNPobUi.cjs.map +1 -0
  132. package/dist/next/{Breadcrumbs-LfCnghHj.js → Breadcrumbs-BM-yj_kq.js} +3 -3
  133. package/dist/next/Breadcrumbs-BM-yj_kq.js.map +1 -0
  134. package/dist/next/Breadcrumbs.cjs.js +1 -1
  135. package/dist/next/Breadcrumbs.js +1 -1
  136. package/dist/next/{Button-CDvdEOSq.js → Button-ClWB5gZW.js} +2 -2
  137. package/dist/next/Button-ClWB5gZW.js.map +1 -0
  138. package/dist/next/{Button-Cw9aGFLo.cjs → Button-G1PFBSqU.cjs} +2 -2
  139. package/dist/next/Button-G1PFBSqU.cjs.map +1 -0
  140. package/dist/next/Button.cjs.js +1 -1
  141. package/dist/next/Button.js +1 -1
  142. package/dist/next/{Card-DauNfmwZ.js → Card-B_USybKk.js} +84 -66
  143. package/dist/next/Card-B_USybKk.js.map +1 -0
  144. package/dist/next/{Card-B7oD0UlA.cjs → Card-Bg9EknRD.cjs} +84 -66
  145. package/dist/next/Card-Bg9EknRD.cjs.map +1 -0
  146. package/dist/next/Card.cjs.js +1 -1
  147. package/dist/next/Card.js +1 -1
  148. package/dist/next/{Checkbox-CiHMrYmz.js → Checkbox-3k5UZ20q.js} +2 -2
  149. package/dist/next/Checkbox-3k5UZ20q.js.map +1 -0
  150. package/dist/next/{Checkbox-wdW0yOxr.cjs → Checkbox-CFz2oqPW.cjs} +2 -2
  151. package/dist/next/Checkbox-CFz2oqPW.cjs.map +1 -0
  152. package/dist/next/Checkbox.cjs.js +1 -1
  153. package/dist/next/Checkbox.js +1 -1
  154. package/dist/next/{Chip-06q10So-.js → Chip-CMP-naRw.js} +2 -2
  155. package/dist/next/{Chip-06q10So-.js.map → Chip-CMP-naRw.js.map} +1 -1
  156. package/dist/next/{Chip-CVEIkG-f.cjs → Chip-DoRB7LBO.cjs} +2 -2
  157. package/dist/next/{Chip-CVEIkG-f.cjs.map → Chip-DoRB7LBO.cjs.map} +1 -1
  158. package/dist/next/Chip.cjs.js +1 -1
  159. package/dist/next/Chip.js +1 -1
  160. package/dist/next/{CommandPalette-BvgDewF1.js → CommandPalette-BaJ9KSob.js} +2 -2
  161. package/dist/next/{CommandPalette-BvgDewF1.js.map → CommandPalette-BaJ9KSob.js.map} +1 -1
  162. package/dist/next/{CommandPalette-FO3S6xly.cjs → CommandPalette-DjR2pE5m.cjs} +2 -2
  163. package/dist/next/{CommandPalette-FO3S6xly.cjs.map → CommandPalette-DjR2pE5m.cjs.map} +1 -1
  164. package/dist/next/CommandPalette.cjs.js +1 -1
  165. package/dist/next/CommandPalette.js +1 -1
  166. package/dist/next/{Dropdown-Pjjqikm8.cjs → Dropdown-BHd5BuCB.cjs} +2 -2
  167. package/dist/next/{Dropdown-Pjjqikm8.cjs.map → Dropdown-BHd5BuCB.cjs.map} +1 -1
  168. package/dist/next/{Dropdown-C_B5tfQD.js → Dropdown-CzQhdSD7.js} +2 -2
  169. package/dist/next/{Dropdown-C_B5tfQD.js.map → Dropdown-CzQhdSD7.js.map} +1 -1
  170. package/dist/next/Dropdown.cjs.js +1 -1
  171. package/dist/next/Dropdown.js +1 -1
  172. package/dist/next/{EmptyState-Bo9W0BX5.js → EmptyState-BbuuFZCb.js} +2 -2
  173. package/dist/next/{EmptyState-Bo9W0BX5.js.map → EmptyState-BbuuFZCb.js.map} +1 -1
  174. package/dist/next/{EmptyState-DCjBopC6.cjs → EmptyState-edgOQ6GW.cjs} +2 -2
  175. package/dist/next/{EmptyState-DCjBopC6.cjs.map → EmptyState-edgOQ6GW.cjs.map} +1 -1
  176. package/dist/next/EmptyState.cjs.js +1 -1
  177. package/dist/next/EmptyState.js +1 -1
  178. package/dist/next/{FileUpload-DoMMMgwj.cjs → FileUpload-BeTvsLw-.cjs} +3 -3
  179. package/dist/next/{FileUpload-DoMMMgwj.cjs.map → FileUpload-BeTvsLw-.cjs.map} +1 -1
  180. package/dist/next/{FileUpload-BGK2Pg4X.js → FileUpload-D7qdf0y5.js} +3 -3
  181. package/dist/next/{FileUpload-BGK2Pg4X.js.map → FileUpload-D7qdf0y5.js.map} +1 -1
  182. package/dist/next/FileUpload.cjs.js +1 -1
  183. package/dist/next/FileUpload.js +1 -1
  184. package/dist/next/{Footer-nuEg78W2.cjs → Footer-CQhcAscy.cjs} +6 -11
  185. package/dist/next/Footer-CQhcAscy.cjs.map +1 -0
  186. package/dist/next/{Footer-ASthmMUM.js → Footer-Rshwlhwo.js} +6 -11
  187. package/dist/next/Footer-Rshwlhwo.js.map +1 -0
  188. package/dist/next/Footer.cjs.js +1 -1
  189. package/dist/next/Footer.js +1 -1
  190. package/dist/next/{IconButton-DxGzuz13.js → IconButton-Dk8EDf4Z.js} +2 -2
  191. package/dist/next/IconButton-Dk8EDf4Z.js.map +1 -0
  192. package/dist/next/{IconButton-1BW390eT.cjs → IconButton-SZdNlqIZ.cjs} +2 -2
  193. package/dist/next/IconButton-SZdNlqIZ.cjs.map +1 -0
  194. package/dist/next/IconButton.cjs.js +1 -1
  195. package/dist/next/IconButton.js +1 -1
  196. package/dist/next/{MessagePopUp-CRXKWJcY.cjs → MessagePopUp-D6QdsrUO.cjs} +3 -3
  197. package/dist/next/{MessagePopUp-CRXKWJcY.cjs.map → MessagePopUp-D6QdsrUO.cjs.map} +1 -1
  198. package/dist/next/{MessagePopUp-r4RzD_hc.js → MessagePopUp-DEbsvN19.js} +3 -3
  199. package/dist/next/{MessagePopUp-r4RzD_hc.js.map → MessagePopUp-DEbsvN19.js.map} +1 -1
  200. package/dist/next/MessagePopUp.cjs.js +1 -1
  201. package/dist/next/MessagePopUp.js +1 -1
  202. package/dist/next/{Modal-HVhtE6zt.js → Modal-BOaNai97.js} +2 -2
  203. package/dist/next/{Modal-HVhtE6zt.js.map → Modal-BOaNai97.js.map} +1 -1
  204. package/dist/next/{Modal-BUWht7j9.cjs → Modal-BmAYw3X9.cjs} +2 -2
  205. package/dist/next/{Modal-BUWht7j9.cjs.map → Modal-BmAYw3X9.cjs.map} +1 -1
  206. package/dist/next/Modal.cjs.js +1 -1
  207. package/dist/next/Modal.js +1 -1
  208. package/dist/next/{NotificationCenter-Bi6LJr55.cjs → NotificationCenter-BIuJj-PB.cjs} +3 -3
  209. package/dist/next/{NotificationCenter-Bi6LJr55.cjs.map → NotificationCenter-BIuJj-PB.cjs.map} +1 -1
  210. package/dist/next/{NotificationCenter-OqRd6YfC.js → NotificationCenter-DCE8DuOm.js} +3 -3
  211. package/dist/next/{NotificationCenter-OqRd6YfC.js.map → NotificationCenter-DCE8DuOm.js.map} +1 -1
  212. package/dist/next/NotificationCenter.cjs.js +1 -1
  213. package/dist/next/NotificationCenter.js +1 -1
  214. package/dist/next/{Pager-DCW208Vq.cjs → Pager-BADOS4cm.cjs} +3 -3
  215. package/dist/next/{Pager-DCW208Vq.cjs.map → Pager-BADOS4cm.cjs.map} +1 -1
  216. package/dist/next/{Pager-AgAN8E1P.js → Pager-DiZtB-Df.js} +3 -3
  217. package/dist/next/{Pager-AgAN8E1P.js.map → Pager-DiZtB-Df.js.map} +1 -1
  218. package/dist/next/Pager.cjs.js +1 -1
  219. package/dist/next/Pager.js +1 -1
  220. package/dist/next/{Stepper-JSC7kNUK.cjs → Stepper-C_qUO4sd.cjs} +2 -2
  221. package/dist/next/{Stepper-JSC7kNUK.cjs.map → Stepper-C_qUO4sd.cjs.map} +1 -1
  222. package/dist/next/{Stepper-DPIt2hlL.js → Stepper-De9foUOK.js} +2 -2
  223. package/dist/next/{Stepper-DPIt2hlL.js.map → Stepper-De9foUOK.js.map} +1 -1
  224. package/dist/next/Stepper.cjs.js +1 -1
  225. package/dist/next/Stepper.js +1 -1
  226. package/dist/next/{TagInput-BwoUWtRR.cjs → TagInput-BVng78ON.cjs} +3 -3
  227. package/dist/next/{TagInput-BwoUWtRR.cjs.map → TagInput-BVng78ON.cjs.map} +1 -1
  228. package/dist/next/{TagInput-DjHDSsny.js → TagInput-B_VOR8-r.js} +3 -3
  229. package/dist/next/{TagInput-DjHDSsny.js.map → TagInput-B_VOR8-r.js.map} +1 -1
  230. package/dist/next/TagInput.cjs.js +1 -1
  231. package/dist/next/TagInput.js +1 -1
  232. package/dist/next/{TextArea-BDYg--3P.js → TextArea-Bmkg-d0v.js} +3 -3
  233. package/dist/next/TextArea-Bmkg-d0v.js.map +1 -0
  234. package/dist/next/{TextArea-OVtBBpaP.cjs → TextArea-OpFozktU.cjs} +3 -3
  235. package/dist/next/TextArea-OpFozktU.cjs.map +1 -0
  236. package/dist/next/TextArea.cjs.js +1 -1
  237. package/dist/next/TextArea.js +1 -1
  238. package/dist/next/{TextInput-DXXcGZtq.js → TextInput-B00XEBiM.js} +2 -2
  239. package/dist/next/{TextInput-DXXcGZtq.js.map → TextInput-B00XEBiM.js.map} +1 -1
  240. package/dist/next/{TextInput--th5kygP.cjs → TextInput-D0rdRASC.cjs} +2 -2
  241. package/dist/next/{TextInput--th5kygP.cjs.map → TextInput-D0rdRASC.cjs.map} +1 -1
  242. package/dist/next/TextInput.cjs.js +1 -1
  243. package/dist/next/TextInput.js +1 -1
  244. package/dist/next/index.cjs.js +20 -20
  245. package/dist/next/index.js +21 -21
  246. package/dist/next/style.css +131 -125
  247. package/dist/tsconfig.build.tsbuildinfo +1 -1
  248. package/dist/types/components/Card/Card.types.d.ts +6 -0
  249. package/dist/types/components/Card/Card.types.d.ts.map +1 -1
  250. package/dist/types/components/Card/CardBase.d.ts.map +1 -1
  251. package/dist/types/components/Footer/FooterBase.d.ts +2 -0
  252. package/dist/types/components/Footer/FooterBase.d.ts.map +1 -1
  253. package/dist/types/components/Footer/next/Footer.d.ts.map +1 -1
  254. package/dist/types/components/TextArea/TextArea.types.d.ts +1 -1
  255. package/dist/types/components/TextArea/TextArea.types.d.ts.map +1 -1
  256. package/package.json +1 -1
  257. package/dist/core/Badge-DfsFGYhY.js.map +0 -1
  258. package/dist/core/Badge-LyKc0uJG.cjs.map +0 -1
  259. package/dist/core/Breadcrumbs-DhioJUB9.js.map +0 -1
  260. package/dist/core/Breadcrumbs-xmUgcTXF.cjs.map +0 -1
  261. package/dist/core/Button-DEYbr8xW.js.map +0 -1
  262. package/dist/core/Button-wz_We8xU.cjs.map +0 -1
  263. package/dist/core/Card-DCxLBwi0.cjs.map +0 -1
  264. package/dist/core/Card-DKPk0zgQ.js.map +0 -1
  265. package/dist/core/Checkbox-BLBbE9Ww.js.map +0 -1
  266. package/dist/core/Checkbox-fVnseKGF.cjs.map +0 -1
  267. package/dist/core/Footer-BKfoTV0l.cjs.map +0 -1
  268. package/dist/core/Footer-CJOKuXJh.js.map +0 -1
  269. package/dist/core/IconButton-B6cAP2hY.js.map +0 -1
  270. package/dist/core/IconButton-BxUXK-xn.cjs.map +0 -1
  271. package/dist/core/TextArea-B0it55lO.js.map +0 -1
  272. package/dist/core/TextArea-Dn9aynnY.cjs.map +0 -1
  273. package/dist/next/Badge-C4JwPL9J.js.map +0 -1
  274. package/dist/next/Badge-d7iY-oiw.cjs.map +0 -1
  275. package/dist/next/Breadcrumbs-CEHoh3s2.cjs.map +0 -1
  276. package/dist/next/Breadcrumbs-LfCnghHj.js.map +0 -1
  277. package/dist/next/Button-CDvdEOSq.js.map +0 -1
  278. package/dist/next/Button-Cw9aGFLo.cjs.map +0 -1
  279. package/dist/next/Card-B7oD0UlA.cjs.map +0 -1
  280. package/dist/next/Card-DauNfmwZ.js.map +0 -1
  281. package/dist/next/Checkbox-CiHMrYmz.js.map +0 -1
  282. package/dist/next/Checkbox-wdW0yOxr.cjs.map +0 -1
  283. package/dist/next/Footer-ASthmMUM.js.map +0 -1
  284. package/dist/next/Footer-nuEg78W2.cjs.map +0 -1
  285. package/dist/next/IconButton-1BW390eT.cjs.map +0 -1
  286. package/dist/next/IconButton-DxGzuz13.js.map +0 -1
  287. package/dist/next/TextArea-BDYg--3P.js.map +0 -1
  288. package/dist/next/TextArea-OVtBBpaP.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState-BAaCfJzO.cjs","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/core/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\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 outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","import React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.core\";\r\nimport \"./EmptyState.scss\";\r\n\r\nconst classes = {\r\n empty_state: \"empty_state\",\r\n title: \"empty_state_title\",\r\n message: \"empty_state_message\",\r\n icon: \"empty_state_icon\",\r\n\r\n outline: \"empty_state_outline\",\r\n disabled: \"empty_state_disabled\",\r\n\r\n primary: \"empty_state_primary\",\r\n secondary: \"empty_state_secondary\",\r\n tertiary: \"empty_state_tertiary\",\r\n quaternary: \"empty_state_quaternary\",\r\n\r\n success: \"empty_state_success\",\r\n error: \"empty_state_error\",\r\n warning: \"empty_state_warning\",\r\n\r\n clear: \"empty_state_clear\",\r\n\r\n small: \"empty_state_small\",\r\n medium: \"empty_state_medium\",\r\n large: \"empty_state_large\",\r\n xs: \"empty_state_xs\",\r\n xl: \"empty_state_xl\",\r\n\r\n shadowNone: \"empty_state_shadow-None\",\r\n shadowLight: \"empty_state_shadow-Light\",\r\n shadowMedium: \"empty_state_shadow-Medium\",\r\n shadowStrong: \"empty_state_shadow-Strong\",\r\n shadowIntense: \"empty_state_shadow-Intense\",\r\n\r\n roundNone: \"empty_state_round-None\",\r\n roundSmall: \"empty_state_round-Small\",\r\n roundMedium: \"empty_state_round-Medium\",\r\n roundLarge: \"empty_state_round-Large\",\r\n};\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={classes} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","Button","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQA,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAOC,kBAAAA,eAAA;AAAA,EACP,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoBC,MAAAA;AAAAA,IACxB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAO,SAAS,SAAS;AAAA,EAAA;AAGrE,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACCC,2BAAAA,IAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAAA,+BAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGFA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACdA,2BAAAA;AAAAA,UAACL;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;AC1FA,MAAM,UAAU;AAAA,EACd,aAAa;AAAA,EACb,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EAEN,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,OAAO;AAAA,EAEP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,aAAwC,CAAC,UAAU;AACvD,wCAAQ,gBAAA,EAAgB,GAAG,OAAA,QAAOA,eAAgB,UAAU,SAAS;AACvE;;"}
1
+ {"version":3,"file":"EmptyState-C0TYr_9h.cjs","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/core/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\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 outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","import React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.core\";\r\nimport \"./EmptyState.scss\";\r\n\r\nconst classes = {\r\n empty_state: \"empty_state\",\r\n title: \"empty_state_title\",\r\n message: \"empty_state_message\",\r\n icon: \"empty_state_icon\",\r\n\r\n outline: \"empty_state_outline\",\r\n disabled: \"empty_state_disabled\",\r\n\r\n primary: \"empty_state_primary\",\r\n secondary: \"empty_state_secondary\",\r\n tertiary: \"empty_state_tertiary\",\r\n quaternary: \"empty_state_quaternary\",\r\n\r\n success: \"empty_state_success\",\r\n error: \"empty_state_error\",\r\n warning: \"empty_state_warning\",\r\n\r\n clear: \"empty_state_clear\",\r\n\r\n small: \"empty_state_small\",\r\n medium: \"empty_state_medium\",\r\n large: \"empty_state_large\",\r\n xs: \"empty_state_xs\",\r\n xl: \"empty_state_xl\",\r\n\r\n shadowNone: \"empty_state_shadow-None\",\r\n shadowLight: \"empty_state_shadow-Light\",\r\n shadowMedium: \"empty_state_shadow-Medium\",\r\n shadowStrong: \"empty_state_shadow-Strong\",\r\n shadowIntense: \"empty_state_shadow-Intense\",\r\n\r\n roundNone: \"empty_state_round-None\",\r\n roundSmall: \"empty_state_round-Small\",\r\n roundMedium: \"empty_state_round-Medium\",\r\n roundLarge: \"empty_state_round-Large\",\r\n};\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={classes} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","Button","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQA,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAOC,kBAAAA,eAAA;AAAA,EACP,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoBC,MAAAA;AAAAA,IACxB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAO,SAAS,SAAS;AAAA,EAAA;AAGrE,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACCC,2BAAAA,IAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAAA,+BAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGFA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACdA,2BAAAA;AAAAA,UAACL;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;AC1FA,MAAM,UAAU;AAAA,EACd,aAAa;AAAA,EACb,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EAEN,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,OAAO;AAAA,EAEP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,aAAwC,CAAC,UAAU;AACvD,wCAAQ,gBAAA,EAAgB,GAAG,OAAA,QAAOA,eAAgB,UAAU,SAAS;AACvE;;"}
@@ -4,7 +4,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
5
  import { a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
6
6
  /* empty css */
7
- import { B as Button } from "./Button-DEYbr8xW.js";
7
+ import { B as Button } from "./Button-brEyEh7E.js";
8
8
  const BaseEmptyState = ({
9
9
  icon: Icon,
10
10
  title = "Nothing Here Yet",
@@ -116,4 +116,4 @@ const EmptyState = (props) => {
116
116
  export {
117
117
  EmptyState as E
118
118
  };
119
- //# sourceMappingURL=EmptyState-Bd-es_rG.js.map
119
+ //# sourceMappingURL=EmptyState-DHNuzYnG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState-Bd-es_rG.js","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/core/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\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 outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","import React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.core\";\r\nimport \"./EmptyState.scss\";\r\n\r\nconst classes = {\r\n empty_state: \"empty_state\",\r\n title: \"empty_state_title\",\r\n message: \"empty_state_message\",\r\n icon: \"empty_state_icon\",\r\n\r\n outline: \"empty_state_outline\",\r\n disabled: \"empty_state_disabled\",\r\n\r\n primary: \"empty_state_primary\",\r\n secondary: \"empty_state_secondary\",\r\n tertiary: \"empty_state_tertiary\",\r\n quaternary: \"empty_state_quaternary\",\r\n\r\n success: \"empty_state_success\",\r\n error: \"empty_state_error\",\r\n warning: \"empty_state_warning\",\r\n\r\n clear: \"empty_state_clear\",\r\n\r\n small: \"empty_state_small\",\r\n medium: \"empty_state_medium\",\r\n large: \"empty_state_large\",\r\n xs: \"empty_state_xs\",\r\n xl: \"empty_state_xl\",\r\n\r\n shadowNone: \"empty_state_shadow-None\",\r\n shadowLight: \"empty_state_shadow-Light\",\r\n shadowMedium: \"empty_state_shadow-Medium\",\r\n shadowStrong: \"empty_state_shadow-Strong\",\r\n shadowIntense: \"empty_state_shadow-Intense\",\r\n\r\n roundNone: \"empty_state_round-None\",\r\n roundSmall: \"empty_state_round-Small\",\r\n roundMedium: \"empty_state_round-Medium\",\r\n roundLarge: \"empty_state_round-Large\",\r\n};\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={classes} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["Button"],"mappings":";;;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAO,eAAA;AAAA,EACP,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoB;AAAA,IACxB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAO,SAAS,SAAS;AAAA,EAAA;AAGrE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACC,oBAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAA,oBAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACd;AAAA,UAACA;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;AC1FA,MAAM,UAAU;AAAA,EACd,aAAa;AAAA,EACb,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EAEN,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,OAAO;AAAA,EAEP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,aAAwC,CAAC,UAAU;AACvD,6BAAQ,gBAAA,EAAgB,GAAG,OAAO,QAAgB,UAAU,SAAS;AACvE;"}
1
+ {"version":3,"file":"EmptyState-DHNuzYnG.js","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/core/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\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 outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","import React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.core\";\r\nimport \"./EmptyState.scss\";\r\n\r\nconst classes = {\r\n empty_state: \"empty_state\",\r\n title: \"empty_state_title\",\r\n message: \"empty_state_message\",\r\n icon: \"empty_state_icon\",\r\n\r\n outline: \"empty_state_outline\",\r\n disabled: \"empty_state_disabled\",\r\n\r\n primary: \"empty_state_primary\",\r\n secondary: \"empty_state_secondary\",\r\n tertiary: \"empty_state_tertiary\",\r\n quaternary: \"empty_state_quaternary\",\r\n\r\n success: \"empty_state_success\",\r\n error: \"empty_state_error\",\r\n warning: \"empty_state_warning\",\r\n\r\n clear: \"empty_state_clear\",\r\n\r\n small: \"empty_state_small\",\r\n medium: \"empty_state_medium\",\r\n large: \"empty_state_large\",\r\n xs: \"empty_state_xs\",\r\n xl: \"empty_state_xl\",\r\n\r\n shadowNone: \"empty_state_shadow-None\",\r\n shadowLight: \"empty_state_shadow-Light\",\r\n shadowMedium: \"empty_state_shadow-Medium\",\r\n shadowStrong: \"empty_state_shadow-Strong\",\r\n shadowIntense: \"empty_state_shadow-Intense\",\r\n\r\n roundNone: \"empty_state_round-None\",\r\n roundSmall: \"empty_state_round-Small\",\r\n roundMedium: \"empty_state_round-Medium\",\r\n roundLarge: \"empty_state_round-Large\",\r\n};\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={classes} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["Button"],"mappings":";;;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAO,eAAA;AAAA,EACP,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoB;AAAA,IACxB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAO,SAAS,SAAS;AAAA,EAAA;AAGrE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACC,oBAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAA,oBAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACd;AAAA,UAACA;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;AC1FA,MAAM,UAAU;AAAA,EACd,aAAa;AAAA,EACb,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EAEN,SAAS;AAAA,EACT,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,OAAO;AAAA,EAEP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,aAAwC,CAAC,UAAU;AACvD,6BAAQ,gBAAA,EAAgB,GAAG,OAAO,QAAgB,UAAU,SAAS;AACvE;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const EmptyState = require("./EmptyState-BAaCfJzO.cjs");
2
+ const EmptyState = require("./EmptyState-C0TYr_9h.cjs");
3
3
  module.exports = EmptyState.EmptyState;
4
4
  //# sourceMappingURL=EmptyState.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { E } from "./EmptyState-Bd-es_rG.js";
1
+ import { E } from "./EmptyState-DHNuzYnG.js";
2
2
  export {
3
3
  E as default
4
4
  };
@@ -3,8 +3,8 @@ import { useState, useRef, useMemo } from "react";
3
3
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
5
  import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
6
- import { B as Button } from "./Button-DEYbr8xW.js";
7
- import { I as IconButton } from "./IconButton-B6cAP2hY.js";
6
+ import { B as Button } from "./Button-brEyEh7E.js";
7
+ import { I as IconButton } from "./IconButton-Dsw2M1s8.js";
8
8
  import { P as ProgressBar } from "./ProgressBar-CuIHF5N0.js";
9
9
  import { F as FormGroup } from "./FormGroup-DS2tW-lC.js";
10
10
  const FileIcon = (props) => /* @__PURE__ */ jsxs(
@@ -390,4 +390,4 @@ const FileUpload = (props) => {
390
390
  export {
391
391
  FileUpload as F
392
392
  };
393
- //# sourceMappingURL=FileUpload-DxjQ2wnn.js.map
393
+ //# sourceMappingURL=FileUpload-BJu-5NKg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileUpload-DxjQ2wnn.js","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/core/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\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=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\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 FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\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=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\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 TrashIcon;\r\n","import React, { useMemo, useRef, useState } from \"react\";\r\nimport { FileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseFileUploadProps extends FileUploadProps {\r\n FormGroup: React.ComponentType<any>;\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n ProgressBar: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const isTypeOk =\r\n allowedFileTypes.length === 0 || allowedFileTypes.includes(file.type);\r\n\r\n if (isSizeOk && isTypeOk) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n setRejectedFiles(rejected);\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = () => {\r\n if (!files || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n const interval = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n clearInterval(interval);\r\n setTimeout(() => {\r\n setUploading(false);\r\n try {\r\n onSubmit(files);\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n }\r\n }, 500);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n };\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging ? \"dragging\" : \"\",\r\n disabled && classMap.disabled\r\n ),\r\n [classMap, isDragging, theme, state, disabled]\r\n );\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n aria-required={required}\r\n aria-label={label}\r\n aria-describedby={`${testId}-description ${testId}-error`}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error && classMap.error}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n theme=\"error\"\r\n size=\"xsmall\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={(error && classMap.error) || state}\r\n disabled={uploading}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\n\r\nexport default BaseFileUpload;\r\n","import React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ProgressBar from \"../../ProgressBar/core/ProgressBar\";\r\nimport FormGroup from \"../../FormGroup/core/FormGroup\";\r\nimport \"./FileUpload.scss\";\r\n\r\nconst classes = {\r\n fileUpload: \"file_upload\",\r\n hiddenInput: \"file_upload_hidden_input\",\r\n uploadActions: \"file_upload_upload_actions\",\r\n fileInput: \"file_upload_file_input\",\r\n removeButton: \"file_upload_remove_button\",\r\n uploadControls: \"file_upload_upload_controls\",\r\n uploadProgress: \"file_upload_upload_progress\",\r\n uploadButton: \"file_upload_upload_button\",\r\n fileList: \"file_upload_file_list\",\r\n fileListItem: \"file_upload_file_list_item\",\r\n fileListFileName: \"file_upload_file_list_file_name\",\r\n fileListRemoveButton: \"file_upload_file_list_remove_button\",\r\n\r\n primary: \"file_upload_primary\",\r\n secondary: \"file_upload_secondary\",\r\n tertiary: \"file_upload_tertiary\",\r\n quaternary: \"file_upload_quaternary\",\r\n clear: \"file_upload_clear\",\r\n\r\n disabled: \"file_upload_disabled\",\r\n error: \"file_upload_error\",\r\n success: \"file_upload_success\",\r\n warning: \"file_upload_warning\",\r\n\r\n shadowNone: \"file_upload_shadow-None\",\r\n shadowLight: \"file_upload_shadow-Light\",\r\n shadowMedium: \"file_upload_shadow-Medium\",\r\n shadowStrong: \"file_upload_shadow-Strong\",\r\n shadowIntense: \"file_upload_shadow-Intense\",\r\n\r\n roundNone: \"file_upload_round-None\",\r\n roundSmall: \"file_upload_round-Small\",\r\n roundMedium: \"file_upload_round-Medium\",\r\n roundLarge: \"file_upload_round-Large\",\r\n};\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={ProgressBar}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default FileUpload;\r\n"],"names":["FormGroup","Button","IconButton","ProgressBar"],"mappings":"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"}
1
+ {"version":3,"file":"FileUpload-BJu-5NKg.js","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/core/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\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=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\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 FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\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=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\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 TrashIcon;\r\n","import React, { useMemo, useRef, useState } from \"react\";\r\nimport { FileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseFileUploadProps extends FileUploadProps {\r\n FormGroup: React.ComponentType<any>;\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n ProgressBar: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const isTypeOk =\r\n allowedFileTypes.length === 0 || allowedFileTypes.includes(file.type);\r\n\r\n if (isSizeOk && isTypeOk) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n setRejectedFiles(rejected);\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = () => {\r\n if (!files || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n const interval = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n clearInterval(interval);\r\n setTimeout(() => {\r\n setUploading(false);\r\n try {\r\n onSubmit(files);\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n }\r\n }, 500);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n };\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging ? \"dragging\" : \"\",\r\n disabled && classMap.disabled\r\n ),\r\n [classMap, isDragging, theme, state, disabled]\r\n );\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n aria-required={required}\r\n aria-label={label}\r\n aria-describedby={`${testId}-description ${testId}-error`}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error && classMap.error}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n theme=\"error\"\r\n size=\"xsmall\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={(error && classMap.error) || state}\r\n disabled={uploading}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\n\r\nexport default BaseFileUpload;\r\n","import React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ProgressBar from \"../../ProgressBar/core/ProgressBar\";\r\nimport FormGroup from \"../../FormGroup/core/FormGroup\";\r\nimport \"./FileUpload.scss\";\r\n\r\nconst classes = {\r\n fileUpload: \"file_upload\",\r\n hiddenInput: \"file_upload_hidden_input\",\r\n uploadActions: \"file_upload_upload_actions\",\r\n fileInput: \"file_upload_file_input\",\r\n removeButton: \"file_upload_remove_button\",\r\n uploadControls: \"file_upload_upload_controls\",\r\n uploadProgress: \"file_upload_upload_progress\",\r\n uploadButton: \"file_upload_upload_button\",\r\n fileList: \"file_upload_file_list\",\r\n fileListItem: \"file_upload_file_list_item\",\r\n fileListFileName: \"file_upload_file_list_file_name\",\r\n fileListRemoveButton: \"file_upload_file_list_remove_button\",\r\n\r\n primary: \"file_upload_primary\",\r\n secondary: \"file_upload_secondary\",\r\n tertiary: \"file_upload_tertiary\",\r\n quaternary: \"file_upload_quaternary\",\r\n clear: \"file_upload_clear\",\r\n\r\n disabled: \"file_upload_disabled\",\r\n error: \"file_upload_error\",\r\n success: \"file_upload_success\",\r\n warning: \"file_upload_warning\",\r\n\r\n shadowNone: \"file_upload_shadow-None\",\r\n shadowLight: \"file_upload_shadow-Light\",\r\n shadowMedium: \"file_upload_shadow-Medium\",\r\n shadowStrong: \"file_upload_shadow-Strong\",\r\n shadowIntense: \"file_upload_shadow-Intense\",\r\n\r\n roundNone: \"file_upload_round-None\",\r\n roundSmall: \"file_upload_round-Small\",\r\n roundMedium: \"file_upload_round-Medium\",\r\n roundLarge: \"file_upload_round-Large\",\r\n};\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={ProgressBar}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default FileUpload;\r\n"],"names":["FormGroup","Button","IconButton","ProgressBar"],"mappings":"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"}
@@ -4,8 +4,8 @@ const React = require("react");
4
4
  const classNames = require("./classNames-BcWMx052.cjs");
5
5
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
6
6
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
7
- const Button = require("./Button-wz_We8xU.cjs");
8
- const IconButton = require("./IconButton-BxUXK-xn.cjs");
7
+ const Button = require("./Button-BnyCKkUs.cjs");
8
+ const IconButton = require("./IconButton-BADgP1DD.cjs");
9
9
  const ProgressBar = require("./ProgressBar-PiSFvLwa.cjs");
10
10
  const FormGroup = require("./FormGroup-BXWYrYOK.cjs");
11
11
  const FileIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -389,4 +389,4 @@ const FileUpload = (props) => {
389
389
  );
390
390
  };
391
391
  exports.FileUpload = FileUpload;
392
- //# sourceMappingURL=FileUpload-Dv2cvYI2.cjs.map
392
+ //# sourceMappingURL=FileUpload-CuJ8RYA7.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileUpload-Dv2cvYI2.cjs","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/core/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\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=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\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 FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\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=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\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 TrashIcon;\r\n","import React, { useMemo, useRef, useState } from \"react\";\r\nimport { FileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseFileUploadProps extends FileUploadProps {\r\n FormGroup: React.ComponentType<any>;\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n ProgressBar: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const isTypeOk =\r\n allowedFileTypes.length === 0 || allowedFileTypes.includes(file.type);\r\n\r\n if (isSizeOk && isTypeOk) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n setRejectedFiles(rejected);\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = () => {\r\n if (!files || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n const interval = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n clearInterval(interval);\r\n setTimeout(() => {\r\n setUploading(false);\r\n try {\r\n onSubmit(files);\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n }\r\n }, 500);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n };\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging ? \"dragging\" : \"\",\r\n disabled && classMap.disabled\r\n ),\r\n [classMap, isDragging, theme, state, disabled]\r\n );\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n aria-required={required}\r\n aria-label={label}\r\n aria-describedby={`${testId}-description ${testId}-error`}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error && classMap.error}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n theme=\"error\"\r\n size=\"xsmall\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={(error && classMap.error) || state}\r\n disabled={uploading}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\n\r\nexport default BaseFileUpload;\r\n","import React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ProgressBar from \"../../ProgressBar/core/ProgressBar\";\r\nimport FormGroup from \"../../FormGroup/core/FormGroup\";\r\nimport \"./FileUpload.scss\";\r\n\r\nconst classes = {\r\n fileUpload: \"file_upload\",\r\n hiddenInput: \"file_upload_hidden_input\",\r\n uploadActions: \"file_upload_upload_actions\",\r\n fileInput: \"file_upload_file_input\",\r\n removeButton: \"file_upload_remove_button\",\r\n uploadControls: \"file_upload_upload_controls\",\r\n uploadProgress: \"file_upload_upload_progress\",\r\n uploadButton: \"file_upload_upload_button\",\r\n fileList: \"file_upload_file_list\",\r\n fileListItem: \"file_upload_file_list_item\",\r\n fileListFileName: \"file_upload_file_list_file_name\",\r\n fileListRemoveButton: \"file_upload_file_list_remove_button\",\r\n\r\n primary: \"file_upload_primary\",\r\n secondary: \"file_upload_secondary\",\r\n tertiary: \"file_upload_tertiary\",\r\n quaternary: \"file_upload_quaternary\",\r\n clear: \"file_upload_clear\",\r\n\r\n disabled: \"file_upload_disabled\",\r\n error: \"file_upload_error\",\r\n success: \"file_upload_success\",\r\n warning: \"file_upload_warning\",\r\n\r\n shadowNone: \"file_upload_shadow-None\",\r\n shadowLight: \"file_upload_shadow-Light\",\r\n shadowMedium: \"file_upload_shadow-Medium\",\r\n shadowStrong: \"file_upload_shadow-Strong\",\r\n shadowIntense: \"file_upload_shadow-Intense\",\r\n\r\n roundNone: \"file_upload_round-None\",\r\n roundSmall: \"file_upload_round-Small\",\r\n roundMedium: \"file_upload_round-Medium\",\r\n roundLarge: \"file_upload_round-Large\",\r\n};\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={ProgressBar}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default FileUpload;\r\n"],"names":["jsxs","jsx","getDefaultTheme","getDefaultRounding","getDefaultShadow","FormGroup","Button","IconButton","ProgressBar","useState","useRef","useMemo","combineClassNames","capitalize"],"mappings":"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"}
1
+ {"version":3,"file":"FileUpload-CuJ8RYA7.cjs","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/core/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\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=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\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 FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\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=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\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 TrashIcon;\r\n","import React, { useMemo, useRef, useState } from \"react\";\r\nimport { FileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseFileUploadProps extends FileUploadProps {\r\n FormGroup: React.ComponentType<any>;\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n ProgressBar: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const isTypeOk =\r\n allowedFileTypes.length === 0 || allowedFileTypes.includes(file.type);\r\n\r\n if (isSizeOk && isTypeOk) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n setRejectedFiles(rejected);\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(\r\n updatedFiles.map((file) =>\r\n file.name.length > 30 ? file.name.slice(0, 27) + \"...\" : file.name\r\n )\r\n );\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = () => {\r\n if (!files || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n const interval = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n clearInterval(interval);\r\n setTimeout(() => {\r\n setUploading(false);\r\n try {\r\n onSubmit(files);\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n }\r\n }, 500);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n };\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging ? \"dragging\" : \"\",\r\n disabled && classMap.disabled\r\n ),\r\n [classMap, isDragging, theme, state, disabled]\r\n );\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n aria-required={required}\r\n aria-label={label}\r\n aria-describedby={`${testId}-description ${testId}-error`}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error && classMap.error}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n theme=\"error\"\r\n size=\"xsmall\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={(error && classMap.error) || state}\r\n disabled={uploading}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\n\r\nexport default BaseFileUpload;\r\n","import React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ProgressBar from \"../../ProgressBar/core/ProgressBar\";\r\nimport FormGroup from \"../../FormGroup/core/FormGroup\";\r\nimport \"./FileUpload.scss\";\r\n\r\nconst classes = {\r\n fileUpload: \"file_upload\",\r\n hiddenInput: \"file_upload_hidden_input\",\r\n uploadActions: \"file_upload_upload_actions\",\r\n fileInput: \"file_upload_file_input\",\r\n removeButton: \"file_upload_remove_button\",\r\n uploadControls: \"file_upload_upload_controls\",\r\n uploadProgress: \"file_upload_upload_progress\",\r\n uploadButton: \"file_upload_upload_button\",\r\n fileList: \"file_upload_file_list\",\r\n fileListItem: \"file_upload_file_list_item\",\r\n fileListFileName: \"file_upload_file_list_file_name\",\r\n fileListRemoveButton: \"file_upload_file_list_remove_button\",\r\n\r\n primary: \"file_upload_primary\",\r\n secondary: \"file_upload_secondary\",\r\n tertiary: \"file_upload_tertiary\",\r\n quaternary: \"file_upload_quaternary\",\r\n clear: \"file_upload_clear\",\r\n\r\n disabled: \"file_upload_disabled\",\r\n error: \"file_upload_error\",\r\n success: \"file_upload_success\",\r\n warning: \"file_upload_warning\",\r\n\r\n shadowNone: \"file_upload_shadow-None\",\r\n shadowLight: \"file_upload_shadow-Light\",\r\n shadowMedium: \"file_upload_shadow-Medium\",\r\n shadowStrong: \"file_upload_shadow-Strong\",\r\n shadowIntense: \"file_upload_shadow-Intense\",\r\n\r\n roundNone: \"file_upload_round-None\",\r\n roundSmall: \"file_upload_round-Small\",\r\n roundMedium: \"file_upload_round-Medium\",\r\n roundLarge: \"file_upload_round-Large\",\r\n};\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={ProgressBar}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default FileUpload;\r\n"],"names":["jsxs","jsx","getDefaultTheme","getDefaultRounding","getDefaultShadow","FormGroup","Button","IconButton","ProgressBar","useState","useRef","useMemo","combineClassNames","capitalize"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const FileUpload = require("./FileUpload-Dv2cvYI2.cjs");
2
+ const FileUpload = require("./FileUpload-CuJ8RYA7.cjs");
3
3
  module.exports = FileUpload.FileUpload;
4
4
  //# sourceMappingURL=FileUpload.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { F } from "./FileUpload-DxjQ2wnn.js";
1
+ import { F } from "./FileUpload-BJu-5NKg.js";
2
2
  export {
3
3
  F as default
4
4
  };
@@ -4,7 +4,7 @@ const React = require("react");
4
4
  const classNames = require("./classNames-BcWMx052.cjs");
5
5
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
6
6
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
7
- const IconButton = require("./IconButton-BxUXK-xn.cjs");
7
+ const IconButton = require("./IconButton-BADgP1DD.cjs");
8
8
  const Select = require("./Select-DWzxymiA.cjs");
9
9
  const ThemeContext = require("./ThemeContext-CtZXUeeU.cjs");
10
10
  const registerColorSheme = require("./registerColorSheme-nhYu5hbY.cjs");
@@ -115,14 +115,9 @@ const FooterBase = ({
115
115
  LinkWrapper,
116
116
  {
117
117
  href: link.href,
118
- children: /* @__PURE__ */ jsxRuntime.jsx(
119
- "span",
120
- {
121
- className: classMap.link,
122
- "data-testid": `${testId}-link-${link.label.toLowerCase().replace(/\s+/g, "-")}`,
123
- children: link.label
124
- }
125
- )
118
+ className: classMap.link,
119
+ "data-testid": `${testId}-link-${link.label.toLowerCase().replace(/\s+/g, "-")}`,
120
+ children: link.label
126
121
  }
127
122
  ) }, i)) })
128
123
  }
@@ -205,4 +200,4 @@ const Footer = (props) => {
205
200
  };
206
201
  exports.Footer = Footer;
207
202
  exports.UserThemeSettings = UserThemeSettings;
208
- //# sourceMappingURL=Footer-BKfoTV0l.cjs.map
203
+ //# sourceMappingURL=Footer-C0xaMboS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer-C0xaMboS.cjs","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n className?: string;\r\n [key: string]: any;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","getAllColorSchemes","useContext","ThemeContext","jsx","Select","IconButton","useMemo","combineClassNames","capitalize","jsxs","ThemeSelect"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useContext, useMemo } from "react";
3
3
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
5
5
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
6
- import { I as IconButton } from "./IconButton-B6cAP2hY.js";
6
+ import { I as IconButton } from "./IconButton-Dsw2M1s8.js";
7
7
  import { S as Select } from "./Select-CDWU_cuN.js";
8
8
  import { a as ThemeContext } from "./ThemeContext-Bo0vLczy.js";
9
9
  import { g as getAllColorSchemes } from "./registerColorSheme-BPX0H7hl.js";
@@ -114,14 +114,9 @@ const FooterBase = ({
114
114
  LinkWrapper,
115
115
  {
116
116
  href: link.href,
117
- children: /* @__PURE__ */ jsx(
118
- "span",
119
- {
120
- className: classMap.link,
121
- "data-testid": `${testId}-link-${link.label.toLowerCase().replace(/\s+/g, "-")}`,
122
- children: link.label
123
- }
124
- )
117
+ className: classMap.link,
118
+ "data-testid": `${testId}-link-${link.label.toLowerCase().replace(/\s+/g, "-")}`,
119
+ children: link.label
125
120
  }
126
121
  ) }, i)) })
127
122
  }
@@ -206,4 +201,4 @@ export {
206
201
  Footer as F,
207
202
  UserThemeSettings as U
208
203
  };
209
- //# sourceMappingURL=Footer-CJOKuXJh.js.map
204
+ //# sourceMappingURL=Footer-CcSbV-IP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer-CcSbV-IP.js","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n className?: string;\r\n [key: string]: any;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["IconButton","ThemeSelect"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Footer = require("./Footer-BKfoTV0l.cjs");
2
+ const Footer = require("./Footer-C0xaMboS.cjs");
3
3
  module.exports = Footer.Footer;
4
4
  //# sourceMappingURL=Footer.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { F } from "./Footer-CJOKuXJh.js";
1
+ import { F } from "./Footer-CcSbV-IP.js";
2
2
  export {
3
3
  F as default
4
4
  };
@@ -25,7 +25,7 @@ const IconButtonBase = React.forwardRef(
25
25
  type = "button",
26
26
  classMap,
27
27
  LinkComponent = "a",
28
- "data-testid": testId,
28
+ "data-testid": testId = "icon-button",
29
29
  tabIndex,
30
30
  ...rest
31
31
  }, ref) => {
@@ -144,4 +144,4 @@ const classes = {
144
144
  };
145
145
  const IconButton = (props) => /* @__PURE__ */ jsxRuntime.jsx(IconButtonBase, { ...props, classMap: classes });
146
146
  exports.IconButton = IconButton;
147
- //# sourceMappingURL=IconButton-BxUXK-xn.cjs.map
147
+ //# sourceMappingURL=IconButton-BADgP1DD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconButton-BADgP1DD.cjs","sources":["../../src/components/IconButton/IconButtonBase.tsx","../../src/components/IconButton/core/IconButton.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { IconButtonProps } from \"./IconButton.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface IconButtonBaseProps extends IconButtonProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n}\r\n\r\nconst IconButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n IconButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n href,\r\n isExternal = false,\r\n onClick,\r\n onKeyDown,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n title,\r\n outline = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n size = getDefaultSize(),\r\n loading = false,\r\n type = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n \"data-testid\": testId = \"icon-button\",\r\n tabIndex,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const label = ariaLabel || title || \"Icon button\";\r\n\r\n const classNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.iconButton,\r\n classMap[theme],\r\n classMap[state],\r\n size && classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [theme, size, outline, disabled, className]\r\n );\r\n\r\n const sharedAria = {\r\n \"aria-label\": label,\r\n \"aria-disabled\": disabled || undefined,\r\n \"aria-busy\": loading || undefined,\r\n title,\r\n tabIndex: typeof tabIndex === \"number\" ? tabIndex : disabled ? -1 : 0,\r\n \"data-testid\": testId,\r\n };\r\n\r\n const iconContent = (\r\n <span className={classMap.buttonLabel}>\r\n {loading ? (\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n ) : (\r\n <Icon data-testid=\"icon-button-icon\" aria-hidden=\"true\" />\r\n )}\r\n </span>\r\n );\r\n\r\n if (href && !disabled && isExternal) {\r\n return (\r\n <a\r\n href={href}\r\n role=\"button\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className={classNames}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedAria}\r\n {...rest}\r\n >\r\n {iconContent}\r\n </a>\r\n );\r\n }\r\n\r\n if (href && !disabled && !isExternal) {\r\n return (\r\n <LinkComponent\r\n href={href}\r\n role=\"button\"\r\n className={classNames}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedAria}\r\n {...rest}\r\n >\r\n {iconContent}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type={type}\r\n disabled={disabled}\r\n className={classNames}\r\n onClick={(e) => {\r\n if (!disabled) onClick?.(e);\r\n }}\r\n onKeyDown={(e) => {\r\n if (!disabled && (e.key === \"Enter\" || e.key === \" \")) {\r\n e.preventDefault();\r\n onClick?.(\r\n new MouseEvent(\"click\", {\r\n bubbles: true,\r\n }) as unknown as React.MouseEvent<HTMLElement>\r\n );\r\n }\r\n onKeyDown?.(e);\r\n }}\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n {...sharedAria}\r\n {...rest}\r\n >\r\n {iconContent}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nIconButtonBase.displayName = \"IconButtonBase\";\r\n\r\nexport default IconButtonBase;\r\n","import React from \"react\";\r\nimport IconButtonBase from \"../IconButtonBase\";\r\nimport \"./IconButton.scss\";\r\nimport { IconButtonProps } from \"../IconButton.types\";\r\n\r\nconst classes = {\r\n iconButton: \"icon_button\",\r\n buttonLabel: \"icon_button_button_label\",\r\n loader: \"icon_button_loader\",\r\n\r\n disabled: \"icon_button_disabled\",\r\n outline: \"icon_button_outline\",\r\n\r\n primary: \"icon_button_primary\",\r\n secondary: \"icon_button_secondary\",\r\n tertiary: \"icon_button_tertiary\",\r\n quaternary: \"icon_button_quaternary\",\r\n\r\n success: \"icon_button_success\",\r\n warning: \"icon_button_warning\",\r\n error: \"icon_button_error\",\r\n\r\n clear: \"icon_button_clear\",\r\n\r\n xs: \"icon_button_xs\",\r\n small: \"icon_button_small\",\r\n medium: \"icon_button_medium\",\r\n large: \"icon_button_large\",\r\n xl: \"icon_button_xl\",\r\n\r\n shadowNone: \"icon_button_shadow-None\",\r\n shadowLight: \"icon_button_shadow-Light\",\r\n shadowMedium: \"icon_button_shadow-Medium\",\r\n shadowStrong: \"icon_button_shadow-Strong\",\r\n shadowIntense: \"icon_button_shadow-Intense\",\r\n\r\n roundNone: \"icon_button_round-None\",\r\n roundSmall: \"icon_button_round-Small\",\r\n roundMedium: \"icon_button_round-Medium\",\r\n roundLarge: \"icon_button_round-Large\",\r\n roundFull: \"icon_button_round-Full\",\r\n};\r\n\r\nconst IconButton: React.FC<IconButtonProps> = (props) => (\r\n <IconButtonBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default IconButton;\r\n"],"names":["forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","classNames","useMemo","combineClassNames","capitalize","jsx"],"mappings":"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"}
@@ -24,7 +24,7 @@ const IconButtonBase = forwardRef(
24
24
  type = "button",
25
25
  classMap,
26
26
  LinkComponent = "a",
27
- "data-testid": testId,
27
+ "data-testid": testId = "icon-button",
28
28
  tabIndex,
29
29
  ...rest
30
30
  }, ref) => {
@@ -145,4 +145,4 @@ const IconButton = (props) => /* @__PURE__ */ jsx(IconButtonBase, { ...props, cl
145
145
  export {
146
146
  IconButton as I
147
147
  };
148
- //# sourceMappingURL=IconButton-B6cAP2hY.js.map
148
+ //# sourceMappingURL=IconButton-Dsw2M1s8.js.map