@keboola/design 11.3.0 → 11.5.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.
- package/AGENTS.md +208 -1
- package/CHANGELOG.md +528 -0
- package/COMPONENT-API.md +68 -46
- package/dist/{AIKit-DaFT7p92.js → AIKit-CNX6aiKm.js} +338 -113
- package/dist/AIKit-CNX6aiKm.js.map +1 -0
- package/dist/{Alert-CseY3yAj.js → Alert-Ba5b2YPq.js} +3 -3
- package/dist/{Alert-CseY3yAj.js.map → Alert-Ba5b2YPq.js.map} +1 -1
- package/dist/{AlertModal-DQAGpsEy.js → AlertModal-BGJdaRRj.js} +3 -3
- package/dist/{AlertModal-DQAGpsEy.js.map → AlertModal-BGJdaRRj.js.map} +1 -1
- package/dist/{AppShell-BUoxM3fv.js → AppShell-DRgJxpXW.js} +2 -2
- package/dist/{AppShell-BUoxM3fv.js.map → AppShell-DRgJxpXW.js.map} +1 -1
- package/dist/{Badge-Ch26CXoP.js → Badge-D0pXdekt.js} +2 -2
- package/dist/Badge-D0pXdekt.js.map +1 -0
- package/dist/{BrandEditor-BnTLMRMp.js → BrandEditor-CSANsxUz.js} +8 -8
- package/dist/{BrandEditor-BnTLMRMp.js.map → BrandEditor-CSANsxUz.js.map} +1 -1
- package/dist/{BrandLogo-V2pRUAeO.js → BrandLogo-CoKBk4MI.js} +5 -5
- package/dist/BrandLogo-CoKBk4MI.js.map +1 -0
- package/dist/{Breadcrumb-CQTPn_KB.js → Breadcrumb-g_xn_-Nf.js} +3 -3
- package/dist/{Breadcrumb-CQTPn_KB.js.map → Breadcrumb-g_xn_-Nf.js.map} +1 -1
- package/dist/{Button-CPsEQuTN.js → Button-DsRrU5F1.js} +6 -5
- package/dist/Button-DsRrU5F1.js.map +1 -0
- package/dist/{Card-Cd5HSBmv.js → Card-Dyo7055Q.js} +2 -2
- package/dist/{Card-Cd5HSBmv.js.map → Card-Dyo7055Q.js.map} +1 -1
- package/dist/{Checkbox-5VNCcV7E.js → Checkbox-CUIn2jap.js} +3 -3
- package/dist/{Checkbox-5VNCcV7E.js.map → Checkbox-CUIn2jap.js.map} +1 -1
- package/dist/{Clipboard-B7rckqV_.js → Clipboard-BTW6C-b_.js} +2 -2
- package/dist/{Clipboard-B7rckqV_.js.map → Clipboard-BTW6C-b_.js.map} +1 -1
- package/dist/{ClipboardButton-CQ6Aewpg.js → ClipboardButton-CwZJdRaz.js} +3 -3
- package/dist/{ClipboardButton-CQ6Aewpg.js.map → ClipboardButton-CwZJdRaz.js.map} +1 -1
- package/dist/{CodeEditor-CUse8znx.js → CodeEditor-C9zy7PxK.js} +16 -27
- package/dist/CodeEditor-C9zy7PxK.js.map +1 -0
- package/dist/{ColorInput-Q1D9Vcc_.js → ColorInput-BZV-u_94.js} +3 -3
- package/dist/{ColorInput-Q1D9Vcc_.js.map → ColorInput-BZV-u_94.js.map} +1 -1
- package/dist/{ColorModeSwitch-B5PXCVqB.js → ColorModeSwitch-CsWLiTBX.js} +3 -3
- package/dist/{ColorModeSwitch-B5PXCVqB.js.map → ColorModeSwitch-CsWLiTBX.js.map} +1 -1
- package/dist/{Combobox-CyoRA7oY.js → Combobox-BfIfaVMA.js} +285 -109
- package/dist/Combobox-BfIfaVMA.js.map +1 -0
- package/dist/{Command-Ds68v2rX.js → Command-Bfa1kpbt.js} +6 -6
- package/dist/{Command-Ds68v2rX.js.map → Command-Bfa1kpbt.js.map} +1 -1
- package/dist/{CopyField-DI66uY_g.js → CopyField-DpT0Ngz1.js} +2 -2
- package/dist/{CopyField-DI66uY_g.js.map → CopyField-DpT0Ngz1.js.map} +1 -1
- package/dist/{DateInput-BPj2pzsn.js → DateInput-DiEd5uCL.js} +4 -4
- package/dist/{DateInput-BPj2pzsn.js.map → DateInput-DiEd5uCL.js.map} +1 -1
- package/dist/{DatePicker-DyEGuW9m.js → DatePicker-nA8YdE84.js} +2 -2
- package/dist/{DatePicker-DyEGuW9m.js.map → DatePicker-nA8YdE84.js.map} +1 -1
- package/dist/{DateRangeInput-u9DxNbHW.js → DateRangeInput-DPfVYchl.js} +4 -4
- package/dist/{DateRangeInput-u9DxNbHW.js.map → DateRangeInput-DPfVYchl.js.map} +1 -1
- package/dist/{DateRangePicker-CYYhX6S7.js → DateRangePicker-DjSUFjh4.js} +5 -5
- package/dist/{DateRangePicker-CYYhX6S7.js.map → DateRangePicker-DjSUFjh4.js.map} +1 -1
- package/dist/{DropdownMenu-DpMEcyCq.js → DropdownMenu-CASr-jgl.js} +2 -2
- package/dist/{DropdownMenu-DpMEcyCq.js.map → DropdownMenu-CASr-jgl.js.map} +1 -1
- package/dist/{FieldItem-qQKGU9lF.js → FieldItem-B7XMmZSz.js} +3 -3
- package/dist/{FieldItem-qQKGU9lF.js.map → FieldItem-B7XMmZSz.js.map} +1 -1
- package/dist/{FileUpload-C336MVnU.js → FileUpload-ABThVZyg.js} +2 -2
- package/dist/{FileUpload-C336MVnU.js.map → FileUpload-ABThVZyg.js.map} +1 -1
- package/dist/{Form-CTygENDc.js → Form-CsttTHn4.js} +8 -8
- package/dist/Form-CsttTHn4.js.map +1 -0
- package/dist/{FormGroup-BnwP0jNu.js → FormGroup-DHvTFdno.js} +3 -3
- package/dist/{FormGroup-BnwP0jNu.js.map → FormGroup-DHvTFdno.js.map} +1 -1
- package/dist/{FullScreenModal-j-M4aPFd.js → FullScreenModal-BvPuYibe.js} +3 -3
- package/dist/{FullScreenModal-j-M4aPFd.js.map → FullScreenModal-BvPuYibe.js.map} +1 -1
- package/dist/{HoverCard-yQq-O49c.js → HoverCard-B9ZMJxjn.js} +2 -2
- package/dist/{HoverCard-yQq-O49c.js.map → HoverCard-B9ZMJxjn.js.map} +1 -1
- package/dist/{InputGroup-D7zlmqPB.js → InputGroup-DcZRlVnN.js} +24 -16
- package/dist/InputGroup-DcZRlVnN.js.map +1 -0
- package/dist/{Kbd-D6LpR7G2.js → Kbd-Cvvt91Q8.js} +14 -4
- package/dist/Kbd-Cvvt91Q8.js.map +1 -0
- package/dist/MarkedText-DNGEUVWc.js +67 -0
- package/dist/MarkedText-DNGEUVWc.js.map +1 -0
- package/dist/{MermaidDiagram-JlvuGcY-.js → MermaidDiagram-CXG5tC6J.js} +19 -18
- package/dist/MermaidDiagram-CXG5tC6J.js.map +1 -0
- package/dist/{Modal-o4ATIexE.js → Modal-Coj-H02o.js} +16 -4
- package/dist/Modal-Coj-H02o.js.map +1 -0
- package/dist/{MultiActionButtonGroup-GTeFk-L8.js → MultiActionButtonGroup-DokHbPgM.js} +3 -3
- package/dist/{MultiActionButtonGroup-GTeFk-L8.js.map → MultiActionButtonGroup-DokHbPgM.js.map} +1 -1
- package/dist/{Navbar-CAQs4BZz.js → Navbar-Liy1TPI7.js} +7 -7
- package/dist/{Navbar-CAQs4BZz.js.map → Navbar-Liy1TPI7.js.map} +1 -1
- package/dist/PageHeader-Q3IpCnQd.js.map +1 -1
- package/dist/{PageToolbar-bG2YtSa3.js → PageToolbar-DExqEYGl.js} +4 -4
- package/dist/{PageToolbar-bG2YtSa3.js.map → PageToolbar-DExqEYGl.js.map} +1 -1
- package/dist/{Pagination-BB3X7ooY.js → Pagination-C_b7Xhey.js} +2 -2
- package/dist/{Pagination-BB3X7ooY.js.map → Pagination-C_b7Xhey.js.map} +1 -1
- package/dist/{Popconfirm-C2Ky5hJO.js → Popconfirm-5pBzT_HQ.js} +12 -13
- package/dist/{Popconfirm-C2Ky5hJO.js.map → Popconfirm-5pBzT_HQ.js.map} +1 -1
- package/dist/{Popover-DsbI2HKu.js → Popover-BEbQrC_P.js} +22 -19
- package/dist/Popover-BEbQrC_P.js.map +1 -0
- package/dist/{RadioGroup-BMxuZEbT.js → RadioGroup-DXPbSj8P.js} +3 -3
- package/dist/{RadioGroup-BMxuZEbT.js.map → RadioGroup-DXPbSj8P.js.map} +1 -1
- package/dist/{Search-DFeECt5D.js → Search-5uQAiNIP.js} +2 -2
- package/dist/{Search-DFeECt5D.js.map → Search-5uQAiNIP.js.map} +1 -1
- package/dist/{SearchInput-CCpdUego.js → SearchInput-D4UgAXJK.js} +3 -3
- package/dist/{SearchInput-CCpdUego.js.map → SearchInput-D4UgAXJK.js.map} +1 -1
- package/dist/{SectionNav-Bw_MVL0_.js → SectionNav-OkKCjSA-.js} +5 -5
- package/dist/{SectionNav-Bw_MVL0_.js.map → SectionNav-OkKCjSA-.js.map} +1 -1
- package/dist/{Select-D6IZVvwL.js → Select-DV3Hak_l.js} +31 -21
- package/dist/Select-DV3Hak_l.js.map +1 -0
- package/dist/{Sheet-BIzs2K2H.js → Sheet-Chf0kX1E.js} +3 -3
- package/dist/{Sheet-BIzs2K2H.js.map → Sheet-Chf0kX1E.js.map} +1 -1
- package/dist/{Sidebar-r1TW4g_b.js → Sidebar-D3cY1kha.js} +48 -22
- package/dist/Sidebar-D3cY1kha.js.map +1 -0
- package/dist/{Slider-CjxyfEty.js → Slider-CRf-bB4y.js} +3 -3
- package/dist/{Slider-CjxyfEty.js.map → Slider-CRf-bB4y.js.map} +1 -1
- package/dist/{Switch-BueTV03C.js → Switch-B0WdGSjz.js} +8 -8
- package/dist/{Switch-BueTV03C.js.map → Switch-B0WdGSjz.js.map} +1 -1
- package/dist/{Tabs-l72-WuhK.js → Tabs-eB974xJf.js} +2 -2
- package/dist/{Tabs-l72-WuhK.js.map → Tabs-eB974xJf.js.map} +1 -1
- package/dist/{TextInput-DhdRk8qm.js → TextInput-DH5SkbsE.js} +3 -3
- package/dist/{TextInput-DhdRk8qm.js.map → TextInput-DH5SkbsE.js.map} +1 -1
- package/dist/{ThemeProvider-DZfGdf1v.js → ThemeProvider-2RMdVGxO.js} +95 -15
- package/dist/ThemeProvider-2RMdVGxO.js.map +1 -0
- package/dist/{TimePicker-B6d2rAbX.js → TimePicker-BGeqc-Ed.js} +2 -2
- package/dist/{TimePicker-B6d2rAbX.js.map → TimePicker-BGeqc-Ed.js.map} +1 -1
- package/dist/{Timeline-6btyJl4D.js → Timeline-BG5Xogxh.js} +11 -11
- package/dist/{Timeline-6btyJl4D.js.map → Timeline-BG5Xogxh.js.map} +1 -1
- package/dist/{Toast-CxXUulYN.js → Toast-Dr6Uw7ao.js} +2 -2
- package/dist/{Toast-CxXUulYN.js.map → Toast-Dr6Uw7ao.js.map} +1 -1
- package/dist/{Workbench-BzE-Vvd9.js → Workbench-UR2FBC7I.js} +3 -1
- package/dist/Workbench-UR2FBC7I.js.map +1 -0
- package/dist/{ZoomableSvg-CNIzRHKH.js → ZoomableSvg-pooPb1Cu.js} +4 -4
- package/dist/{ZoomableSvg-CNIzRHKH.js.map → ZoomableSvg-pooPb1Cu.js.map} +1 -1
- package/dist/{context-BrNtMc1H.js → context-D7X470dy.js} +4 -3
- package/dist/context-D7X470dy.js.map +1 -0
- package/dist/{defaults-CTfvj2KB.js → defaults-i_xG2F_1.js} +2 -4
- package/dist/defaults-i_xG2F_1.js.map +1 -0
- package/dist/editors.js +5 -5
- package/dist/findLiteralMatches-BGBw8Vbl.js +62 -0
- package/dist/findLiteralMatches-BGBw8Vbl.js.map +1 -0
- package/dist/flint.js +134 -8
- package/dist/flint.js.map +1 -1
- package/dist/index.d.ts +1118 -566
- package/dist/index.js +64 -62
- package/dist/internal/blocks/AIKit.js +2 -2
- package/dist/internal/blocks/AppShell.js +1 -1
- package/dist/internal/blocks/AuthLayout.js +118 -0
- package/dist/internal/blocks/AuthLayout.js.map +1 -0
- package/dist/internal/blocks/BrandEditor.js +1 -1
- package/dist/internal/blocks/ChartPanel.js +1 -1
- package/dist/internal/blocks/ClipboardButton.js +1 -1
- package/dist/internal/blocks/ColorInput.js +1 -1
- package/dist/internal/blocks/ColorModeSwitch.js +1 -1
- package/dist/internal/blocks/Command.js +1 -1
- package/dist/internal/blocks/CopyField.js +1 -1
- package/dist/internal/blocks/DateInput.js +1 -1
- package/dist/internal/blocks/DateRangeInput.js +1 -1
- package/dist/internal/blocks/EmptyConfigurationActionCard.js +1 -1
- package/dist/internal/blocks/ErrorState.js +1 -1
- package/dist/internal/blocks/ExportMenu.js +5 -5
- package/dist/internal/blocks/ExportMenu.js.map +1 -1
- package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +1 -1
- package/dist/internal/blocks/Form.js +1 -1
- package/dist/internal/blocks/FormGroup.js +1 -1
- package/dist/internal/blocks/MultiActionButtonGroup.js +1 -1
- package/dist/internal/blocks/MultiCombobox.js +116 -54
- package/dist/internal/blocks/MultiCombobox.js.map +1 -1
- package/dist/internal/blocks/NumberInput.js +1 -1
- package/dist/internal/blocks/PageToolbar.js +1 -1
- package/dist/internal/blocks/PasswordInput.js +2 -2
- package/dist/internal/blocks/SearchInput.js +1 -1
- package/dist/internal/blocks/SearchInputWithNavigation.js +3 -3
- package/dist/internal/blocks/SectionNav.js +1 -1
- package/dist/internal/blocks/SplitButton.js +2 -2
- package/dist/internal/blocks/StatCard.js +1 -1
- package/dist/internal/blocks/TextInput.js +1 -1
- package/dist/internal/blocks/Textarea.js +1 -1
- package/dist/internal/blocks/TimeInput.js +3 -3
- package/dist/internal/components/Alert.js +1 -1
- package/dist/internal/components/AlertModal.js +1 -1
- package/dist/internal/components/Avatar.js +1 -1
- package/dist/internal/components/Badge.js +1 -1
- package/dist/internal/components/BrandLogo.js +1 -1
- package/dist/internal/components/Breadcrumb.js +1 -1
- package/dist/internal/components/Button.js +1 -1
- package/dist/internal/components/Card.js +1 -1
- package/dist/internal/components/Checkbox.js +1 -1
- package/dist/internal/components/Clipboard.js +1 -1
- package/dist/internal/components/CollapsiblePanel.js +1 -1
- package/dist/internal/components/Combobox.js +2 -2
- package/dist/internal/components/DatePicker.js +1 -1
- package/dist/internal/components/DateRangePicker.js +1 -1
- package/dist/internal/components/DropdownMenu.js +1 -1
- package/dist/internal/components/FileUpload.js +1 -1
- package/dist/internal/components/FullScreenModal.js +1 -1
- package/dist/internal/components/HoverCard.js +1 -1
- package/dist/internal/components/InputGroup.js +1 -1
- package/dist/internal/components/Kbd.js +1 -1
- package/dist/internal/components/MarkedText.js +1 -1
- package/dist/internal/components/Modal.js +1 -1
- package/dist/internal/components/Navbar.js +1 -1
- package/dist/internal/components/Pagination.js +1 -1
- package/dist/internal/components/Popconfirm.js +1 -1
- package/dist/internal/components/Popover.js +1 -1
- package/dist/internal/components/RadioGroup.js +1 -1
- package/dist/internal/components/Search.js +1 -1
- package/dist/internal/components/Select.js +1 -1
- package/dist/internal/components/Sheet.js +1 -1
- package/dist/internal/components/Sidebar.js +1 -1
- package/dist/internal/components/Slider.js +1 -1
- package/dist/internal/components/Switch.js +1 -1
- package/dist/internal/components/Tabs.js +1 -1
- package/dist/internal/components/ThemeProvider.js +4 -4
- package/dist/internal/components/TimePicker.js +1 -1
- package/dist/internal/components/Timeline.js +1 -1
- package/dist/internal/components/Toast.js +2 -2
- package/dist/internal/components/Toggle.js +3 -3
- package/dist/internal/components/Toggle.js.map +1 -1
- package/dist/internal/components/Tooltip.js +1 -1
- package/dist/internal/components/Truncated.js +1 -1
- package/dist/internal/components/Workbench.js +1 -1
- package/dist/internal/components/ZoomableSvg.js +1 -1
- package/dist/internal/utils.js +3 -3
- package/dist/markdown-editor.js +32 -26
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.js +1 -1
- package/dist/rjsf.js +24 -25
- package/dist/rjsf.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/testing.js +4 -4
- package/dist/testing.js.map +1 -1
- package/dist/{useColorSchemeState-BJEk6esG.js → themeScopeContext-D7fSyb06.js} +17 -4
- package/dist/themeScopeContext-D7fSyb06.js.map +1 -0
- package/dist/{themeTokens-7T1AFLhq.js → themeTokens-qP1-55O7.js} +38 -11
- package/dist/themeTokens-qP1-55O7.js.map +1 -0
- package/dist/{toast-BweSoKn3.js → toast-DIC0iNRf.js} +2 -2
- package/dist/{toast-BweSoKn3.js.map → toast-DIC0iNRf.js.map} +1 -1
- package/dist/{utils-B-g7d_Jb.js → utils-DSvrhU8E.js} +7 -3
- package/dist/{utils-B-g7d_Jb.js.map → utils-DSvrhU8E.js.map} +1 -1
- package/dist/vega.d.ts +1 -1
- package/dist/vega.js +3 -3
- package/dist/vega.js.map +1 -1
- package/dist/{vegaTheme-FBXgAdHK.js → vegaTheme-CSvFEMBl.js} +6 -6
- package/dist/vegaTheme-CSvFEMBl.js.map +1 -0
- package/package.json +12 -10
- package/src/styles.css +3 -0
- package/dist/AIKit-DaFT7p92.js.map +0 -1
- package/dist/Badge-Ch26CXoP.js.map +0 -1
- package/dist/BrandLogo-V2pRUAeO.js.map +0 -1
- package/dist/Button-CPsEQuTN.js.map +0 -1
- package/dist/CodeEditor-CUse8znx.js.map +0 -1
- package/dist/Combobox-CyoRA7oY.js.map +0 -1
- package/dist/Form-CTygENDc.js.map +0 -1
- package/dist/InputGroup-D7zlmqPB.js.map +0 -1
- package/dist/Kbd-D6LpR7G2.js.map +0 -1
- package/dist/MarkedText-Ckbft5mw.js +0 -44
- package/dist/MarkedText-Ckbft5mw.js.map +0 -1
- package/dist/MermaidDiagram-JlvuGcY-.js.map +0 -1
- package/dist/Modal-o4ATIexE.js.map +0 -1
- package/dist/Popover-DsbI2HKu.js.map +0 -1
- package/dist/Select-D6IZVvwL.js.map +0 -1
- package/dist/Sidebar-r1TW4g_b.js.map +0 -1
- package/dist/ThemeProvider-DZfGdf1v.js.map +0 -1
- package/dist/Workbench-BzE-Vvd9.js.map +0 -1
- package/dist/context-BrNtMc1H.js.map +0 -1
- package/dist/defaults-CTfvj2KB.js.map +0 -1
- package/dist/escapeStringRegexp-8MxP2knR.js +0 -6
- package/dist/escapeStringRegexp-8MxP2knR.js.map +0 -1
- package/dist/themeTokens-7T1AFLhq.js.map +0 -1
- package/dist/useColorSchemeState-BJEk6esG.js.map +0 -1
- package/dist/vegaTheme-FBXgAdHK.js.map +0 -1
package/COMPONENT-API.md
CHANGED
|
@@ -319,37 +319,44 @@ Source: `src/blocks/Form/connectors/MultiComboboxField.tsx`
|
|
|
319
319
|
|
|
320
320
|
> Several values from a searchable list — state is `string[]`, never objects, so the form value stays what gets submitted. Project labels with `itemToLabel`; add `allowCreate` for an enum the user may extend. Imported by name from `@keboola/design`, composed inside `form.AppField` — NOT reachable as `field.MultiComboboxField`.
|
|
321
321
|
|
|
322
|
-
| Prop
|
|
323
|
-
|
|
|
324
|
-
| `action`
|
|
325
|
-
| `allowClear`
|
|
326
|
-
| `allowCreate`
|
|
327
|
-
| `allowSelectAll`
|
|
328
|
-
| `aria-describedby`
|
|
329
|
-
| `
|
|
330
|
-
| `
|
|
331
|
-
| `
|
|
332
|
-
| `
|
|
333
|
-
| `
|
|
334
|
-
| `
|
|
335
|
-
| `
|
|
336
|
-
| `
|
|
337
|
-
| `
|
|
338
|
-
| `
|
|
339
|
-
| `
|
|
340
|
-
| `
|
|
341
|
-
| `
|
|
342
|
-
| `
|
|
343
|
-
| `
|
|
344
|
-
| `
|
|
345
|
-
| `
|
|
346
|
-
| `
|
|
347
|
-
| `
|
|
348
|
-
| `
|
|
349
|
-
| `
|
|
350
|
-
| `
|
|
351
|
-
| `
|
|
352
|
-
| `
|
|
322
|
+
| Prop | Type | Required | Default | Description |
|
|
323
|
+
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
324
|
+
| `action` | `ReactNode` | no | — | Optional node rendered at the trailing edge of the label row (opposite the label) — e.g. a "Forgot password?" link beside a Password label. Presentational placement only; it is a sibling of the `<Label>`, not part of the field's accessible name. Provide an interactive element (`ButtonInline` / `Link`). |
|
|
325
|
+
| `allowClear` | `boolean` | no | — | Offer a clear-all button once something is selected. Defaults to **`true`**. - `BaseCombobox.Clear` only mounts while chips exist, so an empty control renders identically either way. Individual chips stay removable regardless. - Pass `false` where emptying the whole selection must not be one click away. |
|
|
326
|
+
| `allowCreate` | `boolean` | no | — | |
|
|
327
|
+
| `allowSelectAll` | `boolean` | no | — | Adds a "Select All" row that selects the whole item set. - The row is hidden while a query narrows the list — it never means "everything matching". - Selecting it while everything is already selected clears the selection. |
|
|
328
|
+
| `aria-describedby` | `string` | no | — | |
|
|
329
|
+
| `canCreate` | `((query: string) => boolean)` | no | — | Gate on each value the entry stands for, for `allowCreate`. - Returning `false` drops that value, so an entry left with none hides the create row and the empty state shows instead. - Only called for a value that matches no item and nothing already selected — one naming an item is selected rather than minted, so its format is not this gate's business. - Reach for it when a free-form value has a format (a column name, an email address). |
|
|
330
|
+
| `className` | `string` | no | — | |
|
|
331
|
+
| `createSeparator` | `string \| RegExp \| null` | no | — | Separator that makes one creatable entry stand for several values. Defaults to **`','`**, so pasting `id1, id2, id3` adds three chips. - Pass a string or a non-capturing `RegExp` for another convention: `';'` for an Outlook address list, `/[\s,]+/` where a value can never contain a space. A capture group would be handed back as a value of its own — that is `String.prototype.split`'s own behaviour. - Pass `null` where a value legitimately contains the separator — a free-text label, a sentence — and one entry must stay one chip. - Whitespace is deliberately not part of the default: tags and column names contain spaces, and each part is trimmed anyway, so `id1, id2` needs nothing more than the comma. |
|
|
332
|
+
| `empty` | `ReactNode` | no | — | |
|
|
333
|
+
| `focusVariant` | `"off" \| "on" \| "default" \| null` | no | — | |
|
|
334
|
+
| `groupToLabel` | `((group: Group<string>) => ReactNode)` | no | — | |
|
|
335
|
+
| `help` | `ReactNode` | no | — | |
|
|
336
|
+
| `indicator` | `Indicator` | no | — | |
|
|
337
|
+
| `inputClassName` | `string` | no | — | |
|
|
338
|
+
| `inputValueSanitizer` | `((input: string) => string)` | no | — | Rewrites what the user types before the control adopts it. - The query the list filters by is the rewritten text, and so is every value a created entry is split into — a character the user cannot type is one they cannot create. - Reach for it where a created value has a character set: a column name, a scope, an identifier. `canCreate` is the gate for a format the user must get right themselves. - It has to rewrite rather than drop: it sees the whole text on every keystroke, so one calling `trim()` swallows the space before the next word. |
|
|
339
|
+
| `isItemEqualToValue` | `((itemValue: string, value: string) => boolean)` | no | — | Custom comparison logic used to determine if a combobox item value matches the current selected value. Useful when item values are objects without matching referentially. Defaults to `Object.is` comparison. |
|
|
340
|
+
| `items` | `readonly (string \| Group<string>)[]` | no | — | |
|
|
341
|
+
| `itemToChipColor` | `((item: string) => "gray" \| "gray-darker" \| "gray-inverse" \| "green" \| "green-darker" \| "green-inverse" \| "blue" \| "blue-inverse" \| "red" \| "orange" \| "orange-inverse" \| "amber" \| ... 9 more ...)` | no | — | |
|
|
342
|
+
| `itemToChipLabel` | `((item: string) => ReactNode)` | no | — | |
|
|
343
|
+
| `itemToDisabled` | `((item: string) => boolean)` | no | — | |
|
|
344
|
+
| `itemToIcon` | `((item: string) => ReactNode)` | no | — | |
|
|
345
|
+
| `itemToLabel` | `((item: string) => ReactNode)` | no | — | The item's row in the list, and its chip unless `itemToChipLabel` overrides it. - Defaults to `itemToStringLabel`, so a control that projects its items — ids carrying the selection, the label looked up beside them — states the projection once. - Pass it separately only where the row is richer than the input's own text. |
|
|
346
|
+
| `itemToStringLabel` | `((itemValue: string) => string)` | no | — | When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for display in the input. If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop. |
|
|
347
|
+
| `itemToStringValue` | `((itemValue: string) => string)` | no | — | When the item values are objects (`<Combobox.Item value={object}>`), this function converts the object value to a string representation for form submission. If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop. |
|
|
348
|
+
| `label` | `ReactNode` | no | — | |
|
|
349
|
+
| `maxVisible` | `number` | no | — | |
|
|
350
|
+
| `onQueryChange` | `((query: string) => void)` | no | — | Reports the query the list filters by, `inputValueSanitizer` already applied. - For an owner that needs the query for itself: a server-side search, an option order, the text a synthetic row is offered for. The mount render reports too, so a search driven by this needs no first fetch of its own. - Notification only, and deliberately not Base UI's own `onInputValueChange`: the control keeps ownership of the text — a pick clears it — so there is no controlled `inputValue` to hold in sync. |
|
|
351
|
+
| `pinnedChipLabels` | `ReactNode[]` | no | — | Labels for chips the control shows but the user does not own — a pinned set the caller keeps. - Each label gets a chip of its own, ahead of the values and outside the `maxVisible` slice. - No remove button, and no entry in `value` — there is nothing for a removal to report. |
|
|
352
|
+
| `queryToCreateLabel` | `((query: string) => ReactNode)` | no | — | Words the create row. Receives the values committing the row will add — an entry standing for several values arrives trimmed and re-joined with its own separator, not as typed. |
|
|
353
|
+
| `queryToCreateValue` | `((query: string) => string)` | no | — | Projects one entered string into an item. Called once per value, so a split entry calls it several times, each with an already-trimmed part. |
|
|
354
|
+
| `renderChips` | `((values: string[]) => ReactNode)` | no | — | Renders the chip area from the selected values, in place of the default chips. - For the case no per-value accessor can express: one node standing for the whole selection ("3 tables selected"), or a chip count that is not the value count. - A chip that merely holds richer content — a link, an action of its own — needs no slot: `itemToChipLabel` returns a `ReactNode` and the chip lets it take the keyboard. - The chip props above go unused while this is set, `maxVisible` and its `+N` chip included. - `Combobox.Chip` builds a removable chip. |
|
|
355
|
+
| `required` | `boolean` | no | — | |
|
|
356
|
+
| `requiredMark` | `RequiredMark` | no | — | Which marker to show beside the label — gated by `required` so it never lies: `'required'` renders `*` only when the field is `required`; `'optional'` renders `(optional)` only when it is not; `'hidden'` renders neither. Defaults to `'required'`. |
|
|
357
|
+
| `sizing` | `"small" \| "medium" \| "default" \| null` | no | — | |
|
|
358
|
+
| `tooltip` | `ReactNode` | no | — | |
|
|
359
|
+
| `variant` | `"primary" \| "secondary" \| null` | no | — | |
|
|
353
360
|
|
|
354
361
|
### `field.CheckboxField`
|
|
355
362
|
|
|
@@ -472,10 +479,11 @@ Source: `src/components/BrandLogo/BrandLogo.tsx`
|
|
|
472
479
|
|
|
473
480
|
> Renders the active brand's logo from the nearest `<ThemeProvider>`. `variant` is `wordmark` (default) | `mark`; each falls back to the other and light↔dark. Inline SVG (a `currentColor` mark inherits text colour) or `<img>` per source. Size via `className` height. `Sidebar.Header` / `Navbar.Header` render it by default when given no children.
|
|
474
481
|
|
|
475
|
-
| Prop | Type | Required | Default | Description
|
|
476
|
-
| ----------- | ---------------------- | -------- | ---------- |
|
|
477
|
-
| `className` | `string` | no | — | Sets the logo height; aspect ratio is preserved (e.g. `tw:h-7`).
|
|
478
|
-
| `
|
|
482
|
+
| Prop | Type | Required | Default | Description |
|
|
483
|
+
| ----------- | ---------------------- | -------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
484
|
+
| `className` | `string` | no | — | Sets the logo height; aspect ratio is preserved (e.g. `tw:h-7`). |
|
|
485
|
+
| `label` | `string` | no | — | The logo's accessible name. - Defaults to the brand's `name`, which is registry metadata: it labels the brand's row in a picker, so it carries whatever disambiguates it there (`Keboola (V2)`). - Pass the product's own name wherever the logo is what names something to a screen reader — a link around it most of all, which otherwise announces that suffix. |
|
|
486
|
+
| `variant` | `"mark" \| "wordmark"` | no | `wordmark` | `wordmark` (default, full logo) or `mark` (square icon); each falls back to the other. |
|
|
479
487
|
|
|
480
488
|
## Layout & shell
|
|
481
489
|
|
|
@@ -499,6 +507,19 @@ Source: `src/blocks/PageLayout/PageLayout.tsx`
|
|
|
499
507
|
| ---------- | ------------------------------------------- | -------- | ------- | ----------- |
|
|
500
508
|
| `maxWidth` | `"default" \| "full" \| "narrow" \| "wide"` | no | `full` | |
|
|
501
509
|
|
|
510
|
+
### `AuthLayout`
|
|
511
|
+
|
|
512
|
+
Source: `src/blocks/AuthLayout/AuthLayout.tsx`
|
|
513
|
+
|
|
514
|
+
> Compound signed-out page frame — sign-in, sign-up, password reset, MFA, project picker. Subcomponents: `AuthLayout.Header` (a `header`; pairs the active brand mark with the `productName` it is given unless children replace the lockup, and takes `actions` for theme / strategy controls), `AuthLayout.Content` (the `main` form column), `AuthLayout.Footer` (a `footer`). `width` is `form` (28rem) | `wide` (34rem). Pass `aside` (plus `asideSide`) for the split geometry: the form column becomes `bg-background` and the panel `bg-muted`; without one the page is `bg-muted` and the call site supplies the `Card`. Below `lg` the split collapses to one column and the panel is dropped — `asideCollapse='stack'` stacks it above or below the form instead, for a page whose pitch has to survive a phone. Deliberately does **not** own the card — two of the pages it frames have none. Native `<div>` attributes.
|
|
515
|
+
|
|
516
|
+
| Prop | Type | Required | Default | Description |
|
|
517
|
+
| --------------- | ------------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
518
|
+
| `aside` | `ReactNode` | no | — | Marketing / illustration panel. Its presence switches the page to the split geometry. |
|
|
519
|
+
| `asideCollapse` | `"hide" \| "stack"` | no | `hide` | What the `aside` does below `lg`, where the split collapses to one column. - `hide` (default) — the panel is dropped. Right for a page a signed-out _user_ asked for: they came to sign in, and the pitch is not why they are here. - `stack` — the panel keeps its `asideSide` order relative to the form and renders above or below it. Right for a page that has to sell: an acquisition funnel loses its social proof otherwise, on the devices most of it arrives on. |
|
|
520
|
+
| `asideSide` | `"start" \| "end"` | no | `end` | Which side the `aside` takes on wide screens. |
|
|
521
|
+
| `width` | `Width` | no | `form` | |
|
|
522
|
+
|
|
502
523
|
### `PageHeader.Index`
|
|
503
524
|
|
|
504
525
|
Source: `src/blocks/PageHeader/PageHeaderIndex.tsx`
|
|
@@ -523,10 +544,10 @@ Source: `src/blocks/PageHeader/PageHeaderDetail.tsx`
|
|
|
523
544
|
|
|
524
545
|
| Prop | Type | Required | Default | Description |
|
|
525
546
|
| ---------------------- | ----------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
526
|
-
| `breadcrumbs` | `ReactNode` | yes | — | `Breadcrumb` chain
|
|
547
|
+
| `breadcrumbs` | `ReactNode` | yes | — | `Breadcrumb` chain to the entity's parent list / hierarchy. Required. Never repeat the entity's own name as a final, non-link item — it's already the `title` below. |
|
|
527
548
|
| `title` | `ReactNode` | yes | — | |
|
|
528
549
|
| `badges` | `ReactNode` | no | — | Inline `Badge`s rendered next to the title (status, environment, version). Always rendered as pills. |
|
|
529
|
-
| `compact` | `boolean` | no | `false` | Compact title mode: renders a smaller title
|
|
550
|
+
| `compact` | `boolean` | no | `false` | Compact title mode: renders a smaller title for information-dense pages. Default `false`. |
|
|
530
551
|
| `description` | `ReactNode` | no | — | |
|
|
531
552
|
| `fullWidthDescription` | `boolean` | no | `false` | Opt into the responsive layout: the description spans its own full-width row below the title/actions row instead of sharing the title column. Defaults to `false` (description sits inside the title column). Enabled per the `sidebar-navigation` feature in kbc-ui; leaving it off keeps existing consumers byte-identical. |
|
|
532
553
|
| `headerNav` | `ReactNode` | no | — | Optional `Tabs` row below the title block. |
|
|
@@ -543,15 +564,16 @@ Source: `src/components/Sidebar/Sidebar.tsx`
|
|
|
543
564
|
|
|
544
565
|
> App-shell left navigation rail (host inside `AppShell.Sidebar`). Compound: `Sidebar.Header`, `Sidebar.Content`, `Sidebar.Footer`, `Sidebar.Menu`, `Sidebar.Group`, `Sidebar.SearchInput` (concrete `<input>`, no `asChild`).
|
|
545
566
|
|
|
546
|
-
| Prop
|
|
547
|
-
|
|
|
548
|
-
| `className`
|
|
549
|
-
| `container`
|
|
550
|
-
| `id`
|
|
551
|
-
| `keepMounted`
|
|
552
|
-
| `
|
|
553
|
-
| `
|
|
554
|
-
| `
|
|
567
|
+
| Prop | Type | Required | Default | Description |
|
|
568
|
+
| ----------------- | --------------- | -------- | ------- | --------------------------------------------------------------- |
|
|
569
|
+
| `className` | `string` | no | — | |
|
|
570
|
+
| `container` | `boolean` | no | `false` | |
|
|
571
|
+
| `id` | `string` | no | — | |
|
|
572
|
+
| `keepMounted` | `boolean` | no | — | |
|
|
573
|
+
| `mountAfterEnter` | `boolean` | no | — | Hold the panel's content back until it has finished sliding in. |
|
|
574
|
+
| `resizable` | `boolean` | no | `false` | |
|
|
575
|
+
| `side` | `SidebarSide` | no | `left` | |
|
|
576
|
+
| `style` | `CSSProperties` | no | — | |
|
|
555
577
|
|
|
556
578
|
### `SectionNav`
|
|
557
579
|
|