boreal-ui 0.0.78 → 0.0.80

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 (213) hide show
  1. package/dist/core/{Breadcrumbs-B7hp9_u1.cjs → Breadcrumbs-B-I-UmIg.cjs} +1 -2
  2. package/dist/core/{Breadcrumbs-B7hp9_u1.cjs.map → Breadcrumbs-B-I-UmIg.cjs.map} +1 -1
  3. package/dist/core/{Breadcrumbs-kbOyaea6.js → Breadcrumbs-BwDAukNi.js} +1 -2
  4. package/dist/core/{Breadcrumbs-kbOyaea6.js.map → Breadcrumbs-BwDAukNi.js.map} +1 -1
  5. package/dist/core/Breadcrumbs.cjs.js +1 -1
  6. package/dist/core/Breadcrumbs.js +1 -1
  7. package/dist/core/{Card-C3kfPs8j.cjs → Card-B2gCUSuQ.cjs} +1 -2
  8. package/dist/core/{Card-C3kfPs8j.cjs.map → Card-B2gCUSuQ.cjs.map} +1 -1
  9. package/dist/core/{Card-CZY1qzwZ.js → Card-CnvOGnWI.js} +1 -2
  10. package/dist/core/{Card-CZY1qzwZ.js.map → Card-CnvOGnWI.js.map} +1 -1
  11. package/dist/core/Card.cjs.js +1 -1
  12. package/dist/core/Card.js +1 -1
  13. package/dist/core/{CommandPalette-BtpQ9cio.cjs → CommandPalette-BKd-BCUk.cjs} +2 -2
  14. package/dist/core/{CommandPalette-BtpQ9cio.cjs.map → CommandPalette-BKd-BCUk.cjs.map} +1 -1
  15. package/dist/core/{CommandPalette-0uVG4iR2.js → CommandPalette-C5XB2s4L.js} +2 -2
  16. package/dist/core/{CommandPalette-0uVG4iR2.js.map → CommandPalette-C5XB2s4L.js.map} +1 -1
  17. package/dist/core/CommandPalette.cjs.js +1 -1
  18. package/dist/core/CommandPalette.js +1 -1
  19. package/dist/core/{Dropdown-B7-_OH9p.cjs → Dropdown-DflOD92W.cjs} +1 -2
  20. package/dist/core/{Dropdown-B7-_OH9p.cjs.map → Dropdown-DflOD92W.cjs.map} +1 -1
  21. package/dist/core/{Dropdown-BEPGhf-i.js → Dropdown-fr7AR3nt.js} +1 -2
  22. package/dist/core/{Dropdown-BEPGhf-i.js.map → Dropdown-fr7AR3nt.js.map} +1 -1
  23. package/dist/core/Dropdown.cjs.js +1 -1
  24. package/dist/core/Dropdown.js +1 -1
  25. package/dist/core/{EmptyState-Du2xqi6G.cjs → EmptyState-BSVIrZHm.cjs} +1 -2
  26. package/dist/core/{EmptyState-Du2xqi6G.cjs.map → EmptyState-BSVIrZHm.cjs.map} +1 -1
  27. package/dist/core/{EmptyState-CM7nlKER.js → EmptyState-ClFhpjyo.js} +1 -2
  28. package/dist/core/{EmptyState-CM7nlKER.js.map → EmptyState-ClFhpjyo.js.map} +1 -1
  29. package/dist/core/EmptyState.cjs.js +1 -1
  30. package/dist/core/EmptyState.js +1 -1
  31. package/dist/core/{Footer-60sTURxB.cjs → Footer-CDcKfT68.cjs} +37 -37
  32. package/dist/core/Footer-CDcKfT68.cjs.map +1 -0
  33. package/dist/core/{Footer-Q_60pe6o.js → Footer-DaEqi5su.js} +38 -38
  34. package/dist/core/Footer-DaEqi5su.js.map +1 -0
  35. package/dist/core/Footer.cjs.js +1 -1
  36. package/dist/core/Footer.js +1 -1
  37. package/dist/core/{NotificationCenter-DA-WGPP9.js → NotificationCenter-B8e8mMb_.js} +1 -2
  38. package/dist/core/{NotificationCenter-DA-WGPP9.js.map → NotificationCenter-B8e8mMb_.js.map} +1 -1
  39. package/dist/core/{NotificationCenter-CsKJTZhk.cjs → NotificationCenter-Dg_F-nLl.cjs} +1 -2
  40. package/dist/core/{NotificationCenter-CsKJTZhk.cjs.map → NotificationCenter-Dg_F-nLl.cjs.map} +1 -1
  41. package/dist/core/NotificationCenter.cjs.js +1 -1
  42. package/dist/core/NotificationCenter.js +1 -1
  43. package/dist/core/{Pager-B4hyIUdo.js → Pager-BH8hdkMS.js} +1 -2
  44. package/dist/core/{Pager-B4hyIUdo.js.map → Pager-BH8hdkMS.js.map} +1 -1
  45. package/dist/core/{Pager-wl7_umU4.cjs → Pager-BXAAjmIk.cjs} +1 -2
  46. package/dist/core/{Pager-wl7_umU4.cjs.map → Pager-BXAAjmIk.cjs.map} +1 -1
  47. package/dist/core/Pager.cjs.js +1 -1
  48. package/dist/core/Pager.js +1 -1
  49. package/dist/core/{Stepper-CQRJID19.cjs → Stepper-BImUKM9h.cjs} +1 -2
  50. package/dist/core/{Stepper-CQRJID19.cjs.map → Stepper-BImUKM9h.cjs.map} +1 -1
  51. package/dist/core/{Stepper-CLfy0_gZ.js → Stepper-DRCnDvvv.js} +1 -2
  52. package/dist/core/{Stepper-CLfy0_gZ.js.map → Stepper-DRCnDvvv.js.map} +1 -1
  53. package/dist/core/Stepper.cjs.js +1 -1
  54. package/dist/core/Stepper.js +1 -1
  55. package/dist/core/{TagInput-YieWARAt.js → TagInput-BO0Br1nf.js} +2 -2
  56. package/dist/core/{TagInput-YieWARAt.js.map → TagInput-BO0Br1nf.js.map} +1 -1
  57. package/dist/core/{TagInput-pWRdhaP3.cjs → TagInput-CpJ--Wzp.cjs} +2 -2
  58. package/dist/core/{TagInput-pWRdhaP3.cjs.map → TagInput-CpJ--Wzp.cjs.map} +1 -1
  59. package/dist/core/TagInput.cjs.js +1 -1
  60. package/dist/core/TagInput.js +1 -1
  61. package/dist/core/{TextInput-Bc2YpcvM.js → TextInput-CXyzklAm.js} +1 -2
  62. package/dist/core/{TextInput-Bc2YpcvM.js.map → TextInput-CXyzklAm.js.map} +1 -1
  63. package/dist/core/{TextInput-DbAsQxjr.cjs → TextInput-xBrLtn_h.cjs} +1 -2
  64. package/dist/core/{TextInput-DbAsQxjr.cjs.map → TextInput-xBrLtn_h.cjs.map} +1 -1
  65. package/dist/core/TextInput.cjs.js +1 -1
  66. package/dist/core/TextInput.js +1 -1
  67. package/dist/core/boreal-ui.css +1137 -1137
  68. package/dist/core/index.cjs.js +11 -12
  69. package/dist/core/index.cjs.js.map +1 -1
  70. package/dist/core/index.js +11 -12
  71. package/dist/core/index.js.map +1 -1
  72. package/dist/next/{Breadcrumbs-eetAtAHU.js → Breadcrumbs-BEDmdhgu.js} +2 -3
  73. package/dist/next/{Breadcrumbs-eetAtAHU.js.map → Breadcrumbs-BEDmdhgu.js.map} +1 -1
  74. package/dist/next/{Breadcrumbs-33eZmvpJ.cjs → Breadcrumbs-CMOeEih6.cjs} +2 -3
  75. package/dist/next/{Breadcrumbs-33eZmvpJ.cjs.map → Breadcrumbs-CMOeEih6.cjs.map} +1 -1
  76. package/dist/next/Breadcrumbs.cjs.js +1 -1
  77. package/dist/next/Breadcrumbs.js +1 -1
  78. package/dist/next/{Card-CO--D_GK.js → Card-C4l2NTBd.js} +2 -3
  79. package/dist/next/{Card-CO--D_GK.js.map → Card-C4l2NTBd.js.map} +1 -1
  80. package/dist/next/{Card-o8DszZPj.cjs → Card-DcQ0V83P.cjs} +2 -3
  81. package/dist/next/{Card-o8DszZPj.cjs.map → Card-DcQ0V83P.cjs.map} +1 -1
  82. package/dist/next/Card.cjs.js +1 -1
  83. package/dist/next/Card.js +1 -1
  84. package/dist/next/CheckBox.cjs.js +1 -1
  85. package/dist/next/CheckBox.js +1 -1
  86. package/dist/next/{Checkbox-KIXViPTB.js → Checkbox-D6Msnkyl.js} +75 -75
  87. package/dist/next/{Checkbox-KIXViPTB.js.map → Checkbox-D6Msnkyl.js.map} +1 -1
  88. package/dist/next/{Checkbox-UqOL3aqk.cjs → Checkbox-IK6dY7ED.cjs} +74 -74
  89. package/dist/next/{Checkbox-UqOL3aqk.cjs.map → Checkbox-IK6dY7ED.cjs.map} +1 -1
  90. package/dist/next/{Chip-D-QH1huh.js → Chip-BweeZwb7.js} +84 -85
  91. package/dist/next/{Chip-D-QH1huh.js.map → Chip-BweeZwb7.js.map} +1 -1
  92. package/dist/next/{Chip-BQv3NoJL.cjs → Chip-DNyF7UUP.cjs} +85 -86
  93. package/dist/next/{Chip-BQv3NoJL.cjs.map → Chip-DNyF7UUP.cjs.map} +1 -1
  94. package/dist/next/Chip.cjs.js +1 -1
  95. package/dist/next/Chip.js +1 -1
  96. package/dist/next/{CircularProgress-BG83Q-uO.cjs → CircularProgress-0bh-uYuv.cjs} +58 -58
  97. package/dist/next/{CircularProgress-BG83Q-uO.cjs.map → CircularProgress-0bh-uYuv.cjs.map} +1 -1
  98. package/dist/next/{CircularProgress-Bfanw-2S.js → CircularProgress-BHOMzVmz.js} +59 -59
  99. package/dist/next/{CircularProgress-Bfanw-2S.js.map → CircularProgress-BHOMzVmz.js.map} +1 -1
  100. package/dist/next/CircularProgress.cjs.js +1 -1
  101. package/dist/next/CircularProgress.js +1 -1
  102. package/dist/next/{ColorPicker-BJfyM0Ay.js → ColorPicker-BhDo-h8k.js} +50 -50
  103. package/dist/next/{ColorPicker-BJfyM0Ay.js.map → ColorPicker-BhDo-h8k.js.map} +1 -1
  104. package/dist/next/{ColorPicker-DmubVH4p.cjs → ColorPicker-DlyqseYs.cjs} +49 -49
  105. package/dist/next/{ColorPicker-DmubVH4p.cjs.map → ColorPicker-DlyqseYs.cjs.map} +1 -1
  106. package/dist/next/ColorPicker.cjs.js +1 -1
  107. package/dist/next/ColorPicker.js +1 -1
  108. package/dist/next/{CommandPalette-CNaU5jTY.js → CommandPalette-BAgsEdVA.js} +67 -68
  109. package/dist/next/{CommandPalette-CNaU5jTY.js.map → CommandPalette-BAgsEdVA.js.map} +1 -1
  110. package/dist/next/{CommandPalette-_Lpb0UOI.cjs → CommandPalette-CNs6UpbZ.cjs} +68 -69
  111. package/dist/next/{CommandPalette-_Lpb0UOI.cjs.map → CommandPalette-CNs6UpbZ.cjs.map} +1 -1
  112. package/dist/next/CommandPalette.cjs.js +1 -1
  113. package/dist/next/CommandPalette.js +1 -1
  114. package/dist/next/{DateTimePicker-WVVLqcd9.js → DateTimePicker-D2thRuf1.js} +65 -65
  115. package/dist/next/{DateTimePicker-WVVLqcd9.js.map → DateTimePicker-D2thRuf1.js.map} +1 -1
  116. package/dist/next/{DateTimePicker-CU-b9irX.cjs → DateTimePicker-Dp0y3k4y.cjs} +65 -65
  117. package/dist/next/{DateTimePicker-CU-b9irX.cjs.map → DateTimePicker-Dp0y3k4y.cjs.map} +1 -1
  118. package/dist/next/DateTimePicker.cjs.js +1 -1
  119. package/dist/next/DateTimePicker.js +1 -1
  120. package/dist/next/{Divider-BXSDTRTU.js → Divider-C41EKGIw.js} +30 -30
  121. package/dist/next/{Divider-BXSDTRTU.js.map → Divider-C41EKGIw.js.map} +1 -1
  122. package/dist/next/{Divider-BGxUapmt.cjs → Divider-CVOkAhn6.cjs} +29 -29
  123. package/dist/next/{Divider-BGxUapmt.cjs.map → Divider-CVOkAhn6.cjs.map} +1 -1
  124. package/dist/next/Divider.cjs.js +1 -1
  125. package/dist/next/Divider.js +1 -1
  126. package/dist/next/{Dropdown-CUYItZDk.cjs → Dropdown-BYmta_HY.cjs} +42 -43
  127. package/dist/next/{Dropdown-CUYItZDk.cjs.map → Dropdown-BYmta_HY.cjs.map} +1 -1
  128. package/dist/next/{Dropdown-B7vrHg0z.js → Dropdown-DavPqfaS.js} +41 -42
  129. package/dist/next/{Dropdown-B7vrHg0z.js.map → Dropdown-DavPqfaS.js.map} +1 -1
  130. package/dist/next/Dropdown.cjs.js +1 -1
  131. package/dist/next/Dropdown.js +1 -1
  132. package/dist/next/{EmptyState-MT9_qwrB.js → EmptyState-CiTGvH-L.js} +72 -73
  133. package/dist/next/{EmptyState-MT9_qwrB.js.map → EmptyState-CiTGvH-L.js.map} +1 -1
  134. package/dist/next/{EmptyState-sh7Vn6eC.cjs → EmptyState-kAjC_DXY.cjs} +73 -74
  135. package/dist/next/{EmptyState-sh7Vn6eC.cjs.map → EmptyState-kAjC_DXY.cjs.map} +1 -1
  136. package/dist/next/EmptyState.cjs.js +1 -1
  137. package/dist/next/EmptyState.js +1 -1
  138. package/dist/next/{FileUpload-Bvj5JEBv.js → FileUpload-HiZuJjoA.js} +82 -83
  139. package/dist/next/{FileUpload-Bvj5JEBv.js.map → FileUpload-HiZuJjoA.js.map} +1 -1
  140. package/dist/next/{FileUpload-CD_i5Md2.cjs → FileUpload-qzSlXJzW.cjs} +82 -83
  141. package/dist/next/{FileUpload-CD_i5Md2.cjs.map → FileUpload-qzSlXJzW.cjs.map} +1 -1
  142. package/dist/next/FileUpload.cjs.js +1 -1
  143. package/dist/next/FileUpload.js +1 -1
  144. package/dist/next/{Footer-Bdu_9H3p.js → Footer-BVic2clD.js} +103 -103
  145. package/dist/next/Footer-BVic2clD.js.map +1 -0
  146. package/dist/next/{Footer-DJjzgwpc.cjs → Footer-lEKbmF3y.cjs} +103 -103
  147. package/dist/next/Footer-lEKbmF3y.cjs.map +1 -0
  148. package/dist/next/Footer.cjs.js +1 -1
  149. package/dist/next/Footer.js +1 -1
  150. package/dist/next/{MessagePopup-DLodDCIa.js → MessagePopup-BAvnVw84.js} +2 -3
  151. package/dist/next/{MessagePopup-DLodDCIa.js.map → MessagePopup-BAvnVw84.js.map} +1 -1
  152. package/dist/next/{MessagePopup-CizqwWmH.cjs → MessagePopup-CixIzgoc.cjs} +2 -3
  153. package/dist/next/{MessagePopup-CizqwWmH.cjs.map → MessagePopup-CixIzgoc.cjs.map} +1 -1
  154. package/dist/next/MessagePopup.cjs.js +1 -1
  155. package/dist/next/MessagePopup.js +1 -1
  156. package/dist/next/{Modal-BajWiIo7.js → Modal-5Reb9Rx-.js} +2 -3
  157. package/dist/next/{Modal-BajWiIo7.js.map → Modal-5Reb9Rx-.js.map} +1 -1
  158. package/dist/next/{Modal-j59Cj0t1.cjs → Modal-DfVyL8yk.cjs} +2 -3
  159. package/dist/next/{Modal-j59Cj0t1.cjs.map → Modal-DfVyL8yk.cjs.map} +1 -1
  160. package/dist/next/Modal.cjs.js +1 -1
  161. package/dist/next/Modal.js +1 -1
  162. package/dist/next/{NotificationCenter-obd1jF2n.cjs → NotificationCenter-BcEB_4HS.cjs} +2 -3
  163. package/dist/next/{NotificationCenter-obd1jF2n.cjs.map → NotificationCenter-BcEB_4HS.cjs.map} +1 -1
  164. package/dist/next/{NotificationCenter-BDd4Zr8Y.js → NotificationCenter-DvoC0SI9.js} +2 -3
  165. package/dist/next/{NotificationCenter-BDd4Zr8Y.js.map → NotificationCenter-DvoC0SI9.js.map} +1 -1
  166. package/dist/next/NotificationCenter.cjs.js +1 -1
  167. package/dist/next/NotificationCenter.js +1 -1
  168. package/dist/next/{Pager-8dIVqCGz.cjs → Pager-BZLZA8KD.cjs} +2 -3
  169. package/dist/next/{Pager-8dIVqCGz.cjs.map → Pager-BZLZA8KD.cjs.map} +1 -1
  170. package/dist/next/{Pager-C7n5x44P.js → Pager-D11plHRn.js} +2 -3
  171. package/dist/next/{Pager-C7n5x44P.js.map → Pager-D11plHRn.js.map} +1 -1
  172. package/dist/next/Pager.cjs.js +1 -1
  173. package/dist/next/Pager.js +1 -1
  174. package/dist/next/{Stepper-em6Gl32O.js → Stepper-B2X72Iir.js} +2 -3
  175. package/dist/next/{Stepper-em6Gl32O.js.map → Stepper-B2X72Iir.js.map} +1 -1
  176. package/dist/next/{Stepper-CpgJBKz7.cjs → Stepper-fE7prDWu.cjs} +2 -3
  177. package/dist/next/{Stepper-CpgJBKz7.cjs.map → Stepper-fE7prDWu.cjs.map} +1 -1
  178. package/dist/next/Stepper.cjs.js +1 -1
  179. package/dist/next/Stepper.js +1 -1
  180. package/dist/next/{TagInput-DVmBv7Mn.cjs → TagInput-BycAVBEu.cjs} +3 -4
  181. package/dist/next/{TagInput-DVmBv7Mn.cjs.map → TagInput-BycAVBEu.cjs.map} +1 -1
  182. package/dist/next/{TagInput-8nVGDluu.js → TagInput-CabR-drk.js} +3 -4
  183. package/dist/next/{TagInput-8nVGDluu.js.map → TagInput-CabR-drk.js.map} +1 -1
  184. package/dist/next/TagInput.cjs.js +1 -1
  185. package/dist/next/TagInput.js +1 -1
  186. package/dist/next/{TextInput-CKM34-yu.js → TextInput-B4s9TMoa.js} +2 -3
  187. package/dist/next/{TextInput-CKM34-yu.js.map → TextInput-B4s9TMoa.js.map} +1 -1
  188. package/dist/next/{TextInput-BRl37zMW.cjs → TextInput-SqTFFVZ8.cjs} +2 -3
  189. package/dist/next/{TextInput-BRl37zMW.cjs.map → TextInput-SqTFFVZ8.cjs.map} +1 -1
  190. package/dist/next/TextInput.cjs.js +1 -1
  191. package/dist/next/TextInput.js +1 -1
  192. package/dist/next/globals.cjs.js +2 -0
  193. package/dist/next/globals.cjs.js.map +1 -0
  194. package/dist/next/globals.js +2 -0
  195. package/dist/next/globals.js.map +1 -0
  196. package/dist/next/index.cjs.js +22 -22
  197. package/dist/next/index.js +22 -22
  198. package/dist/tsconfig.build.tsbuildinfo +1 -1
  199. package/dist/types/components/Card/core/Card.d.ts.map +1 -1
  200. package/dist/types/components/Card/next/Card.d.ts.map +1 -1
  201. package/dist/types/components/FileUpload/next/FileUpload.d.ts.map +1 -1
  202. package/dist/types/components/Footer/next/Footer.d.ts.map +1 -1
  203. package/dist/types/components/MessagePopup/next/MessagePopup.d.ts.map +1 -1
  204. package/dist/types/components/NotificationCenter/core/NotificationCenter.d.ts.map +1 -1
  205. package/dist/types/components/NotificationCenter/next/NotificationCenter.d.ts.map +1 -1
  206. package/dist/types/components/Pager/core/Pager.d.ts.map +1 -1
  207. package/dist/types/components/Pager/next/Pager.d.ts.map +1 -1
  208. package/dist/types/components/TagInput/next/TagInput.d.ts.map +1 -1
  209. package/package.json +1 -1
  210. package/dist/core/Footer-60sTURxB.cjs.map +0 -1
  211. package/dist/core/Footer-Q_60pe6o.js.map +0 -1
  212. package/dist/next/Footer-Bdu_9H3p.js.map +0 -1
  213. package/dist/next/Footer-DJjzgwpc.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FileUpload-CD_i5Md2.cjs","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/next/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, useEffect, useId } from \"react\";\r\nimport { BaseFileUploadProps } 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\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 onFilesChange,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n id,\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n\r\n // a11y props\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-errormessage\": ariaErrorMessage,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n \"aria-busy\": ariaBusy,\r\n \"aria-live\": ariaLive,\r\n\r\n inputAriaLabel,\r\n selectButtonAriaLabel,\r\n uploadButtonAriaLabel,\r\n removeFileAriaLabel,\r\n fileListAriaLabel,\r\n rejectedFilesAriaLabel,\r\n successMessage = \"Upload successful.\",\r\n failureMessage = \"Upload failed. Please try again.\",\r\n filesSelectedMessage,\r\n fileRemovedMessage,\r\n rejectedFilesMessage,\r\n liveRegionPoliteness = \"polite\",\r\n dropzoneDescription,\r\n dropzoneRole = \"group\",\r\n enableDragAndDrop = true,\r\n\r\n inputProps,\r\n selectButtonProps,\r\n uploadButtonProps,\r\n removeButtonProps,\r\n progressBarProps,\r\n\r\n className,\r\n ...rest\r\n}) => {\r\n const reactId = useId();\r\n const baseId = id || testId || `file-upload-${reactId.replace(/:/g, \"\")}`;\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\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const descriptionId = `${baseId}-description`;\r\n const errorId = `${baseId}-error`;\r\n const dropzoneDescriptionId = `${baseId}-dropzone-description`;\r\n const liveRegionId = `${baseId}-live-region`;\r\n const fileListId = `${baseId}-file-list`;\r\n const rejectedListId = `${baseId}-rejected-list`;\r\n const inputId = `${baseId}-input`;\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\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 ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\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 || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const announce = (message: string | null) => {\r\n setUploadMessage(message);\r\n };\r\n\r\n const buildSelectedMessage = (selectedFiles: File[]) => {\r\n if (filesSelectedMessage) return filesSelectedMessage(selectedFiles);\r\n const count = selectedFiles.length;\r\n return count === 1\r\n ? `${selectedFiles[0].name} selected.`\r\n : `${count} files selected.`;\r\n };\r\n\r\n const buildRejectedMessage = (\r\n nextRejectedFiles: { name: string; reason: string }[],\r\n ) => {\r\n if (nextRejectedFiles.length === 0) return null;\r\n if (rejectedFilesMessage) return rejectedFilesMessage(nextRejectedFiles);\r\n return nextRejectedFiles.length === 1\r\n ? `${nextRejectedFiles[0].name} was rejected: ${nextRejectedFiles[0].reason}.`\r\n : `${nextRejectedFiles.length} files were 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(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n onFilesChange?.(updatedFiles);\r\n\r\n const selectedMessage =\r\n valid.length > 0 ? buildSelectedMessage(updatedFiles) : null;\r\n const rejectedMessage = buildRejectedMessage(rejected);\r\n\r\n announce(\r\n [selectedMessage, rejectedMessage].filter(Boolean).join(\" \") || null,\r\n );\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const removedFile = files[index];\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n onFilesChange?.(updatedFiles);\r\n\r\n if (removedFile) {\r\n announce(\r\n fileRemovedMessage\r\n ? fileRemovedMessage(removedFile.name, index)\r\n : `${removedFile.name} removed.`,\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 if (!enableDragAndDrop || disabled) return;\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n if (!enableDragAndDrop || disabled) return;\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n if (!enableDragAndDrop || disabled) return;\r\n e.preventDefault();\r\n setIsDragging(false);\r\n\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 = async () => {\r\n if (!files.length || uploading || disabled) return;\r\n\r\n setUploading(true);\r\n setInternalProgress(0);\r\n announce(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n announce(successMessage);\r\n } catch {\r\n announce(failureMessage);\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\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 && classMap.dragging,\r\n disabled && classMap.disabled,\r\n className,\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n className,\r\n ],\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? descriptionId : undefined,\r\n error ? errorId : undefined,\r\n dropzoneDescription ? dropzoneDescriptionId : undefined,\r\n ariaDescribedBy,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n const computedAriaInvalid =\r\n ariaInvalid !== undefined ? ariaInvalid : error ? true : undefined;\r\n\r\n const computedAriaRequired =\r\n ariaRequired !== undefined ? ariaRequired : required ? true : undefined;\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 {...rest}\r\n className={containerClassName}\r\n onDragOver={enableDragAndDrop ? handleDragOver : undefined}\r\n onDragLeave={enableDragAndDrop ? handleDragLeave : undefined}\r\n onDrop={enableDragAndDrop ? handleDrop : undefined}\r\n role={dropzoneRole}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? ariaErrorMessage || errorId : undefined}\r\n aria-invalid={computedAriaInvalid}\r\n aria-required={computedAriaRequired}\r\n aria-busy={ariaBusy !== undefined ? ariaBusy : uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n {dropzoneDescription && (\r\n <div id={dropzoneDescriptionId} className=\"sr_only\">\r\n {dropzoneDescription}\r\n </div>\r\n )}\r\n\r\n <input\r\n {...inputProps}\r\n ref={fileInput}\r\n id={inputProps?.id || inputId}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={combineClassNames(\r\n classMap.hiddenInput,\r\n inputProps?.className,\r\n )}\r\n required={required}\r\n disabled={disabled}\r\n aria-label={inputAriaLabel || label || \"Choose file\"}\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? ariaErrorMessage || errorId : undefined}\r\n aria-invalid={computedAriaInvalid}\r\n aria-required={computedAriaRequired}\r\n data-testid={`${testId}-input`}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n {...selectButtonProps}\r\n icon={FileIcon}\r\n size={selectButtonProps?.size ?? \"small\"}\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={combineClassNames(\r\n classMap.fileInput,\r\n selectButtonProps?.className,\r\n )}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => {\r\n fileInput.current?.click();\r\n }}\r\n aria-label={\r\n selectButtonProps?.[\"aria-label\"] ||\r\n selectButtonAriaLabel ||\r\n \"Choose file\"\r\n }\r\n aria-describedby={fileNames.length > 0 ? fileListId : undefined}\r\n data-testid={`${testId}-file-button`}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div\r\n className={classMap.rejectedFiles}\r\n aria-label={rejectedFilesAriaLabel}\r\n data-testid={testId ? `${testId}-rejected-files` : undefined}\r\n >\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul\r\n id={rejectedListId}\r\n className={classMap.rejectedList}\r\n aria-label={rejectedFilesAriaLabel || \"Rejected files\"}\r\n >\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\r\n id={fileListId}\r\n className={classMap.fileList}\r\n aria-label={fileListAriaLabel || \"Selected files\"}\r\n >\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n {...removeButtonProps}\r\n icon={TrashIcon}\r\n state=\"error\"\r\n size={removeButtonProps?.size ?? \"small\"}\r\n type=\"button\"\r\n outline\r\n aria-label={\r\n removeFileAriaLabel?.(name, index) || `Remove ${name}`\r\n }\r\n onClick={() => removeFile(index)}\r\n className={combineClassNames(\r\n classMap.removeButton,\r\n removeButtonProps?.className,\r\n )}\r\n data-testid={`${testId}-remove-${index}`}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n {uploading && (\r\n <ProgressBar\r\n {...progressBarProps}\r\n theme={theme}\r\n className={combineClassNames(\r\n classMap.uploadProgress,\r\n progressBarProps?.className,\r\n )}\r\n value={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={\r\n progressBarProps?.[\"data-testid\"] || `${testId}-progress`\r\n }\r\n />\r\n )}\r\n\r\n {!uploading && (\r\n <Button\r\n {...uploadButtonProps}\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={() => {\r\n void handleUpload();\r\n }}\r\n loading={uploading}\r\n size={uploadButtonProps?.size ?? \"small\"}\r\n className={combineClassNames(\r\n classMap.uploadButton,\r\n uploadButtonProps?.className,\r\n )}\r\n aria-label={uploadButtonAriaLabel || \"Upload selected files\"}\r\n data-testid={`${testId}-upload-button`}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n\r\n <div\r\n id={liveRegionId}\r\n className=\"sr_only\"\r\n aria-live={ariaLive || liveRegionPoliteness}\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\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport { Button, IconButton, Progressbar, FormGroup } from \"@/index.next\";\r\nimport styles from \"./FileUpload.module.scss\";\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={styles}\r\n />\r\n );\r\n};\r\nFileUpload.displayName = \"FileUpload\";\r\nexport default FileUpload;\r\n"],"names":["jsxs","jsx","error","getDefaultTheme","getDefaultRounding","getDefaultShadow","uploadProgress","FormGroup","disabled","Button","IconButton","ProgressBar","useId","useState","rejectedFiles","useRef","useMemo","useEffect","combineClassNames","capitalize","Progressbar"],"mappings":"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"}
