@keboola/design 13.2.0 → 14.0.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 (172) hide show
  1. package/AGENTS.md +5 -1
  2. package/CHANGELOG.md +161 -0
  3. package/COMPONENT-API.md +52 -42
  4. package/dist/{AIKit-C5FbKjwa.js → AIKit-BRSZ3nY7.js} +2216 -302
  5. package/dist/AIKit-BRSZ3nY7.js.map +1 -0
  6. package/dist/{Alert-DuAGeYyM.js → Alert-CZ0dDsuk.js} +2 -2
  7. package/dist/{Alert-DuAGeYyM.js.map → Alert-CZ0dDsuk.js.map} +1 -1
  8. package/dist/{BrandEditor-Dq168RJc.js → BrandEditor-CN2HJ_12.js} +5 -5
  9. package/dist/{BrandEditor-Dq168RJc.js.map → BrandEditor-CN2HJ_12.js.map} +1 -1
  10. package/dist/{Breadcrumb-CUyYu5Bi.js → Breadcrumb-BnIlsoIH.js} +54 -12
  11. package/dist/Breadcrumb-BnIlsoIH.js.map +1 -0
  12. package/dist/{Checkbox-D9rafoKh.js → Checkbox-uFE8XLT_.js} +2 -2
  13. package/dist/{Checkbox-D9rafoKh.js.map → Checkbox-uFE8XLT_.js.map} +1 -1
  14. package/dist/{Clipboard-BHWUodAx.js → Clipboard-D-9XOqy4.js} +2 -2
  15. package/dist/{Clipboard-BHWUodAx.js.map → Clipboard-D-9XOqy4.js.map} +1 -1
  16. package/dist/{ClipboardButton-Urg-kZbh.js → ClipboardButton-DxvZG_H0.js} +2 -2
  17. package/dist/{ClipboardButton-Urg-kZbh.js.map → ClipboardButton-DxvZG_H0.js.map} +1 -1
  18. package/dist/{CodeEditor-Y0iE-SwV.js → CodeEditor-BfRSCKEs.js} +5 -5
  19. package/dist/{CodeEditor-Y0iE-SwV.js.map → CodeEditor-BfRSCKEs.js.map} +1 -1
  20. package/dist/{ColorInput-D1nC0X6i.js → ColorInput-CDKH8q_f.js} +2 -2
  21. package/dist/{ColorInput-D1nC0X6i.js.map → ColorInput-CDKH8q_f.js.map} +1 -1
  22. package/dist/{ColorModeSwitch-Cxee8jnB.js → ColorModeSwitch-DR6J2U6M.js} +2 -2
  23. package/dist/{ColorModeSwitch-Cxee8jnB.js.map → ColorModeSwitch-DR6J2U6M.js.map} +1 -1
  24. package/dist/{Combobox-B1Kjoy5J.js → Combobox-CEesMe2M.js} +240 -38
  25. package/dist/Combobox-CEesMe2M.js.map +1 -0
  26. package/dist/{Command-BuOA3V18.js → Command-T3MLRaen.js} +8 -4
  27. package/dist/Command-T3MLRaen.js.map +1 -0
  28. package/dist/{CopyField-DsOVtV2Q.js → CopyField-CNbCHw9a.js} +2 -2
  29. package/dist/{CopyField-DsOVtV2Q.js.map → CopyField-CNbCHw9a.js.map} +1 -1
  30. package/dist/{DateInput-BlKkequE.js → DateInput-ClK1lCxz.js} +2 -2
  31. package/dist/{DateInput-BlKkequE.js.map → DateInput-ClK1lCxz.js.map} +1 -1
  32. package/dist/{DateRangeInput-DOxJHw8V.js → DateRangeInput-DtlAffS1.js} +2 -2
  33. package/dist/{DateRangeInput-DOxJHw8V.js.map → DateRangeInput-DtlAffS1.js.map} +1 -1
  34. package/dist/{DropdownMenu-DtRYcKEx.js → DropdownMenu-B1gGvZoh.js} +2 -2
  35. package/dist/{DropdownMenu-DtRYcKEx.js.map → DropdownMenu-B1gGvZoh.js.map} +1 -1
  36. package/dist/{FieldItem-Cf1E3rfQ.js → FieldItem-CYvJyjiI.js} +3 -3
  37. package/dist/{FieldItem-Cf1E3rfQ.js.map → FieldItem-CYvJyjiI.js.map} +1 -1
  38. package/dist/{Form-CuaAn-lR.js → Form-CD55zJiy.js} +5 -5
  39. package/dist/{Form-CuaAn-lR.js.map → Form-CD55zJiy.js.map} +1 -1
  40. package/dist/{FormGroup-D4O96YPm.js → FormGroup-DiYFdEhH.js} +3 -3
  41. package/dist/{FormGroup-D4O96YPm.js.map → FormGroup-DiYFdEhH.js.map} +1 -1
  42. package/dist/{HoverCard-Cy6nhg4u.js → HoverCard-BBdPYqEf.js} +2 -2
  43. package/dist/HoverCard-BBdPYqEf.js.map +1 -0
  44. package/dist/{InlineEdit-DSMIEUUa.js → InlineEdit-D5RdunZo.js} +3 -3
  45. package/dist/{InlineEdit-DSMIEUUa.js.map → InlineEdit-D5RdunZo.js.map} +1 -1
  46. package/dist/{Kbd-Du93F3o4.js → Kbd-3YM7NQO4.js} +2 -2
  47. package/dist/{Kbd-Du93F3o4.js.map → Kbd-3YM7NQO4.js.map} +1 -1
  48. package/dist/MermaidDiagram-CeiOkI60.js +199 -0
  49. package/dist/MermaidDiagram-CeiOkI60.js.map +1 -0
  50. package/dist/{Modal-DQIauzar.js → Modal-DMZRswk4.js} +4 -3
  51. package/dist/Modal-DMZRswk4.js.map +1 -0
  52. package/dist/{MultiActionButtonGroup-xKqiucAN.js → MultiActionButtonGroup-CEv_txvz.js} +2 -2
  53. package/dist/{MultiActionButtonGroup-xKqiucAN.js.map → MultiActionButtonGroup-CEv_txvz.js.map} +1 -1
  54. package/dist/{RadioGroup-C2vk5acr.js → RadioGroup-C8EC3fqO.js} +2 -2
  55. package/dist/{RadioGroup-C2vk5acr.js.map → RadioGroup-C8EC3fqO.js.map} +1 -1
  56. package/dist/{Search-CVrv3hqf.js → Search-aaUMI4ix.js} +2 -2
  57. package/dist/{Search-CVrv3hqf.js.map → Search-aaUMI4ix.js.map} +1 -1
  58. package/dist/{SearchInput-BnU6YHgT.js → SearchInput-Dxi2GK4n.js} +2 -2
  59. package/dist/{SearchInput-BnU6YHgT.js.map → SearchInput-Dxi2GK4n.js.map} +1 -1
  60. package/dist/{SectionNav-XlhvXXdF.js → SectionNav-BnHOMLtE.js} +3 -3
  61. package/dist/{SectionNav-XlhvXXdF.js.map → SectionNav-BnHOMLtE.js.map} +1 -1
  62. package/dist/Sheet-utw4_rUa.js.map +1 -1
  63. package/dist/{Sidebar-CKaxOPwY.js → Sidebar-BAmux2Uj.js} +5 -5
  64. package/dist/{Sidebar-CKaxOPwY.js.map → Sidebar-BAmux2Uj.js.map} +1 -1
  65. package/dist/{Slider-Rcc2qVct.js → Slider-DbzzSDRV.js} +2 -2
  66. package/dist/{Slider-Rcc2qVct.js.map → Slider-DbzzSDRV.js.map} +1 -1
  67. package/dist/{Table-CgSC-fSo.js → Table-CilEvpMq.js} +62 -3
  68. package/dist/Table-CilEvpMq.js.map +1 -0
  69. package/dist/{TextInput-B5TDDOty.js → TextInput-K2DSDs5O.js} +2 -2
  70. package/dist/{TextInput-B5TDDOty.js.map → TextInput-K2DSDs5O.js.map} +1 -1
  71. package/dist/{ThemeProvider-Dt9b67sW.js → ThemeProvider-C8yaKlM1.js} +2 -2
  72. package/dist/{ThemeProvider-Dt9b67sW.js.map → ThemeProvider-C8yaKlM1.js.map} +1 -1
  73. package/dist/ToggleAllTooltip-Dlmq-yqS.js +37 -0
  74. package/dist/ToggleAllTooltip-Dlmq-yqS.js.map +1 -0
  75. package/dist/{ZoomableSvg-D8sXKpoV.js → ZoomableSvg-Dh1OstPN.js} +84 -80
  76. package/dist/ZoomableSvg-Dh1OstPN.js.map +1 -0
  77. package/dist/editors.js +3 -3
  78. package/dist/flint.js +10 -45
  79. package/dist/flint.js.map +1 -1
  80. package/dist/highlightCode-D354tCXO.js +81 -0
  81. package/dist/highlightCode-D354tCXO.js.map +1 -0
  82. package/dist/index.d.ts +792 -346
  83. package/dist/index.js +35 -35
  84. package/dist/internal/blocks/AIKit.js +2 -2
  85. package/dist/internal/blocks/BrandEditor.js +1 -1
  86. package/dist/internal/blocks/ChipEditor.js +1 -1
  87. package/dist/internal/blocks/ClipboardButton.js +1 -1
  88. package/dist/internal/blocks/ColorInput.js +1 -1
  89. package/dist/internal/blocks/ColorModeSwitch.js +1 -1
  90. package/dist/internal/blocks/Command.js +1 -1
  91. package/dist/internal/blocks/CopyField.js +1 -1
  92. package/dist/internal/blocks/DateInput.js +1 -1
  93. package/dist/internal/blocks/DateRangeInput.js +1 -1
  94. package/dist/internal/blocks/DiagramShared/DiagramSkeleton.js.map +1 -1
  95. package/dist/internal/blocks/ExportMenu.js +2 -2
  96. package/dist/internal/blocks/Form/connectors/ComboboxField.js +2 -2
  97. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +1 -1
  98. package/dist/internal/blocks/Form.js +1 -1
  99. package/dist/internal/blocks/FormGroup.js +1 -1
  100. package/dist/internal/blocks/InlineEdit.js +1 -1
  101. package/dist/internal/blocks/MultiActionButtonGroup.js +1 -1
  102. package/dist/internal/blocks/MultiCombobox.js +204 -68
  103. package/dist/internal/blocks/MultiCombobox.js.map +1 -1
  104. package/dist/internal/blocks/PasswordInput.js +1 -1
  105. package/dist/internal/blocks/SearchInput.js +1 -1
  106. package/dist/internal/blocks/SearchInputWithNavigation.js +2 -2
  107. package/dist/internal/blocks/SectionNav.js +1 -1
  108. package/dist/internal/blocks/SplitButton.js +1 -1
  109. package/dist/internal/blocks/TextInput.js +1 -1
  110. package/dist/internal/blocks/TimeInput.js +1 -1
  111. package/dist/internal/components/Alert.js +1 -1
  112. package/dist/internal/components/Avatar.js +1 -1
  113. package/dist/internal/components/Breadcrumb.js +1 -1
  114. package/dist/internal/components/Checkbox.js +1 -1
  115. package/dist/internal/components/Clipboard.js +1 -1
  116. package/dist/internal/components/CollapsiblePanel.js +1 -1
  117. package/dist/internal/components/Combobox.js +1 -1
  118. package/dist/internal/components/DropdownMenu.js +1 -1
  119. package/dist/internal/components/HoverCard.js +1 -1
  120. package/dist/internal/components/Kbd.js +1 -1
  121. package/dist/internal/components/Modal.js +1 -1
  122. package/dist/internal/components/RadioGroup.js +1 -1
  123. package/dist/internal/components/Search.js +1 -1
  124. package/dist/internal/components/Sidebar.js +1 -1
  125. package/dist/internal/components/Skeleton/Skeleton.js +1 -1
  126. package/dist/internal/components/Skeleton/Skeleton.js.map +1 -1
  127. package/dist/internal/components/Slider.js +1 -1
  128. package/dist/internal/components/Table.js +1 -1
  129. package/dist/internal/components/ThemeProvider.js +1 -1
  130. package/dist/internal/components/Tooltip.js +1 -1
  131. package/dist/internal/components/Truncated.js +1 -1
  132. package/dist/internal/components/ZoomableSvg.js +1 -1
  133. package/dist/internal/utils.js +1 -1
  134. package/dist/markdown-editor.js +6 -6
  135. package/dist/mermaid.d.ts +1 -2
  136. package/dist/mermaid.js +1 -1
  137. package/dist/rjsf.js +98 -11
  138. package/dist/rjsf.js.map +1 -1
  139. package/dist/styles.css +1 -1
  140. package/dist/svgCache-Dhmbe-7i.js +26 -0
  141. package/dist/svgCache-Dhmbe-7i.js.map +1 -0
  142. package/dist/svgTransforms-Hnvev3Vs.js +38 -0
  143. package/dist/svgTransforms-Hnvev3Vs.js.map +1 -0
  144. package/dist/testing.js +1 -1
  145. package/dist/{themeTokens-7DEab0kp.js → themeTokens-l2Fsfcs7.js} +3 -12
  146. package/dist/themeTokens-l2Fsfcs7.js.map +1 -0
  147. package/dist/{utils-p6tjltbX.js → utils-LQ4jJA-9.js} +18 -2
  148. package/dist/utils-LQ4jJA-9.js.map +1 -0
  149. package/dist/vega.js +1 -1
  150. package/dist/vegaTheme-BrmVoPEz.js +49 -0
  151. package/dist/vegaTheme-BrmVoPEz.js.map +1 -0
  152. package/dist/{vegaTheme-VQMWTlBw.js → vegaTokens-Ce07C0DH.js} +36 -44
  153. package/dist/vegaTokens-Ce07C0DH.js.map +1 -0
  154. package/package.json +3 -4
  155. package/src/styles.css +4 -4
  156. package/dist/AIKit-C5FbKjwa.js.map +0 -1
  157. package/dist/Breadcrumb-CUyYu5Bi.js.map +0 -1
  158. package/dist/Combobox-B1Kjoy5J.js.map +0 -1
  159. package/dist/Command-BuOA3V18.js.map +0 -1
  160. package/dist/DiagramSource-jTwmmi9g.js +0 -11
  161. package/dist/DiagramSource-jTwmmi9g.js.map +0 -1
  162. package/dist/HoverCard-Cy6nhg4u.js.map +0 -1
  163. package/dist/MermaidDiagram-D2ThT8Q-.js +0 -302
  164. package/dist/MermaidDiagram-D2ThT8Q-.js.map +0 -1
  165. package/dist/Modal-DQIauzar.js.map +0 -1
  166. package/dist/Table-CgSC-fSo.js.map +0 -1
  167. package/dist/ZoomableSvg-D8sXKpoV.js.map +0 -1
  168. package/dist/svgTransforms-Dw2hRA-i.js +0 -51
  169. package/dist/svgTransforms-Dw2hRA-i.js.map +0 -1
  170. package/dist/themeTokens-7DEab0kp.js.map +0 -1
  171. package/dist/utils-p6tjltbX.js.map +0 -1
  172. package/dist/vegaTheme-VQMWTlBw.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import { DropdownMenu } from "../../DropdownMenu-DtRYcKEx.js";
