@keboola/design 9.1.0 → 11.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 +119 -40
- package/COMPONENT-API.md +31 -9
- package/README.md +3 -3
- package/dist/MermaidDiagram-ZU5KAVRT.js +18 -0
- package/dist/MermaidDiagram-ZU5KAVRT.js.map +1 -0
- package/dist/charts.d.ts +37 -2
- package/dist/charts.js +11 -9
- package/dist/charts.js.map +1 -1
- package/dist/chunk-2YYJDKSP.js +51 -0
- package/dist/chunk-2YYJDKSP.js.map +1 -0
- package/dist/chunk-3P5UUCFI.js +385 -0
- package/dist/chunk-3P5UUCFI.js.map +1 -0
- package/dist/chunk-3QDFDDWZ.js +99 -0
- package/dist/chunk-3QDFDDWZ.js.map +1 -0
- package/dist/chunk-3W27OLK5.js +15 -0
- package/dist/chunk-3W27OLK5.js.map +1 -0
- package/dist/chunk-4FIZZONW.js +40 -0
- package/dist/chunk-4FIZZONW.js.map +1 -0
- package/dist/chunk-4GIAXOJG.js +133 -0
- package/dist/chunk-4GIAXOJG.js.map +1 -0
- package/dist/chunk-52NDNMK7.js +99 -0
- package/dist/chunk-52NDNMK7.js.map +1 -0
- package/dist/chunk-576G5OES.js +201 -0
- package/dist/chunk-576G5OES.js.map +1 -0
- package/dist/chunk-5AIE6SET.js +659 -0
- package/dist/chunk-5AIE6SET.js.map +1 -0
- package/dist/chunk-5FTNAZRW.js +327 -0
- package/dist/chunk-5FTNAZRW.js.map +1 -0
- package/dist/chunk-5IG2S7ZY.js +70 -0
- package/dist/chunk-5IG2S7ZY.js.map +1 -0
- package/dist/chunk-5QCXHNCW.js +404 -0
- package/dist/chunk-5QCXHNCW.js.map +1 -0
- package/dist/chunk-6DUMGC7Y.js +105 -0
- package/dist/chunk-6DUMGC7Y.js.map +1 -0
- package/dist/chunk-6J25CVST.js +174 -0
- package/dist/chunk-6J25CVST.js.map +1 -0
- package/dist/chunk-6NN35XOP.js +120 -0
- package/dist/chunk-6NN35XOP.js.map +1 -0
- package/dist/chunk-6NZBVA4T.js +24 -0
- package/dist/chunk-6NZBVA4T.js.map +1 -0
- package/dist/chunk-6W5BHRCL.js +295 -0
- package/dist/chunk-6W5BHRCL.js.map +1 -0
- package/dist/chunk-72BKRCEG.js +409 -0
- package/dist/chunk-72BKRCEG.js.map +1 -0
- package/dist/chunk-7GTI3PPI.js +95 -0
- package/dist/chunk-7GTI3PPI.js.map +1 -0
- package/dist/chunk-7P6PLZ4B.js +74 -0
- package/dist/chunk-7P6PLZ4B.js.map +1 -0
- package/dist/chunk-7WZWY5IA.js +46 -0
- package/dist/chunk-7WZWY5IA.js.map +1 -0
- package/dist/chunk-AIYO2632.js +489 -0
- package/dist/chunk-AIYO2632.js.map +1 -0
- package/dist/chunk-ANFZWPNE.js +112 -0
- package/dist/chunk-ANFZWPNE.js.map +1 -0
- package/dist/chunk-ANZTVAJU.js +73 -0
- package/dist/chunk-ANZTVAJU.js.map +1 -0
- package/dist/chunk-BD5BTJKX.js +166 -0
- package/dist/chunk-BD5BTJKX.js.map +1 -0
- package/dist/chunk-BHGIDSRJ.js +140 -0
- package/dist/chunk-BHGIDSRJ.js.map +1 -0
- package/dist/chunk-BSQWZITZ.js +507 -0
- package/dist/chunk-BSQWZITZ.js.map +1 -0
- package/dist/chunk-D3LAIK62.js +23 -0
- package/dist/chunk-D3LAIK62.js.map +1 -0
- package/dist/chunk-DODCR43C.js +155 -0
- package/dist/chunk-DODCR43C.js.map +1 -0
- package/dist/chunk-EEK5NGZF.js +40 -0
- package/dist/chunk-EEK5NGZF.js.map +1 -0
- package/dist/chunk-ENRG7TXA.js +11 -0
- package/dist/chunk-ENRG7TXA.js.map +1 -0
- package/dist/chunk-EQRMGIGY.js +239 -0
- package/dist/chunk-EQRMGIGY.js.map +1 -0
- package/dist/chunk-ERAHK5YQ.js +495 -0
- package/dist/chunk-ERAHK5YQ.js.map +1 -0
- package/dist/chunk-F3FOFY2P.js +124 -0
- package/dist/chunk-F3FOFY2P.js.map +1 -0
- package/dist/chunk-F6BTWFOC.js +507 -0
- package/dist/chunk-F6BTWFOC.js.map +1 -0
- package/dist/chunk-F6J6NNAL.js +34 -0
- package/dist/chunk-F6J6NNAL.js.map +1 -0
- package/dist/chunk-FCHJ7D5O.js +59 -0
- package/dist/chunk-FCHJ7D5O.js.map +1 -0
- package/dist/chunk-FFJTEQCC.js +80 -0
- package/dist/chunk-FFJTEQCC.js.map +1 -0
- package/dist/chunk-FUFMVW7O.js +64 -0
- package/dist/chunk-FUFMVW7O.js.map +1 -0
- package/dist/chunk-FVPGQ6UE.js +25 -0
- package/dist/chunk-FVPGQ6UE.js.map +1 -0
- package/dist/chunk-G3PMV62Z.js +33 -0
- package/dist/chunk-G3PMV62Z.js.map +1 -0
- package/dist/chunk-GACFOW3E.js +51 -0
- package/dist/chunk-GACFOW3E.js.map +1 -0
- package/dist/chunk-GDT6HQMK.js +42 -0
- package/dist/chunk-GDT6HQMK.js.map +1 -0
- package/dist/chunk-HLGU22C6.js +2589 -0
- package/dist/chunk-HLGU22C6.js.map +1 -0
- package/dist/chunk-HPMYYGP7.js +134 -0
- package/dist/chunk-HPMYYGP7.js.map +1 -0
- package/dist/chunk-I2UCOD45.js +197 -0
- package/dist/chunk-I2UCOD45.js.map +1 -0
- package/dist/chunk-IEGDZUVM.js +75 -0
- package/dist/chunk-IEGDZUVM.js.map +1 -0
- package/dist/chunk-IIS7INHF.js +47 -0
- package/dist/chunk-IIS7INHF.js.map +1 -0
- package/dist/chunk-ITELSEFU.js +256 -0
- package/dist/chunk-ITELSEFU.js.map +1 -0
- package/dist/chunk-IXAYNBOY.js +407 -0
- package/dist/chunk-IXAYNBOY.js.map +1 -0
- package/dist/chunk-JUW2ETEI.js +191 -0
- package/dist/chunk-JUW2ETEI.js.map +1 -0
- package/dist/chunk-K65C7CVE.js +127 -0
- package/dist/chunk-K65C7CVE.js.map +1 -0
- package/dist/chunk-KDI64MCY.js +189 -0
- package/dist/chunk-KDI64MCY.js.map +1 -0
- package/dist/chunk-KN4ASMH5.js +160 -0
- package/dist/chunk-KN4ASMH5.js.map +1 -0
- package/dist/chunk-KQW7QNTU.js +1549 -0
- package/dist/chunk-KQW7QNTU.js.map +1 -0
- package/dist/chunk-KR7NXXHC.js +66 -0
- package/dist/chunk-KR7NXXHC.js.map +1 -0
- package/dist/chunk-KRZKIVMA.js +142 -0
- package/dist/chunk-KRZKIVMA.js.map +1 -0
- package/dist/chunk-KTTLLKGQ.js +185 -0
- package/dist/chunk-KTTLLKGQ.js.map +1 -0
- package/dist/chunk-KWKSHPDP.js +234 -0
- package/dist/chunk-KWKSHPDP.js.map +1 -0
- package/dist/chunk-KZVC7OYG.js +57 -0
- package/dist/chunk-KZVC7OYG.js.map +1 -0
- package/dist/chunk-L5DHUN2V.js +204 -0
- package/dist/chunk-L5DHUN2V.js.map +1 -0
- package/dist/chunk-LCTGEH57.js +1376 -0
- package/dist/chunk-LCTGEH57.js.map +1 -0
- package/dist/chunk-LXLIQ2D6.js +12 -0
- package/dist/chunk-LXLIQ2D6.js.map +1 -0
- package/dist/chunk-M4CTURKX.js +84 -0
- package/dist/chunk-M4CTURKX.js.map +1 -0
- package/dist/chunk-M6LTUPVP.js +301 -0
- package/dist/chunk-M6LTUPVP.js.map +1 -0
- package/dist/chunk-MA6RRHDT.js +291 -0
- package/dist/chunk-MA6RRHDT.js.map +1 -0
- package/dist/chunk-MODE4QIA.js +6 -0
- package/dist/chunk-MODE4QIA.js.map +1 -0
- package/dist/chunk-MVILMVGG.js +118 -0
- package/dist/chunk-MVILMVGG.js.map +1 -0
- package/dist/chunk-MWS4VCLV.js +17 -0
- package/dist/chunk-MWS4VCLV.js.map +1 -0
- package/dist/chunk-NEUX74SO.js +315 -0
- package/dist/chunk-NEUX74SO.js.map +1 -0
- package/dist/chunk-NFHKYBRD.js +156 -0
- package/dist/chunk-NFHKYBRD.js.map +1 -0
- package/dist/chunk-NHJNNXD3.js +89 -0
- package/dist/chunk-NHJNNXD3.js.map +1 -0
- package/dist/chunk-O2BF3HZL.js +33 -0
- package/dist/chunk-O2BF3HZL.js.map +1 -0
- package/dist/chunk-OANXCZYD.js +212 -0
- package/dist/chunk-OANXCZYD.js.map +1 -0
- package/dist/chunk-ODJF7YIP.js +230 -0
- package/dist/chunk-ODJF7YIP.js.map +1 -0
- package/dist/chunk-ON4BJTHI.js +101 -0
- package/dist/chunk-ON4BJTHI.js.map +1 -0
- package/dist/chunk-OTL5WXIJ.js +16 -0
- package/dist/chunk-OTL5WXIJ.js.map +1 -0
- package/dist/chunk-PACNBKJV.js +47 -0
- package/dist/chunk-PACNBKJV.js.map +1 -0
- package/dist/chunk-PROCA7K7.js +23 -0
- package/dist/chunk-PROCA7K7.js.map +1 -0
- package/dist/chunk-QGMIPA67.js +85 -0
- package/dist/chunk-QGMIPA67.js.map +1 -0
- package/dist/chunk-QQA37LFB.js +190 -0
- package/dist/chunk-QQA37LFB.js.map +1 -0
- package/dist/chunk-QZAWRSEB.js +61 -0
- package/dist/chunk-QZAWRSEB.js.map +1 -0
- package/dist/chunk-R74KGWNS.js +699 -0
- package/dist/chunk-R74KGWNS.js.map +1 -0
- package/dist/chunk-RFDLHMKL.js +110 -0
- package/dist/chunk-RFDLHMKL.js.map +1 -0
- package/dist/chunk-RL64HN7S.js +40 -0
- package/dist/chunk-RL64HN7S.js.map +1 -0
- package/dist/chunk-RMRQKPL7.js +115 -0
- package/dist/chunk-RMRQKPL7.js.map +1 -0
- package/dist/chunk-RQVK4IYC.js +606 -0
- package/dist/chunk-RQVK4IYC.js.map +1 -0
- package/dist/chunk-RTW56PWZ.js +59 -0
- package/dist/chunk-RTW56PWZ.js.map +1 -0
- package/dist/chunk-RUTPQNLR.js +266 -0
- package/dist/chunk-RUTPQNLR.js.map +1 -0
- package/dist/chunk-S6TAF63G.js +25 -0
- package/dist/chunk-S6TAF63G.js.map +1 -0
- package/dist/chunk-SBGAUGXY.js +224 -0
- package/dist/chunk-SBGAUGXY.js.map +1 -0
- package/dist/chunk-SC275NHZ.js +407 -0
- package/dist/chunk-SC275NHZ.js.map +1 -0
- package/dist/chunk-SCQPU4UE.js +97 -0
- package/dist/chunk-SCQPU4UE.js.map +1 -0
- package/dist/chunk-SFFF2WQP.js +8 -0
- package/dist/chunk-SFFF2WQP.js.map +1 -0
- package/dist/chunk-SJYMHZKA.js +36 -0
- package/dist/chunk-SJYMHZKA.js.map +1 -0
- package/dist/chunk-SLCCUJVN.js +125 -0
- package/dist/chunk-SLCCUJVN.js.map +1 -0
- package/dist/chunk-SVBSNSD4.js +259 -0
- package/dist/chunk-SVBSNSD4.js.map +1 -0
- package/dist/chunk-SVPLTL35.js +62 -0
- package/dist/chunk-SVPLTL35.js.map +1 -0
- package/dist/chunk-SWQFYNYG.js +338 -0
- package/dist/chunk-SWQFYNYG.js.map +1 -0
- package/dist/chunk-THHB4EWS.js +72 -0
- package/dist/chunk-THHB4EWS.js.map +1 -0
- package/dist/chunk-TUCDD33E.js +246 -0
- package/dist/chunk-TUCDD33E.js.map +1 -0
- package/dist/chunk-TV4WAP2R.js +14 -0
- package/dist/chunk-TV4WAP2R.js.map +1 -0
- package/dist/chunk-U3A6YBTZ.js +134 -0
- package/dist/chunk-U3A6YBTZ.js.map +1 -0
- package/dist/chunk-UGT6DKWM.js +95 -0
- package/dist/chunk-UGT6DKWM.js.map +1 -0
- package/dist/chunk-VSERHUWD.js +212 -0
- package/dist/chunk-VSERHUWD.js.map +1 -0
- package/dist/chunk-VYG7BDXC.js +49 -0
- package/dist/chunk-VYG7BDXC.js.map +1 -0
- package/dist/chunk-WETKNYZX.js +52 -0
- package/dist/chunk-WETKNYZX.js.map +1 -0
- package/dist/chunk-WGG4AML3.js +216 -0
- package/dist/chunk-WGG4AML3.js.map +1 -0
- package/dist/chunk-WKAUEL6I.js +30 -0
- package/dist/chunk-WKAUEL6I.js.map +1 -0
- package/dist/chunk-WPOLA5CG.js +81 -0
- package/dist/chunk-WPOLA5CG.js.map +1 -0
- package/dist/chunk-WPVETCGJ.js +254 -0
- package/dist/chunk-WPVETCGJ.js.map +1 -0
- package/dist/chunk-WTSM3A7E.js +13 -0
- package/dist/chunk-WTSM3A7E.js.map +1 -0
- package/dist/chunk-WU3F2K3T.js +148 -0
- package/dist/chunk-WU3F2K3T.js.map +1 -0
- package/dist/chunk-WZZK2DTZ.js +39 -0
- package/dist/chunk-WZZK2DTZ.js.map +1 -0
- package/dist/chunk-X4IHLKRD.js +42 -0
- package/dist/chunk-X4IHLKRD.js.map +1 -0
- package/dist/chunk-XAHEXZJC.js +80 -0
- package/dist/chunk-XAHEXZJC.js.map +1 -0
- package/dist/chunk-XCYGJDUX.js +31 -0
- package/dist/chunk-XCYGJDUX.js.map +1 -0
- package/dist/chunk-Y4W3JORC.js +104 -0
- package/dist/chunk-Y4W3JORC.js.map +1 -0
- package/dist/chunk-YFZJ3ZLG.js +1297 -0
- package/dist/chunk-YFZJ3ZLG.js.map +1 -0
- package/dist/chunk-YI3WLXEN.js +4387 -0
- package/dist/chunk-YI3WLXEN.js.map +1 -0
- package/dist/chunk-ZBKFSPD3.js +29 -0
- package/dist/chunk-ZBKFSPD3.js.map +1 -0
- package/dist/chunk-ZOERRQ6A.js +79 -0
- package/dist/chunk-ZOERRQ6A.js.map +1 -0
- package/dist/chunk-ZSTGUKHU.js +10 -0
- package/dist/chunk-ZSTGUKHU.js.map +1 -0
- package/dist/chunk-ZUEHDL27.js +65 -0
- package/dist/chunk-ZUEHDL27.js.map +1 -0
- package/dist/editors.d.ts +27 -3
- package/dist/editors.js +93 -2081
- package/dist/editors.js.map +1 -1
- package/dist/icons.d.ts +29 -8
- package/dist/icons.js +7 -361
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +715 -441
- package/dist/index.js +121 -24643
- package/dist/index.js.map +1 -1
- package/dist/internal/blocks/AIKit.js +30 -0
- package/dist/internal/blocks/AIKit.js.map +1 -0
- package/dist/internal/blocks/AppShell.js +11 -0
- package/dist/internal/blocks/AppShell.js.map +1 -0
- package/dist/internal/blocks/AutoSaveTextarea.js +14 -0
- package/dist/internal/blocks/AutoSaveTextarea.js.map +1 -0
- package/dist/internal/blocks/BrandEditor.js +23 -0
- package/dist/internal/blocks/BrandEditor.js.map +1 -0
- package/dist/internal/blocks/ChartPanel.js +10 -0
- package/dist/internal/blocks/ChartPanel.js.map +1 -0
- package/dist/internal/blocks/ClipboardButton.js +12 -0
- package/dist/internal/blocks/ClipboardButton.js.map +1 -0
- package/dist/internal/blocks/ColorInput.js +13 -0
- package/dist/internal/blocks/ColorInput.js.map +1 -0
- package/dist/internal/blocks/ColorModeSwitch.js +13 -0
- package/dist/internal/blocks/ColorModeSwitch.js.map +1 -0
- package/dist/internal/blocks/Command.js +15 -0
- package/dist/internal/blocks/Command.js.map +1 -0
- package/dist/internal/blocks/CopyField.js +11 -0
- package/dist/internal/blocks/CopyField.js.map +1 -0
- package/dist/internal/blocks/DashboardHero.js +9 -0
- package/dist/internal/blocks/DashboardHero.js.map +1 -0
- package/dist/internal/blocks/DateInput.js +16 -0
- package/dist/internal/blocks/DateInput.js.map +1 -0
- package/dist/internal/blocks/DateRangeInput.js +16 -0
- package/dist/internal/blocks/DateRangeInput.js.map +1 -0
- package/dist/internal/blocks/EmptyConfigurationActionCard.js +10 -0
- package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -0
- package/dist/internal/blocks/EmptyState.js +4 -0
- package/dist/internal/blocks/EmptyState.js.map +1 -0
- package/dist/internal/blocks/ErrorState.js +5 -0
- package/dist/internal/blocks/ErrorState.js.map +1 -0
- package/dist/internal/blocks/ExportMenu.js +13 -0
- package/dist/internal/blocks/ExportMenu.js.map +1 -0
- package/dist/internal/blocks/Form.js +29 -0
- package/dist/internal/blocks/Form.js.map +1 -0
- package/dist/internal/blocks/FormGroup.js +18 -0
- package/dist/internal/blocks/FormGroup.js.map +1 -0
- package/dist/internal/blocks/GoogleButton.js +10 -0
- package/dist/internal/blocks/GoogleButton.js.map +1 -0
- package/dist/internal/blocks/MicrosoftButton.js +10 -0
- package/dist/internal/blocks/MicrosoftButton.js.map +1 -0
- package/dist/internal/blocks/MultiActionButtonGroup.js +12 -0
- package/dist/internal/blocks/MultiActionButtonGroup.js.map +1 -0
- package/dist/internal/blocks/MultiCombobox.js +14 -0
- package/dist/internal/blocks/MultiCombobox.js.map +1 -0
- package/dist/internal/blocks/NumberInput.js +12 -0
- package/dist/internal/blocks/NumberInput.js.map +1 -0
- package/dist/internal/blocks/OtpInput.js +10 -0
- package/dist/internal/blocks/OtpInput.js.map +1 -0
- package/dist/internal/blocks/PageHeader.js +9 -0
- package/dist/internal/blocks/PageHeader.js.map +1 -0
- package/dist/internal/blocks/PageLayout.js +9 -0
- package/dist/internal/blocks/PageLayout.js.map +1 -0
- package/dist/internal/blocks/PageToolbar.js +13 -0
- package/dist/internal/blocks/PageToolbar.js.map +1 -0
- package/dist/internal/blocks/PasswordInput.js +13 -0
- package/dist/internal/blocks/PasswordInput.js.map +1 -0
- package/dist/internal/blocks/SearchInput.js +12 -0
- package/dist/internal/blocks/SearchInput.js.map +1 -0
- package/dist/internal/blocks/SearchInputWithNavigation.js +16 -0
- package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -0
- package/dist/internal/blocks/SectionNav.js +15 -0
- package/dist/internal/blocks/SectionNav.js.map +1 -0
- package/dist/internal/blocks/SplitButton.js +14 -0
- package/dist/internal/blocks/SplitButton.js.map +1 -0
- package/dist/internal/blocks/StatCard.js +10 -0
- package/dist/internal/blocks/StatCard.js.map +1 -0
- package/dist/internal/blocks/TextInput.js +13 -0
- package/dist/internal/blocks/TextInput.js.map +1 -0
- package/dist/internal/blocks/Textarea.js +13 -0
- package/dist/internal/blocks/Textarea.js.map +1 -0
- package/dist/internal/blocks/TimeInput.js +17 -0
- package/dist/internal/blocks/TimeInput.js.map +1 -0
- package/dist/internal/components/Alert.js +11 -0
- package/dist/internal/components/Alert.js.map +1 -0
- package/dist/internal/components/AlertModal.js +11 -0
- package/dist/internal/components/AlertModal.js.map +1 -0
- package/dist/internal/components/Avatar.js +9 -0
- package/dist/internal/components/Avatar.js.map +1 -0
- package/dist/internal/components/Badge.js +9 -0
- package/dist/internal/components/Badge.js.map +1 -0
- package/dist/internal/components/BrandLogo.js +11 -0
- package/dist/internal/components/BrandLogo.js.map +1 -0
- package/dist/internal/components/Breadcrumb.js +14 -0
- package/dist/internal/components/Breadcrumb.js.map +1 -0
- package/dist/internal/components/Button.js +10 -0
- package/dist/internal/components/Button.js.map +1 -0
- package/dist/internal/components/ButtonGroup.js +9 -0
- package/dist/internal/components/ButtonGroup.js.map +1 -0
- package/dist/internal/components/Calendar.js +9 -0
- package/dist/internal/components/Calendar.js.map +1 -0
- package/dist/internal/components/Card.js +9 -0
- package/dist/internal/components/Card.js.map +1 -0
- package/dist/internal/components/Checkbox.js +11 -0
- package/dist/internal/components/Checkbox.js.map +1 -0
- package/dist/internal/components/Clipboard.js +9 -0
- package/dist/internal/components/Clipboard.js.map +1 -0
- package/dist/internal/components/Collapsible.js +9 -0
- package/dist/internal/components/Collapsible.js.map +1 -0
- package/dist/internal/components/CollapsiblePanel.js +11 -0
- package/dist/internal/components/CollapsiblePanel.js.map +1 -0
- package/dist/internal/components/Combobox.js +13 -0
- package/dist/internal/components/Combobox.js.map +1 -0
- package/dist/internal/components/DatePicker.js +11 -0
- package/dist/internal/components/DatePicker.js.map +1 -0
- package/dist/internal/components/DateRangePicker.js +17 -0
- package/dist/internal/components/DateRangePicker.js.map +1 -0
- package/dist/internal/components/DiffView.js +9 -0
- package/dist/internal/components/DiffView.js.map +1 -0
- package/dist/internal/components/DotsLoader.js +5 -0
- package/dist/internal/components/DotsLoader.js.map +1 -0
- package/dist/internal/components/DropdownMenu.js +11 -0
- package/dist/internal/components/DropdownMenu.js.map +1 -0
- package/dist/internal/components/EmptySearchContent.js +4 -0
- package/dist/internal/components/EmptySearchContent.js.map +1 -0
- package/dist/internal/components/FileUpload.js +11 -0
- package/dist/internal/components/FileUpload.js.map +1 -0
- package/dist/internal/components/FullScreenModal.js +12 -0
- package/dist/internal/components/FullScreenModal.js.map +1 -0
- package/dist/internal/components/HelpBlock.js +4 -0
- package/dist/internal/components/HelpBlock.js.map +1 -0
- package/dist/internal/components/HoverCard.js +9 -0
- package/dist/internal/components/HoverCard.js.map +1 -0
- package/dist/internal/components/InputGroup.js +11 -0
- package/dist/internal/components/InputGroup.js.map +1 -0
- package/dist/internal/components/Kbd.js +9 -0
- package/dist/internal/components/Kbd.js.map +1 -0
- package/dist/internal/components/Label.js +9 -0
- package/dist/internal/components/Label.js.map +1 -0
- package/dist/internal/components/Link.js +9 -0
- package/dist/internal/components/Link.js.map +1 -0
- package/dist/internal/components/MarkedText.js +5 -0
- package/dist/internal/components/MarkedText.js.map +1 -0
- package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +10 -0
- package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -0
- package/dist/internal/components/MergeEditor/PaneHeader.js +4 -0
- package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -0
- package/dist/internal/components/MergeEditor/constants.js +4 -0
- package/dist/internal/components/MergeEditor/constants.js.map +1 -0
- package/dist/internal/components/MergeEditor/useMergeDiff.js +5 -0
- package/dist/internal/components/MergeEditor/useMergeDiff.js.map +1 -0
- package/dist/internal/components/Modal.js +13 -0
- package/dist/internal/components/Modal.js.map +1 -0
- package/dist/internal/components/Navbar.js +14 -0
- package/dist/internal/components/Navbar.js.map +1 -0
- package/dist/internal/components/Pagination.js +11 -0
- package/dist/internal/components/Pagination.js.map +1 -0
- package/dist/internal/components/PanelWithDetails.js +11 -0
- package/dist/internal/components/PanelWithDetails.js.map +1 -0
- package/dist/internal/components/Popconfirm.js +12 -0
- package/dist/internal/components/Popconfirm.js.map +1 -0
- package/dist/internal/components/Popover.js +9 -0
- package/dist/internal/components/Popover.js.map +1 -0
- package/dist/internal/components/Progress.js +9 -0
- package/dist/internal/components/Progress.js.map +1 -0
- package/dist/internal/components/RadioGroup.js +12 -0
- package/dist/internal/components/RadioGroup.js.map +1 -0
- package/dist/internal/components/Resizable.js +9 -0
- package/dist/internal/components/Resizable.js.map +1 -0
- package/dist/internal/components/ScrollArea.js +9 -0
- package/dist/internal/components/ScrollArea.js.map +1 -0
- package/dist/internal/components/Search.js +10 -0
- package/dist/internal/components/Search.js.map +1 -0
- package/dist/internal/components/Select.js +12 -0
- package/dist/internal/components/Select.js.map +1 -0
- package/dist/internal/components/Separator.js +9 -0
- package/dist/internal/components/Separator.js.map +1 -0
- package/dist/internal/components/Sheet.js +12 -0
- package/dist/internal/components/Sheet.js.map +1 -0
- package/dist/internal/components/Sidebar.js +20 -0
- package/dist/internal/components/Sidebar.js.map +1 -0
- package/dist/internal/components/Skeleton/Skeleton.js +9 -0
- package/dist/internal/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/internal/components/Skeleton/SkeletonList.js +10 -0
- package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -0
- package/dist/internal/components/Slider.js +11 -0
- package/dist/internal/components/Slider.js.map +1 -0
- package/dist/internal/components/SpotlightBackdrop.js +9 -0
- package/dist/internal/components/SpotlightBackdrop.js.map +1 -0
- package/dist/internal/components/Stepper.js +10 -0
- package/dist/internal/components/Stepper.js.map +1 -0
- package/dist/internal/components/Switch.js +10 -0
- package/dist/internal/components/Switch.js.map +1 -0
- package/dist/internal/components/Table.js +10 -0
- package/dist/internal/components/Table.js.map +1 -0
- package/dist/internal/components/Tabs.js +12 -0
- package/dist/internal/components/Tabs.js.map +1 -0
- package/dist/internal/components/ThemeProvider.js +10 -0
- package/dist/internal/components/ThemeProvider.js.map +1 -0
- package/dist/internal/components/TimePicker.js +12 -0
- package/dist/internal/components/TimePicker.js.map +1 -0
- package/dist/internal/components/Timeline.js +10 -0
- package/dist/internal/components/Timeline.js.map +1 -0
- package/dist/internal/components/Toast.js +11 -0
- package/dist/internal/components/Toast.js.map +1 -0
- package/dist/internal/components/Toggle.js +9 -0
- package/dist/internal/components/Toggle.js.map +1 -0
- package/dist/internal/components/ToggleGroup.js +9 -0
- package/dist/internal/components/ToggleGroup.js.map +1 -0
- package/dist/internal/components/Tooltip.js +8 -0
- package/dist/internal/components/Tooltip.js.map +1 -0
- package/dist/internal/components/Truncated.js +9 -0
- package/dist/internal/components/Truncated.js.map +1 -0
- package/dist/internal/components/Workbench.js +11 -0
- package/dist/internal/components/Workbench.js.map +1 -0
- package/dist/internal/components/ZoomableSvg.js +13 -0
- package/dist/internal/components/ZoomableSvg.js.map +1 -0
- package/dist/internal/hooks/useAutosizeInput.js +4 -0
- package/dist/internal/hooks/useAutosizeInput.js.map +1 -0
- package/dist/internal/hooks/useScrollbarPosition.js +5 -0
- package/dist/internal/hooks/useScrollbarPosition.js.map +1 -0
- package/dist/internal/hooks/useStableCallback.js +4 -0
- package/dist/internal/hooks/useStableCallback.js.map +1 -0
- package/dist/internal/utils/mergeRefs.js +4 -0
- package/dist/internal/utils/mergeRefs.js.map +1 -0
- package/dist/internal/utils.js +8 -0
- package/dist/internal/utils.js.map +1 -0
- package/dist/markdown-editor.js +55 -3426
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.js +16 -1129
- package/dist/mermaid.js.map +1 -1
- package/dist/rjsf.js +252 -9380
- package/dist/rjsf.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/testing.js +10 -357
- package/dist/testing.js.map +1 -1
- package/package.json +31 -75
- package/src/styles.css +95 -10
- package/src/theme.css +65 -0
- package/dist/charts.cjs +0 -268
- package/dist/charts.cjs.map +0 -1
- package/dist/charts.d.cts +0 -181
- package/dist/constants-D3gaMY-W.d.cts +0 -39
- package/dist/editors.cjs +0 -2440
- package/dist/editors.cjs.map +0 -1
- package/dist/editors.d.cts +0 -165
- package/dist/icons.cjs +0 -23888
- package/dist/icons.cjs.map +0 -1
- package/dist/icons.d.cts +0 -20
- package/dist/index.cjs +0 -24894
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -10438
- package/dist/markdown-editor.cjs +0 -4636
- package/dist/markdown-editor.cjs.map +0 -1
- package/dist/markdown-editor.d.cts +0 -75
- package/dist/mermaid.cjs +0 -1138
- package/dist/mermaid.cjs.map +0 -1
- package/dist/mermaid.d.cts +0 -15
- package/dist/rjsf.cjs +0 -10893
- package/dist/rjsf.cjs.map +0 -1
- package/dist/rjsf.d.cts +0 -55
- package/dist/testing.cjs +0 -373
- package/dist/testing.cjs.map +0 -1
- package/dist/testing.d.cts +0 -25
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keboola/design",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.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",
|
|
7
7
|
"sideEffects": [
|
|
8
8
|
"**/*.css"
|
|
9
9
|
],
|
|
10
|
-
"main": "./dist/index.cjs",
|
|
11
10
|
"module": "./dist/index.js",
|
|
12
11
|
"types": "./dist/index.d.ts",
|
|
13
12
|
"typesVersions": {
|
|
@@ -37,86 +36,38 @@
|
|
|
37
36
|
},
|
|
38
37
|
"exports": {
|
|
39
38
|
".": {
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
"default": "./dist/index.js"
|
|
43
|
-
},
|
|
44
|
-
"require": {
|
|
45
|
-
"types": "./dist/index.d.cts",
|
|
46
|
-
"default": "./dist/index.cjs"
|
|
47
|
-
}
|
|
39
|
+
"types": "./dist/index.d.ts",
|
|
40
|
+
"default": "./dist/index.js"
|
|
48
41
|
},
|
|
49
42
|
"./styles": "./src/styles.css",
|
|
50
43
|
"./styles/compiled": "./dist/styles.css",
|
|
51
44
|
"./charts": {
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
"default": "./dist/charts.js"
|
|
55
|
-
},
|
|
56
|
-
"require": {
|
|
57
|
-
"types": "./dist/charts.d.cts",
|
|
58
|
-
"default": "./dist/charts.cjs"
|
|
59
|
-
}
|
|
45
|
+
"types": "./dist/charts.d.ts",
|
|
46
|
+
"default": "./dist/charts.js"
|
|
60
47
|
},
|
|
61
48
|
"./mermaid": {
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
"default": "./dist/mermaid.js"
|
|
65
|
-
},
|
|
66
|
-
"require": {
|
|
67
|
-
"types": "./dist/mermaid.d.cts",
|
|
68
|
-
"default": "./dist/mermaid.cjs"
|
|
69
|
-
}
|
|
49
|
+
"types": "./dist/mermaid.d.ts",
|
|
50
|
+
"default": "./dist/mermaid.js"
|
|
70
51
|
},
|
|
71
52
|
"./markdown-editor": {
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
"default": "./dist/markdown-editor.js"
|
|
75
|
-
},
|
|
76
|
-
"require": {
|
|
77
|
-
"types": "./dist/markdown-editor.d.cts",
|
|
78
|
-
"default": "./dist/markdown-editor.cjs"
|
|
79
|
-
}
|
|
53
|
+
"types": "./dist/markdown-editor.d.ts",
|
|
54
|
+
"default": "./dist/markdown-editor.js"
|
|
80
55
|
},
|
|
81
56
|
"./editors": {
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
"default": "./dist/editors.js"
|
|
85
|
-
},
|
|
86
|
-
"require": {
|
|
87
|
-
"types": "./dist/editors.d.cts",
|
|
88
|
-
"default": "./dist/editors.cjs"
|
|
89
|
-
}
|
|
57
|
+
"types": "./dist/editors.d.ts",
|
|
58
|
+
"default": "./dist/editors.js"
|
|
90
59
|
},
|
|
91
60
|
"./icons": {
|
|
92
|
-
"
|
|
93
|
-
|
|
94
|
-
"default": "./dist/icons.js"
|
|
95
|
-
},
|
|
96
|
-
"require": {
|
|
97
|
-
"types": "./dist/icons.d.cts",
|
|
98
|
-
"default": "./dist/icons.cjs"
|
|
99
|
-
}
|
|
61
|
+
"types": "./dist/icons.d.ts",
|
|
62
|
+
"default": "./dist/icons.js"
|
|
100
63
|
},
|
|
101
64
|
"./rjsf": {
|
|
102
|
-
"
|
|
103
|
-
|
|
104
|
-
"default": "./dist/rjsf.js"
|
|
105
|
-
},
|
|
106
|
-
"require": {
|
|
107
|
-
"types": "./dist/rjsf.d.cts",
|
|
108
|
-
"default": "./dist/rjsf.cjs"
|
|
109
|
-
}
|
|
65
|
+
"types": "./dist/rjsf.d.ts",
|
|
66
|
+
"default": "./dist/rjsf.js"
|
|
110
67
|
},
|
|
111
68
|
"./testing": {
|
|
112
|
-
"
|
|
113
|
-
|
|
114
|
-
"default": "./dist/testing.js"
|
|
115
|
-
},
|
|
116
|
-
"require": {
|
|
117
|
-
"types": "./dist/testing.d.cts",
|
|
118
|
-
"default": "./dist/testing.cjs"
|
|
119
|
-
}
|
|
69
|
+
"types": "./dist/testing.d.ts",
|
|
70
|
+
"default": "./dist/testing.js"
|
|
120
71
|
},
|
|
121
72
|
"./theme": "./src/theme.css"
|
|
122
73
|
},
|
|
@@ -156,6 +107,7 @@
|
|
|
156
107
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
157
108
|
"@google/design.md": "0.2.0",
|
|
158
109
|
"@playwright/test": "1.60.0",
|
|
110
|
+
"@size-limit/esbuild": "12.1.0",
|
|
159
111
|
"@size-limit/file": "12.1.0",
|
|
160
112
|
"@storybook/addon-a11y": "10.2.19",
|
|
161
113
|
"@storybook/addon-docs": "^10.2.19",
|
|
@@ -176,6 +128,7 @@
|
|
|
176
128
|
"@vitest/browser": "4.1.10",
|
|
177
129
|
"@vitest/browser-playwright": "4.1.10",
|
|
178
130
|
"@vitest/coverage-istanbul": "4.1.10",
|
|
131
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
179
132
|
"eslint-plugin-storybook": "^10.3.5",
|
|
180
133
|
"oxfmt": "^0.57.0",
|
|
181
134
|
"oxlint": "^1.72.0",
|
|
@@ -193,8 +146,9 @@
|
|
|
193
146
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
194
147
|
"vite": "^8.1.5",
|
|
195
148
|
"vitest": "^4.1.10",
|
|
196
|
-
"@keboola/
|
|
197
|
-
"@keboola/tsconfig": "^0.2.0"
|
|
149
|
+
"@keboola/vitest-config": "^1.0.0",
|
|
150
|
+
"@keboola/tsconfig": "^0.2.0",
|
|
151
|
+
"@keboola/oxlint-config": "^10.0.1"
|
|
198
152
|
},
|
|
199
153
|
"peerDependencies": {
|
|
200
154
|
"@testing-library/react": "^16.3.2",
|
|
@@ -221,6 +175,7 @@
|
|
|
221
175
|
"@codemirror/state": "^6.7.1",
|
|
222
176
|
"@codemirror/view": "^6.43.6",
|
|
223
177
|
"@iconify-json/lucide": "^1.2.118",
|
|
178
|
+
"@lezer/highlight": "^1.2.3",
|
|
224
179
|
"@lexical/code": "^0.42.0",
|
|
225
180
|
"@lexical/link": "^0.42.0",
|
|
226
181
|
"@lexical/list": "^0.42.0",
|
|
@@ -278,18 +233,18 @@
|
|
|
278
233
|
"remark-gfm": "^4.0.1",
|
|
279
234
|
"sonner": "^2.0.7",
|
|
280
235
|
"tailwind-merge": "^3.6.0",
|
|
281
|
-
"@keboola/
|
|
282
|
-
"@keboola/
|
|
283
|
-
"@keboola/
|
|
236
|
+
"@keboola/codemirror-lang-sql": "^0.7.0",
|
|
237
|
+
"@keboola/tailwind-config": "^1.1.0",
|
|
238
|
+
"@keboola/brand-registry": "^1.9.1"
|
|
284
239
|
},
|
|
285
240
|
"scripts": {
|
|
286
|
-
"dev": "storybook dev -p 6006",
|
|
241
|
+
"dev": "storybook dev -p \"${PORT:-6006}\"",
|
|
287
242
|
"build-storybook": "storybook build",
|
|
288
243
|
"transit": "pnpm build",
|
|
289
244
|
"build": "pnpm build:js && pnpm build:css",
|
|
290
245
|
"build:js": "tsup",
|
|
291
246
|
"build:css": "tailwindcss -i src/styles.css -o dist/styles.css --minify",
|
|
292
|
-
"build:check": "attw --pack . --exclude-entrypoints ./styles ./styles/compiled ./theme",
|
|
247
|
+
"build:check": "attw --pack . --profile esm-only --exclude-entrypoints ./styles ./styles/compiled ./theme",
|
|
293
248
|
"test": "vitest run --config vite.config.ts --passWithNoTests --reporter=dot",
|
|
294
249
|
"test:stories": "vitest run --config vitest.config.ts",
|
|
295
250
|
"test:stories:coverage": "vitest run --config vitest.config.ts --coverage",
|
|
@@ -302,13 +257,14 @@
|
|
|
302
257
|
"lint:format": "oxfmt --check",
|
|
303
258
|
"lint:oxlint": "oxlint . --quiet",
|
|
304
259
|
"lint:design": "designmd lint DESIGN.md",
|
|
305
|
-
"ci-checks": "pnpm check:api && pnpm check:icons && pnpm size",
|
|
260
|
+
"ci-checks": "pnpm check:api && pnpm check:icons && pnpm check:contrast && pnpm size",
|
|
306
261
|
"size": "size-limit",
|
|
307
262
|
"generate:api": "tsx scripts/generate-component-api.ts",
|
|
308
263
|
"check:api": "tsx scripts/generate-component-api.ts --check",
|
|
309
264
|
"audit:contrast": "tsx scripts/contrast-audit.ts",
|
|
310
265
|
"type-check": "tsc",
|
|
311
266
|
"generate:icons": "tsx scripts/generate-icon-exports.ts",
|
|
312
|
-
"check:icons": "tsx scripts/generate-icon-exports.ts && git diff --exit-code -- src/icons/index.ts"
|
|
267
|
+
"check:icons": "tsx scripts/generate-icon-exports.ts && git diff --exit-code -- src/icons/index.ts",
|
|
268
|
+
"check:contrast": "tsx scripts/contrast-audit.ts && git diff --exit-code -- CONTRAST-AUDIT.md"
|
|
313
269
|
}
|
|
314
270
|
}
|
package/src/styles.css
CHANGED
|
@@ -13,10 +13,16 @@
|
|
|
13
13
|
@import 'react-day-picker/src/style.css';
|
|
14
14
|
@import './theme.css';
|
|
15
15
|
|
|
16
|
-
/*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
/* Test files name utility classes as data — `customUtilities.test.ts` compiles every custom
|
|
17
|
+
* utility by name, `brandNeutrality.test.ts` spells out colour literals — and v4 scans them like
|
|
18
|
+
* any other source, emitting those candidates into the bundle apps ship. Nothing a test alone
|
|
19
|
+
* mentions belongs in it. */
|
|
20
|
+
@source not '**/*.test.{ts,tsx}';
|
|
21
|
+
|
|
22
|
+
/* The remaining v3 token surface plus typography and scroll-fade stay in JS, loaded
|
|
23
|
+
* via v4's `@config` bridge — this keeps `colors.ts` and the ThemeProvider/brand
|
|
24
|
+
* runtime-swap model unchanged (channel triples consumed as `rgb(var(--*) / <alpha>)`).
|
|
25
|
+
* Anything an app authors belongs in `theme.css` instead: this bridge is design-only. */
|
|
20
26
|
@config '../tailwind.config.js';
|
|
21
27
|
|
|
22
28
|
/* Scoped, opt-in preflight — the v4 replacement for v3's
|
|
@@ -31,7 +37,7 @@
|
|
|
31
37
|
/*
|
|
32
38
|
* Semantic color tokens — read by Tailwind via rgb(var(--*) / <alpha-value>) in
|
|
33
39
|
* packages/tailwind-config/colors.ts. Channel values are stored as space-separated RGB so
|
|
34
|
-
* Tailwind opacity modifiers (e.g. `tw
|
|
40
|
+
* Tailwind opacity modifiers (e.g. `tw:bg-muted/50`) resolve correctly.
|
|
35
41
|
* Primitive scales (neutral-*, primary-*, error-*, warning-*, etc.) remain hardcoded in colors.ts.
|
|
36
42
|
*/
|
|
37
43
|
:root {
|
|
@@ -60,7 +66,10 @@
|
|
|
60
66
|
|
|
61
67
|
/* Border / Input / Ring */
|
|
62
68
|
--border: 229 231 235; /* #e5e7eb */
|
|
63
|
-
--input: 203 213 225; /* #cbd5e1 */
|
|
69
|
+
--input: 203 213 225; /* #cbd5e1 — the control's border, not its fill */
|
|
70
|
+
/* The fill of a form control. Its own token rather than `card`: a field is not
|
|
71
|
+
a raised container, and a brand tints the two independently. */
|
|
72
|
+
--input-background: 255 255 255; /* #ffffff */
|
|
64
73
|
--ring: var(--primary); /* follows brand primary (default #2563eb) */
|
|
65
74
|
--ring-offset: 255 255 255; /* #ffffff — focus-ring offset gap */
|
|
66
75
|
|
|
@@ -116,6 +125,14 @@
|
|
|
116
125
|
with a black shadow so it doesn't read as a light halo on dark surfaces. */
|
|
117
126
|
--shadow-raised: 0 2px 6px 0 rgb(100 135 153 / 0.13);
|
|
118
127
|
|
|
128
|
+
/* Runtime mirrors of the `shadow-card` / `shadow-table` @theme tokens, so a rule
|
|
129
|
+
can read `var(--shadow-card)` and follow the colour scheme. Declared here rather
|
|
130
|
+
than left to @theme: v4 inlines an @theme value into the utility it generates and
|
|
131
|
+
emits no custom property for it, so `var(--shadow-table)` would resolve to nothing
|
|
132
|
+
and drop the shadow entirely. Values match theme.css; the dark block overrides both. */
|
|
133
|
+
--shadow-card: 0px 1px 4px rgb(100 135 153 / 0.15);
|
|
134
|
+
--shadow-table: 0px 6px 6px -4px rgb(100 135 153 / 0.13);
|
|
135
|
+
|
|
119
136
|
/* Typography pairing — display + mono faces; a brand overrides via
|
|
120
137
|
`theme.typography.fontDisplay` / `fontMono`. Display defaults to the body
|
|
121
138
|
face (`--font-sans`), then the canonical Inter stack, so unset brands keep
|
|
@@ -200,7 +217,11 @@
|
|
|
200
217
|
|
|
201
218
|
/* Border / Input / Ring */
|
|
202
219
|
--border: 52 53 62; /* #34353e */
|
|
203
|
-
--input: 60 61 71; /* #3c3d47 */
|
|
220
|
+
--input: 60 61 71; /* #3c3d47 — the control's border, not its fill */
|
|
221
|
+
/* Lighter than `background` (#131317), `card` (#222228) and `popover` (#26262d)
|
|
222
|
+
so a field stays legible as its own surface on all three — a single opaque
|
|
223
|
+
fill has to clear the lightest container it can sit in. */
|
|
224
|
+
--input-background: 47 48 55; /* #2f3037 */
|
|
204
225
|
--ring: var(--primary); /* follows brand primary (default #1f8fff) */
|
|
205
226
|
--ring-offset: 19 19 23; /* #131317 — focus-ring offset gap (dark background) */
|
|
206
227
|
|
|
@@ -243,6 +264,20 @@
|
|
|
243
264
|
blue-gray, which reads as a halo around Card / Search on dark surfaces. */
|
|
244
265
|
--shadow-raised: 0 2px 6px 0 rgb(0 0 0 / 0.4);
|
|
245
266
|
|
|
267
|
+
/* Same correction for the two elevation tokens apps author directly — the pale
|
|
268
|
+
blue-gray lights up against a dark surface instead of reading as depth, and under
|
|
269
|
+
a sticky table header it read as a glowing seam. `--shadow-table` is softer than
|
|
270
|
+
`--shadow-raised` because the header casts a full-width band.
|
|
271
|
+
|
|
272
|
+
Reaches rules that read `var(--shadow-table)` / `var(--shadow-card)` directly,
|
|
273
|
+
which is how kbc-ui's Less consumes them. It does NOT reach the `shadow-table` /
|
|
274
|
+
`shadow-card` Tailwind utilities: those are `@theme` tokens (theme.css), so v4
|
|
275
|
+
inlines the light literal into the generated class at build time. Making the
|
|
276
|
+
utilities scheme-aware needs the token to carry a `var(--runtime, fallback)`
|
|
277
|
+
shape, which is a separate change with control-ui / boilerplate to verify against. */
|
|
278
|
+
--shadow-card: 0px 1px 4px rgb(0 0 0 / 0.4);
|
|
279
|
+
--shadow-table: 0px 6px 6px -4px rgb(0 0 0 / 0.3);
|
|
280
|
+
|
|
246
281
|
/* Table header — lighter than card so the header row reads as raised on dark
|
|
247
282
|
(light value is the tailwind-config fallback: 219 225 235). */
|
|
248
283
|
--table-header: 54 55 65;
|
|
@@ -285,8 +320,8 @@
|
|
|
285
320
|
html {
|
|
286
321
|
/* Brand font opt-in: a brand's `typography.fontFamily` is injected as
|
|
287
322
|
`--font-sans` by ThemeProvider and inherited from `html`; absent a brand
|
|
288
|
-
the fallback reproduces the canonical `tw
|
|
289
|
-
rendering is unchanged. Elements that set `tw
|
|
323
|
+
the fallback reproduces the canonical `tw:font-sans` stack so default
|
|
324
|
+
rendering is unchanged. Elements that set `tw:font-sans` explicitly also
|
|
290
325
|
follow the brand — the Tailwind `fontFamily.sans` scale reads `--font-sans`
|
|
291
326
|
with the same `Inter` fallback. */
|
|
292
327
|
font-family: var(
|
|
@@ -368,11 +403,40 @@
|
|
|
368
403
|
}
|
|
369
404
|
}
|
|
370
405
|
|
|
371
|
-
|
|
406
|
+
/* Legacy (dark) tooltip chrome — invert nested prose for contrast. Must live in
|
|
407
|
+
* `utilities`: `.tw\:prose` declares the same `--tw-prose-*` variables from that
|
|
408
|
+
* layer, and the layer order at the top of this file makes `utilities` win over
|
|
409
|
+
* `components` regardless of specificity. */
|
|
410
|
+
@layer utilities {
|
|
372
411
|
[data-tooltip-content='true'] .tw\:prose {
|
|
373
412
|
@apply tw:prose-invert;
|
|
413
|
+
|
|
414
|
+
/* Typography's own `a`/`code` rules are `:where()`-wrapped (specificity 0), so
|
|
415
|
+
* the inverted variables never reach a link rendered by design's `Link`
|
|
416
|
+
* (`tw:text-primary`) nor an inline-code background a host's global CSS paints. */
|
|
417
|
+
a {
|
|
418
|
+
@apply tw:text-blue-300 tw:hover:text-blue-200;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/* Inline code only — scoped the way AIKit's markdown prose does it
|
|
422
|
+
* (`tw:[&_:not(pre)>code]:…` in `blocks/AIKit/Markdown.tsx`) so a fenced
|
|
423
|
+
* block's `pre > code` keeps `--tw-prose-invert-pre-bg`. */
|
|
424
|
+
:not(pre) > code {
|
|
425
|
+
@apply tw:bg-white/10 tw:text-neutral-100;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/* `.tw\:prose blockquote` (components layer, below) fills with the light
|
|
429
|
+
* `--muted`; on the dark tooltip that would put the now-inverted light text
|
|
430
|
+
* on a light fill. Re-fill with the same `white/10` wash the inline-code
|
|
431
|
+
* chip uses — the file's one translucent-overlay idiom, and the only fill
|
|
432
|
+
* that works against a fixed `bg-neutral-800` without a second token. */
|
|
433
|
+
blockquote {
|
|
434
|
+
@apply tw:bg-white/10;
|
|
435
|
+
}
|
|
374
436
|
}
|
|
437
|
+
}
|
|
375
438
|
|
|
439
|
+
@layer components {
|
|
376
440
|
.tw\:prose blockquote {
|
|
377
441
|
border-left: 4px solid rgb(var(--border));
|
|
378
442
|
background-color: rgb(var(--muted));
|
|
@@ -392,3 +456,24 @@
|
|
|
392
456
|
pointer-events: auto !important;
|
|
393
457
|
}
|
|
394
458
|
}
|
|
459
|
+
|
|
460
|
+
@layer utilities {
|
|
461
|
+
/* Tailwind Typography pins its own palette (`--tw-prose-bold`, `--tw-prose-headings`,
|
|
462
|
+
…) to light-mode values, so those elements stay near-black when the semantic tokens
|
|
463
|
+
flip — bold text in a Markdown answer renders dark-on-dark. `prose` has no awareness
|
|
464
|
+
of `[data-theme]`, so invert it here.
|
|
465
|
+
|
|
466
|
+
In `utilities`, not `components`: `.tw:prose` is itself a utility, and a v4 cascade
|
|
467
|
+
layer beats specificity outright — a more specific rule in `components` still loses
|
|
468
|
+
to the plain utility. Same layer, higher specificity, so this wins. */
|
|
469
|
+
[data-theme='dark'] .tw\:prose {
|
|
470
|
+
@apply tw:prose-invert;
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
@layer utilities {
|
|
475
|
+
[data-header-span='full']
|
|
476
|
+
> [data-app-shell-slot]:has(> [data-collapsible='off-canvas'][data-state='collapsed']) {
|
|
477
|
+
overflow-x: clip;
|
|
478
|
+
}
|
|
479
|
+
}
|
package/src/theme.css
CHANGED
|
@@ -11,6 +11,20 @@
|
|
|
11
11
|
* design AND every v4 app) so those utilities resolve again. Each token keeps the
|
|
12
12
|
* v3 `var(--runtime-var, fallback)` shape so `ThemeProvider` can still re-skin it. */
|
|
13
13
|
@theme {
|
|
14
|
+
/* Body face — `font-sans`. Design keeps the v3 `fontFamily.sans` scale through its
|
|
15
|
+
* `@config` bridge, but the apps have no such bridge, so there `font-sans` resolved
|
|
16
|
+
* to v4's stock stack: no `Inter`, no brand hook. Every element that sets the
|
|
17
|
+
* utility explicitly (top-bar nav, inputs, menu descriptions) therefore rendered in
|
|
18
|
+
* a system face while its siblings inherited Inter from `html`. Re-registering the
|
|
19
|
+
* token restores the v3 value: the brand's `--font-sans` (emitted by ThemeProvider)
|
|
20
|
+
* first, then the canonical Inter stack. Safe as a @theme token because the emitted
|
|
21
|
+
* name is prefixed (`--tw-font-sans`) and so cannot cycle with the runtime var it
|
|
22
|
+
* reads — unlike `font-display`, which must stay an @utility. */
|
|
23
|
+
--font-sans:
|
|
24
|
+
var(--font-sans, Inter), system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
25
|
+
'Noto Sans', 'Liberation Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
|
|
26
|
+
'Segoe UI Symbol', 'Noto Color Emoji';
|
|
27
|
+
|
|
14
28
|
/* Legacy Bootstrap-era breakpoints (screens). */
|
|
15
29
|
--breakpoint-sm-legacy: 992px;
|
|
16
30
|
--breakpoint-md-legacy: 1092px;
|
|
@@ -32,6 +46,12 @@
|
|
|
32
46
|
--shadow-table: 0px 6px 6px -4px rgba(100, 135, 153, 0.13);
|
|
33
47
|
--radius-card: 10px;
|
|
34
48
|
|
|
49
|
+
/* Raised-surface elevation — `shadow-raised`. Dark-aware: `styles.css` flips the runtime
|
|
50
|
+
* `--shadow-raised` to a black shadow under `[data-theme='dark']`. Reading a var of the same
|
|
51
|
+
* name is safe here because the emitted token is prefixed (`--tw-shadow-raised`), so the two
|
|
52
|
+
* cannot cycle — same reasoning as `--font-sans` above. */
|
|
53
|
+
--shadow-raised: var(--shadow-raised, 0 2px 6px 0 rgb(100 135 153 / 0.13));
|
|
54
|
+
|
|
35
55
|
/* Brand easing — `ease-brand`. The runtime override var (`--motion-easing`) differs from
|
|
36
56
|
* this @theme token name, so registering it here drops no fallback (unlike bg-brand /
|
|
37
57
|
* shadow-lift, whose runtime var name collides → they stay @utility below). */
|
|
@@ -41,6 +61,12 @@
|
|
|
41
61
|
--animate-progress-bar: progress-bar var(--progress-bar-duration, 3s) linear forwards;
|
|
42
62
|
--animate-spinner-dots: spinner-dots 1s ease-in-out infinite;
|
|
43
63
|
--animate-marching-ants: marching-ants 1s linear infinite;
|
|
64
|
+
|
|
65
|
+
/* Collapsible disclosure — keyframes below. `tw-animate-css` owns `collapsible-down`/`-up`
|
|
66
|
+
* and every app imports it unlayered, so those two names are unusable here.
|
|
67
|
+
* 300ms `ease` is the motion the retired `Collapse` had. */
|
|
68
|
+
--animate-collapsible-open: collapsible-open 300ms ease;
|
|
69
|
+
--animate-collapsible-close: collapsible-close 300ms ease;
|
|
44
70
|
}
|
|
45
71
|
|
|
46
72
|
@keyframes progress-bar {
|
|
@@ -68,6 +94,29 @@
|
|
|
68
94
|
stroke-dashoffset: -12;
|
|
69
95
|
}
|
|
70
96
|
}
|
|
97
|
+
/* `overflow` animates discretely — it flips mid-animation, so both endpoints must clip for the
|
|
98
|
+
* content to stay inside the box the whole way. No fill mode, so a settled-open panel is back to
|
|
99
|
+
* its own `overflow: visible` at its own height. */
|
|
100
|
+
@keyframes collapsible-open {
|
|
101
|
+
from {
|
|
102
|
+
height: 0;
|
|
103
|
+
overflow: hidden;
|
|
104
|
+
}
|
|
105
|
+
to {
|
|
106
|
+
height: var(--radix-collapsible-content-height);
|
|
107
|
+
overflow: hidden;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
@keyframes collapsible-close {
|
|
111
|
+
from {
|
|
112
|
+
height: var(--radix-collapsible-content-height);
|
|
113
|
+
overflow: hidden;
|
|
114
|
+
}
|
|
115
|
+
to {
|
|
116
|
+
height: 0;
|
|
117
|
+
overflow: hidden;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
71
120
|
|
|
72
121
|
/* Fallback-chain utilities (kept as @utility, not @theme, so the runtime-var +
|
|
73
122
|
* fallback chain is preserved exactly as v3 emitted it — a @theme token whose name
|
|
@@ -100,6 +149,21 @@
|
|
|
100
149
|
sans-serif;
|
|
101
150
|
}
|
|
102
151
|
|
|
152
|
+
/* Interaction-state variant — `not-disabled:hover:…`. Skips BOTH ways a control reports being
|
|
153
|
+
* disabled; v4's core `not-*` compound reads the same name as `:not(:disabled)` alone, so this
|
|
154
|
+
* deliberately shadows it. That shadowing is why the variant has to live here and not in an
|
|
155
|
+
* `addVariant` in design's `@config` plugin: an app's own build has no bridge to that plugin, so
|
|
156
|
+
* it fell through to the core variant and silently dropped the `data-disabled` half — every
|
|
157
|
+
* `tw:not-disabled:*` class kbc-ui authors that design's compiled CSS did not already carry
|
|
158
|
+
* still highlighted a `[data-disabled="true"]` control on hover and focus. */
|
|
159
|
+
@custom-variant not-disabled (&:not([data-disabled="true"]):not(:disabled));
|
|
160
|
+
|
|
161
|
+
/* `overflow-wrap: anywhere` — no v4 core utility covers it (`break-words` is `break-word`,
|
|
162
|
+
* which keeps long unbroken tokens overflowing). Authored in 16 app files. */
|
|
163
|
+
@utility break-anywhere {
|
|
164
|
+
overflow-wrap: anywhere;
|
|
165
|
+
}
|
|
166
|
+
|
|
103
167
|
@theme inline {
|
|
104
168
|
--color-inherit: inherit;
|
|
105
169
|
--color-transparent: rgba(255, 255, 255, 0);
|
|
@@ -118,6 +182,7 @@
|
|
|
118
182
|
--color-accent-foreground: rgb(var(--accent-foreground));
|
|
119
183
|
--color-border: rgb(var(--border));
|
|
120
184
|
--color-input: rgb(var(--input));
|
|
185
|
+
--color-input-background: rgb(var(--input-background));
|
|
121
186
|
--color-ring: rgb(var(--ring));
|
|
122
187
|
--color-ring-offset: rgb(var(--ring-offset));
|
|
123
188
|
--color-chart-1: rgb(var(--chart-1));
|