@keboola/design 14.0.0 → 15.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.
- package/AGENTS.md +11 -23
- package/CHANGELOG.md +33 -0
- package/COMPONENT-API.md +109 -115
- package/dist/{AIKit-BRSZ3nY7.js → AIKit-CaAW4GLx.js} +13 -18
- package/dist/AIKit-CaAW4GLx.js.map +1 -0
- package/dist/{Alert-CZ0dDsuk.js → Alert-Chz6KZ7e.js} +11 -20
- package/dist/Alert-Chz6KZ7e.js.map +1 -0
- package/dist/{AlertModal-BDle9ZVQ.js → AlertModal-D4AtpvLS.js} +15 -35
- package/dist/AlertModal-D4AtpvLS.js.map +1 -0
- package/dist/{AppShell-B03fj1j7.js → AppShell-C8V1KRr_.js} +2 -2
- package/dist/{AppShell-B03fj1j7.js.map → AppShell-C8V1KRr_.js.map} +1 -1
- package/dist/{AutoSaveTextarea-jiqNeeE4.js → AutoSaveTextarea-BbMhC5Aq.js} +3 -3
- package/dist/AutoSaveTextarea-BbMhC5Aq.js.map +1 -0
- package/dist/{Badge-Ba3epgcI.js → Badge-5GHIsgRS.js} +14 -3
- package/dist/Badge-5GHIsgRS.js.map +1 -0
- package/dist/{BrandEditor-CN2HJ_12.js → BrandEditor-CTGtQUFZ.js} +7 -9
- package/dist/BrandEditor-CTGtQUFZ.js.map +1 -0
- package/dist/{BrandLogo-BfITD0im.js → BrandLogo-DkESE19K.js} +2 -2
- package/dist/{BrandLogo-BfITD0im.js.map → BrandLogo-DkESE19K.js.map} +1 -1
- package/dist/{Breadcrumb-BnIlsoIH.js → Breadcrumb-B2YSNON4.js} +4 -4
- package/dist/{Breadcrumb-BnIlsoIH.js.map → Breadcrumb-B2YSNON4.js.map} +1 -1
- package/dist/{Button-D2JqBAq7.js → Button-BNkyYU8u.js} +9 -185
- package/dist/Button-BNkyYU8u.js.map +1 -0
- package/dist/{Card-Bpc_ZlL4.js → Card-DxjGiqH8.js} +11 -18
- package/dist/Card-DxjGiqH8.js.map +1 -0
- package/dist/{Checkbox-uFE8XLT_.js → Checkbox-CHDDJyAA.js} +20 -45
- package/dist/Checkbox-CHDDJyAA.js.map +1 -0
- package/dist/{Clipboard-D-9XOqy4.js → Clipboard-DlwVZS1P.js} +2 -2
- package/dist/{Clipboard-D-9XOqy4.js.map → Clipboard-DlwVZS1P.js.map} +1 -1
- package/dist/{ClipboardButton-DxvZG_H0.js → ClipboardButton-B1Hr_n_Z.js} +3 -3
- package/dist/{ClipboardButton-DxvZG_H0.js.map → ClipboardButton-B1Hr_n_Z.js.map} +1 -1
- package/dist/{CodeEditor-BfRSCKEs.js → CodeEditor-DVSPdfdo.js} +24 -31
- package/dist/CodeEditor-DVSPdfdo.js.map +1 -0
- package/dist/{ColorInput-CDKH8q_f.js → ColorInput-B_eZIu39.js} +5 -7
- package/dist/ColorInput-B_eZIu39.js.map +1 -0
- package/dist/{ColorModeSwitch-DR6J2U6M.js → ColorModeSwitch-B6UEzG0H.js} +3 -3
- package/dist/{ColorModeSwitch-DR6J2U6M.js.map → ColorModeSwitch-B6UEzG0H.js.map} +1 -1
- package/dist/{Combobox-CEesMe2M.js → Combobox-CaKqgstG.js} +15 -23
- package/dist/Combobox-CaKqgstG.js.map +1 -0
- package/dist/{Command-T3MLRaen.js → Command-DhXmqFLT.js} +46 -32
- package/dist/Command-DhXmqFLT.js.map +1 -0
- package/dist/{CopyField-CNbCHw9a.js → CopyField-D0Pg4Z0R.js} +2 -2
- package/dist/{CopyField-CNbCHw9a.js.map → CopyField-D0Pg4Z0R.js.map} +1 -1
- package/dist/{DateInput-ClK1lCxz.js → DateInput-BgbMDJkm.js} +5 -7
- package/dist/DateInput-BgbMDJkm.js.map +1 -0
- package/dist/{DatePicker-CgHAu9KX.js → DatePicker-BXpDRo-R.js} +2 -2
- package/dist/{DatePicker-CgHAu9KX.js.map → DatePicker-BXpDRo-R.js.map} +1 -1
- package/dist/{DateRangeInput-DtlAffS1.js → DateRangeInput-BW0-_jV0.js} +5 -7
- package/dist/DateRangeInput-BW0-_jV0.js.map +1 -0
- package/dist/{DateRangePicker-CXpXPMoh.js → DateRangePicker-C4-DoWac.js} +7 -12
- package/dist/DateRangePicker-C4-DoWac.js.map +1 -0
- package/dist/{DropdownMenu-B1gGvZoh.js → DropdownMenu-CcVbZ_5u.js} +35 -64
- package/dist/DropdownMenu-CcVbZ_5u.js.map +1 -0
- package/dist/{FieldItem-CYvJyjiI.js → FieldItem-BHUqgSO1.js} +3 -3
- package/dist/{FieldItem-CYvJyjiI.js.map → FieldItem-BHUqgSO1.js.map} +1 -1
- package/dist/{FileUpload-D6vPG3WB.js → FileUpload-BYFONpEl.js} +3 -3
- package/dist/FileUpload-BYFONpEl.js.map +1 -0
- package/dist/{Form-CD55zJiy.js → Form-CAofWyMI.js} +8 -8
- package/dist/{Form-CD55zJiy.js.map → Form-CAofWyMI.js.map} +1 -1
- package/dist/{FormGroup-DiYFdEhH.js → FormGroup-V5kIgQRN.js} +3 -3
- package/dist/{FormGroup-DiYFdEhH.js.map → FormGroup-V5kIgQRN.js.map} +1 -1
- package/dist/{FullScreenModal-CUuAakh3.js → FullScreenModal-DAvvlGOz.js} +2 -5
- package/dist/FullScreenModal-DAvvlGOz.js.map +1 -0
- package/dist/HoverCard-Cv5rmvJq.js +26 -0
- package/dist/HoverCard-Cv5rmvJq.js.map +1 -0
- package/dist/{InlineEdit-D5RdunZo.js → InlineEdit-D4P0SvCB.js} +5 -9
- package/dist/InlineEdit-D4P0SvCB.js.map +1 -0
- package/dist/{InputGroup-Dm014ruw.js → InputGroup-CZv_7QlM.js} +39 -146
- package/dist/InputGroup-CZv_7QlM.js.map +1 -0
- package/dist/{Kbd-3YM7NQO4.js → Kbd-CflKthfu.js} +5 -14
- package/dist/Kbd-CflKthfu.js.map +1 -0
- package/dist/{MermaidDiagram-CeiOkI60.js → MermaidDiagram-Te-5gOCU.js} +4 -4
- package/dist/{MermaidDiagram-CeiOkI60.js.map → MermaidDiagram-Te-5gOCU.js.map} +1 -1
- package/dist/{Modal-DMZRswk4.js → Modal-CbUz-5YH.js} +17 -36
- package/dist/Modal-CbUz-5YH.js.map +1 -0
- package/dist/{ModalTitle-CTECVgL8.js → ModalTitle-cy0Ht9VY.js} +2 -2
- package/dist/{ModalTitle-CTECVgL8.js.map → ModalTitle-cy0Ht9VY.js.map} +1 -1
- package/dist/{MultiActionButtonGroup-CEv_txvz.js → MultiActionButtonGroup-Dzig87s1.js} +3 -3
- package/dist/{MultiActionButtonGroup-CEv_txvz.js.map → MultiActionButtonGroup-Dzig87s1.js.map} +1 -1
- package/dist/{Navbar-CtVYcRFn.js → Navbar-DHUS7XiU.js} +2 -2
- package/dist/{Navbar-CtVYcRFn.js.map → Navbar-DHUS7XiU.js.map} +1 -1
- package/dist/OtpInput-CY8yCaJk.js.map +1 -1
- package/dist/{PageToolbar-B_e7HGva.js → PageToolbar-DJ5tdYla.js} +4 -4
- package/dist/{PageToolbar-B_e7HGva.js.map → PageToolbar-DJ5tdYla.js.map} +1 -1
- package/dist/{Pagination-DDp6PRqf.js → Pagination-D27x5KmH.js} +2 -2
- package/dist/{Pagination-DDp6PRqf.js.map → Pagination-D27x5KmH.js.map} +1 -1
- package/dist/{Popconfirm-BgV6a0sl.js → Popconfirm-DwLCYNaF.js} +3 -3
- package/dist/{Popconfirm-BgV6a0sl.js.map → Popconfirm-DwLCYNaF.js.map} +1 -1
- package/dist/{Popover-BU7nGOv-.js → Popover-DtUDwUVO.js} +24 -37
- package/dist/Popover-DtUDwUVO.js.map +1 -0
- package/dist/{RadioGroup-C8EC3fqO.js → RadioGroup-B0TwHjBb.js} +9 -13
- package/dist/RadioGroup-B0TwHjBb.js.map +1 -0
- package/dist/{Search-aaUMI4ix.js → Search-vyZwGKMU.js} +3 -3
- package/dist/{Search-aaUMI4ix.js.map → Search-vyZwGKMU.js.map} +1 -1
- package/dist/{SearchInput-Dxi2GK4n.js → SearchInput-DyYXyw3u.js} +4 -6
- package/dist/SearchInput-DyYXyw3u.js.map +1 -0
- package/dist/{SectionNav-BnHOMLtE.js → SectionNav-tLK3iF6c.js} +5 -5
- package/dist/{SectionNav-BnHOMLtE.js.map → SectionNav-tLK3iF6c.js.map} +1 -1
- package/dist/{Select-CjQgU_6K.js → Select-B22hB_-w.js} +11 -25
- package/dist/Select-B22hB_-w.js.map +1 -0
- package/dist/{Sheet-utw4_rUa.js → Sheet-0TWKTqid.js} +12 -15
- package/dist/Sheet-0TWKTqid.js.map +1 -0
- package/dist/{Sidebar-BAmux2Uj.js → Sidebar-C5hdANBU.js} +11 -11
- package/dist/Sidebar-C5hdANBU.js.map +1 -0
- package/dist/{Slider-DbzzSDRV.js → Slider-DrcsM8_G.js} +4 -4
- package/dist/Slider-DrcsM8_G.js.map +1 -0
- package/dist/{Stepper-BBPembeK.js → Stepper-CQrUPVFL.js} +2 -2
- package/dist/Stepper-CQrUPVFL.js.map +1 -0
- package/dist/Switch-DccpSpzC.js +66 -0
- package/dist/Switch-DccpSpzC.js.map +1 -0
- package/dist/{Tabs-C0uvkPHc.js → Tabs-Ck4uWf8U.js} +2 -2
- package/dist/{Tabs-C0uvkPHc.js.map → Tabs-Ck4uWf8U.js.map} +1 -1
- package/dist/{TextInput-K2DSDs5O.js → TextInput-CR0_USaY.js} +4 -7
- package/dist/TextInput-CR0_USaY.js.map +1 -0
- package/dist/{ThemeProvider-C8yaKlM1.js → ThemeProvider-BTK7AL-T.js} +21 -8
- package/dist/ThemeProvider-BTK7AL-T.js.map +1 -0
- package/dist/{TimePicker-DyyV3nw8.js → TimePicker-CoRpiEM3.js} +2 -2
- package/dist/{TimePicker-DyyV3nw8.js.map → TimePicker-CoRpiEM3.js.map} +1 -1
- package/dist/{Toast-BGnUL4jV.js → Toast-937n7n8i.js} +2 -2
- package/dist/{Toast-BGnUL4jV.js.map → Toast-937n7n8i.js.map} +1 -1
- package/dist/{ToggleAllTooltip-Dlmq-yqS.js → ToggleAllTooltip-DEjbWFoj.js} +2 -2
- package/dist/{ToggleAllTooltip-Dlmq-yqS.js.map → ToggleAllTooltip-DEjbWFoj.js.map} +1 -1
- package/dist/{ZoomableSvg-Dh1OstPN.js → ZoomableSvg-DnFXo2L4.js} +4 -4
- package/dist/{ZoomableSvg-Dh1OstPN.js.map → ZoomableSvg-DnFXo2L4.js.map} +1 -1
- package/dist/editors.js +4 -4
- package/dist/flint.js +4 -4
- package/dist/index.d.ts +72 -118
- package/dist/index.js +60 -61
- package/dist/internal/blocks/AIKit.js +1 -1
- package/dist/internal/blocks/AppShell.js +1 -1
- package/dist/internal/blocks/AuthLayout.js +1 -1
- package/dist/internal/blocks/AutoSaveTextarea.js +1 -1
- package/dist/internal/blocks/BrandEditor.js +1 -1
- package/dist/internal/blocks/ChartPanel.js +1 -1
- package/dist/internal/blocks/ChipEditor.js +5 -9
- package/dist/internal/blocks/ChipEditor.js.map +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 +18 -29
- package/dist/internal/blocks/ErrorState.js.map +1 -1
- package/dist/internal/blocks/ExportMenu.js +3 -3
- package/dist/internal/blocks/ExportMenu.js.map +1 -1
- package/dist/internal/blocks/Form/connectors/ComboboxField.js +2 -2
- 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/InlineEdit.js +1 -1
- package/dist/internal/blocks/MultiActionButtonGroup.js +1 -1
- package/dist/internal/blocks/MultiCombobox.js +5 -9
- package/dist/internal/blocks/MultiCombobox.js.map +1 -1
- package/dist/internal/blocks/NumberInput.js +2 -4
- package/dist/internal/blocks/NumberInput.js.map +1 -1
- package/dist/internal/blocks/PageToolbar.js +1 -1
- package/dist/internal/blocks/PasswordInput.js +3 -5
- package/dist/internal/blocks/PasswordInput.js.map +1 -1
- package/dist/internal/blocks/SearchInput.js +1 -1
- package/dist/internal/blocks/SearchInputWithNavigation.js +6 -7
- package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -1
- 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 +3 -8
- package/dist/internal/blocks/Textarea.js.map +1 -1
- package/dist/internal/blocks/TimeInput.js +4 -6
- package/dist/internal/blocks/TimeInput.js.map +1 -1
- 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 +2 -2
- package/dist/internal/components/ButtonGroup.js +1 -1
- package/dist/internal/components/ButtonGroup.js.map +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 +1 -1
- 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/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/Skeleton/Skeleton.js +1 -1
- package/dist/internal/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/internal/components/Slider.js +1 -1
- package/dist/internal/components/Stepper.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 +3 -4
- package/dist/internal/components/TimePicker.js +1 -1
- package/dist/internal/components/Toast.js +2 -2
- package/dist/internal/components/Toggle.js +13 -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/ZoomableSvg.js +1 -1
- package/dist/internal/utils.js +1 -1
- package/dist/markdown-editor.js +16 -18
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.js +1 -1
- package/dist/rjsf.js +33 -42
- package/dist/rjsf.js.map +1 -1
- package/dist/styles-DxazJ8Mz.js +81 -0
- package/dist/styles-DxazJ8Mz.js.map +1 -0
- package/dist/styles-T8xwr0sR.js +73 -0
- package/dist/styles-T8xwr0sR.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/testing.d.ts +0 -2
- package/dist/testing.js +3 -10
- package/dist/testing.js.map +1 -1
- package/dist/{useColorSchemeState-Cw4MCXUs.js → themeScopeContext-CEVXbYvZ.js} +43 -15
- package/dist/themeScopeContext-CEVXbYvZ.js.map +1 -0
- package/dist/{useThemeAttributes-B199Regy.js → themeTokens-DCeb62ap.js} +22 -4
- package/dist/themeTokens-DCeb62ap.js.map +1 -0
- package/dist/{toast-D6Z6MOB5.js → toast-Y3cTMBW8.js} +7 -10
- package/dist/toast-Y3cTMBW8.js.map +1 -0
- package/dist/{utils-LQ4jJA-9.js → utils-DwC9u0tM.js} +26 -52
- package/dist/utils-DwC9u0tM.js.map +1 -0
- package/dist/vega.js +2 -2
- package/dist/{vegaTheme-BrmVoPEz.js → vegaTheme-ISwGXvof.js} +2 -2
- package/dist/{vegaTheme-BrmVoPEz.js.map → vegaTheme-ISwGXvof.js.map} +1 -1
- package/dist/{vegaTokens-Ce07C0DH.js → vegaTokens-DCkvpIVE.js} +2 -2
- package/dist/{vegaTokens-Ce07C0DH.js.map → vegaTokens-DCkvpIVE.js.map} +1 -1
- package/package.json +2 -2
- package/src/styles.css +0 -35
- package/src/theme.css +42 -0
- package/dist/AIKit-BRSZ3nY7.js.map +0 -1
- package/dist/Alert-CZ0dDsuk.js.map +0 -1
- package/dist/AlertModal-BDle9ZVQ.js.map +0 -1
- package/dist/AutoSaveTextarea-jiqNeeE4.js.map +0 -1
- package/dist/Badge-Ba3epgcI.js.map +0 -1
- package/dist/BrandEditor-CN2HJ_12.js.map +0 -1
- package/dist/Button-D2JqBAq7.js.map +0 -1
- package/dist/Card-Bpc_ZlL4.js.map +0 -1
- package/dist/Checkbox-uFE8XLT_.js.map +0 -1
- package/dist/CodeEditor-BfRSCKEs.js.map +0 -1
- package/dist/ColorInput-CDKH8q_f.js.map +0 -1
- package/dist/Combobox-CEesMe2M.js.map +0 -1
- package/dist/Command-T3MLRaen.js.map +0 -1
- package/dist/DateInput-ClK1lCxz.js.map +0 -1
- package/dist/DateRangeInput-DtlAffS1.js.map +0 -1
- package/dist/DateRangePicker-CXpXPMoh.js.map +0 -1
- package/dist/DropdownMenu-B1gGvZoh.js.map +0 -1
- package/dist/FileUpload-D6vPG3WB.js.map +0 -1
- package/dist/FullScreenModal-CUuAakh3.js.map +0 -1
- package/dist/HoverCard-BBdPYqEf.js +0 -31
- package/dist/HoverCard-BBdPYqEf.js.map +0 -1
- package/dist/InlineEdit-D5RdunZo.js.map +0 -1
- package/dist/InputGroup-Dm014ruw.js.map +0 -1
- package/dist/Kbd-3YM7NQO4.js.map +0 -1
- package/dist/Modal-DMZRswk4.js.map +0 -1
- package/dist/Popover-BU7nGOv-.js.map +0 -1
- package/dist/RadioGroup-C8EC3fqO.js.map +0 -1
- package/dist/SearchInput-Dxi2GK4n.js.map +0 -1
- package/dist/Select-CjQgU_6K.js.map +0 -1
- package/dist/Sheet-utw4_rUa.js.map +0 -1
- package/dist/Sidebar-BAmux2Uj.js.map +0 -1
- package/dist/Slider-DbzzSDRV.js.map +0 -1
- package/dist/Stepper-BBPembeK.js.map +0 -1
- package/dist/Switch-Dw4tvQls.js +0 -201
- package/dist/Switch-Dw4tvQls.js.map +0 -1
- package/dist/TextInput-K2DSDs5O.js.map +0 -1
- package/dist/ThemeProvider-C8yaKlM1.js.map +0 -1
- package/dist/context-U293r3v-.js +0 -29
- package/dist/context-U293r3v-.js.map +0 -1
- package/dist/defaults-i_xG2F_1.js +0 -32
- package/dist/defaults-i_xG2F_1.js.map +0 -1
- package/dist/styles-BDA5rQz3.js +0 -127
- package/dist/styles-BDA5rQz3.js.map +0 -1
- package/dist/styles-YQdM7G8c.js +0 -159
- package/dist/styles-YQdM7G8c.js.map +0 -1
- package/dist/themeTokens-l2Fsfcs7.js +0 -22
- package/dist/themeTokens-l2Fsfcs7.js.map +0 -1
- package/dist/toast-D6Z6MOB5.js.map +0 -1
- package/dist/useColorSchemeState-Cw4MCXUs.js.map +0 -1
- package/dist/useThemeAttributes-B199Regy.js.map +0 -1
- package/dist/utils-LQ4jJA-9.js.map +0 -1
package/AGENTS.md
CHANGED
|
@@ -238,12 +238,12 @@ Vertical rhythm: prefer `tw:gap-*` on a flex column parent over `tw:mt-*` on chi
|
|
|
238
238
|
|
|
239
239
|
### Navigation / flow
|
|
240
240
|
|
|
241
|
-
| Use | When
|
|
242
|
-
| ---------- |
|
|
243
|
-
| `Stepper` | Linear progress through an ordered, finite sequence (multi-step form / wizard / pipeline).
|
|
244
|
-
| `Tabs` | Switching between sibling views of the same context
|
|
245
|
-
| `Timeline` | Unordered chronological log of events
|
|
246
|
-
| `Progress` | Single percentage value of an in-flight task
|
|
241
|
+
| Use | When |
|
|
242
|
+
| ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
243
|
+
| `Stepper` | Linear progress through an ordered, finite sequence (multi-step form / wizard / pipeline). Set `onStepClick` for navigable flows |
|
|
244
|
+
| `Tabs` | Switching between sibling views of the same context |
|
|
245
|
+
| `Timeline` | Unordered chronological log of events |
|
|
246
|
+
| `Progress` | Single percentage value of an in-flight task |
|
|
247
247
|
|
|
248
248
|
**Never** use `Stepper` for branching navigation (use `Tabs`) or an unordered status list (use `Timeline`).
|
|
249
249
|
|
|
@@ -798,9 +798,11 @@ An **opacity modifier composites over `transparent`, not over the element's own
|
|
|
798
798
|
|
|
799
799
|
A tint also cannot carry a **state change** on a light surface — a brand-primary tint stays within ~1.5:1 of the surface at any opacity that still reads as a tint. Step the border for that, and keep the roles apart: hover steps the chrome border (`border-input` → `border-muted-foreground`), `focus-visible` owns the brand border.
|
|
800
800
|
|
|
801
|
-
**Status — themeable
|
|
801
|
+
**Status — themeable, with AA-legible defaults.** The four semantic states — `success`, `warning`, `info`, and `destructive` (used for "error") — are brand-overridable tokens, not fixed scales. Alert `variant`, `HelpBlock` / field-error state, `ErrorState`, and `Stepper` status read them, so a brand recolours every status surface at once. **Rule:** consume the token as **tint + text/icon** — `tw:bg-<role>/10` for the surface, `tw:text-<role>` / `tw:border-<role>/25` for the mark. The default token values ship dark enough to be AA (≥4.5:1) as text/icon on their own tint, in light **and** dark mode — a brand overriding them should preserve that. Avoid solid fills with a white foreground (`tw:bg-<role>` + white): the token flips light in dark mode, so white-on-token fails there. A brand _can_ recolour "error" away from red — that is now allowed; the accessible-on-tint contract is what must hold, not the hue.
|
|
802
802
|
|
|
803
|
-
**
|
|
803
|
+
**Status pastels.** Each state also has a pastel pair — `tw:bg-<role>-subtle` + `tw:text-<role>-subtle-foreground`, for `success` / `warning` / `info` / `destructive` and `neutral`. Unset, the fill is the status token at 10% and the text is the token 30% towards `foreground` (`neutral`: `muted` + `muted-foreground`), so the pair follows the brand and dark mode with no work and stays AA at badge size. A brand or app that wants its own pastel sets `--<role>-subtle` / `--<role>-subtle-foreground` to any CSS colour. `Badge color="<role>-subtle"` reads them.
|
|
804
|
+
|
|
805
|
+
**Decorative — stays fixed across brands.** The non-semantic palette that encodes category rather than state: `Badge` `color` hues (`purple`, `cyan`, `teal`, `blue`, …) — a state badge takes a status `color` (`success`, `warning-subtle`, …) instead — chart colours, decorative tag palette. **Rule:** keep using primitive scales (`purple-500`, `cyan-500`, …). These are an identity/category contract with the consumer and do not re-skin.
|
|
804
806
|
|
|
805
807
|
**Heuristic.** A `variant` / `status` prop encoding one of the four states → **status token**. A `color` prop picking an arbitrary hue for categorisation → **decorative, fixed scale**. Everything else → **chrome, semantic token**.
|
|
806
808
|
|
|
@@ -833,20 +835,6 @@ import { keboola } from '@keboola/brand-registry';
|
|
|
833
835
|
|
|
834
836
|
Read the resolved values with `useTheme()` (`brandId`, `currentTheme`, `themes`, `scheme`, `resolvedScheme`, and the setters). With no provider above it, it answers the defaults rather than throwing.
|
|
835
837
|
|
|
836
|
-
### The argo/legacy switch is separate from the brand
|
|
837
|
-
|
|
838
|
-
`ThemeProvider` does **not** decide whether a subtree renders the argo design language — that is a kbc-ui migration concern, so it rides its own context:
|
|
839
|
-
|
|
840
|
-
```tsx
|
|
841
|
-
import { ArgoDesignContext, useArgoDesign } from '@keboola/design';
|
|
842
|
-
|
|
843
|
-
<ArgoDesignContext value={false}>{/* legacy chrome for this subtree */}</ArgoDesignContext>;
|
|
844
|
-
```
|
|
845
|
-
|
|
846
|
-
`ArgoDesignContext` defaults to `true` (argo — the modern default; legacy chrome is the exception), so an app that never provides it gets argo everywhere. kbc-ui provides `false` for its legacy brands and overrides per subtree as pages are migrated; components read it with `useArgoDesign()`. It is **temporary** and will be deleted once every kbc-ui surface is migrated — don't build on it in a new app.
|
|
847
|
-
|
|
848
|
-
Because the value is read from the nearest provider, a nested override scopes to that subtree. The build ships a single instance of both contexts across every subpath entry, so a provider mounted from the root barrel is visible to components that ship in `@keboola/design/rjsf`, `/markdown-editor`, `/mermaid` and `/editors` too.
|
|
849
|
-
|
|
850
838
|
Define a custom brand with `@keboola/brand-registry`'s `brandSchema` (Zod) and pass it in `brands`; or override the `--color-*` / `--radius-*` CSS variables directly on `:root`.
|
|
851
839
|
|
|
852
840
|
**Interaction states and surface corners** are part of the same theme. Every one is optional and, unset, keeps the look the package ships:
|
|
@@ -869,7 +857,7 @@ Define a custom brand with `@keboola/brand-registry`'s `brandSchema` (Zod) and p
|
|
|
869
857
|
- The state colours take **any CSS colour**, not the `R G B` channels the other colours use, so a wash can be translucent.
|
|
870
858
|
- Each scheme falls back on its own: a value set in `colors` does not reach dark mode. Set `colorsDark` too.
|
|
871
859
|
- Set `hover` and `hoverForeground` together, and `selected` and `selectedForeground`. Several components change the label on hover, and an unset foreground keeps the `accent-foreground` blue over whatever wash you chose.
|
|
872
|
-
- Unset, a few components keep a hover or selected look of their own rather than `accent`:
|
|
860
|
+
- Unset, a few components keep a hover or selected look of their own rather than `accent`: `DropdownMenu` (a `primary` tint), `Table` rows and `SectionNav` (`muted`). Once a theme sets the token, they follow it like the rest.
|
|
873
861
|
- `Sidebar` and `Navbar` sit on their own surface, so they take their own pair: `sidebarHover` for a hovered or open item, `sidebarSelected` for the current page. Set them inside `colors.sidebar` (and `colorsDark.sidebar`).
|
|
874
862
|
- The fallbacks resolve where each class is used, so a brand that only re-points `accent` still moves hover and selected with it.
|
|
875
863
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# @keboola/design
|
|
2
2
|
|
|
3
|
+
## 15.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- Text inputs, `Select` and `DateRangePicker` take no `variant` or `sizing` props: every field and trigger is 36 px tall in the same chrome.
|
|
8
|
+
- `InputGroup`, `TextInput`, `SearchInput`, `SearchInputWithNavigation`, `PasswordInput`, `NumberInput`, `Textarea`, `AutoSaveTextarea`, `DateInput`, `TimeInput`, `ColorInput`, `DateRangeInput`, `ChipEditor`, `Combobox`, `MultiCombobox`, the `FormGroup.*` inputs and the `field.*` connectors drop `variant` and `sizing`.
|
|
9
|
+
- `Select` and `Select.Trigger` drop `variant` and `sizing`; `inline` renders the text-like trigger with no field chrome.
|
|
10
|
+
- `DateRangePicker` drops `variant`.
|
|
11
|
+
|
|
12
|
+
- Every component renders one design language — the one `useArgoDesign()` used to opt into — whatever the brand or context.
|
|
13
|
+
- `Button`'s `argoVariants` export is `buttonVariants`.
|
|
14
|
+
- `Tooltip` drops `chrome` and `Tooltip.Content` drops `argo`; tooltips are the light popover chrome.
|
|
15
|
+
- `Command` drops `variant`; `compact` keeps the dense search row and list padding for a menu inside a popover.
|
|
16
|
+
- `Switch` drops `size`.
|
|
17
|
+
- The `data-argo`, `data-design` and argo `data-variant` attributes are gone from Modal, AlertModal, Sheet, Toast, HoverCard, Tooltip, DropdownMenu, Command, Alert, Card and ErrorState.
|
|
18
|
+
- `ArgoDesignContext` and `useArgoDesign` are removed.
|
|
19
|
+
- `AlertModal`'s icon sits on its status token's tint (`info`, `warning`, `destructive`, `success`), so it follows the brand and dark mode.
|
|
20
|
+
- Kai's `Button variant="kai"` and `Toggle variant="ai-vivid"` take their label from `primary-foreground`; in dark their gradients are lighter, so a near-black label stays AA across the whole fill.
|
|
21
|
+
- Text, borders and surfaces in the form, editor, sidebar and input blocks use theme tokens, and `ModalIcon`, `Skeleton` and `Toggle variant="ai"` carry dark variants of their tints, so they stay legible in dark mode.
|
|
22
|
+
|
|
23
|
+
- `kbcUi` (`kbc-ui`) is kbc-ui's brand, in place of `keboolaLegacySidebar` (`keboola-legacy-sidebar`).
|
|
24
|
+
- Light: the colours `keboola-legacy-sidebar` had — brand-blue `31 143 255`, bright status hues, a white sidebar.
|
|
25
|
+
- Dark: the `keboola` dark palette, pinned in full and tuned to WCAG AA — near-black labels on the bright primary and status fills, an input border at 3:1.
|
|
26
|
+
- Typography and radii: the `keboola` brand's.
|
|
27
|
+
- `@keboola/design` re-exports it under the same name.
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- A pressed `Toggle variant="ai-vivid"` keeps its navy gradient in dark mode, so its white label stays legible.
|
|
32
|
+
|
|
33
|
+
- Updated dependencies:
|
|
34
|
+
- @keboola/brand-registry@3.0.0
|
|
35
|
+
|
|
3
36
|
## 14.0.0
|
|
4
37
|
|
|
5
38
|
### Major Changes
|