@keboola/design 6.4.0 → 8.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 (49) hide show
  1. package/AGENTS.md +9 -10
  2. package/COMPONENT-API.md +162 -160
  3. package/README.md +3 -3
  4. package/dist/charts.cjs +22 -22
  5. package/dist/charts.cjs.map +1 -1
  6. package/dist/charts.d.cts +5 -5
  7. package/dist/charts.d.ts +5 -5
  8. package/dist/charts.js +22 -22
  9. package/dist/charts.js.map +1 -1
  10. package/dist/editors.cjs +594 -438
  11. package/dist/editors.cjs.map +1 -1
  12. package/dist/editors.d.cts +8 -4
  13. package/dist/editors.d.ts +8 -4
  14. package/dist/editors.js +595 -422
  15. package/dist/editors.js.map +1 -1
  16. package/dist/icons.cjs +23818 -45
  17. package/dist/icons.cjs.map +1 -1
  18. package/dist/icons.d.cts +12 -3
  19. package/dist/icons.d.ts +12 -3
  20. package/dist/icons.js +298 -40
  21. package/dist/icons.js.map +1 -1
  22. package/dist/index.cjs +11519 -11718
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +679 -1227
  25. package/dist/index.d.ts +679 -1227
  26. package/dist/index.js +10315 -10516
  27. package/dist/index.js.map +1 -1
  28. package/dist/markdown-editor.cjs +1015 -1134
  29. package/dist/markdown-editor.cjs.map +1 -1
  30. package/dist/markdown-editor.js +1016 -1134
  31. package/dist/markdown-editor.js.map +1 -1
  32. package/dist/mermaid.cjs +366 -452
  33. package/dist/mermaid.cjs.map +1 -1
  34. package/dist/mermaid.d.cts +5 -1
  35. package/dist/mermaid.d.ts +5 -1
  36. package/dist/mermaid.js +368 -435
  37. package/dist/mermaid.js.map +1 -1
  38. package/dist/rjsf.cjs +2540 -2419
  39. package/dist/rjsf.cjs.map +1 -1
  40. package/dist/rjsf.js +2541 -2419
  41. package/dist/rjsf.js.map +1 -1
  42. package/dist/styles.css +2 -5
  43. package/dist/testing.cjs +86 -82
  44. package/dist/testing.cjs.map +1 -1
  45. package/dist/testing.js +86 -82
  46. package/dist/testing.js.map +1 -1
  47. package/package.json +30 -22
  48. package/src/styles.css +125 -105
  49. package/src/theme.css +264 -0
package/AGENTS.md CHANGED
@@ -36,12 +36,12 @@ The root barrel (`@keboola/design`) is **not** the whole package. These live onl
36
36
 
37
37
  The API is "shadcn-shaped" enough to invite copy-paste but different enough to break it — copied shadcn code fails type-check. Translate these before emitting:
38
38
 
39
- | Component | shadcn shape (wrong here) | `@keboola/design` shape |
40
- | --------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
41
- | `DropdownMenu` | named parts `DropdownMenuTrigger` / `DropdownMenuContent` / `DropdownMenuItem` | **compound** — only `DropdownMenu` exports; use `DropdownMenu.Trigger` / `.Content` / `.Item` / `.Label` / `.Separator` |
42
- | `Tabs` | `<Tabs><TabsList><TabsTrigger/></TabsList><TabsContent/>` | data-driven — `<Tabs triggers={[{ value, title }]}>` + `TabsContent` children. **No** `TabsList` / `TabsTrigger` export |
43
- | `Select` | composed children `<Select><SelectTrigger/><SelectContent><SelectItem/></SelectContent></Select>` | data-driven — `Select` takes **`items`**; the form connector `SelectField` also takes **`items`** (canonical), with `options` as a deprecated alias. Same `{ value, label }` shape |
44
- | `Sidebar.SearchInput` | `asChild`-wrappable trigger | concrete `<input>` (`ComponentProps<'input'>`), **no `asChild`** — put a custom search affordance in a plain element inside `Sidebar.Header` |
39
+ | Component | shadcn shape (wrong here) | `@keboola/design` shape |
40
+ | --------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
41
+ | `DropdownMenu` | named parts `DropdownMenuTrigger` / `DropdownMenuContent` / `DropdownMenuItem` | **compound** — only `DropdownMenu` exports; use `DropdownMenu.Trigger` / `.Content` / `.Item` / `.Label` / `.Separator` |
42
+ | `Tabs` | `<Tabs><TabsList><TabsTrigger/></TabsList><TabsContent/>` | data-driven — `<Tabs triggers={[{ value, title }]}>` + `TabsContent` children. **No** `TabsList` / `TabsTrigger` export |
43
+ | `Select` | composed children `<Select><SelectTrigger/><SelectContent><SelectItem/></SelectContent></Select>` | data-driven — `Select` takes **`items`**, and the form connector `SelectField` delegates to it, so both take the same `items`: flat `{ value, label, icon?, disabled? }` or groups of them (`{ label?, items }`) |
44
+ | `Sidebar.SearchInput` | `asChild`-wrappable trigger | concrete `<input>` (`ComponentProps<'input'>`), **no `asChild`** — put a custom search affordance in a plain element inside `Sidebar.Header` |
45
45
 
