boreal-ui 0.0.33 → 0.0.35

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 (319) hide show
  1. package/dist/core/{Card-BRExeyNd.js → Card-Bagax-bx.js} +2 -2
  2. package/dist/core/{Card-BRExeyNd.js.map → Card-Bagax-bx.js.map} +1 -1
  3. package/dist/core/{Card-jrGaJLdX.cjs → Card-DtHJdWNq.cjs} +2 -2
  4. package/dist/core/{Card-jrGaJLdX.cjs.map → Card-DtHJdWNq.cjs.map} +1 -1
  5. package/dist/core/Card.cjs.js +1 -1
  6. package/dist/core/Card.js +1 -1
  7. package/dist/core/{Chip-C6sk2qAd.cjs → Chip-C8spwPgH.cjs} +2 -2
  8. package/dist/core/{Chip-C6sk2qAd.cjs.map → Chip-C8spwPgH.cjs.map} +1 -1
  9. package/dist/core/{Chip-ByR2AKjl.js → Chip-DxwLK-G6.js} +2 -2
  10. package/dist/core/{Chip-ByR2AKjl.js.map → Chip-DxwLK-G6.js.map} +1 -1
  11. package/dist/core/Chip.cjs.js +1 -1
  12. package/dist/core/Chip.js +1 -1
  13. package/dist/core/{CommandPalette-KcMGDC0i.js → CommandPalette-Dmy5lWzv.js} +2 -2
  14. package/dist/core/{CommandPalette-KcMGDC0i.js.map → CommandPalette-Dmy5lWzv.js.map} +1 -1
  15. package/dist/core/{CommandPalette-IOV8q6GZ.cjs → CommandPalette-SxHF3-VM.cjs} +2 -2
  16. package/dist/core/{CommandPalette-IOV8q6GZ.cjs.map → CommandPalette-SxHF3-VM.cjs.map} +1 -1
  17. package/dist/core/CommandPalette.cjs.js +1 -1
  18. package/dist/core/CommandPalette.js +1 -1
  19. package/dist/core/{Dropdown-CJo6T9__.cjs → Dropdown-Dlo--tIl.cjs} +2 -2
  20. package/dist/core/{Dropdown-CJo6T9__.cjs.map → Dropdown-Dlo--tIl.cjs.map} +1 -1
  21. package/dist/core/{Dropdown-Dzjmt9gx.js → Dropdown-GA_yvFVS.js} +2 -2
  22. package/dist/core/{Dropdown-Dzjmt9gx.js.map → Dropdown-GA_yvFVS.js.map} +1 -1
  23. package/dist/core/Dropdown.cjs.js +1 -1
  24. package/dist/core/Dropdown.js +1 -1
  25. package/dist/core/{FileUpload-Bcu5v4TO.js → FileUpload-DJ1wI_Bm.js} +2 -2
  26. package/dist/core/{FileUpload-Bcu5v4TO.js.map → FileUpload-DJ1wI_Bm.js.map} +1 -1
  27. package/dist/core/{FileUpload-DrPV-Oiy.cjs → FileUpload-aqWEEHIW.cjs} +2 -2
  28. package/dist/core/{FileUpload-DrPV-Oiy.cjs.map → FileUpload-aqWEEHIW.cjs.map} +1 -1
  29. package/dist/core/FileUpload.cjs.js +1 -1
  30. package/dist/core/FileUpload.js +1 -1
  31. package/dist/core/{Footer-vLVfqKWf.js → Footer-9x3F5gZx.js} +2 -2
  32. package/dist/core/{Footer-vLVfqKWf.js.map → Footer-9x3F5gZx.js.map} +1 -1
  33. package/dist/core/{Footer-DrYZJObN.cjs → Footer-VpViLKN_.cjs} +2 -2
  34. package/dist/core/{Footer-DrYZJObN.cjs.map → Footer-VpViLKN_.cjs.map} +1 -1
  35. package/dist/core/Footer.cjs.js +1 -1
  36. package/dist/core/Footer.js +1 -1
  37. package/dist/core/{IconButton-D_W4nsPZ.cjs → IconButton-Bjjlbqiq.cjs} +4 -2
  38. package/dist/core/IconButton-Bjjlbqiq.cjs.map +1 -0
  39. package/dist/core/{IconButton-B9WWbeSM.js → IconButton-DgfUCfo9.js} +4 -2
  40. package/dist/core/IconButton-DgfUCfo9.js.map +1 -0
  41. package/dist/core/IconButton.cjs.js +1 -1
  42. package/dist/core/IconButton.js +1 -1
  43. package/dist/core/MessagePopUp.cjs.js +1 -1
  44. package/dist/core/MessagePopUp.js +1 -1
  45. package/dist/core/{MessagePopup-CIsMNnVM.cjs → MessagePopup-D2nlhTvG.cjs} +2 -2
  46. package/dist/core/{MessagePopup-CIsMNnVM.cjs.map → MessagePopup-D2nlhTvG.cjs.map} +1 -1
  47. package/dist/core/{MessagePopup-DiipcrNp.js → MessagePopup-eNK7XvUn.js} +2 -2
  48. package/dist/core/{MessagePopup-DiipcrNp.js.map → MessagePopup-eNK7XvUn.js.map} +1 -1
  49. package/dist/core/{Modal-BdxvP-Ei.cjs → Modal-B7IqleCB.cjs} +2 -2
  50. package/dist/core/{Modal-BdxvP-Ei.cjs.map → Modal-B7IqleCB.cjs.map} +1 -1
  51. package/dist/core/{Modal-Bi8OdWKS.js → Modal-Cy0AsPTV.js} +2 -2
  52. package/dist/core/{Modal-Bi8OdWKS.js.map → Modal-Cy0AsPTV.js.map} +1 -1
  53. package/dist/core/Modal.cjs.js +1 -1
  54. package/dist/core/Modal.js +1 -1
  55. package/dist/core/{NotificationCenter-BkoTAZCz.js → NotificationCenter-DgSWWT0G.js} +2 -2
  56. package/dist/core/{NotificationCenter-BkoTAZCz.js.map → NotificationCenter-DgSWWT0G.js.map} +1 -1
  57. package/dist/core/{NotificationCenter-DpdzdrPB.cjs → NotificationCenter-c99_Xq4J.cjs} +2 -2
  58. package/dist/core/{NotificationCenter-DpdzdrPB.cjs.map → NotificationCenter-c99_Xq4J.cjs.map} +1 -1
  59. package/dist/core/NotificationCenter.cjs.js +1 -1
  60. package/dist/core/NotificationCenter.js +1 -1
  61. package/dist/core/{Pager-CcIEdgIe.cjs → Pager-BWlXTFPR.cjs} +2 -2
  62. package/dist/core/{Pager-CcIEdgIe.cjs.map → Pager-BWlXTFPR.cjs.map} +1 -1
  63. package/dist/core/{Pager-De-awunI.js → Pager-Dr2H_Q5L.js} +2 -2
  64. package/dist/core/{Pager-De-awunI.js.map → Pager-Dr2H_Q5L.js.map} +1 -1
  65. package/dist/core/Pager.cjs.js +1 -1
  66. package/dist/core/Pager.js +1 -1
  67. package/dist/core/{Stepper-DNSzwiZR.js → Stepper-CxZGa2CS.js} +2 -2
  68. package/dist/core/{Stepper-DNSzwiZR.js.map → Stepper-CxZGa2CS.js.map} +1 -1
  69. package/dist/core/{Stepper-Cphvkx0O.cjs → Stepper-gvaKLuno.cjs} +2 -2
  70. package/dist/core/{Stepper-Cphvkx0O.cjs.map → Stepper-gvaKLuno.cjs.map} +1 -1
  71. package/dist/core/Stepper.cjs.js +1 -1
  72. package/dist/core/Stepper.js +1 -1
  73. package/dist/core/{Tabs-gpyaJFUs.js → Tabs-BaKDr0uF.js} +84 -36
  74. package/dist/core/Tabs-BaKDr0uF.js.map +1 -0
  75. package/dist/core/{Tabs-DptKFvPK.cjs → Tabs-C6lDM19i.cjs} +83 -35
  76. package/dist/core/Tabs-C6lDM19i.cjs.map +1 -0
  77. package/dist/core/Tabs.cjs.js +1 -1
  78. package/dist/core/Tabs.js +1 -1
  79. package/dist/core/TagInput.cjs.js +1 -1
  80. package/dist/core/TagInput.js +1 -1
  81. package/dist/core/Taginput-5LKYwPzy.js +311 -0
  82. package/dist/core/Taginput-5LKYwPzy.js.map +1 -0
  83. package/dist/core/Taginput-RYBBGWLK.cjs +310 -0
  84. package/dist/core/Taginput-RYBBGWLK.cjs.map +1 -0
  85. package/dist/core/{TextArea-Nj-eO3Pv.cjs → TextArea-BAFMXw6Y.cjs} +17 -6
  86. package/dist/core/TextArea-BAFMXw6Y.cjs.map +1 -0
  87. package/dist/core/{TextArea-DrU4oCj0.js → TextArea-C2S64tIN.js} +17 -6
  88. package/dist/core/TextArea-C2S64tIN.js.map +1 -0
  89. package/dist/core/TextArea.cjs.js +1 -1
  90. package/dist/core/TextArea.js +1 -1
  91. package/dist/core/{TextInput-B03e-LMT.cjs → TextInput-5Bpg7Tdt.cjs} +28 -11
  92. package/dist/core/TextInput-5Bpg7Tdt.cjs.map +1 -0
  93. package/dist/core/{TextInput-C8mNE1R4.js → TextInput-DQPZXEA2.js} +28 -11
  94. package/dist/core/TextInput-DQPZXEA2.js.map +1 -0
  95. package/dist/core/TextInput.cjs.js +1 -1
  96. package/dist/core/TextInput.js +1 -1
  97. package/dist/core/{Timeline-D7fd8-u_.js → Timeline-BfJd6flB.js} +22 -16
  98. package/dist/core/Timeline-BfJd6flB.js.map +1 -0
  99. package/dist/core/{Timeline-Dk0q-8BZ.cjs → Timeline-Bmnr7xnx.cjs} +22 -16
  100. package/dist/core/Timeline-Bmnr7xnx.cjs.map +1 -0
  101. package/dist/core/Timeline.cjs.js +1 -1
  102. package/dist/core/Timeline.js +1 -1
  103. package/dist/core/{Toggle-v31rt4Ya.cjs → Toggle-Dor7IEx3.cjs} +36 -15
  104. package/dist/core/Toggle-Dor7IEx3.cjs.map +1 -0
  105. package/dist/core/{Toggle-CZftIdc3.js → Toggle-sPyKNt4P.js} +38 -17
  106. package/dist/core/Toggle-sPyKNt4P.js.map +1 -0
  107. package/dist/core/Toggle.cjs.js +1 -1
  108. package/dist/core/Toggle.js +1 -1
  109. package/dist/core/{Toolbar-Tf01bUjT.js → Toolbar-CSDhcIPb.js} +15 -11
  110. package/dist/core/Toolbar-CSDhcIPb.js.map +1 -0
  111. package/dist/core/{Toolbar-zZrwUT66.cjs → Toolbar-xot4FSLU.cjs} +15 -11
  112. package/dist/core/Toolbar-xot4FSLU.cjs.map +1 -0
  113. package/dist/core/Toolbar.cjs.js +1 -1
  114. package/dist/core/Toolbar.js +1 -1
  115. package/dist/core/Tooltip-BzmV7ztl.cjs +120 -0
  116. package/dist/core/Tooltip-BzmV7ztl.cjs.map +1 -0
  117. package/dist/core/Tooltip-iUp73wB4.js +121 -0
  118. package/dist/core/Tooltip-iUp73wB4.js.map +1 -0
  119. package/dist/core/Tooltip.cjs.js +1 -1
  120. package/dist/core/Tooltip.js +1 -1
  121. package/dist/core/index.cjs.js +20 -20
  122. package/dist/core/index.js +20 -20
  123. package/dist/core/style.css +21 -11
  124. package/dist/next/{Card-BQTJkNCL.cjs → Card-CAH-CrbH.cjs} +2 -2
  125. package/dist/next/{Card-BQTJkNCL.cjs.map → Card-CAH-CrbH.cjs.map} +1 -1
  126. package/dist/next/{Card-B9EjkoVy.js → Card-KFr31XTs.js} +2 -2
  127. package/dist/next/{Card-B9EjkoVy.js.map → Card-KFr31XTs.js.map} +1 -1
  128. package/dist/next/Card.cjs.js +1 -1
  129. package/dist/next/Card.js +1 -1
  130. package/dist/next/CheckBox.cjs.js +1 -1
  131. package/dist/next/CheckBox.js +1 -1
  132. package/dist/next/{Checkbox-BMaEzceF.js → Checkbox-CU-XrZC7.js} +44 -44
  133. package/dist/next/{Checkbox-BMaEzceF.js.map → Checkbox-CU-XrZC7.js.map} +1 -1
  134. package/dist/next/{Checkbox-NAEbjhCf.cjs → Checkbox-DXRmAtTt.cjs} +44 -44
  135. package/dist/next/{Checkbox-NAEbjhCf.cjs.map → Checkbox-DXRmAtTt.cjs.map} +1 -1
  136. package/dist/next/{Chip-CfJ473TI.cjs → Chip-C7w9CTed.cjs} +2 -2
  137. package/dist/next/{Chip-CfJ473TI.cjs.map → Chip-C7w9CTed.cjs.map} +1 -1
  138. package/dist/next/{Chip-CekCQRke.js → Chip-Qa_1km99.js} +2 -2
  139. package/dist/next/{Chip-CekCQRke.js.map → Chip-Qa_1km99.js.map} +1 -1
  140. package/dist/next/Chip.cjs.js +1 -1
  141. package/dist/next/Chip.js +1 -1
  142. package/dist/next/{CommandPalette-BEDyY7vY.js → CommandPalette-D6ZeGNWl.js} +2 -2
  143. package/dist/next/{CommandPalette-BEDyY7vY.js.map → CommandPalette-D6ZeGNWl.js.map} +1 -1
  144. package/dist/next/{CommandPalette-DhyChRCJ.cjs → CommandPalette-DHTJFymB.cjs} +2 -2
  145. package/dist/next/{CommandPalette-DhyChRCJ.cjs.map → CommandPalette-DHTJFymB.cjs.map} +1 -1
  146. package/dist/next/CommandPalette.cjs.js +1 -1
  147. package/dist/next/CommandPalette.js +1 -1
  148. package/dist/next/{Dropdown-qvuelg8z.cjs → Dropdown-BbdsK4H6.cjs} +2 -2
  149. package/dist/next/{Dropdown-qvuelg8z.cjs.map → Dropdown-BbdsK4H6.cjs.map} +1 -1
  150. package/dist/next/{Dropdown-DqYjIelJ.js → Dropdown-BvUfz8G7.js} +2 -2
  151. package/dist/next/{Dropdown-DqYjIelJ.js.map → Dropdown-BvUfz8G7.js.map} +1 -1
  152. package/dist/next/Dropdown.cjs.js +1 -1
  153. package/dist/next/Dropdown.js +1 -1
  154. package/dist/next/{FileUpload-BSqFdKZD.js → FileUpload-BxmKK5BE.js} +2 -2
  155. package/dist/next/{FileUpload-BSqFdKZD.js.map → FileUpload-BxmKK5BE.js.map} +1 -1
  156. package/dist/next/{FileUpload-DpxmgS-B.cjs → FileUpload-C95H9D4N.cjs} +2 -2
  157. package/dist/next/{FileUpload-DpxmgS-B.cjs.map → FileUpload-C95H9D4N.cjs.map} +1 -1
  158. package/dist/next/FileUpload.cjs.js +1 -1
  159. package/dist/next/FileUpload.js +1 -1
  160. package/dist/next/{Footer-CukKL1zM.cjs → Footer-C98DQNB3.cjs} +2 -2
  161. package/dist/next/{Footer-CukKL1zM.cjs.map → Footer-C98DQNB3.cjs.map} +1 -1
  162. package/dist/next/{Footer-CD8eu471.js → Footer-DhBE3lNY.js} +2 -2
  163. package/dist/next/{Footer-CD8eu471.js.map → Footer-DhBE3lNY.js.map} +1 -1
  164. package/dist/next/Footer.cjs.js +1 -1
  165. package/dist/next/Footer.js +1 -1
  166. package/dist/next/{IconButton-B1r838wY.js → IconButton-B_j-S10f.js} +4 -2
  167. package/dist/next/IconButton-B_j-S10f.js.map +1 -0
  168. package/dist/next/{IconButton--X_Bqn4g.cjs → IconButton-C3WpabtT.cjs} +4 -2
  169. package/dist/next/IconButton-C3WpabtT.cjs.map +1 -0
  170. package/dist/next/IconButton.cjs.js +1 -1
  171. package/dist/next/IconButton.js +1 -1
  172. package/dist/next/MessagePopUp.cjs.js +1 -1
  173. package/dist/next/MessagePopUp.js +1 -1
  174. package/dist/next/{MessagePopup-Bjgods-d.js → MessagePopup-BFKRiymY.js} +2 -2
  175. package/dist/next/{MessagePopup-Bjgods-d.js.map → MessagePopup-BFKRiymY.js.map} +1 -1
  176. package/dist/next/{MessagePopup-BL7842Cu.cjs → MessagePopup-CcM5nRAG.cjs} +2 -2
  177. package/dist/next/{MessagePopup-BL7842Cu.cjs.map → MessagePopup-CcM5nRAG.cjs.map} +1 -1
  178. package/dist/next/{Modal-BddVxoXY.js → Modal-DIZf7sgL.js} +2 -2
  179. package/dist/next/{Modal-BddVxoXY.js.map → Modal-DIZf7sgL.js.map} +1 -1
  180. package/dist/next/{Modal-Bauehvf1.cjs → Modal-hk84_P6s.cjs} +2 -2
  181. package/dist/next/{Modal-Bauehvf1.cjs.map → Modal-hk84_P6s.cjs.map} +1 -1
  182. package/dist/next/Modal.cjs.js +1 -1
  183. package/dist/next/Modal.js +1 -1
  184. package/dist/next/{NotificationCenter-dkrHsIKr.cjs → NotificationCenter-CLMiEWUG.cjs} +2 -2
  185. package/dist/next/{NotificationCenter-dkrHsIKr.cjs.map → NotificationCenter-CLMiEWUG.cjs.map} +1 -1
  186. package/dist/next/{NotificationCenter-DlbqVzzr.js → NotificationCenter-D3Eucn9z.js} +2 -2
  187. package/dist/next/{NotificationCenter-DlbqVzzr.js.map → NotificationCenter-D3Eucn9z.js.map} +1 -1
  188. package/dist/next/NotificationCenter.cjs.js +1 -1
  189. package/dist/next/NotificationCenter.js +1 -1
  190. package/dist/next/{Pager-jPCTdMIg.cjs → Pager-BpTg_723.cjs} +2 -2
  191. package/dist/next/{Pager-jPCTdMIg.cjs.map → Pager-BpTg_723.cjs.map} +1 -1
  192. package/dist/next/{Pager-CGqvekhJ.js → Pager-nKqhRoht.js} +2 -2
  193. package/dist/next/{Pager-CGqvekhJ.js.map → Pager-nKqhRoht.js.map} +1 -1
  194. package/dist/next/Pager.cjs.js +1 -1
  195. package/dist/next/Pager.js +1 -1
  196. package/dist/next/{Stepper-kC6EOZ_b.cjs → Stepper-CWXKcAae.cjs} +2 -2
  197. package/dist/next/{Stepper-kC6EOZ_b.cjs.map → Stepper-CWXKcAae.cjs.map} +1 -1
  198. package/dist/next/{Stepper-BzItximd.js → Stepper-b-0SYFcE.js} +2 -2
  199. package/dist/next/{Stepper-BzItximd.js.map → Stepper-b-0SYFcE.js.map} +1 -1
  200. package/dist/next/Stepper.cjs.js +1 -1
  201. package/dist/next/Stepper.js +1 -1
  202. package/dist/next/{Tabs-CuF_JTan.js → Tabs-B94nrX75.js} +84 -36
  203. package/dist/next/Tabs-B94nrX75.js.map +1 -0
  204. package/dist/next/{Tabs-DhQgzZKQ.cjs → Tabs-Dom5sh_U.cjs} +83 -35
  205. package/dist/next/Tabs-Dom5sh_U.cjs.map +1 -0
  206. package/dist/next/Tabs.cjs.js +1 -1
  207. package/dist/next/Tabs.js +1 -1
  208. package/dist/next/{TagInput-DuvUD94J.cjs → TagInput-B6PAcCaw.cjs} +152 -87
  209. package/dist/next/TagInput-B6PAcCaw.cjs.map +1 -0
  210. package/dist/next/{TagInput-CJ2XdMU0.js → TagInput-C8hyzJ7f.js} +153 -88
  211. package/dist/next/TagInput-C8hyzJ7f.js.map +1 -0
  212. package/dist/next/TagInput.cjs.js +1 -1
  213. package/dist/next/TagInput.js +1 -1
  214. package/dist/next/{TextArea-Bmkg-d0v.js → TextArea-C9VGM6pu.js} +17 -6
  215. package/dist/next/TextArea-C9VGM6pu.js.map +1 -0
  216. package/dist/next/{TextArea-OpFozktU.cjs → TextArea-Cn2q5KhJ.cjs} +17 -6
  217. package/dist/next/TextArea-Cn2q5KhJ.cjs.map +1 -0
  218. package/dist/next/TextArea.cjs.js +1 -1
  219. package/dist/next/TextArea.js +1 -1
  220. package/dist/next/{TextInput-CpbTf99E.cjs → TextInput-CUBY6wCB.cjs} +66 -49
  221. package/dist/next/TextInput-CUBY6wCB.cjs.map +1 -0
  222. package/dist/next/{TextInput-G1Pvtebv.js → TextInput-Zywm-WEW.js} +66 -49
  223. package/dist/next/TextInput-Zywm-WEW.js.map +1 -0
  224. package/dist/next/TextInput.cjs.js +1 -1
  225. package/dist/next/TextInput.js +1 -1
  226. package/dist/next/{Timeline-jmKmKwxD.cjs → Timeline-BWx1ROuN.cjs} +22 -16
  227. package/dist/next/Timeline-BWx1ROuN.cjs.map +1 -0
  228. package/dist/next/{Timeline-WHRPqD31.js → Timeline-CQxYIXCz.js} +22 -16
  229. package/dist/next/Timeline-CQxYIXCz.js.map +1 -0
  230. package/dist/next/Timeline.cjs.js +1 -1
  231. package/dist/next/Timeline.js +1 -1
  232. package/dist/next/{Toggle-D1vM9KrI.js → Toggle-Br6GTHrq.js} +38 -17
  233. package/dist/next/Toggle-Br6GTHrq.js.map +1 -0
  234. package/dist/next/{Toggle-ei8CN3th.cjs → Toggle-Cs4ail9L.cjs} +36 -15
  235. package/dist/next/Toggle-Cs4ail9L.cjs.map +1 -0
  236. package/dist/next/Toggle.cjs.js +1 -1
  237. package/dist/next/Toggle.js +1 -1
  238. package/dist/next/{Toolbar-Dv6focMM.cjs → Toolbar-CyjJbHtq.cjs} +15 -11
  239. package/dist/next/Toolbar-CyjJbHtq.cjs.map +1 -0
  240. package/dist/next/{Toolbar-Dw__aR2C.js → Toolbar-DgiSHpuZ.js} +15 -11
  241. package/dist/next/Toolbar-DgiSHpuZ.js.map +1 -0
  242. package/dist/next/Toolbar.cjs.js +1 -1
  243. package/dist/next/Toolbar.js +1 -1
  244. package/dist/next/Tooltip-1m3gCuRE.cjs +165 -0
  245. package/dist/next/Tooltip-1m3gCuRE.cjs.map +1 -0
  246. package/dist/next/Tooltip-D5_lSH1z.js +166 -0
  247. package/dist/next/Tooltip-D5_lSH1z.js.map +1 -0
  248. package/dist/next/Tooltip.cjs.js +1 -1
  249. package/dist/next/Tooltip.js +1 -1
  250. package/dist/next/index.cjs.js +21 -21
  251. package/dist/next/index.js +21 -21
  252. package/dist/next/style.css +160 -149
  253. package/dist/tsconfig.build.tsbuildinfo +1 -1
  254. package/dist/types/components/IconButton/IconButton.types.d.ts +2 -0
  255. package/dist/types/components/IconButton/IconButton.types.d.ts.map +1 -1
  256. package/dist/types/components/IconButton/IconButtonBase.d.ts.map +1 -1
  257. package/dist/types/components/Tabs/Tabs.types.d.ts +5 -0
  258. package/dist/types/components/Tabs/Tabs.types.d.ts.map +1 -1
  259. package/dist/types/components/Tabs/TabsBase.d.ts +2 -4
  260. package/dist/types/components/Tabs/TabsBase.d.ts.map +1 -1
  261. package/dist/types/components/TagInput/TagInputBase.d.ts +2 -6
  262. package/dist/types/components/TagInput/TagInputBase.d.ts.map +1 -1
  263. package/dist/types/components/TagInput/Taginput.types.d.ts +5 -0
  264. package/dist/types/components/TagInput/Taginput.types.d.ts.map +1 -1
  265. package/dist/types/components/TagInput/core/Taginput.d.ts.map +1 -1
  266. package/dist/types/components/TextArea/TextAreaBase.d.ts.map +1 -1
  267. package/dist/types/components/TextInput/TextInputBase.d.ts.map +1 -1
  268. package/dist/types/components/Timeline/TimelineBase.d.ts.map +1 -1
  269. package/dist/types/components/Toggle/Toggle.types.d.ts +3 -0
  270. package/dist/types/components/Toggle/Toggle.types.d.ts.map +1 -1
  271. package/dist/types/components/Toggle/ToggleBase.d.ts +1 -4
  272. package/dist/types/components/Toggle/ToggleBase.d.ts.map +1 -1
  273. package/dist/types/components/Toolbar/ToolbarBase.d.ts +2 -1
  274. package/dist/types/components/Toolbar/ToolbarBase.d.ts.map +1 -1
  275. package/dist/types/components/Tooltip/TooltipBase.d.ts +4 -2
  276. package/dist/types/components/Tooltip/TooltipBase.d.ts.map +1 -1
  277. package/package.json +1 -1
  278. package/dist/core/IconButton-B9WWbeSM.js.map +0 -1
  279. package/dist/core/IconButton-D_W4nsPZ.cjs.map +0 -1
  280. package/dist/core/Tabs-DptKFvPK.cjs.map +0 -1
  281. package/dist/core/Tabs-gpyaJFUs.js.map +0 -1
  282. package/dist/core/Taginput-BNZg4SGI.cjs +0 -244
  283. package/dist/core/Taginput-BNZg4SGI.cjs.map +0 -1
  284. package/dist/core/Taginput-D0wKEzGh.js +0 -245
  285. package/dist/core/Taginput-D0wKEzGh.js.map +0 -1
  286. package/dist/core/TextArea-DrU4oCj0.js.map +0 -1
  287. package/dist/core/TextArea-Nj-eO3Pv.cjs.map +0 -1
  288. package/dist/core/TextInput-B03e-LMT.cjs.map +0 -1
  289. package/dist/core/TextInput-C8mNE1R4.js.map +0 -1
  290. package/dist/core/Timeline-D7fd8-u_.js.map +0 -1
  291. package/dist/core/Timeline-Dk0q-8BZ.cjs.map +0 -1
  292. package/dist/core/Toggle-CZftIdc3.js.map +0 -1
  293. package/dist/core/Toggle-v31rt4Ya.cjs.map +0 -1
  294. package/dist/core/Toolbar-Tf01bUjT.js.map +0 -1
  295. package/dist/core/Toolbar-zZrwUT66.cjs.map +0 -1
  296. package/dist/core/Tooltip-5SfsTZvz.cjs +0 -105
  297. package/dist/core/Tooltip-5SfsTZvz.cjs.map +0 -1
  298. package/dist/core/Tooltip-XfsZnGgV.js +0 -106
  299. package/dist/core/Tooltip-XfsZnGgV.js.map +0 -1
  300. package/dist/next/IconButton--X_Bqn4g.cjs.map +0 -1
  301. package/dist/next/IconButton-B1r838wY.js.map +0 -1
  302. package/dist/next/Tabs-CuF_JTan.js.map +0 -1
  303. package/dist/next/Tabs-DhQgzZKQ.cjs.map +0 -1
  304. package/dist/next/TagInput-CJ2XdMU0.js.map +0 -1
  305. package/dist/next/TagInput-DuvUD94J.cjs.map +0 -1
  306. package/dist/next/TextArea-Bmkg-d0v.js.map +0 -1
  307. package/dist/next/TextArea-OpFozktU.cjs.map +0 -1
  308. package/dist/next/TextInput-CpbTf99E.cjs.map +0 -1
  309. package/dist/next/TextInput-G1Pvtebv.js.map +0 -1
  310. package/dist/next/Timeline-WHRPqD31.js.map +0 -1
  311. package/dist/next/Timeline-jmKmKwxD.cjs.map +0 -1
  312. package/dist/next/Toggle-D1vM9KrI.js.map +0 -1
  313. package/dist/next/Toggle-ei8CN3th.cjs.map +0 -1
  314. package/dist/next/Toolbar-Dv6focMM.cjs.map +0 -1
  315. package/dist/next/Toolbar-Dw__aR2C.js.map +0 -1
  316. package/dist/next/Tooltip-CnwS0tgW.cjs +0 -150
  317. package/dist/next/Tooltip-CnwS0tgW.cjs.map +0 -1
  318. package/dist/next/Tooltip-DhRckexD.js +0 -151
  319. package/dist/next/Tooltip-DhRckexD.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox-NAEbjhCf.cjs","sources":["../../src/components/Checkbox/CheckboxBase.tsx","../../src/components/Checkbox/next/Checkbox.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useId,\r\n useRef,\r\n useEffect,\r\n useImperativeHandle,\r\n useMemo,\r\n} from \"react\";\r\nimport type { CheckboxBaseProps } from \"./Checkbox.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 CheckboxBase = forwardRef<HTMLInputElement, CheckboxBaseProps>(\r\n (\r\n {\r\n checked,\r\n onChange,\r\n indeterminate = false,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n disabled = false,\r\n label = \"\",\r\n labelPosition = \"right\",\r\n className = \"\",\r\n id,\r\n \"data-testid\": testId = \"checkbox\",\r\n classMap,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const internalId = useId();\r\n const checkboxId = id || internalId;\r\n const labelId = label ? `${checkboxId}-label` : undefined;\r\n\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\r\n\r\n useEffect(() => {\r\n if (inputRef.current) {\r\n inputRef.current.indeterminate = indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.checkbox,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[labelPosition],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n labelPosition,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n className,\r\n ]\r\n );\r\n\r\n return (\r\n <label\r\n htmlFor={checkboxId}\r\n className={combinedClassName}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n {label && labelPosition === \"left\" && (\r\n <span\r\n className={classMap.label}\r\n id={labelId}\r\n data-testid={testId ? `${testId}-label` : undefined}\r\n >\r\n {label}\r\n </span>\r\n )}\r\n\r\n <input\r\n id={checkboxId}\r\n ref={inputRef}\r\n type=\"checkbox\"\r\n className={classMap.input}\r\n checked={checked}\r\n onChange={(e) => onChange(e.target.checked)}\r\n disabled={disabled}\r\n aria-labelledby={labelId}\r\n aria-checked={indeterminate ? \"mixed\" : undefined}\r\n {...props}\r\n />\r\n\r\n <span\r\n className={combineClassNames(\r\n classMap.box,\r\n indeterminate && classMap.indeterminate\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-box` : undefined}\r\n />\r\n\r\n {label && labelPosition === \"right\" && (\r\n <span\r\n className={classMap.label}\r\n id={labelId}\r\n data-testid={testId ? `${testId}-label` : undefined}\r\n >\r\n {label}\r\n </span>\r\n )}\r\n </label>\r\n );\r\n }\r\n);\r\n\r\nCheckboxBase.displayName = \"CheckboxBase\";\r\nexport default CheckboxBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CheckboxBase from \"../CheckboxBase\";\r\nimport styles from \"./CheckBox.module.scss\";\r\nimport { CheckBoxProps } from \"../Checkbox.types\";\r\n\r\nconst Checkbox: React.FC<CheckBoxProps> = (props) => {\r\n return <CheckboxBase {...props} classMap={styles} />;\r\n};\r\n\r\nexport default Checkbox;\r\n"],"names":["forwardRef","indeterminate","getDefaultTheme","getDefaultRounding","getDefaultSize","getDefaultShadow","disabled","label","useId","useRef","useImperativeHandle","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;AAkBA,MAAM,eAAeA,MAAAA;AAAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,eAAAC,iBAAgB;AAAA,IAChB,QAAQC,kBAAAA,gBAAA;AAAA,IACR,WAAWC,kBAAAA,mBAAA;AAAA,IACX,OAAOC,kBAAAA,eAAA;AAAA,IACP,SAASC,kBAAAA,iBAAA;AAAA,IACT,QAAQ;AAAA,IACR,UAAAC,YAAW;AAAA,IACX,OAAAC,SAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ;AAAA,IACA,eAAe,SAAS;AAAA,IACxB;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AACH,UAAM,aAAaC,MAAAA,MAAA;AACnB,UAAM,aAAa,MAAM;AACzB,UAAM,UAAUD,SAAQ,GAAG,UAAU,WAAW;AAEhD,UAAM,WAAWE,MAAAA,OAAyB,IAAI;AAC9CC,UAAAA,oBAAoB,KAAK,MAAM,SAAS,OAA2B;AAEnEC,UAAAA,UAAU,MAAM;AACd,UAAI,SAAS,SAAS;AACpB,iBAAS,QAAQ,gBAAgBV;AAAA,MACnC;AAAA,IACF,GAAG,CAACA,cAAa,CAAC;AAElB,UAAM,oBAAoBW,MAAAA;AAAAA,MACxB,MACEC,WAAAA;AAAAA,QACE,SAAS;AAAA,QACT,SAAS,KAAK;AAAA,QACd,SAAS,KAAK;AAAA,QACd,SAAS,aAAa;AAAA,QACtB,SAAS,IAAI;AAAA,QACb,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,QAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,QACnDR,aAAY,SAAS;AAAA,QACrB;AAAA,MAAA;AAAA,MAEJ;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAGF,WACES,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,QACX,eAAa,SAAS,GAAG,MAAM,aAAa;AAAA,QAE3C,UAAA;AAAA,UAAAR,UAAS,kBAAkB,UAC1BS,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,IAAI;AAAA,cACJ,eAAa,SAAS,GAAG,MAAM,WAAW;AAAA,cAEzC,UAAAT;AAAA,YAAA;AAAA,UAAA;AAAA,UAILS,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,KAAK;AAAA,cACL,MAAK;AAAA,cACL,WAAW,SAAS;AAAA,cACpB;AAAA,cACA,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,OAAO;AAAA,cAC1C,UAAAV;AAAA,cACA,mBAAiB;AAAA,cACjB,gBAAcL,iBAAgB,UAAU;AAAA,cACvC,GAAG;AAAA,YAAA;AAAA,UAAA;AAAA,UAGNe,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWH,WAAAA;AAAAA,gBACT,SAAS;AAAA,gBACTZ,kBAAiB,SAAS;AAAA,cAAA;AAAA,cAE5B,eAAY;AAAA,cACZ,eAAa,SAAS,GAAG,MAAM,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,UAGzCM,UAAS,kBAAkB,WAC1BS,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,IAAI;AAAA,cACJ,eAAa,SAAS,GAAG,MAAM,WAAW;AAAA,cAEzC,UAAAT;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEA,aAAa,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5H3B,MAAM,WAAoC,CAAC,UAAU;AACnD,SAAOS,2BAAAA,IAAC,cAAA,EAAc,GAAG,OAAO,UAAU,QAAQ;AACpD;;"}
