@keboola/design 11.3.0 → 11.4.0

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 (229) hide show
  1. package/AGENTS.md +17 -0
  2. package/CHANGELOG.md +170 -0
  3. package/COMPONENT-API.md +32 -31
  4. package/dist/{AIKit-DaFT7p92.js → AIKit-DDg5DBCG.js} +142 -63
  5. package/dist/AIKit-DDg5DBCG.js.map +1 -0
  6. package/dist/{Alert-CseY3yAj.js → Alert-DHJFrWnS.js} +3 -3
  7. package/dist/{Alert-CseY3yAj.js.map → Alert-DHJFrWnS.js.map} +1 -1
  8. package/dist/{AlertModal-DQAGpsEy.js → AlertModal-BGJdaRRj.js} +3 -3
  9. package/dist/{AlertModal-DQAGpsEy.js.map → AlertModal-BGJdaRRj.js.map} +1 -1
  10. package/dist/{AppShell-BUoxM3fv.js → AppShell-DRgJxpXW.js} +2 -2
  11. package/dist/{AppShell-BUoxM3fv.js.map → AppShell-DRgJxpXW.js.map} +1 -1
  12. package/dist/{BrandEditor-BnTLMRMp.js → BrandEditor-Go7w8Zj2.js} +7 -7
  13. package/dist/{BrandEditor-BnTLMRMp.js.map → BrandEditor-Go7w8Zj2.js.map} +1 -1
  14. package/dist/{BrandLogo-V2pRUAeO.js → BrandLogo-Dmi7jo21.js} +2 -2
  15. package/dist/{BrandLogo-V2pRUAeO.js.map → BrandLogo-Dmi7jo21.js.map} +1 -1
  16. package/dist/{Breadcrumb-CQTPn_KB.js → Breadcrumb-uEkM6adI.js} +3 -3
  17. package/dist/{Breadcrumb-CQTPn_KB.js.map → Breadcrumb-uEkM6adI.js.map} +1 -1
  18. package/dist/{Button-CPsEQuTN.js → Button-DsRrU5F1.js} +6 -5
  19. package/dist/Button-DsRrU5F1.js.map +1 -0
  20. package/dist/{Card-Cd5HSBmv.js → Card-Dyo7055Q.js} +2 -2
  21. package/dist/{Card-Cd5HSBmv.js.map → Card-Dyo7055Q.js.map} +1 -1
  22. package/dist/{Checkbox-5VNCcV7E.js → Checkbox-fC0BuO2B.js} +3 -3
  23. package/dist/{Checkbox-5VNCcV7E.js.map → Checkbox-fC0BuO2B.js.map} +1 -1
  24. package/dist/{Clipboard-B7rckqV_.js → Clipboard-ChPdiUy3.js} +2 -2
  25. package/dist/{Clipboard-B7rckqV_.js.map → Clipboard-ChPdiUy3.js.map} +1 -1
  26. package/dist/{ClipboardButton-CQ6Aewpg.js → ClipboardButton-D9pDjgkB.js} +3 -3
  27. package/dist/{ClipboardButton-CQ6Aewpg.js.map → ClipboardButton-D9pDjgkB.js.map} +1 -1
  28. package/dist/{CodeEditor-CUse8znx.js → CodeEditor-Cxy3HnKH.js} +15 -26
  29. package/dist/CodeEditor-Cxy3HnKH.js.map +1 -0
  30. package/dist/{ColorInput-Q1D9Vcc_.js → ColorInput-Bxj-1eLT.js} +3 -3
  31. package/dist/{ColorInput-Q1D9Vcc_.js.map → ColorInput-Bxj-1eLT.js.map} +1 -1
  32. package/dist/{ColorModeSwitch-B5PXCVqB.js → ColorModeSwitch-CsWLiTBX.js} +3 -3
  33. package/dist/{ColorModeSwitch-B5PXCVqB.js.map → ColorModeSwitch-CsWLiTBX.js.map} +1 -1
  34. package/dist/{Combobox-CyoRA7oY.js → Combobox-Cs_1pj2q.js} +29 -22
  35. package/dist/Combobox-Cs_1pj2q.js.map +1 -0
  36. package/dist/{Command-Ds68v2rX.js → Command-B7ML9YMv.js} +6 -6
  37. package/dist/{Command-Ds68v2rX.js.map → Command-B7ML9YMv.js.map} +1 -1
  38. package/dist/{CopyField-DI66uY_g.js → CopyField-BO_sh-HO.js} +2 -2
  39. package/dist/{CopyField-DI66uY_g.js.map → CopyField-BO_sh-HO.js.map} +1 -1
  40. package/dist/{DateInput-BPj2pzsn.js → DateInput-ZdaMQo5i.js} +4 -4
  41. package/dist/{DateInput-BPj2pzsn.js.map → DateInput-ZdaMQo5i.js.map} +1 -1
  42. package/dist/{DatePicker-DyEGuW9m.js → DatePicker-nA8YdE84.js} +2 -2
  43. package/dist/{DatePicker-DyEGuW9m.js.map → DatePicker-nA8YdE84.js.map} +1 -1
  44. package/dist/{DateRangeInput-u9DxNbHW.js → DateRangeInput-DkvNh_sT.js} +4 -4
  45. package/dist/{DateRangeInput-u9DxNbHW.js.map → DateRangeInput-DkvNh_sT.js.map} +1 -1
  46. package/dist/{DateRangePicker-CYYhX6S7.js → DateRangePicker-DjSUFjh4.js} +5 -5
  47. package/dist/{DateRangePicker-CYYhX6S7.js.map → DateRangePicker-DjSUFjh4.js.map} +1 -1
  48. package/dist/{DropdownMenu-DpMEcyCq.js → DropdownMenu-CASr-jgl.js} +2 -2
  49. package/dist/{DropdownMenu-DpMEcyCq.js.map → DropdownMenu-CASr-jgl.js.map} +1 -1
  50. package/dist/{FieldItem-qQKGU9lF.js → FieldItem-CCd9-xnp.js} +3 -3
  51. package/dist/{FieldItem-qQKGU9lF.js.map → FieldItem-CCd9-xnp.js.map} +1 -1
  52. package/dist/{FileUpload-C336MVnU.js → FileUpload-ABThVZyg.js} +2 -2
  53. package/dist/{FileUpload-C336MVnU.js.map → FileUpload-ABThVZyg.js.map} +1 -1
  54. package/dist/{Form-CTygENDc.js → Form-k6PH-em3.js} +8 -8
  55. package/dist/{Form-CTygENDc.js.map → Form-k6PH-em3.js.map} +1 -1
  56. package/dist/{FormGroup-BnwP0jNu.js → FormGroup-DbcDtrgU.js} +3 -3
  57. package/dist/{FormGroup-BnwP0jNu.js.map → FormGroup-DbcDtrgU.js.map} +1 -1
  58. package/dist/{FullScreenModal-j-M4aPFd.js → FullScreenModal-BvPuYibe.js} +3 -3
  59. package/dist/{FullScreenModal-j-M4aPFd.js.map → FullScreenModal-BvPuYibe.js.map} +1 -1
  60. package/dist/{HoverCard-yQq-O49c.js → HoverCard-B9ZMJxjn.js} +2 -2
  61. package/dist/{HoverCard-yQq-O49c.js.map → HoverCard-B9ZMJxjn.js.map} +1 -1
  62. package/dist/{InputGroup-D7zlmqPB.js → InputGroup-BnLHY0eq.js} +3 -3
  63. package/dist/{InputGroup-D7zlmqPB.js.map → InputGroup-BnLHY0eq.js.map} +1 -1
  64. package/dist/{Kbd-D6LpR7G2.js → Kbd-CvSM3D3-.js} +2 -2
  65. package/dist/{Kbd-D6LpR7G2.js.map → Kbd-CvSM3D3-.js.map} +1 -1
  66. package/dist/MarkedText-DNGEUVWc.js +67 -0
  67. package/dist/MarkedText-DNGEUVWc.js.map +1 -0
  68. package/dist/{MermaidDiagram-JlvuGcY-.js → MermaidDiagram-WkonYErO.js} +3 -3
  69. package/dist/{MermaidDiagram-JlvuGcY-.js.map → MermaidDiagram-WkonYErO.js.map} +1 -1
  70. package/dist/{Modal-o4ATIexE.js → Modal-Coj-H02o.js} +16 -4
  71. package/dist/Modal-Coj-H02o.js.map +1 -0
  72. package/dist/{MultiActionButtonGroup-GTeFk-L8.js → MultiActionButtonGroup-CxWH7yWK.js} +3 -3
  73. package/dist/{MultiActionButtonGroup-GTeFk-L8.js.map → MultiActionButtonGroup-CxWH7yWK.js.map} +1 -1
  74. package/dist/{Navbar-CAQs4BZz.js → Navbar-B2UsolVU.js} +3 -3
  75. package/dist/{Navbar-CAQs4BZz.js.map → Navbar-B2UsolVU.js.map} +1 -1
  76. package/dist/{PageToolbar-bG2YtSa3.js → PageToolbar-DnbFt14Q.js} +3 -3
  77. package/dist/{PageToolbar-bG2YtSa3.js.map → PageToolbar-DnbFt14Q.js.map} +1 -1
  78. package/dist/{Pagination-BB3X7ooY.js → Pagination-C_b7Xhey.js} +2 -2
  79. package/dist/{Pagination-BB3X7ooY.js.map → Pagination-C_b7Xhey.js.map} +1 -1
  80. package/dist/{Popconfirm-C2Ky5hJO.js → Popconfirm-CILjmzKI.js} +3 -3
  81. package/dist/{Popconfirm-C2Ky5hJO.js.map → Popconfirm-CILjmzKI.js.map} +1 -1
  82. package/dist/{Popover-DsbI2HKu.js → Popover-BEbQrC_P.js} +22 -19
  83. package/dist/Popover-BEbQrC_P.js.map +1 -0
  84. package/dist/{RadioGroup-BMxuZEbT.js → RadioGroup-XFzFd1ti.js} +3 -3
  85. package/dist/{RadioGroup-BMxuZEbT.js.map → RadioGroup-XFzFd1ti.js.map} +1 -1
  86. package/dist/{Search-DFeECt5D.js → Search-4Bxtt8hS.js} +2 -2
  87. package/dist/{Search-DFeECt5D.js.map → Search-4Bxtt8hS.js.map} +1 -1
  88. package/dist/{SearchInput-CCpdUego.js → SearchInput-f_oY9T4Z.js} +3 -3
  89. package/dist/{SearchInput-CCpdUego.js.map → SearchInput-f_oY9T4Z.js.map} +1 -1
  90. package/dist/{SectionNav-Bw_MVL0_.js → SectionNav-BpJlisbT.js} +4 -4
  91. package/dist/{SectionNav-Bw_MVL0_.js.map → SectionNav-BpJlisbT.js.map} +1 -1
  92. package/dist/{Select-D6IZVvwL.js → Select-DpcgKqKB.js} +31 -20
  93. package/dist/Select-DpcgKqKB.js.map +1 -0
  94. package/dist/{Sheet-BIzs2K2H.js → Sheet-Chf0kX1E.js} +3 -3
  95. package/dist/{Sheet-BIzs2K2H.js.map → Sheet-Chf0kX1E.js.map} +1 -1
  96. package/dist/{Sidebar-r1TW4g_b.js → Sidebar-Cm6I4dE1.js} +9 -7
  97. package/dist/{Sidebar-r1TW4g_b.js.map → Sidebar-Cm6I4dE1.js.map} +1 -1
  98. package/dist/{Slider-CjxyfEty.js → Slider-pPC_3gz9.js} +3 -3
  99. package/dist/{Slider-CjxyfEty.js.map → Slider-pPC_3gz9.js.map} +1 -1
  100. package/dist/{Switch-BueTV03C.js → Switch-ChfPKcTE.js} +2 -2
  101. package/dist/{Switch-BueTV03C.js.map → Switch-ChfPKcTE.js.map} +1 -1
  102. package/dist/{Tabs-l72-WuhK.js → Tabs-eB974xJf.js} +2 -2
  103. package/dist/{Tabs-l72-WuhK.js.map → Tabs-eB974xJf.js.map} +1 -1
  104. package/dist/{TextInput-DhdRk8qm.js → TextInput-DHM6dHmn.js} +3 -3
  105. package/dist/{TextInput-DhdRk8qm.js.map → TextInput-DHM6dHmn.js.map} +1 -1
  106. package/dist/{ThemeProvider-DZfGdf1v.js → ThemeProvider-DrQJtzpd.js} +90 -15
  107. package/dist/ThemeProvider-DrQJtzpd.js.map +1 -0
  108. package/dist/{TimePicker-B6d2rAbX.js → TimePicker-BGeqc-Ed.js} +2 -2
  109. package/dist/{TimePicker-B6d2rAbX.js.map → TimePicker-BGeqc-Ed.js.map} +1 -1
  110. package/dist/{Toast-CxXUulYN.js → Toast-Dr6Uw7ao.js} +2 -2
  111. package/dist/{Toast-CxXUulYN.js.map → Toast-Dr6Uw7ao.js.map} +1 -1
  112. package/dist/{ZoomableSvg-CNIzRHKH.js → ZoomableSvg-BWnDkR61.js} +4 -4
  113. package/dist/{ZoomableSvg-CNIzRHKH.js.map → ZoomableSvg-BWnDkR61.js.map} +1 -1
  114. package/dist/{context-BrNtMc1H.js → context-D7X470dy.js} +4 -3
  115. package/dist/context-D7X470dy.js.map +1 -0
  116. package/dist/{defaults-CTfvj2KB.js → defaults-i_xG2F_1.js} +2 -4
  117. package/dist/defaults-i_xG2F_1.js.map +1 -0
  118. package/dist/editors.js +4 -4
  119. package/dist/findLiteralMatches-BGBw8Vbl.js +62 -0
  120. package/dist/findLiteralMatches-BGBw8Vbl.js.map +1 -0
  121. package/dist/flint.js +3 -3
  122. package/dist/index.d.ts +677 -527
  123. package/dist/index.js +59 -58
  124. package/dist/internal/blocks/AIKit.js +2 -2
  125. package/dist/internal/blocks/AppShell.js +1 -1
  126. package/dist/internal/blocks/BrandEditor.js +1 -1
  127. package/dist/internal/blocks/ChartPanel.js +1 -1
  128. package/dist/internal/blocks/ClipboardButton.js +1 -1
  129. package/dist/internal/blocks/ColorInput.js +1 -1
  130. package/dist/internal/blocks/ColorModeSwitch.js +1 -1
  131. package/dist/internal/blocks/Command.js +1 -1
  132. package/dist/internal/blocks/CopyField.js +1 -1
  133. package/dist/internal/blocks/DateInput.js +1 -1
  134. package/dist/internal/blocks/DateRangeInput.js +1 -1
  135. package/dist/internal/blocks/EmptyConfigurationActionCard.js +1 -1
  136. package/dist/internal/blocks/ErrorState.js +1 -1
  137. package/dist/internal/blocks/ExportMenu.js +5 -5
  138. package/dist/internal/blocks/ExportMenu.js.map +1 -1
  139. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +1 -1
  140. package/dist/internal/blocks/Form.js +1 -1
  141. package/dist/internal/blocks/FormGroup.js +1 -1
  142. package/dist/internal/blocks/MultiActionButtonGroup.js +1 -1
  143. package/dist/internal/blocks/MultiCombobox.js +14 -11
  144. package/dist/internal/blocks/MultiCombobox.js.map +1 -1
  145. package/dist/internal/blocks/NumberInput.js +1 -1
  146. package/dist/internal/blocks/PageToolbar.js +1 -1
  147. package/dist/internal/blocks/PasswordInput.js +2 -2
  148. package/dist/internal/blocks/SearchInput.js +1 -1
  149. package/dist/internal/blocks/SearchInputWithNavigation.js +3 -3
  150. package/dist/internal/blocks/SectionNav.js +1 -1
  151. package/dist/internal/blocks/SplitButton.js +2 -2
  152. package/dist/internal/blocks/StatCard.js +1 -1
  153. package/dist/internal/blocks/TextInput.js +1 -1
  154. package/dist/internal/blocks/Textarea.js +1 -1
  155. package/dist/internal/blocks/TimeInput.js +3 -3
  156. package/dist/internal/components/Alert.js +1 -1
  157. package/dist/internal/components/AlertModal.js +1 -1
  158. package/dist/internal/components/Avatar.js +1 -1
  159. package/dist/internal/components/BrandLogo.js +1 -1
  160. package/dist/internal/components/Breadcrumb.js +1 -1
  161. package/dist/internal/components/Button.js +1 -1
  162. package/dist/internal/components/Card.js +1 -1
  163. package/dist/internal/components/Checkbox.js +1 -1
  164. package/dist/internal/components/Clipboard.js +1 -1
  165. package/dist/internal/components/CollapsiblePanel.js +1 -1
  166. package/dist/internal/components/Combobox.js +1 -1
  167. package/dist/internal/components/DatePicker.js +1 -1
  168. package/dist/internal/components/DateRangePicker.js +1 -1
  169. package/dist/internal/components/DropdownMenu.js +1 -1
  170. package/dist/internal/components/FileUpload.js +1 -1
  171. package/dist/internal/components/FullScreenModal.js +1 -1
  172. package/dist/internal/components/HoverCard.js +1 -1
  173. package/dist/internal/components/InputGroup.js +1 -1
  174. package/dist/internal/components/Kbd.js +1 -1
  175. package/dist/internal/components/MarkedText.js +1 -1
  176. package/dist/internal/components/Modal.js +1 -1
  177. package/dist/internal/components/Navbar.js +1 -1
  178. package/dist/internal/components/Pagination.js +1 -1
  179. package/dist/internal/components/Popconfirm.js +1 -1
  180. package/dist/internal/components/Popover.js +1 -1
  181. package/dist/internal/components/RadioGroup.js +1 -1
  182. package/dist/internal/components/Search.js +1 -1
  183. package/dist/internal/components/Select.js +1 -1
  184. package/dist/internal/components/Sheet.js +1 -1
  185. package/dist/internal/components/Sidebar.js +1 -1
  186. package/dist/internal/components/Slider.js +1 -1
  187. package/dist/internal/components/Switch.js +1 -1
  188. package/dist/internal/components/Tabs.js +1 -1
  189. package/dist/internal/components/ThemeProvider.js +4 -4
  190. package/dist/internal/components/TimePicker.js +1 -1
  191. package/dist/internal/components/Toast.js +2 -2
  192. package/dist/internal/components/Toggle.js +3 -3
  193. package/dist/internal/components/Toggle.js.map +1 -1
  194. package/dist/internal/components/Tooltip.js +1 -1
  195. package/dist/internal/components/Truncated.js +1 -1
  196. package/dist/internal/components/ZoomableSvg.js +1 -1
  197. package/dist/internal/utils.js +3 -3
  198. package/dist/markdown-editor.js +7 -7
  199. package/dist/mermaid.js +1 -1
  200. package/dist/rjsf.js +11 -11
  201. package/dist/styles.css +1 -1
  202. package/dist/testing.js +4 -4
  203. package/dist/testing.js.map +1 -1
  204. package/dist/{themeTokens-7T1AFLhq.js → themeTokens-D70HeNVF.js} +3 -3
  205. package/dist/{themeTokens-7T1AFLhq.js.map → themeTokens-D70HeNVF.js.map} +1 -1
  206. package/dist/{toast-BweSoKn3.js → toast-DIC0iNRf.js} +2 -2
  207. package/dist/{toast-BweSoKn3.js.map → toast-DIC0iNRf.js.map} +1 -1
  208. package/dist/{useColorSchemeState-BJEk6esG.js → useColorSchemeState-klihG9-i.js} +2 -2
  209. package/dist/{useColorSchemeState-BJEk6esG.js.map → useColorSchemeState-klihG9-i.js.map} +1 -1
  210. package/dist/{utils-B-g7d_Jb.js → utils-B5Z52hYs.js} +2 -2
  211. package/dist/{utils-B-g7d_Jb.js.map → utils-B5Z52hYs.js.map} +1 -1
  212. package/dist/vega.js +2 -2
  213. package/dist/{vegaTheme-FBXgAdHK.js → vegaTheme-DfoEQhOy.js} +2 -2
  214. package/dist/{vegaTheme-FBXgAdHK.js.map → vegaTheme-DfoEQhOy.js.map} +1 -1
  215. package/package.json +5 -5
  216. package/dist/AIKit-DaFT7p92.js.map +0 -1
  217. package/dist/Button-CPsEQuTN.js.map +0 -1
  218. package/dist/CodeEditor-CUse8znx.js.map +0 -1
  219. package/dist/Combobox-CyoRA7oY.js.map +0 -1
  220. package/dist/MarkedText-Ckbft5mw.js +0 -44
  221. package/dist/MarkedText-Ckbft5mw.js.map +0 -1
  222. package/dist/Modal-o4ATIexE.js.map +0 -1
  223. package/dist/Popover-DsbI2HKu.js.map +0 -1
  224. package/dist/Select-D6IZVvwL.js.map +0 -1
  225. package/dist/ThemeProvider-DZfGdf1v.js.map +0 -1
  226. package/dist/context-BrNtMc1H.js.map +0 -1
  227. package/dist/defaults-CTfvj2KB.js.map +0 -1
  228. package/dist/escapeStringRegexp-8MxP2knR.js +0 -6
  229. package/dist/escapeStringRegexp-8MxP2knR.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,78 +1,78 @@
