@keboola/design 12.0.0 → 13.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 (156) hide show
  1. package/AGENTS.md +12 -7
  2. package/CHANGELOG.md +91 -0
  3. package/COMPONENT-API.md +15 -5
  4. package/dist/{AIKit-BD4r7ff-.js → AIKit-DcOlHIBr.js} +22 -10
  5. package/dist/AIKit-DcOlHIBr.js.map +1 -0
  6. package/dist/{AlertModal-Th2khjPi.js → AlertModal-mbSnuuka.js} +5 -5
  7. package/dist/AlertModal-mbSnuuka.js.map +1 -0
  8. package/dist/{BrandEditor-BU23Vl8V.js → BrandEditor-Bkd6dhb8.js} +6 -6
  9. package/dist/{BrandEditor-BU23Vl8V.js.map → BrandEditor-Bkd6dhb8.js.map} +1 -1
  10. package/dist/{Breadcrumb-p9HtMLCc.js → Breadcrumb-BUoAZyhO.js} +2 -2
  11. package/dist/{Breadcrumb-p9HtMLCc.js.map → Breadcrumb-BUoAZyhO.js.map} +1 -1
  12. package/dist/{Button-Ca4Q3VJU.js → Button-B21oVcPU.js} +3 -4
  13. package/dist/Button-B21oVcPU.js.map +1 -0
  14. package/dist/{Card-Cr9MBNHu.js → Card-BQmBWHXl.js} +32 -4
  15. package/dist/Card-BQmBWHXl.js.map +1 -0
  16. package/dist/{ClipboardButton-DHa1trtI.js → ClipboardButton-srUgWgwH.js} +2 -2
  17. package/dist/{ClipboardButton-DHa1trtI.js.map → ClipboardButton-srUgWgwH.js.map} +1 -1
  18. package/dist/{CodeEditor-BSo-oLFG.js → CodeEditor-jZMw1ioj.js} +2 -2
  19. package/dist/{CodeEditor-BSo-oLFG.js.map → CodeEditor-jZMw1ioj.js.map} +1 -1
  20. package/dist/{ColorInput-DSMqrs2-.js → ColorInput-B3gBZ8Ya.js} +2 -2
  21. package/dist/{ColorInput-DSMqrs2-.js.map → ColorInput-B3gBZ8Ya.js.map} +1 -1
  22. package/dist/{ColorModeSwitch-D7EuWyJz.js → ColorModeSwitch-Bw9wMyoL.js} +2 -2
  23. package/dist/{ColorModeSwitch-D7EuWyJz.js.map → ColorModeSwitch-Bw9wMyoL.js.map} +1 -1
  24. package/dist/{Combobox-CxRAYOBt.js → Combobox-C_MTpQ1l.js} +21 -9
  25. package/dist/Combobox-C_MTpQ1l.js.map +1 -0
  26. package/dist/{Command-BU_cVurn.js → Command-BQPiZCNz.js} +2 -2
  27. package/dist/{Command-BU_cVurn.js.map → Command-BQPiZCNz.js.map} +1 -1
  28. package/dist/{CopyField-6_c-NdLO.js → CopyField-Ba7h8MqZ.js} +3 -3
  29. package/dist/CopyField-Ba7h8MqZ.js.map +1 -0
  30. package/dist/{DateInput-DyEErfJf.js → DateInput-D0nWUasV.js} +2 -2
  31. package/dist/{DateInput-DyEErfJf.js.map → DateInput-D0nWUasV.js.map} +1 -1
  32. package/dist/{DateRangeInput-Dg7-VUd9.js → DateRangeInput-i6wE45-V.js} +2 -2
  33. package/dist/{DateRangeInput-Dg7-VUd9.js.map → DateRangeInput-i6wE45-V.js.map} +1 -1
  34. package/dist/{DateRangePicker-BoPnh4aH.js → DateRangePicker-BAnuz6vO.js} +2 -2
  35. package/dist/{DateRangePicker-BoPnh4aH.js.map → DateRangePicker-BAnuz6vO.js.map} +1 -1
  36. package/dist/{FieldItem-2wMXQ0Qw.js → FieldItem-BHViBJS3.js} +2 -2
  37. package/dist/{FieldItem-2wMXQ0Qw.js.map → FieldItem-BHViBJS3.js.map} +1 -1
  38. package/dist/{FileUpload-C83tXuE2.js → FileUpload-Ch2hrIWq.js} +2 -2
  39. package/dist/{FileUpload-C83tXuE2.js.map → FileUpload-Ch2hrIWq.js.map} +1 -1
  40. package/dist/{Form-95rVLfX8.js → Form-VkzfVPyT.js} +5 -5
  41. package/dist/{Form-95rVLfX8.js.map → Form-VkzfVPyT.js.map} +1 -1
  42. package/dist/{FormGroup-CmNiAtU6.js → FormGroup-CmCppxOn.js} +3 -3
  43. package/dist/{FormGroup-CmNiAtU6.js.map → FormGroup-CmCppxOn.js.map} +1 -1
  44. package/dist/{FullScreenModal-CD7mYeTz.js → FullScreenModal-Cwnm8WdM.js} +2 -2
  45. package/dist/{FullScreenModal-CD7mYeTz.js.map → FullScreenModal-Cwnm8WdM.js.map} +1 -1
  46. package/dist/{InputGroup-B4QOPxHl.js → InputGroup-CrlMRz4X.js} +2 -2
  47. package/dist/{InputGroup-B4QOPxHl.js.map → InputGroup-CrlMRz4X.js.map} +1 -1
  48. package/dist/{MermaidDiagram-BQvz6bhv.js → MermaidDiagram-B30x2yV7.js} +2 -2
  49. package/dist/{MermaidDiagram-BQvz6bhv.js.map → MermaidDiagram-B30x2yV7.js.map} +1 -1
  50. package/dist/{Modal-Driyqs_N.js → Modal-BkSuS9Yz.js} +2 -2
  51. package/dist/{Modal-Driyqs_N.js.map → Modal-BkSuS9Yz.js.map} +1 -1
  52. package/dist/{MultiActionButtonGroup-BPnmzBtw.js → MultiActionButtonGroup-AWLj1Tg7.js} +2 -2
  53. package/dist/{MultiActionButtonGroup-BPnmzBtw.js.map → MultiActionButtonGroup-AWLj1Tg7.js.map} +1 -1
  54. package/dist/{PageToolbar-DOAtAnfL.js → PageToolbar-CIW0VmKe.js} +2 -2
  55. package/dist/{PageToolbar-DOAtAnfL.js.map → PageToolbar-CIW0VmKe.js.map} +1 -1
  56. package/dist/{Pagination-LaSg-5cl.js → Pagination-DH3f6LN0.js} +2 -2
  57. package/dist/{Pagination-LaSg-5cl.js.map → Pagination-DH3f6LN0.js.map} +1 -1
  58. package/dist/{Popconfirm-SLz0zodk.js → Popconfirm-Dhzn7sy6.js} +2 -2
  59. package/dist/{Popconfirm-SLz0zodk.js.map → Popconfirm-Dhzn7sy6.js.map} +1 -1
  60. package/dist/{SearchInput-CEfQDNl3.js → SearchInput-D3qMkHaW.js} +2 -2
  61. package/dist/{SearchInput-CEfQDNl3.js.map → SearchInput-D3qMkHaW.js.map} +1 -1
  62. package/dist/{SectionNav-B_qf0AXi.js → SectionNav-TU5i3JeM.js} +2 -2
  63. package/dist/{SectionNav-B_qf0AXi.js.map → SectionNav-TU5i3JeM.js.map} +1 -1
  64. package/dist/{Select-ByRvkZ3D.js → Select-B4uK0QVm.js} +4 -3
  65. package/dist/Select-B4uK0QVm.js.map +1 -0
  66. package/dist/{Sheet-C-yXk5Da.js → Sheet-D0fAE14T.js} +2 -2
  67. package/dist/{Sheet-C-yXk5Da.js.map → Sheet-D0fAE14T.js.map} +1 -1
  68. package/dist/{Sidebar-Ds0E6PbR.js → Sidebar-ZLMNIbg5.js} +3 -3
  69. package/dist/{Sidebar-Ds0E6PbR.js.map → Sidebar-ZLMNIbg5.js.map} +1 -1
  70. package/dist/{Slider-DWdu9NuM.js → Slider-B0ou9r0B.js} +2 -2
  71. package/dist/{Slider-DWdu9NuM.js.map → Slider-B0ou9r0B.js.map} +1 -1
  72. package/dist/{Tabs-Dt9oLYHC.js → Tabs-CTDmye1N.js} +2 -2
  73. package/dist/{Tabs-Dt9oLYHC.js.map → Tabs-CTDmye1N.js.map} +1 -1
  74. package/dist/{TextInput-CDG2XpBl.js → TextInput-BWYXbfs4.js} +2 -2
  75. package/dist/{TextInput-CDG2XpBl.js.map → TextInput-BWYXbfs4.js.map} +1 -1
  76. package/dist/{ThemeProvider-DXsxFg1U.js → ThemeProvider-VF38VfUa.js} +3 -3
  77. package/dist/{ThemeProvider-DXsxFg1U.js.map → ThemeProvider-VF38VfUa.js.map} +1 -1
  78. package/dist/{ZoomableSvg-BzXVfgnI.js → ZoomableSvg-C65nta_r.js} +3 -3
  79. package/dist/{ZoomableSvg-BzXVfgnI.js.map → ZoomableSvg-C65nta_r.js.map} +1 -1
  80. package/dist/editors.js +3 -3
  81. package/dist/flint.js +1 -1
  82. package/dist/index.d.ts +375 -375
  83. package/dist/index.js +37 -37
  84. package/dist/internal/blocks/AIKit.js +1 -1
  85. package/dist/internal/blocks/BrandEditor.js +1 -1
  86. package/dist/internal/blocks/ChartPanel.js +1 -1
  87. package/dist/internal/blocks/ChipEditor.js +1 -1
  88. package/dist/internal/blocks/ClipboardButton.js +1 -1
  89. package/dist/internal/blocks/ColorInput.js +1 -1
  90. package/dist/internal/blocks/ColorModeSwitch.js +1 -1
  91. package/dist/internal/blocks/Command.js +1 -1
  92. package/dist/internal/blocks/CopyField.js +1 -1
  93. package/dist/internal/blocks/DateInput.js +1 -1
  94. package/dist/internal/blocks/DateRangeInput.js +1 -1
  95. package/dist/internal/blocks/EmptyConfigurationActionCard.js +1 -1
  96. package/dist/internal/blocks/ExportMenu.js +1 -1
  97. package/dist/internal/blocks/Form/connectors/ComboboxField.js +2 -2
  98. package/dist/internal/blocks/Form/connectors/ComboboxField.js.map +1 -1
  99. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +1 -1
  100. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js.map +1 -1
  101. package/dist/internal/blocks/Form.js +1 -1
  102. package/dist/internal/blocks/FormGroup.js +1 -1
  103. package/dist/internal/blocks/MultiActionButtonGroup.js +1 -1
  104. package/dist/internal/blocks/MultiCombobox.js +4 -5
  105. package/dist/internal/blocks/MultiCombobox.js.map +1 -1
  106. package/dist/internal/blocks/NumberInput.js +1 -1
  107. package/dist/internal/blocks/PageToolbar.js +1 -1
  108. package/dist/internal/blocks/PasswordInput.js +1 -1
  109. package/dist/internal/blocks/SearchInput.js +1 -1
  110. package/dist/internal/blocks/SearchInputWithNavigation.js +2 -2
  111. package/dist/internal/blocks/SectionNav.js +1 -1
  112. package/dist/internal/blocks/SplitButton.js +1 -1
  113. package/dist/internal/blocks/StatCard.js +1 -1
  114. package/dist/internal/blocks/TextInput.js +1 -1
  115. package/dist/internal/blocks/Textarea.js +1 -1
  116. package/dist/internal/blocks/TimeInput.js +1 -1
  117. package/dist/internal/components/AlertModal.js +1 -1
  118. package/dist/internal/components/Breadcrumb.js +1 -1
  119. package/dist/internal/components/Button.js +1 -1
  120. package/dist/internal/components/Card.js +1 -1
  121. package/dist/internal/components/CollapsiblePanel.js +1 -1
  122. package/dist/internal/components/CollapsiblePanel.js.map +1 -1
  123. package/dist/internal/components/Combobox.js +1 -1
  124. package/dist/internal/components/DateRangePicker.js +1 -1
  125. package/dist/internal/components/FileUpload.js +1 -1
  126. package/dist/internal/components/FullScreenModal.js +1 -1
  127. package/dist/internal/components/InputGroup.js +1 -1
  128. package/dist/internal/components/Modal.js +1 -1
  129. package/dist/internal/components/Pagination.js +1 -1
  130. package/dist/internal/components/Popconfirm.js +1 -1
  131. package/dist/internal/components/Select.js +1 -1
  132. package/dist/internal/components/Sheet.js +1 -1
  133. package/dist/internal/components/Sidebar.js +1 -1
  134. package/dist/internal/components/Slider.js +1 -1
  135. package/dist/internal/components/Tabs.js +1 -1
  136. package/dist/internal/components/ThemeProvider.js +2 -2
  137. package/dist/internal/components/ZoomableSvg.js +1 -1
  138. package/dist/internal/utils/accessibleName.js +11 -0
  139. package/dist/internal/utils/accessibleName.js.map +1 -0
  140. package/dist/markdown-editor.js +4 -4
  141. package/dist/mermaid.js +1 -1
  142. package/dist/rjsf.js +7 -7
  143. package/dist/styles.css +1 -1
  144. package/dist/testing.js +3 -4
  145. package/dist/testing.js.map +1 -1
  146. package/package.json +23 -23
  147. package/src/theme.css +6 -1
  148. package/dist/AIKit-BD4r7ff-.js.map +0 -1
  149. package/dist/AlertModal-Th2khjPi.js.map +0 -1
  150. package/dist/Button-Ca4Q3VJU.js.map +0 -1
  151. package/dist/Card-Cr9MBNHu.js.map +0 -1
  152. package/dist/Combobox-CxRAYOBt.js.map +0 -1
  153. package/dist/CopyField-6_c-NdLO.js.map +0 -1
  154. package/dist/Select-ByRvkZ3D.js.map +0 -1
  155. package/dist/internal/components/StatusDot.js +0 -60
  156. package/dist/internal/components/StatusDot.js.map +0 -1