1
+ {"version":3,"file":"Checkbox-DXRmAtTt.cjs","sources":["../../src/components/Checkbox/CheckboxBase.tsx","../../src/components/Checkbox/next/Checkbox.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useId,\r\n useRef,\r\n useEffect,\r\n useImperativeHandle,\r\n useMemo,\r\n} from \"react\";\r\nimport type { CheckboxBaseProps } from \"./Checkbox.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 CheckboxBase = forwardRef<HTMLInputElement, CheckboxBaseProps>(\r\n (\r\n {\r\n checked,\r\n onChange,\r\n indeterminate = false,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n disabled = false,\r\n label = \"\",\r\n labelPosition = \"right\",\r\n className = \"\",\r\n id,\r\n \"data-testid\": testId = \"checkbox\",\r\n classMap,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const internalId = useId();\r\n const checkboxId = id || internalId;\r\n const labelId = label ? `${checkboxId}-label` : undefined;\r\n\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\r\n\r\n useEffect(() => {\r\n if (inputRef.current) {\r\n inputRef.current.indeterminate = indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.checkbox,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[labelPosition],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n labelPosition,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n className,\r\n ]\r\n );\r\n\r\n return (\r\n <label\r\n htmlFor={checkboxId}\r\n className={combinedClassName}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n {label && labelPosition === \"left\" && (\r\n <span\r\n className={classMap.label}\r\n id={labelId}\r\n data-testid={testId ? `${testId}-label` : undefined}\r\n >\r\n {label}\r\n </span>\r\n )}\r\n\r\n <input\r\n id={checkboxId}\r\n ref={inputRef}\r\n type=\"checkbox\"\r\n className={classMap.input}\r\n checked={checked}\r\n onChange={(e) => onChange(e.target.checked)}\r\n disabled={disabled}\r\n aria-labelledby={labelId}\r\n aria-checked={indeterminate ? \"mixed\" : undefined}\r\n {...props}\r\n />\r\n\r\n <span\r\n className={combineClassNames(\r\n classMap.box,\r\n indeterminate && classMap.indeterminate\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-box` : undefined}\r\n />\r\n\r\n {label && labelPosition === \"right\" && (\r\n <span\r\n className={classMap.label}\r\n id={labelId}\r\n data-testid={testId ? `${testId}-label` : undefined}\r\n >\r\n {label}\r\n </span>\r\n )}\r\n </label>\r\n );\r\n }\r\n);\r\n\r\nCheckboxBase.displayName = \"CheckboxBase\";\r\nexport default CheckboxBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CheckboxBase from \"../CheckboxBase\";\r\nimport styles from \"./CheckBox.module.scss\";\r\nimport { CheckBoxProps } from \"../Checkbox.types\";\r\n\r\nconst Checkbox: React.FC<CheckBoxProps> = (props) => {\r\n return <CheckboxBase {...props} classMap={styles} />;\r\n};\r\n\r\nexport default Checkbox;\r\n"],"names":["forwardRef","indeterminate","getDefaultTheme","getDefaultRounding","getDefaultSize","getDefaultShadow","disabled","label","useId","useRef","useImperativeHandle","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":"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"}
@@ -6,7 +6,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
6
6
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
7
7
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
8
8
  const CloseIcon = require("./CloseIcon-7hy4qJ9o.cjs");
9
- const IconButton = require("./IconButton--X_Bqn4g.cjs");
9
+ const IconButton = require("./IconButton-C3WpabtT.cjs");
10
10
  const ChipBase = ({
11
11
  id,
12
12
  message: message2,
@@ -212,4 +212,4 @@ const Chip = (props) => /* @__PURE__ */ require$$2.jsx(
212
212
  }
213
213
  );
214
214
  exports.Chip = Chip;
215
- //# sourceMappingURL=Chip-CfJ473TI.cjs.map
215
+ //# sourceMappingURL=Chip-C7w9CTed.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip-CfJ473TI.cjs","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/next/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState, KeyboardEvent } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.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 ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const isAssertive = state === \"error\" || state === \"warning\";\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Chip.module.scss\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={styles}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\n\r\nexport default Chip;\r\n"],"names":["message","getDefaultSize","getDefaultTheme","getDefaultRounding","getDefaultShadow","CloseIcon","useState","useCallback","useEffect","combineClassNames","capitalize","jsxs","jsx","createPortal","IconButton"],"mappings":";;;;;;;;;AAYA,MAAM,WAAoC,CAAC;AAAA,EACzC;AAAA,EACA,SAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,OAAOC,kBAAAA,eAAA;AAAA,EACP,QAAQC,kBAAAA,gBAAA;AAAA,EACR,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAWC;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,CAAC,SAAS,UAAU,IAAIC,MAAAA,SAAS,KAAK;AAE5C,QAAM,cAAcC,MAAAA,YAAY,MAAM;AACpC,eAAW,IAAI;AACf,eAAW,MAAM,sCAAa,GAAG;AAAA,EACnC,GAAG,CAAC,OAAO,CAAC;AAEZC,QAAAA,UAAU,MAAM;AACd,QAAI,aAAa,SAAS;AACxB,YAAM,QAAQ,WAAW,MAAM,YAAA,GAAe,QAAQ;AACtD,aAAO,MAAM,aAAa,KAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,WAAW,UAAU,SAAS,WAAW,CAAC;AAE9CA,QAAAA,UAAU,MAAM;AACd,QAAI,oBAAoB,KAAK;AAAA,EAC/B,GAAG,CAAC,OAAO,CAAC;AAEZA,QAAAA,UAAU,MAAM;AACd,QAAI,CAAC,QAAS;AACd,UAAM,QAAQ,CAAC,MAAgC;AAC7C,UAAI,EAAE,QAAQ,SAAU,aAAA;AAAA,IAC1B;AACA,WAAO,iBAAiB,WAAW,KAAK;AACxC,WAAO,MAAM,OAAO,oBAAoB,WAAW,KAAK;AAAA,EAC1D,GAAG,CAAC,SAAS,WAAW,CAAC;AAEzB,MAAI,CAAC,WAAW,CAAC,QAAS,QAAO;AAEjC,QAAM,gBAAgBC,WAAAA;AAAAA,IACpB,SAAS;AAAA,IACT,SAAS,KAAK;AAAA,IACd,SAAS,KAAK;AAAA,IACd,SAAS,IAAI;AAAA,IACb,SAAS,QAAQ;AAAA,IACjB,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,IAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,IACnD,WAAW,SAAS;AAAA,IACpB,aAAa,SAAS;AAAA,IACtB;AAAA,EAAA;AAKF,QAAM,WACJ,OAAO,WAAW,cACd,SAAS,eAAe,eAAe,IACvC;AAEN,QAAM,cACJC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,eAAa;AAAA,MACb,OAAO,cAAc,OAAO,EAAE,QAAQ,eAAe;AAAA,MAEpD,UAAA;AAAA,QAAA,QACCC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,eAAY;AAAA,YACZ,eAAa,GAAG,MAAM;AAAA,YAEtB,UAAAA,2BAAAA,IAAC,MAAA,EAAK,WAAW,SAAS,WAAA,CAAY;AAAA,UAAA;AAAA,QAAA;AAAA,QAG1CA,2BAAAA,IAAC,UAAK,WAAW,SAAS,SAAS,IAAI,GAAG,MAAM,YAC7C,UAAAZ,SAAA,CACH;AAAA,QAEAY,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAMP;AAAA,YACN;AAAA,YACA,OAAM;AAAA,YACN,WAAU;AAAA,YACV,iBAAe,GAAG,MAAM;AAAA,YACxB,WAAW,SAAS;AAAA,YACpB,SAAS;AAAA,YACT,QAAO;AAAA,YACP,eAAa,GAAG,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MACxB;AAAA,IAAA;AAAA,IA/BK;AAAA,EAAA;AAmCT,MAAI,aAAa,UAAU;AACzB,WAAOQ,SAAAA,aAAa,aAAa,QAAQ;AAAA,EAC3C;AAEA,SAAO;AACT;AAEA,SAAS,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtHvB,MAAM,OAA4B,CAAC,UACjCD,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,UAAU;AAAA,IACV,qBAAqBE,WAAAA;AAAAA,IACrB,WAAWT,UAAAA;AAAAA,EAAA;AACb;;"}
1
+ {"version":3,"file":"Chip-C7w9CTed.cjs","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/next/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState, KeyboardEvent } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.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 ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const isAssertive = state === \"error\" || state === \"warning\";\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Chip.module.scss\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={styles}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\n\r\nexport default Chip;\r\n"],"names":["message","getDefaultSize","getDefaultTheme","getDefaultRounding","getDefaultShadow","CloseIcon","useState","useCallback","useEffect","combineClassNames","capitalize","jsxs","jsx","createPortal","IconButton"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
5
5
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
6
6
  import { a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
7
7
  import { C as CloseIcon } from "./CloseIcon-C3eQm4EK.js";
8
- import { I as IconButton } from "./IconButton-B1r838wY.js";
8
+ import { I as IconButton } from "./IconButton-B_j-S10f.js";
9
9
  const ChipBase = ({
10
10
  id,
11
11
  message: message2,
@@ -213,4 +213,4 @@ const Chip = (props) => /* @__PURE__ */ jsx(
213
213
  export {
214
214
  Chip as C
215
215
  };
216
- //# sourceMappingURL=Chip-CekCQRke.js.map
216
+ //# sourceMappingURL=Chip-Qa_1km99.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip-CekCQRke.js","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/next/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState, KeyboardEvent } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.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 ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const isAssertive = state === \"error\" || state === \"warning\";\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Chip.module.scss\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={styles}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\n\r\nexport default Chip;\r\n"],"names":["message","CloseIcon"],"mappings":"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"}
1
+ {"version":3,"file":"Chip-Qa_1km99.js","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/next/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState, KeyboardEvent } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.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 ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const isAssertive = state === \"error\" || state === \"warning\";\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Chip.module.scss\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={styles}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\n\r\nexport default Chip;\r\n"],"names":["message","CloseIcon"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Chip = require("./Chip-CfJ473TI.cjs");
2
+ const Chip = require("./Chip-C7w9CTed.cjs");
3
3
  module.exports = Chip.Chip;
4
4
  //# sourceMappingURL=Chip.cjs.js.map
package/dist/next/Chip.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C } from "./Chip-CekCQRke.js";
1
+ import { C } from "./Chip-Qa_1km99.js";
2
2
  export {
3
3
  C as default
4
4
  };
@@ -4,7 +4,7 @@ import ReactDOM from "react-dom";
4
4
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
5
5
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
6
6
  import { a as getDefaultRounding, d as getDefaultTheme, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
7
- import { T as TextInput } from "./TextInput-G1Pvtebv.js";
7
+ import { T as TextInput } from "./TextInput-Zywm-WEW.js";
8
8
  const CommandPaletteBase = ({
9
9
  commands,
10
10
  placeholder = "Search...",
@@ -311,4 +311,4 @@ const CommandPalette = (props) => /* @__PURE__ */ jsx(
311
311
  export {
312
312
  CommandPalette as C
313
313
  };
314
- //# sourceMappingURL=CommandPalette-BEDyY7vY.js.map
314
+ //# sourceMappingURL=CommandPalette-D6ZeGNWl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPalette-BEDyY7vY.js","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/next/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type { CommandPaletteProps } from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface CommandPaletteBaseProps extends CommandPaletteProps {\r\n classMap: Record<string, string>;\r\n TextInputComponent: React.ElementType;\r\n}\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<typeof commands>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) =>\r\n cmd.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (activeIndex < 0 || activeIndex >= filtered.length) {\r\n setActiveIndex(0);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n prevFocusRef.current?.focus?.();\r\n };\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (isOpen && inputRef.current) inputRef.current.focus();\r\n }, [isOpen]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0 && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\r\n }\r\n } else if (e.key === \"Escape\") {\r\n onClose();\r\n }\r\n },\r\n [filtered, activeIndex, onClose]\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") onClose();\r\n },\r\n [onClose]\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const listId = `${testId}-list`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Command palette\"\r\n data-testid={testId}\r\n >\r\n <TextInputComponent\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\r\n setQuery(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={filtered.length > 0}\r\n aria-controls={listId}\r\n aria-activedescendant={\r\n activeIndex >= 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id={listId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n aria-busy={isLoading || undefined}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={`${cmd.label}-${index}`}\r\n id={`cmd-${index}`}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n index === activeIndex && classMap.active\r\n )}\r\n onClick={() => {\r\n cmd.action();\r\n onClose();\r\n }}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n {cmd.label}\r\n </li>\r\n ))\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n >\r\n No matching results\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\nexport default CommandPaletteBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport styles from \"./CommandPalette.module.scss\";\r\nimport { TextInput } from \"@/index.next\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={styles}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\n\r\nexport default CommandPalette;\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandPalette-D6ZeGNWl.js","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/next/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type { CommandPaletteProps } from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface CommandPaletteBaseProps extends CommandPaletteProps {\r\n classMap: Record<string, string>;\r\n TextInputComponent: React.ElementType;\r\n}\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<typeof commands>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) =>\r\n cmd.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (activeIndex < 0 || activeIndex >= filtered.length) {\r\n setActiveIndex(0);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n prevFocusRef.current?.focus?.();\r\n };\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (isOpen && inputRef.current) inputRef.current.focus();\r\n }, [isOpen]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0 && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\r\n }\r\n } else if (e.key === \"Escape\") {\r\n onClose();\r\n }\r\n },\r\n [filtered, activeIndex, onClose]\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") onClose();\r\n },\r\n [onClose]\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const listId = `${testId}-list`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Command palette\"\r\n data-testid={testId}\r\n >\r\n <TextInputComponent\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\r\n setQuery(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={filtered.length > 0}\r\n aria-controls={listId}\r\n aria-activedescendant={\r\n activeIndex >= 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id={listId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n aria-busy={isLoading || undefined}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={`${cmd.label}-${index}`}\r\n id={`cmd-${index}`}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n index === activeIndex && classMap.active\r\n )}\r\n onClick={() => {\r\n cmd.action();\r\n onClose();\r\n }}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n {cmd.label}\r\n </li>\r\n ))\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n >\r\n No matching results\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\nexport default CommandPaletteBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport styles from \"./CommandPalette.module.scss\";\r\nimport { TextInput } from \"@/index.next\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={styles}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\n\r\nexport default CommandPalette;\r\n"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ const ReactDOM = require("react-dom");
5
5
  const classNames = require("./classNames-BcWMx052.cjs");
6
6
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
7
7
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
8
- const TextInput = require("./TextInput-CpbTf99E.cjs");
8
+ const TextInput = require("./TextInput-CUBY6wCB.cjs");
9
9
  const CommandPaletteBase = ({
10
10
  commands,
11
11
  placeholder = "Search...",
@@ -310,4 +310,4 @@ const CommandPalette = (props) => /* @__PURE__ */ require$$2.jsx(
310
310
  }
311
311
  );
312
312
  exports.CommandPalette = CommandPalette;
313
- //# sourceMappingURL=CommandPalette-DhyChRCJ.cjs.map
313
+ //# sourceMappingURL=CommandPalette-DHTJFymB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPalette-DhyChRCJ.cjs","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/next/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type { CommandPaletteProps } from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface CommandPaletteBaseProps extends CommandPaletteProps {\r\n classMap: Record<string, string>;\r\n TextInputComponent: React.ElementType;\r\n}\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<typeof commands>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) =>\r\n cmd.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (activeIndex < 0 || activeIndex >= filtered.length) {\r\n setActiveIndex(0);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n prevFocusRef.current?.focus?.();\r\n };\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (isOpen && inputRef.current) inputRef.current.focus();\r\n }, [isOpen]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0 && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\r\n }\r\n } else if (e.key === \"Escape\") {\r\n onClose();\r\n }\r\n },\r\n [filtered, activeIndex, onClose]\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") onClose();\r\n },\r\n [onClose]\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const listId = `${testId}-list`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Command palette\"\r\n data-testid={testId}\r\n >\r\n <TextInputComponent\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\r\n setQuery(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={filtered.length > 0}\r\n aria-controls={listId}\r\n aria-activedescendant={\r\n activeIndex >= 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id={listId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n aria-busy={isLoading || undefined}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={`${cmd.label}-${index}`}\r\n id={`cmd-${index}`}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n index === activeIndex && classMap.active\r\n )}\r\n onClick={() => {\r\n cmd.action();\r\n onClose();\r\n }}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n {cmd.label}\r\n </li>\r\n ))\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n >\r\n No matching results\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\nexport default CommandPaletteBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport styles from \"./CommandPalette.module.scss\";\r\nimport { TextInput } from \"@/index.next\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={styles}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\n\r\nexport default CommandPalette;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useState","useRef","useEffect","useCallback","jsx","jsxs","combineClassNames","capitalize","TextInput"],"mappings":"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"}
1
+ {"version":3,"file":"CommandPalette-DHTJFymB.cjs","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/next/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type { CommandPaletteProps } from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface CommandPaletteBaseProps extends CommandPaletteProps {\r\n classMap: Record<string, string>;\r\n TextInputComponent: React.ElementType;\r\n}\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<typeof commands>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) =>\r\n cmd.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (activeIndex < 0 || activeIndex >= filtered.length) {\r\n setActiveIndex(0);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n prevFocusRef.current?.focus?.();\r\n };\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (isOpen && inputRef.current) inputRef.current.focus();\r\n }, [isOpen]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0 && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\r\n }\r\n } else if (e.key === \"Escape\") {\r\n onClose();\r\n }\r\n },\r\n [filtered, activeIndex, onClose]\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") onClose();\r\n },\r\n [onClose]\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const listId = `${testId}-list`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Command palette\"\r\n data-testid={testId}\r\n >\r\n <TextInputComponent\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\r\n setQuery(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={filtered.length > 0}\r\n aria-controls={listId}\r\n aria-activedescendant={\r\n activeIndex >= 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id={listId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n aria-busy={isLoading || undefined}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={`${cmd.label}-${index}`}\r\n id={`cmd-${index}`}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n index === activeIndex && classMap.active\r\n )}\r\n onClick={() => {\r\n cmd.action();\r\n onClose();\r\n }}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n {cmd.label}\r\n </li>\r\n ))\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n >\r\n No matching results\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\nexport default CommandPaletteBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport styles from \"./CommandPalette.module.scss\";\r\nimport { TextInput } from \"@/index.next\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={styles}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\n\r\nexport default CommandPalette;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useState","useRef","useEffect","useCallback","jsx","jsxs","combineClassNames","capitalize","TextInput"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const CommandPalette = require("./CommandPalette-DhyChRCJ.cjs");
2
+ const CommandPalette = require("./CommandPalette-DHTJFymB.cjs");
3
3
  module.exports = CommandPalette.CommandPalette;
4
4
  //# sourceMappingURL=CommandPalette.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { C } from "./CommandPalette-BEDyY7vY.js";
1
+ import { C } from "./CommandPalette-D6ZeGNWl.js";
2
2
  export {
3
3
  C as default
4
4
  };
@@ -4,7 +4,7 @@ const React = require("react");
4
4
  const classNames = require("./classNames-BcWMx052.cjs");
5
5
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
6
6
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
7
- const IconButton = require("./IconButton--X_Bqn4g.cjs");
7
+ const IconButton = require("./IconButton-C3WpabtT.cjs");
8
8
  const MenuIcon = (props) => /* @__PURE__ */ require$$2.jsxs(
9
9
  "svg",
10
10
  {
@@ -296,4 +296,4 @@ const Dropdown = (props) => {
296
296
  return /* @__PURE__ */ require$$2.jsx(BaseDropdown, { ...props, IconButton: IconButton.IconButton, classMap: styles });
297
297
  };
298
298
  exports.Dropdown = Dropdown;
299
- //# sourceMappingURL=Dropdown-qvuelg8z.cjs.map
299
+ //# sourceMappingURL=Dropdown-BbdsK4H6.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown-qvuelg8z.cjs","sources":["../../src/Icons/MenuIcon.tsx","../../src/components/Dropdown/DropdownBase.tsx","../../src/components/Dropdown/next/Dropdown.tsx"],"sourcesContent":["const MenuIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 5H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 12H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 19H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default MenuIcon;\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useCallback,\r\n KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { BaseDropdownProps, DropdownProps } from \"./Dropdown.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport MenuIcon from \"../../Icons/MenuIcon\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseDropdown: React.FC<BaseDropdownProps> = ({\r\n triggerIcon,\r\n items,\r\n align = \"right\",\r\n className = \"\",\r\n menuClassName = \"\",\r\n ariaLabel = \"Dropdown menu\",\r\n theme = getDefaultTheme(),\r\n toggleRounding = getDefaultRounding(),\r\n menuRounding = getDefaultRounding(),\r\n toggleShadow = getDefaultShadow(),\r\n menuShadow = getDefaultShadow(),\r\n toggleOutline = false,\r\n state = \"\",\r\n \"data-testid\": testId = \"dropdown\",\r\n IconButton,\r\n classMap,\r\n}: BaseDropdownProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLElement | null>(null);\r\n const menuId = useId();\r\n\r\n const Icon = triggerIcon ?? MenuIcon;\r\n\r\n const toggleDropdown = () => setOpen((prev) => !prev);\r\n const closeDropdown = () => {\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n triggerRef.current?.focus?.();\r\n };\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (menuItems && menuItems.length > 0) {\r\n setActiveIndex(0);\r\n } else {\r\n setActiveIndex(-1);\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (!open || activeIndex < 0) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n menuItems?.[activeIndex]?.focus();\r\n }, [activeIndex, open]);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(e.target as Node)\r\n ) {\r\n closeDropdown();\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const right = rect.right > window.innerWidth;\r\n const left = rect.left < 0;\r\n if (right) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (left) {\r\n menuRef.current.setAttribute(\"data-overflow-left\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n } else {\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n }\r\n }\r\n\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, [open]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n const len = items.length;\r\n const hasItems = len > 0;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n return;\r\n }\r\n if (e.key === \"Tab\") {\r\n closeDropdown();\r\n return;\r\n }\r\n\r\n if (!hasItems) return;\r\n\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? 0 : (prev + 1) % len));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? len - 1 : (prev - 1 + len) % len));\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n setActiveIndex(0);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n setActiveIndex(len - 1);\r\n } else if ((e.key === \"Enter\" || e.key === \" \") && activeIndex >= 0) {\r\n const item = items[activeIndex];\r\n if (item) {\r\n item.onClick?.();\r\n closeDropdown();\r\n }\r\n }\r\n },\r\n [open, items, activeIndex]\r\n );\r\n\r\n const menuClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.menu,\r\n align === \"right\" ? classMap.alignRight : classMap.alignLeft,\r\n menuShadow && classMap[`shadow${capitalize(menuShadow)}`],\r\n menuRounding && classMap[`round${capitalize(menuRounding)}`],\r\n menuClassName\r\n ),\r\n [classMap, align, menuShadow, menuRounding, menuClassName]\r\n );\r\n\r\n return (\r\n <div\r\n ref={dropdownRef}\r\n className={combineClassNames(classMap.wrapper, className)}\r\n onKeyDown={handleKeyDown}\r\n data-testid={testId}\r\n >\r\n <IconButton\r\n ref={triggerRef as any}\r\n icon={Icon}\r\n ariaLabel={ariaLabel}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls={menuId}\r\n rounding={toggleRounding}\r\n shadow={toggleShadow}\r\n outline={toggleOutline}\r\n theme={theme}\r\n state={state}\r\n onClick={toggleDropdown}\r\n data-testid={`${testId}-trigger`}\r\n />\r\n\r\n {open && (\r\n <div\r\n id={menuId}\r\n ref={menuRef}\r\n role=\"menu\"\r\n aria-label={ariaLabel}\r\n aria-orientation=\"vertical\"\r\n className={menuClassNames}\r\n data-testid={`${testId}-menu`}\r\n >\r\n {items.map((item, index) =>\r\n item.href ? (\r\n <a\r\n key={index}\r\n href={item.href}\r\n className={classMap.item}\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </a>\r\n ) : (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n className={classMap.item}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </button>\r\n )\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nBaseDropdown.displayName = \"BaseDropdown\";\r\nexport default BaseDropdown;\r\n","\"use client\";\r\nimport React from \"react\";\r\nimport BaseDropdown from \"../DropdownBase\";\r\nimport { DropdownProps } from \"../Dropdown.types\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\nconst Dropdown: React.FC<DropdownProps> = (props) => {\r\n return <BaseDropdown {...props} IconButton={IconButton} classMap={styles} />;\r\n};\r\n\r\nexport default Dropdown;\r\n"],"names":["jsxs","jsx","getDefaultTheme","getDefaultRounding","getDefaultShadow","IconButton","useState","useRef","useId","useEffect","useCallback","item","useMemo","combineClassNames","capitalize"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown-BbdsK4H6.cjs","sources":["../../src/Icons/MenuIcon.tsx","../../src/components/Dropdown/DropdownBase.tsx","../../src/components/Dropdown/next/Dropdown.tsx"],"sourcesContent":["const MenuIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 5H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 12H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 19H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default MenuIcon;\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useCallback,\r\n KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { BaseDropdownProps, DropdownProps } from \"./Dropdown.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport MenuIcon from \"../../Icons/MenuIcon\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseDropdown: React.FC<BaseDropdownProps> = ({\r\n triggerIcon,\r\n items,\r\n align = \"right\",\r\n className = \"\",\r\n menuClassName = \"\",\r\n ariaLabel = \"Dropdown menu\",\r\n theme = getDefaultTheme(),\r\n toggleRounding = getDefaultRounding(),\r\n menuRounding = getDefaultRounding(),\r\n toggleShadow = getDefaultShadow(),\r\n menuShadow = getDefaultShadow(),\r\n toggleOutline = false,\r\n state = \"\",\r\n \"data-testid\": testId = \"dropdown\",\r\n IconButton,\r\n classMap,\r\n}: BaseDropdownProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLElement | null>(null);\r\n const menuId = useId();\r\n\r\n const Icon = triggerIcon ?? MenuIcon;\r\n\r\n const toggleDropdown = () => setOpen((prev) => !prev);\r\n const closeDropdown = () => {\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n triggerRef.current?.focus?.();\r\n };\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (menuItems && menuItems.length > 0) {\r\n setActiveIndex(0);\r\n } else {\r\n setActiveIndex(-1);\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (!open || activeIndex < 0) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n menuItems?.[activeIndex]?.focus();\r\n }, [activeIndex, open]);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(e.target as Node)\r\n ) {\r\n closeDropdown();\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const right = rect.right > window.innerWidth;\r\n const left = rect.left < 0;\r\n if (right) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (left) {\r\n menuRef.current.setAttribute(\"data-overflow-left\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n } else {\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n }\r\n }\r\n\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, [open]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n const len = items.length;\r\n const hasItems = len > 0;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n return;\r\n }\r\n if (e.key === \"Tab\") {\r\n closeDropdown();\r\n return;\r\n }\r\n\r\n if (!hasItems) return;\r\n\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? 0 : (prev + 1) % len));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? len - 1 : (prev - 1 + len) % len));\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n setActiveIndex(0);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n setActiveIndex(len - 1);\r\n } else if ((e.key === \"Enter\" || e.key === \" \") && activeIndex >= 0) {\r\n const item = items[activeIndex];\r\n if (item) {\r\n item.onClick?.();\r\n closeDropdown();\r\n }\r\n }\r\n },\r\n [open, items, activeIndex]\r\n );\r\n\r\n const menuClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.menu,\r\n align === \"right\" ? classMap.alignRight : classMap.alignLeft,\r\n menuShadow && classMap[`shadow${capitalize(menuShadow)}`],\r\n menuRounding && classMap[`round${capitalize(menuRounding)}`],\r\n menuClassName\r\n ),\r\n [classMap, align, menuShadow, menuRounding, menuClassName]\r\n );\r\n\r\n return (\r\n <div\r\n ref={dropdownRef}\r\n className={combineClassNames(classMap.wrapper, className)}\r\n onKeyDown={handleKeyDown}\r\n data-testid={testId}\r\n >\r\n <IconButton\r\n ref={triggerRef as any}\r\n icon={Icon}\r\n ariaLabel={ariaLabel}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls={menuId}\r\n rounding={toggleRounding}\r\n shadow={toggleShadow}\r\n outline={toggleOutline}\r\n theme={theme}\r\n state={state}\r\n onClick={toggleDropdown}\r\n data-testid={`${testId}-trigger`}\r\n />\r\n\r\n {open && (\r\n <div\r\n id={menuId}\r\n ref={menuRef}\r\n role=\"menu\"\r\n aria-label={ariaLabel}\r\n aria-orientation=\"vertical\"\r\n className={menuClassNames}\r\n data-testid={`${testId}-menu`}\r\n >\r\n {items.map((item, index) =>\r\n item.href ? (\r\n <a\r\n key={index}\r\n href={item.href}\r\n className={classMap.item}\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </a>\r\n ) : (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n className={classMap.item}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </button>\r\n )\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nBaseDropdown.displayName = \"BaseDropdown\";\r\nexport default BaseDropdown;\r\n","\"use client\";\r\nimport React from \"react\";\r\nimport BaseDropdown from \"../DropdownBase\";\r\nimport { DropdownProps } from \"../Dropdown.types\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\nconst Dropdown: React.FC<DropdownProps> = (props) => {\r\n return <BaseDropdown {...props} IconButton={IconButton} classMap={styles} />;\r\n};\r\n\r\nexport default Dropdown;\r\n"],"names":["jsxs","jsx","getDefaultTheme","getDefaultRounding","getDefaultShadow","IconButton","useState","useRef","useId","useEffect","useCallback","item","useMemo","combineClassNames","capitalize"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useState, useRef, useId, useEffect, useCallback, useMemo } from "react"
3
3
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
5
  import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
6
- import { I as IconButton } from "./IconButton-B1r838wY.js";
6
+ import { I as IconButton } from "./IconButton-B_j-S10f.js";
7
7
  const MenuIcon = (props) => /* @__PURE__ */ jsxs(
8
8
  "svg",
9
9
  {
@@ -297,4 +297,4 @@ const Dropdown = (props) => {
297
297
  export {
298
298
  Dropdown as D
299
299
  };
300
- //# sourceMappingURL=Dropdown-DqYjIelJ.js.map
300
+ //# sourceMappingURL=Dropdown-BvUfz8G7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown-DqYjIelJ.js","sources":["../../src/Icons/MenuIcon.tsx","../../src/components/Dropdown/DropdownBase.tsx","../../src/components/Dropdown/next/Dropdown.tsx"],"sourcesContent":["const MenuIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 5H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 12H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 19H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default MenuIcon;\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useCallback,\r\n KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { BaseDropdownProps, DropdownProps } from \"./Dropdown.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport MenuIcon from \"../../Icons/MenuIcon\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseDropdown: React.FC<BaseDropdownProps> = ({\r\n triggerIcon,\r\n items,\r\n align = \"right\",\r\n className = \"\",\r\n menuClassName = \"\",\r\n ariaLabel = \"Dropdown menu\",\r\n theme = getDefaultTheme(),\r\n toggleRounding = getDefaultRounding(),\r\n menuRounding = getDefaultRounding(),\r\n toggleShadow = getDefaultShadow(),\r\n menuShadow = getDefaultShadow(),\r\n toggleOutline = false,\r\n state = \"\",\r\n \"data-testid\": testId = \"dropdown\",\r\n IconButton,\r\n classMap,\r\n}: BaseDropdownProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLElement | null>(null);\r\n const menuId = useId();\r\n\r\n const Icon = triggerIcon ?? MenuIcon;\r\n\r\n const toggleDropdown = () => setOpen((prev) => !prev);\r\n const closeDropdown = () => {\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n triggerRef.current?.focus?.();\r\n };\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (menuItems && menuItems.length > 0) {\r\n setActiveIndex(0);\r\n } else {\r\n setActiveIndex(-1);\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (!open || activeIndex < 0) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n menuItems?.[activeIndex]?.focus();\r\n }, [activeIndex, open]);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(e.target as Node)\r\n ) {\r\n closeDropdown();\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const right = rect.right > window.innerWidth;\r\n const left = rect.left < 0;\r\n if (right) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (left) {\r\n menuRef.current.setAttribute(\"data-overflow-left\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n } else {\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n }\r\n }\r\n\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, [open]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n const len = items.length;\r\n const hasItems = len > 0;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n return;\r\n }\r\n if (e.key === \"Tab\") {\r\n closeDropdown();\r\n return;\r\n }\r\n\r\n if (!hasItems) return;\r\n\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? 0 : (prev + 1) % len));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? len - 1 : (prev - 1 + len) % len));\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n setActiveIndex(0);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n setActiveIndex(len - 1);\r\n } else if ((e.key === \"Enter\" || e.key === \" \") && activeIndex >= 0) {\r\n const item = items[activeIndex];\r\n if (item) {\r\n item.onClick?.();\r\n closeDropdown();\r\n }\r\n }\r\n },\r\n [open, items, activeIndex]\r\n );\r\n\r\n const menuClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.menu,\r\n align === \"right\" ? classMap.alignRight : classMap.alignLeft,\r\n menuShadow && classMap[`shadow${capitalize(menuShadow)}`],\r\n menuRounding && classMap[`round${capitalize(menuRounding)}`],\r\n menuClassName\r\n ),\r\n [classMap, align, menuShadow, menuRounding, menuClassName]\r\n );\r\n\r\n return (\r\n <div\r\n ref={dropdownRef}\r\n className={combineClassNames(classMap.wrapper, className)}\r\n onKeyDown={handleKeyDown}\r\n data-testid={testId}\r\n >\r\n <IconButton\r\n ref={triggerRef as any}\r\n icon={Icon}\r\n ariaLabel={ariaLabel}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls={menuId}\r\n rounding={toggleRounding}\r\n shadow={toggleShadow}\r\n outline={toggleOutline}\r\n theme={theme}\r\n state={state}\r\n onClick={toggleDropdown}\r\n data-testid={`${testId}-trigger`}\r\n />\r\n\r\n {open && (\r\n <div\r\n id={menuId}\r\n ref={menuRef}\r\n role=\"menu\"\r\n aria-label={ariaLabel}\r\n aria-orientation=\"vertical\"\r\n className={menuClassNames}\r\n data-testid={`${testId}-menu`}\r\n >\r\n {items.map((item, index) =>\r\n item.href ? (\r\n <a\r\n key={index}\r\n href={item.href}\r\n className={classMap.item}\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </a>\r\n ) : (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n className={classMap.item}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </button>\r\n )\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nBaseDropdown.displayName = \"BaseDropdown\";\r\nexport default BaseDropdown;\r\n","\"use client\";\r\nimport React from \"react\";\r\nimport BaseDropdown from \"../DropdownBase\";\r\nimport { DropdownProps } from \"../Dropdown.types\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\nconst Dropdown: React.FC<DropdownProps> = (props) => {\r\n return <BaseDropdown {...props} IconButton={IconButton} classMap={styles} />;\r\n};\r\n\r\nexport default Dropdown;\r\n"],"names":["IconButton","item"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown-BvUfz8G7.js","sources":["../../src/Icons/MenuIcon.tsx","../../src/components/Dropdown/DropdownBase.tsx","../../src/components/Dropdown/next/Dropdown.tsx"],"sourcesContent":["const MenuIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 5H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 12H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 19H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default MenuIcon;\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useCallback,\r\n KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { BaseDropdownProps, DropdownProps } from \"./Dropdown.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport MenuIcon from \"../../Icons/MenuIcon\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseDropdown: React.FC<BaseDropdownProps> = ({\r\n triggerIcon,\r\n items,\r\n align = \"right\",\r\n className = \"\",\r\n menuClassName = \"\",\r\n ariaLabel = \"Dropdown menu\",\r\n theme = getDefaultTheme(),\r\n toggleRounding = getDefaultRounding(),\r\n menuRounding = getDefaultRounding(),\r\n toggleShadow = getDefaultShadow(),\r\n menuShadow = getDefaultShadow(),\r\n toggleOutline = false,\r\n state = \"\",\r\n \"data-testid\": testId = \"dropdown\",\r\n IconButton,\r\n classMap,\r\n}: BaseDropdownProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLElement | null>(null);\r\n const menuId = useId();\r\n\r\n const Icon = triggerIcon ?? MenuIcon;\r\n\r\n const toggleDropdown = () => setOpen((prev) => !prev);\r\n const closeDropdown = () => {\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n triggerRef.current?.focus?.();\r\n };\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (menuItems && menuItems.length > 0) {\r\n setActiveIndex(0);\r\n } else {\r\n setActiveIndex(-1);\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (!open || activeIndex < 0) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n menuItems?.[activeIndex]?.focus();\r\n }, [activeIndex, open]);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(e.target as Node)\r\n ) {\r\n closeDropdown();\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const right = rect.right > window.innerWidth;\r\n const left = rect.left < 0;\r\n if (right) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (left) {\r\n menuRef.current.setAttribute(\"data-overflow-left\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n } else {\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n }\r\n }\r\n\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, [open]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n const len = items.length;\r\n const hasItems = len > 0;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n return;\r\n }\r\n if (e.key === \"Tab\") {\r\n closeDropdown();\r\n return;\r\n }\r\n\r\n if (!hasItems) return;\r\n\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? 0 : (prev + 1) % len));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? len - 1 : (prev - 1 + len) % len));\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n setActiveIndex(0);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n setActiveIndex(len - 1);\r\n } else if ((e.key === \"Enter\" || e.key === \" \") && activeIndex >= 0) {\r\n const item = items[activeIndex];\r\n if (item) {\r\n item.onClick?.();\r\n closeDropdown();\r\n }\r\n }\r\n },\r\n [open, items, activeIndex]\r\n );\r\n\r\n const menuClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.menu,\r\n align === \"right\" ? classMap.alignRight : classMap.alignLeft,\r\n menuShadow && classMap[`shadow${capitalize(menuShadow)}`],\r\n menuRounding && classMap[`round${capitalize(menuRounding)}`],\r\n menuClassName\r\n ),\r\n [classMap, align, menuShadow, menuRounding, menuClassName]\r\n );\r\n\r\n return (\r\n <div\r\n ref={dropdownRef}\r\n className={combineClassNames(classMap.wrapper, className)}\r\n onKeyDown={handleKeyDown}\r\n data-testid={testId}\r\n >\r\n <IconButton\r\n ref={triggerRef as any}\r\n icon={Icon}\r\n ariaLabel={ariaLabel}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls={menuId}\r\n rounding={toggleRounding}\r\n shadow={toggleShadow}\r\n outline={toggleOutline}\r\n theme={theme}\r\n state={state}\r\n onClick={toggleDropdown}\r\n data-testid={`${testId}-trigger`}\r\n />\r\n\r\n {open && (\r\n <div\r\n id={menuId}\r\n ref={menuRef}\r\n role=\"menu\"\r\n aria-label={ariaLabel}\r\n aria-orientation=\"vertical\"\r\n className={menuClassNames}\r\n data-testid={`${testId}-menu`}\r\n >\r\n {items.map((item, index) =>\r\n item.href ? (\r\n <a\r\n key={index}\r\n href={item.href}\r\n className={classMap.item}\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </a>\r\n ) : (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n className={classMap.item}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </button>\r\n )\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nBaseDropdown.displayName = \"BaseDropdown\";\r\nexport default BaseDropdown;\r\n","\"use client\";\r\nimport React from \"react\";\r\nimport BaseDropdown from \"../DropdownBase\";\r\nimport { DropdownProps } from \"../Dropdown.types\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Dropdown.module.scss\";\r\n\r\nconst Dropdown: React.FC<DropdownProps> = (props) => {\r\n return <BaseDropdown {...props} IconButton={IconButton} classMap={styles} />;\r\n};\r\n\r\nexport default Dropdown;\r\n"],"names":["IconButton","item"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Dropdown = require("./Dropdown-qvuelg8z.cjs");
2
+ const Dropdown = require("./Dropdown-BbdsK4H6.cjs");
3
3
  module.exports = Dropdown.Dropdown;
4
4
  //# sourceMappingURL=Dropdown.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { D } from "./Dropdown-DqYjIelJ.js";
1
+ import { D } from "./Dropdown-BvUfz8G7.js";
2
2
  export {
3
3
  D as default
4
4
  };
@@ -4,7 +4,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
5
  import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
6
6
  import { B as Button } from "./Button-DN8rTQSp.js";
7
- import { I as IconButton } from "./IconButton-B1r838wY.js";
7
+ import { I as IconButton } from "./IconButton-B_j-S10f.js";
8
8
  import { F as FormGroup } from "./FormGroup-DSDuqKWJ.js";
9
9
  import { P as ProgressBar } from "./ProgressBar-BIojCvdG.js";
10
10
  const FileIcon = (props) => /* @__PURE__ */ jsxs(
@@ -473,4 +473,4 @@ const FileUpload = (props) => {
473
473
  export {
474
474
  FileUpload as F
475
475
  };
476
- //# sourceMappingURL=FileUpload-BSqFdKZD.js.map
476
+ //# sourceMappingURL=FileUpload-BxmKK5BE.js.map