1
1
  import { cn } from "./classNames-BzrkDnOD.js";
2
- import { Tooltip, TooltipProvider, copyToClipboard, isMac } from "./utils-B-g7d_Jb.js";
3
- import { DEFAULT_BRAND_ID, DEFAULT_COLOR_SCHEME } from "./defaults-CTfvj2KB.js";
4
- import { ArgoDesignContext, useArgoDesign, useTheme } from "./context-BrNtMc1H.js";
2
+ import { Tooltip, TooltipProvider, copyToClipboard, isMac } from "./utils-B5Z52hYs.js";
3
+ import { DEFAULT_BRAND_ID, DEFAULT_COLOR_SCHEME } from "./defaults-i_xG2F_1.js";
4
+ import { ArgoDesignContext, useArgoDesign, useTheme } from "./context-D7X470dy.js";
5
+ import { findLiteralMatches, hasLiteralMatch } from "./findLiteralMatches-BGBw8Vbl.js";
5
6
  import { mergeRefs } from "./internal/utils/mergeRefs.js";
6
- import { Button, ButtonInline, argoVariants } from "./Button-CPsEQuTN.js";
7
+ import { Button, ButtonInline, argoVariants } from "./Button-DsRrU5F1.js";
7
8
  import { ButtonGroup } from "./internal/components/ButtonGroup.js";
8
- import { DropdownMenu } from "./DropdownMenu-DpMEcyCq.js";
9
+ import { DropdownMenu } from "./DropdownMenu-CASr-jgl.js";
9
10
  import { ScrollArea, ScrollBar } from "./internal/components/ScrollArea.js";
10
11
  import { SplitButton } from "./internal/blocks/SplitButton.js";
11
- import { MultiActionButtonGroup } from "./MultiActionButtonGroup-GTeFk-L8.js";
12
+ import { MultiActionButtonGroup } from "./MultiActionButtonGroup-CxWH7yWK.js";
12
13
  import { Toggle } from "./internal/components/Toggle.js";
13
14
  import { ToggleGroup } from "./ToggleGroup-Cy_10Mvu.js";
