@keboola/design 10.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 +2 -0
- package/dist/MermaidDiagram-ZU5KAVRT.js +18 -0
- package/dist/{MermaidDiagram-EOKJHQQV.js.map → MermaidDiagram-ZU5KAVRT.js.map} +1 -1
- package/dist/charts.d.ts +14 -8
- package/dist/charts.js +6 -1
- 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-Q7NWXLCT.js → chunk-7GTI3PPI.js} +53 -48
- 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-XV3UUOYF.js → chunk-ERAHK5YQ.js} +9 -359
- 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-JP7PNHLH.js → chunk-G3PMV62Z.js} +3 -10
- 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-CTCFYWJC.js → chunk-IXAYNBOY.js} +6 -6
- package/dist/{chunk-CTCFYWJC.js.map → chunk-IXAYNBOY.js.map} +1 -1
- 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-C3L3TBBT.js → chunk-KTTLLKGQ.js} +6 -63
- 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-VMFSRV5H.js → chunk-OTL5WXIJ.js} +2 -2
- package/dist/{chunk-VMFSRV5H.js.map → chunk-OTL5WXIJ.js.map} +1 -1
- package/dist/{chunk-VPPM7UUQ.js → chunk-PACNBKJV.js} +3 -3
- package/dist/{chunk-VPPM7UUQ.js.map → chunk-PACNBKJV.js.map} +1 -1
- package/dist/{chunk-ESBL3IPF.js → chunk-PROCA7K7.js} +2 -2
- package/dist/{chunk-ESBL3IPF.js.map → chunk-PROCA7K7.js.map} +1 -1
- 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-BOHNXTMM.js → chunk-RQVK4IYC.js} +3 -3
- package/dist/{chunk-BOHNXTMM.js.map → chunk-RQVK4IYC.js.map} +1 -1
- 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-IJTHFNNJ.js → chunk-SVBSNSD4.js} +10 -12
- 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-63NSN2VL.js → chunk-SWQFYNYG.js} +115 -51
- 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-7PUUHEJQ.js → chunk-YFZJ3ZLG.js} +26 -42
- package/dist/chunk-YFZJ3ZLG.js.map +1 -0
- package/dist/{chunk-6FPEI4EM.js → chunk-YI3WLXEN.js} +27 -2323
- 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.js +22 -14
- package/dist/editors.js.map +1 -1
- package/dist/icons.js +7 -2
- package/dist/index.d.ts +8 -18
- package/dist/index.js +121 -15800
- 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 +23 -9
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.js +16 -8
- package/dist/rjsf.js +102 -29
- package/dist/rjsf.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/testing.js +8 -3
- package/dist/testing.js.map +1 -1
- package/package.json +9 -8
- package/src/styles.css +35 -7
- package/src/theme.css +64 -0
- package/dist/MermaidDiagram-EOKJHQQV.js +0 -10
- package/dist/chunk-63NSN2VL.js.map +0 -1
- package/dist/chunk-6FPEI4EM.js.map +0 -1
- package/dist/chunk-7PUUHEJQ.js.map +0 -1
- package/dist/chunk-C3L3TBBT.js.map +0 -1
- package/dist/chunk-IJTHFNNJ.js.map +0 -1
- package/dist/chunk-JP7PNHLH.js.map +0 -1
- package/dist/chunk-KPNAW5MU.js +0 -229
- package/dist/chunk-KPNAW5MU.js.map +0 -1
- package/dist/chunk-L37JJ6MR.js +0 -152
- package/dist/chunk-L37JJ6MR.js.map +0 -1
- package/dist/chunk-Q7NWXLCT.js.map +0 -1
- package/dist/chunk-SYIEF644.js +0 -1016
- package/dist/chunk-SYIEF644.js.map +0 -1
- package/dist/chunk-XV3UUOYF.js.map +0 -1
package/dist/testing.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import { ThemeProvider } from './chunk-
|
|
2
|
-
import
|
|
3
|
-
import './chunk-
|
|
1
|
+
import { ThemeProvider } from './chunk-KTTLLKGQ.js';
|
|
2
|
+
import './chunk-KR7NXXHC.js';
|
|
3
|
+
import './chunk-SWQFYNYG.js';
|
|
4
|
+
import './chunk-3W27OLK5.js';
|
|
5
|
+
import './chunk-MODE4QIA.js';
|
|
6
|
+
import { keboolaLegacyIds, ArgoDesignContext } from './chunk-WETKNYZX.js';
|
|
7
|
+
import './chunk-LXLIQ2D6.js';
|
|
8
|
+
import './chunk-G3PMV62Z.js';
|
|
4
9
|
import { render } from '@testing-library/react';
|
|
5
10
|
import { keboola } from '@keboola/brand-registry';
|
|
6
11
|
import { jsx } from 'react/jsx-runtime';
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/testing/renderWithTheme.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/testing/renderWithTheme.tsx"],"names":[],"mappings":";;;;;;;;;;;;AA2BO,IAAM,eAAA,GAAkB,CAAC,EAAA,EAAkB,OAAA,GAAmB,EAAC,KAAoB;AACxF,EAAA,MAAM,EAAE,KAAA,GAAQ,OAAA,EAAS,GAAG,MAAK,GAAI,OAAA;AACrC,EAAA,MAAM,MAAA,GAAS,CAAC,gBAAA,CAAiB,QAAA,CAAS,MAAM,EAAE,CAAA;AAClD,EAAA,OAAO,OAAO,EAAA,EAAI;AAAA,IAChB,GAAG,IAAA;AAAA,IACH,SAAS,CAAC,EAAE,UAAS,qBACnB,GAAA,CAAC,iBAAc,MAAA,EAAQ,CAAC,KAAK,CAAA,EAAG,OAAA,EAAS,MAAM,EAAA,EAC7C,QAAA,kBAAA,GAAA,CAAC,qBAAkB,KAAA,EAAO,MAAA,EAAS,UAAS,CAAA,EAC9C;AAAA,GAEH,CAAA;AACH","file":"testing.js","sourcesContent":["import type { ReactElement } from 'react';\nimport { render, type RenderOptions, type RenderResult } from '@testing-library/react';\n\nimport { type Brand, keboola } from '@keboola/brand-registry';\n\nimport { ArgoDesignContext, ThemeProvider } from '../components/ThemeProvider';\nimport { keboolaLegacyIds } from '../components/ThemeProvider/defaults';\n\ntype Options = Omit<RenderOptions, 'wrapper'> & {\n /** Brand to drive the wrapping `<ThemeProvider>`. Defaults to `keboola`. */\n brand?: Brand;\n};\n\n/**\n * `@testing-library/react` `render` wrapped in a `<ThemeProvider brand={...}>`.\n *\n * Use in unit tests for any component that calls `useTheme()` or relies on\n * the brand-driven CSS variables. Defaults to the canonical Keboola brand so\n * callers can opt into a specific brand only when they need to assert\n * brand-dependent behaviour (e.g. chrome re-skins under `keboola-legacy`).\n *\n * `ThemeProvider` no longer drives the argo/legacy design language (that is\n * kbc-ui-specific), so this helper also provides `ArgoDesignContext` derived\n * from the brand — a legacy brand renders legacy chrome, any other renders\n * argo — matching how kbc-ui wires it, so brand-dependent chrome tests keep\n * working through a single `brand` option.\n */\nexport const renderWithTheme = (ui: ReactElement, options: Options = {}): RenderResult => {\n const { brand = keboola, ...rest } = options;\n const isArgo = !keboolaLegacyIds.includes(brand.id);\n return render(ui, {\n ...rest,\n wrapper: ({ children }) => (\n <ThemeProvider brands={[brand]} brandId={brand.id}>\n <ArgoDesignContext value={isArgo}>{children}</ArgoDesignContext>\n </ThemeProvider>\n ),\n });\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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",
|
|
@@ -146,9 +146,9 @@
|
|
|
146
146
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
147
147
|
"vite": "^8.1.5",
|
|
148
148
|
"vitest": "^4.1.10",
|
|
149
|
-
"@keboola/
|
|
149
|
+
"@keboola/vitest-config": "^1.0.0",
|
|
150
150
|
"@keboola/tsconfig": "^0.2.0",
|
|
151
|
-
"@keboola/
|
|
151
|
+
"@keboola/oxlint-config": "^10.0.1"
|
|
152
152
|
},
|
|
153
153
|
"peerDependencies": {
|
|
154
154
|
"@testing-library/react": "^16.3.2",
|
|
@@ -233,9 +233,9 @@
|
|
|
233
233
|
"remark-gfm": "^4.0.1",
|
|
234
234
|
"sonner": "^2.0.7",
|
|
235
235
|
"tailwind-merge": "^3.6.0",
|
|
236
|
-
"@keboola/
|
|
237
|
-
"@keboola/
|
|
238
|
-
"@keboola/
|
|
236
|
+
"@keboola/codemirror-lang-sql": "^0.7.0",
|
|
237
|
+
"@keboola/tailwind-config": "^1.1.0",
|
|
238
|
+
"@keboola/brand-registry": "^1.9.1"
|
|
239
239
|
},
|
|
240
240
|
"scripts": {
|
|
241
241
|
"dev": "storybook dev -p \"${PORT:-6006}\"",
|
|
@@ -257,13 +257,14 @@
|
|
|
257
257
|
"lint:format": "oxfmt --check",
|
|
258
258
|
"lint:oxlint": "oxlint . --quiet",
|
|
259
259
|
"lint:design": "designmd lint DESIGN.md",
|
|
260
|
-
"ci-checks": "pnpm check:api && pnpm check:icons && pnpm size",
|
|
260
|
+
"ci-checks": "pnpm check:api && pnpm check:icons && pnpm check:contrast && pnpm size",
|
|
261
261
|
"size": "size-limit",
|
|
262
262
|
"generate:api": "tsx scripts/generate-component-api.ts",
|
|
263
263
|
"check:api": "tsx scripts/generate-component-api.ts --check",
|
|
264
264
|
"audit:contrast": "tsx scripts/contrast-audit.ts",
|
|
265
265
|
"type-check": "tsc",
|
|
266
266
|
"generate:icons": "tsx scripts/generate-icon-exports.ts",
|
|
267
|
-
"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"
|
|
268
269
|
}
|
|
269
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 {
|
|
@@ -119,6 +125,14 @@
|
|
|
119
125
|
with a black shadow so it doesn't read as a light halo on dark surfaces. */
|
|
120
126
|
--shadow-raised: 0 2px 6px 0 rgb(100 135 153 / 0.13);
|
|
121
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
|
+
|
|
122
136
|
/* Typography pairing — display + mono faces; a brand overrides via
|
|
123
137
|
`theme.typography.fontDisplay` / `fontMono`. Display defaults to the body
|
|
124
138
|
face (`--font-sans`), then the canonical Inter stack, so unset brands keep
|
|
@@ -250,6 +264,20 @@
|
|
|
250
264
|
blue-gray, which reads as a halo around Card / Search on dark surfaces. */
|
|
251
265
|
--shadow-raised: 0 2px 6px 0 rgb(0 0 0 / 0.4);
|
|
252
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
|
+
|
|
253
281
|
/* Table header — lighter than card so the header row reads as raised on dark
|
|
254
282
|
(light value is the tailwind-config fallback: 219 225 235). */
|
|
255
283
|
--table-header: 54 55 65;
|
|
@@ -292,8 +320,8 @@
|
|
|
292
320
|
html {
|
|
293
321
|
/* Brand font opt-in: a brand's `typography.fontFamily` is injected as
|
|
294
322
|
`--font-sans` by ThemeProvider and inherited from `html`; absent a brand
|
|
295
|
-
the fallback reproduces the canonical `tw
|
|
296
|
-
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
|
|
297
325
|
follow the brand — the Tailwind `fontFamily.sans` scale reads `--font-sans`
|
|
298
326
|
with the same `Inter` fallback. */
|
|
299
327
|
font-family: var(
|
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);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { MermaidDiagram } from './chunk-KPNAW5MU.js';
|
|
2
|
-
import './chunk-IJTHFNNJ.js';
|
|
3
|
-
import './chunk-VPPM7UUQ.js';
|
|
4
|
-
import './chunk-L37JJ6MR.js';
|
|
5
|
-
import './chunk-CTCFYWJC.js';
|
|
6
|
-
import './chunk-BOHNXTMM.js';
|
|
7
|
-
import './chunk-63NSN2VL.js';
|
|
8
|
-
import './chunk-JP7PNHLH.js';
|
|
9
|
-
//# sourceMappingURL=MermaidDiagram-EOKJHQQV.js.map
|
|
10
|
-
//# sourceMappingURL=MermaidDiagram-EOKJHQQV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ThemeProvider/utils.ts","../src/components/ThemeProvider/defaults.ts","../src/components/ThemeProvider/context.tsx","../src/constants/keyCodes.ts","../src/components/Tooltip/TooltipContent.tsx","../src/components/Tooltip/TooltipRoot.tsx","../src/components/Tooltip/TooltipTrigger.tsx","../src/components/Tooltip/Tooltip.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-63NSN2VL.js","sourcesContent":["import type { Brand } from '@keboola/brand-registry';\n\nimport type { Theme } from './types';\n\nexport const createTheme = (brand: Brand): Theme => ({\n id: brand.id,\n name: brand.name,\n shell: brand.shell,\n logo: brand.logo,\n});\n\nexport type CssVars = {\n set: (name: string, value: string | undefined) => void;\n expose: () => Record<string, string>;\n};\n\nexport const createCssVars = (): CssVars => {\n const vars: Record<string, string> = {};\n return {\n set: (name, value) => {\n if (value !== undefined) vars[name] = value;\n },\n expose: () => ({ ...vars }),\n };\n};\n","import type { Brand } from '@keboola/brand-registry';\nimport { keboolaLegacySidebar, keboolaLegacyTopnav } from '@keboola/brand-registry';\n\nimport type { ResolvedColorScheme } from './types';\nimport { createTheme } from './utils';\n\nexport const keboolaLegacyIds = [keboolaLegacySidebar.id, keboolaLegacyTopnav.id];\nexport const DEFAULT_COLOR_SCHEME: ResolvedColorScheme = 'light';\n\n// Sentinel active-brand id that maps to no registry brand. It resolves to\n// `defaultBrand` below, whose empty theme injects nothing — so the design-system\n// stylesheet defaults (`:root` / `[data-theme='dark']`) provide every token.\nexport const DEFAULT_BRAND_ID = 'design-system';\n\n// The \"no brand\" fallback: an empty theme → no CSS vars injected → the\n// stylesheet defaults win. Its shell/name still drive AppShell + switcher label.\nexport const defaultBrand: Brand = {\n id: DEFAULT_BRAND_ID,\n name: 'Design System',\n shell: 'sidebar',\n theme: {},\n};\nexport const defaultTheme = createTheme(defaultBrand);\n\nexport const DEFAULT_BRANDS: Brand[] = [];\n","import { createContext, use } from 'react';\n\nimport { DEFAULT_COLOR_SCHEME, defaultTheme } from './defaults';\nimport type { Theme } from './types';\nimport type { useBrandState } from './useBrandState';\nimport type { useColorSchemeState } from './useColorSchemeState';\n\nexport type ThemeContextValue = ReturnType<typeof useColorSchemeState> &\n ReturnType<typeof useBrandState> & {\n themes: Theme[];\n currentTheme: Theme;\n };\n\nconst noop = () => void 0;\n\nconst defaultContext: ThemeContextValue = {\n scheme: DEFAULT_COLOR_SCHEME,\n resolvedScheme: DEFAULT_COLOR_SCHEME,\n setScheme: noop,\n brandId: defaultTheme.id,\n setBrand: noop,\n\n themes: [defaultTheme],\n currentTheme: defaultTheme,\n};\n\nexport const ThemeContext = createContext(defaultContext);\n\nexport const useTheme = () => use(ThemeContext);\n\n/**\n * TEMPORARY — kbc-ui-internal only.\n *\n * Flags whether the subtree renders the argo design language. Defaults to argo\n * (`true`) — the modern default; legacy chrome is the exception. It exists\n * solely to bridge kbc-ui while its chrome is migrated off the legacy design\n * language: kbc-ui provides `false` for legacy brands/surfaces (see its\n * `AppThemeProvider`) and reads it via `useArgoDesign`. `ThemeProvider` does\n * not set it — argo is decoupled from the brand. Once every kbc-ui surface has\n * been migrated, this context and its hook can be deleted.\n */\nexport const ArgoDesignContext = createContext<boolean>(true);\n\nexport const useArgoDesign = () => use(ArgoDesignContext);\n","export const keyCodes = {\n ENTER: 'Enter',\n ESCAPE: 'Escape',\n SPACE: ' ',\n};\n","import type { ComponentProps } from 'react';\nimport { Content, Portal } from '@radix-ui/react-tooltip';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\nimport { useArgoDesign } from '../ThemeProvider/context';\n\nconst tooltipVariants = cva(\n [\n 'tailwindcss-preflight',\n 'tw:inline-block',\n 'tw:break-anywhere',\n 'tw:max-h-96',\n 'tw:overflow-y-auto',\n 'tw:z-[1060]',\n\n // legacy (dark) chrome — default\n 'tw:rounded',\n 'tw:bg-neutral-800',\n 'tw:text-white',\n\n // argo chrome overrides — semantic floating-panel tokens\n 'tw:data-[argo=true]:rounded-2xl',\n 'tw:data-[argo=true]:border',\n 'tw:data-[argo=true]:border-solid',\n 'tw:data-[argo=true]:border-border',\n 'tw:data-[argo=true]:bg-popover',\n 'tw:data-[argo=true]:text-popover-foreground',\n 'tw:data-[argo=true]:shadow-md',\n\n // argo open animation\n 'tw:data-[argo=true]:data-[state=delayed-open]:animate-in',\n 'tw:data-[argo=true]:data-[state=instant-open]:animate-in',\n 'tw:data-[argo=true]:data-[state=delayed-open]:fade-in-0',\n 'tw:data-[argo=true]:data-[state=instant-open]:fade-in-0',\n 'tw:data-[argo=true]:data-[state=delayed-open]:zoom-in-95',\n 'tw:data-[argo=true]:data-[state=instant-open]:zoom-in-95',\n\n // argo closed animation\n 'tw:data-[argo=true]:data-[state=closed]:animate-out',\n 'tw:data-[argo=true]:data-[state=closed]:fade-out-0',\n 'tw:data-[argo=true]:data-[state=closed]:zoom-out-95',\n\n // argo position animation\n 'tw:data-[argo=true]:data-[side=bottom]:slide-in-from-top-2',\n 'tw:data-[argo=true]:data-[side=left]:slide-in-from-right-2',\n 'tw:data-[argo=true]:data-[side=right]:slide-in-from-left-2',\n 'tw:data-[argo=true]:data-[side=top]:slide-in-from-bottom-2',\n ],\n {\n defaultVariants: {\n variant: 'action',\n },\n variants: {\n variant: {\n action: [\n 'tw:max-w-fit',\n 'tw:px-3',\n 'tw:py-2',\n\n 'tw:text-center',\n 'tw:text-xs',\n 'tw:font-medium',\n // Legacy chrome uppercases the action tooltip; the Keboola V2 brand\n // (`data-brand=\"keboola\"`) renders it in standard case instead.\n 'tw:uppercase',\n 'tw:tracking-wider',\n 'tw:[[data-brand=keboola]_&]:normal-case',\n 'tw:[[data-brand=keboola]_&]:tracking-normal',\n ],\n explanatory: [\n 'tw:max-w-80',\n 'tw:px-4',\n 'tw:py-3',\n 'tw:text-left',\n\n 'tw:text-sm',\n 'tw:font-normal',\n ],\n },\n },\n },\n);\n\ntype Props = {\n keepOpenOnPointerDownOutside?: boolean;\n placement?: ComponentProps<typeof Content>['side'];\n} & Omit<ComponentProps<typeof Content>, 'side'> &\n VariantProps<typeof tooltipVariants>;\n\nexport const TooltipContent = ({\n className,\n variant,\n keepOpenOnPointerDownOutside = false,\n children,\n onPointerDownOutside,\n sideOffset = 8,\n collisionPadding = 8,\n hideWhenDetached = true,\n placement = 'right',\n ...rest\n}: Props) => {\n const renderArgo = useArgoDesign();\n\n const handlePointerDownOutside: ComponentProps<typeof Content>['onPointerDownOutside'] = (\n event,\n ) => {\n if (keepOpenOnPointerDownOutside) event.preventDefault();\n onPointerDownOutside?.(event);\n };\n\n return (\n <Portal>\n <Content\n {...rest}\n // Marks the dark (non-argo) tooltip chrome so styles.css can invert\n // nested `.tw\\:prose` for contrast.\n data-tooltip-content={renderArgo ? undefined : true}\n data-argo={renderArgo}\n sideOffset={sideOffset}\n collisionPadding={collisionPadding}\n onPointerDownOutside={handlePointerDownOutside}\n className={tooltipVariants({ className, variant })}\n hideWhenDetached={hideWhenDetached}\n side={placement}\n >\n {children}\n </Content>\n </Portal>\n );\n};\n","import type { ComponentProps } from 'react';\nimport { Root } from '@radix-ui/react-tooltip';\n\ntype Props = ComponentProps<typeof Root>;\n\nconst DELAY_SHOW_TOOLTIP = 300;\n\nexport const TooltipRoot = ({ children, delayDuration = DELAY_SHOW_TOOLTIP, ...rest }: Props) => (\n <Root {...rest} delayDuration={delayDuration}>\n {children}\n </Root>\n);\n","import type { ComponentProps } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { Trigger } from '@radix-ui/react-tooltip';\n\nimport { cn } from '../../utils';\n\n/**\n * Radix stamps the tooltip's own open/closed `data-state` onto the trigger. Merged onto an\n * `asChild` child that keeps a `data-state` of its own — `ToggleGroup.Item`, `Switch`, a `Tabs`\n * trigger — it wins, because those primitives spread incoming props *after* their own attribute.\n * The child then silently loses every `data-[state=…]` style it has, which is usually the only\n * thing marking it as selected.\n *\n * The tooltip's trigger state is styled nowhere, so it is dropped before it reaches the child.\n */\nconst WithoutTooltipState = ({\n children,\n ...props\n // `Slot`'s own props, plus the one attribute this exists to remove: React's types declare no\n // `data-*`, so it has to be named to be destructured away.\n}: ComponentProps<typeof Slot> & { 'data-state'?: string }) => {\n const { 'data-state': _tooltipState, ...rest } = props;\n\n return <Slot {...rest}>{children}</Slot>;\n};\n\ntype Props = {\n keepOpenOnClick?: boolean;\n} & ComponentProps<typeof Trigger>;\n\nexport const TooltipTrigger = ({\n ref,\n children,\n className,\n keepOpenOnClick = false,\n onClick,\n onPointerDown,\n asChild,\n ...rest\n}: Props) => {\n const handleClick: ComponentProps<typeof Trigger>['onClick'] = (event) => {\n if (keepOpenOnClick) event.preventDefault();\n onClick?.(event);\n };\n\n const handlePointerDown: ComponentProps<typeof Trigger>['onPointerDown'] = (event) => {\n if (keepOpenOnClick) event.preventDefault();\n onPointerDown?.(event);\n };\n\n return (\n <Trigger\n {...rest}\n asChild\n ref={ref}\n className={cn('tailwindcss-preflight', className)}\n onClick={handleClick}\n onPointerDown={handlePointerDown}\n >\n {asChild ? (\n <WithoutTooltipState>{children}</WithoutTooltipState>\n ) : (\n // Default-mode trigger wraps children in a span so Radix has a\n // single DOM element to attach handlers to. `tailwindcss-preflight`\n // (merged in via Slot) activates Tailwind's preflight inside the\n // span, which sets `svg { display: block }` — without an inline-flex\n // container that would stack any bare Lucide icon onto its own\n // line. `tw:inline-flex tw:items-center` keeps icon + text aligned.\n <span className=\"tw:inline-flex tw:items-center\">{children}</span>\n )}\n </Trigger>\n );\n};\n","import { useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport type { Content, Trigger } from '@radix-ui/react-tooltip';\nimport { Provider } from '@radix-ui/react-tooltip';\n\nimport { keyCodes } from '../../constants/keyCodes';\n\nimport { TooltipContent } from './TooltipContent';\nimport { TooltipRoot } from './TooltipRoot';\nimport { TooltipTrigger } from './TooltipTrigger';\n\nconst ACTION_TOOLTIP_LIMIT = 30;\n\ntype TriggerProps = {\n triggerAsChild?: boolean;\n};\n\n/**\n * Props for `Tooltip`. `tooltip` is the popup content; `children` is the trigger element.\n * `variant` auto-resolves to `\"explanatory\"` for strings >30 chars, else `\"action\"`.\n */\nexport type Props = {\n /** Keep the tooltip visible when the user clicks the trigger (useful for click-to-copy feedback). */\n keepOpenOnTriggerClick?: boolean;\n /** Content rendered inside the tooltip. Plain text only — no interactive elements (use `HoverCard` or `Popover` for that). */\n tooltip: ReactNode;\n children: ReactNode;\n placement?: ComponentProps<typeof Content>['side'];\n /** Forcibly hide the tooltip regardless of hover state. */\n forceHide?: boolean;\n /** Forcibly show the tooltip regardless of hover state. Useful for guided-tour overlays. */\n forceShow?: boolean;\n /** Hover delay before the tooltip opens, in ms. Defaults to the shared 300ms. */\n delayDuration?: number;\n className?: string;\n} & TriggerProps &\n Pick<ComponentProps<typeof TooltipContent>, 'variant' | 'className'>;\n\n/** Re-export of Radix `Tooltip.Provider`. Mount once at the app root so tooltips share delay state. */\nexport const TooltipProvider = Provider;\n\n/**\n * Short plain-text label that appears on hover or focus.\n *\n * **When to use:** describing an icon-only `Button`, explaining a disabled control, or labelling a\n * truncated value. Plain text only — auto-switches to the longer `\"explanatory\"` variant when the string\n * exceeds 30 characters.\n * **When NOT to use:** for rich preview content (multiple lines, formatted text, structured data) use\n * `HoverCard`; for tooltips containing links or buttons use `Popover` (interactive elements break a11y\n * inside a `Tooltip`).\n * **Composition:** wrap any focusable element via `triggerAsChild` so the tooltip targets the underlying\n * native element. Mount `TooltipProvider` once at the app root.\n *\n * @see RECIPES.md#disabled-button-tooltip — for the disabled-button + tooltip pattern\n */\nexport const Tooltip = ({\n tooltip,\n children,\n className,\n keepOpenOnTriggerClick = false,\n variant,\n placement = 'right',\n forceHide = false,\n forceShow = false,\n delayDuration,\n // trigger props\n triggerAsChild = false,\n}: Props) => {\n const [open, setOpen] = useState(false);\n\n const resolvedVariant = (() => {\n if (!!variant) return variant;\n if (typeof tooltip === 'string' && tooltip.length > ACTION_TOOLTIP_LIMIT) return 'explanatory';\n\n return 'action';\n })();\n\n const isActionVariant = resolvedVariant === 'action';\n\n const handleKeyUp: ComponentProps<typeof Trigger>['onKeyUp'] = (event) => {\n if (![keyCodes.ENTER, keyCodes.SPACE].includes(event.key)) return;\n event.stopPropagation();\n };\n\n return (\n <TooltipRoot\n open={!!tooltip && (open || forceShow) && !forceHide}\n onOpenChange={setOpen}\n delayDuration={delayDuration}\n disableHoverableContent={isActionVariant}\n >\n <TooltipTrigger\n asChild={triggerAsChild}\n keepOpenOnClick={keepOpenOnTriggerClick}\n onKeyUp={handleKeyUp}\n >\n {children}\n </TooltipTrigger>\n\n <TooltipContent\n className={className}\n variant={resolvedVariant}\n placement={placement}\n keepOpenOnPointerDownOutside={keepOpenOnTriggerClick}\n >\n {tooltip}\n </TooltipContent>\n </TooltipRoot>\n );\n};\n\nTooltip.Root = TooltipRoot;\nTooltip.Content = TooltipContent;\nTooltip.Trigger = TooltipTrigger;\n"]}
|