boreal-ui 0.0.47 → 0.0.49

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 (220) hide show
  1. package/dist/core/{Card-CbGHr_tX.js → Card-BzpcEKgi.js} +52 -7
  2. package/dist/core/Card-BzpcEKgi.js.map +1 -0
  3. package/dist/core/{Card-De2epy0R.cjs → Card-D6SI33n_.cjs} +52 -7
  4. package/dist/core/Card-D6SI33n_.cjs.map +1 -0
  5. package/dist/core/Card.cjs.js +1 -1
  6. package/dist/core/Card.js +1 -1
  7. package/dist/core/boreal-ui.css +897 -0
  8. package/dist/core/index.cjs.js +1 -1
  9. package/dist/core/index.js +1 -1
  10. package/dist/next/{Accordion-CFb5G7Ql.js → Accordion-CrUmV-HM.js} +50 -50
  11. package/dist/next/{Accordion-CFb5G7Ql.js.map → Accordion-CrUmV-HM.js.map} +1 -1
  12. package/dist/next/{Accordion-BvcUpiD3.cjs → Accordion-ugkSb5dI.cjs} +50 -50
  13. package/dist/next/{Accordion-BvcUpiD3.cjs.map → Accordion-ugkSb5dI.cjs.map} +1 -1
  14. package/dist/next/Accordion.cjs.js +1 -1
  15. package/dist/next/Accordion.js +1 -1
  16. package/dist/next/{Breadcrumbs-D5wEf2-N.cjs → Breadcrumbs-CrKRsQf3.cjs} +2 -2
  17. package/dist/next/{Breadcrumbs-D5wEf2-N.cjs.map → Breadcrumbs-CrKRsQf3.cjs.map} +1 -1
  18. package/dist/next/{Breadcrumbs-DZpS-GOj.js → Breadcrumbs-ZK64MIGd.js} +2 -2
  19. package/dist/next/{Breadcrumbs-DZpS-GOj.js.map → Breadcrumbs-ZK64MIGd.js.map} +1 -1
  20. package/dist/next/Breadcrumbs.cjs.js +1 -1
  21. package/dist/next/Breadcrumbs.js +1 -1
  22. package/dist/next/{Button-Cyq8lKKp.cjs → Button-BI0LErYM.cjs} +46 -46
  23. package/dist/next/{Button-Cyq8lKKp.cjs.map → Button-BI0LErYM.cjs.map} +1 -1
  24. package/dist/next/{Button-CQUqfv7B.js → Button-qs4m4zx0.js} +46 -46
  25. package/dist/next/{Button-CQUqfv7B.js.map → Button-qs4m4zx0.js.map} +1 -1
  26. package/dist/next/Button.cjs.js +1 -1
  27. package/dist/next/Button.js +1 -1
  28. package/dist/next/{Card-CtUR7xR3.js → Card-CFPo7HrH.js} +144 -71
  29. package/dist/next/Card-CFPo7HrH.js.map +1 -0
  30. package/dist/next/{Card-D2vuSJt0.cjs → Card-CHnEexOi.cjs} +144 -71
  31. package/dist/next/Card-CHnEexOi.cjs.map +1 -0
  32. package/dist/next/Card.cjs.js +1 -1
  33. package/dist/next/Card.js +1 -1
  34. package/dist/next/CheckBox.cjs.js +1 -1
  35. package/dist/next/CheckBox.js +1 -1
  36. package/dist/next/{Checkbox-dANi8BjQ.js → Checkbox-DBidsakA.js} +44 -44
  37. package/dist/next/{Checkbox-dANi8BjQ.js.map → Checkbox-DBidsakA.js.map} +1 -1
  38. package/dist/next/{Checkbox-SXo9UmNY.cjs → Checkbox-hA321207.cjs} +44 -44
  39. package/dist/next/{Checkbox-SXo9UmNY.cjs.map → Checkbox-hA321207.cjs.map} +1 -1
  40. package/dist/next/{Chip-BYWlOMgj.cjs → Chip-BWTBVAIE.cjs} +50 -50
  41. package/dist/next/{Chip-BYWlOMgj.cjs.map → Chip-BWTBVAIE.cjs.map} +1 -1
  42. package/dist/next/{Chip-B3bTVcNN.js → Chip-D2mvW5L7.js} +50 -50
  43. package/dist/next/{Chip-B3bTVcNN.js.map → Chip-D2mvW5L7.js.map} +1 -1
  44. package/dist/next/Chip.cjs.js +1 -1
  45. package/dist/next/Chip.js +1 -1
  46. package/dist/next/{CircularProgress-6fmyMX4y.cjs → CircularProgress-BegWxawm.cjs} +37 -37
  47. package/dist/next/{CircularProgress-6fmyMX4y.cjs.map → CircularProgress-BegWxawm.cjs.map} +1 -1
  48. package/dist/next/{CircularProgress-CdvDDYyr.js → CircularProgress-wBHZUhul.js} +37 -37
  49. package/dist/next/{CircularProgress-CdvDDYyr.js.map → CircularProgress-wBHZUhul.js.map} +1 -1
  50. package/dist/next/CircularProgress.cjs.js +1 -1
  51. package/dist/next/CircularProgress.js +1 -1
  52. package/dist/next/{ColorPicker-DhQJXU30.js → ColorPicker-Dd9iz-i8.js} +38 -38
  53. package/dist/next/{ColorPicker-DhQJXU30.js.map → ColorPicker-Dd9iz-i8.js.map} +1 -1
  54. package/dist/next/{ColorPicker-DUYMHTpF.cjs → ColorPicker-Tla92spe.cjs} +38 -38
  55. package/dist/next/{ColorPicker-DUYMHTpF.cjs.map → ColorPicker-Tla92spe.cjs.map} +1 -1
  56. package/dist/next/ColorPicker.cjs.js +1 -1
  57. package/dist/next/ColorPicker.js +1 -1
  58. package/dist/next/{CommandPalette-GmgyP8kF.cjs → CommandPalette-BO6R9zQs.cjs} +41 -41
  59. package/dist/next/{CommandPalette-GmgyP8kF.cjs.map → CommandPalette-BO6R9zQs.cjs.map} +1 -1
  60. package/dist/next/{CommandPalette-Bzqc18YQ.js → CommandPalette-CN0BiN0R.js} +41 -41
  61. package/dist/next/{CommandPalette-Bzqc18YQ.js.map → CommandPalette-CN0BiN0R.js.map} +1 -1
  62. package/dist/next/CommandPalette.cjs.js +1 -1
  63. package/dist/next/CommandPalette.js +1 -1
  64. package/dist/next/{DataTable-Cy3GLZ1j.cjs → DataTable-CUJXAkHe.cjs} +40 -40
  65. package/dist/next/{DataTable-Cy3GLZ1j.cjs.map → DataTable-CUJXAkHe.cjs.map} +1 -1
  66. package/dist/next/{DataTable-BoXblTGY.js → DataTable-mMStogSP.js} +40 -40
  67. package/dist/next/{DataTable-BoXblTGY.js.map → DataTable-mMStogSP.js.map} +1 -1
  68. package/dist/next/DataTable.cjs.js +1 -1
  69. package/dist/next/DataTable.js +1 -1
  70. package/dist/next/{DateTimePicker-i4QztkDP.js → DateTimePicker-CphfYmZ8.js} +46 -46
  71. package/dist/next/{DateTimePicker-i4QztkDP.js.map → DateTimePicker-CphfYmZ8.js.map} +1 -1
  72. package/dist/next/{DateTimePicker-DYXQLrAL.cjs → DateTimePicker-DwS2xQNw.cjs} +46 -46
  73. package/dist/next/{DateTimePicker-DYXQLrAL.cjs.map → DateTimePicker-DwS2xQNw.cjs.map} +1 -1
  74. package/dist/next/DateTimePicker.cjs.js +1 -1
  75. package/dist/next/DateTimePicker.js +1 -1
  76. package/dist/next/{Divider-BAAb-2rY.cjs → Divider-cx8e80sS.cjs} +28 -28
  77. package/dist/next/{Divider-BAAb-2rY.cjs.map → Divider-cx8e80sS.cjs.map} +1 -1
  78. package/dist/next/{Divider-O6G6kig_.js → Divider-kiaQzYbi.js} +28 -28
  79. package/dist/next/{Divider-O6G6kig_.js.map → Divider-kiaQzYbi.js.map} +1 -1
  80. package/dist/next/Divider.cjs.js +1 -1
  81. package/dist/next/Divider.js +1 -1
  82. package/dist/next/{EmptyState-CU6_e2Yr.cjs → EmptyState-Bb90F-ej.cjs} +2 -2
  83. package/dist/next/{EmptyState-CU6_e2Yr.cjs.map → EmptyState-Bb90F-ej.cjs.map} +1 -1
  84. package/dist/next/{EmptyState-Cbj1OIeQ.js → EmptyState-Brd4N36F.js} +2 -2
  85. package/dist/next/{EmptyState-Cbj1OIeQ.js.map → EmptyState-Brd4N36F.js.map} +1 -1
  86. package/dist/next/EmptyState.cjs.js +1 -1
  87. package/dist/next/EmptyState.js +1 -1
  88. package/dist/next/{FileUpload-CNxWsESt.js → FileUpload-BMMpH1El.js} +51 -51
  89. package/dist/next/{FileUpload-CNxWsESt.js.map → FileUpload-BMMpH1El.js.map} +1 -1
  90. package/dist/next/{FileUpload-D43mGC5b.cjs → FileUpload-Drm5_xEx.cjs} +51 -51
  91. package/dist/next/{FileUpload-D43mGC5b.cjs.map → FileUpload-Drm5_xEx.cjs.map} +1 -1
  92. package/dist/next/FileUpload.cjs.js +1 -1
  93. package/dist/next/FileUpload.js +1 -1
  94. package/dist/next/{Footer-CJ19dLJ4.js → Footer-B6_LG958.js} +40 -40
  95. package/dist/next/{Footer-CJ19dLJ4.js.map → Footer-B6_LG958.js.map} +1 -1
  96. package/dist/next/{Footer-haPH23Rz.cjs → Footer-EF2-ryvY.cjs} +40 -40
  97. package/dist/next/{Footer-haPH23Rz.cjs.map → Footer-EF2-ryvY.cjs.map} +1 -1
  98. package/dist/next/Footer.cjs.js +1 -1
  99. package/dist/next/Footer.js +1 -1
  100. package/dist/next/{FormGroup-mHF2j4h8.cjs → FormGroup-Bg2QlTu7.cjs} +30 -30
  101. package/dist/next/{FormGroup-mHF2j4h8.cjs.map → FormGroup-Bg2QlTu7.cjs.map} +1 -1
  102. package/dist/next/{FormGroup-B_b5tAwN.js → FormGroup-DmQChKxA.js} +30 -30
  103. package/dist/next/{FormGroup-B_b5tAwN.js.map → FormGroup-DmQChKxA.js.map} +1 -1
  104. package/dist/next/FormGroup.cjs.js +1 -1
  105. package/dist/next/FormGroup.js +1 -1
  106. package/dist/next/MessagePopUp.cjs.js +1 -1
  107. package/dist/next/MessagePopUp.js +1 -1
  108. package/dist/next/{MessagePopup-C08ktRPS.cjs → MessagePopup-DsquzWSn.cjs} +2 -2
  109. package/dist/next/{MessagePopup-C08ktRPS.cjs.map → MessagePopup-DsquzWSn.cjs.map} +1 -1
  110. package/dist/next/{MessagePopup-BHMymhHd.js → MessagePopup-WUBGyJ_F.js} +2 -2
  111. package/dist/next/{MessagePopup-BHMymhHd.js.map → MessagePopup-WUBGyJ_F.js.map} +1 -1
  112. package/dist/next/{MetricBox-Cc5g8SBy.js → MetricBox-C5KGkv7l.js} +47 -47
  113. package/dist/next/{MetricBox-Cc5g8SBy.js.map → MetricBox-C5KGkv7l.js.map} +1 -1
  114. package/dist/next/{MetricBox-BDC6UsP1.cjs → MetricBox-D8eBxQ59.cjs} +47 -47
  115. package/dist/next/{MetricBox-BDC6UsP1.cjs.map → MetricBox-D8eBxQ59.cjs.map} +1 -1
  116. package/dist/next/MetricBox.cjs.js +1 -1
  117. package/dist/next/MetricBox.js +1 -1
  118. package/dist/next/{NavBar-BZPUPeLz.js → NavBar-CmvgkEZt.js} +37 -37
  119. package/dist/next/{NavBar-BZPUPeLz.js.map → NavBar-CmvgkEZt.js.map} +1 -1
  120. package/dist/next/{NavBar-DYUpzh7o.cjs → NavBar-DVEf0iJH.cjs} +37 -37
  121. package/dist/next/{NavBar-DYUpzh7o.cjs.map → NavBar-DVEf0iJH.cjs.map} +1 -1
  122. package/dist/next/NavBar.cjs.js +1 -1
  123. package/dist/next/NavBar.js +1 -1
  124. package/dist/next/{NotificationCenter-ClijzbwL.cjs → NotificationCenter-CtL6rozQ.cjs} +42 -42
  125. package/dist/next/{NotificationCenter-ClijzbwL.cjs.map → NotificationCenter-CtL6rozQ.cjs.map} +1 -1
  126. package/dist/next/{NotificationCenter-C00Gj6Xv.js → NotificationCenter-CtM10CVj.js} +42 -42
  127. package/dist/next/{NotificationCenter-C00Gj6Xv.js.map → NotificationCenter-CtM10CVj.js.map} +1 -1
  128. package/dist/next/NotificationCenter.cjs.js +1 -1
  129. package/dist/next/NotificationCenter.js +1 -1
  130. package/dist/next/{Pager-C1rpRIOe.cjs → Pager-Bxxewb8I.cjs} +2 -2
  131. package/dist/next/{Pager-C1rpRIOe.cjs.map → Pager-Bxxewb8I.cjs.map} +1 -1
  132. package/dist/next/{Pager-DzEFxEIM.js → Pager-D0Mw7o7v.js} +2 -2
  133. package/dist/next/{Pager-DzEFxEIM.js.map → Pager-D0Mw7o7v.js.map} +1 -1
  134. package/dist/next/Pager.cjs.js +1 -1
  135. package/dist/next/Pager.js +1 -1
  136. package/dist/next/{PopOver-J5eO0UOr.cjs → PopOver-gQfgHe9e.cjs} +40 -40
  137. package/dist/next/{PopOver-J5eO0UOr.cjs.map → PopOver-gQfgHe9e.cjs.map} +1 -1
  138. package/dist/next/{PopOver-DFjt5BfD.js → PopOver-qSTx5y8g.js} +40 -40
  139. package/dist/next/{PopOver-DFjt5BfD.js.map → PopOver-qSTx5y8g.js.map} +1 -1
  140. package/dist/next/PopOver.cjs.js +1 -1
  141. package/dist/next/PopOver.js +1 -1
  142. package/dist/next/{ProgressBar-lOd0cGdF.cjs → ProgressBar-BMuv0kis.cjs} +42 -42
  143. package/dist/next/{ProgressBar-lOd0cGdF.cjs.map → ProgressBar-BMuv0kis.cjs.map} +1 -1
  144. package/dist/next/{ProgressBar-hpSJQWrn.js → ProgressBar-DuaWQouO.js} +42 -42
  145. package/dist/next/{ProgressBar-hpSJQWrn.js.map → ProgressBar-DuaWQouO.js.map} +1 -1
  146. package/dist/next/ProgressBar.cjs.js +1 -1
  147. package/dist/next/ProgressBar.js +1 -1
  148. package/dist/next/{RadioButton-UlG9lzwh.js → RadioButton-CEvIACkL.js} +38 -38
  149. package/dist/next/{RadioButton-UlG9lzwh.js.map → RadioButton-CEvIACkL.js.map} +1 -1
  150. package/dist/next/{RadioButton-DkeBXAsO.cjs → RadioButton-D6oyNmVU.cjs} +38 -38
  151. package/dist/next/{RadioButton-DkeBXAsO.cjs.map → RadioButton-D6oyNmVU.cjs.map} +1 -1
  152. package/dist/next/RadioButton.cjs.js +1 -1
  153. package/dist/next/RadioButton.js +1 -1
  154. package/dist/next/{Rating-BuPujSZA.cjs → Rating-BbqxsFU9.cjs} +34 -34
  155. package/dist/next/{Rating-BuPujSZA.cjs.map → Rating-BbqxsFU9.cjs.map} +1 -1
  156. package/dist/next/{Rating-BhZSzD7o.js → Rating-umLbRaAb.js} +34 -34
  157. package/dist/next/{Rating-BhZSzD7o.js.map → Rating-umLbRaAb.js.map} +1 -1
  158. package/dist/next/Rating.cjs.js +1 -1
  159. package/dist/next/Rating.js +1 -1
  160. package/dist/next/{Skeleton-Cp1BE2Ac.cjs → Skeleton-C6wW8eyR.cjs} +26 -26
  161. package/dist/next/{Skeleton-Cp1BE2Ac.cjs.map → Skeleton-C6wW8eyR.cjs.map} +1 -1
  162. package/dist/next/{Skeleton-KKJc191y.js → Skeleton-DC4LJ059.js} +26 -26
  163. package/dist/next/{Skeleton-KKJc191y.js.map → Skeleton-DC4LJ059.js.map} +1 -1
  164. package/dist/next/Skeleton.cjs.js +1 -1
  165. package/dist/next/Skeleton.js +1 -1
  166. package/dist/next/{Slider-BK-N-zXi.cjs → Slider-g41Qvh6s.cjs} +43 -43
  167. package/dist/next/{Slider-BK-N-zXi.cjs.map → Slider-g41Qvh6s.cjs.map} +1 -1
  168. package/dist/next/{Slider-BvcM4-MS.js → Slider-wAbg8hOH.js} +43 -43
  169. package/dist/next/{Slider-BvcM4-MS.js.map → Slider-wAbg8hOH.js.map} +1 -1
  170. package/dist/next/Slider.cjs.js +1 -1
  171. package/dist/next/Slider.js +1 -1
  172. package/dist/next/{Spinner-Dh8iu4p8.js → Spinner-D3OQ29U9.js} +37 -37
  173. package/dist/next/{Spinner-Dh8iu4p8.js.map → Spinner-D3OQ29U9.js.map} +1 -1
  174. package/dist/next/{Spinner-DqTR9rvk.cjs → Spinner-Y53Z6fwK.cjs} +37 -37
  175. package/dist/next/{Spinner-DqTR9rvk.cjs.map → Spinner-Y53Z6fwK.cjs.map} +1 -1
  176. package/dist/next/Spinner.cjs.js +1 -1
  177. package/dist/next/Spinner.js +1 -1
  178. package/dist/next/{Stepper-nRipbdpR.js → Stepper-BvA_ZAho.js} +39 -39
  179. package/dist/next/{Stepper-nRipbdpR.js.map → Stepper-BvA_ZAho.js.map} +1 -1
  180. package/dist/next/{Stepper-RjdxxcS6.cjs → Stepper-D6X70Sr6.cjs} +39 -39
  181. package/dist/next/{Stepper-RjdxxcS6.cjs.map → Stepper-D6X70Sr6.cjs.map} +1 -1
  182. package/dist/next/Stepper.cjs.js +1 -1
  183. package/dist/next/Stepper.js +1 -1
  184. package/dist/next/{Tabs-D90stLbD.js → Tabs-Bur4oYVF.js} +44 -44
  185. package/dist/next/{Tabs-D90stLbD.js.map → Tabs-Bur4oYVF.js.map} +1 -1
  186. package/dist/next/{Tabs-BgKvtbgg.cjs → Tabs-D-5VRbfh.cjs} +44 -44
  187. package/dist/next/{Tabs-BgKvtbgg.cjs.map → Tabs-D-5VRbfh.cjs.map} +1 -1
  188. package/dist/next/Tabs.cjs.js +1 -1
  189. package/dist/next/Tabs.js +1 -1
  190. package/dist/next/{TagInput-I9GEOn4z.js → TagInput-DKzxPiwU.js} +46 -46
  191. package/dist/next/{TagInput-I9GEOn4z.js.map → TagInput-DKzxPiwU.js.map} +1 -1
  192. package/dist/next/{TagInput-C7ohFpQN.cjs → TagInput-DfNJiPKh.cjs} +46 -46
  193. package/dist/next/{TagInput-C7ohFpQN.cjs.map → TagInput-DfNJiPKh.cjs.map} +1 -1
  194. package/dist/next/TagInput.cjs.js +1 -1
  195. package/dist/next/TagInput.js +1 -1
  196. package/dist/next/{Toolbar-B043HxPz.cjs → Toolbar-PwnuYGDR.cjs} +34 -34
  197. package/dist/next/{Toolbar-B043HxPz.cjs.map → Toolbar-PwnuYGDR.cjs.map} +1 -1
  198. package/dist/next/{Toolbar-DJ2eWNqF.js → Toolbar-wbusnAUV.js} +34 -34
  199. package/dist/next/{Toolbar-DJ2eWNqF.js.map → Toolbar-wbusnAUV.js.map} +1 -1
  200. package/dist/next/Toolbar.cjs.js +1 -1
  201. package/dist/next/Toolbar.js +1 -1
  202. package/dist/next/{Tooltip-BAv_JHBJ.cjs → Tooltip-DPFnMhUd.cjs} +39 -39
  203. package/dist/next/{Tooltip-BAv_JHBJ.cjs.map → Tooltip-DPFnMhUd.cjs.map} +1 -1
  204. package/dist/next/{Tooltip-BCtlhs_A.js → Tooltip-_GVlUXAq.js} +39 -39
  205. package/dist/next/{Tooltip-BCtlhs_A.js.map → Tooltip-_GVlUXAq.js.map} +1 -1
  206. package/dist/next/Tooltip.cjs.js +1 -1
  207. package/dist/next/Tooltip.js +1 -1
  208. package/dist/next/boreal-ui.css +3123 -2410
  209. package/dist/next/index.cjs.js +56 -56
  210. package/dist/next/index.js +56 -56
  211. package/dist/tsconfig.build.tsbuildinfo +1 -1
  212. package/dist/types/components/Card/Card.types.d.ts +2 -1
  213. package/dist/types/components/Card/Card.types.d.ts.map +1 -1
  214. package/dist/types/components/Card/CardBase.d.ts.map +1 -1
  215. package/dist/types/components/Card/next/Card.d.ts.map +1 -1
  216. package/package.json +1 -1
  217. package/dist/core/Card-CbGHr_tX.js.map +0 -1
  218. package/dist/core/Card-De2epy0R.cjs.map +0 -1
  219. package/dist/next/Card-CtUR7xR3.js.map +0 -1
  220. package/dist/next/Card-D2vuSJt0.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPalette-Bzqc18YQ.js","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/next/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type { CommandPaletteProps } from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface CommandPaletteBaseProps extends CommandPaletteProps {\r\n classMap: Record<string, string>;\r\n TextInputComponent: React.ElementType;\r\n}\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<typeof commands>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) =>\r\n cmd.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (activeIndex < 0 || activeIndex >= filtered.length) {\r\n setActiveIndex(0);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n prevFocusRef.current?.focus?.();\r\n };\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (isOpen && inputRef.current) inputRef.current.focus();\r\n }, [isOpen]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0 && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\r\n }\r\n } else if (e.key === \"Escape\") {\r\n onClose();\r\n }\r\n },\r\n [filtered, activeIndex, onClose]\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") onClose();\r\n },\r\n [onClose]\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const listId = `${testId}-list`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Command palette\"\r\n data-testid={testId}\r\n >\r\n <TextInputComponent\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\r\n setQuery(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={filtered.length > 0}\r\n aria-controls={listId}\r\n aria-activedescendant={\r\n activeIndex >= 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id={listId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n aria-busy={isLoading || undefined}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={`${cmd.label}-${index}`}\r\n id={`cmd-${index}`}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n index === activeIndex && classMap.active\r\n )}\r\n onClick={() => {\r\n cmd.action();\r\n onClose();\r\n }}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n {cmd.label}\r\n </li>\r\n ))\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n >\r\n No matching results\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\nexport default CommandPaletteBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport styles from \"./CommandPalette.module.scss\";\r\nimport { TextInput } from \"@/index.next\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={styles}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\nCommandPalette.displayName = \"CommandPalette\";\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,SAAiB,EAAE;AACzD,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;AACrE,QAAM,eAAe,OAA2B,IAAI;AAEpD,QAAM,WAAW,cACb,eACA,SAAS;AAAA,IAAO,CAAC,QACf,IAAI,MAAM,cAAc,SAAS,MAAM,YAAA,CAAa;AAAA,EAAA;AAG1D,YAAU,MAAM;AACd,QAAI,SAAS,WAAW,GAAG;AACzB,qBAAe,EAAE;AAAA,IACnB,WAAW,cAAc,KAAK,eAAe,SAAS,QAAQ;AAC5D,qBAAe,CAAC;AAAA,IAClB;AAAA,EACF,GAAG,CAAC,UAAU,WAAW,CAAC;AAE1B,YAAU,MAAM;AACd,QAAI,CAAC,YAAa;AAElB,QAAI,YAAY,QAAS,cAAa,YAAY,OAAO;AAEzD,UAAM,IAAI,MAAM,KAAA;AAChB,QAAI,CAAC,GAAG;AACN,sBAAgB,CAAA,CAAE;AAClB,mBAAa,KAAK;AAClB;AAAA,IACF;AAEA,iBAAa,IAAI;AACjB,gBAAY,UAAU,WAAW,MAAM;AACrC,kBAAY,CAAC,EACV,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,iBAAa,UAAW,SAAS,iBAAiC;AAElE,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,EAAE;AACjB,iBAAW,KAAK;AAChB,+BAAa,YAAb,mBAAsB,UAAtB;AAAA,IACF;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,YAAI,SAAS,WAAW,EAAG;AAC3B,UAAE,eAAA;AACF,uBAAe,CAAC,UAAU,OAAO,KAAK,SAAS,MAAM;AAAA,MACvD,WAAW,EAAE,QAAQ,WAAW;AAC9B,YAAI,SAAS,WAAW,EAAG;AAC3B,UAAE,eAAA;AACF;AAAA,UACE,CAAC,UAAU,OAAO,IAAI,SAAS,UAAU,SAAS;AAAA,QAAA;AAAA,MAEtD,WAAW,EAAE,QAAQ,SAAS;AAC5B,YAAI,eAAe,KAAK,SAAS,WAAW,GAAG;AAC7C,mBAAS,WAAW,EAAE,OAAA;AACtB,kBAAA;AAAA,QACF;AAAA,MACF,WAAW,EAAE,QAAQ,UAAU;AAC7B,gBAAA;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa,OAAO;AAAA,EAAA;AAGjC,QAAM,yBAAyB;AAAA,IAC7B,CAAC,MAAqC;AACpC,UAAI,EAAE,QAAQ,SAAU,SAAA;AAAA,IAC1B;AAAA,IACA,CAAC,OAAO;AAAA,EAAA;AAGV,MAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAe,QAAO;AAElD,QAAM,SAAS,GAAG,MAAM;AAExB,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,WAAW;AAAA,YACX,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,qBAAkB;AAAA,kBAClB,iBAAc;AAAA,kBACd,iBAAe,SAAS,SAAS;AAAA,kBACjC,iBAAe;AAAA,kBACf,yBACE,eAAe,IAAI,OAAO,WAAW,KAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,cAI9C;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,kBACJ,WAAW,SAAS;AAAA,kBACpB,MAAK;AAAA,kBACL,cAAW;AAAA,kBACX,aAAW,aAAa;AAAA,kBAEvB,UAAA,YACC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAW,kBAAkB,SAAS,MAAM,SAAS,KAAK;AAAA,sBAC1D,MAAK;AAAA,sBACL,iBAAc;AAAA,sBACd,iBAAc;AAAA,sBACf,UAAA;AAAA,oBAAA;AAAA,kBAAA,IAGC,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,GAAG,IAAI,KAAK,IAAI,KAAK;AAAA,kBAAA,CAqB7B,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;AACA,mBAAmB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9PjC,MAAM,iBAAgD,CAAC,UACrD;AAAA,EAAC;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,UAAU;AAAA,IACV,oBAAoB;AAAA,EAAA;AACtB;AAEF,eAAe,cAAc;"}