14
- import { Clipboard } from "./Clipboard-B7rckqV_.js";
15
- import { ClipboardButton, ClipboardInline } from "./ClipboardButton-CQ6Aewpg.js";
15
+ import { Clipboard } from "./Clipboard-ChPdiUy3.js";
16
+ import { ClipboardButton, ClipboardInline } from "./ClipboardButton-D9pDjgkB.js";
16
17
  import { ExportMenu } from "./internal/blocks/ExportMenu.js";
17
- import { CopyField } from "./CopyField-DI66uY_g.js";
18
+ import { CopyField } from "./CopyField-BO_sh-HO.js";
18
19
  import { Label } from "./internal/components/Label.js";
19
20
  import { MicrosoftButton } from "./internal/blocks/MicrosoftButton.js";
20
21
  import { GoogleButton } from "./internal/blocks/GoogleButton.js";
21
22
  import { Link } from "./internal/components/Link.js";
22
- import { AlertModal } from "./AlertModal-DQAGpsEy.js";
23
- import { Modal } from "./Modal-o4ATIexE.js";
23
+ import { AlertModal } from "./AlertModal-BGJdaRRj.js";
24
+ import { Modal } from "./Modal-Coj-H02o.js";
24
25
  import { Separator } from "./internal/components/Separator.js";
25
- import { FullScreenModal, FullScreenModalBody, FullScreenModalHeader } from "./FullScreenModal-j-M4aPFd.js";
26
+ import { FullScreenModal, FullScreenModalBody, FullScreenModalHeader } from "./FullScreenModal-BvPuYibe.js";
26
27
  import { Truncated } from "./internal/components/Truncated.js";
27
- import { Sheet } from "./Sheet-BIzs2K2H.js";
28
- import { Popover } from "./Popover-DsbI2HKu.js";
29
- import { Popconfirm } from "./Popconfirm-C2Ky5hJO.js";
30
- import { HoverCard } from "./HoverCard-yQq-O49c.js";
31
- import { Command, CommandGroup, CommandInput, CommandItem, CommandList, defaultFilter, useCommandState } from "./Command-Ds68v2rX.js";
32
- import { InputGroup } from "./InputGroup-D7zlmqPB.js";
33
- import { TextInput } from "./TextInput-DhdRk8qm.js";
28
+ import { Sheet } from "./Sheet-Chf0kX1E.js";
29
+ import { Popover } from "./Popover-BEbQrC_P.js";
30
+ import { Popconfirm } from "./Popconfirm-CILjmzKI.js";
31
+ import { HoverCard } from "./HoverCard-B9ZMJxjn.js";
32
+ import { Command, CommandGroup, CommandInput, CommandItem, CommandList, defaultFilter, useCommandState } from "./Command-B7ML9YMv.js";
33
+ import { InputGroup } from "./InputGroup-BnLHY0eq.js";
34
+ import { TextInput } from "./TextInput-DHM6dHmn.js";
34
35
  import { SpotlightBackdrop, useTargetRect } from "./internal/components/SpotlightBackdrop.js";
35
36
  import { Calendar } from "./Calendar-cG5NIJ4O.js";
36
- import { DatePicker } from "./DatePicker-DyEGuW9m.js";
37
- import { TimePicker } from "./TimePicker-B6d2rAbX.js";
38
- import { DateRangePicker } from "./DateRangePicker-CYYhX6S7.js";
39
- import { Switch } from "./Switch-BueTV03C.js";
40
- import { RadioGroup } from "./RadioGroup-BMxuZEbT.js";
41
- import { Slider } from "./Slider-CjxyfEty.js";
42
- import { Search, SearchForm } from "./Search-DFeECt5D.js";
43
- import { Select } from "./Select-D6IZVvwL.js";
44
- import { Checkbox } from "./Checkbox-5VNCcV7E.js";
37
+ import { DatePicker } from "./DatePicker-nA8YdE84.js";
38
+ import { TimePicker } from "./TimePicker-BGeqc-Ed.js";
39
+ import { DateRangePicker } from "./DateRangePicker-DjSUFjh4.js";
40
+ import { Switch } from "./Switch-ChfPKcTE.js";
41
+ import { RadioGroup } from "./RadioGroup-XFzFd1ti.js";
42
+ import { Slider } from "./Slider-pPC_3gz9.js";
43
+ import { Search, SearchForm } from "./Search-4Bxtt8hS.js";
44
+ import { Select } from "./Select-DpcgKqKB.js";
45
+ import { Checkbox } from "./Checkbox-fC0BuO2B.js";
45
46
  import { Badge } from "./Badge-Ch26CXoP.js";
46
- import { Combobox } from "./Combobox-CyoRA7oY.js";
47
+ import { Combobox } from "./Combobox-Cs_1pj2q.js";
47
48
  import { MultiCombobox } from "./internal/blocks/MultiCombobox.js";
48
- import { FormGroup } from "./FormGroup-BnwP0jNu.js";
49
- import { ColorInput } from "./ColorInput-Q1D9Vcc_.js";
49
+ import { FormGroup } from "./FormGroup-DbcDtrgU.js";
50
+ import { ColorInput } from "./ColorInput-Bxj-1eLT.js";
50
51
  import { HelpBlock } from "./internal/components/HelpBlock.js";
51
52
  import { NumberInput } from "./internal/blocks/NumberInput.js";
52
53
  import { Textarea } from "./internal/blocks/Textarea.js";
53
54
  import { MultiComboboxField } from "./internal/blocks/Form/connectors/MultiComboboxField.js";
54
55
  import { AutoSaveTextarea } from "./AutoSaveTextarea-BeuWuszr.js";
55
- import { ColorModeSwitch } from "./ColorModeSwitch-B5PXCVqB.js";
56
- import { DateInput } from "./DateInput-BPj2pzsn.js";
56
+ import { ColorModeSwitch } from "./ColorModeSwitch-CsWLiTBX.js";
57
+ import { DateInput } from "./DateInput-ZdaMQo5i.js";
57
58
  import { PasswordInput } from "./internal/blocks/PasswordInput.js";
58
59
  import { TimeInput } from "./internal/blocks/TimeInput.js";
59
- import { DateRangeInput } from "./DateRangeInput-u9DxNbHW.js";
60
+ import { DateRangeInput } from "./DateRangeInput-DkvNh_sT.js";
60
61
  import { OtpInput, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS } from "./OtpInput-CbbymqYs.js";
61
- import { SearchInput } from "./SearchInput-CCpdUego.js";
62
+ import { SearchInput } from "./SearchInput-f_oY9T4Z.js";
62
63
  import { SearchInputWithNavigation } from "./internal/blocks/SearchInputWithNavigation.js";
63
- import { FileUpload, useFileDropTarget, useFileUploadRejections } from "./FileUpload-C336MVnU.js";
64
- import { AnswerSummary, CollapsibleStepHeader, InlineStepDetail, InlineStepLabel, Markdown, MessageBubble, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, UsageStats, UsageStatsRing } from "./AIKit-DaFT7p92.js";
64
+ import { FileUpload, useFileDropTarget, useFileUploadRejections } from "./FileUpload-ABThVZyg.js";
65
+ import { AnswerSummary, CollapsibleStepHeader, InlineStepDetail, InlineStepLabel, Markdown, MessageBubble, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageStats, UsageStatsRing } from "./AIKit-DDg5DBCG.js";
65
66
  import { Table, tableAriaSort } from "./Table-CvYuTuNU.js";
66
67
  import { Skeleton } from "./internal/components/Skeleton/Skeleton.js";
67
68
  import { DiagramSkeleton } from "./internal/blocks/DiagramShared/DiagramSkeleton.js";
68
- import { Avatar } from "./internal/components/Avatar.js";
69
69
  import { Progress } from "./internal/components/Progress.js";
70
70
  import { Collapsible } from "./Collapsible-BQXWEOBC.js";
71
- import { Alert } from "./Alert-CseY3yAj.js";
72
- import { toast } from "./toast-BweSoKn3.js";
73
- import { Toaster, useNotification } from "./Toast-CxXUulYN.js";
71
+ import { Alert } from "./Alert-DHJFrWnS.js";
72
+ import { toast } from "./toast-DIC0iNRf.js";
73
+ import { Toaster, useNotification } from "./Toast-Dr6Uw7ao.js";
74
74
  import { EmptySearchContent } from "./internal/components/EmptySearchContent.js";
75
- import { Card } from "./Card-Cd5HSBmv.js";
75
+ import { Card } from "./Card-Dyo7055Q.js";
76
76
  import { EmptyConfigurationActionCard } from "./internal/blocks/EmptyConfigurationActionCard.js";
77
77
  import { EmptyState } from "./internal/blocks/EmptyState.js";
78
78
  import { ErrorState } from "./internal/blocks/ErrorState.js";
@@ -80,25 +80,26 @@ import { SkeletonList } from "./internal/components/Skeleton/SkeletonList.js";
80
80
  import { DotsLoader } from "./internal/components/DotsLoader.js";
81
81
  import { CollapsiblePanel } from "./internal/components/CollapsiblePanel.js";
82
82
  import { PanelWithDetails } from "./internal/components/PanelWithDetails.js";
83
- import { ThemeProvider, brandSchema, exampleCustomer, keboola, keboolaLegacySidebar, keboolaLegacyTopnav } from "./ThemeProvider-DZfGdf1v.js";
84
- import { AppShell, appShellSlotSelector } from "./AppShell-BUoxM3fv.js";
83
+ import { ThemeProvider, ThemeScope, brandSchema, exampleCustomer, keboola, keboolaLegacySidebar, keboolaLegacyTopnav, useThemeScopeContainer } from "./ThemeProvider-DrQJtzpd.js";
84
+ import { AppShell, appShellSlotSelector } from "./AppShell-DRgJxpXW.js";
85
85
  import { PageLayout } from "./PageLayout-DSVM-ASz.js";
86
86
  import { PageHeader } from "./PageHeader-Q3IpCnQd.js";
87
- import { PageToolbar } from "./PageToolbar-bG2YtSa3.js";
88
- import { SectionNav } from "./SectionNav-Bw_MVL0_.js";
89
- import { BrandLogo } from "./BrandLogo-V2pRUAeO.js";
87
+ import { PageToolbar } from "./PageToolbar-DnbFt14Q.js";
88
+ import { SectionNav } from "./SectionNav-BpJlisbT.js";
89
+ import { BrandLogo } from "./BrandLogo-Dmi7jo21.js";
90
90
  import { ResizableHandle, ResizablePanel, ResizablePanelGroup, useDefaultLayout } from "./Resizable-D3vYToZH.js";
91
- import { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar } from "./Sidebar-r1TW4g_b.js";
91
+ import { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar } from "./Sidebar-Cm6I4dE1.js";
92
92
  import { useScrollbarPosition } from "./internal/hooks/useScrollbarPosition.js";
93
- import { Navbar } from "./Navbar-CAQs4BZz.js";
93
+ import { Navbar } from "./Navbar-B2UsolVU.js";
94
94
  import { DEFAULT_WORKBENCH_BAR_HEIGHT_IN_REM, DEFAULT_WORKBENCH_PANEL_HEIGHT_IN_PX, MIN_WORKBENCH_PANEL_HEIGHT_IN_PX, Workbench, useWorkbench } from "./Workbench-BzE-Vvd9.js";
95
- import { Breadcrumb } from "./Breadcrumb-CQTPn_KB.js";
96
- import { Tabs, TabsContent } from "./Tabs-l72-WuhK.js";
95
+ import { Breadcrumb } from "./Breadcrumb-uEkM6adI.js";
96
+ import { Tabs, TabsContent } from "./Tabs-eB974xJf.js";
97
97
  import { Stepper } from "./Stepper-C8sm9ZFM.js";
98
98
  import { Timeline } from "./Timeline-6btyJl4D.js";