1
+ import { DropdownMenu } from "../../DropdownMenu-B1gGvZoh.js";
2
2
  export { DropdownMenu };
@@ -1,2 +1,2 @@
1
- import { HoverCard } from "../../HoverCard-Cy6nhg4u.js";
1
+ import { HoverCard } from "../../HoverCard-BBdPYqEf.js";
2
2
  export { HoverCard };
@@ -1,2 +1,2 @@
1
- import { Kbd, kbdVariants, keys } from "../../Kbd-Du93F3o4.js";
1
+ import { Kbd, kbdVariants, keys } from "../../Kbd-3YM7NQO4.js";
2
2
  export { Kbd, kbdVariants, keys };
@@ -1,2 +1,2 @@
1
- import { Modal } from "../../Modal-DQIauzar.js";
1
+ import { Modal } from "../../Modal-DMZRswk4.js";
2
2
  export { Modal };
@@ -1,2 +1,2 @@
1
- import { RadioGroup } from "../../RadioGroup-C2vk5acr.js";
1
+ import { RadioGroup } from "../../RadioGroup-C8EC3fqO.js";
2
2
  export { RadioGroup };
@@ -1,2 +1,2 @@
1
- import { Search, SearchForm } from "../../Search-CVrv3hqf.js";
1
+ import { Search, SearchForm } from "../../Search-aaUMI4ix.js";
2
2
  export { Search, SearchForm };
