@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Toast/ToastAction.tsx","../src/components/Toast/ToastDescription.tsx","../src/components/Toast/ToastDismiss.tsx","../src/components/Toast/ToastDuration.tsx","../src/components/Toast/ToastTitle.tsx","../src/components/Toast/ToastRoot.tsx","../src/components/Toast/toast.tsx"],"names":["jsx","sonnerToast","jsxs","toast"],"mappings":"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","file":"chunk-6W5BHRCL.js","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'button'>;\n\nexport const ToastAction = ({ ref, className, ...rest }: Props) => (\n <button\n {...rest}\n ref={ref}\n data-slot=\"toast-action\"\n type=\"button\"\n className={cn(\n // layout\n 'tw:col-start-3',\n 'tw:row-start-1',\n 'tw:flex',\n 'tw:items-center',\n 'tw:justify-center',\n\n // font\n 'tw:text-xs',\n 'tw:font-medium',\n 'tw:text-primary',\n\n // sizing\n 'tw:px-2',\n 'tw:h-6',\n\n // styles\n 'tw:bg-primary-foreground',\n 'tw:rounded',\n className,\n )}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const ToastDescription = ({ ref, className, children, ...rest }: Props) => (\n <div\n ref={ref}\n data-slot=\"toast-description\"\n className={cn(\n 'tw:col-start-2',\n 'tw:font-normal',\n 'tw:break-words',\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:text-muted-foreground',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentProps } from 'react';\n\nimport { X } from '../../icons';\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'button'>;\n\nexport const ToastDismiss = ({ ref, className, ...rest }: Props) => (\n <button\n ref={ref}\n data-slot=\"toast-dismiss\"\n className={cn(\n 'tw:flex',\n 'tw:justify-center',\n 'tw:col-start-4',\n 'tw:row-start-1',\n 'tailwindcss-preflight',\n 'tw:[&_svg]:aspect-square',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-4',\n 'tw:[&_svg]:m-1',\n\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:[&_svg]:text-popover-foreground',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:text-foreground',\n className,\n )}\n type=\"button\"\n {...rest}\n >\n <X />\n <span className=\"tw:sr-only\">Dismiss</span>\n </button>\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype ToastDurationProps = ComponentProps<'span'> & {\n duration: number;\n};\n\nexport const ToastDuration = ({ ref, duration, className, style, ...rest }: ToastDurationProps) => (\n <span\n {...rest}\n ref={ref}\n className={cn(\n 'tw:bg-white/30',\n 'tw:group-data-[variant=default]/toast:bg-popover-foreground/20',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:bg-foreground/20',\n 'tw:rounded-bl-lg',\n 'tw:mx-px',\n\n // positioning\n 'tw:absolute',\n 'tw:bottom-0',\n 'tw:left-0',\n\n // sizing\n 'tw:h-1',\n\n // animation\n 'tw:animate-toast-progress',\n 'tw:group-hover/toast:[animation-play-state:paused]',\n className,\n )}\n style={{\n animationDuration: `${duration}ms`,\n ...style,\n }}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const ToastTitle = ({ ref, className, children, ...rest }: Props) => (\n <div\n ref={ref}\n data-slot=\"toast-title\"\n className={cn(\n 'tw:col-start-2',\n 'tw:text-sm',\n 'tw:leading-6',\n 'tw:min-h-6',\n 'tw:self-center',\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:text-popover-foreground',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground',\n\n 'tw:break-words',\n 'tw:font-medium',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { MouseEventHandler, ReactNode } from 'react';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\nimport { type Action, toast as sonnerToast } from 'sonner';\n\nimport { AlertCircle, AlertTriangle, CircleCheck, Info, Loader2 } from '../../icons';\nimport { cn } from '../../utils';\nimport { useArgoDesign } from '../ThemeProvider/context';\n\nimport { ToastAction } from './ToastAction';\nimport { ToastDescription } from './ToastDescription';\nimport { ToastDismiss } from './ToastDismiss';\nimport { ToastDuration } from './ToastDuration';\nimport { ToastTitle } from './ToastTitle';\n\nconst variants = cva(\n [\n 'tailwindcss-preflight',\n 'tw:group/toast',\n 'tw:relative',\n\n // layout\n 'tw:grid',\n 'tw:grid-cols-[0_1fr_auto_auto]',\n 'tw:items-start',\n 'tw:has-[[data-slot=toast-description]]:grid-rows-[auto_auto]',\n 'tw:has-[[data-slot=toast-icon]]:grid-cols-[auto_1fr_auto_auto]',\n 'tw:[&_[data-slot=toast-icon]]:mr-2',\n 'tw:[&_[data-slot=toast-title]]:mr-2.5',\n 'tw:[&_[data-slot=toast-description]]:mr-2.5',\n 'tw:[&_[data-slot=toast-action]]:mr-2',\n 'tw:[&_[data-slot=toast-description]]:col-end-3',\n 'tw:gap-y-0',\n\n // styles\n 'tw:p-4',\n 'tw:rounded-lg',\n 'tw:shadow-md',\n ],\n {\n defaultVariants: {\n variant: 'info',\n },\n variants: {\n variant: {\n default: 'tw:border tw:border-border tw:bg-popover',\n error: 'tw:bg-error-550',\n info: 'tw:bg-blue-600',\n success: 'tw:bg-green-700',\n warning: 'tw:bg-warning-550',\n },\n },\n },\n);\n\ntype Variants = VariantProps<typeof variants>;\ntype Variant = NonNullable<Variants['variant']>;\ntype VariantIcon = Exclude<Variant, 'default'>;\n\ntype Props = {\n id: string | number;\n title: ReactNode;\n icon?: ReactNode;\n description?: ReactNode;\n action?: Action;\n loading?: boolean;\n duration?: number;\n // offset?: number;\n} & Variants;\n\nconst DEFAULT_VARIANT_ICON: Record<VariantIcon, ReactNode> = {\n error: <AlertTriangle />,\n info: <Info />,\n success: <CircleCheck />,\n warning: <AlertCircle />,\n};\n\nexport const ToastRoot = ({\n id,\n title,\n description,\n action,\n duration = Infinity,\n variant = 'info',\n loading = false,\n icon: iconProp,\n}: Props) => {\n const renderArgo = useArgoDesign();\n\n const icon: ReactNode = (() => {\n if (loading) return <Loader2 className=\"tw:animate-spin\" />;\n if (iconProp) return iconProp;\n if (variant === 'default' || variant === null) return null;\n return DEFAULT_VARIANT_ICON[variant];\n })();\n\n const handleActionClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n sonnerToast.dismiss(id);\n action?.onClick(event);\n };\n\n return (\n <div\n data-variant={variant}\n data-argo={renderArgo}\n className={cn(\n variants({ variant }),\n 'tw:data-[variant=default]:data-[argo=true]:bg-background',\n )}\n >\n {icon && (\n <span\n data-slot=\"toast-icon\"\n className={cn(\n 'tw:inline-flex',\n 'tw:items-center',\n 'tw:justify-center',\n 'tw:self-center',\n 'tw:aspect-square',\n 'tw:size-5',\n 'tw:shrink-0',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-5',\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:text-popover-foreground',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground',\n )}\n >\n {icon}\n </span>\n )}\n\n <ToastTitle>{title}</ToastTitle>\n {description && <ToastDescription>{description}</ToastDescription>}\n {action && (\n <ToastAction style={action?.actionButtonStyle} onClick={handleActionClick}>\n {action.label}\n </ToastAction>\n )}\n <ToastDismiss onClick={() => sonnerToast.dismiss(id)} />\n {duration !== Infinity && <ToastDuration duration={duration} />}\n </div>\n );\n};\n","import type { ComponentProps, ReactNode } from 'react';\nimport { type ExternalToast, toast as sonnerToast } from 'sonner';\n\nimport { cn } from '../../utils';\n\nimport { ToastRoot } from './ToastRoot';\n\ntype ToastProps = ComponentProps<typeof ToastRoot>;\ntype Title = ToastProps['title'] | ((opts: { dismiss: () => void }) => ReactNode);\n\nexport type ToastOptions = { id?: string | number; title: Title } & Omit<\n ToastProps,\n 'id' | 'title'\n> &\n Pick<\n ExternalToast,\n 'onAutoClose' | 'onDismiss' | 'testId' | 'toasterId' | 'dismissible' | 'position'\n >;\ntype DerivedToastOptions = Omit<ToastOptions, 'title' | 'variant'>;\n\nexport const toast = ({\n onAutoClose,\n onDismiss,\n testId,\n toasterId,\n dismissible = true,\n position,\n title: titleProp,\n ...toast\n}: ToastOptions) => {\n const duration = (() => {\n if (typeof toast.duration === 'number') return toast.duration;\n if (toast.variant === 'error' || toast.variant === 'warning') return Infinity;\n return toast.duration ?? 5000;\n })();\n\n const renderCustomToast: Parameters<typeof sonnerToast.custom>[0] = (id) => {\n const title =\n typeof titleProp === 'function'\n ? titleProp({ dismiss: () => sonnerToast.dismiss(id) })\n : titleProp;\n\n return <ToastRoot {...toast} id={id} title={title} duration={duration} />;\n };\n\n return sonnerToast.custom(renderCustomToast, {\n // toast generated by sonner will always have an id, but we want to allow users to specify their own id if they want to\n // can not pass undefined, as it will break dismiss\n ...(toast.id != null ? { id: toast.id } : {}),\n unstyled: true,\n position,\n onAutoClose,\n onDismiss,\n testId,\n toasterId,\n dismissible,\n duration,\n // override default focus-visible styles to match our design\n className: cn('tw:rounded-lg', 'tw:focus-visible:!ring-4', 'tw:focus-visible:!ring-ring/50'),\n });\n};\n\ntoast.success = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'success',\n });\n\ntoast.error = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'error',\n duration: options?.duration ?? Infinity,\n });\n\ntoast.warning = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'warning',\n duration: options?.duration ?? Infinity,\n });\n\ntoast.info = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'info',\n });\n\ntoast.dismiss = (toastId?: ToastOptions['id']) => sonnerToast.dismiss(toastId);\ntoast.dismissAll = () => sonnerToast.dismiss();\n"]}
|
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
import { cn } from './chunk-LXLIQ2D6.js';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
import { diffLines, diffWords } from 'diff';
|
|
6
|
+
|
|
7
|
+
var variants = cva(["tw:p-0.5", "tw:text-inherit", "tw:inline-flex"], {
|
|
8
|
+
variants: {
|
|
9
|
+
diff: {
|
|
10
|
+
added: ["tw:bg-green-200", "tw:[[data-theme=dark]_&]:bg-green-500/40"],
|
|
11
|
+
removed: ["tw:bg-error-300", "tw:[[data-theme=dark]_&]:bg-error-500/40"]
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
var DiffViewMark = ({ diff, children, className, ...props }) => /* @__PURE__ */ jsx("mark", { ...props, className: cn(variants({ diff, className })), children });
|
|
16
|
+
var variants2 = cva(
|
|
17
|
+
[
|
|
18
|
+
// reset global styles
|
|
19
|
+
"tw:[&_pre]:p-0",
|
|
20
|
+
"tw:[&_pre]:m-0",
|
|
21
|
+
"tw:[&_pre]:border-none",
|
|
22
|
+
"tw:[&_pre]:rounded-none",
|
|
23
|
+
"tw:align-top",
|
|
24
|
+
// `bg-transparent`, not `bg-inherit`: the cell tints are translucent under
|
|
25
|
+
// the dark scheme, and an inherited `background-color` repaints the same
|
|
26
|
+
// rgba over the already-composited cell — doubling the tint.
|
|
27
|
+
"tw:[&_pre]:bg-transparent",
|
|
28
|
+
"tw:[&_pre]:text-inherit",
|
|
29
|
+
"tw:[&_pre]:px-2",
|
|
30
|
+
"tw:[&_pre]:!leading-7",
|
|
31
|
+
"tw:[&_pre]:text-sm",
|
|
32
|
+
"tw:[&_pre]:whitespace-pre-wrap"
|
|
33
|
+
],
|
|
34
|
+
{
|
|
35
|
+
defaultVariants: {
|
|
36
|
+
variant: "default",
|
|
37
|
+
diff: "default"
|
|
38
|
+
},
|
|
39
|
+
variants: {
|
|
40
|
+
variant: {
|
|
41
|
+
default: [],
|
|
42
|
+
gutter: ["tw:w-14", "tw:text-right", "tw:whitespace-nowrap", "tw:select-none"],
|
|
43
|
+
code: []
|
|
44
|
+
},
|
|
45
|
+
diff: {
|
|
46
|
+
default: [],
|
|
47
|
+
added: [],
|
|
48
|
+
removed: []
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
// Added/removed rows are meaning-encoding, so they keep the fixed green /
|
|
52
|
+
// error ramps rather than a brand-overridable status token. Both need an
|
|
53
|
+
// explicit light/dark pair: the light pastel washes (`-100`/`-200`) are
|
|
54
|
+
// opaque, so under the dark scheme they stranded the near-white
|
|
55
|
+
// `foreground` on a light slab. Dark mode tints the same hue at low alpha
|
|
56
|
+
// over the pane surface instead, and every cell pins its own text colour —
|
|
57
|
+
// inheriting it left the added/removed code cells invisible in dark mode.
|
|
58
|
+
compoundVariants: [
|
|
59
|
+
{
|
|
60
|
+
variant: "gutter",
|
|
61
|
+
diff: "default",
|
|
62
|
+
className: ["tw:bg-muted", "tw:text-muted-foreground"]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
variant: "gutter",
|
|
66
|
+
diff: "added",
|
|
67
|
+
className: [
|
|
68
|
+
// `green-900` (6.1:1 on `green-200`), not `green-600` — that was 2.3:1.
|
|
69
|
+
"tw:bg-green-200 tw:text-green-900",
|
|
70
|
+
"tw:[[data-theme=dark]_&]:bg-green-500/25 tw:[[data-theme=dark]_&]:text-green-300"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
variant: "gutter",
|
|
75
|
+
diff: "removed",
|
|
76
|
+
className: [
|
|
77
|
+
// `error-700` (5.4:1 on `error-200`), not `error-500` — that was 3.3:1.
|
|
78
|
+
"tw:bg-error-200 tw:text-error-700",
|
|
79
|
+
"tw:[[data-theme=dark]_&]:bg-error-500/25 tw:[[data-theme=dark]_&]:text-error-300"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
variant: "code",
|
|
84
|
+
diff: "default",
|
|
85
|
+
className: ["tw:bg-background", "tw:text-foreground"]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
variant: "code",
|
|
89
|
+
diff: "added",
|
|
90
|
+
className: [
|
|
91
|
+
"tw:bg-green-100 tw:text-foreground",
|
|
92
|
+
"tw:[[data-theme=dark]_&]:bg-green-500/15"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
variant: "code",
|
|
97
|
+
diff: "removed",
|
|
98
|
+
className: [
|
|
99
|
+
"tw:bg-error-100 tw:text-foreground",
|
|
100
|
+
"tw:[[data-theme=dark]_&]:bg-error-500/15"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
var DiffViewTd = ({ diff, variant = "default", children, className, ...props }) => {
|
|
107
|
+
const needsCodeFormatting = variant === "code" || variant === "gutter";
|
|
108
|
+
return /* @__PURE__ */ jsx("td", { ...props, className: cn(variants2({ variant, className, diff })), children: needsCodeFormatting ? /* @__PURE__ */ jsx("pre", { children }) : children });
|
|
109
|
+
};
|
|
110
|
+
var DiffViewTh = ({ variant = "default", children, className, ...props }) => /* @__PURE__ */ jsx(
|
|
111
|
+
"th",
|
|
112
|
+
{
|
|
113
|
+
...props,
|
|
114
|
+
className: cn(
|
|
115
|
+
"tw:bg-background",
|
|
116
|
+
"tw:py-3",
|
|
117
|
+
// explicit `border-border`: v4 changed the default border color from gray-200 to
|
|
118
|
+
// `currentColor`, so a bare `border-b` rendered a dark divider (the th's text colour)
|
|
119
|
+
// instead of the light-grey header rule.
|
|
120
|
+
"tw:border-b",
|
|
121
|
+
"tw:border-border",
|
|
122
|
+
{ "tw:w-14": variant === "gutter" },
|
|
123
|
+
{ "tw:last:pr-8": variant === "default" },
|
|
124
|
+
className
|
|
125
|
+
),
|
|
126
|
+
children
|
|
127
|
+
}
|
|
128
|
+
);
|
|
129
|
+
var DiffType = {
|
|
130
|
+
DEFAULT: "default",
|
|
131
|
+
ADDED: "added",
|
|
132
|
+
REMOVED: "removed"
|
|
133
|
+
};
|
|
134
|
+
var EXTRA_LINES = 3;
|
|
135
|
+
var TAIL_BLOCK = Number.POSITIVE_INFINITY;
|
|
136
|
+
var splitLines = (value) => {
|
|
137
|
+
if (value === "") return [];
|
|
138
|
+
return value.replace(/\n$/, "").split("\n");
|
|
139
|
+
};
|
|
140
|
+
var computeWordDiff = (oldValue, newValue) => {
|
|
141
|
+
const result = { left: [], right: [] };
|
|
142
|
+
diffWords(oldValue, newValue).forEach(({ added, removed, value }) => {
|
|
143
|
+
if (added) {
|
|
144
|
+
result.right.push({ type: DiffType.ADDED, value, lineNumber: 0 });
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (removed) {
|
|
148
|
+
result.left.push({ type: DiffType.REMOVED, value, lineNumber: 0 });
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const unchanged = { type: DiffType.DEFAULT, value, lineNumber: 0 };
|
|
152
|
+
result.right.push(unchanged);
|
|
153
|
+
result.left.push(unchanged);
|
|
154
|
+
});
|
|
155
|
+
return result;
|
|
156
|
+
};
|
|
157
|
+
var findPairedAddedLine = (diffArray, blockIndex, lineIndex) => {
|
|
158
|
+
const nextBlock = diffArray[blockIndex + 1];
|
|
159
|
+
if (!nextBlock?.added) return null;
|
|
160
|
+
return splitLines(nextBlock.value)[lineIndex] ?? null;
|
|
161
|
+
};
|
|
162
|
+
var buildUnchangedLine = (value, counters) => {
|
|
163
|
+
counters.left += 1;
|
|
164
|
+
counters.right += 1;
|
|
165
|
+
return {
|
|
166
|
+
left: { type: DiffType.DEFAULT, value, lineNumber: counters.left },
|
|
167
|
+
right: { type: DiffType.DEFAULT, value, lineNumber: counters.right }
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
var buildAddedLine = (value, counters) => {
|
|
171
|
+
counters.right += 1;
|
|
172
|
+
return {
|
|
173
|
+
left: {},
|
|
174
|
+
right: { type: DiffType.ADDED, value, lineNumber: counters.right }
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
var buildRemovedLine = (value, counters) => {
|
|
178
|
+
counters.left += 1;
|
|
179
|
+
return {
|
|
180
|
+
left: { type: DiffType.REMOVED, value: value || " ", lineNumber: counters.left },
|
|
181
|
+
right: {}
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
var buildModifiedLine = (leftValue, rightValue, counters) => {
|
|
185
|
+
counters.left += 1;
|
|
186
|
+
counters.right += 1;
|
|
187
|
+
const displayLeft = leftValue || " ";
|
|
188
|
+
if (displayLeft === rightValue) {
|
|
189
|
+
return {
|
|
190
|
+
line: {
|
|
191
|
+
left: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.left },
|
|
192
|
+
right: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.right }
|
|
193
|
+
},
|
|
194
|
+
isActualChange: false
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
const { left, right } = computeWordDiff(leftValue, rightValue);
|
|
198
|
+
return {
|
|
199
|
+
line: {
|
|
200
|
+
left: { type: DiffType.REMOVED, value: left, lineNumber: counters.left },
|
|
201
|
+
right: { type: DiffType.ADDED, value: right, lineNumber: counters.right }
|
|
202
|
+
},
|
|
203
|
+
isActualChange: true
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
var computeLineInformation = (oldString, newString, ignoreWhitespace) => {
|
|
207
|
+
const diffArray = diffLines(oldString.trimEnd(), newString.trimEnd(), { ignoreWhitespace });
|
|
208
|
+
const counters = { left: 0, right: 0, global: 0 };
|
|
209
|
+
const lineInformation = [];
|
|
210
|
+
const diffLineSet = /* @__PURE__ */ new Set();
|
|
211
|
+
const consumedAddedLines = /* @__PURE__ */ new Set();
|
|
212
|
+
diffArray.forEach((block, blockIndex) => {
|
|
213
|
+
splitLines(block.value).forEach((value, lineIndex) => {
|
|
214
|
+
if (consumedAddedLines.has(`${blockIndex}-${lineIndex}`)) return;
|
|
215
|
+
if (block.removed) {
|
|
216
|
+
const paired = findPairedAddedLine(diffArray, blockIndex, lineIndex);
|
|
217
|
+
if (paired !== null) {
|
|
218
|
+
consumedAddedLines.add(`${blockIndex + 1}-${lineIndex}`);
|
|
219
|
+
const { line, isActualChange } = buildModifiedLine(value, paired, counters);
|
|
220
|
+
lineInformation.push(line);
|
|
221
|
+
if (isActualChange) diffLineSet.add(counters.global);
|
|
222
|
+
} else {
|
|
223
|
+
lineInformation.push(buildRemovedLine(value, counters));
|
|
224
|
+
diffLineSet.add(counters.global);
|
|
225
|
+
}
|
|
226
|
+
} else if (block.added) {
|
|
227
|
+
lineInformation.push(buildAddedLine(value, counters));
|
|
228
|
+
diffLineSet.add(counters.global);
|
|
229
|
+
} else {
|
|
230
|
+
lineInformation.push(buildUnchangedLine(value, counters));
|
|
231
|
+
}
|
|
232
|
+
counters.global += 1;
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
return {
|
|
236
|
+
lineInformation,
|
|
237
|
+
diffLines: [...diffLineSet].sort((a, b) => a - b)
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
var toSegments = (lineInformation, diffLineSet) => {
|
|
241
|
+
const segments = [];
|
|
242
|
+
let current = null;
|
|
243
|
+
lineInformation.forEach((line, index) => {
|
|
244
|
+
const isChange = diffLineSet.has(index);
|
|
245
|
+
if (current === null || current.kind === "change" !== isChange) {
|
|
246
|
+
current = isChange ? { kind: "change", lines: [line], firstIndex: index } : { kind: "context", lines: [line], firstIndex: index };
|
|
247
|
+
segments.push(current);
|
|
248
|
+
} else {
|
|
249
|
+
current.lines.push(line);
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
return segments;
|
|
253
|
+
};
|
|
254
|
+
var normalizeSide = (side) => {
|
|
255
|
+
const raw = Array.isArray(side.value) ? side.value : [{ value: side.value, type: DiffType.DEFAULT, lineNumber: 0 }];
|
|
256
|
+
return {
|
|
257
|
+
type: side.type,
|
|
258
|
+
lineNumber: side.lineNumber,
|
|
259
|
+
words: raw.filter((w) => typeof w.value === "string")
|
|
260
|
+
};
|
|
261
|
+
};
|
|
262
|
+
var renderLineRow = (line) => ({
|
|
263
|
+
kind: "line",
|
|
264
|
+
left: normalizeSide(line.left),
|
|
265
|
+
right: normalizeSide(line.right),
|
|
266
|
+
key: `${line.left.lineNumber}-${line.right.lineNumber}`
|
|
267
|
+
});
|
|
268
|
+
var renderContextSegment = (segment, nextChangeIndex, hasPrevChange, hasNextChange, expanded) => {
|
|
269
|
+
if (expanded.has(nextChangeIndex)) {
|
|
270
|
+
return segment.lines.map(renderLineRow);
|
|
271
|
+
}
|
|
272
|
+
const total = segment.lines.length;
|
|
273
|
+
const trail = hasPrevChange ? Math.min(EXTRA_LINES, total) : 0;
|
|
274
|
+
let lead = hasNextChange ? Math.min(EXTRA_LINES, total - trail) : 0;
|
|
275
|
+
let foldCount = total - trail - lead;
|
|
276
|
+
if (!hasNextChange && foldCount === 1) {
|
|
277
|
+
foldCount = 0;
|
|
278
|
+
lead = 1;
|
|
279
|
+
}
|
|
280
|
+
const rows = [];
|
|
281
|
+
if (trail > 0) {
|
|
282
|
+
rows.push(...segment.lines.slice(0, trail).map(renderLineRow));
|
|
283
|
+
}
|
|
284
|
+
if (foldCount > 0) {
|
|
285
|
+
rows.push({
|
|
286
|
+
kind: "fold",
|
|
287
|
+
blockStart: nextChangeIndex,
|
|
288
|
+
lineCount: foldCount,
|
|
289
|
+
key: hasNextChange ? `fold-${nextChangeIndex}` : `fold-tail-${segment.firstIndex + total - 1}`
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
if (lead > 0) {
|
|
293
|
+
rows.push(...segment.lines.slice(trail + foldCount).map(renderLineRow));
|
|
294
|
+
}
|
|
295
|
+
return rows;
|
|
296
|
+
};
|
|
297
|
+
var computeDiffRows = (lineInformation, diffLines2, expandedBlocks) => {
|
|
298
|
+
const diffLineSet = new Set(diffLines2);
|
|
299
|
+
const expanded = new Set(expandedBlocks);
|
|
300
|
+
const segments = toSegments(lineInformation, diffLineSet);
|
|
301
|
+
const rows = [];
|
|
302
|
+
let hasPrevChange = false;
|
|
303
|
+
segments.forEach((segment, i) => {
|
|
304
|
+
if (segment.kind === "change") {
|
|
305
|
+
rows.push(...segment.lines.map(renderLineRow));
|
|
306
|
+
hasPrevChange = true;
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const nextChange = segments.slice(i + 1).find((s) => s.kind === "change");
|
|
310
|
+
const nextStart = nextChange?.firstIndex ?? TAIL_BLOCK;
|
|
311
|
+
rows.push(...renderContextSegment(segment, nextStart, hasPrevChange, !!nextChange, expanded));
|
|
312
|
+
});
|
|
313
|
+
return rows;
|
|
314
|
+
};
|
|
315
|
+
var DiffView = ({
|
|
316
|
+
leftTitle,
|
|
317
|
+
leftTitleGutter,
|
|
318
|
+
rightTitle,
|
|
319
|
+
rightTitleGutter,
|
|
320
|
+
oldValue,
|
|
321
|
+
newValue,
|
|
322
|
+
ignoreWhitespace,
|
|
323
|
+
className
|
|
324
|
+
}) => {
|
|
325
|
+
const [expandedBlocks, setExpandedBlocks] = useState([]);
|
|
326
|
+
const { lineInformation, diffLines: diffLines2 } = computeLineInformation(
|
|
327
|
+
oldValue,
|
|
328
|
+
newValue,
|
|
329
|
+
ignoreWhitespace
|
|
330
|
+
);
|
|
331
|
+
const rows = computeDiffRows(lineInformation, diffLines2, expandedBlocks);
|
|
332
|
+
const handleExpand = (blockNumber) => {
|
|
333
|
+
setExpandedBlocks((curr) => [...curr, blockNumber]);
|
|
334
|
+
};
|
|
335
|
+
return /* @__PURE__ */ jsx(
|
|
336
|
+
"div",
|
|
337
|
+
{
|
|
338
|
+
className: cn(
|
|
339
|
+
"tailwindcss-preflight",
|
|
340
|
+
"tw:bg-muted",
|
|
341
|
+
// Pin the text colour rather than inheriting it: the diff is routinely
|
|
342
|
+
// portalled into a Modal, where an inherited colour comes from whatever
|
|
343
|
+
// sits above the portal root instead of this surface.
|
|
344
|
+
"tw:text-foreground",
|
|
345
|
+
// explicit `border-border` — v4's default border colour is `currentColor`, so a bare
|
|
346
|
+
// `border` drew a dark frame instead of the light-grey outline.
|
|
347
|
+
"tw:border",
|
|
348
|
+
"tw:border-border",
|
|
349
|
+
"tw:rounded-2xl",
|
|
350
|
+
"tw:overflow-auto",
|
|
351
|
+
className
|
|
352
|
+
),
|
|
353
|
+
children: /* @__PURE__ */ jsxs("table", { className: "tw:w-full tw:table-fixed tw:bg-background", children: [
|
|
354
|
+
/* @__PURE__ */ jsx("thead", { className: "tw:sticky tw:top-0 tw:z-10 tw:shadow-sm", children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
355
|
+
/* @__PURE__ */ jsx(DiffViewTh, { variant: "gutter", children: leftTitleGutter }),
|
|
356
|
+
/* @__PURE__ */ jsx(DiffViewTh, { children: leftTitle }),
|
|
357
|
+
/* @__PURE__ */ jsx(DiffViewTh, { variant: "gutter", children: rightTitleGutter }),
|
|
358
|
+
/* @__PURE__ */ jsx(DiffViewTh, { children: rightTitle })
|
|
359
|
+
] }) }),
|
|
360
|
+
/* @__PURE__ */ jsx("tbody", { children: rows.map((row) => {
|
|
361
|
+
if (row.kind === "fold")
|
|
362
|
+
return /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(DiffViewTd, { colSpan: 4, children: /* @__PURE__ */ jsxs(
|
|
363
|
+
"button",
|
|
364
|
+
{
|
|
365
|
+
type: "button",
|
|
366
|
+
onClick: () => handleExpand(row.blockStart),
|
|
367
|
+
className: cn(
|
|
368
|
+
"tw:w-full",
|
|
369
|
+
"tw:text-center",
|
|
370
|
+
"tw:bg-muted",
|
|
371
|
+
"tw:text-foreground",
|
|
372
|
+
"tw:hover:bg-accent",
|
|
373
|
+
"tw:underline",
|
|
374
|
+
"tw:p-2"
|
|
375
|
+
),
|
|
376
|
+
children: [
|
|
377
|
+
"Expand ",
|
|
378
|
+
row.lineCount,
|
|
379
|
+
" lines ..."
|
|
380
|
+
]
|
|
381
|
+
}
|
|
382
|
+
) }) }, row.key);
|
|
383
|
+
return /* @__PURE__ */ jsxs("tr", { children: [
|
|
384
|
+
/* @__PURE__ */ jsx(DiffViewTd, { variant: "gutter", diff: row.left.type, children: row.left.lineNumber }),
|
|
385
|
+
/* @__PURE__ */ jsx(DiffViewTd, { variant: "code", diff: row.left.type, children: row.left.words.map((val, index) => {
|
|
386
|
+
if (val.type === "default") return val.value;
|
|
387
|
+
return (
|
|
388
|
+
// oxlint-disable-next-line react/no-array-index-key
|
|
389
|
+
/* @__PURE__ */ jsx(DiffViewMark, { diff: val.type, children: val.value }, `${val.value}-${val.type}-${index}`)
|
|
390
|
+
);
|
|
391
|
+
}) }),
|
|
392
|
+
/* @__PURE__ */ jsx(DiffViewTd, { variant: "gutter", diff: row.right.type, children: row.right.lineNumber }),
|
|
393
|
+
/* @__PURE__ */ jsx(DiffViewTd, { variant: "code", diff: row.right.type, children: row.right.words.map((val, index) => {
|
|
394
|
+
if (val.type === "default") return val.value;
|
|
395
|
+
return (
|
|
396
|
+
// oxlint-disable-next-line react/no-array-index-key
|
|
397
|
+
/* @__PURE__ */ jsx(DiffViewMark, { diff: val.type, children: val.value }, `${val.value}-${val.type}-${index}`)
|
|
398
|
+
);
|
|
399
|
+
}) })
|
|
400
|
+
] }, row.key);
|
|
401
|
+
}) })
|
|
402
|
+
] })
|
|
403
|
+
}
|
|
404
|
+
);
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
export { DiffType, DiffView, computeDiffRows, computeLineInformation };
|
|
408
|
+
//# sourceMappingURL=chunk-72BKRCEG.js.map
|
|
409
|
+
//# sourceMappingURL=chunk-72BKRCEG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DiffView/DiffViewMark.tsx","../src/components/DiffView/DiffViewTd.tsx","../src/components/DiffView/DiffViewTh.tsx","../src/components/DiffView/util.ts","../src/components/DiffView/DiffView.tsx"],"names":["variants","cva","jsx","diffLines"],"mappings":"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","file":"chunk-72BKRCEG.js","sourcesContent":["import type { ComponentProps } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\n// `text-inherit` overrides the UA `mark` colour so the word highlight takes the\n// cell's text colour. That only works if the fill flips with the scheme too —\n// the light pastels are opaque, so under dark they put near-white text on a\n// light slab. Dark mode tints the same hue at a stronger alpha than the line\n// fill behind it, keeping the word-level mark the more prominent of the two.\nconst variants = cva(['tw:p-0.5', 'tw:text-inherit', 'tw:inline-flex'], {\n variants: {\n diff: {\n added: ['tw:bg-green-200', 'tw:[[data-theme=dark]_&]:bg-green-500/40'],\n removed: ['tw:bg-error-300', 'tw:[[data-theme=dark]_&]:bg-error-500/40'],\n },\n },\n});\n\ntype Props = ComponentProps<'span'> & VariantProps<typeof variants>;\n\nexport const DiffViewMark = ({ diff, children, className, ...props }: Props) => (\n <mark {...props} className={cn(variants({ diff, className }))}>\n {children}\n </mark>\n);\n","import type { ComponentProps } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\nconst variants = cva(\n [\n // reset global styles\n 'tw:[&_pre]:p-0',\n 'tw:[&_pre]:m-0',\n 'tw:[&_pre]:border-none',\n 'tw:[&_pre]:rounded-none',\n\n 'tw:align-top',\n // `bg-transparent`, not `bg-inherit`: the cell tints are translucent under\n // the dark scheme, and an inherited `background-color` repaints the same\n // rgba over the already-composited cell — doubling the tint.\n 'tw:[&_pre]:bg-transparent',\n 'tw:[&_pre]:text-inherit',\n 'tw:[&_pre]:px-2',\n 'tw:[&_pre]:!leading-7',\n 'tw:[&_pre]:text-sm',\n 'tw:[&_pre]:whitespace-pre-wrap',\n ],\n {\n defaultVariants: {\n variant: 'default',\n diff: 'default',\n },\n variants: {\n variant: {\n default: [],\n gutter: ['tw:w-14', 'tw:text-right', 'tw:whitespace-nowrap', 'tw:select-none'],\n code: [],\n },\n diff: {\n default: [],\n added: [],\n removed: [],\n },\n },\n // Added/removed rows are meaning-encoding, so they keep the fixed green /\n // error ramps rather than a brand-overridable status token. Both need an\n // explicit light/dark pair: the light pastel washes (`-100`/`-200`) are\n // opaque, so under the dark scheme they stranded the near-white\n // `foreground` on a light slab. Dark mode tints the same hue at low alpha\n // over the pane surface instead, and every cell pins its own text colour —\n // inheriting it left the added/removed code cells invisible in dark mode.\n compoundVariants: [\n {\n variant: 'gutter',\n diff: 'default',\n className: ['tw:bg-muted', 'tw:text-muted-foreground'],\n },\n {\n variant: 'gutter',\n diff: 'added',\n className: [\n // `green-900` (6.1:1 on `green-200`), not `green-600` — that was 2.3:1.\n 'tw:bg-green-200 tw:text-green-900',\n 'tw:[[data-theme=dark]_&]:bg-green-500/25 tw:[[data-theme=dark]_&]:text-green-300',\n ],\n },\n {\n variant: 'gutter',\n diff: 'removed',\n className: [\n // `error-700` (5.4:1 on `error-200`), not `error-500` — that was 3.3:1.\n 'tw:bg-error-200 tw:text-error-700',\n 'tw:[[data-theme=dark]_&]:bg-error-500/25 tw:[[data-theme=dark]_&]:text-error-300',\n ],\n },\n {\n variant: 'code',\n diff: 'default',\n className: ['tw:bg-background', 'tw:text-foreground'],\n },\n {\n variant: 'code',\n diff: 'added',\n className: [\n 'tw:bg-green-100 tw:text-foreground',\n 'tw:[[data-theme=dark]_&]:bg-green-500/15',\n ],\n },\n {\n variant: 'code',\n diff: 'removed',\n className: [\n 'tw:bg-error-100 tw:text-foreground',\n 'tw:[[data-theme=dark]_&]:bg-error-500/15',\n ],\n },\n ],\n },\n);\n\ntype Props = ComponentProps<'td'> & VariantProps<typeof variants>;\n\nexport const DiffViewTd = ({ diff, variant = 'default', children, className, ...props }: Props) => {\n const needsCodeFormatting = variant === 'code' || variant === 'gutter';\n\n return (\n <td {...props} className={cn(variants({ variant, className, diff }))}>\n {needsCodeFormatting ? <pre>{children}</pre> : children}\n </td>\n );\n};\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'th'> & {\n variant?: 'default' | 'gutter';\n};\n\nexport const DiffViewTh = ({ variant = 'default', children, className, ...props }: Props) => (\n <th\n {...props}\n className={cn(\n 'tw:bg-background',\n 'tw:py-3',\n // explicit `border-border`: v4 changed the default border color from gray-200 to\n // `currentColor`, so a bare `border-b` rendered a dark divider (the th's text colour)\n // instead of the light-grey header rule.\n 'tw:border-b',\n 'tw:border-border',\n { 'tw:w-14': variant === 'gutter' },\n { 'tw:last:pr-8': variant === 'default' },\n className,\n )}\n >\n {children}\n </th>\n);\n","import { diffLines, diffWords } from 'diff';\n\nexport const DiffType = {\n DEFAULT: 'default',\n ADDED: 'added',\n REMOVED: 'removed',\n} as const;\n\ntype DiffTypeValue = (typeof DiffType)[keyof typeof DiffType];\n\nexport type DiffInformation = {\n value: string | DiffInformation[];\n lineNumber: number;\n type: DiffTypeValue;\n};\n\nexport type LineInformation = {\n left: DiffInformation;\n right: DiffInformation;\n};\n\ntype ComputedLineInformation = {\n lineInformation: LineInformation[];\n diffLines: number[];\n};\n\ntype SidedDiffInformation = {\n left: DiffInformation[];\n right: DiffInformation[];\n};\n\nexport type WordInformation = {\n value: string;\n type: DiffTypeValue;\n lineNumber: number;\n};\n\nexport type SideInformation = {\n type: DiffTypeValue;\n lineNumber: number;\n words: WordInformation[];\n};\n\nexport type DiffRow =\n | { kind: 'fold'; blockStart: number; lineCount: number; key: string }\n | { kind: 'line'; left: SideInformation; right: SideInformation; key: string };\n\nconst EXTRA_LINES = 3;\n\n// Sentinel blockStart for the region after the last diff; keeps distance checks\n// inert and lets `expandedBlocks` key on a real value.\nconst TAIL_BLOCK = Number.POSITIVE_INFINITY;\n\ntype Counters = {\n left: number;\n right: number;\n global: number;\n};\n\ntype DiffChunk = ReturnType<typeof diffLines>[number];\n\nconst splitLines = (value: string): string[] => {\n if (value === '') return [];\n return value.replace(/\\n$/, '').split('\\n');\n};\n\nconst computeWordDiff = (oldValue: string, newValue: string): SidedDiffInformation => {\n const result: SidedDiffInformation = { left: [], right: [] };\n\n diffWords(oldValue, newValue).forEach(({ added, removed, value }) => {\n if (added) {\n result.right.push({ type: DiffType.ADDED, value, lineNumber: 0 });\n return;\n }\n if (removed) {\n result.left.push({ type: DiffType.REMOVED, value, lineNumber: 0 });\n return;\n }\n const unchanged: DiffInformation = { type: DiffType.DEFAULT, value, lineNumber: 0 };\n result.right.push(unchanged);\n result.left.push(unchanged);\n });\n\n return result;\n};\n\n// Look ahead one chunk in the diff array and return the paired added-line string,\n// or null if there isn't one at the same lineIndex position.\nconst findPairedAddedLine = (\n diffArray: DiffChunk[],\n blockIndex: number,\n lineIndex: number,\n): string | null => {\n const nextBlock = diffArray[blockIndex + 1];\n if (!nextBlock?.added) return null;\n return splitLines(nextBlock.value)[lineIndex] ?? null;\n};\n\nconst buildUnchangedLine = (value: string, counters: Counters): LineInformation => {\n counters.left += 1;\n counters.right += 1;\n return {\n left: { type: DiffType.DEFAULT, value, lineNumber: counters.left },\n right: { type: DiffType.DEFAULT, value, lineNumber: counters.right },\n };\n};\n\nconst buildAddedLine = (value: string, counters: Counters): LineInformation => {\n counters.right += 1;\n return {\n left: {} as DiffInformation,\n right: { type: DiffType.ADDED, value, lineNumber: counters.right },\n };\n};\n\nconst buildRemovedLine = (value: string, counters: Counters): LineInformation => {\n counters.left += 1;\n return {\n left: { type: DiffType.REMOVED, value: value || ' ', lineNumber: counters.left },\n right: {} as DiffInformation,\n };\n};\n\n// Removed + paired added → one modification row with word-level diff.\n// Returns `isActualChange: false` for the quirky case where the two sides\n// resolve to the same string; the caller then omits it from diffLines.\nconst buildModifiedLine = (\n leftValue: string,\n rightValue: string,\n counters: Counters,\n): { line: LineInformation; isActualChange: boolean } => {\n counters.left += 1;\n counters.right += 1;\n const displayLeft = leftValue || ' ';\n\n if (displayLeft === rightValue) {\n return {\n line: {\n left: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.left },\n right: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.right },\n },\n isActualChange: false,\n };\n }\n\n const { left, right } = computeWordDiff(leftValue, rightValue);\n return {\n line: {\n left: { type: DiffType.REMOVED, value: left, lineNumber: counters.left },\n right: { type: DiffType.ADDED, value: right, lineNumber: counters.right },\n },\n isActualChange: true,\n };\n};\n\nexport const computeLineInformation = (\n oldString: string,\n newString: string,\n ignoreWhitespace?: boolean,\n): ComputedLineInformation => {\n const diffArray = diffLines(oldString.trimEnd(), newString.trimEnd(), { ignoreWhitespace });\n const counters: Counters = { left: 0, right: 0, global: 0 };\n const lineInformation: LineInformation[] = [];\n const diffLineSet = new Set<number>();\n const consumedAddedLines = new Set<string>();\n\n diffArray.forEach((block, blockIndex) => {\n splitLines(block.value).forEach((value, lineIndex) => {\n if (consumedAddedLines.has(`${blockIndex}-${lineIndex}`)) return;\n\n if (block.removed) {\n const paired = findPairedAddedLine(diffArray, blockIndex, lineIndex);\n if (paired !== null) {\n consumedAddedLines.add(`${blockIndex + 1}-${lineIndex}`);\n const { line, isActualChange } = buildModifiedLine(value, paired, counters);\n lineInformation.push(line);\n if (isActualChange) diffLineSet.add(counters.global);\n } else {\n lineInformation.push(buildRemovedLine(value, counters));\n diffLineSet.add(counters.global);\n }\n } else if (block.added) {\n lineInformation.push(buildAddedLine(value, counters));\n diffLineSet.add(counters.global);\n } else {\n lineInformation.push(buildUnchangedLine(value, counters));\n }\n\n counters.global += 1;\n });\n });\n\n return {\n lineInformation,\n diffLines: [...diffLineSet].sort((a, b) => a - b),\n };\n};\n\ntype ContextSegment = { kind: 'context'; lines: LineInformation[]; firstIndex: number };\ntype ChangeSegment = { kind: 'change'; lines: LineInformation[]; firstIndex: number };\ntype Segment = ContextSegment | ChangeSegment;\n\nconst toSegments = (\n lineInformation: LineInformation[],\n diffLineSet: ReadonlySet<number>,\n): Segment[] => {\n const segments: Segment[] = [];\n let current: Segment | null = null;\n\n lineInformation.forEach((line, index) => {\n const isChange = diffLineSet.has(index);\n if (current === null || (current.kind === 'change') !== isChange) {\n current = isChange\n ? { kind: 'change', lines: [line], firstIndex: index }\n : { kind: 'context', lines: [line], firstIndex: index };\n segments.push(current);\n } else {\n current.lines.push(line);\n }\n });\n\n return segments;\n};\n\nconst normalizeSide = (side: DiffInformation): SideInformation => {\n const raw = Array.isArray(side.value)\n ? side.value\n : [{ value: side.value, type: DiffType.DEFAULT, lineNumber: 0 }];\n\n return {\n type: side.type,\n lineNumber: side.lineNumber,\n words: raw.filter((w): w is WordInformation => typeof w.value === 'string'),\n };\n};\n\nconst renderLineRow = (line: LineInformation): DiffRow => ({\n kind: 'line',\n left: normalizeSide(line.left),\n right: normalizeSide(line.right),\n key: `${line.left.lineNumber}-${line.right.lineNumber}`,\n});\n\nconst renderContextSegment = (\n segment: ContextSegment,\n nextChangeIndex: number,\n hasPrevChange: boolean,\n hasNextChange: boolean,\n expanded: ReadonlySet<number>,\n): DiffRow[] => {\n if (expanded.has(nextChangeIndex)) {\n return segment.lines.map(renderLineRow);\n }\n\n const total = segment.lines.length;\n const trail = hasPrevChange ? Math.min(EXTRA_LINES, total) : 0;\n let lead = hasNextChange ? Math.min(EXTRA_LINES, total - trail) : 0;\n let foldCount = total - trail - lead;\n\n // Quirk from the original: a single trailing unchanged line is always rendered\n // (no one-line fold at the tail). Absorb it into the lead slice.\n if (!hasNextChange && foldCount === 1) {\n foldCount = 0;\n lead = 1;\n }\n\n const rows: DiffRow[] = [];\n if (trail > 0) {\n rows.push(...segment.lines.slice(0, trail).map(renderLineRow));\n }\n if (foldCount > 0) {\n rows.push({\n kind: 'fold',\n blockStart: nextChangeIndex,\n lineCount: foldCount,\n key: hasNextChange\n ? `fold-${nextChangeIndex}`\n : `fold-tail-${segment.firstIndex + total - 1}`,\n });\n }\n if (lead > 0) {\n rows.push(...segment.lines.slice(trail + foldCount).map(renderLineRow));\n }\n return rows;\n};\n\nexport const computeDiffRows = (\n lineInformation: LineInformation[],\n diffLines: number[],\n expandedBlocks: number[],\n): DiffRow[] => {\n const diffLineSet = new Set(diffLines);\n const expanded = new Set(expandedBlocks);\n const segments = toSegments(lineInformation, diffLineSet);\n\n const rows: DiffRow[] = [];\n let hasPrevChange = false;\n\n segments.forEach((segment, i) => {\n if (segment.kind === 'change') {\n rows.push(...segment.lines.map(renderLineRow));\n hasPrevChange = true;\n return;\n }\n const nextChange = segments.slice(i + 1).find((s) => s.kind === 'change');\n const nextStart = nextChange?.firstIndex ?? TAIL_BLOCK;\n rows.push(...renderContextSegment(segment, nextStart, hasPrevChange, !!nextChange, expanded));\n });\n\n return rows;\n};\n","import { useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '../../utils';\n\nimport { DiffViewMark } from './DiffViewMark';\nimport { DiffViewTd } from './DiffViewTd';\nimport { DiffViewTh } from './DiffViewTh';\nimport { computeDiffRows, computeLineInformation } from './util';\n\ntype Props = {\n oldValue: string;\n newValue: string;\n ignoreWhitespace?: boolean;\n className?: string;\n\n leftTitleGutter?: ReactNode;\n leftTitle: ReactNode;\n rightTitle: ReactNode;\n rightTitleGutter?: ReactNode;\n};\n\nexport const DiffView = ({\n leftTitle,\n leftTitleGutter,\n rightTitle,\n rightTitleGutter,\n oldValue,\n newValue,\n ignoreWhitespace,\n className,\n}: Props) => {\n const [expandedBlocks, setExpandedBlocks] = useState<number[]>([]);\n const { lineInformation, diffLines } = computeLineInformation(\n oldValue,\n newValue,\n ignoreWhitespace,\n );\n const rows = computeDiffRows(lineInformation, diffLines, expandedBlocks);\n\n const handleExpand = (blockNumber: number) => {\n setExpandedBlocks((curr) => [...curr, blockNumber]);\n };\n\n return (\n <div\n className={cn(\n 'tailwindcss-preflight',\n 'tw:bg-muted',\n // Pin the text colour rather than inheriting it: the diff is routinely\n // portalled into a Modal, where an inherited colour comes from whatever\n // sits above the portal root instead of this surface.\n 'tw:text-foreground',\n // explicit `border-border` — v4's default border colour is `currentColor`, so a bare\n // `border` drew a dark frame instead of the light-grey outline.\n 'tw:border',\n 'tw:border-border',\n 'tw:rounded-2xl',\n 'tw:overflow-auto',\n className,\n )}\n >\n <table className=\"tw:w-full tw:table-fixed tw:bg-background\">\n {/* Not v4's `shadow-xs`: `tailwind-config`'s `boxShadow.sm` fallback still carries\n the v3 value, and only `shadow-sm` reads `--shadow-sm` from a brand's\n `theme.shadows` — `shadow-xs` has no token and would opt this header out. */}\n <thead className=\"tw:sticky tw:top-0 tw:z-10 tw:shadow-sm\">\n <tr>\n <DiffViewTh variant=\"gutter\">{leftTitleGutter}</DiffViewTh>\n <DiffViewTh>{leftTitle}</DiffViewTh>\n <DiffViewTh variant=\"gutter\">{rightTitleGutter}</DiffViewTh>\n <DiffViewTh>{rightTitle}</DiffViewTh>\n </tr>\n </thead>\n\n <tbody>\n {rows.map((row) => {\n if (row.kind === 'fold')\n return (\n <tr key={row.key}>\n <DiffViewTd colSpan={4}>\n <button\n type=\"button\"\n onClick={() => handleExpand(row.blockStart)}\n className={cn(\n 'tw:w-full',\n 'tw:text-center',\n 'tw:bg-muted',\n 'tw:text-foreground',\n 'tw:hover:bg-accent',\n 'tw:underline',\n 'tw:p-2',\n )}\n >\n Expand {row.lineCount} lines ...\n </button>\n </DiffViewTd>\n </tr>\n );\n\n return (\n <tr key={row.key}>\n <DiffViewTd variant=\"gutter\" diff={row.left.type}>\n {row.left.lineNumber}\n </DiffViewTd>\n\n <DiffViewTd variant=\"code\" diff={row.left.type}>\n {row.left.words.map((val, index) => {\n if (val.type === 'default') return val.value;\n return (\n // oxlint-disable-next-line react/no-array-index-key\n <DiffViewMark key={`${val.value}-${val.type}-${index}`} diff={val.type}>\n {val.value}\n </DiffViewMark>\n );\n })}\n </DiffViewTd>\n\n <DiffViewTd variant=\"gutter\" diff={row.right.type}>\n {row.right.lineNumber}\n </DiffViewTd>\n\n <DiffViewTd variant=\"code\" diff={row.right.type}>\n {row.right.words.map((val, index) => {\n if (val.type === 'default') return val.value;\n\n return (\n // oxlint-disable-next-line react/no-array-index-key\n <DiffViewMark key={`${val.value}-${val.type}-${index}`} diff={val.type}>\n {val.value}\n </DiffViewMark>\n );\n })}\n </DiffViewTd>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n};\n"]}
|
|
@@ -1,22 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { isMac } from './chunk-SWQFYNYG.js';
|
|
2
|
+
import { cn } from './chunk-LXLIQ2D6.js';
|
|
3
|
+
import { Children, Fragment } from 'react';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
var KbdSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, className: cn("tw:text-xs tw:text-muted-foreground", className) });
|
|
8
|
+
var KbdGroup = ({ ref, className, children, separator, ...props }) => {
|
|
9
|
+
return /* @__PURE__ */ jsx(
|
|
10
|
+
"kbd",
|
|
11
|
+
{
|
|
12
|
+
...props,
|
|
13
|
+
ref,
|
|
14
|
+
className: cn("tw:inline-flex", "tw:items-center", "tw:gap-1", className),
|
|
15
|
+
children: separator ? (
|
|
16
|
+
// oxlint-disable-next-line react-x/no-children-to-array
|
|
17
|
+
Children.toArray(children).map((child, index) => (
|
|
18
|
+
// oxlint-disable-next-line
|
|
19
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20
|
+
index > 0 && /* @__PURE__ */ jsx(KbdSeparator, { children: separator }),
|
|
21
|
+
child
|
|
22
|
+
] }, index)
|
|
23
|
+
))
|
|
24
|
+
) : children
|
|
12
25
|
}
|
|
13
|
-
|
|
14
|
-
if (typeof navigator !== "undefined" && typeof navigator.platform === "string") {
|
|
15
|
-
return navigator.platform.toUpperCase().indexOf("MAC") >= 0;
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
26
|
+
);
|
|
18
27
|
};
|
|
19
|
-
var isMac = getIsMac();
|
|
20
28
|
var kbdVariants = cva(
|
|
21
29
|
[
|
|
22
30
|
"tailwindcss-preflight",
|
|
@@ -50,41 +58,38 @@ var kbdVariants = cva(
|
|
|
50
58
|
}
|
|
51
59
|
}
|
|
52
60
|
);
|
|
53
|
-
|
|
54
|
-
// src/utils/escapeStringRegexp.ts
|
|
55
|
-
var escapeStringRegexp = (string) => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
56
|
-
var KbdSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, className: cn("tw:text-xs tw:text-muted-foreground", className) });
|
|
57
|
-
var KbdGroup = ({ ref, className, children, separator, ...props }) => {
|
|
58
|
-
return /* @__PURE__ */ jsx(
|
|
59
|
-
"kbd",
|
|
60
|
-
{
|
|
61
|
-
...props,
|
|
62
|
-
ref,
|
|
63
|
-
className: cn("tw:inline-flex", "tw:items-center", "tw:gap-1", className),
|
|
64
|
-
children: separator ? (
|
|
65
|
-
// oxlint-disable-next-line react-x/no-children-to-array
|
|
66
|
-
Children.toArray(children).map((child, index) => (
|
|
67
|
-
// oxlint-disable-next-line
|
|
68
|
-
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
69
|
-
index > 0 && /* @__PURE__ */ jsx(KbdSeparator, { children: separator }),
|
|
70
|
-
child
|
|
71
|
-
] }, index)
|
|
72
|
-
))
|
|
73
|
-
) : children
|
|
74
|
-
}
|
|
75
|
-
);
|
|
76
|
-
};
|
|
77
61
|
var Kbd = ({ children, className, variant, ...rest }) => /* @__PURE__ */ jsx("kbd", { ...rest, className: kbdVariants({ className, variant }), children });
|
|
78
62
|
Kbd.Group = KbdGroup;
|
|
79
63
|
Kbd.Separator = KbdSeparator;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
64
|
+
|
|
65
|
+
// src/components/Kbd/keyboardKeys.ts
|
|
66
|
+
var KEY_DEFINITIONS = {
|
|
67
|
+
mod: {
|
|
68
|
+
mac: { symbol: "\u2318", text: "Command" },
|
|
69
|
+
windows: { symbol: "Ctrl", text: "Ctrl" }
|
|
70
|
+
},
|
|
71
|
+
option: {
|
|
72
|
+
mac: { symbol: "\u2325", text: "Option" },
|
|
73
|
+
windows: { symbol: "Alt", text: "Alt" }
|
|
74
|
+
},
|
|
75
|
+
shift: {
|
|
76
|
+
mac: { symbol: "\u21E7", text: "Shift" },
|
|
77
|
+
windows: { symbol: "\u21E7", text: "Shift" }
|
|
78
|
+
},
|
|
79
|
+
enter: {
|
|
80
|
+
mac: { symbol: "\u23CE", text: "Enter" },
|
|
81
|
+
windows: { symbol: "\u23CE", text: "Enter" }
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var createKeyboardKeys = () => {
|
|
85
|
+
const keysObj = {};
|
|
86
|
+
for (const keyName of Object.keys(KEY_DEFINITIONS)) {
|
|
87
|
+
keysObj[keyName] = KEY_DEFINITIONS[keyName][isMac ? "mac" : "windows"];
|
|
88
|
+
}
|
|
89
|
+
return keysObj;
|
|
86
90
|
};
|
|
91
|
+
var keys = createKeyboardKeys();
|
|
87
92
|
|
|
88
|
-
export { Kbd,
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
93
|
+
export { Kbd, kbdVariants, keys };
|
|
94
|
+
//# sourceMappingURL=chunk-7GTI3PPI.js.map
|
|
95
|
+
//# sourceMappingURL=chunk-7GTI3PPI.js.map
|