99
- import { MarkedText } from "./MarkedText-Ckbft5mw.js";
100
- import { Kbd, kbdVariants, keys } from "./Kbd-D6LpR7G2.js";
101
- import { Pagination } from "./Pagination-BB3X7ooY.js";
99
+ import { Avatar } from "./internal/components/Avatar.js";
100
+ import { MarkedText } from "./MarkedText-DNGEUVWc.js";
101
+ import { Kbd, kbdVariants, keys } from "./Kbd-CvSM3D3-.js";
102
+ import { Pagination } from "./Pagination-C_b7Xhey.js";
102
103
  import { DiffType, DiffView, computeDiffRows, computeLineInformation } from "./DiffView-ppTIzh2h.js";
103
104
  import { PaneHeader } from "./internal/components/MergeEditor/PaneHeader.js";
104
105
  import { ConflictStatusIndicator } from "./internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js";
@@ -106,10 +107,10 @@ import { useMergeDiff } from "./useMergeDiff-CvowEXJ1.js";
106
107
  import { DashboardHero } from "./internal/blocks/DashboardHero.js";
107
108
  import { StatCard, StatCardGrid } from "./internal/blocks/StatCard.js";
108
109
  import { ChartPanel } from "./internal/blocks/ChartPanel.js";
109
- import { setServerFieldErrors, setSubmitError, useAppForm, withForm } from "./Form-CTygENDc.js";
110
+ import { setServerFieldErrors, setSubmitError, useAppForm, withForm } from "./Form-k6PH-em3.js";
110
111
  import { useAutosizeInput } from "./internal/hooks/useAutosizeInput.js";
111
112
  import { useStableCallback } from "./internal/hooks/useStableCallback.js";
112
- import { ZoomableSvg, svgToPngBlob, toSvgFileContent } from "./ZoomableSvg-CNIzRHKH.js";
113
- import { BrandEditor, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, channelsToHex, contrastRatio, hexToChannels, wcagLevel } from "./BrandEditor-BnTLMRMp.js";
113
+ import { ZoomableSvg, svgToPngBlob, toSvgFileContent } from "./ZoomableSvg-BWnDkR61.js";
114
+ import { BrandEditor, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, channelsToHex, contrastRatio, hexToChannels, wcagLevel } from "./BrandEditor-Go7w8Zj2.js";
114
115
  import { Slot } from "@radix-ui/react-slot";
115
- export { Alert, AlertModal, AnswerSummary, AppShell, ArgoDesignContext, AutoSaveTextarea, Avatar, Badge, BrandEditor, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, ChartPanel, Checkbox, Clipboard, ClipboardButton, ClipboardInline, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, CopyField, DEFAULT_COLOR_SCHEME, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DEFAULT_WORKBENCH_BAR_HEIGHT_IN_REM, DEFAULT_WORKBENCH_PANEL_HEIGHT_IN_PX, DashboardHero, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiagramSkeleton, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, ExportMenu, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, GoogleButton, HelpBlock, HoverCard, InlineStepDetail, InlineStepLabel, InputGroup, Kbd, Label, Link, MIN_WORKBENCH_PANEL_HEIGHT_IN_PX, Markdown, MarkedText, MessageBubble, MicrosoftButton, Modal, MultiActionButtonGroup, MultiCombobox, MultiComboboxField, Navbar, NumberInput, OtpInput, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, SectionNav, Select, Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, Slot, SplitButton, SpotlightBackdrop, StatCard, StatCardGrid, Stepper, SuggestedPrompt, Switch, Table, Tabs, TabsContent, TextInput, Textarea, ThemeProvider, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, ToggleGroup, ToolCallApproval, ToolCallChip, Tooltip, TooltipProvider, Truncated, UsageStats, UsageStatsRing, Workbench, ZoomableSvg, appShellSlotSelector, argoVariants, brandSchema, channelsToHex, cn, computeDiffRows, computeLineInformation, contrastRatio, copyToClipboard, defaultFilter, exampleCustomer, hexToChannels, isMac, kbdVariants, keboola, keboolaLegacySidebar, keboolaLegacyTopnav, keys, mergeRefs, setServerFieldErrors, setSubmitError, svgToPngBlob, tableAriaSort, toSvgFileContent, toast, useAppForm, useArgoDesign, useAutosizeInput, useCommandState, useDefaultLayout, useFileDropTarget, useFileUploadRejections, useMergeDiff, useNotification, useOptionalSidebar, useScrollbarPosition, useSidebar, useStableCallback, useTargetRect, useTheme, useWorkbench, wcagLevel, withForm };
116
+ export { Alert, AlertModal, AnswerSummary, AppShell, ArgoDesignContext, AutoSaveTextarea, Avatar, Badge, BrandEditor, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, ChartPanel, Checkbox, Clipboard, ClipboardButton, ClipboardInline, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, CopyField, DEFAULT_COLOR_SCHEME, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DEFAULT_WORKBENCH_BAR_HEIGHT_IN_REM, DEFAULT_WORKBENCH_PANEL_HEIGHT_IN_PX, DashboardHero, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiagramSkeleton, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, ExportMenu, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, GoogleButton, HelpBlock, HoverCard, InlineStepDetail, InlineStepLabel, InputGroup, Kbd, Label, Link, MIN_WORKBENCH_PANEL_HEIGHT_IN_PX, Markdown, MarkedText, MessageBubble, MicrosoftButton, Modal, MultiActionButtonGroup, MultiCombobox, MultiComboboxField, Navbar, NumberInput, OtpInput, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, SectionNav, Select, Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, Slot, SplitButton, SpotlightBackdrop, StatCard, StatCardGrid, Stepper, SuggestedPrompt, Switch, Table, Tabs, TabsContent, TextInput, Textarea, ThemeProvider, ThemeScope, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, ToggleGroup, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, Tooltip, TooltipProvider, Truncated, UsageStats, UsageStatsRing, Workbench, ZoomableSvg, appShellSlotSelector, argoVariants, brandSchema, channelsToHex, cn, computeDiffRows, computeLineInformation, contrastRatio, copyToClipboard, defaultFilter, exampleCustomer, findLiteralMatches, hasLiteralMatch, hexToChannels, isMac, kbdVariants, keboola, keboolaLegacySidebar, keboolaLegacyTopnav, keys, mergeRefs, setServerFieldErrors, setSubmitError, svgToPngBlob, tableAriaSort, toSvgFileContent, toast, useAppForm, useArgoDesign, useAutosizeInput, useCommandState, useDefaultLayout, useFileDropTarget, useFileUploadRejections, useMergeDiff, useNotification, useOptionalSidebar, useScrollbarPosition, useSidebar, useStableCallback, useTargetRect, useTheme, useThemeScopeContainer, useWorkbench, wcagLevel, withForm };
@@ -1,2 +1,2 @@
1
- import { AnswerSummary, CollapsibleStepHeader, InlineStepDetail, InlineStepLabel, Markdown, MessageBubble, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, UsageStats, UsageStatsRing } from "../../AIKit-DaFT7p92.js";
2
- export { AnswerSummary, CollapsibleStepHeader, InlineStepDetail, InlineStepLabel, Markdown, MessageBubble, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, UsageStats, UsageStatsRing };
1
+ import { AnswerSummary, CollapsibleStepHeader, InlineStepDetail, InlineStepLabel, Markdown, MessageBubble, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageStats, UsageStatsRing } from "../../AIKit-DDg5DBCG.js";
2
+ export { AnswerSummary, CollapsibleStepHeader, InlineStepDetail, InlineStepLabel, Markdown, MessageBubble, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageStats, UsageStatsRing };
@@ -1,2 +1,2 @@
1
- import { AppShell, appShellSlotSelector } from "../../AppShell-BUoxM3fv.js";
1
+ import { AppShell, appShellSlotSelector } from "../../AppShell-DRgJxpXW.js";
2
2
  export { AppShell, appShellSlotSelector };
@@ -1,2 +1,2 @@
1
- import { BrandEditor, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, channelsToHex, contrastRatio, hexToChannels, wcagLevel } from "../../BrandEditor-BnTLMRMp.js";
1
+ import { BrandEditor, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, channelsToHex, contrastRatio, hexToChannels, wcagLevel } from "../../BrandEditor-Go7w8Zj2.js";
2
2
  export { BrandEditor, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, channelsToHex, contrastRatio, hexToChannels, wcagLevel };
@@ -1,5 +1,5 @@
1
1
  import { cn } from "../../classNames-BzrkDnOD.js";
2
- import { Card } from "../../Card-Cd5HSBmv.js";
2
+ import { Card } from "../../Card-Dyo7055Q.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/blocks/ChartPanel/ChartPanel.tsx
5
5
  /**
@@ -1,2 +1,2 @@
1
- import { ClipboardButton, ClipboardInline } from "../../ClipboardButton-CQ6Aewpg.js";
1
+ import { ClipboardButton, ClipboardInline } from "../../ClipboardButton-D9pDjgkB.js";
2
2
  export { ClipboardButton, ClipboardInline };
@@ -1,2 +1,2 @@
1
- import { ColorInput } from "../../ColorInput-Q1D9Vcc_.js";
1
+ import { ColorInput } from "../../ColorInput-Bxj-1eLT.js";
2
2
  export { ColorInput };
@@ -1,2 +1,2 @@
1
- import { ColorModeSwitch } from "../../ColorModeSwitch-B5PXCVqB.js";
1
+ import { ColorModeSwitch } from "../../ColorModeSwitch-CsWLiTBX.js";
2
2
  export { ColorModeSwitch };
@@ -1,2 +1,2 @@
1
- import { Command, CommandGroup, CommandInput, CommandItem, CommandList, defaultFilter, useCommandState } from "../../Command-Ds68v2rX.js";
1
+ import { Command, CommandGroup, CommandInput, CommandItem, CommandList, defaultFilter, useCommandState } from "../../Command-B7ML9YMv.js";
2
2
  export { Command, CommandGroup, CommandInput, CommandItem, CommandList, defaultFilter, useCommandState };
@@ -1,2 +1,2 @@
1
- import { CopyField } from "../../CopyField-DI66uY_g.js";
1
+ import { CopyField } from "../../CopyField-BO_sh-HO.js";
2
2
  export { CopyField };
@@ -1,2 +1,2 @@
1
- import { DateInput } from "../../DateInput-BPj2pzsn.js";
1
+ import { DateInput } from "../../DateInput-ZdaMQo5i.js";
2
2
  export { DateInput };
@@ -1,2 +1,2 @@
1
- import { DateRangeInput } from "../../DateRangeInput-u9DxNbHW.js";
1
+ import { DateRangeInput } from "../../DateRangeInput-DkvNh_sT.js";
2
2
  export { DateRangeInput };
@@ -1,4 +1,4 @@
1
- import { Card } from "../../Card-Cd5HSBmv.js";
1
+ import { Card } from "../../Card-Dyo7055Q.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  //#region src/blocks/EmptyConfigurationActionCard/EmptyConfigurationActionCard.tsx
4
4
  const EmptyConfigurationActionCard = ({ title, children, className }) => {
@@ -1,4 +1,4 @@
1
- import { useArgoDesign } from "../../context-BrNtMc1H.js";
1
+ import { useArgoDesign } from "../../context-D7X470dy.js";
2
2
  import { cva } from "class-variance-authority";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/blocks/ErrorState/ErrorState.tsx
@@ -1,7 +1,7 @@
1
- import { Tooltip } from "../../utils-B-g7d_Jb.js";
1
+ import { Tooltip } from "../../utils-B5Z52hYs.js";
2
2
  import { Download } from "../../icons-Cek151jC.js";
3
- import { Button } from "../../Button-CPsEQuTN.js";
4
- import { DropdownMenu } from "../../DropdownMenu-DpMEcyCq.js";
3
+ import { Button } from "../../Button-DsRrU5F1.js";
4
+ import { DropdownMenu } from "../../DropdownMenu-CASr-jgl.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/blocks/ExportMenu/ExportMenu.tsx
7
7
  /**
@@ -14,7 +14,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
14
14
  * which in turn pulls `ScrollArea`) plus two more external deps behind the lazy
15
15
  * boundary. Callers already paying for the barrel inject this instead.
16
16
  */
