@vellumai/web 0.0.1
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 +226 -0
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/QueryClientProvider-3h1PDgiK.js +1 -0
- package/dist/assets/abap-S720j6HC.js +1 -0
- package/dist/assets/account-page-mLTPbjvL.js +1 -0
- package/dist/assets/account-shell-Dw8jAeLG.js +1 -0
- package/dist/assets/actionscript-3-BJvigUfR.js +1 -0
- package/dist/assets/ada-DQ2OWYpf.js +1 -0
- package/dist/assets/add-credits-modal-Bl0Bh2Go.js +1 -0
- package/dist/assets/advanced-page-FCPOBhRy.js +1 -0
- package/dist/assets/ai-page-CQnqBX-M.js +1 -0
- package/dist/assets/andromeeda-_EhmqsVp.js +1 -0
- package/dist/assets/angular-html-DhOd7AN5.js +1 -0
- package/dist/assets/angular-ts-xGO-_6Bd.js +1 -0
- package/dist/assets/apache-BsyG71ag.js +1 -0
- package/dist/assets/apex-Ccw0eeCe.js +1 -0
- package/dist/assets/api-Du21iE99.js +1 -0
- package/dist/assets/api-errors-BK1-O3Nx.js +1 -0
- package/dist/assets/apl-BVUryqD5.js +1 -0
- package/dist/assets/app-html-cache-BuUjtDuD.js +1 -0
- package/dist/assets/applescript-ha7qmUXh.js +1 -0
- package/dist/assets/ara-BgWiE2ox.js +1 -0
- package/dist/assets/archive-CVmkE0UZ.js +1 -0
- package/dist/assets/archive-page-gPcbutQd.js +1 -0
- package/dist/assets/arrow-up-tR4McxO9.js +1 -0
- package/dist/assets/asciidoc-Dn70l7h4.js +1 -0
- package/dist/assets/asm-DR7r0jUw.js +1 -0
- package/dist/assets/assistant-context-BFnqXVaa.js +1 -0
- package/dist/assets/assistant-identity-store-ouefMZDR.js +1 -0
- package/dist/assets/assistant-status-panel-83EaWImU.js +1 -0
- package/dist/assets/astro-D96BhhwV.js +1 -0
- package/dist/assets/aurora-x-B9nEusFo.js +1 -0
- package/dist/assets/auth-store-Dy6ebqwf.js +1 -0
- package/dist/assets/avatar-api-IlDWh3Gv.js +1 -0
- package/dist/assets/avatar-bundled-components-zv0dj2l3.js +1 -0
- package/dist/assets/avatar-svg-compositor-CwF7LSJ9.js +1 -0
- package/dist/assets/awk-BJdTQ5Hx.js +1 -0
- package/dist/assets/ayu-dark-DqQbu2-w.js +1 -0
- package/dist/assets/ayu-light--8qST3j8.js +1 -0
- package/dist/assets/ayu-mirage-DrJzVJ_F.js +1 -0
- package/dist/assets/ballerina-BYRinlHo.js +1 -0
- package/dist/assets/bat-CUMUh9XV.js +1 -0
- package/dist/assets/beancount-CsLlzN8M.js +1 -0
- package/dist/assets/bell-D6safcBY.js +1 -0
- package/dist/assets/berry-CdPki7q8.js +1 -0
- package/dist/assets/bibtex-B8xm9XLj.js +1 -0
- package/dist/assets/bicep-CnLpnmf8.js +1 -0
- package/dist/assets/billing-page-DiItxvfm.js +34 -0
- package/dist/assets/bird2-Cqt8sSVG.js +1 -0
- package/dist/assets/blade-CYOVT3-Y.js +1 -0
- package/dist/assets/book-open-BprZriYY.js +1 -0
- package/dist/assets/bsl-p34U-2Lx.js +1 -0
- package/dist/assets/bug-CqWa4aqP.js +1 -0
- package/dist/assets/button-aOWst_o4.js +1 -0
- package/dist/assets/c-VnVOqj0C.js +1 -0
- package/dist/assets/c3-DpiHWuuX.js +1 -0
- package/dist/assets/cadence-DgcVki5R.js +1 -0
- package/dist/assets/cairo-Cd8z051b.js +1 -0
- package/dist/assets/calendar-BIR8yc1r.js +1 -0
- package/dist/assets/card-DnfZJiuP.js +1 -0
- package/dist/assets/catppuccin-frappe-C_yfKP-L.js +1 -0
- package/dist/assets/catppuccin-latte-CtoBMVdv.js +1 -0
- package/dist/assets/catppuccin-macchiato-xFP5yO7O.js +1 -0
- package/dist/assets/catppuccin-mocha-60sqJvv0.js +1 -0
- package/dist/assets/check-R2i_nIpE.js +1 -0
- package/dist/assets/checkbox-DKXy3MWj.js +1 -0
- package/dist/assets/chevron-up-DPJUr6aL.js +1 -0
- package/dist/assets/chunk-5KNZJZUH-DdB2N3P3.js +4 -0
- package/dist/assets/chunk-jRWAZmH_.js +1 -0
- package/dist/assets/clarity-Rka6Ibys.js +1 -0
- package/dist/assets/client-BRb8najC.js +1 -0
- package/dist/assets/client-ChXJae8j.js +1 -0
- package/dist/assets/client.gen-ywbejrz1.js +6 -0
- package/dist/assets/clojure-CQ5DpGM1.js +1 -0
- package/dist/assets/clsx-D1MxZxYX.js +1 -0
- package/dist/assets/cmake-DsAm9QpO.js +1 -0
- package/dist/assets/cn-CjywcAuq.js +1 -0
- package/dist/assets/cobol-CJjZVzvm.js +1 -0
- package/dist/assets/codeowners-BDBDyRC_.js +1 -0
- package/dist/assets/codeql-CZfFhTX0.js +1 -0
- package/dist/assets/coffee-CfZkBTrB.js +1 -0
- package/dist/assets/command-palette-BlS50uTB.js +1 -0
- package/dist/assets/common-lisp-Dz6SVlfw.js +1 -0
- package/dist/assets/community-page-CqzBRDpi.js +1 -0
- package/dist/assets/connect-page-DxmIoKzq.js +1 -0
- package/dist/assets/contacts-page-route-D6Krd6C5.js +1 -0
- package/dist/assets/conversation-id-wire-field-1lxFUhFO.js +39 -0
- package/dist/assets/conversations-DsLnxwFV.js +1 -0
- package/dist/assets/coq-D2tyWqdS.js +1 -0
- package/dist/assets/cpp-DbB_FtMQ.js +1 -0
- package/dist/assets/create-selectors-DoMh4y1G.js +1 -0
- package/dist/assets/createLucideIcon-BsE6w02i.js +1 -0
- package/dist/assets/createLucideIcon-Btk32rD9.js +1 -0
- package/dist/assets/crystal-Hmeas4cw.js +1 -0
- package/dist/assets/csharp-B6wLYKms.js +1 -0
- package/dist/assets/css-Cs4MPfhN.js +1 -0
- package/dist/assets/csv-D3H5ikhE.js +1 -0
- package/dist/assets/cue-Lq7mpKOq.js +1 -0
- package/dist/assets/cypher-CODl5eKV.js +1 -0
- package/dist/assets/d-DZC76yx1.js +1 -0
- package/dist/assets/danger-zone-redirect-page-Do365LOh.js +1 -0
- package/dist/assets/dark-plus-CBASO-cg.js +1 -0
- package/dist/assets/dart-CmrdZv7c.js +1 -0
- package/dist/assets/dax-R1bAmQ_D.js +1 -0
- package/dist/assets/debug-page-CsRe4giP.js +3 -0
- package/dist/assets/debug-page-TdnZ7DQy.css +1 -0
- package/dist/assets/definitions-DNF_njzj.js +1 -0
- package/dist/assets/deploy-dialogs-M04VhTt7.js +1 -0
- package/dist/assets/desktop-5nM7o7HH.js +1 -0
- package/dist/assets/detail-card-CzJ5gLcw.js +1 -0
- package/dist/assets/developer-page-CP5daBen.js +1 -0
- package/dist/assets/devices-page-CDcmwZ7U.js +1 -0
- package/dist/assets/diff-CcKimul9.js +1 -0
- package/dist/assets/dist-B2HM0OLN2.js +1 -0
- package/dist/assets/dist-Bsw_3G-z.js +1 -0
- package/dist/assets/dist-CuKiMkvX.js +1 -0
- package/dist/assets/dist-Cz1Xi5ZX.js +1 -0
- package/dist/assets/dist-D52VCGJ3.js +45 -0
- package/dist/assets/dist-mYLcZ3ps.js +153 -0
- package/dist/assets/docker-TG47LLyN.js +1 -0
- package/dist/assets/document-viewer-page-DLI8SRag.js +1 -0
- package/dist/assets/dollar-sign-Cm87Rklw.js +1 -0
- package/dist/assets/domain-field-CXJQDRmA.js +1 -0
- package/dist/assets/dotenv-CiUEiZKH.js +1 -0
- package/dist/assets/dracula-CT0oGdNT.js +1 -0
- package/dist/assets/dracula-soft-BXFmyviC.js +1 -0
- package/dist/assets/dream-maker-CAM2D_UX.js +1 -0
- package/dist/assets/dropdown-GgPqNVMy.js +1 -0
- package/dist/assets/edge-BgPXu-UE.js +1 -0
- package/dist/assets/elixir-DM6-ccDJ.js +1 -0
- package/dist/assets/ellipsis-vertical-DxSLIqf8.js +1 -0
- package/dist/assets/elm-9gnJ98w0.js +1 -0
- package/dist/assets/emacs-lisp-CzK3ExcO.js +1 -0
- package/dist/assets/emails-page-1R_kLl2Z.js +1 -0
- package/dist/assets/emoji-catalog-data-CmIAmDSt.js +1 -0
- package/dist/assets/erb-DtlP8jgO.js +1 -0
- package/dist/assets/erlang-DsE57DRS.js +1 -0
- package/dist/assets/error-report-C0plV8M2.js +1 -0
- package/dist/assets/esm-BPIIkf0Q.js +2 -0
- package/dist/assets/esm-Cvsy6Km4.js +2 -0
- package/dist/assets/esm-DUi7Rn40.js +2 -0
- package/dist/assets/esm-FGLqm2MN.js +2 -0
- package/dist/assets/esm-XjY7or7q.js +2 -0
- package/dist/assets/event-bus-store-Bi6GfBog.js +1 -0
- package/dist/assets/everforest-dark-CQlB3mCO.js +1 -0
- package/dist/assets/everforest-light-BA4ay6iM.js +1 -0
- package/dist/assets/exports-rSCybWxk.js +4 -0
- package/dist/assets/external-link-BFBjpAS9.js +1 -0
- package/dist/assets/feature-flag-catalog-CSWHhMDD.js +1 -0
- package/dist/assets/fennel-eG2_iaTI.js +1 -0
- package/dist/assets/file-markdown-CEnRkeWg.js +1 -0
- package/dist/assets/fish-zI3emtm-.js +1 -0
- package/dist/assets/fluent-BZo6aiNu.js +1 -0
- package/dist/assets/format-date-CQpXfTVd.js +1 -0
- package/dist/assets/format-hyvuWewV.js +1 -0
- package/dist/assets/fortran-fixed-form-D5hdDjfh.js +1 -0
- package/dist/assets/fortran-free-form-57r0sG8y.js +1 -0
- package/dist/assets/fsharp-Bfi3XTPy.js +1 -0
- package/dist/assets/gdresource-BSaMHim7.js +1 -0
- package/dist/assets/gdscript-1YmxJL3Q.js +1 -0
- package/dist/assets/gdshader-BfYwvVWN.js +1 -0
- package/dist/assets/general-page-BuBX2YwQ.js +1 -0
- package/dist/assets/genie-CWE9MH2Z.js +1 -0
- package/dist/assets/gherkin-DylFqTNM.js +1 -0
- package/dist/assets/git-commit-Cz5QKywc.js +1 -0
- package/dist/assets/git-rebase-BMQ0Bk9S.js +1 -0
- package/dist/assets/github-dark-default-BK9X8oxX.js +1 -0
- package/dist/assets/github-dark-dimmed-CurnRG13.js +1 -0
- package/dist/assets/github-dark-high-contrast-DxF4Jnoi.js +1 -0
- package/dist/assets/github-dark-xIytAWi0.js +1 -0
- package/dist/assets/github-light-DAfSDMwO.js +1 -0
- package/dist/assets/github-light-default-CCtzMk6P.js +1 -0
- package/dist/assets/github-light-high-contrast-KEzODQXH.js +1 -0
- package/dist/assets/gleam-DdIPhrNi.js +1 -0
- package/dist/assets/glimmer-js-BN-NGpp_.js +1 -0
- package/dist/assets/glimmer-ts-C9VChylV.js +1 -0
- package/dist/assets/globe-7UmDuKqs.js +1 -0
- package/dist/assets/glsl-CpFEXvu-.js +1 -0
- package/dist/assets/gn-pxGNTpNA.js +1 -0
- package/dist/assets/gnuplot-CGxnsTQL.js +1 -0
- package/dist/assets/go-DkMdryeU.js +1 -0
- package/dist/assets/graphql-V09t51SF.js +1 -0
- package/dist/assets/groovy-Dd5mdG4N.js +1 -0
- package/dist/assets/gruvbox-dark-hard-B20DGFjy.js +1 -0
- package/dist/assets/gruvbox-dark-medium-DQ-yywkT.js +1 -0
- package/dist/assets/gruvbox-dark-soft-CKAoLyhO.js +1 -0
- package/dist/assets/gruvbox-light-hard-DTReY2fY.js +1 -0
- package/dist/assets/gruvbox-light-medium-3mzIc6xO.js +1 -0
- package/dist/assets/gruvbox-light-soft-D41InbYG.js +1 -0
- package/dist/assets/hack-oitWBBvW.js +1 -0
- package/dist/assets/haml-CV2rgaHM.js +1 -0
- package/dist/assets/handlebars-BgAPxny7.js +1 -0
- package/dist/assets/haskell-I8C-JODX.js +1 -0
- package/dist/assets/hatching-screen-BYbFCv5M.js +1 -0
- package/dist/assets/haxe-CvAJ9gVe.js +1 -0
- package/dist/assets/hcl-COD-gUFt.js +1 -0
- package/dist/assets/hjson-BB-7M6Aw.js +1 -0
- package/dist/assets/hlsl-evA1LyhB.js +1 -0
- package/dist/assets/home-page-route-CW4m4-Ja.js +1 -0
- package/dist/assets/horizon-DiEWIIog.js +1 -0
- package/dist/assets/horizon-bright-ClSn0MBy.js +1 -0
- package/dist/assets/hosting-screen-Cl6VkyWS.js +1 -0
- package/dist/assets/houston-CL8GXgL9.js +1 -0
- package/dist/assets/html-B_nL9zO9.js +1 -0
- package/dist/assets/html-derivative-BWIcZuDp.js +1 -0
- package/dist/assets/http-CrTxb7et.js +1 -0
- package/dist/assets/hurl-B-EymzsD.js +1 -0
- package/dist/assets/hxml-CXbAEQJQ.js +1 -0
- package/dist/assets/hy-CLelu6yL.js +1 -0
- package/dist/assets/identity-page-route-BBY720B5.js +1 -0
- package/dist/assets/imba-DQ72tITW.js +1 -0
- package/dist/assets/index-C8e7KvxW.css +2 -0
- package/dist/assets/index-aLxsGtfC.js +119 -0
- package/dist/assets/ini-BXuaV21y.js +1 -0
- package/dist/assets/input-Wbm6eptw.js +1 -0
- package/dist/assets/inspect-page-sZtDl3Y1.js +2 -0
- package/dist/assets/integrations-page-B8SCBk4Y.js +1 -0
- package/dist/assets/intelligence-layout-3b4qm2Kl.js +1 -0
- package/dist/assets/java-BTrCroH7.js +1 -0
- package/dist/assets/javascript-CvaqMKLK.js +1 -0
- package/dist/assets/jinja-Dl-w9ndv.js +1 -0
- package/dist/assets/jison-DqiJxacS.js +1 -0
- package/dist/assets/json-BPes1XR5.js +1 -0
- package/dist/assets/json5-Bra3_FRS.js +1 -0
- package/dist/assets/jsonc-BfapMXPh.js +1 -0
- package/dist/assets/jsonl-BqVSdGk9.js +1 -0
- package/dist/assets/jsonnet-mH4WdtrV.js +1 -0
- package/dist/assets/jssm-BxRMgAQF.js +1 -0
- package/dist/assets/jsx-Geb0rb06.js +1 -0
- package/dist/assets/jsx-runtime-2-RJdKf7.js +1 -0
- package/dist/assets/julia-CRSYmK9Q.js +1 -0
- package/dist/assets/just-DwPU65eq.js +1 -0
- package/dist/assets/kanagawa-dragon-Tgm3mfbN.js +1 -0
- package/dist/assets/kanagawa-lotus-dJMGjVhA.js +1 -0
- package/dist/assets/kanagawa-wave-Ci4QO7t9.js +1 -0
- package/dist/assets/kdl-MiMB75si.js +1 -0
- package/dist/assets/kotlin-gUlkTc0q.js +1 -0
- package/dist/assets/kusto-CN_8kOel.js +1 -0
- package/dist/assets/laserwave-BOEefu-D.js +1 -0
- package/dist/assets/latex-kFHU0AiV.js +1 -0
- package/dist/assets/lean-BO7mZZoh.js +1 -0
- package/dist/assets/less-BBnf20HC.js +1 -0
- package/dist/assets/lib-CreNldEg.js +29 -0
- package/dist/assets/lib-DXeTRAgG.js +1 -0
- package/dist/assets/library-detail-page-V05KsJng.js +1 -0
- package/dist/assets/library-page-CP4sGQ5J.js +1 -0
- package/dist/assets/light-plus-CL09gsxH.js +1 -0
- package/dist/assets/link-2-nd9oRqHR.js +1 -0
- package/dist/assets/liquid-BqJmG_-p.js +1 -0
- package/dist/assets/llm-dimension-B9qfQX3Y.js +1 -0
- package/dist/assets/llvm-CeY51NZh.js +1 -0
- package/dist/assets/loader-circle-DaEOga2S.js +1 -0
- package/dist/assets/local-mode-BO8mMNsq.js +1 -0
- package/dist/assets/local-settings-CS-DDnd1.js +1 -0
- package/dist/assets/log-BdCwBbX4.js +1 -0
- package/dist/assets/login-flow-C9O7X98K.js +1 -0
- package/dist/assets/login-page-BPJpblPt.js +1 -0
- package/dist/assets/logo-BoxZga1S.js +1 -0
- package/dist/assets/logout-page-BOesBxfe.js +1 -0
- package/dist/assets/logs-layout-B43V0N93.js +1 -0
- package/dist/assets/lua-Bm8pAWjJ.js +1 -0
- package/dist/assets/luau-BDLcP78o.js +1 -0
- package/dist/assets/make-BACowfgt.js +1 -0
- package/dist/assets/markdown-Dhb8xNDt.js +1 -0
- package/dist/assets/marko-CtYsAbA9.js +1 -0
- package/dist/assets/material-theme-Ez0bd6Np.js +1 -0
- package/dist/assets/material-theme-darker-BrTZKIk1.js +1 -0
- package/dist/assets/material-theme-lighter-GBL_nuBb.js +1 -0
- package/dist/assets/material-theme-ocean-W4K6pv_o.js +1 -0
- package/dist/assets/material-theme-palenight-CE5pyPkh.js +1 -0
- package/dist/assets/matlab-oLNWLDxt.js +1 -0
- package/dist/assets/mdc-CIWadW2_.js +1 -0
- package/dist/assets/mdx-CCShXdHK.js +1 -0
- package/dist/assets/memory-router-playground-page-pa7bYqYJ.js +3 -0
- package/dist/assets/mermaid-iMeSjHhd.js +1 -0
- package/dist/assets/middleware-B7I04D_Q.js +1 -0
- package/dist/assets/min-dark-2BIYkZDD.js +1 -0
- package/dist/assets/min-light-D7jRpC7L.js +1 -0
- package/dist/assets/mipsasm-D32ZHktK.js +1 -0
- package/dist/assets/misc-C48PHiZA.js +1 -0
- package/dist/assets/mobile-sidebar-drawer-BPjlJDFT.js +1 -0
- package/dist/assets/modal-1PrCjlTg.js +1 -0
- package/dist/assets/mojo-DTv7azE-.js +1 -0
- package/dist/assets/monokai-C69QrEpq.js +1 -0
- package/dist/assets/moonbit-Drvpmm67.js +1 -0
- package/dist/assets/move-BoJQbLBf.js +1 -0
- package/dist/assets/narrat-CGvHu8pV.js +1 -0
- package/dist/assets/native-biometric-BPPNP_Sl.js +6 -0
- package/dist/assets/native-deep-link-ic-1ub-k.js +1 -0
- package/dist/assets/native-file-DAT4q2dZ.js +2 -0
- package/dist/assets/nextflow-CfF50ZWD.js +1 -0
- package/dist/assets/nextflow-groovy-TrjQfV-x.js +1 -0
- package/dist/assets/nginx-DolsBkZw.js +1 -0
- package/dist/assets/night-owl-Cm3tKSTe.js +1 -0
- package/dist/assets/night-owl-light-DL1zFuhS.js +1 -0
- package/dist/assets/nim-C2UmDq2M.js +1 -0
- package/dist/assets/nix-gE49qUYl.js +1 -0
- package/dist/assets/nord-hcMUEYjI.js +1 -0
- package/dist/assets/notice-whIbTA0N.js +1 -0
- package/dist/assets/notifications-page-BVWqstpZ.js +1 -0
- package/dist/assets/nushell-YGZpsKrm.js +1 -0
- package/dist/assets/oauth-complete-page-BKhMJwKk.js +105 -0
- package/dist/assets/oauth-popup-BD5GDUMi.js +1 -0
- package/dist/assets/oauth-popup-complete-page-BEJRVVVY.js +105 -0
- package/dist/assets/objective-c-C8_U-Oq6.js +1 -0
- package/dist/assets/objective-cpp-CTnjRelq.js +1 -0
- package/dist/assets/ocaml-CIH-y4RO.js +1 -0
- package/dist/assets/octagon-x-JZskQa-B.js +1 -0
- package/dist/assets/odin-xNGfOpBm.js +1 -0
- package/dist/assets/onboarding-layout-9Hg63IFb.js +1 -0
- package/dist/assets/one-dark-pro-vcbuKlOy.js +1 -0
- package/dist/assets/one-light-BVcy1mYE.js +1 -0
- package/dist/assets/openscad-ryRBrPrD.js +1 -0
- package/dist/assets/page-shell-CFZbOuiy.js +1 -0
- package/dist/assets/panel-item-ChHVXS-W.js +1 -0
- package/dist/assets/pascal-Dtt9frDg.js +1 -0
- package/dist/assets/password-reset-page-C-dZStkw.js +1 -0
- package/dist/assets/pdf-D2iKihRr.js +56 -0
- package/dist/assets/pencil-obxZd0L0.js +1 -0
- package/dist/assets/perl-bEEhNNIc.js +1 -0
- package/dist/assets/php-lzz2TUwQ.js +1 -0
- package/dist/assets/pkl-BPOm0CDI.js +1 -0
- package/dist/assets/plastic-BvPiAeG8.js +1 -0
- package/dist/assets/plsql-C0n-sewY.js +1 -0
- package/dist/assets/plugins-page-CH_Vocd5.js +1 -0
- package/dist/assets/po-DNpQeTYU.js +1 -0
- package/dist/assets/poimandres-CkMSnt1R.js +1 -0
- package/dist/assets/polar-DhQvttpS.js +1 -0
- package/dist/assets/portal-container-CYxfRy4f.js +1 -0
- package/dist/assets/postcss-CDzao07y.js +1 -0
- package/dist/assets/powerquery-0yv17wtC.js +1 -0
- package/dist/assets/powershell-CoAU4s9Q.js +1 -0
- package/dist/assets/pre-chat-flow-DLHzM5QY.js +1 -0
- package/dist/assets/prechat-D2oqOkVm.js +1 -0
- package/dist/assets/preload-helper-S68_7Byc.js +1 -0
- package/dist/assets/prisma-BT02a--B.js +1 -0
- package/dist/assets/privacy-page-C-Vj_p8l.js +1 -0
- package/dist/assets/privacy-screen-DWFpv0Fo.js +1 -0
- package/dist/assets/progress-bar-CgM2b0gB.js +1 -0
- package/dist/assets/prolog-H1D05Gz_.js +1 -0
- package/dist/assets/proto-CxS8PWa-.js +1 -0
- package/dist/assets/provider-callback-page-VFddaky4.js +1 -0
- package/dist/assets/provider-signup-page-CgDYbapA.js +1 -0
- package/dist/assets/public-asset-BYzGMAVy.js +1 -0
- package/dist/assets/pug-Du3Nit4O.js +1 -0
- package/dist/assets/puppet-B3d9-q2A.js +1 -0
- package/dist/assets/purescript-D_BNdk7z.js +1 -0
- package/dist/assets/python-Bex1-Oq0.js +1 -0
- package/dist/assets/qml-4L72CoUN.js +1 -0
- package/dist/assets/qmldir-DeiHaMqx.js +1 -0
- package/dist/assets/qss-DLk0oe6x.js +1 -0
- package/dist/assets/query-tags-D8ub83Qe.js +1 -0
- package/dist/assets/queryOptions-C9SyzZF9.js +1 -0
- package/dist/assets/r-DrmzhlcM.js +1 -0
- package/dist/assets/racket-4J6CwdmV.js +1 -0
- package/dist/assets/raku-DM8GLjLA.js +1 -0
- package/dist/assets/razor-nRRX0DFG.js +1 -0
- package/dist/assets/react-BD5vCCEH.js +1 -0
- package/dist/assets/react-dom-S1h5pQqq.js +1 -0
- package/dist/assets/react-query.gen-CaeZaVZK.js +1 -0
- package/dist/assets/react-query.gen-DA3VkUYA.js +1 -0
- package/dist/assets/red-C7bJmhtt.js +1 -0
- package/dist/assets/reg-DtQSbcdw.js +1 -0
- package/dist/assets/regexp-D1yQk9KY.js +1 -0
- package/dist/assets/rel-B5cTLqnC.js +1 -0
- package/dist/assets/resize-errors-DGTY2nAB.js +1 -0
- package/dist/assets/riscv-Bs7uVNV2.js +1 -0
- package/dist/assets/ron-DnVQvg3N.js +1 -0
- package/dist/assets/rose-pine-ClM-MJKX.js +1 -0
- package/dist/assets/rose-pine-dawn-ByNDqq_L.js +1 -0
- package/dist/assets/rose-pine-moon-CTzvG4V8.js +1 -0
- package/dist/assets/rosmsg-Dyz4B4pk.js +1 -0
- package/dist/assets/routes-CHnF8N9D.js +1 -0
- package/dist/assets/rst--ZORQ5yS.js +1 -0
- package/dist/assets/ruby-BfMO6qcI.js +1 -0
- package/dist/assets/rust-DO_lfDWX.js +1 -0
- package/dist/assets/sas-DZ8XHRjc.js +1 -0
- package/dist/assets/sass-D0v6FpTm.js +1 -0
- package/dist/assets/save-Df8bLDyG.js +1 -0
- package/dist/assets/scala-Cv_C__Vn.js +1 -0
- package/dist/assets/schedules-page-CYguL66k.js +1 -0
- package/dist/assets/scheme-Tf_7H8Hg.js +1 -0
- package/dist/assets/scss-hLIrK7lC.js +1 -0
- package/dist/assets/sdbl-D7AqUQ1Z.js +1 -0
- package/dist/assets/sdk.gen-LsY3RZ9d.js +6 -0
- package/dist/assets/sdk.gen-ONnYjEkg.js +1 -0
- package/dist/assets/semver-D9bo-f7O.js +1 -0
- package/dist/assets/settings-layout-CTEOskoj.js +1 -0
- package/dist/assets/shaderlab-D9aDW2b6.js +1 -0
- package/dist/assets/share-feedback-modal-B2uHY8-X.js +1 -0
- package/dist/assets/shellscript-CkL9lXSm.js +1 -0
- package/dist/assets/shellsession-BUDRJq28.js +1 -0
- package/dist/assets/sidebar-tree-BEaTbIwA.js +1 -0
- package/dist/assets/signals-B8JnlKDT.js +1 -0
- package/dist/assets/signup-page-DEuLzFY7.js +1 -0
- package/dist/assets/skill-detail-DgRyktTW.js +1 -0
- package/dist/assets/skills-page-BYdkBLR0.js +1 -0
- package/dist/assets/slack-dark-BZYmSreQ.js +1 -0
- package/dist/assets/slack-ochin-141qUvWP.js +1 -0
- package/dist/assets/smalltalk-BpKhbXk9.js +1 -0
- package/dist/assets/snazzy-light-C6W3FDJs.js +1 -0
- package/dist/assets/solarized-dark-CvRYuMr5.js +1 -0
- package/dist/assets/solarized-light-BrZYeWGp.js +1 -0
- package/dist/assets/solidity-BEwj5bU5.js +1 -0
- package/dist/assets/sounds-page-Duno_f9p.js +1 -0
- package/dist/assets/soy-dsk6RE9u.js +1 -0
- package/dist/assets/sparql-C95gzauI.js +1 -0
- package/dist/assets/splunk-X43VxyaD.js +1 -0
- package/dist/assets/sql-BbM3W9qz.js +1 -0
- package/dist/assets/src-D18r15rs.css +1 -0
- package/dist/assets/src-DzD6V_-s.js +292 -0
- package/dist/assets/ssh-config-xEesUMnx.js +1 -0
- package/dist/assets/stat-square-Di_bhDMh.js +1 -0
- package/dist/assets/stata-5DLAJEsU.js +1 -0
- package/dist/assets/step-indicator-dots-C5bemV-h.js +1 -0
- package/dist/assets/stylus-kaERDi0y.js +1 -0
- package/dist/assets/subagent-detail-panel-DIWBSLWn.js +4 -0
- package/dist/assets/surrealql-Bd5MMIOc.js +1 -0
- package/dist/assets/svelte-Db0PLX4z.js +1 -0
- package/dist/assets/swift-BauIFypW.js +1 -0
- package/dist/assets/synthwave-84-C8sViQ2U.js +1 -0
- package/dist/assets/system-events-page-DC6mlB3O.js +1 -0
- package/dist/assets/system-events-redirect-page-S94e1yM8.js +1 -0
- package/dist/assets/system-verilog-CpFKRfen.js +1 -0
- package/dist/assets/systemd-qI6s8zvr.js +1 -0
- package/dist/assets/tag-D_G_KF4_.js +1 -0
- package/dist/assets/talonscript-NlxFbnqo.js +1 -0
- package/dist/assets/target-uRVZvIcc.js +1 -0
- package/dist/assets/tasl-zK97s-oI.js +1 -0
- package/dist/assets/tcl-CyGMFep3.js +1 -0
- package/dist/assets/templ-DqszTP4R.js +1 -0
- package/dist/assets/terraform-ru__bYLC.js +1 -0
- package/dist/assets/tex-BKxy02eW.js +1 -0
- package/dist/assets/tiptap-document-editor-DqrxIFNH.js +274 -0
- package/dist/assets/toast-B74YN17b.js +1 -0
- package/dist/assets/toggle-Brqq7_4W.js +1 -0
- package/dist/assets/tokyo-night-DkrZxYbM.js +1 -0
- package/dist/assets/toml-CqdhxcbT.js +1 -0
- package/dist/assets/tool-detail-panel-CtJ0Mc2d.js +1 -0
- package/dist/assets/trace-page-Cw-wj7A7.js +1 -0
- package/dist/assets/ts-tags-CdR5yq4h.js +1 -0
- package/dist/assets/tsv-DzGUqBRN.js +1 -0
- package/dist/assets/tsx-BnfMflsQ.js +1 -0
- package/dist/assets/turtle-qlP_hCPz.js +1 -0
- package/dist/assets/twig-uOUM9nP_.js +1 -0
- package/dist/assets/typescript-DzaF40lK.js +1 -0
- package/dist/assets/typespec-DxkwZz32.js +1 -0
- package/dist/assets/typography-DEzNhGy_.js +1 -0
- package/dist/assets/typst-CjRZvpar.js +1 -0
- package/dist/assets/upgrade-cancel-page-DvdPrIVz.js +1 -0
- package/dist/assets/upgrade-success-page-Bawb68MQ.js +1 -0
- package/dist/assets/usage-page-BnW56hOn.js +1 -0
- package/dist/assets/use-current-platform-assistant-B8PKBExd.js +1 -0
- package/dist/assets/use-is-mobile-Dkb-QHwX.js +1 -0
- package/dist/assets/use-oauth-complete-deep-link-listener-CdJy7YJb.js +1 -0
- package/dist/assets/use-reduced-motion-C8MjY0gt.js +1 -0
- package/dist/assets/useMutation-DO5gkGJX.js +1 -0
- package/dist/assets/useQuery-Cihv2Mys.js +1 -0
- package/dist/assets/v-BHw8aKkn.js +1 -0
- package/dist/assets/vala-62mcSMXh.js +1 -0
- package/dist/assets/vb-R9JRY5dv.js +1 -0
- package/dist/assets/verilog-CBb5pO04.js +1 -0
- package/dist/assets/vesper-3VOUMDB2.js +1 -0
- package/dist/assets/vhdl-C_FT61W-.js +1 -0
- package/dist/assets/viml-DEQKYU1P.js +1 -0
- package/dist/assets/vitesse-black-Rgn8kizg.js +1 -0
- package/dist/assets/vitesse-dark-CfPYcErz.js +1 -0
- package/dist/assets/vitesse-light-DHXkidwh.js +1 -0
- package/dist/assets/voice-page-B4bYnhST.js +1 -0
- package/dist/assets/vue-BlLLuGzo.js +1 -0
- package/dist/assets/vue-html-qXCpw_5J.js +1 -0
- package/dist/assets/vue-vine-p-PcMUu-.js +1 -0
- package/dist/assets/vyper-rhxQa2DT.js +1 -0
- package/dist/assets/wand-sparkles-jBh4Oi5W.js +1 -0
- package/dist/assets/wasm-Wg1MAZEP.js +1 -0
- package/dist/assets/wasm-mG28qlcp.js +1 -0
- package/dist/assets/weather-forecast-display-BGHYvMUU.js +1 -0
- package/dist/assets/web-BUTlZuwF.js +1 -0
- package/dist/assets/web-BtTWxP77.js +1 -0
- package/dist/assets/web-DMfbmsYR.js +1 -0
- package/dist/assets/web-DV3iiXuP.js +1 -0
- package/dist/assets/web-DwEQfgUn.js +1 -0
- package/dist/assets/web-am9pHjIz.js +1 -0
- package/dist/assets/web-oo3gTRUT.js +1 -0
- package/dist/assets/welcome-screen-Csb7OEuR.js +1 -0
- package/dist/assets/wenyan-BZqJVxWr.js +1 -0
- package/dist/assets/wgsl-BwR2WZrW.js +1 -0
- package/dist/assets/wikitext-DJWsiwoA.js +1 -0
- package/dist/assets/wit-DVlt00VB.js +1 -0
- package/dist/assets/with-selector-CLdxmz2Q.js +1 -0
- package/dist/assets/wolfram-QTkYOFmX.js +1 -0
- package/dist/assets/workspace-page-Wx3-2mgb.js +1 -0
- package/dist/assets/x-CUFf_mCR.js +1 -0
- package/dist/assets/x-DMasRVxp.js +1 -0
- package/dist/assets/xml-ZpZBIidV.js +1 -0
- package/dist/assets/xsl-DLmLvndi.js +1 -0
- package/dist/assets/xterm-DQdPOO_X.js +7 -0
- package/dist/assets/xterm-addon-fit-hTsMfDk1.js +1 -0
- package/dist/assets/yaml-GNU-2TIP.js +1 -0
- package/dist/assets/zenscript-DIZc3H0b.js +1 -0
- package/dist/assets/zig-Br5kHs8v.js +1 -0
- package/dist/favicon.svg +28 -0
- package/dist/images/integrations/apple-notes.svg +1 -0
- package/dist/images/integrations/excel.svg +1 -0
- package/dist/images/integrations/figma.svg +8 -0
- package/dist/images/integrations/github-dark.svg +1 -0
- package/dist/images/integrations/github.svg +1 -0
- package/dist/images/integrations/gmail.svg +7 -0
- package/dist/images/integrations/google-calendar.svg +11 -0
- package/dist/images/integrations/google-drive.svg +8 -0
- package/dist/images/integrations/jira.svg +4 -0
- package/dist/images/integrations/linear-light-logo.svg +1 -0
- package/dist/images/integrations/notion.svg +4 -0
- package/dist/images/integrations/outlook.png +0 -0
- package/dist/images/integrations/slack.svg +22 -0
- package/dist/images/prior-assistants/chatgpt.svg +3 -0
- package/dist/images/prior-assistants/claude.svg +3 -0
- package/dist/images/prior-assistants/copilot.svg +3 -0
- package/dist/images/prior-assistants/gemini.svg +10 -0
- package/dist/images/prior-assistants/hermes.png +0 -0
- package/dist/images/prior-assistants/manus.svg +6 -0
- package/dist/images/prior-assistants/openclaw.png +0 -0
- package/dist/index.html +119 -0
- package/dist/login-background-characters.svg +41 -0
- package/dist/vellum-logo-white.svg +10 -0
- package/dist/vellum-logo.svg +8 -0
- package/package.json +10 -0
package/README.md
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# apps/web
|
|
2
|
+
|
|
3
|
+
Vite + [React Router v7](https://reactrouter.com/) SPA for the
|
|
4
|
+
Vellum assistant web app (chat, settings, library, docs).
|
|
5
|
+
|
|
6
|
+
## Stack
|
|
7
|
+
|
|
8
|
+
- [Vite](https://vite.dev/) for dev server and build.
|
|
9
|
+
- [React 19](https://react.dev/) +
|
|
10
|
+
[React Router v7](https://reactrouter.com/start/modes) in
|
|
11
|
+
**library / data-router mode** (`createBrowserRouter` +
|
|
12
|
+
`<RouterProvider>`).
|
|
13
|
+
- [Zustand](https://zustand.docs.pmnd.rs/) for shared client state
|
|
14
|
+
(messages, streaming, interactions, conversations). See
|
|
15
|
+
[`docs/STATE_MANAGEMENT.md`](./docs/STATE_MANAGEMENT.md) for store patterns.
|
|
16
|
+
- [TanStack React Query](https://tanstack.com/query/latest) for server
|
|
17
|
+
state (API calls, caching, mutations).
|
|
18
|
+
- [HeyAPI](https://heyapi.dev/) for OpenAPI client generation with
|
|
19
|
+
React Query plugin.
|
|
20
|
+
- TypeScript with `NodeNext` module resolution — relative imports use
|
|
21
|
+
`.js` extensions even for `.tsx` sources.
|
|
22
|
+
- Bun for dependency management; self-contained `bun.lock` per
|
|
23
|
+
[`apps/AGENTS.md`](../AGENTS.md).
|
|
24
|
+
|
|
25
|
+
## Local development
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd apps/web
|
|
29
|
+
bun install
|
|
30
|
+
bun run openapi-ts # generate API client (required before typecheck/dev)
|
|
31
|
+
bun run dev # Vite dev server on localhost:3000
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Connecting to a backend
|
|
35
|
+
|
|
36
|
+
The Vite dev server includes a built-in
|
|
37
|
+
[reverse proxy](https://vite.dev/config/server-options#server-proxy)
|
|
38
|
+
that forwards API paths (`/v1/*`, `/_allauth/*`, `/accounts/*`) to the
|
|
39
|
+
Django backend. This keeps all requests same-origin so session cookies
|
|
40
|
+
work automatically — no CORS configuration or HTTPS setup needed.
|
|
41
|
+
|
|
42
|
+
By default the proxy targets `http://localhost:8000`. To change it,
|
|
43
|
+
set `API_PROXY_TARGET` in a `.env` file (see
|
|
44
|
+
[`.env.example`](./.env.example)):
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# .env (not committed)
|
|
48
|
+
API_PROXY_TARGET=http://localhost:8000
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Browse to **http://localhost:3000** and log in normally.
|
|
52
|
+
|
|
53
|
+
> **Note:** Some API endpoints (avatar, feed, assistant state) return
|
|
54
|
+
> 404 unless the assistant daemon is running. This is expected in
|
|
55
|
+
> frontend-only mode — the core UI and auth flow work without the
|
|
56
|
+
> daemon.
|
|
57
|
+
|
|
58
|
+
### How the proxy works
|
|
59
|
+
|
|
60
|
+
The client makes relative API requests (e.g. `fetch("/v1/feed")`).
|
|
61
|
+
In development, Vite's proxy intercepts these and forwards them to
|
|
62
|
+
the backend. In production, an infrastructure reverse proxy (nginx,
|
|
63
|
+
cloud LB, etc.) does the same routing. The client code is identical
|
|
64
|
+
in both environments — no environment-specific base URLs.
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Development: Browser ─► Vite :3000 ─(proxy)─► Django :8000
|
|
68
|
+
Production: Browser ─► Reverse proxy ─► Django
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Reference: [Vite server.proxy docs](https://vite.dev/config/server-options#server-proxy)
|
|
72
|
+
|
|
73
|
+
### Other commands
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
bun run build # Production build to dist/
|
|
77
|
+
bun run preview # Serve the production build locally
|
|
78
|
+
bun run typecheck # bunx tsc --noEmit
|
|
79
|
+
bun run lint # eslint
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Storybook
|
|
83
|
+
|
|
84
|
+
[Storybook](https://storybook.js.org/) provides isolated component
|
|
85
|
+
development for `apps/web` components — the ones tied to the app
|
|
86
|
+
(routing, stores, layout) that don't belong in
|
|
87
|
+
`@vellum/design-library`. Design-system primitives live in their own
|
|
88
|
+
Storybook (`packages/design-library`, port 6006).
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
cd apps/web
|
|
92
|
+
bun run storybook # dev server → http://localhost:6007
|
|
93
|
+
bun run build-storybook # static build → storybook-static/
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Stories are colocated next to their components (`*.stories.tsx`).
|
|
97
|
+
Autodocs generates prop tables from TypeScript types automatically.
|
|
98
|
+
|
|
99
|
+
Use the **Theme** toolbar to switch between Light, Dark, and Velvet —
|
|
100
|
+
the wiring matches the design library Storybook so components render
|
|
101
|
+
with the same `data-theme` tokens they get in the running app. A
|
|
102
|
+
`MemoryRouter` decorator wraps every story so components using
|
|
103
|
+
`react-router` work without setup.
|
|
104
|
+
|
|
105
|
+
The Storybook also runs automatically as part of `vel up` (alongside
|
|
106
|
+
the design library Storybook on `:6006`) — see the
|
|
107
|
+
[`vel` README](https://github.com/vellum-ai/vellum-assistant-platform/blob/main/vel/README.md)
|
|
108
|
+
for the multi-service workflow.
|
|
109
|
+
|
|
110
|
+
## Testing
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
bun test # run all tests (single process, fast)
|
|
114
|
+
bun test src/path/to/file.test.ts # run one file
|
|
115
|
+
bun run test:ci # run each file in its own process (CI)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Tests use [Bun's built-in test runner](https://bun.sh/docs/test) with
|
|
119
|
+
[happy-dom](https://github.com/nicedoc/happy-dom) providing browser
|
|
120
|
+
globals (`window`, `document`, `localStorage`, `fetch`, etc.) so
|
|
121
|
+
component and hook tests run without a real browser.
|
|
122
|
+
|
|
123
|
+
### Why `test:ci`?
|
|
124
|
+
|
|
125
|
+
Bun's
|
|
126
|
+
[`mock.module()`](https://bun.sh/docs/test/mocking#mock-module)
|
|
127
|
+
mutates a process-global module registry — mocks set in one test file
|
|
128
|
+
leak into every subsequent file in the same process. `bun run test:ci`
|
|
129
|
+
runs each file in its own subprocess for full isolation. Use it when
|
|
130
|
+
the standard `bun test` shows cross-file contamination, or in CI where
|
|
131
|
+
deterministic results are required.
|
|
132
|
+
|
|
133
|
+
## Architecture
|
|
134
|
+
|
|
135
|
+
See [`docs/CONVENTIONS.md`](./docs/CONVENTIONS.md) for code organization
|
|
136
|
+
(domain-based architecture), component conventions, and framework strategy.
|
|
137
|
+
See [`docs/STATE_MANAGEMENT.md`](./docs/STATE_MANAGEMENT.md) for state
|
|
138
|
+
patterns (Zustand + TanStack Query).
|
|
139
|
+
|
|
140
|
+
See [`docs/STYLE_GUIDE.md`](./docs/STYLE_GUIDE.md) for naming, imports,
|
|
141
|
+
TypeScript rules, and formatting.
|
|
142
|
+
|
|
143
|
+
**Feature boundaries are enforced by lint.** Each folder under
|
|
144
|
+
`src/domains/` is meant to be a self-contained feature — its own data,
|
|
145
|
+
components, hooks, and tests. When one feature reaches into another's
|
|
146
|
+
internals, that creates a hidden coupling: changing the source can
|
|
147
|
+
break the consumer, even though they're supposed to be independent.
|
|
148
|
+
The custom ESLint rule [`local/no-cross-domain-imports`](./eslint-rules/no-cross-domain-imports.mjs)
|
|
149
|
+
fails CI on any new `@/domains/<y>/...` import from inside
|
|
150
|
+
`src/domains/<x>/...` when `x !== y`. Existing legacy imports are
|
|
151
|
+
listed in [`.cross-domain-allowlist.json`](./.cross-domain-allowlist.json)
|
|
152
|
+
while we lift the shared pieces up to the top-level shared directories
|
|
153
|
+
(`hooks/`, `stores/`, `utils/`, `types/`, `components/`). That file
|
|
154
|
+
shrinks toward zero over time — fix violations rather than adding
|
|
155
|
+
entries to it. See [docs/CONVENTIONS.md](./docs/CONVENTIONS.md#how-to-decide-where-the-domain-split-is)
|
|
156
|
+
for the full reasoning and the lift-vs-compose decision tree.
|
|
157
|
+
|
|
158
|
+
## Directory structure
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
src/
|
|
162
|
+
App.tsx # root layout component
|
|
163
|
+
main.tsx # entry point (createRoot, RouterProvider)
|
|
164
|
+
routes.tsx # route tree (createBrowserRouter)
|
|
165
|
+
assistant/ # core domain — the assistant itself
|
|
166
|
+
stores/ # app-level Zustand stores (cross-domain)
|
|
167
|
+
domains/ # feature modules
|
|
168
|
+
messages/ # message lifecycle
|
|
169
|
+
conversations/ # conversation CRUD, grouping, selection
|
|
170
|
+
streaming/ # SSE transport, event parsing
|
|
171
|
+
interactions/ # user-facing prompts
|
|
172
|
+
hooks/ # cross-domain shared hooks
|
|
173
|
+
utils/ # cross-domain shared utilities
|
|
174
|
+
types/ # cross-domain shared types
|
|
175
|
+
lib/ # configured third-party wrappers
|
|
176
|
+
runtime/ # framework adapters, platform bridges
|
|
177
|
+
components/ # cross-domain shared UI
|
|
178
|
+
pages/ # route-level page components
|
|
179
|
+
generated/ # auto-generated code (HeyAPI) — gitignored
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Path alias
|
|
183
|
+
|
|
184
|
+
Use `@/` to import from `src/`:
|
|
185
|
+
|
|
186
|
+
```ts
|
|
187
|
+
import { useMessageStore } from "@/domains/messages/message-store.js";
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Configured in both `vite.config.ts` (`resolve.alias`) and
|
|
191
|
+
`tsconfig.json` (`paths`) for editor support.
|
|
192
|
+
|
|
193
|
+
## Why library mode?
|
|
194
|
+
|
|
195
|
+
React Router v7 ships two
|
|
196
|
+
[modes](https://reactrouter.com/start/modes): _library / data-router_
|
|
197
|
+
mode (pure-client SPA built around `createBrowserRouter`) and
|
|
198
|
+
_framework_ mode (file-based routes, generated types, per-route code
|
|
199
|
+
splitting).
|
|
200
|
+
|
|
201
|
+
Library mode is the established React SPA pattern. Fewer conventions
|
|
202
|
+
to learn, fewer build-time plugins, no generated types directory — the
|
|
203
|
+
more recognizable shape for contributors. Framework mode is a
|
|
204
|
+
defensible alternative when the app grows enough that per-route code
|
|
205
|
+
splitting becomes worth its conventions; the React Router API used in
|
|
206
|
+
day-to-day code (`<Link>`, `<Outlet>`, `useParams`, `useNavigate`) is
|
|
207
|
+
the same in both modes, so switching later is a restructure rather
|
|
208
|
+
than a rewrite.
|
|
209
|
+
|
|
210
|
+
## Runtime/auth adapter seam
|
|
211
|
+
|
|
212
|
+
[`src/runtime/auth-adapter.ts`](src/runtime/auth-adapter.ts) defines a
|
|
213
|
+
typed `RuntimeAuthAdapter` interface (`ensureSession` +
|
|
214
|
+
`getAuthHeader`) so the shell does not hard-code hosted Vellum login.
|
|
215
|
+
Hosted, local, self-hosted, and Electron runtimes plug in via the same
|
|
216
|
+
interface from their respective hosts.
|
|
217
|
+
|
|
218
|
+
## SSR/build-safe rendering
|
|
219
|
+
|
|
220
|
+
Even though this is an SPA, route and layout components must not
|
|
221
|
+
access `window` / `localStorage` / `document` during synchronous
|
|
222
|
+
render. Client-only reads belong in `useEffect` or in a runtime
|
|
223
|
+
adapter implementation. This keeps the door open for future static
|
|
224
|
+
prerendering or hybrid runtimes. See Vite's
|
|
225
|
+
[SSR guidance](https://vite.dev/guide/ssr.html) for the underlying
|
|
226
|
+
reasoning.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BD5vCCEH.js";import{t as n}from"./jsx-runtime-2-RJdKf7.js";var r=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},i={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},a=new class{#e=i;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function o(e){setTimeout(e,0)}var s=typeof window>`u`||`Deno`in globalThis;function c(){}function l(e,t){return typeof e==`function`?e(t):e}function u(e){return typeof e==`number`&&e>=0&&e!==1/0}function d(e,t){return Math.max(e+(t||0)-Date.now(),0)}function f(e,t){return typeof e==`function`?e(t):e}function p(e,t){return typeof e==`function`?e(t):e}function m(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==g(o,t.options))return!1}else if(!v(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function h(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(_(t.options.mutationKey)!==_(a))return!1}else if(!v(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function g(e,t){return(t?.queryKeyHashFn||_)(e)}function _(e){return JSON.stringify(e,(e,t)=>C(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function v(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>v(e[n],t[n])):!1}var y=Object.prototype.hasOwnProperty;function b(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=S(e)&&S(t);if(!r&&!(C(e)&&C(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:y.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=b(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function x(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function S(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function C(e){if(!w(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!w(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function w(e){return Object.prototype.toString.call(e)===`[object Object]`}function T(e){return new Promise(t=>{a.setTimeout(t,e)})}function E(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:b(e,t)}function D(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function O(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var k=Symbol();function A(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===k?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function j(e,t){return typeof e==`function`?e(...t):!!e}function M(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var N=new class extends r{#e;#t;#n;constructor(){super(),this.#n=e=>{if(!s&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}};function P(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var F=o;function I(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=F,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var L=I(),R=new class extends r{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(!s&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function z(e){return Math.min(1e3*2**e,3e4)}function B(e){return(e??`online`)===`online`?R.isOnline():!0}var V=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function H(e){let t=!1,n=0,r,i=P(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new V(t);p(n),e.onCancel?.(n)}},c=()=>{t=!0},l=()=>{t=!1},u=()=>N.isFocused()&&(e.networkMode===`always`||R.isOnline())&&e.canRun(),d=()=>B(e.networkMode)&&e.canRun(),f=e=>{a()||(r?.(),i.resolve(e))},p=e=>{a()||(r?.(),i.reject(e))},m=()=>new Promise(t=>{r=e=>{(a()||u())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),h=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(f).catch(r=>{if(a())return;let i=e.retry??(s?0:3),o=e.retryDelay??z,c=typeof o==`function`?o(n,r):o,l=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!l){p(r);return}n++,e.onFail?.(n,r),T(c).then(()=>u()?void 0:m()).then(()=>{t?p(r):h()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:c,continueRetry:l,canStart:d,start:()=>(d()?h():m().then(h),i)}}var U=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),u(this.gcTime)&&(this.#e=a.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(s?1/0:300*1e3))}clearGcTimeout(){this.#e&&=(a.clearTimeout(this.#e),void 0)}},W=e(t(),1),G=n(),K=W.createContext(void 0),q=e=>{let t=W.useContext(K);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},J=({client:e,children:t})=>(W.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,G.jsx)(K.Provider,{value:e,children:t}));export{d as A,v as C,x as D,f as E,r as M,j as O,c as S,p as T,g as _,B as a,h as b,L as c,M as d,D as f,_ as g,l as h,V as i,a as j,k,P as l,A as m,q as n,H as o,O as p,U as r,R as s,J as t,N as u,s as v,E as w,m as x,u as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[Object.freeze(JSON.parse(`{"displayName":"ABAP","fileTypes":["abap","ABAP"],"foldingStartMarker":"/\\\\*\\\\*|\\\\{\\\\s*$","foldingStopMarker":"\\\\*\\\\*/|^\\\\s*}","name":"abap","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"^\\\\*.*\\\\n?","name":"comment.line.full.abap"},{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"\\".*\\\\n?","name":"comment.line.partial.abap"},{"match":"(?<!\\\\S)##.*?(?=([,.:\\\\s]))","name":"comment.line.pragma.abap"},{"match":"(?i)(?<=[-~\\\\s])(?<=[-=]>)([/_a-z][/-9_a-z]*)(?=\\\\s+(?:|[-*+/]|&&?)=\\\\s+)","name":"variable.other.abap"},{"match":"\\\\b[0-9]+(\\\\b|[,.])","name":"constant.numeric.abap"},{"match":"(?i)(^|\\\\s+)((P(?:UBLIC|RIVATE|ROTECTED))\\\\sSECTION)(?=\\\\s+|[.:])","name":"storage.modifier.class.abap"},{"begin":"(?<!\\\\\\\\)(\\\\|)(.*?)","beginCaptures":{"1":{"name":"constant.character.escape.abap"}},"end":"(?<!\\\\\\\\)(\\\\||(\\\\\\\\\\\\\\\\\\\\|))","endCaptures":{"1":{"name":"constant.character.escape.abap"}},"name":"string.interpolated.abap","patterns":[{"match":"(\\\\{ )|( })","name":"constant.character.escape"},{"match":"\\\\\\\\\\\\|","name":"constant.character.escape.abap"},{"match":"(?i)(?<=\\\\s)(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\\\\s=)","name":"entity.name.property.stringtemplate.abap"},{"match":"(?i)(?<==\\\\s)(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\\\\s)","name":"entity.value.property.stringtemplate.abap"}]},{"begin":"'","end":"'","name":"string.quoted.single.abap","patterns":[{"match":"''","name":"constant.character.escape.abap"}]},{"begin":"\`","end":"\`","name":"string.quoted.single.abap","patterns":[{"match":"\`\`","name":"constant.character.escape.abap"}]},{"begin":"(?i)^\\\\s*(class)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.block.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","name":"meta.block.begin.implementation.abap","patterns":[{"match":"(?i)(^|\\\\s+)(definition|implementation|public|inheriting\\\\s+from|final|deferred|abstract|shared\\\\s+memory\\\\s+enabled|(global|local)*\\\\s*friends|(create\\\\s+(p(?:ublic|rotected|rivate)))|for\\\\s+behavior\\\\s+of|for\\\\s+testing|risk\\\\s+level\\\\s+(critical|dangerous|harmless))|duration\\\\s(short|medium|long)(?=\\\\s+|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","contentName":"entity.name.type.block.abap","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(method)\\\\s(?:([/_a-z][/-9_a-z]*)~)?([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"},"3":{"name":"entity.name.function.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(BY(?:\\\\s+DATABASE(\\\\s+PROCEDURE|\\\\s+FUNCTION|\\\\s+GRAPH\\\\s+WORKSPACE)|\\\\s+KERNEL\\\\s+MODULE))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(FOR\\\\s+(HDB|LLANG))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=\\\\s)(OPTIONS\\\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\\\s+SYNTAX\\\\s+ERRORS))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(LANGUAGE\\\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"captures":{"1":{"name":"storage.modifier.method.abap"}},"match":"(?i)(?<=\\\\s)(USING)\\\\s+([/_a-z][/-9=>_a-z]*)+(?=\\\\s+|\\\\.)"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(INTERFACE)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(DEFERRED|PUBLIC)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"}]},{"begin":"(?i)^\\\\s*(FORM)\\\\s([/_a-z][-/-9?_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\\\s+|\\\\.)","name":"storage.modifier.form.abap"},{"include":"#abaptypes"},{"include":"#keywords_followed_by_braces"}]},{"match":"(?i)(end(?:class|method|form|interface))","name":"storage.type.block.end.abap"},{"match":"(?i)(<[A-Z_a-z][0-9A-Z_a-z]*>)","name":"variable.other.field.symbol.abap"},{"include":"#keywords"},{"include":"#abap_constants"},{"include":"#reserved_names"},{"include":"#operators"},{"include":"#builtin_functions"},{"include":"#abaptypes"},{"include":"#system_fields"},{"include":"#sql_functions"},{"include":"#sql_types"}],"repository":{"abap_constants":{"match":"(?i)(?<=\\\\s)(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=[,.\\\\s])","name":"constant.language.abap"},"abaptypes":{"patterns":[{"match":"(?i)\\\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|[cdfinptx])(?=[,.\\\\s])","name":"support.type.abap"},{"match":"(?i)\\\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=[,.\\\\s])","name":"keyword.control.simple.abap"}]},"arithmetic_operator":{"match":"(?i)(?<=\\\\s)([-*+]|\\\\*\\\\*|[%/]|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\\\s)","name":"keyword.control.simple.abap"},"builtin_functions":{"match":"(?i)(?<=\\\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\\\()","name":"entity.name.function.builtin.abap"},"comparison_operator":{"match":"(?i)(?<=\\\\s)([<>]|<=|>=|=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|[moz])(?=\\\\s)","name":"keyword.control.simple.abap"},"control_keywords":{"match":"(?i)(^|\\\\s)(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=[.:\\\\s])","name":"keyword.control.flow.abap"},"generic_names":{"match":"[A-Z_a-z][0-9A-Z_a-z]*"},"keywords":{"patterns":[{"include":"#main_keywords"},{"include":"#text_symbols"},{"include":"#control_keywords"},{"include":"#keywords_followed_by_braces"}]},"keywords_followed_by_braces":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"variable.other.abap"}},"match":"(?i)\\\\b(data|value|field-symbol|final|reference|resumable)\\\\((<?[/_a-z][/-9_a-z]*>?)\\\\)"},"logical_operator":{"match":"(?i)(?<=\\\\s)(not|or|and)(?=\\\\s)","name":"keyword.control.simple.abap"},"main_keywords":{"match":"(?i)(?<=^|\\\\s)(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|after|alias|aliases|all|allocate|amdp|analysis|analyzer|append|appending|application|archive|area|arithmetic|as|ascending|assert|assign|assigned|assigning|association|asynchronous|at|attributes|authority|authority-check|authorization|auto|back|background|backward|badi|base|before|begin|behavior|between|binary|bit|blanks??|blocks??|bound|boundaries|bounds|boxed|break|break-point|buffer|by|bypassing|byte|byte-order|call|calling|cast|casting|cds|centered|change|changing|channels|char-to-hex|character|check|checkbox|cid|circular|class|class-data|class-events|class-methods??|class-pool|cleanup|clear|clients??|clock|clone|close|cnt|code|collect|color|column|comments??|commit|common|communication|comparing|components??|compression|compute|concatenate|cond|condense|condition|connection|constants??|contexts??|controls??|conv|conversion|convert|copy|corresponding|count|country|cover|create|currency|current|cursor|customer-function|data|database|datainfo|dataset|date|daylight|ddl|deallocate|decimals|declarations|deep|default|deferred|define|delete|deleting|demand|descending|describe|destination|detail|determine|dialog|did|directory|discarding|display|display-mode|distance|distinct|divide|divide-corresponding|dummy|duplicates??|duration|during|dynpro|edit|editor-call|empty|enabled|enabling|encoding|end|end-enhancement-section|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|endenhancement|endexec|endfunction|endian|ending|endmodule|endprovide|endselect|endwith|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|equiv|errors|escape|escaping|events??|exact|except|exception|exception-table|exceptions|excluding|exec|execute|exists|exit|exit-command|expanding|explicit|exponent|export|exporting|extended|extension|extract|fail|failed|features|fetch|field|field-groups|field-symbols|fields|file|fill|filters??|final|find|first|first-line|fixed-point|flush|following|for|format|forward|found|frames??|free|from|full|function|function-pool|generate|get|giving|graph|groups??|handler??|hashed|having|headers??|heading|help-id|help-request|hide|hint|hold|hotspot|icon|id|identification|identifier|ignore|ignoring|immediately|implemented|implicit|import|importing|in|inactive|incl|includes??|including|increment|index|index-line|indicators|infotypes|inheriting|init|initial|initialization|inner|input|insert|instances??|intensified|interface|interface-pool|interfaces|internal|intervals|into|inverse|inverted-date|is|job|join|keep|keeping|kernel|keys??|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|legacy|length|let|levels??|like|line|line-count|line-selection|line-size|linefeed|lines|link|list|list-processing|listbox|load|load-of-program|locale??|locks??|log-point|logical|lower|mapped|mapping|margin|mark|mask|match|matchcode|maximum|members|memory|mesh|message|message-id|messages|messaging|methods??|mode|modif|modifier|modify|module|move|move-corresponding|multiply|multiply-corresponding|name|nametab|native|nested|nesting|new|new-line|new-page|new-section|next|no-display|no-extension|no-gaps??|no-grouping|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unicode|non-unique|number|objects??|objmgr|obligatory|occurences??|occurrences??|occurs|of|offset|on|only|open|optional|options??|order|others|out|outer|output|output-length|overflow|overlay|pack|package|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|process|program|property|protected|provide|push|pushbutton|put|query|queue-only|queueonly|quickinfo|radiobutton|raising|ranges??|read|read-only|received??|receiving|redefinition|reduce|ref|reference|refresh|regex|reject|renaming|replace|replacement|replacing|report|reported|request|requested|required|reserve|reset|resolution|respecting|response|restore|results??|resumable|resume|retry|return|returning|right|right-justified|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scan|screen|scroll|scroll-boundary|scrolling|search|seconds|section|select|select-options|selection|selection-screen|selection-sets??|selection-table|selections|send|separated??|session|set|shared|shift|shortdump|shortdump-id|sign|simple|simulation|single|size|skip|skipping|smart|some|sort|sortable|sorted|source|specified|split|spool|spots|sql|stable|stamp|standard|start-of-selection|starting|state|statements??|statics??|statusinfo|step|step-loop|stop|structures??|style|subkey|submatches|submit|subroutine|subscreen|substring|subtract|subtract-corresponding|suffix|sum|summary|supplied|supply|suppress|switch|symbol|syntax-check|syntax-trace|system-call|system-exceptions|tab|tabbed|tables??|tableview|tabstrip|target|tasks??|test|test-injection|test-seam|testing|text|textpool|then|throw|times??|title|titlebar|to|tokens|top-lines|top-of-page|trace-file|trace-table|trailing|transaction|transfer|transformation|translate|transporting|trmac|truncate|truncation|type|type-pools??|types|uline|unassign|unbounded|under|unicode|union|unique|unit|unix|unpack|until|unwind|up|update|upper|user|user-command|using|utf-8|uuid|valid|validate|value|value-request|values|vary|varying|version|via|visible|wait|when|where|windows??|with|with-heading|with-title|without|word|work|workspace|write|xml|zone)(?=[,.:\\\\s])","name":"keyword.control.simple.abap"},"operators":{"patterns":[{"include":"#other_operator"},{"include":"#arithmetic_operator"},{"include":"#comparison_operator"},{"include":"#logical_operator"}]},"other_operator":{"match":"(?<=\\\\s)(&&?|\\\\?=|\\\\+=|-=|/=|\\\\*=|&&=|&=)(?=\\\\s)","name":"keyword.control.simple.abap"},"reserved_names":{"match":"(?i)(?<=\\\\s)(me|super)(?=[,.\\\\s]|->)","name":"constant.language.abap"},"sql_functions":{"match":"(?i)(?<=\\\\s)(abap_system_timezone|abap_user_timezone|abs|add_days|add_months|allow_precision_loss|as_geo_json|avg|bintohex|cast|ceil|coalesce|concat_with_space|concat|corr_spearman|corr|count|currency_conversion|datn_add_days|datn_add_months|datn_days_between|dats_add_days|dats_add_months|dats_days_between|dats_from_datn|dats_is_valid|dats_tims_to_tstmp|dats_to_datn|dayname|days_between|dense_rank|division|div|extract_day|extract_hour|extract_minute|extract_month|extract_second|extract_year|first_value|floor|grouping|hextobin|initcap|instr|is_valid|lag|last_value|lead|left|length|like_regexpr|locate_regexpr_after|locate_regexpr|locate|lower|lpad|ltrim|max|median|min|mod|monthname|ntile|occurrences_regexpr|over|product|rank|replace_regexpr|replace|rigth|round|row_number|rpad|rtrim|stddev|string_agg|substring_regexpr|substring|sum|tims_from_timn|tims_is_valid|tims_to_timn|to_blob|to_clob|tstmp_add_seconds|tstmp_current_utctimestamp|tstmp_is_valid|tstmp_seconds_between|tstmp_to_dats|tstmp_to_dst|tstmp_to_tims|tstmpl_from_utcl|tstmpl_to_utcl|unit_conversion|upper|utcl_add_seconds|utcl_current|utcl_seconds_between|uuid|var|weekday)(?=\\\\()","name":"entity.name.function.sql.abap"},"sql_types":{"match":"(?i)(?<=\\\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=[()\\\\s])","name":"entity.name.type.sql.abap"},"system_fields":{"captures":{"1":{"name":"variable.language.abap"},"2":{"name":"variable.language.abap"}},"match":"(?i)\\\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=[.\\\\s])"},"text_symbols":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"constant.numeric.abap"}},"match":"(?i)(?<=^|\\\\s)(text)-([0-9A-Z]{1,3})(?=[,.:\\\\s])"}},"scopeName":"source.abap"}`))];export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BD5vCCEH.js";import{t as n}from"./chunk-5KNZJZUH-DdB2N3P3.js";import{d as r}from"./native-biometric-BPPNP_Sl.js";import{r as i}from"./routes-CHnF8N9D.js";import{n as a}from"./auth-store-Dy6ebqwf.js";import{t as o}from"./jsx-runtime-2-RJdKf7.js";import{tt as s}from"./index-aLxsGtfC.js";import{r as c,t as l}from"./account-shell-Dw8jAeLG.js";import{n as u,t as d}from"./login-flow-C9O7X98K.js";var f=e(t(),1),p=o();function m(){let e=a.use.isLoggedIn(),t=a.use.isLoading(),o=a.use.user(),m=a.use.logout(),[h,g]=(0,f.useState)(null),[_,v]=(0,f.useState)(!1),y=async()=>{g(null),v(!0);try{await r(u,d)}catch(e){console.error(`[account] auth flow failed:`,e),g(`Something went wrong. Please try again.`),v(!1)}};return t?(0,p.jsx)(l,{children:(0,p.jsx)(c,{title:`Loading...`})}):e?(0,p.jsxs)(l,{children:[(0,p.jsx)(c,{title:`Welcome${o?.username?`, ${o.username}`:``}!`,subtitle:`You are signed in.`}),(0,p.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,p.jsx)(n,{to:i.assistant,className:`inline-flex w-full items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-white no-underline transition-colors hover:bg-[var(--primary-hover)]`,children:`Go to your assistant`}),(0,p.jsx)(`button`,{type:`button`,onClick:async()=>{await m(),s(i.account.login)},className:`cursor-pointer bg-transparent text-sm font-normal text-stone-400 transition-colors hover:text-stone-300`,children:`Sign out`})]})]}):(0,p.jsxs)(l,{children:[(0,p.jsx)(c,{title:`Welcome to Vellum`,subtitle:`Sign in to get started.`}),h&&(0,p.jsx)(`p`,{className:`text-center text-sm text-[var(--system-negative-strong)]`,children:h}),(0,p.jsx)(`div`,{className:`flex flex-col items-center gap-4`,children:(0,p.jsx)(`button`,{type:`button`,onClick:()=>void y(),disabled:_,className:`inline-flex w-full cursor-pointer items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-[var(--primary-hover)] disabled:opacity-50`,children:`Sign in`})})]})}export{m as AccountPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-2-RJdKf7.js";import"./src-DzD6V_-s.js";import{t}from"./notice-whIbTA0N.js";var n=e(),r=(0,n.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,n.jsx)(`path`,{d:`M7.5 15L12.5 10L7.5 5`,stroke:`currentColor`,strokeWidth:`1.67`,strokeLinecap:`round`,strokeLinejoin:`round`})});function i({onSubmit:e,error:i,children:a,submitLabel:o,submittingLabel:s,isSubmitting:c,footer:l}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`form`,{onSubmit:e,className:`flex flex-col gap-4`,children:[i&&(0,n.jsx)(t,{tone:`error`,children:i}),(0,n.jsx)(`div`,{className:`flex flex-col gap-3`,children:a}),(0,n.jsxs)(`button`,{type:`submit`,disabled:c,className:`mt-2 inline-flex w-full cursor-pointer items-center justify-center gap-2 rounded-lg bg-[var(--primary-base)] px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-[var(--primary-hover)] disabled:cursor-wait disabled:opacity-50`,children:[c?s:o,r]})]}),l&&(0,n.jsx)(`div`,{className:`mt-8 text-center`,children:l})]})}function a(e){return(0,n.jsx)(`input`,{...e,className:`w-full rounded-lg border border-white/10 bg-white/5 px-4 py-3 text-sm text-white outline-none placeholder:text-stone-500 focus:border-forest-600/50`})}function o({title:e,subtitle:t}){return(0,n.jsxs)(`div`,{className:`mb-8 text-center`,children:[(0,n.jsx)(`h1`,{className:`mb-2 font-serif text-[2rem] font-bold italic text-white`,children:e}),t&&(0,n.jsx)(`p`,{className:`text-sm text-stone-400`,children:t})]})}function s({children:e}){return(0,n.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-[#0d0d0d]`,children:(0,n.jsx)(`div`,{className:`w-full max-w-[480px] px-6`,children:(0,n.jsx)(`div`,{className:`flex flex-col items-center gap-10`,children:(0,n.jsx)(`div`,{className:`w-full`,children:e})})})})}export{a as i,i as n,o as r,s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[Object.freeze(JSON.parse(`{"displayName":"ActionScript","fileTypes":["as"],"name":"actionscript-3","patterns":[{"include":"#comments"},{"include":"#package"},{"include":"#class"},{"include":"#interface"},{"include":"#namespace_declaration"},{"include":"#import"},{"include":"#mxml"},{"include":"#strings"},{"include":"#regexp"},{"include":"#variable_declaration"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#other_operators"},{"include":"#arithmetic_operators"},{"include":"#logical_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#control_keywords"},{"include":"#other_keywords"},{"include":"#use_namespace"},{"include":"#functions"}],"repository":{"arithmetic_operators":{"match":"([-%+/]|(?<!:)\\\\*)","name":"keyword.operator.actionscript.3"},"array_access_operators":{"match":"([]\\\\[])","name":"keyword.operator.actionscript.3"},"class":{"begin":"(^|\\\\s+|;)(\\\\b(dynamic|final|abstract)\\\\b\\\\s+)?(\\\\b(internal|public)\\\\b\\\\s+)?(\\\\b(dynamic|final|abstract)\\\\b\\\\s+)?(?=\\\\bclass\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"},"5":{"name":"storage.modifier.actionscript.3"},"7":{"name":"storage.modifier.actionscript.3"}},"end":"}","name":"meta.class.actionscript.3","patterns":[{"include":"#class_declaration"},{"include":"#declaration_code_block"},{"include":"#metadata"},{"include":"#method"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#other_operators"},{"include":"#other_keywords"},{"include":"#use_namespace"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#arithmetic_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#variable_declaration"},{"include":"#object_literal"},{"include":"#conditional_compilation"}]},"class_declaration":{"begin":"\\\\b(class)\\\\b\\\\s+([$.0-9A-Z_a-z]+|\\\\*)","beginCaptures":{"1":{"name":"storage.type.class.actionscript.3"},"2":{"name":"entity.name.class.actionscript.3"}},"end":"\\\\{","name":"meta.class_declaration.actionscript.3","patterns":[{"include":"#extends"},{"include":"#implements"},{"include":"#comments"}]},"comments":{"patterns":[{"begin":"/\\\\*\\\\*(?!/)","end":"\\\\*/","name":"comment.block.documentation.actionscript.3","patterns":[{"match":"@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\\\\b","name":"keyword.other.documentation.actionscript.3.asdoc"}]},{"begin":"/\\\\*","end":"\\\\*/","name":"comment.block.actionscript.3"},{"match":"//.*","name":"comment.line.actionscript.3"}]},"conditional_compilation":{"captures":{"2":{"name":"constant.other.actionscript.3"},"3":{"name":"constant.other.actionscript.3"}},"match":"(^|\\\\s+|;)\\\\b(\\\\w+)\\\\b::\\\\b(\\\\w+)\\\\b","name":"meta.conditional.actionscript.3"},"control_keywords":{"match":"\\\\b(if|else|do|while|for|each|continue|return|switch|case|default|break|try|catch|finally|throw|with)\\\\b","name":"keyword.control.actionscript.3"},"declaration_code_block":{"begin":"\\\\{","end":"}","name":"meta.code_block.actionscript.3","patterns":[{"include":"#method"},{"include":"#variable_declaration"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#other_operators"},{"include":"#arithmetic_operators"},{"include":"#logical_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#control_keywords"},{"include":"#other_keywords"},{"include":"#use_namespace"},{"include":"#functions"},{"include":"#import"}]},"dynamic_type":{"captures":{"1":{"name":"support.type.actionscript.3"}},"match":"(?<=:)\\\\s*(\\\\*)"},"escapes":{"match":"\\\\\\\\(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)","name":"constant.character.escape.actionscript.3"},"extends":{"captures":{"1":{"name":"keyword.other.actionscript.3"},"2":{"name":"entity.other.inherited-class.actionscript.3"},"3":{"name":"entity.other.inherited-class.actionscript.3"}},"match":"\\\\b(extends)\\\\b\\\\s+([$.0-9A-Z_a-z]+)\\\\s*(?:,\\\\s*([$.0-9A-Z_a-z]+))*\\\\s*","name":"meta.extends.actionscript.3"},"function_arguments":{"begin":"\\\\(","end":"\\\\)","name":"meta.function_arguments.actionscript.3","patterns":[{"include":"#parameters"},{"include":"#comments"}]},"functions":{"begin":"\\\\b(function)\\\\b(?:\\\\s+\\\\b([gs]et)\\\\b\\\\s+)?\\\\s*([$0-9A-Z_a-z]+\\\\b)?","beginCaptures":{"1":{"name":"storage.type.function.actionscript.3"},"2":{"name":"storage.modifier.actionscript.3"},"3":{"name":"entity.name.function.actionscript.3"}},"end":"($|;|(?=\\\\{))","name":"meta.function.actionscript.3","patterns":[{"include":"#function_arguments"},{"include":"#return_type"},{"include":"#comments"}]},"guess_constant":{"captures":{"1":{"name":"constant.other.actionscript.3"}},"match":"\\\\b([$A-Z][0-9A-Z_]+)\\\\b"},"guess_type":{"captures":{"1":{"name":"support.type.actionscript.3"}},"match":"\\\\b((?:[$0-9A-Z_a-z]+\\\\.)*[A-Z][0-9A-Z]*[a-z]+[$0-9A-Z_a-z]*)\\\\b"},"implements":{"captures":{"1":{"name":"keyword.other.actionscript.3"},"2":{"name":"entity.other.inherited-class.actionscript.3"},"3":{"name":"entity.other.inherited-class.actionscript.3"}},"match":"\\\\b(implements)\\\\b\\\\s+([$.0-9A-Z_a-z]+)\\\\s*(?:,\\\\s*([$.0-9A-Z_a-z]+))*\\\\s*","name":"meta.implements.actionscript.3"},"import":{"captures":{"2":{"name":"keyword.control.import.actionscript.3"},"3":{"name":"support.type.actionscript.3"}},"match":"(^|\\\\s+|;)\\\\b(import)\\\\b\\\\s+([$.0-9A-Z_a-z]+(?:\\\\.\\\\*)?)\\\\s*(?=;|$)","name":"meta.import.actionscript.3"},"interface":{"begin":"(^|\\\\s+|;)(\\\\b(internal|public)\\\\b\\\\s+)?(?=\\\\binterface\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"}},"end":"}","name":"meta.interface.actionscript.3","patterns":[{"include":"#interface_declaration"},{"include":"#metadata"},{"include":"#functions"},{"include":"#comments"}]},"interface_declaration":{"begin":"\\\\b(interface)\\\\b\\\\s+([$.0-9A-Z_a-z]+)","beginCaptures":{"1":{"name":"storage.type.interface.actionscript.3"},"2":{"name":"entity.name.class.actionscript.3"}},"end":"\\\\{","name":"meta.class_declaration.actionscript.3","patterns":[{"include":"#extends"},{"include":"#comments"}]},"language_constants":{"match":"\\\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\\\b","name":"constant.language.actionscript.3"},"language_variables":{"match":"\\\\b(super|this|arguments)\\\\b","name":"variable.language.actionscript.3"},"local_code_block":{"begin":"\\\\{","end":"}","name":"meta.code_block.actionscript.3","patterns":[{"include":"#local_code_block"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#variable_declaration"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#other_operators"},{"include":"#arithmetic_operators"},{"include":"#logical_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#control_keywords"},{"include":"#other_keywords"},{"include":"#use_namespace"},{"include":"#functions"},{"include":"#import"}]},"logical_operators":{"match":"([!\\\\&<>?^|~])","name":"keyword.operator.actionscript.3"},"metadata":{"begin":"(?<=(?:^|[;{}]|\\\\*/)\\\\s*)\\\\[\\\\s*\\\\b([$A-Z_a-z][$0-9A-Z_a-z]+)\\\\b","beginCaptures":{"1":{"name":"keyword.other.actionscript.3"}},"end":"]","name":"meta.metadata_info.actionscript.3","patterns":[{"include":"#metadata_info"}]},"metadata_info":{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"#strings"},{"captures":{"1":{"name":"variable.parameter.actionscript.3"},"2":{"name":"keyword.operator.actionscript.3"}},"match":"(\\\\w+)\\\\s*(=)"}]},"method":{"begin":"(^|\\\\s+)((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?((\\\\w+)\\\\s+)?(?=\\\\bfunction\\\\b)","beginCaptures":{"3":{"name":"storage.modifier.actionscript.3"},"5":{"name":"storage.modifier.actionscript.3"},"7":{"name":"storage.modifier.actionscript.3"},"8":{"name":"storage.modifier.actionscript.3"}},"end":"(?<=([;}]))","name":"meta.method.actionscript.3","patterns":[{"include":"#functions"},{"include":"#local_code_block"}]},"mxml":{"begin":"<!\\\\[CDATA\\\\[","end":"]]>","name":"meta.cdata.actionscript.3","patterns":[{"include":"#comments"},{"include":"#import"},{"include":"#metadata"},{"include":"#class"},{"include":"#namespace_declaration"},{"include":"#use_namespace"},{"include":"#class_declaration"},{"include":"#method"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#other_keywords"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#other_operators"},{"include":"#arithmetic_operators"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#variable_declaration"}]},"namespace_declaration":{"captures":{"2":{"name":"storage.modifier.actionscript.3"},"3":{"name":"storage.modifier.actionscript.3"}},"match":"((\\\\w+)\\\\s+)?(namespace)\\\\s+[$0-9A-Z_a-z]+","name":"meta.namespace_declaration.actionscript.3"},"numbers":{"match":"\\\\b((0([Xx])\\\\h*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))(([Ee])([-+])?[0-9]+)?)([Ll]|UL|ul|[FUfu])?\\\\b","name":"constant.numeric.actionscript.3"},"object_literal":{"begin":"\\\\{","end":"}","name":"meta.object_literal.actionscript.3","patterns":[{"include":"#object_literal"},{"include":"#comments"},{"include":"#strings"},{"include":"#regexp"},{"include":"#numbers"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#primitive_functions"},{"include":"#language_constants"},{"include":"#language_variables"},{"include":"#guess_type"},{"include":"#guess_constant"},{"include":"#array_access_operators"},{"include":"#vector_creation_operators"},{"include":"#functions"}]},"other_keywords":{"match":"\\\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\\\b","name":"keyword.other.actionscript.3"},"other_operators":{"match":"([.=])","name":"keyword.operator.actionscript.3"},"package":{"begin":"(^|\\\\s+)(package)\\\\b","beginCaptures":{"2":{"name":"keyword.other.actionscript.3"}},"end":"}","name":"meta.package.actionscript.3","patterns":[{"include":"#package_name"},{"include":"#variable_declaration"},{"include":"#method"},{"include":"#comments"},{"include":"#return_type"},{"include":"#import"},{"include":"#use_namespace"},{"include":"#strings"},{"include":"#numbers"},{"include":"#language_constants"},{"include":"#metadata"},{"include":"#class"},{"include":"#interface"},{"include":"#namespace_declaration"}]},"package_name":{"begin":"(?<=package)\\\\s+([._\\\\w]*)\\\\b","end":"\\\\{","name":"meta.package_name.actionscript.3"},"parameters":{"begin":"(\\\\.\\\\.\\\\.)?\\\\s*([$A-Z_a-z][$0-9A-Z_a-z]*)(?:\\\\s*(:)\\\\s*(?:([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)(?:\\\\.<([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)>)?|(\\\\*)))?(?:\\\\s*(=))?","beginCaptures":{"1":{"name":"keyword.operator.actionscript.3"},"2":{"name":"variable.parameter.actionscript.3"},"3":{"name":"keyword.operator.actionscript.3"},"4":{"name":"support.type.actionscript.3"},"5":{"name":"support.type.actionscript.3"},"6":{"name":"support.type.actionscript.3"},"7":{"name":"keyword.operator.actionscript.3"}},"end":",|(?=\\\\))","patterns":[{"include":"#strings"},{"include":"#numbers"},{"include":"#language_constants"},{"include":"#comments"},{"include":"#primitive_types"},{"include":"#primitive_error_types"},{"include":"#dynamic_type"},{"include":"#guess_type"},{"include":"#guess_constant"}]},"primitive_error_types":{"captures":{"1":{"name":"support.class.error.actionscript.3"}},"match":"\\\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\\\b"},"primitive_functions":{"captures":{"1":{"name":"support.function.actionscript.3"}},"match":"\\\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\\\s*\\\\()"},"primitive_types":{"captures":{"1":{"name":"support.class.builtin.actionscript.3"}},"match":"\\\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\\\*(?<=a))\\\\b"},"regexp":{"begin":"(?<=[(,:=\\\\[]|^|return|&&|\\\\|\\\\||!)\\\\s*(/)(?![*+/?{}])","end":"$|(/)[gim]*","name":"string.regex.actionscript.3","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.actionscript.3"},{"match":"\\\\[(\\\\\\\\]|[^]])*]","name":"constant.character.class.actionscript.3"}]},"return_type":{"captures":{"1":{"name":"keyword.operator.actionscript.3"},"2":{"name":"support.type.actionscript.3"},"3":{"name":"support.type.actionscript.3"},"4":{"name":"support.type.actionscript.3"}},"match":"(:)\\\\s*([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)(?:\\\\.<([$A-Za-z][$0-9A-Z_a-z]+(?:\\\\.[$A-Za-z][$0-9A-Z_a-z]+)*)>)?|(\\\\*)"},"strings":{"patterns":[{"begin":"@\\"","end":"\\"","name":"string.quoted.verbatim.actionscript.3"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.actionscript.3","patterns":[{"include":"#escapes"}]},{"begin":"'","end":"'","name":"string.quoted.single.actionscript.3","patterns":[{"include":"#escapes"}]}]},"use_namespace":{"captures":{"2":{"name":"keyword.other.actionscript.3"},"3":{"name":"keyword.other.actionscript.3"},"4":{"name":"storage.modifier.actionscript.3"}},"match":"(^|\\\\s+|;)(use\\\\s+)?(namespace)\\\\s+(\\\\w+)\\\\s*(;|$)"},"variable_declaration":{"captures":{"2":{"name":"storage.modifier.actionscript.3"},"4":{"name":"storage.modifier.actionscript.3"},"6":{"name":"storage.modifier.actionscript.3"},"7":{"name":"storage.modifier.actionscript.3"},"8":{"name":"keyword.operator.actionscript.3"}},"match":"((static)\\\\s+)?((\\\\w+)\\\\s+)?((static)\\\\s+)?(const|var)\\\\s+[$0-9A-Z_a-z]+(?:\\\\s*(:))?","name":"meta.variable_declaration.actionscript.3"},"vector_creation_operators":{"match":"([<>])","name":"keyword.operator.actionscript.3"}},"scopeName":"source.actionscript.3"}`))];export{e as default};
|