boreal-ui 0.0.26 → 0.0.27

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 (196) hide show
  1. package/dist/core/{Footer-CcSbV-IP.js → Footer-CPg_4j5r.js} +2 -2
  2. package/dist/core/{Footer-CcSbV-IP.js.map → Footer-CPg_4j5r.js.map} +1 -1
  3. package/dist/core/{Footer-C0xaMboS.cjs → Footer-kLL_3Qc-.cjs} +2 -2
  4. package/dist/core/{Footer-C0xaMboS.cjs.map → Footer-kLL_3Qc-.cjs.map} +1 -1
  5. package/dist/core/Footer.cjs.js +1 -1
  6. package/dist/core/Footer.js +1 -1
  7. package/dist/{next/ThemeContext-Bo0vLczy.js → core/ThemeContext-B-z-faEj.js} +30 -30
  8. package/dist/core/ThemeContext-B-z-faEj.js.map +1 -0
  9. package/dist/core/{ThemeContext-CtZXUeeU.cjs → ThemeContext-CtNdJ7LK.cjs} +29 -29
  10. package/dist/core/ThemeContext-CtNdJ7LK.cjs.map +1 -0
  11. package/dist/core/ThemeProvider.cjs.js +1 -1
  12. package/dist/core/ThemeProvider.js +1 -1
  13. package/dist/core/index.cjs.js +2 -2
  14. package/dist/core/index.js +2 -2
  15. package/dist/next/{Avatar-B3eTb_Xz.js → Avatar-CKByQz4V.js} +3 -3
  16. package/dist/next/{Avatar-B3eTb_Xz.js.map → Avatar-CKByQz4V.js.map} +1 -1
  17. package/dist/next/{Avatar-BX8mh_3b.cjs → Avatar-Cd_TqEqJ.cjs} +3 -3
  18. package/dist/next/{Avatar-BX8mh_3b.cjs.map → Avatar-Cd_TqEqJ.cjs.map} +1 -1
  19. package/dist/next/Avatar.cjs.js +1 -1
  20. package/dist/next/Avatar.js +1 -1
  21. package/dist/next/{Breadcrumbs-BM-yj_kq.js → Breadcrumbs-CsQGqIFq.js} +3 -3
  22. package/dist/next/{Breadcrumbs-BM-yj_kq.js.map → Breadcrumbs-CsQGqIFq.js.map} +1 -1
  23. package/dist/next/{Breadcrumbs-7MNPobUi.cjs → Breadcrumbs-pw9Ow6LT.cjs} +3 -3
  24. package/dist/next/{Breadcrumbs-7MNPobUi.cjs.map → Breadcrumbs-pw9Ow6LT.cjs.map} +1 -1
  25. package/dist/next/Breadcrumbs.cjs.js +1 -1
  26. package/dist/next/Breadcrumbs.js +1 -1
  27. package/dist/next/{Button-G1PFBSqU.cjs → Button-CksDHAGT.cjs} +2 -2
  28. package/dist/next/{Button-G1PFBSqU.cjs.map → Button-CksDHAGT.cjs.map} +1 -1
  29. package/dist/next/{Button-ClWB5gZW.js → Button-DUYFGciR.js} +2 -2
  30. package/dist/next/{Button-ClWB5gZW.js.map → Button-DUYFGciR.js.map} +1 -1
  31. package/dist/next/Button.cjs.js +1 -1
  32. package/dist/next/Button.js +1 -1
  33. package/dist/next/{Card-B_USybKk.js → Card-DFKVGnWo.js} +4 -4
  34. package/dist/next/{Card-B_USybKk.js.map → Card-DFKVGnWo.js.map} +1 -1
  35. package/dist/next/{Card-Bg9EknRD.cjs → Card-HHvgocCd.cjs} +4 -4
  36. package/dist/next/{Card-Bg9EknRD.cjs.map → Card-HHvgocCd.cjs.map} +1 -1
  37. package/dist/next/Card.cjs.js +1 -1
  38. package/dist/next/Card.js +1 -1
  39. package/dist/next/{Chip-DoRB7LBO.cjs → Chip-CPe_ATTn.cjs} +2 -2
  40. package/dist/next/{Chip-DoRB7LBO.cjs.map → Chip-CPe_ATTn.cjs.map} +1 -1
  41. package/dist/next/{Chip-CMP-naRw.js → Chip-DngJ3Nsm.js} +2 -2
  42. package/dist/next/{Chip-CMP-naRw.js.map → Chip-DngJ3Nsm.js.map} +1 -1
  43. package/dist/next/Chip.cjs.js +1 -1
  44. package/dist/next/Chip.js +1 -1
  45. package/dist/next/{CommandPalette-DjR2pE5m.cjs → CommandPalette-BExinZ-y.cjs} +2 -2
  46. package/dist/next/{CommandPalette-DjR2pE5m.cjs.map → CommandPalette-BExinZ-y.cjs.map} +1 -1
  47. package/dist/next/{CommandPalette-BaJ9KSob.js → CommandPalette-BKamGmgu.js} +2 -2
  48. package/dist/next/{CommandPalette-BaJ9KSob.js.map → CommandPalette-BKamGmgu.js.map} +1 -1
  49. package/dist/next/CommandPalette.cjs.js +1 -1
  50. package/dist/next/CommandPalette.js +1 -1
  51. package/dist/next/{Dropdown-CzQhdSD7.js → Dropdown-B2xAwrlF.js} +2 -2
  52. package/dist/next/{Dropdown-CzQhdSD7.js.map → Dropdown-B2xAwrlF.js.map} +1 -1
  53. package/dist/next/{Dropdown-BHd5BuCB.cjs → Dropdown-COJxJqzC.cjs} +2 -2
  54. package/dist/next/{Dropdown-BHd5BuCB.cjs.map → Dropdown-COJxJqzC.cjs.map} +1 -1
  55. package/dist/next/Dropdown.cjs.js +1 -1
  56. package/dist/next/Dropdown.js +1 -1
  57. package/dist/next/{EmptyState-BbuuFZCb.js → EmptyState-DeYWnFaJ.js} +2 -2
  58. package/dist/next/{EmptyState-BbuuFZCb.js.map → EmptyState-DeYWnFaJ.js.map} +1 -1
  59. package/dist/next/{EmptyState-edgOQ6GW.cjs → EmptyState-DepuL2N8.cjs} +2 -2
  60. package/dist/next/{EmptyState-edgOQ6GW.cjs.map → EmptyState-DepuL2N8.cjs.map} +1 -1
  61. package/dist/next/EmptyState.cjs.js +1 -1
  62. package/dist/next/EmptyState.js +1 -1
  63. package/dist/next/{FileUpload-D7qdf0y5.js → FileUpload-C91Pd8t7.js} +3 -3
  64. package/dist/next/{FileUpload-D7qdf0y5.js.map → FileUpload-C91Pd8t7.js.map} +1 -1
  65. package/dist/next/{FileUpload-BeTvsLw-.cjs → FileUpload-tiwkr7n-.cjs} +3 -3
  66. package/dist/next/{FileUpload-BeTvsLw-.cjs.map → FileUpload-tiwkr7n-.cjs.map} +1 -1
  67. package/dist/next/FileUpload.cjs.js +1 -1
  68. package/dist/next/FileUpload.js +1 -1
  69. package/dist/next/{Footer-CQhcAscy.cjs → Footer-BkA5H1MS.cjs} +5 -5
  70. package/dist/next/{Footer-CQhcAscy.cjs.map → Footer-BkA5H1MS.cjs.map} +1 -1
  71. package/dist/next/{Footer-Rshwlhwo.js → Footer-BvTet1LG.js} +5 -5
  72. package/dist/next/{Footer-Rshwlhwo.js.map → Footer-BvTet1LG.js.map} +1 -1
  73. package/dist/next/Footer.cjs.js +1 -1
  74. package/dist/next/Footer.js +1 -1
  75. package/dist/next/{IconButton-Dk8EDf4Z.js → IconButton-BjZZm2hJ.js} +2 -2
  76. package/dist/next/{IconButton-Dk8EDf4Z.js.map → IconButton-BjZZm2hJ.js.map} +1 -1
  77. package/dist/next/{IconButton-SZdNlqIZ.cjs → IconButton-DvfiteNA.cjs} +2 -2
  78. package/dist/next/{IconButton-SZdNlqIZ.cjs.map → IconButton-DvfiteNA.cjs.map} +1 -1
  79. package/dist/next/IconButton.cjs.js +1 -1
  80. package/dist/next/IconButton.js +1 -1
  81. package/dist/next/{MessagePopUp-D6QdsrUO.cjs → MessagePopUp-8Jk_jkt_.cjs} +3 -3
  82. package/dist/next/{MessagePopUp-D6QdsrUO.cjs.map → MessagePopUp-8Jk_jkt_.cjs.map} +1 -1
  83. package/dist/next/{MessagePopUp-DEbsvN19.js → MessagePopUp-DCP7uPnZ.js} +3 -3
  84. package/dist/next/{MessagePopUp-DEbsvN19.js.map → MessagePopUp-DCP7uPnZ.js.map} +1 -1
  85. package/dist/next/MessagePopUp.cjs.js +1 -1
  86. package/dist/next/MessagePopUp.js +1 -1
  87. package/dist/next/{Modal-BmAYw3X9.cjs → Modal-C2aLpohd.cjs} +2 -2
  88. package/dist/next/{Modal-BmAYw3X9.cjs.map → Modal-C2aLpohd.cjs.map} +1 -1
  89. package/dist/next/{Modal-BOaNai97.js → Modal-DFnJUiOY.js} +2 -2
  90. package/dist/next/{Modal-BOaNai97.js.map → Modal-DFnJUiOY.js.map} +1 -1
  91. package/dist/next/Modal.cjs.js +1 -1
  92. package/dist/next/Modal.js +1 -1
  93. package/dist/next/{NavBar-CO4v6_28.cjs → NavBar-CqPh60CY.cjs} +3 -3
  94. package/dist/next/{NavBar-CO4v6_28.cjs.map → NavBar-CqPh60CY.cjs.map} +1 -1
  95. package/dist/next/{NavBar-CKo-nom2.js → NavBar-CtpkmbXJ.js} +3 -3
  96. package/dist/next/{NavBar-CKo-nom2.js.map → NavBar-CtpkmbXJ.js.map} +1 -1
  97. package/dist/next/NavBar.cjs.js +1 -1
  98. package/dist/next/NavBar.js +1 -1
  99. package/dist/next/{NotificationCenter-BIuJj-PB.cjs → NotificationCenter-ChaO0Xu5.cjs} +3 -3
  100. package/dist/next/{NotificationCenter-BIuJj-PB.cjs.map → NotificationCenter-ChaO0Xu5.cjs.map} +1 -1
  101. package/dist/next/{NotificationCenter-DCE8DuOm.js → NotificationCenter-ySBsv_F4.js} +3 -3
  102. package/dist/next/{NotificationCenter-DCE8DuOm.js.map → NotificationCenter-ySBsv_F4.js.map} +1 -1
  103. package/dist/next/NotificationCenter.cjs.js +1 -1
  104. package/dist/next/NotificationCenter.js +1 -1
  105. package/dist/next/{Pager-DiZtB-Df.js → Pager-BYY7KOKU.js} +3 -3
  106. package/dist/next/{Pager-DiZtB-Df.js.map → Pager-BYY7KOKU.js.map} +1 -1
  107. package/dist/next/{Pager-BADOS4cm.cjs → Pager-Bbbq04I_.cjs} +3 -3
  108. package/dist/next/{Pager-BADOS4cm.cjs.map → Pager-Bbbq04I_.cjs.map} +1 -1
  109. package/dist/next/Pager.cjs.js +1 -1
  110. package/dist/next/Pager.js +1 -1
  111. package/dist/next/{Sidebar-R1NSvWHu.js → Sidebar-CB2Lm-J-.js} +3 -3
  112. package/dist/next/{Sidebar-R1NSvWHu.js.map → Sidebar-CB2Lm-J-.js.map} +1 -1
  113. package/dist/next/{Sidebar-C_zefcbg.cjs → Sidebar-hBHcsbrg.cjs} +3 -3
  114. package/dist/next/{Sidebar-C_zefcbg.cjs.map → Sidebar-hBHcsbrg.cjs.map} +1 -1
  115. package/dist/next/Sidebar.cjs.js +1 -1
  116. package/dist/next/Sidebar.js +1 -1
  117. package/dist/next/{Stepper-C_qUO4sd.cjs → Stepper-DOdGXz4_.cjs} +2 -2
  118. package/dist/next/{Stepper-C_qUO4sd.cjs.map → Stepper-DOdGXz4_.cjs.map} +1 -1
  119. package/dist/next/{Stepper-De9foUOK.js → Stepper-tDpx2gnl.js} +2 -2
  120. package/dist/next/{Stepper-De9foUOK.js.map → Stepper-tDpx2gnl.js.map} +1 -1
  121. package/dist/next/Stepper.cjs.js +1 -1
  122. package/dist/next/Stepper.js +1 -1
  123. package/dist/next/{TagInput-B_VOR8-r.js → TagInput-BqNnh1L9.js} +3 -3
  124. package/dist/next/{TagInput-B_VOR8-r.js.map → TagInput-BqNnh1L9.js.map} +1 -1
  125. package/dist/next/{TagInput-BVng78ON.cjs → TagInput-DUD9_g1b.cjs} +3 -3
  126. package/dist/next/{TagInput-BVng78ON.cjs.map → TagInput-DUD9_g1b.cjs.map} +1 -1
  127. package/dist/next/TagInput.cjs.js +1 -1
  128. package/dist/next/TagInput.js +1 -1
  129. package/dist/next/{TextInput-B00XEBiM.js → TextInput-BQPtN14M.js} +2 -2
  130. package/dist/next/{TextInput-B00XEBiM.js.map → TextInput-BQPtN14M.js.map} +1 -1
  131. package/dist/next/{TextInput-D0rdRASC.cjs → TextInput-k8U0_lSm.cjs} +2 -2
  132. package/dist/next/{TextInput-D0rdRASC.cjs.map → TextInput-k8U0_lSm.cjs.map} +1 -1
  133. package/dist/next/TextInput.cjs.js +1 -1
  134. package/dist/next/TextInput.js +1 -1
  135. package/dist/{core/ThemeContext-Bo0vLczy.js → next/ThemeContext-B-z-faEj.js} +30 -30
  136. package/dist/next/ThemeContext-B-z-faEj.js.map +1 -0
  137. package/dist/next/{ThemeContext-BNR3_OIq.cjs → ThemeContext-BHzkqvlv.cjs} +29 -29
  138. package/dist/next/ThemeContext-BHzkqvlv.cjs.map +1 -0
  139. package/dist/next/ThemeInitScript-CIctCIv1.js +385 -0
  140. package/dist/next/ThemeInitScript-CIctCIv1.js.map +1 -0
  141. package/dist/next/ThemeInitScript-DqO2SVvW.cjs +384 -0
  142. package/dist/next/ThemeInitScript-DqO2SVvW.cjs.map +1 -0
  143. package/dist/next/ThemeInitScript.cjs.js +4 -0
  144. package/dist/next/ThemeInitScript.cjs.js.map +1 -0
  145. package/dist/next/ThemeInitScript.js +5 -0
  146. package/dist/next/ThemeInitScript.js.map +1 -0
  147. package/dist/next/ThemeProvider.cjs.js +1 -1
  148. package/dist/next/ThemeProvider.js +1 -1
  149. package/dist/next/{Toolbar-DleUmVkR.cjs → Toolbar-Bu_meSGb.cjs} +2 -2
  150. package/dist/next/{Toolbar-DleUmVkR.cjs.map → Toolbar-Bu_meSGb.cjs.map} +1 -1
  151. package/dist/next/{Toolbar-Dme9QqMY.js → Toolbar-Dd6pf5wP.js} +2 -2
  152. package/dist/next/{Toolbar-Dme9QqMY.js.map → Toolbar-Dd6pf5wP.js.map} +1 -1
  153. package/dist/next/Toolbar.cjs.js +1 -1
  154. package/dist/next/Toolbar.js +1 -1
  155. package/dist/next/head-manager-context.shared-runtime-7_8Oqhy0.js +30 -0
  156. package/dist/next/head-manager-context.shared-runtime-7_8Oqhy0.js.map +1 -0
  157. package/dist/next/head-manager-context.shared-runtime-Cgj8ROpJ.cjs +29 -0
  158. package/dist/next/head-manager-context.shared-runtime-Cgj8ROpJ.cjs.map +1 -0
  159. package/dist/next/{image-VX9Ty9NQ.cjs → image-MEZ6sESv.cjs} +13 -35
  160. package/dist/next/image-MEZ6sESv.cjs.map +1 -0
  161. package/dist/next/{image-CEz9QtOW.js → image-h6PDRhrT.js} +4 -26
  162. package/dist/next/image-h6PDRhrT.js.map +1 -0
  163. package/dist/next/index.cjs.js +24 -22
  164. package/dist/next/index.cjs.js.map +1 -1
  165. package/dist/next/index.js +38 -36
  166. package/dist/next/index.js.map +1 -1
  167. package/dist/next/{link-Bik5xH00.js → link-BY93bHEw.js} +9 -92
  168. package/dist/next/link-BY93bHEw.js.map +1 -0
  169. package/dist/next/{link-hxAaLm0Q.cjs → link-Dyf-9ObB.cjs} +10 -93
  170. package/dist/next/link-Dyf-9ObB.cjs.map +1 -0
  171. package/dist/next/{navigation-m012syo9.cjs → navigation-CcfNESvg.cjs} +5 -4
  172. package/dist/next/{navigation-m012syo9.cjs.map → navigation-CcfNESvg.cjs.map} +1 -1
  173. package/dist/next/{navigation-DTwYCgCL.js → navigation-ChnNGxEG.js} +3 -2
  174. package/dist/next/{navigation-DTwYCgCL.js.map → navigation-ChnNGxEG.js.map} +1 -1
  175. package/dist/next/request-idle-callback-B3JHNaij.js +88 -0
  176. package/dist/next/request-idle-callback-B3JHNaij.js.map +1 -0
  177. package/dist/next/request-idle-callback-BIq6SiN0.cjs +87 -0
  178. package/dist/next/request-idle-callback-BIq6SiN0.cjs.map +1 -0
  179. package/dist/tsconfig.build.tsbuildinfo +1 -1
  180. package/dist/types/context/ThemeContext.d.ts +3 -1
  181. package/dist/types/context/ThemeContext.d.ts.map +1 -1
  182. package/dist/types/context/ThemeContext.types.d.ts +6 -0
  183. package/dist/types/context/ThemeContext.types.d.ts.map +1 -1
  184. package/dist/types/context/ThemeInitScript.d.ts +3 -0
  185. package/dist/types/context/ThemeInitScript.d.ts.map +1 -0
  186. package/dist/types/index.next.d.ts +1 -0
  187. package/dist/types/index.next.d.ts.map +1 -1
  188. package/package.json +6 -1
  189. package/dist/core/ThemeContext-Bo0vLczy.js.map +0 -1
  190. package/dist/core/ThemeContext-CtZXUeeU.cjs.map +0 -1
  191. package/dist/next/ThemeContext-BNR3_OIq.cjs.map +0 -1
  192. package/dist/next/ThemeContext-Bo0vLczy.js.map +0 -1
  193. package/dist/next/image-CEz9QtOW.js.map +0 -1
  194. package/dist/next/image-VX9Ty9NQ.cjs.map +0 -1
  195. package/dist/next/link-Bik5xH00.js.map +0 -1
  196. package/dist/next/link-hxAaLm0Q.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Chip-DoRB7LBO.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 \"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 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 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=\"status\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\" data-testid=\"icon\">\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 onKeyDown={(e: KeyboardEvent) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleClose();\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={0}\r\n data-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\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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"}