@@ -1,2 +1,2 @@
1
- import { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar } from "../../Sidebar-CKaxOPwY.js";
1
+ import { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar } from "../../Sidebar-BAmux2Uj.js";
2
2
  export { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar };
@@ -17,7 +17,7 @@ const ANIMATION_CLASS_NAME = cn("tw:relative", "tw:overflow-hidden", "tw:pointer
17
17
  *
18
18
  * - Match the eventual shape (`lg` per title row, `xs` per text line).
19
19
  * - Not for slotless work (`DotsLoader`, `Button isLoading`) or empty / error states.
20
- * - `SkeletonList` shells `Table` / `Card`-list pages.
20
+ * - `Table.SkeletonRows` fills a loading `Table`; `SkeletonList` shells `Card`-list pages.
21
21
  *
22
22
  * @see RECIPES.md#data-card-with-skeleton
23
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.js","names":[],"sources":["../../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import { useId } from 'react';\n\nimport { cn } from '../../utils';\n\nexport type Height = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\ntype SkeletonProps = {\n /** `xxs` (12px) through `2xl` (48px). */\n height?: Height;\n className?: string;\n /** Stacked rows. */\n count?: number;\n};\n\nconst HEIGHT_CLASS_NAME: Record<Height, string> = {\n xxs: 'tw:h-3 tw:rounded',\n xs: 'tw:h-4 tw:rounded',\n sm: 'tw:h-5 tw:rounded',\n md: 'tw:h-6 tw:rounded-md',\n lg: 'tw:h-8 tw:rounded-lg',\n xl: 'tw:h-10 tw:rounded-lg',\n '2xl': 'tw:h-12 tw:rounded-lg',\n};\n\nconst ANIMATION_CLASS_NAME = cn(\n 'tw:relative',\n 'tw:overflow-hidden',\n 'tw:pointer-events-none',\n 'tw:bg-skeleton',\n\n 'tw:before:content-[\"\"]',\n 'tw:before:opacity-100',\n 'tw:before:absolute',\n 'tw:before:inset-0',\n 'tw:before:-translate-x-full',\n 'tw:before:animate-[shimmer_2s_infinite]',\n 'tw:before:bg-gradient-to-r',\n 'tw:before:from-transparent',\n 'tw:before:to-transparent',\n 'tw:before:via-white/40',\n);\n\n/**\n * Placeholder in the slot of loading content.\n *\n * - Match the eventual shape (`lg` per title row, `xs` per text line).\n * - Not for slotless work (`DotsLoader`, `Button isLoading`) or empty / error states.\n * - `SkeletonList` shells `Table` / `Card`-list pages.\n *\n * @see RECIPES.md#data-card-with-skeleton\n */\nexport const Skeleton = ({ height = 'md', className, count = 1 }: SkeletonProps) => {\n const prefixId = useId();\n const keys = Array.from({ length: count }, (_, i) => `${prefixId}-${i}`);\n\n return (\n <>\n {keys.map((key) => (\n <div\n key={key}\n data-skeleton=\"true\"\n className={cn(HEIGHT_CLASS_NAME[height], ANIMATION_CLASS_NAME, className)}\n />\n ))}\n </>\n );\n};\n"],"mappings":";;;;AAcA,MAAM,oBAA4C;CAChD,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;AACT;AAEA,MAAM,uBAAuB,GAC3B,eACA,sBACA,0BACA,kBAEA,4BACA,yBACA,sBACA,qBACA,+BACA,2CACA,8BACA,8BACA,4BACA,wBACF;;;;;;;;;;AAWA,MAAa,YAAY,EAAE,SAAS,MAAM,WAAW,QAAQ,QAAuB;CAClF,MAAM,WAAW,MAAM;CACvB,MAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG;CAEvE,OACE,oBAAA,YAAA,EAAA,UACG,KAAK,KAAK,QACT,oBAAC,OAAD;EAEE,iBAAc;EACd,WAAW,GAAG,kBAAkB,SAAS,sBAAsB,SAAS;CACzE,GAHM,GAGN,CACF,EACD,CAAA;AAEN"}
1
+ {"version":3,"file":"Skeleton.js","names":[],"sources":["../../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import { useId } from 'react';\n\nimport { cn } from '../../utils';\n\nexport type Height = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\ntype SkeletonProps = {\n /** `xxs` (12px) through `2xl` (48px). */\n height?: Height;\n className?: string;\n /** Stacked rows. */\n count?: number;\n};\n\nconst HEIGHT_CLASS_NAME: Record<Height, string> = {\n xxs: 'tw:h-3 tw:rounded',\n xs: 'tw:h-4 tw:rounded',\n sm: 'tw:h-5 tw:rounded',\n md: 'tw:h-6 tw:rounded-md',\n lg: 'tw:h-8 tw:rounded-lg',\n xl: 'tw:h-10 tw:rounded-lg',\n '2xl': 'tw:h-12 tw:rounded-lg',\n};\n\nconst ANIMATION_CLASS_NAME = cn(\n 'tw:relative',\n 'tw:overflow-hidden',\n 'tw:pointer-events-none',\n 'tw:bg-skeleton',\n\n 'tw:before:content-[\"\"]',\n 'tw:before:opacity-100',\n 'tw:before:absolute',\n 'tw:before:inset-0',\n 'tw:before:-translate-x-full',\n 'tw:before:animate-[shimmer_2s_infinite]',\n 'tw:before:bg-gradient-to-r',\n 'tw:before:from-transparent',\n 'tw:before:to-transparent',\n 'tw:before:via-white/40',\n);\n\n/**\n * Placeholder in the slot of loading content.\n *\n * - Match the eventual shape (`lg` per title row, `xs` per text line).\n * - Not for slotless work (`DotsLoader`, `Button isLoading`) or empty / error states.\n * - `Table.SkeletonRows` fills a loading `Table`; `SkeletonList` shells `Card`-list pages.\n *\n * @see RECIPES.md#data-card-with-skeleton\n */\nexport const Skeleton = ({ height = 'md', className, count = 1 }: SkeletonProps) => {\n const prefixId = useId();\n const keys = Array.from({ length: count }, (_, i) => `${prefixId}-${i}`);\n\n return (\n <>\n {keys.map((key) => (\n <div\n key={key}\n data-skeleton=\"true\"\n className={cn(HEIGHT_CLASS_NAME[height], ANIMATION_CLASS_NAME, className)}\n />\n ))}\n </>\n );\n};\n"],"mappings":";;;;AAcA,MAAM,oBAA4C;CAChD,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;AACT;AAEA,MAAM,uBAAuB,GAC3B,eACA,sBACA,0BACA,kBAEA,4BACA,yBACA,sBACA,qBACA,+BACA,2CACA,8BACA,8BACA,4BACA,wBACF;;;;;;;;;;AAWA,MAAa,YAAY,EAAE,SAAS,MAAM,WAAW,QAAQ,QAAuB;CAClF,MAAM,WAAW,MAAM;CACvB,MAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG;CAEvE,OACE,oBAAA,YAAA,EAAA,UACG,KAAK,KAAK,QACT,oBAAC,OAAD;EAEE,iBAAc;EACd,WAAW,GAAG,kBAAkB,SAAS,sBAAsB,SAAS;CACzE,GAHM,GAGN,CACF,EACD,CAAA;AAEN"}
@@ -1,2 +1,2 @@
1
- import { Slider } from "../../Slider-Rcc2qVct.js";
1
+ import { Slider } from "../../Slider-DbzzSDRV.js";
2
2
  export { Slider };
@@ -1,2 +1,2 @@
1
- import { Table, TableSortHeader, tableAriaSort } from "../../Table-CgSC-fSo.js";
1
+ import { Table, TableSortHeader, tableAriaSort } from "../../Table-CilEvpMq.js";
2
2
  export { Table, TableSortHeader, tableAriaSort };
@@ -1,4 +1,4 @@
1
1
  import { DEFAULT_BRAND_ID, DEFAULT_COLOR_SCHEME } from "../../defaults-i_xG2F_1.js";
2
2
  import { ArgoDesignContext, useArgoDesign, useTheme } from "../../context-U293r3v-.js";
3
- import { ThemeProvider, ThemeScope, agnes, brandSchema, exampleCustomer, harbor, keboola, keboolaLegacySidebar, useThemeScopeContainer } from "../../ThemeProvider-Dt9b67sW.js";
3
+ import { ThemeProvider, ThemeScope, agnes, brandSchema, exampleCustomer, harbor, keboola, keboolaLegacySidebar, useThemeScopeContainer } from "../../ThemeProvider-C8yaKlM1.js";
4
4
  export { ArgoDesignContext, DEFAULT_COLOR_SCHEME, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, ThemeProvider, ThemeScope, agnes, brandSchema, exampleCustomer, harbor, keboola, keboolaLegacySidebar, useArgoDesign, useTheme, useThemeScopeContainer };
@@ -1,2 +1,2 @@
1
- import { HINT_UNDERLINE_CLASS_NAME, Tooltip, TooltipProvider } from "../../utils-p6tjltbX.js";
1
+ import { HINT_UNDERLINE_CLASS_NAME, Tooltip, TooltipProvider } from "../../utils-LQ4jJA-9.js";
2
2
  export { HINT_UNDERLINE_CLASS_NAME, Tooltip, TooltipProvider };
@@ -1,5 +1,5 @@
1
1
  import { cn } from "../../classNames-DcGnTh2N.js";
2
- import { Tooltip } from "../../utils-p6tjltbX.js";
2
+ import { Tooltip } from "../../utils-LQ4jJA-9.js";
3
3
  import { useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/components/Truncated.tsx
@@ -1,2 +1,2 @@
1
- import { ZoomableSvg, svgToPngBlob, toSvgFileContent } from "../../ZoomableSvg-D8sXKpoV.js";
1
+ import { ZoomableSvg, svgToPngBlob, toSvgFileContent } from "../../ZoomableSvg-Dh1OstPN.js";
2
2
  export { ZoomableSvg, svgToPngBlob, toSvgFileContent };
@@ -1,5 +1,5 @@
1
1
  import { cn } from "../classNames-DcGnTh2N.js";
2
- import { DEFAULT_ENTRY_SEPARATOR, copyToClipboard, createChangeInputEvent, createPrefixedString, debounce, isMac, noop, splitEntry, useSHA256, withHiddenFullscreen, withTooltipProvider, withVisualSettle } from "../utils-p6tjltbX.js";
2
+ import { DEFAULT_ENTRY_SEPARATOR, copyToClipboard, createChangeInputEvent, createPrefixedString, debounce, isMac, noop, splitEntry, useSHA256, withHiddenFullscreen, withTooltipProvider, withVisualSettle } from "../utils-LQ4jJA-9.js";
3
3
  import { findLiteralMatches, findLiteralTermMatches, hasLiteralMatch } from "../findLiteralMatches-DgGLzyG0.js";
4
4
  import { mergeRefs } from "./utils/mergeRefs.js";
5
5
  export { DEFAULT_ENTRY_SEPARATOR, cn, copyToClipboard, createChangeInputEvent, createPrefixedString, debounce, findLiteralMatches, findLiteralTermMatches, hasLiteralMatch, isMac, mergeRefs, noop, splitEntry, useSHA256, withHiddenFullscreen, withTooltipProvider, withVisualSettle };
@@ -1,15 +1,15 @@
1
1
  import { cn } from "./classNames-DcGnTh2N.js";
2
- import { Tooltip } from "./utils-p6tjltbX.js";
2
+ import { Tooltip } from "./utils-LQ4jJA-9.js";
3
3
  import { AlignCenter, AlignJustify, AlignLeft, AlignRight, Bold, ChevronDown, Code, Heading1, Heading2, Heading3, Italic, Link, List, ListOrdered, Quote, SquareCode, Strikethrough, Type, Underline } from "./icons-ZIeZXXS7.js";
4
4
  import { Button } from "./Button-D2JqBAq7.js";
5
5
  import { ButtonGroup } from "./internal/components/ButtonGroup.js";
6
- import { DropdownMenu } from "./DropdownMenu-DtRYcKEx.js";
6
+ import { DropdownMenu } from "./DropdownMenu-B1gGvZoh.js";
7
7
  import { Label } from "./internal/components/Label.js";
8
8
  import { useStableCallback } from "./internal/hooks/useStableCallback.js";
9
9
  import { Popover } from "./Popover-BU7nGOv-.js";
10
- import { TextInput } from "./TextInput-B5TDDOty.js";
11
- import { FormGroup } from "./FormGroup-D4O96YPm.js";
12
- import { Kbd } from "./Kbd-Du93F3o4.js";
10
+ import { TextInput } from "./TextInput-K2DSDs5O.js";
11
+ import { FormGroup } from "./FormGroup-DiYFdEhH.js";
12
+ import { Kbd } from "./Kbd-3YM7NQO4.js";
13
13
  import { Skeleton } from "./internal/components/Skeleton/Skeleton.js";
14
14
  import { toast } from "./toast-D6Z6MOB5.js";
15
15
  import { Suspense, createContext, lazy, use, useCallback, useEffect, useId, useRef, useState } from "react";
@@ -281,7 +281,7 @@ const KeyboardPlugin = ({ onSave, onCancel, singleLine, blurOnEscape, skipBlurSa
281
281
  };
282
282
  //#endregion
283
283
  //#region src/blocks/MarkdownEditor/nodes/MermaidNodeComponent.tsx
284
- const MermaidDiagram = lazy(() => import("./MermaidDiagram-D2ThT8Q-.js").then((n) => n.MermaidDiagram_exports).then((m) => ({ default: m.MermaidDiagram }), (error) => {
284
+ const MermaidDiagram = lazy(() => import("./MermaidDiagram-CeiOkI60.js").then((n) => n.MermaidDiagram_exports).then((m) => ({ default: m.MermaidDiagram }), (error) => {
285
285
  console.error("[MarkdownEditor] failed to load MermaidDiagram chunk", error);
286
286
  return { default: ({ code }) => /* @__PURE__ */ jsx("pre", { children: /* @__PURE__ */ jsx("code", { children: code }) }) };
287
287
  }));
package/dist/mermaid.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import { ReactNode } from "react";
2
2
  //#region src/blocks/MermaidDiagram/MermaidDiagram.d.ts
3
3
  type Props = {
4
- /** Mermaid source. Gantt time-only `dateFormat HH:mm` is unsupported — use
5
- * `dateFormat YYYY-MM-DD HH:mm` with `axisFormat %H:%M`. */
4
+ /** Mermaid source. */
6
5
  code: string;
7
6
  /** Extra toolbar controls forwarded to `ZoomableSvg`; receives the sanitized SVG. */
8
7
  renderActions?: (safeSvg: string) => ReactNode;
package/dist/mermaid.js CHANGED
@@ -1,2 +1,2 @@
1
- import { MermaidDiagram } from "./MermaidDiagram-D2ThT8Q-.js";
1
+ import { MermaidDiagram } from "./MermaidDiagram-CeiOkI60.js";
2
2
  export { MermaidDiagram };
package/dist/rjsf.js CHANGED
@@ -1,27 +1,30 @@
1
- import { Tooltip, debounce } from "./utils-p6tjltbX.js";
1
+ import { cn } from "./classNames-DcGnTh2N.js";
2
+ import { Tooltip, debounce } from "./utils-LQ4jJA-9.js";
2
3
  import { BookOpen, Info, Trash2 } from "./icons-ZIeZXXS7.js";
3
4
  import { Button } from "./Button-D2JqBAq7.js";
4
5
  import { Label } from "./internal/components/Label.js";
5
6
  import { Link } from "./internal/components/Link.js";
6
7
  import { useStableCallback } from "./internal/hooks/useStableCallback.js";
7
- import { TextInput } from "./TextInput-B5TDDOty.js";
8
- import { RadioGroup } from "./RadioGroup-C2vk5acr.js";
9
- import { Checkbox } from "./Checkbox-D9rafoKh.js";
10
- import { Combobox } from "./Combobox-B1Kjoy5J.js";
11
- import { FormGroup } from "./FormGroup-D4O96YPm.js";
8
+ import { TextInput } from "./TextInput-K2DSDs5O.js";
9
+ import { RadioGroup } from "./RadioGroup-C8EC3fqO.js";
10
+ import { Checkbox } from "./Checkbox-uFE8XLT_.js";
11
+ import { Combobox } from "./Combobox-CEesMe2M.js";
12
+ import { MultiCombobox } from "./internal/blocks/MultiCombobox.js";
13
+ import { FormGroup } from "./FormGroup-DiYFdEhH.js";
12
14
  import { NumberInput } from "./internal/blocks/NumberInput.js";
13
15
  import { Textarea } from "./internal/blocks/Textarea.js";
14
- import { DateInput } from "./DateInput-BlKkequE.js";
16
+ import { DateInput } from "./DateInput-ClK1lCxz.js";
15
17
  import { PasswordInput } from "./internal/blocks/PasswordInput.js";
16
- import { Alert } from "./Alert-DuAGeYyM.js";
18
+ import { Alert } from "./Alert-CZ0dDsuk.js";
17
19
  import { CollapsiblePanel } from "./internal/components/CollapsiblePanel.js";
18
20
  import { Tabs, TabsContent } from "./Tabs-C0uvkPHc.js";
19
- import { CodeEditor, isLanguageMode } from "./CodeEditor-Y0iE-SwV.js";
21
+ import { CodeEditor, isLanguageMode } from "./CodeEditor-BfRSCKEs.js";
20
22
  import { createContext, isValidElement, use, useCallback, useEffect, useMemo, useRef, useState } from "react";
21
23
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
22
24
  import DOMPurify from "dompurify";
23
25
  import Form from "@rjsf/core";
24
26
  import validator from "@rjsf/validator-ajv8";
27
+ import { enumOptionsDeselectValue, enumOptionsIsSelected, enumOptionsSelectValue, optionId, useDeepCompareMemo } from "@rjsf/utils";
25
28
  //#region src/blocks/RjsfSchemaEditor/fieldHelpers.ts
26
29
  /** No-op function reused as onBlur/onFocus stub in custom fields. */
27
30
  const noop = () => {};
@@ -863,6 +866,29 @@ const ObjectFieldTemplate = ({ title, description, properties, formData, uiSchem
863
866
  });
864
867
  };
865
868
  //#endregion
869
+ //#region src/blocks/RjsfSchemaEditor/widgets/CheckboxesWidget.tsx
870
+ /**
871
+ * A group of checkboxes for an array of enum values (`format: 'checkbox'`).
872
+ *
873
+ * - `options.inline` lays the options out in a wrapping row instead of a column.
874
+ * - An option listed in `options.enumDisabled` is disabled on its own.
875
+ */
876
+ const CheckboxesWidget = ({ id, value, onChange, disabled, readonly, options }) => {
877
+ const { enumOptions = [], enumDisabled, inline } = options;
878
+ const selected = Array.isArray(value) ? value : [value];
879
+ return /* @__PURE__ */ jsx("div", {
880
+ id,
881
+ className: cn("tw:flex tw:gap-2", inline ? "tw:flex-wrap tw:gap-x-4" : "tw:flex-col"),
882
+ children: enumOptions.map((option, index) => /* @__PURE__ */ jsx(Checkbox, {
883
+ id: optionId(id, index),
884
+ checked: enumOptionsIsSelected(option.value, selected),
885
+ disabled: disabled || readonly || Array.isArray(enumDisabled) && enumDisabled.includes(option.value),
886
+ onCheckedChange: (checked) => onChange(checked ? enumOptionsSelectValue(index, selected, enumOptions) : enumOptionsDeselectValue(index, selected, enumOptions)),
887
+ children: option.label
888
+ }, index))
889
+ });
890
+ };
891
+ //#endregion
866
892
  //#region src/blocks/RjsfSchemaEditor/widgets/CheckboxWidget.tsx
867
893
  const CheckboxWidget = ({ id, value, onChange, disabled, readonly, label, hideLabel }) => {
868
894
  return /* @__PURE__ */ jsx(Checkbox, {
@@ -936,6 +962,66 @@ const DynamicSelectWidget = ({ id, value, onChange, onBlur, disabled, readonly,
936
962
  });
937
963
  };
938
964
  //#endregion
965
+ //#region src/blocks/RjsfSchemaEditor/widgets/MultiSelectWidget.tsx
966
+ /**
967
+ * A `MultiCombobox` over the `items.enum` options of a multi-value array.
968
+ *
969
+ * - Default for `async-multi-select`; it ignores `async`, `creatable` and `enumSource`, which a
970
+ * host's replacement handles.
971
+ * - A stored value outside `items.enum` stays a chip labelled by the value, so an edit keeps it.
972
+ * - An option listed in `options.enumDisabled` cannot be picked.
973
+ */
974
+ const MultiSelectWidget = ({ id, value, onChange, onBlur, disabled, readonly, options, placeholder, rawErrors }) => {
975
+ const enumOptions = useDeepCompareMemo(options.enumOptions ?? []);
976
+ const enumDisabled = useDeepCompareMemo(options.enumDisabled);
977
+ const values = useDeepCompareMemo(Array.isArray(value) ? value : []);
978
+ const { items, selected, valueOf } = useMemo(() => {
979
+ const entries = enumOptions.map((option, index) => ({
980
+ value: option.value,
981
+ item: {
982
+ value: String(index),
983
+ label: option.label,
984
+ disabled: Array.isArray(enumDisabled) && enumDisabled.includes(option.value)
985
+ }
986
+ }));
987
+ const all = [...entries];
988
+ const selected = values.map((stored, index) => {
989
+ const known = entries.find((entry) => enumOptionsIsSelected(entry.value, [stored]));
990
+ if (known) return known.item;
991
+ const unknown = {
992
+ value: stored,
993
+ item: {
994
+ value: `unknown-${index}`,
995
+ label: String(stored)
996
+ }
997
+ };
998
+ all.push(unknown);
999
+ return unknown.item;
1000
+ });
1001
+ return {
1002
+ items: all.map((entry) => entry.item),
1003
+ selected,
1004
+ valueOf: new Map(all.map((entry) => [entry.item, entry.value]))
1005
+ };
1006
+ }, [
1007
+ enumOptions,
1008
+ enumDisabled,
1009
+ values
1010
+ ]);
1011
+ return /* @__PURE__ */ jsx(MultiCombobox, {
1012
+ id,
1013
+ variant: "secondary",
1014
+ items,
1015
+ value: selected,
1016
+ disabled: disabled || readonly,
1017
+ placeholder,
1018
+ "aria-invalid": rawErrors?.length ? true : void 0,
1019
+ state: rawErrors?.length ? "error" : "default",
1020
+ onBlur: () => onBlur(id, value),
1021
+ onValueChange: (next) => onChange(next.map((item) => valueOf.get(item)))
1022
+ });
1023
+ };
1024
+ //#endregion
939
1025
  //#region src/blocks/RjsfSchemaEditor/widgets/NumberWidget.tsx
940
1026
  const NumberWidget = ({ id, value, onChange, onBlur, onFocus, disabled, readonly, placeholder, schema, rawErrors }) => {
941
1027
  return /* @__PURE__ */ jsx(NumberInput, {
@@ -1144,6 +1230,7 @@ const defaultWidgets = {
1144
1230
  PasswordWidget,
1145
1231
  SelectWidget,
1146
1232
  CheckboxWidget,
1233
+ CheckboxesWidget,
1147
1234
  RadioWidget,
1148
1235
  EmailWidget: TextWidget,
1149
1236
  URLWidget: TextWidget,
@@ -1152,10 +1239,10 @@ const defaultWidgets = {
1152
1239
  "code-editor": CodeEditorWidget,
1153
1240
  "dynamic-select": DynamicSelectWidget,
1154
1241
  "template-watch": TemplateWatchWidget,
1242
+ "async-multi-select": MultiSelectWidget,
1155
1243
  "test-connection": StubWidget,
1156
1244
  "sync-action": StubWidget,
1157
- "async-select": StubWidget,
1158
- "async-multi-select": StubWidget
1245
+ "async-select": StubWidget
1159
1246
  };
1160
1247
  const defaultTemplates = {
1161
1248
  FieldTemplate,