1
+ {"version":3,"file":"CommandPalette-CN0BiN0R.js","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/next/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type { CommandPaletteProps } from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface CommandPaletteBaseProps extends CommandPaletteProps {\r\n classMap: Record<string, string>;\r\n TextInputComponent: React.ElementType;\r\n}\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<typeof commands>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) =>\r\n cmd.label.toLowerCase().includes(query.toLowerCase())\r\n );\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (activeIndex < 0 || activeIndex >= filtered.length) {\r\n setActiveIndex(0);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = (document.activeElement as HTMLElement) ?? null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n prevFocusRef.current?.focus?.();\r\n };\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (isOpen && inputRef.current) inputRef.current.focus();\r\n }, [isOpen]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev + 1) % filtered.length);\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex(\r\n (prev) => (prev - 1 + filtered.length) % filtered.length\r\n );\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0 && filtered[activeIndex]) {\r\n filtered[activeIndex].action();\r\n onClose();\r\n }\r\n } else if (e.key === \"Escape\") {\r\n onClose();\r\n }\r\n },\r\n [filtered, activeIndex, onClose]\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") onClose();\r\n },\r\n [onClose]\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const listId = `${testId}-list`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Command palette\"\r\n data-testid={testId}\r\n >\r\n <TextInputComponent\r\n ref={inputRef}\r\n type=\"text\"\r\n value={query}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\r\n setQuery(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={filtered.length > 0}\r\n aria-controls={listId}\r\n aria-activedescendant={\r\n activeIndex >= 0 ? `cmd-${activeIndex}` : undefined\r\n }\r\n />\r\n\r\n <ul\r\n id={listId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label=\"Command suggestions\"\r\n aria-busy={isLoading || undefined}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => (\r\n <li\r\n key={`${cmd.label}-${index}`}\r\n id={`cmd-${index}`}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n index === activeIndex && classMap.active\r\n )}\r\n onClick={() => {\r\n cmd.action();\r\n onClose();\r\n }}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n {cmd.label}\r\n </li>\r\n ))\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n >\r\n No matching results\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\nexport default CommandPaletteBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport styles from \"./CommandPalette.module.scss\";\r\nimport { TextInput } from \"@/index.next\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={styles}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\nCommandPalette.displayName = \"CommandPalette\";\r\nexport default CommandPalette;\r\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const CommandPalette = require("./CommandPalette-GmgyP8kF.cjs");
2
+ const CommandPalette = require("./CommandPalette-BO6R9zQs.cjs");
3
3
  module.exports = CommandPalette.CommandPalette;
