boreal-ui 0.0.39 → 0.0.41

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 (461) hide show
  1. package/dist/core/{Badge-DOn6E2bS.cjs → Badge-CyGz8K5W.cjs} +4 -1
  2. package/dist/core/Badge-CyGz8K5W.cjs.map +1 -0
  3. package/dist/core/{Badge-Dpjq6lUF.js → Badge-DnE8lt7-.js} +4 -1
  4. package/dist/core/Badge-DnE8lt7-.js.map +1 -0
  5. package/dist/core/Badge.cjs.js +1 -1
  6. package/dist/core/Badge.js +1 -1
  7. package/dist/core/{Card-D-GQwaUJ.js → Card-CbGHr_tX.js} +6 -5
  8. package/dist/core/Card-CbGHr_tX.js.map +1 -0
  9. package/dist/core/{Card-DftqfPue.cjs → Card-De2epy0R.cjs} +6 -5
  10. package/dist/core/Card-De2epy0R.cjs.map +1 -0
  11. package/dist/core/Card.cjs.js +1 -1
  12. package/dist/core/Card.js +1 -1
  13. package/dist/core/{Chip-D4vbSudX.js → Chip-BjbtoFKm.js} +2 -2
  14. package/dist/core/{Chip-D4vbSudX.js.map → Chip-BjbtoFKm.js.map} +1 -1
  15. package/dist/core/{Chip-CWsfLyyU.cjs → Chip-c2mN7R-R.cjs} +2 -2
  16. package/dist/core/{Chip-CWsfLyyU.cjs.map → Chip-c2mN7R-R.cjs.map} +1 -1
  17. package/dist/core/Chip.cjs.js +1 -1
  18. package/dist/core/Chip.js +1 -1
  19. package/dist/core/{CommandPalette-CXKBDCbP.cjs → CommandPalette-CPhVbQAc.cjs} +2 -2
  20. package/dist/core/{CommandPalette-CXKBDCbP.cjs.map → CommandPalette-CPhVbQAc.cjs.map} +1 -1
  21. package/dist/core/{CommandPalette-N556smLj.js → CommandPalette-Df69KRv4.js} +2 -2
  22. package/dist/core/{CommandPalette-N556smLj.js.map → CommandPalette-Df69KRv4.js.map} +1 -1
  23. package/dist/core/CommandPalette.cjs.js +1 -1
  24. package/dist/core/CommandPalette.js +1 -1
  25. package/dist/core/{Dropdown-CwofYHjq.js → Dropdown-CR3xr5K-.js} +2 -2
  26. package/dist/core/{Dropdown-CwofYHjq.js.map → Dropdown-CR3xr5K-.js.map} +1 -1
  27. package/dist/core/{Dropdown-DvwHouyC.cjs → Dropdown-CjPfU1K-.cjs} +2 -2
  28. package/dist/core/{Dropdown-DvwHouyC.cjs.map → Dropdown-CjPfU1K-.cjs.map} +1 -1
  29. package/dist/core/Dropdown.cjs.js +1 -1
  30. package/dist/core/Dropdown.js +1 -1
  31. package/dist/core/{FileUpload-Du7vDDdf.cjs → FileUpload-BJ3RJxT3.cjs} +3 -3
  32. package/dist/core/{FileUpload-Du7vDDdf.cjs.map → FileUpload-BJ3RJxT3.cjs.map} +1 -1
  33. package/dist/core/{FileUpload-Q8aDsaFs.js → FileUpload-C0eHx1h8.js} +3 -3
  34. package/dist/core/{FileUpload-Q8aDsaFs.js.map → FileUpload-C0eHx1h8.js.map} +1 -1
  35. package/dist/core/FileUpload.cjs.js +1 -1
  36. package/dist/core/FileUpload.js +1 -1
  37. package/dist/core/{Footer-DMOA1W7N.cjs → Footer-CYIUIgV1.cjs} +3 -3
  38. package/dist/core/Footer-CYIUIgV1.cjs.map +1 -0
  39. package/dist/core/{Footer-zO4RGjCl.js → Footer-D9RimHx9.js} +3 -3
  40. package/dist/core/Footer-D9RimHx9.js.map +1 -0
  41. package/dist/core/Footer.cjs.js +1 -1
  42. package/dist/core/Footer.js +1 -1
  43. package/dist/core/{FormGroup-C2TWC17P.cjs → FormGroup-Cit_2_Wo.cjs} +5 -8
  44. package/dist/core/FormGroup-Cit_2_Wo.cjs.map +1 -0
  45. package/dist/core/{FormGroup-tSK_NN0-.js → FormGroup-DDZ1D_CI.js} +5 -8
  46. package/dist/core/FormGroup-DDZ1D_CI.js.map +1 -0
  47. package/dist/core/FormGroup.cjs.js +1 -1
  48. package/dist/core/FormGroup.js +1 -1
  49. package/dist/core/{IconButton-_lxTppua.js → IconButton-BMZhwYXB.js} +2 -2
  50. package/dist/core/IconButton-BMZhwYXB.js.map +1 -0
  51. package/dist/core/{IconButton-CR9bTZoJ.cjs → IconButton-Bio6Azm-.cjs} +2 -2
  52. package/dist/core/IconButton-Bio6Azm-.cjs.map +1 -0
  53. package/dist/core/IconButton.cjs.js +1 -1
  54. package/dist/core/IconButton.js +1 -1
  55. package/dist/core/{MarkdownRenderer-LUXCa_a8.cjs → MarkdownRenderer-Bn6vcfSd.cjs} +3 -2
  56. package/dist/core/MarkdownRenderer-Bn6vcfSd.cjs.map +1 -0
  57. package/dist/core/{MarkdownRenderer-B1LmmpZm.js → MarkdownRenderer-Co787hku.js} +3 -2
  58. package/dist/core/MarkdownRenderer-Co787hku.js.map +1 -0
  59. package/dist/core/MarkdownRenderer.cjs.js +1 -1
  60. package/dist/core/MarkdownRenderer.js +1 -1
  61. package/dist/core/MessagePopUp.cjs.js +1 -1
  62. package/dist/core/MessagePopUp.js +1 -1
  63. package/dist/core/{MessagePopup-BlbPMecd.js → MessagePopup-B3lEfar7.js} +2 -2
  64. package/dist/core/{MessagePopup-BlbPMecd.js.map → MessagePopup-B3lEfar7.js.map} +1 -1
  65. package/dist/core/{MessagePopup-hxloT7aK.cjs → MessagePopup-CtdpuRFv.cjs} +2 -2
  66. package/dist/core/{MessagePopup-hxloT7aK.cjs.map → MessagePopup-CtdpuRFv.cjs.map} +1 -1
  67. package/dist/core/{MetricBox-Dh911MS2.js → MetricBox-CPug-nxo.js} +11 -2
  68. package/dist/core/MetricBox-CPug-nxo.js.map +1 -0
  69. package/dist/core/{MetricBox-BcOdQM-l.cjs → MetricBox-DVo4UUQv.cjs} +11 -2
  70. package/dist/core/MetricBox-DVo4UUQv.cjs.map +1 -0
  71. package/dist/core/MetricBox.cjs.js +1 -1
  72. package/dist/core/MetricBox.js +1 -1
  73. package/dist/core/{Modal-D1G1Csp9.js → Modal-DFhYDYb9.js} +2 -2
  74. package/dist/core/{Modal-D1G1Csp9.js.map → Modal-DFhYDYb9.js.map} +1 -1
  75. package/dist/core/{Modal-D-ZoA_xx.cjs → Modal-FB4mTmQW.cjs} +2 -2
  76. package/dist/core/{Modal-D-ZoA_xx.cjs.map → Modal-FB4mTmQW.cjs.map} +1 -1
  77. package/dist/core/Modal.cjs.js +1 -1
  78. package/dist/core/Modal.js +1 -1
  79. package/dist/core/{NotificationCenter-BrUNpJAx.js → NotificationCenter-DLCzWNve.js} +2 -2
  80. package/dist/core/{NotificationCenter-BrUNpJAx.js.map → NotificationCenter-DLCzWNve.js.map} +1 -1
  81. package/dist/core/{NotificationCenter-Dqwu2Z6s.cjs → NotificationCenter-DfOOEt9N.cjs} +2 -2
  82. package/dist/core/{NotificationCenter-Dqwu2Z6s.cjs.map → NotificationCenter-DfOOEt9N.cjs.map} +1 -1
  83. package/dist/core/NotificationCenter.cjs.js +1 -1
  84. package/dist/core/NotificationCenter.js +1 -1
  85. package/dist/core/{Pager-CZF6O7rq.js → Pager-DBHI7yRW.js} +2 -2
  86. package/dist/core/{Pager-CZF6O7rq.js.map → Pager-DBHI7yRW.js.map} +1 -1
  87. package/dist/core/{Pager-C_SG4CIc.cjs → Pager-Dv6D3kXa.cjs} +2 -2
  88. package/dist/core/{Pager-C_SG4CIc.cjs.map → Pager-Dv6D3kXa.cjs.map} +1 -1
  89. package/dist/core/Pager.cjs.js +1 -1
  90. package/dist/core/Pager.js +1 -1
  91. package/dist/core/{Skeleton-Cwn3_gc7.js → Skeleton-BjpQHG5i.js} +2 -2
  92. package/dist/core/{Skeleton-Cwn3_gc7.js.map → Skeleton-BjpQHG5i.js.map} +1 -1
  93. package/dist/core/{Skeleton-BLVD5mDI.cjs → Skeleton-tetAZCSl.cjs} +2 -2
  94. package/dist/core/{Skeleton-BLVD5mDI.cjs.map → Skeleton-tetAZCSl.cjs.map} +1 -1
  95. package/dist/core/Skeleton.cjs.js +1 -1
  96. package/dist/core/Skeleton.js +1 -1
  97. package/dist/core/{Spinner-D81UG24n.js → Spinner-D1CHbKYU.js} +2 -2
  98. package/dist/core/Spinner-D1CHbKYU.js.map +1 -0
  99. package/dist/core/{Spinner-CEIk_hpT.cjs → Spinner-JTcQ_d4T.cjs} +2 -2
  100. package/dist/core/Spinner-JTcQ_d4T.cjs.map +1 -0
  101. package/dist/core/Spinner.cjs.js +1 -1
  102. package/dist/core/Spinner.js +1 -1
  103. package/dist/core/{Stepper-Cjb7ckXo.js → Stepper-C6xjvhZJ.js} +2 -2
  104. package/dist/core/{Stepper-Cjb7ckXo.js.map → Stepper-C6xjvhZJ.js.map} +1 -1
  105. package/dist/core/{Stepper-BuCLqbtQ.cjs → Stepper-JNVBVHc3.cjs} +2 -2
  106. package/dist/core/{Stepper-BuCLqbtQ.cjs.map → Stepper-JNVBVHc3.cjs.map} +1 -1
  107. package/dist/core/Stepper.cjs.js +1 -1
  108. package/dist/core/Stepper.js +1 -1
  109. package/dist/core/TagInput.cjs.js +1 -1
  110. package/dist/core/TagInput.js +1 -1
  111. package/dist/core/{Taginput-DgbxDttA.cjs → Taginput-BXCxdLf0.cjs} +3 -3
  112. package/dist/core/{Taginput-DgbxDttA.cjs.map → Taginput-BXCxdLf0.cjs.map} +1 -1
  113. package/dist/core/{Taginput-CKekAR72.js → Taginput-CoxxwLXg.js} +3 -3
  114. package/dist/core/{Taginput-CKekAR72.js.map → Taginput-CoxxwLXg.js.map} +1 -1
  115. package/dist/core/{TextInput-DFOjxri2.cjs → TextInput-DYALlUc_.cjs} +2 -2
  116. package/dist/core/{TextInput-DFOjxri2.cjs.map → TextInput-DYALlUc_.cjs.map} +1 -1
  117. package/dist/core/{TextInput-7kV66ccj.js → TextInput-qw-jAx_3.js} +2 -2
  118. package/dist/core/{TextInput-7kV66ccj.js.map → TextInput-qw-jAx_3.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/{style.css → boreal-ui.css} +6976 -6974
  122. package/dist/core/index.cjs.js +20 -20
  123. package/dist/core/index.js +20 -20
  124. package/dist/next/{Accordion-DKNh8FaP.cjs → Accordion-BPWTEHym.cjs} +50 -50
  125. package/dist/next/{Accordion-DKNh8FaP.cjs.map → Accordion-BPWTEHym.cjs.map} +1 -1
  126. package/dist/next/{Accordion-BkiAI6vY.js → Accordion-DY243Bq9.js} +50 -50
  127. package/dist/next/{Accordion-BkiAI6vY.js.map → Accordion-DY243Bq9.js.map} +1 -1
  128. package/dist/next/Accordion.cjs.js +1 -1
  129. package/dist/next/Accordion.js +1 -1
  130. package/dist/next/{Avatar-ijMVfQpY.js → Avatar-B-Ws4Ueo.js} +42 -42
  131. package/dist/next/{Avatar-ijMVfQpY.js.map → Avatar-B-Ws4Ueo.js.map} +1 -1
  132. package/dist/next/{Avatar-Ctm74prt.cjs → Avatar-B9sMyRWr.cjs} +42 -42
  133. package/dist/next/{Avatar-Ctm74prt.cjs.map → Avatar-B9sMyRWr.cjs.map} +1 -1
  134. package/dist/next/Avatar.cjs.js +1 -1
  135. package/dist/next/Avatar.js +1 -1
  136. package/dist/next/{Badge-k6Dk5S_p.js → Badge-BZNYm0IU.js} +34 -31
  137. package/dist/next/Badge-BZNYm0IU.js.map +1 -0
  138. package/dist/next/{Badge-DbmM5wGc.cjs → Badge-dTyh833r.cjs} +34 -31
  139. package/dist/next/Badge-dTyh833r.cjs.map +1 -0
  140. package/dist/next/Badge.cjs.js +1 -1
  141. package/dist/next/Badge.js +1 -1
  142. package/dist/next/{Breadcrumbs-CWv3TrV_.js → Breadcrumbs-BPWmV24h.js} +39 -39
  143. package/dist/next/{Breadcrumbs-CWv3TrV_.js.map → Breadcrumbs-BPWmV24h.js.map} +1 -1
  144. package/dist/next/{Breadcrumbs-BrH6_8Kt.cjs → Breadcrumbs-BcXj2PgR.cjs} +39 -39
  145. package/dist/next/{Breadcrumbs-BrH6_8Kt.cjs.map → Breadcrumbs-BcXj2PgR.cjs.map} +1 -1
  146. package/dist/next/Breadcrumbs.cjs.js +1 -1
  147. package/dist/next/Breadcrumbs.js +1 -1
  148. package/dist/next/{Button-D8Kff8sN.cjs → Button-B1Fh4G0_.cjs} +47 -47
  149. package/dist/next/{Button-D8Kff8sN.cjs.map → Button-B1Fh4G0_.cjs.map} +1 -1
  150. package/dist/next/{Button-BjY7f3mw.js → Button-uZ3xTOOt.js} +47 -47
  151. package/dist/next/{Button-BjY7f3mw.js.map → Button-uZ3xTOOt.js.map} +1 -1
  152. package/dist/next/Button.cjs.js +1 -1
  153. package/dist/next/Button.js +1 -1
  154. package/dist/next/{Card-DhxLw6XZ.js → Card-B_qtwaqj.js} +68 -67
  155. package/dist/next/Card-B_qtwaqj.js.map +1 -0
  156. package/dist/next/{Card-BFmGnvxN.cjs → Card-CqXJPdqV.cjs} +68 -67
  157. package/dist/next/Card-CqXJPdqV.cjs.map +1 -0
  158. package/dist/next/Card.cjs.js +1 -1
  159. package/dist/next/Card.js +1 -1
  160. package/dist/next/CheckBox.cjs.js +1 -1
  161. package/dist/next/CheckBox.js +1 -1
  162. package/dist/next/{Checkbox-DVr6H6mN.js → Checkbox-BJ0rBZLF.js} +44 -44
  163. package/dist/next/{Checkbox-DVr6H6mN.js.map → Checkbox-BJ0rBZLF.js.map} +1 -1
  164. package/dist/next/{Checkbox-B-y0lEjJ.cjs → Checkbox-Ch7osD3y.cjs} +44 -44
  165. package/dist/next/{Checkbox-B-y0lEjJ.cjs.map → Checkbox-Ch7osD3y.cjs.map} +1 -1
  166. package/dist/next/{Chip-C8ayWG9-.js → Chip-BB3Awc2g.js} +51 -51
  167. package/dist/next/{Chip-C8ayWG9-.js.map → Chip-BB3Awc2g.js.map} +1 -1
  168. package/dist/next/{Chip-C4-KUcHh.cjs → Chip-DzFaUPed.cjs} +51 -51
  169. package/dist/next/{Chip-C4-KUcHh.cjs.map → Chip-DzFaUPed.cjs.map} +1 -1
  170. package/dist/next/Chip.cjs.js +1 -1
  171. package/dist/next/Chip.js +1 -1
  172. package/dist/next/{CircularProgress-Cz9G0WeQ.js → CircularProgress-BUqdguII.js} +37 -37
  173. package/dist/next/{CircularProgress-Cz9G0WeQ.js.map → CircularProgress-BUqdguII.js.map} +1 -1
  174. package/dist/next/{CircularProgress-UhpLA94q.cjs → CircularProgress-Cp2pGFmc.cjs} +37 -37
  175. package/dist/next/{CircularProgress-UhpLA94q.cjs.map → CircularProgress-Cp2pGFmc.cjs.map} +1 -1
  176. package/dist/next/CircularProgress.cjs.js +1 -1
  177. package/dist/next/CircularProgress.js +1 -1
  178. package/dist/next/{ColorPicker-DvgeIT_p.cjs → ColorPicker-BHtO2mbU.cjs} +38 -38
  179. package/dist/next/{ColorPicker-DvgeIT_p.cjs.map → ColorPicker-BHtO2mbU.cjs.map} +1 -1
  180. package/dist/next/{ColorPicker-1naDOGhp.js → ColorPicker-ChWOekWP.js} +38 -38
  181. package/dist/next/{ColorPicker-1naDOGhp.js.map → ColorPicker-ChWOekWP.js.map} +1 -1
  182. package/dist/next/ColorPicker.cjs.js +1 -1
  183. package/dist/next/ColorPicker.js +1 -1
  184. package/dist/next/{CommandPalette-ypXbi8zW.cjs → CommandPalette-BT9X_yL0.cjs} +42 -42
  185. package/dist/next/{CommandPalette-ypXbi8zW.cjs.map → CommandPalette-BT9X_yL0.cjs.map} +1 -1
  186. package/dist/next/{CommandPalette-XP4v5FE6.js → CommandPalette-DEf12Et3.js} +42 -42
  187. package/dist/next/{CommandPalette-XP4v5FE6.js.map → CommandPalette-DEf12Et3.js.map} +1 -1
  188. package/dist/next/CommandPalette.cjs.js +1 -1
  189. package/dist/next/CommandPalette.js +1 -1
  190. package/dist/next/{DataTable-jUelgv2H.js → DataTable-CnvOkZrU.js} +40 -40
  191. package/dist/next/{DataTable-jUelgv2H.js.map → DataTable-CnvOkZrU.js.map} +1 -1
  192. package/dist/next/{DataTable-jq0suGoA.cjs → DataTable-DQ1QRyZw.cjs} +40 -40
  193. package/dist/next/{DataTable-jq0suGoA.cjs.map → DataTable-DQ1QRyZw.cjs.map} +1 -1
  194. package/dist/next/DataTable.cjs.js +1 -1
  195. package/dist/next/DataTable.js +1 -1
  196. package/dist/next/{DateTimePicker-D5gEfxvd.cjs → DateTimePicker-2M4AJJXm.cjs} +46 -46
  197. package/dist/next/{DateTimePicker-D5gEfxvd.cjs.map → DateTimePicker-2M4AJJXm.cjs.map} +1 -1
  198. package/dist/next/{DateTimePicker-BTm6T3-E.js → DateTimePicker-IvBWNgkK.js} +46 -46
  199. package/dist/next/{DateTimePicker-BTm6T3-E.js.map → DateTimePicker-IvBWNgkK.js.map} +1 -1
  200. package/dist/next/DateTimePicker.cjs.js +1 -1
  201. package/dist/next/DateTimePicker.js +1 -1
  202. package/dist/next/{Divider-BYKFFi3a.js → Divider-BCCzNbAE.js} +28 -28
  203. package/dist/next/{Divider-BYKFFi3a.js.map → Divider-BCCzNbAE.js.map} +1 -1
  204. package/dist/next/{Divider-CczNc7mx.cjs → Divider-ByDYa4v6.cjs} +28 -28
  205. package/dist/next/{Divider-CczNc7mx.cjs.map → Divider-ByDYa4v6.cjs.map} +1 -1
  206. package/dist/next/Divider.cjs.js +1 -1
  207. package/dist/next/Divider.js +1 -1
  208. package/dist/next/{Dropdown-yaMx19im.cjs → Dropdown-DEdk2QjS.cjs} +22 -22
  209. package/dist/next/{Dropdown-yaMx19im.cjs.map → Dropdown-DEdk2QjS.cjs.map} +1 -1
  210. package/dist/next/{Dropdown-CJGb6wyQ.js → Dropdown-qdxH-NQR.js} +22 -22
  211. package/dist/next/{Dropdown-CJGb6wyQ.js.map → Dropdown-qdxH-NQR.js.map} +1 -1
  212. package/dist/next/Dropdown.cjs.js +1 -1
  213. package/dist/next/Dropdown.js +1 -1
  214. package/dist/next/{EmptyState-DIymA2cZ.js → EmptyState-BNzFHAk3.js} +31 -31
  215. package/dist/next/{EmptyState-DIymA2cZ.js.map → EmptyState-BNzFHAk3.js.map} +1 -1
  216. package/dist/next/{EmptyState-CGPIGpz2.cjs → EmptyState-CXyx1WlG.cjs} +31 -31
  217. package/dist/next/{EmptyState-CGPIGpz2.cjs.map → EmptyState-CXyx1WlG.cjs.map} +1 -1
  218. package/dist/next/EmptyState.cjs.js +1 -1
  219. package/dist/next/EmptyState.js +1 -1
  220. package/dist/next/{FileUpload-CIued3w1.js → FileUpload-DBSXPL55.js} +52 -52
  221. package/dist/next/{FileUpload-CIued3w1.js.map → FileUpload-DBSXPL55.js.map} +1 -1
  222. package/dist/next/{FileUpload-MVXOV0j9.cjs → FileUpload-DwlqapHn.cjs} +52 -52
  223. package/dist/next/{FileUpload-MVXOV0j9.cjs.map → FileUpload-DwlqapHn.cjs.map} +1 -1
  224. package/dist/next/FileUpload.cjs.js +1 -1
  225. package/dist/next/FileUpload.js +1 -1
  226. package/dist/next/{Footer-DAZLz11H.cjs → Footer-BxrsmJyY.cjs} +45 -45
  227. package/dist/next/Footer-BxrsmJyY.cjs.map +1 -0
  228. package/dist/next/{Footer-BSEbf6CL.js → Footer-CP_PaLon.js} +45 -45
  229. package/dist/next/Footer-CP_PaLon.js.map +1 -0
  230. package/dist/next/Footer.cjs.js +1 -1
  231. package/dist/next/Footer.js +1 -1
  232. package/dist/next/{FormGroup-DbUqgg_b.js → FormGroup-QfUhtyhx.js} +34 -37
  233. package/dist/next/FormGroup-QfUhtyhx.js.map +1 -0
  234. package/dist/next/{FormGroup-6Ss6pNqV.cjs → FormGroup-U3EwnB0M.cjs} +34 -37
  235. package/dist/next/FormGroup-U3EwnB0M.cjs.map +1 -0
  236. package/dist/next/FormGroup.cjs.js +1 -1
  237. package/dist/next/FormGroup.js +1 -1
  238. package/dist/next/{IconButton-VSz8qAIg.cjs → IconButton-2l-_HOMB.cjs} +31 -31
  239. package/dist/next/IconButton-2l-_HOMB.cjs.map +1 -0
  240. package/dist/next/{IconButton-qQljwBB2.js → IconButton-BTUFKRZt.js} +31 -31
  241. package/dist/next/IconButton-BTUFKRZt.js.map +1 -0
  242. package/dist/next/IconButton.cjs.js +1 -1
  243. package/dist/next/IconButton.js +1 -1
  244. package/dist/next/{MarkdownRenderer-B7lwemDw.js → MarkdownRenderer-B8_D0j7d.js} +14 -13
  245. package/dist/next/{MarkdownRenderer-B7lwemDw.js.map → MarkdownRenderer-B8_D0j7d.js.map} +1 -1
  246. package/dist/next/{MarkdownRenderer-BvfBDz9X.cjs → MarkdownRenderer-l6hdKOt0.cjs} +14 -13
  247. package/dist/next/{MarkdownRenderer-BvfBDz9X.cjs.map → MarkdownRenderer-l6hdKOt0.cjs.map} +1 -1
  248. package/dist/next/MarkdownRenderer.cjs.js +1 -1
  249. package/dist/next/MarkdownRenderer.js +1 -1
  250. package/dist/next/MessagePopUp.cjs.js +1 -1
  251. package/dist/next/MessagePopUp.js +1 -1
  252. package/dist/next/{MessagePopup-B5OaSUBr.js → MessagePopup-N2n3NvgX.js} +19 -19
  253. package/dist/next/{MessagePopup-B5OaSUBr.js.map → MessagePopup-N2n3NvgX.js.map} +1 -1
  254. package/dist/next/{MessagePopup-BQ4OFvwo.cjs → MessagePopup-PB3e2lTg.cjs} +19 -19
  255. package/dist/next/{MessagePopup-BQ4OFvwo.cjs.map → MessagePopup-PB3e2lTg.cjs.map} +1 -1
  256. package/dist/next/{MetricBox-Dl3iruBZ.js → MetricBox-BjdAzOrZ.js} +57 -48
  257. package/dist/next/MetricBox-BjdAzOrZ.js.map +1 -0
  258. package/dist/next/{MetricBox-BylPOvoO.cjs → MetricBox-C3B6Bkcb.cjs} +57 -48
  259. package/dist/next/MetricBox-C3B6Bkcb.cjs.map +1 -0
  260. package/dist/next/MetricBox.cjs.js +1 -1
  261. package/dist/next/MetricBox.js +1 -1
  262. package/dist/next/{Modal-CevpqeOy.cjs → Modal-DHTrvNfc.cjs} +17 -17
  263. package/dist/next/{Modal-CevpqeOy.cjs.map → Modal-DHTrvNfc.cjs.map} +1 -1
  264. package/dist/next/{Modal-BARibygG.js → Modal-QTq5IcKa.js} +17 -17
  265. package/dist/next/{Modal-BARibygG.js.map → Modal-QTq5IcKa.js.map} +1 -1
  266. package/dist/next/Modal.cjs.js +1 -1
  267. package/dist/next/Modal.js +1 -1
  268. package/dist/next/{NavBar-C5FBdZT6.cjs → NavBar-Ds_02bAe.cjs} +40 -40
  269. package/dist/next/{NavBar-C5FBdZT6.cjs.map → NavBar-Ds_02bAe.cjs.map} +1 -1
  270. package/dist/next/{NavBar-Bucpo8_3.js → NavBar-v_ckzQIo.js} +40 -40
  271. package/dist/next/{NavBar-Bucpo8_3.js.map → NavBar-v_ckzQIo.js.map} +1 -1
  272. package/dist/next/NavBar.cjs.js +1 -1
  273. package/dist/next/NavBar.js +1 -1
  274. package/dist/next/{NotificationCenter-BD58bbOZ.cjs → NotificationCenter-DbYxpoy6.cjs} +43 -43
  275. package/dist/next/{NotificationCenter-BD58bbOZ.cjs.map → NotificationCenter-DbYxpoy6.cjs.map} +1 -1
  276. package/dist/next/{NotificationCenter-CSwbscYh.js → NotificationCenter-DxK09uJd.js} +43 -43
  277. package/dist/next/{NotificationCenter-CSwbscYh.js.map → NotificationCenter-DxK09uJd.js.map} +1 -1
  278. package/dist/next/NotificationCenter.cjs.js +1 -1
  279. package/dist/next/NotificationCenter.js +1 -1
  280. package/dist/next/{Pager-B-xaM28_.cjs → Pager-BU5RjNwR.cjs} +7 -7
  281. package/dist/next/{Pager-B-xaM28_.cjs.map → Pager-BU5RjNwR.cjs.map} +1 -1
  282. package/dist/next/{Pager-DWzCtb2Q.js → Pager-CtzyTqIl.js} +7 -7
  283. package/dist/next/{Pager-DWzCtb2Q.js.map → Pager-CtzyTqIl.js.map} +1 -1
  284. package/dist/next/Pager.cjs.js +1 -1
  285. package/dist/next/Pager.js +1 -1
  286. package/dist/next/{PopOver-QAYHaYcd.js → PopOver-CmPp9PkL.js} +40 -40
  287. package/dist/next/{PopOver-QAYHaYcd.js.map → PopOver-CmPp9PkL.js.map} +1 -1
  288. package/dist/next/{PopOver-Dp4eqN8G.cjs → PopOver-ixERZLpM.cjs} +40 -40
  289. package/dist/next/{PopOver-Dp4eqN8G.cjs.map → PopOver-ixERZLpM.cjs.map} +1 -1
  290. package/dist/next/PopOver.cjs.js +1 -1
  291. package/dist/next/PopOver.js +1 -1
  292. package/dist/next/{ProgressBar-BrO0fvaM.js → ProgressBar-BoU2HJv3.js} +42 -42
  293. package/dist/next/{ProgressBar-BrO0fvaM.js.map → ProgressBar-BoU2HJv3.js.map} +1 -1
  294. package/dist/next/{ProgressBar-DfXSlpKX.cjs → ProgressBar-C6zKbiq5.cjs} +42 -42
  295. package/dist/next/{ProgressBar-DfXSlpKX.cjs.map → ProgressBar-C6zKbiq5.cjs.map} +1 -1
  296. package/dist/next/ProgressBar.cjs.js +1 -1
  297. package/dist/next/ProgressBar.js +1 -1
  298. package/dist/next/{RadioButton-6cb-ZRjy.cjs → RadioButton-BCu934Uo.cjs} +38 -38
  299. package/dist/next/{RadioButton-6cb-ZRjy.cjs.map → RadioButton-BCu934Uo.cjs.map} +1 -1
  300. package/dist/next/{RadioButton-Dz_e0WUT.js → RadioButton-C14Rsx9o.js} +38 -38
  301. package/dist/next/{RadioButton-Dz_e0WUT.js.map → RadioButton-C14Rsx9o.js.map} +1 -1
  302. package/dist/next/RadioButton.cjs.js +1 -1
  303. package/dist/next/RadioButton.js +1 -1
  304. package/dist/next/{Rating-C4pqzKNQ.cjs → Rating-C9BgQANc.cjs} +34 -34
  305. package/dist/next/{Rating-C4pqzKNQ.cjs.map → Rating-C9BgQANc.cjs.map} +1 -1
  306. package/dist/next/{Rating-DbQ61tMY.js → Rating-aheV3uZJ.js} +34 -34
  307. package/dist/next/{Rating-DbQ61tMY.js.map → Rating-aheV3uZJ.js.map} +1 -1
  308. package/dist/next/Rating.cjs.js +1 -1
  309. package/dist/next/Rating.js +1 -1
  310. package/dist/next/{STT-CCzJFcVP.js → STT-CFFr1_Ls.js} +14 -14
  311. package/dist/next/{STT-CCzJFcVP.js.map → STT-CFFr1_Ls.js.map} +1 -1
  312. package/dist/next/{STT-C6kV0zwW.cjs → STT-GyAuX3-m.cjs} +14 -14
  313. package/dist/next/{STT-C6kV0zwW.cjs.map → STT-GyAuX3-m.cjs.map} +1 -1
  314. package/dist/next/ScrollToTop.cjs.js +1 -1
  315. package/dist/next/ScrollToTop.js +1 -1
  316. package/dist/next/{Select-CZivQIlV.js → Select-CPwU0IV9.js} +32 -32
  317. package/dist/next/{Select-CZivQIlV.js.map → Select-CPwU0IV9.js.map} +1 -1
  318. package/dist/next/{Select-CSAN6B98.cjs → Select-Dgcy2vVe.cjs} +32 -32
  319. package/dist/next/{Select-CSAN6B98.cjs.map → Select-Dgcy2vVe.cjs.map} +1 -1
  320. package/dist/next/Select.cjs.js +1 -1
  321. package/dist/next/Select.js +1 -1
  322. package/dist/next/{Sidebar-BVeRWv61.js → Sidebar-CJ4VrQIW.js} +38 -38
  323. package/dist/next/{Sidebar-BVeRWv61.js.map → Sidebar-CJ4VrQIW.js.map} +1 -1
  324. package/dist/next/{Sidebar-DcDJjNrK.cjs → Sidebar-DajVSn82.cjs} +38 -38
  325. package/dist/next/{Sidebar-DcDJjNrK.cjs.map → Sidebar-DajVSn82.cjs.map} +1 -1
  326. package/dist/next/Sidebar.cjs.js +1 -1
  327. package/dist/next/Sidebar.js +1 -1
  328. package/dist/next/{Skeleton-rSW1X4hk.js → Skeleton-D8C29p3K.js} +27 -27
  329. package/dist/next/{Skeleton-rSW1X4hk.js.map → Skeleton-D8C29p3K.js.map} +1 -1
  330. package/dist/next/{Skeleton-JgU17y-3.cjs → Skeleton-Dmz7m0dj.cjs} +27 -27
  331. package/dist/next/{Skeleton-JgU17y-3.cjs.map → Skeleton-Dmz7m0dj.cjs.map} +1 -1
  332. package/dist/next/Skeleton.cjs.js +1 -1
  333. package/dist/next/Skeleton.js +1 -1
  334. package/dist/next/{Slider-CdSPPw1x.js → Slider-BOAgWYkH.js} +43 -43
  335. package/dist/next/{Slider-CdSPPw1x.js.map → Slider-BOAgWYkH.js.map} +1 -1
  336. package/dist/next/{Slider-B8e96nMm.cjs → Slider-DQM9nV1P.cjs} +43 -43
  337. package/dist/next/{Slider-B8e96nMm.cjs.map → Slider-DQM9nV1P.cjs.map} +1 -1
  338. package/dist/next/Slider.cjs.js +1 -1
  339. package/dist/next/Slider.js +1 -1
  340. package/dist/next/{Spinner-B89FhxVt.cjs → Spinner-0GZngKjG.cjs} +38 -38
  341. package/dist/next/Spinner-0GZngKjG.cjs.map +1 -0
  342. package/dist/next/{Spinner-ChiOXzru.js → Spinner-BFAOf4tt.js} +38 -38
  343. package/dist/next/Spinner-BFAOf4tt.js.map +1 -0
  344. package/dist/next/Spinner.cjs.js +1 -1
  345. package/dist/next/Spinner.js +1 -1
  346. package/dist/next/{Stepper-9uHSgp7y.js → Stepper-B03bz8wT.js} +40 -40
  347. package/dist/next/{Stepper-9uHSgp7y.js.map → Stepper-B03bz8wT.js.map} +1 -1
  348. package/dist/next/{Stepper-UwSloxRf.cjs → Stepper-XZSIlydV.cjs} +40 -40
  349. package/dist/next/{Stepper-UwSloxRf.cjs.map → Stepper-XZSIlydV.cjs.map} +1 -1
  350. package/dist/next/Stepper.cjs.js +1 -1
  351. package/dist/next/Stepper.js +1 -1
  352. package/dist/next/{Tabs-D2jqRrxR.cjs → Tabs-D8Efg8wn.cjs} +44 -44
  353. package/dist/next/{Tabs-D2jqRrxR.cjs.map → Tabs-D8Efg8wn.cjs.map} +1 -1
  354. package/dist/next/{Tabs-CvYx2xtH.js → Tabs-DmrS_FUa.js} +44 -44
  355. package/dist/next/{Tabs-CvYx2xtH.js.map → Tabs-DmrS_FUa.js.map} +1 -1
  356. package/dist/next/Tabs.cjs.js +1 -1
  357. package/dist/next/Tabs.js +1 -1
  358. package/dist/next/{TagInput-Dym0BPK1.cjs → TagInput-Bfjg9pZQ.cjs} +48 -48
  359. package/dist/next/{TagInput-Dym0BPK1.cjs.map → TagInput-Bfjg9pZQ.cjs.map} +1 -1
  360. package/dist/next/{TagInput-DUWgLslk.js → TagInput-CtYKwhEi.js} +48 -48
  361. package/dist/next/{TagInput-DUWgLslk.js.map → TagInput-CtYKwhEi.js.map} +1 -1
  362. package/dist/next/TagInput.cjs.js +1 -1
  363. package/dist/next/TagInput.js +1 -1
  364. package/dist/next/{TextArea-xg4t0Lzo.js → TextArea-n9HgwyJE.js} +25 -25
  365. package/dist/next/{TextArea-xg4t0Lzo.js.map → TextArea-n9HgwyJE.js.map} +1 -1
  366. package/dist/next/{TextArea-9AvILSCY.cjs → TextArea-rwkjK4Rf.cjs} +25 -25
  367. package/dist/next/{TextArea-9AvILSCY.cjs.map → TextArea-rwkjK4Rf.cjs.map} +1 -1
  368. package/dist/next/TextArea.cjs.js +1 -1
  369. package/dist/next/TextArea.js +1 -1
  370. package/dist/next/{TextInput-D9dzooMU.js → TextInput-ChmIMzj2.js} +26 -26
  371. package/dist/next/{TextInput-D9dzooMU.js.map → TextInput-ChmIMzj2.js.map} +1 -1
  372. package/dist/next/{TextInput-Cr0WjibW.cjs → TextInput-Z2izAjJj.cjs} +26 -26
  373. package/dist/next/{TextInput-Cr0WjibW.cjs.map → TextInput-Z2izAjJj.cjs.map} +1 -1
  374. package/dist/next/TextInput.cjs.js +1 -1
  375. package/dist/next/TextInput.js +1 -1
  376. package/dist/next/{Timeline-DXSXZumg.cjs → Timeline-3bNOgI6C.cjs} +28 -28
  377. package/dist/next/{Timeline-DXSXZumg.cjs.map → Timeline-3bNOgI6C.cjs.map} +1 -1
  378. package/dist/next/{Timeline-Cg0FWWVc.js → Timeline-9947mxJO.js} +28 -28
  379. package/dist/next/{Timeline-Cg0FWWVc.js.map → Timeline-9947mxJO.js.map} +1 -1
  380. package/dist/next/Timeline.cjs.js +1 -1
  381. package/dist/next/Timeline.js +1 -1
  382. package/dist/next/{Toggle-CnpONDwl.js → Toggle-C60HtU15.js} +30 -30
  383. package/dist/next/{Toggle-CnpONDwl.js.map → Toggle-C60HtU15.js.map} +1 -1
  384. package/dist/next/{Toggle-BNK7uC_N.cjs → Toggle-XcxNC4zl.cjs} +30 -30
  385. package/dist/next/{Toggle-BNK7uC_N.cjs.map → Toggle-XcxNC4zl.cjs.map} +1 -1
  386. package/dist/next/Toggle.cjs.js +1 -1
  387. package/dist/next/Toggle.js +1 -1
  388. package/dist/next/{Toolbar-DHUozW08.cjs → Toolbar-C45B_I44.cjs} +35 -35
  389. package/dist/next/{Toolbar-DHUozW08.cjs.map → Toolbar-C45B_I44.cjs.map} +1 -1
  390. package/dist/next/{Toolbar-007Q19jl.js → Toolbar-Dq1qqx4P.js} +35 -35
  391. package/dist/next/{Toolbar-007Q19jl.js.map → Toolbar-Dq1qqx4P.js.map} +1 -1
  392. package/dist/next/Toolbar.cjs.js +1 -1
  393. package/dist/next/Toolbar.js +1 -1
  394. package/dist/next/{Tooltip-2XEuDIAw.js → Tooltip-BHIA1zE1.js} +39 -39
  395. package/dist/next/{Tooltip-2XEuDIAw.js.map → Tooltip-BHIA1zE1.js.map} +1 -1
  396. package/dist/next/{Tooltip-FCqrcC7D.cjs → Tooltip-BXd5FXXv.cjs} +39 -39
  397. package/dist/next/{Tooltip-FCqrcC7D.cjs.map → Tooltip-BXd5FXXv.cjs.map} +1 -1
  398. package/dist/next/Tooltip.cjs.js +1 -1
  399. package/dist/next/Tooltip.js +1 -1
  400. package/dist/next/{style.css → boreal-ui.css} +9636 -9636
  401. package/dist/next/{image-VX9Ty9NQ.cjs → image-A4nTeRaX.cjs} +1079 -1025
  402. package/dist/next/image-A4nTeRaX.cjs.map +1 -0
  403. package/dist/next/{image-CEz9QtOW.js → image-BBS8QO15.js} +1083 -1029
  404. package/dist/next/image-BBS8QO15.js.map +1 -0
  405. package/dist/next/index.cjs.js +69 -69
  406. package/dist/next/index.js +69 -69
  407. package/dist/next/link-CxWP3aXr.js +3829 -0
  408. package/dist/next/link-CxWP3aXr.js.map +1 -0
  409. package/dist/next/link-lNk_lOdS.cjs +3828 -0
  410. package/dist/next/link-lNk_lOdS.cjs.map +1 -0
  411. package/dist/next/navigation-CZU71Pmb.cjs +2443 -0
  412. package/dist/next/navigation-CZU71Pmb.cjs.map +1 -0
  413. package/dist/next/navigation-DxXFNXZM.js +2444 -0
  414. package/dist/next/navigation-DxXFNXZM.js.map +1 -0
  415. package/dist/tsconfig.build.tsbuildinfo +1 -1
  416. package/dist/types/components/Badge/BadgeBase.d.ts.map +1 -1
  417. package/dist/types/components/Card/CardBase.d.ts.map +1 -1
  418. package/dist/types/components/FormGroup/FormGroupBase.d.ts.map +1 -1
  419. package/dist/types/components/MarkdownRenderer/MarkdownRendererBase.d.ts.map +1 -1
  420. package/dist/types/components/MetricBox/MetricBoxBase.d.ts.map +1 -1
  421. package/package.json +12 -11
  422. package/dist/core/Badge-DOn6E2bS.cjs.map +0 -1
  423. package/dist/core/Badge-Dpjq6lUF.js.map +0 -1
  424. package/dist/core/Card-D-GQwaUJ.js.map +0 -1
  425. package/dist/core/Card-DftqfPue.cjs.map +0 -1
  426. package/dist/core/Footer-DMOA1W7N.cjs.map +0 -1
  427. package/dist/core/Footer-zO4RGjCl.js.map +0 -1
  428. package/dist/core/FormGroup-C2TWC17P.cjs.map +0 -1
  429. package/dist/core/FormGroup-tSK_NN0-.js.map +0 -1
  430. package/dist/core/IconButton-CR9bTZoJ.cjs.map +0 -1
  431. package/dist/core/IconButton-_lxTppua.js.map +0 -1
  432. package/dist/core/MarkdownRenderer-B1LmmpZm.js.map +0 -1
  433. package/dist/core/MarkdownRenderer-LUXCa_a8.cjs.map +0 -1
  434. package/dist/core/MetricBox-BcOdQM-l.cjs.map +0 -1
  435. package/dist/core/MetricBox-Dh911MS2.js.map +0 -1
  436. package/dist/core/Spinner-CEIk_hpT.cjs.map +0 -1
  437. package/dist/core/Spinner-D81UG24n.js.map +0 -1
  438. package/dist/next/Badge-DbmM5wGc.cjs.map +0 -1
  439. package/dist/next/Badge-k6Dk5S_p.js.map +0 -1
  440. package/dist/next/Card-BFmGnvxN.cjs.map +0 -1
  441. package/dist/next/Card-DhxLw6XZ.js.map +0 -1
  442. package/dist/next/Footer-BSEbf6CL.js.map +0 -1
  443. package/dist/next/Footer-DAZLz11H.cjs.map +0 -1
  444. package/dist/next/FormGroup-6Ss6pNqV.cjs.map +0 -1
  445. package/dist/next/FormGroup-DbUqgg_b.js.map +0 -1
  446. package/dist/next/IconButton-VSz8qAIg.cjs.map +0 -1
  447. package/dist/next/IconButton-qQljwBB2.js.map +0 -1
  448. package/dist/next/MetricBox-BylPOvoO.cjs.map +0 -1
  449. package/dist/next/MetricBox-Dl3iruBZ.js.map +0 -1
  450. package/dist/next/Spinner-B89FhxVt.cjs.map +0 -1
  451. package/dist/next/Spinner-ChiOXzru.js.map +0 -1
  452. package/dist/next/image-CEz9QtOW.js.map +0 -1
  453. package/dist/next/image-VX9Ty9NQ.cjs.map +0 -1
  454. package/dist/next/link-Bik5xH00.js +0 -2878
  455. package/dist/next/link-Bik5xH00.js.map +0 -1
  456. package/dist/next/link-hxAaLm0Q.cjs +0 -2877
  457. package/dist/next/link-hxAaLm0Q.cjs.map +0 -1
  458. package/dist/next/navigation-DTwYCgCL.js +0 -1991
  459. package/dist/next/navigation-DTwYCgCL.js.map +0 -1
  460. package/dist/next/navigation-m012syo9.cjs +0 -1990
  461. package/dist/next/navigation-m012syo9.cjs.map +0 -1
@@ -3,42 +3,42 @@ import { useId, useState, useRef, useEffect, 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 { c as getDefaultSize, d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
6
- const noScroll = "_noScroll_13ifa_108";
7
- const errorMessage = "_errorMessage_13ifa_109";
8
- const loadingContainer = "_loadingContainer_13ifa_110";
9
- const hideScrollbar = "_hideScrollbar_13ifa_102";
10
- const sr_only = "_sr_only_13ifa_111";
11
- const tabs_container = "_tabs_container_13ifa_540";
12
- const tabs = "_tabs_13ifa_540";
13
- const icon = "_icon_13ifa_563";
14
- const tab = "_tab_13ifa_540";
15
- const xs = "_xs_13ifa_620";
16
- const small = "_small_13ifa_630";
17
- const medium = "_medium_13ifa_640";
18
- const large = "_large_13ifa_650";
19
- const xl = "_xl_13ifa_660";
20
- const content = "_content_13ifa_670";
21
- const primary = "_primary_13ifa_691";
22
- const active = "_active_13ifa_691";
23
- const secondary = "_secondary_13ifa_700";
24
- const tertiary = "_tertiary_13ifa_709";
25
- const quaternary = "_quaternary_13ifa_718";
26
- const clear = "_clear_13ifa_727";
27
- const success = "_success_13ifa_736";
28
- const error = "_error_13ifa_109";
29
- const warning = "_warning_13ifa_754";
30
- const roundNone = "_roundNone_13ifa_767";
31
- const roundSmall = "_roundSmall_13ifa_777";
32
- const roundMedium = "_roundMedium_13ifa_787";
33
- const roundLarge = "_roundLarge_13ifa_797";
34
- const roundFull = "_roundFull_13ifa_807";
35
- const shadowNone = "_shadowNone_13ifa_817";
36
- const shadowLight = "_shadowLight_13ifa_821";
37
- const shadowMedium = "_shadowMedium_13ifa_825";
38
- const shadowStrong = "_shadowStrong_13ifa_829";
39
- const shadowIntense = "_shadowIntense_13ifa_833";
40
- const spin = "_spin_13ifa_1";
41
- const pulse = "_pulse_13ifa_1";
6
+ const noScroll = "_noScroll_1p7z1_108";
7
+ const errorMessage = "_errorMessage_1p7z1_109";
8
+ const loadingContainer = "_loadingContainer_1p7z1_110";
9
+ const hideScrollbar = "_hideScrollbar_1p7z1_102";
10
+ const sr_only = "_sr_only_1p7z1_111";
11
+ const tabs_container = "_tabs_container_1p7z1_540";
12
+ const tabs = "_tabs_1p7z1_540";
13
+ const icon = "_icon_1p7z1_563";
14
+ const tab = "_tab_1p7z1_540";
15
+ const xs = "_xs_1p7z1_620";
16
+ const small = "_small_1p7z1_630";
17
+ const medium = "_medium_1p7z1_640";
18
+ const large = "_large_1p7z1_650";
19
+ const xl = "_xl_1p7z1_660";
20
+ const content = "_content_1p7z1_670";
21
+ const primary = "_primary_1p7z1_691";
22
+ const active = "_active_1p7z1_691";
23
+ const secondary = "_secondary_1p7z1_700";
24
+ const tertiary = "_tertiary_1p7z1_709";
25
+ const quaternary = "_quaternary_1p7z1_718";
26
+ const clear = "_clear_1p7z1_727";
27
+ const success = "_success_1p7z1_736";
28
+ const error = "_error_1p7z1_109";
29
+ const warning = "_warning_1p7z1_754";
30
+ const roundNone = "_roundNone_1p7z1_767";
31
+ const roundSmall = "_roundSmall_1p7z1_777";
32
+ const roundMedium = "_roundMedium_1p7z1_787";
33
+ const roundLarge = "_roundLarge_1p7z1_797";
34
+ const roundFull = "_roundFull_1p7z1_807";
35
+ const shadowNone = "_shadowNone_1p7z1_817";
36
+ const shadowLight = "_shadowLight_1p7z1_821";
37
+ const shadowMedium = "_shadowMedium_1p7z1_825";
38
+ const shadowStrong = "_shadowStrong_1p7z1_829";
39
+ const shadowIntense = "_shadowIntense_1p7z1_833";
40
+ const spin = "_spin_1p7z1_1";
41
+ const pulse = "_pulse_1p7z1_1";
42
42
  const styles = {
43
43
  noScroll,
44
44
  errorMessage,
@@ -74,15 +74,15 @@ const styles = {
74
74
  shadowMedium,
75
75
  shadowStrong,
76
76
  shadowIntense,
77
- "fade-in": "_fade-in_13ifa_1",
78
- "slide-up": "_slide-up_13ifa_1",
79
- "spin-3d": "_spin-3d_13ifa_1",
77
+ "fade-in": "_fade-in_1p7z1_1",
78
+ "slide-up": "_slide-up_1p7z1_1",
79
+ "spin-3d": "_spin-3d_1p7z1_1",
80
80
  spin,
81
81
  pulse,
82
- "fade-in-up": "_fade-in-up_13ifa_1",
83
- "progress-grow": "_progress-grow_13ifa_1",
84
- "indeterminate-move": "_indeterminate-move_13ifa_1",
85
- "skeleton-loading": "_skeleton-loading_13ifa_1"
82
+ "fade-in-up": "_fade-in-up_1p7z1_1",
83
+ "progress-grow": "_progress-grow_1p7z1_1",
84
+ "indeterminate-move": "_indeterminate-move_1p7z1_1",
85
+ "skeleton-loading": "_skeleton-loading_1p7z1_1"
86
86
  };
87
87
  const TabsBase = ({
88
88
  tabs: tabs2,
@@ -261,4 +261,4 @@ Tabs.displayName = "Tabs";
261
261
  export {
262
262
  Tabs as T
263
263
  };
264
- //# sourceMappingURL=Tabs-CvYx2xtH.js.map
264
+ //# sourceMappingURL=Tabs-DmrS_FUa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs-CvYx2xtH.js","sources":["../../src/components/Tabs/TabsBase.tsx","../../src/components/Tabs/next/Tabs.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState, useId } from \"react\";\r\nimport { BaseTabsProps } from \"./Tabs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TabsBase: React.FC<BaseTabsProps> = ({\r\n tabs,\r\n defaultIndex = 0,\r\n onChange,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n orientation = \"horizontal\",\r\n activationMode = \"auto\",\r\n \"data-testid\": testId = \"tabs\",\r\n classMap,\r\n}) => {\r\n const uid = useId();\r\n const baseId = `${testId}-${uid}`;\r\n\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n const [focusIndex, setFocusIndex] = useState(defaultIndex);\r\n\r\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const current = activationMode === \"manual\" ? focusIndex : activeIndex;\r\n tabRefs.current.forEach((el, i) => {\r\n if (!el) return;\r\n el.setAttribute(\"tabindex\", i === current ? \"0\" : \"-1\");\r\n });\r\n tabRefs.current[current]?.focus();\r\n }, [activeIndex, focusIndex, activationMode]);\r\n\r\n const containerClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n className\r\n ),\r\n [classMap, theme, state, size, className]\r\n );\r\n\r\n const tabClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tab,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const activate = (index: number) => {\r\n setActiveIndex(index);\r\n onChange?.(index);\r\n };\r\n\r\n const isDisabled = (index: number) => !!tabs[index]?.disabled;\r\n\r\n const nextEnabled = (start: number, dir: 1 | -1) => {\r\n const len = tabs.length;\r\n let i = start;\r\n for (let n = 0; n < len; n++) {\r\n i = (i + dir + len) % len;\r\n if (!isDisabled(i)) return i;\r\n }\r\n return start;\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n const horiz = orientation === \"horizontal\";\r\n const { key } = event;\r\n\r\n let newFocus = focusIndex;\r\n\r\n if (horiz && key === \"ArrowRight\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (horiz && key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (!horiz && key === \"ArrowDown\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (!horiz && key === \"ArrowUp\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (key === \"Home\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(-1, 1);\r\n } else if (key === \"End\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(0, -1);\r\n } else if (\r\n activationMode === \"manual\" &&\r\n (key === \"Enter\" || key === \" \")\r\n ) {\r\n event.preventDefault();\r\n if (!isDisabled(focusIndex)) activate(focusIndex);\r\n return;\r\n } else {\r\n return;\r\n }\r\n\r\n setFocusIndex(newFocus);\r\n if (activationMode === \"auto\") activate(newFocus);\r\n };\r\n\r\n const currentPanelId = `${baseId}-panel-${activeIndex}`;\r\n const currentTabId = `${baseId}-tab-${activeIndex}`;\r\n\r\n return (\r\n <div className={containerClassNames} data-testid={testId}>\r\n <div\r\n className={classMap.tabs}\r\n role=\"tablist\"\r\n aria-label=\"Tabs\"\r\n aria-orientation={orientation}\r\n onKeyDown={onKeyDown}\r\n data-testid={`${testId}-tablist`}\r\n >\r\n {tabs.map((tab, index) => {\r\n const Icon = tab.icon;\r\n const isActive = index === activeIndex;\r\n const disabled = isDisabled(index);\r\n const tabId = `${baseId}-tab-${index}`;\r\n const panelId = `${baseId}-panel-${index}`;\r\n\r\n return (\r\n <button\r\n key={index}\r\n ref={(el) => {\r\n tabRefs.current[index] = el;\r\n }}\r\n className={combineClassNames(\r\n tabClassNames,\r\n isActive && classMap.active,\r\n disabled && classMap.disabled\r\n )}\r\n role=\"tab\"\r\n type=\"button\"\r\n aria-selected={isActive}\r\n aria-controls={panelId}\r\n id={tabId}\r\n aria-disabled={disabled || undefined}\r\n onClick={() => {\r\n if (disabled) return;\r\n setFocusIndex(index);\r\n activate(index);\r\n }}\r\n data-testid={`${testId}-tab-${index}`}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon-${index}`}\r\n >\r\n <Icon />\r\n </div>\r\n )}\r\n {tab.label}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n <div\r\n className={classMap.content}\r\n role=\"tabpanel\"\r\n id={currentPanelId}\r\n aria-labelledby={currentTabId}\r\n tabIndex={0}\r\n data-testid={`${testId}-panel`}\r\n >\r\n {tabs[activeIndex].content}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTabsBase.displayName = \"TabsBase\";\r\nexport default TabsBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport styles from \"./Tabs.module.scss\";\r\nimport TabsBase from \"../TabsBase\";\r\nimport { TabsProps } from \"../Tabs.types\";\r\n\r\nconst Tabs: React.FC<TabsProps> = (props) => {\r\n return <TabsBase {...props} classMap={styles} />;\r\n};\r\nTabs.displayName = \"Tabs\";\r\nexport default Tabs;\r\n"],"names":["tabs","tab"],"mappings":"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"}
1
+ {"version":3,"file":"Tabs-DmrS_FUa.js","sources":["../../src/components/Tabs/TabsBase.tsx","../../src/components/Tabs/next/Tabs.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState, useId } from \"react\";\r\nimport { BaseTabsProps } from \"./Tabs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TabsBase: React.FC<BaseTabsProps> = ({\r\n tabs,\r\n defaultIndex = 0,\r\n onChange,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n orientation = \"horizontal\",\r\n activationMode = \"auto\",\r\n \"data-testid\": testId = \"tabs\",\r\n classMap,\r\n}) => {\r\n const uid = useId();\r\n const baseId = `${testId}-${uid}`;\r\n\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n const [focusIndex, setFocusIndex] = useState(defaultIndex);\r\n\r\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const current = activationMode === \"manual\" ? focusIndex : activeIndex;\r\n tabRefs.current.forEach((el, i) => {\r\n if (!el) return;\r\n el.setAttribute(\"tabindex\", i === current ? \"0\" : \"-1\");\r\n });\r\n tabRefs.current[current]?.focus();\r\n }, [activeIndex, focusIndex, activationMode]);\r\n\r\n const containerClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n className\r\n ),\r\n [classMap, theme, state, size, className]\r\n );\r\n\r\n const tabClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tab,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const activate = (index: number) => {\r\n setActiveIndex(index);\r\n onChange?.(index);\r\n };\r\n\r\n const isDisabled = (index: number) => !!tabs[index]?.disabled;\r\n\r\n const nextEnabled = (start: number, dir: 1 | -1) => {\r\n const len = tabs.length;\r\n let i = start;\r\n for (let n = 0; n < len; n++) {\r\n i = (i + dir + len) % len;\r\n if (!isDisabled(i)) return i;\r\n }\r\n return start;\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n const horiz = orientation === \"horizontal\";\r\n const { key } = event;\r\n\r\n let newFocus = focusIndex;\r\n\r\n if (horiz && key === \"ArrowRight\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (horiz && key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (!horiz && key === \"ArrowDown\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (!horiz && key === \"ArrowUp\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (key === \"Home\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(-1, 1);\r\n } else if (key === \"End\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(0, -1);\r\n } else if (\r\n activationMode === \"manual\" &&\r\n (key === \"Enter\" || key === \" \")\r\n ) {\r\n event.preventDefault();\r\n if (!isDisabled(focusIndex)) activate(focusIndex);\r\n return;\r\n } else {\r\n return;\r\n }\r\n\r\n setFocusIndex(newFocus);\r\n if (activationMode === \"auto\") activate(newFocus);\r\n };\r\n\r\n const currentPanelId = `${baseId}-panel-${activeIndex}`;\r\n const currentTabId = `${baseId}-tab-${activeIndex}`;\r\n\r\n return (\r\n <div className={containerClassNames} data-testid={testId}>\r\n <div\r\n className={classMap.tabs}\r\n role=\"tablist\"\r\n aria-label=\"Tabs\"\r\n aria-orientation={orientation}\r\n onKeyDown={onKeyDown}\r\n data-testid={`${testId}-tablist`}\r\n >\r\n {tabs.map((tab, index) => {\r\n const Icon = tab.icon;\r\n const isActive = index === activeIndex;\r\n const disabled = isDisabled(index);\r\n const tabId = `${baseId}-tab-${index}`;\r\n const panelId = `${baseId}-panel-${index}`;\r\n\r\n return (\r\n <button\r\n key={index}\r\n ref={(el) => {\r\n tabRefs.current[index] = el;\r\n }}\r\n className={combineClassNames(\r\n tabClassNames,\r\n isActive && classMap.active,\r\n disabled && classMap.disabled\r\n )}\r\n role=\"tab\"\r\n type=\"button\"\r\n aria-selected={isActive}\r\n aria-controls={panelId}\r\n id={tabId}\r\n aria-disabled={disabled || undefined}\r\n onClick={() => {\r\n if (disabled) return;\r\n setFocusIndex(index);\r\n activate(index);\r\n }}\r\n data-testid={`${testId}-tab-${index}`}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon-${index}`}\r\n >\r\n <Icon />\r\n </div>\r\n )}\r\n {tab.label}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n <div\r\n className={classMap.content}\r\n role=\"tabpanel\"\r\n id={currentPanelId}\r\n aria-labelledby={currentTabId}\r\n tabIndex={0}\r\n data-testid={`${testId}-panel`}\r\n >\r\n {tabs[activeIndex].content}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTabsBase.displayName = \"TabsBase\";\r\nexport default TabsBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport styles from \"./Tabs.module.scss\";\r\nimport TabsBase from \"../TabsBase\";\r\nimport { TabsProps } from \"../Tabs.types\";\r\n\r\nconst Tabs: React.FC<TabsProps> = (props) => {\r\n return <TabsBase {...props} classMap={styles} />;\r\n};\r\nTabs.displayName = \"Tabs\";\r\nexport default Tabs;\r\n"],"names":["tabs","tab"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Tabs = require("./Tabs-D2jqRrxR.cjs");
2
+ const Tabs = require("./Tabs-D8Efg8wn.cjs");
3
3
  module.exports = Tabs.Tabs;
4
4
  //# sourceMappingURL=Tabs.cjs.js.map
package/dist/next/Tabs.js CHANGED
@@ -1,4 +1,4 @@
1
- import { T } from "./Tabs-CvYx2xtH.js";
1
+ import { T } from "./Tabs-DmrS_FUa.js";
2
2
  export {
3
3
  T as default
4
4
  };
@@ -1,50 +1,50 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
- const IconButton = require("./IconButton-VSz8qAIg.cjs");
4
- const TextInput = require("./TextInput-Cr0WjibW.cjs");
3
+ const IconButton = require("./IconButton-2l-_HOMB.cjs");
4
+ const TextInput = require("./TextInput-Z2izAjJj.cjs");
5
5
  const React = require("react");
6
6
  const CloseIcon = require("./CloseIcon-7hy4qJ9o.cjs");
7
7
  const classNames = require("./classNames-BcWMx052.cjs");
8
8
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
9
9
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
10
- const noScroll = "_noScroll_8ms2i_108";
11
- const errorMessage = "_errorMessage_8ms2i_109";
12
- const loadingContainer = "_loadingContainer_8ms2i_110";
13
- const hideScrollbar = "_hideScrollbar_8ms2i_102";
14
- const sr_only = "_sr_only_8ms2i_111";
15
- const tagInput = "_tagInput_8ms2i_540";
16
- const tag = "_tag_8ms2i_540";
17
- const suggestionItem = "_suggestionItem_8ms2i_568";
18
- const inputWrapper = "_inputWrapper_8ms2i_572";
19
- const tagContainer = "_tagContainer_8ms2i_581";
20
- const removeButton = "_removeButton_8ms2i_604";
21
- const tagLabel = "_tagLabel_8ms2i_647";
22
- const suggestionList = "_suggestionList_8ms2i_651";
23
- const xs = "_xs_8ms2i_694";
24
- const small = "_small_8ms2i_704";
25
- const medium = "_medium_8ms2i_714";
26
- const large = "_large_8ms2i_724";
27
- const xl = "_xl_8ms2i_734";
28
- const primary = "_primary_8ms2i_744";
29
- const secondary = "_secondary_8ms2i_748";
30
- const tertiary = "_tertiary_8ms2i_752";
31
- const quaternary = "_quaternary_8ms2i_756";
32
- const clear = "_clear_8ms2i_760";
33
- const success = "_success_8ms2i_764";
34
- const error = "_error_8ms2i_109";
35
- const warning = "_warning_8ms2i_774";
36
- const roundNone = "_roundNone_8ms2i_779";
37
- const roundSmall = "_roundSmall_8ms2i_783";
38
- const roundMedium = "_roundMedium_8ms2i_787";
39
- const roundLarge = "_roundLarge_8ms2i_791";
40
- const roundFull = "_roundFull_8ms2i_795";
41
- const shadowNone = "_shadowNone_8ms2i_799";
42
- const shadowLight = "_shadowLight_8ms2i_803";
43
- const shadowMedium = "_shadowMedium_8ms2i_807";
44
- const shadowStrong = "_shadowStrong_8ms2i_811";
45
- const shadowIntense = "_shadowIntense_8ms2i_815";
46
- const spin = "_spin_8ms2i_1";
47
- const pulse = "_pulse_8ms2i_1";
10
+ const noScroll = "_noScroll_1pv7s_108";
11
+ const errorMessage = "_errorMessage_1pv7s_109";
12
+ const loadingContainer = "_loadingContainer_1pv7s_110";
13
+ const hideScrollbar = "_hideScrollbar_1pv7s_102";
14
+ const sr_only = "_sr_only_1pv7s_111";
15
+ const tagInput = "_tagInput_1pv7s_540";
16
+ const tag = "_tag_1pv7s_540";
17
+ const suggestionItem = "_suggestionItem_1pv7s_568";
18
+ const inputWrapper = "_inputWrapper_1pv7s_572";
19
+ const tagContainer = "_tagContainer_1pv7s_581";
20
+ const removeButton = "_removeButton_1pv7s_604";
21
+ const tagLabel = "_tagLabel_1pv7s_647";
22
+ const suggestionList = "_suggestionList_1pv7s_651";
23
+ const xs = "_xs_1pv7s_694";
24
+ const small = "_small_1pv7s_704";
25
+ const medium = "_medium_1pv7s_714";
26
+ const large = "_large_1pv7s_724";
27
+ const xl = "_xl_1pv7s_734";
28
+ const primary = "_primary_1pv7s_744";
29
+ const secondary = "_secondary_1pv7s_748";
30
+ const tertiary = "_tertiary_1pv7s_752";
31
+ const quaternary = "_quaternary_1pv7s_756";
32
+ const clear = "_clear_1pv7s_760";
33
+ const success = "_success_1pv7s_764";
34
+ const error = "_error_1pv7s_109";
35
+ const warning = "_warning_1pv7s_774";
36
+ const roundNone = "_roundNone_1pv7s_779";
37
+ const roundSmall = "_roundSmall_1pv7s_783";
38
+ const roundMedium = "_roundMedium_1pv7s_787";
39
+ const roundLarge = "_roundLarge_1pv7s_791";
40
+ const roundFull = "_roundFull_1pv7s_795";
41
+ const shadowNone = "_shadowNone_1pv7s_799";
42
+ const shadowLight = "_shadowLight_1pv7s_803";
43
+ const shadowMedium = "_shadowMedium_1pv7s_807";
44
+ const shadowStrong = "_shadowStrong_1pv7s_811";
45
+ const shadowIntense = "_shadowIntense_1pv7s_815";
46
+ const spin = "_spin_1pv7s_1";
47
+ const pulse = "_pulse_1pv7s_1";
48
48
  const styles = {
49
49
  noScroll,
50
50
  errorMessage,
@@ -82,15 +82,15 @@ const styles = {
82
82
  shadowMedium,
83
83
  shadowStrong,
84
84
  shadowIntense,
85
- "fade-in": "_fade-in_8ms2i_1",
86
- "slide-up": "_slide-up_8ms2i_1",
87
- "spin-3d": "_spin-3d_8ms2i_1",
85
+ "fade-in": "_fade-in_1pv7s_1",
86
+ "slide-up": "_slide-up_1pv7s_1",
87
+ "spin-3d": "_spin-3d_1pv7s_1",
88
88
  spin,
89
89
  pulse,
90
- "fade-in-up": "_fade-in-up_8ms2i_1",
91
- "progress-grow": "_progress-grow_8ms2i_1",
92
- "indeterminate-move": "_indeterminate-move_8ms2i_1",
93
- "skeleton-loading": "_skeleton-loading_8ms2i_1"
90
+ "fade-in-up": "_fade-in-up_1pv7s_1",
91
+ "progress-grow": "_progress-grow_1pv7s_1",
92
+ "indeterminate-move": "_indeterminate-move_1pv7s_1",
93
+ "skeleton-loading": "_skeleton-loading_1pv7s_1"
94
94
  };
95
95
  const TagInputBase = ({
96
96
  tags = [],
@@ -359,4 +359,4 @@ const TagInput = (props) => {
359
359
  };
360
360
  TagInput.displayName = "TagInput";
361
361
  exports.TagInput = TagInput;
362
- //# sourceMappingURL=TagInput-Dym0BPK1.cjs.map
362
+ //# sourceMappingURL=TagInput-Bfjg9pZQ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagInput-Dym0BPK1.cjs","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/next/TagInput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport styles from \"./Taginput.module.scss\";\r\nimport { IconButton, TextInput } from \"@/index.next\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={styles}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\nTagInput.displayName = \"TagInput\";\r\nexport default TagInput;\r\n"],"names":["getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","IconButton","TextInput","useId","useState","useRef","useEffect","tag","useMemo","combineClassNames","capitalize","jsxs","jsx","CloseIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,eAA4C,CAAC;AAAA,EACjD,OAAO,CAAA;AAAA,EACP;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,cAAc;AAAA,EACd,QAAQA,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAOC,kBAAAA,eAAA;AAAA,EACP,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,eAAe,SAAS;AAAA,EACxB,kBAAkB;AAAA,EAClB;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACJ,QAAM,MAAMC,MAAAA,MAAA;AACZ,QAAM,UAAU,GAAG,MAAM,UAAU,GAAG;AACtC,QAAM,SAAS,GAAG,MAAM,SAAS,GAAG;AACpC,QAAM,UAAU,GAAG,MAAM,UAAU,GAAG;AACtC,QAAM,YAAY,GAAG,MAAM,YAAY,GAAG;AAC1C,QAAM,WAAW,GAAG,MAAM,WAAW,GAAG;AAExC,QAAM,CAAC,YAAY,aAAa,IAAIC,MAAAA,SAAS,EAAE;AAC/C,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAmB,IAAI;AACrD,QAAM,CAAC,YAAY,aAAa,IAAIA,MAAAA,SAAiB,EAAE;AACvD,QAAM,CAAC,aAAa,cAAc,IAAIA,MAAAA,SAAmB,CAAA,CAAE;AAC3D,QAAM,CAAC,MAAM,OAAO,IAAIA,MAAAA,SAAS,KAAK;AACtC,QAAM,CAAC,aAAa,cAAc,IAAIA,MAAAA,SAAiB,EAAE;AAEzD,QAAM,cAAcC,MAAAA,OAA6C,IAAI;AAErE,QAAM,SAAS,CAAC,QACd,QAAQ,KAAK,CAAC,MAAM,EAAE,YAAA,MAAkB,IAAI,YAAA,CAAa;AAE3DC,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,kBAAkB;AACrB,qBAAe,CAAA,CAAE;AACjB,cAAQ,KAAK;AACb;AAAA,IACF;AACA,QAAI,YAAY,QAAS,cAAa,YAAY,OAAO;AAEzD,UAAM,QAAQ,WAAW,KAAA;AACzB,QAAI,CAAC,OAAO;AACV,qBAAe,CAAA,CAAE;AACjB,cAAQ,KAAK;AACb,qBAAe,EAAE;AACjB;AAAA,IACF;AAEA,gBAAY,UAAU,WAAW,YAAY;AAC3C,UAAI;AACF,cAAM,SAAS,MAAM,iBAAiB,KAAK;AAC3C,uBAAe,UAAU,EAAE;AAC3B,kBAAS,iCAAQ,WAAU,KAAK,CAAC;AACjC,yBAAgB,iCAAQ,WAAU,KAAK,IAAI,IAAI,EAAE;AAAA,MACnD,QAAQ;AACN,uBAAe,CAAA,CAAE;AACjB,gBAAQ,KAAK;AACb,uBAAe,EAAE;AAAA,MACnB;AAAA,IACF,GAAG,UAAU;AAEb,WAAO,MAAM;AACX,UAAI,YAAY,QAAS,cAAa,YAAY,OAAO;AAAA,IAC3D;AAAA,EACF,GAAG,CAAC,YAAY,kBAAkB,UAAU,CAAC;AAE7C,QAAM,SAAS,CAAC,QAAgB;AAC9B,UAAM,SAAS,IAAI,KAAA;AACnB,QAAI,CAAC,UAAU,OAAO,MAAM,EAAG,QAAO;AACtC,UAAM,UAAU,CAAC,GAAG,SAAS,MAAM;AACnC,eAAW,OAAO;AAClB,yCAAW;AACX,kBAAc,aAAa,MAAM,GAAG;AACpC,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,CAACC,SAAgB;AACjC,UAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,MAAMA,IAAG;AAC/C,eAAW,OAAO;AAClB,yCAAW;AACX,kBAAc,eAAeA,IAAG,GAAG;AAAA,EACrC;AAEA,QAAM,gBAAgB,CAAC,UAA2C;AAChE,UAAM,EAAE,QAAQ;AAEhB,QAAI,QAAQ,YAAY,SAAS,GAAG;AAClC,UAAI,QAAQ,aAAa;AACvB,cAAM,eAAA;AACN,uBAAe,CAAC,OAAO,IAAI,KAAK,YAAY,MAAM;AAClD;AAAA,MACF;AACA,UAAI,QAAQ,WAAW;AACrB,cAAM,eAAA;AACN;AAAA,UACE,CAAC,OAAO,IAAI,IAAI,YAAY,UAAU,YAAY;AAAA,QAAA;AAEpD;AAAA,MACF;AACA,UAAI,QAAQ,SAAS;AACnB,cAAM,eAAA;AACN,cAAM,SAAS,YAAY,WAAW;AACtC,YAAI,UAAU,OAAO,MAAM,GAAG;AAC5B,wBAAc,EAAE;AAAA,QAClB;AACA,uBAAe,CAAA,CAAE;AACjB,gBAAQ,KAAK;AACb,uBAAe,EAAE;AACjB;AAAA,MACF;AACA,UAAI,QAAQ,UAAU;AACpB,cAAM,eAAA;AACN,uBAAe,CAAA,CAAE;AACjB,gBAAQ,KAAK;AACb,uBAAe,EAAE;AACjB;AAAA,MACF;AAAA,IACF;AAEA,QAAI,QAAQ,WAAW,QAAQ,KAAK;AAClC,YAAM,eAAA;AACN,UAAI,OAAO,UAAU,EAAG,eAAc,EAAE;AACxC,qBAAe,CAAA,CAAE;AACjB,cAAQ,KAAK;AACb,qBAAe,EAAE;AACjB;AAAA,IACF;AAEA,QAAI,QAAQ,eAAe,eAAe,MAAM,QAAQ,SAAS,GAAG;AAClE,YAAM,OAAO,QAAQ,QAAQ,SAAS,CAAC;AACvC,gBAAU,IAAI;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,eAAeC,MAAAA;AAAAA,IACnB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,IAAA;AAAA,IAEjB,CAAC,UAAU,OAAO,OAAO,IAAI;AAAA,EAAA;AAG/B,QAAM,WAAWD,MAAAA;AAAAA,IACf,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,IAAA;AAAA,IAEvD,CAAC,UAAU,QAAQ,QAAQ;AAAA,EAAA;AAG7B,QAAM,wBAAwB,CAAC,eAAuB;AACpD,QAAI,OAAO,UAAU,EAAG,eAAc,EAAE;AACxC,mBAAe,CAAA,CAAE;AACjB,YAAQ,KAAK;AACb,mBAAe,EAAE;AAAA,EACnB;AAEA,QAAM,iBACJ,QAAQ,eAAe,IAAI,GAAG,SAAS,QAAQ,WAAW,KAAK;AAEjE,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB,GAAG,MAAM,IAAI,QAAQ;AAAA,MACvC,eAAa;AAAA,MAEb,UAAA;AAAA,QAAAC,+BAAC,SAAA,EAAM,IAAI,SAAS,WAAU,WAAU,UAAA,aAExC;AAAA,QACAA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAU;AAAA,YACV,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHA,2BAAAA,IAAC,MAAA,EAAG,WAAW,SAAS,cAAc,eAAa,GAAG,MAAM,SACzD,UAAA,QAAQ,IAAI,CAACL,MAAK,UACjBI,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAW;AAAA,YACX,MAAK;AAAA,YACL,eAAa,GAAG,MAAM,QAAQ,KAAK;AAAA,YAEnC,UAAA;AAAA,cAAAC,2BAAAA,IAAC,QAAA,EAAK,WAAW,SAAS,UAAW,UAAAL,MAAI;AAAA,cACzCK,2BAAAA;AAAAA,gBAACX;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,cAAY,cAAcM,IAAG;AAAA,kBAC7B,WAAW,SAAS;AAAA,kBACpB,SAAS,MAAM,UAAUA,IAAG;AAAA,kBAC5B,eAAa,GAAG,MAAM,WAAW,KAAK;AAAA,kBACtC,MAAMM,UAAAA;AAAAA,kBACN,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,QAAO;AAAA,kBACP,eAAe,SAAS;AAAA,gBAAA;AAAA,cAAA;AAAA,YAC1B;AAAA,UAAA;AAAA,UAjBK,GAAGN,IAAG,IAAI,KAAK;AAAA,QAAA,CAmBvB,GACH;AAAA,QAEAK,2BAAAA,IAAC,OAAA,EAAI,WAAW,SAAS,cACvB,UAAAA,2BAAAA;AAAAA,UAACV;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,MAAK;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,WAAW,SAAS;AAAA,YACpB,OAAO;AAAA,YACP,aAAa,QAAQ,WAAW,IAAI,cAAc;AAAA,YAClD,UAAU,CAAC,MACT,cAAc,EAAE,OAAO,KAAK;AAAA,YAE9B,WAAW;AAAA,YACX,cAAa;AAAA,YACb,MAAK;AAAA,YACL,qBAAkB;AAAA,YAClB,iBAAe;AAAA,YACf,iBAAe;AAAA,YACf,yBAAuB;AAAA,YACvB,cAAW;AAAA,YACX,oBAAkB,GAAG,MAAM,IAAI,QAAQ;AAAA,YACvC,eAAa,GAAG,MAAM;AAAA,UAAA;AAAA,QAAA,GAE1B;AAAA,QAEC,QAAQ,YAAY,SAAS,KAC5BU,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,MAAK;AAAA,YACL,IAAI;AAAA,YACJ,cAAW;AAAA,YACX,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA,YAAY,IAAI,CAAC,YAAY,UAC5BA,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,IAAI,GAAG,SAAS,QAAQ,KAAK;AAAA,gBAC7B,WAAWH,WAAAA;AAAAA,kBACT,SAAS;AAAA,kBACT,UAAU,gBAAgB,SAAS,UAAU;AAAA,gBAAA;AAAA,gBAE/C,MAAK;AAAA,gBACL,iBAAe,UAAU;AAAA,gBACzB,aAAa,CAAC,MAAM,EAAE,eAAA;AAAA,gBACtB,SAAS,MAAM,sBAAsB,UAAU;AAAA,gBAC/C,eAAa,GAAG,MAAM,eAAe,KAAK;AAAA,gBAEzC,UAAA;AAAA,cAAA;AAAA,cAZI,GAAG,UAAU,IAAI,KAAK;AAAA,YAAA,CAc9B;AAAA,UAAA;AAAA,QAAA;AAAA,wCAIJ,OAAA,EAAI,IAAI,UAAU,aAAU,UAAS,WAAU,WAC7C,UAAA;AAAA,UAAA,QAAQ,YAAY,SAAS,IAC1B,GAAG,YAAY,MAAM,cAAc,YAAY,WAAW,IAAI,KAAK,GAAG,gBACtE;AAAA,UACH;AAAA,QAAA,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,aAAa,cAAc;ACjS3B,MAAM,WAAoC,CAAC,UAAU;AACnD,SACEG,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,UAAU;AAAA,MAAA,YACVX,WAAAA;AAAAA,MAAA,WACAC,UAAAA;AAAAA,IAAA;AAAA,EAAA;AAGN;AACA,SAAS,cAAc;;"}
1
+ {"version":3,"file":"TagInput-Bfjg9pZQ.cjs","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/next/TagInput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport styles from \"./Taginput.module.scss\";\r\nimport { IconButton, TextInput } from \"@/index.next\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={styles}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\nTagInput.displayName = \"TagInput\";\r\nexport default TagInput;\r\n"],"names":["getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","IconButton","TextInput","useId","useState","useRef","useEffect","tag","useMemo","combineClassNames","capitalize","jsxs","jsx","CloseIcon"],"mappings":"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"}
@@ -1,49 +1,49 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import { I as IconButton } from "./IconButton-qQljwBB2.js";
3
- import { T as TextInput } from "./TextInput-D9dzooMU.js";
2
+ import { I as IconButton } from "./IconButton-BTUFKRZt.js";
3
+ import { T as TextInput } from "./TextInput-ChmIMzj2.js";
4
4
  import { useId, useState, useRef, useEffect, useMemo } from "react";
5
5
  import { C as CloseIcon } from "./CloseIcon-C3eQm4EK.js";
6
6
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
7
7
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
8
8
  import { c as getDefaultSize, d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
9
- const noScroll = "_noScroll_8ms2i_108";
10
- const errorMessage = "_errorMessage_8ms2i_109";
11
- const loadingContainer = "_loadingContainer_8ms2i_110";
12
- const hideScrollbar = "_hideScrollbar_8ms2i_102";
13
- const sr_only = "_sr_only_8ms2i_111";
14
- const tagInput = "_tagInput_8ms2i_540";
15
- const tag = "_tag_8ms2i_540";
16
- const suggestionItem = "_suggestionItem_8ms2i_568";
17
- const inputWrapper = "_inputWrapper_8ms2i_572";
18
- const tagContainer = "_tagContainer_8ms2i_581";
19
- const removeButton = "_removeButton_8ms2i_604";
20
- const tagLabel = "_tagLabel_8ms2i_647";
21
- const suggestionList = "_suggestionList_8ms2i_651";
22
- const xs = "_xs_8ms2i_694";
23
- const small = "_small_8ms2i_704";
24
- const medium = "_medium_8ms2i_714";
25
- const large = "_large_8ms2i_724";
26
- const xl = "_xl_8ms2i_734";
27
- const primary = "_primary_8ms2i_744";
28
- const secondary = "_secondary_8ms2i_748";
29
- const tertiary = "_tertiary_8ms2i_752";
30
- const quaternary = "_quaternary_8ms2i_756";
31
- const clear = "_clear_8ms2i_760";
32
- const success = "_success_8ms2i_764";
33
- const error = "_error_8ms2i_109";
34
- const warning = "_warning_8ms2i_774";
35
- const roundNone = "_roundNone_8ms2i_779";
36
- const roundSmall = "_roundSmall_8ms2i_783";
37
- const roundMedium = "_roundMedium_8ms2i_787";
38
- const roundLarge = "_roundLarge_8ms2i_791";
39
- const roundFull = "_roundFull_8ms2i_795";
40
- const shadowNone = "_shadowNone_8ms2i_799";
41
- const shadowLight = "_shadowLight_8ms2i_803";
42
- const shadowMedium = "_shadowMedium_8ms2i_807";
43
- const shadowStrong = "_shadowStrong_8ms2i_811";
44
- const shadowIntense = "_shadowIntense_8ms2i_815";
45
- const spin = "_spin_8ms2i_1";
46
- const pulse = "_pulse_8ms2i_1";
9
+ const noScroll = "_noScroll_1pv7s_108";
10
+ const errorMessage = "_errorMessage_1pv7s_109";
11
+ const loadingContainer = "_loadingContainer_1pv7s_110";
12
+ const hideScrollbar = "_hideScrollbar_1pv7s_102";
13
+ const sr_only = "_sr_only_1pv7s_111";
14
+ const tagInput = "_tagInput_1pv7s_540";
15
+ const tag = "_tag_1pv7s_540";
16
+ const suggestionItem = "_suggestionItem_1pv7s_568";
17
+ const inputWrapper = "_inputWrapper_1pv7s_572";
18
+ const tagContainer = "_tagContainer_1pv7s_581";
19
+ const removeButton = "_removeButton_1pv7s_604";
20
+ const tagLabel = "_tagLabel_1pv7s_647";
21
+ const suggestionList = "_suggestionList_1pv7s_651";
22
+ const xs = "_xs_1pv7s_694";
23
+ const small = "_small_1pv7s_704";
24
+ const medium = "_medium_1pv7s_714";
25
+ const large = "_large_1pv7s_724";
26
+ const xl = "_xl_1pv7s_734";
27
+ const primary = "_primary_1pv7s_744";
28
+ const secondary = "_secondary_1pv7s_748";
29
+ const tertiary = "_tertiary_1pv7s_752";
30
+ const quaternary = "_quaternary_1pv7s_756";
31
+ const clear = "_clear_1pv7s_760";
32
+ const success = "_success_1pv7s_764";
33
+ const error = "_error_1pv7s_109";
34
+ const warning = "_warning_1pv7s_774";
35
+ const roundNone = "_roundNone_1pv7s_779";
36
+ const roundSmall = "_roundSmall_1pv7s_783";
37
+ const roundMedium = "_roundMedium_1pv7s_787";
38
+ const roundLarge = "_roundLarge_1pv7s_791";
39
+ const roundFull = "_roundFull_1pv7s_795";
40
+ const shadowNone = "_shadowNone_1pv7s_799";
41
+ const shadowLight = "_shadowLight_1pv7s_803";
42
+ const shadowMedium = "_shadowMedium_1pv7s_807";
43
+ const shadowStrong = "_shadowStrong_1pv7s_811";
44
+ const shadowIntense = "_shadowIntense_1pv7s_815";
45
+ const spin = "_spin_1pv7s_1";
46
+ const pulse = "_pulse_1pv7s_1";
47
47
  const styles = {
48
48
  noScroll,
49
49
  errorMessage,
@@ -81,15 +81,15 @@ const styles = {
81
81
  shadowMedium,
82
82
  shadowStrong,
83
83
  shadowIntense,
84
- "fade-in": "_fade-in_8ms2i_1",
85
- "slide-up": "_slide-up_8ms2i_1",
86
- "spin-3d": "_spin-3d_8ms2i_1",
84
+ "fade-in": "_fade-in_1pv7s_1",
85
+ "slide-up": "_slide-up_1pv7s_1",
86
+ "spin-3d": "_spin-3d_1pv7s_1",
87
87
  spin,
88
88
  pulse,
89
- "fade-in-up": "_fade-in-up_8ms2i_1",
90
- "progress-grow": "_progress-grow_8ms2i_1",
91
- "indeterminate-move": "_indeterminate-move_8ms2i_1",
92
- "skeleton-loading": "_skeleton-loading_8ms2i_1"
89
+ "fade-in-up": "_fade-in-up_1pv7s_1",
90
+ "progress-grow": "_progress-grow_1pv7s_1",
91
+ "indeterminate-move": "_indeterminate-move_1pv7s_1",
92
+ "skeleton-loading": "_skeleton-loading_1pv7s_1"
93
93
  };
94
94
  const TagInputBase = ({
95
95
  tags = [],
@@ -360,4 +360,4 @@ TagInput.displayName = "TagInput";
360
360
  export {
361
361
  TagInput as T
362
362
  };
363
- //# sourceMappingURL=TagInput-DUWgLslk.js.map
363
+ //# sourceMappingURL=TagInput-CtYKwhEi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagInput-DUWgLslk.js","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/next/TagInput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport styles from \"./Taginput.module.scss\";\r\nimport { IconButton, TextInput } from \"@/index.next\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={styles}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\nTagInput.displayName = \"TagInput\";\r\nexport default TagInput;\r\n"],"names":["IconButton","TextInput","tag"],"mappings":"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"}
1
+ {"version":3,"file":"TagInput-CtYKwhEi.js","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/next/TagInput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport styles from \"./Taginput.module.scss\";\r\nimport { IconButton, TextInput } from \"@/index.next\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={styles}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\nTagInput.displayName = \"TagInput\";\r\nexport default TagInput;\r\n"],"names":["IconButton","TextInput","tag"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const TagInput = require("./TagInput-Dym0BPK1.cjs");
2
+ const TagInput = require("./TagInput-Bfjg9pZQ.cjs");
3
3
  module.exports = TagInput.TagInput;
4
4
  //# sourceMappingURL=TagInput.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { T } from "./TagInput-DUWgLslk.js";
1
+ import { T } from "./TagInput-CtYKwhEi.js";
2
2
  export {
3
3
  T as default
4
4
  };