@forsion/unit 2.12.2
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/LICENSE +223 -0
- package/README.md +101 -0
- package/backendWorker.mjs +273 -0
- package/main.mjs +3434 -0
- package/package.json +26 -0
- package/release.json +11 -0
- package/web/assets/ArtificialView-B4ESD4iK.js +1 -0
- package/web/assets/AutomationBuilder-sxWdUa0L.js +1 -0
- package/web/assets/CalendarConfigView-cCfo_EvZ.js +1 -0
- package/web/assets/CalendarView-wgLapctk.js +1 -0
- package/web/assets/CapabilityMenu-BQBsM638.js +1 -0
- package/web/assets/CapabilityMenu-CTIzmTJB.css +1 -0
- package/web/assets/ChatView-BIUk0OJd.css +1 -0
- package/web/assets/ChatView-C-jCJnyS.js +47 -0
- package/web/assets/CheckboxInput-BsaoUHZ0.js +1 -0
- package/web/assets/Chrome-CwFiDmre.js +1 -0
- package/web/assets/CodeView-j065KtVh.js +15 -0
- package/web/assets/DancingScript-Bold-latin-CWNX0RqN.woff2 +0 -0
- package/web/assets/DashboardGridView-Ck3LKkOb.css +1 -0
- package/web/assets/DashboardGridView-DXqe0vPd.js +17 -0
- package/web/assets/EventCard-BmDQkEj9.js +1 -0
- package/web/assets/ExcalidrawCanvas-4uYrLYin.css +1 -0
- package/web/assets/ExcalidrawCanvas-C3egkikA.js +1 -0
- package/web/assets/FloatingToc-CENybkAA.js +1 -0
- package/web/assets/HomepageView-BNabJQfP.css +1 -0
- package/web/assets/HomepageView-CRdhjLXu.js +1 -0
- package/web/assets/ImageStudioPanels-Dke7xf8E.js +3 -0
- package/web/assets/ImageStudioView-g38V8gaj.js +1 -0
- package/web/assets/InlineFiles-C_hjvn3u.js +1 -0
- package/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/web/assets/MarkdownBlock-DIjYEhTK.js +56 -0
- package/web/assets/ModelPill-BPlgovPo.js +1 -0
- package/web/assets/ModelPill-CzdNh7Mt.css +1 -0
- package/web/assets/MuseLibraryView-CenyTTim.js +2 -0
- package/web/assets/MuseView-d-iBk3sc.js +6 -0
- package/web/assets/PageHistoryPanel-CR-k1AM7.js +2 -0
- package/web/assets/PageHistoryPanel-DFjh0pWs.css +1 -0
- package/web/assets/PdfAnnotator-CGzC_o1Q.css +1 -0
- package/web/assets/PdfAnnotator-D79ip27w.js +560 -0
- package/web/assets/ProductView-u2aezVsl.js +1 -0
- package/web/assets/RightPanel-C3OJTIqT.js +4 -0
- package/web/assets/RunLocationPicker-BNcZ7KKF.css +1 -0
- package/web/assets/RunLocationPicker-CTYXUH2z.js +34 -0
- package/web/assets/SidebarRow-BuSkKH5q.js +9 -0
- package/web/assets/SidebarRow-CsWEqPKX.css +1 -0
- package/web/assets/SketchCard-D87GADyG.js +437 -0
- package/web/assets/StudioGuestSurface-BijU_EEb.js +1 -0
- package/web/assets/TodoListView-DPPVpPUn.js +1 -0
- package/web/assets/Tooltip-DY4ISA-e.js +1 -0
- package/web/assets/UnifiedPage-CKNtVD_n.js +57 -0
- package/web/assets/UnifiedPage-DX_sTpyZ.css +1 -0
- package/web/assets/amadeus-manual.en-DWaN2fPs.js +3515 -0
- package/web/assets/amadeus-manual.zh--7D5TS8X.js +3515 -0
- package/web/assets/apl-B4CMkyY2.js +1 -0
- package/web/assets/appStore-Dg9WALEA.js +3080 -0
- package/web/assets/appStore-Di8LXuJ9.css +1 -0
- package/web/assets/approvalText-Cy2UAUAQ.js +2 -0
- package/web/assets/arrow-up-right-CpQs92mu.js +1 -0
- package/web/assets/artificial-BzLFkChP.css +1 -0
- package/web/assets/asciiarmor-Df11BRmG.js +1 -0
- package/web/assets/asn1-EdZsLKOL.js +1 -0
- package/web/assets/asterisk-B-8jnY81.js +1 -0
- package/web/assets/astryxBridge-BZhaZPs4.js +70 -0
- package/web/assets/astryxBridge-CF_hpqC2.css +1 -0
- package/web/assets/automationListSource-DP5xZBxo.js +1 -0
- package/web/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/web/assets/calendarNavStore-C7fGRpoH.js +1 -0
- package/web/assets/canvasPrefs-BeG4oEgP.js +1 -0
- package/web/assets/chatBoxSurface-zvcyfrxE.js +1 -0
- package/web/assets/circle-question-mark-WL3vbp-Z.js +1 -0
- package/web/assets/circle-x-D7s-M5sB.js +1 -0
- package/web/assets/client-BSKpsyAw.js +9 -0
- package/web/assets/clike-B9uivgTg.js +1 -0
- package/web/assets/clojure-BMjYHr_A.js +1 -0
- package/web/assets/cmake-BQqOBYOt.js +1 -0
- package/web/assets/cobol-CWcv1MsR.js +1 -0
- package/web/assets/code-xml-BALV9u_c.js +1 -0
- package/web/assets/codeStudioStore-C2mWfm32.js +22 -0
- package/web/assets/coffeescript-S37ZYGWr.js +1 -0
- package/web/assets/commonlisp-DBKNyK5s.js +1 -0
- package/web/assets/create-4xUyKtAF.js +14 -0
- package/web/assets/create-BgE3edmZ.css +1 -0
- package/web/assets/crystal-SjHAIU92.js +1 -0
- package/web/assets/css-BnMrqG3P.js +1 -0
- package/web/assets/cursor-editorTextHighlight-kG3uUOwL.svg +8 -0
- package/web/assets/cypher-C_CwsFkJ.js +1 -0
- package/web/assets/d-pRatUO7H.js +1 -0
- package/web/assets/dashboardSurface-CFTH5z4c.js +1 -0
- package/web/assets/deskCapture-Df701U8L.js +1 -0
- package/web/assets/diff-DbItnlRl.js +1 -0
- package/web/assets/diff2html-BV-zCH4d.js +111 -0
- package/web/assets/dockerfile-BKs6k2Af.js +1 -0
- package/web/assets/docx-preview-DW4IyU_Q.js +22 -0
- package/web/assets/dtd-DF_7sFjM.js +1 -0
- package/web/assets/dylan-DwRh75JA.js +1 -0
- package/web/assets/ebnf-CDyGwa7X.js +1 -0
- package/web/assets/ecl-Cabwm37j.js +1 -0
- package/web/assets/eiffel-CnydiIhH.js +1 -0
- package/web/assets/ellipsis-r1EcXsFq.js +1 -0
- package/web/assets/elm-vLlmbW-K.js +1 -0
- package/web/assets/emoji-DGaxpCIu.js +1 -0
- package/web/assets/erlang-BNw1qcRV.js +1 -0
- package/web/assets/factor-kuTfRLto.js +1 -0
- package/web/assets/fcl-Kvtd6kyn.js +1 -0
- package/web/assets/floatingTocSurface-C6RJ6i41.js +1 -0
- package/web/assets/foldActions-B7KByFdN.js +1 -0
- package/web/assets/folder-DlxnPmWY.js +1 -0
- package/web/assets/folder-plus-D1TDb7k9.js +1 -0
- package/web/assets/forsion-logo-dark-DnB9JTdv.svg +5 -0
- package/web/assets/forsion-logo-light-DhkEeB4V.svg +11 -0
- package/web/assets/forth-Ffai-XNe.js +1 -0
- package/web/assets/fortran-DYz_wnZ1.js +1 -0
- package/web/assets/frame-_xBVYe3P.js +1 -0
- package/web/assets/gas-Bneqetm1.js +1 -0
- package/web/assets/gestures-CkW1Kfs9.js +1 -0
- package/web/assets/gherkin-heZmZLOM.js +1 -0
- package/web/assets/groovy-D9Dt4D0W.js +1 -0
- package/web/assets/hack2gate-dark-Dx2RtDRI.jpg +0 -0
- package/web/assets/hack2gate-light-DRKq9tyS.jpg +0 -0
- package/web/assets/hand-Crrw-nSn.js +1 -0
- package/web/assets/hard-drive-BbyVSbfP.js +1 -0
- package/web/assets/haskell-Cw1EW3IL.js +1 -0
- package/web/assets/haxe-H-WmDvRZ.js +1 -0
- package/web/assets/http-DBlCnlav.js +1 -0
- package/web/assets/i18n-D-eU58uw.css +1 -0
- package/web/assets/i18n.generated-Bbsz16cl.js +15 -0
- package/web/assets/idl-BEugSyMb.js +1 -0
- package/web/assets/imageStudio-BqbNOvpu.css +1 -0
- package/web/assets/imageStudio-C_Rs630L.js +2 -0
- package/web/assets/index--drOLtq7.js +1 -0
- package/web/assets/index-BCZZVJ_w.js +1 -0
- package/web/assets/index-BCubCwdT.js +1 -0
- package/web/assets/index-BRW82CsP.js +6 -0
- package/web/assets/index-BYsdKR_1.js +1 -0
- package/web/assets/index-Brik2pf9.js +1 -0
- package/web/assets/index-C6GJulug.js +13 -0
- package/web/assets/index-C7U6T-k8.js +1 -0
- package/web/assets/index-CF4RV4mh.js +298 -0
- package/web/assets/index-CflzrdSt.js +1 -0
- package/web/assets/index-Cmr7gVZQ.js +1 -0
- package/web/assets/index-CqyM6tQ0.js +1 -0
- package/web/assets/index-CzM-C2Sd.js +1 -0
- package/web/assets/index-Czu_bbDM.js +1 -0
- package/web/assets/index-D1f_JwPH.js +1 -0
- package/web/assets/index-DKhyDkGB.js +7 -0
- package/web/assets/index-DUWR2nZi.js +1 -0
- package/web/assets/index-DZfZTksa.js +1 -0
- package/web/assets/index-Dg9oixs4.js +1 -0
- package/web/assets/index-DjzSBM0U.js +2 -0
- package/web/assets/index-KL5Rj9kP.js +1 -0
- package/web/assets/index-OHi69jDq.js +3 -0
- package/web/assets/index-SZ5waGAq.js +1 -0
- package/web/assets/index-gPSbFSUn.js +1 -0
- package/web/assets/index-tAXBa_fN.js +1 -0
- package/web/assets/invitePage-lLQ-e0pj.js +19 -0
- package/web/assets/ipc-DQOD2UKk.js +1 -0
- package/web/assets/javascript-iXu5QeM3.js +1 -0
- package/web/assets/jszip.min-DZxV9uZ_.js +2 -0
- package/web/assets/julia-DuME0IfC.js +1 -0
- package/web/assets/layout-grid-B_pjJwz4.js +1 -0
- package/web/assets/linkFollow-C0_3k_PC.js +8 -0
- package/web/assets/list-tree-DkAJYEXd.js +1 -0
- package/web/assets/listFold-BsOVn9UZ.js +1 -0
- package/web/assets/livescript-BwQOo05w.js +1 -0
- package/web/assets/lock-BnGHxjeE.js +1 -0
- package/web/assets/log-out-DBuMeqik.js +1 -0
- package/web/assets/lua-VAEuO923.js +1 -0
- package/web/assets/main-Dki8NlsT.js +21 -0
- package/web/assets/main-NgUPPqDn.css +1 -0
- package/web/assets/markdownEditorSurface-B4PeUzed.js +3 -0
- package/web/assets/markdownEditorSurface-Bql20IAf.css +1 -0
- package/web/assets/mathematica-DTrFuWx2.js +1 -0
- package/web/assets/mbox-CNhZ1qSd.js +1 -0
- package/web/assets/mdMarkStore-CsKl7C8O.js +2 -0
- package/web/assets/mdMarks-Bq7Hl-4C.js +1 -0
- package/web/assets/message-square-plus-BiAZAvcw.js +1 -0
- package/web/assets/messages-BH5MfQdZ.js +1 -0
- package/web/assets/minus-Cyv1YzOU.js +1 -0
- package/web/assets/mirc-CjQqDB4T.js +1 -0
- package/web/assets/mllike-CXdrOF99.js +1 -0
- package/web/assets/mobileEntry-Bd_nKr0D.js +13 -0
- package/web/assets/mobileEntry-DS1vohuL.css +1 -0
- package/web/assets/modelica-Dc1JOy9r.js +1 -0
- package/web/assets/mscgen-BA5vi2Kp.js +1 -0
- package/web/assets/mumps-BT43cFF4.js +1 -0
- package/web/assets/nativeDownload-D-f1_L2S.js +1 -0
- package/web/assets/nginx-DdIZxoE0.js +1 -0
- package/web/assets/nsis-LdVXkNf5.js +1 -0
- package/web/assets/ntriples-BfvgReVJ.js +1 -0
- package/web/assets/octave-Ck1zUtKM.js +1 -0
- package/web/assets/oz-BzwKVEFT.js +1 -0
- package/web/assets/pageChrome-C9_azUYW.js +1 -0
- package/web/assets/pageChrome-xLNdFaSg.css +1 -0
- package/web/assets/pageTree-CZH2J6cc.js +7 -0
- package/web/assets/panel-left-rOc8As0s.js +1 -0
- package/web/assets/pascal--L3eBynH.js +1 -0
- package/web/assets/pdf-C2_sJa3b.js +57 -0
- package/web/assets/pdf.worker.min-CGb3BKV9.js +1 -0
- package/web/assets/pdf.worker.min-Dr1KORA9.mjs +31 -0
- package/web/assets/pen-line-m6_HvWZ9.js +1 -0
- package/web/assets/pen-tool-lkmBqliH.js +1 -0
- package/web/assets/pencil-Cvk91P_Z.js +1 -0
- package/web/assets/perl-CdXCOZ3F.js +1 -0
- package/web/assets/pig-CevX1Tat.js +1 -0
- package/web/assets/pluginExt-Byb64tQO.js +1 -0
- package/web/assets/powershell-CFHJl5sT.js +1 -0
- package/web/assets/properties-C78fOPTZ.js +1 -0
- package/web/assets/protobuf-ChK-085T.js +1 -0
- package/web/assets/pug-DeIclll2.js +1 -0
- package/web/assets/puppet-DMA9R1ak.js +1 -0
- package/web/assets/python-BuPzkPfP.js +1 -0
- package/web/assets/q-pXgVlZs6.js +1 -0
- package/web/assets/r-B6wPVr8A.js +1 -0
- package/web/assets/redo-2-DSi54z4e.js +1 -0
- package/web/assets/rotate-ccw-CUlnplr0.js +1 -0
- package/web/assets/rpm-CTu-6PCP.js +1 -0
- package/web/assets/ruby-B2Rjki9n.js +1 -0
- package/web/assets/sas-B4kiWyti.js +1 -0
- package/web/assets/scheme-C41bIUwD.js +1 -0
- package/web/assets/sharePage-MM6UpPJ9.js +2 -0
- package/web/assets/shareViewer-CDZ8lTdy.js +345 -0
- package/web/assets/shareViewer-DLVrwanO.css +1 -0
- package/web/assets/shell-CjFT_Tl9.js +1 -0
- package/web/assets/sieve-C3Gn_uJK.js +1 -0
- package/web/assets/simple-mode-GW_nhZxv.js +1 -0
- package/web/assets/smalltalk-CnHTOXQT.js +1 -0
- package/web/assets/solr-DehyRSwq.js +1 -0
- package/web/assets/sparql-DkYu6x3z.js +1 -0
- package/web/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/web/assets/sql-D0XecflT.js +1 -0
- package/web/assets/star-CwDiGyUW.js +1 -0
- package/web/assets/stex-C3f8Ysf7.js +1 -0
- package/web/assets/sticky-note-BIuPUSOU.js +1 -0
- package/web/assets/stylus-B533Al4x.js +1 -0
- package/web/assets/swift-BzpIVaGY.js +1 -0
- package/web/assets/tableSurface-CDNa0QFp.css +1 -0
- package/web/assets/tableSurface-Y_JBQsuz.js +1 -0
- package/web/assets/tcl-DVfN8rqt.js +1 -0
- package/web/assets/terminal-DIXogYJY.js +1 -0
- package/web/assets/terminalView-B3aZSsrQ.js +12 -0
- package/web/assets/terminalView-DFuMZ0ql.css +1 -0
- package/web/assets/textile-CnDTJFAw.js +1 -0
- package/web/assets/theme-DfEi_DND.css +1 -0
- package/web/assets/theme-OMpAfNto.css +1 -0
- package/web/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/web/assets/tiki-DGYXhP31.js +1 -0
- package/web/assets/toml-Bm5Em-hy.js +1 -0
- package/web/assets/troff-wAsdV37c.js +1 -0
- package/web/assets/ttcn-CfJYG6tj.js +1 -0
- package/web/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/web/assets/turtle-B1tBg_DP.js +1 -0
- package/web/assets/type-Cqoabh7H.js +1 -0
- package/web/assets/undo-2-tUKCv5Gs.js +1 -0
- package/web/assets/unitAccount-D8lVwaaT.js +1 -0
- package/web/assets/unitBridge-D547ublk.js +1 -0
- package/web/assets/unitCloudTransport-BVF6lVp4.js +1 -0
- package/web/assets/unitOwnerAccess-BfnEjsZb.js +1 -0
- package/web/assets/unitShim-DxetRgmP.js +5 -0
- package/web/assets/upload-BbeAsMuD.js +1 -0
- package/web/assets/userSpaces-DyyAn7vj.js +1 -0
- package/web/assets/vb-CmGdzxic.js +1 -0
- package/web/assets/vbscript-BuJXcnF6.js +1 -0
- package/web/assets/velocity-D8B20fx6.js +1 -0
- package/web/assets/verilog-C6RDOZhf.js +1 -0
- package/web/assets/vhdl-lSbBsy5d.js +1 -0
- package/web/assets/viewportLock-C4SX-9PO.js +103 -0
- package/web/assets/viewportLock-DYSe7Jsn.css +1 -0
- package/web/assets/waves-horizontal-B8ZpHQ5H.js +1 -0
- package/web/assets/webidl-ZXfAyPTL.js +1 -0
- package/web/assets/workflow-DuoVRSSX.js +1 -0
- package/web/assets/xlsx-CNerDvZX.js +105 -0
- package/web/assets/xquery-DzFWVndE.js +1 -0
- package/web/assets/yacas-BJ4BC0dw.js +1 -0
- package/web/assets/z80-Hz9HOZM7.js +1 -0
- package/web/assets/zoom-in-hr5bRpDL.js +1 -0
- package/web/excalidraw/excalidraw.css +1 -0
- package/web/excalidraw/excalidraw.js +579 -0
- package/web/excalidraw/fonts/Assistant/Assistant-Bold.woff2 +0 -0
- package/web/excalidraw/fonts/Assistant/Assistant-Medium.woff2 +0 -0
- package/web/excalidraw/fonts/Assistant/Assistant-Regular.woff2 +0 -0
- package/web/excalidraw/fonts/Assistant/Assistant-SemiBold.woff2 +0 -0
- package/web/excalidraw/fonts/Cascadia/CascadiaCode-Regular.woff2 +0 -0
- package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.woff2 +0 -0
- package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.woff2 +0 -0
- package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.woff2 +0 -0
- package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.woff2 +0 -0
- package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2 +0 -0
- package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2 +0 -0
- package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2 +0 -0
- package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2 +0 -0
- package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2 +0 -0
- package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2 +0 -0
- package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2 +0 -0
- package/web/excalidraw/fonts/Liberation/LiberationSans-Regular.woff2 +0 -0
- package/web/excalidraw/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.woff2 +0 -0
- package/web/excalidraw/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.woff2 +0 -0
- package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.woff2 +0 -0
- package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.woff2 +0 -0
- package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.woff2 +0 -0
- package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.woff2 +0 -0
- package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.woff2 +0 -0
- package/web/excalidraw/fonts/Virgil/Virgil-Regular.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-019d66dcad46dc156b162d267f981c20.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-04b718e5623574919c8b0dea5f301444.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-069e77aac84590e2e991d0a0176d34f2.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-06c77b8c66e51ed6c63ccb502dd8b8af.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-08e0dc436ad0ad61ba5558db0674d762.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-093b9ef39a46ceae95a1df18a0a3a326.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-095c169f3314805276f603a362766abd.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-09850c4077f3fffe707905872e0e2460.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0986d134c05864f5025962eef9f994a0.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0b5d723fdc4e249c140f0909e87d03b4.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0f626226ba1272e832aea87bafd9720e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0f7fb1e0d5015bb1371343153ecf7ce3.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0fa55a080fcd0f9dc2e0b0058b793df8.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0facdf1ea213ba40261022f5d5ed4493.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-10a7ae9a371830a80c3d844acf1c02d7.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-112c051027b2d766c19a519f6ee1f4f7.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-11c345711937f0ba4b8f7b6b919c8440.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-12b52b58eb3df36804b9a654ec9ee194.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-13ae07ed2e272d26d59bc0691cd7117a.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-13d2887ec8ee73c43acdabc52a05af7b.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-145aa02cdd91946e67dc934e1acffe75.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-15dc6d811c9cd078f9086a740d5a1038.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-173945821411c09f70c95f98d590e697.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1b611157cd46bb184d4fa4dae2d6a2b8.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1e6fd68f1f3902ce48ce8c69df385622.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1ee544f0f1dac422545c505baa788992.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1fdc0c67ed57263a80fd108c1f6ccf24.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-203b0e569e3b14aac86a003dc3fa523e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-20cc1bbf50e7efb442756cb605672c1f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-20e7bf72fa05de9adf7dbcc7bf51dde6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-21430ee05a1248901da8d0de08744d47.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-23686f7f29da6e8008c36dd3a80c83d6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-23ad2d71b280f00b1363b95b7bea94eb.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-23f228f3999c01983860012330e4be08.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-24476a126f129212beb33f66853ea151.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-24a21c1e4449222e8d1898d69ff3a404.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-25b7f38e18f035f96cb5e547bd2bd08c.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-29cec36cd205b211da97acabaa62f055.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2a26d20a23b00898ce82f09d2ee47c3f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2adbc89c11e65905393d3dfc468b9d5b.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2b7441d46298788ac94e610ffcc709b6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2b77e8ebfb2367ab2662396a60e7d320.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2cf96d082d35ea3d8106851223ad0d16.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2d43040e86ff03ba677f6f9c04cd0805.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2e33e8dc771ef5e1d9127d60a6b73679.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-33432927cd87d40cfe393c7482bf221f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-353f33792a8f60dc69323ddf635a269e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-36925dfe329a45086cbb7fc5c20d45ac.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3717077e38f98d89eae729b6c14e56dc.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3756e81d3e149cf6099163ee79944fec.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-395c35dd584b56b0789f58a0559beaf1.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3c9de2ae0ea4bc91a510942dfa4be8d2.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3cc70dbb64df5b21f1326cc24dee2195.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3e1f8f654357353bf0e04ba5c34b5f7f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3e63ed8162808a9e425ed80a8bc79114.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3eaa538115d76932653c21d8dc28f207.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4095eb84ef3874e2600247bee0b04026.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-41521fade99856108931b4768b1b2648.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-450da755d5bcb70906e1295e559b9602.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-452225341522a7942f0f6aab1a5c91a3.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4535823663ad81405188a528d8f2b1a2.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4806e761d750087c2d734fc64596eaff.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4a0fdb40036e87b40aa08dd30584cb85.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4a38cc3e9cf104e69ba246d37f8cf135.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4aca6a43e59aceee2166b0c7e4e85ef1.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4bfaa8ffa64c5ee560aa2daba7c9cbd3.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4dc6d5f188d5c96d44815cd1e81aa885.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4ddc14ed3eb0c3e46364317dfc0144a3.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4ee10ae43505e2e0bc62656ced49c0fa.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4f50e5136e136527280bc902c5817561.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-51502f1206be09c565f1547c406e9558.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-51a0e808bbc8361236ac521a119758a3.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-52a84a22fd1369bffeaf21da2d6158dc.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5330a2119a716e4e7224ed108b085dac.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-543fa46ace099a7099dad69123399400.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-544fc28abe2c5c30e62383fd4dac255f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-54acdfc2166ad7fcbd074f75fd4a56ba.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5572b3513ba8df57a3d5d7303ee6b11b.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-56467a5c8840c4d23a60b2f935114848.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-56a32a7689abd0326e57c10c6c069bb4.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-57862b464a55b18c7bf234ce22907d73.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-583d166e56ba0de4b77eabb47ef67839.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5882ffa04f32584d26109137e2da4352.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-58fd02350d0bc52cf1ca3bb32ce9766e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5935a5775af3d5c6307ac667bd9ae74e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-59e9ff77b0efaf684bc09274fb6908c9.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5a1ce3117cfe90c48e8fb4a9a00f694d.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5a45d991244d4c7140217e1e5f5ca4f4.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5a7fac4b8b23a6e4e5ba0c9bf1756c91.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5b0ed6971aaab9c8ad563230bd5471a7.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5d2898fbc097a7e24c6f38d80587621e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-603aefd23e350ba7eb124273e3c9bcf1.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-60a3089806700d379f11827ee9843b6b.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-60a41c7e1c68f22424e6d22df544bc82.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-642b26e2e5f5fb780b51b593dbc8c851.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-66493ba5a8367f2928812f446f47b56a.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-670ba603758d94268e8606f240a42e12.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-671a2c20b1eb9e4ef8a192833940e319.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-684d65f1793cac449dde5d59cb3c47fb.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-69c09cc5fa3e55c74fc4821f76909cc3.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6ae5b42180ad70b971c91e7eefb8eba2.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6e092f71c1e634059ada0e52abadce67.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6f3256af8454371776bc46670d33cc65.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6fe5c5973cc06f74b2387a631ea36b88.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-70c2eb8d64e71a42a834eb857ea9df51.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-70e811fd7994e61f408c923de6ddd078.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7197d6fda6cba7c3874c53d6381ca239.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-72252d73220fa3cd856677888cee1635.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-72536a3d71b694a0d53dd90ddceae41e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-726303e0774b4e678bff8c2deb6ca603.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-733171b4ffcd17ea1fe1c0ba627173bf.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-739bc1a567439c7cffcd1614644593d2.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-73e309718fd16cea44b4d54a33581811.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7494dc504ae00ee9cd0505f990f88c5d.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-74e2263a91439c25b91d5132ce9f4d62.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-761d05e3cd968cf574166867998ef06a.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7718fe60986d8b42b1be9c5ace5ccf25.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-774d4f764a1299da5d28ec2f2ffe0d69.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-79d494361ae093b69e74ee9dbe65bfd4.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-79f007c1c6d07557120982951ea67998.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7a07ddc0f0c0f5f4a9bad6ee3dda66b5.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7ab2bed91166a9dca83a5ebfbe2a7f38.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7ccce86603f80a099ddb0cb21d4ae3e3.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7e4bde7e9c7f84cd34d8a845e384c746.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7e929f262f30c8ee78bf398150b1a7cd.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7eb9fffd1aa890d07d0f88cc82e6cfe4.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7f855356ab893b0d2b9c1c83b8116f0e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-829615148e6357d826b9242eb7fbbd1e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-866fa7613df6b3fd272bcfd4530c0bb9.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-87599f94b6cc129d505b375798d0d751.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8c2f33cee3993174f7e87c28e4bf42ee.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8d3bcabb847b56243b16afe62adaaf21.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8de5b863cb50dfefdd07cb11c774d579.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8e9f97f01034820170065b2921b4fb5e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8f476c4c99813d57cbe6eca4727388ad.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-903bb6865f3452e2fda42e3a25547bc5.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-91ddb2969bf2d31ba02ad82998d1314c.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-938d90c10ff8c20386af7f242c05d6b0.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-93fc8f28a33234bcadf1527cafabd502.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-95429962233afd82db1c27df1500a28c.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9544732d2e62d1a429674f8ee41b5d3a.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9592bfc861f07bcb8d75c196b370e548.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-95bfd249da4902577b4b7d76ebdd0b44.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-968cffdc8ee679da094e77ebf50f58ef.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-97f7f48ce90c9429bf32ae51469db74d.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-982b630266d87db93d2539affb1275c6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-98f2ad84457de7f3740d9920b8fa8667.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-99a16ef6a64934d5781933dbd9c46b2e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9cfb2a77a4e45025105ad29a1748b90d.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9d81066dd2b337c938df6e90380a00dc.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9eb5a99df4e76ac3363453ac9ca288b1.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a004ddfcb26e67bd6e678c8ed19e25ce.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a0ca5df4258213d7fc9fce80f65ce760.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a1f916d6039285c4ffb900cd654e418f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a203b91dad570bf05a58c3c3ddb529bf.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a365e82ed54697a52f27adcea1315fe8.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a4c34be6d42152e64b0df90bc4607f64.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a7accba310e821da5505f71c03b76bdb.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-aa0d470430e6391eca720c7cfa44446f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-aa5c9ca6cf4fba00433b7aa3fa10671a.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ac9ceb44437becc3e9c4dbfebab7fc2d.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b1220a3c61f85cc0408deedb4c5f57a2.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b358f7a51ece39a3247942b1feabdb29.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b57aaedfd8ebdf3931f25119dc6a5eb2.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b5c1596551c256e0e9cf02028595b092.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b6d128682ee29e471486354d486a1b90.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b6fd38ca30869792244804b04bc058da.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b7d203b051eff504ff59ddca7576b6a9.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b96d9226ce77ec94ceca043d712182e6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ba3de316d63c7e339987b16f41a0b879.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-bafff7a14c27403dcc6cf1432e8ea836.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-bd77e3c7f9e0b072d96af37f73d1aa32.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-be549ab72f0719d606a5c01e2c0219b6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c16ed9740b85badf16e86ea782a3062f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c1f94158256bb1f3bf665b053d895af9.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c40533fdf4cc57177b12803598af7e59.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c4a687ac4f0c2766eefc9f77ed99cddf.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c69f61a4ab18d0488c8d1fc12e7028e8.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c8b71798409ccc126ee264a00aadcf21.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c99eda15fc26a2941579560f76c3a5cf.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cb17fc3db95f6d139afc9d31a8e93293.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cbaaefaaf326668277aa24dfa93c4d28.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cd145ce4a0ea18469358df53c207bc1b.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cdbce89e82cc1ab53a2decbf5819278f.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ce4884f96f11589608b76b726a755803.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cf2cc71752631e579e35b0e423bf2638.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cf6ff4e0f491ca0cf3038187a997b9b4.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cfb211578629b7e8153b37240de6a9d5.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-d0cf73942fea1c74edbdf0b3011f4656.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-d2666cbed13462c5dc36fa2f15c202ca.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-d3716376641d615e2995605b29bca7b6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-dac48066b5883d8b4551fc584f0c2a3e.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-dbea1af6dcd9860be40c3d18254338f5.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e11567fd2accf9957cd0d3c2be937d87.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e2ead7ea7da0437f085f42ffc05f8d13.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e3fcf5180fd466c8915c4e8069491054.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e480d9c614742d05f0e78f274f1e69e6.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e4bca6cfa53e499cae0a6be4894a90e9.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e51ef413167c6e14e0c0fdcc585f2fc9.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e5f453bb04da18eed01675eeebd88bf8.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e656f091b9dc4709722c9f4b84d3c797.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ec181b795ac1fb5a50d700b6e996d745.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ee8bae97908d5147b423f77ad0d3c1bb.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f0f13b5c60e0af5553bd359f5513be1b.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f2b54d4e7be0eaefe1c2c56836fa5368.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f56414bf9bced67990def8660e306759.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f5d079153c99a25b9be5b8583c4cc8a7.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f6032fc06eb20480f096199713f70885.woff2 +0 -0
- package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f8ee5d36068a42b51d0e4a1116cfcec1.woff2 +0 -0
- package/web/fonts/LICENSE-_fontsource-variable_inter.txt +93 -0
- package/web/fonts/LICENSE-_fontsource-variable_jetbrains-mono.txt +93 -0
- package/web/fonts/LICENSE-_fontsource_lxgw-wenkai.txt +94 -0
- package/web/fonts/LICENSE-_fontsource_noto-sans-sc.txt +93 -0
- package/web/fonts/files/inter-cyrillic-ext-wght-normal.woff2 +0 -0
- package/web/fonts/files/inter-cyrillic-wght-normal.woff2 +0 -0
- package/web/fonts/files/inter-greek-ext-wght-normal.woff2 +0 -0
- package/web/fonts/files/inter-greek-wght-normal.woff2 +0 -0
- package/web/fonts/files/inter-latin-ext-wght-normal.woff2 +0 -0
- package/web/fonts/files/inter-latin-wght-normal.woff2 +0 -0
- package/web/fonts/files/inter-vietnamese-wght-normal.woff2 +0 -0
- package/web/fonts/files/jetbrains-mono-cyrillic-ext-wght-normal.woff2 +0 -0
- package/web/fonts/files/jetbrains-mono-cyrillic-wght-normal.woff2 +0 -0
- package/web/fonts/files/jetbrains-mono-greek-wght-normal.woff2 +0 -0
- package/web/fonts/files/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
- package/web/fonts/files/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- package/web/fonts/files/jetbrains-mono-vietnamese-wght-normal.woff2 +0 -0
- package/web/fonts/files/lxgw-wenkai-latin-500-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-100-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-100-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-101-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-101-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-102-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-102-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-103-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-103-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-104-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-104-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-105-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-105-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-106-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-106-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-107-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-107-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-108-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-108-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-109-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-109-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-110-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-110-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-111-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-111-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-112-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-112-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-113-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-113-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-114-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-114-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-115-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-115-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-116-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-116-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-117-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-117-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-118-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-118-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-119-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-119-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-21-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-21-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-22-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-22-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-23-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-23-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-24-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-24-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-25-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-25-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-26-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-26-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-27-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-27-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-28-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-28-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-29-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-29-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-30-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-30-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-31-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-31-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-32-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-32-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-33-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-33-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-34-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-34-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-35-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-35-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-36-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-36-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-37-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-37-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-38-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-38-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-39-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-39-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-4-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-4-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-40-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-40-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-41-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-41-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-42-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-42-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-43-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-43-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-44-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-44-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-45-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-45-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-46-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-46-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-47-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-47-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-48-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-48-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-49-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-49-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-5-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-5-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-50-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-50-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-51-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-51-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-52-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-52-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-53-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-53-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-54-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-54-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-55-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-55-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-56-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-56-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-57-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-57-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-58-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-58-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-59-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-59-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-6-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-6-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-60-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-60-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-61-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-61-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-62-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-62-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-63-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-63-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-64-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-64-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-65-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-65-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-66-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-66-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-67-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-67-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-68-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-68-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-69-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-69-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-70-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-70-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-71-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-71-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-72-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-72-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-73-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-73-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-74-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-74-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-75-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-75-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-76-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-76-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-77-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-77-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-78-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-78-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-79-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-79-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-80-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-80-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-81-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-81-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-82-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-82-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-83-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-83-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-84-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-84-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-85-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-85-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-86-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-86-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-87-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-87-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-88-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-88-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-89-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-89-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-90-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-90-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-91-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-91-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-97-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-97-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-98-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-98-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-99-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-99-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-cyrillic-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-cyrillic-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-latin-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-latin-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-latin-ext-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-latin-ext-700-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-vietnamese-400-normal.woff2 +0 -0
- package/web/fonts/files/noto-sans-sc-vietnamese-700-normal.woff2 +0 -0
- package/web/fonts/fonts.css +2163 -0
- package/web/index.html +266 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import{z as R}from"./appStore-Dg9WALEA.js";import{j as o,u as N,d as i}from"./index-CF4RV4mh.js";const O=[["path",{d:"M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1",key:"1q9hii"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M2 15h10",key:"jfw4w8"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]],lt=R("file-input",O),D="forsion-sketch";function ct(t){const e=Math.max(0,...(t.match(/`+/g)??[]).map(a=>a.length)),n="`".repeat(Math.max(3,e+1));return`${n}${D}
|
|
2
|
+
${t.replace(/\s+$/,"")}
|
|
3
|
+
${n}`}const F=`/* The sketch document is isolated. All colors inherit Forsion's current theme. */
|
|
4
|
+
html, body { margin: 0; padding: 0; }
|
|
5
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
6
|
+
body {
|
|
7
|
+
font-family: var(--fs-font); background: var(--fs-bg); color: var(--fs-text);
|
|
8
|
+
font-size: 14px; line-height: 1.5; padding: 16px 20px;
|
|
9
|
+
overflow-wrap: anywhere; -webkit-font-smoothing: antialiased;
|
|
10
|
+
}
|
|
11
|
+
[hidden] { display: none !important; }
|
|
12
|
+
header, figure, figcaption, footer { margin: 0; }
|
|
13
|
+
h1, h2, h3, h4 { margin: 0 0 .5em; font-weight: 500; line-height: 1.3; text-wrap: balance; }
|
|
14
|
+
h1 { font-size: 20px; } h2 { font-size: 18px; } h3 { font-size: 15px; } h4 { font-size: 14px; }
|
|
15
|
+
p { margin: 0 0 .7em; } p:last-child { margin-bottom: 0; }
|
|
16
|
+
small { font-size: 12px; color: var(--fs-muted); }
|
|
17
|
+
a { color: var(--fs-accent); }
|
|
18
|
+
hr { border: 0; border-top: 1px solid var(--fs-rule); margin: 16px 0; }
|
|
19
|
+
code, pre, kbd { font-family: var(--fs-mono); font-size: 12px; }
|
|
20
|
+
pre { overflow-x: auto; background: var(--fs-surface); border-radius: var(--fs-radius); padding: 10px; }
|
|
21
|
+
table { border-collapse: collapse; width: 100%; font-size: 13px; font-variant-numeric: tabular-nums; }
|
|
22
|
+
th, td { text-align: left; padding: 8px 12px 8px 0; border-bottom: 1px solid var(--fs-rule); vertical-align: top; }
|
|
23
|
+
th { font-weight: 500; color: var(--fs-muted); }
|
|
24
|
+
th:last-child, td:last-child { padding-right: 0; }
|
|
25
|
+
tr:last-child td { border-bottom: 0; }
|
|
26
|
+
svg { display: block; width: 100%; max-width: 100%; height: auto; }
|
|
27
|
+
svg text { font-family: var(--fs-font); fill: var(--fs-text); }
|
|
28
|
+
img, canvas { display: block; max-width: 100%; }
|
|
29
|
+
img { height: auto; }
|
|
30
|
+
button, input, select, textarea { font: inherit; color: inherit; max-width: 100%; }
|
|
31
|
+
button {
|
|
32
|
+
border: 1px solid var(--fs-border); border-radius: var(--fs-radius);
|
|
33
|
+
background: transparent; padding: 6px 10px; cursor: pointer;
|
|
34
|
+
}
|
|
35
|
+
button:hover { background: var(--fs-surface); }
|
|
36
|
+
button:disabled { opacity: .5; cursor: default; }
|
|
37
|
+
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
|
|
38
|
+
outline: 2px solid var(--fs-accent); outline-offset: 2px;
|
|
39
|
+
}
|
|
40
|
+
input, select, textarea { accent-color: var(--fs-accent); }
|
|
41
|
+
.fs-header { display: grid; gap: 4px; margin: 0 0 16px; }
|
|
42
|
+
.fs-title { margin: 0; font-size: 20px; font-weight: 500; line-height: 1.3; text-wrap: balance; }
|
|
43
|
+
.fs-eyebrow, .fs-subtitle, .fs-caption, .fs-source, .fs-label { font-size: 12px; color: var(--fs-muted); }
|
|
44
|
+
.fs-eyebrow { font-weight: 500; }
|
|
45
|
+
.fs-subtitle { max-width: 62ch; }
|
|
46
|
+
.fs-plot { position: relative; min-width: 0; margin: 0; }
|
|
47
|
+
.fs-caption, .fs-source { margin-top: 10px; }
|
|
48
|
+
.fs-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr)); gap: 12px; margin: 4px 0 16px; }
|
|
49
|
+
.fs-stat { display: grid; align-content: start; gap: 3px; min-width: 0; }
|
|
50
|
+
.fs-value { font-size: 26px; font-weight: 500; line-height: 1.2; font-variant-numeric: tabular-nums; }
|
|
51
|
+
.fs-panel { padding: 12px 14px; border-radius: var(--fs-radius); background: var(--fs-surface); }
|
|
52
|
+
.fs-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: 0; }
|
|
53
|
+
.fs-chip { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; background: var(--fs-surface); font-size: 12px; color: var(--fs-muted); }
|
|
54
|
+
.fs-bar-track { height: 9px; overflow: hidden; border-radius: 999px; background: var(--fs-surface); }
|
|
55
|
+
.fs-bar-fill { height: 100%; border-radius: inherit; background: var(--fs-accent); transform-origin: left center; }
|
|
56
|
+
.fs-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 12px 16px; margin-bottom: 16px; }
|
|
57
|
+
.fs-field { display: grid; gap: 6px; flex: 1 1 200px; min-width: 0; }
|
|
58
|
+
.fs-field > span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; }
|
|
59
|
+
.fs-field output { font-variant-numeric: tabular-nums; }
|
|
60
|
+
.fs-input, .fs-select { width: 100%; min-width: 0; border: 1px solid var(--fs-border); border-radius: var(--fs-radius); padding: 6px 9px; background: var(--fs-surface); }
|
|
61
|
+
.fs-range { width: 100%; min-width: 0; margin: 4px 0; }
|
|
62
|
+
.fs-check { display: inline-flex; align-items: center; gap: 8px; }
|
|
63
|
+
.fs-check input { margin: 0; }
|
|
64
|
+
.fs-button[aria-pressed="true"], .fs-tabs [aria-selected="true"] { background: var(--fs-accent-soft); color: var(--fs-accent); border-color: transparent; }
|
|
65
|
+
.fs-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 12px; }
|
|
66
|
+
.fs-tabs button { border-color: transparent; }
|
|
67
|
+
.fs-number { font-variant-numeric: tabular-nums; }
|
|
68
|
+
.fs-muted { color: var(--fs-muted); }
|
|
69
|
+
.fs-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
|
|
70
|
+
/* Figure primitives: direct labels, quiet structure and one focus accent. */
|
|
71
|
+
fs-chart, fs-flow { display: block; min-width: 0; }
|
|
72
|
+
fs-chart + fs-flow, fs-flow + fs-chart, fs-chart + fs-chart { margin-top: 28px; }
|
|
73
|
+
.fs-figure-title { margin: 0 0 18px; font-size: 16px; font-weight: 500; }
|
|
74
|
+
.fs-chart-bars { display: grid; gap: 14px; }
|
|
75
|
+
.fs-chart-bar-row { display: grid; grid-template-columns: minmax(72px, 1fr) minmax(0, 3fr) minmax(56px, 1fr); gap: 16px; align-items: center; }
|
|
76
|
+
.fs-chart-bar-label { font-size: 13px; }
|
|
77
|
+
.fs-chart-bar-value { text-align: end; font-size: 13px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
|
|
78
|
+
.fs-chart-track { position: relative; height: 12px; background: var(--fs-surface); border-radius: 3px; }
|
|
79
|
+
.fs-chart-track::after { content: ''; position: absolute; left: var(--fs-zero); top: -4px; bottom: -4px; width: 1px; background: var(--fs-rule); }
|
|
80
|
+
.fs-chart-bar { position: absolute; top: 0; height: 100%; background: var(--fs-s1); border-radius: 3px; }
|
|
81
|
+
.fs-chart-bar--context { background: var(--fs-s2); }
|
|
82
|
+
.fs-chart-bars--narrow .fs-chart-bar-row { grid-template-columns: minmax(0, 1fr) fit-content(50%); gap: 7px 12px; }
|
|
83
|
+
.fs-chart-bars--narrow .fs-chart-track { grid-column: 1 / -1; grid-row: 2; }
|
|
84
|
+
.fs-chart-bars--narrow .fs-chart-bar-value { grid-column: 2; grid-row: 1; }
|
|
85
|
+
.fs-chart-field { position: relative; }
|
|
86
|
+
.fs-chart-grid { fill: none; stroke: var(--fs-rule); stroke-width: 1; }
|
|
87
|
+
.fs-chart-tick, .fs-chart-unit { font-size: 12px; fill: var(--fs-muted); }
|
|
88
|
+
.fs-chart-line { fill: none; stroke: var(--fs-s1); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
|
|
89
|
+
.fs-chart-point { fill: var(--fs-s1); }
|
|
90
|
+
.fs-chart-guide { fill: none; stroke: var(--fs-muted); stroke-width: 1; stroke-dasharray: 3 4; }
|
|
91
|
+
.fs-chart-hit { position: absolute; border: 0; border-radius: 0; padding: 0; background: transparent; cursor: crosshair; touch-action: pan-y; }
|
|
92
|
+
.fs-chart-hit:hover { background: transparent; }
|
|
93
|
+
.fs-chart-detail { display: block; min-height: 22px; font-size: 12px; color: var(--fs-muted); font-variant-numeric: tabular-nums; }
|
|
94
|
+
.fs-flow-steps { display: grid; grid-template-columns: repeat(var(--fs-step-count), minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
|
|
95
|
+
.fs-flow-step { position: relative; min-width: 0; }
|
|
96
|
+
.fs-flow-marker { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--fs-surface); color: var(--fs-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
|
|
97
|
+
.fs-flow-step[data-status="done"] .fs-flow-marker { color: var(--fs-accent); }
|
|
98
|
+
.fs-flow-step[data-status="active"] .fs-flow-marker { background: var(--fs-accent-soft); color: var(--fs-accent); outline: 1px solid var(--fs-accent); outline-offset: 2px; }
|
|
99
|
+
.fs-flow-step:not(:last-child)::after { content: ''; position: absolute; height: 1px; top: 15px; left: 40px; width: calc(100% - 28px); background: var(--fs-rule); }
|
|
100
|
+
.fs-flow-step:not(:last-child)::before { content: ''; position: absolute; top: 12px; left: calc(100% + 7px); width: 6px; height: 6px; border-top: 1px solid var(--fs-muted); border-right: 1px solid var(--fs-muted); transform: rotate(45deg); }
|
|
101
|
+
.fs-flow-content { display: grid; gap: 6px; margin-top: 12px; }
|
|
102
|
+
.fs-flow-label { display: block; font-size: 13px; font-weight: 500; }
|
|
103
|
+
.fs-flow-description { display: block; font-size: 12px; color: var(--fs-muted); }
|
|
104
|
+
.fs-flow-branches { display: grid; gap: 12px; list-style: none; padding: 0 0 0 12px; margin: 8px 0 0; border-left: 1px solid var(--fs-rule); }
|
|
105
|
+
.fs-flow-branch { position: relative; display: grid; gap: 3px; }
|
|
106
|
+
.fs-flow-branch::before { content: ''; position: absolute; left: -12px; top: 9px; width: 7px; height: 1px; background: var(--fs-rule); }
|
|
107
|
+
.fs-flow-steps--vertical { grid-template-columns: minmax(0, 1fr); gap: 22px; }
|
|
108
|
+
.fs-flow-steps--vertical .fs-flow-step { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; }
|
|
109
|
+
.fs-flow-steps--vertical .fs-flow-content { margin-top: 3px; }
|
|
110
|
+
.fs-flow-steps--vertical .fs-flow-step:not(:last-child)::after { left: 15px; top: 39px; width: 1px; height: calc(100% - 23px); }
|
|
111
|
+
.fs-flow-steps--vertical .fs-flow-step:not(:last-child)::before { top: calc(100% + 11px); left: 12px; transform: rotate(135deg); }
|
|
112
|
+
::selection { background: var(--fs-accent-soft); }
|
|
113
|
+
@media(max-width:480px) {
|
|
114
|
+
body { padding: 14px 12px; }
|
|
115
|
+
.fs-controls { gap: 12px; }
|
|
116
|
+
}
|
|
117
|
+
@media(pointer:coarse) {
|
|
118
|
+
button, .fs-check { min-height: 44px; }
|
|
119
|
+
.fs-input, .fs-select { font-size: 16px; min-height: 44px; }
|
|
120
|
+
.fs-range { min-height: 36px; }
|
|
121
|
+
}
|
|
122
|
+
@media(prefers-reduced-motion:reduce) {
|
|
123
|
+
*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
|
|
124
|
+
}
|
|
125
|
+
`,K=`/* Runs only inside the opaque-origin sandbox. No host capabilities or network. */
|
|
126
|
+
(() => {
|
|
127
|
+
let state = __SKETCH_INITIAL_STATE__
|
|
128
|
+
window.forsionSketch = Object.freeze({
|
|
129
|
+
get state() { return state },
|
|
130
|
+
setState(value) {
|
|
131
|
+
const json = JSON.stringify(value)
|
|
132
|
+
if (!json || new TextEncoder().encode(json).length > 16384) throw new Error('Sketch state exceeds 16 KiB')
|
|
133
|
+
state = JSON.parse(json)
|
|
134
|
+
parent.postMessage({ type: 'sketch-state', state }, '*')
|
|
135
|
+
},
|
|
136
|
+
})
|
|
137
|
+
|
|
138
|
+
// An href must never turn a sandbox frame into an external navigation surface.
|
|
139
|
+
document.addEventListener('click', (event) => {
|
|
140
|
+
if (event.target.closest?.('a[href]')) event.preventDefault()
|
|
141
|
+
}, true)
|
|
142
|
+
document.addEventListener('submit', (event) => event.preventDefault(), true)
|
|
143
|
+
|
|
144
|
+
window.addEventListener('message', (event) => {
|
|
145
|
+
if (event.source !== parent) return
|
|
146
|
+
const data = event.data
|
|
147
|
+
if (!data || data.type !== 'sketch-theme' || !data.vars) return
|
|
148
|
+
for (const [key, value] of Object.entries(data.vars)) {
|
|
149
|
+
if (key.startsWith('--fs-')) document.documentElement.style.setProperty(key, String(value))
|
|
150
|
+
else if (key === 'color-scheme') document.documentElement.style.colorScheme = String(value)
|
|
151
|
+
}
|
|
152
|
+
window.dispatchEvent(new Event('forsion:themechange'))
|
|
153
|
+
})
|
|
154
|
+
|
|
155
|
+
let lastHeight = 0
|
|
156
|
+
function measure() {
|
|
157
|
+
const height = Math.ceil(document.body?.getBoundingClientRect().height || 0)
|
|
158
|
+
if (height && height !== lastHeight) {
|
|
159
|
+
lastHeight = height
|
|
160
|
+
parent.postMessage({ type: 'sketch-height', height }, '*')
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function selectTab(tab) {
|
|
165
|
+
const list = tab.closest('.fs-tabs[role="tablist"]')
|
|
166
|
+
if (!list || tab.disabled || tab.getAttribute('aria-disabled') === 'true') return
|
|
167
|
+
for (const peer of list.querySelectorAll('[role="tab"]')) {
|
|
168
|
+
const selected = peer === tab
|
|
169
|
+
peer.setAttribute('aria-selected', String(selected))
|
|
170
|
+
const panel = document.getElementById(peer.getAttribute('aria-controls'))
|
|
171
|
+
if (panel?.getAttribute('role') === 'tabpanel') panel.hidden = !selected
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
document.addEventListener('click', (event) => {
|
|
175
|
+
const tab = event.target.closest?.('.fs-tabs [role="tab"]')
|
|
176
|
+
if (tab) selectTab(tab)
|
|
177
|
+
})
|
|
178
|
+
document.addEventListener('keydown', (event) => {
|
|
179
|
+
const tab = event.target.closest?.('.fs-tabs [role="tab"]')
|
|
180
|
+
if (!tab || !['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) return
|
|
181
|
+
const tabs = [...tab.closest('.fs-tabs').querySelectorAll('[role="tab"]')]
|
|
182
|
+
.filter((node) => !node.disabled && node.getAttribute('aria-disabled') !== 'true')
|
|
183
|
+
const index = tabs.indexOf(tab)
|
|
184
|
+
const next = event.key === 'Home' ? 0 : event.key === 'End' ? tabs.length - 1
|
|
185
|
+
: (index + (event.key === 'ArrowRight' ? 1 : -1) + tabs.length) % tabs.length
|
|
186
|
+
event.preventDefault()
|
|
187
|
+
tabs[next]?.focus()
|
|
188
|
+
if (tabs[next]) selectTab(tabs[next])
|
|
189
|
+
})
|
|
190
|
+
|
|
191
|
+
function ready() {
|
|
192
|
+
if (window.ResizeObserver) new ResizeObserver(measure).observe(document.body)
|
|
193
|
+
measure()
|
|
194
|
+
}
|
|
195
|
+
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', ready)
|
|
196
|
+
else ready()
|
|
197
|
+
window.addEventListener('load', measure)
|
|
198
|
+
})()
|
|
199
|
+
`,J=`/* Small, offline figure primitives. Text and data are never interpreted as HTML. */
|
|
200
|
+
(() => {
|
|
201
|
+
const svgNS = 'http://www.w3.org/2000/svg'
|
|
202
|
+
const number = (value) => new Intl.NumberFormat(undefined, {
|
|
203
|
+
maximumSignificantDigits: 6, notation: Math.abs(value) >= 1e15 || (value !== 0 && Math.abs(value) < 1e-4) ? 'scientific' : Math.abs(value) >= 1e6 ? 'compact' : 'standard',
|
|
204
|
+
}).format(value)
|
|
205
|
+
const node = (tag, cls, text) => {
|
|
206
|
+
const el = document.createElement(tag)
|
|
207
|
+
if (cls) el.className = cls
|
|
208
|
+
if (text !== undefined) el.textContent = String(text)
|
|
209
|
+
return el
|
|
210
|
+
}
|
|
211
|
+
const mark = (tag, attrs, text) => {
|
|
212
|
+
const el = document.createElementNS(svgNS, tag)
|
|
213
|
+
for (const [key, value] of Object.entries(attrs)) el.setAttribute(key, String(value))
|
|
214
|
+
if (text !== undefined) el.textContent = String(text)
|
|
215
|
+
return el
|
|
216
|
+
}
|
|
217
|
+
function heading(root, data) {
|
|
218
|
+
if (data.title) root.append(node('h3', 'fs-figure-title', data.title))
|
|
219
|
+
}
|
|
220
|
+
function caption(root, data) {
|
|
221
|
+
if (data.caption) root.append(node('p', 'fs-caption', data.caption))
|
|
222
|
+
}
|
|
223
|
+
class Figure extends HTMLElement {
|
|
224
|
+
connectedCallback() {
|
|
225
|
+
queueMicrotask(() => {
|
|
226
|
+
if (!this.isConnected) return
|
|
227
|
+
if (!this.figureData) {
|
|
228
|
+
try { this.figureData = JSON.parse(this.querySelector('script[type="application/json"]')?.textContent || '{}') }
|
|
229
|
+
catch { this.figureData = {} }
|
|
230
|
+
}
|
|
231
|
+
this.render()
|
|
232
|
+
this.observer?.disconnect()
|
|
233
|
+
this.observer = new ResizeObserver(() => {
|
|
234
|
+
const width = Math.round(this.clientWidth)
|
|
235
|
+
if (width && width !== this.lastWidth) { this.lastWidth = width; this.render() }
|
|
236
|
+
})
|
|
237
|
+
this.observer.observe(this)
|
|
238
|
+
})
|
|
239
|
+
}
|
|
240
|
+
disconnectedCallback() { this.observer?.disconnect() }
|
|
241
|
+
setData(data) { this.figureData = data; if (this.isConnected) this.render() }
|
|
242
|
+
error() {
|
|
243
|
+
// No guessed labels or fabricated zeroes when the input is invalid.
|
|
244
|
+
const error = node('p', 'fs-caption', this.figureData?.emptyLabel || '—')
|
|
245
|
+
error.setAttribute('role', 'alert')
|
|
246
|
+
this.replaceChildren(error)
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
class Chart extends Figure {
|
|
251
|
+
render() {
|
|
252
|
+
const data = this.figureData
|
|
253
|
+
if (!['bar', 'line'].includes(this.getAttribute('type') || 'bar') ||
|
|
254
|
+
!data || !Array.isArray(data.data) || !data.data.length || data.data.length > 100 ||
|
|
255
|
+
data.data.some((item) => typeof item?.label !== 'string' || typeof item.value !== 'number' || !Number.isFinite(item.value))) {
|
|
256
|
+
this.error(); return
|
|
257
|
+
}
|
|
258
|
+
this.replaceChildren()
|
|
259
|
+
const root = node('figure', 'fs-chart-figure')
|
|
260
|
+
heading(root, data)
|
|
261
|
+
this.append(root)
|
|
262
|
+
if (this.getAttribute('type') === 'line') this.line(root, data)
|
|
263
|
+
else this.bars(root, data)
|
|
264
|
+
caption(root, data)
|
|
265
|
+
}
|
|
266
|
+
bars(root, data) {
|
|
267
|
+
// A zero baseline also handles negative-only and mixed-sign comparisons honestly.
|
|
268
|
+
const magnitude = Math.max(1, ...data.data.map((item) => Math.abs(item.value)))
|
|
269
|
+
const low = Math.min(0, ...data.data.map((item) => item.value / magnitude))
|
|
270
|
+
const high = Math.max(0, ...data.data.map((item) => item.value / magnitude))
|
|
271
|
+
const span = high - low || 1
|
|
272
|
+
const zero = -low / span * 100
|
|
273
|
+
const list = node('div', 'fs-chart-bars')
|
|
274
|
+
list.setAttribute('role', 'list')
|
|
275
|
+
list.setAttribute('aria-label', String(data.title || data.unit || data.data.map((item) => item.label).join(', ')))
|
|
276
|
+
const narrow = this.clientWidth < 440
|
|
277
|
+
list.classList.toggle('fs-chart-bars--narrow', narrow)
|
|
278
|
+
for (const [index, item] of data.data.entries()) {
|
|
279
|
+
const row = node('div', 'fs-chart-bar-row')
|
|
280
|
+
row.setAttribute('role', 'listitem')
|
|
281
|
+
const label = node('span', 'fs-chart-bar-label', item.label)
|
|
282
|
+
const value = node('span', 'fs-chart-bar-value', number(item.value) + (data.unit ? ' ' + data.unit : ''))
|
|
283
|
+
const track = node('span', 'fs-chart-track')
|
|
284
|
+
track.setAttribute('aria-hidden', 'true')
|
|
285
|
+
const bar = node('span', 'fs-chart-bar')
|
|
286
|
+
bar.style.left = Math.min(zero, (item.value / magnitude - low) / span * 100) + '%'
|
|
287
|
+
bar.style.width = Math.abs(item.value / magnitude) / span * 100 + '%'
|
|
288
|
+
if (Number.isInteger(data.highlight) && data.highlight !== index) bar.classList.add('fs-chart-bar--context')
|
|
289
|
+
track.style.setProperty('--fs-zero', zero + '%')
|
|
290
|
+
track.append(bar)
|
|
291
|
+
row.append(label, track, value)
|
|
292
|
+
list.append(row)
|
|
293
|
+
}
|
|
294
|
+
root.append(list)
|
|
295
|
+
}
|
|
296
|
+
line(root, data) {
|
|
297
|
+
const width = Math.max(1, this.clientWidth)
|
|
298
|
+
const height = 238
|
|
299
|
+
const values = data.data.map((item) => item.value)
|
|
300
|
+
const maxAbs = Math.max(...values.map(Math.abs))
|
|
301
|
+
const magnitude = maxAbs ? Math.pow(10, Math.floor(Math.log10(maxAbs))) || Number.MIN_VALUE : 1
|
|
302
|
+
const min = Math.min(...values.map((v) => v / magnitude)), max = Math.max(...values.map((v) => v / magnitude))
|
|
303
|
+
const pad = (max - min || Math.abs(max) || 1) * .12
|
|
304
|
+
const limit = Number.MAX_VALUE / magnitude
|
|
305
|
+
const paddedLow = min >= 0 ? Math.max(0, min - pad) : min - pad
|
|
306
|
+
const paddedHigh = max <= 0 ? Math.min(0, max + pad) : max + pad
|
|
307
|
+
const roughStep = (paddedHigh - paddedLow) / 4 || .25
|
|
308
|
+
const power = Math.pow(10, Math.floor(Math.log10(roughStep)))
|
|
309
|
+
const step = ([1, 2, 5, 10].find((factor) => factor >= roughStep / power) || 10) * power
|
|
310
|
+
const low = Math.max(-limit, Math.floor(paddedLow / step) * step)
|
|
311
|
+
const high = Math.min(limit, Math.ceil(paddedHigh / step) * step) || step
|
|
312
|
+
const ticks = []
|
|
313
|
+
for (let tick = Math.ceil(low / step) * step; tick <= high + step * 1e-8; tick += step) {
|
|
314
|
+
ticks.push(Number((tick * magnitude).toPrecision(12)))
|
|
315
|
+
if (ticks.length > 8) break
|
|
316
|
+
}
|
|
317
|
+
const canvas = document.createElement('canvas')
|
|
318
|
+
const context = canvas.getContext('2d')
|
|
319
|
+
if (context) context.font = '12px ' + getComputedStyle(this).fontFamily
|
|
320
|
+
const left = Math.min(width * .35, Math.max(48, ...ticks.map((v) => (context?.measureText(number(v)).width || 36) + 14)))
|
|
321
|
+
const right = Math.max(left + 1, width - 8), top = 28, bottom = height - 32
|
|
322
|
+
const x = (i) => left + (right - left) * (values.length === 1 ? .5 : i / (values.length - 1))
|
|
323
|
+
const y = (value) => bottom - (value / magnitude - low) / (high - low) * (bottom - top)
|
|
324
|
+
const field = node('div', 'fs-chart-field')
|
|
325
|
+
const svg = mark('svg', { viewBox: \`0 0 \${width} \${height}\`, role: 'img', 'aria-label': String(data.title || data.data.map((item) => item.label).join(', ')) })
|
|
326
|
+
svg.append(mark('title', {}, data.data.map((v) => \`\${v.label}: \${number(v.value)} \${data.unit || ''}\`).join('; ')))
|
|
327
|
+
if (data.unit) svg.append(mark('text', { x: left, y: 14, class: 'fs-chart-unit' }, data.unit))
|
|
328
|
+
for (const tick of ticks) {
|
|
329
|
+
svg.append(mark('path', { d: \`M\${left} \${y(tick)}H\${right}\`, class: 'fs-chart-grid' }))
|
|
330
|
+
svg.append(mark('text', { x: left - 10, y: y(tick) + 4, 'text-anchor': 'end', class: 'fs-chart-tick' }, number(tick)))
|
|
331
|
+
}
|
|
332
|
+
const count = Math.min(values.length, width < 440 ? 3 : 5)
|
|
333
|
+
let previousRight = -Infinity
|
|
334
|
+
for (let i = 0; i < count; i++) {
|
|
335
|
+
const index = count === 1 ? 0 : Math.round(i * (values.length - 1) / (count - 1))
|
|
336
|
+
const label = data.data[index].label
|
|
337
|
+
const size = context?.measureText(label).width || label.length * 8
|
|
338
|
+
const px = x(index)
|
|
339
|
+
const labelLeft = i === 0 ? px : i === count - 1 ? px - size : px - size / 2
|
|
340
|
+
if (labelLeft < previousRight + 8 || size > right - left) continue
|
|
341
|
+
previousRight = labelLeft + size
|
|
342
|
+
svg.append(mark('text', { x: px, y: height - 9, 'text-anchor': i === 0 ? 'start' : i === count - 1 ? 'end' : 'middle', class: 'fs-chart-tick' }, label))
|
|
343
|
+
}
|
|
344
|
+
const path = values.map((value, i) => \`\${i ? 'L' : 'M'}\${x(i)} \${y(value)}\`).join(' ')
|
|
345
|
+
svg.append(mark('path', { d: path, class: 'fs-chart-line' }))
|
|
346
|
+
for (const [i, value] of values.entries()) svg.append(mark('circle', { cx: x(i), cy: y(value), r: 2.5, class: 'fs-chart-point' }))
|
|
347
|
+
const guide = mark('path', { class: 'fs-chart-guide', visibility: 'hidden' })
|
|
348
|
+
const dot = mark('circle', { r: 4, class: 'fs-chart-point', visibility: 'hidden' })
|
|
349
|
+
svg.append(guide, dot)
|
|
350
|
+
const detail = node('output', 'fs-chart-detail')
|
|
351
|
+
const hit = node('button', 'fs-chart-hit')
|
|
352
|
+
hit.type = 'button'
|
|
353
|
+
hit.setAttribute('aria-label', String(data.inspectLabel || data.title || data.data.map((item) => item.label).join(', ')))
|
|
354
|
+
hit.style.left = left + 'px'; hit.style.top = top + 'px'
|
|
355
|
+
hit.style.width = (right - left) + 'px'; hit.style.height = (bottom - top) + 'px'
|
|
356
|
+
let current = 0
|
|
357
|
+
const show = (position) => {
|
|
358
|
+
current = Math.max(0, Math.min(values.length - 1, position))
|
|
359
|
+
const a = Math.floor(current), b = Math.ceil(current), t = current - a
|
|
360
|
+
const value = (values[a] / magnitude * (1 - t) + values[b] / magnitude * t) * magnitude
|
|
361
|
+
const px = x(current)
|
|
362
|
+
guide.setAttribute('d', \`M\${px} \${top}V\${bottom}\`)
|
|
363
|
+
dot.setAttribute('cx', px); dot.setAttribute('cy', y(value))
|
|
364
|
+
guide.setAttribute('visibility', 'visible'); dot.setAttribute('visibility', 'visible')
|
|
365
|
+
const label = a === b ? data.data[a].label : \`\${data.data[a].label} – \${data.data[b].label}\`
|
|
366
|
+
detail.textContent = \`\${label} · \${number(value)} \${data.unit || ''}\`
|
|
367
|
+
}
|
|
368
|
+
hit.addEventListener('pointermove', (event) => {
|
|
369
|
+
detail.removeAttribute('aria-live')
|
|
370
|
+
const bounds = hit.getBoundingClientRect()
|
|
371
|
+
show((event.clientX - bounds.left) / bounds.width * (values.length - 1))
|
|
372
|
+
})
|
|
373
|
+
hit.addEventListener('focus', () => show(Math.round(current)))
|
|
374
|
+
hit.addEventListener('click', (event) => {
|
|
375
|
+
if (!event.detail) { show(Math.round(current)); return }
|
|
376
|
+
const bounds = hit.getBoundingClientRect()
|
|
377
|
+
show((event.clientX - bounds.left) / bounds.width * (values.length - 1))
|
|
378
|
+
})
|
|
379
|
+
hit.addEventListener('keydown', (event) => {
|
|
380
|
+
if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) return
|
|
381
|
+
event.preventDefault()
|
|
382
|
+
detail.setAttribute('aria-live', 'polite')
|
|
383
|
+
show(event.key === 'Home' ? 0 : event.key === 'End' ? values.length - 1 : Math.round(current) + (event.key === 'ArrowRight' ? 1 : -1))
|
|
384
|
+
})
|
|
385
|
+
field.append(svg, hit)
|
|
386
|
+
root.append(field, detail)
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
class Flow extends Figure {
|
|
391
|
+
render() {
|
|
392
|
+
const data = this.figureData
|
|
393
|
+
if (!data || !Array.isArray(data.steps) || !data.steps.length || data.steps.length > 12 ||
|
|
394
|
+
data.steps.some((step) => !step || typeof step.label !== 'string' ||
|
|
395
|
+
(step.branches !== undefined && (!Array.isArray(step.branches) || step.branches.length > 8 ||
|
|
396
|
+
step.branches.some((branch) => !branch || typeof branch.label !== 'string'))))) { this.error(); return }
|
|
397
|
+
this.replaceChildren()
|
|
398
|
+
const root = node('figure', 'fs-flow-figure')
|
|
399
|
+
heading(root, data)
|
|
400
|
+
const list = node('ol', 'fs-flow-steps')
|
|
401
|
+
list.classList.toggle('fs-flow-steps--vertical', this.clientWidth < data.steps.length * 145)
|
|
402
|
+
list.style.setProperty('--fs-step-count', data.steps.length)
|
|
403
|
+
for (const [index, step] of data.steps.entries()) {
|
|
404
|
+
const item = node('li', 'fs-flow-step')
|
|
405
|
+
const status = ['done', 'active'].includes(step.status) ? step.status : 'pending'
|
|
406
|
+
item.dataset.status = status
|
|
407
|
+
if (status === 'active') item.setAttribute('aria-current', 'step')
|
|
408
|
+
const marker = node('span', 'fs-flow-marker', String(index + 1).padStart(2, '0'))
|
|
409
|
+
marker.setAttribute('aria-hidden', 'true')
|
|
410
|
+
const content = node('div', 'fs-flow-content')
|
|
411
|
+
content.append(node('span', 'fs-flow-label', step.label))
|
|
412
|
+
if (step.detail) content.append(node('span', 'fs-flow-description', step.detail))
|
|
413
|
+
if (Array.isArray(step.branches) && step.branches.length) {
|
|
414
|
+
const branches = node('ul', 'fs-flow-branches')
|
|
415
|
+
for (const branch of step.branches) {
|
|
416
|
+
const branchNode = node('li', 'fs-flow-branch')
|
|
417
|
+
branchNode.append(node('span', 'fs-flow-label', branch.label || ''))
|
|
418
|
+
if (branch.detail) branchNode.append(node('span', 'fs-flow-description', branch.detail))
|
|
419
|
+
branches.append(branchNode)
|
|
420
|
+
}
|
|
421
|
+
content.append(branches)
|
|
422
|
+
}
|
|
423
|
+
item.append(marker, content); list.append(item)
|
|
424
|
+
}
|
|
425
|
+
root.append(list); caption(root, data); this.append(root)
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
function register() {
|
|
430
|
+
if (!customElements.get('fs-chart')) customElements.define('fs-chart', Chart)
|
|
431
|
+
if (!customElements.get('fs-flow')) customElements.define('fs-flow', Flow)
|
|
432
|
+
}
|
|
433
|
+
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', register)
|
|
434
|
+
else register()
|
|
435
|
+
})()
|
|
436
|
+
`,z=16384,C="forsion_sketch_state_v1",x=48;function v(t){try{const e=JSON.stringify(t);return e&&new TextEncoder().encode(e).length<=z?e:void 0}catch{return}}function P(t,e,n){let a=2166136261;for(let s=0;s<n.length;s++)a=Math.imul(a^n.charCodeAt(s),16777619);return JSON.stringify([t,e,n.length,a>>>0])}function L(t){const e=t.getItem(C);if(!e||e.length>z*(x+4))return[];let n;try{n=JSON.parse(e)}catch{return[]}return Array.isArray(n)?n.filter(a=>!!a&&typeof a.key=="string"&&a.key.length<2048&&v(a.state)!==void 0).slice(-x):[]}function V(t){try{return L(localStorage).find(e=>e.key===t)?.state??null}catch{return null}}function W(t,e){const n=v(e);if(!(!n||t.length>=2048))try{const a=L(localStorage).filter(s=>s.key!==t);a.push({key:t,state:JSON.parse(n)}),localStorage.setItem(C,JSON.stringify(a.slice(-x)))}catch{}}const q="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data: blob:; media-src data: blob:; font-src data:",B="allow-scripts",X=40,U=2400,G=220,Y={"--fs-bg":"transparent"},Q=[["--fs-surface","--overlay-subtle"],["--fs-text","--text"],["--fs-muted","--text-muted"],["--fs-faint","--text-faint"],["--fs-border","--border"],["--fs-rule","--overlay-medium"],["--fs-accent","--accent-ink"],["--fs-accent-soft","--accent-light"],["--fs-green","--green"],["--fs-danger","--danger"],["--fs-radius","--radius-sm"],["--fs-font","--font-ui"],["--fs-mono","--font-mono"]];function T(t){return String(t).replace(/[<>]/g,"").trim()}function E(t){const e=getComputedStyle(t),n={...Y};for(const[a,s]of Q){const c=T(e.getPropertyValue(s));c&&(n[a]=c)}return n["color-scheme"]=document.documentElement.getAttribute("data-mode")==="dark"?"dark":"light",n}const b=new Set;let p=null;function Z(t){return b.add(t),!p&&typeof MutationObserver<"u"&&(p=new MutationObserver(()=>{for(const e of b)e()}),p.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme","data-skin","data-bg","data-mode","data-flat","data-glass","class"]})),()=>{b.delete(t),!b.size&&p&&(p.disconnect(),p=null)}}const tt=":root{--fs-s1:var(--fs-accent);--fs-s2:color-mix(in srgb,var(--fs-text) 62%,transparent);--fs-s3:color-mix(in srgb,var(--fs-text) 42%,transparent);--fs-s4:color-mix(in srgb,var(--fs-text) 26%,transparent);--fs-s5:color-mix(in srgb,var(--fs-text) 14%,transparent)}";function et(t){const e=Object.entries(t).map(([n,a])=>`${n.replace(/[^a-z-]/gi,"")}:${T(a)}`).join(";");return e?`:root{${e}}`:""}function nt(t,e={},n=null){const a=(v(n)??"null").replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),s=K.replace("__SKETCH_INITIAL_STATE__",()=>a);return`<!doctype html><html><head><meta http-equiv="Content-Security-Policy" content="${q}"><meta name="viewport" content="width=device-width, initial-scale=1"><style>${et(e)}${tt}${F}</style><script>${s};
|
|
437
|
+
${J}<\/script></head><body>${t}</body></html>`}function at(){try{const t=window.Capacitor;return!!(t&&typeof t.isNativePlatform=="function"&&t.isNativePlatform())}catch{return!1}}const st=({item:t,actions:e,stateScope:n})=>{const{t:a}=N(),s=i.useMemo(()=>n?P(n,t.callId,t.html):null,[n,t.callId,t.html]),c=i.useMemo(()=>s?V(s):null,[s]),u=i.useRef(null),w=i.useRef(null),m=i.useRef(null),[y,$]=i.useState(G),[h,_]=i.useState(!1),[k,j]=i.useState(!1),[g,H]=i.useState(null);i.useLayoutEffect(()=>{u.current&&H(E(u.current))},[]),i.useEffect(()=>Z(()=>{const r=u.current,l=m.current?.contentWindow;r&&l&&l.postMessage({type:"sketch-theme",vars:E(r)},"*")}),[]),i.useEffect(()=>{let r,l;const d=()=>{s&&r!==void 0&&W(s,JSON.parse(r)),r=void 0,l=void 0},S=M=>{if(!m.current||M.source!==m.current.contentWindow)return;const f=M.data;if(f?.type==="sketch-state"&&s){const A=v(f.state);A!==void 0&&(r=A,l||(l=setTimeout(d,200)))}f&&f.type==="sketch-height"&&Number.isFinite(Number(f.height))&&$(Math.min(U,Math.max(X,Math.ceil(Number(f.height)))))};return window.addEventListener("message",S),window.addEventListener("pagehide",d),()=>{window.removeEventListener("message",S),window.removeEventListener("pagehide",d),clearTimeout(l),d()}},[s]),i.useEffect(()=>{const r=w.current;if(!r||h)return;const l=()=>j(r.scrollHeight>r.clientHeight+1);l();const d=new ResizeObserver(l);return d.observe(r),()=>d.disconnect()},[y,h]);const I=i.useMemo(()=>g?nt(t.html,g,c):"",[t.html,g,c]);return o.jsxs("div",{className:"sketch-card",ref:u,"data-sketch-call-id":t.callId,children:[(t.title||e)&&o.jsxs("div",{className:"sketch-card-head",children:[t.title&&o.jsx("div",{className:"sketch-card-title",children:t.title}),e?.(t)]}),o.jsx("div",{ref:w,className:`sketch-clip${h?" open":""}${k&&!h?" faded":""}`,children:g&&o.jsx("iframe",{ref:m,className:"sketch-frame",sandbox:B,srcDoc:I,style:{height:y},title:t.title||"sketch"})}),k&&o.jsx("button",{type:"button",className:"sketch-card-toggle",onClick:()=>_(r=>!r),children:a(h?"sketch.collapse":"sketch.expand")})]})},rt=({item:t})=>{const{t:e}=N();return o.jsxs("div",{className:"sketch-card","data-sketch-call-id":t.callId,children:[t.title&&o.jsx("div",{className:"sketch-card-title",children:t.title}),o.jsx("div",{className:"sketch-card-note",children:e("sketch.mobileUnavailable")})]})},dt=({items:t,actions:e,stateScope:n})=>{const a=at(),s=a?rt:st;return o.jsx(o.Fragment,{children:t.map(c=>o.jsx(s,{item:c,actions:a?void 0:e,stateScope:n},`${n||""}:${c.callId}`))})};export{lt as F,dt as S,D as a,ct as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as v}from"./index-CF4RV4mh.js";import{dN as J,bp as ne,a7 as re}from"./appStore-Dg9WALEA.js";const K=/^(auto|scroll|hidden|clip)$/,M=(l,g=1)=>Number.isFinite(l)&&l>0?l:g,m=l=>`${Math.round(l*1e3)/1e3}px`;function ae({anchorRef:l,enabled:g=!0,onActivate:Y,children:Q}){const[t]=v.useState(()=>{const d=document.createElement("div");return d.className="csu-guest-surface",d.setAttribute("aria-hidden","true"),d.inert=!0,Object.assign(d.style,{position:"absolute",display:"flex",flexDirection:"column",minWidth:"0",minHeight:"0",overflow:"hidden",boxSizing:"border-box",visibility:"hidden",pointerEvents:"none",zIndex:"1"}),d}),E=v.useRef(g);E.current=g;const q=v.useRef(Y);q.current=Y;const N=v.useRef(0),$=v.useRef(null);return v.useLayoutEffect(()=>{N.current++;let d=!1,b=0,r=t.parentElement,x=null,I=!1,R=!1;const n=t.ownerDocument,a=n.defaultView,o=(i,e)=>{t.style[i]!==e&&(t.style[i]=e)},f=()=>{o("visibility","hidden"),o("pointerEvents","none"),t.inert||(t.inert=!0),t.getAttribute("aria-hidden")!=="true"&&t.setAttribute("aria-hidden","true")},D=()=>{const i=t.style.visibility==="visible"&&E.current&&!I&&!n.documentElement.hasAttribute("data-dv-dragging");o("pointerEvents",i?"auto":"none"),t.inert===i&&(t.inert=!i);const e=i?"false":"true";t.getAttribute("aria-hidden")!==e&&t.setAttribute("aria-hidden",e)},y=()=>{d||!E.current||n.hidden||t.inert||t.style.visibility!=="visible"||!l.current?.isConnected||l.current.closest('[hidden], [inert], [aria-hidden="true"]')||n.documentElement.hasAttribute("data-dv-dragging")||(R=t.contains(n.activeElement),q.current?.())},G=()=>{t.contains(n.activeElement)||(R=!1)},ee=()=>{const i=l.current;if(!i?.isConnected||(r||(r=i.closest(".shell-work")??i.closest(".shell-host")??n.body,(r===n.body||a.getComputedStyle(r).position==="static")&&o("position","fixed"),r.appendChild(t),A?.observe(r)),x!==i&&(x&&A?.unobserve(x),A?.observe(i),x=i),!E.current||n.hidden||!r.isConnected))return f(),!1;const e=i.getBoundingClientRect();if(e.width<=0||e.height<=0)return f(),!1;let p=Math.max(0,e.left),C=Math.max(0,e.top),z=Math.min(a.innerWidth,e.right),O=Math.min(a.innerHeight,e.bottom),W=1,k="";I=!1;for(let s=i;s;s=s.parentElement){const u=a.getComputedStyle(s);if(s.hidden||u.display==="none"||u.visibility==="hidden"||u.visibility==="collapse")return f(),!1;(s.inert||s.getAttribute("aria-hidden")==="true")&&(I=!0),s!==r&&!s.contains(r)&&(W*=Number.parseFloat(u.opacity||"1"));const V=/\b(paint|strict|content)\b/.test(u.contain),B=V||K.test(u.overflowX||u.overflow),X=V||K.test(u.overflowY||u.overflow);if(!B&&!X)continue;const h=s.getBoundingClientRect(),Z=M(h.width/s.offsetWidth),_=M(h.height/s.offsetHeight),j=h.left+s.clientLeft*Z,U=h.top+s.clientTop*_,te=j+s.clientWidth*Z,ie=U+s.clientHeight*_;B&&(p=Math.max(p,j),z=Math.min(z,te)),X&&(C=Math.max(C,U),O=Math.min(O,ie)),!k&&B&&X&&Math.abs(h.left-e.left)<1&&Math.abs(h.top-e.top)<1&&Math.abs(h.right-e.right)<1&&Math.abs(h.bottom-e.bottom)<1&&(k=u.borderRadius)}if(z<=p||O<=C)return f(),!1;if(W<=0)return f(),!0;const S=r.getBoundingClientRect(),F=M(re(t)),H=t.style.position==="absolute",L=H?M(S.width/r.offsetWidth,F):F,w=H?M(S.height/r.offsetHeight,F):F;return o("left",m(H?(e.left-S.left)/L-r.clientLeft+r.scrollLeft:e.left/L)),o("top",m(H?(e.top-S.top)/w-r.clientTop+r.scrollTop:e.top/w)),o("width",m(e.width/L)),o("height",m(e.height/w)),o("clipPath",`inset(${m((C-e.top)/w)} ${m((e.right-z)/L)} ${m((e.bottom-O)/w)} ${m((p-e.left)/L)})`),o("borderRadius",k),o("opacity",String(W)),o("visibility","visible"),D(),!0},T=()=>{if(b=0,d)return;const i=ee(),e=t.contains(n.activeElement),p=e&&!R;R=e,p&&y(),i&&(b=a.requestAnimationFrame(T))},c=()=>{!d&&!b&&(b=a.requestAnimationFrame(T))},A=typeof ResizeObserver>"u"?null:new ResizeObserver(c),P=new MutationObserver(i=>{i.some(e=>e.target===n.documentElement&&e.attributeName==="data-dv-dragging")&&D(),i.some(e=>!t.contains(e.target))&&c()});return P.observe(n.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class","hidden","inert","aria-hidden","data-dv-dragging"]}),a.addEventListener("resize",c),n.addEventListener("scroll",c,!0),n.addEventListener("visibilitychange",c),a.addEventListener(J,c),t.addEventListener("focus",y,!0),t.addEventListener("pointerdown",y,!0),n.addEventListener("focus",G,!0),$.current=()=>{E.current||f(),c()},T(),()=>{d=!0,b&&a.cancelAnimationFrame(b),A?.disconnect(),P.disconnect(),a.removeEventListener("resize",c),n.removeEventListener("scroll",c,!0),n.removeEventListener("visibilitychange",c),a.removeEventListener(J,c),t.removeEventListener("focus",y,!0),t.removeEventListener("pointerdown",y,!0),n.removeEventListener("focus",G,!0),$.current=null,f();const i=++N.current;queueMicrotask(()=>{N.current===i&&t.remove()})}},[l,t]),v.useLayoutEffect(()=>{$.current?.()},[g]),ne.createPortal(Q,t)}export{ae as S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as L,d as i,j as o,r as O}from"./index-CF4RV4mh.js";import{A as P}from"./astryxBridge-BZhaZPs4.js";import{i2 as R,iB as F,ib as _,iC as K,iD as z,d4 as U,iE as V,iF as Y,af as G,cp as W,iG as q,iA as J,at as Q,it as X,il as Z,iH as ee,a7 as te}from"./appStore-Dg9WALEA.js";import{a as oe,p as se}from"./mdMarkStore-CsKl7C8O.js";import{E as ae}from"./EventCard-BmDQkEj9.js";import{C as E}from"./CheckboxInput-BsaoUHZ0.js";import"./nativeDownload-D-f1_L2S.js";import"./ipc-DQOD2UKk.js";import"./client-BSKpsyAw.js";import"./mdMarks-Bq7Hl-4C.js";import"./Tooltip-DY4ISA-e.js";O({"todolist.title":{zh:"待办",en:"To-dos"},"todolist.untitled":{zh:"未命名",en:"Untitled"},"todolist.done":{zh:"已完成",en:"Completed"},"todolist.openInNote":{zh:"在笔记中打开",en:"Open in note"},"todolist.clickToEdit":{zh:"点击编辑",en:"Click to edit"},"todolist.addPlaceholder":{zh:"新建待办",en:"New to-do"},"todolist.allDone":{zh:"全部完成了。",en:"All done."},"todolist.emptyTitle":{zh:"还没有待办。",en:"No to-dos yet."},"todolist.emptyHintA":{zh:"在笔记里写 ",en:"Write "},"todolist.emptyExample":{zh:"- [ ] 事项 @2026-09-01",en:"- [ ] Task @2026-09-01"},"todolist.emptyHintB":{zh:"(打 ",en:" in a note (type "},"todolist.emptyHintC":{zh:" 有候选),或在下面直接加一条。",en:" for suggestions), or add one below."},"todolist.emptyHintCNoAdd":{zh:" 有候选)。",en:" for suggestions)."}});const M="done";function ne(h){const l=c=>typeof c=="string"?c:typeof c=="number"?String(c):"",n=l(h?.src);return{db:l(h?.db)||void 0,src:n==="db"||n==="md"?n:"all"}}function be({params:h}={}){const l=ne(h),{t:n}=L(),c=R(),C=oe(),[I,T]=i.useState(new Set([...F,M])),[m,N]=i.useState(null),[k,b]=i.useState(""),x=i.useMemo(()=>_(new Date),[]),u=i.useMemo(()=>c.filter(e=>e.checkboxCol&&(!l.db||e.db.path===l.db)),[c,l.db]),r=i.useMemo(()=>{const e=[];if(l.src!=="md")for(const t of u){const s=t.checkboxCol;for(const a of t.db.rows){const d=typeof a.cells[t.dateCol]=="string"?a.cells[t.dateCol]:"";e.push({key:`db:${t.db.path}:${a.rowId}`,name:a.name||n("todolist.untitled"),checked:a.cells[s]===!0,raw:d,source:t.db.name,db:t,rowId:a.rowId})}}if(l.src!=="db"&&!l.db)for(const t of C.filter(s=>s.isTask))e.push({key:`md:${t.path}:${t.line}`,name:t.text,checked:t.checked,raw:t.due,source:t.heading?`${t.title} › ${t.heading}`:t.title,note:{path:t.path,heading:t.heading},mark:t});return e},[u,C,l.src,l.db,n]),f=i.useMemo(()=>r.filter(e=>e.checked),[r]),A=i.useMemo(()=>{const e=new Map;for(const t of r){if(t.checked)continue;const s=K(t.raw,x),a=e.get(s);a?a.push(t):e.set(s,[t])}for(const t of e.values())t.sort((s,a)=>{const d=z(s.raw),v=z(a.raw);return(d===v?0:d<v?-1:1)||s.source.localeCompare(a.source,"zh")||s.name.localeCompare(a.name,"zh")});return e},[r,x]),g=r.length-f.length,D=e=>T(t=>{const s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s}),w=i.useMemo(()=>{if(!m)return null;const e=u.find(a=>a.db.path===m.dbPath),t=e?.db.rows.find(a=>a.rowId===m.rowId);if(!e||!t)return null;const s=typeof t.cells[e.dateCol]=="string"?t.cells[e.dateCol]:"";return{db:e.db,row:t,colId:e.dateCol,title:t.name,raw:s}},[m,u]),p=i.useMemo(()=>u.find(e=>!e.db.readonly&&!e.db.isNoteView),[u]),H=()=>{const e=k.trim();!e||!p||(X(p.db,p.dateCol,Z(x,!0),e),b(""))},$=(e,t)=>{if(e.note){ee(e.note.path,e.note.heading);return}if(!e.db||!e.rowId)return;const s=t.currentTarget.getBoundingClientRect();N({dbPath:e.db.db.path,rowId:e.rowId,at:{left:s.left,top:s.top,right:s.right,bottom:s.bottom,zoom:te(t.currentTarget)||1}})},S=!!U?.patchMark,j=e=>{const t=q(e.raw,x);return o.jsxs("li",{className:"amx-todo-item",children:[e.db&&e.rowId?o.jsx(E,{label:e.name,isLabelHidden:!0,size:"sm",value:e.checked,onChange:s=>J(e.db.db,e.rowId,e.db.checkboxCol,s?!0:void 0)}):e.mark&&S?o.jsx(E,{label:e.name,isLabelHidden:!0,size:"sm",value:e.checked,onChange:s=>se(e.mark,{checked:s})}):o.jsx("span",{className:`amx-todo-box${e.checked?" on":""}`,"aria-hidden":"true"}),o.jsxs("button",{className:"amx-todo-main",title:e.note?n("todolist.openInNote"):n("todolist.clickToEdit"),onClick:s=>$(e,s),children:[o.jsx("span",{className:`amx-todo-name${e.checked?" done":""}`,children:e.name}),e.raw?o.jsx("span",{className:`amx-todo-due ${t.tone}`,children:t.label}):null,e.note?o.jsx(Q,{className:"amx-todo-jump",size:12}):null]})]},e.key)},B=(e,t)=>{if(e!=="undated")return o.jsx("ul",{className:"amx-todo-list",children:t.map(j)});const s=[];for(const a of t){const d=s[s.length-1];d&&d.source===a.source?d.items.push(a):s.push({source:a.source,items:[a]})}return o.jsx(o.Fragment,{children:s.map(a=>o.jsxs("div",{children:[o.jsxs("div",{className:"amx-todo-src",children:[a.source,o.jsx("span",{className:"amx-todo-srcn",children:a.items.length})]}),o.jsx("ul",{className:"amx-todo-list",children:a.items.map(j)})]},a.source))})},y=(e,t,s,a)=>{const d=!I.has(e);return o.jsxs("section",{className:"amx-todo-group",children:[o.jsxs("button",{className:`amx-todo-ghead${d?" is-open":""}`,onClick:()=>D(e),"aria-expanded":d,children:[o.jsx(W,{className:"amx-todo-caret",size:12}),o.jsx("span",{className:"amx-todo-gname",children:t}),o.jsx("span",{className:"amx-todo-gcount",children:s.length})]}),o.jsx("div",{className:`amx-todo-reveal${d?" is-open":""}`,children:o.jsx("div",{className:"amx-todo-reveal-in",children:a})})]},e)};return o.jsx(P,{children:o.jsxs("div",{className:"amx-todo",children:[o.jsxs("div",{className:"amx-todo-bar",children:[o.jsx("span",{className:"amx-todo-title",children:n("todolist.title")}),g>0&&o.jsx("span",{className:"amx-todo-total",children:g})]}),r.length===0&&o.jsxs("div",{className:"amx-todo-empty",children:[n("todolist.emptyTitle"),!h?.miniSurface&&o.jsxs(o.Fragment,{children:[o.jsx("br",{}),n("todolist.emptyHintA"),o.jsx("code",{children:n("todolist.emptyExample")}),n("todolist.emptyHintB"),o.jsx("code",{children:"@"}),n(p?"todolist.emptyHintC":"todolist.emptyHintCNoAdd")]})]}),r.length>0&&g===0&&o.jsx("div",{className:"amx-todo-empty",children:n("todolist.allDone")}),V.map(e=>{const t=A.get(e);return t&&t.length?y(e,Y[e],t,B(e,t)):null}),f.length>0&&y(M,n("todolist.done"),f,o.jsx("ul",{className:"amx-todo-list",children:f.map(j)})),p&&o.jsxs("div",{className:"amx-todo-add",children:[o.jsx(G,{className:"amx-todo-addicon",size:13}),o.jsx("input",{className:"amx-todo-addinput",placeholder:n("todolist.addPlaceholder"),value:k,onChange:e=>b(e.target.value),onKeyDown:e=>{e.nativeEvent.isComposing||(e.key==="Enter"&&(e.preventDefault(),H()),e.key==="Escape"&&b(""))}})]}),w&&m&&o.jsx(ae,{ev:w,at:m.at,onClose:()=>N(null)})]})})}export{be as TodoListView,ne as readTodoParams};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as l,j as o}from"./index-CF4RV4mh.js";import{u as E,c as f}from"./astryxBridge-BZhaZPs4.js";import"./appStore-Dg9WALEA.js";import"./nativeDownload-D-f1_L2S.js";import"./ipc-DQOD2UKk.js";import"./client-BSKpsyAw.js";function N(r){return typeof r=="string"||typeof r=="number"}function p(...r){const i=r.filter(Boolean);return i.length>0?i.join(" "):void 0}function F({children:r,anchorRef:i,content:n,placement:y="above",alignment:m="center",delay:x=200,hideDelay:j=0,focusTrigger:g="auto",isEnabled:A=!0,onOpenChange:d,hasHoverIndication:b="auto",isOpen:B,isDefaultOpen:T}){const c=l.useRef(null),u=r!=null?N(r):!1,v=b===!0||b==="auto"&&u,w=l.useCallback(()=>{d?.(!0)},[d]),k=l.useCallback(()=>{d?.(!1)},[d]),e=E({placement:y,alignment:m,delay:x,hideDelay:j,focusTrigger:g,isEnabled:A,isOpen:B,isDefaultOpen:T,onShow:w,onHide:k});return f(()=>{if(!i)return;const s=i.current;if(!s)return;e.ref(s);const t=s.getAttribute("aria-describedby");return s.setAttribute("aria-describedby",p(t,e.describedBy)??""),()=>{e.ref(null),t?s.setAttribute("aria-describedby",t):s.removeAttribute("aria-describedby")}},[i,e.ref,e.describedBy]),f(()=>{if(i||u)return;const s=c.current;if(!s)return;const t=s.firstElementChild;if(!t)return;e.ref(t);const a=t.getAttribute("aria-describedby");return t.setAttribute("aria-describedby",p(a,e.describedBy)??""),()=>{e.ref(null),a?t.setAttribute("aria-describedby",a):t.removeAttribute("aria-describedby")}},[i,u,e.ref,e.describedBy]),i&&r==null?o.jsx(o.Fragment,{children:e.renderTooltip(n)}):u?o.jsxs(o.Fragment,{children:[o.jsx("span",{ref:e.ref,tabIndex:0,"aria-describedby":e.describedBy,...{0:{className:"xt0psk2"},1:{className:"xt0psk2 xujl8zx xev0dqp xycaml9 xrys4gj"}}[!!v<<0],children:r}),e.renderTooltip(n)]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{ref:c,className:"xjp7ctv",children:r}),e.renderTooltip(n)]})}F.displayName="Tooltip";export{F as Tooltip};
|