1
+ {"version":3,"file":"FileUpload-qzSlXJzW.cjs","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/next/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, useEffect, useId } from \"react\";\r\nimport { BaseFileUploadProps } 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\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 onFilesChange,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n id,\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n\r\n // a11y props\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-errormessage\": ariaErrorMessage,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n \"aria-busy\": ariaBusy,\r\n \"aria-live\": ariaLive,\r\n\r\n inputAriaLabel,\r\n selectButtonAriaLabel,\r\n uploadButtonAriaLabel,\r\n removeFileAriaLabel,\r\n fileListAriaLabel,\r\n rejectedFilesAriaLabel,\r\n successMessage = \"Upload successful.\",\r\n failureMessage = \"Upload failed. Please try again.\",\r\n filesSelectedMessage,\r\n fileRemovedMessage,\r\n rejectedFilesMessage,\r\n liveRegionPoliteness = \"polite\",\r\n dropzoneDescription,\r\n dropzoneRole = \"group\",\r\n enableDragAndDrop = true,\r\n\r\n inputProps,\r\n selectButtonProps,\r\n uploadButtonProps,\r\n removeButtonProps,\r\n progressBarProps,\r\n\r\n className,\r\n ...rest\r\n}) => {\r\n const reactId = useId();\r\n const baseId = id || testId || `file-upload-${reactId.replace(/:/g, \"\")}`;\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\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const descriptionId = `${baseId}-description`;\r\n const errorId = `${baseId}-error`;\r\n const dropzoneDescriptionId = `${baseId}-dropzone-description`;\r\n const liveRegionId = `${baseId}-live-region`;\r\n const fileListId = `${baseId}-file-list`;\r\n const rejectedListId = `${baseId}-rejected-list`;\r\n const inputId = `${baseId}-input`;\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\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 ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\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 || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const announce = (message: string | null) => {\r\n setUploadMessage(message);\r\n };\r\n\r\n const buildSelectedMessage = (selectedFiles: File[]) => {\r\n if (filesSelectedMessage) return filesSelectedMessage(selectedFiles);\r\n const count = selectedFiles.length;\r\n return count === 1\r\n ? `${selectedFiles[0].name} selected.`\r\n : `${count} files selected.`;\r\n };\r\n\r\n const buildRejectedMessage = (\r\n nextRejectedFiles: { name: string; reason: string }[],\r\n ) => {\r\n if (nextRejectedFiles.length === 0) return null;\r\n if (rejectedFilesMessage) return rejectedFilesMessage(nextRejectedFiles);\r\n return nextRejectedFiles.length === 1\r\n ? `${nextRejectedFiles[0].name} was rejected: ${nextRejectedFiles[0].reason}.`\r\n : `${nextRejectedFiles.length} files were 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(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n onFilesChange?.(updatedFiles);\r\n\r\n const selectedMessage =\r\n valid.length > 0 ? buildSelectedMessage(updatedFiles) : null;\r\n const rejectedMessage = buildRejectedMessage(rejected);\r\n\r\n announce(\r\n [selectedMessage, rejectedMessage].filter(Boolean).join(\" \") || null,\r\n );\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const removedFile = files[index];\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n onFilesChange?.(updatedFiles);\r\n\r\n if (removedFile) {\r\n announce(\r\n fileRemovedMessage\r\n ? fileRemovedMessage(removedFile.name, index)\r\n : `${removedFile.name} removed.`,\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 if (!enableDragAndDrop || disabled) return;\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n if (!enableDragAndDrop || disabled) return;\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n if (!enableDragAndDrop || disabled) return;\r\n e.preventDefault();\r\n setIsDragging(false);\r\n\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 = async () => {\r\n if (!files.length || uploading || disabled) return;\r\n\r\n setUploading(true);\r\n setInternalProgress(0);\r\n announce(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n announce(successMessage);\r\n } catch {\r\n announce(failureMessage);\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\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 && classMap.dragging,\r\n disabled && classMap.disabled,\r\n className,\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n className,\r\n ],\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? descriptionId : undefined,\r\n error ? errorId : undefined,\r\n dropzoneDescription ? dropzoneDescriptionId : undefined,\r\n ariaDescribedBy,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n const computedAriaInvalid =\r\n ariaInvalid !== undefined ? ariaInvalid : error ? true : undefined;\r\n\r\n const computedAriaRequired =\r\n ariaRequired !== undefined ? ariaRequired : required ? true : undefined;\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 {...rest}\r\n className={containerClassName}\r\n onDragOver={enableDragAndDrop ? handleDragOver : undefined}\r\n onDragLeave={enableDragAndDrop ? handleDragLeave : undefined}\r\n onDrop={enableDragAndDrop ? handleDrop : undefined}\r\n role={dropzoneRole}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? ariaErrorMessage || errorId : undefined}\r\n aria-invalid={computedAriaInvalid}\r\n aria-required={computedAriaRequired}\r\n aria-busy={ariaBusy !== undefined ? ariaBusy : uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n {dropzoneDescription && (\r\n <div id={dropzoneDescriptionId} className=\"sr_only\">\r\n {dropzoneDescription}\r\n </div>\r\n )}\r\n\r\n <input\r\n {...inputProps}\r\n ref={fileInput}\r\n id={inputProps?.id || inputId}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={combineClassNames(\r\n classMap.hiddenInput,\r\n inputProps?.className,\r\n )}\r\n required={required}\r\n disabled={disabled}\r\n aria-label={inputAriaLabel || label || \"Choose file\"}\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? ariaErrorMessage || errorId : undefined}\r\n aria-invalid={computedAriaInvalid}\r\n aria-required={computedAriaRequired}\r\n data-testid={`${testId}-input`}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n {...selectButtonProps}\r\n icon={FileIcon}\r\n size={selectButtonProps?.size ?? \"small\"}\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={combineClassNames(\r\n classMap.fileInput,\r\n selectButtonProps?.className,\r\n )}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => {\r\n fileInput.current?.click();\r\n }}\r\n aria-label={\r\n selectButtonProps?.[\"aria-label\"] ||\r\n selectButtonAriaLabel ||\r\n \"Choose file\"\r\n }\r\n aria-describedby={fileNames.length > 0 ? fileListId : undefined}\r\n data-testid={`${testId}-file-button`}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div\r\n className={classMap.rejectedFiles}\r\n aria-label={rejectedFilesAriaLabel}\r\n data-testid={testId ? `${testId}-rejected-files` : undefined}\r\n >\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul\r\n id={rejectedListId}\r\n className={classMap.rejectedList}\r\n aria-label={rejectedFilesAriaLabel || \"Rejected files\"}\r\n >\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\r\n id={fileListId}\r\n className={classMap.fileList}\r\n aria-label={fileListAriaLabel || \"Selected files\"}\r\n >\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n {...removeButtonProps}\r\n icon={TrashIcon}\r\n state=\"error\"\r\n size={removeButtonProps?.size ?? \"small\"}\r\n type=\"button\"\r\n outline\r\n aria-label={\r\n removeFileAriaLabel?.(name, index) || `Remove ${name}`\r\n }\r\n onClick={() => removeFile(index)}\r\n className={combineClassNames(\r\n classMap.removeButton,\r\n removeButtonProps?.className,\r\n )}\r\n data-testid={`${testId}-remove-${index}`}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n {uploading && (\r\n <ProgressBar\r\n {...progressBarProps}\r\n theme={theme}\r\n className={combineClassNames(\r\n classMap.uploadProgress,\r\n progressBarProps?.className,\r\n )}\r\n value={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={\r\n progressBarProps?.[\"data-testid\"] || `${testId}-progress`\r\n }\r\n />\r\n )}\r\n\r\n {!uploading && (\r\n <Button\r\n {...uploadButtonProps}\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={() => {\r\n void handleUpload();\r\n }}\r\n loading={uploading}\r\n size={uploadButtonProps?.size ?? \"small\"}\r\n className={combineClassNames(\r\n classMap.uploadButton,\r\n uploadButtonProps?.className,\r\n )}\r\n aria-label={uploadButtonAriaLabel || \"Upload selected files\"}\r\n data-testid={`${testId}-upload-button`}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n\r\n <div\r\n id={liveRegionId}\r\n className=\"sr_only\"\r\n aria-live={ariaLive || liveRegionPoliteness}\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\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport Button from \"../../Button/next/Button\";\r\nimport IconButton from \"../../IconButton/next/IconButton\";\r\nimport Progressbar from \"../../ProgressBar/next/ProgressBar\";\r\nimport FormGroup from \"../../FormGroup/next/FormGroup\";\r\nimport styles from \"./FileUpload.module.scss\";\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={styles}\r\n />\r\n );\r\n};\r\nFileUpload.displayName = \"FileUpload\";\r\nexport default FileUpload;\r\n"],"names":["jsxs","jsx","error","getDefaultTheme","getDefaultRounding","getDefaultShadow","uploadProgress","FormGroup","disabled","Button","IconButton","ProgressBar","useId","useState","rejectedFiles","useRef","useMemo","useEffect","combineClassNames","capitalize","Progressbar"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const FileUpload = require("./FileUpload-CD_i5Md2.cjs");
2
+ const FileUpload = require("./FileUpload-qzSlXJzW.cjs");
3
3
  module.exports = FileUpload.FileUpload;
4
4
  //# sourceMappingURL=FileUpload.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { F } from "./FileUpload-Bvj5JEBv.js";
1
+ import { F } from "./FileUpload-HiZuJjoA.js";
2
2
  export {
3
3
  F as default
4
4
  };
@@ -1,51 +1,77 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useContext, useMemo } from "react";
2
+ import { useMemo, forwardRef, useContext } from "react";
3
3
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { d as getDefaultTheme, b as getDefaultShadow, a as getDefaultRounding } from "./boreal-style-config-DsaRlxmw.js";
5
5
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
6
- import './globals.css';import './Footer.css';/* empty css */
7
6
  import { I as IconButton } from "./IconButton-0JJ1aiqr.js";