1
+ {"version":3,"file":"Chip-CPe_ATTn.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 \"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 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 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=\"status\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\" data-testid=\"icon\">\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 onKeyDown={(e: KeyboardEvent) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleClose();\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={0}\r\n data-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\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-Dk8EDf4Z.js";
8
+ import { I as IconButton } from "./IconButton-BjZZm2hJ.js";
9
9
  const ChipBase = ({
10
10
  id,
11
11
  message: message2,
@@ -199,4 +199,4 @@ const Chip = (props) => /* @__PURE__ */ jsx(
199
199
  export {
200
200
  Chip as C
201
201
  };
202
- //# sourceMappingURL=Chip-CMP-naRw.js.map
202
+ //# sourceMappingURL=Chip-DngJ3Nsm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip-CMP-naRw.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 \"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 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 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=\"status\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\" data-testid=\"icon\">\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 onKeyDown={(e: KeyboardEvent) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleClose();\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={0}\r\n data-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\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":";;;;;;;;AAYA,MAAM,WAAoC,CAAC;AAAA,EACzC;AAAA,EACA,SAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,OAAO,eAAA;AAAA,EACP,QAAQ,gBAAA;AAAA,EACR,WAAW,mBAAA;AAAA,EACX,SAAS,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,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,cAAc,YAAY,MAAM;AACpC,eAAW,IAAI;AACf,eAAW,MAAM,sCAAa,GAAG;AAAA,EACnC,GAAG,CAAC,OAAO,CAAC;AAEZ,YAAU,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;AAE9C,MAAI,CAAC,WAAW,CAAC,QAAS,QAAO;AAEjC,QAAM,gBAAgB;AAAA,IACpB,SAAS;AAAA,IACT,SAAS,KAAK;AAAA,IACd,SAAS,KAAK;AAAA,IACd,SAAS,IAAI;AAAA,IACb,SAAS,QAAQ;AAAA,IACjB,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,IAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,IACnD,WAAW,SAAS;AAAA,IACpB,aAAa,SAAS;AAAA,IACtB;AAAA,EAAA;AAGF,QAAM,WACJ,OAAO,WAAW,cACd,SAAS,eAAe,eAAe,IACvC;AAEN,QAAM,cACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACC,oBAAC,QAAA,EAAK,WAAW,SAAS,MAAM,eAAY,QAAO,eAAY,QAC7D,UAAA,oBAAC,MAAA,EAAK,WAAW,SAAS,YAAY,GACxC;AAAA,QAEF,oBAAC,UAAK,WAAW,SAAS,SAAS,IAAI,GAAG,MAAM,YAC7C,UAAAD,SAAA,CACH;AAAA,QAEA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAMC;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,WAAW,CAAC,MAAqB;AAC/B,kBAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,kBAAE,eAAA;AACF,4BAAA;AAAA,cACF;AAAA,YACF;AAAA,YACA,MAAK;AAAA,YACL,UAAU;AAAA,YACV,eAAY;AAAA,UAAA;AAAA,QAAA;AAAA,MACd;AAAA,IAAA;AAAA,IAlCK;AAAA,EAAA;AAsCT,MAAI,aAAa,UAAU;AACzB,WAAO,aAAa,aAAa,QAAQ;AAAA,EAC3C;AAEA,SAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGA,MAAM,OAA4B,CAAC,UACjC;AAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,WAAW;AAAA,EAAA;AACb;"}
1
+ {"version":3,"file":"Chip-DngJ3Nsm.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 \"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 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 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=\"status\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\" data-testid=\"icon\">\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 onKeyDown={(e: KeyboardEvent) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleClose();\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={0}\r\n data-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\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":";;;;;;;;AAYA,MAAM,WAAoC,CAAC;AAAA,EACzC;AAAA,EACA,SAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,OAAO,eAAA;AAAA,EACP,QAAQ,gBAAA;AAAA,EACR,WAAW,mBAAA;AAAA,EACX,SAAS,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,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,cAAc,YAAY,MAAM;AACpC,eAAW,IAAI;AACf,eAAW,MAAM,sCAAa,GAAG;AAAA,EACnC,GAAG,CAAC,OAAO,CAAC;AAEZ,YAAU,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;AAE9C,MAAI,CAAC,WAAW,CAAC,QAAS,QAAO;AAEjC,QAAM,gBAAgB;AAAA,IACpB,SAAS;AAAA,IACT,SAAS,KAAK;AAAA,IACd,SAAS,KAAK;AAAA,IACd,SAAS,IAAI;AAAA,IACb,SAAS,QAAQ;AAAA,IACjB,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,IAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,IACnD,WAAW,SAAS;AAAA,IACpB,aAAa,SAAS;AAAA,IACtB;AAAA,EAAA;AAGF,QAAM,WACJ,OAAO,WAAW,cACd,SAAS,eAAe,eAAe,IACvC;AAEN,QAAM,cACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACC,oBAAC,QAAA,EAAK,WAAW,SAAS,MAAM,eAAY,QAAO,eAAY,QAC7D,UAAA,oBAAC,MAAA,EAAK,WAAW,SAAS,YAAY,GACxC;AAAA,QAEF,oBAAC,UAAK,WAAW,SAAS,SAAS,IAAI,GAAG,MAAM,YAC7C,UAAAD,SAAA,CACH;AAAA,QAEA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAMC;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,WAAW,CAAC,MAAqB;AAC/B,kBAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,kBAAE,eAAA;AACF,4BAAA;AAAA,cACF;AAAA,YACF;AAAA,YACA,MAAK;AAAA,YACL,UAAU;AAAA,YACV,eAAY;AAAA,UAAA;AAAA,QAAA;AAAA,MACd;AAAA,IAAA;AAAA,IAlCK;AAAA,EAAA;AAsCT,MAAI,aAAa,UAAU;AACzB,WAAO,aAAa,aAAa,QAAQ;AAAA,EAC3C;AAEA,SAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGA,MAAM,OAA4B,CAAC,UACjC;AAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,WAAW;AAAA,EAAA;AACb;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Chip = require("./Chip-DoRB7LBO.cjs");
2
+ const Chip = require("./Chip-CPe_ATTn.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-CMP-naRw.js";
1
+ import { C } from "./Chip-DngJ3Nsm.js";
2
2
  export {
3
3
  C as default
4
4
  };
@@ -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-D0rdRASC.cjs");
8
+ const TextInput = require("./TextInput-k8U0_lSm.cjs");
9
9
  const CommandPaletteBase = ({
10
10
  commands,
11
11
  placeholder = "Search...",
@@ -272,4 +272,4 @@ const CommandPalette = (props) => /* @__PURE__ */ require$$2.jsx(
272
272
  }
273
273
  );
274
274
  exports.CommandPalette = CommandPalette;
275
- //# sourceMappingURL=CommandPalette-DjR2pE5m.cjs.map
275
+ //# sourceMappingURL=CommandPalette-BExinZ-y.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPalette-DjR2pE5m.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(0);\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\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 (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n if (!query.trim()) {\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(query)\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 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(0);\r\n setMounted(false);\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 setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\" && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\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 if (!isOpen || !mounted || !portalElement) return null;\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 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-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"command-list\"\r\n aria-activedescendant={\r\n filtered.length > 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id=\"command-list\"\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n >\r\n {isLoading ? (\r\n <div className={combineClassNames(classMap.item, classMap.empty)}>\r\n Searching...\r\n </div>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={cmd.label}\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\n\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-BExinZ-y.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(0);\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\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 (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n if (!query.trim()) {\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(query)\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 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(0);\r\n setMounted(false);\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 setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\" && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\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 if (!isOpen || !mounted || !portalElement) return null;\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 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-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"command-list\"\r\n aria-activedescendant={\r\n filtered.length > 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id=\"command-list\"\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n >\r\n {isLoading ? (\r\n <div className={combineClassNames(classMap.item, classMap.empty)}>\r\n Searching...\r\n </div>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={cmd.label}\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\n\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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"}
@@ -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-B00XEBiM.js";
7
+ import { T as TextInput } from "./TextInput-BQPtN14M.js";
8
8
  const CommandPaletteBase = ({
9
9
  commands,
10
10
  placeholder = "Search...",
@@ -273,4 +273,4 @@ const CommandPalette = (props) => /* @__PURE__ */ jsx(
273
273
  export {
274
274
  CommandPalette as C
275
275
  };
276
- //# sourceMappingURL=CommandPalette-BaJ9KSob.js.map
276
+ //# sourceMappingURL=CommandPalette-BKamGmgu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPalette-BaJ9KSob.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(0);\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\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 (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n if (!query.trim()) {\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(query)\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 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(0);\r\n setMounted(false);\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 setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\" && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\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 if (!isOpen || !mounted || !portalElement) return null;\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 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-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"command-list\"\r\n aria-activedescendant={\r\n filtered.length > 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id=\"command-list\"\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n >\r\n {isLoading ? (\r\n <div className={combineClassNames(classMap.item, classMap.empty)}>\r\n Searching...\r\n </div>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={cmd.label}\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\n\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-BKamGmgu.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(0);\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\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 (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n if (!query.trim()) {\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(query)\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 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(0);\r\n setMounted(false);\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 setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\" && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\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 if (!isOpen || !mounted || !portalElement) return null;\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 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-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"command-list\"\r\n aria-activedescendant={\r\n filtered.length > 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id=\"command-list\"\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n >\r\n {isLoading ? (\r\n <div className={combineClassNames(classMap.item, classMap.empty)}>\r\n Searching...\r\n </div>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={cmd.label}\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\n\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":";;;;;;;AAsBA,MAAM,qBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,QAAQ,gBAAA;AAAA,EACR,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,eAAe,SAAS;AAAA,EACxB;AACF,MAAM;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AACrC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,CAAC;AAChD,QAAM,WAAW,OAAyB,IAAI;AAC9C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,IAAI;AAC3E,QAAM,CAAC,cAAc,eAAe,IAAI,SAA0B,CAAA,CAAE;AACpE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,cAAc,OAA6C,IAAI;AAErE,QAAM,WAAW,cACb,eACA,SAAS;AAAA,IAAO,CAAC,QACf,IAAI,MAAM,cAAc,SAAS,MAAM,YAAA,CAAa;AAAA,EAAA;AAG1D,YAAU,MAAM;AACd,QAAI,CAAC,YAAa;AAElB,QAAI,YAAY,QAAS,cAAa,YAAY,OAAO;AAEzD,QAAI,CAAC,MAAM,QAAQ;AACjB,sBAAgB,CAAA,CAAE;AAClB,mBAAa,KAAK;AAClB;AAAA,IACF;AAEA,iBAAa,IAAI;AACjB,gBAAY,UAAU,WAAW,MAAM;AACrC,kBAAY,KAAK,EACd,KAAK,CAAC,YAAY;AACjB,wBAAgB,OAAO;AACvB,qBAAa,KAAK;AAAA,MACpB,CAAC,EACA,MAAM,MAAM;AACX,wBAAgB,CAAA,CAAE;AAClB,qBAAa,KAAK;AAAA,MACpB,CAAC;AAAA,IACL,GAAG,UAAU;AAEb,WAAO,MAAM;AACX,UAAI,YAAY,QAAS,cAAa,YAAY,OAAO;AAAA,IAC3D;AAAA,EACF,GAAG,CAAC,OAAO,aAAa,UAAU,CAAC;AAEnC,YAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AAEb,eAAW,IAAI;AACf,UAAM,SACJ,SAAS,eAAe,eAAe,MACtC,MAAM;AACL,YAAM,KAAK,SAAS,cAAc,KAAK;AACvC,SAAG,KAAK;AACR,eAAS,KAAK,YAAY,EAAE;AAC5B,aAAO;AAAA,IACT,GAAA;AAEF,qBAAiB,MAAM;AACvB,aAAS,KAAK,UAAU,IAAI,UAAU;AAEtC,WAAO,MAAM;AACX,eAAS,KAAK,UAAU,OAAO,UAAU;AACzC,eAAS,EAAE;AACX,qBAAe,CAAC;AAChB,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,YAAU,MAAM;AACd,QAAI,UAAU,SAAS,QAAS,UAAS,QAAQ,MAAA;AAAA,EACnD,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,gBAAgB;AAAA,IACpB,CAAC,MAAuC;AACtC,UAAI,EAAE,QAAQ,aAAa;AACzB,uBAAe,CAAC,UAAU,OAAO,KAAK,SAAS,MAAM;AAAA,MACvD,WAAW,EAAE,QAAQ,WAAW;AAC9B;AAAA,UACE,CAAC,UAAU,OAAO,IAAI,SAAS,UAAU,SAAS;AAAA,QAAA;AAAA,MAEtD,WAAW,EAAE,QAAQ,WAAW,SAAS,WAAW,GAAG;AACrD,iBAAS,WAAW,EAAE,OAAA;AACtB,gBAAA;AAAA,MACF,WAAW,EAAE,QAAQ,UAAU;AAC7B,gBAAA;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa,OAAO;AAAA,EAAA;AAGjC,MAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAe,QAAO;AAElD,SAAO,SAAS;AAAA,IACd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,SAAS;AAAA,QACpB,SAAS;AAAA,QACT,eAAa,GAAG,MAAM;AAAA,QAEtB,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT,SAAS;AAAA,cACT,SAAS,KAAK;AAAA,cACd,SAAS,KAAK;AAAA,cACd,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,cAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,cACnD;AAAA,YAAA;AAAA,YAEF,SAAS,CAAC,MAAM,EAAE,gBAAA;AAAA,YAClB,MAAK;AAAA,YACL,cAAW;AAAA,YACX,cAAW;AAAA,YACX,eAAa;AAAA,YAEb,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,KAAK;AAAA,kBACL,MAAK;AAAA,kBACL,OAAO;AAAA,kBACP,UAAU,CAAC,MACT,SAAS,EAAE,OAAO,KAAK;AAAA,kBAEzB,WAAW;AAAA,kBACX;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,QAAQ;AAAA,kBACR;AAAA,kBACA,WAAW,SAAS;AAAA,kBACpB,eAAa,GAAG,MAAM;AAAA,kBACtB,MAAK;AAAA,kBACL,iBAAc;AAAA,kBACd,iBAAc;AAAA,kBACd,iBAAc;AAAA,kBACd,yBACE,SAAS,SAAS,IAAI,OAAO,WAAW,KAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,cAIjD;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAG;AAAA,kBACH,WAAW,SAAS;AAAA,kBACpB,MAAK;AAAA,kBACL,cAAW;AAAA,kBAEV,sBACC,oBAAC,OAAA,EAAI,WAAW,kBAAkB,SAAS,MAAM,SAAS,KAAK,GAAG,UAAA,eAAA,CAElE,IACE,SAAS,SAAS,IACpB,SAAS,IAAI,CAAC,KAAK,UACjB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,IAAI,OAAO,KAAK;AAAA,sBAChB,MAAK;AAAA,sBACL,iBAAe,UAAU;AAAA,sBACzB,WAAW;AAAA,wBACT,SAAS;AAAA,wBACT,SAAS,KAAK;AAAA,wBACd,UAAU,eAAe,SAAS;AAAA,sBAAA;AAAA,sBAEpC,SAAS,MAAM;AACb,4BAAI,OAAA;AACJ,gCAAA;AAAA,sBACF;AAAA,sBAEC,UAAA;AAAA,wBAAA,IAAI,4BACF,QAAA,EAAK,WAAW,SAAS,MAAM,eAAY,QACzC,UAAA,IAAI,KAAA,CACP;AAAA,wBAED,IAAI;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAnBA,IAAI;AAAA,kBAAA,CAqBZ,IAED;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,iBAAc;AAAA,sBACd,iBAAc;AAAA,sBACd,WAAW,kBAAkB,SAAS,MAAM,SAAS,KAAK;AAAA,sBAC3D,UAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAED;AAAA,cAAA;AAAA,YAEJ;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAEF;AAAA,EAAA;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA,MAAM,iBAAgD,CAAC,UACrD;AAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,UAAU;AAAA,IACV,oBAAoB;AAAA,EAAA;AACtB;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const CommandPalette = require("./CommandPalette-DjR2pE5m.cjs");
2
+ const CommandPalette = require("./CommandPalette-BExinZ-y.cjs");
3
3
  module.exports = CommandPalette.CommandPalette;
4
4
  //# sourceMappingURL=CommandPalette.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { C } from "./CommandPalette-BaJ9KSob.js";
1
+ import { C } from "./CommandPalette-BKamGmgu.js";
2
2
  export {
3
3
  C as default
4
4
  };
@@ -3,7 +3,7 @@ import { useState, useRef, useId, useEffect, useMemo } from "react";
3
3
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
5
  import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
6
- import { I as IconButton } from "./IconButton-Dk8EDf4Z.js";
6
+ import { I as IconButton } from "./IconButton-BjZZm2hJ.js";
7
7
  const MenuIcon = (props) => /* @__PURE__ */ jsxs(
8
8
  "svg",
9
9
  {
@@ -259,4 +259,4 @@ const Dropdown = (props) => {
259
259
  export {
260
260
  Dropdown as D
261
261
  };
262
- //# sourceMappingURL=Dropdown-CzQhdSD7.js.map
262
+ //# sourceMappingURL=Dropdown-B2xAwrlF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown-CzQhdSD7.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 KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { 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\nexport interface BaseDropdownProps extends DropdownProps {\r\n IconButton: ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\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 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 };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n } else if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % items.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev - 1 + items.length) % items.length);\r\n } else if (e.key === \"Enter\" || e.key === \" \") {\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\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\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const isOverflowingRight = rect.right > window.innerWidth;\r\n const isOverflowingLeft = rect.left < 0;\r\n\r\n if (isOverflowingRight) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (isOverflowingLeft) {\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, menuRef]);\r\n\r\n useEffect(() => {\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (open && menuItems && activeIndex >= 0) {\r\n menuItems[activeIndex]?.focus();\r\n }\r\n }, [activeIndex, open]);\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 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 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 data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon}>{item.icon}</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}>{item.icon}</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\n\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-B2xAwrlF.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 KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { 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\nexport interface BaseDropdownProps extends DropdownProps {\r\n IconButton: ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\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 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 };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n } else if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % items.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev - 1 + items.length) % items.length);\r\n } else if (e.key === \"Enter\" || e.key === \" \") {\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\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\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const isOverflowingRight = rect.right > window.innerWidth;\r\n const isOverflowingLeft = rect.left < 0;\r\n\r\n if (isOverflowingRight) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (isOverflowingLeft) {\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, menuRef]);\r\n\r\n useEffect(() => {\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (open && menuItems && activeIndex >= 0) {\r\n menuItems[activeIndex]?.focus();\r\n }\r\n }, [activeIndex, open]);\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 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 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 data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon}>{item.icon}</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}>{item.icon}</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\n\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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"}
@@ -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-SZdNlqIZ.cjs");
7
+ const IconButton = require("./IconButton-DvfiteNA.cjs");
8
8
  const MenuIcon = (props) => /* @__PURE__ */ require$$2.jsxs(
9
9
  "svg",
10
10
  {
@@ -258,4 +258,4 @@ const Dropdown = (props) => {
258
258
  return /* @__PURE__ */ require$$2.jsx(BaseDropdown, { ...props, IconButton: IconButton.IconButton, classMap: styles });
259
259
  };
260
260
  exports.Dropdown = Dropdown;
261
- //# sourceMappingURL=Dropdown-BHd5BuCB.cjs.map
261
+ //# sourceMappingURL=Dropdown-COJxJqzC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown-BHd5BuCB.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 KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { 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\nexport interface BaseDropdownProps extends DropdownProps {\r\n IconButton: ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\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 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 };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n } else if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % items.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev - 1 + items.length) % items.length);\r\n } else if (e.key === \"Enter\" || e.key === \" \") {\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\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\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const isOverflowingRight = rect.right > window.innerWidth;\r\n const isOverflowingLeft = rect.left < 0;\r\n\r\n if (isOverflowingRight) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (isOverflowingLeft) {\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, menuRef]);\r\n\r\n useEffect(() => {\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (open && menuItems && activeIndex >= 0) {\r\n menuItems[activeIndex]?.focus();\r\n }\r\n }, [activeIndex, open]);\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 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 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 data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon}>{item.icon}</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}>{item.icon}</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\n\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","item","useEffect","useMemo","combineClassNames","capitalize"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown-COJxJqzC.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 KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { 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\nexport interface BaseDropdownProps extends DropdownProps {\r\n IconButton: ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\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 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 };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n } else if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % items.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev - 1 + items.length) % items.length);\r\n } else if (e.key === \"Enter\" || e.key === \" \") {\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\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\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const isOverflowingRight = rect.right > window.innerWidth;\r\n const isOverflowingLeft = rect.left < 0;\r\n\r\n if (isOverflowingRight) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (isOverflowingLeft) {\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, menuRef]);\r\n\r\n useEffect(() => {\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (open && menuItems && activeIndex >= 0) {\r\n menuItems[activeIndex]?.focus();\r\n }\r\n }, [activeIndex, open]);\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 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 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 data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon}>{item.icon}</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}>{item.icon}</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\n\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","item","useEffect","useMemo","combineClassNames","capitalize"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Dropdown = require("./Dropdown-BHd5BuCB.cjs");
2
+ const Dropdown = require("./Dropdown-COJxJqzC.cjs");
3
3
  module.exports = Dropdown.Dropdown;
4
4
  //# sourceMappingURL=Dropdown.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { D } from "./Dropdown-CzQhdSD7.js";
1
+ import { D } from "./Dropdown-B2xAwrlF.js";
2
2
  export {
3
3
  D as default
4
4
  };
@@ -3,7 +3,7 @@ import { 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, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
6
- import { B as Button } from "./Button-ClWB5gZW.js";
6
+ import { B as Button } from "./Button-DUYFGciR.js";
7
7
  const BaseEmptyState = ({
8
8
  icon: Icon,
9
9
  title: title2 = "Nothing Here Yet",
@@ -145,4 +145,4 @@ const EmptyState = (props) => {
145
145
  export {
146
146
  EmptyState as E
147
147
  };
148
- //# sourceMappingURL=EmptyState-BbuuFZCb.js.map
148
+ //# sourceMappingURL=EmptyState-DeYWnFaJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState-BbuuFZCb.js","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/next/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.next\";\r\nimport styles from \"./EmptyState.module.scss\";\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={styles} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["title","message","outline","Button"],"mappings":";;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,OAAAA,SAAQ;AAAA,EACR,SAAAC,WAAU;AAAA,EACV,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAO,eAAA;AAAA,EACP,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT,SAAAC,WAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoB;AAAA,IACxB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnDD,YAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAOA,UAAS,SAAS;AAAA,EAAA;AAGrE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACC,oBAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAA,oBAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACd;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAAD;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA,MAAM,aAAwC,CAAC,UAAU;AACvD,6BAAQ,gBAAA,EAAgB,GAAG,OAAO,QAAgB,UAAU,QAAQ;AACtE;"}
1
+ {"version":3,"file":"EmptyState-DeYWnFaJ.js","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/next/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.next\";\r\nimport styles from \"./EmptyState.module.scss\";\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={styles} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["title","message","outline","Button"],"mappings":";;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,OAAAA,SAAQ;AAAA,EACR,SAAAC,WAAU;AAAA,EACV,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAO,eAAA;AAAA,EACP,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT,SAAAC,WAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoB;AAAA,IACxB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnDD,YAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAOA,UAAS,SAAS;AAAA,EAAA;AAGrE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACC,oBAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAA,oBAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACd;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAAD;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA,MAAM,aAAwC,CAAC,UAAU;AACvD,6BAAQ,gBAAA,EAAgB,GAAG,OAAO,QAAgB,UAAU,QAAQ;AACtE;"}
@@ -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 Button = require("./Button-G1PFBSqU.cjs");
7
+ const Button = require("./Button-CksDHAGT.cjs");
8
8
  const BaseEmptyState = ({
9
9
  icon: Icon,
10
10
  title: title2 = "Nothing Here Yet",
@@ -144,4 +144,4 @@ const EmptyState = (props) => {
144
144
  return /* @__PURE__ */ require$$2.jsx(BaseEmptyState, { ...props, Button: Button.Button, classMap: styles });
145
145
  };
146
146
  exports.EmptyState = EmptyState;
147
- //# sourceMappingURL=EmptyState-edgOQ6GW.cjs.map
147
+ //# sourceMappingURL=EmptyState-DepuL2N8.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState-edgOQ6GW.cjs","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/next/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.next\";\r\nimport styles from \"./EmptyState.module.scss\";\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={styles} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["title","message","getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","outline","Button","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,OAAAA,SAAQ;AAAA,EACR,SAAAC,WAAU;AAAA,EACV,QAAQC,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAOC,kBAAAA,eAAA;AAAA,EACP,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,SAAAC,WAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoBC,MAAAA;AAAAA,IACxB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnDJ,YAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAOA,UAAS,SAAS;AAAA,EAAA;AAGrE,SACEK,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACCC,2BAAAA,IAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAAA,+BAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGFA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAZ;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHY,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAX;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACdW,2BAAAA;AAAAA,UAACL;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAAD;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA,MAAM,aAAwC,CAAC,UAAU;AACvD,wCAAQ,gBAAA,EAAgB,GAAG,OAAA,QAAOC,eAAgB,UAAU,QAAQ;AACtE;;"}
1
+ {"version":3,"file":"EmptyState-DepuL2N8.cjs","sources":["../../src/components/EmptyState/EmptyStateBase.tsx","../../src/components/EmptyState/next/EmptyState.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { EmptyStateProps } from \"./EmptyState.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseEmptyStateProps extends EmptyStateProps {\r\n Button: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseEmptyState: React.FC<BaseEmptyStateProps> = ({\r\n icon: Icon,\r\n title = \"Nothing Here Yet\",\r\n message = \"There’s no content to display.\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n outline = false,\r\n actionLabel,\r\n onActionClick,\r\n className = \"\",\r\n \"data-testid\": testId = \"empty-state\",\r\n Button,\r\n classMap,\r\n}) => {\r\n const titleId = `${testId}-title`;\r\n const descId = `${testId}-message`;\r\n\r\n const sectionClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.empty_state,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [classMap, rounding, shadow, size, state, theme, outline, className]\r\n );\r\n\r\n return (\r\n <section\r\n className={sectionClassNames}\r\n role=\"region\"\r\n aria-labelledby={titleId}\r\n aria-describedby={descId}\r\n data-testid={testId}\r\n >\r\n {Icon && (\r\n <div className={classMap.icon} data-testid={`${testId}-icon`}>\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <h2\r\n id={titleId}\r\n className={classMap.title}\r\n data-testid={`${testId}-title`}\r\n >\r\n {title}\r\n </h2>\r\n\r\n <p\r\n id={descId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </p>\r\n\r\n {actionLabel && onActionClick && (\r\n <Button\r\n theme=\"clear\"\r\n outline={outline}\r\n onClick={onActionClick}\r\n aria-label={\r\n typeof actionLabel === \"string\" ? actionLabel : \"Perform action\"\r\n }\r\n data-testid={`${testId}-action`}\r\n >\r\n {actionLabel}\r\n </Button>\r\n )}\r\n </section>\r\n );\r\n};\r\n\r\nexport default BaseEmptyState;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseEmptyState from \"../EmptyStateBase\";\r\nimport { EmptyStateProps } from \"../EmptyState.types\";\r\nimport { Button } from \"../../../index.next\";\r\nimport styles from \"./EmptyState.module.scss\";\r\n\r\nconst EmptyState: React.FC<EmptyStateProps> = (props) => {\r\n return <BaseEmptyState {...props} Button={Button} classMap={styles} />;\r\n};\r\n\r\nexport default EmptyState;\r\n"],"names":["title","message","getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","outline","Button","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;;AAgBA,MAAM,iBAAgD,CAAC;AAAA,EACrD,MAAM;AAAA,EACN,OAAAA,SAAQ;AAAA,EACR,SAAAC,WAAU;AAAA,EACV,QAAQC,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,OAAOC,kBAAAA,eAAA;AAAA,EACP,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,SAAAC,WAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,UAAU,GAAG,MAAM;AACzB,QAAM,SAAS,GAAG,MAAM;AAExB,QAAM,oBAAoBC,MAAAA;AAAAA,IACxB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnDJ,YAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,QAAQ,MAAM,OAAO,OAAOA,UAAS,SAAS;AAAA,EAAA;AAGrE,SACEK,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MAEZ,UAAA;AAAA,QAAA,QACCC,2BAAAA,IAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SACnD,UAAAA,+BAAC,MAAA,EAAK,eAAY,QAAO,GAC3B;AAAA,QAGFA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAZ;AAAA,UAAA;AAAA,QAAA;AAAA,QAGHY,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YAErB,UAAAX;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,eAAe,iBACdW,2BAAAA;AAAAA,UAACL;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAAAD;AAAA,YACA,SAAS;AAAA,YACT,cACE,OAAO,gBAAgB,WAAW,cAAc;AAAA,YAElD,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA,MAAM,aAAwC,CAAC,UAAU;AACvD,wCAAQ,gBAAA,EAAgB,GAAG,OAAA,QAAOC,eAAgB,UAAU,QAAQ;AACtE;;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const EmptyState = require("./EmptyState-edgOQ6GW.cjs");
2
+ const EmptyState = require("./EmptyState-DepuL2N8.cjs");
3
3
  module.exports = EmptyState.EmptyState;
4
4
  //# sourceMappingURL=EmptyState.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { E } from "./EmptyState-BbuuFZCb.js";
1
+ import { E } from "./EmptyState-DeYWnFaJ.js";
2
2
  export {
3
3
  E as default
4
4
  };
@@ -3,8 +3,8 @@ import { useState, useRef, useMemo } from "react";
3
3
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
5
  import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
6
- import { B as Button } from "./Button-ClWB5gZW.js";
7
- import { I as IconButton } from "./IconButton-Dk8EDf4Z.js";
6
+ import { B as Button } from "./Button-DUYFGciR.js";
7
+ import { I as IconButton } from "./IconButton-BjZZm2hJ.js";
8
8
  import { F as FormGroup } from "./FormGroup-D_92BmcS.js";
9
9
  import { P as ProgressBar } from "./ProgressBar-C02f6SzB.js";
10
10
  const FileIcon = (props) => /* @__PURE__ */ jsxs(
@@ -445,4 +445,4 @@ const FileUpload = (props) => {
445
445
  export {
446
446
  FileUpload as F
447
447
  };
448
- //# sourceMappingURL=FileUpload-D7qdf0y5.js.map
448
+ //# sourceMappingURL=FileUpload-C91Pd8t7.js.map