17
- const ExportMenu = ({ items, label, size = "icon-sm" }) => /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(Tooltip, {
17
+ const ExportMenu = ({ items, label, size = "icon-sm", variant = "outline" }) => /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(Tooltip, {
18
18
  tooltip: label,
19
19
  placement: "top",
20
20
  triggerAsChild: true,
@@ -22,7 +22,7 @@ const ExportMenu = ({ items, label, size = "icon-sm" }) => /* @__PURE__ */ jsxs(
22
22
  asChild: true,
23
23
  children: /* @__PURE__ */ jsx(Button, {
24
24
  size,
25
- variant: "outline",
25
+ variant,
26
26
  "aria-label": label,
27
27
  className: "tw:data-[state=open]:!bg-primary/10 tw:data-[state=open]:!text-primary",
28
28
  children: /* @__PURE__ */ jsx(Download, { className: "tw:size-4" })
@@ -1 +1 @@
1
- {"version":3,"file":"ExportMenu.js","names":[],"sources":["../../../src/blocks/ExportMenu/ExportMenu.tsx"],"sourcesContent":["import { Button } from '../../components/Button';\nimport { DropdownMenu } from '../../components/DropdownMenu';\nimport { Tooltip } from '../../components/Tooltip';\nimport { Download } from '../../icons';\n\nexport type ExportMenuItem = {\n /** Menu label, e.g. \"Download as CSV\". */\n label: string;\n onSelect: () => void;\n};\n\ntype Props = {\n items: ExportMenuItem[];\n /** Accessible name + tooltip for the trigger, e.g. \"Export table\". */\n label: string;\n size?: 'icon-xs' | 'icon-sm';\n};\n\n/**\n * Download-icon trigger with a menu of export formats.\n *\n * Lives in the root barrel rather than inside `ZoomableSvg` on purpose: that\n * component ships behind the lazy `@keboola/design/mermaid` boundary, and Radix's\n * menu is not in that chunk closure — importing it there would pull ~11 kB\n * brotlied of chunk-mates (`DropdownMenu` travels with `ButtonGroup` and `toast`,\n * which in turn pulls `ScrollArea`) plus two more external deps behind the lazy\n * boundary. Callers already paying for the barrel inject this instead.\n */\nexport const ExportMenu = ({ items, label, size = 'icon-sm' }: Props) => (\n <DropdownMenu>\n <Tooltip tooltip={label} placement=\"top\" triggerAsChild>\n <DropdownMenu.Trigger asChild>\n <Button\n size={size}\n variant=\"outline\"\n aria-label={label}\n // A menu trigger reads as active while its menu is open, and the argo\n // `outline` variant resets to the plain background when active\n // (`tw:hover:active:bg-background`). Re-assert the tint so an open\n // trigger stays highlighted instead of dropping back to plain.\n className=\"tw:data-[state=open]:!bg-primary/10 tw:data-[state=open]:!text-primary\"\n >\n <Download className=\"tw:size-4\" />\n </Button>\n </DropdownMenu.Trigger>\n </Tooltip>\n <DropdownMenu.Content align=\"end\">\n {/* Keyed by index, not label: labels aren't guaranteed unique on a public\n export (localized or dynamic text), and a duplicate key trips React's\n duplicate-key warning. */}\n {items.map((item, index) => (\n <DropdownMenu.Item key={index} onSelect={item.onSelect}>\n {item.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n);\n"],"mappings":";;;;;;;;;;;;;;;;AA4BA,MAAa,cAAc,EAAE,OAAO,OAAO,OAAO,gBAChD,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,SAAD;CAAS,SAAS;CAAO,WAAU;CAAM,gBAAA;CACvC,UAAA,oBAAC,aAAa,SAAd;EAAsB,SAAA;EACpB,UAAA,oBAAC,QAAD;GACQ;GACN,SAAQ;GACR,cAAY;GAKZ,WAAU;GAEV,UAAA,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA;EAC3B,CAAA;CACY,CAAA;AACf,CAAA,GACT,oBAAC,aAAa,SAAd;CAAsB,OAAM;CAIzB,UAAA,MAAM,KAAK,MAAM,UAChB,oBAAC,aAAa,MAAd;EAA+B,UAAU,KAAK;EAC3C,UAAA,KAAK;CACW,GAFK,KAEL,CACpB;AACmB,CAAA,CACV,EAAA,CAAA"}
1
+ {"version":3,"file":"ExportMenu.js","names":[],"sources":["../../../src/blocks/ExportMenu/ExportMenu.tsx"],"sourcesContent":["import { Button } from '../../components/Button';\nimport { DropdownMenu } from '../../components/DropdownMenu';\nimport { Tooltip } from '../../components/Tooltip';\nimport { Download } from '../../icons';\n\nexport type ExportMenuItem = {\n /** Menu label, e.g. \"Download as CSV\". */\n label: string;\n onSelect: () => void;\n};\n\ntype Props = {\n items: ExportMenuItem[];\n /** Accessible name + tooltip for the trigger, e.g. \"Export table\". */\n label: string;\n size?: 'icon-xs' | 'icon-sm';\n /**\n * Trigger weight. `outline` (default) for a standalone control; `invisible`\n * where the trigger sits in a row of ghost actions and a border would make\n * the one menu louder than the buttons beside it.\n */\n variant?: 'outline' | 'invisible';\n};\n\n/**\n * Download-icon trigger with a menu of export formats.\n *\n * Lives in the root barrel rather than inside `ZoomableSvg` on purpose: that\n * component ships behind the lazy `@keboola/design/mermaid` boundary, and Radix's\n * menu is not in that chunk closure — importing it there would pull ~11 kB\n * brotlied of chunk-mates (`DropdownMenu` travels with `ButtonGroup` and `toast`,\n * which in turn pulls `ScrollArea`) plus two more external deps behind the lazy\n * boundary. Callers already paying for the barrel inject this instead.\n */\nexport const ExportMenu = ({ items, label, size = 'icon-sm', variant = 'outline' }: Props) => (\n <DropdownMenu>\n <Tooltip tooltip={label} placement=\"top\" triggerAsChild>\n <DropdownMenu.Trigger asChild>\n <Button\n size={size}\n variant={variant}\n aria-label={label}\n // A menu trigger reads as active while its menu is open, and the argo\n // `outline` variant resets to the plain background when active\n // (`tw:hover:active:bg-background`). Re-assert the tint so an open\n // trigger stays highlighted instead of dropping back to plain.\n className=\"tw:data-[state=open]:!bg-primary/10 tw:data-[state=open]:!text-primary\"\n >\n <Download className=\"tw:size-4\" />\n </Button>\n </DropdownMenu.Trigger>\n </Tooltip>\n <DropdownMenu.Content align=\"end\">\n {/* Keyed by index, not label: labels aren't guaranteed unique on a public\n export (localized or dynamic text), and a duplicate key trips React's\n duplicate-key warning. */}\n {items.map((item, index) => (\n <DropdownMenu.Item key={index} onSelect={item.onSelect}>\n {item.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n);\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,MAAa,cAAc,EAAE,OAAO,OAAO,OAAO,WAAW,UAAU,gBACrE,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,SAAD;CAAS,SAAS;CAAO,WAAU;CAAM,gBAAA;CACvC,UAAA,oBAAC,aAAa,SAAd;EAAsB,SAAA;EACpB,UAAA,oBAAC,QAAD;GACQ;GACG;GACT,cAAY;GAKZ,WAAU;GAEV,UAAA,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA;EAC3B,CAAA;CACY,CAAA;AACf,CAAA,GACT,oBAAC,aAAa,SAAd;CAAsB,OAAM;CAIzB,UAAA,MAAM,KAAK,MAAM,UAChB,oBAAC,aAAa,MAAd;EAA+B,UAAU,KAAK;EAC3C,UAAA,KAAK;CACW,GAFK,KAEL,CACpB;AACmB,CAAA,CACV,EAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { MultiCombobox } from "../../MultiCombobox.js";
2
- import { FieldItem, useFieldContext } from "../../../../FieldItem-qQKGU9lF.js";
2
+ import { FieldItem, useFieldContext } from "../../../../FieldItem-CCd9-xnp.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/blocks/Form/connectors/MultiComboboxField.tsx
5
5
  /**
@@ -1,2 +1,2 @@
1
- import { setServerFieldErrors, setSubmitError, useAppForm, withForm } from "../../Form-CTygENDc.js";
1
+ import { setServerFieldErrors, setSubmitError, useAppForm, withForm } from "../../Form-k6PH-em3.js";
2
2
  export { setServerFieldErrors, setSubmitError, useAppForm, withForm };
@@ -1,2 +1,2 @@
1
- import { FormGroup } from "../../FormGroup-BnwP0jNu.js";
1
+ import { FormGroup } from "../../FormGroup-DbcDtrgU.js";
2
2
  export { FormGroup };
@@ -1,2 +1,2 @@
1
- import { MultiActionButtonGroup } from "../../MultiActionButtonGroup-GTeFk-L8.js";
1
+ import { MultiActionButtonGroup } from "../../MultiActionButtonGroup-CxWH7yWK.js";
2
2
  export { MultiActionButtonGroup };
@@ -1,7 +1,7 @@
1
- import { useArgoDesign } from "../../context-BrNtMc1H.js";
1
+ import { useArgoDesign } from "../../context-D7X470dy.js";
2
2
  import { ChevronDown, Plus, X } from "../../icons-Cek151jC.js";
3
- import { InputGroup } from "../../InputGroup-D7zlmqPB.js";
4
- import { Combobox as Combobox$1, createCreatableItem, defaultGroupToLabel, defaultItemToDisabled, defaultItemToIcon, defaultItemToLabel, defaultQueryToCreateLabel, defaultToCreateValue, isCreatableItem, isGroupItem, isGroupItems, isLabeledItem, toLabel } from "../../Combobox-CyoRA7oY.js";
3
+ import { InputGroup } from "../../InputGroup-BnLHY0eq.js";
4
+ import { Combobox as Combobox$1, createCreatableItem, defaultGroupToLabel, defaultItemToDisabled, defaultItemToIcon, defaultItemToLabel, defaultQueryToCreateLabel, defaultToCreateValue, isCreatableItem, isGroupItem, isGroupItems, isLabeledItem, toLabel } from "../../Combobox-Cs_1pj2q.js";
5
5
  import { Fragment, useState } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { Combobox } from "@base-ui/react/combobox";
@@ -24,7 +24,7 @@ const isSelectAllItem = (item) => isLabeledItem(item) && item.value === "__selec
24
24
  * @see RECIPES.md#creatable-multi-combobox — for free-form-plus-enumerated patterns
25
25
  * @see RECIPES.md#filter-toolbar — for combining multi-select with other filter chips
26
26
  */
27
- const MultiCombobox = ({ items: _itemsProp, value: _valueProp, defaultValue, onValueChange, itemToStringLabel, itemToStringValue, disabled, filter: filterProp, inputRef, variant, sizing, focusVariant, state, placeholder, allowClear, id, name, onBlur, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, className, allowSelectAll = false, empty = "No items", indicator, allowCreate, queryToCreateValue, queryToCreateLabel = defaultQueryToCreateLabel, itemToDisabled = defaultItemToDisabled, itemToLabel = defaultItemToLabel, itemToIcon = defaultItemToIcon, groupToLabel = defaultGroupToLabel, itemToChipLabel, itemToChipColor, maxVisible = 3 }) => {
27
+ const MultiCombobox = ({ items: _itemsProp, value: _valueProp, defaultValue, onValueChange, itemToStringLabel, itemToStringValue, disabled, filter: filterProp, inputRef, variant, sizing, focusVariant, state, placeholder, allowClear, id, name, onBlur, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, className, allowSelectAll = false, empty = "No items", indicator, allowCreate, queryToCreateValue, queryToCreateLabel = defaultQueryToCreateLabel, itemToDisabled = defaultItemToDisabled, itemToLabel = defaultItemToLabel, itemToIcon = defaultItemToIcon, groupToLabel = defaultGroupToLabel, itemToChipLabel, itemToChipColor, pinnedChipLabels, maxVisible = 3 }) => {
28
28
  const itemsProp = _itemsProp ?? [];
29
29
  const valueProp = _valueProp ?? [];
30
30
  const chipVariant = useArgoDesign() ? "pill" : "default";
@@ -79,16 +79,18 @@ const MultiCombobox = ({ items: _itemsProp, value: _valueProp, defaultValue, onV
79
79
  created.push(value);
80
80
  return value;
81
81
  }) : next;
82
- if (allowCreate) {
83
- if (created.length > 0) setCreatedItems((prev) => [...prev, ...created]);
84
- setInputValue("");
85
- }
86
82
  const hasSelectAll = converted.some((item) => isSelectAllItem(item));
87
- onValueChange((() => {
83
+ const newValue = (() => {
88
84
  if (!allowSelectAll) return converted;
89
85
  if (!hasSelectAll) return isAllSelected ? [] : converted;
90
86
  return isAllSelected ? converted.filter((item) => !isSelectAllItem(item)) : allFlatItems;
91
- })(), event);
87
+ })();
88
+ if (allowCreate) {
89
+ const selected = new Set(newValue.map(itemToString));
90
+ setCreatedItems((prev) => [...prev, ...created].filter((item) => selected.has(itemToString(item))));
91
+ setInputValue("");
92
+ }
93
+ onValueChange(newValue, event);
92
94
  };
93
95
  const renderItem = (item) => {
94
96
  return /* @__PURE__ */ jsx(Combobox$1.Item, {
@@ -129,7 +131,8 @@ const MultiCombobox = ({ items: _itemsProp, value: _valueProp, defaultValue, onV
129
131
  maxVisible,
130
132
  variant: chipVariant,
131
133
  itemToChipLabel: itemToChipLabel ?? itemToLabel,
132
- itemToChipColor
134
+ itemToChipColor,
135
+ pinnedChipLabels
133
136
  }), /* @__PURE__ */ jsxs("div", {
134
137
  className: "tw:flex tw:flex-1 tw:items-center tw:gap-1",
135
138
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"MultiCombobox.js","names":["BaseCombobox","Combobox"],"sources":["../../../src/blocks/MultiCombobox/MultiCombobox.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, type ReactNode, useState } from 'react';\nimport { Combobox as BaseCombobox } from '@base-ui/react/combobox';\n\nimport { Combobox } from '../../components/Combobox';\nimport type { Group, LabeledItem } from '../../components/Combobox/types';\nimport {\n createCreatableItem,\n defaultGroupToLabel,\n defaultItemToDisabled,\n defaultItemToIcon,\n defaultItemToLabel,\n defaultQueryToCreateLabel,\n defaultToCreateValue,\n isCreatableItem,\n isGroupItem,\n isGroupItems,\n isLabeledItem,\n toLabel,\n} from '../../components/Combobox/utils';\nimport { InputGroup } from '../../components/InputGroup';\nimport { useArgoDesign } from '../../components/ThemeProvider/context';\nimport { ChevronDown, Plus, X } from '../../icons';\n\ntype ComboboxProps<Value> = BaseCombobox.Root.Props<Value, true>;\ntype ComboboxInputProps = ComponentProps<typeof Combobox.Input>;\ntype ComboboxInputGroupProps = ComponentProps<typeof Combobox.InputGroup>;\ntype ComboboxItemProps = ComponentProps<typeof Combobox.Item>;\ntype ComboboxChipsProps = ComponentProps<typeof Combobox.Chips>;\n\ntype Indicator = NonNullable<ComboboxItemProps['indicator']>;\n\ntype CreatableProps<Value> = {\n allowCreate?: boolean;\n queryToCreateLabel?: (query: string) => ReactNode;\n queryToCreateValue?: (query: string) => Value;\n};\n\n/**\n * Props for `MultiCombobox`. Generic over `Value` (the item shape) and `GroupShape` (optional group wrapper).\n * Use `itemToLabel` / `itemToIcon` / `itemToDisabled` to project custom item shapes; use `filter` to override\n * the default substring matcher. Pass `allowCreate` to let the user add free-form values not in `items`.\n */\ntype Props<Value, GroupShape extends Group<Value> = Group<Value>> = Pick<\n ComboboxInputProps,\n // `name`, `onBlur` and the `aria-*` set are forwarded to the input so a form connector can hand\n // over the wiring it derives from the field — without the `aria-*` set the control cannot be linked\n // to its own help and error text, and without `onBlur` the field never registers as blurred, which\n // is the gate `FieldItem` reveals errors on.\n 'placeholder' | 'id' | 'name' | 'onBlur' | 'aria-describedby' | 'aria-invalid' | 'aria-required'\n> &\n Pick<ComboboxInputGroupProps, 'variant' | 'focusVariant' | 'sizing' | 'state' | 'className'> &\n Pick<\n ComboboxProps<Value>,\n | 'disabled'\n | 'inputRef'\n | 'value'\n | 'defaultValue'\n | 'onValueChange'\n | 'itemToStringLabel'\n | 'itemToStringValue'\n | 'filter'\n > &\n Pick<ComboboxChipsProps, 'itemToChipLabel' | 'itemToChipColor' | 'maxVisible'> &\n CreatableProps<Value> & {\n items?: readonly (Value | GroupShape)[];\n\n // root specific\n allowClear?: boolean;\n allowSelectAll?: boolean;\n empty?: ReactNode;\n indicator?: Indicator;\n\n // item specific\n itemToLabel?: (item: Value) => ReactNode;\n itemToIcon?: (item: Value) => ReactNode;\n itemToDisabled?: (item: Value) => boolean;\n\n // group specific\n groupToLabel?: (group: GroupShape) => ReactNode;\n };\n\nconst selectAllItem: LabeledItem = {\n value: '__select_all__',\n label: 'Select All',\n};\n\nconst isSelectAllItem = <Value,>(item: Value) =>\n isLabeledItem(item) && item.value === '__select_all__';\n\n/**\n * Multi-selection combobox with chip display and search. Built on Base UI Combobox.\n *\n * **When to use:** picking several items from a searchable enumerated list (filter by tags, assign labels).\n * Items render as chips above the input; `maxVisible` collapses excess into a `+N more` chip.\n * **When NOT to use:** for single selection use `Combobox`; for short enums without search use `Select`.\n * **Composition:** wrap in `FormGroup` for label + help text, or use `useAppForm` for form integration.\n * Pass `allowSelectAll` for a sticky \"Select All\" item when the full enum is small. Pass `allowCreate`\n * to let the user add free-form values that are not in `items` (e.g. entering column names by hand).\n *\n * @see RECIPES.md#creatable-multi-combobox — for free-form-plus-enumerated patterns\n * @see RECIPES.md#filter-toolbar — for combining multi-select with other filter chips\n */\nexport const MultiCombobox = <Value, GroupShape extends Group<Value> = Group<Value>>({\n // root props\n items: _itemsProp,\n value: _valueProp,\n defaultValue,\n onValueChange,\n itemToStringLabel,\n itemToStringValue,\n disabled,\n filter: filterProp,\n inputRef,\n\n // input props\n variant,\n sizing,\n focusVariant,\n state,\n placeholder,\n allowClear,\n id,\n name,\n onBlur,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n 'aria-required': ariaRequired,\n className,\n\n // own props\n allowSelectAll = false,\n empty = 'No items',\n indicator,\n\n // creatable\n allowCreate,\n queryToCreateValue,\n queryToCreateLabel = defaultQueryToCreateLabel,\n\n // own item props\n itemToDisabled = defaultItemToDisabled,\n itemToLabel = defaultItemToLabel,\n itemToIcon = defaultItemToIcon,\n groupToLabel = defaultGroupToLabel,\n itemToChipLabel,\n itemToChipColor,\n maxVisible = 3,\n}: Props<Value, GroupShape>) => {\n const itemsProp = _itemsProp ?? [];\n const valueProp = _valueProp ?? [];\n const renderArgo = useArgoDesign();\n const chipVariant = renderArgo ? 'pill' : 'default';\n\n const [inputValue, setInputValue] = useState('');\n const [createdItems, setCreatedItems] = useState<Value[]>([]);\n const query = inputValue.trim();\n const queryLower = query.toLowerCase();\n\n // Created values are appended to `items` so Base UI can keep resolving them (as chips and as\n // list options) once the query clears — otherwise a value that isn't in `items` gets dropped.\n const baseItems = (() => {\n if (createdItems.length === 0) return itemsProp;\n if (isGroupItems(itemsProp))\n return [...itemsProp, { items: createdItems } as unknown as GroupShape];\n return [...itemsProp, ...createdItems];\n })();\n\n const allFlatItems = baseItems.flatMap((item) => (isGroupItem(item) ? item.items : item));\n const sampleItem = allFlatItems[0] as Value | undefined;\n const isAllSelected = allFlatItems.length === (valueProp?.length ?? 0);\n\n const defaultFilter = BaseCombobox.useFilter({\n multiple: true,\n value: valueProp,\n });\n\n const itemsWithSelectAllItem = (() => {\n if (!allowSelectAll) return baseItems;\n return [selectAllItem, ...baseItems];\n })();\n\n const itemToString = (item: Value) => itemToStringLabel?.(item) ?? toLabel(item);\n\n const items = (() => {\n const base = itemsWithSelectAllItem;\n if (!allowCreate || disabled || !query) return base;\n\n const exactMatch = allFlatItems.some((item) => itemToString(item).toLowerCase() === queryLower);\n const alreadySelected = valueProp.some(\n (item) => itemToString(item).toLowerCase() === queryLower,\n );\n if (exactMatch || alreadySelected) return base;\n\n const creatable = createCreatableItem(query);\n return isGroupItems(base)\n ? [...base, { items: [creatable] } as unknown as GroupShape]\n : [...base, creatable as unknown as Value];\n })();\n\n const filter = (item: Value, query: string, itemToString?: (value: Value) => string) => {\n // keep select always visible\n if (isSelectAllItem(item)) return true;\n // always offer the transient \"create\" option\n if (isCreatableItem(item)) return true;\n\n if (filterProp) return filterProp(item, query, itemToString);\n return defaultFilter.contains(item, query, itemToString);\n };\n\n const wrappedItemToStringLabel: ComboboxProps<Value>['itemToStringLabel'] = !allowCreate\n ? itemToStringLabel\n : (item) => (isCreatableItem(item) ? item.value : itemToString(item));\n\n const wrappedItemToStringValue: ComboboxProps<Value>['itemToStringValue'] =\n !allowCreate || !itemToStringValue\n ? itemToStringValue\n : (item) => (isCreatableItem(item) ? item.value : itemToStringValue(item));\n\n const value = (() => {\n if (!allowSelectAll) return valueProp;\n return isAllSelected ? [...valueProp, selectAllItem as Value] : valueProp;\n })();\n\n const handleValueChange: ComboboxProps<Value>['onValueChange'] = (next, event) => {\n if (!onValueChange) return;\n\n const created: Value[] = [];\n const converted = allowCreate\n ? next.map((item) => {\n if (!isCreatableItem(item)) return item;\n const value = defaultToCreateValue(item.value, sampleItem, queryToCreateValue) as Value;\n created.push(value);\n return value;\n })\n : next;\n\n if (allowCreate) {\n if (created.length > 0) setCreatedItems((prev) => [...prev, ...created]);\n setInputValue('');\n }\n\n const hasSelectAll = converted.some((item) => isSelectAllItem(item));\n const newValue = (() => {\n if (!allowSelectAll) return converted;\n if (!hasSelectAll) return isAllSelected ? [] : converted;\n return isAllSelected ? converted.filter((item) => !isSelectAllItem(item)) : allFlatItems;\n })();\n\n onValueChange(newValue, event);\n };\n\n const renderItem = (item: Value) => {\n return (\n <Combobox.Item\n value={item}\n indicator={indicator}\n icon={itemToIcon(item)}\n disabled={itemToDisabled(item)}\n >\n {itemToLabel(item)}\n </Combobox.Item>\n );\n };\n\n return (\n <Combobox.Root<Value, true>\n multiple\n // Base UI highlights nothing until ArrowDown, so Enter after typing would drop the query\n // silently — no selection, and the popup closes. Highlighting the first match makes Enter\n // commit it, including the creatable row when `allowCreate` is on.\n autoHighlight\n items={items}\n value={value}\n defaultValue={defaultValue}\n filter={filter}\n onValueChange={handleValueChange}\n itemToStringLabel={wrappedItemToStringLabel}\n itemToStringValue={wrappedItemToStringValue}\n disabled={disabled}\n inputRef={inputRef}\n {...(allowCreate\n ? { inputValue, onInputValueChange: (nextValue: string) => setInputValue(nextValue) }\n : {})}\n >\n <BaseCombobox.Chips render={<Fragment />}>\n <Combobox.InputGroup\n variant={variant}\n sizing={sizing}\n state={state}\n focusVariant={focusVariant}\n className={className}\n >\n <div className=\"tw:flex tw:min-w-0 tw:flex-1 tw:flex-wrap tw:items-center tw:gap-1.5 tw:px-4 tw:py-1.5\">\n <Combobox.Chips<Value>\n maxVisible={maxVisible}\n variant={chipVariant}\n itemToChipLabel={itemToChipLabel ?? itemToLabel}\n itemToChipColor={itemToChipColor}\n />\n <div className=\"tw:flex tw:flex-1 tw:items-center tw:gap-1\">\n <Combobox.Input\n id={id}\n name={name}\n onBlur={onBlur}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-required={ariaRequired}\n placeholder={placeholder}\n disabled={disabled}\n className=\"tw:w-auto tw:min-w-[120px] tw:flex-1\"\n />\n {allowClear && (\n <InputGroup.Button asChild aria-label=\"Clear\" disabled={disabled}>\n <BaseCombobox.Clear>\n <X className=\"tw:size-4\" />\n </BaseCombobox.Clear>\n </InputGroup.Button>\n )}\n <InputGroup.Button disabled={disabled} asChild aria-label=\"Open combobox\">\n <BaseCombobox.Trigger>\n <ChevronDown className=\"tw:size-4\" />\n </BaseCombobox.Trigger>\n </InputGroup.Button>\n </div>\n </div>\n </Combobox.InputGroup>\n </BaseCombobox.Chips>\n <Combobox.Content>\n <Combobox.Empty>{empty}</Combobox.Empty>\n <Combobox.List>\n {(itemOrGroup: Value | GroupShape) => {\n if (isSelectAllItem(itemOrGroup)) {\n return (\n <Combobox.Item value={itemOrGroup} indicator=\"checkbox\">\n Select All\n </Combobox.Item>\n );\n }\n\n if (isCreatableItem(itemOrGroup)) {\n return (\n <Combobox.Item value={itemOrGroup} icon={<Plus />}>\n {queryToCreateLabel(itemOrGroup.value)}\n </Combobox.Item>\n );\n }\n\n if (isGroupItem(itemOrGroup)) {\n const maybeCreatable = itemOrGroup.items[0];\n\n if (isCreatableItem(maybeCreatable)) {\n return (\n <Combobox.Item value={maybeCreatable} icon={<Plus />}>\n {queryToCreateLabel(maybeCreatable.value)}\n </Combobox.Item>\n );\n }\n\n const groupLabel = groupToLabel(itemOrGroup);\n return (\n <Combobox.Group items={itemOrGroup.items}>\n {groupLabel && <Combobox.GroupLabel>{groupLabel}</Combobox.GroupLabel>}\n <Combobox.GroupList>{renderItem}</Combobox.GroupList>\n </Combobox.Group>\n );\n }\n\n return renderItem(itemOrGroup);\n }}\n </Combobox.List>\n </Combobox.Content>\n </Combobox.Root>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"MultiCombobox.js","names":["BaseCombobox","Combobox"],"sources":["../../../src/blocks/MultiCombobox/MultiCombobox.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, type ReactNode, useState } from 'react';\nimport { Combobox as BaseCombobox } from '@base-ui/react/combobox';\n\nimport { Combobox } from '../../components/Combobox';\nimport type { Group, LabeledItem } from '../../components/Combobox/types';\nimport {\n createCreatableItem,\n defaultGroupToLabel,\n defaultItemToDisabled,\n defaultItemToIcon,\n defaultItemToLabel,\n defaultQueryToCreateLabel,\n defaultToCreateValue,\n isCreatableItem,\n isGroupItem,\n isGroupItems,\n isLabeledItem,\n toLabel,\n} from '../../components/Combobox/utils';\nimport { InputGroup } from '../../components/InputGroup';\nimport { useArgoDesign } from '../../components/ThemeProvider/context';\nimport { ChevronDown, Plus, X } from '../../icons';\n\ntype ComboboxProps<Value> = BaseCombobox.Root.Props<Value, true>;\ntype ComboboxInputProps = ComponentProps<typeof Combobox.Input>;\ntype ComboboxInputGroupProps = ComponentProps<typeof Combobox.InputGroup>;\ntype ComboboxItemProps = ComponentProps<typeof Combobox.Item>;\ntype ComboboxChipsProps<Value> = ComponentProps<typeof Combobox.Chips<Value>>;\n\ntype Indicator = NonNullable<ComboboxItemProps['indicator']>;\n\ntype CreatableProps<Value> = {\n allowCreate?: boolean;\n queryToCreateLabel?: (query: string) => ReactNode;\n queryToCreateValue?: (query: string) => Value;\n};\n\n/**\n * Props for `MultiCombobox`. Generic over `Value` (the item shape) and `GroupShape` (optional group wrapper).\n * Use `itemToLabel` / `itemToIcon` / `itemToDisabled` to project custom item shapes; use `filter` to override\n * the default substring matcher. Pass `allowCreate` to let the user add free-form values not in `items`.\n */\ntype Props<Value, GroupShape extends Group<Value> = Group<Value>> = Pick<\n ComboboxInputProps,\n // `name`, `onBlur` and the `aria-*` set are forwarded to the input so a form connector can hand\n // over the wiring it derives from the field — without the `aria-*` set the control cannot be linked\n // to its own help and error text, and without `onBlur` the field never registers as blurred, which\n // is the gate `FieldItem` reveals errors on.\n 'placeholder' | 'id' | 'name' | 'onBlur' | 'aria-describedby' | 'aria-invalid' | 'aria-required'\n> &\n Pick<ComboboxInputGroupProps, 'variant' | 'focusVariant' | 'sizing' | 'state' | 'className'> &\n Pick<\n ComboboxProps<Value>,\n | 'disabled'\n | 'inputRef'\n | 'value'\n | 'defaultValue'\n | 'onValueChange'\n | 'itemToStringLabel'\n | 'itemToStringValue'\n | 'filter'\n > &\n Pick<\n ComboboxChipsProps<Value>,\n 'itemToChipLabel' | 'itemToChipColor' | 'pinnedChipLabels' | 'maxVisible'\n > &\n CreatableProps<Value> & {\n items?: readonly (Value | GroupShape)[];\n\n // root specific\n allowClear?: boolean;\n allowSelectAll?: boolean;\n empty?: ReactNode;\n indicator?: Indicator;\n\n // item specific\n itemToLabel?: (item: Value) => ReactNode;\n itemToIcon?: (item: Value) => ReactNode;\n itemToDisabled?: (item: Value) => boolean;\n\n // group specific\n groupToLabel?: (group: GroupShape) => ReactNode;\n };\n\nconst selectAllItem: LabeledItem = {\n value: '__select_all__',\n label: 'Select All',\n};\n\nconst isSelectAllItem = <Value,>(item: Value) =>\n isLabeledItem(item) && item.value === '__select_all__';\n\n/**\n * Multi-selection combobox with chip display and search. Built on Base UI Combobox.\n *\n * **When to use:** picking several items from a searchable enumerated list (filter by tags, assign labels).\n * Items render as chips above the input; `maxVisible` collapses excess into a `+N more` chip.\n * **When NOT to use:** for single selection use `Combobox`; for short enums without search use `Select`.\n * **Composition:** wrap in `FormGroup` for label + help text, or use `useAppForm` for form integration.\n * Pass `allowSelectAll` for a sticky \"Select All\" item when the full enum is small. Pass `allowCreate`\n * to let the user add free-form values that are not in `items` (e.g. entering column names by hand).\n *\n * @see RECIPES.md#creatable-multi-combobox — for free-form-plus-enumerated patterns\n * @see RECIPES.md#filter-toolbar — for combining multi-select with other filter chips\n */\nexport const MultiCombobox = <Value, GroupShape extends Group<Value> = Group<Value>>({\n // root props\n items: _itemsProp,\n value: _valueProp,\n defaultValue,\n onValueChange,\n itemToStringLabel,\n itemToStringValue,\n disabled,\n filter: filterProp,\n inputRef,\n\n // input props\n variant,\n sizing,\n focusVariant,\n state,\n placeholder,\n allowClear,\n id,\n name,\n onBlur,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n 'aria-required': ariaRequired,\n className,\n\n // own props\n allowSelectAll = false,\n empty = 'No items',\n indicator,\n\n // creatable\n allowCreate,\n queryToCreateValue,\n queryToCreateLabel = defaultQueryToCreateLabel,\n\n // own item props\n itemToDisabled = defaultItemToDisabled,\n itemToLabel = defaultItemToLabel,\n itemToIcon = defaultItemToIcon,\n groupToLabel = defaultGroupToLabel,\n itemToChipLabel,\n itemToChipColor,\n pinnedChipLabels,\n // Nothing chose 3: value editors override it to `Infinity` (a chip inside `+N` can be neither\n // read nor removed) and single-row filters to `1`. Changing it moves eleven call sites at once,\n // so it waits for a PR that can look at them.\n maxVisible = 3,\n}: Props<Value, GroupShape>) => {\n const itemsProp = _itemsProp ?? [];\n const valueProp = _valueProp ?? [];\n const renderArgo = useArgoDesign();\n const chipVariant = renderArgo ? 'pill' : 'default';\n\n const [inputValue, setInputValue] = useState('');\n const [createdItems, setCreatedItems] = useState<Value[]>([]);\n const query = inputValue.trim();\n const queryLower = query.toLowerCase();\n\n // Created values are appended to `items` so Base UI can keep resolving them (as chips and as\n // list options) once the query clears — otherwise a value that isn't in `items` gets dropped.\n // `handleValueChange` drops the ones the selection no longer holds, so this list tracks the\n // selection rather than every value ever typed.\n const baseItems = (() => {\n if (createdItems.length === 0) return itemsProp;\n if (isGroupItems(itemsProp))\n return [...itemsProp, { items: createdItems } as unknown as GroupShape];\n return [...itemsProp, ...createdItems];\n })();\n\n const allFlatItems = baseItems.flatMap((item) => (isGroupItem(item) ? item.items : item));\n const sampleItem = allFlatItems[0] as Value | undefined;\n const isAllSelected = allFlatItems.length === (valueProp?.length ?? 0);\n\n const defaultFilter = BaseCombobox.useFilter({\n multiple: true,\n value: valueProp,\n });\n\n const itemsWithSelectAllItem = (() => {\n if (!allowSelectAll) return baseItems;\n return [selectAllItem, ...baseItems];\n })();\n\n const itemToString = (item: Value) => itemToStringLabel?.(item) ?? toLabel(item);\n\n const items = (() => {\n const base = itemsWithSelectAllItem;\n if (!allowCreate || disabled || !query) return base;\n\n const exactMatch = allFlatItems.some((item) => itemToString(item).toLowerCase() === queryLower);\n const alreadySelected = valueProp.some(\n (item) => itemToString(item).toLowerCase() === queryLower,\n );\n if (exactMatch || alreadySelected) return base;\n\n const creatable = createCreatableItem(query);\n return isGroupItems(base)\n ? [...base, { items: [creatable] } as unknown as GroupShape]\n : [...base, creatable as unknown as Value];\n })();\n\n const filter = (item: Value, query: string, itemToString?: (value: Value) => string) => {\n // keep select always visible\n if (isSelectAllItem(item)) return true;\n // always offer the transient \"create\" option\n if (isCreatableItem(item)) return true;\n\n if (filterProp) return filterProp(item, query, itemToString);\n return defaultFilter.contains(item, query, itemToString);\n };\n\n const wrappedItemToStringLabel: ComboboxProps<Value>['itemToStringLabel'] = !allowCreate\n ? itemToStringLabel\n : (item) => (isCreatableItem(item) ? item.value : itemToString(item));\n\n const wrappedItemToStringValue: ComboboxProps<Value>['itemToStringValue'] =\n !allowCreate || !itemToStringValue\n ? itemToStringValue\n : (item) => (isCreatableItem(item) ? item.value : itemToStringValue(item));\n\n const value = (() => {\n if (!allowSelectAll) return valueProp;\n return isAllSelected ? [...valueProp, selectAllItem as Value] : valueProp;\n })();\n\n const handleValueChange: ComboboxProps<Value>['onValueChange'] = (next, event) => {\n if (!onValueChange) return;\n\n const created: Value[] = [];\n const converted = allowCreate\n ? next.map((item) => {\n if (!isCreatableItem(item)) return item;\n const value = defaultToCreateValue(item.value, sampleItem, queryToCreateValue) as Value;\n created.push(value);\n return value;\n })\n : next;\n\n const hasSelectAll = converted.some((item) => isSelectAllItem(item));\n const newValue = (() => {\n if (!allowSelectAll) return converted;\n if (!hasSelectAll) return isAllSelected ? [] : converted;\n return isAllSelected ? converted.filter((item) => !isSelectAllItem(item)) : allFlatItems;\n })();\n\n if (allowCreate) {\n // Keep only the created values the selection being emitted still holds — `valueProp` is the\n // selection before this change, so a value created right now is not in it yet.\n const selected = new Set(newValue.map(itemToString));\n setCreatedItems((prev) =>\n [...prev, ...created].filter((item) => selected.has(itemToString(item))),\n );\n setInputValue('');\n }\n\n onValueChange(newValue, event);\n };\n\n const renderItem = (item: Value) => {\n return (\n <Combobox.Item\n value={item}\n indicator={indicator}\n icon={itemToIcon(item)}\n disabled={itemToDisabled(item)}\n >\n {itemToLabel(item)}\n </Combobox.Item>\n );\n };\n\n return (\n <Combobox.Root<Value, true>\n multiple\n // Base UI highlights nothing until ArrowDown, so Enter after typing would drop the query\n // silently — no selection, and the popup closes. Highlighting the first match makes Enter\n // commit it, including the creatable row when `allowCreate` is on.\n autoHighlight\n items={items}\n value={value}\n defaultValue={defaultValue}\n filter={filter}\n onValueChange={handleValueChange}\n itemToStringLabel={wrappedItemToStringLabel}\n itemToStringValue={wrappedItemToStringValue}\n disabled={disabled}\n inputRef={inputRef}\n {...(allowCreate\n ? { inputValue, onInputValueChange: (nextValue: string) => setInputValue(nextValue) }\n : {})}\n >\n <BaseCombobox.Chips render={<Fragment />}>\n <Combobox.InputGroup\n variant={variant}\n sizing={sizing}\n state={state}\n focusVariant={focusVariant}\n className={className}\n >\n <div className=\"tw:flex tw:min-w-0 tw:flex-1 tw:flex-wrap tw:items-center tw:gap-1.5 tw:px-4 tw:py-1.5\">\n <Combobox.Chips<Value>\n maxVisible={maxVisible}\n variant={chipVariant}\n itemToChipLabel={itemToChipLabel ?? itemToLabel}\n itemToChipColor={itemToChipColor}\n pinnedChipLabels={pinnedChipLabels}\n />\n <div className=\"tw:flex tw:flex-1 tw:items-center tw:gap-1\">\n <Combobox.Input\n id={id}\n name={name}\n onBlur={onBlur}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-required={ariaRequired}\n placeholder={placeholder}\n disabled={disabled}\n className=\"tw:w-auto tw:min-w-[120px] tw:flex-1\"\n />\n {allowClear && (\n <InputGroup.Button asChild aria-label=\"Clear\" disabled={disabled}>\n <BaseCombobox.Clear>\n <X className=\"tw:size-4\" />\n </BaseCombobox.Clear>\n </InputGroup.Button>\n )}\n <InputGroup.Button disabled={disabled} asChild aria-label=\"Open combobox\">\n <BaseCombobox.Trigger>\n <ChevronDown className=\"tw:size-4\" />\n </BaseCombobox.Trigger>\n </InputGroup.Button>\n </div>\n </div>\n </Combobox.InputGroup>\n </BaseCombobox.Chips>\n <Combobox.Content>\n <Combobox.Empty>{empty}</Combobox.Empty>\n <Combobox.List>\n {(itemOrGroup: Value | GroupShape) => {\n if (isSelectAllItem(itemOrGroup)) {\n return (\n <Combobox.Item value={itemOrGroup} indicator=\"checkbox\">\n Select All\n </Combobox.Item>\n );\n }\n\n if (isCreatableItem(itemOrGroup)) {\n return (\n <Combobox.Item value={itemOrGroup} icon={<Plus />}>\n {queryToCreateLabel(itemOrGroup.value)}\n </Combobox.Item>\n );\n }\n\n if (isGroupItem(itemOrGroup)) {\n const maybeCreatable = itemOrGroup.items[0];\n\n if (isCreatableItem(maybeCreatable)) {\n return (\n <Combobox.Item value={maybeCreatable} icon={<Plus />}>\n {queryToCreateLabel(maybeCreatable.value)}\n </Combobox.Item>\n );\n }\n\n const groupLabel = groupToLabel(itemOrGroup);\n return (\n <Combobox.Group items={itemOrGroup.items}>\n {groupLabel && <Combobox.GroupLabel>{groupLabel}</Combobox.GroupLabel>}\n <Combobox.GroupList>{renderItem}</Combobox.GroupList>\n </Combobox.Group>\n );\n }\n\n return renderItem(itemOrGroup);\n }}\n </Combobox.List>\n </Combobox.Content>\n </Combobox.Root>\n );\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { InputGroup } from "../../InputGroup-D7zlmqPB.js";
1
+ import { InputGroup } from "../../InputGroup-BnLHY0eq.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  //#region src/blocks/NumberInput/NumberInput.tsx
4
4
  const toNumberOrNull = (event) => Number.isNaN(event.target.valueAsNumber) ? null : event.target.valueAsNumber;
@@ -1,2 +1,2 @@
1
- import { PageToolbar } from "../../PageToolbar-bG2YtSa3.js";
1
+ import { PageToolbar } from "../../PageToolbar-DnbFt14Q.js";
2
2
  export { PageToolbar };
@@ -1,7 +1,7 @@
1
- import { createChangeInputEvent } from "../../utils-B-g7d_Jb.js";
1
+ import { createChangeInputEvent } from "../../utils-B5Z52hYs.js";
2
2
  import { mergeRefs } from "../utils/mergeRefs.js";
3
3
  import { ArrowBigUpDash, Eye, EyeOff, X } from "../../icons-Cek151jC.js";
4
- import { InputGroup } from "../../InputGroup-D7zlmqPB.js";
4
+ import { InputGroup } from "../../InputGroup-BnLHY0eq.js";
5
5
  import { useControllableState } from "../../useControllableState-M6494mCT.js";
6
6
  import { useRef, useState } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { SearchInput } from "../../SearchInput-CCpdUego.js";
1
+ import { SearchInput } from "../../SearchInput-f_oY9T4Z.js";
2
2
  export { SearchInput };
@@ -1,10 +1,10 @@
1
1
  import { cn } from "../../classNames-BzrkDnOD.js";
2
- import { keyCodes } from "../../utils-B-g7d_Jb.js";
2
+ import { keyCodes } from "../../utils-B5Z52hYs.js";
3
3
  import { ChevronDown, ChevronUp, Search } from "../../icons-Cek151jC.js";
4
- import { Button } from "../../Button-CPsEQuTN.js";
4
+ import { Button } from "../../Button-DsRrU5F1.js";
5
5
  import { ButtonGroup } from "../components/ButtonGroup.js";
6
6
  import { Separator } from "../components/Separator.js";
7
- import { TextInput } from "../../TextInput-DhdRk8qm.js";
7
+ import { TextInput } from "../../TextInput-DHM6dHmn.js";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/blocks/SearchInputWithNavigation/SearchInputWithNavigation.tsx
10
10
  const SearchInputWithNavigation = ({ ref, value, onValueChange, placeholder = "Search...", variant = "secondary", onClear, focusVariant, currentIndex, totalResults, onNavigateNext, onNavigatePrevious, className }) => {
@@ -1,2 +1,2 @@
1
- import { SectionNav } from "../../SectionNav-Bw_MVL0_.js";
1
+ import { SectionNav } from "../../SectionNav-BpJlisbT.js";
2
2
  export { SectionNav };
@@ -1,7 +1,7 @@
1
1
  import { ChevronDown } from "../../icons-Cek151jC.js";
2
- import { Button } from "../../Button-CPsEQuTN.js";
2
+ import { Button } from "../../Button-DsRrU5F1.js";
3
3
  import { ButtonGroup } from "../components/ButtonGroup.js";
4
- import { DropdownMenu } from "../../DropdownMenu-DpMEcyCq.js";
4
+ import { DropdownMenu } from "../../DropdownMenu-CASr-jgl.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/blocks/SplitButton/SplitButton.tsx
7
7
  const iconSizeMap = {
@@ -1,5 +1,5 @@
1
1
  import { cn } from "../../classNames-BzrkDnOD.js";
2
- import { Card } from "../../Card-Cd5HSBmv.js";
2
+ import { Card } from "../../Card-Dyo7055Q.js";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/blocks/StatCard/StatCard.tsx
@@ -1,2 +1,2 @@
1
- import { TextInput } from "../../TextInput-DhdRk8qm.js";
1
+ import { TextInput } from "../../TextInput-DHM6dHmn.js";
2
2
  export { TextInput };
@@ -1,4 +1,4 @@
1
- import { InputGroup } from "../../InputGroup-D7zlmqPB.js";
1
+ import { InputGroup } from "../../InputGroup-BnLHY0eq.js";
2
2
  import { useControllableState } from "../../useControllableState-M6494mCT.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/blocks/Textarea/Textarea.tsx
@@ -1,9 +1,9 @@
1
- import { createChangeInputEvent } from "../../utils-B-g7d_Jb.js";
1
+ import { createChangeInputEvent } from "../../utils-B5Z52hYs.js";
2
2
  import { mergeRefs } from "../utils/mergeRefs.js";
3
3
  import { Clock, X } from "../../icons-Cek151jC.js";
4
- import { InputGroup } from "../../InputGroup-D7zlmqPB.js";
4
+ import { InputGroup } from "../../InputGroup-BnLHY0eq.js";
5
5
  import { useControllableState } from "../../useControllableState-M6494mCT.js";
6
- import { TimePicker } from "../../TimePicker-B6d2rAbX.js";
6
+ import { TimePicker } from "../../TimePicker-BGeqc-Ed.js";
7
7
  import { useRef, useState } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/blocks/TimeInput/TimeInput.tsx