7
+ import "./globals.js";
8
8
  import { T as ThemeContext } from "./ThemeContext-zE_shsx6.js";
9
9
  import { S as Select } from "./Select-D4bH7djH.js";
10
10
  import { L as Link } from "./link-4NcriBFB.js";
11
11
  import { I as Image } from "./image-CvorlI3C.js";
12
- const UserThemeSettings = forwardRef(
13
- ({
14
- theme = getDefaultTheme(),
15
- shadow = getDefaultShadow(),
16
- rounding = getDefaultRounding(),
17
- state = "",
18
- "data-testid": testId = "theme-select"
19
- }, ref) => {
20
- const ctx = useContext(ThemeContext);
21
- if (!ctx)
22
- throw new Error("ThemeContext is undefined. Wrap with ThemeProvider.");
23
- const { selectedScheme, setSelectedScheme, schemes } = ctx;
24
- const options = useMemo(
25
- () => schemes.map((scheme, index) => ({
26
- value: String(index),
27
- label: scheme.name
28
- })),
29
- [schemes]
30
- );
31
- return /* @__PURE__ */ jsx("div", { className: `control-container`, children: /* @__PURE__ */ jsx(
32
- Select,
33
- {
34
- ref,
35
- theme,
36
- state,
37
- shadow,
38
- rounding,
39
- options,
40
- "data-testid": testId,
41
- value: String(selectedScheme),
42
- "aria-label": "Select Theme",
43
- onChange: (value) => setSelectedScheme(parseInt(String(value), 10))
44
- }
45
- ) });
46
- }
47
- );
48
- UserThemeSettings.displayName = "UserThemeSettings";
12
+ import './Footer.css';const footer = "_footer_1vcyu_204";
13
+ const primary = "_primary_1vcyu_214";
14
+ const secondary = "_secondary_1vcyu_218";
15
+ const tertiary = "_tertiary_1vcyu_222";
16
+ const quaternary = "_quaternary_1vcyu_226";
17
+ const clear = "_clear_1vcyu_230";
18
+ const roundNone = "_roundNone_1vcyu_234";
19
+ const roundSmall = "_roundSmall_1vcyu_238";
20
+ const roundMedium = "_roundMedium_1vcyu_242";
21
+ const roundLarge = "_roundLarge_1vcyu_246";
22
+ const roundFull = "_roundFull_1vcyu_250";
23
+ const shadowNone = "_shadowNone_1vcyu_254";
24
+ const shadowLight = "_shadowLight_1vcyu_257";
25
+ const shadowMedium = "_shadowMedium_1vcyu_260";
26
+ const shadowStrong = "_shadowStrong_1vcyu_263";
27
+ const shadowIntense = "_shadowIntense_1vcyu_266";
28
+ const attachmentStatic = "_attachmentStatic_1vcyu_269";
29
+ const attachmentSticky = "_attachmentSticky_1vcyu_272";
30
+ const attachmentFixed = "_attachmentFixed_1vcyu_280";
31
+ const content = "_content_1vcyu_289";
32
+ const left = "_left_1vcyu_308";
33
+ const links = "_links_1vcyu_335";
34
+ const logo = "_logo_1vcyu_379";
35
+ const social = "_social_1vcyu_395";
36
+ const themeToggle = "_themeToggle_1vcyu_412";
37
+ const spin = "_spin_1vcyu_1";
38
+ const pulse = "_pulse_1vcyu_1";
39
+ const styles = {
40
+ footer,
41
+ primary,
42
+ secondary,
43
+ tertiary,
44
+ quaternary,
45
+ clear,
46
+ roundNone,
47
+ roundSmall,
48
+ roundMedium,
49
+ roundLarge,
50
+ roundFull,
51
+ shadowNone,
52
+ shadowLight,
53
+ shadowMedium,
54
+ shadowStrong,
55
+ shadowIntense,
56
+ attachmentStatic,
57
+ attachmentSticky,
58
+ attachmentFixed,
59
+ content,
60
+ left,
61
+ links,
62
+ logo,
63
+ social,
64
+ themeToggle,
65
+ "fade-in": "_fade-in_1vcyu_1",
66
+ "slide-up": "_slide-up_1vcyu_1",
67
+ "spin-3d": "_spin-3d_1vcyu_1",
68
+ spin,
69
+ pulse,
70
+ "fade-in-up": "_fade-in-up_1vcyu_1",
71
+ "progress-grow": "_progress-grow_1vcyu_1",
72
+ "indeterminate-move": "_indeterminate-move_1vcyu_1",
73
+ "skeleton-loading": "_skeleton-loading_1vcyu_1"
74
+ };
49
75
  const FooterBase = ({
50
76
  theme = getDefaultTheme(),
51
77
  attachment = "static",
@@ -231,69 +257,43 @@ const FooterBase = ({
231
257
  );
232
258
  };
233
259
  FooterBase.displayName = "FooterBase";
234
- const footer = "_footer_1vcyu_204";
235
- const primary = "_primary_1vcyu_214";
236
- const secondary = "_secondary_1vcyu_218";
237
- const tertiary = "_tertiary_1vcyu_222";
238
- const quaternary = "_quaternary_1vcyu_226";
239
- const clear = "_clear_1vcyu_230";
240
- const roundNone = "_roundNone_1vcyu_234";
241
- const roundSmall = "_roundSmall_1vcyu_238";
242
- const roundMedium = "_roundMedium_1vcyu_242";
243
- const roundLarge = "_roundLarge_1vcyu_246";
244
- const roundFull = "_roundFull_1vcyu_250";
245
- const shadowNone = "_shadowNone_1vcyu_254";
246
- const shadowLight = "_shadowLight_1vcyu_257";
247
- const shadowMedium = "_shadowMedium_1vcyu_260";
248
- const shadowStrong = "_shadowStrong_1vcyu_263";
249
- const shadowIntense = "_shadowIntense_1vcyu_266";
250
- const attachmentStatic = "_attachmentStatic_1vcyu_269";
251
- const attachmentSticky = "_attachmentSticky_1vcyu_272";
252
- const attachmentFixed = "_attachmentFixed_1vcyu_280";
253
- const content = "_content_1vcyu_289";
254
- const left = "_left_1vcyu_308";
255
- const links = "_links_1vcyu_335";
256
- const logo = "_logo_1vcyu_379";
257
- const social = "_social_1vcyu_395";
258
- const themeToggle = "_themeToggle_1vcyu_412";
259
- const spin = "_spin_1vcyu_1";
260
- const pulse = "_pulse_1vcyu_1";
261
- const styles = {
262
- footer,
263
- primary,
264
- secondary,
265
- tertiary,
266
- quaternary,
267
- clear,
268
- roundNone,
269
- roundSmall,
270
- roundMedium,
271
- roundLarge,
272
- roundFull,
273
- shadowNone,
274
- shadowLight,
275
- shadowMedium,
276
- shadowStrong,
277
- shadowIntense,
278
- attachmentStatic,
279
- attachmentSticky,
280
- attachmentFixed,
281
- content,
282
- left,
283
- links,
284
- logo,
285
- social,
286
- themeToggle,
287
- "fade-in": "_fade-in_1vcyu_1",
288
- "slide-up": "_slide-up_1vcyu_1",
289
- "spin-3d": "_spin-3d_1vcyu_1",
290
- spin,
291
- pulse,
292
- "fade-in-up": "_fade-in-up_1vcyu_1",
293
- "progress-grow": "_progress-grow_1vcyu_1",
294
- "indeterminate-move": "_indeterminate-move_1vcyu_1",
295
- "skeleton-loading": "_skeleton-loading_1vcyu_1"
296
- };
260
+ const UserThemeSettings = forwardRef(
261
+ ({
262
+ theme = getDefaultTheme(),
263
+ shadow = getDefaultShadow(),
264
+ rounding = getDefaultRounding(),
265
+ state = "",
266
+ "data-testid": testId = "theme-select"
267
+ }, ref) => {
268
+ const ctx = useContext(ThemeContext);
269
+ if (!ctx)
270
+ throw new Error("ThemeContext is undefined. Wrap with ThemeProvider.");
271
+ const { selectedScheme, setSelectedScheme, schemes } = ctx;
272
+ const options = useMemo(
273
+ () => schemes.map((scheme, index) => ({
274
+ value: String(index),
275
+ label: scheme.name
276
+ })),
277
+ [schemes]
278
+ );
279
+ return /* @__PURE__ */ jsx("div", { className: `control-container`, children: /* @__PURE__ */ jsx(
280
+ Select,
281
+ {
282
+ ref,
283
+ theme,
284
+ state,
285
+ shadow,
286
+ rounding,
287
+ options,
288
+ "data-testid": testId,
289
+ value: String(selectedScheme),
290
+ "aria-label": "Select Theme",
291
+ onChange: (value) => setSelectedScheme(parseInt(String(value), 10))
292
+ }
293
+ ) });
294
+ }
295
+ );
296
+ UserThemeSettings.displayName = "UserThemeSettings";
297
297
  const Footer = (props) => {
298
298
  return /* @__PURE__ */ jsx(
299
299
  FooterBase,
@@ -312,4 +312,4 @@ export {
312
312
  Footer as F,
313
313
  UserThemeSettings as U
314
314
  };
315
- //# sourceMappingURL=Footer-Bdu_9H3p.js.map
315
+ //# sourceMappingURL=Footer-BVic2clD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer-BVic2clD.js","sources":["../../src/components/Footer/FooterBase.tsx","../../src/components/Select/ThemeSelect/next/ThemeSelect.tsx","../../src/components/Footer/next/Footer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { BaseFooterProps, LogoSource } 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\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, ...rest }) => (\r\n <a href={href} {...rest}>\r\n {children}\r\n </a>\r\n ),\r\n\r\n // New accessibility props\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n navAriaLabel = \"Footer site links\",\r\n socialNavAriaLabel = \"Social media\",\r\n themeSelectAriaLabel = \"Theme selector\",\r\n logoAriaLabel = \"Logo\",\r\n logoDecorative = false,\r\n labelId,\r\n\r\n // Pass-through HTML props\r\n ...rest\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n shadow !== \"none\" && classMap[`shadow${capitalize(shadow)}`],\r\n rounding !== \"none\" && classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className,\r\n ),\r\n [classMap, theme, shadow, rounding, attachment, className],\r\n );\r\n\r\n const isLogoImage = (\r\n value: unknown,\r\n ): value is { src: string; width?: number; height?: number } =>\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"src\" in (value as Record<string, unknown>);\r\n\r\n const isImgLike = typeof logo === \"string\" || isLogoImage(logo);\r\n\r\n const imgLogo = isImgLike\r\n ? typeof logo === \"string\"\r\n ? { src: logo }\r\n : logo\r\n : undefined;\r\n\r\n const logoSrc = imgLogo?.src;\r\n const logoW = imgLogo?.width ?? 20;\r\n const logoH = imgLogo?.height ?? 20;\r\n\r\n return (\r\n <footer\r\n className={footerClass}\r\n data-testid={testId}\r\n role=\"contentinfo\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy ?? labelId}\r\n aria-describedby={ariaDescribedBy}\r\n {...rest}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {isImgLike && logoSrc ? (\r\n typeof ImageComponent === \"string\" ? (\r\n <img\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n ) : (\r\n <ImageComponent\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n )\r\n ) : logo ? (\r\n <span\r\n className={classMap.logo}\r\n role={logoDecorative ? undefined : \"img\"}\r\n aria-label={logoDecorative ? undefined : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n data-testid={`${testId}-logo`}\r\n >\r\n {\r\n logo as Exclude<\r\n LogoSource,\r\n string | { src: string; width?: number; height?: number }\r\n >\r\n }\r\n </span>\r\n ) : null}\r\n\r\n {copyright && (\r\n <div\r\n className={classMap.copyright ?? classMap.left}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p id={labelId}>{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={navAriaLabel}\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul>\r\n {links.map((link, i) => {\r\n const slug = (link.label || link.href || `link-${i}`)\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\");\r\n\r\n if (link.disabled) {\r\n return (\r\n <li key={`${link.href ?? slug}-${i}`}>\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-disabled=\"true\"\r\n title={link.title}\r\n >\r\n {link.label}\r\n </span>\r\n </li>\r\n );\r\n }\r\n\r\n return (\r\n <li key={`${link.href ?? slug}-${i}`}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-label={link[\"aria-label\"]}\r\n aria-current={link[\"aria-current\"]}\r\n title={link.title}\r\n rel={link.rel}\r\n target={link.target}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n );\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={themeSelectAriaLabel}\r\n >\r\n <ThemeSelect\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n aria-label={themeSelectAriaLabel}\r\n />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <nav\r\n className={classMap.social}\r\n aria-label={socialNavAriaLabel}\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={`${social.href ?? social.title}-${index}`}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal={social.isExternal ?? true}\r\n shadow=\"none\"\r\n aria-label={social[\"aria-label\"] ?? social.title}\r\n title={social.tooltip ?? social.title}\r\n theme=\"clear\"\r\n disabled={social.disabled}\r\n rel={social.rel}\r\n target={social.target}\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </nav>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nFooterBase.displayName = \"FooterBase\";\r\nexport default FooterBase;\r\n","\"use client\";\r\n\r\nimport { useContext, useMemo, forwardRef } from \"react\";\r\nimport { Select } from \"@/index.next\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\nimport { ThemeSelectProps } from \"../../Select.types\";\r\n\r\nconst UserThemeSettings = forwardRef<HTMLSelectElement, ThemeSelectProps>(\r\n (\r\n {\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n state = \"\",\r\n \"data-testid\": testId = \"theme-select\",\r\n },\r\n ref,\r\n ) => {\r\n const ctx = useContext(ThemeContext);\r\n if (!ctx)\r\n throw new Error(\"ThemeContext is undefined. Wrap with ThemeProvider.\");\r\n\r\n const { selectedScheme, setSelectedScheme, schemes } = ctx;\r\n\r\n const options = useMemo(\r\n () =>\r\n schemes.map((scheme, index) => ({\r\n value: String(index),\r\n label: scheme.name,\r\n })),\r\n [schemes],\r\n );\r\n\r\n return (\r\n <div className={`control-container`}>\r\n <Select\r\n ref={ref}\r\n theme={theme}\r\n state={state}\r\n shadow={shadow}\r\n rounding={rounding}\r\n options={options}\r\n data-testid={testId}\r\n value={String(selectedScheme)}\r\n aria-label=\"Select Theme\"\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(String(value), 10))\r\n }\r\n />\r\n </div>\r\n );\r\n },\r\n);\r\nUserThemeSettings.displayName = \"UserThemeSettings\";\r\nexport default UserThemeSettings;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/next/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/next/ThemeSelect\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Footer.module.scss\";\r\nimport Image from \"next/image\";\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ImageComponent={Image}\r\n ThemeSelect={ThemeSelect}\r\n LinkWrapper={({ href, children, className, ...rest }) => (\r\n <Link href={href} className={className} {...rest}>\r\n {children}\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\nFooter.displayName = \"Footer\";\r\nexport default Footer;\r\n"],"names":["links","logo","IconButton","rest","social","ThemeSelect"],"mappings":"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"}