46
46
  Other compound (not named-export) components in the barrel: `Modal.*`, `Sheet.*`, `Card.*`, `Sidebar.*`, `PageHeader.Index` / `.Detail`, `EmptyState.*`, `Pagination.*`, `Popover.*` — reach for the dotted sub-parts, not flat `XContent` / `XTrigger` named imports. (The root `SearchInput` block is distinct from `Sidebar.SearchInput` and is fully composable.)
47
47
 
@@ -205,11 +205,10 @@ The `label` prop implies `orientation="horizontal"` — labels are not rendered
205
205
  | `Combobox` | Single selection from a searchable list |
206
206
  | `MultiCombobox` | Multiple selections from a searchable list |
207
207
  | `Select` | Single selection from a short enum (≤ ~10 options, no search) |
208
- | `Tagger` | Free-form chip/tag entry |
209
208
  | `CodeEditor` | Generic code editing (JSON, YAML, shell) |
210
209
  | `SqlEditor` | SQL editing (syntax + autocomplete) |
211
210
 
212
- `Select` is wrong above ~10 items — use `Combobox`. `Combobox` is wrong for free-form values — use `Tagger`. `CodeEditor`/`SqlEditor` load the full CodeMirror bundle and ship from the `@keboola/design/editors` subpath (not the root); reserve for real code editing.
211
+ `Select` is wrong above ~10 items — use `Combobox`. `CodeEditor`/`SqlEditor` load the full CodeMirror bundle and ship from the `@keboola/design/editors` subpath (not the root); reserve for real code editing.
213
212
 
214
213
  ## Composition recipes
215
214
 
@@ -231,7 +230,7 @@ const form = useAppForm({
231
230
 
232
231
  <Modal open={open} onOpenChange={setOpen}>
233
232
  <Modal.Content size="medium">
234
- <Modal.Header title="New bucket" />
233
+ <Modal.Header>New bucket</Modal.Header>
235
234
  <Modal.Body>
236
235
  <form.AppForm>
237
236
  <form.FormBody id={FORM_ID}>
@@ -427,7 +426,7 @@ Controlled (opened from elsewhere, no `Trigger`): pass `open` + `onOpenChange` t
427
426
 
428
427
  ## Icons
429
428
 
430
- Canonical icon surface is `@keboola/design/icons` — a wildcard re-export of [lucide-react](https://lucide.dev) plus Keboola-custom inline-SVG icons. Follow **shadcn convention**: import named icons directly, no wrapper component. Every Lucide icon is available without any package edit.
429
+ Canonical icon surface is `@keboola/design/icons` — a re-export of every [lucide-react](https://lucide.dev) icon plus Keboola-custom inline-SVG icons. Follow **shadcn convention**: import named icons directly, no wrapper component. Every Lucide icon is available without any package edit.
431
430
 
432
431
  ```tsx
433
432
  import { ChevronDown, Keboola, Loader2 } from '@keboola/design/icons';