openwork-server 0.18.48 → 0.18.50
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/README.md +30 -0
- package/bin/openwork-server.mjs +3 -1
- package/dist/bin/openwork-server +2 -2
- package/dist/opencode-plugins/agent-instruction-compose.js +81 -0
- package/dist/opencode-plugins/gmail-attachment-fulfillment.js +199 -0
- package/dist/opencode-plugins/managed-policy-client.js +39 -0
- package/dist/opencode-plugins/managed-policy-next.js +13894 -0
- package/dist/opencode-plugins/managed-policy.js +100 -0
- package/dist/opencode-plugins/openwork-anthropic-adaptive-thinking.js +83 -0
- package/dist/opencode-plugins/openwork-anthropic-tool-schema.js +154 -0
- package/dist/opencode-plugins/openwork-capabilities-knowledge.js +13842 -0
- package/dist/opencode-plugins/openwork-chrome-devtools.js +13690 -0
- package/dist/opencode-plugins/openwork-extensions-preview-steering.js +295 -0
- package/dist/opencode-plugins/openwork-extensions-preview.js +16067 -0
- package/dist/opencode-plugins/openwork-gateway-quota-v2.js +13805 -0
- package/dist/opencode-plugins/openwork-gateway-quota.js +14130 -0
- package/dist/opencode-plugins/openwork-office-attachments.js +3008 -0
- package/dist/opencode-plugins/openwork-pdf-attachments.js +23811 -0
- package/dist/opencode-plugins/openwork-provider-adapters.js +292 -0
- package/dist/opencode-plugins/openwork-spreadsheets.js +16448 -0
- package/dist/opencode-plugins/openwork-title-recovery.js +255 -0
- package/dist/opencode-plugins/openwork-ui-bridge.js +81 -0
- package/dist/opencode-plugins/pdfium.wasm +0 -0
- package/dist/opencode-plugins/session-activity.js +45 -0
- package/dist/opencode-plugins/workspace-file-identity.js +162 -0
- package/package.json +1 -1
- package/web/apple-touch-icon.png +0 -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/abap-BdImnpbu.js +1 -0
- package/web/assets/abnfDiagram-VCTEODGH-BgnyE_Jl.js +1 -0
- package/web/assets/actionscript-3-CoDkCxhg.js +1 -0
- package/web/assets/ada-bCR0ucgS.js +1 -0
- package/web/assets/andromeeda-C4gqWexZ.js +1 -0
- package/web/assets/angular-html-DA-rfuFy.js +1 -0
- package/web/assets/angular-ts-BrjP3tb8.js +1 -0
- package/web/assets/apache-Pmp26Uib.js +1 -0
- package/web/assets/apex-D8_7TLub.js +1 -0
- package/web/assets/apl-CORt7UWP.js +1 -0
- package/web/assets/app-CyCqD289.js +2581 -0
- package/web/assets/app-DOrYoP_4.css +32 -0
- package/web/assets/applescript-Co6uUVPk.js +1 -0
- package/web/assets/ara-BRHolxvo.js +1 -0
- package/web/assets/arc-jSgX49-e.js +1 -0
- package/web/assets/architectureDiagram-5GKGNRK7-DD_aGn4v.js +36 -0
- package/web/assets/artifact-code-view-DFIq0k-c.js +1906 -0
- package/web/assets/artifact-spreadsheet-editor-DFVCYrL7.js +11 -0
- package/web/assets/artifact-text-editor-DBngc6bx.js +34 -0
- package/web/assets/asciidoc-Ve4PFQV2.js +1 -0
- package/web/assets/asm-D_Q5rh1f.js +1 -0
- package/web/assets/astro-HNnZUWAn.js +1 -0
- package/web/assets/aurora-x-D-2ljcwZ.js +1 -0
- package/web/assets/awk-DMzUqQB5.js +1 -0
- package/web/assets/ayu-dark-DYE7WIF3.js +1 -0
- package/web/assets/ayu-light-BA47KaF1.js +1 -0
- package/web/assets/ayu-mirage-32ctXXKs.js +1 -0
- package/web/assets/ballerina-BFfxhgS-.js +1 -0
- package/web/assets/bat-BkioyH1T.js +1 -0
- package/web/assets/beancount-k_qm7-4y.js +1 -0
- package/web/assets/berry-uYugtg8r.js +1 -0
- package/web/assets/bibtex-CHM0blh-.js +1 -0
- package/web/assets/bicep-Bmn6On1c.js +1 -0
- package/web/assets/bird2-BIv1doCn.js +1 -0
- package/web/assets/blade-BjGOyj-B.js +1 -0
- package/web/assets/blockDiagram-OSKFZWR5-CBcZLjLp.js +129 -0
- package/web/assets/bsl-BO_Y6i37.js +1 -0
- package/web/assets/c-BIGW1oBm.js +1 -0
- package/web/assets/c3-eo99z4R2.js +1 -0
- package/web/assets/c4Diagram-7LVT6UL2-DMrhFCLj.js +38 -0
- package/web/assets/cadence-Bv_4Rxtq.js +1 -0
- package/web/assets/cairo-KRGpt6FW.js +1 -0
- package/web/assets/catppuccin-frappe-DFWUc33u.js +1 -0
- package/web/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
- package/web/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
- package/web/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
- package/web/assets/channel-BE8JEd1U.js +1 -0
- package/web/assets/chunk-2Q5K7J3B-Ce1X-FJQ.js +1 -0
- package/web/assets/chunk-5VM5RSS4-BS48ZtVI.js +15 -0
- package/web/assets/chunk-F27PBJKO-COdFZJ-M.js +1 -0
- package/web/assets/chunk-HLEWEB6X-Cdw4ABX3.js +206 -0
- package/web/assets/chunk-JWPE2WC7-FVVDYZmE.js +1 -0
- package/web/assets/chunk-POPQ4Y6H-C7acdUF3.js +1 -0
- package/web/assets/chunk-SVP7TREG-BUun0UWD.js +88 -0
- package/web/assets/chunk-XXDRQBXY-DLgpJmat.js +1 -0
- package/web/assets/chunk-ZLD2IHE6-BdMQ5Cr0.js +231 -0
- package/web/assets/clarity-D53aC0YG.js +1 -0
- package/web/assets/classDiagram-CYGNFDIV-Cy8V0GW-.js +1 -0
- package/web/assets/classDiagram-v2-TLXNO2FR-Cy8V0GW-.js +1 -0
- package/web/assets/clojure-P80f7IUj.js +1 -0
- package/web/assets/cmake-D1j8_8rp.js +1 -0
- package/web/assets/cobol-nBiQ_Alo.js +1 -0
- package/web/assets/codeowners-Bp6g37R7.js +1 -0
- package/web/assets/codeql-DsOJ9woJ.js +1 -0
- package/web/assets/coffee-Ch7k5sss.js +1 -0
- package/web/assets/common-lisp-Cg-RD9OK.js +1 -0
- package/web/assets/coq-DkFqJrB1.js +1 -0
- package/web/assets/cose-bilkent-JH36ORCC-CqWy3Swy.js +1 -0
- package/web/assets/cpp-CofmeUqb.js +1 -0
- package/web/assets/crystal-DNxU26gB.js +1 -0
- package/web/assets/csharp-COcwbKMJ.js +1 -0
- package/web/assets/css-CLj8gQPS.js +1 -0
- package/web/assets/csv-fuZLfV_i.js +1 -0
- package/web/assets/cue-D82EKSYY.js +1 -0
- package/web/assets/cynefin-OW5HDTMX-DslesE5Y.js +178 -0
- package/web/assets/cynefinDiagram-5FMLGOSQ-B54uZJn_.js +62 -0
- package/web/assets/cypher-COkxafJQ.js +1 -0
- package/web/assets/cytoscape.esm-CNiYdHpY.js +331 -0
- package/web/assets/d-85-TOEBH.js +1 -0
- package/web/assets/dagre-OS7QT2EB-Bkahh4gZ.js +4 -0
- package/web/assets/dark-plus-C3mMm8J8.js +1 -0
- package/web/assets/dart-bE4Kk8sk.js +1 -0
- package/web/assets/dax-CEL-wOlO.js +1 -0
- package/web/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/web/assets/desktop-BmXAJ9_W.js +1 -0
- package/web/assets/diagram-S7CK7UJ4-CXQl7SfF.js +30 -0
- package/web/assets/diagram-UQ7AKVKN-BA0V8tjK.js +41 -0
- package/web/assets/diagram-VSXAHHWV-DlcR8qeO.js +3 -0
- package/web/assets/diagram-VX7I27RA-ewm16zDI.js +24 -0
- package/web/assets/diagram-Z3DM3KII-Bc2lRc88.js +24 -0
- package/web/assets/diff-D97Zzqfu.js +1 -0
- package/web/assets/docker-BcOcwvcX.js +1 -0
- package/web/assets/dotenv-Da5cRb03.js +1 -0
- package/web/assets/dracula-BzJJZx-M.js +1 -0
- package/web/assets/dracula-soft-BXkSAIEj.js +1 -0
- package/web/assets/dream-maker-BtqSS_iP.js +1 -0
- package/web/assets/ebnfDiagram-PWID7BFC-JwCaf6cT.js +1 -0
- package/web/assets/edge-FbVlp4U3.js +1 -0
- package/web/assets/elixir-CkH2-t6x.js +1 -0
- package/web/assets/elm-DbKCFpqz.js +1 -0
- package/web/assets/emacs-lisp-CXvaQtF9.js +1 -0
- package/web/assets/erDiagram-2YWLMYGG-DOqO-9Yf.js +99 -0
- package/web/assets/erb-BYCe7drp.js +1 -0
- package/web/assets/erlang-DsQrWhSR.js +1 -0
- package/web/assets/everforest-dark-BgDCqdQA.js +1 -0
- package/web/assets/everforest-light-C8M2exoo.js +1 -0
- package/web/assets/fennel-BYunw83y.js +1 -0
- package/web/assets/fish-BvzEVeQv.js +1 -0
- package/web/assets/flowDiagram-T62WH6J4-CCZxvIjW.js +168 -0
- package/web/assets/fluent-C4IJs8-o.js +1 -0
- package/web/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
- package/web/assets/fortran-free-form-BxgE0vQu.js +1 -0
- package/web/assets/fsharp-CXgrBDvD.js +1 -0
- package/web/assets/ganttDiagram-EL5Y4UJY-BczG7RIu.js +292 -0
- package/web/assets/gdresource-BOOCDP_w.js +1 -0
- package/web/assets/gdscript-C5YyOfLZ.js +1 -0
- package/web/assets/gdshader-DkwncUOv.js +1 -0
- package/web/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
- package/web/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
- package/web/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
- package/web/assets/genie-D0YGMca9.js +1 -0
- package/web/assets/gherkin-DyxjwDmM.js +1 -0
- package/web/assets/git-commit-F4YmCXRG.js +1 -0
- package/web/assets/git-rebase-r7XF79zn.js +1 -0
- package/web/assets/gitGraphDiagram-WWUBYQGX-GOecDN3g.js +106 -0
- package/web/assets/github-dark-DHJKELXO.js +1 -0
- package/web/assets/github-dark-default-Cuk6v7N8.js +1 -0
- package/web/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
- package/web/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
- package/web/assets/github-light-DAi9KRSo.js +1 -0
- package/web/assets/github-light-default-D7oLnXFd.js +1 -0
- package/web/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
- package/web/assets/gleam-BspZqrRM.js +1 -0
- package/web/assets/glimmer-js-ByusRIyA.js +1 -0
- package/web/assets/glimmer-ts-BfAWNZQY.js +1 -0
- package/web/assets/glsl-DplSGwfg.js +1 -0
- package/web/assets/gn-n2N0HUVH.js +1 -0
- package/web/assets/gnuplot-DdkO51Og.js +1 -0
- package/web/assets/go-C27-OAKa.js +1 -0
- package/web/assets/graphql-ChdNCCLP.js +1 -0
- package/web/assets/groovy-gcz8RCvz.js +1 -0
- package/web/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
- package/web/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
- package/web/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
- package/web/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
- package/web/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
- package/web/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
- package/web/assets/hack-i7_Ulhet.js +1 -0
- package/web/assets/haml-D5jkg6IW.js +1 -0
- package/web/assets/handlebars-BpdQsYii.js +1 -0
- package/web/assets/haskell-Df6bDoY_.js +1 -0
- package/web/assets/haxe-CzTSHFRz.js +1 -0
- package/web/assets/hcl-BWvSN4gD.js +1 -0
- package/web/assets/hjson-D5-asLiD.js +1 -0
- package/web/assets/hlsl-D3lLCCz7.js +1 -0
- package/web/assets/horizon-BUw7H-hv.js +1 -0
- package/web/assets/horizon-bright-CUuTKBJd.js +1 -0
- package/web/assets/houston-DnULxvSX.js +1 -0
- package/web/assets/html-derivative-DlHx6ybY.js +1 -0
- package/web/assets/html-pp8916En.js +1 -0
- package/web/assets/http-jrhK8wxY.js +1 -0
- package/web/assets/hurl-irOxFIW8.js +1 -0
- package/web/assets/hxml-Bvhsp5Yf.js +1 -0
- package/web/assets/hy-DFXneXwc.js +1 -0
- package/web/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2 +0 -0
- package/web/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2 +0 -0
- package/web/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2 +0 -0
- package/web/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2 +0 -0
- package/web/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2 +0 -0
- package/web/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2 +0 -0
- package/web/assets/imba-DGztddWO.js +1 -0
- package/web/assets/index-BZgplq0g.css +1 -0
- package/web/assets/index-_gYIQM_z.js +49 -0
- package/web/assets/infoDiagram-FKFFQAWI-BbgIVsQp.js +2 -0
- package/web/assets/ini-BEwlwnbL.js +1 -0
- package/web/assets/init-Gi6I4Gst.js +1 -0
- package/web/assets/ishikawaDiagram-5VMMS53U-xutQo5Ip.js +70 -0
- package/web/assets/java-CylS5w8V.js +1 -0
- package/web/assets/javascript-wDzz0qaB.js +1 -0
- package/web/assets/jinja-f2NsQr07.js +1 -0
- package/web/assets/jison-wvAkD_A8.js +1 -0
- package/web/assets/journeyDiagram-EYS64GPL-BIbzPGaa.js +139 -0
- package/web/assets/json-Cp-IABpG.js +1 -0
- package/web/assets/json5-C9tS-k6U.js +1 -0
- package/web/assets/jsonc-Des-eS-w.js +1 -0
- package/web/assets/jsonl-DcaNXYhu.js +1 -0
- package/web/assets/jsonnet-DFQXde-d.js +1 -0
- package/web/assets/jssm-C2t-YnRu.js +1 -0
- package/web/assets/jsx-g9-lgVsj.js +1 -0
- package/web/assets/julia-CxzCAyBv.js +1 -0
- package/web/assets/just-VxiPbLrw.js +1 -0
- package/web/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
- package/web/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
- package/web/assets/kanagawa-wave-DWedfzmr.js +1 -0
- package/web/assets/kanban-definition-UXKFOSKX-BCTiRzck.js +89 -0
- package/web/assets/katex-HP8lGamR.js +257 -0
- package/web/assets/kdl-DV7GczEv.js +1 -0
- package/web/assets/kotlin-BdnUsdx6.js +1 -0
- package/web/assets/kusto-wEQ09or8.js +1 -0
- package/web/assets/laserwave-DUszq2jm.js +1 -0
- package/web/assets/latex-CWtU0Tv5.js +1 -0
- package/web/assets/layout-Wpfi54TB.js +1 -0
- package/web/assets/lean-BZvkOJ9d.js +1 -0
- package/web/assets/less-B1dDrJ26.js +1 -0
- package/web/assets/light-plus-B7mTdjB0.js +1 -0
- package/web/assets/linear-DLJHPikh.js +1 -0
- package/web/assets/liquid-C0sCDyMI.js +1 -0
- package/web/assets/llvm-DjAJT7YJ.js +1 -0
- package/web/assets/log-2UxHyX5q.js +1 -0
- package/web/assets/logo-BtOb2qkB.js +1 -0
- package/web/assets/lua-BaeVxFsk.js +1 -0
- package/web/assets/luau-C-HG3fhB.js +1 -0
- package/web/assets/make-CHLpvVh8.js +1 -0
- package/web/assets/markdown-Cvjx9yec.js +1 -0
- package/web/assets/marko-DjSrsDqO.js +1 -0
- package/web/assets/material-theme-D5KoaKCx.js +1 -0
- package/web/assets/material-theme-darker-BfHTSMKl.js +1 -0
- package/web/assets/material-theme-lighter-B0m2ddpp.js +1 -0
- package/web/assets/material-theme-ocean-CyktbL80.js +1 -0
- package/web/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
- package/web/assets/matlab-D7o27uSR.js +1 -0
- package/web/assets/mdc-DTYItulj.js +1 -0
- package/web/assets/mdx-Cmh6b_Ma.js +1 -0
- package/web/assets/mermaid-mWjccvbQ.js +1 -0
- package/web/assets/mermaid.core-CDRJkis7.js +310 -0
- package/web/assets/min-dark-CafNBF8u.js +1 -0
- package/web/assets/min-light-CTRr51gU.js +1 -0
- package/web/assets/mindmap-definition-THT77NOG-DtphSFs_.js +96 -0
- package/web/assets/mipsasm-CKIfxQSi.js +1 -0
- package/web/assets/mojo-rZm6bMo-.js +1 -0
- package/web/assets/monokai-D4h5O-jR.js +1 -0
- package/web/assets/moonbit-_H4v1dQx.js +1 -0
- package/web/assets/move-IF9eRakj.js +1 -0
- package/web/assets/narrat-DRg8JJMk.js +1 -0
- package/web/assets/nextflow-C-mBbutL.js +1 -0
- package/web/assets/nextflow-groovy-vE_lwT2v.js +1 -0
- package/web/assets/nginx-BpAMiNFr.js +1 -0
- package/web/assets/night-owl-C39BiMTA.js +1 -0
- package/web/assets/night-owl-light-CMTm3GFP.js +1 -0
- package/web/assets/nim-BIad80T-.js +1 -0
- package/web/assets/nix-CwoSXNpI.js +1 -0
- package/web/assets/nord-Ddv68eIx.js +1 -0
- package/web/assets/nushell-Cz2AlsmD.js +1 -0
- package/web/assets/objective-c-DXmwc3jG.js +1 -0
- package/web/assets/objective-cpp-CLxacb5B.js +1 -0
- package/web/assets/ocaml-C0hk2d4L.js +1 -0
- package/web/assets/odin-BBf5iR-q.js +1 -0
- package/web/assets/one-dark-pro-DVMEJ2y_.js +1 -0
- package/web/assets/one-light-C3Wv6jpd.js +1 -0
- package/web/assets/openscad-C4EeE6gA.js +1 -0
- package/web/assets/ordinal-Cboi1Yqb.js +1 -0
- package/web/assets/overlay-zA9qjYXH.js +1 -0
- package/web/assets/pascal-D93ZcfNL.js +1 -0
- package/web/assets/pegDiagram-XKGWAZYB-CzbjpqK7.js +1 -0
- package/web/assets/perl-NvoQZIq0.js +1 -0
- package/web/assets/php-R6g_5hLQ.js +1 -0
- package/web/assets/pieDiagram-E7YTZNPT-tjxtWWT7.js +39 -0
- package/web/assets/pierre-dark-CyvmCCZW.js +1 -0
- package/web/assets/pierre-dark-protanopia-deuteranopia-Rgc0TwpF.js +1 -0
- package/web/assets/pierre-dark-soft-BHGpRqa4.js +1 -0
- package/web/assets/pierre-dark-tritanopia-Beq2gCRQ.js +1 -0
- package/web/assets/pierre-dark-vibrant-BWBVywrn.js +1 -0
- package/web/assets/pierre-light-480U9XYS.js +1 -0
- package/web/assets/pierre-light-protanopia-deuteranopia-CaVOBURG.js +1 -0
- package/web/assets/pierre-light-soft-CVdyfjmI.js +1 -0
- package/web/assets/pierre-light-tritanopia-B4_gpKOM.js +1 -0
- package/web/assets/pierre-light-vibrant-DdTDNdfJ.js +1 -0
- package/web/assets/pkl-u5AG7uiY.js +1 -0
- package/web/assets/plastic-3e1v2bzS.js +1 -0
- package/web/assets/plsql-ChMvpjG-.js +1 -0
- package/web/assets/po-BTJTHyun.js +1 -0
- package/web/assets/poimandres-CS3Unz2-.js +1 -0
- package/web/assets/polar-C0HS_06l.js +1 -0
- package/web/assets/postcss-CXtECtnM.js +1 -0
- package/web/assets/powerquery-CEu0bR-o.js +1 -0
- package/web/assets/powershell-Dpen1YoG.js +1 -0
- package/web/assets/prisma-Dd19v3D-.js +1 -0
- package/web/assets/prolog-CbFg5uaA.js +1 -0
- package/web/assets/proto-C7zT0LnQ.js +1 -0
- package/web/assets/pug-DKIMFp6K.js +1 -0
- package/web/assets/puppet-BMWR74SV.js +1 -0
- package/web/assets/purescript-CklMAg4u.js +1 -0
- package/web/assets/python-B6aJPvgy.js +1 -0
- package/web/assets/qml-3beO22l8.js +1 -0
- package/web/assets/qmldir-C8lEn-DE.js +1 -0
- package/web/assets/qss-IeuSbFQv.js +1 -0
- package/web/assets/quadrantDiagram-AXDQQJYC-CFC1qey-.js +7 -0
- package/web/assets/r-Dspwwk_N.js +1 -0
- package/web/assets/racket-BqYA7rlc.js +1 -0
- package/web/assets/railroadDiagram-O6MQD6OU-73_BXhNP.js +1 -0
- package/web/assets/raku-DXvB9xmW.js +1 -0
- package/web/assets/razor-BDqjjVU7.js +1 -0
- package/web/assets/red-bN70gL4F.js +1 -0
- package/web/assets/reg-C-SQnVFl.js +1 -0
- package/web/assets/regexp-CDVJQ6XC.js +1 -0
- package/web/assets/rel-C3B-1QV4.js +1 -0
- package/web/assets/requirementDiagram-IS5BZ75X-B8i4BL2A.js +84 -0
- package/web/assets/riscv-BM1_JUlF.js +1 -0
- package/web/assets/ron-D8l8udqQ.js +1 -0
- package/web/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
- package/web/assets/rose-pine-moon-D4_iv3hh.js +1 -0
- package/web/assets/rose-pine-qdsjHGoJ.js +1 -0
- package/web/assets/rosmsg-BJDFO7_C.js +1 -0
- package/web/assets/rst-CRjBmOyv.js +1 -0
- package/web/assets/ruby-Wjq7vjNf.js +1 -0
- package/web/assets/rust-B1yitclQ.js +1 -0
- package/web/assets/sankeyDiagram-P5KCCOFB-Dll4Naj0.js +40 -0
- package/web/assets/sas-cz2c8ADy.js +1 -0
- package/web/assets/sass-Cj5Yp3dK.js +1 -0
- package/web/assets/scala-C151Ov-r.js +1 -0
- package/web/assets/scheme-C98Dy4si.js +1 -0
- package/web/assets/scss-D5BDwBP9.js +1 -0
- package/web/assets/sdbl-DVxCFoDh.js +1 -0
- package/web/assets/sequenceDiagram-WJ2MYXX4-B8Rvjhb5.js +162 -0
- package/web/assets/shaderlab-Dg9Lc6iA.js +1 -0
- package/web/assets/shellscript-Yzrsuije.js +1 -0
- package/web/assets/shellsession-BADoaaVG.js +1 -0
- package/web/assets/sizeCapture-INFHLROL-h8YDF-c3.js +1 -0
- package/web/assets/slack-dark-BthQWCQV.js +1 -0
- package/web/assets/slack-ochin-DqwNpetd.js +1 -0
- package/web/assets/smalltalk-BERRCDM3.js +1 -0
- package/web/assets/snazzy-light-Bw305WKR.js +1 -0
- package/web/assets/solarized-dark-DXbdFlpD.js +1 -0
- package/web/assets/solarized-light-L9t79GZl.js +1 -0
- package/web/assets/solidity-rGO070M0.js +1 -0
- package/web/assets/soy-8wufbnw4.js +1 -0
- package/web/assets/sparql-rVzFXLq3.js +1 -0
- package/web/assets/splunk-BtCnVYZw.js +1 -0
- package/web/assets/sql-BLtJtn59.js +1 -0
- package/web/assets/ssh-config-_ykCGR6B.js +1 -0
- package/web/assets/stata-BH5u7GGu.js +1 -0
- package/web/assets/stateDiagram-XQSTLZYL-COorU6Ga.js +1 -0
- package/web/assets/stateDiagram-v2-IH3M54BS-BAu05WuT.js +1 -0
- package/web/assets/stylus-BEDo0Tqx.js +1 -0
- package/web/assets/surrealql-Bq5Q-fJD.js +1 -0
- package/web/assets/svelte-Cy7k_4gC.js +1 -0
- package/web/assets/swift-D82vCrfD.js +1 -0
- package/web/assets/swimlanes-V6O3JKXN-CAghInFw.js +1 -0
- package/web/assets/swimlanesDiagram-JKAHXJPX-CpJNl3pn.js +8 -0
- package/web/assets/synthwave-84-CbfX1IO0.js +1 -0
- package/web/assets/system-verilog-CnnmHF94.js +1 -0
- package/web/assets/systemd-4A_iFExJ.js +1 -0
- package/web/assets/talonscript-CkByrt1z.js +1 -0
- package/web/assets/tasl-QIJgUcNo.js +1 -0
- package/web/assets/tcl-dwOrl1Do.js +1 -0
- package/web/assets/templ-DhtptRzy.js +1 -0
- package/web/assets/terraform-BETggiCN.js +1 -0
- package/web/assets/tex-idrVyKtj.js +1 -0
- package/web/assets/timeline-definition-24CTP7MA-Dum2N-ex.js +120 -0
- package/web/assets/tokyo-night-hegEt444.js +1 -0
- package/web/assets/toml-vGWfd6FD.js +1 -0
- package/web/assets/ts-tags-DQrlYJgV.js +1 -0
- package/web/assets/tsv-B_m7g4N7.js +1 -0
- package/web/assets/tsx-COt5Ahok.js +1 -0
- package/web/assets/turtle-BsS91CYL.js +1 -0
- package/web/assets/twig-xg9kU7Mw.js +1 -0
- package/web/assets/typescript-BPQ3VLAy.js +1 -0
- package/web/assets/typespec-CAFt9gP4.js +1 -0
- package/web/assets/typst-DHCkPAjA.js +1 -0
- package/web/assets/v-BcVCzyr7.js +1 -0
- package/web/assets/vala-CsfeWuGM.js +1 -0
- package/web/assets/vb-D17OF-Vu.js +1 -0
- package/web/assets/vennDiagram-4TSXK5OY-D-JeJumX.js +34 -0
- package/web/assets/verilog-BQ8w6xss.js +1 -0
- package/web/assets/vesper-DU1UobuO.js +1 -0
- package/web/assets/vhdl-CeAyd5Ju.js +1 -0
- package/web/assets/viml-CJc9bBzg.js +1 -0
- package/web/assets/vitesse-black-Bkuqu6BP.js +1 -0
- package/web/assets/vitesse-dark-D0r3Knsf.js +1 -0
- package/web/assets/vitesse-light-CVO1_9PV.js +1 -0
- package/web/assets/vue-D2xRrEX4.js +1 -0
- package/web/assets/vue-html-AaS7Mt5G.js +1 -0
- package/web/assets/vue-vine-BoDAl6tE.js +1 -0
- package/web/assets/vyper-CDx5xZoG.js +1 -0
- package/web/assets/wardleyDiagram-VM6X3IG4-d99FKQIG.js +78 -0
- package/web/assets/wasm-CG6Dc4jp.js +1 -0
- package/web/assets/wasm-MzD3tlZU.js +1 -0
- package/web/assets/wenyan-BV7otONQ.js +1 -0
- package/web/assets/wgsl-Dx-B1_4e.js +1 -0
- package/web/assets/wikitext-BhOHFoWU.js +1 -0
- package/web/assets/wit-5i3qLPDT.js +1 -0
- package/web/assets/wolfram-lXgVvXCa.js +1 -0
- package/web/assets/workspace-file-tree-CAuhntUr.js +1278 -0
- package/web/assets/xml-sdJ4AIDG.js +1 -0
- package/web/assets/xsl-CtQFsRM5.js +1 -0
- package/web/assets/xychartDiagram-S5SC5T6Z-DdmevfkD.js +7 -0
- package/web/assets/yaml-Buea-lGh.js +1 -0
- package/web/assets/zenscript-DVFEvuxE.js +1 -0
- package/web/assets/zig-VOosw3JB.js +1 -0
- package/web/ext-context7.svg +1 -0
- package/web/ext-google-workspace.svg +6 -0
- package/web/ext-linear.svg +1 -0
- package/web/ext-notion.svg +1 -0
- package/web/ext-ollama.svg +1 -0
- package/web/ext-openai.svg +1 -0
- package/web/ext-sentry.svg +1 -0
- package/web/ext-stripe.svg +1 -0
- package/web/favicon-16x16.png +0 -0
- package/web/favicon-32x32.png +0 -0
- package/web/grain-art/extension/extension-001.png +0 -0
- package/web/grain-art/extension/extension-002.png +0 -0
- package/web/grain-art/extension/extension-003.png +0 -0
- package/web/grain-art/extension/extension-004.png +0 -0
- package/web/grain-art/extension/extension-005.png +0 -0
- package/web/grain-art/extension/extension-006.png +0 -0
- package/web/grain-art/extension/extension-007.png +0 -0
- package/web/grain-art/extension/extension-008.png +0 -0
- package/web/grain-art/extension/extension-009.png +0 -0
- package/web/grain-art/extension/extension-010.png +0 -0
- package/web/grain-art/extension/extension-011.png +0 -0
- package/web/grain-art/extension/extension-012.png +0 -0
- package/web/grain-art/extension/extension-013.png +0 -0
- package/web/grain-art/extension/extension-014.png +0 -0
- package/web/grain-art/extension/extension-015.png +0 -0
- package/web/grain-art/extension/extension-016.png +0 -0
- package/web/grain-art/extension/extension-017.png +0 -0
- package/web/grain-art/extension/extension-018.png +0 -0
- package/web/grain-art/extension/extension-019.png +0 -0
- package/web/grain-art/extension/extension-020.png +0 -0
- package/web/grain-art/extension/extension-021.png +0 -0
- package/web/grain-art/extension/extension-022.png +0 -0
- package/web/grain-art/extension/extension-023.png +0 -0
- package/web/grain-art/extension/extension-024.png +0 -0
- package/web/grain-art/extension/extension-025.png +0 -0
- package/web/grain-art/extension/extension-026.png +0 -0
- package/web/grain-art/extension/extension-027.png +0 -0
- package/web/grain-art/extension/extension-028.png +0 -0
- package/web/grain-art/extension/extension-029.png +0 -0
- package/web/grain-art/extension/extension-030.png +0 -0
- package/web/grain-art/extension/extension-031.png +0 -0
- package/web/grain-art/extension/extension-032.png +0 -0
- package/web/grain-art/fallback/fallback-001.png +0 -0
- package/web/grain-art/fallback/fallback-002.png +0 -0
- package/web/grain-art/fallback/fallback-003.png +0 -0
- package/web/grain-art/fallback/fallback-004.png +0 -0
- package/web/grain-art/fallback/fallback-005.png +0 -0
- package/web/grain-art/fallback/fallback-006.png +0 -0
- package/web/grain-art/fallback/fallback-007.png +0 -0
- package/web/grain-art/fallback/fallback-008.png +0 -0
- package/web/grain-art/fallback/fallback-009.png +0 -0
- package/web/grain-art/fallback/fallback-010.png +0 -0
- package/web/grain-art/fallback/fallback-011.png +0 -0
- package/web/grain-art/fallback/fallback-012.png +0 -0
- package/web/grain-art/fallback/fallback-013.png +0 -0
- package/web/grain-art/fallback/fallback-014.png +0 -0
- package/web/grain-art/fallback/fallback-015.png +0 -0
- package/web/grain-art/fallback/fallback-016.png +0 -0
- package/web/grain-art/fallback/fallback-017.png +0 -0
- package/web/grain-art/fallback/fallback-018.png +0 -0
- package/web/grain-art/fallback/fallback-019.png +0 -0
- package/web/grain-art/fallback/fallback-020.png +0 -0
- package/web/grain-art/fallback/fallback-021.png +0 -0
- package/web/grain-art/fallback/fallback-022.png +0 -0
- package/web/grain-art/fallback/fallback-023.png +0 -0
- package/web/grain-art/fallback/fallback-024.png +0 -0
- package/web/grain-art/fallback/fallback-025.png +0 -0
- package/web/grain-art/fallback/fallback-026.png +0 -0
- package/web/grain-art/fallback/fallback-027.png +0 -0
- package/web/grain-art/fallback/fallback-028.png +0 -0
- package/web/grain-art/fallback/fallback-029.png +0 -0
- package/web/grain-art/fallback/fallback-030.png +0 -0
- package/web/grain-art/fallback/fallback-031.png +0 -0
- package/web/grain-art/fallback/fallback-032.png +0 -0
- package/web/grain-art/mcps/mcps-001.png +0 -0
- package/web/grain-art/mcps/mcps-002.png +0 -0
- package/web/grain-art/mcps/mcps-003.png +0 -0
- package/web/grain-art/mcps/mcps-004.png +0 -0
- package/web/grain-art/mcps/mcps-005.png +0 -0
- package/web/grain-art/mcps/mcps-006.png +0 -0
- package/web/grain-art/mcps/mcps-007.png +0 -0
- package/web/grain-art/mcps/mcps-008.png +0 -0
- package/web/grain-art/mcps/mcps-009.png +0 -0
- package/web/grain-art/mcps/mcps-010.png +0 -0
- package/web/grain-art/mcps/mcps-011.png +0 -0
- package/web/grain-art/mcps/mcps-012.png +0 -0
- package/web/grain-art/mcps/mcps-013.png +0 -0
- package/web/grain-art/mcps/mcps-014.png +0 -0
- package/web/grain-art/mcps/mcps-015.png +0 -0
- package/web/grain-art/mcps/mcps-016.png +0 -0
- package/web/grain-art/mcps/mcps-017.png +0 -0
- package/web/grain-art/mcps/mcps-018.png +0 -0
- package/web/grain-art/mcps/mcps-019.png +0 -0
- package/web/grain-art/mcps/mcps-020.png +0 -0
- package/web/grain-art/mcps/mcps-021.png +0 -0
- package/web/grain-art/mcps/mcps-022.png +0 -0
- package/web/grain-art/mcps/mcps-023.png +0 -0
- package/web/grain-art/mcps/mcps-024.png +0 -0
- package/web/grain-art/mcps/mcps-025.png +0 -0
- package/web/grain-art/mcps/mcps-026.png +0 -0
- package/web/grain-art/mcps/mcps-027.png +0 -0
- package/web/grain-art/mcps/mcps-028.png +0 -0
- package/web/grain-art/mcps/mcps-029.png +0 -0
- package/web/grain-art/mcps/mcps-030.png +0 -0
- package/web/grain-art/mcps/mcps-031.png +0 -0
- package/web/grain-art/mcps/mcps-032.png +0 -0
- package/web/grain-art/plugins/plugins-001.png +0 -0
- package/web/grain-art/plugins/plugins-002.png +0 -0
- package/web/grain-art/plugins/plugins-003.png +0 -0
- package/web/grain-art/plugins/plugins-004.png +0 -0
- package/web/grain-art/plugins/plugins-005.png +0 -0
- package/web/grain-art/plugins/plugins-006.png +0 -0
- package/web/grain-art/plugins/plugins-007.png +0 -0
- package/web/grain-art/plugins/plugins-008.png +0 -0
- package/web/grain-art/plugins/plugins-009.png +0 -0
- package/web/grain-art/plugins/plugins-010.png +0 -0
- package/web/grain-art/plugins/plugins-011.png +0 -0
- package/web/grain-art/plugins/plugins-012.png +0 -0
- package/web/grain-art/plugins/plugins-013.png +0 -0
- package/web/grain-art/plugins/plugins-014.png +0 -0
- package/web/grain-art/plugins/plugins-015.png +0 -0
- package/web/grain-art/plugins/plugins-016.png +0 -0
- package/web/grain-art/plugins/plugins-017.png +0 -0
- package/web/grain-art/plugins/plugins-018.png +0 -0
- package/web/grain-art/plugins/plugins-019.png +0 -0
- package/web/grain-art/plugins/plugins-020.png +0 -0
- package/web/grain-art/plugins/plugins-021.png +0 -0
- package/web/grain-art/plugins/plugins-022.png +0 -0
- package/web/grain-art/plugins/plugins-023.png +0 -0
- package/web/grain-art/plugins/plugins-024.png +0 -0
- package/web/grain-art/plugins/plugins-025.png +0 -0
- package/web/grain-art/plugins/plugins-026.png +0 -0
- package/web/grain-art/plugins/plugins-027.png +0 -0
- package/web/grain-art/plugins/plugins-028.png +0 -0
- package/web/grain-art/plugins/plugins-029.png +0 -0
- package/web/grain-art/plugins/plugins-030.png +0 -0
- package/web/grain-art/plugins/plugins-031.png +0 -0
- package/web/grain-art/plugins/plugins-032.png +0 -0
- package/web/grain-art/skills/skills-001.png +0 -0
- package/web/grain-art/skills/skills-002.png +0 -0
- package/web/grain-art/skills/skills-003.png +0 -0
- package/web/grain-art/skills/skills-004.png +0 -0
- package/web/grain-art/skills/skills-005.png +0 -0
- package/web/grain-art/skills/skills-006.png +0 -0
- package/web/grain-art/skills/skills-007.png +0 -0
- package/web/grain-art/skills/skills-008.png +0 -0
- package/web/grain-art/skills/skills-009.png +0 -0
- package/web/grain-art/skills/skills-010.png +0 -0
- package/web/grain-art/skills/skills-011.png +0 -0
- package/web/grain-art/skills/skills-012.png +0 -0
- package/web/grain-art/skills/skills-013.png +0 -0
- package/web/grain-art/skills/skills-014.png +0 -0
- package/web/grain-art/skills/skills-015.png +0 -0
- package/web/grain-art/skills/skills-016.png +0 -0
- package/web/grain-art/skills/skills-017.png +0 -0
- package/web/grain-art/skills/skills-018.png +0 -0
- package/web/grain-art/skills/skills-019.png +0 -0
- package/web/grain-art/skills/skills-020.png +0 -0
- package/web/grain-art/skills/skills-021.png +0 -0
- package/web/grain-art/skills/skills-022.png +0 -0
- package/web/grain-art/skills/skills-023.png +0 -0
- package/web/grain-art/skills/skills-024.png +0 -0
- package/web/grain-art/skills/skills-025.png +0 -0
- package/web/grain-art/skills/skills-026.png +0 -0
- package/web/grain-art/skills/skills-027.png +0 -0
- package/web/grain-art/skills/skills-028.png +0 -0
- package/web/grain-art/skills/skills-029.png +0 -0
- package/web/grain-art/skills/skills-030.png +0 -0
- package/web/grain-art/skills/skills-031.png +0 -0
- package/web/grain-art/skills/skills-032.png +0 -0
- package/web/grain-art/workspaces/workspaces-001.png +0 -0
- package/web/grain-art/workspaces/workspaces-002.png +0 -0
- package/web/grain-art/workspaces/workspaces-003.png +0 -0
- package/web/grain-art/workspaces/workspaces-004.png +0 -0
- package/web/grain-art/workspaces/workspaces-005.png +0 -0
- package/web/grain-art/workspaces/workspaces-006.png +0 -0
- package/web/grain-art/workspaces/workspaces-007.png +0 -0
- package/web/grain-art/workspaces/workspaces-008.png +0 -0
- package/web/grain-art/workspaces/workspaces-009.png +0 -0
- package/web/grain-art/workspaces/workspaces-010.png +0 -0
- package/web/grain-art/workspaces/workspaces-011.png +0 -0
- package/web/grain-art/workspaces/workspaces-012.png +0 -0
- package/web/grain-art/workspaces/workspaces-013.png +0 -0
- package/web/grain-art/workspaces/workspaces-014.png +0 -0
- package/web/grain-art/workspaces/workspaces-015.png +0 -0
- package/web/grain-art/workspaces/workspaces-016.png +0 -0
- package/web/grain-art/workspaces/workspaces-017.png +0 -0
- package/web/grain-art/workspaces/workspaces-018.png +0 -0
- package/web/grain-art/workspaces/workspaces-019.png +0 -0
- package/web/grain-art/workspaces/workspaces-020.png +0 -0
- package/web/grain-art/workspaces/workspaces-021.png +0 -0
- package/web/grain-art/workspaces/workspaces-022.png +0 -0
- package/web/grain-art/workspaces/workspaces-023.png +0 -0
- package/web/grain-art/workspaces/workspaces-024.png +0 -0
- package/web/grain-art/workspaces/workspaces-025.png +0 -0
- package/web/grain-art/workspaces/workspaces-026.png +0 -0
- package/web/grain-art/workspaces/workspaces-027.png +0 -0
- package/web/grain-art/workspaces/workspaces-028.png +0 -0
- package/web/grain-art/workspaces/workspaces-029.png +0 -0
- package/web/grain-art/workspaces/workspaces-030.png +0 -0
- package/web/grain-art/workspaces/workspaces-031.png +0 -0
- package/web/grain-art/workspaces/workspaces-032.png +0 -0
- package/web/index.html +129 -0
- package/web/manifest.webmanifest +22 -0
- package/web/openwork-logo-square.svg +2 -0
- package/web/openwork-logo.svg +1 -0
- package/web/openwork-mark.svg +16 -0
- package/web/openwork-sidebar-mark.svg +17 -0
- package/web/overlay.html +29 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{j as E,c as Xt,r as A}from"./index-_gYIQM_z.js";import{T as zt,f as st,Q as j,L as Ft,B as P,P as rt,u as Zt,a as jt}from"./app-CyCqD289.js";const I=new Set(["input","option","optgroup","select","button","datalist","textarea"]),f=new Set(["p"]),ot=new Set(["thead","tbody"]),it=new Set(["dd","dt"]),at=new Set(["rt","rp"]),Bt=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",f],["h1",f],["h2",f],["h3",f],["h4",f],["h5",f],["h6",f],["select",I],["input",I],["output",I],["button",I],["datalist",I],["textarea",I],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",it],["dt",it],["address",f],["article",f],["aside",f],["blockquote",f],["details",f],["div",f],["dl",f],["fieldset",f],["figcaption",f],["figure",f],["footer",f],["form",f],["header",f],["hr",f],["main",f],["nav",f],["ol",f],["pre",f],["section",f],["table",f],["ul",f],["rt",at],["rp",at],["tbody",ot],["tfoot",ot]]),Vt=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),ct=new Set(["math","svg"]),lt=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Wt=/\s|\//;class Ht{constructor(t,n={}){var s,r,o,i,a;this.options=n,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.lowerCaseTagNames=(s=n.lowerCaseTags)!==null&&s!==void 0?s:!n.xmlMode,this.lowerCaseAttributeNames=(r=n.lowerCaseAttributeNames)!==null&&r!==void 0?r:!n.xmlMode,this.tokenizer=new((o=n.Tokenizer)!==null&&o!==void 0?o:zt)(this.options,this),(a=(i=this.cbs).onparserinit)===null||a===void 0||a.call(i,this)}ontext(t,n){var s,r;const o=this.getSlice(t,n);this.endIndex=n-1,(r=(s=this.cbs).ontext)===null||r===void 0||r.call(s,o),this.startIndex=n}ontextentity(t){var n,s;const r=this.tokenizer.getSectionStart();this.endIndex=r-1,(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,st(t)),this.startIndex=r}isVoidElement(t){return!this.options.xmlMode&&Vt.has(t)}onopentagname(t,n){this.endIndex=n;let s=this.getSlice(t,n);this.lowerCaseTagNames&&(s=s.toLowerCase()),this.emitOpenTag(s)}emitOpenTag(t){var n,s,r,o;this.openTagStart=this.startIndex,this.tagname=t;const i=!this.options.xmlMode&&Bt.get(t);if(i)for(;this.stack.length>0&&i.has(this.stack[this.stack.length-1]);){const a=this.stack.pop();(s=(n=this.cbs).onclosetag)===null||s===void 0||s.call(n,a,!0)}this.isVoidElement(t)||(this.stack.push(t),ct.has(t)?this.foreignContext.push(!0):lt.has(t)&&this.foreignContext.push(!1)),(o=(r=this.cbs).onopentagname)===null||o===void 0||o.call(r,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var n,s;this.startIndex=this.openTagStart,this.attribs&&((s=(n=this.cbs).onopentag)===null||s===void 0||s.call(n,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,n){var s,r,o,i,a,c;this.endIndex=n;let h=this.getSlice(t,n);if(this.lowerCaseTagNames&&(h=h.toLowerCase()),(ct.has(h)||lt.has(h))&&this.foreignContext.pop(),this.isVoidElement(h))!this.options.xmlMode&&h==="br"&&((r=(s=this.cbs).onopentagname)===null||r===void 0||r.call(s,"br"),(i=(o=this.cbs).onopentag)===null||i===void 0||i.call(o,"br",{},!0),(c=(a=this.cbs).onclosetag)===null||c===void 0||c.call(a,"br",!1));else{const u=this.stack.lastIndexOf(h);if(u!==-1)if(this.cbs.onclosetag){let l=this.stack.length-u;for(;l--;)this.cbs.onclosetag(this.stack.pop(),l!==0)}else this.stack.length=u;else!this.options.xmlMode&&h==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=n+1}onselfclosingtag(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var n,s;const r=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===r&&((s=(n=this.cbs).onclosetag)===null||s===void 0||s.call(n,r,!t),this.stack.pop())}onattribname(t,n){this.startIndex=t;const s=this.getSlice(t,n);this.attribname=this.lowerCaseAttributeNames?s.toLowerCase():s}onattribdata(t,n){this.attribvalue+=this.getSlice(t,n)}onattribentity(t){this.attribvalue+=st(t)}onattribend(t,n){var s,r;this.endIndex=n,(r=(s=this.cbs).onattribute)===null||r===void 0||r.call(s,this.attribname,this.attribvalue,t===j.Double?'"':t===j.Single?"'":t===j.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){const n=t.search(Wt);let s=n<0?t:t.substr(0,n);return this.lowerCaseTagNames&&(s=s.toLowerCase()),s}ondeclaration(t,n){this.endIndex=n;const s=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){const r=this.getInstructionName(s);this.cbs.onprocessinginstruction(`!${r}`,`!${s}`)}this.startIndex=n+1}onprocessinginstruction(t,n){this.endIndex=n;const s=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){const r=this.getInstructionName(s);this.cbs.onprocessinginstruction(`?${r}`,`?${s}`)}this.startIndex=n+1}oncomment(t,n,s){var r,o,i,a;this.endIndex=n,(o=(r=this.cbs).oncomment)===null||o===void 0||o.call(r,this.getSlice(t,n-s)),(a=(i=this.cbs).oncommentend)===null||a===void 0||a.call(i),this.startIndex=n+1}oncdata(t,n,s){var r,o,i,a,c,h,u,l,d,m;this.endIndex=n;const b=this.getSlice(t,n-s);this.options.xmlMode||this.options.recognizeCDATA?((o=(r=this.cbs).oncdatastart)===null||o===void 0||o.call(r),(a=(i=this.cbs).ontext)===null||a===void 0||a.call(i,b),(h=(c=this.cbs).oncdataend)===null||h===void 0||h.call(c)):((l=(u=this.cbs).oncomment)===null||l===void 0||l.call(u,`[CDATA[${b}]]`),(m=(d=this.cbs).oncommentend)===null||m===void 0||m.call(d)),this.startIndex=n+1}onend(){var t,n;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let s=this.stack.length;s>0;this.cbs.onclosetag(this.stack[--s],!0));}(n=(t=this.cbs).onend)===null||n===void 0||n.call(t)}reset(){var t,n,s,r;(n=(t=this.cbs).onreset)===null||n===void 0||n.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(r=(s=this.cbs).onparserinit)===null||r===void 0||r.call(s,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,n){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let s=this.buffers[0].slice(t-this.bufferOffset,n-this.bufferOffset);for(;n-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),s+=this.buffers[0].slice(0,n-this.bufferOffset);return s}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var n,s;if(this.ended){(s=(n=this.cbs).onerror)===null||s===void 0||s.call(n,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var n,s;if(this.ended){(s=(n=this.cbs).onerror)===null||s===void 0||s.call(n,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(t){this.write(t)}done(t){this.end(t)}}const Et=67324752,St=33639248,yt=101010256,Yt=1,Gt=8,Kt=64,Q=0,vt=8,Qt=12*1024*1024,X=128,kt=10*1024*1024,$=2*1024*1024,_t=100,Ct=new TextEncoder,qt=new TextDecoder("utf-8");function _(e){return Ct.encode(e)}function q(e){return qt.decode(e)}function It(e){return Ct.encode(e).byteLength}function T(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Tt(e){const t=e.reduce((r,o)=>r+o.byteLength,0),n=new Uint8Array(t);let s=0;for(const r of e)n.set(r,s),s+=r.byteLength;return n}async function $t(e,t,n){const s=e.getReader(),r=[];let o=0;try{for(;;){const{done:i,value:a}=await s.read();if(i)break;if(o+=a.byteLength,o>t)throw await s.cancel(),new Error(`ZIP entry ${n} inflated beyond its declared size.`);r.push(a)}}finally{s.releaseLock()}return Tt(r)}function Lt(e){const t=new Uint8Array(e.byteLength);return t.set(e),new ReadableStream({start(n){n.enqueue(t),n.close()}})}async function Jt(e,t,n){const s=Lt(e).pipeThrough(new DecompressionStream("deflate-raw"));return await $t(s,t,n)}async function te(e){const t=Lt(e).pipeThrough(new CompressionStream("deflate-raw"));return await $t(t,$+1024,"(deflate)")}function ee(e){const t=T(e),n=Math.max(0,e.byteLength-65535-22);for(let s=e.byteLength-22;s>=n;s-=1){if(s<0||t.getUint32(s,!0)!==yt)continue;const r=t.getUint16(s+20,!0);if(s+22+r===e.byteLength)return s}throw new Error("ZIP end-of-central-directory not found.")}function Rt(e,t){if((e&Yt)!==0)throw new Error(`ZIP entry ${t} is encrypted.`);if((e&Kt)!==0)throw new Error(`ZIP entry ${t} uses strong encryption.`)}function ht(e,t,n){return t===n?!0:(e&Gt)!==0&&t===0}function ne(e){if(e.byteLength>Qt)throw new Error("ZIP input exceeds compressed byte limit.");const t=T(e),n=ee(e),s=t.getUint16(n+4,!0),r=t.getUint16(n+6,!0),o=t.getUint16(n+8,!0),i=t.getUint16(n+10,!0),a=t.getUint32(n+12,!0),c=t.getUint32(n+16,!0),h=c+a;if(s!==0||r!==0||o!==i)throw new Error("Multi-disk ZIP archives are not supported.");if(i===65535||a===4294967295||c===4294967295)throw new Error("ZIP64 archives are not supported.");if(i>X)throw new Error(`ZIP entry count ${i} exceeds limit ${X}.`);if(c+a>e.byteLength)throw new Error("ZIP central directory is out of bounds.");if(h>n)throw new Error("ZIP central directory overlaps the end-of-central-directory record.");const u=[];let l=c,d=0;for(let m=0;m<i;m+=1){if(l+46>h||t.getUint32(l,!0)!==St)throw new Error("Invalid ZIP central directory entry.");const b=t.getUint16(l+8,!0),x=t.getUint16(l+10,!0),w=t.getUint32(l+20,!0),p=t.getUint32(l+24,!0),g=t.getUint16(l+28,!0),k=t.getUint16(l+30,!0),v=t.getUint16(l+32,!0),y=t.getUint32(l+42,!0);if(w===4294967295||p===4294967295||y===4294967295)throw new Error("ZIP64 archives are not supported.");if(l+46+g+k+v>h)throw new Error("ZIP central directory entry is out of bounds.");const S=q(e.subarray(l+46,l+46+g));if(Rt(b,S),x!==Q&&x!==vt)throw new Error(`ZIP entry ${S} uses unsupported compression method ${x}.`);if(p>$)throw new Error(`ZIP entry ${S} exceeds per-entry uncompressed limit.`);if(p>0&&w===0)throw new Error(`ZIP entry ${S} has an invalid compression ratio.`);if(w>0&&p/w>_t)throw new Error(`ZIP entry ${S} exceeds compression ratio limit.`);if(d+=p,d>kt)throw new Error("ZIP archive exceeds total uncompressed limit.");u.push({name:S,flags:b,method:x,compressedSize:w,uncompressedSize:p,localOffset:y}),l+=46+g+k+v}if(l!==h)throw new Error("ZIP central directory size does not match its entries.");return u}async function se(e,t){const n=T(e),s=t.localOffset;if(s+30>e.byteLength||n.getUint32(s,!0)!==Et)throw new Error(`Invalid local ZIP header for ${t.name}.`);const r=n.getUint16(s+6,!0),o=n.getUint16(s+8,!0),i=n.getUint32(s+18,!0),a=n.getUint32(s+22,!0),c=n.getUint16(s+26,!0),h=n.getUint16(s+28,!0);if(Rt(r,t.name),o!==t.method)throw new Error(`ZIP method mismatch for ${t.name}.`);if(!ht(r,i,t.compressedSize)||!ht(r,a,t.uncompressedSize))throw new Error(`ZIP size mismatch for ${t.name}.`);if(s+30+c+h>e.byteLength)throw new Error(`ZIP local header for ${t.name} is out of bounds.`);if(q(e.subarray(s+30,s+30+c))!==t.name)throw new Error(`ZIP local header name mismatch for ${t.name}.`);const l=s+30+c+h;if(l+t.compressedSize>e.byteLength)throw new Error(`ZIP data for ${t.name} is out of bounds.`);const d=e.subarray(l,l+t.compressedSize),m=t.method===Q?d.slice():await Jt(d,t.uncompressedSize,t.name);if(m.byteLength!==t.uncompressedSize)throw new Error(`ZIP uncompressed size mismatch for ${t.name}.`);return m}function re(e){const t=new Map;for(const n of e)t.set(n.name,n);return t}async function L(e,t,n){const s=t.get(n);if(!s)return null;const r=q(await se(e,s));return Mt(r),r}let O=null;function oe(e){if(!O){O=new Uint32Array(256);for(let n=0;n<256;n+=1){let s=n;for(let r=0;r<8;r+=1)s=s&1?3988292384^s>>>1:s>>>1;O[n]=s>>>0}}let t=4294967295;for(const n of e)t=O[(t^n)&255]^t>>>8;return(t^4294967295)>>>0}async function ie(e){if(e.length>X)throw new Error(`ZIP entry count ${e.length} exceeds limit ${X}.`);const t=[],n=[];let s=0,r=0;for(const c of e){if(c.data.byteLength>$)throw new Error(`ZIP entry ${c.name} exceeds per-entry uncompressed limit.`);if(r+=c.data.byteLength,r>kt)throw new Error("ZIP archive exceeds total uncompressed limit.");const h=await te(c.data),u=h.byteLength<c.data.byteLength&&c.data.byteLength/Math.max(1,h.byteLength)<=_t,l=u?h:c.data,d=u?vt:Q,m=_(c.name),b=oe(c.data),x=new Uint8Array(30),w=T(x);w.setUint32(0,Et,!0),w.setUint16(4,20,!0),w.setUint16(6,0,!0),w.setUint16(8,d,!0),w.setUint32(14,b,!0),w.setUint32(18,l.byteLength,!0),w.setUint32(22,c.data.byteLength,!0),w.setUint16(26,m.byteLength,!0),t.push(x,m,l);const p=new Uint8Array(46),g=T(p);g.setUint32(0,St,!0),g.setUint16(4,20,!0),g.setUint16(6,20,!0),g.setUint16(8,0,!0),g.setUint16(10,d,!0),g.setUint32(16,b,!0),g.setUint32(20,l.byteLength,!0),g.setUint32(24,c.data.byteLength,!0),g.setUint16(28,m.byteLength,!0),g.setUint32(42,s,!0),n.push(p,m),s+=x.byteLength+m.byteLength+l.byteLength}const o=n.reduce((c,h)=>c+h.byteLength,0),i=new Uint8Array(22),a=T(i);return a.setUint32(0,yt,!0),a.setUint16(8,e.length,!0),a.setUint16(10,e.length,!0),a.setUint32(12,o,!0),a.setUint32(16,s,!0),Tt([...t,...n,i])}function Mt(e){if(It(e)>$)throw new Error("Office XML exceeds the parser input limit.");const t=e.toLowerCase();if(t.includes("<!doctype")||t.includes("<!entity"))throw new Error("Office XML DTD and entity declarations are not supported.")}function ut(e){const t=e.lastIndexOf(":");return(t===-1?e:e.slice(t+1)).toLowerCase()}function z(e,t){Mt(e);let n="",s=0;const r=t||" ";return new Ht({onopentag(i){s>0?s+=1:ut(i)==="script"||ut(i)==="style"?(n+=r,s=1):n+=t},ontext(i){s===0&&(n+=i)},onclosetag(){s>0?(s-=1,s===0&&(n+=r)):n+=t}},{decodeEntities:!0,xmlMode:!0}).end(e),n}function ae(e){return z(`<openwork-value>${e}</openwork-value>`,"")}function Ut(e){return z(e," ").replace(/\s+/g," ").trim()}function J(e){return`(?:[A-Za-z_][\\w.-]*:)?${e}`}function tt(e){const t={},n=/([\w:.-]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;let s;for(;s=n.exec(e);){const r=s[1],o=s[2]??s[3]??"";t[r]=ae(o)}return t}function M(e,t){const n=J(t),s=new RegExp(`<${n}\\b([^>]*)>([\\s\\S]*?)<\\/${n}>`,"g"),r=[];let o;for(;o=s.exec(e);)r.push({attributes:tt(o[1]),inner:o[2]});return r}function C(e,t){const n=J(t),s=new RegExp(`<${n}\\b([^>]*)\\/?\\s*>`,"g"),r=[];let o;for(;o=s.exec(e);)r.push(tt(o[1]));return r}function ce(e,t){const n=M(e,t)[0];if(n)return z(n.inner,"").trim()}function B(e,t){const n=J(t),s=new RegExp(`<${n}\\b([^>]*?)(\\/>|>([\\s\\S]*?)<\\/${n}>)`,"g"),r=[];let o;for(;o=s.exec(e);)r.push({attributes:tt(o[1]),inner:o[3]??""});return r}function W(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,"")}function dt(...e){const t=[];for(const n of e.join("/").split("/"))!n||n==="."||(n===".."?t.pop():t.push(n));return t.join("/")}function le(e,t){const n=new Map;if(!e)return n;for(const s of C(e,"Relationship")){const r=s.Id,o=s.Target;!r||!o||s.TargetMode==="External"||/^[a-z][a-z0-9+.-]*:/i.test(o)||n.set(r,o.startsWith("/")?dt(o.slice(1)):dt(t,o))}return n}const he=64,ue=2e5,de=25e4,ft=32,mt=5e4,H=1048576,Y=16384,pt=31,gt=32767,wt=Date.UTC(1899,11,30),fe=Date.UTC(1904,0,1),V=864e5;function G(e){let t=e,n="";for(;t>0;){const s=(t-1)%26;n=String.fromCharCode(65+s)+n,t=Math.floor((t-1)/26)}return n}function me(e){let t=0;for(const n of e.toUpperCase()){const s=n.charCodeAt(0);if(s<65||s>90)return 0;t=t*26+(s-64)}return t}function K(e){const t=/^\$?([A-Za-z]{1,3})\$?(\d{1,7})$/.exec(e.trim());if(!t)return null;const n=me(t[1]),s=Number.parseInt(t[2],10);return n<1||n>Y||s<1||s>H?null:{row:s,column:n}}function pe(e){const t=e.trim(),[n,s=n]=t.split(":"),r=K(n),o=K(s);return!r||!o?null:{firstRow:Math.min(r.row,o.row),lastRow:Math.max(r.row,o.row),firstColumn:Math.min(r.column,o.column),lastColumn:Math.max(r.column,o.column)}}function ge(e,t){const n=le(t,"xl"),s=C(e,"sheet"),r=s.slice(0,he).map((o,i)=>{const a=o["r:id"]??o.id??"",c=a&&n.has(a)?n.get(a)??"":`xl/worksheets/sheet${i+1}.xml`;return{position:i+1,name:o.name??`Sheet${i+1}`,sheetId:o.sheetId??String(i+1),relationshipId:a,path:c,hidden:o.state==="hidden"||o.state==="veryHidden"}});return{sheets:r,omittedSheets:s.length-r.length}}function Nt(e){return M(e,"t").map(n=>z(n.inner,"")).join("").trim()||Ut(e)}function we(e){if(!e)return[];const t=[];for(const n of M(e,"si")){if(t.length>=ue)break;t.push(Nt(n.inner))}return t}function be(e){switch(e){case"0":return"General";case"1":return"0";case"2":return"0.00";case"3":return"#,##0";case"4":return"#,##0.00";case"9":return"0%";case"10":return"0.00%";case"11":return"0.00E+00";case"14":return"mm-dd-yy";case"15":return"d-mmm-yy";case"16":return"d-mmm";case"17":return"mmm-yy";case"18":return"h:mm AM/PM";case"19":return"h:mm:ss AM/PM";case"20":return"h:mm";case"21":return"h:mm:ss";case"22":return"m/d/yy h:mm";case"27":case"28":case"29":case"30":case"31":case"36":case"50":case"51":case"52":case"53":case"54":case"57":case"58":return"yyyy-mm-dd";case"32":case"33":case"34":case"35":case"55":case"56":return"h:mm:ss";case"45":return"mm:ss";case"46":return"[h]:mm:ss";case"47":return"mmss.0";case"49":return"@";default:return""}}function xe(e){if(!e)return[];const t=new Map;for(const s of C(e,"numFmt"))s.numFmtId&&s.formatCode&&t.set(s.numFmtId,s.formatCode);const n=M(e,"cellXfs")[0]?.inner??"";return C(n,"xf").map(s=>{const r=s.numFmtId??"0";return t.get(r)??be(r)})}function Ee(e){if(!e||e==="General"||e==="@")return!1;const t=e.replace(/"[^"]*"/g,"").replace(/\[[^\]]*\]/g,"").replace(/\\./g,"").replace(/[Ee][+-]/g,"");return/[ymdhs]/i.test(t)}function R(e,t=2){return String(e).padStart(t,"0")}function Se(e,t=!1){if(!Number.isFinite(e)||e<0||e>2958465)return null;const n=t?fe:e<60?wt+V:wt,s=Math.round(e*V),r=new Date(n+s);if(Number.isNaN(r.getTime()))return null;const o=`${R(r.getUTCHours())}:${R(r.getUTCMinutes())}:${R(r.getUTCSeconds())}`;if(e<1&&!t)return o;const i=`${r.getUTCFullYear()}-${R(r.getUTCMonth()+1)}-${R(r.getUTCDate())}`;return s%V===0?i:`${i} ${o}`}function ye(e){return e==="s"?"shared_string":e==="inlineStr"?"inline_string":e==="str"?"formula_string":e==="b"?"boolean":e==="e"?"error":e==="d"?"date":e||"number"}function ve(e,t,n,s,r,o){if(e==="inlineStr")return Nt(n)||void 0;if(e==="s"&&t!==void 0){const i=Number.parseInt(t,10);return Number.isInteger(i)?s[i]:void 0}return e==="b"&&t!==void 0?t==="1"?"TRUE":"FALSE":(e===""||e==="n")&&t!==void 0&&Ee(r)?Se(Number(t),o)??t:t}function ke(e,t,n,s,r){const o=C(e,"dimension")[0]?.ref??"",i=[];for(const d of C(e,"mergeCell"))d.ref&&i.push(d.ref);const a=M(e,"sheetData")[0]?.inner??e,c=[];let h=0,u=0,l=0;for(const d of B(a,"row")){const m=Number.parseInt(d.attributes.r??"",10),b=Number.isInteger(m)&&m>0?m:l+1;l=b;let x=0;for(const w of B(d.inner,"c")){const p=w.attributes,g=w.inner,k=p.r?K(p.r):null,v=k?.column??x+1,y=k?.row??b;x=v;const S=B(g,"f")[0],U=ce(g,"v"),F=p.t??"";if(S&&(u+=1),U===void 0&&!S&&F!=="inlineStr")continue;if(c.length>=r){h+=1;continue}const N=p.s,Z=N!==void 0?n[Number.parseInt(N,10)]:void 0,nt=ve(F,U,g,t,Z,s),Dt=S?Ut(S.inner):"";c.push({reference:`${G(v)}${y}`,row:y,column:v,type:ye(F),...N!==void 0?{styleIndex:N}:{},...Z?{numberFormat:Z}:{},...S?{formula:Dt}:{},...S?.attributes.t?{formulaType:S.attributes.t}:{},...S?.attributes.ref?{formulaRef:S.attributes.ref}:{},...U!==void 0?{rawValue:U}:{},...nt!==void 0?{displayedValue:nt}:{}})}}return{dimension:o,mergedRanges:i,cells:c,omittedCells:h,formulaCount:u}}function _e(e,t){const n=e.length===0&&t?pe(t):null;if(n)return n;if(e.length===0)return{firstRow:0,lastRow:0,firstColumn:0,lastColumn:0};let s=Number.POSITIVE_INFINITY,r=0,o=Number.POSITIVE_INFINITY,i=0;for(const a of e)s=Math.min(s,a.row),r=Math.max(r,a.row),o=Math.min(o,a.column),i=Math.max(i,a.column);return{firstRow:s,lastRow:r,firstColumn:o,lastColumn:i}}async function Ce(e){const t=re(ne(e)),n=await L(e,t,"xl/workbook.xml");if(!n)throw new Error("XLSX workbook.xml was not found.");const s=we(await L(e,t,"xl/sharedStrings.xml")),r=xe(await L(e,t,"xl/styles.xml")),{sheets:o,omittedSheets:i}=ge(n,await L(e,t,"xl/_rels/workbook.xml.rels"));if(o.length===0)throw new Error("XLSX workbook contained no sheets.");const a=C(n,"workbookPr").some(c=>c.date1904==="1"||c.date1904==="true");return{sheets:o,omittedSheets:i,sharedStringCount:s.length,styleCount:r.length,date1904:a,async readSheet(c,h={}){const u=c.path.startsWith("xl/worksheets/")&&c.path.endsWith(".xml")?c.path:"",l=u?await L(e,t,u):null;if(!l)throw new Error(`Worksheet XML for "${c.name}" was not found or was outside xl/worksheets.`);const d=ke(l,s,r,a,h.cellLimit??de);return{info:c,...d,..._e(d.cells,d.dimension)}}}}const Ie=25e4;function Te(e,t={}){if(e.cells.length===0)return[[""]];const n=t.maxCells??Ie;if(e.lastRow*e.lastColumn>n)throw new Error(`This sheet spans ${e.lastRow} rows by ${e.lastColumn} columns, which is too large to show as an editable grid.`);const s=Array.from({length:e.lastRow},()=>Array.from({length:e.lastColumn},()=>""));for(const r of e.cells)s[r.row-1][r.column-1]=t.formulas&&r.formula?`=${r.formula}`:r.displayedValue??r.rawValue??(r.formula?`=${r.formula}`:"");return s}const $e=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/,bt=8192,Le=/\b(DDE|WEBSERVICE|FILTERXML|RTD|CALL|REGISTER(?:\.ID)?|EXEC|SQL\.REQUEST|IMPORT(?:DATA|XML|HTML|FEED|RANGE)|IMAGE)\s*\(/i,Re=/\[[^\]]*\][^!'"(),;+\-*/^&=<>\[\]{}]*!|'[^']*\[[^\]]*\][^']*'!/u,Me=/'[^']*(?::\/\/|\\\\)[^']*'!/;function At(e){return typeof e=="object"&&e!==null&&typeof e.formula=="string"}function Ue(e){const t=e.trim().replace(/^=/,"");if(!t)return"is empty";if(t.length>bt)return`is longer than ${bt} characters`;if(t.includes("|"))return"contains a DDE-style external command reference";const n=Le.exec(t);return n?`uses ${n[1].toUpperCase()}, which reaches outside the workbook when it recalculates`:Re.test(t)?"references another workbook":Me.test(t)?"references a remote or network path":null}function Ne(e,t){const n=Ue(e.formula);if(n)throw new Error(`Formula in ${t} ${n}; only calculations inside the workbook are written. Write the value instead.`);return e.formula.trim().replace(/^=/,"")}function Ae(e){if(e==="")return null;if(e==="TRUE")return!0;if(e==="FALSE")return!1;if($e.test(e)){const t=Number(e);if(Number.isFinite(t))return t}return e}function Pe(e,t,n){let r=(e??"").replace(/[\u0000-\u001f\u007f[\]:*?/\\]/g," ").replace(/\s+/g," ").replace(/^'+|'+$/g,"").trim().slice(0,pt).trim()||`Sheet${t}`,o=2;for(;n.has(r.toLowerCase())||r.toLowerCase()==="history";)r=`${r.slice(0,pt-String(o).length-1)}-${o}`,o+=1;return n.add(r.toLowerCase()),r}function Oe(e,t,n){const s=n>0?` s="${n}"`:"";if(t===null||t==="")return"";if(typeof t=="number")return Number.isFinite(t)?`<c r="${e}"${s}><v>${t}</v></c>`:`<c r="${e}" t="e"${s}><v>#NUM!</v></c>`;if(typeof t=="boolean")return`<c r="${e}" t="b"${s}><v>${t?1:0}</v></c>`;if(At(t))return`<c r="${e}"${s}><f>${W(Ne(t,e))}</f></c>`;if(t.length>gt)throw new Error(`Cell ${e} holds ${t.length} characters of text; Excel allows ${gt}. Shorten it or split it across cells.`);const r=/^\s|\s$|\n/.test(t)?' xml:space="preserve"':"";return`<c r="${e}" t="inlineStr"${s}><is><t${r}>${W(t)}</t></is></c>`}function De(e){return e===null?0:At(e)?12:String(e).split(`
|
|
2
|
+
`).reduce((t,n)=>Math.max(t,n.length),0)}function Xe(e){const t=e.rows,n=t.reduce((u,l)=>Math.max(u,l.length),0);if(t.length>H)throw new Error(`Sheet "${e.name??""}" has ${t.length} rows; Excel allows ${H}.`);if(n>Y)throw new Error(`Sheet "${e.name??""}" has ${n} columns; Excel allows ${Y}.`);const s=e.header??!0,r=Array.from({length:n},()=>0),o=[];t.forEach((u,l)=>{const d=[];u.forEach((m,b)=>{r[b]=Math.max(r[b],De(m));const x=Oe(`${G(b+1)}${l+1}`,m,s&&l===0?1:0);x&&d.push(x)}),d.length&&o.push(`<row r="${l+1}">${d.join("")}</row>`)});const i=t.length&&n?`A1:${G(n)}${t.length}`:"A1",a=n?`<cols>${r.map((u,l)=>`<col min="${l+1}" max="${l+1}" width="${Math.min(60,Math.max(8,u+2))}" customWidth="1"/>`).join("")}</cols>`:"",c=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
3
|
+
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><dimension ref="${i}"/><sheetViews><sheetView workbookViewId="0"${s&&t.length>1?'><pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/></sheetView>':"/>"}</sheetViews><sheetFormatPr defaultRowHeight="15"/>${a}<sheetData>${o.join("")}</sheetData><pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/></worksheet>`,h=It(c);if(h>$)throw new Error(`Sheet ${JSON.stringify(e.name??"")} would be ${h} bytes of worksheet XML; the limit is ${$} bytes (roughly 30,000 text cells). Split the rows across sheets or files, shorten cell text, or write a CSV instead.`);return{xml:c,rows:t.length,columns:n}}const ze=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
4
|
+
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="2"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>`;async function Fe(e){if(e.length===0)throw new Error("A workbook needs at least one sheet.");if(e.length>ft)throw new Error(`A workbook may contain at most ${ft} sheets.`);const t=e.reduce((i,a)=>i+a.rows.reduce((c,h)=>c+h.length,0),0);if(t>mt)throw new Error(`Workbook has ${t} cells; spreadsheet_write accepts at most ${mt}. Split the data across files or write a CSV.`);const n=new Set,s=e.map((i,a)=>({...i,name:Pe(i.name,a+1,n)})),r=s.map(i=>Xe(i)),o=[{name:"[Content_Types].xml",data:_(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
5
|
+
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>${s.map((i,a)=>`<Override PartName="/xl/worksheets/sheet${a+1}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`).join("")}</Types>`)},{name:"_rels/.rels",data:_(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
6
|
+
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>`)},{name:"xl/workbook.xml",data:_(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
7
|
+
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><bookViews><workbookView/></bookViews><sheets>${s.map((i,a)=>`<sheet name="${W(i.name)}" sheetId="${a+1}" r:id="rId${a+1}"/>`).join("")}</sheets><calcPr fullCalcOnLoad="1"/></workbook>`)},{name:"xl/_rels/workbook.xml.rels",data:_(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
8
|
+
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${s.map((i,a)=>`<Relationship Id="rId${a+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${a+1}.xml"/>`).join("")}<Relationship Id="rId${s.length+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`)},{name:"xl/styles.xml",data:_(ze)},...r.map((i,a)=>({name:`xl/worksheets/sheet${a+1}.xml`,data:_(i.xml)}))];return{bytes:await ie(o),sheets:s.map((i,a)=>({name:i.name,rows:r[a].rows,columns:r[a].columns}))}}function et(e){const t=e.toLowerCase().split(/[?#]/)[0]??e.toLowerCase(),n=t.lastIndexOf(".");return n>=0?t.slice(n+1):""}function Pt(e){return et(e)==="tsv"?" ":","}function Ze(e,t){const n=[];let s=[],r="",o=!1;for(let i=0;i<e.length;i+=1){const a=e[i],c=e[i+1];if(o){a==='"'&&c==='"'?(r+='"',i+=1):a==='"'?o=!1:r+=a;continue}if(a==='"'){o=!0;continue}if(a===t){s.push(r),r="";continue}if(a===`
|
|
9
|
+
`){s.push(r),n.push(s),s=[],r="";continue}a!=="\r"&&(r+=a)}return(r||s.length)&&(s.push(r),n.push(s)),n.length?n:[[""]]}function je(e,t){return e.map(n=>n.map(s=>{const r=String(s??"");return!r.includes(t)&&!/["\r\n]/.test(r)?r:`"${r.replace(/"/g,'""')}"`}).join(t)).join(`
|
|
10
|
+
`)+`
|
|
11
|
+
`}function Ot(e){return e==="xls"?"Legacy .xls workbooks can't be edited here. Save the file as .xlsx and open it again.":e==="ods"?"OpenDocument spreadsheets can't be edited here. Export the file as .xlsx and open it again.":null}function Be(e){return new Uint8Array(e.kind==="binary"?e.data:new ArrayBuffer(0))}function Ve(e){const t=new Uint8Array(e.byteLength);return t.set(e),t.buffer}async function We(e){const t=et(e.name);if(t==="csv"||t==="tsv")return Ze(e.content.kind==="text"?e.content.data:"",Pt(e.name));const n=Ot(t);if(n)throw new Error(n);const s=await Ce(Be(e.content)),r=await s.readSheet(s.sheets[0]);return Te(r)}async function He(e,t){const n=et(e);if(n==="csv"||n==="tsv")return{kind:"text",data:je(t,Pt(e))};const s=Ot(n);if(s)throw new Error(s);const{bytes:r}=await Fe([{name:"Sheet1",header:!1,rows:t.map(o=>o.map(i=>Ae(String(i??""))))}]);return{kind:"binary",data:Ve(r)}}function D(e){return e.map(t=>[...t])}function xt(e){const t=Math.max(1,...e.map(n=>n.length));return e.map(n=>Array.from({length:t},(s,r)=>n[r]??""))}function Ye({name:e,content:t,onSave:n}){const{data:s,error:r,isLoading:o}=Zt({queryKey:["artifact-spreadsheet",e,t],queryFn:async()=>xt(await We({name:e,content:t})),refetchOnReconnect:!1,refetchOnWindowFocus:!1,staleTime:1/0}),[i,a]=A.useState([[""]]),[c,h]=A.useState([[""]]),u=A.useMemo(()=>JSON.stringify(i)!==JSON.stringify(c),[c,i]);A.useEffect(()=>{s&&(a(s),h(D(s)))},[s]);const{mutate:l,isPending:d}=jt({mutationFn:async()=>{const p=await He(e,i);await n(p)},onSuccess:()=>{h(D(i))}});return{rows:i,error:r,isLoading:o,updateCell:(p,g,k)=>{a(v=>{const y=D(v);return y[p]=[...y[p]??[]],y[p][g]=k,xt(y)})},addRow:()=>a(p=>[...p,Array.from({length:Math.max(1,p[0]?.length??1)},()=>"")]),addColumn:()=>a(p=>p.map(g=>[...g,""])),discard:()=>a(D(c)),isDirty:u,save:l,isSaving:d}}function Qe(e){const{rows:t,error:n,isLoading:s,updateCell:r,addRow:o,addColumn:i,discard:a,isDirty:c,save:h,isSaving:u}=Ye(e),l=e.saving||u;return s?E.jsx("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:E.jsx(Ft,{className:"size-4 animate-spin"})}):n?E.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:n instanceof Error?n.message:"Failed to parse spreadsheet"}):E.jsxs("div",{className:Xt("flex h-full min-h-0 flex-col",e.className),children:[E.jsxs("div",{className:"flex shrink-0 items-center gap-2 px-3 py-2 border-b border-border",children:[E.jsxs(P,{variant:"ghost",size:"xs",onClick:o,children:[E.jsx(rt,{className:"size-3"})," Row"]}),E.jsxs(P,{variant:"ghost",size:"xs",onClick:i,children:[E.jsx(rt,{className:"size-3"})," Column"]}),E.jsx("div",{className:"min-w-0 flex-1"}),E.jsx(P,{variant:"ghost",size:"xs",onClick:a,disabled:!c||l,children:"Discard"}),E.jsx(P,{variant:"default",size:"xs",onClick:()=>h(),disabled:!c||l,children:l?"Saving":"Save"})]}),E.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:E.jsx("table",{className:"w-full border-collapse text-xs",children:E.jsx("tbody",{children:t.map((d,m)=>E.jsx("tr",{children:d.map((b,x)=>E.jsx("td",{className:"border-b not-first:border-l border-border p-0 align-top",children:E.jsx("input",{className:"h-8 w-full min-w-[120px] bg-transparent px-2 text-foreground outline-none focus:bg-muted/50",value:b,onChange:w=>r(m,x,w.target.value)})},x))},m))})})})]})}export{Qe as ArtifactSpreadsheetEditor};
|