package/dist/testing.js CHANGED
@@ -1,10 +1,9 @@
1
1
  import { ArgoDesignContext } from "./context-U293r3v-.js";
2
- import { ThemeProvider } from "./ThemeProvider-DXsxFg1U.js";
2
+ import { ThemeProvider } from "./ThemeProvider-VF38VfUa.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
- import { keboola, keboolaLegacySidebar, keboolaLegacyTopnav } from "@keboola/brand-registry";
4
+ import { keboola, keboolaLegacySidebar } from "@keboola/brand-registry";
5
5
  import { render } from "@testing-library/react";
6
6
  //#region src/testing/renderWithTheme.tsx
7
- const keboolaLegacyIds = [keboolaLegacySidebar.id, keboolaLegacyTopnav.id];
8
7
  /**
9
8
  * `@testing-library/react` `render` wrapped in a `<ThemeProvider brand={...}>`.
10
9
  *
@@ -14,7 +13,7 @@ const keboolaLegacyIds = [keboolaLegacySidebar.id, keboolaLegacyTopnav.id];
14
13
  */
15
14
  const renderWithTheme = (ui, options = {}) => {
16
15
  const { brand = keboola, ...rest } = options;
17
- const isArgo = !keboolaLegacyIds.includes(brand.id);
16
+ const isArgo = brand.id !== keboolaLegacySidebar.id;
18
17
  return render(ui, {
19
18
  ...rest,
20
19
  wrapper: ({ children }) => /* @__PURE__ */ jsx(ThemeProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","names":[],"sources":["../src/testing/renderWithTheme.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { render, type RenderOptions, type RenderResult } from '@testing-library/react';\n\nimport {\n type Brand,\n keboola,\n keboolaLegacySidebar,\n keboolaLegacyTopnav,\n} from '@keboola/brand-registry';\n\nimport { ArgoDesignContext, ThemeProvider } from '../components/ThemeProvider';\n\nconst keboolaLegacyIds = [keboolaLegacySidebar.id, keboolaLegacyTopnav.id];\n\ntype Options = Omit<RenderOptions, 'wrapper'> & {\n /** Brand to drive the wrapping `<ThemeProvider>`. Defaults to `keboola`. */\n brand?: Brand;\n};\n\n/**\n * `@testing-library/react` `render` wrapped in a `<ThemeProvider brand={...}>`.\n *\n * - For components that call `useTheme()` or use the brand CSS variables.\n * - Also provides `ArgoDesignContext` from the brand, as kbc-ui does: a legacy brand gets\n * legacy chrome, any other argo.\n */\nexport const renderWithTheme = (ui: ReactElement, options: Options = {}): RenderResult => {\n const { brand = keboola, ...rest } = options;\n const isArgo = !keboolaLegacyIds.includes(brand.id);\n return render(ui, {\n ...rest,\n wrapper: ({ children }) => (\n <ThemeProvider brands={[brand]} brandId={brand.id}>\n <ArgoDesignContext value={isArgo}>{children}</ArgoDesignContext>\n </ThemeProvider>\n ),\n });\n};\n"],"mappings":";;;;;;AAYA,MAAM,mBAAmB,CAAC,qBAAqB,IAAI,oBAAoB,EAAE;;;;;;;;AAczE,MAAa,mBAAmB,IAAkB,UAAmB,CAAC,MAAoB;CACxF,MAAM,EAAE,QAAQ,SAAS,GAAG,SAAS;CACrC,MAAM,SAAS,CAAC,iBAAiB,SAAS,MAAM,EAAE;CAClD,OAAO,OAAO,IAAI;EAChB,GAAG;EACH,UAAU,EAAE,eACV,oBAAC,eAAD;GAAe,QAAQ,CAAC,KAAK;GAAG,SAAS,MAAM;GAC7C,UAAA,oBAAC,mBAAD;IAAmB,OAAO;IAAS;GAA4B,CAAA;EAClD,CAAA;CAEnB,CAAC;AACH"}
1
+ {"version":3,"file":"testing.js","names":[],"sources":["../src/testing/renderWithTheme.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { render, type RenderOptions, type RenderResult } from '@testing-library/react';\n\nimport { type Brand, keboola, keboolaLegacySidebar } from '@keboola/brand-registry';\n\nimport { ArgoDesignContext, ThemeProvider } from '../components/ThemeProvider';\n\ntype Options = Omit<RenderOptions, 'wrapper'> & {\n /** Brand to drive the wrapping `<ThemeProvider>`. Defaults to `keboola`. */\n brand?: Brand;\n};\n\n/**\n * `@testing-library/react` `render` wrapped in a `<ThemeProvider brand={...}>`.\n *\n * - For components that call `useTheme()` or use the brand CSS variables.\n * - Also provides `ArgoDesignContext` from the brand, as kbc-ui does: a legacy brand gets\n * legacy chrome, any other argo.\n */\nexport const renderWithTheme = (ui: ReactElement, options: Options = {}): RenderResult => {\n const { brand = keboola, ...rest } = options;\n const isArgo = brand.id !== keboolaLegacySidebar.id;\n return render(ui, {\n ...rest,\n wrapper: ({ children }) => (\n <ThemeProvider brands={[brand]} brandId={brand.id}>\n <ArgoDesignContext value={isArgo}>{children}</ArgoDesignContext>\n </ThemeProvider>\n ),\n });\n};\n"],"mappings":";;;;;;;;;;;;;AAmBA,MAAa,mBAAmB,IAAkB,UAAmB,CAAC,MAAoB;CACxF,MAAM,EAAE,QAAQ,SAAS,GAAG,SAAS;CACrC,MAAM,SAAS,MAAM,OAAO,qBAAqB;CACjD,OAAO,OAAO,IAAI;EAChB,GAAG;EACH,UAAU,EAAE,eACV,oBAAC,eAAD;GAAe,QAAQ,CAAC,KAAK;GAAG,SAAS,MAAM;GAC7C,UAAA,oBAAC,mBAAD;IAAmB,OAAO;IAAS;GAA4B,CAAA;EAClD,CAAA;CAEnB,CAAC;AACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keboola/design",
3
- "version": "12.0.0",
3
+ "version": "13.0.0",
4
4
  "description": "Keboola UI platform design system — shadcn-aligned React primitives, Keboola-branded blocks, and the form bindings built on TanStack Form.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -121,14 +121,19 @@
121
121
  "devDependencies": {
122
122
  "@arethetypeswrong/cli": "^0.18.2",
123
123
  "@google/design.md": "0.2.0",
124
+ "@keboola/agent-vocabulary": "^0.1.1",
125
+ "@keboola/eslint-plugin-design": "^0.5.0",
126
+ "@keboola/oxlint-config": "^10.2.0",
127
+ "@keboola/tsconfig": "^0.2.1",
128
+ "@keboola/vitest-config": "^1.0.0",
124
129
  "@playwright/test": "1.63.0",
125
130
  "@size-limit/esbuild": "12.1.0",
126
131
  "@size-limit/file": "12.1.0",
127
- "@storybook/addon-a11y": "10.2.19",
128
- "@storybook/addon-docs": "^10.2.19",
129
- "@storybook/addon-links": "^10.2.19",
130
- "@storybook/addon-vitest": "10.2.19",
131
- "@storybook/react-vite": "^10.2.19",
132
+ "@storybook/addon-a11y": "10.6.1",
133
+ "@storybook/addon-docs": "^10.6.1",
134
+ "@storybook/addon-links": "^10.6.1",
135
+ "@storybook/addon-vitest": "10.6.1",
136
+ "@storybook/react-vite": "^10.6.1",
132
137
  "@tailwindcss/cli": "^4.3.3",
133
138
  "@tailwindcss/typography": "^0.5.19",
134
139
  "@tailwindcss/vite": "^4.3.3",
@@ -141,10 +146,10 @@
141
146
  "@types/react-dom": "^19.3.0",
142
147
  "@typescript/native": "npm:typescript@^7.0.2",
143
148
  "@vitejs/plugin-react": "^6.1.1",
144
- "@vitest/browser": "4.1.11",
145
- "@vitest/browser-playwright": "4.1.11",
146
- "@vitest/coverage-istanbul": "4.1.11",
147
- "@vitest/coverage-v8": "^4.1.11",
149
+ "@vitest/browser": "5.0.1",
150
+ "@vitest/browser-playwright": "5.0.1",
151
+ "@vitest/coverage-istanbul": "5.0.1",
152
+ "@vitest/coverage-v8": "^5.0.1",
148
153
  "d3-color": "^3.1.0",
149
154
  "eslint-plugin-storybook": "^10.3.5",
150
155
  "oxfmt": "^0.66.0",
@@ -154,7 +159,7 @@
154
159
  "react-docgen-typescript": "^2.4.0",
155
160
  "react-dom": "^19.3.0",
156
161
  "size-limit": "12.1.0",
157
- "storybook": "^10.2.19",
162
+ "storybook": "^10.6.1",
158
163
  "tailwindcss": "^4.3.3",
159
164
  "tailwindcss-scoped-preflight": "^4.0.6",
160
165
  "tsdown": "^0.22.14",
@@ -162,12 +167,7 @@
162
167
  "tw-animate-css": "^1.4.0",
163
168
  "typescript": "npm:@typescript/typescript6@^6.0.2",
164
169
  "vite": "^8.3.0",
165
- "vitest": "^4.1.11",
166
- "@keboola/eslint-plugin-design": "^0.5.0",
167
- "@keboola/agent-vocabulary": "^0.1.1",
168
- "@keboola/oxlint-config": "^10.2.0",
169
- "@keboola/tsconfig": "^0.2.1",
170
- "@keboola/vitest-config": "^1.0.0"
170
+ "vitest": "^5.0.1"
171
171
  },
172
172
  "peerDependencies": {
173
173
  "@testing-library/react": "^16.3.2",
@@ -194,6 +194,9 @@
194
194
  "@codemirror/state": "^6.7.1",
195
195
  "@codemirror/view": "^6.43.9",
196
196
  "@iconify-json/lucide": "^1.2.118",
197
+ "@keboola/brand-registry": "^2.0.0",
198
+ "@keboola/codemirror-lang-sql": "^0.7.3",
199
+ "@keboola/tailwind-config": "^1.2.0",
197
200
  "@lexical/code": "^0.42.0",
198
201
  "@lexical/link": "^0.42.0",
199
202
  "@lexical/list": "^0.42.0",
@@ -238,7 +241,7 @@
238
241
  "clsx": "^2.1.1",
239
242
  "cmdk": "^1.1.1",
240
243
  "diff": "^9.0.0",
241
- "dompurify": "^3.4.14",
244
+ "dompurify": "^3.4.16",
242
245
  "flint-chart": "0.5.1",
243
246
  "input-otp": "^1.4.2",
244
247
  "lexical": "^0.42.0",
@@ -255,10 +258,7 @@
255
258
  "sonner": "^2.0.7",
256
259
  "tailwind-merge": "^3.6.0",
257
260
  "vega": "^6.4.0",
258
- "vega-lite": "^6.4.3",
259
- "@keboola/brand-registry": "^1.10.0",
260
- "@keboola/codemirror-lang-sql": "^0.7.3",
261
- "@keboola/tailwind-config": "^1.2.0"
261
+ "vega-lite": "^6.4.3"
262
262
  },
263
263
  "scripts": {
264
264
  "dev": "storybook dev -p \"${PORT:-6006}\"",
@@ -268,7 +268,7 @@
268
268
  "build:js": "tsdown",
269
269
  "build:css": "tailwindcss -i src/styles.css -o dist/styles.css --minify",
270
270
  "build:check": "node ../../tooling/check-dist-exports.mjs && attw --pack . --profile esm-only --exclude-entrypoints ./styles ./styles/compiled ./theme",
271
- "test": "vitest run --config vite.config.ts --passWithNoTests --reporter=dot",
271
+ "test": "vitest run --config vite.config.ts --reporter=dot",
272
272
  "test:stories": "vitest run --config vitest.config.ts --reporter=default --reporter=github-actions --reporter=junit --outputFile.junit=./junit-report.stories.xml",
273
273
  "test:stories:coverage": "vitest run --config vitest.config.ts --coverage",
274
274
  "test:visual": "playwright test -c playwright.visual.config.ts",
package/src/theme.css CHANGED
@@ -92,7 +92,6 @@
92
92
  box-shadow:
93
93
  var(--tw-ring-offset-shadow, 0 0 #0000),
94
94
  var(--tw-ring-shadow, 0 0 #0000),
95
- 0 0 0 1px rgb(124 92 255 / 0.12),
96
95
  0 6px 18px -8px rgb(56 132 255 / 0.55);
97
96
 
98
97
  &::before {
@@ -284,6 +283,12 @@
284
283
  * still highlighted a `[data-disabled="true"]` control on hover and focus. */
285
284
  @custom-variant not-disabled (&:not([data-disabled="true"]):not(:disabled));
286
285
 
286
+ /* Interactive-surface variant — `interactive:hover:…`. Matches:
287
+ * - an `<a href>`, unless it opts out with `data-interactive="false"`;
288
+ * - any element that opts in with `data-interactive="true"`.
289
+ * Lives here, not in a JS plugin, for the same reason as `not-disabled`: apps compile design's classes. */
290
+ @custom-variant interactive (&:is([data-interactive="true"], a[href]:not([data-interactive="false"])));
291
+
287
292
  @theme inline {
288
293
  --color-inherit: inherit;
289
294
  --color-transparent: rgba(255, 255, 255, 0);