@marimo-team/islands 0.23.2-dev54 → 0.23.2-dev58
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/dist/{ConnectedDataExplorerComponent-DShCAU06.js → ConnectedDataExplorerComponent-BS9U2zaC.js} +68 -66
- package/dist/ErrorBoundary-Da4UeYxT.js +167 -0
- package/dist/{ImageComparisonComponent-BV1jHxOP.js → ImageComparisonComponent-DaocPIse.js} +1 -1
- package/dist/{Plot-DsEy3ro_.js → Plot-PIeIvFnD.js} +1 -1
- package/dist/{_baseUniq-LxrBY6QK.js → _baseUniq-CxZRxRRo.js} +3 -3
- package/dist/{any-language-editor-CtNfsWJh.js → any-language-editor-BVR0l12r.js} +23 -22
- package/dist/apl-BKoVld9y.js +4 -0
- package/dist/{arc-CEWBr4jc.js → arc-CHF8PiiF.js} +2 -2
- package/dist/architecture-7HQA4BMR-D0JB_3hE.js +6 -0
- package/dist/{architectureDiagram-VXUJARFQ-DapqVf5U.js → architectureDiagram-VXUJARFQ-BXQEUDtK.js} +19 -19
- package/dist/{arrays-Du-jRBAy.js → arrays-CldYf7p7.js} +1 -1
- package/dist/asciiarmor-DQrKIjoo.js +4 -0
- package/dist/asn1-BZvnj0dq.js +4 -0
- package/dist/{blockDiagram-VD42YOAC-CfD03O_S.js → blockDiagram-VD42YOAC-DhJe-Y9i.js} +14 -14
- package/dist/brainfuck-D558nlUv.js +4 -0
- package/dist/{button-D1C3g5GI.js → button-CA5pI2YF.js} +2 -2
- package/dist/{c4Diagram-YG6GDRKO-14WsB19A.js → c4Diagram-YG6GDRKO-9dSfzOFR.js} +6 -6
- package/dist/{capabilities-B6ae40r2.js → capabilities-6laDasij.js} +2 -2
- package/dist/{channel-DkswyS_y.js → channel-MqYIiKgS.js} +1 -1
- package/dist/{chat-ui-d0C1glXQ.js → chat-ui-CTt4WX0V.js} +2822 -2819
- package/dist/{check-BgrdTLuv.js → check-CFM2mVDr.js} +1 -1
- package/dist/{chunk-4BX2VUAB-BChPAwlt.js → chunk-4BX2VUAB-BwfrWBqN.js} +1 -1
- package/dist/{chunk-4F5CHEZ2-Bt9N9Ox8.js → chunk-4F5CHEZ2-C6tO9vjs.js} +1 -1
- package/dist/{chunk-55IACEB6-wWyiO7Qo.js → chunk-55IACEB6-D8THf2mi.js} +1 -1
- package/dist/{chunk-5FQGJX7Z-DDhYtPiB.js → chunk-5FQGJX7Z-CO1e63h_.js} +5 -5
- package/dist/{chunk-ABZYJK2D-TzeWxQkr.js → chunk-ABZYJK2D-BrBb_0yY.js} +3 -3
- package/dist/{chunk-ATLVNIR6-BIyR7hDU.js → chunk-ATLVNIR6-D-0XqNah.js} +2 -2
- package/dist/{chunk-B2363JML-Db4oHCZ4.js → chunk-B2363JML-Ds8wZXyP.js} +1 -1
- package/dist/{chunk-B4BG7PRW-HwU7LyDE.js → chunk-B4BG7PRW-8iRKvugR.js} +7 -7
- package/dist/{chunk-CVBHYZKI-DqdOZevv.js → chunk-CVBHYZKI-B6xhgaBd.js} +1 -1
- package/dist/{chunk-DI55MBZ5-BpT6xu0H.js → chunk-DI55MBZ5-C0_2D4m4.js} +6 -6
- package/dist/{chunk-EXTU4WIE-XAoEZY7R.js → chunk-EXTU4WIE-Jiw9ca1u.js} +2 -2
- package/dist/{chunk-FMBD7UC4-WPL5C7Yr.js → chunk-FMBD7UC4-CHdus51S.js} +1 -1
- package/dist/{chunk-FRFDVMJY-DGahYT1S.js → chunk-FRFDVMJY-BgQv1HBE.js} +1 -1
- package/dist/{chunk-HN2XXSSU-GC9oeSst.js → chunk-HN2XXSSU-2Vfbq-kU.js} +1 -1
- package/dist/{chunk-JA3XYJ7Z-B1i4Tfcw.js → chunk-JA3XYJ7Z-6wbaigKe.js} +3 -3
- package/dist/{chunk-JZLCHNYA-CNdDVlto.js → chunk-JZLCHNYA-_rfptlUP.js} +6 -6
- package/dist/{chunk-MI3HLSF2-CAUClZTk.js → chunk-MI3HLSF2-Do0-KRc0.js} +1 -1
- package/dist/{chunk-N4CR4FBY-BTIG-LyN.js → chunk-N4CR4FBY-DIZG9dVD.js} +7 -7
- package/dist/{chunk-PL6DKKU2-CoF4omiN.js → chunk-PL6DKKU2-DHfTUHy8.js} +1 -1
- package/dist/{chunk-QN33PNHL-Bu0A3trl.js → chunk-QN33PNHL-Cc64y40m.js} +2 -2
- package/dist/{chunk-QXUST7PY-D8Zb-uHT.js → chunk-QXUST7PY-BDG0-0Or.js} +10 -10
- package/dist/{chunk-QZHKN3VN-cTJMhkeY.js → chunk-QZHKN3VN-B_Mdb8GC.js} +1 -1
- package/dist/{chunk-S3R3BYOJ-BbDagUDj.js → chunk-S3R3BYOJ-DphMP0FA.js} +6 -6
- package/dist/{chunk-SJTYNZTY-dW9OU4qd.js → chunk-SJTYNZTY-Diciw4sx.js} +1 -1
- package/dist/{chunk-TCCFYFTB-vYPbT9fw.js → chunk-TCCFYFTB-d3HOqL2I.js} +6 -6
- package/dist/{chunk-TQ3KTPDO-Dykudlbk.js → chunk-TQ3KTPDO-CQfP9npd.js} +1 -1
- package/dist/{chunk-TZMSLE5B-Cu-m016X.js → chunk-TZMSLE5B-C9LUoYkc.js} +3 -3
- package/dist/{chunk-UMXZTB3W-BVL6vS7M.js → chunk-UMXZTB3W-MSKeGL7W.js} +1 -1
- package/dist/classDiagram-2ON5EDUG-CBHMR6ZU.js +30 -0
- package/dist/classDiagram-v2-WZHVMYZB-BsUtUGM_.js +30 -0
- package/dist/{clike-D8Yzpo0X.js → clike-sBZrGeF8.js} +1 -1
- package/dist/clojure-Cq8mTSrE.js +4 -0
- package/dist/{clone-0b7yW5QV.js → clone-BuIIsfA8.js} +1 -1
- package/dist/cmake-D8HCovWK.js +4 -0
- package/dist/cobol-UolN-9iU.js +4 -0
- package/dist/{code-block-37QAKDTI-DP_hitFg.js → code-block-37QAKDTI-0JNwiPGv.js} +2 -2
- package/dist/coffeescript-VdNuWrt5.js +4 -0
- package/dist/commonlisp-ALX7fpDc.js +4 -0
- package/dist/{constants-C2U1Bmny.js → constants-D0gkYoE2.js} +2 -2
- package/dist/{copy-Bp6CK_Fg.js → copy-TGGAUEWp.js} +2 -2
- package/dist/{cose-bilkent-S5V4N54A-CFYo67PX.js → cose-bilkent-S5V4N54A-DXHZkJKX.js} +2 -2
- package/dist/crystal-PbyO9Q_s.js +4 -0
- package/dist/css-DFklJkr_.js +4 -0
- package/dist/cypher-BifNeYlv.js +4 -0
- package/dist/d-BA-JP4PJ.js +4 -0
- package/dist/{dagre-6UL2VRFP-BGxh7S-e.js → dagre-6UL2VRFP-tH87fkPA.js} +15 -15
- package/dist/{dagre-Bc6NAu6c.js → dagre-VYEPqXIV.js} +11 -11
- package/dist/{data-grid-overlay-editor-B1mPZ5v3.js → data-grid-overlay-editor-CWUN78-s.js} +3 -3
- package/dist/{diagram-PSM6KHXK-D7YQAOqL.js → diagram-PSM6KHXK-2VjPSCDn.js} +22 -22
- package/dist/{diagram-QEK2KX5R-CCoHDhM3.js → diagram-QEK2KX5R-CiLmNyta.js} +17 -17
- package/dist/{diagram-S2PKOQOG-jSHdFOD9.js → diagram-S2PKOQOG-Zha_1CLx.js} +17 -17
- package/dist/diff-CtkDpav4.js +4 -0
- package/dist/dist-B--tLnAP.js +5 -0
- package/dist/{dist-qpWXd9bI.js → dist-B52GXZbd.js} +2 -2
- package/dist/{dist-I9ZUr7P2.js → dist-B8BjrFUE.js} +5 -5
- package/dist/dist-BEOU2g1b.js +8 -0
- package/dist/dist-BHnX0ia_.js +8 -0
- package/dist/{dist-BH67T-KO.js → dist-BK-3fF4P.js} +1 -1
- package/dist/{dist-Cf1__Ezo.js → dist-BTyJtnNg.js} +1 -1
- package/dist/{dist-Cil0kZOw.js → dist-BetEKbPG.js} +2 -2
- package/dist/{dist-HNoCppvN.js → dist-BrBucRXs.js} +2 -2
- package/dist/{dist-BKKbDTix.js → dist-Brkazupz.js} +2 -2
- package/dist/dist-BuBwsFva.js +5 -0
- package/dist/dist-BzmEQ9u7.js +5 -0
- package/dist/{dist-BKGmoFSu.js → dist-C-J0pt5p.js} +1 -1
- package/dist/dist-C1Ap5CYU.js +5 -0
- package/dist/{dist-CjFd_clf.js → dist-C474qFoq.js} +3 -3
- package/dist/{dist-5VO3ibto.js → dist-C9fmTOin.js} +1 -1
- package/dist/{dist-ZJ4KZJv-.js → dist-CGLzXdrt.js} +1 -1
- package/dist/dist-CMjD5MQb.js +6 -0
- package/dist/{dist-BWmwgyyt.js → dist-CNtV21T_.js} +4 -4
- package/dist/dist-ChC1BhqM.js +6 -0
- package/dist/dist-Cih01ssx.js +5 -0
- package/dist/{dist-BI11IEaj.js → dist-CinA9Enb.js} +1 -1
- package/dist/dist-CqfONiY9.js +5 -0
- package/dist/{dist-C-Mi2f2L.js → dist-CtCY55Jf.js} +2 -2
- package/dist/{dist-BVdq25Pp.js → dist-CxdUraQr.js} +2 -2
- package/dist/{dist-BmkybMad.js → dist-CyFFzJTb.js} +1 -1
- package/dist/{dist-vkjbtmSV.js → dist-D029TiHd.js} +2 -2
- package/dist/dist-D0iD0Fi9.js +5 -0
- package/dist/{dist-DcB6g7XM.js → dist-D9r7Cmw7.js} +2 -2
- package/dist/{dist-CtliEIOC.js → dist-DBLeRrPp.js} +2 -2
- package/dist/{dist-BrRkENbS.js → dist-DGAfI2rB.js} +2 -2
- package/dist/{dist-QzlYe8XT.js → dist-DZjQ_MBo.js} +4 -4
- package/dist/{dist-DH-coTYX.js → dist-DadjmS-4.js} +2 -2
- package/dist/{dist-4BuWWZtg.js → dist-DkC6YEo0.js} +2 -2
- package/dist/{dist-CWin4kuc.js → dist-DquyVv5H.js} +2 -2
- package/dist/dist-DtNLXm8d.js +5 -0
- package/dist/{dist-CTtLBPLZ.js → dist-ESg7xyoD.js} +4 -4
- package/dist/dist-FN0ZA_8F.js +8 -0
- package/dist/{dist-ChYkaQZ9.js → dist-HVuryI1a.js} +1 -1
- package/dist/{dist-DViRvB3t.js → dist-JEhxD_cn.js} +1 -1
- package/dist/{dist-CuT7pAjI.js → dist-UcOPnRMa.js} +3 -3
- package/dist/dist-YP-G7W0f.js +8 -0
- package/dist/{dist-Bo8Q2NZ6.js → dist-Yrfc6L0I.js} +3 -3
- package/dist/{dist-CM55yvVz.js → dist-Zn0KNbo9.js} +1 -1
- package/dist/{dist-rdefyFzZ.js → dist-nuW5EDYT.js} +2 -2
- package/dist/{dockerfile-m9DOSpI5.js → dockerfile-COvlVLcE.js} +1 -1
- package/dist/dtd-DW3_UFEG.js +4 -0
- package/dist/dylan-pDhodO2N.js +4 -0
- package/dist/ecl-BJT8-YD7.js +4 -0
- package/dist/eiffel-Dmns-9vS.js +4 -0
- package/dist/elm-Da4sO4Bz.js +4 -0
- package/dist/{erDiagram-Q2GNP2WA-C4ngo-A5.js → erDiagram-Q2GNP2WA-biHZS05w.js} +15 -15
- package/dist/erlang-C-zBsDi7.js +4 -0
- package/dist/{error-banner-B_ioHva3.js → error-banner-DnBPzEWg.js} +3 -3
- package/dist/{esm-i3cb1Eej.js → esm-CYEyrE3Y.js} +105 -105
- package/dist/esm-Dd1z1auZ.js +1171 -0
- package/dist/extends-CzJgxo2J.js +1645 -0
- package/dist/factor-4xPWlWB5.js +4 -0
- package/dist/{factor-Nva0iSXt.js → factor-C2GT7jfQ.js} +1 -1
- package/dist/{flatten-BOUk2Lcs.js → flatten-CzBvFdvC.js} +1 -1
- package/dist/{flowDiagram-NV44I4VS-BKj8B2cb.js → flowDiagram-NV44I4VS-CWWlUpBR.js} +17 -17
- package/dist/formats-Dh5M1ZRs.js +79 -0
- package/dist/forth-l-c75zSd.js +4 -0
- package/dist/fortran-DIujSODW.js +4 -0
- package/dist/{ganttDiagram-JELNMOA3-D9PIiNqf.js → ganttDiagram-JELNMOA3-D7B2c4Z9.js} +10 -10
- package/dist/gas-CXnG5g_b.js +4 -0
- package/dist/gherkin-VPeqd4-X.js +4 -0
- package/dist/{gitGraph-G5XIXVHT-DTpIjETB.js → gitGraph-G5XIXVHT-BdepdFa_.js} +3 -3
- package/dist/{gitGraphDiagram-V2S2FVAM-g28AnGRX.js → gitGraphDiagram-V2S2FVAM-CtLvNR1S.js} +17 -17
- package/dist/{glide-data-editor-BaAX1uv-.js → glide-data-editor-CVtY_KYw.js} +572 -570
- package/dist/{graphlib-DTP9cqCT.js → graphlib-CVPKjKCS.js} +5 -5
- package/dist/groovy-CphhZQgg.js +4 -0
- package/dist/{hasIn-MXhEnf0q.js → hasIn-COs6vImh.js} +3 -3
- package/dist/haskell-CCvlS5Iq.js +4 -0
- package/dist/haxe-C_bi66fP.js +5 -0
- package/dist/{process-output-DQxp17Bc.js → html-to-image-BdsDysfl.js} +2486 -2628
- package/dist/idl-1DcP4Dm8.js +4 -0
- package/dist/{info-VBDWY6EO-DcCsz2w_.js → info-VBDWY6EO--JNA2rNu.js} +3 -3
- package/dist/infoDiagram-HS3SLOUP-BbZyOxsP.js +30 -0
- package/dist/{input-L-W-RdiE.js → input-Drx1pguW.js} +70 -70
- package/dist/{isEmpty-BkHRaD4A.js → isEmpty-Dd8mx_WL.js} +1 -1
- package/dist/{isSymbol-DjQk-23F.js → isSymbol-BvIfMnn6.js} +1 -1
- package/dist/javascript-DUIGhBvO.js +4 -0
- package/dist/{journeyDiagram-XKPGCS4Q-DbVPB0Tw.js → journeyDiagram-XKPGCS4Q-BU2mjjzl.js} +7 -7
- package/dist/julia-Cs2G4PQi.js +4 -0
- package/dist/{kanban-definition-3W4ZIXB7-vHPEznuf.js → kanban-definition-3W4ZIXB7-BlmczUuw.js} +12 -12
- package/dist/{katex-Ckd8lBne.js → katex-qPqrBHZ8.js} +1 -1
- package/dist/label-BCWi-Oqu.js +31 -0
- package/dist/{line-LK_5q2B9.js → line-BWRi3U3S.js} +3 -3
- package/dist/{linear-CJ6ctpF3.js → linear-DnHwODZa.js} +4 -4
- package/dist/livescript-DMtVFaAN.js +4 -0
- package/dist/{loader-D9ktSJS7.js → loader-BvW0-YWZ.js} +2 -2
- package/dist/lua-BAoLtdJg.js +4 -0
- package/dist/main.js +14354 -37990
- package/dist/mathematica-C_NoFtbo.js +4 -0
- package/dist/mbox-DcFJFYrH.js +4 -0
- package/dist/{memoize-DxdGWSJ6.js → memoize-C9ltv0Cw.js} +1 -1
- package/dist/{merge-BEePrO2O.js → merge-CHn7Yx0N.js} +1 -1
- package/dist/mermaid-4DMBBIKO-CG1ECj5W.js +6 -0
- package/dist/{mermaid-D5eODRf-.js → mermaid-BagLPXm9.js} +50 -50
- package/dist/{mermaid-parser.core-Bn1MCv1H.js → mermaid-parser.core-CleJseNW.js} +8 -8
- package/dist/{mhchem-DAXq6Zll.js → mhchem-BwoRNwg_.js} +1 -1
- package/dist/{min-RKgAiXUl.js → min-BNz2lZfk.js} +4 -4
- package/dist/{mindmap-definition-VGOIOE7T-C-DUBd1V.js → mindmap-definition-VGOIOE7T-CcSYqYP9.js} +14 -14
- package/dist/mirc-71dccf_u.js +4 -0
- package/dist/mllike-CWcOFVDq.js +6 -0
- package/dist/modelica-Ape2VXxx.js +4 -0
- package/dist/mscgen-Cc6TwbSN.js +6 -0
- package/dist/mumps-h-ZbdkJ9.js +4 -0
- package/dist/{now-BUO7mCs3.js → now-Sgq5m3D-.js} +2 -2
- package/dist/{nsis-DgKbDAVQ.js → nsis-B5K1qoyo.js} +1 -1
- package/dist/nsis-C0p3m7JW.js +4 -0
- package/dist/ntriples-c9lEeT5w.js +4 -0
- package/dist/{number-overlay-editor-BbN3lvDI.js → number-overlay-editor-_GnlYFHC.js} +1 -1
- package/dist/octave-DzEgB_74.js +4 -0
- package/dist/{once-CZno0h-b.js → once-rJImu7SE.js} +1 -1
- package/dist/{ordinal-COPPjmMz.js → ordinal-2jIulmcR.js} +1 -1
- package/dist/oz-CAxvHkyQ.js +4 -0
- package/dist/{packet-DYOGHKS2-BpYOwBIl.js → packet-DYOGHKS2-CBxXGWNr.js} +3 -3
- package/dist/pascal-BJzu1sgP.js +4 -0
- package/dist/perl--IrOzZ2Z.js +4 -0
- package/dist/{pick-M816gWrv.js → pick-CRAXxDYn.js} +4 -4
- package/dist/{pie-VRWISCQL-narEdAtC.js → pie-VRWISCQL-Bmdnqjip.js} +3 -3
- package/dist/{pieDiagram-ADFJNKIX-BHTVSAs4.js → pieDiagram-ADFJNKIX-DNyLF5H2.js} +22 -22
- package/dist/pig-CiBKKNhC.js +4 -0
- package/dist/powershell-KY0j6Qop.js +4 -0
- package/dist/{precisionRound-Duzbr5ur.js → precisionRound-CnHPY_5v.js} +1 -1
- package/dist/process-output-COL2Pf5I.js +109 -0
- package/dist/properties-BW8q3ziV.js +4 -0
- package/dist/protobuf-BGaeuTGV.js +4 -0
- package/dist/pug-DjOKK-4J.js +4 -0
- package/dist/{pug-CTpLcc1b.js → pug-tjbzJCFk.js} +1 -1
- package/dist/puppet-DWm2o6zX.js +4 -0
- package/dist/python-Bp2gezZy.js +4 -0
- package/dist/q-DljPshos.js +4 -0
- package/dist/{quadrantDiagram-AYHSOK5B-CWLD0gxi.js → quadrantDiagram-AYHSOK5B-rXwjifrj.js} +5 -5
- package/dist/r-BajPMnEu.js +4 -0
- package/dist/{radar-ZZBFDIW7-CZ6uVl9x.js → radar-ZZBFDIW7-BmCWDffL.js} +3 -3
- package/dist/{react-vega-Ov9UeJeF.js → react-vega-C2Rtgjb4.js} +19 -19
- package/dist/react-vega-jy3CfYys.js +9 -0
- package/dist/{requirementDiagram-UZGBJVZJ-G9EKZRw-.js → requirementDiagram-UZGBJVZJ-DBdrMVbs.js} +14 -14
- package/dist/reveal-component-CA7oaSt2.js +4549 -0
- package/dist/rpm-BKx-ZZ62.js +5 -0
- package/dist/ruby-DJq_HNKc.js +4 -0
- package/dist/{sankeyDiagram-TZEHDZUN-NP6aAxqw.js → sankeyDiagram-TZEHDZUN-CxmzalGv.js} +5 -5
- package/dist/sas-WANvpcOU.js +4 -0
- package/dist/scheme-CliBbhGF.js +4 -0
- package/dist/{sequenceDiagram-WL72ISMW-zuvr_4GP.js → sequenceDiagram-WL72ISMW-CVCDsJ9h.js} +8 -8
- package/dist/shell-BwhrNUvM.js +4 -0
- package/dist/sieve-BIVePvMp.js +4 -0
- package/dist/slide-BiyYep36.js +23871 -0
- package/dist/smalltalk-D6G48JmY.js +4 -0
- package/dist/sparql-jjc3BmEP.js +4 -0
- package/dist/{spec-Budha9Vn.js → spec-BKWq0wn2.js} +8 -152
- package/dist/{src-szye8OCw.js → src-BY0BGg6V.js} +1 -1
- package/dist/{stateDiagram-FKZM4ZOC-D4KRQjIA.js → stateDiagram-FKZM4ZOC-D_2djEhW.js} +19 -19
- package/dist/stateDiagram-v2-4FDKWEC3-Cv9Av10H.js +29 -0
- package/dist/{step-1PmBKr2y.js → step-DGAGWg3y.js} +1 -1
- package/dist/stex-ChDHQs3R.js +4 -0
- package/dist/{label-DAH3oYXB.js → strings-B_FOH6eV.js} +57 -81
- package/dist/style.css +1 -1
- package/dist/stylus-WPBPQ4PE.js +4 -0
- package/dist/swift-O1Qy6iCm.js +4 -0
- package/dist/{slides-component-B9NXzezL.js → swiper-component-KkEVUDd3.js} +5 -5
- package/dist/tcl-BAFdhvsi.js +4 -0
- package/dist/textile-DFuzhNLG.js +4 -0
- package/dist/{time-B8tcX_hU.js → time-CMdrp3hw.js} +4 -4
- package/dist/{timeline-definition-IT6M3QCI-CiTBkznn.js → timeline-definition-IT6M3QCI-E4NzxCs3.js} +4 -4
- package/dist/{toDate-Cqrm-UC4.js → toDate-yqOcZ_tY.js} +4 -4
- package/dist/toml-DRSTeely.js +4 -0
- package/dist/{tooltip-DwNnFsxZ.js → tooltip-B0mtKTXm.js} +4 -4
- package/dist/{treemap-GDKQZRPO-BxK9LkTz.js → treemap-GDKQZRPO-CoKHPxa7.js} +3 -3
- package/dist/troff-B_ZjwBW0.js +4 -0
- package/dist/ttcn-CAyiB3ic.js +4 -0
- package/dist/ttcn-cfg-BS5_BGBJ.js +4 -0
- package/dist/turtle-CUBEDy3E.js +4 -0
- package/dist/types-DBtDeUKD.js +38 -0
- package/dist/{useAsyncData-B1v_9k4L.js → useAsyncData-CKYzhCis.js} +2 -2
- package/dist/useDateFormatter-B3mCQMP3.js +150 -0
- package/dist/useDeepCompareMemoize-je76AJS_.js +11 -0
- package/dist/{useIframeCapabilities-WKJHoHW-.js → useIframeCapabilities-DbdLoEDm.js} +1 -1
- package/dist/{useLifecycle-DdNGMIjn.js → useLifecycle-smVfjLNI.js} +4 -4
- package/dist/{useTheme-CfzcSQtz.js → useTheme-CX9pPLUH.js} +3 -3
- package/dist/vb-DY9S6-U2.js +4 -0
- package/dist/vbscript-gaHC39Jq.js +4 -0
- package/dist/{vega-component-CQ88A9vN.js → vega-component-CjMUUeEZ.js} +18 -17
- package/dist/{vega-loader.browser-hMqVC9bf.js → vega-loader.browser-3_z8GoFC.js} +3 -3
- package/dist/velocity-TfCOtJZ_.js +4 -0
- package/dist/verilog-c2JOX8mv.js +4 -0
- package/dist/vhdl-dHBirRiO.js +4 -0
- package/dist/webidl-Bauj-i07.js +4 -0
- package/dist/xquery-CtaEAOt8.js +4 -0
- package/dist/{xychartDiagram-PRI3JC2R-C3c6-1Z6.js → xychartDiagram-PRI3JC2R-CuxTvjw5.js} +13 -13
- package/dist/yacas-BZ85agQP.js +4 -0
- package/dist/z80-hCgR-L4U.js +4 -0
- package/dist/{zod-W5ZEjzaE.js → zod-BxdsqRPd.js} +3 -3
- package/package.json +3 -1
- package/src/components/editor/renderers/slides-layout/slides-layout.tsx +9 -17
- package/src/components/slides/reveal-component.tsx +109 -0
- package/src/components/slides/reveal-slides.css +42 -0
- package/src/components/slides/slides.css +0 -65
- package/src/components/slides/{slides-component.tsx → swiper-component.tsx} +1 -0
- package/src/components/slides/swiper-slides.css +64 -0
- package/src/core/wasm/__tests__/bridge.test.ts +113 -0
- package/src/core/wasm/bridge.ts +2 -2
- package/src/plugins/layout/carousel/CarouselPlugin.tsx +3 -1
- package/dist/apl-Y7yFAg6_.js +0 -4
- package/dist/architecture-7HQA4BMR-CATq-AgL.js +0 -6
- package/dist/asciiarmor-Bl8b2p0w.js +0 -4
- package/dist/asn1-BF6cywqm.js +0 -4
- package/dist/brainfuck-BuqydWe3.js +0 -4
- package/dist/classDiagram-2ON5EDUG-B3w6nMDy.js +0 -30
- package/dist/classDiagram-v2-WZHVMYZB-F3IQS_LI.js +0 -30
- package/dist/clojure-CAHAWK5H.js +0 -4
- package/dist/cmake-BogDc4GF.js +0 -4
- package/dist/cobol-DRnpeU4u.js +0 -4
- package/dist/coffeescript-9MgX7RN8.js +0 -4
- package/dist/commonlisp-CVz2KONN.js +0 -4
- package/dist/crystal-td8mwLG5.js +0 -4
- package/dist/css-BK451dBn.js +0 -4
- package/dist/cypher-DuNPR6Ie.js +0 -4
- package/dist/d-DL6oP_-2.js +0 -4
- package/dist/diff-D9CplOBj.js +0 -4
- package/dist/dist-B9hNC-E9.js +0 -5
- package/dist/dist-BK1_hXFC.js +0 -5
- package/dist/dist-BSGRbj-N.js +0 -8
- package/dist/dist-C5i3bD88.js +0 -5
- package/dist/dist-C9mOdSQc.js +0 -5
- package/dist/dist-DAmwszSZ.js +0 -8
- package/dist/dist-DGgzl61R.js +0 -5
- package/dist/dist-DnGRs0FR.js +0 -5
- package/dist/dist-GBXFGpIo.js +0 -8
- package/dist/dist-H433csIN.js +0 -8
- package/dist/dist-ItCg4aSC.js +0 -6
- package/dist/dist-Mi3Li5U2.js +0 -6
- package/dist/dist-_-4VPi_T.js +0 -5
- package/dist/dist-tIur4wUM.js +0 -5
- package/dist/dtd-Ce1c54UO.js +0 -4
- package/dist/dylan-B43wjIwg.js +0 -4
- package/dist/ecl-DK-fZmir.js +0 -4
- package/dist/eiffel-CNuvvPqD.js +0 -4
- package/dist/elm-DZEkBjgQ.js +0 -4
- package/dist/erlang-Dw4PDZV_.js +0 -4
- package/dist/esm-DGjaY9EX.js +0 -2805
- package/dist/factor-C9JRv63g.js +0 -4
- package/dist/forth-CKhoqn4e.js +0 -4
- package/dist/fortran-Do51bToK.js +0 -4
- package/dist/gas-BZfL3Uwh.js +0 -4
- package/dist/gherkin-BwQh4ehw.js +0 -4
- package/dist/groovy-CG5kCGiv.js +0 -4
- package/dist/haskell-BKii9uTg.js +0 -4
- package/dist/haxe-Bsz30J8x.js +0 -5
- package/dist/idl-BlxgaPKj.js +0 -4
- package/dist/infoDiagram-HS3SLOUP-C1lXJDxe.js +0 -30
- package/dist/javascript-SNhUvTcB.js +0 -4
- package/dist/julia-CGZzaDyk.js +0 -4
- package/dist/livescript-Cj6cX-Ys.js +0 -4
- package/dist/lua-BcVHrD8f.js +0 -4
- package/dist/mathematica-DLY8ZGoJ.js +0 -4
- package/dist/mbox-BNTsMWS5.js +0 -4
- package/dist/mermaid-4DMBBIKO-DRXAUrhi.js +0 -6
- package/dist/mirc-oyeOBir2.js +0 -4
- package/dist/mllike-ByxznKQw.js +0 -6
- package/dist/modelica-DNLhoyD8.js +0 -4
- package/dist/mscgen-DkZltsli.js +0 -6
- package/dist/mumps-TTiQB1xv.js +0 -4
- package/dist/nsis-RT1O1Ph8.js +0 -4
- package/dist/ntriples-CxsCiZ7Z.js +0 -4
- package/dist/octave-CkLh5tpW.js +0 -4
- package/dist/oz-yI7U9eVH.js +0 -4
- package/dist/pascal-CQK8sfDe.js +0 -4
- package/dist/perl-BEG8-kZl.js +0 -4
- package/dist/pig-DLLCqQaR.js +0 -4
- package/dist/powershell-CtjMkVO_.js +0 -4
- package/dist/properties-Domeb57z.js +0 -4
- package/dist/protobuf-0yk85TV6.js +0 -4
- package/dist/pug-B-BiNkM-.js +0 -4
- package/dist/puppet-C0N4vevK.js +0 -4
- package/dist/python-BZFa8G3C.js +0 -4
- package/dist/q-gcj7dgJv.js +0 -4
- package/dist/r-DavzTuPU.js +0 -4
- package/dist/react-vega-BFLRzgl7.js +0 -9
- package/dist/rpm-bPj31ya8.js +0 -5
- package/dist/ruby-3UzzijjE.js +0 -4
- package/dist/sas-D9upmCP9.js +0 -4
- package/dist/scheme-DqWYzIFR.js +0 -4
- package/dist/shell-w63nkNmU.js +0 -4
- package/dist/sieve-Dz_ISrl6.js +0 -4
- package/dist/smalltalk-BXZ14pkr.js +0 -4
- package/dist/sparql-Boyc0wkb.js +0 -4
- package/dist/stateDiagram-v2-4FDKWEC3-BPz-4Aaz.js +0 -29
- package/dist/stex-CZyTRGVB.js +0 -4
- package/dist/stylus-m9L_f1X1.js +0 -4
- package/dist/swift-C4TGn99K.js +0 -4
- package/dist/tcl-D_L0cfYZ.js +0 -4
- package/dist/textile-BAofYdKN.js +0 -4
- package/dist/toml-DCDKACLL.js +0 -4
- package/dist/troff-JHOU2VZK.js +0 -4
- package/dist/ttcn-Cxhng3qq.js +0 -4
- package/dist/ttcn-cfg-DJgUIu5n.js +0 -4
- package/dist/turtle-DKYkKZjV.js +0 -4
- package/dist/types-DEY2byth.js +0 -202
- package/dist/useDeepCompareMemoize-ToNUMW7X.js +0 -85
- package/dist/vb-C9rpn9hN.js +0 -4
- package/dist/vbscript-BQ7rxQU0.js +0 -4
- package/dist/velocity-C8WXmzLz.js +0 -4
- package/dist/verilog-BUXJEyEq.js +0 -4
- package/dist/vhdl-C18YIXfF.js +0 -4
- package/dist/webidl-D97EKzDx.js +0 -4
- package/dist/xquery-BZM6yzG2.js +0 -4
- package/dist/yacas-CXKck-Ok.js +0 -4
- package/dist/z80-BbF6ykWc.js +0 -4
- /package/dist/{_baseFor-6rr1p10t.js → _baseFor-BGiY-cm1.js} +0 -0
- /package/dist/{apl-BqjtmlWW.js → apl-Dt8GMXYg.js} +0 -0
- /package/dist/{array-D7wW5QoO.js → array-B-MVxRIF.js} +0 -0
- /package/dist/{asciiarmor-D9C9bbeV.js → asciiarmor-CitDQ85h.js} +0 -0
- /package/dist/{asn1-D_zR1ubK.js → asn1-abrf9SMK.js} +0 -0
- /package/dist/{asterisk-B0dLLA8Z.js → asterisk-BUZwqih-.js} +0 -0
- /package/dist/{brainfuck-79SC7EYA.js → brainfuck-BL-Boof0.js} +0 -0
- /package/dist/{chunk-DR5Q36YT-BxPcQ21t.js → chunk-DR5Q36YT-CP69aZS_.js} +0 -0
- /package/dist/{click-outside-container-BHqXZnKi.js → click-outside-container-BZgN7xS_.js} +0 -0
- /package/dist/{clike-DFDX2jWq.js → clike-RWg7anhx.js} +0 -0
- /package/dist/{clojure-Bb3Od9By.js → clojure-DaojKHow.js} +0 -0
- /package/dist/{clsx-CwTY0BxM.js → clsx-CyyyQ8Ue.js} +0 -0
- /package/dist/{cmake-DYGUYEtU.js → cmake-DN-_v0XE.js} +0 -0
- /package/dist/{cobol-CcWmcAFT.js → cobol-C3VpMyux.js} +0 -0
- /package/dist/{coffeescript-BVa1qoL6.js → coffeescript-DIkz3Tbt.js} +0 -0
- /package/dist/{colors-6DRQ0kEF.js → colors-Cn2p_FA3.js} +0 -0
- /package/dist/{common-keywords-Bz8dNfWa.js → common-keywords-hbLeU7VU.js} +0 -0
- /package/dist/{commonlisp-zi51jgUH.js → commonlisp-CB1boOiP.js} +0 -0
- /package/dist/{crystal-QjpegJHM.js → crystal-DI2oCml6.js} +0 -0
- /package/dist/{css-B_GfJtcK.js → css-BdEVwQDV.js} +0 -0
- /package/dist/{cypher-BVuYJpGf.js → cypher-BNHToqxU.js} +0 -0
- /package/dist/{cytoscape.esm-BYAuS6uS.js → cytoscape.esm-WbbDoCfu.js} +0 -0
- /package/dist/{d-BT97RiQI.js → d-D7we7I1b.js} +0 -0
- /package/dist/{defaultLocale-DjFHq3Xk.js → defaultLocale-BpsHxBd7.js} +0 -0
- /package/dist/{defaultLocale-B_A76Zpk.js → defaultLocale-DoeErsX2.js} +0 -0
- /package/dist/{diff-CHd93v7L.js → diff-Cia6fzjN.js} +0 -0
- /package/dist/{dist-CqR8FBcH.js → dist-C89sHDXk.js} +0 -0
- /package/dist/{dist-DPAK3Dpl.js → dist-CCADb07R.js} +0 -0
- /package/dist/{dtd-akLFIRuZ.js → dtd-H4Hubdwp.js} +0 -0
- /package/dist/{duckdb-keywords-CQAIHMbC.js → duckdb-keywords-CZ_ZTscu.js} +0 -0
- /package/dist/{dylan-Iy-rgNOc.js → dylan-fVO6rnq3.js} +0 -0
- /package/dist/{ebnf-CTkZpZPT.js → ebnf-WEXPLEWb.js} +0 -0
- /package/dist/{ecl-BhUXC_aR.js → ecl-B94VPjNR.js} +0 -0
- /package/dist/{eiffel-DIRAlWPD.js → eiffel-C_R6TusS.js} +0 -0
- /package/dist/{elm-BDgVzkJ4.js → elm-DzCHbO2g.js} +0 -0
- /package/dist/{emotion-is-prop-valid.esm-DdzHpbbG.js → emotion-is-prop-valid.esm-DtW2o230.js} +0 -0
- /package/dist/{erlang-Djcs_NwB.js → erlang-BGNkx6JU.js} +0 -0
- /package/dist/{esm-BRwAuUu2.js → esm-Bb_hbWan.js} +0 -0
- /package/dist/{fcl-OXoT8w4k.js → fcl-B_Gv5Jfx.js} +0 -0
- /package/dist/{forth-c_NTahPv.js → forth-Bybw0cJ7.js} +0 -0
- /package/dist/{fortran-Bpxt27dn.js → fortran-C6PoCLkI.js} +0 -0
- /package/dist/{gas-RVBts6ZK.js → gas-BBlhenj4.js} +0 -0
- /package/dist/{gherkin-Hf6PTauh.js → gherkin-NXtNG85X.js} +0 -0
- /package/dist/{groovy-CKjO-cRi.js → groovy-BoFYK9xM.js} +0 -0
- /package/dist/{haskell-DC1Gan6v.js → haskell-BtBdvQ1n.js} +0 -0
- /package/dist/{haxe-Bpne--ot.js → haxe-D--o6dr0.js} +0 -0
- /package/dist/{http-CPVO27fZ.js → http-Dc2fv19V.js} +0 -0
- /package/dist/{idl-GRIbMIEq.js → idl-AqTq5l7e.js} +0 -0
- /package/dist/{init-BfRhston.js → init-D-g0ONX1.js} +0 -0
- /package/dist/{invariant-D4hPsZFI.js → invariant-UcGKQEhF.js} +0 -0
- /package/dist/{javascript-nS0zxWNO.js → javascript-DvwNVye9.js} +0 -0
- /package/dist/{jsx-runtime-9hcJiI23.js → jsx-runtime-COBk7ree.js} +0 -0
- /package/dist/{julia-CQpdTxmO.js → julia-DoKiagZC.js} +0 -0
- /package/dist/{katex-Dg42UEnr.js → katex-B7pMJpE0.js} +0 -0
- /package/dist/{livescript-D5kqrQol.js → livescript-DxBZMiWB.js} +0 -0
- /package/dist/{lua-CKifrpGK.js → lua-DmS_0NTu.js} +0 -0
- /package/dist/{main-CvkAPtaq.js → main-CThhXnXU.js} +0 -0
- /package/dist/{math-BbMyrONz.js → math-BYK36kWZ.js} +0 -0
- /package/dist/{mathematica-CxT3f_fi.js → mathematica-ChlDFeIC.js} +0 -0
- /package/dist/{mbox-C2_n_I9h.js → mbox-CguZuODr.js} +0 -0
- /package/dist/{micromark-factory-space-YUxUai1y.js → micromark-factory-space-CwHmg6iz.js} +0 -0
- /package/dist/{mirc-BTQeASBH.js → mirc-CFtY8dqz.js} +0 -0
- /package/dist/{mllike-BxO6Hl5N.js → mllike-C0EJrEOk.js} +0 -0
- /package/dist/{modelica-DuivZReX.js → modelica-C1kO1nfS.js} +0 -0
- /package/dist/{mscgen-DwD83FOm.js → mscgen-DEYdr7AY.js} +0 -0
- /package/dist/{mumps-CdVjp3OE.js → mumps-B3NVJs2V.js} +0 -0
- /package/dist/{nginx-Bi9TuNqb.js → nginx-ComVAAGN.js} +0 -0
- /package/dist/{node-sql-parser-Bet3kHkt.js → node-sql-parser-DNGGJ-Rw.js} +0 -0
- /package/dist/{ntriples-DBS60qLp.js → ntriples-DHol9X9H.js} +0 -0
- /package/dist/{octave-BL0tQUFC.js → octave-CYGz0bfo.js} +0 -0
- /package/dist/{oz-DBrG4vwi.js → oz-kPxb2ni5.js} +0 -0
- /package/dist/{pascal-BWV9h8yS.js → pascal-bZ0yrJKy.js} +0 -0
- /package/dist/{path-C_x2ySFi.js → path-Du6n3sOU.js} +0 -0
- /package/dist/{perl-Bm5a83JW.js → perl-z4hvqyqz.js} +0 -0
- /package/dist/{pig-CbJDoHaE.js → pig-DZO8QDF9.js} +0 -0
- /package/dist/{powershell-tG44m5Cy.js → powershell-BSuaDQEC.js} +0 -0
- /package/dist/{properties-DUZGzdb1.js → properties-BXhGLlIx.js} +0 -0
- /package/dist/{protobuf-CcoKXY0d.js → protobuf-DM6iybWV.js} +0 -0
- /package/dist/{puppet-BH73L_Gw.js → puppet-Bn05sQT8.js} +0 -0
- /package/dist/{purify.es-ClMna40y.js → purify.es-DT70lfR0.js} +0 -0
- /package/dist/{python-NJIxLTZp.js → python-Cvnhm0g7.js} +0 -0
- /package/dist/{q-MotBNA65.js → q-B9V8hzex.js} +0 -0
- /package/dist/{r-BUgBPae7.js → r-Cf0gFqmq.js} +0 -0
- /package/dist/{range-DwpxnYuB.js → range-BOiA8qqU.js} +0 -0
- /package/dist/{react-dom-D5FDLRUB.js → react-dom-BWRJ_g_k.js} +0 -0
- /package/dist/{rpm-C_PaGodG.js → rpm-D-LMkTV1.js} +0 -0
- /package/dist/{ruby-DFLM2XD8.js → ruby-DeuPikpK.js} +0 -0
- /package/dist/{sas-BMyyu8oO.js → sas-C9tjgAo9.js} +0 -0
- /package/dist/{scheme-Qet9zYAe.js → scheme-D1_bUF0G.js} +0 -0
- /package/dist/{shell-BKHx4Jjo.js → shell-CJBmnks3.js} +0 -0
- /package/dist/{sieve-CVo7dc4j.js → sieve-1fSV75CF.js} +0 -0
- /package/dist/{simple-mode-CVFBIo6d.js → simple-mode-B90Wdavj.js} +0 -0
- /package/dist/{smalltalk-BHr2nCth.js → smalltalk-sZNPD0HO.js} +0 -0
- /package/dist/{solr-Bt9XtM2H.js → solr-DTkyqJ-Z.js} +0 -0
- /package/dist/{sparql-QSu0ZCcc.js → sparql-oHc1nm77.js} +0 -0
- /package/dist/{spreadsheet-BWfuwc0V.js → spreadsheet-CER0raqY.js} +0 -0
- /package/dist/{sql-BdV3YOCG.js → sql-ByOoEONQ.js} +0 -0
- /package/dist/{stex-Ze8D4R_5.js → stex-DrxP7bb3.js} +0 -0
- /package/dist/{stylus-CLZH9-Ps.js → stylus-KzkX6zRB.js} +0 -0
- /package/dist/{swift-JNDJdNIE.js → swift-DqVxZvKo.js} +0 -0
- /package/dist/{tcl-J5aE7aj5.js → tcl-BtWSwXfA.js} +0 -0
- /package/dist/{textile-6Hn05XQM.js → textile-CWDbn9Ql.js} +0 -0
- /package/dist/{tiddlywiki-BWn8rSwJ.js → tiddlywiki-Cr9xyOY1.js} +0 -0
- /package/dist/{tiki-XORjA1c3.js → tiki-D5JONyfZ.js} +0 -0
- /package/dist/{timer-pEiW44EO.js → timer-D7JVdX9U.js} +0 -0
- /package/dist/{toml-BceyeuiF.js → toml-BfehlgmL.js} +0 -0
- /package/dist/{treemap-BzS5cW_6.js → treemap-qFGzn7xk.js} +0 -0
- /package/dist/{troff-DeMyd5Pf.js → troff-BZBk6AAu.js} +0 -0
- /package/dist/{ttcn-DurvvcB-.js → ttcn-DVwvXg0_.js} +0 -0
- /package/dist/{ttcn-cfg-BuYui6Rv.js → ttcn-cfg-gjbVLf1L.js} +0 -0
- /package/dist/{turtle-CD8Qf-tp.js → turtle-CgxKXorV.js} +0 -0
- /package/dist/{vb-BklM-Nqk.js → vb-B9kSwTdM.js} +0 -0
- /package/dist/{vbscript-DbMEEX0d.js → vbscript-DrUKSCdb.js} +0 -0
- /package/dist/{velocity-CERL-_vq.js → velocity-AlMYTnMy.js} +0 -0
- /package/dist/{verilog-BD6jNce6.js → verilog-DLUaM05j.js} +0 -0
- /package/dist/{vhdl-U-1_N98i.js → vhdl-DUJOtSmO.js} +0 -0
- /package/dist/{webidl-IUn0dzoa.js → webidl-CQp4aHk_.js} +0 -0
- /package/dist/{xquery-QeeHdSO2.js → xquery-IxkjlwOD.js} +0 -0
- /package/dist/{yacas-C9XcEPAJ.js → yacas-Bnctn5w8.js} +0 -0
- /package/dist/{z80-C-nD1oRy.js → z80-DrFwhx53.js} +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
-
import React, { useState } from "react";
|
|
2
|
+
import React, { useRef, useState } from "react";
|
|
3
3
|
import { useAtomValue } from "jotai";
|
|
4
4
|
import { numColumnsAtom } from "@/core/cells/cells";
|
|
5
5
|
import type { CellId } from "@/core/cells/ids";
|
|
6
6
|
import type { ICellRendererProps } from "../types";
|
|
7
7
|
import type { SlidesLayout } from "./types";
|
|
8
8
|
import { SlidesMinimap } from "@/components/slides/minimap";
|
|
9
|
-
import { Slide } from "@/components/slides/slide";
|
|
10
9
|
import useEvent from "react-use-event-hook";
|
|
10
|
+
import type { RevealApi } from "reveal.js";
|
|
11
11
|
|
|
12
12
|
type Props = ICellRendererProps<SlidesLayout>;
|
|
13
13
|
|
|
14
14
|
const LazySlidesComponent = React.lazy(
|
|
15
|
-
() => import("../../../slides/
|
|
15
|
+
() => import("../../../slides/reveal-component"),
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
export const SlidesLayoutRenderer: React.FC<Props> = ({
|
|
@@ -26,6 +26,7 @@ export const SlidesLayoutRenderer: React.FC<Props> = ({
|
|
|
26
26
|
const numColumns = useAtomValue(numColumnsAtom);
|
|
27
27
|
const isMultiColumn = numColumns > 1;
|
|
28
28
|
const [activeCellId, setActiveCellId] = useState<CellId | null>(null);
|
|
29
|
+
const deckRef = useRef<RevealApi | null>(null);
|
|
29
30
|
|
|
30
31
|
const cellsWithOutput = cells.filter(
|
|
31
32
|
(cell) => cell.output != null && cell.output.data !== "",
|
|
@@ -45,24 +46,15 @@ export const SlidesLayoutRenderer: React.FC<Props> = ({
|
|
|
45
46
|
|
|
46
47
|
const slides = (
|
|
47
48
|
<LazySlidesComponent
|
|
48
|
-
|
|
49
|
-
className="flex-1 self-center"
|
|
49
|
+
cellsWithOutput={cellsWithOutput}
|
|
50
50
|
activeIndex={resolvedIndex}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
<Slide
|
|
55
|
-
key={cell.id}
|
|
56
|
-
cellId={cell.id}
|
|
57
|
-
status={cell.status}
|
|
58
|
-
output={cell.output}
|
|
59
|
-
/>
|
|
60
|
-
))}
|
|
61
|
-
</LazySlidesComponent>
|
|
51
|
+
onSlideChange={handleSlideChange}
|
|
52
|
+
deckRef={deckRef}
|
|
53
|
+
/>
|
|
62
54
|
);
|
|
63
55
|
|
|
64
56
|
if (isReading) {
|
|
65
|
-
return <div className="p-4 flex flex-
|
|
57
|
+
return <div className="p-4 flex flex-1 max-h-[95%]">{slides}</div>;
|
|
66
58
|
}
|
|
67
59
|
|
|
68
60
|
return (
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import { ExpandIcon } from "lucide-react";
|
|
5
|
+
import { Deck, Slide } from "@revealjs/react";
|
|
6
|
+
import { Slide as CellOutputSlide } from "@/components/slides/slide";
|
|
7
|
+
import { Button } from "@/components/ui/button";
|
|
8
|
+
import { Tooltip } from "@/components/ui/tooltip";
|
|
9
|
+
import type { CellData, CellRuntimeState } from "@/core/cells/types";
|
|
10
|
+
import type { RevealApi } from "reveal.js";
|
|
11
|
+
import { Events } from "@/utils/events";
|
|
12
|
+
import { Logger } from "@/utils/Logger";
|
|
13
|
+
|
|
14
|
+
import "./slides.css";
|
|
15
|
+
import "./reveal-slides.css";
|
|
16
|
+
|
|
17
|
+
const RevealSlidesComponent = ({
|
|
18
|
+
cellsWithOutput,
|
|
19
|
+
activeIndex,
|
|
20
|
+
onSlideChange,
|
|
21
|
+
deckRef,
|
|
22
|
+
}: {
|
|
23
|
+
cellsWithOutput: (CellRuntimeState & CellData)[];
|
|
24
|
+
activeIndex?: number;
|
|
25
|
+
onSlideChange?: (index: number) => void;
|
|
26
|
+
deckRef: React.RefObject<RevealApi | null>;
|
|
27
|
+
}) => {
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
const deck = deckRef.current;
|
|
30
|
+
if (deck == null || activeIndex == null) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const { h } = deck.getIndices();
|
|
34
|
+
if (h !== activeIndex) {
|
|
35
|
+
deck.slide(activeIndex);
|
|
36
|
+
}
|
|
37
|
+
}, [activeIndex, deckRef]);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div className="group relative h-full w-full flex-1">
|
|
41
|
+
<Deck
|
|
42
|
+
deckRef={deckRef}
|
|
43
|
+
className="relative w-full h-full border rounded bg-background mo-slides-theme prose-slides"
|
|
44
|
+
style={{ height: "100%" }}
|
|
45
|
+
config={{
|
|
46
|
+
embedded: true, // Avoid styles leaking out
|
|
47
|
+
overview: false,
|
|
48
|
+
width: "100%",
|
|
49
|
+
height: "100%", // Both style and config height are needed to ensure the deck is full height
|
|
50
|
+
center: false, // We are handling this manually
|
|
51
|
+
minScale: 1,
|
|
52
|
+
maxScale: 1,
|
|
53
|
+
// Only enable keyboard controls when not focused on an input
|
|
54
|
+
keyboardCondition: (event: KeyboardEvent) => {
|
|
55
|
+
return !Events.fromInput(event);
|
|
56
|
+
},
|
|
57
|
+
}}
|
|
58
|
+
onSlideChange={() => {
|
|
59
|
+
const deck = deckRef.current;
|
|
60
|
+
if (deck) {
|
|
61
|
+
onSlideChange?.(deck.getIndices().h);
|
|
62
|
+
// Trigger resize so vega-embed re-measures container width
|
|
63
|
+
if (
|
|
64
|
+
deck.getCurrentSlide()?.querySelector(".vega-embed, marimo-vega")
|
|
65
|
+
) {
|
|
66
|
+
requestAnimationFrame(() => {
|
|
67
|
+
window.dispatchEvent(new Event("resize"));
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}}
|
|
72
|
+
>
|
|
73
|
+
{cellsWithOutput.map((cell) => (
|
|
74
|
+
<Slide key={cell.id}>
|
|
75
|
+
<div className="h-full w-full overflow-auto flex">
|
|
76
|
+
<div className="mo-slide-content" style={{ margin: "auto 0" }}>
|
|
77
|
+
<CellOutputSlide
|
|
78
|
+
cellId={cell.id}
|
|
79
|
+
status={cell.status}
|
|
80
|
+
output={cell.output}
|
|
81
|
+
/>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</Slide>
|
|
85
|
+
))}
|
|
86
|
+
</Deck>
|
|
87
|
+
<Tooltip content="Fullscreen (F)">
|
|
88
|
+
<Button
|
|
89
|
+
data-testid="marimo-plugin-slides-fullscreen"
|
|
90
|
+
variant="ghost"
|
|
91
|
+
size="icon"
|
|
92
|
+
className="absolute top-2 right-2 z-10 opacity-0 group-hover:opacity-70 text-muted-foreground transition-opacity h-7 w-7"
|
|
93
|
+
onClick={() => {
|
|
94
|
+
deckRef.current
|
|
95
|
+
?.getViewportElement()
|
|
96
|
+
?.requestFullscreen()
|
|
97
|
+
.catch((error) => {
|
|
98
|
+
Logger.error("Failed to request fullscreen", error);
|
|
99
|
+
});
|
|
100
|
+
}}
|
|
101
|
+
>
|
|
102
|
+
<ExpandIcon className="h-4 w-4" />
|
|
103
|
+
</Button>
|
|
104
|
+
</Tooltip>
|
|
105
|
+
</div>
|
|
106
|
+
);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export default RevealSlidesComponent;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@import "reveal.js/reveal.css";
|
|
2
|
+
|
|
3
|
+
/* Neutralize reveal-viewport styles so the slides inherit marimo's defaults */
|
|
4
|
+
.reveal-viewport {
|
|
5
|
+
background-color: transparent;
|
|
6
|
+
color: inherit;
|
|
7
|
+
line-height: inherit;
|
|
8
|
+
overflow: visible;
|
|
9
|
+
height: auto;
|
|
10
|
+
}
|
|
11
|
+
.reveal-viewport:fullscreen {
|
|
12
|
+
background-color: var(--background);
|
|
13
|
+
}
|
|
14
|
+
.reveal-viewport:fullscreen .mo-slide-content {
|
|
15
|
+
padding-left: 2rem;
|
|
16
|
+
padding-right: 2rem;
|
|
17
|
+
}
|
|
18
|
+
.reveal-viewport::backdrop {
|
|
19
|
+
background-color: var(--background);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Ensure .reveal inherits marimo's font/color instead of setting its own */
|
|
23
|
+
.mo-slides-theme.reveal {
|
|
24
|
+
font-family: inherit;
|
|
25
|
+
font-size: inherit;
|
|
26
|
+
color: inherit;
|
|
27
|
+
}
|
|
28
|
+
/* Use marimo's primary color for controls and progress */
|
|
29
|
+
.mo-slides-theme.reveal .controls {
|
|
30
|
+
color: var(--primary);
|
|
31
|
+
}
|
|
32
|
+
.mo-slides-theme.reveal .progress {
|
|
33
|
+
color: var(--primary);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.reveal .slides {
|
|
37
|
+
text-align: unset;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.reveal .slides > section {
|
|
41
|
+
height: 100%;
|
|
42
|
+
}
|
|
@@ -1,68 +1,3 @@
|
|
|
1
|
-
@import "swiper/css";
|
|
2
|
-
@import "swiper/css/virtual";
|
|
3
|
-
@import "swiper/css/navigation";
|
|
4
|
-
@import "swiper/css/pagination";
|
|
5
|
-
@import "swiper/css/scrollbar";
|
|
6
|
-
|
|
7
|
-
.mo-slides-theme {
|
|
8
|
-
--swiper-theme-color: var(--primary);
|
|
9
|
-
--swiper-pagination-color: var(--swiper-theme-color);
|
|
10
|
-
--swiper-pagination-left: auto;
|
|
11
|
-
--swiper-pagination-right: 8px;
|
|
12
|
-
--swiper-pagination-bottom: 8px;
|
|
13
|
-
--swiper-pagination-top: auto;
|
|
14
|
-
--swiper-pagination-fraction-color: inherit;
|
|
15
|
-
--swiper-pagination-progressbar-bg-color: rgba(0, 0, 0, 0.25);
|
|
16
|
-
--swiper-pagination-progressbar-size: 4px;
|
|
17
|
-
--swiper-pagination-bullet-size: 8px;
|
|
18
|
-
--swiper-pagination-bullet-width: 8px;
|
|
19
|
-
--swiper-pagination-bullet-height: 8px;
|
|
20
|
-
--swiper-pagination-bullet-border-radius: 50%;
|
|
21
|
-
--swiper-pagination-bullet-inactive-color: #000;
|
|
22
|
-
--swiper-pagination-bullet-inactive-opacity: 0.2;
|
|
23
|
-
--swiper-pagination-bullet-opacity: 1;
|
|
24
|
-
--swiper-pagination-bullet-horizontal-gap: 4px;
|
|
25
|
-
--swiper-pagination-bullet-vertical-gap: 6px;
|
|
26
|
-
|
|
27
|
-
.swiper-button-prev,
|
|
28
|
-
.swiper-button-next {
|
|
29
|
-
height: 100%;
|
|
30
|
-
top: 0;
|
|
31
|
-
bottom: 0;
|
|
32
|
-
background-color: rgba(0, 0, 0, 0.1);
|
|
33
|
-
opacity: 0;
|
|
34
|
-
padding: 0 15px;
|
|
35
|
-
transition: opacity 0.3s;
|
|
36
|
-
font-weight: 900;
|
|
37
|
-
margin-top: 0;
|
|
38
|
-
|
|
39
|
-
--swiper-navigation-sides-offset: 0;
|
|
40
|
-
--swiper-navigation-size: 20px;
|
|
41
|
-
|
|
42
|
-
&.swiper-button-disabled {
|
|
43
|
-
opacity: 0;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
&:hover:not(.swiper-button-disabled) {
|
|
47
|
-
opacity: 1;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@font-face {
|
|
53
|
-
font-family: "swiper-icons";
|
|
54
|
-
src: url("data:application/font-woff;charset=utf-8;base64, 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");
|
|
55
|
-
font-weight: 400;
|
|
56
|
-
font-style: normal;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/* The swiper library adds styles to `:host` which is a global selector we use for other components,
|
|
60
|
-
so we are resetting this back to initial. */
|
|
61
|
-
/* 2 hosts to increase specificity */
|
|
62
|
-
:host:host {
|
|
63
|
-
display: initial;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
1
|
/* The slides is full width, but centers the inside content to fit the width of the content. */
|
|
67
2
|
.mo-slide-content {
|
|
68
3
|
width: 100%;
|
|
@@ -14,6 +14,7 @@ import { useEventListener } from "@/hooks/useEventListener";
|
|
|
14
14
|
import { useIframeCapabilities } from "@/hooks/useIframeCapabilities";
|
|
15
15
|
import { cn } from "@/utils/cn";
|
|
16
16
|
|
|
17
|
+
import "./swiper-slides.css";
|
|
17
18
|
import "./slides.css";
|
|
18
19
|
|
|
19
20
|
interface SlidesComponentProps {
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@import "swiper/css";
|
|
2
|
+
@import "swiper/css/virtual";
|
|
3
|
+
@import "swiper/css/navigation";
|
|
4
|
+
@import "swiper/css/pagination";
|
|
5
|
+
@import "swiper/css/scrollbar";
|
|
6
|
+
|
|
7
|
+
.mo-slides-theme {
|
|
8
|
+
--swiper-theme-color: var(--primary);
|
|
9
|
+
--swiper-pagination-color: var(--swiper-theme-color);
|
|
10
|
+
--swiper-pagination-left: auto;
|
|
11
|
+
--swiper-pagination-right: 8px;
|
|
12
|
+
--swiper-pagination-bottom: 8px;
|
|
13
|
+
--swiper-pagination-top: auto;
|
|
14
|
+
--swiper-pagination-fraction-color: inherit;
|
|
15
|
+
--swiper-pagination-progressbar-bg-color: rgba(0, 0, 0, 0.25);
|
|
16
|
+
--swiper-pagination-progressbar-size: 4px;
|
|
17
|
+
--swiper-pagination-bullet-size: 8px;
|
|
18
|
+
--swiper-pagination-bullet-width: 8px;
|
|
19
|
+
--swiper-pagination-bullet-height: 8px;
|
|
20
|
+
--swiper-pagination-bullet-border-radius: 50%;
|
|
21
|
+
--swiper-pagination-bullet-inactive-color: #000;
|
|
22
|
+
--swiper-pagination-bullet-inactive-opacity: 0.2;
|
|
23
|
+
--swiper-pagination-bullet-opacity: 1;
|
|
24
|
+
--swiper-pagination-bullet-horizontal-gap: 4px;
|
|
25
|
+
--swiper-pagination-bullet-vertical-gap: 6px;
|
|
26
|
+
|
|
27
|
+
.swiper-button-prev,
|
|
28
|
+
.swiper-button-next {
|
|
29
|
+
height: 100%;
|
|
30
|
+
top: 0;
|
|
31
|
+
bottom: 0;
|
|
32
|
+
background-color: rgba(0, 0, 0, 0.1);
|
|
33
|
+
opacity: 0;
|
|
34
|
+
padding: 0 15px;
|
|
35
|
+
transition: opacity 0.3s;
|
|
36
|
+
font-weight: 900;
|
|
37
|
+
margin-top: 0;
|
|
38
|
+
|
|
39
|
+
--swiper-navigation-sides-offset: 0;
|
|
40
|
+
--swiper-navigation-size: 20px;
|
|
41
|
+
|
|
42
|
+
&.swiper-button-disabled {
|
|
43
|
+
opacity: 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&:hover:not(.swiper-button-disabled) {
|
|
47
|
+
opacity: 1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@font-face {
|
|
53
|
+
font-family: "swiper-icons";
|
|
54
|
+
src: url("data:application/font-woff;charset=utf-8;base64, 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");
|
|
55
|
+
font-weight: 400;
|
|
56
|
+
font-style: normal;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* The swiper library adds styles to `:host` which is a global selector we use for other components,
|
|
60
|
+
so we are resetting this back to initial. */
|
|
61
|
+
/* 2 hosts to increase specificity */
|
|
62
|
+
:host:host {
|
|
63
|
+
display: initial;
|
|
64
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
|
|
5
|
+
const { mockNotebookReadFile, rpcListeners } = vi.hoisted(() => ({
|
|
6
|
+
mockNotebookReadFile: vi.fn(),
|
|
7
|
+
rpcListeners: {} as Record<string, () => void>,
|
|
8
|
+
}));
|
|
9
|
+
|
|
10
|
+
// Mock browser globals before any imports
|
|
11
|
+
vi.stubGlobal("crossOriginIsolated", false);
|
|
12
|
+
vi.stubGlobal(
|
|
13
|
+
"Worker",
|
|
14
|
+
vi.fn(() => ({
|
|
15
|
+
addEventListener: vi.fn(),
|
|
16
|
+
postMessage: vi.fn(),
|
|
17
|
+
terminate: vi.fn(),
|
|
18
|
+
})),
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
class MockURL extends URL {
|
|
22
|
+
static override createObjectURL = vi.fn(() => "blob:mock-url");
|
|
23
|
+
static override revokeObjectURL = vi.fn();
|
|
24
|
+
}
|
|
25
|
+
vi.stubGlobal("URL", MockURL);
|
|
26
|
+
|
|
27
|
+
vi.mock("@/core/wasm/rpc", () => ({
|
|
28
|
+
getWorkerRPC: () => ({
|
|
29
|
+
proxy: {
|
|
30
|
+
request: {
|
|
31
|
+
bridge: vi.fn(),
|
|
32
|
+
startSession: vi.fn(),
|
|
33
|
+
readFile: vi.fn(),
|
|
34
|
+
readNotebook: vi.fn(),
|
|
35
|
+
saveNotebook: vi.fn(),
|
|
36
|
+
},
|
|
37
|
+
send: { consumerReady: vi.fn() },
|
|
38
|
+
},
|
|
39
|
+
addMessageListener: (event: string, cb: () => void) => {
|
|
40
|
+
rpcListeners[event] = cb;
|
|
41
|
+
},
|
|
42
|
+
}),
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
vi.mock("@/core/meta/globals", () => ({
|
|
46
|
+
getMarimoVersion: () => "0.0.0-test",
|
|
47
|
+
}));
|
|
48
|
+
|
|
49
|
+
vi.mock("@/core/wasm/utils", () => ({
|
|
50
|
+
isWasm: () => true,
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
vi.mock("@/core/wasm/store", () => ({
|
|
54
|
+
fallbackFileStore: { readFile: vi.fn(), saveFile: vi.fn() },
|
|
55
|
+
notebookFileStore: { readFile: mockNotebookReadFile, saveFile: vi.fn() },
|
|
56
|
+
}));
|
|
57
|
+
|
|
58
|
+
// Import after all mocks are set up
|
|
59
|
+
import { store } from "@/core/state/jotai";
|
|
60
|
+
import { initialModeAtom } from "@/core/mode";
|
|
61
|
+
import { PyodideBridge } from "../bridge";
|
|
62
|
+
|
|
63
|
+
// Access INSTANCE once at module level so the constructor runs (and
|
|
64
|
+
// addMessageListener populates rpcListeners) before any test executes.
|
|
65
|
+
void PyodideBridge.INSTANCE;
|
|
66
|
+
|
|
67
|
+
describe("PyodideBridge.readCode", () => {
|
|
68
|
+
beforeEach(() => {
|
|
69
|
+
vi.clearAllMocks();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
afterEach(() => {
|
|
73
|
+
store.set(initialModeAtom, undefined);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("reads from notebookFileStore in read mode", async () => {
|
|
77
|
+
store.set(initialModeAtom, "read");
|
|
78
|
+
// Trigger getSaveWorker — it reads the current mode and returns a stub
|
|
79
|
+
// whose readNotebook delegates to notebookFileStore.
|
|
80
|
+
rpcListeners.initialized();
|
|
81
|
+
mockNotebookReadFile.mockResolvedValue(
|
|
82
|
+
"import numpy as np\nprint(np.__version__)",
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const result = await PyodideBridge.INSTANCE.readCode();
|
|
86
|
+
|
|
87
|
+
expect(result).toEqual({
|
|
88
|
+
contents: "import numpy as np\nprint(np.__version__)",
|
|
89
|
+
});
|
|
90
|
+
expect(mockNotebookReadFile).toHaveBeenCalledTimes(1);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("returns empty string when notebookFileStore has no code in read mode", async () => {
|
|
94
|
+
store.set(initialModeAtom, "read");
|
|
95
|
+
rpcListeners.initialized();
|
|
96
|
+
mockNotebookReadFile.mockResolvedValue(null);
|
|
97
|
+
|
|
98
|
+
const result = await PyodideBridge.INSTANCE.readCode();
|
|
99
|
+
|
|
100
|
+
expect(result).toEqual({ contents: "" });
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("does not call notebookFileStore in edit mode", async () => {
|
|
104
|
+
store.set(initialModeAtom, "edit");
|
|
105
|
+
// getSaveWorker in edit mode creates a real worker (mocked); readNotebook
|
|
106
|
+
// goes to the RPC proxy, not notebookFileStore.
|
|
107
|
+
rpcListeners.initialized();
|
|
108
|
+
|
|
109
|
+
await PyodideBridge.INSTANCE.readCode();
|
|
110
|
+
|
|
111
|
+
expect(mockNotebookReadFile).not.toHaveBeenCalled();
|
|
112
|
+
});
|
|
113
|
+
});
|
package/src/core/wasm/bridge.ts
CHANGED
|
@@ -67,10 +67,10 @@ export class PyodideBridge implements RunRequests, EditRequests {
|
|
|
67
67
|
|
|
68
68
|
private getSaveWorker(): SaveWorker {
|
|
69
69
|
if (getInitialAppMode() === "read") {
|
|
70
|
-
Logger.debug("
|
|
70
|
+
Logger.debug("Using partially disabled SaveWorker in read-mode");
|
|
71
71
|
return {
|
|
72
72
|
readFile: throwNotImplemented,
|
|
73
|
-
readNotebook:
|
|
73
|
+
readNotebook: async () => (await notebookFileStore.readFile()) ?? "",
|
|
74
74
|
saveNotebook: throwNotImplemented,
|
|
75
75
|
};
|
|
76
76
|
}
|
|
@@ -8,6 +8,7 @@ import swiperCssVirtual from "swiper/css/virtual?inline";
|
|
|
8
8
|
import swiperCss from "swiper/css?inline";
|
|
9
9
|
import { z } from "zod";
|
|
10
10
|
import slidesCss from "@/components/slides/slides.css?inline";
|
|
11
|
+
import swiperSlidesCss from "@/components/slides/swiper-slides.css?inline";
|
|
11
12
|
import type {
|
|
12
13
|
IStatelessPlugin,
|
|
13
14
|
IStatelessPluginProps,
|
|
@@ -34,6 +35,7 @@ export class CarouselPlugin implements IStatelessPlugin<Data> {
|
|
|
34
35
|
swiperCssPagination,
|
|
35
36
|
swiperCssScrollbar,
|
|
36
37
|
slidesCss,
|
|
38
|
+
swiperSlidesCss,
|
|
37
39
|
];
|
|
38
40
|
|
|
39
41
|
render(props: IStatelessPluginProps<Data>): JSX.Element {
|
|
@@ -46,5 +48,5 @@ export class CarouselPlugin implements IStatelessPlugin<Data> {
|
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
const LazySlidesComponent = React.lazy(
|
|
49
|
-
() => import("../../../components/slides/
|
|
51
|
+
() => import("../../../components/slides/swiper-component"),
|
|
50
52
|
);
|
package/dist/apl-Y7yFAg6_.js
DELETED
package/dist/asn1-BF6cywqm.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import "./purify.es-ClMna40y.js";
|
|
2
|
-
import "./chunk-S3R3BYOJ-BbDagUDj.js";
|
|
3
|
-
import { r as __name } from "./src-szye8OCw.js";
|
|
4
|
-
import "./chunk-ABZYJK2D-TzeWxQkr.js";
|
|
5
|
-
import "./chunk-HN2XXSSU-GC9oeSst.js";
|
|
6
|
-
import "./chunk-CVBHYZKI-DqdOZevv.js";
|
|
7
|
-
import "./chunk-ATLVNIR6-BIyR7hDU.js";
|
|
8
|
-
import "./dist-CqR8FBcH.js";
|
|
9
|
-
import "./chunk-JA3XYJ7Z-B1i4Tfcw.js";
|
|
10
|
-
import "./chunk-JZLCHNYA-CNdDVlto.js";
|
|
11
|
-
import "./chunk-QXUST7PY-D8Zb-uHT.js";
|
|
12
|
-
import "./chunk-N4CR4FBY-BTIG-LyN.js";
|
|
13
|
-
import "./chunk-FMBD7UC4-WPL5C7Yr.js";
|
|
14
|
-
import "./chunk-55IACEB6-wWyiO7Qo.js";
|
|
15
|
-
import "./chunk-QN33PNHL-Bu0A3trl.js";
|
|
16
|
-
import { i as styles_default, n as classDiagram_default, r as classRenderer_v3_unified_default, t as ClassDB } from "./chunk-B4BG7PRW-HwU7LyDE.js";
|
|
17
|
-
var diagram = {
|
|
18
|
-
parser: classDiagram_default,
|
|
19
|
-
get db() {
|
|
20
|
-
return new ClassDB();
|
|
21
|
-
},
|
|
22
|
-
renderer: classRenderer_v3_unified_default,
|
|
23
|
-
styles: styles_default,
|
|
24
|
-
init: /* @__PURE__ */ __name((e) => {
|
|
25
|
-
e.class || (e.class = {}), e.class.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
|
|
26
|
-
}, "init")
|
|
27
|
-
};
|
|
28
|
-
export {
|
|
29
|
-
diagram
|
|
30
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import "./purify.es-ClMna40y.js";
|
|
2
|
-
import "./chunk-S3R3BYOJ-BbDagUDj.js";
|
|
3
|
-
import { r as __name } from "./src-szye8OCw.js";
|
|
4
|
-
import "./chunk-ABZYJK2D-TzeWxQkr.js";
|
|
5
|
-
import "./chunk-HN2XXSSU-GC9oeSst.js";
|
|
6
|
-
import "./chunk-CVBHYZKI-DqdOZevv.js";
|
|
7
|
-
import "./chunk-ATLVNIR6-BIyR7hDU.js";
|
|
8
|
-
import "./dist-CqR8FBcH.js";
|
|
9
|
-
import "./chunk-JA3XYJ7Z-B1i4Tfcw.js";
|
|
10
|
-
import "./chunk-JZLCHNYA-CNdDVlto.js";
|
|
11
|
-
import "./chunk-QXUST7PY-D8Zb-uHT.js";
|
|
12
|
-
import "./chunk-N4CR4FBY-BTIG-LyN.js";
|
|
13
|
-
import "./chunk-FMBD7UC4-WPL5C7Yr.js";
|
|
14
|
-
import "./chunk-55IACEB6-wWyiO7Qo.js";
|
|
15
|
-
import "./chunk-QN33PNHL-Bu0A3trl.js";
|
|
16
|
-
import { i as styles_default, n as classDiagram_default, r as classRenderer_v3_unified_default, t as ClassDB } from "./chunk-B4BG7PRW-HwU7LyDE.js";
|
|
17
|
-
var diagram = {
|
|
18
|
-
parser: classDiagram_default,
|
|
19
|
-
get db() {
|
|
20
|
-
return new ClassDB();
|
|
21
|
-
},
|
|
22
|
-
renderer: classRenderer_v3_unified_default,
|
|
23
|
-
styles: styles_default,
|
|
24
|
-
init: /* @__PURE__ */ __name((e) => {
|
|
25
|
-
e.class || (e.class = {}), e.class.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
|
|
26
|
-
}, "init")
|
|
27
|
-
};
|
|
28
|
-
export {
|
|
29
|
-
diagram
|
|
30
|
-
};
|
package/dist/clojure-CAHAWK5H.js
DELETED
package/dist/cmake-BogDc4GF.js
DELETED
package/dist/cobol-DRnpeU4u.js
DELETED
package/dist/crystal-td8mwLG5.js
DELETED
package/dist/css-BK451dBn.js
DELETED
package/dist/cypher-DuNPR6Ie.js
DELETED
package/dist/d-DL6oP_-2.js
DELETED
package/dist/diff-D9CplOBj.js
DELETED