@hienlh/ppm 0.19.1 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -1
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/cli-reference.md +4 -4
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/dist/web/assets/{adaptive-context-menu-JfuUSqbe.js → adaptive-context-menu-BbuRVTLn.js} +1 -1
- package/dist/web/assets/{ai-resource-editor-MfdJKVM5.js → ai-resource-editor-BCCOUzox.js} +1 -1
- package/dist/web/assets/{ai-settings-section-CJE7jFsj.js → ai-settings-section-BEM1z7kp.js} +1 -1
- package/dist/web/assets/{angular-html-VzxSzTCy.js → angular-html-BlcrLjUx.js} +1 -1
- package/dist/web/assets/{angular-ts-CmJ4bmzM.js → angular-ts-BUjtceAJ.js} +1 -1
- package/dist/web/assets/{api-client-qRWu6_s5.js → api-client-BzWM7XPR.js} +1 -1
- package/dist/web/assets/api-client-D1CePgQ4.js +1 -0
- package/dist/web/assets/api-settings-CNtKkHqW.js +1 -0
- package/dist/web/assets/{api-settings-CPg4yGvS.js → api-settings-Cubuqjsu.js} +1 -1
- package/dist/web/assets/{api-themes-DsAp8m7m.js → api-themes-YsZgf6Xj.js} +1 -1
- package/dist/web/assets/{apl-do17bnVx.js → apl-B3g0v1pk.js} +1 -1
- package/dist/web/assets/{astro-ClY0e0OA.js → astro-FRnyn7cH.js} +1 -1
- package/dist/web/assets/{audio-preview-Fw935Mok.js → audio-preview-DWTRm4HC.js} +1 -1
- package/dist/web/assets/{blade-BXSdXDGq.js → blade-NLdOqUKw.js} +1 -1
- package/dist/web/assets/{bot-CWZAuloY.js → bot-D6sx11y0.js} +1 -1
- package/dist/web/assets/{bsl-MxsMKDUZ.js → bsl-CenHZfaU.js} +1 -1
- package/dist/web/assets/{button-CrwgGd1y.js → button-Cq8yixjf.js} +1 -1
- package/dist/web/assets/{cairo-4CIrzX_p.js → cairo-B_WR0aiQ.js} +1 -1
- package/dist/web/assets/chat-tab-CmXGsJGc.js +15 -0
- package/dist/web/assets/{chevron-down-D7CbB5f6.js → chevron-down-Dp0rpHb8.js} +1 -1
- package/dist/web/assets/chevron-right-De-Wz5Lz.js +1 -0
- package/dist/web/assets/circle-BCy0AUCo.js +1 -0
- package/dist/web/assets/{circle-question-mark-BBzFZrNh.js → circle-question-mark-CzR7YRc-.js} +1 -1
- package/dist/web/assets/clock-C1CQUQPZ.js +1 -0
- package/dist/web/assets/{cobol-phPOE89d.js → cobol-DOynhWYj.js} +1 -1
- package/dist/web/assets/code-DJgYrFzm.js +1 -0
- package/dist/web/assets/code-editor-DtHXzNZ1.js +7 -0
- package/dist/web/assets/{coffee-Cjuukfz3.js → coffee-Bn6dbw4P.js} +1 -1
- package/dist/web/assets/{conflict-editor-Ni0PPsKu.js → conflict-editor-Cgb-z12D.js} +1 -1
- package/dist/web/assets/{context-menu-BEAa1qhd.js → context-menu-DfWZAxQy.js} +1 -1
- package/dist/web/assets/{copy-CbPdNp7E.js → copy-BewHj66E.js} +1 -1
- package/dist/web/assets/{cpp-CT7tGBC3.js → cpp-CoZR9t8r.js} +1 -1
- package/dist/web/assets/{createLucideIcon-ConhwJnb.js → createLucideIcon-D8pyde1A.js} +1 -1
- package/dist/web/assets/{crystal-D8U1Qnqh.js → crystal-BSheONSg.js} +1 -1
- package/dist/web/assets/{csv-preview-Coc2oed1.js → csv-preview-BZMHfFH3.js} +1 -1
- package/dist/web/assets/{data-grid-overlay-editor-B8WQkZDB.js → data-grid-overlay-editor-gwPoVSCU.js} +1 -1
- package/dist/web/assets/{data-grid-types-KpjaKAci.js → data-grid-types-Dq_H1IPa.js} +1 -1
- package/dist/web/assets/{database-BqyeGogo.js → database-Y3ESDK4-.js} +1 -1
- package/dist/web/assets/database-viewer-GVaQVMdb.js +1 -0
- package/dist/web/assets/{dialog-DrL3WEXd.js → dialog-BSfuiTkJ.js} +1 -1
- package/dist/web/assets/{diff-viewer-CT0lmDc9.js → diff-viewer-BG5_fH1E.js} +1 -1
- package/dist/web/assets/{dist-C2_dKAa_.js → dist-aDSxTR_v.js} +1 -1
- package/dist/web/assets/{docx-preview-76KDw1eE.js → docx-preview-DqVDOMmv.js} +1 -1
- package/dist/web/assets/{download-DAF7SXcf.js → download-DG3_9xXy.js} +1 -1
- package/dist/web/assets/{edge-Db4ze6bw.js → edge-DTtoslQu.js} +1 -1
- package/dist/web/assets/{edit-diff-preview-DyC_-4My.js → edit-diff-preview-CXSbSUBX.js} +1 -1
- package/dist/web/assets/{elixir-RZPZ0472.js → elixir-CIBCZ3Zi.js} +1 -1
- package/dist/web/assets/{elm-DNZcQt_7.js → elm-BLmb7K1H.js} +1 -1
- package/dist/web/assets/{erb-DRONsZXs.js → erb-BBY8ApRd.js} +1 -1
- package/dist/web/assets/{erlang-DeG0-QwJ.js → erlang-D5Zb5_P0.js} +1 -1
- package/dist/web/assets/{esm-CZy-sSoK.js → esm-6F8v1jLL.js} +1 -1
- package/dist/web/assets/explorer-body-BPFnjxYj.js +2 -0
- package/dist/web/assets/explorer-window-content-Da1T9uM4.js +1 -0
- package/dist/web/assets/{extension-store-ClQpnxQr.js → extension-store-Bhu--fPX.js} +1 -1
- package/dist/web/assets/{extension-webview-BW5GuBnH.js → extension-webview-BSh6KGd7.js} +1 -1
- package/dist/web/assets/{external-link-ojDHcQxQ.js → external-link-B6Hl0U4X.js} +1 -1
- package/dist/web/assets/{eye-off-Rq1n2-oe.js → eye-off-CUdzgmX8.js} +1 -1
- package/dist/web/assets/{file-exclamation-point-Bpg-zDPP.js → file-exclamation-point-JzhTU2TX.js} +1 -1
- package/dist/web/assets/{file-store-28e44KP3.js → file-store-6HW2Lfl4.js} +1 -1
- package/dist/web/assets/{folder-symlink-LD-mr54V.js → folder-symlink-Dx1hOk8X.js} +1 -1
- package/dist/web/assets/{fortran-fixed-form-CK5VRJNd.js → fortran-fixed-form-CBdwkEUJ.js} +1 -1
- package/dist/web/assets/{fsharp-TVVgzHWp.js → fsharp-AT4XdVYH.js} +1 -1
- package/dist/web/assets/{gdresource-DiUcyewI.js → gdresource-D852fWBR.js} +1 -1
- package/dist/web/assets/{git-commit-CfOruFrg.js → git-commit-DWfWAyxy.js} +1 -1
- package/dist/web/assets/{git-log-panel-D1-YXZ0O.js → git-log-panel-DNC9fV0M.js} +1 -1
- package/dist/web/assets/{git-rebase-Bxyr24oc.js → git-rebase-C6opk8gr.js} +1 -1
- package/dist/web/assets/glide-data-grid-CICFjJon.js +141 -0
- package/dist/web/assets/{glimmer-js-CT5aJxz_.js → glimmer-js-DLi5mWYO.js} +1 -1
- package/dist/web/assets/{glimmer-ts-CRjP9Yey.js → glimmer-ts-D-scFX30.js} +1 -1
- package/dist/web/assets/{glsl-BX2--oI_.js → glsl-dbQzF4iA.js} +1 -1
- package/dist/web/assets/{graphql-BIQsvBxQ.js → graphql-D1m5Wen2.js} +1 -1
- package/dist/web/assets/group-chat-tab-DbUkcOaJ.js +1 -0
- package/dist/web/assets/{hack-CTWk0k1m.js → hack-CqYmpO7u.js} +1 -1
- package/dist/web/assets/{haml-DGh27hXc.js → haml-BXzKWEag.js} +1 -1
- package/dist/web/assets/{hand-DKSxDa5c.js → hand-x0ejq3fS.js} +1 -1
- package/dist/web/assets/{handlebars-BJL1jNrG.js → handlebars-DXnrtHtq.js} +1 -1
- package/dist/web/assets/{html-DALyDNqU.js → html-DhgQJ-xL.js} +1 -1
- package/dist/web/assets/{html-derivative-B4XcU57e.js → html-derivative-xZRft-YE.js} +1 -1
- package/dist/web/assets/{http-DfMo7nNu.js → http-B53mSj14.js} +1 -1
- package/dist/web/assets/{hurl-CGc_n2Qf.js → hurl-CsomVy04.js} +1 -1
- package/dist/web/assets/{hxml-40zZ1t4x.js → hxml-LffjWwKA.js} +1 -1
- package/dist/web/assets/{image-preview-Cp3XB8UO.js → image-preview-CNA6XMNS.js} +1 -1
- package/dist/web/assets/index-DTqbMiVc.js +52 -0
- package/dist/web/assets/{input-DTmI80l2.js → input-D0ol5jW0.js} +1 -1
- package/dist/web/assets/{jinja-D5zuIn9u.js → jinja-CCHURl7V.js} +1 -1
- package/dist/web/assets/{jison-Dxut9QwA.js → jison-7qBd8dnR.js} +1 -1
- package/dist/web/assets/{julia-Cu85tTPo.js → julia-BY9pnTcy.js} +1 -1
- package/dist/web/assets/{just-CctM4uLa.js → just-D7wRSNRr.js} +1 -1
- package/dist/web/assets/{keybindings-store-Bi0q9x4Q.js → keybindings-store-BGkB72gM.js} +1 -1
- package/dist/web/assets/keybindings-store-Bq6VWl5X.js +1 -0
- package/dist/web/assets/{keyboard-AdwmYDSu.js → keyboard-DBBaoQSu.js} +1 -1
- package/dist/web/assets/{latex-kpwS_CC7.js → latex-RgsCae55.js} +1 -1
- package/dist/web/assets/{lib-Ca7ai8xa.js → lib-v9x_qXgI.js} +1 -1
- package/dist/web/assets/{liquid-B8Rr0xue.js → liquid-CnDFzvOZ.js} +1 -1
- package/dist/web/assets/loader-circle-DouKgIXy.js +1 -0
- package/dist/web/assets/{lock-BEtt_eTO.js → lock-CNxUGpTk.js} +1 -1
- package/dist/web/assets/{lua-C_3gixwM.js → lua-0lj5W8sm.js} +1 -1
- package/dist/web/assets/markdown-renderer-DEAVpo0C.js +1 -0
- package/dist/web/assets/markdown-renderer-dbLIvU2M.js +3 -0
- package/dist/web/assets/{marko-B28rvNL-.js → marko-CQgqAhbV.js} +1 -1
- package/dist/web/assets/{mdc-DQ6-STFO.js → mdc-BkIcTiIy.js} +1 -1
- package/dist/web/assets/{media-url-BjvbfTTl.js → media-url-DDciwvLU.js} +1 -1
- package/dist/web/assets/{mobile-bottom-sheet-DXn5g2LB.js → mobile-bottom-sheet-pjcHKorA.js} +1 -1
- package/dist/web/assets/mobile-explorer-sheet-CD_kl-jA.js +1 -0
- package/dist/web/assets/{monitor-CXI_XpWJ.js → monitor-CxPV_fQI.js} +1 -1
- package/dist/web/assets/{monitor-smartphone-C1wUPOSg.js → monitor-smartphone-DLZ6Q05s.js} +1 -1
- package/dist/web/assets/{nextflow-B1xq2O8L.js → nextflow-DvIW68DS.js} +1 -1
- package/dist/web/assets/{nginx-xsLxRGxO.js → nginx-O-hft0gG.js} +1 -1
- package/dist/web/assets/{nim-wqcek3WO.js → nim-BxrR4HwQ.js} +1 -1
- package/dist/web/assets/notification-store-Dgbsw9p9.js +1 -0
- package/dist/web/assets/{number-overlay-editor-1c4sgZJt.js → number-overlay-editor-BoLRYuZT.js} +1 -1
- package/dist/web/assets/{overview-panel-Cr2xsHc6.js → overview-panel-l3g1gT5e.js} +1 -1
- package/dist/web/assets/{panel-store-Dv28vz3L.js → panel-store-UOV8wrfR.js} +1 -1
- package/dist/web/assets/{pdf-preview-DKeIIJTv.js → pdf-preview-B2CJ_EKv.js} +1 -1
- package/dist/web/assets/{pencil-CHKLOgLs.js → pencil-BlIIg6RH.js} +1 -1
- package/dist/web/assets/{perl-BH54gN9q.js → perl-Da-uNqmL.js} +1 -1
- package/dist/web/assets/{php-Br5ZrEZm.js → php-JMu45mEx.js} +1 -1
- package/dist/web/assets/play-DpEEBJTT.js +1 -0
- package/dist/web/assets/{plus-BxqD2FIZ.js → plus-BR0qewJI.js} +1 -1
- package/dist/web/assets/portal-container-context-D-495m5C.js +1 -0
- package/dist/web/assets/{postgres-viewer-BJPr_FYL.js → postgres-viewer-DstZwUai.js} +3 -3
- package/dist/web/assets/{process-table-BqTcAJ-h.js → process-table-kmQ2-8qJ.js} +1 -1
- package/dist/web/assets/{project-store-KHjFTCxf.js → project-store-DTUCS65m.js} +1 -1
- package/dist/web/assets/{pug-8VCubZ3H.js → pug-CLzyQhia.js} +1 -1
- package/dist/web/assets/{qml-D8AF1RZ6.js → qml-BHXfGB1l.js} +1 -1
- package/dist/web/assets/{razor-6v042IJW.js → razor-BqetJLN3.js} +1 -1
- package/dist/web/assets/{react-DHs6efqI.js → react-B549sK_T.js} +1 -1
- package/dist/web/assets/{refresh-cw-BALzw7L3.js → refresh-cw-BQU5g2CY.js} +1 -1
- package/dist/web/assets/remote-desktop-mobile-sheet-KKTRNjOL.js +2 -0
- package/dist/web/assets/{remote-desktop-mobile-view-DaoB49k4.js → remote-desktop-mobile-view-C1ST4-Fm.js} +1 -1
- package/dist/web/assets/{remote-desktop-readiness-gate--LJgsuoj.js → remote-desktop-readiness-gate-BH3BE5wA.js} +1 -1
- package/dist/web/assets/{remote-desktop-window-content-Cihx4PNZ.js → remote-desktop-window-content-BaZJQt_N.js} +1 -1
- package/dist/web/assets/{rotate-ccw-CuvNBM80.js → rotate-ccw-CpjRo90J.js} +1 -1
- package/dist/web/assets/{rst-mTGFo4AQ.js → rst-iQdJZ0BP.js} +1 -1
- package/dist/web/assets/{ruby-BBaOP636.js → ruby-CNwzZGdH.js} +1 -1
- package/dist/web/assets/{run-in-terminal-Zl5iIx-B.js → run-in-terminal-CBXmVGWa.js} +1 -1
- package/dist/web/assets/{sas-D5QEkIH2.js → sas-BpBIT2eR.js} +1 -1
- package/dist/web/assets/{save-Dxq-Zepc.js → save-DYLiVzU8.js} +1 -1
- package/dist/web/assets/{scroll-area-B5yhPpZo.js → scroll-area-lc0ZHORr.js} +1 -1
- package/dist/web/assets/{scss-C5Mu6y2u.js → scss-D1MotuEp.js} +1 -1
- package/dist/web/assets/{send-Cits8q0l.js → send-C_sLFt56.js} +1 -1
- package/dist/web/assets/{send-to-chat-Cv7ikFUC.js → send-to-chat-DJAdlvJ8.js} +1 -1
- package/dist/web/assets/{settings-store-Dp4i8zeA.js → settings-store-zbPkG7o-.js} +2 -2
- package/dist/web/assets/settings-tab-Cn-AqUP_.js +1 -0
- package/dist/web/assets/{settings-tab-BtMvvKAF.js → settings-tab-xyRpt2gq.js} +1 -1
- package/dist/web/assets/{shaderlab-mLnpMpN3.js → shaderlab-BNqmcPQi.js} +1 -1
- package/dist/web/assets/{shallow-BBJ_qoEF.js → shallow-CmPMAPte.js} +1 -1
- package/dist/web/assets/{shellsession-qdcDfUuk.js → shellsession-BBLOVOO-.js} +1 -1
- package/dist/web/assets/{shield-check-CH7F1P7m.js → shield-check-CUI36aSc.js} +1 -1
- package/dist/web/assets/{shield-off-C9HiF0-6.js → shield-off-GdkkVhb3.js} +1 -1
- package/dist/web/assets/{soy-CGGf1G43.js → soy-BpTGo9uy.js} +1 -1
- package/dist/web/assets/{sparkles-BnuLH6Ck.js → sparkles-Dh-_J2Rd.js} +1 -1
- package/dist/web/assets/{sparql-tQHB50VD.js → sparql-D7A3yKob.js} +1 -1
- package/dist/web/assets/{sql-query-editor-DZqnYIB7.js → sql-query-editor-B86NiZHI.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-DXutos0e.js → sqlite-viewer-DB775F6C.js} +1 -1
- package/dist/web/assets/{stata-DVQNLMcR.js → stata-B7N56ptS.js} +1 -1
- package/dist/web/assets/{surrealql-lu576tBi.js → surrealql-CTmnD-lv.js} +1 -1
- package/dist/web/assets/{svelte-CSCrOBjT.js → svelte-BppwY9TR.js} +1 -1
- package/dist/web/assets/{switch-BPol3BFC.js → switch-BmjKoIpR.js} +1 -1
- package/dist/web/assets/{system-monitor-body-Ct8_GX_f.js → system-monitor-body-BDxHQvy9.js} +2 -2
- package/dist/web/assets/system-monitor-tab-BoTHLx6B.js +1 -0
- package/dist/web/assets/system-monitor-window-content-B9Y98UW6.js +1 -0
- package/dist/web/assets/{tab-host-window-content-C5kYP0-z.js → tab-host-window-content-C1j8zr68.js} +1 -1
- package/dist/web/assets/{tab-store-DS3YlUwR.js → tab-store-DzYSsw5a.js} +1 -1
- package/dist/web/assets/{table-BXDyImqk.js → table-D5Q4ap4W.js} +1 -1
- package/dist/web/assets/team-member-sheet-Cxz6h5Ne.js +2 -0
- package/dist/web/assets/{team-member-window-content-BJ_XFw8-.js → team-member-window-content-CUSuRHCB.js} +1 -1
- package/dist/web/assets/{templ-CPt8AS4Q.js → templ-CvTMKKra.js} +1 -1
- package/dist/web/assets/{terminal-tab-8bKQ3CWR.js → terminal-tab-B9I_HlES.js} +3 -3
- package/dist/web/assets/{tex-BrTByT7i.js → tex--c4POEUE.js} +1 -1
- package/dist/web/assets/{text-wrap-CzMjB6GD.js → text-wrap-DBvQD3kc.js} +1 -1
- package/dist/web/assets/{tool-cards-pIu_cmEL.js → tool-cards-D3KSzd2K.js} +4 -4
- package/dist/web/assets/{trash-2-BjShZ7if.js → trash-2-By4VMbC4.js} +1 -1
- package/dist/web/assets/{triangle-alert-qQ6Plydp.js → triangle-alert-CUTURFbG.js} +1 -1
- package/dist/web/assets/{ts-tags-DSqEZ7A8.js → ts-tags--kx7D-Hw.js} +1 -1
- package/dist/web/assets/{twig-DW9qc1bf.js → twig-UG9uMHGd.js} +1 -1
- package/dist/web/assets/{upload-7Zs6oaK5.js → upload-BNlX8D07.js} +1 -1
- package/dist/web/assets/{use-blob-url-DKbV7PM_.js → use-blob-url-Bdxopwwc.js} +1 -1
- package/dist/web/assets/{use-coarse-long-press-DGyC48NF.js → use-coarse-long-press-BmI_GVW5.js} +1 -1
- package/dist/web/assets/{use-is-mobile-ClE-UcPF.js → use-is-mobile-B9UZNwSm.js} +1 -1
- package/dist/web/assets/{use-monaco-theme-DaxAk3gB.js → use-monaco-theme-CVCye2kq.js} +1 -1
- package/dist/web/assets/use-open-team-member-D9EOB8-i.js +1 -0
- package/dist/web/assets/{use-remote-desktop-display-choice-BUA_1eaH.js → use-remote-desktop-display-choice-neUqyE3p.js} +1 -1
- package/dist/web/assets/{use-visual-viewport-CCX21c9w.js → use-visual-viewport-Sfb6CZ80.js} +1 -1
- package/dist/web/assets/{use-websocket-CWpG7PWN.js → use-websocket-xOOwBdwP.js} +1 -1
- package/dist/web/assets/vendor-markdown-Ls5AcU91.js +291 -0
- package/dist/web/assets/{vendor-ui-CXJtBULr.js → vendor-ui-CaeeFO0B.js} +1 -1
- package/dist/web/assets/video-preview-DvpgBDhM.js +1 -0
- package/dist/web/assets/{vue-html-CG5BKtq1.js → vue-html-8KEW6-I9.js} +1 -1
- package/dist/web/assets/{vue-CJNDL1g-.js → vue-jjTomlbt.js} +1 -1
- package/dist/web/assets/{vue-vine-Dd5HZ7T5.js → vue-vine-C5tohCkU.js} +1 -1
- package/dist/web/assets/{window-pip-registry-9H6Y-HqR.js → window-pip-registry-FdZdGF7h.js} +1 -1
- package/dist/web/assets/{window-store-CNzkeUyO.js → window-store-D0x_fxr0.js} +1 -1
- package/dist/web/assets/x-DiOUR_mp.js +1 -0
- package/dist/web/assets/{xml-DTOm5niz.js → xml-ByFFosqL.js} +1 -1
- package/dist/web/assets/{xsl-BD_kBC04.js → xsl-CZUwiLkj.js} +1 -1
- package/dist/web/index.html +59 -59
- package/dist/web/monacoeditorwork/css.worker.bundle.js +122 -122
- package/dist/web/monacoeditorwork/editor.worker.bundle.js +78 -78
- package/dist/web/monacoeditorwork/html.worker.bundle.js +110 -110
- package/dist/web/monacoeditorwork/json.worker.bundle.js +108 -108
- package/dist/web/monacoeditorwork/ts.worker.bundle.js +81 -81
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/scripts/check-ppm-dir-usage.sh +0 -0
- package/scripts/install.sh +0 -0
- package/scripts/release.sh +0 -0
- package/src/providers/claude-agent-sdk.ts +51 -43
- package/src/providers/codex-app-server/codex-provider.ts +7 -1
- package/src/server/routes/chat.ts +28 -3
- package/src/server/ws/chat.ts +9 -4
- package/src/services/named-tunnel/named-tunnel-retry.ts +26 -0
- package/src/services/named-tunnel/network-ready.ts +63 -0
- package/src/services/supervisor.ts +98 -0
- package/src/services/transcript-images.ts +14 -7
- package/src/services/upgrade.service.ts +7 -2
- package/src/shared/image-limits.ts +37 -0
- package/src/types/api.ts +3 -1
- package/src/types/chat.ts +6 -0
- package/src/types/extension-messages.ts +2 -0
- package/src/web/components/chat/attachment-chips.tsx +10 -0
- package/src/web/components/chat/chat-tab.tsx +37 -13
- package/src/web/components/chat/message-input.tsx +102 -11
- package/src/web/components/chat/session-debug-dialog.tsx +2 -1
- package/src/web/components/chat/user-message-parse.ts +33 -11
- package/src/web/components/database/database-viewer.tsx +34 -11
- package/src/web/components/database/extract-query-table.ts +24 -0
- package/src/web/components/database/glide-data-grid.tsx +11 -4
- package/src/web/components/database/glide-grid-types.ts +4 -0
- package/src/web/components/database/split-sql-statements.ts +116 -0
- package/src/web/components/database/sql-completion-provider.ts +1 -26
- package/src/web/components/database/sql-query-editor.tsx +2 -1
- package/src/web/components/database/use-database.ts +16 -1
- package/src/web/components/database/use-glide-cell-content.ts +11 -6
- package/src/web/components/editor/code-editor.tsx +30 -56
- package/src/web/hooks/use-chat.ts +6 -3
- package/src/web/lib/attachment-marker-split.ts +44 -0
- package/src/web/lib/image-animation.ts +51 -0
- package/src/web/lib/image-resize-limits.ts +47 -0
- package/src/web/lib/image-resize.ts +133 -0
- package/dist/web/assets/api-client-DLWwuUkJ.js +0 -1
- package/dist/web/assets/api-settings-BFuaZrNC.js +0 -1
- package/dist/web/assets/chat-tab-bSOVoC5N.js +0 -15
- package/dist/web/assets/chevron-right-D7Pn5agw.js +0 -1
- package/dist/web/assets/circle-4g2coECH.js +0 -1
- package/dist/web/assets/clock-DbiNiwCG.js +0 -1
- package/dist/web/assets/code-DdKXqtf_.js +0 -1
- package/dist/web/assets/code-editor-COTa37oe.js +0 -10
- package/dist/web/assets/database-viewer-Dta7lSSk.js +0 -1
- package/dist/web/assets/explorer-body-BGjR2Gbt.js +0 -2
- package/dist/web/assets/explorer-window-content-DAhHh5EQ.js +0 -1
- package/dist/web/assets/glide-data-grid-BSsqxe2v.js +0 -138
- package/dist/web/assets/group-chat-tab-CMtzoaFc.js +0 -1
- package/dist/web/assets/index-BkHlMfPD.js +0 -52
- package/dist/web/assets/keybindings-store-_KfovSz7.js +0 -1
- package/dist/web/assets/loader-circle-DD65e9-7.js +0 -1
- package/dist/web/assets/markdown-renderer-DroTmKbJ.js +0 -1
- package/dist/web/assets/markdown-renderer-ntDi3Tx-.js +0 -3
- package/dist/web/assets/mobile-explorer-sheet-BP6iU4ma.js +0 -1
- package/dist/web/assets/notification-store-II5Kw9rD.js +0 -1
- package/dist/web/assets/play-CPbVzGgq.js +0 -1
- package/dist/web/assets/portal-container-context-BmG4--I-.js +0 -1
- package/dist/web/assets/remote-desktop-mobile-sheet-CYZUjYTO.js +0 -2
- package/dist/web/assets/settings-tab-UPPycGRF.js +0 -1
- package/dist/web/assets/system-monitor-tab-DC_EerdI.js +0 -1
- package/dist/web/assets/system-monitor-window-content-D25DMNpw.js +0 -1
- package/dist/web/assets/team-member-sheet-DvmioeQL.js +0 -2
- package/dist/web/assets/use-open-team-member-CopUuDHG.js +0 -1
- package/dist/web/assets/vendor-markdown-CKTlmXbz.js +0 -291
- package/dist/web/assets/video-preview-C2_fdunE.js +0 -1
- package/dist/web/assets/x-Dzu9ecti.js +0 -1
- /package/dist/web/assets/{abap-Cjj2olMr.js → abap-C5DFF0s3.js} +0 -0
- /package/dist/web/assets/{actionscript-3-DCkW7kWC.js → actionscript-3-B0qyRNbc.js} +0 -0
- /package/dist/web/assets/{ada-AEWvZXuX.js → ada-bAJzplug.js} +0 -0
- /package/dist/web/assets/{andromeeda-D7cSpME6.js → andromeeda-DUCpISy6.js} +0 -0
- /package/dist/web/assets/{apache-DjvX0RSe.js → apache-BhAr84Z_.js} +0 -0
- /package/dist/web/assets/{apex-70xIZ0pH.js → apex-CRv8YnNq.js} +0 -0
- /package/dist/web/assets/{applescript-C3qKqxmA.js → applescript-CD-Cw8bt.js} +0 -0
- /package/dist/web/assets/{ara-iGt2zixk.js → ara-BUzeQYoG.js} +0 -0
- /package/dist/web/assets/{asciidoc-Bs2t-06W.js → asciidoc-CT2hTg-v.js} +0 -0
- /package/dist/web/assets/{asm-B-T0eqhE.js → asm-CAu35JeY.js} +0 -0
- /package/dist/web/assets/{aurora-x-D3h_9M3E.js → aurora-x-BeFJoIA1.js} +0 -0
- /package/dist/web/assets/{awk-CZwfwpPi.js → awk-Vau-DrGN.js} +0 -0
- /package/dist/web/assets/{ayu-dark-DulkglEA.js → ayu-dark-CLe-OTsQ.js} +0 -0
- /package/dist/web/assets/{ayu-light-DyNQiRpn.js → ayu-light-CJbQfu4M.js} +0 -0
- /package/dist/web/assets/{ayu-mirage-CcEt4xkI.js → ayu-mirage-GWaKwdrx.js} +0 -0
- /package/dist/web/assets/{ballerina-OhQPjyHS.js → ballerina-DWu0USI5.js} +0 -0
- /package/dist/web/assets/{bat-DqKcJTUn.js → bat-_07Huw7E.js} +0 -0
- /package/dist/web/assets/{beancount-BdXlMi8T.js → beancount-EcvogrcF.js} +0 -0
- /package/dist/web/assets/{berry-DvgY6BkY.js → berry-BBB87SY7.js} +0 -0
- /package/dist/web/assets/{bibtex-BSRJq0yM.js → bibtex-DbueS87A.js} +0 -0
- /package/dist/web/assets/{bicep-DpAdumKt.js → bicep-tcmXnUo4.js} +0 -0
- /package/dist/web/assets/{bird2-rlbtp8di.js → bird2-B2qwilIR.js} +0 -0
- /package/dist/web/assets/{c-AjOLBXIs.js → c-Z58oivSt.js} +0 -0
- /package/dist/web/assets/{c3-DqIXz4Ia.js → c3-U40cGT9p.js} +0 -0
- /package/dist/web/assets/{cadence-DAJtUpOE.js → cadence-BFcD-LyM.js} +0 -0
- /package/dist/web/assets/{catppuccin-frappe-DUPoeZfb.js → catppuccin-frappe-RkC9AX6J.js} +0 -0
- /package/dist/web/assets/{catppuccin-latte-CK3U68Ql.js → catppuccin-latte-Bsi4l-nO.js} +0 -0
- /package/dist/web/assets/{catppuccin-macchiato-BzteLnIX.js → catppuccin-macchiato-B8JIdTW-.js} +0 -0
- /package/dist/web/assets/{catppuccin-mocha-ozLd0aBR.js → catppuccin-mocha-oH8wwrDj.js} +0 -0
- /package/dist/web/assets/{clarity-6KqEoBfz.js → clarity-C3WNeRCR.js} +0 -0
- /package/dist/web/assets/{clojure-B_uBL5C7.js → clojure-CFoAz7u9.js} +0 -0
- /package/dist/web/assets/{cmake-B3nxBNmj.js → cmake-Bcsqp9yR.js} +0 -0
- /package/dist/web/assets/{codeowners-DkS-51at.js → codeowners-DC2Z7heP.js} +0 -0
- /package/dist/web/assets/{codeql-rpr1z_mR.js → codeql-BfG68Al5.js} +0 -0
- /package/dist/web/assets/{common-lisp-BfNbv_W6.js → common-lisp-Z5P-lKQe.js} +0 -0
- /package/dist/web/assets/{coq-EAW-1nw0.js → coq-BJslqrnv.js} +0 -0
- /package/dist/web/assets/{csharp-BE3Gn5bq.js → csharp-DhhZTOTs.js} +0 -0
- /package/dist/web/assets/{css-Cr27CfPY.js → css-DiFIpMfE.js} +0 -0
- /package/dist/web/assets/{csv-B5VtaPtH.js → csv-DViLbHxI.js} +0 -0
- /package/dist/web/assets/{cue-jm6lYNrx.js → cue-CoG3mg2I.js} +0 -0
- /package/dist/web/assets/{cypher-DXkvK-pn.js → cypher-jTxC8NAB.js} +0 -0
- /package/dist/web/assets/{d-CgG1_yzd.js → d-6hKIUAbU.js} +0 -0
- /package/dist/web/assets/{dark-plus-CALzcIVB.js → dark-plus-D_-np2Sr.js} +0 -0
- /package/dist/web/assets/{dart-BEVoLlWg.js → dart-CVpxLpVn.js} +0 -0
- /package/dist/web/assets/{dax-H0BW3Q_P.js → dax-BPqJ8qIY.js} +0 -0
- /package/dist/web/assets/{desktop-BtYq1l_0.js → desktop-u_y5_Hr5.js} +0 -0
- /package/dist/web/assets/{diff-CnBYdfTg.js → diff-Duj1XMrd.js} +0 -0
- /package/dist/web/assets/{dist-CJJKpgR7.js → dist-CEZ4plgH.js} +0 -0
- /package/dist/web/assets/{docker-COBitpld.js → docker-8UGSCc7N.js} +0 -0
- /package/dist/web/assets/{dotenv-CG0x1m7c.js → dotenv-DVnj8kyR.js} +0 -0
- /package/dist/web/assets/{dracula-CLCi47X-.js → dracula-D0cEmSg7.js} +0 -0
- /package/dist/web/assets/{dracula-soft-BMv5cCAV.js → dracula-soft-DfGS5Yfr.js} +0 -0
- /package/dist/web/assets/{dream-maker-1Bd4OSww.js → dream-maker-qG8kMGTF.js} +0 -0
- /package/dist/web/assets/{emacs-lisp-B-2zKLn-.js → emacs-lisp-iVqyMLyT.js} +0 -0
- /package/dist/web/assets/{everforest-dark-BGVynCbV.js → everforest-dark-Cruygd5U.js} +0 -0
- /package/dist/web/assets/{everforest-light--rn3R7Cm.js → everforest-light-BiJa8RHL.js} +0 -0
- /package/dist/web/assets/{fennel-SWg9Us_u.js → fennel-H6XSEIoz.js} +0 -0
- /package/dist/web/assets/{fish-B04oqgKk.js → fish-ho_7CxX6.js} +0 -0
- /package/dist/web/assets/{fluent-BefzAGMN.js → fluent-1l5ssJTF.js} +0 -0
- /package/dist/web/assets/{fortran-free-form-alw7jMxb.js → fortran-free-form-Bo1x233A.js} +0 -0
- /package/dist/web/assets/{gdscript-BAyhvjCx.js → gdscript-DffFMp_k.js} +0 -0
- /package/dist/web/assets/{gdshader-Crl09X-B.js → gdshader-CvnpAiAF.js} +0 -0
- /package/dist/web/assets/{genie-BSIGRHu7.js → genie-2eOvAEzW.js} +0 -0
- /package/dist/web/assets/{gherkin-DJhSnSWH.js → gherkin-DL-5OUlV.js} +0 -0
- /package/dist/web/assets/{github-dark-r8C6qwug.js → github-dark-DrTZprgG.js} +0 -0
- /package/dist/web/assets/{github-dark-default-FVtXjcm8.js → github-dark-default-_mDH8IMP.js} +0 -0
- /package/dist/web/assets/{github-dark-dimmed-CzrUPgSb.js → github-dark-dimmed-C48hJuLn.js} +0 -0
- /package/dist/web/assets/{github-dark-high-contrast-1s9rF5EB.js → github-dark-high-contrast-BQ-zGGNe.js} +0 -0
- /package/dist/web/assets/{github-light-BvIWCkl7.js → github-light-BYc90Yx8.js} +0 -0
- /package/dist/web/assets/{github-light-default-CVdhzrxV.js → github-light-default-Daecj4J5.js} +0 -0
- /package/dist/web/assets/{github-light-high-contrast-CBAf6hjF.js → github-light-high-contrast-DoafCbsU.js} +0 -0
- /package/dist/web/assets/{gleam-DvL1q7aa.js → gleam-hUWWjmnp.js} +0 -0
- /package/dist/web/assets/{gn-BG5NvwAf.js → gn-7PJ3R70o.js} +0 -0
- /package/dist/web/assets/{gnuplot-BARnM-zG.js → gnuplot-V-Pxck7b.js} +0 -0
- /package/dist/web/assets/{go-DXvjjq4q.js → go-ARF6DprD.js} +0 -0
- /package/dist/web/assets/{groovy-CRylSKhr.js → groovy-CKGBIPOz.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-hard-BVPjnqm7.js → gruvbox-dark-hard-Cm9wqdI3.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-medium-U_PDgq0a.js → gruvbox-dark-medium-Cmsd6dG8.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-soft-CkzNtpbr.js → gruvbox-dark-soft-BBGlGGCz.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-hard-DfMmR2G8.js → gruvbox-light-hard-BCR7KmqG.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-medium-BGCak-dd.js → gruvbox-light-medium-CP32bga8.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-soft-DnpM3fkN.js → gruvbox-light-soft-qjxk8ps6.js} +0 -0
- /package/dist/web/assets/{haskell-DXgGIDD_.js → haskell-C5DzwGRa.js} +0 -0
- /package/dist/web/assets/{haxe-B7qlTpRz.js → haxe-C8f_jCVv.js} +0 -0
- /package/dist/web/assets/{hcl-ADWfVe_Q.js → hcl-DetJkf6E.js} +0 -0
- /package/dist/web/assets/{hjson-BaM9gLbq.js → hjson-DeZhwIdo.js} +0 -0
- /package/dist/web/assets/{hlsl-iqaRA4MG.js → hlsl-SMIDLRyX.js} +0 -0
- /package/dist/web/assets/{horizon-BPpTnhB9.js → horizon-BMAVDxMx.js} +0 -0
- /package/dist/web/assets/{horizon-bright-yBLg3QbE.js → horizon-bright-3BaV_VGD.js} +0 -0
- /package/dist/web/assets/{houston-eFOp0ySL.js → houston-BWBbEPvb.js} +0 -0
- /package/dist/web/assets/{hy-BALeMn3i.js → hy-DcsmE-Nm.js} +0 -0
- /package/dist/web/assets/{imba-CdGUm_GD.js → imba-CnkgnYMf.js} +0 -0
- /package/dist/web/assets/{ini-DG7imsqe.js → ini-BnvTdau7.js} +0 -0
- /package/dist/web/assets/{java-D5GTT474.js → java-BLFACXat.js} +0 -0
- /package/dist/web/assets/{javascript-V7WwJvRm.js → javascript-BKcFWENk.js} +0 -0
- /package/dist/web/assets/{json-B9FhwAgR.js → json-3AJtJADf.js} +0 -0
- /package/dist/web/assets/{json5--Abk7MUy.js → json5-DLyDVlwe.js} +0 -0
- /package/dist/web/assets/{jsonc-C8jb-Z6x.js → jsonc-B5DgF1jW.js} +0 -0
- /package/dist/web/assets/{jsonl-CaJNxfkm.js → jsonl-CV_O71a2.js} +0 -0
- /package/dist/web/assets/{jsonnet-CPrKMSCU.js → jsonnet-DZfPLgYz.js} +0 -0
- /package/dist/web/assets/{jssm-DEu-9_uo.js → jssm-Cr1zYOsY.js} +0 -0
- /package/dist/web/assets/{jsx-MfAsCWDW.js → jsx-VN-JS2_q.js} +0 -0
- /package/dist/web/assets/{kanagawa-dragon-DnbcAduF.js → kanagawa-dragon-D9CcT3xg.js} +0 -0
- /package/dist/web/assets/{kanagawa-lotus-yxsY3ew8.js → kanagawa-lotus-DLXsB8fr.js} +0 -0
- /package/dist/web/assets/{kanagawa-wave-C2RyvZaM.js → kanagawa-wave-weDs3Wjz.js} +0 -0
- /package/dist/web/assets/{kdl-CvssmvcU.js → kdl-0XF56jnT.js} +0 -0
- /package/dist/web/assets/{kotlin-jufO49mU.js → kotlin-BPkH9vzk.js} +0 -0
- /package/dist/web/assets/{kusto-BAFnylR7.js → kusto-DMVpADb9.js} +0 -0
- /package/dist/web/assets/{laserwave-BgxFC4Ge.js → laserwave-Cl6T2cGP.js} +0 -0
- /package/dist/web/assets/{lean-Bgt24V1D.js → lean-BvwzQGl1.js} +0 -0
- /package/dist/web/assets/{less-Bk_UaqsM.js → less-DI_03xkC.js} +0 -0
- /package/dist/web/assets/{light-plus-nMxFfInN.js → light-plus-hIiIsQN_.js} +0 -0
- /package/dist/web/assets/{llvm-3_PASDOO.js → llvm-B5hjjSWc.js} +0 -0
- /package/dist/web/assets/{log-CKm0CxB1.js → log-D28raQiE.js} +0 -0
- /package/dist/web/assets/{logo-DFP1_5U6.js → logo-6Cdd4ASb.js} +0 -0
- /package/dist/web/assets/{luau-BcZnoyh3.js → luau-CK9nKpOX.js} +0 -0
- /package/dist/web/assets/{make-CpNSwgwT.js → make-CVnxKCB6.js} +0 -0
- /package/dist/web/assets/{markdown-DhU3Djpv.js → markdown-B9mMQzD5.js} +0 -0
- /package/dist/web/assets/{material-theme-DD5L3OqF.js → material-theme-BZSs2o0j.js} +0 -0
- /package/dist/web/assets/{material-theme-darker-CG2_tD3R.js → material-theme-darker-BeAQBzQ_.js} +0 -0
- /package/dist/web/assets/{material-theme-lighter-CzNkUc9Y.js → material-theme-lighter-BAe0IXcs.js} +0 -0
- /package/dist/web/assets/{material-theme-ocean-BtLiAaF_.js → material-theme-ocean-CiPIf0Np.js} +0 -0
- /package/dist/web/assets/{material-theme-palenight-Brvjz035.js → material-theme-palenight-DJBb4_XN.js} +0 -0
- /package/dist/web/assets/{matlab-CCY0KtMD.js → matlab-CY0dbp_s.js} +0 -0
- /package/dist/web/assets/{mdx-CH6YY0aS.js → mdx-DU9zbF7h.js} +0 -0
- /package/dist/web/assets/{mermaid-Bqh3gFI0.js → mermaid-UmmjGwdh.js} +0 -0
- /package/dist/web/assets/{min-dark-BUwfTzI6.js → min-dark-C59GkzOm.js} +0 -0
- /package/dist/web/assets/{min-light-oLanXCOk.js → min-light-B9QglrdQ.js} +0 -0
- /package/dist/web/assets/{mipsasm-CTh3hPWK.js → mipsasm-Dc6Jsr_D.js} +0 -0
- /package/dist/web/assets/{mojo-DXdszZKa.js → mojo-D5ij-nGW.js} +0 -0
- /package/dist/web/assets/{monokai-TNE_tRxc.js → monokai-QAtE_yCP.js} +0 -0
- /package/dist/web/assets/{moonbit-jrk-Gx1X.js → moonbit-BMtIdiTL.js} +0 -0
- /package/dist/web/assets/{move-DItn61bH.js → move-BB_jMHYZ.js} +0 -0
- /package/dist/web/assets/{narrat-3kB4dkh0.js → narrat-BvvoKGVn.js} +0 -0
- /package/dist/web/assets/{nextflow-groovy-CSKtwETr.js → nextflow-groovy-CqxtAsnF.js} +0 -0
- /package/dist/web/assets/{night-owl-Dm91nSIq.js → night-owl-CLoE9kjt.js} +0 -0
- /package/dist/web/assets/{night-owl-light-riwrcPRg.js → night-owl-light-BwIFT5Xd.js} +0 -0
- /package/dist/web/assets/{nix-sLgl9zGF.js → nix-BKlnVT9r.js} +0 -0
- /package/dist/web/assets/{nord-TWkJPI6M.js → nord-B7R1KRAK.js} +0 -0
- /package/dist/web/assets/{nushell-CDZi4-Gf.js → nushell-CzUme-NJ.js} +0 -0
- /package/dist/web/assets/{objective-c-DW9PboNp.js → objective-c-D-UKKiOc.js} +0 -0
- /package/dist/web/assets/{objective-cpp-2XCCX6q1.js → objective-cpp-BucWn4Fx.js} +0 -0
- /package/dist/web/assets/{ocaml-CxPdnjrh.js → ocaml-EJCNXMGo.js} +0 -0
- /package/dist/web/assets/{odin-BJjlKpkM.js → odin-CEjnRU_3.js} +0 -0
- /package/dist/web/assets/{one-dark-pro-K1KOmBZ7.js → one-dark-pro-Bv469NX5.js} +0 -0
- /package/dist/web/assets/{one-light-DQB-vUyZ.js → one-light-BlzO5RWI.js} +0 -0
- /package/dist/web/assets/{openscad-DCoLwn4j.js → openscad-Czl6alLw.js} +0 -0
- /package/dist/web/assets/{pascal-z2ktbbWp.js → pascal-BI9fLvG4.js} +0 -0
- /package/dist/web/assets/{pkl-Dyq4-v6z.js → pkl-ChQLsyjU.js} +0 -0
- /package/dist/web/assets/{plastic-C4Rq5PnD.js → plastic-DGL3mtdL.js} +0 -0
- /package/dist/web/assets/{plsql-BCIjO63y.js → plsql-BJDjqcWp.js} +0 -0
- /package/dist/web/assets/{po-_kXpd_0n.js → po-DK5O3OpF.js} +0 -0
- /package/dist/web/assets/{poimandres-C9XggjB3.js → poimandres-CnuqZT4T.js} +0 -0
- /package/dist/web/assets/{polar-DV_1L04z.js → polar-DCsUxSsQ.js} +0 -0
- /package/dist/web/assets/{postcss-BuqS91mQ.js → postcss-8UjdFmis.js} +0 -0
- /package/dist/web/assets/{powerquery-DK13B2Dc.js → powerquery-CAp0CGQj.js} +0 -0
- /package/dist/web/assets/{powershell-tkuhhtuP.js → powershell-CbBsKZJP.js} +0 -0
- /package/dist/web/assets/{prisma-WNXfBtpr.js → prisma-BnNpXCJN.js} +0 -0
- /package/dist/web/assets/{prolog-BzEdNKfO.js → prolog-CC-l9E8Y.js} +0 -0
- /package/dist/web/assets/{proto-B5meVsrA.js → proto-CV_1k2rL.js} +0 -0
- /package/dist/web/assets/{puppet-C7h_p4r2.js → puppet-2D8HU2bv.js} +0 -0
- /package/dist/web/assets/{purescript-qH1KxAs6.js → purescript-BEJAORgU.js} +0 -0
- /package/dist/web/assets/{python-DeTIYd5V.js → python-BBdbb7nn.js} +0 -0
- /package/dist/web/assets/{qmldir-4Rm5AvD3.js → qmldir-D5ZYI4Ie.js} +0 -0
- /package/dist/web/assets/{qss-YRbeNtr0.js → qss-BOJVGyXE.js} +0 -0
- /package/dist/web/assets/{r-DHwHK0Jh.js → r-B5dlEtkj.js} +0 -0
- /package/dist/web/assets/{racket-gKn4SFLQ.js → racket-BUAEygJ6.js} +0 -0
- /package/dist/web/assets/{raku-DWTmAj3A.js → raku-BG0Ss0ID.js} +0 -0
- /package/dist/web/assets/{red-BFuHRZFS.js → red-C5yyQbtG.js} +0 -0
- /package/dist/web/assets/{reg-DYoOF5tH.js → reg-DHoBWtLf.js} +0 -0
- /package/dist/web/assets/{regexp-6rXQHD2-.js → regexp-DDtJrlKv.js} +0 -0
- /package/dist/web/assets/{rel-Z_tTruCU.js → rel-CR6WJDRD.js} +0 -0
- /package/dist/web/assets/{riscv-DfTfKuvU.js → riscv-2V9tC-nx.js} +0 -0
- /package/dist/web/assets/{ron-CsUtW8gQ.js → ron-QLTmqGUw.js} +0 -0
- /package/dist/web/assets/{rose-pine-Dng_vCo6.js → rose-pine-be0__X3A.js} +0 -0
- /package/dist/web/assets/{rose-pine-dawn-Ds88Nezf.js → rose-pine-dawn-n_WQJwsW.js} +0 -0
- /package/dist/web/assets/{rose-pine-moon-DWpzrqNz.js → rose-pine-moon-t2aLtzgB.js} +0 -0
- /package/dist/web/assets/{rosmsg-h2sO84oD.js → rosmsg-Ce1JD8vt.js} +0 -0
- /package/dist/web/assets/{rust-Dx86yfCi.js → rust-5fHH-ZoW.js} +0 -0
- /package/dist/web/assets/{sass-BwwVhdT9.js → sass-DPmGFiOJ.js} +0 -0
- /package/dist/web/assets/{scala-WJqNEN-w.js → scala-BRMVFbZF.js} +0 -0
- /package/dist/web/assets/{scheme-uwj-t1Rp.js → scheme-BMSJWevF.js} +0 -0
- /package/dist/web/assets/{sdbl-BYy5hgEz.js → sdbl-DTZ-pEHI.js} +0 -0
- /package/dist/web/assets/{shellscript-DWTW_w2K.js → shellscript-6-9yg5Cz.js} +0 -0
- /package/dist/web/assets/{slack-dark-BvhGq5vQ.js → slack-dark-DKJgiR7e.js} +0 -0
- /package/dist/web/assets/{slack-ochin-C9g0ZRFr.js → slack-ochin-WjehVgyK.js} +0 -0
- /package/dist/web/assets/{smalltalk-ZEiZ6i7U.js → smalltalk-BChf4SN1.js} +0 -0
- /package/dist/web/assets/{snazzy-light-29OA24q5.js → snazzy-light-C1WAwOx6.js} +0 -0
- /package/dist/web/assets/{solarized-dark-Bnq9IOn_.js → solarized-dark-BxREZrGx.js} +0 -0
- /package/dist/web/assets/{solarized-light-CYdI7T5g.js → solarized-light-DG29B1pR.js} +0 -0
- /package/dist/web/assets/{solidity-DcuIDB-_.js → solidity-bDbtGwdR.js} +0 -0
- /package/dist/web/assets/{splunk-D5ONE91g.js → splunk-Ceqx5njI.js} +0 -0
- /package/dist/web/assets/{sql-DIwJJDU-.js → sql-OwMEKbz8.js} +0 -0
- /package/dist/web/assets/{ssh-config-D8717tLI.js → ssh-config-WAR3lu2k.js} +0 -0
- /package/dist/web/assets/{stylus-Cm1lO4Y6.js → stylus-Cjmoz3d8.js} +0 -0
- /package/dist/web/assets/{swift-X8oWpSeU.js → swift-S_ZSBG1q.js} +0 -0
- /package/dist/web/assets/{synthwave-84-DF-t1UKY.js → synthwave-84-DiUeWMSh.js} +0 -0
- /package/dist/web/assets/{system-verilog-JYyHFpPf.js → system-verilog-RRjqPjUV.js} +0 -0
- /package/dist/web/assets/{systemd-Da-5Ma_c.js → systemd-BD3SkXoU.js} +0 -0
- /package/dist/web/assets/{talonscript-CXraVPho.js → talonscript-DWefISOm.js} +0 -0
- /package/dist/web/assets/{tasl-BCmWezH9.js → tasl-DCjSS-09.js} +0 -0
- /package/dist/web/assets/{tcl-BTufzfbf.js → tcl-DTYqT_66.js} +0 -0
- /package/dist/web/assets/{terraform-CtUA9c8W.js → terraform-CkbP5QnR.js} +0 -0
- /package/dist/web/assets/{tokyo-night-BCThYXmz.js → tokyo-night-qVSqO9xy.js} +0 -0
- /package/dist/web/assets/{toml-D5YlDr6Y.js → toml-D9F5Osqs.js} +0 -0
- /package/dist/web/assets/{tsv-CBB-P_Sl.js → tsv-C5tpHoxm.js} +0 -0
- /package/dist/web/assets/{tsx-D5B4juDp.js → tsx-CMWkGtGm.js} +0 -0
- /package/dist/web/assets/{turtle-D8PCeJ-v.js → turtle-Cn4z3xOi.js} +0 -0
- /package/dist/web/assets/{typescript-CMPnTawp.js → typescript-DSyAEWsn.js} +0 -0
- /package/dist/web/assets/{typespec-CHxldxIW.js → typespec-B93Qap7y.js} +0 -0
- /package/dist/web/assets/{typst-Q8CqX5OR.js → typst-DtlOmFlX.js} +0 -0
- /package/dist/web/assets/{v-Bf2hKAMu.js → v-Dfzf-szS.js} +0 -0
- /package/dist/web/assets/{vala-Cbete-UE.js → vala-CyiQZQ9f.js} +0 -0
- /package/dist/web/assets/{vb-CA-xWAcX.js → vb-C7DGSldd.js} +0 -0
- /package/dist/web/assets/{verilog-B3wb8CfT.js → verilog-kF-hClY2.js} +0 -0
- /package/dist/web/assets/{vesper-D6r3VJq_.js → vesper-BmKcADuz.js} +0 -0
- /package/dist/web/assets/{vhdl-C42S_797.js → vhdl-CDnb16KJ.js} +0 -0
- /package/dist/web/assets/{viml-BePrIAs8.js → viml-B8cs6Ady.js} +0 -0
- /package/dist/web/assets/{vitesse-black-DRqn61Ck.js → vitesse-black-BR6o9Gto.js} +0 -0
- /package/dist/web/assets/{vitesse-dark-39_8UE-w.js → vitesse-dark-Dye14-KB.js} +0 -0
- /package/dist/web/assets/{vitesse-light-B1jwrxDm.js → vitesse-light-BLpswIxf.js} +0 -0
- /package/dist/web/assets/{vyper-tDJv3imF.js → vyper-DU51Z97W.js} +0 -0
- /package/dist/web/assets/{wasm-DR7eskZH.js → wasm-CVqlJAR2.js} +0 -0
- /package/dist/web/assets/{wenyan-CezVfqN3.js → wenyan-DhCa3hCn.js} +0 -0
- /package/dist/web/assets/{wgsl-CwOcIiIG.js → wgsl-Bj1Ec4vv.js} +0 -0
- /package/dist/web/assets/{wikitext-C5coomYc.js → wikitext-C90DHNa0.js} +0 -0
- /package/dist/web/assets/{wit-C9yyX6-U.js → wit-DUgbOD7Z.js} +0 -0
- /package/dist/web/assets/{wolfram-BWi0rMAa.js → wolfram-BgwUqD1I.js} +0 -0
- /package/dist/web/assets/{yaml-CGXhKUtT.js → yaml-DEQulj-8.js} +0 -0
- /package/dist/web/assets/{zenscript-Do7WLoJh.js → zenscript-C7Jp7TgT.js} +0 -0
- /package/dist/web/assets/{zig-Cr80Qrru.js → zig-9x4qXYLg.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-FhOqtrmT.js";import{t}from"./css-Cr27CfPY.js";var n=e({default:()=>i}),r=Object.freeze(JSON.parse(`{"displayName":"SCSS","name":"scss","patterns":[{"include":"#variable_setting"},{"include":"#at_rule_forward"},{"include":"#at_rule_use"},{"include":"#at_rule_include"},{"include":"#at_rule_import"},{"include":"#general"},{"include":"#flow_control"},{"include":"#rules"},{"include":"#property_list"},{"include":"#at_rule_mixin"},{"include":"#at_rule_media"},{"include":"#at_rule_function"},{"include":"#at_rule_charset"},{"include":"#at_rule_option"},{"include":"#at_rule_namespace"},{"include":"#at_rule_fontface"},{"include":"#at_rule_page"},{"include":"#at_rule_keyframes"},{"include":"#at_rule_at_root"},{"include":"#at_rule_supports"},{"match":";","name":"punctuation.terminator.rule.css"}],"repository":{"at_rule_at_root":{"begin":"\\\\s*((@)(at-root))(\\\\s+|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.at-root.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.at-root.scss","patterns":[{"include":"#function_attributes"},{"include":"#functions"},{"include":"#selectors"}]},"at_rule_charset":{"begin":"\\\\s*((@)charset)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.charset.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;|$))","name":"meta.at-rule.charset.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"}]},"at_rule_content":{"begin":"\\\\s*((@)content)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.content.scss"}},"end":"\\\\s*((?=;))","name":"meta.content.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_each":{"begin":"\\\\s*((@)each)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.each.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=}))","name":"meta.at-rule.each.scss","patterns":[{"match":"\\\\b(in|,)\\\\b","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_else":{"begin":"\\\\s*((@)else(\\\\s*(if)?))\\\\s*","captures":{"1":{"name":"keyword.control.else.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.else.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_extend":{"begin":"\\\\s*((@)extend)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.extend.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.extend.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_fontface":{"patterns":[{"begin":"^\\\\s*((@)font-face)\\\\b","beginCaptures":{"1":{"name":"keyword.control.at-rule.fontface.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.fontface.scss","patterns":[{"include":"#function_attributes"}]}]},"at_rule_for":{"begin":"\\\\s*((@)for)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.for.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.for.scss","patterns":[{"match":"(==|!=|<=|>=|[<>]|from|to|through)","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_forward":{"begin":"\\\\s*((@)forward)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.forward.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.forward.scss","patterns":[{"match":"\\\\b(as|hide|show)\\\\b","name":"keyword.control.operator"},{"captures":{"1":{"name":"entity.other.attribute-name.module.scss"},"2":{"name":"punctuation.definition.wildcard.scss"}},"match":"\\\\b([-\\\\w]+)(\\\\*)"},{"match":"\\\\b[-\\\\w]+\\\\b","name":"entity.name.function.scss"},{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#comment_line"},{"include":"#comment_block"}]},"at_rule_function":{"patterns":[{"begin":"\\\\s*((@)function)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.function.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"match":"\\\\s*((@)function)\\\\b\\\\s*","name":"meta.at-rule.function.scss"}]},"at_rule_if":{"begin":"\\\\s*((@)if)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.if.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.if.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_import":{"begin":"\\\\s*((@)import)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.import.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;)|(?=}))","name":"meta.at-rule.import.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#functions"},{"include":"#comment_line"}]},"at_rule_include":{"patterns":[{"begin":"(?<=@include)\\\\s+(?:([-\\\\w]+)\\\\s*(\\\\.))?([-\\\\w]+)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"entity.name.function.scss"},"4":{"name":"punctuation.definition.parameters.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.scss"}},"name":"meta.at-rule.include.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"0":{"name":"meta.at-rule.include.scss"},"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"entity.name.function.scss"}},"match":"(?<=@include)\\\\s+(?:([-\\\\w]+)\\\\s*(\\\\.))?([-\\\\w]+)"},{"captures":{"0":{"name":"meta.at-rule.include.scss"},"1":{"name":"keyword.control.at-rule.include.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"((@)include)\\\\b"}]},"at_rule_keyframes":{"begin":"(?<=^|\\\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\\\b","beginCaptures":{"0":{"name":"keyword.control.at-rule.keyframes.scss"},"1":{"name":"punctuation.definition.keyword.scss"}},"end":"(?<=})","name":"meta.at-rule.keyframes.scss","patterns":[{"captures":{"1":{"name":"entity.name.function.scss"}},"match":"(?<=@keyframes)\\\\s+((?:[A-Z_a-z][-\\\\w]|-[A-Z_a-z])[-\\\\w]*)"},{"begin":"(?<=@keyframes)\\\\s+(\\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.scss"}},"contentName":"entity.name.function.scss","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.double.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},{"begin":"(?<=@keyframes)\\\\s+(')","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.scss"}},"contentName":"entity.name.function.scss","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.single.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.keyframes.begin.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.keyframes.end.scss"}},"patterns":[{"match":"\\\\b(?:(?:100|[1-9]\\\\d|\\\\d)%|from|to)(?=\\\\s*\\\\{)","name":"entity.other.attribute-name.scss"},{"include":"#flow_control"},{"include":"#interpolation"},{"include":"#property_list"},{"include":"#rules"}]}]},"at_rule_media":{"patterns":[{"begin":"^\\\\s*((@)media)\\\\b","beginCaptures":{"1":{"name":"keyword.control.at-rule.media.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.media.scss","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"match":"\\\\b(only)\\\\b","name":"keyword.control.operator.css.scss"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.media-query.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.media-query.end.bracket.round.scss"}},"name":"meta.property-list.media-query.scss","patterns":[{"begin":"(?<![-a-z])(?=[-a-z])","end":"$|(?![-a-z])","name":"meta.property-name.media-query.scss","patterns":[{"include":"source.css#media-features"},{"include":"source.css#property-names"}]},{"begin":"(:)\\\\s*(?!(\\\\s*\\\\{))","beginCaptures":{"1":{"name":"punctuation.separator.key-value.scss"}},"contentName":"meta.property-value.media-query.scss","end":"\\\\s*(;|(?=[)}]))","endCaptures":{"1":{"name":"punctuation.terminator.rule.scss"}},"patterns":[{"include":"#general"},{"include":"#property_values"}]}]},{"include":"#variable"},{"include":"#conditional_operators"},{"include":"source.css#media-types"}]}]},"at_rule_mixin":{"patterns":[{"begin":"(?<=@mixin)\\\\s+([-\\\\w]+)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.scss"},"2":{"name":"punctuation.definition.parameters.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.scss"}},"name":"meta.at-rule.mixin.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"entity.name.function.scss"}},"match":"(?<=@mixin)\\\\s+([-\\\\w]+)","name":"meta.at-rule.mixin.scss"},{"captures":{"1":{"name":"keyword.control.at-rule.mixin.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"((@)mixin)\\\\b","name":"meta.at-rule.mixin.scss"}]},"at_rule_namespace":{"patterns":[{"begin":"(?<=@namespace)\\\\s+(?=url)","end":"(?=;|$)","name":"meta.at-rule.namespace.scss","patterns":[{"include":"#property_values"},{"include":"#string_single"},{"include":"#string_double"}]},{"begin":"(?<=@namespace)\\\\s+([-\\\\w]*)","captures":{"1":{"name":"entity.name.namespace-prefix.scss"}},"end":"(?=;|$)","name":"meta.at-rule.namespace.scss","patterns":[{"include":"#variables"},{"include":"#property_values"},{"include":"#string_single"},{"include":"#string_double"}]},{"captures":{"1":{"name":"keyword.control.at-rule.namespace.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"((@)namespace)\\\\b","name":"meta.at-rule.namespace.scss"}]},"at_rule_option":{"captures":{"1":{"name":"keyword.control.at-rule.charset.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"^\\\\s*((@)option)\\\\b\\\\s*","name":"meta.at-rule.option.scss"},"at_rule_page":{"patterns":[{"begin":"^\\\\s*((@)page)(?=[:\\\\s])\\\\s*([-:\\\\w]*)","captures":{"1":{"name":"keyword.control.at-rule.page.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.page.scss"}]},"at_rule_return":{"begin":"\\\\s*((@)(return))\\\\b","captures":{"1":{"name":"keyword.control.return.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;))","name":"meta.at-rule.return.scss","patterns":[{"include":"#variable"},{"include":"#property_values"}]},"at_rule_supports":{"begin":"(?<=^|\\\\s)(@)supports\\\\b","captures":{"0":{"name":"keyword.control.at-rule.supports.scss"},"1":{"name":"punctuation.definition.keyword.scss"}},"end":"(?=\\\\{)|$","name":"meta.at-rule.supports.scss","patterns":[{"include":"#logical_operators"},{"include":"#properties"},{"match":"\\\\(","name":"punctuation.definition.condition.begin.bracket.round.scss"},{"match":"\\\\)","name":"punctuation.definition.condition.end.bracket.round.scss"}]},"at_rule_use":{"begin":"\\\\s*((@)use)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.use.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.use.scss","patterns":[{"match":"\\\\b(as|with)\\\\b","name":"keyword.control.operator"},{"match":"\\\\b[-\\\\w]+\\\\b","name":"variable.scss"},{"match":"\\\\*","name":"variable.language.expanded-namespace.scss"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#comment_line"},{"include":"#comment_block"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.scss"}},"patterns":[{"include":"#function_attributes"}]}]},"at_rule_warn":{"begin":"\\\\s*((@)(warn|debug|error))\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.warn.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.warn.scss","patterns":[{"include":"#variable"},{"include":"#string_double"},{"include":"#string_single"}]},"at_rule_while":{"begin":"\\\\s*((@)while)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.while.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=})","name":"meta.at-rule.while.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"comment_block":{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"name":"comment.block.scss"},"comment_docblock":{"begin":"///","beginCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"end":"(?=$)","name":"comment.block.documentation.scss","patterns":[{"include":"source.sassdoc"}]},"comment_line":{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"end":"\\\\n","name":"comment.line.scss"},"comparison_operators":{"match":"==|!=|<=|>=|[<>]","name":"keyword.operator.comparison.scss"},"conditional_operators":{"patterns":[{"include":"#comparison_operators"},{"include":"#logical_operators"}]},"constant_default":{"match":"!default","name":"keyword.other.default.scss"},"constant_functions":{"begin":"(?:([-\\\\w]+)(\\\\.))?([-\\\\w]+)(\\\\()","beginCaptures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"support.function.misc.scss"},"4":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"constant_important":{"match":"!important","name":"keyword.other.important.scss"},"constant_mathematical_symbols":{"match":"\\\\b([-*+/])\\\\b","name":"support.constant.mathematical-symbols.scss"},"constant_optional":{"match":"!optional","name":"keyword.other.optional.scss"},"constant_sass_functions":{"begin":"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:|svg-)gradient|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate[XY])(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"flow_control":{"patterns":[{"include":"#at_rule_if"},{"include":"#at_rule_else"},{"include":"#at_rule_warn"},{"include":"#at_rule_for"},{"include":"#at_rule_while"},{"include":"#at_rule_each"},{"include":"#at_rule_return"}]},"function_attributes":{"patterns":[{"match":":","name":"punctuation.separator.key-value.scss"},{"include":"#general"},{"include":"#property_values"},{"match":"[;=?@{}]","name":"invalid.illegal.scss"}]},"functions":{"patterns":[{"begin":"([-\\\\w]+)(\\\\()\\\\s*","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},{"match":"([-\\\\w]+)","name":"support.function.misc.scss"}]},"general":{"patterns":[{"include":"#variable"},{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"}]},"interpolation":{"begin":"#\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.interpolation.begin.bracket.curly.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.interpolation.end.bracket.curly.scss"}},"name":"variable.interpolation.scss","patterns":[{"include":"#variable"},{"include":"#property_values"}]},"logical_operators":{"match":"\\\\b(not|or|and)\\\\b","name":"keyword.operator.logical.scss"},"map":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.map.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.map.end.bracket.round.scss"}},"name":"meta.definition.variable.map.scss","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"captures":{"1":{"name":"support.type.map.key.scss"},"2":{"name":"punctuation.separator.key-value.scss"}},"match":"\\\\b([-\\\\w]+)\\\\s*(:)"},{"match":",","name":"punctuation.separator.delimiter.scss"},{"include":"#map"},{"include":"#variable"},{"include":"#property_values"}]},"operators":{"match":"[-*+/](?!\\\\s*[-*+/])","name":"keyword.operator.css"},"parameters":{"patterns":[{"include":"#variable"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.scss"}},"patterns":[{"include":"#function_attributes"}]},{"include":"#property_values"},{"include":"#comment_block"},{"match":"[^\\\\t \\"'),]+","name":"variable.parameter.url.scss"},{"match":",","name":"punctuation.separator.delimiter.scss"}]},"parent_selector_suffix":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.identifier.scss"}]}},"match":"(?<=&)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|[$}])+)(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)","name":"entity.other.attribute-name.parent-selector-suffix.css"},"properties":{"patterns":[{"begin":"(?<![-a-z])(?=[-a-z])","end":"$|(?![-a-z])","name":"meta.property-name.scss","patterns":[{"include":"source.css#property-names"},{"include":"#at_rule_include"}]},{"begin":"(:)\\\\s*(?!(\\\\s*\\\\{))","beginCaptures":{"1":{"name":"punctuation.separator.key-value.scss"}},"contentName":"meta.property-value.scss","end":"\\\\s*(;|(?=[)}]))","endCaptures":{"1":{"name":"punctuation.terminator.rule.scss"}},"patterns":[{"include":"#general"},{"include":"#property_values"}]}]},"property_list":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.scss"}},"name":"meta.property-list.scss","patterns":[{"include":"#flow_control"},{"include":"#rules"},{"include":"#properties"},{"include":"$self"}]},"property_values":{"patterns":[{"include":"#string_single"},{"include":"#string_double"},{"include":"#constant_functions"},{"include":"#constant_sass_functions"},{"include":"#constant_important"},{"include":"#constant_default"},{"include":"#constant_optional"},{"include":"source.css#numeric-values"},{"include":"source.css#property-keywords"},{"include":"source.css#color-keywords"},{"include":"source.css#property-names"},{"include":"#constant_mathematical_symbols"},{"include":"#operators"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.scss"}},"patterns":[{"include":"#general"},{"include":"#property_values"}]}]},"rules":{"patterns":[{"include":"#general"},{"include":"#at_rule_extend"},{"include":"#at_rule_content"},{"include":"#at_rule_include"},{"include":"#at_rule_media"},{"include":"#selectors"}]},"selector_attribute":{"captures":{"1":{"name":"punctuation.definition.attribute-selector.begin.bracket.square.scss"},"2":{"name":"entity.other.attribute-name.attribute.scss","patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"3":{"name":"keyword.operator.scss"},"4":{"name":"string.unquoted.attribute-value.scss","patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"5":{"name":"string.quoted.double.attribute-value.scss"},"6":{"name":"punctuation.definition.string.begin.scss"},"7":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"8":{"name":"punctuation.definition.string.end.scss"},"9":{"name":"string.quoted.single.attribute-value.scss"},"10":{"name":"punctuation.definition.string.begin.scss"},"11":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"12":{"name":"punctuation.definition.string.end.scss"},"13":{"name":"punctuation.definition.attribute-selector.end.bracket.square.scss"}},"match":"(?i)(\\\\[)\\\\s*((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+?)(?:\\\\s*([$*^|~]?=)\\\\s*(?:((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+)|((\\")(.*?)(\\"))|((')(.*?)('))))?\\\\s*(])","name":"meta.attribute-selector.scss"},"selector_class":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]}},"match":"(\\\\.)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+)(?=$|[#)+,:>\\\\[{|~\\\\s]|\\\\.[^$]|/\\\\*|;)","name":"entity.other.attribute-name.class.css"},"selector_custom":{"match":"\\\\b([0-9A-Za-z]+(-[0-9A-Za-z]+)+)(?=\\\\.|\\\\s++[^:]|\\\\s*[,\\\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-((?:|last-)(?:child|of-type))|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\\\([0-9A-Za-z]*\\\\))?)","name":"entity.name.tag.custom.scss"},"selector_id":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.identifier.scss"}]}},"match":"(#)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+)(?=$|[#)+,:>\\\\[{|~\\\\s]|\\\\.[^$]|/\\\\*)","name":"entity.other.attribute-name.id.css"},"selector_placeholder":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.identifier.scss"}]}},"match":"(%)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.\\\\$|[$}])+)(?=;|$|[#)+,:>\\\\[{|~\\\\s]|\\\\.[^$]|/\\\\*)","name":"entity.other.attribute-name.placeholder.css"},"selector_pseudo_class":{"patterns":[{"begin":"((:)\\\\bnth-(?:|last-)(?:child|of-type))(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.definition.pseudo-class.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.pseudo-class.end.bracket.round.css"}},"patterns":[{"include":"#interpolation"},{"match":"\\\\d+","name":"constant.numeric.css"},{"match":"(?:(?<=\\\\d)n|\\\\b(n|even|odd))\\\\b","name":"constant.other.scss"},{"match":"\\\\w+","name":"invalid.illegal.scss"}]},{"include":"source.css#pseudo-classes"},{"include":"source.css#pseudo-elements"},{"include":"source.css#functional-pseudo-classes"}]},"selectors":{"patterns":[{"include":"source.css#tag-names"},{"include":"#selector_custom"},{"include":"#selector_class"},{"include":"#selector_id"},{"include":"#selector_pseudo_class"},{"include":"#tag_wildcard"},{"include":"#tag_parent_reference"},{"include":"source.css#pseudo-elements"},{"include":"#selector_attribute"},{"include":"#selector_placeholder"},{"include":"#parent_selector_suffix"}]},"string_double":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.double.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},"string_single":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.single.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},"tag_parent_reference":{"match":"&","name":"entity.name.tag.reference.scss"},"tag_wildcard":{"match":"\\\\*","name":"entity.name.tag.wildcard.scss"},"variable":{"patterns":[{"include":"#variables"},{"include":"#interpolation"}]},"variable_setting":{"begin":"(?=\\\\$[-\\\\w]+\\\\s*:)","contentName":"meta.definition.variable.scss","end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.scss"}},"patterns":[{"match":"\\\\$[-\\\\w]+(?=\\\\s*:)","name":"variable.scss"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.key-value.scss"}},"end":"(?=;)","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"include":"#map"},{"include":"#property_values"},{"include":"#variable"},{"match":",","name":"punctuation.separator.delimiter.scss"}]}]},"variables":{"patterns":[{"captures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"variable.scss"}},"match":"\\\\b([-\\\\w]+)(\\\\.)(\\\\$[-\\\\w]+)\\\\b"},{"match":"(\\\\$|--)[-0-9A-Z_a-z]+\\\\b","name":"variable.scss"}]}},"scopeName":"source.css.scss","embeddedLangs":["css"]}`)),i=[...t,r];export{n,i as t};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-FhOqtrmT.js";import{t}from"./css-DiFIpMfE.js";var n=e({default:()=>i}),r=Object.freeze(JSON.parse(`{"displayName":"SCSS","name":"scss","patterns":[{"include":"#variable_setting"},{"include":"#at_rule_forward"},{"include":"#at_rule_use"},{"include":"#at_rule_include"},{"include":"#at_rule_import"},{"include":"#general"},{"include":"#flow_control"},{"include":"#rules"},{"include":"#property_list"},{"include":"#at_rule_mixin"},{"include":"#at_rule_media"},{"include":"#at_rule_function"},{"include":"#at_rule_charset"},{"include":"#at_rule_option"},{"include":"#at_rule_namespace"},{"include":"#at_rule_fontface"},{"include":"#at_rule_page"},{"include":"#at_rule_keyframes"},{"include":"#at_rule_at_root"},{"include":"#at_rule_supports"},{"match":";","name":"punctuation.terminator.rule.css"}],"repository":{"at_rule_at_root":{"begin":"\\\\s*((@)(at-root))(\\\\s+|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.at-root.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.at-root.scss","patterns":[{"include":"#function_attributes"},{"include":"#functions"},{"include":"#selectors"}]},"at_rule_charset":{"begin":"\\\\s*((@)charset)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.charset.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;|$))","name":"meta.at-rule.charset.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"}]},"at_rule_content":{"begin":"\\\\s*((@)content)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.content.scss"}},"end":"\\\\s*((?=;))","name":"meta.content.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_each":{"begin":"\\\\s*((@)each)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.each.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=}))","name":"meta.at-rule.each.scss","patterns":[{"match":"\\\\b(in|,)\\\\b","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_else":{"begin":"\\\\s*((@)else(\\\\s*(if)?))\\\\s*","captures":{"1":{"name":"keyword.control.else.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.else.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_extend":{"begin":"\\\\s*((@)extend)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.extend.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.extend.scss","patterns":[{"include":"#variable"},{"include":"#selectors"},{"include":"#property_values"}]},"at_rule_fontface":{"patterns":[{"begin":"^\\\\s*((@)font-face)\\\\b","beginCaptures":{"1":{"name":"keyword.control.at-rule.fontface.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.fontface.scss","patterns":[{"include":"#function_attributes"}]}]},"at_rule_for":{"begin":"\\\\s*((@)for)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.for.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.for.scss","patterns":[{"match":"(==|!=|<=|>=|[<>]|from|to|through)","name":"keyword.control.operator"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"at_rule_forward":{"begin":"\\\\s*((@)forward)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.forward.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.forward.scss","patterns":[{"match":"\\\\b(as|hide|show)\\\\b","name":"keyword.control.operator"},{"captures":{"1":{"name":"entity.other.attribute-name.module.scss"},"2":{"name":"punctuation.definition.wildcard.scss"}},"match":"\\\\b([-\\\\w]+)(\\\\*)"},{"match":"\\\\b[-\\\\w]+\\\\b","name":"entity.name.function.scss"},{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#comment_line"},{"include":"#comment_block"}]},"at_rule_function":{"patterns":[{"begin":"\\\\s*((@)function)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.function.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"keyword.control.at-rule.function.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"match":"\\\\s*((@)function)\\\\b\\\\s*","name":"meta.at-rule.function.scss"}]},"at_rule_if":{"begin":"\\\\s*((@)if)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.if.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.if.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"}]},"at_rule_import":{"begin":"\\\\s*((@)import)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.import.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;)|(?=}))","name":"meta.at-rule.import.scss","patterns":[{"include":"#variable"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#functions"},{"include":"#comment_line"}]},"at_rule_include":{"patterns":[{"begin":"(?<=@include)\\\\s+(?:([-\\\\w]+)\\\\s*(\\\\.))?([-\\\\w]+)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"entity.name.function.scss"},"4":{"name":"punctuation.definition.parameters.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.scss"}},"name":"meta.at-rule.include.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"0":{"name":"meta.at-rule.include.scss"},"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"entity.name.function.scss"}},"match":"(?<=@include)\\\\s+(?:([-\\\\w]+)\\\\s*(\\\\.))?([-\\\\w]+)"},{"captures":{"0":{"name":"meta.at-rule.include.scss"},"1":{"name":"keyword.control.at-rule.include.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"((@)include)\\\\b"}]},"at_rule_keyframes":{"begin":"(?<=^|\\\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\\\b","beginCaptures":{"0":{"name":"keyword.control.at-rule.keyframes.scss"},"1":{"name":"punctuation.definition.keyword.scss"}},"end":"(?<=})","name":"meta.at-rule.keyframes.scss","patterns":[{"captures":{"1":{"name":"entity.name.function.scss"}},"match":"(?<=@keyframes)\\\\s+((?:[A-Z_a-z][-\\\\w]|-[A-Z_a-z])[-\\\\w]*)"},{"begin":"(?<=@keyframes)\\\\s+(\\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.scss"}},"contentName":"entity.name.function.scss","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.double.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},{"begin":"(?<=@keyframes)\\\\s+(')","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.scss"}},"contentName":"entity.name.function.scss","end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.single.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.keyframes.begin.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.keyframes.end.scss"}},"patterns":[{"match":"\\\\b(?:(?:100|[1-9]\\\\d|\\\\d)%|from|to)(?=\\\\s*\\\\{)","name":"entity.other.attribute-name.scss"},{"include":"#flow_control"},{"include":"#interpolation"},{"include":"#property_list"},{"include":"#rules"}]}]},"at_rule_media":{"patterns":[{"begin":"^\\\\s*((@)media)\\\\b","beginCaptures":{"1":{"name":"keyword.control.at-rule.media.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.media.scss","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"match":"\\\\b(only)\\\\b","name":"keyword.control.operator.css.scss"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.media-query.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.media-query.end.bracket.round.scss"}},"name":"meta.property-list.media-query.scss","patterns":[{"begin":"(?<![-a-z])(?=[-a-z])","end":"$|(?![-a-z])","name":"meta.property-name.media-query.scss","patterns":[{"include":"source.css#media-features"},{"include":"source.css#property-names"}]},{"begin":"(:)\\\\s*(?!(\\\\s*\\\\{))","beginCaptures":{"1":{"name":"punctuation.separator.key-value.scss"}},"contentName":"meta.property-value.media-query.scss","end":"\\\\s*(;|(?=[)}]))","endCaptures":{"1":{"name":"punctuation.terminator.rule.scss"}},"patterns":[{"include":"#general"},{"include":"#property_values"}]}]},{"include":"#variable"},{"include":"#conditional_operators"},{"include":"source.css#media-types"}]}]},"at_rule_mixin":{"patterns":[{"begin":"(?<=@mixin)\\\\s+([-\\\\w]+)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.scss"},"2":{"name":"punctuation.definition.parameters.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.scss"}},"name":"meta.at-rule.mixin.scss","patterns":[{"include":"#function_attributes"}]},{"captures":{"1":{"name":"entity.name.function.scss"}},"match":"(?<=@mixin)\\\\s+([-\\\\w]+)","name":"meta.at-rule.mixin.scss"},{"captures":{"1":{"name":"keyword.control.at-rule.mixin.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"((@)mixin)\\\\b","name":"meta.at-rule.mixin.scss"}]},"at_rule_namespace":{"patterns":[{"begin":"(?<=@namespace)\\\\s+(?=url)","end":"(?=;|$)","name":"meta.at-rule.namespace.scss","patterns":[{"include":"#property_values"},{"include":"#string_single"},{"include":"#string_double"}]},{"begin":"(?<=@namespace)\\\\s+([-\\\\w]*)","captures":{"1":{"name":"entity.name.namespace-prefix.scss"}},"end":"(?=;|$)","name":"meta.at-rule.namespace.scss","patterns":[{"include":"#variables"},{"include":"#property_values"},{"include":"#string_single"},{"include":"#string_double"}]},{"captures":{"1":{"name":"keyword.control.at-rule.namespace.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"((@)namespace)\\\\b","name":"meta.at-rule.namespace.scss"}]},"at_rule_option":{"captures":{"1":{"name":"keyword.control.at-rule.charset.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"match":"^\\\\s*((@)option)\\\\b\\\\s*","name":"meta.at-rule.option.scss"},"at_rule_page":{"patterns":[{"begin":"^\\\\s*((@)page)(?=[:\\\\s])\\\\s*([-:\\\\w]*)","captures":{"1":{"name":"keyword.control.at-rule.page.scss"},"2":{"name":"punctuation.definition.keyword.scss"},"3":{"name":"entity.name.function.scss"}},"end":"\\\\s*(?=\\\\{)","name":"meta.at-rule.page.scss"}]},"at_rule_return":{"begin":"\\\\s*((@)(return))\\\\b","captures":{"1":{"name":"keyword.control.return.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*((?=;))","name":"meta.at-rule.return.scss","patterns":[{"include":"#variable"},{"include":"#property_values"}]},"at_rule_supports":{"begin":"(?<=^|\\\\s)(@)supports\\\\b","captures":{"0":{"name":"keyword.control.at-rule.supports.scss"},"1":{"name":"punctuation.definition.keyword.scss"}},"end":"(?=\\\\{)|$","name":"meta.at-rule.supports.scss","patterns":[{"include":"#logical_operators"},{"include":"#properties"},{"match":"\\\\(","name":"punctuation.definition.condition.begin.bracket.round.scss"},{"match":"\\\\)","name":"punctuation.definition.condition.end.bracket.round.scss"}]},"at_rule_use":{"begin":"\\\\s*((@)use)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.at-rule.use.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.use.scss","patterns":[{"match":"\\\\b(as|with)\\\\b","name":"keyword.control.operator"},{"match":"\\\\b[-\\\\w]+\\\\b","name":"variable.scss"},{"match":"\\\\*","name":"variable.language.expanded-namespace.scss"},{"include":"#string_single"},{"include":"#string_double"},{"include":"#comment_line"},{"include":"#comment_block"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.scss"}},"patterns":[{"include":"#function_attributes"}]}]},"at_rule_warn":{"begin":"\\\\s*((@)(warn|debug|error))\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.warn.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=;)","name":"meta.at-rule.warn.scss","patterns":[{"include":"#variable"},{"include":"#string_double"},{"include":"#string_single"}]},"at_rule_while":{"begin":"\\\\s*((@)while)\\\\b\\\\s*","captures":{"1":{"name":"keyword.control.while.scss"},"2":{"name":"punctuation.definition.keyword.scss"}},"end":"\\\\s*(?=})","name":"meta.at-rule.while.scss","patterns":[{"include":"#conditional_operators"},{"include":"#variable"},{"include":"#property_values"},{"include":"$self"}]},"comment_block":{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"name":"comment.block.scss"},"comment_docblock":{"begin":"///","beginCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"end":"(?=$)","name":"comment.block.documentation.scss","patterns":[{"include":"source.sassdoc"}]},"comment_line":{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.scss"}},"end":"\\\\n","name":"comment.line.scss"},"comparison_operators":{"match":"==|!=|<=|>=|[<>]","name":"keyword.operator.comparison.scss"},"conditional_operators":{"patterns":[{"include":"#comparison_operators"},{"include":"#logical_operators"}]},"constant_default":{"match":"!default","name":"keyword.other.default.scss"},"constant_functions":{"begin":"(?:([-\\\\w]+)(\\\\.))?([-\\\\w]+)(\\\\()","beginCaptures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"support.function.misc.scss"},"4":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"constant_important":{"match":"!important","name":"keyword.other.important.scss"},"constant_mathematical_symbols":{"match":"\\\\b([-*+/])\\\\b","name":"support.constant.mathematical-symbols.scss"},"constant_optional":{"match":"!optional","name":"keyword.other.optional.scss"},"constant_sass_functions":{"begin":"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:|svg-)gradient|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate[XY])(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},"flow_control":{"patterns":[{"include":"#at_rule_if"},{"include":"#at_rule_else"},{"include":"#at_rule_warn"},{"include":"#at_rule_for"},{"include":"#at_rule_while"},{"include":"#at_rule_each"},{"include":"#at_rule_return"}]},"function_attributes":{"patterns":[{"match":":","name":"punctuation.separator.key-value.scss"},{"include":"#general"},{"include":"#property_values"},{"match":"[;=?@{}]","name":"invalid.illegal.scss"}]},"functions":{"patterns":[{"begin":"([-\\\\w]+)(\\\\()\\\\s*","beginCaptures":{"1":{"name":"support.function.misc.scss"},"2":{"name":"punctuation.section.function.scss"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.scss"}},"patterns":[{"include":"#parameters"}]},{"match":"([-\\\\w]+)","name":"support.function.misc.scss"}]},"general":{"patterns":[{"include":"#variable"},{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"}]},"interpolation":{"begin":"#\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.interpolation.begin.bracket.curly.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.interpolation.end.bracket.curly.scss"}},"name":"variable.interpolation.scss","patterns":[{"include":"#variable"},{"include":"#property_values"}]},"logical_operators":{"match":"\\\\b(not|or|and)\\\\b","name":"keyword.operator.logical.scss"},"map":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.map.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.map.end.bracket.round.scss"}},"name":"meta.definition.variable.map.scss","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"captures":{"1":{"name":"support.type.map.key.scss"},"2":{"name":"punctuation.separator.key-value.scss"}},"match":"\\\\b([-\\\\w]+)\\\\s*(:)"},{"match":",","name":"punctuation.separator.delimiter.scss"},{"include":"#map"},{"include":"#variable"},{"include":"#property_values"}]},"operators":{"match":"[-*+/](?!\\\\s*[-*+/])","name":"keyword.operator.css"},"parameters":{"patterns":[{"include":"#variable"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.scss"}},"patterns":[{"include":"#function_attributes"}]},{"include":"#property_values"},{"include":"#comment_block"},{"match":"[^\\\\t \\"'),]+","name":"variable.parameter.url.scss"},{"match":",","name":"punctuation.separator.delimiter.scss"}]},"parent_selector_suffix":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.identifier.scss"}]}},"match":"(?<=&)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|[$}])+)(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)","name":"entity.other.attribute-name.parent-selector-suffix.css"},"properties":{"patterns":[{"begin":"(?<![-a-z])(?=[-a-z])","end":"$|(?![-a-z])","name":"meta.property-name.scss","patterns":[{"include":"source.css#property-names"},{"include":"#at_rule_include"}]},{"begin":"(:)\\\\s*(?!(\\\\s*\\\\{))","beginCaptures":{"1":{"name":"punctuation.separator.key-value.scss"}},"contentName":"meta.property-value.scss","end":"\\\\s*(;|(?=[)}]))","endCaptures":{"1":{"name":"punctuation.terminator.rule.scss"}},"patterns":[{"include":"#general"},{"include":"#property_values"}]}]},"property_list":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.scss"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.scss"}},"name":"meta.property-list.scss","patterns":[{"include":"#flow_control"},{"include":"#rules"},{"include":"#properties"},{"include":"$self"}]},"property_values":{"patterns":[{"include":"#string_single"},{"include":"#string_double"},{"include":"#constant_functions"},{"include":"#constant_sass_functions"},{"include":"#constant_important"},{"include":"#constant_default"},{"include":"#constant_optional"},{"include":"source.css#numeric-values"},{"include":"source.css#property-keywords"},{"include":"source.css#color-keywords"},{"include":"source.css#property-names"},{"include":"#constant_mathematical_symbols"},{"include":"#operators"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.begin.bracket.round.scss"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.end.bracket.round.scss"}},"patterns":[{"include":"#general"},{"include":"#property_values"}]}]},"rules":{"patterns":[{"include":"#general"},{"include":"#at_rule_extend"},{"include":"#at_rule_content"},{"include":"#at_rule_include"},{"include":"#at_rule_media"},{"include":"#selectors"}]},"selector_attribute":{"captures":{"1":{"name":"punctuation.definition.attribute-selector.begin.bracket.square.scss"},"2":{"name":"entity.other.attribute-name.attribute.scss","patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"3":{"name":"keyword.operator.scss"},"4":{"name":"string.unquoted.attribute-value.scss","patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"5":{"name":"string.quoted.double.attribute-value.scss"},"6":{"name":"punctuation.definition.string.begin.scss"},"7":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"8":{"name":"punctuation.definition.string.end.scss"},"9":{"name":"string.quoted.single.attribute-value.scss"},"10":{"name":"punctuation.definition.string.begin.scss"},"11":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]},"12":{"name":"punctuation.definition.string.end.scss"},"13":{"name":"punctuation.definition.attribute-selector.end.bracket.square.scss"}},"match":"(?i)(\\\\[)\\\\s*((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+?)(?:\\\\s*([$*^|~]?=)\\\\s*(?:((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+)|((\\")(.*?)(\\"))|((')(.*?)('))))?\\\\s*(])","name":"meta.attribute-selector.scss"},"selector_class":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.scss"}]}},"match":"(\\\\.)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+)(?=$|[#)+,:>\\\\[{|~\\\\s]|\\\\.[^$]|/\\\\*|;)","name":"entity.other.attribute-name.class.css"},"selector_custom":{"match":"\\\\b([0-9A-Za-z]+(-[0-9A-Za-z]+)+)(?=\\\\.|\\\\s++[^:]|\\\\s*[,\\\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-((?:|last-)(?:child|of-type))|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\\\([0-9A-Za-z]*\\\\))?)","name":"entity.name.tag.custom.scss"},"selector_id":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.identifier.scss"}]}},"match":"(#)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.?\\\\$|})+)(?=$|[#)+,:>\\\\[{|~\\\\s]|\\\\.[^$]|/\\\\*)","name":"entity.other.attribute-name.id.css"},"selector_placeholder":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#interpolation"},{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"match":"[$}]","name":"invalid.illegal.identifier.scss"}]}},"match":"(%)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)|#\\\\{|\\\\.\\\\$|[$}])+)(?=;|$|[#)+,:>\\\\[{|~\\\\s]|\\\\.[^$]|/\\\\*)","name":"entity.other.attribute-name.placeholder.css"},"selector_pseudo_class":{"patterns":[{"begin":"((:)\\\\bnth-(?:|last-)(?:child|of-type))(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.definition.pseudo-class.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.pseudo-class.end.bracket.round.css"}},"patterns":[{"include":"#interpolation"},{"match":"\\\\d+","name":"constant.numeric.css"},{"match":"(?:(?<=\\\\d)n|\\\\b(n|even|odd))\\\\b","name":"constant.other.scss"},{"match":"\\\\w+","name":"invalid.illegal.scss"}]},{"include":"source.css#pseudo-classes"},{"include":"source.css#pseudo-elements"},{"include":"source.css#functional-pseudo-classes"}]},"selectors":{"patterns":[{"include":"source.css#tag-names"},{"include":"#selector_custom"},{"include":"#selector_class"},{"include":"#selector_id"},{"include":"#selector_pseudo_class"},{"include":"#tag_wildcard"},{"include":"#tag_parent_reference"},{"include":"source.css#pseudo-elements"},{"include":"#selector_attribute"},{"include":"#selector_placeholder"},{"include":"#parent_selector_suffix"}]},"string_double":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.double.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},"string_single":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scss"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.scss"}},"name":"string.quoted.single.scss","patterns":[{"match":"\\\\\\\\(\\\\h{1,6}|.)","name":"constant.character.escape.scss"},{"include":"#interpolation"}]},"tag_parent_reference":{"match":"&","name":"entity.name.tag.reference.scss"},"tag_wildcard":{"match":"\\\\*","name":"entity.name.tag.wildcard.scss"},"variable":{"patterns":[{"include":"#variables"},{"include":"#interpolation"}]},"variable_setting":{"begin":"(?=\\\\$[-\\\\w]+\\\\s*:)","contentName":"meta.definition.variable.scss","end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.scss"}},"patterns":[{"match":"\\\\$[-\\\\w]+(?=\\\\s*:)","name":"variable.scss"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.key-value.scss"}},"end":"(?=;)","patterns":[{"include":"#comment_docblock"},{"include":"#comment_block"},{"include":"#comment_line"},{"include":"#map"},{"include":"#property_values"},{"include":"#variable"},{"match":",","name":"punctuation.separator.delimiter.scss"}]}]},"variables":{"patterns":[{"captures":{"1":{"name":"variable.scss"},"2":{"name":"punctuation.access.module.scss"},"3":{"name":"variable.scss"}},"match":"\\\\b([-\\\\w]+)(\\\\.)(\\\\$[-\\\\w]+)\\\\b"},{"match":"(\\\\$|--)[-0-9A-Z_a-z]+\\\\b","name":"variable.scss"}]}},"scopeName":"source.css.scss","embeddedLangs":["css"]}`)),i=[...t,r];export{n,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-
|
|
1
|
+
import{t as e}from"./createLucideIcon-D8pyde1A.js";var t=e(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),n=e(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]);export{t as n,n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./panel-store-
|
|
1
|
+
import{t as e}from"./panel-store-UOV8wrfR.js";var t=`ppm:send-to-chat`,n=`ppm:send-to-chat:ack`;function r(e){return typeof e.metadata?.lastActiveAt==`number`?e.metadata.lastActiveAt:-1}function i(t){let{panels:n,focusedPanelId:i}=e.getState(),a=Object.values(n).flatMap(e=>e.tabs.filter(e=>e.type===`chat`).map(t=>({tab:t,selected:e.activeTabId===t.id,focusedPanel:e.id===i})));if(a.length===0)return null;let o=t?a.filter(e=>e.tab.projectId===t||e.tab.metadata?.projectName===t):[],s=o.length>0?o:a,c=e=>[e.selected?e.focusedPanel?2:1:0,r(e.tab)];return s.reduce((e,t)=>{let[n,r]=[c(e),c(t)];for(let i=0;i<n.length;i++)if(n[i]!==r[i])return n[i]>r[i]?e:t;return e}).tab.id}function a(r){let{text:a,label:o,projectName:s}=r;if(!a.trim())return;let c=i(s),l=e.getState();if(c){l.setActiveTab(c);let e=!1,r=()=>{e=!0};if(window.addEventListener(n,r),window.dispatchEvent(new CustomEvent(t,{detail:{text:a,label:o,projectName:s,targetTabId:c}})),window.removeEventListener(n,r),e)return;let i=Object.values(l.panels).flatMap(e=>e.tabs).find(e=>e.id===c);l.updateTab(c,{metadata:{...i?.metadata,pendingMessage:a}});return}l.openTab({type:`chat`,title:`Chat`,projectId:null,metadata:{...s?{projectName:s}:{},pendingMessage:a},closable:!0})}export{t as n,a as r,n as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-themes-
|
|
2
|
-
import{r as e}from"./api-client-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-themes-YsZgf6Xj.js","assets/vendor-ui-CaeeFO0B.js","assets/rolldown-runtime-FhOqtrmT.js","assets/vendor-markdown-Ls5AcU91.js","assets/api-client-BzWM7XPR.js","assets/api-settings-CNtKkHqW.js","assets/api-settings-Cubuqjsu.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./api-client-BzWM7XPR.js";import{t}from"./react-B549sK_T.js";import{q as n}from"./vendor-mermaid-0Nt-ew76.js";var r=`ppm-settings`,i=[`aurora`,`slate`,`precision`,`custom`],a=[`dark`,`light`,`system`];function o(){try{let e=localStorage.getItem(r);if(e)return JSON.parse(e)}catch{}return{}}function s(e){return e.themeStyle&&i.includes(e.themeStyle)&&e.themeMode&&a.includes(e.themeMode)?{style:e.themeStyle,mode:e.themeMode,customThemeId:e.customThemeId}:e.theme&&a.includes(e.theme)?{style:`aurora`,mode:e.theme}:{style:`aurora`,mode:`system`}}function c(e){return typeof e==`string`?[`explorer`,`git`,`settings`,`database`,`search`,`jira`,`ai-resources`,`history`,`tunnels`,`teams`].includes(e)||e.startsWith(`ext:`):!1}function l(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e)c(r)&&!t.has(r)&&(t.add(r),n.push(r));return n}var u={conns:[],groups:[`__ungrouped__`],tables:[]},d={conns:200,groups:200,tables:500};function f(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e,n=(e,t)=>Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0&&e.length<=300).slice(0,t):[];return{conns:Array.isArray(t.conns)?t.conns.filter(e=>typeof e==`number`&&Number.isInteger(e)).slice(0,d.conns):[],groups:n(t.groups,d.groups),tables:n(t.tables,d.tables)}}function p(e){let t=o();localStorage.setItem(r,JSON.stringify({...t,...e}))}var m=null,h={};function g(t){let{theme:n,themeStyle:r,themeMode:i,customThemeId:a,...o}=t;Object.keys(o).length!==0&&(Object.assign(h,o),m&&clearTimeout(m),m=setTimeout(()=>{let t=h;h={},m=null;let n=e();fetch(`/api/settings/ui-prefs`,{method:`PUT`,headers:{"Content-Type":`application/json`,...n?{Authorization:`Bearer ${n}`}:{}},body:JSON.stringify(t)}).catch(()=>{})},400))}function _(e){p(e),g(e)}function v(t,n,r){let i=e();return fetch(`/api/settings/theme`,{method:`PUT`,headers:{"Content-Type":`application/json`,...i?{Authorization:`Bearer ${i}`}:{}},body:JSON.stringify({style:t,mode:n,...r?{customThemeId:r}:{}})}).then(()=>{}).catch(()=>{})}function y(e){let t={};typeof e.wordWrap==`boolean`&&(t.wordWrap=e.wordWrap),typeof e.tabWrap==`boolean`&&(t.tabWrap=e.tabWrap),typeof e.sidebarCollapsed==`boolean`&&(t.sidebarCollapsed=e.sidebarCollapsed),typeof e.sidebarWidth==`number`&&e.sidebarWidth>=200&&e.sidebarWidth<=600&&(t.sidebarWidth=e.sidebarWidth),(e.gitStatusViewMode===`flat`||e.gitStatusViewMode===`tree`)&&(t.gitStatusViewMode=e.gitStatusViewMode),(e.editorTabStyle===`default`||e.editorTabStyle===`boxed`||e.editorTabStyle===`pill`)&&(t.editorTabStyle=e.editorTabStyle),c(e.sidebarActiveTab)&&(t.sidebarActiveTab=e.sidebarActiveTab),Array.isArray(e.sidebarTabOrder)&&(t.sidebarTabOrder=l(e.sidebarTabOrder)),typeof e.jiraEnabled==`boolean`&&(t.jiraEnabled=e.jiraEnabled),(e.dockPosition===`left`||e.dockPosition===`bottom`||e.dockPosition===`right`)&&(t.dockPosition=e.dockPosition),(e.explorerSkin===`auto`||e.explorerSkin===`windows`||e.explorerSkin===`macos`)&&(t.explorerSkin=e.explorerSkin),typeof e.remoteDesktopStatsVisible==`boolean`&&(t.remoteDesktopStatsVisible=e.remoteDesktopStatsVisible),typeof e.remoteDesktopWarningDismissed==`boolean`&&(t.remoteDesktopWarningDismissed=e.remoteDesktopWarningDismissed);let n=f(e.dbSidebarExpanded);n&&(t.dbSidebarExpanded=n),Object.keys(t).length!==0&&(p(t),S.setState(t))}var b=o(),x=s(b),S=t((t,r)=>({themeStyle:x.style,themeMode:x.mode,customThemeId:x.customThemeId,customThemes:[],sidebarCollapsed:b.sidebarCollapsed??!1,sidebarWidth:b.sidebarWidth??280,gitStatusViewMode:b.gitStatusViewMode===`flat`?`flat`:`tree`,wordWrap:b.wordWrap??!1,tabWrap:b.tabWrap??!1,editorTabStyle:b.editorTabStyle===`boxed`||b.editorTabStyle===`pill`?b.editorTabStyle:`default`,sidebarActiveTab:c(b.sidebarActiveTab)?b.sidebarActiveTab:`history`,sidebarTabOrder:l(b.sidebarTabOrder),jiraEnabled:b.jiraEnabled??!1,dockPosition:b.dockPosition===`left`||b.dockPosition===`right`?b.dockPosition:`bottom`,dbSidebarExpanded:f(b.dbSidebarExpanded)??u,explorerSkin:b.explorerSkin===`windows`||b.explorerSkin===`macos`?b.explorerSkin:`auto`,remoteDesktopStatsVisible:b.remoteDesktopStatsVisible??!1,remoteDesktopWarningDismissed:b.remoteDesktopWarningDismissed??!1,deviceName:null,version:null,tunnelActive:!1,setThemeStyle:e=>{let n=r().themeMode,i=e===`custom`?r().customThemeId:void 0;p({themeStyle:e,customThemeId:i}),t({themeStyle:e,customThemeId:i}),v(e,n,i)},setThemeMode:e=>{p({themeMode:e}),t({themeMode:e}),v(r().themeStyle,e,r().customThemeId)},setCustomTheme:e=>{p({themeStyle:`custom`,customThemeId:e}),t({themeStyle:`custom`,customThemeId:e}),v(`custom`,r().themeMode,e)},setThemeFromPayload:({style:e,mode:n,customThemeId:r})=>{let o=i.includes(e)?e:`aurora`,s=a.includes(n)?n:`system`;p({themeStyle:o,themeMode:s,customThemeId:r}),t({themeStyle:o,themeMode:s,customThemeId:r})},setCustomThemes:e=>t({customThemes:e}),fetchThemes:async()=>{try{let{fetchImportedThemes:e}=await n(async()=>{let{fetchImportedThemes:e}=await import(`./api-themes-YsZgf6Xj.js`);return{fetchImportedThemes:e}},__vite__mapDeps([0,1,2,3,4]));t({customThemes:await e()})}catch{}},importThemeFrom:async e=>{let{importTheme:t}=await n(async()=>{let{importTheme:e}=await import(`./api-themes-YsZgf6Xj.js`);return{importTheme:e}},__vite__mapDeps([0,1,2,3,4])),i=await t(e);return await r().fetchThemes(),i},deleteCustomTheme:async e=>{let{deleteImportedTheme:i}=await n(async()=>{let{deleteImportedTheme:e}=await import(`./api-themes-YsZgf6Xj.js`);return{deleteImportedTheme:e}},__vite__mapDeps([0,1,2,3,4]));await i(e),await r().fetchThemes(),r().themeStyle===`custom`&&r().customThemeId===e&&(p({themeStyle:`aurora`,themeMode:r().themeMode,customThemeId:void 0}),t({themeStyle:`aurora`,customThemeId:void 0}),v(`aurora`,r().themeMode))},setDeviceName:async e=>{let r=e.trim();t({deviceName:r||null}),r?document.title=`PPM — ${r}`:document.title=`PPM`;try{let{updateDeviceName:e}=await n(async()=>{let{updateDeviceName:e}=await import(`./api-settings-CNtKkHqW.js`);return{updateDeviceName:e}},__vite__mapDeps([5,1,2,3,4,6]));await e(r)}catch{}},setJiraEnabled:e=>{if(_({jiraEnabled:e}),t({jiraEnabled:e}),!e&&r().sidebarActiveTab===`jira`){let e=`explorer`;_({sidebarActiveTab:e}),t({sidebarActiveTab:e})}},toggleSidebar:()=>{let e=!r().sidebarCollapsed;_({sidebarCollapsed:e}),t({sidebarCollapsed:e})},setSidebarWidth:e=>{let n=Math.max(200,Math.min(600,e));_({sidebarWidth:n}),t({sidebarWidth:n})},setGitStatusViewMode:e=>{_({gitStatusViewMode:e}),t({gitStatusViewMode:e})},toggleWordWrap:()=>{let e=!r().wordWrap;_({wordWrap:e}),t({wordWrap:e})},toggleTabWrap:()=>{let e=!r().tabWrap;_({tabWrap:e}),t({tabWrap:e})},toggleRemoteDesktopStatsVisible:()=>{let e=!r().remoteDesktopStatsVisible;_({remoteDesktopStatsVisible:e}),t({remoteDesktopStatsVisible:e})},setRemoteDesktopWarningDismissed:e=>{_({remoteDesktopWarningDismissed:e}),t({remoteDesktopWarningDismissed:e})},setEditorTabStyle:e=>{_({editorTabStyle:e}),t({editorTabStyle:e})},setSidebarActiveTab:e=>{_({sidebarActiveTab:e}),t({sidebarActiveTab:e})},setSidebarTabOrder:e=>{let n=l(e);_({sidebarTabOrder:n}),t({sidebarTabOrder:n})},setDockPosition:e=>{_({dockPosition:e}),t({dockPosition:e})},setDbSidebarExpanded:e=>{let n=f(e)??u;_({dbSidebarExpanded:n}),t({dbSidebarExpanded:n})},setExplorerSkin:e=>{_({explorerSkin:e}),t({explorerSkin:e})},fetchServerInfo:async()=>{try{let n=e(),i=n?{headers:{Authorization:`Bearer ${n}`}}:{},[a,o,s]=await Promise.all([fetch(`/api/info`,i),fetch(`/api/settings/theme`,i),fetch(`/api/settings/ui-prefs`,i)]),c=await a.json();if(c.ok){let{device_name:e,version:n,tunnel_active:r}=c.data;t({deviceName:e||null,version:n||null,tunnelActive:!!r}),e&&(document.title=`PPM — ${e}`)}let l=await o.json(),u=l.ok?l.data?.theme:null;u&&typeof u==`object`&&typeof u.style==`string`&&r().setThemeFromPayload({style:u.style,mode:u.mode,customThemeId:u.customThemeId});let d=await s.json();d.ok&&d.data&&y(d.data),r().fetchThemes()}catch{}},syncThemeToServer:async()=>{await v(r().themeStyle,r().themeMode,r().customThemeId)}}));export{S as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as e}from"./settings-tab-xyRpt2gq.js";import"./ai-settings-section-BEM1z7kp.js";import"./context-menu-DfWZAxQy.js";import"./api-client-BzWM7XPR.js";import"./vendor-mermaid-0Nt-ew76.js";import"./settings-store-zbPkG7o-.js";import"./portal-container-context-D-495m5C.js";import"./project-store-DTUCS65m.js";import"./file-store-6HW2Lfl4.js";import"./keybindings-store-BGkB72gM.js";import"./extension-store-Bhu--fPX.js";import"./use-is-mobile-B9UZNwSm.js";import"./button-Cq8yixjf.js";import"./dialog-BSfuiTkJ.js";import"./mobile-bottom-sheet-pjcHKorA.js";import"./use-visual-viewport-Sfb6CZ80.js";import"./adaptive-context-menu-BbuRVTLn.js";import"./input-D0ol5jW0.js";import"./scroll-area-lc0ZHORr.js";import"./switch-BmjKoIpR.js";import"./api-settings-Cubuqjsu.js";export{e as SettingsTab};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{b as t,y as n}from"./vendor-markdown-CKTlmXbz.js";import{c as r,l as i,p as a,s as o,u as s}from"./vendor-ui-CXJtBULr.js";import{t as c}from"./createLucideIcon-ConhwJnb.js";import{n as l,t as u}from"./eye-off-Rq1n2-oe.js";import{t as d}from"./bot-CWZAuloY.js";import{n as f,t as p}from"./pencil-CHKLOgLs.js";import{a as m,c as h,d as g,i as _,l as v,o as y,s as b,t as x,u as S}from"./ai-settings-section-CJE7jFsj.js";import{d as C}from"./context-menu-BEAa1qhd.js";import{t as w}from"./chevron-down-D7CbB5f6.js";import{t as T}from"./chevron-right-D7Pn5agw.js";import{t as ee}from"./clock-DbiNiwCG.js";import{t as E}from"./copy-CbPdNp7E.js";import{n as D,t as O}from"./plus-BxqD2FIZ.js";import{t as te}from"./folder-symlink-LD-mr54V.js";import{n as ne,t as re}from"./send-Cits8q0l.js";import{t as ie}from"./keyboard-AdwmYDSu.js";import{t as k}from"./loader-circle-DD65e9-7.js";import{t as ae}from"./lock-BEtt_eTO.js";import{t as oe}from"./monitor-CXI_XpWJ.js";import{t as A}from"./play-CPbVzGgq.js";import{t as se}from"./refresh-cw-BALzw7L3.js";import{t as ce}from"./rotate-ccw-CuvNBM80.js";import{t as j}from"./text-wrap-CzMjB6GD.js";import{t as M}from"./trash-2-BjShZ7if.js";import{t as N}from"./triangle-alert-qQ6Plydp.js";import{t as P}from"./x-Dzu9ecti.js";import{a as F,n as I,s as L}from"./api-client-qRWu6_s5.js";import{t as R}from"./settings-store-Dp4i8zeA.js";import{n as z}from"./utils-QHe_Q6UF.js";import{i as le}from"./project-store-KHjFTCxf.js";import{o as ue}from"./file-store-28e44KP3.js";import{i as de,n as fe,o as pe,t as me}from"./keybindings-store-Bi0q9x4Q.js";import{t as he}from"./extension-store-ClQpnxQr.js";import{n as ge}from"./use-is-mobile-ClE-UcPF.js";import{r as _e}from"./clipboard-B-gwJ8DF.js";import{n as ve,t as B}from"./button-CrwgGd1y.js";import{a as ye,i as be,n as xe,o as Se,r as Ce,s as we,t as Te}from"./dialog-DrL3WEXd.js";import{t as Ee}from"./shallow-BBJ_qoEF.js";import{t as De}from"./mobile-bottom-sheet-DXn5g2LB.js";import{n as Oe,o as ke,r as V,t as Ae,u as je}from"./adaptive-context-menu-JfuUSqbe.js";import{t as H}from"./input-DTmI80l2.js";import{t as Me}from"./scroll-area-B5yhPpZo.js";import{t as U}from"./switch-BPol3BFC.js";import{b as Ne,d as Pe,f as Fe,n as Ie,y as Le}from"./api-settings-CPg4yGvS.js";import{n as Re,r as ze,t as Be}from"./resolve-theme-4fexHWl6.js";var Ve=c(`bell-ring`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]),He=c(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),Ue=c(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),We=c(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Ge=c(`database-zap`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`,key:`14ibmq`}],[`path`,{d:`M21 5V8`,key:`1marbg`}],[`path`,{d:`M21 12L18 17H22L19 22`,key:`zafso`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`,key:`1y4wr8`}]]),Ke=c(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),qe=c(`folder-search`,[[`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`,key:`1bw5m7`}],[`path`,{d:`m21 21-1.9-1.9`,key:`1g2n9r`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}]]),Je=c(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Ye=c(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),Xe=c(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),W=c(`puzzle`,[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]),Ze=c(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),G=e(t(),1),K=n();function q({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,K.jsx)(a,{"data-slot":`separator`,decorative:n,orientation:t,className:z(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}var Qe=[{key:`general`,label:`General`},{key:`tabs`,label:`Tabs`},{key:`projects`,label:`Projects`}],$e=[`Ctrl+T`,`Ctrl+W`,`Ctrl+N`,`Ctrl+Tab`,`Ctrl+L`,`Ctrl+H`,`Ctrl+J`,`F5`,`Ctrl+R`,`Ctrl+Shift+I`,`Ctrl+Shift+J`];function et({actionId:e,combo:t,locked:n}){let[r,i]=(0,G.useState)(!1),a=pe(e=>e.setBinding),o=(0,G.useRef)(null),s=(0,G.useCallback)(t=>{if(t.preventDefault(),t.stopPropagation(),t.key===`Escape`){i(!1);return}let n=fe(t);n&&(a(e,n),i(!1))},[e,a]);return(0,G.useEffect)(()=>{if(r)return document.addEventListener(`keydown`,s,!0),()=>document.removeEventListener(`keydown`,s,!0)},[r,s]),(0,G.useEffect)(()=>{if(!r)return;let e=e=>{o.current&&!o.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),n?(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border border-border bg-muted px-2 py-0.5 text-[11px] font-mono text-muted-foreground`,children:[(0,K.jsx)(ae,{className:`size-2.5`}),de(t)]}):r?(0,K.jsx)(`button`,{ref:o,className:`inline-flex items-center rounded border-2 border-primary bg-primary/10 px-2 py-0.5 text-[11px] font-mono text-primary animate-pulse`,children:`Press keys...`}):(0,K.jsx)(`button`,{ref:o,onClick:()=>i(!0),className:`inline-flex items-center rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-mono text-foreground hover:border-primary hover:bg-primary/5 transition-colors cursor-pointer`,title:`Click to change shortcut`,children:de(t)})}function tt(){let{getBinding:e,resetBinding:t,resetAll:n,overrides:r}=pe(),i=he(e=>e.contributions),a=i?.keybindings??[],o=i?.commands??[];return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`Keyboard Shortcuts`}),Object.keys(r).length>0&&(0,K.jsxs)(B,{variant:`ghost`,size:`sm`,className:`h-6 text-[10px] text-muted-foreground`,onClick:n,children:[(0,K.jsx)(ce,{className:`size-3 mr-1`}),`Reset all`]})]}),(0,K.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-warning/30 bg-warning/5 px-2.5 py-2`,children:[(0,K.jsx)(N,{className:`size-3.5 text-warning shrink-0 mt-0.5`}),(0,K.jsxs)(`p`,{className:`text-[10px] text-muted-foreground leading-relaxed`,children:[`Some shortcuts (`,$e.slice(0,4).join(`, `),`...) are reserved by the browser and cannot be overridden.`]})]}),Qe.map(n=>{let i=me.filter(e=>e.category===n.key);return i.length===0?null:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:n.label}),(0,K.jsx)(`div`,{className:`space-y-0.5`,children:i.map(n=>{let i=e(n.id),a=n.id in r;return(0,K.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,K.jsx)(`span`,{className:`text-xs text-foreground`,children:n.label}),n.note&&(0,K.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:n.note})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,K.jsx)(et,{actionId:n.id,combo:i,locked:n.locked}),a&&!n.locked&&(0,K.jsx)(`button`,{onClick:()=>t(n.id),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,K.jsx)(ce,{className:`size-3`})})]})]},n.id)})})]},n.key)}),a.length>0&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Extensions`}),(0,K.jsx)(`div`,{className:`space-y-0.5`,children:a.map(n=>{let i=o.find(e=>e.command===n.command)?.title??n.command,a=`ext:${n.command}`,s=e(a)||n.key,c=a in r;return(0,K.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,K.jsx)(W,{className:`size-3 text-muted-foreground shrink-0`}),(0,K.jsx)(`span`,{className:`text-xs text-foreground`,children:i})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,K.jsx)(et,{actionId:a,combo:s}),c&&(0,K.jsx)(`button`,{onClick:()=>t(a),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,K.jsx)(ce,{className:`size-3`})})]})]},a)})})]})]})}var nt=[{value:`claude-opus-5`,label:`Claude Opus 5`,hint:`most powerful`},{value:`claude-fable-5-1`,label:`Claude Fable 5.1`,hint:`flagship`},{value:`claude-fable-5`,label:`Claude Fable 5`,hint:`flagship`},{value:`claude-opus-4-8`,label:`Claude Opus 4.8`,hint:`powerful`},{value:`claude-opus-4-7`,label:`Claude Opus 4.7`,hint:`powerful`},{value:`claude-opus-4-6`,label:`Claude Opus 4.6`,hint:`powerful`},{value:`claude-sonnet-5`,label:`Claude Sonnet 5`,hint:`fast`},{value:`claude-sonnet-4-6`,label:`Claude Sonnet 4.6`,hint:`fast`},{value:`claude-haiku-4-5`,label:`Claude Haiku 4.5`,hint:`cheap`}];nt.map(e=>e.value);var rt=`Hello! Reply briefly.`,it=`claude-opus-5`;function at(e){let[t,n]=(0,G.useState)(!1);return(0,K.jsxs)(Te,{open:t,onOpenChange:n,children:[(0,K.jsx)(we,{asChild:!0,children:(0,K.jsxs)(B,{variant:`outline`,size:`sm`,className:`h-7 text-[11px] gap-1.5 cursor-pointer`,children:[(0,K.jsx)(Ke,{className:`size-3`}),`Test`]})}),(0,K.jsxs)(xe,{className:`sm:max-w-md max-h-[85vh] overflow-y-auto`,children:[(0,K.jsxs)(ye,{children:[(0,K.jsx)(Se,{className:`text-sm`,children:`Test Proxy`}),(0,K.jsx)(Ce,{className:`text-[11px]`,children:`Send a test request and inspect the raw response.`})]}),t&&(0,K.jsx)(ot,{...e})]})]})}function ot({authKey:e,baseUrl:t}){let[n,r]=(0,G.useState)(`anthropic`),[i,a]=(0,G.useState)(rt),[o,s]=(0,G.useState)(it),[c,l]=(0,G.useState)(!0),[u,d]=(0,G.useState)(!1),[f,p]=(0,G.useState)(null),[m,h]=(0,G.useState)(null),[g,_]=(0,G.useState)(null),y=(0,G.useRef)(null),b=(0,G.useRef)(null);(0,G.useEffect)(()=>{y.current?.select()},[]),(0,G.useEffect)(()=>{b.current&&(b.current.scrollTop=b.current.scrollHeight)},[f]);let x=e=>{r(e),p(null),h(null),_(null)},S=async()=>{d(!0),p(null),h(null),_(null);let r=Date.now(),a=n===`openai`,s=a?`${t}/proxy/v1/chat/completions`:`${t}/proxy/v1/messages`,l=JSON.stringify({model:o,max_tokens:256,stream:c,messages:[{role:`user`,content:i}]}),u={"Content-Type":`application/json`};a?u.Authorization=`Bearer ${e}`:(u[`x-api-key`]=e,u[`anthropic-version`]=`2023-06-01`);try{let e=await fetch(s,{method:`POST`,headers:u,body:l});if(!e.ok){let t=await e.text();h(`HTTP ${e.status}: ${t}`),d(!1),_(Date.now()-r);return}if(c){let t=e.body?.getReader();if(!t){h(`No response body`),d(!1);return}let n=new TextDecoder,i=``;for(;;){let{done:e,value:r}=await t.read();if(e)break;i+=n.decode(r,{stream:!0}),p(i)}_(Date.now()-r)}else{let t=await e.text();try{p(JSON.stringify(JSON.parse(t),null,2))}catch{p(t)}_(Date.now()-r)}}catch(e){h(e.message)}finally{d(!1),_(e=>e??Date.now()-r)}};return(0,K.jsxs)(`div`,{className:`space-y-3 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`space-y-1.5 min-w-0`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Auth Style`}),(0,K.jsx)(`div`,{className:`flex gap-1`,children:[`anthropic`,`openai`].map(e=>(0,K.jsx)(`button`,{onClick:()=>x(e),className:`flex-1 h-8 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${n===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e===`anthropic`?`Anthropic`:`OpenAI`},e))}),(0,K.jsx)(`p`,{className:`text-[9px] text-muted-foreground`,children:n===`anthropic`?`x-api-key header`:`Authorization: Bearer header`})]}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Model`}),(0,K.jsx)(`select`,{value:o,onChange:e=>s(e.target.value),className:`h-8 w-full rounded-md border bg-background px-2 text-[11px]`,children:nt.map(e=>(0,K.jsx)(`option`,{value:e.value,children:e.value},e.value))})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Streaming`}),(0,K.jsx)(`div`,{className:`flex gap-1`,children:[!0,!1].map(e=>(0,K.jsx)(`button`,{onClick:()=>l(e),className:`h-7 px-3 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${c===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e?`Stream`:`JSON`},String(e)))})]}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Message`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{ref:y,value:i,onChange:e=>a(e.target.value),placeholder:`Type a test message...`,className:`h-9 text-[11px] flex-1 min-w-0`,onKeyDown:e=>{e.key===`Enter`&&!u&&S()}}),(0,K.jsxs)(B,{size:`sm`,className:`h-9 px-3 cursor-pointer shrink-0`,onClick:S,disabled:u||!i.trim(),children:[u?(0,K.jsx)(k,{className:`size-3.5 animate-spin`}):(0,K.jsx)(A,{className:`size-3.5`}),(0,K.jsx)(`span`,{className:`ml-1 text-[11px]`,children:u?`...`:`Send`})]})]})]}),(f||m)&&(0,K.jsxs)(`div`,{className:`space-y-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`Raw Response`}),g!=null&&(0,K.jsxs)(`span`,{className:`text-[9px] font-mono text-muted-foreground`,children:[(g/1e3).toFixed(1),`s`]})]}),m?(0,K.jsx)(`pre`,{className:`text-[9px] font-mono bg-error/10 text-error p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:m}):(0,K.jsx)(`pre`,{ref:b,className:`text-[9px] font-mono bg-muted p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:f})]})]})}function st(){let[e,t]=(0,G.useState)(null),[n,r]=(0,G.useState)(!0),[i,a]=(0,G.useState)(!1),[o,s]=(0,G.useState)(null),[c,l]=(0,G.useState)(null);(0,G.useEffect)(()=>{r(!0),Pe().then(t).catch(e=>s(e.message)).finally(()=>r(!1))},[]);let u=async e=>{a(!0),s(null);try{t(await Le(e))}catch(e){s(e.message)}finally{a(!1)}},d=(e,t)=>{_e(e),l(t),setTimeout(()=>l(null),2e3)};if(n||!e)return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`API Proxy`}),(0,K.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:o?`Error: ${o}`:`Loading...`})]});let f=!!e.authKey,p=!!e.tunnelUrl,m=e.localEndpoint,h=m.replace(/\/proxy\/v1\/messages$/,``);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(`div`,{className:`space-y-1.5`,children:(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Expose your Claude accounts as an Anthropic-compatible API endpoint. External tools (OpenCode, Cursor, etc.) can use your accounts via this proxy.`})}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,K.jsx)(v,{className:`text-xs`,children:`Enable Proxy`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Accept API requests on /proxy/v1/messages`})]}),(0,K.jsx)(U,{checked:e.enabled,onCheckedChange:e=>u({enabled:e}),disabled:i})]}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Auth Key`}),f?(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{readOnly:!0,value:e.authKey,className:`h-7 text-[11px] font-mono flex-1`}),(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>d(e.authKey,`key`),children:c===`key`?`Copied!`:(0,K.jsx)(E,{className:`size-3`})}),(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>u({generateKey:!0}),disabled:i,children:(0,K.jsx)(se,{className:`size-3`})})]}):(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-7 text-xs cursor-pointer`,onClick:()=>u({generateKey:!0}),disabled:i,children:`Generate Auth Key`}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Use as Bearer token or x-api-key when calling the proxy.`})]}),e.enabled&&f&&(0,K.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3 bg-muted/30`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`h4`,{className:`text-[11px] font-medium`,children:`Connection Info`}),(0,K.jsx)(at,{authKey:e.authKey,baseUrl:window.location.origin})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Endpoint`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,K.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.proxyEndpoint:m}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.proxyEndpoint:m,`anthropic`),children:c===`anthropic`?`Copied!`:(0,K.jsx)(E,{className:`size-3`})})]})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`OpenAI-Compatible Endpoint`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,K.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.openAiEndpoint:e.localOpenAiEndpoint}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.openAiEndpoint:e.localOpenAiEndpoint,`openai`),children:c===`openai`?`Copied!`:(0,K.jsx)(E,{className:`size-3`})})]})]}),!p&&(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Start a Cloudflare tunnel (Share) to get a public URL.`}),(0,K.jsxs)(`div`,{className:`space-y-1 pt-1`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Format`}),(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(`pre`,{className:`text-[9px] font-mono bg-muted p-2 rounded overflow-x-auto whitespace-pre`,children:`ANTHROPIC_BASE_URL=${p?e.tunnelUrl+`/proxy`:h+`/proxy`}
|
|
1
|
+
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import{c as r,l as i,p as a,s as o,u as s}from"./vendor-ui-CaeeFO0B.js";import{t as c}from"./createLucideIcon-D8pyde1A.js";import{n as l,t as u}from"./eye-off-CUdzgmX8.js";import{t as d}from"./bot-D6sx11y0.js";import{n as f,t as p}from"./pencil-BlIIg6RH.js";import{a as m,c as h,d as g,i as _,l as v,o as y,s as b,t as x,u as S}from"./ai-settings-section-BEM1z7kp.js";import{d as C}from"./context-menu-DfWZAxQy.js";import{t as w}from"./chevron-down-Dp0rpHb8.js";import{t as T}from"./chevron-right-De-Wz5Lz.js";import{t as ee}from"./clock-C1CQUQPZ.js";import{t as E}from"./copy-BewHj66E.js";import{n as D,t as O}from"./plus-BR0qewJI.js";import{t as te}from"./folder-symlink-Dx1hOk8X.js";import{n as ne,t as re}from"./send-C_sLFt56.js";import{t as ie}from"./keyboard-DBBaoQSu.js";import{t as k}from"./loader-circle-DouKgIXy.js";import{t as ae}from"./lock-CNxUGpTk.js";import{t as oe}from"./monitor-CxPV_fQI.js";import{t as A}from"./play-DpEEBJTT.js";import{t as se}from"./refresh-cw-BQU5g2CY.js";import{t as ce}from"./rotate-ccw-CpjRo90J.js";import{t as j}from"./text-wrap-DBvQD3kc.js";import{t as M}from"./trash-2-By4VMbC4.js";import{t as N}from"./triangle-alert-CUTURFbG.js";import{t as P}from"./x-DiOUR_mp.js";import{a as F,n as I,s as L}from"./api-client-BzWM7XPR.js";import{t as R}from"./settings-store-zbPkG7o-.js";import{n as z}from"./utils-QHe_Q6UF.js";import{i as le}from"./project-store-DTUCS65m.js";import{o as ue}from"./file-store-6HW2Lfl4.js";import{i as de,n as fe,o as pe,t as me}from"./keybindings-store-BGkB72gM.js";import{t as he}from"./extension-store-Bhu--fPX.js";import{n as ge}from"./use-is-mobile-B9UZNwSm.js";import{r as _e}from"./clipboard-B-gwJ8DF.js";import{n as ve,t as B}from"./button-Cq8yixjf.js";import{a as ye,i as be,n as xe,o as Se,r as Ce,s as we,t as Te}from"./dialog-BSfuiTkJ.js";import{t as Ee}from"./shallow-CmPMAPte.js";import{t as De}from"./mobile-bottom-sheet-pjcHKorA.js";import{n as Oe,o as ke,r as V,t as Ae,u as je}from"./adaptive-context-menu-BbuRVTLn.js";import{t as H}from"./input-D0ol5jW0.js";import{t as Me}from"./scroll-area-lc0ZHORr.js";import{t as U}from"./switch-BmjKoIpR.js";import{b as Ne,d as Pe,f as Fe,n as Ie,y as Le}from"./api-settings-Cubuqjsu.js";import{n as Re,r as ze,t as Be}from"./resolve-theme-4fexHWl6.js";var Ve=c(`bell-ring`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]),He=c(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),Ue=c(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),We=c(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Ge=c(`database-zap`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`,key:`14ibmq`}],[`path`,{d:`M21 5V8`,key:`1marbg`}],[`path`,{d:`M21 12L18 17H22L19 22`,key:`zafso`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`,key:`1y4wr8`}]]),Ke=c(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),qe=c(`folder-search`,[[`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`,key:`1bw5m7`}],[`path`,{d:`m21 21-1.9-1.9`,key:`1g2n9r`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}]]),Je=c(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Ye=c(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),Xe=c(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),W=c(`puzzle`,[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]),Ze=c(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),G=e(t(),1),K=n();function q({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,K.jsx)(a,{"data-slot":`separator`,decorative:n,orientation:t,className:z(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}var Qe=[{key:`general`,label:`General`},{key:`tabs`,label:`Tabs`},{key:`projects`,label:`Projects`}],$e=[`Ctrl+T`,`Ctrl+W`,`Ctrl+N`,`Ctrl+Tab`,`Ctrl+L`,`Ctrl+H`,`Ctrl+J`,`F5`,`Ctrl+R`,`Ctrl+Shift+I`,`Ctrl+Shift+J`];function et({actionId:e,combo:t,locked:n}){let[r,i]=(0,G.useState)(!1),a=pe(e=>e.setBinding),o=(0,G.useRef)(null),s=(0,G.useCallback)(t=>{if(t.preventDefault(),t.stopPropagation(),t.key===`Escape`){i(!1);return}let n=fe(t);n&&(a(e,n),i(!1))},[e,a]);return(0,G.useEffect)(()=>{if(r)return document.addEventListener(`keydown`,s,!0),()=>document.removeEventListener(`keydown`,s,!0)},[r,s]),(0,G.useEffect)(()=>{if(!r)return;let e=e=>{o.current&&!o.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),n?(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border border-border bg-muted px-2 py-0.5 text-[11px] font-mono text-muted-foreground`,children:[(0,K.jsx)(ae,{className:`size-2.5`}),de(t)]}):r?(0,K.jsx)(`button`,{ref:o,className:`inline-flex items-center rounded border-2 border-primary bg-primary/10 px-2 py-0.5 text-[11px] font-mono text-primary animate-pulse`,children:`Press keys...`}):(0,K.jsx)(`button`,{ref:o,onClick:()=>i(!0),className:`inline-flex items-center rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-mono text-foreground hover:border-primary hover:bg-primary/5 transition-colors cursor-pointer`,title:`Click to change shortcut`,children:de(t)})}function tt(){let{getBinding:e,resetBinding:t,resetAll:n,overrides:r}=pe(),i=he(e=>e.contributions),a=i?.keybindings??[],o=i?.commands??[];return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`Keyboard Shortcuts`}),Object.keys(r).length>0&&(0,K.jsxs)(B,{variant:`ghost`,size:`sm`,className:`h-6 text-[10px] text-muted-foreground`,onClick:n,children:[(0,K.jsx)(ce,{className:`size-3 mr-1`}),`Reset all`]})]}),(0,K.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-warning/30 bg-warning/5 px-2.5 py-2`,children:[(0,K.jsx)(N,{className:`size-3.5 text-warning shrink-0 mt-0.5`}),(0,K.jsxs)(`p`,{className:`text-[10px] text-muted-foreground leading-relaxed`,children:[`Some shortcuts (`,$e.slice(0,4).join(`, `),`...) are reserved by the browser and cannot be overridden.`]})]}),Qe.map(n=>{let i=me.filter(e=>e.category===n.key);return i.length===0?null:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:n.label}),(0,K.jsx)(`div`,{className:`space-y-0.5`,children:i.map(n=>{let i=e(n.id),a=n.id in r;return(0,K.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,K.jsx)(`span`,{className:`text-xs text-foreground`,children:n.label}),n.note&&(0,K.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:n.note})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,K.jsx)(et,{actionId:n.id,combo:i,locked:n.locked}),a&&!n.locked&&(0,K.jsx)(`button`,{onClick:()=>t(n.id),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,K.jsx)(ce,{className:`size-3`})})]})]},n.id)})})]},n.key)}),a.length>0&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Extensions`}),(0,K.jsx)(`div`,{className:`space-y-0.5`,children:a.map(n=>{let i=o.find(e=>e.command===n.command)?.title??n.command,a=`ext:${n.command}`,s=e(a)||n.key,c=a in r;return(0,K.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,K.jsx)(W,{className:`size-3 text-muted-foreground shrink-0`}),(0,K.jsx)(`span`,{className:`text-xs text-foreground`,children:i})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,K.jsx)(et,{actionId:a,combo:s}),c&&(0,K.jsx)(`button`,{onClick:()=>t(a),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,K.jsx)(ce,{className:`size-3`})})]})]},a)})})]})]})}var nt=[{value:`claude-opus-5`,label:`Claude Opus 5`,hint:`most powerful`},{value:`claude-fable-5-1`,label:`Claude Fable 5.1`,hint:`flagship`},{value:`claude-fable-5`,label:`Claude Fable 5`,hint:`flagship`},{value:`claude-opus-4-8`,label:`Claude Opus 4.8`,hint:`powerful`},{value:`claude-opus-4-7`,label:`Claude Opus 4.7`,hint:`powerful`},{value:`claude-opus-4-6`,label:`Claude Opus 4.6`,hint:`powerful`},{value:`claude-sonnet-5`,label:`Claude Sonnet 5`,hint:`fast`},{value:`claude-sonnet-4-6`,label:`Claude Sonnet 4.6`,hint:`fast`},{value:`claude-haiku-4-5`,label:`Claude Haiku 4.5`,hint:`cheap`}];nt.map(e=>e.value);var rt=`Hello! Reply briefly.`,it=`claude-opus-5`;function at(e){let[t,n]=(0,G.useState)(!1);return(0,K.jsxs)(Te,{open:t,onOpenChange:n,children:[(0,K.jsx)(we,{asChild:!0,children:(0,K.jsxs)(B,{variant:`outline`,size:`sm`,className:`h-7 text-[11px] gap-1.5 cursor-pointer`,children:[(0,K.jsx)(Ke,{className:`size-3`}),`Test`]})}),(0,K.jsxs)(xe,{className:`sm:max-w-md max-h-[85vh] overflow-y-auto`,children:[(0,K.jsxs)(ye,{children:[(0,K.jsx)(Se,{className:`text-sm`,children:`Test Proxy`}),(0,K.jsx)(Ce,{className:`text-[11px]`,children:`Send a test request and inspect the raw response.`})]}),t&&(0,K.jsx)(ot,{...e})]})]})}function ot({authKey:e,baseUrl:t}){let[n,r]=(0,G.useState)(`anthropic`),[i,a]=(0,G.useState)(rt),[o,s]=(0,G.useState)(it),[c,l]=(0,G.useState)(!0),[u,d]=(0,G.useState)(!1),[f,p]=(0,G.useState)(null),[m,h]=(0,G.useState)(null),[g,_]=(0,G.useState)(null),y=(0,G.useRef)(null),b=(0,G.useRef)(null);(0,G.useEffect)(()=>{y.current?.select()},[]),(0,G.useEffect)(()=>{b.current&&(b.current.scrollTop=b.current.scrollHeight)},[f]);let x=e=>{r(e),p(null),h(null),_(null)},S=async()=>{d(!0),p(null),h(null),_(null);let r=Date.now(),a=n===`openai`,s=a?`${t}/proxy/v1/chat/completions`:`${t}/proxy/v1/messages`,l=JSON.stringify({model:o,max_tokens:256,stream:c,messages:[{role:`user`,content:i}]}),u={"Content-Type":`application/json`};a?u.Authorization=`Bearer ${e}`:(u[`x-api-key`]=e,u[`anthropic-version`]=`2023-06-01`);try{let e=await fetch(s,{method:`POST`,headers:u,body:l});if(!e.ok){let t=await e.text();h(`HTTP ${e.status}: ${t}`),d(!1),_(Date.now()-r);return}if(c){let t=e.body?.getReader();if(!t){h(`No response body`),d(!1);return}let n=new TextDecoder,i=``;for(;;){let{done:e,value:r}=await t.read();if(e)break;i+=n.decode(r,{stream:!0}),p(i)}_(Date.now()-r)}else{let t=await e.text();try{p(JSON.stringify(JSON.parse(t),null,2))}catch{p(t)}_(Date.now()-r)}}catch(e){h(e.message)}finally{d(!1),_(e=>e??Date.now()-r)}};return(0,K.jsxs)(`div`,{className:`space-y-3 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`space-y-1.5 min-w-0`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Auth Style`}),(0,K.jsx)(`div`,{className:`flex gap-1`,children:[`anthropic`,`openai`].map(e=>(0,K.jsx)(`button`,{onClick:()=>x(e),className:`flex-1 h-8 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${n===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e===`anthropic`?`Anthropic`:`OpenAI`},e))}),(0,K.jsx)(`p`,{className:`text-[9px] text-muted-foreground`,children:n===`anthropic`?`x-api-key header`:`Authorization: Bearer header`})]}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Model`}),(0,K.jsx)(`select`,{value:o,onChange:e=>s(e.target.value),className:`h-8 w-full rounded-md border bg-background px-2 text-[11px]`,children:nt.map(e=>(0,K.jsx)(`option`,{value:e.value,children:e.value},e.value))})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Streaming`}),(0,K.jsx)(`div`,{className:`flex gap-1`,children:[!0,!1].map(e=>(0,K.jsx)(`button`,{onClick:()=>l(e),className:`h-7 px-3 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${c===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e?`Stream`:`JSON`},String(e)))})]}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Message`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{ref:y,value:i,onChange:e=>a(e.target.value),placeholder:`Type a test message...`,className:`h-9 text-[11px] flex-1 min-w-0`,onKeyDown:e=>{e.key===`Enter`&&!u&&S()}}),(0,K.jsxs)(B,{size:`sm`,className:`h-9 px-3 cursor-pointer shrink-0`,onClick:S,disabled:u||!i.trim(),children:[u?(0,K.jsx)(k,{className:`size-3.5 animate-spin`}):(0,K.jsx)(A,{className:`size-3.5`}),(0,K.jsx)(`span`,{className:`ml-1 text-[11px]`,children:u?`...`:`Send`})]})]})]}),(f||m)&&(0,K.jsxs)(`div`,{className:`space-y-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`Raw Response`}),g!=null&&(0,K.jsxs)(`span`,{className:`text-[9px] font-mono text-muted-foreground`,children:[(g/1e3).toFixed(1),`s`]})]}),m?(0,K.jsx)(`pre`,{className:`text-[9px] font-mono bg-error/10 text-error p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:m}):(0,K.jsx)(`pre`,{ref:b,className:`text-[9px] font-mono bg-muted p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:f})]})]})}function st(){let[e,t]=(0,G.useState)(null),[n,r]=(0,G.useState)(!0),[i,a]=(0,G.useState)(!1),[o,s]=(0,G.useState)(null),[c,l]=(0,G.useState)(null);(0,G.useEffect)(()=>{r(!0),Pe().then(t).catch(e=>s(e.message)).finally(()=>r(!1))},[]);let u=async e=>{a(!0),s(null);try{t(await Le(e))}catch(e){s(e.message)}finally{a(!1)}},d=(e,t)=>{_e(e),l(t),setTimeout(()=>l(null),2e3)};if(n||!e)return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`API Proxy`}),(0,K.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:o?`Error: ${o}`:`Loading...`})]});let f=!!e.authKey,p=!!e.tunnelUrl,m=e.localEndpoint,h=m.replace(/\/proxy\/v1\/messages$/,``);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(`div`,{className:`space-y-1.5`,children:(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Expose your Claude accounts as an Anthropic-compatible API endpoint. External tools (OpenCode, Cursor, etc.) can use your accounts via this proxy.`})}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,K.jsx)(v,{className:`text-xs`,children:`Enable Proxy`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Accept API requests on /proxy/v1/messages`})]}),(0,K.jsx)(U,{checked:e.enabled,onCheckedChange:e=>u({enabled:e}),disabled:i})]}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-[11px]`,children:`Auth Key`}),f?(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{readOnly:!0,value:e.authKey,className:`h-7 text-[11px] font-mono flex-1`}),(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>d(e.authKey,`key`),children:c===`key`?`Copied!`:(0,K.jsx)(E,{className:`size-3`})}),(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>u({generateKey:!0}),disabled:i,children:(0,K.jsx)(se,{className:`size-3`})})]}):(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-7 text-xs cursor-pointer`,onClick:()=>u({generateKey:!0}),disabled:i,children:`Generate Auth Key`}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Use as Bearer token or x-api-key when calling the proxy.`})]}),e.enabled&&f&&(0,K.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3 bg-muted/30`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`h4`,{className:`text-[11px] font-medium`,children:`Connection Info`}),(0,K.jsx)(at,{authKey:e.authKey,baseUrl:window.location.origin})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Endpoint`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,K.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.proxyEndpoint:m}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.proxyEndpoint:m,`anthropic`),children:c===`anthropic`?`Copied!`:(0,K.jsx)(E,{className:`size-3`})})]})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`OpenAI-Compatible Endpoint`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,K.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.openAiEndpoint:e.localOpenAiEndpoint}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.openAiEndpoint:e.localOpenAiEndpoint,`openai`),children:c===`openai`?`Copied!`:(0,K.jsx)(E,{className:`size-3`})})]})]}),!p&&(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Start a Cloudflare tunnel (Share) to get a public URL.`}),(0,K.jsxs)(`div`,{className:`space-y-1 pt-1`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Format`}),(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(`pre`,{className:`text-[9px] font-mono bg-muted p-2 rounded overflow-x-auto whitespace-pre`,children:`ANTHROPIC_BASE_URL=${p?e.tunnelUrl+`/proxy`:h+`/proxy`}
|
|
2
2
|
ANTHROPIC_API_KEY=${e.authKey}`}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`absolute top-1 right-1 h-5 px-1 cursor-pointer`,onClick:()=>d(`ANTHROPIC_BASE_URL=${p?e.tunnelUrl+`/proxy`:h+`/proxy`}\nANTHROPIC_API_KEY=${e.authKey}`,`anthropic-env`),children:c===`anthropic-env`?`Copied!`:(0,K.jsx)(E,{className:`size-2.5`})})]})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(v,{className:`text-[10px] text-muted-foreground`,children:`OpenAI Format`}),(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(`pre`,{className:`text-[9px] font-mono bg-muted p-2 rounded overflow-x-auto whitespace-pre`,children:`OPENAI_BASE_URL=${p?e.tunnelUrl+`/proxy/v1`:h+`/proxy/v1`}
|
|
3
3
|
OPENAI_API_KEY=${e.authKey}`}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`absolute top-1 right-1 h-5 px-1 cursor-pointer`,onClick:()=>d(`OPENAI_BASE_URL=${p?e.tunnelUrl+`/proxy/v1`:h+`/proxy/v1`}\nOPENAI_API_KEY=${e.authKey}`,`openai-env`),children:c===`openai-env`?`Copied!`:(0,K.jsx)(E,{className:`size-2.5`})})]})]}),(0,K.jsx)(`div`,{className:`flex items-center gap-3 pt-1`,children:(0,K.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`Requests served: `,(0,K.jsx)(`span`,{className:`font-mono`,children:e.requestCount})]})})]}),i&&(0,K.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`Saving...`}),o&&(0,K.jsx)(`p`,{className:`text-[11px] text-error`,children:o})]})}function ct(){let[e,t]=(0,G.useState)([]),[n,r]=(0,G.useState)(!0),[i,a]=(0,G.useState)(``),[o,s]=(0,G.useState)(!1),[c,l]=(0,G.useState)(``),[u,d]=(0,G.useState)(!1),[f,p]=(0,G.useState)(null),[m,h]=(0,G.useState)(null),g=(0,G.useCallback)(async()=>{try{t(await I.get(`/api/extensions`))}catch(e){console.error(`Failed to load extensions:`,e)}finally{r(!1)}},[]);(0,G.useEffect)(()=>{g()},[g]);let _=async()=>{let e=i.trim();if(e){s(!0);try{await I.post(`/api/extensions/install`,{name:e}),L.success(`Installed ${e}`),a(``),g()}catch(e){L.error(e.message||`Install failed`)}finally{s(!1)}}},v=async e=>{p(e.id);try{await I.patch(`/api/extensions/${e.id}`,{enabled:!e.enabled}),g()}catch(e){L.error(e.message||`Toggle failed`)}finally{p(null)}},y=async e=>{h(e);try{await I.del(`/api/extensions/${e}`),L.success(`Removed ${e}`),g()}catch(e){L.error(e.message||`Remove failed`)}finally{h(null)}};return n?(0,K.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,K.jsx)(k,{className:`size-4 animate-spin text-muted-foreground`})}):(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Install Extension`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&_()},placeholder:`npm package name (e.g. @ppm/ext-myext)`,className:`h-8 text-xs flex-1`}),(0,K.jsxs)(B,{variant:`outline`,size:`sm`,className:`h-8 text-xs px-3 gap-1 cursor-pointer`,disabled:!i.trim()||o,onClick:_,children:[o?(0,K.jsx)(k,{className:`size-3 animate-spin`}):(0,K.jsx)(O,{className:`size-3`}),`Install`]})]}),(0,K.jsx)(`button`,{onClick:()=>d(!u),className:`text-[11px] text-muted-foreground hover:text-foreground transition-colors cursor-pointer`,children:u?`Hide`:`Dev link local extension...`}),u&&(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{value:c,onChange:e=>l(e.target.value),placeholder:`Local path (e.g. ./packages/ext-myext)`,className:`h-8 text-xs flex-1`}),(0,K.jsxs)(B,{variant:`outline`,size:`sm`,className:`h-8 text-xs px-3 gap-1 cursor-pointer`,disabled:!c.trim(),onClick:async()=>{try{await I.post(`/api/extensions/dev-link`,{path:c.trim()}),L.success(`Dev-linked successfully`),l(``),g()}catch(e){L.error(e.message||`Dev link failed`)}},children:[(0,K.jsx)(te,{className:`size-3`}),`Link`]})]})]}),(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsxs)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:[`Installed (`,e.length,`)`]}),e.length===0?(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-4 text-center`,children:`No extensions installed`}):(0,K.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-2 rounded-lg bg-muted/50 hover:bg-muted transition-colors`,children:[(0,K.jsx)(`div`,{className:`size-8 rounded-md bg-background flex items-center justify-center shrink-0`,children:(0,K.jsx)(W,{className:`size-4 text-muted-foreground`})}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.displayName||e.id}),(0,K.jsxs)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:[e.id,` v`,e.version,e.activated&&(0,K.jsx)(`span`,{className:`ml-1 text-success`,children:`active`})]})]}),(0,K.jsx)(B,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer`,title:e.enabled?`Disable`:`Enable`,disabled:f===e.id,onClick:()=>v(e),children:f===e.id?(0,K.jsx)(k,{className:`size-3.5 animate-spin`}):e.enabled?(0,K.jsx)(Xe,{className:`size-3.5 text-success`}):(0,K.jsx)(Ye,{className:`size-3.5 text-muted-foreground`})}),(0,K.jsx)(B,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer text-destructive hover:text-destructive`,title:`Remove`,disabled:m===e.id,onClick:()=>y(e.id),children:m===e.id?(0,K.jsx)(k,{className:`size-3.5 animate-spin`}):(0,K.jsx)(M,{className:`size-3.5`})})]},e.id))})]})]})}function lt(){let[e,t]=(0,G.useState)(null),[n,r]=(0,G.useState)(!1),[i,a]=(0,G.useState)(null),[o,s]=(0,G.useState)(``),[c,l]=(0,G.useState)(!1),[u,d]=(0,G.useState)(!1),[p,m]=(0,G.useState)(!1),[h,g]=(0,G.useState)(``),[_,v]=(0,G.useState)(!0),[y,b]=(0,G.useState)(!1),[x,S]=(0,G.useState)(2e3),[C,w]=(0,G.useState)([]),[T,E]=(0,G.useState)(``),[D,O]=(0,G.useState)(!1),[te,ne]=(0,G.useState)(!1),[ie,k]=(0,G.useState)([]),[ae,oe]=(0,G.useState)(`_global`),[A,ce]=(0,G.useState)([]),j=(0,G.useRef)(void 0),N=(0,G.useCallback)(async()=>{try{w(await I.get(`/api/settings/clawbot/paired`))}catch{}},[]),P=(0,G.useCallback)(async(e=ae)=>{try{k(await I.get(`/api/settings/clawbot/memories?project=${encodeURIComponent(e)}`))}catch{}},[ae]),F=(0,G.useCallback)(async()=>{try{ce(await I.get(`/api/settings/clawbot/tasks?limit=20`))}catch{}},[]),L=async e=>{try{await I.del(`/api/settings/clawbot/memories/${e}`),k(t=>t.filter(t=>t.id!==e))}catch{}};(0,G.useEffect)(()=>(I.get(`/api/settings/clawbot`).then(e=>{t(e),m(e.enabled),g(e.system_prompt),v(e.show_tool_calls),b(e.show_thinking),S(e.debounce_ms)}).catch(()=>{}),I.get(`/api/settings/telegram`).then(e=>{l(!!e.bot_token)}).catch(()=>{}),N(),P(`_global`),F(),j.current=setInterval(F,1e4),()=>{j.current&&clearInterval(j.current)}),[N,P,F]);let R=async()=>{if(o.trim()){d(!0),a(null);try{await I.put(`/api/settings/telegram`,{bot_token:o}),l(!0),s(``),a({type:`ok`,msg:`Bot token saved`})}catch(e){a({type:`err`,msg:e.message})}finally{d(!1)}}},z=async()=>{r(!0),a(null);try{let e={enabled:p,system_prompt:h,show_tool_calls:_,show_thinking:y,debounce_ms:x};t(await I.put(`/api/settings/clawbot`,e)),a({type:`ok`,msg:p?`Saved — bot started`:`Saved — bot stopped`})}catch(e){a({type:`err`,msg:e.message})}finally{r(!1)}},le=async()=>{if(T.trim()){O(!0);try{await I.post(`/api/settings/clawbot/paired/approve`,{code:T.trim().toUpperCase()}),E(``),await N(),a({type:`ok`,msg:`Device approved`})}catch(e){a({type:`err`,msg:e.message})}finally{O(!1)}}},ue=async e=>{try{await I.del(`/api/settings/clawbot/paired/${e}`),await N(),a({type:`ok`,msg:`Device revoked`})}catch(e){a({type:`err`,msg:e.message})}},de=async()=>{ne(!0),a(null);try{await I.post(`/api/settings/telegram/test`,{}),a({type:`ok`,msg:`Test notification sent to all paired devices!`})}catch(e){a({type:`err`,msg:e.message})}finally{ne(!1)}};if(!e)return(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading...`});let fe=C.filter(e=>e.status===`approved`).length,pe={pending:`⏳`,running:`🔄`,completed:`✅`,failed:`❌`,timeout:`⏱`},me={running:`text-primary`,completed:`text-success`,failed:`text-destructive`,timeout:`text-warning`};return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Telegram Bot Token`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{type:`password`,placeholder:c?`•••••• (saved)`:`123456:ABC-DEF...`,value:o,onChange:e=>s(e.target.value),className:`h-7 text-xs flex-1`}),(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-7 text-xs shrink-0 cursor-pointer`,disabled:u||!o.trim(),onClick:R,children:u?`...`:`Save`})]}),(0,K.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[`Create a bot via `,(0,K.jsx)(`b`,{children:`@BotFather`}),` on Telegram. Used for both chat and notifications.`]})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`text-xs font-medium`,children:`Enable PPMBot`}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`AI coordinator on Telegram — delegates tasks to your projects`})]}),(0,K.jsx)(U,{checked:p,onCheckedChange:m})]}),(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium`,children:`Paired Devices`}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Send any message to the bot on Telegram to get a pairing code. Enter it below to approve. Notifications are sent to all approved devices.`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(H,{placeholder:`Enter pairing code (e.g. A3K7WR)`,value:T,onChange:e=>E(e.target.value.toUpperCase()),className:`h-8 text-xs font-mono tracking-wider uppercase`,maxLength:6}),(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-8 text-xs shrink-0 cursor-pointer`,disabled:D||T.length<6,onClick:le,children:D?`...`:`Approve`})]}),C.length===0?(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No paired devices yet.`}):(0,K.jsx)(`div`,{className:`space-y-1`,children:C.map(e=>(0,K.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[e.status===`approved`?(0,K.jsx)(We,{className:`size-3.5 text-success shrink-0`}):(0,K.jsx)(ee,{className:`size-3.5 text-warning shrink-0`}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-xs truncate`,children:e.display_name||`Chat ${e.telegram_chat_id}`}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:e.status===`pending`&&e.pairing_code?`Code: ${e.pairing_code}`:e.status})]})]}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0 text-destructive hover:text-destructive cursor-pointer`,onClick:()=>ue(e.telegram_chat_id),children:(0,K.jsx)(M,{className:`size-3.5`})})]},e.id))}),c&&fe>0&&(0,K.jsxs)(B,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1 w-full cursor-pointer`,disabled:te,onClick:de,children:[(0,K.jsx)(re,{className:`size-3`}),te?`Sending...`:`Test Notification`]})]}),(0,K.jsx)(q,{}),(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium`,children:`Delegated Tasks`}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 cursor-pointer`,onClick:F,children:(0,K.jsx)(se,{className:`size-3`})})]}),A.length===0?(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No delegated tasks yet. The coordinator will create tasks when you ask it to work on a project.`}):(0,K.jsx)(`div`,{className:`space-y-1 max-h-[200px] overflow-y-auto`,children:A.map(e=>{let t=e.completed_at?`${Math.round((e.completed_at-e.created_at)/60)}m`:`${Math.round((Date.now()/1e3-e.created_at)/60)}m`;return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border p-2 text-[11px]`,children:[(0,K.jsx)(`span`,{className:me[e.status]??``,children:pe[e.status]??`?`}),(0,K.jsx)(`span`,{className:`font-medium shrink-0`,children:e.project_name}),(0,K.jsx)(`span`,{className:`truncate text-muted-foreground flex-1`,children:e.prompt.slice(0,60)}),(0,K.jsx)(`span`,{className:`text-[10px] text-muted-foreground shrink-0`,children:t})]},e.id)})})]}),(0,K.jsx)(q,{}),(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(f,{className:`size-3.5 text-muted-foreground`}),(0,K.jsx)(`p`,{className:`text-xs font-medium`,children:`Memory & Identity`})]}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 cursor-pointer`,onClick:()=>P(ae),children:(0,K.jsx)(se,{className:`size-3`})})]}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Facts the bot remembers across sessions. Use /remember on Telegram to add, or delete here.`}),ie.length===0?(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No memories stored yet. Send /start on Telegram and introduce yourself.`}):(0,K.jsx)(`div`,{className:`space-y-1 max-h-[200px] overflow-y-auto`,children:ie.map(e=>(0,K.jsxs)(`div`,{className:`flex items-start justify-between rounded-md border p-2 gap-1`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`text-[11px] break-words`,children:e.content}),(0,K.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.category,` · `,e.project]})]}),(0,K.jsx)(B,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 text-destructive hover:text-destructive cursor-pointer shrink-0`,onClick:()=>L(e.id),children:(0,K.jsx)(M,{className:`size-3`})})]},e.id))})]}),(0,K.jsx)(q,{}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Custom Instructions`}),(0,K.jsx)(`textarea`,{placeholder:`Additional instructions for the coordinator (optional)...`,value:h,onChange:e=>g(e.target.value),className:`flex w-full rounded-md border border-input bg-background px-3 py-2 text-xs min-h-[60px] resize-y ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,rows:3}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Extra instructions added to the coordinator identity. Leave empty to use defaults from coordinator.md.`})]}),(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`p`,{className:`text-xs`,children:`Show tool calls`}),(0,K.jsx)(U,{checked:_,onCheckedChange:v})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`p`,{className:`text-xs`,children:`Show thinking`}),(0,K.jsx)(U,{checked:y,onCheckedChange:b})]})]}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Debounce (ms)`}),(0,K.jsx)(H,{type:`number`,min:0,max:3e4,step:500,value:x,onChange:e=>S(Number(e.target.value)),className:`h-7 text-xs w-24`}),(0,K.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Merge rapid messages within this window. 0 = no debounce.`})]}),(0,K.jsx)(B,{variant:`default`,size:`sm`,className:`h-8 text-xs w-full cursor-pointer`,disabled:n,onClick:z,children:n?`Saving...`:`Save`}),i&&(0,K.jsx)(`p`,{className:`text-[11px] ${i.type===`ok`?`text-success`:`text-destructive`}`,children:i.msg})]})}function ut(){let[e,t]=(0,G.useState)(!1),[n,r]=(0,G.useState)(``),[i,a]=(0,G.useState)(``),[o,s]=(0,G.useState)(!1),[c,l]=(0,G.useState)(!1),[d,f]=(0,G.useState)(!1),[p,m]=(0,G.useState)(null),h=i.length>0&&n!==i,g=n.trim().length>=4&&n===i&&!c,_=(0,G.useCallback)(async()=>{if(g){l(!0),m(null);try{let{token:e}=await I.put(`/api/settings/auth/password`,{password:n.trim(),confirm:i.trim()});F(e),f(!0),r(``),a(``),setTimeout(()=>{f(!1),t(!1)},1500)}catch(e){m(e instanceof Error?e.message:`Failed to change password`)}finally{l(!1)}}},[g,n,i]);return e?(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Change Password`}),(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(H,{type:o?`text`:`password`,placeholder:`New password`,value:n,onChange:e=>r(e.target.value),className:`h-8 text-xs pr-8`,autoFocus:!0}),(0,K.jsx)(`button`,{type:`button`,className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground cursor-pointer`,onClick:()=>s(!o),tabIndex:-1,children:o?(0,K.jsx)(u,{className:`size-3.5`}):(0,K.jsx)(D,{className:`size-3.5`})})]}),(0,K.jsx)(H,{type:o?`text`:`password`,placeholder:`Confirm password`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&_()},className:`h-8 text-xs`}),h&&(0,K.jsx)(`p`,{className:`text-[11px] text-destructive`,children:`Passwords do not match`}),p&&(0,K.jsx)(`p`,{className:`text-[11px] text-destructive`,children:p}),(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(B,{variant:`outline`,size:`sm`,className:`h-8 text-xs flex-1 cursor-pointer`,onClick:()=>{t(!1),r(``),a(``),m(null)},children:`Cancel`}),(0,K.jsx)(B,{variant:d?`default`:`outline`,size:`sm`,className:`h-8 text-xs flex-1 cursor-pointer`,disabled:!g,onClick:_,children:c?`...`:d?(0,K.jsx)(C,{className:`size-3.5`}):`Save`})]}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Min 4 characters. You'll stay logged in on this device.`})]})]}):(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Security`}),(0,K.jsxs)(B,{variant:`outline`,size:`sm`,className:`h-8 text-xs gap-1.5 cursor-pointer`,onClick:()=>t(!0),children:[(0,K.jsx)(S,{className:`size-3.5`}),`Change Password`]})]})}function dt(){return I.get(`/api/settings/files`)}function ft(e){return I.patch(`/api/settings/files`,e)}function pt(e){return I.get(`/api/projects/${encodeURIComponent(e)}/settings`)}function mt(e,t){return I.patch(`/api/projects/${encodeURIComponent(e)}/settings`,t)}function ht({value:e,onChange:t,placeholder:n=`e.g. **/*.log`,disabled:r=!1}){let i=(0,G.useRef)([]);function a(n,r){let i=[...e];i[n]=r,t(i)}function o(n){t(e.filter((e,t)=>t!==n)),setTimeout(()=>{let e=Math.max(n-1,0);i.current[e]?.focus()},0)}function s(){t([...e,``]),setTimeout(()=>{i.current[e.length]?.focus()},0)}function c(t,n){n.key===`Enter`?(n.preventDefault(),e[t]?.trim()&&s()):n.key===`Backspace`&&e[t]===``&&(n.preventDefault(),o(t))}return(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[e.length===0&&(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-1`,children:`No patterns. Click "Add pattern" to start.`}),e.map((e,t)=>(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(H,{ref:e=>{i.current[t]=e},value:e,onChange:e=>a(t,e.target.value),onKeyDown:e=>c(t,e),placeholder:n,disabled:r,className:`h-8 text-xs flex-1 font-mono`,"aria-label":`Pattern ${t+1}`}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>o(t),disabled:r,"aria-label":`Remove pattern ${t+1}`,className:`shrink-0 flex items-center justify-center p-2.5 rounded-md text-muted-foreground hover:text-destructive hover:bg-destructive/10 transition-colors disabled:opacity-40 disabled:pointer-events-none`,children:(0,K.jsx)(P,{className:`size-3.5`})})]},t)),(0,K.jsxs)(B,{type:`button`,variant:`outline`,size:`sm`,onClick:s,disabled:r,className:`h-8 text-xs gap-1.5 w-full cursor-pointer`,children:[(0,K.jsx)(O,{className:`size-3.5`}),`Add pattern`]})]})}var gt={filesExclude:[],searchExclude:[],useIgnoreFiles:!0};function _t(){let e=le(e=>e.activeProject),[t,n]=(0,G.useState)(`global`),[r,i]=(0,G.useState)([]),[a,o]=(0,G.useState)([]),[s,c]=(0,G.useState)(!0),[l,u]=(0,G.useState)(!1),[d,f]=(0,G.useState)(!1),[p,m]=(0,G.useState)(null),[h,g]=(0,G.useState)(!1),_=(0,G.useRef)(null);(0,G.useEffect)(()=>{_.current?.abort();let n=new AbortController;return _.current=n,g(!0),m(null),(async()=>{try{if(t===`global`){let e=await dt();if(n.signal.aborted)return;i(e.filesExclude),o(e.searchExclude),c(e.useIgnoreFiles)}else{if(!e)return;let t=await pt(e.name);if(n.signal.aborted)return;let r=t.files??{};i(r.filesExclude??gt.filesExclude),o(r.searchExclude??gt.searchExclude),c(r.useIgnoreFiles??gt.useIgnoreFiles)}}catch(e){if(n.signal.aborted)return;m(e.message)}finally{n.signal.aborted||g(!1)}})(),()=>n.abort()},[t,e?.name]);let y=async()=>{u(!0),f(!1),m(null);try{let n={filesExclude:r.filter(e=>e.trim()!==``),searchExclude:a.filter(e=>e.trim()!==``),useIgnoreFiles:s};if(t===`global`)await ft(n);else{if(!e)throw Error(`No active project`);await mt(e.name,{files:n})}let i=ue.getState();i.invalidateIndex(),e&&i.loadIndex(e.name),f(!0),setTimeout(()=>f(!1),2e3)}catch(e){m(e.message)}finally{u(!1)}},b=!!e;return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`File Filters`}),(0,K.jsxs)(`div`,{className:`flex gap-1`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>n(`global`),className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer ${t===`global`?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-accent`}`,children:`Global`}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>b&&n(`project`),disabled:!b,title:b?void 0:`Open a project to edit per-project overrides`,className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed ${t===`project`?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-accent`}`,children:e?e.name:`Per-project`})]}),t===`project`&&e&&(0,K.jsxs)(`p`,{className:`text-[11px] text-muted-foreground -mt-2`,children:[`Overrides for `,(0,K.jsx)(`span`,{className:`font-medium`,children:e.name}),`. Leave empty to use global settings.`]}),h?(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading...`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-xs`,children:`Files to Exclude`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Glob patterns hidden from the file tree and palette.`}),(0,K.jsx)(ht,{value:r,onChange:i,placeholder:`e.g. **/*.log or node_modules/**`,disabled:l})]}),(0,K.jsx)(q,{}),(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(v,{className:`text-xs`,children:`Search to Exclude`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Glob patterns excluded from file index / palette search.`}),(0,K.jsx)(ht,{value:a,onChange:o,placeholder:`e.g. dist/** or **/*.min.js`,disabled:l})]}),(0,K.jsx)(q,{}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(v,{className:`text-xs`,children:`Use .gitignore rules`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Respect .gitignore when filtering the file tree and index.`})]}),(0,K.jsx)(U,{checked:s,onCheckedChange:c,disabled:l})]}),p&&(0,K.jsx)(`p`,{className:`text-[11px] text-destructive`,children:p}),(0,K.jsx)(B,{onClick:y,disabled:l||h,size:`sm`,className:`h-8 text-xs w-full cursor-pointer`,children:l?`Saving...`:d?`Saved`:`Save`})]})]})}var vt=1e4;function yt(){let[e,t]=(0,G.useState)([]),[n,r]=(0,G.useState)(!0),i=(0,G.useCallback)(async()=>{try{t(await I.get(`/api/schedules`))}catch{}finally{r(!1)}},[]);return(0,G.useEffect)(()=>{i();let e=setInterval(()=>{document.visibilityState===`visible`&&i()},vt);return()=>clearInterval(e)},[i]),{schedules:e,loading:n,refetch:i}}function bt(e){let[t,n]=(0,G.useState)([]),[r,i]=(0,G.useState)(!1),a=(0,G.useCallback)(async()=>{if(e!=null){i(!0);try{n(await I.get(`/api/schedules/${e}/runs?limit=20`))}catch{n([])}finally{i(!1)}}},[e]);return(0,G.useEffect)(()=>{a()},[a]),{runs:t,loading:r,refetch:a}}var xt={done:`bg-success/10 text-success`,error:`bg-error/10 text-error`,running:`bg-warning/10 text-warning`,skipped:`bg-muted text-muted-foreground`};function St({scheduleId:e}){let{runs:t,loading:n}=bt(e);return n&&t.length===0?(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-1`,children:`Loading runs…`}):t.length===0?(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-1`,children:`No runs yet.`}):(0,K.jsx)(`div`,{className:`space-y-1`,children:t.map(e=>(0,K.jsx)(wt,{run:e},e.id))})}function Ct(e){return new Date(e.includes(`T`)?e:e.replace(` `,`T`)+`Z`)}function wt({run:e}){let[t,n]=(0,G.useState)(!1),r=!!(e.output_truncated||e.error),i=e.ended_at?`${Math.round((Ct(e.ended_at).getTime()-Ct(e.started_at).getTime())/1e3)}s`:`…`;return(0,K.jsxs)(`div`,{className:`rounded border border-border text-[11px]`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>r&&n(!t),className:z(`w-full flex items-center gap-2 px-2 py-2 min-h-11 text-left`,r&&`cursor-pointer hover:bg-accent/30`),children:[(0,K.jsx)(`span`,{className:z(`rounded px-1.5 py-0.5 font-medium shrink-0`,xt[e.status]),children:e.status}),(0,K.jsxs)(`span`,{className:`text-muted-foreground truncate flex-1`,children:[Ct(e.started_at).toLocaleString(),` · `,i,e.cost_usd!=null&&` · $${e.cost_usd.toFixed(4)}`,e.context_window_pct!=null&&` · ctx ${e.context_window_pct}%`]})]}),t&&(0,K.jsxs)(`div`,{className:`px-2 pb-2 space-y-1`,children:[e.error&&(0,K.jsx)(`p`,{className:`text-error break-all`,children:e.error}),e.output_truncated&&(0,K.jsx)(`pre`,{className:`overflow-auto max-h-96 whitespace-pre-wrap break-all text-muted-foreground font-mono text-[10px]`,children:e.output_truncated})]})]})}function Tt({schedule:e,onEdit:t,onChanged:n}){let[r,i]=(0,G.useState)(!1),[a,o]=(0,G.useState)(0);return(0,K.jsxs)(`div`,{className:`rounded-lg border border-border`,children:[(0,K.jsxs)(Ae,{children:[(0,K.jsx)(je,{asChild:!0,children:(0,K.jsxs)(`button`,{type:`button`,onClick:()=>i(!r),className:`w-full flex items-center gap-2 px-2.5 py-2.5 min-h-11 text-left cursor-pointer hover:bg-accent/30`,children:[r?(0,K.jsx)(w,{className:`size-3.5 shrink-0 text-muted-foreground`}):(0,K.jsx)(T,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.name}),(0,K.jsxs)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:[(0,K.jsx)(`span`,{className:`font-mono`,children:e.cron_expr}),` · `,e.next_fire_at&&e.enabled?`next ${new Date(e.next_fire_at).toLocaleString()}`:`—`]})]}),(0,K.jsx)(`span`,{className:z(`rounded px-1.5 py-0.5 text-[10px] font-medium shrink-0`,e.enabled?`bg-success/10 text-success`:`bg-muted text-muted-foreground`),children:e.enabled?`Enabled`:`Disabled`})]})}),(0,K.jsxs)(Oe,{children:[(0,K.jsxs)(V,{onClick:async()=>{try{let t=await I.post(`/api/schedules/${e.id}/run-now`);L.success(`Run #${t.runId} started${t.wasRunning?` (previous run still active)`:``}`),i(!0),o(e=>e+1)}catch(e){L.error(e instanceof Error?e.message:`Run failed`)}},children:[(0,K.jsx)(A,{className:`size-3.5`}),` Run now`]}),(0,K.jsxs)(V,{onClick:async()=>{try{await I.patch(`/api/schedules/${e.id}`,{enabled:!e.enabled}),n()}catch(e){L.error(e instanceof Error?e.message:`Update failed`)}},children:[(0,K.jsx)(Xe,{className:`size-3.5`}),` `,e.enabled?`Disable`:`Enable`]}),(0,K.jsxs)(V,{onClick:t,children:[(0,K.jsx)(p,{className:`size-3.5`}),` Edit`]}),(0,K.jsx)(ke,{}),(0,K.jsxs)(V,{variant:`destructive`,onClick:async()=>{try{await I.del(`/api/schedules/${e.id}`),L.success(`Schedule deleted`),n()}catch(e){L.error(e instanceof Error?e.message:`Delete failed`)}},children:[(0,K.jsx)(M,{className:`size-3.5`}),` Delete`]})]})]}),r&&(0,K.jsxs)(`div`,{className:`px-2.5 pb-2.5 space-y-1.5`,children:[(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground break-all line-clamp-3`,children:e.prompt}),(0,K.jsx)(St,{scheduleId:e.id},a)]})]})}function J(e,t,n,r,i,a,o,s){return J.fromTZ(J.tp(e,t,n,r,i,a,o),s)}J.fromTZISO=(e,t,n)=>J.fromTZ(Dt(e,t),n),J.fromTZ=function(e,t){let n=new Date(Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)),r=Et(e.tz,n),i=new Date(n.getTime()-r),a=Et(e.tz,i);if(a-r===0)return i;{let r=new Date(n.getTime()-a),o=Et(e.tz,r);if(o-a===0||!t&&o-a>0)return r;if(t)throw Error(`Invalid date passed to fromTZ()`);return i}},J.toTZ=function(e,t){let n=e.toLocaleString(`en-US`,{timeZone:t}).replace(/[\u202f]/,` `),r=new Date(n);return{y:r.getFullYear(),m:r.getMonth()+1,d:r.getDate(),h:r.getHours(),i:r.getMinutes(),s:r.getSeconds(),tz:t}},J.tp=(e,t,n,r,i,a,o)=>({y:e,m:t,d:n,h:r,i,s:a,tz:o});function Et(e,t=new Date){let n=t.toLocaleString(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).split(` `).slice(-1)[0],r=t.toLocaleString(`en-US`).replace(/[\u202f]/,` `);return Date.parse(`${r} GMT`)-Date.parse(`${r} ${n}`)}function Dt(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`minitz: Invalid ISO8601 passed to parser.`);let r=e.substring(9);return e.includes(`Z`)||r.includes(`-`)||r.includes(`+`)?J.tp(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):J.tp(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}J.minitz=J;var Ot=32,Y=31|Ot,kt=[1,2,4,8,16],At=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(e,t){this.pattern=e,this.timezone=t,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.replace(/\s+/g,` `).split(` `);if(e.length<5||e.length>6)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five or six space separated parts are required.`);if(e.length===5&&e.unshift(`0`),e[3].indexOf(`L`)>=0&&(e[3]=e[3].replace(`L`,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.replaceAlphaDays(e[5])),e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0){let t=new Z(new Date,this.timezone).getDate(!0);e[0]=e[0].replace(`?`,t.getSeconds().toString()),e[1]=e[1].replace(`?`,t.getMinutes().toString()),e[2]=e[2].replace(`?`,t.getHours().toString()),this.starDOM||(e[3]=e[3].replace(`?`,t.getDate().toString())),e[4]=e[4].replace(`?`,(t.getMonth()+1).toString()),this.starDOW||(e[5]=e[5].replace(`?`,t.getDay().toString()))}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1),this.partToArray(`dayOfWeek`,e[5],0,Y),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth;if(t===``&&!a)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let o=t.split(`,`);if(o.length>1)for(let t=0;t<o.length;t++)this.partToArray(e,o[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=parseInt(i[0],10)+n;if(isNaN(a))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,a,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`&&(t<0||t>=12))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t);this[e][t]=n}handleRangeWithStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);if(isNaN(l))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(u))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(isNaN(d))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(d===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(d>this[t].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[t].length+`)`);if(l>u)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}return[n,r]}handleRange(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;if(isNaN(o))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(o>s)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);a[0]===``&&(a[0]=`*`);let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(s===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(s>this[t].length)throw TypeError(`CronPattern: Syntax error, max steps for part is (`+this[t].length+`)`);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();return t===`@yearly`||t===`@annually`?`0 0 1 1 *`:t===`@monthly`?`0 0 1 * *`:t===`@weekly`?`0 0 * * 0`:t===`@daily`?`0 0 * * *`:t===`@hourly`?`0 * * * *`:e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|Ot;else if(t===Y)this.dayOfWeek[e]=Y;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|kt[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},jt=[31,28,31,30,31,30,31,31,30,31,30,31],X=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],Z=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date)if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`);else if(t===void 0)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&Y&&kt[a-1]&r)return!0;if(r&Ot){let r=new Date(Date.UTC(e,t+1,0)).getUTCDate();for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0)if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else{let t=J.toTZ(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.day>jt[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}else return!1}fromString(e){if(typeof this.tz==`number`){let t=J.fromTZISO(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(J.fromTZISO(e,this.tz))}findNext(e,t,n,r){let i=this[t],a;n.lastDayOfMonth&&(a=this.month===1?new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate():jt[this.month]);let o=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let s=this[t]+r;s<n[t].length;s++){let c=n[t][s];if(t===`day`&&n.lastDayOfMonth&&s-r==a&&(c=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(o+(s-r-1))%7];if(t&&t&Y)t=this.isNthWeekdayOfMonth(this.year,this.month,s-r,t)?1:0;else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);e.legacyMode&&!n.starDOM?c||=t:c&&=t}if(c)return this[t]=s-r,i===this[t]?1:2}return 3}recurse(e,t,n){let r=this.findNext(t,X[n][0],e,X[n][2]);if(r>1){let i=n+1;for(;i<X.length;)this[X[i][0]]=-X[i][2],i++;if(r===3)return this[X[n][1]]++,this[X[n][0]]=-X[n][2],this.apply(),this.recurse(e,t,0);if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=X.length?this:this.year>=3e3?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):J.fromTZ(J.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function Mt(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode=e.legacyMode===void 0?!0:e.legacyMode,e.paused=e.paused===void 0?!1:e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch===void 0?!1:e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.unref=e.unref===void 0?!1:e.unref,e.startAt&&=new Z(e.startAt,e.timezone),e.stopAt&&=new Z(e.stopAt,e.timezone),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);return e}function Q(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function Nt(e){return Q(e)}function Pt(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var Ft=30*1e3,It=[],Lt=class{name;options;_states;fn;constructor(e,t,n){let r,i;if(Q(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(Q(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=Mt(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new At(`* * * * *`)},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new Z(e,this.options.timezone||this.options.utcOffset):this._states.pattern=new At(e,this.options.timezone),this.name){if(It.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);It.push(this)}return i!==void 0&&Nt(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?t.getDate(!1):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=[],r=t||this._states.currentRun||void 0;for(;e--&&(r=this.nextRun(r));)n.push(r);return n}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof Z||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new Z(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=It.indexOf(this);e>=0&&It.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>Ft&&(t=Ft),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&Pt(this._states.currentTimeout),this)}async _trigger(e){if(this._states.blocking=!0,this._states.currentRun=new Z(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){Q(this.options.catch)&&this.options.catch(e,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new Z(e,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&Q(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new Z(e,this.options.timezone||this.options.utcOffset),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new Z(e,this.options.timezone||this.options.utcOffset);return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_calculatePreviousRun(e,t){let n=new Z(void 0,this.options.timezone||this.options.utcOffset),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new Z(r,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}},Rt=[`bypassPermissions`,`acceptEdits`,`default`,`plan`];function zt({open:e,schedule:t,onClose:n,onSaved:r}){let i=ge(),[a,o]=(0,G.useState)(()=>Bt(t)),[s,c]=(0,G.useState)([]),[l,u]=(0,G.useState)(!1),[d,f]=(0,G.useState)(null);(0,G.useEffect)(()=>{e&&(o(Bt(t)),f(null),I.get(`/api/projects`).then(c).catch(()=>c([])))},[e,t]);let p=(0,G.useMemo)(()=>{try{return new Lt(a.cron_expr).nextRuns(3).map(e=>e.toLocaleString())}catch{return null}},[a.cron_expr]),g=(e,t)=>o(n=>({...n,[e]:t})),v=(0,K.jsxs)(`div`,{className:`space-y-3 px-1`,children:[(0,K.jsx)($,{label:`Name`,children:(0,K.jsx)(H,{value:a.name,onChange:e=>g(`name`,e.target.value),placeholder:`Morning PR review`,className:`h-11 md:h-9 text-xs`})}),(0,K.jsxs)($,{label:`Cron expression (local timezone)`,children:[(0,K.jsx)(H,{value:a.cron_expr,onChange:e=>g(`cron_expr`,e.target.value),placeholder:`0 7 * * *`,className:`h-11 md:h-9 text-xs font-mono`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:p?`Next: ${p.join(` · `)}`:`—`})]}),(0,K.jsx)($,{label:`Project`,children:(0,K.jsxs)(_,{value:a.project_path,onValueChange:e=>g(`project_path`,e),children:[(0,K.jsx)(b,{className:`w-full min-h-11 md:min-h-9 text-xs`,children:(0,K.jsx)(h,{placeholder:`Select project`})}),(0,K.jsx)(m,{children:s.map(e=>(0,K.jsx)(y,{value:e.path,children:e.name},e.path))})]})}),(0,K.jsx)($,{label:`Prompt (do not embed secrets)`,children:(0,K.jsx)(`textarea`,{value:a.prompt,onChange:e=>g(`prompt`,e.target.value),placeholder:`Check open PRs and summarize. If nothing to do, finish immediately.`,rows:4,className:`w-full rounded-md border border-input bg-transparent px-3 py-2 text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring/50 resize-y`})}),(0,K.jsxs)($,{label:`Permission mode`,children:[(0,K.jsxs)(_,{value:a.permission_mode,onValueChange:e=>g(`permission_mode`,e),children:[(0,K.jsx)(b,{className:`w-full min-h-11 md:min-h-9 text-xs`,children:(0,K.jsx)(h,{})}),(0,K.jsx)(m,{children:Rt.map(e=>(0,K.jsx)(y,{value:e,children:e},e))})]}),a.permission_mode===`bypassPermissions`&&(0,K.jsx)(`p`,{className:`text-[11px] text-warning`,children:`⚠ Unattended writes — agent can modify code and run commands`})]}),(0,K.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,K.jsx)($,{label:`Max turns (optional)`,children:(0,K.jsx)(H,{type:`number`,min:1,value:a.max_turns,onChange:e=>g(`max_turns`,e.target.value),placeholder:`∞`,className:`h-11 md:h-9 text-xs`})}),(0,K.jsx)($,{label:`Timeout (ms)`,children:(0,K.jsx)(H,{type:`number`,min:1e4,value:a.timeout_ms,onChange:e=>g(`timeout_ms`,e.target.value),className:`h-11 md:h-9 text-xs`})})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between min-h-11`,children:[(0,K.jsx)(`span`,{className:`text-xs font-medium`,children:`Enabled`}),(0,K.jsx)(U,{checked:a.enabled,onCheckedChange:e=>g(`enabled`,e)})]}),d&&(0,K.jsx)(`p`,{className:`text-[11px] text-error`,children:d}),(0,K.jsx)(B,{onClick:async()=>{if(!a.name.trim()||!a.project_path||!a.prompt.trim()){f(`Name, project, and prompt are required`);return}if(!p){f(`Invalid cron expression`);return}u(!0),f(null);try{let e={name:a.name.trim(),cron_expr:a.cron_expr,project_path:a.project_path,prompt:a.prompt,permission_mode:a.permission_mode,max_turns:a.max_turns===``?null:Number(a.max_turns),timeout_ms:Number(a.timeout_ms)||18e5,enabled:a.enabled};t?await I.patch(`/api/schedules/${t.id}`,e):await I.post(`/api/schedules`,e),r(),n()}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}},disabled:l,className:`w-full min-h-11 cursor-pointer`,children:l?`Saving…`:t?`Save changes`:`Create schedule`})]}),x=t?`Edit: ${t.name}`:`New schedule`;return i?(0,K.jsxs)(De,{open:e,onClose:n,className:`max-h-[85vh] flex flex-col`,children:[(0,K.jsx)(`p`,{className:`text-sm font-semibold text-center pb-2`,children:x}),(0,K.jsx)(Me,{className:`flex-1 min-h-0 px-3 pb-3`,children:v})]}):(0,K.jsx)(Te,{open:e,onOpenChange:e=>!e&&n(),children:(0,K.jsxs)(xe,{className:`max-w-md max-h-[85vh] overflow-y-auto`,children:[(0,K.jsx)(ye,{children:(0,K.jsx)(Se,{className:`text-sm`,children:x})}),v]})})}function $({label:e,children:t}){return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:e}),t]})}function Bt(e){return{name:e?.name??``,cron_expr:e?.cron_expr??`0 7 * * *`,project_path:e?.project_path??``,prompt:e?.prompt??``,permission_mode:e?.permission_mode??`bypassPermissions`,max_turns:e?.max_turns==null?``:String(e.max_turns),timeout_ms:String(e?.timeout_ms??18e5),enabled:e?!!e.enabled:!0}}function Vt(){let{schedules:e,loading:t,refetch:n}=yt(),[r,i]=(0,G.useState)(!1),[a,o]=(0,G.useState)(null),s=()=>{o(null),i(!0)},c=e=>{o(e),i(!0)};return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Periodically wake Claude to work on a project unattended.`}),(0,K.jsxs)(B,{size:`sm`,onClick:s,className:`min-h-11 md:min-h-8 text-xs gap-1 cursor-pointer shrink-0`,children:[(0,K.jsx)(O,{className:`size-3.5`}),` Add`]})]}),t&&e.length===0?(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground py-4 text-center`,children:`Loading…`}):e.length===0?(0,K.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-8 text-center`,children:[(0,K.jsx)(Ue,{className:`size-8 text-muted-foreground/50`}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No schedules yet. Add one to run Claude periodically.`}),(0,K.jsxs)(B,{size:`sm`,onClick:s,className:`min-h-11 text-xs gap-1 cursor-pointer`,children:[(0,K.jsx)(O,{className:`size-3.5`}),` Add schedule`]})]}):(0,K.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>(0,K.jsx)(Tt,{schedule:e,onEdit:()=>c(e),onChanged:n},e.id))}),(0,K.jsx)(zt,{open:r,schedule:a,onClose:()=>i(!1),onSaved:n})]})}function Ht({swatch:e,className:t}){return(0,K.jsx)(`span`,{className:z(`inline-flex overflow-hidden rounded-md border border-border shrink-0`,t),"aria-hidden":!0,children:e.map((e,t)=>(0,K.jsx)(`span`,{className:`w-3 h-6`,style:{background:e}},t))})}function Ut({className:e,orientation:t=`horizontal`,...n}){return(0,K.jsx)(i,{"data-slot":`tabs`,"data-orientation":t,orientation:t,className:z(`group/tabs flex gap-2 data-[orientation=horizontal]:flex-col`,e),...n})}var Wt=ve(`group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none`,{variants:{variant:{default:`bg-muted`,line:`gap-1 bg-transparent`}},defaultVariants:{variant:`default`}});function Gt({className:e,variant:t=`default`,...n}){return(0,K.jsx)(r,{"data-slot":`tabs-list`,"data-variant":t,className:z(Wt({variant:t}),e),...n})}function Kt({className:e,...t}){return(0,K.jsx)(s,{"data-slot":`tabs-trigger`,className:z(`relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent`,`data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground`,`after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,e),...t})}function qt({className:e,...t}){return(0,K.jsx)(o,{"data-slot":`tabs-content`,className:z(`flex-1 outline-none`,e),...t})}function Jt({open:e,onOpenChange:t}){let n=R(e=>e.importThemeFrom),r=R(e=>e.setCustomTheme),[i,a]=(0,G.useState)(`url`),[o,s]=(0,G.useState)(``),[c,l]=(0,G.useState)(``),[u,d]=(0,G.useState)(``),[f,p]=(0,G.useState)(!1),m=()=>{s(``),l(``),d(``),a(`url`)},h=async()=>{let e=i===`url`?o.trim():c.trim();if(!e){L.error(`Nothing to import`);return}p(!0);try{let a=await n({source:i===`url`?`url`:i===`upload`?`upload`:`json`,value:e,name:u.trim()||void 0});L.success(a.length>1?`Imported ${a.length} themes`:`Imported "${a[0]?.name}"`),a[0]&&r(a[0].id),m(),t(!1)}catch(e){L.error(e.message||`Import failed`)}finally{p(!1)}},g=async e=>{if(e)try{l(await e.text()),d(e.name.replace(/\.json$/i,``))}catch{L.error(`Could not read file`)}};return(0,K.jsx)(Te,{open:e,onOpenChange:t,children:(0,K.jsxs)(xe,{className:`max-w-md`,children:[(0,K.jsxs)(ye,{children:[(0,K.jsx)(Se,{children:`Import theme`}),(0,K.jsx)(Ce,{className:`text-text-3`,children:`Import a VSCode color theme. Single-mode themes apply to both dark and light.`})]}),(0,K.jsxs)(Ut,{value:i,onValueChange:e=>a(e),children:[(0,K.jsxs)(Gt,{className:`w-full`,children:[(0,K.jsx)(Kt,{value:`url`,className:`flex-1`,children:`URL`}),(0,K.jsx)(Kt,{value:`json`,className:`flex-1`,children:`Paste JSON`}),(0,K.jsx)(Kt,{value:`upload`,className:`flex-1`,children:`Upload`})]}),(0,K.jsxs)(qt,{value:`url`,className:`space-y-2 pt-2`,children:[(0,K.jsx)(H,{placeholder:`https://…/theme.json or Marketplace .vsix URL`,value:o,onChange:e=>s(e.target.value)}),(0,K.jsx)(`p`,{className:`text-[11px] text-text-3`,children:`Only https URLs; private/internal addresses are blocked.`})]}),(0,K.jsx)(qt,{value:`json`,className:`pt-2`,children:(0,K.jsx)(`textarea`,{className:`w-full h-40 rounded-md border border-border bg-surface p-2 text-xs font-mono text-text focus:outline-none focus:border-ring`,placeholder:`{ "name": "My Theme", "type": "dark", "colors": { … }, "tokenColors": [ … ] }`,value:c,onChange:e=>l(e.target.value)})}),(0,K.jsxs)(qt,{value:`upload`,className:`space-y-2 pt-2`,children:[(0,K.jsx)(`input`,{type:`file`,accept:`.json,application/json`,onChange:e=>g(e.target.files?.[0]),className:`block w-full text-xs text-text-2 file:mr-3 file:rounded file:border file:border-border file:bg-panel-2 file:px-2 file:py-1 file:text-text`}),c&&(0,K.jsxs)(`p`,{className:`text-[11px] text-success`,children:[`File loaded (`,c.length,` chars)`]})]})]}),(0,K.jsx)(H,{placeholder:`Optional name`,value:u,onChange:e=>d(e.target.value)}),(0,K.jsxs)(be,{children:[(0,K.jsx)(B,{variant:`outline`,onClick:()=>t(!1),disabled:f,children:`Cancel`}),(0,K.jsx)(B,{onClick:h,disabled:f,children:f?`Importing…`:`Import`})]})]})})}function Yt(){let e=R(e=>e.customThemes),t=R(e=>e.themeStyle),n=R(e=>e.customThemeId),r=R(e=>e.setCustomTheme),i=R(e=>e.deleteCustomTheme),[a,o]=(0,G.useState)(!1);return(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Imported themes`}),(0,K.jsxs)(B,{size:`sm`,variant:`outline`,className:`h-7 gap-1 text-xs`,onClick:()=>o(!0),children:[(0,K.jsx)(O,{className:`size-3.5`}),` Import`]})]}),e.length===0?(0,K.jsx)(`p`,{className:`text-[11px] text-text-3`,children:`No imported themes yet. Import a VSCode theme from a URL, .vsix, or JSON.`}):(0,K.jsx)(`ul`,{className:`space-y-1`,children:e.map(e=>{let a=t===`custom`&&n===e.id;return(0,K.jsxs)(`li`,{className:z(`flex items-center gap-2 rounded-md border px-2 py-1.5`,a?`border-primary bg-primary/10`:`border-border`),children:[(0,K.jsx)(Ht,{swatch:e.swatch}),(0,K.jsxs)(`button`,{className:`flex-1 min-w-0 text-left`,onClick:()=>r(e.id),children:[(0,K.jsx)(`span`,{className:`block truncate text-xs text-text`,children:e.name}),(0,K.jsx)(`span`,{className:`block text-[10px] text-text-3`,children:e.mode})]}),a&&(0,K.jsx)(C,{className:`size-4 text-primary shrink-0`}),(0,K.jsx)(`button`,{className:`text-text-3 hover:text-error transition-colors shrink-0`,title:`Delete`,onClick:()=>void i(e.id),children:(0,K.jsx)(M,{className:`size-3.5`})})]},e.id)})}),(0,K.jsx)(Jt,{open:a,onOpenChange:o})]})}function Xt(e){return e<1024*1024?`${(e/1024).toFixed(0)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Zt(){let[e,t]=(0,G.useState)(null),[n,r]=(0,G.useState)(``),[i,a]=(0,G.useState)(``),[o,s]=(0,G.useState)(!1),[c,l]=(0,G.useState)(!1);function u(e){t(e),r(String(e.retention_days)),a(String(e.max_size_mb))}(0,G.useEffect)(()=>{Fe().then(u).catch(e=>L.error(`Could not load audit settings`,{description:e.message}))},[]);async function d(){s(!0);try{u(await Ne({retention_days:Number(n),max_size_mb:Number(i)})),L.success(`Audit retention updated`)}catch(e){L.error(`Could not save`,{description:e.message})}finally{s(!1)}}async function f(){if(confirm(`Delete every recorded query? This cannot be undone.`)){l(!0);try{await Ie(),u(await Fe()),L.success(`Query audit log cleared`)}catch(e){L.error(`Could not clear the log`,{description:e.message})}finally{l(!1)}}}if(!e)return(0,K.jsx)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground`,children:(0,K.jsx)(k,{className:`size-4 animate-spin`})});let p=n!==String(e.retention_days)||i!==String(e.max_size_mb);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`Every statement run from the SQL editor, the data grid and the `,(0,K.jsx)(`code`,{children:`ppm db`}),` CLI is recorded, together with a sample of the result. Entries are pruned once they pass either limit below — whichever comes first.`]}),(0,K.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,K.jsxs)(`label`,{className:`space-y-1`,children:[(0,K.jsx)(`span`,{className:`text-xs font-medium`,children:`Keep for (days)`}),(0,K.jsx)(H,{type:`number`,min:1,value:n,onChange:e=>r(e.target.value),className:`h-8 text-xs`})]}),(0,K.jsxs)(`label`,{className:`space-y-1`,children:[(0,K.jsx)(`span`,{className:`text-xs font-medium`,children:`Max size (MB)`}),(0,K.jsx)(H,{type:`number`,min:10,value:i,onChange:e=>a(e.target.value),className:`h-8 text-xs`})]})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,K.jsxs)(`span`,{className:`text-[11px] text-muted-foreground`,children:[e.entry_count.toLocaleString(),` entries · `,Xt(e.size_bytes),` on disk`]}),(0,K.jsx)(B,{size:`sm`,className:`h-8 text-xs`,disabled:!p||o,onClick:d,children:o?(0,K.jsx)(k,{className:`size-3.5 animate-spin`}):`Save`})]}),(0,K.jsxs)(B,{variant:`outline`,size:`sm`,className:`h-8 w-full gap-1.5 text-xs text-destructive`,disabled:c||e.entry_count===0,onClick:f,children:[c?(0,K.jsx)(k,{className:`size-3.5 animate-spin`}):(0,K.jsx)(M,{className:`size-3.5`}),`Clear all recorded queries`]})]})}function Qt(){let e=R(e=>e.themeStyle),t=R(e=>e.themeMode),n=R(e=>e.customThemeId),r=R(e=>e.customThemes),i=R(e=>e.setThemeStyle),a=R(e=>e.setThemeMode),o=Be(e,t,r,n);return(0,K.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:Re.map(e=>{let t=ze[e];if(!t)return null;let n=o.id===e;return(0,K.jsxs)(`button`,{onClick:()=>{i(t.style),a(t.mode)},className:z(`relative flex items-center gap-2 rounded-lg border p-2 text-left transition-colors min-h-11`,n?`border-primary ring-[3px] ring-accent-wash`:`border-border hover:bg-accent/40`),children:[(0,K.jsx)(Ht,{swatch:t.swatch}),(0,K.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`span`,{className:`block truncate text-xs font-medium text-text`,children:t.name.replace(/ (Dark|Light)$/,``)}),(0,K.jsx)(`span`,{className:`block text-[10px] text-text-3 capitalize`,children:t.mode})]}),n&&(0,K.jsx)(C,{className:`absolute top-1 right-1 size-3.5 text-primary`})]},e)})})}var $t=[{value:`light`,label:`Light`,icon:Ze},{value:`dark`,label:`Dark`,icon:Je},{value:`system`,label:`System`,icon:oe}],en=[{value:`default`,label:`Default`},{value:`boxed`,label:`Boxed`},{value:`pill`,label:`Pill`}],tn=[{value:`auto`,label:`Auto`},{value:`windows`,label:`Windows`},{value:`macos`,label:`macOS`}],nn=[{value:`ai`,label:`AI Provider`,subtitle:`Model, execution mode, limits`,icon:d},{value:`notifications`,label:`Notifications`,subtitle:`Push & Telegram alerts`,icon:Ve},{value:`clawbot`,label:`PPMBot`,subtitle:`Telegram AI bot`,icon:d},{value:`schedules`,label:`Scheduled Agents`,subtitle:`Run Claude on a cron schedule`,icon:Ue},{value:`proxy`,label:`API Proxy`,subtitle:`Expose accounts as Anthropic API`,icon:ne},{value:`shortcuts`,label:`Keyboard Shortcuts`,subtitle:`Customize key bindings`,icon:ie},{value:`extensions`,label:`Extensions`,subtitle:`Install and manage extensions`,icon:W},{value:`files`,label:`File Filters`,subtitle:`Exclude patterns, ignore files`,icon:qe},{value:`queryAudit`,label:`Query Audit Log`,subtitle:`SQL history retention and size`,icon:Ge}];function rn(){let{theme:e,setTheme:t,deviceName:n,setDeviceName:r,version:i,jiraEnabled:a,setJiraEnabled:o,tabWrap:s,toggleTabWrap:c,editorTabStyle:u,setEditorTabStyle:d,explorerSkin:f,setExplorerSkin:p}=R(Ee(e=>({theme:e.themeMode,setTheme:e.setThemeMode,deviceName:e.deviceName,setDeviceName:e.setDeviceName,version:e.version,jiraEnabled:e.jiraEnabled,setJiraEnabled:e.setJiraEnabled,tabWrap:e.tabWrap,toggleTabWrap:e.toggleTabWrap,editorTabStyle:e.editorTabStyle,setEditorTabStyle:e.setEditorTabStyle,explorerSkin:e.explorerSkin,setExplorerSkin:e.setExplorerSkin}))),[m,h]=(0,G.useState)(null),[_,v]=(0,G.useState)(n??``),[y,b]=(0,G.useState)(!1),[S,w]=(0,G.useState)(!1),ee=(0,G.useRef)(void 0),E=_.trim()!==(n??``),D=(0,G.useCallback)(async()=>{if(E){b(!0);try{await r(_),w(!0),clearTimeout(ee.current),ee.current=setTimeout(()=>w(!1),2e3)}finally{b(!1)}}},[_,E,r]);if(m){let e=nn.find(e=>e.value===m),t=e.icon;return(0,K.jsxs)(`div`,{className:`h-full w-full flex flex-col`,children:[(0,K.jsxs)(`div`,{className:`shrink-0 px-2 pt-3 pb-1 flex items-center gap-1`,children:[(0,K.jsx)(B,{variant:`ghost`,size:`icon`,className:`size-8 cursor-pointer shrink-0`,onClick:()=>h(null),children:(0,K.jsx)(l,{className:`size-4`})}),(0,K.jsx)(t,{className:`size-4 text-muted-foreground shrink-0`}),(0,K.jsx)(`h2`,{className:`text-sm font-semibold truncate`,children:e.label})]}),(0,K.jsx)(q,{}),(0,K.jsx)(Me,{className:`flex-1 min-h-0`,children:(0,K.jsxs)(`div`,{className:`p-3`,children:[m===`ai`&&(0,K.jsx)(x,{compact:!0}),m===`notifications`&&(0,K.jsx)(an,{}),m===`clawbot`&&(0,K.jsx)(lt,{}),m===`schedules`&&(0,K.jsx)(Vt,{}),m===`proxy`&&(0,K.jsx)(st,{}),m===`shortcuts`&&(0,K.jsx)(tt,{}),m===`extensions`&&(0,K.jsx)(ct,{}),m===`files`&&(0,K.jsx)(_t,{}),m===`queryAudit`&&(0,K.jsx)(Zt,{})]})})]})}return(0,K.jsxs)(`div`,{className:`h-full w-full flex flex-col`,children:[(0,K.jsx)(`div`,{className:`shrink-0 px-3 pt-3 pb-1`,children:(0,K.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Settings`})}),(0,K.jsx)(Me,{className:`flex-1 min-h-0`,children:(0,K.jsxs)(`div`,{className:`p-3 space-y-4`,children:[(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Device Name`}),(0,K.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,K.jsx)(H,{value:_,onChange:e=>v(e.target.value),onKeyDown:e=>{e.key===`Enter`&&D()},placeholder:`My Device`,className:`h-8 text-xs flex-1`,maxLength:100}),(0,K.jsx)(B,{variant:S?`default`:`outline`,size:`sm`,className:`h-8 text-xs px-3 cursor-pointer`,disabled:!E||y,onClick:D,children:y?`...`:S?(0,K.jsx)(C,{className:`size-3.5`}):`Save`})]}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Shown in page title and synced to PPM Cloud.`})]}),(0,K.jsx)(ut,{}),(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Theme`}),(0,K.jsx)(Qt,{}),(0,K.jsx)(`div`,{className:`flex gap-1.5 pt-1`,children:$t.map(n=>{let r=n.icon;return(0,K.jsxs)(B,{variant:e===n.value?`default`:`outline`,size:`sm`,onClick:()=>t(n.value),className:z(`flex-1 gap-1.5 text-xs h-8 cursor-pointer`,e===n.value&&`ring-2 ring-primary`),children:[(0,K.jsx)(r,{className:`size-3.5`}),n.label]},n.value)})})]}),(0,K.jsx)(Yt,{}),(0,K.jsx)(`section`,{className:`space-y-1`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(g,{className:`size-4 text-muted-foreground`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`text-xs font-medium`,children:`Jira Watcher`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Auto-debug Jira tickets`})]})]}),(0,K.jsx)(U,{checked:a,onCheckedChange:o})]})}),(0,K.jsx)(`section`,{className:`space-y-1`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(j,{className:`size-4 text-muted-foreground`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`p`,{className:`text-xs font-medium`,children:`Wrap Tabs`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Stack tabs in rows instead of scrolling`})]})]}),(0,K.jsx)(U,{checked:s,onCheckedChange:c})]})}),(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Tab Style`}),(0,K.jsx)(`div`,{className:`flex gap-1.5`,children:en.map(e=>(0,K.jsx)(B,{variant:u===e.value?`default`:`outline`,size:`sm`,onClick:()=>d(e.value),className:z(`flex-1 text-xs h-8 cursor-pointer`,u===e.value&&`ring-2 ring-primary`),children:e.label},e.value))})]}),(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Explorer Skin`}),(0,K.jsx)(`div`,{className:`flex gap-1.5`,children:tn.map(e=>(0,K.jsx)(B,{variant:f===e.value?`default`:`outline`,size:`sm`,onClick:()=>p(e.value),className:z(`flex-1 text-xs h-8 cursor-pointer`,f===e.value&&`ring-2 ring-primary`),children:e.label},e.value))})]}),(0,K.jsx)(q,{}),(0,K.jsx)(`nav`,{className:`space-y-1`,"aria-label":`Settings categories`,children:nn.map(e=>{let t=e.icon;return(0,K.jsxs)(`button`,{onClick:()=>h(e.value),className:`w-full flex items-center gap-3 px-2.5 py-2.5 rounded-lg hover:bg-accent/50 active:bg-accent transition-colors cursor-pointer text-left group`,children:[(0,K.jsx)(`div`,{className:`size-8 rounded-md bg-muted flex items-center justify-center shrink-0 group-hover:bg-accent`,children:(0,K.jsx)(t,{className:`size-4 text-muted-foreground`})}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium text-foreground truncate`,children:e.label}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:e.subtitle})]}),(0,K.jsx)(T,{className:`size-4 text-muted-foreground shrink-0`})]},e.value)})}),(0,K.jsx)(q,{}),(0,K.jsxs)(`section`,{className:`space-y-1 pb-2`,children:[(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PPM — Personal Project Manager`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`A mobile-first web IDE for managing your projects.`}),i&&(0,K.jsxs)(`p`,{className:`text-[11px] text-muted-foreground tabular-nums`,children:[`Version `,i]})]})]})})]})}function an(){return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`section`,{className:`space-y-2`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Push Notifications`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(He,{className:`size-3.5 text-muted-foreground`}),(0,K.jsx)(`span`,{className:`text-xs`,children:`Not available yet`})]}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Browser push does not deliver right now. Use Telegram below to get alerted when a session finishes or needs approval.`})]}),(0,K.jsx)(q,{}),(0,K.jsxs)(`section`,{className:`space-y-1`,children:[(0,K.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Telegram`}),(0,K.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Telegram notifications are sent to all approved devices in PPMBot settings. Configure your bot token and pair devices there.`})]})]})}export{We as a,W as i,$t as n,He as o,Ht as r,rn as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./hlsl-
|
|
1
|
+
import e from"./hlsl-SMIDLRyX.js";var t=Object.freeze(JSON.parse(`{"displayName":"ShaderLab","name":"shaderlab","patterns":[{"begin":"//","end":"$","name":"comment.line.double-slash.shaderlab"},{"match":"\\\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\\\b","name":"support.type.basic.shaderlab"},{"include":"#numbers"},{"match":"\\\\b(?i:Shader|Properties|SubShader|Pass|Category)\\\\b","name":"storage.type.structure.shaderlab"},{"match":"\\\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\\\b","name":"support.type.propertyname.shaderlab"},{"match":"\\\\b(?i:Back|Front|On|Off|[ABGR]{1,3}|AmbientAndDiffuse|Emission)\\\\b","name":"support.constant.property-value.shaderlab"},{"match":"\\\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\\\b","name":"support.constant.property-value.comparisonfunction.shaderlab"},{"match":"\\\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\\\b","name":"support.constant.property-value.stenciloperation.shaderlab"},{"match":"\\\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\\\b","name":"support.constant.property-value.texturecombiners.shaderlab"},{"match":"\\\\b(?i:Global|Linear|Exp2?)\\\\b","name":"support.constant.property-value.fog.shaderlab"},{"match":"\\\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\\\b","name":"support.constant.property-value.bindchannels.shaderlab"},{"match":"\\\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\\\b","name":"support.constant.property-value.blendoperations.shaderlab"},{"match":"\\\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\\\b","name":"support.constant.property-value.blendfactors.shaderlab"},{"match":"\\\\[([A-Z_a-z][0-9A-Z_a-z]*)](?!\\\\s*[A-Z_a-z][0-9A-Z_a-z]*\\\\s*\\\\(\\")","name":"support.variable.reference.shaderlab"},{"begin":"(\\\\[)","end":"(])","name":"meta.attribute.shaderlab","patterns":[{"match":"\\\\G([A-Za-z]+)\\\\b","name":"support.type.attributename.shaderlab"},{"include":"#numbers"}]},{"match":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\s*\\\\(","name":"support.variable.declaration.shaderlab"},{"begin":"\\\\b(CG(?:PROGRAM|INCLUDE))\\\\b","beginCaptures":{"1":{"name":"keyword.other"}},"end":"\\\\b(ENDCG)\\\\b","endCaptures":{"1":{"name":"keyword.other"}},"name":"meta.cgblock","patterns":[{"include":"#hlsl-embedded"}]},{"begin":"\\\\b(HLSL(?:PROGRAM|INCLUDE))\\\\b","beginCaptures":{"1":{"name":"keyword.other"}},"end":"\\\\b(ENDHLSL)\\\\b","endCaptures":{"1":{"name":"keyword.other"}},"name":"meta.hlslblock","patterns":[{"include":"#hlsl-embedded"}]},{"begin":"\\"","end":"\\"","name":"string.quoted.double.shaderlab"}],"repository":{"hlsl-embedded":{"patterns":[{"include":"source.hlsl"},{"match":"\\\\b(fixed([1-4](x[1-4])?)?)\\\\b","name":"storage.type.basic.shaderlab"},{"match":"\\\\b(UNITY_MATRIX_MVP?|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\\\b","name":"support.variable.transformations.shaderlab"},{"match":"\\\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\\\b","name":"support.variable.camera.shaderlab"},{"match":"\\\\b((?:_|_Sin|_Cos|unity_Delta)Time)\\\\b","name":"support.variable.time.shaderlab"},{"match":"\\\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\\\b","name":"support.variable.lighting.shaderlab"},{"match":"\\\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\\\b","name":"support.variable.fog.shaderlab"},{"match":"\\\\b(unity_LODFade)\\\\b","name":"support.variable.various.shaderlab"},{"match":"\\\\b(SHADER_API_(?:D3D9|D3D11|GLCORE|OPENGL|GLES3??|METAL|D3D11_9X|PSSL|XBOXONE|PSP2|WIIU|MOBILE|GLSL))\\\\b","name":"support.variable.preprocessor.targetplatform.shaderlab"},{"match":"\\\\b(SHADER_TARGET)\\\\b","name":"support.variable.preprocessor.targetmodel.shaderlab"},{"match":"\\\\b(UNITY_VERSION)\\\\b","name":"support.variable.preprocessor.unityversion.shaderlab"},{"match":"\\\\b(UNITY_(?:BRANCH|FLATTEN|NO_SCREENSPACE_SHADOWS|NO_LINEAR_COLORSPACE|NO_RGBM|NO_DXT5nm|FRAMEBUFFER_FETCH_AVAILABLE|USE_RGBA_FOR_POINT_SHADOWS|ATTEN_CHANNEL|HALF_TEXEL_OFFSET|UV_STARTS_AT_TOP|MIGHT_NOT_HAVE_DEPTH_Texture|NEAR_CLIP_VALUE|VPOS_TYPE|CAN_COMPILE_TESSELLATION|COMPILER_HLSL|COMPILER_HLSL2GLSL|COMPILER_CG|REVERSED_Z))\\\\b","name":"support.variable.preprocessor.platformdifference.shaderlab"},{"match":"\\\\b(UNITY_PASS_(?:FORWARDBASE|FORWARDADD|DEFERRED|SHADOWCASTER|PREPASSBASE|PREPASSFINAL))\\\\b","name":"support.variable.preprocessor.texture2D.shaderlab"},{"match":"\\\\b(appdata_(?:base|tan|full|img))\\\\b","name":"support.class.structures.shaderlab"},{"match":"\\\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\\\b","name":"support.class.surface.shaderlab"}]},"numbers":{"patterns":[{"match":"\\\\b([0-9]+\\\\.?[0-9]*)\\\\b","name":"constant.numeric.shaderlab"}]}},"scopeName":"source.shaderlab","embeddedLangs":["hlsl"],"aliases":["shader"]}`)),n=[...e,t];export{n as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{
|
|
1
|
+
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t}from"./vendor-markdown-Ls5AcU91.js";var n=e=>Symbol.iterator in e,r=e=>`entries`in e,i=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},a=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function o(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:n(e)&&n(t)?r(e)&&r(t)?i(e,t):a(e,t):i({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}var s=e(t(),1);function c(e){let t=s.useRef(void 0);return n=>{let r=e(n);return o(t.current,r)?t.current:t.current=r}}export{c as t};
|