4
4
  //# sourceMappingURL=CommandPalette.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { C } from "./CommandPalette-Bzqc18YQ.js";
1
+ import { C } from "./CommandPalette-CN0BiN0R.js";
2
2
  export {
3
3
  C as default
4
4
  };
@@ -4,38 +4,38 @@ 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 noScroll = "_noScroll_1a4xq_108";
8
- const errorMessage = "_errorMessage_1a4xq_109";
9
- const loadingContainer = "_loadingContainer_1a4xq_110";
10
- const hideScrollbar = "_hideScrollbar_1a4xq_102";
11
- const sr_only = "_sr_only_1a4xq_111";
12
- const wrapper = "_wrapper_1a4xq_529";
13
- const table = "_table_1a4xq_544";
14
- const sortable = "_sortable_1a4xq_583";
15
- const sort_icon = "_sort_icon_1a4xq_590";
16
- const clickable = "_clickable_1a4xq_604";
17
- const striped = "_striped_1a4xq_618";
18
- const clear = "_clear_1a4xq_621";
19
- const primary = "_primary_1a4xq_667";
20
- const outline = "_outline_1a4xq_672";
21
- const secondary = "_secondary_1a4xq_682";
22
- const tertiary = "_tertiary_1a4xq_697";
23
- const quaternary = "_quaternary_1a4xq_712";
24
- const success = "_success_1a4xq_742";
25
- const error = "_error_1a4xq_109";
26
- const warning = "_warning_1a4xq_772";
27
- const roundNone = "_roundNone_1a4xq_787";
28
- const roundSmall = "_roundSmall_1a4xq_791";
29
- const roundMedium = "_roundMedium_1a4xq_795";
30
- const roundLarge = "_roundLarge_1a4xq_799";
31
- const roundFull = "_roundFull_1a4xq_803";
32
- const shadowNone = "_shadowNone_1a4xq_807";
33
- const shadowLight = "_shadowLight_1a4xq_811";
34
- const shadowMedium = "_shadowMedium_1a4xq_815";
35
- const shadowStrong = "_shadowStrong_1a4xq_819";
36
- const shadowIntense = "_shadowIntense_1a4xq_823";
37
- const spin = "_spin_1a4xq_1";
38
- const pulse = "_pulse_1a4xq_1";
7
+ const noScroll = "_noScroll_1w6ns_108";
8
+ const errorMessage = "_errorMessage_1w6ns_109";
9
+ const loadingContainer = "_loadingContainer_1w6ns_110";
10
+ const hideScrollbar = "_hideScrollbar_1w6ns_102";
11
+ const sr_only = "_sr_only_1w6ns_111";
12
+ const wrapper = "_wrapper_1w6ns_552";
13
+ const table = "_table_1w6ns_567";
14
+ const sortable = "_sortable_1w6ns_606";
15
+ const sort_icon = "_sort_icon_1w6ns_613";
16
+ const clickable = "_clickable_1w6ns_627";
17
+ const striped = "_striped_1w6ns_641";
18
+ const clear = "_clear_1w6ns_644";
19
+ const primary = "_primary_1w6ns_690";
20
+ const outline = "_outline_1w6ns_695";
21
+ const secondary = "_secondary_1w6ns_705";
22
+ const tertiary = "_tertiary_1w6ns_720";
23
+ const quaternary = "_quaternary_1w6ns_735";
24
+ const success = "_success_1w6ns_765";
25
+ const error = "_error_1w6ns_109";
26
+ const warning = "_warning_1w6ns_795";
27
+ const roundNone = "_roundNone_1w6ns_810";
28
+ const roundSmall = "_roundSmall_1w6ns_814";
29
+ const roundMedium = "_roundMedium_1w6ns_818";
30
+ const roundLarge = "_roundLarge_1w6ns_822";
31
+ const roundFull = "_roundFull_1w6ns_826";
32
+ const shadowNone = "_shadowNone_1w6ns_830";
33
+ const shadowLight = "_shadowLight_1w6ns_834";
34
+ const shadowMedium = "_shadowMedium_1w6ns_838";
35
+ const shadowStrong = "_shadowStrong_1w6ns_842";
36
+ const shadowIntense = "_shadowIntense_1w6ns_846";
37
+ const spin = "_spin_1w6ns_1";
38
+ const pulse = "_pulse_1w6ns_1";
39
39
  const styles = {
40
40
  noScroll,
41
41
  errorMessage,
@@ -67,15 +67,15 @@ const styles = {
67
67
  shadowMedium,
68
68
  shadowStrong,
69
69
  shadowIntense,
70
- "fade-in": "_fade-in_1a4xq_1",
71
- "slide-up": "_slide-up_1a4xq_1",
72
- "spin-3d": "_spin-3d_1a4xq_1",
70
+ "fade-in": "_fade-in_1w6ns_1",
71
+ "slide-up": "_slide-up_1w6ns_1",
72
+ "spin-3d": "_spin-3d_1w6ns_1",
73
73
  spin,
74
74
  pulse,
75
- "fade-in-up": "_fade-in-up_1a4xq_1",
76
- "progress-grow": "_progress-grow_1a4xq_1",
77
- "indeterminate-move": "_indeterminate-move_1a4xq_1",
78
- "skeleton-loading": "_skeleton-loading_1a4xq_1"
75
+ "fade-in-up": "_fade-in-up_1w6ns_1",
76
+ "progress-grow": "_progress-grow_1w6ns_1",
77
+ "indeterminate-move": "_indeterminate-move_1w6ns_1",
78
+ "skeleton-loading": "_skeleton-loading_1w6ns_1"
79
79
  };
80
80
  function DataTableBase({
81
81
  columns,
@@ -230,4 +230,4 @@ function DataTable(props) {
230
230
  }
231
231
  DataTable.displayName = "DataTable";
232
232
  exports.DataTable = DataTable;
233
- //# sourceMappingURL=DataTable-Cy3GLZ1j.cjs.map
233
+ //# sourceMappingURL=DataTable-CUJXAkHe.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable-Cy3GLZ1j.cjs","sources":["../../src/components/DataTable/DataTableBase.tsx","../../src/components/DataTable/next/DataTable.tsx"],"sourcesContent":["import { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { DataTableBaseProps } from \"./DataTable.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\nfunction DataTableBase<T extends object>({\r\n columns,\r\n data,\r\n onRowClick,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n outline = false,\r\n className = \"\",\r\n striped = true,\r\n defaultSortKey,\r\n ariaLabel,\r\n defaultSortOrder = \"asc\",\r\n serverSort = false,\r\n onSortChange,\r\n rowKey,\r\n \"data-testid\": testId = \"data-table\",\r\n}: DataTableBaseProps<T>) {\r\n const [sortKey, setSortKey] = useState<keyof T | undefined>(defaultSortKey);\r\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(defaultSortOrder);\r\n\r\n const sortedData = useMemo(() => {\r\n if (serverSort || !sortKey) return data;\r\n\r\n return [...data].sort((a, b) => {\r\n const valA = a[sortKey];\r\n const valB = b[sortKey];\r\n if (valA === valB) return 0;\r\n if (valA == null) return 1;\r\n if (valB == null) return -1;\r\n\r\n const numA = Number(valA);\r\n const numB = Number(valB);\r\n const bothNumeric = !Number.isNaN(numA) && !Number.isNaN(numB);\r\n\r\n if (bothNumeric) {\r\n return sortOrder === \"asc\" ? numA - numB : numB - numA;\r\n }\r\n const cmp = String(valA).localeCompare(String(valB), undefined, {\r\n numeric: true,\r\n });\r\n return sortOrder === \"asc\" ? cmp : -cmp;\r\n });\r\n }, [data, sortKey, sortOrder, serverSort]);\r\n\r\n const handleSort = (key: keyof T) => {\r\n const newOrder = key === sortKey && sortOrder === \"asc\" ? \"desc\" : \"asc\";\r\n setSortKey(key);\r\n setSortOrder(newOrder);\r\n if (serverSort && onSortChange) onSortChange(key, newOrder);\r\n };\r\n\r\n const handleSortKeyDown = (e: KeyboardEvent, key: keyof T) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleSort(key);\r\n }\r\n };\r\n\r\n const handleRowKeyDown =\r\n (row: T) => (e: KeyboardEvent<HTMLTableRowElement>) => {\r\n if (!onRowClick) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onRowClick(row);\r\n }\r\n };\r\n\r\n const captionId = `${testId}-caption`;\r\n\r\n return (\r\n <div\r\n className={combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n striped && classMap.striped,\r\n className\r\n )}\r\n data-testid={testId}\r\n >\r\n <table\r\n className={combineClassNames(\r\n classMap.table,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline\r\n )}\r\n aria-label={ariaLabel}\r\n aria-describedby={captionId}\r\n >\r\n <caption id={captionId} className={classMap.srOnly ?? \"sr_only\"}>\r\n Sortable data table\r\n </caption>\r\n\r\n <thead>\r\n <tr>\r\n {columns.map((col) => {\r\n const isActive = sortKey === col.key;\r\n return (\r\n <th\r\n key={String(col.key)}\r\n scope=\"col\"\r\n tabIndex={col.sortable ? 0 : undefined}\r\n aria-sort={\r\n col.sortable\r\n ? isActive\r\n ? sortOrder === \"asc\"\r\n ? \"ascending\"\r\n : \"descending\"\r\n : \"none\"\r\n : undefined\r\n }\r\n onClick={() => col.sortable && handleSort(col.key)}\r\n onKeyDown={(e) =>\r\n col.sortable && handleSortKeyDown(e, col.key)\r\n }\r\n className={combineClassNames(\r\n col.sortable && classMap.sortable,\r\n classMap.headerCell\r\n )}\r\n >\r\n <span>{col.label}</span>\r\n {col.sortable && (\r\n <span className={classMap.sortIcon} aria-hidden=\"true\">\r\n {isActive ? (sortOrder === \"asc\" ? \"▲\" : \"▼\") : \"⇅\"}\r\n </span>\r\n )}\r\n </th>\r\n );\r\n })}\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {sortedData.length === 0 ? (\r\n <tr>\r\n <td\r\n className={classMap.emptyCell}\r\n colSpan={columns.length}\r\n // announce emptiness politely\r\n aria-live=\"polite\"\r\n >\r\n No data available\r\n </td>\r\n </tr>\r\n ) : (\r\n sortedData.map((row, idx) => {\r\n const key = rowKey ? rowKey(row) : idx;\r\n return (\r\n <tr\r\n key={key}\r\n className={combineClassNames(\r\n onRowClick && classMap.clickable,\r\n striped && idx % 2 === 1 && classMap.striped\r\n )}\r\n onClick={() => onRowClick?.(row)}\r\n onKeyDown={handleRowKeyDown(row)}\r\n tabIndex={onRowClick ? 0 : undefined}\r\n >\r\n {columns.map((col) => (\r\n <td\r\n key={String(col.key)}\r\n data-label={col.label}\r\n className={classMap.cell}\r\n >\r\n {col.render\r\n ? col.render(row[col.key], row)\r\n : typeof row[col.key] === \"object\"\r\n ? JSON.stringify(row[col.key])\r\n : String(row[col.key] ?? \"\")}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n}\r\nDataTableBase.displayName = \"DataTableBase\";\r\nexport default DataTableBase;\r\n","\"use client\";\r\n\r\nimport styles from \"./DataTable.module.scss\";\r\nimport DataTableBase from \"../DataTableBase\";\r\nimport { DataTableProps } from \"../DataTable.types\";\r\n\r\nfunction DataTable<T extends object>(props: DataTableProps<T>) {\r\n return <DataTableBase {...props} classMap={styles} />;\r\n}\r\nDataTable.displayName = \"DataTable\";\r\nexport default DataTable;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","outline","striped","useState","useMemo","jsx","combineClassNames","capitalize","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable-CUJXAkHe.cjs","sources":["../../src/components/DataTable/DataTableBase.tsx","../../src/components/DataTable/next/DataTable.tsx"],"sourcesContent":["import { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { DataTableBaseProps } from \"./DataTable.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\nfunction DataTableBase<T extends object>({\r\n columns,\r\n data,\r\n onRowClick,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n outline = false,\r\n className = \"\",\r\n striped = true,\r\n defaultSortKey,\r\n ariaLabel,\r\n defaultSortOrder = \"asc\",\r\n serverSort = false,\r\n onSortChange,\r\n rowKey,\r\n \"data-testid\": testId = \"data-table\",\r\n}: DataTableBaseProps<T>) {\r\n const [sortKey, setSortKey] = useState<keyof T | undefined>(defaultSortKey);\r\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(defaultSortOrder);\r\n\r\n const sortedData = useMemo(() => {\r\n if (serverSort || !sortKey) return data;\r\n\r\n return [...data].sort((a, b) => {\r\n const valA = a[sortKey];\r\n const valB = b[sortKey];\r\n if (valA === valB) return 0;\r\n if (valA == null) return 1;\r\n if (valB == null) return -1;\r\n\r\n const numA = Number(valA);\r\n const numB = Number(valB);\r\n const bothNumeric = !Number.isNaN(numA) && !Number.isNaN(numB);\r\n\r\n if (bothNumeric) {\r\n return sortOrder === \"asc\" ? numA - numB : numB - numA;\r\n }\r\n const cmp = String(valA).localeCompare(String(valB), undefined, {\r\n numeric: true,\r\n });\r\n return sortOrder === \"asc\" ? cmp : -cmp;\r\n });\r\n }, [data, sortKey, sortOrder, serverSort]);\r\n\r\n const handleSort = (key: keyof T) => {\r\n const newOrder = key === sortKey && sortOrder === \"asc\" ? \"desc\" : \"asc\";\r\n setSortKey(key);\r\n setSortOrder(newOrder);\r\n if (serverSort && onSortChange) onSortChange(key, newOrder);\r\n };\r\n\r\n const handleSortKeyDown = (e: KeyboardEvent, key: keyof T) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleSort(key);\r\n }\r\n };\r\n\r\n const handleRowKeyDown =\r\n (row: T) => (e: KeyboardEvent<HTMLTableRowElement>) => {\r\n if (!onRowClick) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onRowClick(row);\r\n }\r\n };\r\n\r\n const captionId = `${testId}-caption`;\r\n\r\n return (\r\n <div\r\n className={combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n striped && classMap.striped,\r\n className\r\n )}\r\n data-testid={testId}\r\n >\r\n <table\r\n className={combineClassNames(\r\n classMap.table,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline\r\n )}\r\n aria-label={ariaLabel}\r\n aria-describedby={captionId}\r\n >\r\n <caption id={captionId} className={classMap.srOnly ?? \"sr_only\"}>\r\n Sortable data table\r\n </caption>\r\n\r\n <thead>\r\n <tr>\r\n {columns.map((col) => {\r\n const isActive = sortKey === col.key;\r\n return (\r\n <th\r\n key={String(col.key)}\r\n scope=\"col\"\r\n tabIndex={col.sortable ? 0 : undefined}\r\n aria-sort={\r\n col.sortable\r\n ? isActive\r\n ? sortOrder === \"asc\"\r\n ? \"ascending\"\r\n : \"descending\"\r\n : \"none\"\r\n : undefined\r\n }\r\n onClick={() => col.sortable && handleSort(col.key)}\r\n onKeyDown={(e) =>\r\n col.sortable && handleSortKeyDown(e, col.key)\r\n }\r\n className={combineClassNames(\r\n col.sortable && classMap.sortable,\r\n classMap.headerCell\r\n )}\r\n >\r\n <span>{col.label}</span>\r\n {col.sortable && (\r\n <span className={classMap.sortIcon} aria-hidden=\"true\">\r\n {isActive ? (sortOrder === \"asc\" ? \"▲\" : \"▼\") : \"⇅\"}\r\n </span>\r\n )}\r\n </th>\r\n );\r\n })}\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {sortedData.length === 0 ? (\r\n <tr>\r\n <td\r\n className={classMap.emptyCell}\r\n colSpan={columns.length}\r\n // announce emptiness politely\r\n aria-live=\"polite\"\r\n >\r\n No data available\r\n </td>\r\n </tr>\r\n ) : (\r\n sortedData.map((row, idx) => {\r\n const key = rowKey ? rowKey(row) : idx;\r\n return (\r\n <tr\r\n key={key}\r\n className={combineClassNames(\r\n onRowClick && classMap.clickable,\r\n striped && idx % 2 === 1 && classMap.striped\r\n )}\r\n onClick={() => onRowClick?.(row)}\r\n onKeyDown={handleRowKeyDown(row)}\r\n tabIndex={onRowClick ? 0 : undefined}\r\n >\r\n {columns.map((col) => (\r\n <td\r\n key={String(col.key)}\r\n data-label={col.label}\r\n className={classMap.cell}\r\n >\r\n {col.render\r\n ? col.render(row[col.key], row)\r\n : typeof row[col.key] === \"object\"\r\n ? JSON.stringify(row[col.key])\r\n : String(row[col.key] ?? \"\")}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n}\r\nDataTableBase.displayName = \"DataTableBase\";\r\nexport default DataTableBase;\r\n","\"use client\";\r\n\r\nimport styles from \"./DataTable.module.scss\";\r\nimport DataTableBase from \"../DataTableBase\";\r\nimport { DataTableProps } from \"../DataTable.types\";\r\n\r\nfunction DataTable<T extends object>(props: DataTableProps<T>) {\r\n return <DataTableBase {...props} classMap={styles} />;\r\n}\r\nDataTable.displayName = \"DataTable\";\r\nexport default DataTable;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","outline","striped","useState","useMemo","jsx","combineClassNames","capitalize","jsxs"],"mappings":"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"}
@@ -3,38 +3,38 @@ import { useState, 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 { d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
6
- const noScroll = "_noScroll_1a4xq_108";
7
- const errorMessage = "_errorMessage_1a4xq_109";
8
- const loadingContainer = "_loadingContainer_1a4xq_110";
9
- const hideScrollbar = "_hideScrollbar_1a4xq_102";
10
- const sr_only = "_sr_only_1a4xq_111";
11
- const wrapper = "_wrapper_1a4xq_529";
12
- const table = "_table_1a4xq_544";
13
- const sortable = "_sortable_1a4xq_583";
14
- const sort_icon = "_sort_icon_1a4xq_590";
15
- const clickable = "_clickable_1a4xq_604";
16
- const striped = "_striped_1a4xq_618";
17
- const clear = "_clear_1a4xq_621";
18
- const primary = "_primary_1a4xq_667";
19
- const outline = "_outline_1a4xq_672";
20
- const secondary = "_secondary_1a4xq_682";
21
- const tertiary = "_tertiary_1a4xq_697";
22
- const quaternary = "_quaternary_1a4xq_712";
23
- const success = "_success_1a4xq_742";
24
- const error = "_error_1a4xq_109";
25
- const warning = "_warning_1a4xq_772";
26
- const roundNone = "_roundNone_1a4xq_787";
27
- const roundSmall = "_roundSmall_1a4xq_791";
28
- const roundMedium = "_roundMedium_1a4xq_795";
29
- const roundLarge = "_roundLarge_1a4xq_799";
30
- const roundFull = "_roundFull_1a4xq_803";
31
- const shadowNone = "_shadowNone_1a4xq_807";
32
- const shadowLight = "_shadowLight_1a4xq_811";
33
- const shadowMedium = "_shadowMedium_1a4xq_815";
34
- const shadowStrong = "_shadowStrong_1a4xq_819";
35
- const shadowIntense = "_shadowIntense_1a4xq_823";
36
- const spin = "_spin_1a4xq_1";
37
- const pulse = "_pulse_1a4xq_1";
6
+ const noScroll = "_noScroll_1w6ns_108";
7
+ const errorMessage = "_errorMessage_1w6ns_109";
8
+ const loadingContainer = "_loadingContainer_1w6ns_110";
9
+ const hideScrollbar = "_hideScrollbar_1w6ns_102";
10
+ const sr_only = "_sr_only_1w6ns_111";
11
+ const wrapper = "_wrapper_1w6ns_552";
12
+ const table = "_table_1w6ns_567";
13
+ const sortable = "_sortable_1w6ns_606";
14
+ const sort_icon = "_sort_icon_1w6ns_613";
15
+ const clickable = "_clickable_1w6ns_627";
16
+ const striped = "_striped_1w6ns_641";
17
+ const clear = "_clear_1w6ns_644";
18
+ const primary = "_primary_1w6ns_690";
19
+ const outline = "_outline_1w6ns_695";
20
+ const secondary = "_secondary_1w6ns_705";
21
+ const tertiary = "_tertiary_1w6ns_720";
22
+ const quaternary = "_quaternary_1w6ns_735";
23
+ const success = "_success_1w6ns_765";
24
+ const error = "_error_1w6ns_109";
25
+ const warning = "_warning_1w6ns_795";
26
+ const roundNone = "_roundNone_1w6ns_810";
27
+ const roundSmall = "_roundSmall_1w6ns_814";
28
+ const roundMedium = "_roundMedium_1w6ns_818";
29
+ const roundLarge = "_roundLarge_1w6ns_822";
30
+ const roundFull = "_roundFull_1w6ns_826";
31
+ const shadowNone = "_shadowNone_1w6ns_830";
32
+ const shadowLight = "_shadowLight_1w6ns_834";
33
+ const shadowMedium = "_shadowMedium_1w6ns_838";
34
+ const shadowStrong = "_shadowStrong_1w6ns_842";
35
+ const shadowIntense = "_shadowIntense_1w6ns_846";
36
+ const spin = "_spin_1w6ns_1";
37
+ const pulse = "_pulse_1w6ns_1";
38
38
  const styles = {
39
39
  noScroll,
40
40
  errorMessage,
@@ -66,15 +66,15 @@ const styles = {
66
66
  shadowMedium,
67
67
  shadowStrong,
68
68
  shadowIntense,
69
- "fade-in": "_fade-in_1a4xq_1",
70
- "slide-up": "_slide-up_1a4xq_1",
71
- "spin-3d": "_spin-3d_1a4xq_1",
69
+ "fade-in": "_fade-in_1w6ns_1",
70
+ "slide-up": "_slide-up_1w6ns_1",
71
+ "spin-3d": "_spin-3d_1w6ns_1",
72
72
  spin,
73
73
  pulse,
74
- "fade-in-up": "_fade-in-up_1a4xq_1",
75
- "progress-grow": "_progress-grow_1a4xq_1",
76
- "indeterminate-move": "_indeterminate-move_1a4xq_1",
77
- "skeleton-loading": "_skeleton-loading_1a4xq_1"
74
+ "fade-in-up": "_fade-in-up_1w6ns_1",
75
+ "progress-grow": "_progress-grow_1w6ns_1",
76
+ "indeterminate-move": "_indeterminate-move_1w6ns_1",
77
+ "skeleton-loading": "_skeleton-loading_1w6ns_1"
78
78
  };
79
79
  function DataTableBase({
80
80
  columns,
@@ -231,4 +231,4 @@ DataTable.displayName = "DataTable";
231
231
  export {
232
232
  DataTable as D
233
233
  };
234
- //# sourceMappingURL=DataTable-BoXblTGY.js.map
234
+ //# sourceMappingURL=DataTable-mMStogSP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable-BoXblTGY.js","sources":["../../src/components/DataTable/DataTableBase.tsx","../../src/components/DataTable/next/DataTable.tsx"],"sourcesContent":["import { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { DataTableBaseProps } from \"./DataTable.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\nfunction DataTableBase<T extends object>({\r\n columns,\r\n data,\r\n onRowClick,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n outline = false,\r\n className = \"\",\r\n striped = true,\r\n defaultSortKey,\r\n ariaLabel,\r\n defaultSortOrder = \"asc\",\r\n serverSort = false,\r\n onSortChange,\r\n rowKey,\r\n \"data-testid\": testId = \"data-table\",\r\n}: DataTableBaseProps<T>) {\r\n const [sortKey, setSortKey] = useState<keyof T | undefined>(defaultSortKey);\r\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(defaultSortOrder);\r\n\r\n const sortedData = useMemo(() => {\r\n if (serverSort || !sortKey) return data;\r\n\r\n return [...data].sort((a, b) => {\r\n const valA = a[sortKey];\r\n const valB = b[sortKey];\r\n if (valA === valB) return 0;\r\n if (valA == null) return 1;\r\n if (valB == null) return -1;\r\n\r\n const numA = Number(valA);\r\n const numB = Number(valB);\r\n const bothNumeric = !Number.isNaN(numA) && !Number.isNaN(numB);\r\n\r\n if (bothNumeric) {\r\n return sortOrder === \"asc\" ? numA - numB : numB - numA;\r\n }\r\n const cmp = String(valA).localeCompare(String(valB), undefined, {\r\n numeric: true,\r\n });\r\n return sortOrder === \"asc\" ? cmp : -cmp;\r\n });\r\n }, [data, sortKey, sortOrder, serverSort]);\r\n\r\n const handleSort = (key: keyof T) => {\r\n const newOrder = key === sortKey && sortOrder === \"asc\" ? \"desc\" : \"asc\";\r\n setSortKey(key);\r\n setSortOrder(newOrder);\r\n if (serverSort && onSortChange) onSortChange(key, newOrder);\r\n };\r\n\r\n const handleSortKeyDown = (e: KeyboardEvent, key: keyof T) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleSort(key);\r\n }\r\n };\r\n\r\n const handleRowKeyDown =\r\n (row: T) => (e: KeyboardEvent<HTMLTableRowElement>) => {\r\n if (!onRowClick) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onRowClick(row);\r\n }\r\n };\r\n\r\n const captionId = `${testId}-caption`;\r\n\r\n return (\r\n <div\r\n className={combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n striped && classMap.striped,\r\n className\r\n )}\r\n data-testid={testId}\r\n >\r\n <table\r\n className={combineClassNames(\r\n classMap.table,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline\r\n )}\r\n aria-label={ariaLabel}\r\n aria-describedby={captionId}\r\n >\r\n <caption id={captionId} className={classMap.srOnly ?? \"sr_only\"}>\r\n Sortable data table\r\n </caption>\r\n\r\n <thead>\r\n <tr>\r\n {columns.map((col) => {\r\n const isActive = sortKey === col.key;\r\n return (\r\n <th\r\n key={String(col.key)}\r\n scope=\"col\"\r\n tabIndex={col.sortable ? 0 : undefined}\r\n aria-sort={\r\n col.sortable\r\n ? isActive\r\n ? sortOrder === \"asc\"\r\n ? \"ascending\"\r\n : \"descending\"\r\n : \"none\"\r\n : undefined\r\n }\r\n onClick={() => col.sortable && handleSort(col.key)}\r\n onKeyDown={(e) =>\r\n col.sortable && handleSortKeyDown(e, col.key)\r\n }\r\n className={combineClassNames(\r\n col.sortable && classMap.sortable,\r\n classMap.headerCell\r\n )}\r\n >\r\n <span>{col.label}</span>\r\n {col.sortable && (\r\n <span className={classMap.sortIcon} aria-hidden=\"true\">\r\n {isActive ? (sortOrder === \"asc\" ? \"▲\" : \"▼\") : \"⇅\"}\r\n </span>\r\n )}\r\n </th>\r\n );\r\n })}\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {sortedData.length === 0 ? (\r\n <tr>\r\n <td\r\n className={classMap.emptyCell}\r\n colSpan={columns.length}\r\n // announce emptiness politely\r\n aria-live=\"polite\"\r\n >\r\n No data available\r\n </td>\r\n </tr>\r\n ) : (\r\n sortedData.map((row, idx) => {\r\n const key = rowKey ? rowKey(row) : idx;\r\n return (\r\n <tr\r\n key={key}\r\n className={combineClassNames(\r\n onRowClick && classMap.clickable,\r\n striped && idx % 2 === 1 && classMap.striped\r\n )}\r\n onClick={() => onRowClick?.(row)}\r\n onKeyDown={handleRowKeyDown(row)}\r\n tabIndex={onRowClick ? 0 : undefined}\r\n >\r\n {columns.map((col) => (\r\n <td\r\n key={String(col.key)}\r\n data-label={col.label}\r\n className={classMap.cell}\r\n >\r\n {col.render\r\n ? col.render(row[col.key], row)\r\n : typeof row[col.key] === \"object\"\r\n ? JSON.stringify(row[col.key])\r\n : String(row[col.key] ?? \"\")}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n}\r\nDataTableBase.displayName = \"DataTableBase\";\r\nexport default DataTableBase;\r\n","\"use client\";\r\n\r\nimport styles from \"./DataTable.module.scss\";\r\nimport DataTableBase from \"../DataTableBase\";\r\nimport { DataTableProps } from \"../DataTable.types\";\r\n\r\nfunction DataTable<T extends object>(props: DataTableProps<T>) {\r\n return <DataTableBase {...props} classMap={styles} />;\r\n}\r\nDataTable.displayName = \"DataTable\";\r\nexport default DataTable;\r\n"],"names":["outline","striped"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable-mMStogSP.js","sources":["../../src/components/DataTable/DataTableBase.tsx","../../src/components/DataTable/next/DataTable.tsx"],"sourcesContent":["import { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { DataTableBaseProps } from \"./DataTable.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\nfunction DataTableBase<T extends object>({\r\n columns,\r\n data,\r\n onRowClick,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n outline = false,\r\n className = \"\",\r\n striped = true,\r\n defaultSortKey,\r\n ariaLabel,\r\n defaultSortOrder = \"asc\",\r\n serverSort = false,\r\n onSortChange,\r\n rowKey,\r\n \"data-testid\": testId = \"data-table\",\r\n}: DataTableBaseProps<T>) {\r\n const [sortKey, setSortKey] = useState<keyof T | undefined>(defaultSortKey);\r\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(defaultSortOrder);\r\n\r\n const sortedData = useMemo(() => {\r\n if (serverSort || !sortKey) return data;\r\n\r\n return [...data].sort((a, b) => {\r\n const valA = a[sortKey];\r\n const valB = b[sortKey];\r\n if (valA === valB) return 0;\r\n if (valA == null) return 1;\r\n if (valB == null) return -1;\r\n\r\n const numA = Number(valA);\r\n const numB = Number(valB);\r\n const bothNumeric = !Number.isNaN(numA) && !Number.isNaN(numB);\r\n\r\n if (bothNumeric) {\r\n return sortOrder === \"asc\" ? numA - numB : numB - numA;\r\n }\r\n const cmp = String(valA).localeCompare(String(valB), undefined, {\r\n numeric: true,\r\n });\r\n return sortOrder === \"asc\" ? cmp : -cmp;\r\n });\r\n }, [data, sortKey, sortOrder, serverSort]);\r\n\r\n const handleSort = (key: keyof T) => {\r\n const newOrder = key === sortKey && sortOrder === \"asc\" ? \"desc\" : \"asc\";\r\n setSortKey(key);\r\n setSortOrder(newOrder);\r\n if (serverSort && onSortChange) onSortChange(key, newOrder);\r\n };\r\n\r\n const handleSortKeyDown = (e: KeyboardEvent, key: keyof T) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleSort(key);\r\n }\r\n };\r\n\r\n const handleRowKeyDown =\r\n (row: T) => (e: KeyboardEvent<HTMLTableRowElement>) => {\r\n if (!onRowClick) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onRowClick(row);\r\n }\r\n };\r\n\r\n const captionId = `${testId}-caption`;\r\n\r\n return (\r\n <div\r\n className={combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n striped && classMap.striped,\r\n className\r\n )}\r\n data-testid={testId}\r\n >\r\n <table\r\n className={combineClassNames(\r\n classMap.table,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline\r\n )}\r\n aria-label={ariaLabel}\r\n aria-describedby={captionId}\r\n >\r\n <caption id={captionId} className={classMap.srOnly ?? \"sr_only\"}>\r\n Sortable data table\r\n </caption>\r\n\r\n <thead>\r\n <tr>\r\n {columns.map((col) => {\r\n const isActive = sortKey === col.key;\r\n return (\r\n <th\r\n key={String(col.key)}\r\n scope=\"col\"\r\n tabIndex={col.sortable ? 0 : undefined}\r\n aria-sort={\r\n col.sortable\r\n ? isActive\r\n ? sortOrder === \"asc\"\r\n ? \"ascending\"\r\n : \"descending\"\r\n : \"none\"\r\n : undefined\r\n }\r\n onClick={() => col.sortable && handleSort(col.key)}\r\n onKeyDown={(e) =>\r\n col.sortable && handleSortKeyDown(e, col.key)\r\n }\r\n className={combineClassNames(\r\n col.sortable && classMap.sortable,\r\n classMap.headerCell\r\n )}\r\n >\r\n <span>{col.label}</span>\r\n {col.sortable && (\r\n <span className={classMap.sortIcon} aria-hidden=\"true\">\r\n {isActive ? (sortOrder === \"asc\" ? \"▲\" : \"▼\") : \"⇅\"}\r\n </span>\r\n )}\r\n </th>\r\n );\r\n })}\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {sortedData.length === 0 ? (\r\n <tr>\r\n <td\r\n className={classMap.emptyCell}\r\n colSpan={columns.length}\r\n // announce emptiness politely\r\n aria-live=\"polite\"\r\n >\r\n No data available\r\n </td>\r\n </tr>\r\n ) : (\r\n sortedData.map((row, idx) => {\r\n const key = rowKey ? rowKey(row) : idx;\r\n return (\r\n <tr\r\n key={key}\r\n className={combineClassNames(\r\n onRowClick && classMap.clickable,\r\n striped && idx % 2 === 1 && classMap.striped\r\n )}\r\n onClick={() => onRowClick?.(row)}\r\n onKeyDown={handleRowKeyDown(row)}\r\n tabIndex={onRowClick ? 0 : undefined}\r\n >\r\n {columns.map((col) => (\r\n <td\r\n key={String(col.key)}\r\n data-label={col.label}\r\n className={classMap.cell}\r\n >\r\n {col.render\r\n ? col.render(row[col.key], row)\r\n : typeof row[col.key] === \"object\"\r\n ? JSON.stringify(row[col.key])\r\n : String(row[col.key] ?? \"\")}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n}\r\nDataTableBase.displayName = \"DataTableBase\";\r\nexport default DataTableBase;\r\n","\"use client\";\r\n\r\nimport styles from \"./DataTable.module.scss\";\r\nimport DataTableBase from \"../DataTableBase\";\r\nimport { DataTableProps } from \"../DataTable.types\";\r\n\r\nfunction DataTable<T extends object>(props: DataTableProps<T>) {\r\n return <DataTableBase {...props} classMap={styles} />;\r\n}\r\nDataTable.displayName = \"DataTable\";\r\nexport default DataTable;\r\n"],"names":["outline","striped"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const DataTable = require("./DataTable-Cy3GLZ1j.cjs");
2
+ const DataTable = require("./DataTable-CUJXAkHe.cjs");
3
3
  module.exports = DataTable.DataTable;
4
4
  //# sourceMappingURL=DataTable.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { D } from "./DataTable-BoXblTGY.js";
1
+ import { D } from "./DataTable-mMStogSP.js";
2
2
  export {
3
3
  D as default
4
4
  };
@@ -165,44 +165,44 @@ const DateTimePickerBase = ({
165
165
  ] });
166
166
  };
167
167
  DateTimePickerBase.displayName = "DateTimePickerBase";
168
- const noScroll = "_noScroll_ed5ja_108";
169
- const errorMessage = "_errorMessage_ed5ja_109";
170
- const loadingContainer = "_loadingContainer_ed5ja_110";
171
- const hideScrollbar = "_hideScrollbar_ed5ja_102";
172
- const sr_only = "_sr_only_ed5ja_111";
173
- const wrapper = "_wrapper_ed5ja_529";
174
- const input = "_input_ed5ja_546";
175
- const label = "_label_ed5ja_555";
176
- const inputWrapper = "_inputWrapper_ed5ja_571";
177
- const icon = "_icon_ed5ja_619";
178
- const primary = "_primary_ed5ja_650";
179
- const outline = "_outline_ed5ja_654";
180
- const secondary = "_secondary_ed5ja_663";
181
- const tertiary = "_tertiary_ed5ja_676";
182
- const quaternary = "_quaternary_ed5ja_689";
183
- const clear = "_clear_ed5ja_702";
184
- const success = "_success_ed5ja_715";
185
- const error = "_error_ed5ja_109";
186
- const warning = "_warning_ed5ja_741";
187
- const disabled = "_disabled_ed5ja_769";
188
- const xs = "_xs_ed5ja_783";
189
- const small = "_small_ed5ja_795";
190
- const medium = "_medium_ed5ja_807";
191
- const large = "_large_ed5ja_819";
192
- const xl = "_xl_ed5ja_831";
193
- const description = "_description_ed5ja_843";
194
- const roundNone = "_roundNone_ed5ja_858";
195
- const roundSmall = "_roundSmall_ed5ja_862";
196
- const roundMedium = "_roundMedium_ed5ja_866";
197
- const roundLarge = "_roundLarge_ed5ja_870";
198
- const roundFull = "_roundFull_ed5ja_874";
199
- const shadowNone = "_shadowNone_ed5ja_878";
200
- const shadowLight = "_shadowLight_ed5ja_882";
201
- const shadowMedium = "_shadowMedium_ed5ja_886";
202
- const shadowStrong = "_shadowStrong_ed5ja_890";
203
- const shadowIntense = "_shadowIntense_ed5ja_894";
204
- const spin = "_spin_ed5ja_1";
205
- const pulse = "_pulse_ed5ja_1";
168
+ const noScroll = "_noScroll_1764l_108";
169
+ const errorMessage = "_errorMessage_1764l_109";
170
+ const loadingContainer = "_loadingContainer_1764l_110";
171
+ const hideScrollbar = "_hideScrollbar_1764l_102";
172
+ const sr_only = "_sr_only_1764l_111";
173
+ const wrapper = "_wrapper_1764l_552";
174
+ const input = "_input_1764l_569";
175
+ const label = "_label_1764l_578";
176
+ const inputWrapper = "_inputWrapper_1764l_594";
177
+ const icon = "_icon_1764l_642";
178
+ const primary = "_primary_1764l_673";
179
+ const outline = "_outline_1764l_677";
180
+ const secondary = "_secondary_1764l_686";
181
+ const tertiary = "_tertiary_1764l_699";
182
+ const quaternary = "_quaternary_1764l_712";
183
+ const clear = "_clear_1764l_725";
184
+ const success = "_success_1764l_738";
185
+ const error = "_error_1764l_109";
186
+ const warning = "_warning_1764l_764";
187
+ const disabled = "_disabled_1764l_792";
188
+ const xs = "_xs_1764l_806";
189
+ const small = "_small_1764l_818";
190
+ const medium = "_medium_1764l_830";
191
+ const large = "_large_1764l_842";
192
+ const xl = "_xl_1764l_854";
193
+ const description = "_description_1764l_866";
194
+ const roundNone = "_roundNone_1764l_881";
195
+ const roundSmall = "_roundSmall_1764l_885";
196
+ const roundMedium = "_roundMedium_1764l_889";
197
+ const roundLarge = "_roundLarge_1764l_893";
198
+ const roundFull = "_roundFull_1764l_897";
199
+ const shadowNone = "_shadowNone_1764l_901";
200
+ const shadowLight = "_shadowLight_1764l_905";
201
+ const shadowMedium = "_shadowMedium_1764l_909";
202
+ const shadowStrong = "_shadowStrong_1764l_913";
203
+ const shadowIntense = "_shadowIntense_1764l_917";
204
+ const spin = "_spin_1764l_1";
205
+ const pulse = "_pulse_1764l_1";
206
206
  const styles = {
207
207
  noScroll,
208
208
  errorMessage,
@@ -240,19 +240,19 @@ const styles = {
240
240
  shadowMedium,
241
241
  shadowStrong,
242
242
  shadowIntense,
243
- "fade-in": "_fade-in_ed5ja_1",
244
- "slide-up": "_slide-up_ed5ja_1",
245
- "spin-3d": "_spin-3d_ed5ja_1",
243
+ "fade-in": "_fade-in_1764l_1",
244
+ "slide-up": "_slide-up_1764l_1",
245
+ "spin-3d": "_spin-3d_1764l_1",
246
246
  spin,
247
247
  pulse,
248
- "fade-in-up": "_fade-in-up_ed5ja_1",
249
- "progress-grow": "_progress-grow_ed5ja_1",
250
- "indeterminate-move": "_indeterminate-move_ed5ja_1",
251
- "skeleton-loading": "_skeleton-loading_ed5ja_1"
248
+ "fade-in-up": "_fade-in-up_1764l_1",
249
+ "progress-grow": "_progress-grow_1764l_1",
250
+ "indeterminate-move": "_indeterminate-move_1764l_1",
251
+ "skeleton-loading": "_skeleton-loading_1764l_1"
252
252
  };
253
253
  const DateTimePicker = (props) => /* @__PURE__ */ jsx(DateTimePickerBase, { ...props, classMap: styles });
254
254
  DateTimePicker.displayName = "DateTimePicker";
255
255
  export {
256
256
  DateTimePicker as D
257
257
  };
258
- //# sourceMappingURL=DateTimePicker-i4QztkDP.js.map
258
+ //# sourceMappingURL=DateTimePicker-CphfYmZ8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimePicker-i4QztkDP.js","sources":["../../src/Icons/CalendarIcon.tsx","../../src/components/DateTimePicker/DateTimePickerBase.tsx","../../src/components/DateTimePicker/next/DateTimePicker.tsx"],"sourcesContent":["const CalendarIcon: 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=\"M15 4V2M15 4V6M15 4H10.5M3 10V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V10H3Z\"\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 10V6C3 4.89543 3.89543 4 5 4H7\"\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=\"M7 2V6\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 10V6C21 4.89543 20.1046 4 19 4H18.5\"\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 CalendarIcon;\r\n","import React, { useId, useMemo, useRef } from \"react\";\r\nimport { DateTimePickerBaseProps } from \"./DateTimePicker.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { CalendarIcon } from \"../../Icons\";\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 DateTimePickerBase: React.FC<DateTimePickerBaseProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n min,\r\n max,\r\n name,\r\n required = false,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"datetime-picker\",\r\n classMap,\r\n error,\r\n description,\r\n id,\r\n}) => {\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const descriptionId = description ? `${inputId}-description` : undefined;\r\n const errorId = error ? `${inputId}-error` : undefined;\r\n\r\n const invalidRange = min && max ? min > max : false;\r\n const outOfBounds = value\r\n ? (min ? value < min : false) || (max ? value > max : false)\r\n : false;\r\n\r\n const openPicker = () => {\r\n const el = inputRef.current;\r\n if (!el) return;\r\n if (typeof el.showPicker === \"function\") el.showPicker();\r\n else el.focus();\r\n };\r\n\r\n const pickerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\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 disabled && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n disabled,\r\n className,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\r\n\r\n return (\r\n <div className={pickerClass} data-testid={testId}>\r\n {label && (\r\n <label htmlFor={inputId} className={classMap.label}>\r\n {label} {required && <span aria-hidden=\"true\">*</span>}\r\n </label>\r\n )}\r\n\r\n <div className={classMap.inputWrapper}>\r\n <input\r\n id={inputId}\r\n type=\"datetime-local\"\r\n className={classMap.input}\r\n value={value}\r\n onChange={(e) => onChange?.(e.target.value)}\r\n min={min}\r\n max={max}\r\n name={name}\r\n ref={inputRef}\r\n required={required}\r\n disabled={disabled}\r\n aria-invalid={\r\n Boolean(error) || invalidRange || outOfBounds || undefined\r\n }\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? errorId : undefined}\r\n aria-label={label || \"Date and time\"}\r\n data-testid={`${testId}-input`}\r\n autoComplete=\"off\"\r\n />\r\n\r\n <button\r\n type=\"button\"\r\n className={classMap.icon}\r\n onClick={openPicker}\r\n disabled={disabled}\r\n aria-label=\"Open date and time picker\"\r\n data-testid={`${testId}-button`}\r\n >\r\n <CalendarIcon />\r\n </button>\r\n </div>\r\n\r\n {description && !error && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n\r\n {error && (\r\n <p id={errorId} className={classMap.error} role=\"alert\">\r\n {error}\r\n </p>\r\n )}\r\n </div>\r\n );\r\n};\r\nDateTimePickerBase.displayName = \"DateTimePickerBase\";\r\nexport default DateTimePickerBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport DateTimePickerBase from \"../DateTimePickerBase\";\r\nimport styles from \"./DateTimePicker.module.scss\";\r\nimport type { DateTimePickerProps } from \"../DateTimePicker.types\";\r\n\r\nconst DateTimePicker: React.FC<DateTimePickerProps> = (props) => (\r\n <DateTimePickerBase {...props} classMap={styles} />\r\n);\r\nDateTimePicker.displayName = \"DateTimePicker\";\r\nexport default DateTimePicker;\r\n"],"names":["label","disabled","outline","error","description"],"mappings":"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"}
1
+ {"version":3,"file":"DateTimePicker-CphfYmZ8.js","sources":["../../src/Icons/CalendarIcon.tsx","../../src/components/DateTimePicker/DateTimePickerBase.tsx","../../src/components/DateTimePicker/next/DateTimePicker.tsx"],"sourcesContent":["const CalendarIcon: 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=\"M15 4V2M15 4V6M15 4H10.5M3 10V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V10H3Z\"\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 10V6C3 4.89543 3.89543 4 5 4H7\"\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=\"M7 2V6\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 10V6C21 4.89543 20.1046 4 19 4H18.5\"\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 CalendarIcon;\r\n","import React, { useId, useMemo, useRef } from \"react\";\r\nimport { DateTimePickerBaseProps } from \"./DateTimePicker.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { CalendarIcon } from \"../../Icons\";\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 DateTimePickerBase: React.FC<DateTimePickerBaseProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n min,\r\n max,\r\n name,\r\n required = false,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"datetime-picker\",\r\n classMap,\r\n error,\r\n description,\r\n id,\r\n}) => {\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const descriptionId = description ? `${inputId}-description` : undefined;\r\n const errorId = error ? `${inputId}-error` : undefined;\r\n\r\n const invalidRange = min && max ? min > max : false;\r\n const outOfBounds = value\r\n ? (min ? value < min : false) || (max ? value > max : false)\r\n : false;\r\n\r\n const openPicker = () => {\r\n const el = inputRef.current;\r\n if (!el) return;\r\n if (typeof el.showPicker === \"function\") el.showPicker();\r\n else el.focus();\r\n };\r\n\r\n const pickerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\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 disabled && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n disabled,\r\n className,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\r\n\r\n return (\r\n <div className={pickerClass} data-testid={testId}>\r\n {label && (\r\n <label htmlFor={inputId} className={classMap.label}>\r\n {label} {required && <span aria-hidden=\"true\">*</span>}\r\n </label>\r\n )}\r\n\r\n <div className={classMap.inputWrapper}>\r\n <input\r\n id={inputId}\r\n type=\"datetime-local\"\r\n className={classMap.input}\r\n value={value}\r\n onChange={(e) => onChange?.(e.target.value)}\r\n min={min}\r\n max={max}\r\n name={name}\r\n ref={inputRef}\r\n required={required}\r\n disabled={disabled}\r\n aria-invalid={\r\n Boolean(error) || invalidRange || outOfBounds || undefined\r\n }\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? errorId : undefined}\r\n aria-label={label || \"Date and time\"}\r\n data-testid={`${testId}-input`}\r\n autoComplete=\"off\"\r\n />\r\n\r\n <button\r\n type=\"button\"\r\n className={classMap.icon}\r\n onClick={openPicker}\r\n disabled={disabled}\r\n aria-label=\"Open date and time picker\"\r\n data-testid={`${testId}-button`}\r\n >\r\n <CalendarIcon />\r\n </button>\r\n </div>\r\n\r\n {description && !error && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n\r\n {error && (\r\n <p id={errorId} className={classMap.error} role=\"alert\">\r\n {error}\r\n </p>\r\n )}\r\n </div>\r\n );\r\n};\r\nDateTimePickerBase.displayName = \"DateTimePickerBase\";\r\nexport default DateTimePickerBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport DateTimePickerBase from \"../DateTimePickerBase\";\r\nimport styles from \"./DateTimePicker.module.scss\";\r\nimport type { DateTimePickerProps } from \"../DateTimePicker.types\";\r\n\r\nconst DateTimePicker: React.FC<DateTimePickerProps> = (props) => (\r\n <DateTimePickerBase {...props} classMap={styles} />\r\n);\r\nDateTimePicker.displayName = \"DateTimePicker\";\r\nexport default DateTimePicker;\r\n"],"names":["label","disabled","outline","error","description"],"mappings":"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"}