@openpalm/ui 0.11.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -0
- package/build/.openpalm-ui-version +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.br +0 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css +1 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css +1 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.br +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.br +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css +1 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.br +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css +1 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.br +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.gz +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css +1 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.br +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css +1 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.br +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.gz +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css +1 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.br +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js +5 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js +1 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js +1 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js +1 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js +3 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js +1 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js +1 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js +1 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.br +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.br +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js +2 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.br +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js +1 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js +1 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js +1 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js +1 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js +18 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js +4 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js +1 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js +15 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js +2 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +1 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/banner.png +0 -0
- package/build/client/fu-128.png +0 -0
- package/build/client/fu.png +0 -0
- package/build/client/logo-128.png +0 -0
- package/build/client/logo.png +0 -0
- package/build/client/setup/wizard.css +1639 -0
- package/build/client/setup/wizard.css.br +0 -0
- package/build/client/setup/wizard.css.gz +0 -0
- package/build/client/wizard-128.png +0 -0
- package/build/client/wizard.png +0 -0
- package/build/env.js +94 -0
- package/build/handler.js +1494 -0
- package/build/index.js +345 -0
- package/build/server/chunks/0-TTdZdv8o.js +9 -0
- package/build/server/chunks/0-TTdZdv8o.js.map +1 -0
- package/build/server/chunks/1-XPMbcj69.js +9 -0
- package/build/server/chunks/1-XPMbcj69.js.map +1 -0
- package/build/server/chunks/2-C2y4ydWU.js +9 -0
- package/build/server/chunks/2-C2y4ydWU.js.map +1 -0
- package/build/server/chunks/3-BgeGdVvT.js +23 -0
- package/build/server/chunks/3-BgeGdVvT.js.map +1 -0
- package/build/server/chunks/4-v8u4eatk.js +9 -0
- package/build/server/chunks/4-v8u4eatk.js.map +1 -0
- package/build/server/chunks/5-BkUoZ2K4.js +9 -0
- package/build/server/chunks/5-BkUoZ2K4.js.map +1 -0
- package/build/server/chunks/6-Cep4AGS2.js +9 -0
- package/build/server/chunks/6-Cep4AGS2.js.map +1 -0
- package/build/server/chunks/7-DOEFGynd.js +9 -0
- package/build/server/chunks/7-DOEFGynd.js.map +1 -0
- package/build/server/chunks/8-EJHw3wqt.js +9 -0
- package/build/server/chunks/8-EJHw3wqt.js.map +1 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js +741 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js.map +1 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js +15 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js.map +1 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js +74 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js.map +1 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js +11 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js.map +1 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js +60 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js.map +1 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js +69 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js.map +1 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js +5 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js.map +1 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js +408 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js.map +1 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js +5540 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js.map +1 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js +104 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js.map +1 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js +106 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js.map +1 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js +19 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js.map +1 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js +514 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js.map +1 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js +64 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js.map +1 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js +70 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js.map +1 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js +82 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js.map +1 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js +41 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js.map +1 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js +68 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js.map +1 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js +107 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js.map +1 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js +97 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js.map +1 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js +44 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js.map +1 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js +41 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js.map +1 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js +60 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js +33 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js +65 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js.map +1 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js +73 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js.map +1 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js +70 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js.map +1 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js +40 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js.map +1 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js +55 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js.map +1 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js +163 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js.map +1 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js +59 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js.map +1 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js +33 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js.map +1 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js +200 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js.map +1 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js +52 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js.map +1 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js +79 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js.map +1 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js +63 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js.map +1 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js +83 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js.map +1 -0
- package/build/server/chunks/_server.ts-CG409cWi.js +46 -0
- package/build/server/chunks/_server.ts-CG409cWi.js.map +1 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js +56 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js.map +1 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js +204 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js.map +1 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js +50 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js.map +1 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js +101 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js.map +1 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js +41 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js.map +1 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js +79 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js.map +1 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js +44 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js.map +1 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js +41 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js.map +1 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js +53 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js.map +1 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js +53 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js.map +1 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js +88 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js.map +1 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js +70 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js.map +1 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js +103 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js.map +1 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js +41 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js.map +1 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js +65 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js.map +1 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js +90 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js.map +1 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js +33 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js.map +1 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js +96 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js.map +1 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js +54 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js.map +1 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js +149 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js.map +1 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js +56 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js.map +1 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js +82 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js.map +1 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js +54 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js.map +1 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js +44 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js.map +1 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js +159 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js.map +1 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js +759 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js.map +1 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js +40 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js.map +1 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js +46 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js.map +1 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js +72 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js.map +1 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js +55 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js.map +1 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js +46 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js.map +1 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js +62 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js.map +1 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js +77 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js.map +1 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js +55 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js.map +1 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js +79 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js.map +1 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js +121 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js.map +1 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js +63 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js.map +1 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js +67 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js.map +1 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js +42 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js.map +1 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js +109 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js.map +1 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js +139 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js.map +1 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js +49 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js.map +1 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js +157 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js.map +1 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js +60 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js.map +1 -0
- package/build/server/chunks/_server.ts-yimewsjO.js +57 -0
- package/build/server/chunks/_server.ts-yimewsjO.js.map +1 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js +49 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js.map +1 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js +18 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js.map +1 -0
- package/build/server/chunks/coercion-TNFJisCC.js +34 -0
- package/build/server/chunks/coercion-TNFJisCC.js.map +1 -0
- package/build/server/chunks/config-0LFudKuE.js +121 -0
- package/build/server/chunks/config-0LFudKuE.js.map +1 -0
- package/build/server/chunks/dev-DjANv7AF.js +4389 -0
- package/build/server/chunks/dev-DjANv7AF.js.map +1 -0
- package/build/server/chunks/docker-B23w4kr6.js +20 -0
- package/build/server/chunks/docker-B23w4kr6.js.map +1 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js +340 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js.map +1 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js +16 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js.map +1 -0
- package/build/server/chunks/exports-D1quPX8S.js +124 -0
- package/build/server/chunks/exports-D1quPX8S.js.map +1 -0
- package/build/server/chunks/helpers-CX6xRBmt.js +226 -0
- package/build/server/chunks/helpers-CX6xRBmt.js.map +1 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js +86 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js.map +1 -0
- package/build/server/chunks/http-VqOG8hyj.js +31 -0
- package/build/server/chunks/http-VqOG8hyj.js.map +1 -0
- package/build/server/chunks/internal-CeK24Lte.js +1544 -0
- package/build/server/chunks/internal-CeK24Lte.js.map +1 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js +22 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js.map +1 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js +529 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js.map +1 -0
- package/build/server/chunks/src-BkvQ5Uuf.js +14082 -0
- package/build/server/chunks/src-BkvQ5Uuf.js.map +1 -0
- package/build/server/chunks/state-D7JS-l_D.js +203 -0
- package/build/server/chunks/state-D7JS-l_D.js.map +1 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js +520 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js.map +1 -0
- package/build/server/chunks/utils-BSRjJDrZ.js +150 -0
- package/build/server/chunks/utils-BSRjJDrZ.js.map +1 -0
- package/build/server/index.js +4389 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +584 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# @openpalm/ui
|
|
2
|
+
|
|
3
|
+
`@openpalm/ui` is the published OpenPalm web UI package.
|
|
4
|
+
|
|
5
|
+
It provides the browser UI and authenticated admin API used to manage an OpenPalm installation: chat access, stack status, connections, addons, automations, and operator workflows.
|
|
6
|
+
|
|
7
|
+
This package is part of the OpenPalm monorepo, but it is versioned and published as its own npm package.
|
|
8
|
+
|
|
9
|
+
## What It Is
|
|
10
|
+
|
|
11
|
+
- A SvelteKit app for the OpenPalm operator experience
|
|
12
|
+
- The authenticated `/admin/*` API used by the UI and related tools
|
|
13
|
+
- A thin control-plane consumer built on `@openpalm/lib`
|
|
14
|
+
- The web UI that can be bundled into Electron or run as a host-served Node app
|
|
15
|
+
|
|
16
|
+
## What It Is Not
|
|
17
|
+
|
|
18
|
+
- It is not a standalone replacement for the rest of OpenPalm
|
|
19
|
+
- It is not the source of truth for stack orchestration logic
|
|
20
|
+
- It does not replace the compose-first, file-based operating model
|
|
21
|
+
|
|
22
|
+
OpenPalm remains manual-first and compose-first. This package adds a user-facing management surface on top of that model.
|
|
23
|
+
|
|
24
|
+
## Features
|
|
25
|
+
|
|
26
|
+
- Operator chat UI and embedded Advanced OpenCode view
|
|
27
|
+
- Admin pages for status, versions, providers, endpoints, logs, addons, and automations
|
|
28
|
+
- Authenticated admin API routes for the browser UI
|
|
29
|
+
- Shared theme/token system used by the OpenPalm web experience
|
|
30
|
+
|
|
31
|
+
## Package Layout
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
src/
|
|
35
|
+
├── app.css # global tokens and shared UI styles
|
|
36
|
+
├── lib/components/ # Svelte UI components
|
|
37
|
+
├── lib/server/ # server-side wrappers around @openpalm/lib + admin helpers
|
|
38
|
+
├── routes/admin/ # admin API endpoints and admin-facing pages
|
|
39
|
+
└── routes/ # user-facing app routes
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Running It In This Repo
|
|
43
|
+
|
|
44
|
+
The recommended local-dev loop uses Vite HMR pointed at an isolated
|
|
45
|
+
`.dev/` `OP_HOME` so your real install at `~/.openpalm/` is never touched.
|
|
46
|
+
|
|
47
|
+
### Quick start: `ui:dev:isolated` against `.dev/`
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Once, from repo root — seeds .dev/ with stack.env, dev login password,
|
|
51
|
+
# and offset ports. Idempotent; safe to re-run after stack.env changes.
|
|
52
|
+
bun run dev:setup
|
|
53
|
+
|
|
54
|
+
# Iterate:
|
|
55
|
+
bun run ui:dev:isolated
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
This is `OP_HOME=$(pwd)/.dev vite dev --port 8100` under the hood. Vite
|
|
59
|
+
binds to **`http://localhost:8100/`** — the port matches the host
|
|
60
|
+
allowlist (`helpers.ts:checkHostHeader` accepts only the configured
|
|
61
|
+
`ADMIN_PORT`, default `8100`); using Vite's default 5173 would 400 on
|
|
62
|
+
every request.
|
|
63
|
+
|
|
64
|
+
**Login**: the password lives in `.dev/knowledge/secrets/op_ui_login_password`:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
tr -d '\n' < .dev/knowledge/secrets/op_ui_login_password
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Assistant URL**: by default `.dev/knowledge/env/stack.env` sets
|
|
71
|
+
`OP_ASSISTANT_PORT=3800` — so the proxy reaches **your existing prod
|
|
72
|
+
assistant container** (no second stack required for UI iteration).
|
|
73
|
+
If you want full isolation, spin up the dev compose stack alongside:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
bun run dev:stack
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
That brings up a separate assistant/guardian on the dev ports
|
|
80
|
+
(8100/3800/8180 mapped to the dev project) and the UI's proxy still
|
|
81
|
+
hits `localhost:3800` — same URL, isolated containers via Docker
|
|
82
|
+
project name.
|
|
83
|
+
|
|
84
|
+
### Why isolated?
|
|
85
|
+
|
|
86
|
+
`OP_HOME=$(pwd)/.dev` keeps **every** filesystem write the dev server
|
|
87
|
+
might make (`config/`, `data/`, `knowledge/`, `workspace/`) inside the gitignored
|
|
88
|
+
`.dev/` tree. `~/.openpalm/` is your production install and the
|
|
89
|
+
[heightened-caution paths in CLAUDE.md](../../CLAUDE.md) forbid touching
|
|
90
|
+
it during dev work.
|
|
91
|
+
|
|
92
|
+
### Iteration tips
|
|
93
|
+
|
|
94
|
+
- **HMR works**: edit `.svelte` / `.ts` → page reloads in <1s.
|
|
95
|
+
- **Mic works**: Vite serves a real browser context, so the Web Speech
|
|
96
|
+
API isn't gated behind Electron's bundled Chromium. The MediaRecorder
|
|
97
|
+
fallback in `voice-state.svelte.ts` exercises the same `/api/transcribe`
|
|
98
|
+
path the Electron app uses — useful for verifying STT end-to-end.
|
|
99
|
+
- **Switching to the prod build**: `bun run ui:build` produces
|
|
100
|
+
`packages/ui/build/` which can be swapped into `~/.openpalm/data/ui/`
|
|
101
|
+
for live testing in the Electron app.
|
|
102
|
+
|
|
103
|
+
### Other variants
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Vite HMR with no .dev (default OP_HOME = ~/.openpalm — touches prod, AVOID):
|
|
107
|
+
bun run ui:dev
|
|
108
|
+
|
|
109
|
+
# Run the Electron app in dev mode (no HMR; rebuilds UI + bundles main.ts):
|
|
110
|
+
bun run electron:dev
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Type / unit / build checks
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
bun run ui:check # svelte-check + tsc
|
|
117
|
+
bun run ui:test:unit # vitest
|
|
118
|
+
bun run ui:build # production SvelteKit build
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Building And Publishing
|
|
122
|
+
|
|
123
|
+
This package is published from the monorepo as `@openpalm/ui`.
|
|
124
|
+
|
|
125
|
+
The production build is the SvelteKit `adapter-node` output in `build/`:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
bun run ui:build
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The build step also stamps the UI version into `.openpalm-ui-version` so OpenPalm can tell which UI build is newer when multiple UI channels exist.
|
|
132
|
+
|
|
133
|
+
## Runtime Notes
|
|
134
|
+
|
|
135
|
+
- The current runtime model is direct write + Docker Compose over `~/.openpalm/`
|
|
136
|
+
- Some module names still use historical terms like `staging`
|
|
137
|
+
- `registry/` is the shipped catalog source; `stack/addons/` are active runtime addon overlays; `knowledge/tasks/` holds active AKM task files
|
|
138
|
+
- Compose overlays under `stack/addons/` are deployment truth; the admin UI does not replace that model
|
|
139
|
+
|
|
140
|
+
## API auth
|
|
141
|
+
|
|
142
|
+
Protected endpoints require an `op_session` cookie. The browser obtains the
|
|
143
|
+
cookie by POSTing the operator password to `/admin/auth/login`. The legacy
|
|
144
|
+
`x-admin-token` / `Authorization: Bearer` header fallbacks were removed in
|
|
145
|
+
Phase 2 of `docs/technical/auth-and-proxy-refactor-plan.md`.
|
|
146
|
+
|
|
147
|
+
In a normal install the source of truth for the password is
|
|
148
|
+
`~/.openpalm/knowledge/secrets/op_ui_login_password`. Local dev with
|
|
149
|
+
`bun run ui:dev:isolated` reads `OP_UI_LOGIN_PASSWORD` from the process
|
|
150
|
+
environment seeded by the dev setup helpers.
|
|
151
|
+
|
|
152
|
+
## Key environment variables
|
|
153
|
+
|
|
154
|
+
| Variable | Purpose |
|
|
155
|
+
|---|---|
|
|
156
|
+
| `OP_HOME` | OpenPalm root. Prod: `~/.openpalm`. Dev: `$(pwd)/.dev` via `ui:dev:isolated`. |
|
|
157
|
+
| `OP_UI_LOGIN_PASSWORD` | Operator-facing admin password. Stored in `${OP_HOME}/knowledge/secrets/op_ui_login_password` and promoted into the admin process environment. |
|
|
158
|
+
| `OP_OPENCODE_URL` / `OP_ASSISTANT_PORT` | Where the proxy forwards `/proxy/assistant/*`. Default `http://localhost:3800`. |
|
|
159
|
+
| `OP_OPENCODE_PASSWORD` | Basic-auth password for OpenCode endpoints. Empty in dev (matches the `OPENCODE_AUTH=false` default). |
|
|
160
|
+
| `DOCKER_HOST` | Docker Socket Proxy URL inside the addon network. |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.11.0-rc.10
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--color-primary:#ff9d00;--color-primary-hover:#e68a00;--color-primary-subtle:#ff9d0014;--color-primary-border:#ff9d0047;--color-accent:var(--color-primary);--color-success:#40c057;--color-success-bg:#40c0571a;--color-success-border:#40c05740;--color-success-subtle:var(--color-success-bg);--color-danger:#fa5252;--color-danger-bg:#fa52521a;--color-danger-subtle:var(--color-danger-bg);--color-danger-border:#fa525240;--color-danger-fg:#c92a2a;--color-danger-bg-hover:#fa525229;--color-warning:#d97706;--color-warning-bg:#d977061a;--color-warning-border:#d9770640;--color-info:#339af0;--color-info-bg:#339af014;--color-pending:#868e96;--color-pending-bg:#868e961a;--color-caution:#b45309;--color-caution-bg:#b4530914;--color-error:var(--color-danger);--color-error-bg:var(--color-danger-bg);--color-error-border:var(--color-danger-border);--color-badge-success-fg:#15803d;--color-badge-danger-fg:#b91c1c;--color-badge-warning-fg:#b45309;--color-badge-neutral-fg:#4b5563;--color-bg:#fff;--color-bg-secondary:#f9fafb;--color-bg-tertiary:#f3f4f6;--color-surface:#fffffffa;--color-surface-hover:#f9fafb;--color-surface-alt:#f6f8fa;--color-navbar-bg:#ffffffd9;--color-border:#e5e7eb;--color-border-hover:#d1d5db;--color-border-focus:var(--color-primary);--color-text:#111827;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-text-muted:var(--color-text-secondary);--color-text-primary:var(--color-text);--color-text-inverse:#fff;--font-sans:"Source Sans 3", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.375rem;--text-3xl:1.75rem;--leading-tight:1.25;--leading-normal:1.5;--font-medium:500;--font-semibold:600;--font-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-lg:0 4px 12px #0000001a, 0 2px 4px #0000000f;--transition-fast:.12s ease;--transition-normal:.2s ease;--max-width:1200px;--nav-height:56px;--sheet-width:480px;--sheet-width-wide:640px;--overlay-bg:#00000059;--shadow-sheet:-4px 0 24px #0000001f, -1px 0 4px #0000000f;--color-nav-active-text:var(--color-text);--color-nav-active-indicator:var(--color-text);--color-surface-base:var(--color-bg);--color-surface-card:var(--color-surface);--color-surface-elevated:var(--color-bg-secondary);--toggle-width:36px;--toggle-height:20px;--toggle-bg-off:var(--color-border-hover);--toggle-bg-on:var(--color-primary);--provider-card-size:96px;--color-border-selected:var(--color-primary);--color-bg-selected:var(--color-primary-subtle)}:root[data-theme=dark]{--color-primary:#ff9d00;--color-primary-hover:#ffb84d;--color-primary-subtle:#ff9d0029;--color-primary-border:#ff9d0057;--color-success:#5ad57f;--color-success-bg:#5ad57f24;--color-success-border:#5ad57f4d;--color-success-subtle:var(--color-success-bg);--color-danger:#ff7b7b;--color-danger-bg:#ff7b7b24;--color-danger-subtle:var(--color-danger-bg);--color-danger-border:#ff7b7b4d;--color-danger-fg:#ffd2d2;--color-danger-bg-hover:#ff7b7b38;--color-warning:#fbbf24;--color-warning-bg:#fbbf2429;--color-warning-border:#fbbf244d;--color-info:#66b8ff;--color-info-bg:#66b8ff24;--color-pending:#94a3b8;--color-pending-bg:#94a3b824;--color-caution:#fbbf24;--color-caution-bg:#fbbf2424;--color-badge-success-fg:#6ee79a;--color-badge-danger-fg:#ff9d9d;--color-badge-warning-fg:#fcd34d;--color-badge-neutral-fg:#cbd5e1;--color-error:var(--color-danger);--color-error-bg:var(--color-danger-bg);--color-error-border:var(--color-danger-border);--color-bg:#101418;--color-bg-secondary:#161c22;--color-bg-tertiary:#1d2630;--color-surface:#141a20fa;--color-surface-hover:#1b232c;--color-surface-alt:#19212a;--color-navbar-bg:#141a20e0;--color-border:#2a3441;--color-border-hover:#3b4756;--color-border-focus:var(--color-primary);--color-text:#f3f4f6;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-text-muted:var(--color-text-secondary);--color-text-primary:var(--color-text);--color-text-inverse:#0f1419;--shadow-sm:0 1px 3px #00000038, 0 1px 2px #00000029;--shadow-lg:0 10px 24px #00000057, 0 4px 8px #0000003d;--overlay-bg:#0000008c;--shadow-sheet:-6px 0 28px #00000057, -1px 0 4px #0000003d;--toggle-bg-off:var(--color-border-hover);--toggle-bg-on:var(--color-primary);--color-border-selected:var(--color-primary);--color-bg-selected:var(--color-primary-subtle);--color-surface-base:var(--color-bg);--color-surface-card:var(--color-surface);--color-surface-elevated:var(--color-bg-secondary)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-size:16px}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg-secondary);min-height:100vh}html.chat-locked,body.chat-locked{height:100dvh;min-height:0;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sheet-overlay{z-index:200;background:var(--overlay-bg);transition:opacity var(--transition-normal);position:fixed;inset:0}.sheet{width:var(--sheet-width);background:var(--color-surface);border-inline-start:1px solid var(--color-border);max-width:100vw;box-shadow:var(--shadow-sheet);z-index:201;transition:translate var(--transition-normal);flex-direction:column;display:flex;position:fixed;inset-block:0;inset-inline-end:0;overflow:hidden;translate:0}.sheet--wide{width:var(--sheet-width-wide)}.sheet-header{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.sheet-header-back{align-items:center;gap:var(--space-1);color:var(--color-primary);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.sheet-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);flex:1}.sheet-close{width:32px;height:32px;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.sheet-close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.sheet-body{padding:var(--space-5);flex:1;overflow-y:auto}.sheet-footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;display:flex}.model-toggle{width:var(--toggle-width);height:var(--toggle-height);flex-shrink:0;display:inline-block;position:relative}.model-toggle input{opacity:0;width:0;height:0;position:absolute}.model-toggle-track{background:var(--toggle-bg-off);border-radius:var(--radius-full);transition:background var(--transition-fast);cursor:pointer;position:absolute;inset:0}.model-toggle-track:after{content:"";width:calc(var(--toggle-height) - 4px);aspect-ratio:1;transition:translate var(--transition-fast);background:#fff;border-radius:50%;position:absolute;inset-block:2px;inset-inline-start:2px}.model-toggle input:checked+.model-toggle-track{background:var(--toggle-bg-on)}.model-toggle input:checked+.model-toggle-track:after{translate:calc(var(--toggle-width) - var(--toggle-height)) 0}.model-toggle input:focus-visible+.model-toggle-track{outline:2px solid var(--color-primary);outline-offset:2px}.provider-grid{grid-template-columns:repeat(auto-fill, minmax(var(--provider-card-size), 1fr));gap:var(--space-3);display:grid}.provider-card{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.provider-card:hover{border-color:var(--color-border-hover)}.provider-card--selected{border-color:var(--color-border-selected);background:var(--color-bg-selected);box-shadow:0 0 0 1px var(--color-border-selected)}.provider-card--connected:after{content:"";background:var(--color-success);border-radius:50%;width:8px;height:8px;display:block}.auth-method-group{gap:var(--space-2);flex-direction:column;display:flex}.auth-method-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast);display:flex}.auth-method-card--selected{border-color:var(--color-primary);box-shadow:inset 3px 0 0 var(--color-primary)}.filter-pills{gap:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.pill{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;padding:4px 12px;display:inline-flex}.pill--active{background:var(--color-bg-tertiary);border-color:var(--color-border-hover);color:var(--color-text);font-weight:var(--font-semibold);box-shadow:inset 0 0 0 1px var(--color-border-hover)}.model-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);display:flex}.model-row:hover{background:var(--color-bg-secondary)}.model-row-name{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);flex:1}.model-row-provider{font-size:var(--text-xs);color:var(--color-text-tertiary)}.provider-group summary{cursor:pointer;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);list-style:none;display:flex}.provider-group summary::-webkit-details-marker{display:none}.provider-group summary:before{content:"▸";font-size:var(--text-xs);transition:transform var(--transition-fast)}.provider-group[open] summary:before{transform:rotate(90deg)}.btn{align-items:center;gap:var(--space-2);min-height:44px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;padding:10px 20px;line-height:1.4;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#000;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-outline{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn-ghost{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:6px}.btn-ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-bg-secondary)}.btn-sm{min-height:36px;font-size:var(--text-xs);padding:6px 12px}.btn-secondary{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){opacity:.9}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}@media (prefers-reduced-motion:reduce){.spinner,.spin{animation:none}}.feedback{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);display:flex}.feedback span{flex:1}.feedback--success{background:var(--color-success-bg,#40c0571a);border:1px solid var(--color-success-border,#40c05740);color:var(--color-text)}.feedback--error{background:var(--color-danger-bg,#ff6b6b1a);border:1px solid var(--color-danger-border,#ff6b6b40);color:var(--color-text)}.feedback--warning{background:var(--color-warning-bg,#ffc1071a);border:1px solid var(--color-warning-border,#ffc10740);color:var(--color-text)}.form-field{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.form-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%;height:44px;color:var(--color-text);font-size:var(--text-sm);padding:0 12px;font-family:inherit}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.form-input:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.field-hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.field-status{font-size:var(--text-xs);color:var(--color-text-secondary)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.panel-header{z-index:10;background:var(--color-surface);justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:sticky;top:0}.panel-header h2{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text)}.panel-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.panel-subtitle code{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.panel-header-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex-shrink:0;max-width:100%;display:flex}.panel-body{padding:var(--space-5)}.panel-body--flush{padding:0}.badge{font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);white-space:nowrap;align-items:center;padding:2px 8px;line-height:1.4;display:inline-flex}.badge-enabled{background:var(--color-success-bg);color:var(--color-badge-success-fg)}.badge-disabled{background:var(--color-bg-tertiary);color:var(--color-badge-neutral-fg)}.badge-connected,.badge-recommended,.badge-success{background:var(--color-success-bg);color:var(--color-badge-success-fg)}.badge-danger{background:var(--color-danger-bg);color:var(--color-badge-danger-fg)}.badge-warning,.badge-warn{background:var(--color-warning-bg);color:var(--color-badge-warning-fg)}.badge-neutral{background:var(--color-bg-tertiary);color:var(--color-badge-neutral-fg)}.badge-error{background:var(--color-danger-bg);color:var(--color-badge-danger-fg)}.badge-idle{background:var(--color-bg-tertiary);color:var(--color-badge-neutral-fg)}.panel-subtitle,.section-note,.section-desc,.section-subtitle,.panel-description,.empty-note,.engine-desc{max-width:68ch}.btn-dismiss{color:inherit;cursor:pointer;opacity:.6;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.btn-dismiss:hover{opacity:1;background:#8080801a}.loading-state{align-items:center;gap:var(--space-3);padding:var(--space-6);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.empty-state{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);text-align:center;color:var(--color-text-tertiary);flex-direction:column;display:flex}.empty-state p{font-size:var(--text-sm)}.text-link{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.text-link:hover{color:var(--color-primary-hover)}@media (width<=520px){.sheet{border-inline-start:none;border-top:1px solid var(--color-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:90dvh;inset-block:auto 0;inset-inline:0}.sheet--wide{width:100%}.provider-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}}.update-banner.svelte-z1ckp5{color:#3730a3;font-size:var(--text-sm,.875rem);background:#eef2ff;border-bottom:1px solid #c7d2fe;align-items:center;gap:10px;padding:8px 14px;display:flex}.update-banner-icon.svelte-z1ckp5{display:inline-flex}.update-banner-text.svelte-z1ckp5{flex:1}.update-banner-link.svelte-z1ckp5{color:#4338ca;font-weight:600;text-decoration:none}.update-banner-link.svelte-z1ckp5:hover{text-decoration:underline}.update-banner-dismiss.svelte-z1ckp5{color:#3730a3;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:1.1rem;line-height:1}.update-banner-dismiss.svelte-z1ckp5:hover{background:#4338ca14}.toast-stack.svelte-1cpok13{right:var(--space-4);bottom:var(--space-4);z-index:200;gap:var(--space-2);max-width:min(360px, calc(100vw - var(--space-8)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast.svelte-1cpok13{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);pointer-events:auto;animation:.18s ease-out svelte-1cpok13-toast-in;display:flex;box-shadow:0 10px 30px #0000002e}.toast-info.svelte-1cpok13{border-color:var(--color-primary,#2563eb)}.toast-success.svelte-1cpok13{border-color:var(--color-success,#16a34a)}.toast-error.svelte-1cpok13{border-color:var(--color-danger,#dc2626)}.toast-icon.svelte-1cpok13{flex-shrink:0;display:inline-flex}.toast-info.svelte-1cpok13 .toast-icon:where(.svelte-1cpok13){color:var(--color-primary,#2563eb)}.toast-success.svelte-1cpok13 .toast-icon:where(.svelte-1cpok13){color:var(--color-success,#16a34a)}.toast-error.svelte-1cpok13 .toast-icon:where(.svelte-1cpok13){color:var(--color-danger,#dc2626)}.toast-message.svelte-1cpok13{font-size:var(--text-sm);word-break:break-word;flex:1;line-height:1.4}.toast-dismiss.svelte-1cpok13{width:24px;height:24px;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;flex-shrink:0;font-size:18px;line-height:1}.toast-dismiss.svelte-1cpok13:hover,.toast-dismiss.svelte-1cpok13:focus-visible{background:var(--color-surface-hover);color:var(--color-text);outline:none}.sr-only.svelte-1cpok13{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes svelte-1cpok13-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.toast.svelte-1cpok13{animation:none}}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.nav-shell.svelte-1wwzsr0{top:var(--nav-height);z-index:40;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);position:sticky}.section-strip.svelte-1wwzsr0{-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--color-border);background:var(--color-bg);gap:0;display:flex;overflow-x:auto}.section-strip.svelte-1wwzsr0::-webkit-scrollbar{display:none}.section-tab.svelte-1wwzsr0{min-height:36px;padding:var(--space-1) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted,var(--color-text-secondary));cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;align-items:center;margin-bottom:-1px;display:inline-flex}.section-tab.svelte-1wwzsr0:hover{color:var(--color-text);background:var(--color-bg-secondary)}.section-tab.svelte-1wwzsr0:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.section-tab-active.svelte-1wwzsr0{color:var(--color-text);font-weight:var(--font-semibold);background:var(--color-bg-secondary);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.subtab-row.svelte-1wwzsr0{position:relative}.subtab-row.svelte-1wwzsr0:after{content:"";background:linear-gradient(to right, transparent, var(--color-bg-secondary));pointer-events:none;width:48px;position:absolute;top:0;bottom:0;right:0}.subtab-row.svelte-1wwzsr0:before{content:"";background:linear-gradient(to left, transparent, var(--color-bg-secondary));pointer-events:none;z-index:1;width:40px;position:absolute;top:0;bottom:0;left:0}.tabs.svelte-1wwzsr0{gap:var(--space-1);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.tabs.svelte-1wwzsr0::-webkit-scrollbar{display:none}.tab.svelte-1wwzsr0{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast), font-weight var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;margin-bottom:-1px;display:inline-flex}.tab.svelte-1wwzsr0:hover{color:var(--color-text)}.tab.svelte-1wwzsr0:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.tab-active.svelte-1wwzsr0{color:var(--color-text);font-weight:var(--font-semibold);border-bottom-color:var(--color-text)}@media (width<=768px){.tab.svelte-1wwzsr0{padding:var(--space-2)}.section-tab.svelte-1wwzsr0{padding:var(--space-1) var(--space-3)}}@media (width<=320px){.tab.svelte-1wwzsr0,.section-tab.svelte-1wwzsr0{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}}.scope-bar.svelte-zyzzee{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-5);margin-bottom:var(--space-5);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.scope-bar--remote.svelte-zyzzee{background:var(--color-warning-bg);border-color:var(--color-warning)}.scope-main.svelte-zyzzee{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex}.scope-icon.svelte-zyzzee{color:var(--color-text-secondary);flex-shrink:0}.scope-text.svelte-zyzzee strong:where(.svelte-zyzzee){color:var(--color-text);font-weight:var(--font-semibold)}.scope-local.svelte-zyzzee{color:var(--color-badge-neutral-fg);font-weight:var(--font-semibold)}.scope-remote.svelte-zyzzee{color:var(--color-badge-warning-fg);font-weight:var(--font-medium)}.scope-remote.svelte-zyzzee strong:where(.svelte-zyzzee){font-weight:var(--font-semibold)}.hero.svelte-1ob1zsm{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:1px solid #0000;flex-wrap:wrap;display:flex}.hero--ok.svelte-1ob1zsm{background:var(--color-success-bg);border-color:var(--color-success-border)}.hero--warning.svelte-1ob1zsm{background:var(--color-warning-bg);border-color:var(--color-warning)}.hero--unknown.svelte-1ob1zsm{background:var(--color-bg-secondary);border-color:var(--color-border)}.hero-icon.svelte-1ob1zsm{flex-shrink:0;display:inline-flex}.hero--ok.svelte-1ob1zsm .hero-icon:where(.svelte-1ob1zsm){color:var(--color-badge-success-fg)}.hero--warning.svelte-1ob1zsm .hero-icon:where(.svelte-1ob1zsm){color:var(--color-badge-warning-fg)}.hero--unknown.svelte-1ob1zsm .hero-icon:where(.svelte-1ob1zsm){color:var(--color-text-secondary)}.hero-text.svelte-1ob1zsm{flex:240px;min-width:0}.hero-title.svelte-1ob1zsm{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.hero-detail.svelte-1ob1zsm{font-size:var(--text-sm);color:var(--color-badge-neutral-fg);max-width:68ch;margin-top:2px}.hero-actions.svelte-1ob1zsm{align-items:center;gap:var(--space-2);flex-wrap:wrap;max-width:100%;display:flex}.hero-actions.svelte-1ob1zsm .btn{flex-shrink:0}@media (width<=560px){.hero-actions.svelte-1ob1zsm{width:100%}.hero-actions.svelte-1ob1zsm .btn{flex:auto}}.output-section.svelte-1ob1zsm{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.output-section--success.svelte-1ob1zsm{border-color:var(--color-success-border)}.output-section--error.svelte-1ob1zsm{border-color:var(--color-danger)}.output-header.svelte-1ob1zsm{padding:var(--space-3) var(--space-5);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.output-header.svelte-1ob1zsm h3:where(.svelte-1ob1zsm){font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.output-code.svelte-1ob1zsm{padding:var(--space-4) var(--space-5);max-height:320px;font-family:var(--font-mono);font-size:var(--text-xs);color:#e4e8f0;white-space:pre-wrap;word-break:break-word;background:#1e2330;margin:0;line-height:1.6;overflow:auto}.tile-grid.svelte-1ob1zsm{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.tile.svelte-1ob1zsm{gap:var(--space-1);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.tile.svelte-1ob1zsm:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.tile.svelte-1ob1zsm:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tile-metric.svelte-1ob1zsm{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.tile-metric-sub.svelte-1ob1zsm{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-secondary)}.tile-metric--icon.svelte-1ob1zsm{color:var(--color-text-secondary)}.tile-label.svelte-1ob1zsm{font-size:var(--text-sm);color:var(--color-text-secondary)}.section-heading.svelte-1ob1zsm{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.shortcut-grid.svelte-1ob1zsm{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.shortcut.svelte-1ob1zsm{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;gap:2px;text-decoration:none;display:flex}.shortcut.svelte-1ob1zsm:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.shortcut.svelte-1ob1zsm:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shortcut-name.svelte-1ob1zsm{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.shortcut-desc.svelte-1ob1zsm{font-size:var(--text-xs);color:var(--color-text-secondary)}.akm-card.svelte-1ob1zsm{text-align:left;width:100%;font-family:var(--font-sans);padding:var(--space-5);margin-bottom:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:block}.akm-card.svelte-1ob1zsm:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.akm-card.svelte-1ob1zsm:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.akm-head.svelte-1ob1zsm{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.akm-title.svelte-1ob1zsm{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.akm-metrics.svelte-1ob1zsm{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.akm-metric.svelte-1ob1zsm{flex-direction:column;gap:2px;display:flex}.akm-num.svelte-1ob1zsm{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.akm-num-sub.svelte-1ob1zsm{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary)}.akm-cap.svelte-1ob1zsm{font-size:var(--text-xs);color:var(--color-text-secondary)}.akm-unavailable.svelte-1ob1zsm{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch}.panel-subtitle.svelte-qhqqsr{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0}.version-section.svelte-qhqqsr{gap:var(--space-2);flex-direction:column;display:flex}.version-row.svelte-qhqqsr{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.version-label.svelte-qhqqsr{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.version-value.svelte-qhqqsr{font-size:var(--text-xs);font-family:var(--font-mono);background:var(--color-bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:2px 6px}.version-input-row.svelte-qhqqsr{gap:var(--space-2);display:flex}.version-input.svelte-qhqqsr{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-input.svelte-qhqqsr:disabled{opacity:.5;cursor:not-allowed}.version-hint.svelte-qhqqsr{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;line-height:1.5}.version-divider.svelte-qhqqsr{background:var(--color-border);height:1px;margin:var(--space-3) 0}.version-restart-prompt.svelte-qhqqsr{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-success);padding:var(--space-2) var(--space-3);background:var(--color-success-bg);border-radius:var(--radius-md);display:flex}.version-select.svelte-qhqqsr{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-select.svelte-qhqqsr:disabled{opacity:.5;cursor:not-allowed}.version-select-skeleton.svelte-qhqqsr{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-bg-secondary) 25%, var(--color-bg-tertiary) 50%, var(--color-bg-secondary) 75%);background-size:200% 100%;flex:1;height:34px;animation:1.4s ease-in-out infinite svelte-qhqqsr-skeleton-shimmer}@keyframes svelte-qhqqsr-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.secret-select.svelte-6kjkzk{gap:var(--space-2);flex-direction:column;display:flex}.ss-row.svelte-6kjkzk{align-items:center;gap:var(--space-2);display:flex}.ss-select.svelte-6kjkzk{flex:auto;min-width:0;height:38px}.ss-add-btn.svelte-6kjkzk{align-items:center;gap:var(--space-1);flex-shrink:0;height:38px;display:inline-flex}.ss-add-btn.svelte-6kjkzk svg:where(.svelte-6kjkzk){flex-shrink:0}.ss-add-form.svelte-6kjkzk{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;display:flex}.ss-field.svelte-6kjkzk{flex-direction:column;gap:4px;display:flex}.ss-field-label.svelte-6kjkzk{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.ss-error.svelte-6kjkzk{font-size:var(--text-xs);color:var(--color-danger)}.ss-actions.svelte-6kjkzk{gap:var(--space-2);display:flex}@media (width<=480px){.ss-add-label.svelte-6kjkzk{display:none}.ss-add-btn.svelte-6kjkzk{justify-content:center;width:38px}}.addon-table.svelte-faz2je{flex-direction:column;width:100%;display:flex}.addon-table-header.svelte-faz2je{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-badge-neutral-fg);text-transform:none;align-items:center;display:flex}.addon-row.svelte-faz2je{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);transition:background var(--transition-fast);align-items:center;display:flex}.addon-row.svelte-faz2je:last-child{border-bottom:none}.addon-row.svelte-faz2je:hover{background:var(--color-surface-hover)}.addon-col.svelte-faz2je{align-items:center;gap:var(--space-2);display:flex}.addon-col--name.svelte-faz2je{flex:3;min-width:0}.addon-col--status.svelte-faz2je{flex:1;min-width:0}.addon-col--actions.svelte-faz2je{flex:none;justify-content:flex-end}.addon-name.svelte-faz2je{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width<=480px){.addon-row.svelte-faz2je{flex-wrap:wrap}.addon-col--name.svelte-faz2je{flex:1 0 100%}.addon-col--actions.svelte-faz2je{justify-content:flex-start}}.error-state.svelte-faz2je{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-danger);display:flex}@media (width<=768px){.addon-table-header.svelte-faz2je{display:none}.addon-row.svelte-faz2je{gap:var(--space-2);flex-wrap:wrap}.addon-col--status.svelte-faz2je{flex:none}}.addon-creds.svelte-faz2je{padding:var(--space-4) var(--space-5);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);gap:var(--space-3);flex-direction:column;display:flex}.creds-loading.svelte-faz2je{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.creds-empty.svelte-faz2je,.creds-hint.svelte-faz2je{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.creds-row.svelte-faz2je{gap:var(--space-1);flex-direction:column;display:flex}.creds-label.svelte-faz2je{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text);display:flex}.creds-label.svelte-faz2je code:where(.svelte-faz2je){font-family:var(--font-mono);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.creds-tag.svelte-faz2je{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px}.creds-tag--set.svelte-faz2je{background:var(--color-success-bg);color:var(--color-success)}.creds-desc.svelte-faz2je{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.form-input.svelte-faz2je{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:32px;padding:0 var(--space-3);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:inherit}.form-input.svelte-faz2je:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.creds-actions.svelte-faz2je{justify-content:flex-end;display:flex}.container-table.svelte-ocbovv{flex-direction:column;width:100%;display:flex}.container-table-header.svelte-ocbovv{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:none;align-items:center;display:flex}.ct-col.svelte-ocbovv{align-items:center;gap:var(--space-2);display:flex}.ct-col--name.svelte-ocbovv{flex:2;min-width:0}.ct-col--image.svelte-ocbovv{text-overflow:ellipsis;white-space:nowrap;flex:3;min-width:0;overflow:hidden}.ct-col--tag.svelte-ocbovv,.ct-col--status.svelte-ocbovv{flex:1;min-width:0}.ct-col--actions.svelte-ocbovv{color:var(--color-text-tertiary);flex:0 0 24px;justify-content:center}.ct-service-name.svelte-ocbovv{font-weight:var(--font-medium);font-family:var(--font-mono);font-size:var(--text-xs)}.ct-mono.svelte-ocbovv{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary)}.ct-indicator.svelte-ocbovv{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ct-indicator--success.svelte-ocbovv{background:var(--color-success)}.ct-indicator--danger.svelte-ocbovv{background:var(--color-danger)}.ct-indicator--warning.svelte-ocbovv{background:var(--color-warning)}.ct-indicator--idle.svelte-ocbovv{background:var(--color-border)}.ct-chevron-open.svelte-ocbovv{transform:rotate(180deg)}.ct-not-created.svelte-ocbovv{color:var(--color-text-tertiary);font-style:italic}.tag-badge.svelte-ocbovv{font-size:var(--text-xs);font-family:var(--font-mono);font-weight:var(--font-medium);color:var(--color-info);background:var(--color-info-bg);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;padding:2px 6px;display:inline-flex}.tag-badge--lg.svelte-ocbovv{font-size:var(--text-xs);padding:2px 8px}.container-table-row.svelte-ocbovv{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);font-size:var(--text-sm);width:100%;font-family:var(--font-sans);text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;display:flex}.container-table-row.svelte-ocbovv:last-child{border-bottom:none}.container-table-row--clickable.svelte-ocbovv{cursor:pointer;transition:background var(--transition-fast)}.container-table-row--clickable.svelte-ocbovv:hover{background:var(--color-surface-hover)}.container-table-row--clickable.svelte-ocbovv:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.container-detail.svelte-ocbovv{padding:var(--space-4) var(--space-5) var(--space-4) calc(var(--space-5) + 28px);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.detail-grid.svelte-ocbovv{gap:var(--space-3) var(--space-6);grid-template-columns:1fr 1fr;display:grid}.detail-item.svelte-ocbovv{flex-direction:column;gap:2px;display:flex}.detail-label.svelte-ocbovv{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.detail-value.svelte-ocbovv{font-size:var(--text-sm);color:var(--color-text);align-items:center;gap:var(--space-2);display:flex}.detail-mono.svelte-ocbovv{font-family:var(--font-mono);font-size:var(--text-xs);word-break:break-all}.detail-digest.svelte-ocbovv{font-size:var(--text-xs);color:var(--color-text-tertiary)}.detail-actions.svelte-ocbovv{gap:var(--space-2);margin-top:var(--space-4);display:flex}.detail-not-created.svelte-ocbovv{padding:var(--space-2) 0}.detail-not-created.svelte-ocbovv p:where(.svelte-ocbovv){font-size:var(--text-sm);color:var(--color-text-secondary)}.action-feedback.svelte-ocbovv{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium)}.action-feedback--success.svelte-ocbovv{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.action-feedback--error.svelte-ocbovv{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.confirm-bar.svelte-ocbovv{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-md);display:flex}.confirm-text.svelte-ocbovv{font-size:var(--text-sm);color:var(--color-text)}.confirm-actions.svelte-ocbovv{gap:var(--space-2);flex-shrink:0;display:flex}.spinner-inline.svelte-ocbovv{border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite spin;display:inline-block}.text-danger.svelte-ocbovv{color:var(--color-danger)}.empty-state.svelte-ocbovv .btn:where(.svelte-ocbovv){margin-top:var(--space-2)}.empty-state.svelte-ocbovv .hint:where(.svelte-ocbovv){font-size:var(--text-xs);color:var(--color-text-tertiary);max-width:32ch}.last-updated.svelte-ocbovv{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}@media (width<=768px){.container-table-header.svelte-ocbovv{display:none}.container-table-row.svelte-ocbovv{gap:var(--space-1);padding:var(--space-3) var(--space-4);flex-wrap:wrap}.ct-col--name.svelte-ocbovv{flex:auto}.ct-col--image.svelte-ocbovv,.ct-col--tag.svelte-ocbovv{display:none}.ct-col--status.svelte-ocbovv{flex:none}.ct-col--actions.svelte-ocbovv{flex:0 0 20px}.detail-grid.svelte-ocbovv{grid-template-columns:1fr}.container-detail.svelte-ocbovv{padding-left:var(--space-4)}.confirm-bar.svelte-ocbovv{flex-direction:column;align-items:stretch}.confirm-actions.svelte-ocbovv{justify-content:flex-end}}@media (prefers-reduced-motion:reduce){.spinner-inline.svelte-ocbovv{animation:none}}.automation-list.svelte-1uqcxu1{gap:var(--space-3);flex-direction:column;display:flex}.automation-card.svelte-1uqcxu1{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.automation-row.svelte-1uqcxu1{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);display:flex}.automation-main.svelte-1uqcxu1{flex:1;min-width:0}.automation-name.svelte-1uqcxu1{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);flex-wrap:wrap;display:flex}.automation-desc.svelte-1uqcxu1{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.automation-meta.svelte-1uqcxu1{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.meta-item.svelte-1uqcxu1{font-size:var(--text-xs);color:var(--color-text-secondary)}.meta-item.svelte-1uqcxu1 code:where(.svelte-1uqcxu1){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.schedule-friendly.svelte-1uqcxu1{font-weight:var(--font-medium);color:var(--color-text)}.meta-tz.svelte-1uqcxu1{color:var(--color-text-tertiary)}.badge-type.svelte-1uqcxu1{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.automation-footer.svelte-1uqcxu1{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-tertiary);display:flex}.automation-actions.svelte-1uqcxu1{gap:var(--space-1);display:flex}.task-editor.svelte-1uqcxu1{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.task-editor-head.svelte-1uqcxu1{flex-direction:column;gap:2px;display:flex}.task-editor-name.svelte-1uqcxu1{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold)}.task-editor-hint.svelte-1uqcxu1{font-size:var(--text-xs);color:var(--color-text-secondary)}.task-editor-area.svelte-1uqcxu1{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);padding:var(--space-3);resize:vertical;line-height:1.5}.task-editor-actions.svelte-1uqcxu1{justify-content:flex-end;gap:var(--space-2);display:flex}.automation-file.svelte-1uqcxu1{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-tertiary)}.empty-state-hint.svelte-1uqcxu1{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:calc(-1 * var(--space-2))}.empty-state.svelte-1uqcxu1 .btn:where(.svelte-1uqcxu1){margin-top:var(--space-2)}.empty-state.svelte-1uqcxu1 code:where(.svelte-1uqcxu1){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.text-danger.svelte-1uqcxu1{color:var(--color-danger)}@media (width<=768px){.automation-row.svelte-1uqcxu1{flex-direction:column}.automation-meta.svelte-1uqcxu1{align-items:flex-start;gap:var(--space-3);flex-direction:row}}.sheet-search.svelte-1ykz2x6{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);flex-shrink:0}.sheet-body--list.svelte-1ykz2x6{padding:0}.provider-pick.svelte-1ykz2x6{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-5);border:none;border-bottom:1px solid var(--color-bg-tertiary);cursor:pointer;text-align:left;background:0 0;font-family:inherit;display:flex}.provider-pick.svelte-1ykz2x6:hover{background:var(--color-surface-hover)}.provider-pick--custom.svelte-1ykz2x6{border-top:1px solid var(--color-border);color:var(--color-primary)}.provider-name.svelte-1ykz2x6{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);flex:1}.provider-pick--custom.svelte-1ykz2x6 .provider-name:where(.svelte-1ykz2x6){color:var(--color-primary)}.provider-meta.svelte-1ykz2x6{font-size:var(--text-xs);color:var(--color-text-tertiary)}.empty.svelte-1ykz2x6{padding:var(--space-6) var(--space-5);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.auth-method-group.svelte-1bnolke{gap:var(--space-2);flex-direction:column;display:flex}.auth-method-card.svelte-1bnolke{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;font-family:inherit;display:flex}.auth-method-card.svelte-1bnolke:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.method-label.svelte-1bnolke{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.method-type.svelte-1bnolke{font-size:var(--text-xs);color:var(--color-text-tertiary)}.form-stack.svelte-1btkq49{gap:var(--space-4);flex-direction:column;display:flex}.optional.svelte-1btkq49{font-weight:var(--font-medium);color:var(--color-text-tertiary);font-size:var(--text-xs)}.result-list.svelte-15y8pah{padding-left:var(--space-5);gap:var(--space-1);margin:0 0 var(--space-3);flex-direction:column;list-style:outside;display:flex}.result-list.svelte-15y8pah li:where(.svelte-15y8pah){font-size:var(--text-sm);color:var(--color-text)}.result-list.svelte-15y8pah code:where(.svelte-15y8pah){font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.muted.svelte-15y8pah{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:var(--space-2)}.feedback.inline.svelte-1tqmczc{margin:var(--space-3) var(--space-5);justify-content:space-between}.provider-row.svelte-1tqmczc{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);display:flex}.model-defaults.svelte-1tqmczc{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);grid-template-columns:1fr 1fr;display:grid}.model-field.svelte-1tqmczc{gap:var(--space-1);flex-direction:column;display:flex}.model-error.svelte-1tqmczc{font-size:var(--text-xs);color:var(--color-danger);grid-column:1/-1;margin:0}.provider-id.svelte-1tqmczc{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.provider-name.svelte-1tqmczc{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.empty-hint.svelte-1tqmczc{color:var(--color-text-tertiary)}.controls.svelte-s1vlr2{align-items:flex-end;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.control-group.svelte-s1vlr2{gap:var(--space-1);flex-direction:column;display:flex}.control-group--toggle.svelte-s1vlr2{justify-content:flex-end}.control-label.svelte-s1vlr2{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);text-transform:none}.control-input.svelte-s1vlr2{height:32px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);min-width:140px;font-family:inherit}.control-input.svelte-s1vlr2:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.toggle-label.svelte-s1vlr2{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;height:32px;display:flex}.toggle-label.svelte-s1vlr2 input:where(.svelte-s1vlr2){accent-color:var(--color-primary)}.log-output.svelte-s1vlr2{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text);background:var(--color-bg);padding:var(--space-4) var(--space-5);white-space:pre-wrap;word-break:break-all;tab-size:4;max-height:600px;margin:0;line-height:1.6;overflow-y:auto}.error-banner.svelte-s1vlr2{padding:var(--space-3) var(--space-5);background:var(--color-danger-bg);border-bottom:1px solid var(--color-danger-border,#ff6b6b40);color:var(--color-danger);font-size:var(--text-sm)}@media (width<=768px){.controls.svelte-s1vlr2{flex-direction:column;align-items:stretch}.control-input.svelte-s1vlr2{min-width:unset;width:100%}.log-output.svelte-s1vlr2{max-height:400px;font-size:var(--text-xs)}}.panel-header.svelte-1levcw0{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.section-note.svelte-1levcw0{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4)}.error-banner.svelte-1levcw0{background:var(--color-danger-subtle,#ef44441a);color:var(--color-danger,#ef4444);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.empty-note.svelte-1levcw0{font-size:var(--text-sm);color:var(--color-text-secondary)}.mono.svelte-1levcw0{font-family:var(--font-mono);font-size:var(--text-sm)}.secrets-layout.svelte-1levcw0{gap:var(--space-4);grid-template-columns:minmax(16rem,22rem) 1fr;align-items:start;display:grid}@media (width<=720px){.secrets-layout.svelte-1levcw0{grid-template-columns:1fr}}.secrets-list.svelte-1levcw0{gap:var(--space-1);flex-direction:column;display:flex}.secret-row.svelte-1levcw0{align-items:center;gap:var(--space-1);display:flex}.secret-row.active.svelte-1levcw0 .secret-name:where(.svelte-1levcw0){border-color:var(--color-primary,#6366f1)}.secret-name.svelte-1levcw0{justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;flex:1;display:flex}.secret-name.svelte-1levcw0:hover{background:var(--color-bg-tertiary,var(--color-bg-secondary))}.secret-size.svelte-1levcw0{font-size:var(--text-xs);color:var(--color-text-secondary);flex-shrink:0}.new-secret.svelte-1levcw0{gap:var(--space-1);margin-top:var(--space-3);flex-direction:column;display:flex}.new-secret-label.svelte-1levcw0{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.new-secret-row.svelte-1levcw0{gap:var(--space-2);flex-wrap:wrap;display:flex}.secrets-editor.svelte-1levcw0{min-width:0}.editor-head.svelte-1levcw0{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.reveal-toggle.svelte-1levcw0{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary);display:flex}.editor-area.svelte-1levcw0{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical}.editor-area.masked.svelte-1levcw0{-webkit-text-security:disc}.editor-actions.svelte-1levcw0{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.editor-empty.svelte-1levcw0{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--color-text-secondary);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-height:12rem;display:flex}.editor-empty.svelte-1levcw0 svg:where(.svelte-1levcw0){opacity:.4}.editor-empty.svelte-1levcw0 p:where(.svelte-1levcw0){font-size:var(--text-sm);max-width:24rem;margin:0}.k-tabs.svelte-1844cb2{scrollbar-width:none;gap:var(--space-1);padding:var(--space-1);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);flex-wrap:nowrap;display:flex;overflow-x:auto}.k-tabs.svelte-1844cb2::-webkit-scrollbar{display:none}.k-tab.svelte-1844cb2{min-height:2.75rem;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-normal,400);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;flex:1 0 auto;transition:background .15s,color .15s}.k-tab.svelte-1844cb2:hover{background:var(--color-surface-hover,#0000000d);color:var(--color-text)}.k-tab.svelte-1844cb2:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.k-tab--active.svelte-1844cb2{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text);font-weight:var(--font-semibold);box-shadow:0 1px 3px #00000014}@media (width<=400px){.k-tab.svelte-1844cb2{font-size:var(--text-xs);padding:var(--space-2)}}.panel-header.svelte-1844cb2{margin-bottom:var(--space-6);z-index:10;background:var(--color-bg);padding-top:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.panel-header.svelte-1844cb2 h2:where(.svelte-1844cb2){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-1844cb2{gap:var(--space-2);display:flex}.panel-body.svelte-1844cb2{gap:var(--space-8);flex-direction:column;display:flex}.config-section.svelte-1844cb2{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-1844cb2{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-1844cb2{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note--lead.svelte-1844cb2{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0 0 var(--space-4)}.adv-details.svelte-1844cb2{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-4)}.adv-summary.svelte-1844cb2{cursor:pointer;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);list-style:revert}.adv-summary.svelte-1844cb2:hover{color:var(--color-text);background:var(--color-surface-hover)}.adv-details[open].svelte-1844cb2 .adv-summary:where(.svelte-1844cb2){border-bottom:1px solid var(--color-border)}.adv-details.svelte-1844cb2 .config-section:where(.svelte-1844cb2){padding:var(--space-4)}.section-note.svelte-1844cb2{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-1844cb2{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-1844cb2{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-1844cb2 svg:where(.svelte-1844cb2){opacity:.45}.profile-list.svelte-1844cb2{gap:var(--space-1);flex-direction:column;display:flex}.profile-row.svelte-1844cb2{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:flex}.profile-row-name.svelte-1844cb2{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.profile-row-desc.svelte-1844cb2{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:20rem;overflow:hidden}.profile-row-actions.svelte-1844cb2{gap:var(--space-2);flex-shrink:0;display:flex}.badge.svelte-1844cb2{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-tertiary,var(--color-bg-secondary));color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.badge--default.svelte-1844cb2{background:var(--color-primary-subtle,#6366f11a);color:var(--color-primary,#6366f1);border-color:var(--color-primary-border,#6366f14d)}.controls.svelte-1844cb2{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1844cb2{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1844cb2{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1844cb2{grid-column:1/-1}.control-label.svelte-1844cb2{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1844cb2{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-1844cb2{max-width:8rem}.control-input.svelte-1844cb2:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1844cb2:disabled{opacity:.5;cursor:not-allowed}.input-with-toggle.svelte-1844cb2{display:flex}.input-with-toggle.svelte-1844cb2 .control-input:where(.svelte-1844cb2){border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:0;flex:1;min-width:0}.btn-icon.svelte-1844cb2{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;flex-shrink:0}.btn-icon.svelte-1844cb2:hover{background:var(--color-surface-hover);color:var(--color-text)}.toggle-row.svelte-1844cb2{align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--text-sm);display:flex}.toggle-row.svelte-1844cb2 input[type=checkbox]:where(.svelte-1844cb2){flex-shrink:0;width:1rem;height:1rem}.toggle-label.svelte-1844cb2{font-weight:var(--font-medium);color:var(--color-text)}.toggle-hint.svelte-1844cb2{color:var(--color-text-secondary);font-size:var(--text-xs)}.feat-name.svelte-1844cb2{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);font-family:var(--font-mono);display:block}.feat-hint.svelte-1844cb2{font-size:var(--text-xs);color:var(--color-text-secondary)}.proc-list.svelte-1844cb2{gap:var(--space-2);flex-direction:column;display:flex}.proc-card.svelte-1844cb2{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);padding:var(--space-2)}.proc-head.svelte-1844cb2{align-items:center;gap:var(--space-2);grid-template-columns:1.5rem 1fr 9rem 11rem 7rem;display:grid}@media (width<=600px){.proc-head.svelte-1844cb2{grid-template-columns:1.5rem 1fr}.proc-head.svelte-1844cb2>:where(.svelte-1844cb2):nth-child(n+3){grid-column:1/-1}}.proc-head.svelte-1844cb2 input[type=checkbox]:where(.svelte-1844cb2){width:1rem;height:1rem}.proc-name.svelte-1844cb2{min-width:0}.proc-adv.svelte-1844cb2{margin-top:var(--space-2)}.proc-adv.svelte-1844cb2>summary:where(.svelte-1844cb2){cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.proc-adv-grid.svelte-1844cb2{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.adv-field.svelte-1844cb2{flex-direction:column;gap:2px;display:flex}.adv-field.svelte-1844cb2>span:where(.svelte-1844cb2){font-size:var(--text-xs);color:var(--color-text-secondary)}.adv-field--check.svelte-1844cb2{align-items:center;gap:var(--space-2);flex-direction:row}.adv-field--wide.svelte-1844cb2{grid-column:1/-1}.adv-sublabel.svelte-1844cb2{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:2px;display:block}.drawer-scrim.svelte-1844cb2{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1844cb2{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1844cb2-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1844cb2-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1844cb2{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1844cb2{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1844cb2{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1844cb2:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1844cb2{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1844cb2{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.error-banner.svelte-1844cb2{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}.spinner.svelte-1844cb2{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:.75rem;height:.75rem;animation:.6s linear infinite svelte-1844cb2-spin;display:inline-block}@keyframes svelte-1844cb2-spin{to{transform:rotate(360deg)}}.panel-header.svelte-fv9i73{margin-bottom:var(--space-5)}.panel-header.svelte-fv9i73 h2:where(.svelte-fv9i73){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.config-section.svelte-fv9i73{gap:var(--space-3);flex-direction:column;display:flex}.section-note.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch;margin:0}.hs-restart.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-badge-warning-fg);font-weight:var(--font-medium);margin:0}.hs-loading.svelte-fv9i73{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.controls--grid.svelte-fv9i73{gap:var(--space-4);grid-template-columns:1fr;display:grid}.control-group.svelte-fv9i73{gap:var(--space-2);flex-direction:column;display:flex}.control-label.svelte-fv9i73{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-label--checkbox.svelte-fv9i73{align-items:center;gap:var(--space-2);font-weight:var(--font-normal);flex-direction:row}.host-akm-status.svelte-fv9i73{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.host-akm-path.svelte-fv9i73{font-size:var(--text-xs);color:var(--color-text-secondary)}.host-akm-actions.svelte-fv9i73{gap:var(--space-2);flex-flow:wrap}.spinner.svelte-fv9i73{border:2px solid;border-right-color:#0000;border-radius:50%;width:13px;height:13px;animation:.6s linear infinite svelte-fv9i73-spin;display:inline-block}@keyframes svelte-fv9i73-spin{to{transform:rotate(360deg)}}.panel-header.svelte-1iuj2un{z-index:10;background:var(--color-surface);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:0;display:flex;position:sticky;top:0}.panel-header.svelte-1iuj2un h2:where(.svelte-1iuj2un){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-1iuj2un{gap:var(--space-2);display:flex}.panel-body.svelte-1iuj2un{gap:var(--space-6);flex-direction:column;display:flex}.section-desc.svelte-1iuj2un{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.engine-section.svelte-1iuj2un{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1iuj2un{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.engine-subheading.svelte-1iuj2un{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.tts-extras.svelte-1iuj2un{gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.test-voice-row.svelte-1iuj2un{align-items:center;gap:var(--space-3);display:flex}.test-result.svelte-1iuj2un{font-size:var(--text-xs)}.test-result--ok.svelte-1iuj2un{color:var(--color-success,#16a34a)}.test-result--err.svelte-1iuj2un{color:var(--color-error,#dc2626)}.auto-speak-toggle.svelte-1iuj2un{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;display:flex}.auto-speak-toggle.svelte-1iuj2un input[type=checkbox]:where(.svelte-1iuj2un){cursor:pointer;width:16px;height:16px}.error-banner.svelte-1iuj2un{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}.spinner.svelte-1iuj2un{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:.75rem;height:.75rem;animation:.6s linear infinite svelte-1iuj2un-spin;display:inline-block}@keyframes svelte-1iuj2un-spin{to{transform:rotate(360deg)}}main.svelte-1jef3w8{max-width:var(--max-width);padding:var(--space-8) var(--space-6) var(--space-12);margin:0 auto}@media (width<=768px){main.svelte-1jef3w8{padding:var(--space-4) var(--space-4) var(--space-8)}}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.page.svelte-m7qpzt{max-width:760px;padding:var(--space-6);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.page-header.svelte-m7qpzt h1:where(.svelte-m7qpzt){margin:0 0 var(--space-2)}.lede.svelte-m7qpzt{color:var(--color-text-muted);margin:0}.alert.error.svelte-m7qpzt{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-danger-bg,#fee2e2);color:var(--color-danger-fg,#991b1b);border:1px solid var(--color-danger-border,#fecaca)}.endpoints-list.svelte-m7qpzt{gap:var(--space-3);flex-direction:column;display:flex}.endpoint-card.svelte-m7qpzt{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg,#fff);display:flex}.endpoint-card.active.svelte-m7qpzt{border-color:var(--color-accent,#2563eb);box-shadow:0 0 0 2px #2563eb14}.endpoint-main.svelte-m7qpzt{flex:1;min-width:0}.endpoint-title.svelte-m7qpzt{align-items:center;gap:var(--space-2);font-weight:500;display:flex}.endpoint-label.svelte-m7qpzt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.endpoint-url.svelte-m7qpzt{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.badge.svelte-m7qpzt{font-size:var(--text-xs);border-radius:var(--radius-full,999px);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-weight:500}.badge.default.svelte-m7qpzt{background:var(--color-bg-tertiary,#f3f4f6);color:var(--color-text-muted)}.badge.active.svelte-m7qpzt{background:var(--color-accent,#2563eb);color:#fff}.badge.password.svelte-m7qpzt{color:var(--color-text-muted);background:0 0;padding:0}.endpoint-actions.svelte-m7qpzt{gap:var(--space-2);flex-shrink:0;display:flex}.endpoint-form.svelte-m7qpzt{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg,#fff);flex-direction:column;display:flex}.endpoint-form.svelte-m7qpzt h2:where(.svelte-m7qpzt){margin:0}.field.svelte-m7qpzt{gap:var(--space-1);flex-direction:column;display:flex}.field.svelte-m7qpzt>span:where(.svelte-m7qpzt){font-size:var(--text-sm);font-weight:500}.field.svelte-m7qpzt input:where(.svelte-m7qpzt){padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit}.field.svelte-m7qpzt small:where(.svelte-m7qpzt){color:var(--color-text-muted);font-size:var(--text-xs)}.field.svelte-m7qpzt code:where(.svelte-m7qpzt){font-family:var(--font-mono);background:var(--color-bg-tertiary,#f3f4f6);border-radius:4px;padding:1px 4px}.rotate-hint.svelte-m7qpzt{margin-top:var(--space-2);padding:var(--space-3);border-left:3px solid var(--color-accent,#2563eb);background:var(--color-bg-tertiary,#f3f4f6);color:var(--color-text);border-radius:0 var(--radius-md) var(--radius-md) 0}.rotate-hint.svelte-m7qpzt ol:where(.svelte-m7qpzt){margin:var(--space-2) 0 0;padding-left:var(--space-4)}.rotate-hint.svelte-m7qpzt strong:where(.svelte-m7qpzt){margin-bottom:var(--space-1);display:block}.field-inline.svelte-m7qpzt{align-items:center;gap:var(--space-2);display:flex}.form-actions.svelte-m7qpzt{gap:var(--space-2);display:flex}.btn-danger.svelte-m7qpzt{background:var(--color-danger-bg,#fee2e2);color:var(--color-danger-fg,#991b1b);border:1px solid var(--color-danger-border,#fecaca)}.btn-danger.svelte-m7qpzt:hover:not(:disabled){background:var(--color-danger-bg-hover,#fecaca)}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.advanced-layout.svelte-1z0msvj{height:calc(100dvh - var(--nav-height));background:var(--color-bg);flex-direction:column;width:100%;display:flex}.advanced-toolbar.svelte-1z0msvj{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0;display:flex}.opencode-frame.svelte-1z0msvj{border:none;flex:1;width:100%;display:block}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
� v�R���<��J�]Ik
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.thread-divider.svelte-1ebqwt{align-items:center;gap:var(--space-3);padding:var(--space-4) 0;color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.06em;display:flex}.divider-line.svelte-1ebqwt{background:var(--color-border);flex:1;height:1px}.divider-label.svelte-1ebqwt{padding:0 var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);flex-shrink:0}.message.svelte-1ebqwt{gap:var(--space-1);flex-direction:column;width:100%;max-width:100%;display:flex}.message-user.svelte-1ebqwt{align-items:flex-end}.message-assistant.svelte-1ebqwt{align-items:flex-start}.message-bubble.svelte-1ebqwt{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);line-height:var(--leading-normal)}.message-user.svelte-1ebqwt .message-bubble:where(.svelte-1ebqwt){color:#f3f4f6;border-bottom-right-radius:var(--radius-sm);background:#2c3748}[data-theme=dark] .message-user.svelte-1ebqwt .message-bubble:where(.svelte-1ebqwt){color:#f3f4f6;background:#3d4f66}.message-assistant.svelte-1ebqwt .message-bubble:where(.svelte-1ebqwt){background:var(--color-bg-tertiary);color:var(--color-text);border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-sm)}.message-text.svelte-1ebqwt{font-size:var(--text-base);word-break:break-word}.message-user.svelte-1ebqwt .message-text:where(.svelte-1ebqwt):not(.markdown-body){white-space:pre-wrap}.markdown-body.svelte-1ebqwt p{margin:0 0 var(--space-2) 0}.markdown-body.svelte-1ebqwt p:last-child{margin-bottom:0}.markdown-body.svelte-1ebqwt ul,.markdown-body.svelte-1ebqwt ol{margin:0 0 var(--space-2) 0;padding-left:var(--space-5)}.markdown-body.svelte-1ebqwt li{margin:var(--space-1) 0}.markdown-body.svelte-1ebqwt li>p{margin:0}.markdown-body.svelte-1ebqwt code{font-family:var(--font-mono);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:1px 6px;font-size:.9em}.markdown-body.svelte-1ebqwt pre{margin:var(--space-2) 0;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9em;overflow-x:auto}.markdown-body.svelte-1ebqwt pre code{background:0 0;border:0;padding:0}.markdown-body.svelte-1ebqwt a{color:var(--color-primary);text-decoration:underline}.markdown-body.svelte-1ebqwt a:hover{text-decoration:none}.markdown-body.svelte-1ebqwt blockquote{margin:var(--space-2) 0;padding-left:var(--space-3);border-left:3px solid var(--color-border);color:var(--color-text-secondary)}.markdown-body.svelte-1ebqwt h1,.markdown-body.svelte-1ebqwt h2,.markdown-body.svelte-1ebqwt h3,.markdown-body.svelte-1ebqwt h4{margin:var(--space-3) 0 var(--space-2);font-weight:var(--font-bold);line-height:var(--leading-tight,1.25)}.markdown-body.svelte-1ebqwt h1{font-size:1.4em}.markdown-body.svelte-1ebqwt h2{font-size:1.25em}.markdown-body.svelte-1ebqwt h3{font-size:1.1em}.markdown-body.svelte-1ebqwt h4{font-size:1em}.markdown-body.svelte-1ebqwt hr{margin:var(--space-3) 0;border:0;border-top:1px solid var(--color-border)}.markdown-body.svelte-1ebqwt table{border-collapse:collapse;margin:var(--space-2) 0;font-size:.9em}.markdown-body.svelte-1ebqwt th,.markdown-body.svelte-1ebqwt td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);text-align:left}.message-meta.svelte-1ebqwt{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.chat-input-row.svelte-5wsbgm{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg);justify-items:center;width:-webkit-fill-available;width:-moz-available;width:stretch}.input-area.svelte-5wsbgm{align-items:flex-end;gap:var(--space-2);width:-webkit-fill-available;width:-moz-available;width:stretch;max-width:var(--max-width);display:flex}textarea.svelte-5wsbgm{min-height:40px;max-height:160px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);resize:none;transition:border-color var(--transition-fast);flex:1;overflow-y:auto}textarea.svelte-5wsbgm:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}textarea.svelte-5wsbgm:disabled{opacity:.65;cursor:not-allowed}.send-btn.svelte-5wsbgm{background:var(--color-primary);border-radius:var(--radius-md);color:#000;cursor:pointer;width:44px;height:44px;transition:background var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.send-btn.svelte-5wsbgm:hover:not(:disabled){background:var(--color-primary-hover)}.send-btn.svelte-5wsbgm:disabled{opacity:.45;cursor:not-allowed}.spinner.svelte-5wsbgm{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite svelte-5wsbgm-spin;display:inline-block}@keyframes svelte-5wsbgm-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner.svelte-5wsbgm{animation:none}}.chat-toolbar.svelte-jup6ph{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.new-chat.svelte-jup6ph{align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;display:inline-flex}.new-chat.svelte-jup6ph:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover)}.new-chat.svelte-jup6ph:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.new-chat.svelte-jup6ph:disabled{opacity:.6;cursor:default}.new-chat.svelte-jup6ph svg:where(.svelte-jup6ph){flex-shrink:0}@media (width<=480px){.chat-toolbar.svelte-jup6ph{padding:var(--space-2) var(--space-3)}}.chat-layout.svelte-23dtxz{height:calc(100dvh - var(--nav-height));flex-direction:column;margin:0;display:flex}.messages-area.svelte-23dtxz{gap:var(--space-4);padding:var(--space-5) var(--space-4);scroll-behavior:smooth;flex-direction:column;flex:1;align-items:center;display:flex;overflow-y:auto}.messages-area.svelte-23dtxz>*{width:100%;max-width:48rem}.empty-state.svelte-23dtxz{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-8);margin:auto}.session-loading.svelte-23dtxz{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-4);margin:auto;display:flex}.spinner.svelte-23dtxz{border:2px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.6s linear infinite svelte-23dtxz-spin;display:inline-block}@keyframes svelte-23dtxz-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner.svelte-23dtxz{animation:none}}.chat-error-banner.svelte-23dtxz{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-danger-bg);font-size:var(--text-sm);color:var(--color-danger);border-top:1px solid #fa525240;display:flex}.chat-error-banner.svelte-23dtxz span:where(.svelte-23dtxz):first-child{flex:1}.reconnect-btn.svelte-23dtxz{font-size:var(--text-xs);font-weight:var(--font-semibold);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);background:0 0;padding:3px 10px}.reconnect-btn.svelte-23dtxz:hover{background:var(--color-danger);color:#fff}.dismiss-btn.svelte-23dtxz{width:24px;height:24px;color:var(--color-danger);cursor:pointer;font-size:var(--text-lg);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.dismiss-btn.svelte-23dtxz:hover{background:#fa525226}@media (width<=768px){.messages-area.svelte-23dtxz{padding:var(--space-3) var(--space-4)}}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.friendly-error.svelte-l9z7ob{color:#7f1d1d;font-size:var(--text-sm,.875rem);background:#fef3f2;border:1px solid #fecaca;border-radius:8px;padding:12px 14px}.friendly-error-header.svelte-l9z7ob{color:#b91c1c;align-items:center;gap:8px;display:flex}.friendly-error-title.svelte-l9z7ob{font-size:var(--text-sm,.875rem)}.friendly-error-body.svelte-l9z7ob{color:#7f1d1d;margin:6px 0 0}.friendly-error-hint.svelte-l9z7ob{color:#525252;font-size:var(--text-xs,.75rem);margin:6px 0 0}.friendly-error-links.svelte-l9z7ob{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.friendly-error-link.svelte-l9z7ob{color:#b91c1c;font-size:var(--text-xs,.75rem);font-weight:500;text-decoration:underline}.friendly-error-details.svelte-l9z7ob{font-size:var(--text-xs,.75rem);margin-top:10px}.friendly-error-details.svelte-l9z7ob summary:where(.svelte-l9z7ob){cursor:pointer;color:#525252}.friendly-error-details.svelte-l9z7ob pre:where(.svelte-l9z7ob){white-space:pre-wrap;word-break:break-word;color:#404040;background:#fafafa;border:1px solid #e5e5e5;border-radius:4px;max-height:min(40vh,320px);margin:6px 0 0;padding:8px;overflow:auto}.syscheck-list.svelte-1txhq2p{flex-direction:column;gap:10px;margin:16px 0;display:flex}.syscheck-row.svelte-1txhq2p{border:1px solid var(--color-border,#e5e7eb);background:var(--color-bg,#fff);border-radius:8px;gap:12px;padding:12px 14px;display:flex}.syscheck-row--ok.svelte-1txhq2p{background:#f0fdf4;border-color:#bbf7d0}.syscheck-row--fail.svelte-1txhq2p{background:#fef2f2;border-color:#fecaca}.syscheck-row--warn.svelte-1txhq2p{background:#fffbeb;border-color:#fde68a}.syscheck-icon.svelte-1txhq2p{flex:0 0 24px;justify-content:center;align-items:center;padding-top:2px;display:flex}.syscheck-body.svelte-1txhq2p{flex:1;min-width:0}.syscheck-title.svelte-1txhq2p{font-weight:600;font-size:var(--text-sm,.875rem)}.syscheck-meta.svelte-1txhq2p{font-size:var(--text-xs,.75rem);color:var(--color-text-secondary,#6b7280);margin-top:2px}.syscheck-hint.svelte-1txhq2p{font-size:var(--text-xs,.75rem);color:var(--color-text-secondary,#525252);margin-top:4px}.syscheck-link.svelte-1txhq2p{color:var(--color-primary,#4f6ef7);font-size:var(--text-xs,.75rem);margin-top:6px;font-weight:500;text-decoration:none;display:inline-block}.syscheck-link.svelte-1txhq2p:hover{text-decoration:underline}.spinner.svelte-1txhq2p{border:2px solid #e5e7eb;border-top-color:var(--color-primary,#4f6ef7);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite svelte-1txhq2p-spin;display:inline-block}@keyframes svelte-1txhq2p-spin{to{transform:rotate(360deg)}}.welcome-actions.svelte-1d9o2de{flex-direction:column;align-items:center;gap:10px;width:100%;margin-top:24px;display:flex}.welcome-actions.svelte-1d9o2de .btn:where(.svelte-1d9o2de){justify-content:center;align-items:center;gap:8px;width:100%;max-width:360px;display:flex}.spinner.svelte-1d9o2de{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite svelte-1d9o2de-spin;display:inline-block}@keyframes svelte-1d9o2de-spin{to{transform:rotate(360deg)}}.host-import-choice.svelte-1iuc968{border:1px solid var(--color-border,#e2e8f0);background:var(--color-surface,#fff);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:16px;padding:16px;display:flex}.host-import-desc.svelte-1iuc968{color:var(--color-text-secondary,#64748b);margin:0 0 4px;font-size:14px}.host-radio.svelte-1iuc968{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.host-radio.svelte-1iuc968 input[type=radio]:where(.svelte-1iuc968){accent-color:var(--color-primary,#6366f1)}.btn-show-all-providers.svelte-1iuc968{border:1px dashed var(--color-border,#e2e8f0);width:100%;font-size:var(--text-sm,.875rem);color:var(--color-text-secondary,#64748b);cursor:pointer;text-align:center;background:0 0;border-radius:8px;margin-top:8px;padding:8px 12px;display:block}.btn-show-all-providers.svelte-1iuc968:hover{background:var(--color-surface,#f8fafc);color:var(--color-text,#1e293b)}.host-status-warning.svelte-1iuc968{color:#92400e;font-size:var(--text-sm,.875rem);background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:0 0 12px;padding:10px 14px}.allow-empty-row.svelte-1iuc968{background:var(--color-surface,#f8fafc);border:1px solid var(--color-border,#e2e8f0);font-size:var(--text-sm,.875rem);cursor:pointer;border-radius:8px;align-items:flex-start;gap:8px;margin:12px 0;padding:10px 14px;display:flex}.allow-empty-row.svelte-1iuc968 input:where(.svelte-1iuc968){margin-top:2px}.auth-feedback-ok{justify-content:space-between;align-items:center;gap:8px;display:flex}.auth-disconnect{color:inherit;font-size:var(--text-xs,.75rem);cursor:pointer;opacity:.7;background:0 0;border:1px solid;border-radius:6px;padding:2px 8px}.auth-disconnect:hover{opacity:1}.voice-summary.svelte-jxtfqg{background:var(--color-surface,#f8fafc);border:1px solid var(--color-border,#e2e8f0);border-radius:8px;flex-direction:column;gap:6px;margin:12px 0;padding:12px 14px;display:flex}.voice-summary-row.svelte-jxtfqg{font-size:var(--text-sm,.875rem);justify-content:space-between;align-items:center;display:flex}.voice-summary-label.svelte-jxtfqg{color:var(--color-text-secondary,#64748b)}.voice-summary-value.svelte-jxtfqg{color:var(--color-text,#1e293b);font-weight:500}.voice-configure-summary.svelte-jxtfqg{cursor:pointer;font-size:var(--text-sm,.875rem);color:var(--color-primary,#4f6ef7);padding:4px 0;font-weight:500;list-style:none}.voice-configure-summary.svelte-jxtfqg::-webkit-details-marker{display:none}.voice-configure-summary.svelte-jxtfqg:before{content:"▶ ";font-size:.7em}details[open].svelte-jxtfqg .voice-configure-summary:where(.svelte-jxtfqg):before{content:"▼ "}.voice-hint.svelte-jxtfqg{font-size:var(--text-sm,.875rem);color:var(--color-text-secondary,#64748b);margin:0 0 12px}.voice-unknown.svelte-jxtfqg{color:#92400e;font-size:var(--text-sm,.875rem);background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:12px 0;padding:10px 14px}.voice-download-notice.svelte-jxtfqg{color:#1e3a8a;font-size:var(--text-sm,.875rem);background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin:12px 0 20px;padding:12px 16px;line-height:1.55}.voice-download-notice.svelte-jxtfqg ul:where(.svelte-jxtfqg){margin:6px 0 6px 18px;padding:0}.voice-download-notice.svelte-jxtfqg strong:where(.svelte-jxtfqg){color:#1e40af}.voice-profile-inline.svelte-jxtfqg{margin:-2px 0 16px}.voice-profile-inline-title.svelte-jxtfqg{font-size:var(--text-sm,.875rem);color:var(--color-text,#1e293b);margin-bottom:8px;font-weight:600}.voice-profile-inline-loading.svelte-jxtfqg{font-size:var(--text-sm,.875rem);color:var(--color-text-secondary,#64748b);margin:0}.options-advanced-summary.svelte-1q1mmx4{cursor:pointer;font-size:var(--text-sm,.875rem);color:var(--color-text-secondary,#64748b);margin-top:8px;padding:8px 0;font-weight:500;list-style:none}.options-advanced-summary.svelte-1q1mmx4::-webkit-details-marker{display:none}.options-advanced-summary.svelte-1q1mmx4:before{content:"▶ ";font-size:.7em}details[open].svelte-1q1mmx4 .options-advanced-summary:where(.svelte-1q1mmx4):before{content:"▼ "}.field-hint.svelte-1q1mmx4{font-size:var(--text-xs,.75rem);color:var(--color-text-secondary,#64748b);margin:2px 0 4px}.review-warning.svelte-1q74f52{font-size:var(--text-sm,.875rem);color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:12px 0;padding:10px 14px}.review-row--alert.svelte-1q74f52{align-items:flex-start}.token-save-box.svelte-1q74f52{font-family:monospace;font-size:var(--text-sm,.875rem);border:1px solid var(--color-border,#e2e8f0);word-break:break-all;-webkit-user-select:all;user-select:all;background:#fff;border-radius:6px;padding:4px 8px;display:inline-block}.token-save-input.svelte-1q74f52{font-family:monospace;font-size:var(--text-sm,.875rem);border:1px solid var(--color-border,#e2e8f0);background:#fff;border-radius:6px;width:100%;padding:4px 8px}.token-save-hint.svelte-1q74f52{font-size:var(--text-xs,.75rem);color:var(--color-text-tertiary,#94a3b8);margin-left:8px}.token-save-hint.svelte-1q74f52 code:where(.svelte-1q74f52){background:var(--color-bg-secondary,#f1f5f9);border-radius:4px;padding:1px 5px;font-family:monospace}.done-close-hint.svelte-1orw49v{color:#166534;font-size:var(--text-sm,.875rem);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;margin:8px 0 12px;padding:8px 12px}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.theme-toggle.svelte-1cmi4dh{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle.svelte-1cmi4dh:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.theme-toggle.svelte-1cmi4dh:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.theme-toggle[aria-pressed=true].svelte-1cmi4dh{color:var(--color-primary);background:var(--color-bg-tertiary);border-color:var(--color-border)}.switcher.svelte-1gh51ee{position:relative}.trigger.svelte-1gh51ee{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:32px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--endpoint-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-1gh51ee:hover:not(:disabled){background:var(--color-surface-hover)}.trigger.svelte-1gh51ee:disabled{opacity:.6;cursor:progress}.trigger-icon.svelte-1gh51ee{color:var(--color-text-secondary);flex-shrink:0;display:none}.dot.svelte-1gh51ee{background:var(--color-success,#16a34a);border-radius:50%;flex-shrink:0;width:8px;height:8px}.label.svelte-1gh51ee{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-1gh51ee{opacity:.6;font-size:10px}.menu.svelte-1gh51ee{padding:var(--space-2);position-anchor:--endpoint-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:280px;max-width:min(360px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-1gh51ee{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.menu-item.svelte-1gh51ee{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-1gh51ee:hover:not(:disabled),.menu-item.svelte-1gh51ee:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-1gh51ee:disabled{opacity:.6;cursor:progress}.menu-item.active.svelte-1gh51ee{background:var(--color-bg-tertiary)}.check.svelte-1gh51ee{width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-1gh51ee{flex-direction:column;display:flex;overflow:hidden}.menu-item-label.svelte-1gh51ee{font-weight:500;font-size:var(--text-sm)}.menu-item-url.svelte-1gh51ee{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-divider.svelte-1gh51ee{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.menu-item.link.svelte-1gh51ee{color:var(--color-primary);text-decoration:none}.picker.svelte-1owsj0q{position:relative}.trigger.svelte-1owsj0q{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:32px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--session-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-1owsj0q:hover{background:var(--color-surface-hover)}.trigger-icon.svelte-1owsj0q{color:var(--color-text-secondary);flex-shrink:0}.dot.svelte-1owsj0q{background:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .12s}.dot.connected.svelte-1owsj0q{background:var(--color-success,#16a34a)}.label.svelte-1owsj0q{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-1owsj0q{opacity:.6;font-size:10px}.menu.svelte-1owsj0q{padding:var(--space-2);position-anchor:--session-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:300px;max-width:min(380px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-1owsj0q{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.menu-item.svelte-1owsj0q{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-1owsj0q:hover:not(:disabled),.menu-item.svelte-1owsj0q:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-1owsj0q:disabled{opacity:.6;cursor:not-allowed}.menu-item.active.svelte-1owsj0q{background:var(--color-bg-tertiary)}.new-btn.svelte-1owsj0q{color:var(--color-primary);font-weight:500}.check.svelte-1owsj0q{text-align:center;width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-1owsj0q{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.menu-item-label.svelte-1owsj0q{font-weight:500;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-item-meta.svelte-1owsj0q{font-size:var(--text-xs);color:var(--color-text-secondary)}.menu-divider.svelte-1owsj0q{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.session-list.svelte-1owsj0q{max-height:60vh;overflow-y:auto}.empty.svelte-1owsj0q,.error.svelte-1owsj0q{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.error.svelte-1owsj0q{color:var(--color-danger)}.error.svelte-1owsj0q span:where(.svelte-1owsj0q):first-child{flex:1}.retry-btn.svelte-1owsj0q{font-size:var(--text-xs);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;background:0 0;padding:2px 8px}.retry-btn.svelte-1owsj0q:hover{background:var(--color-danger);color:var(--color-text-inverse)}.notice.svelte-1owsj0q{margin:0 var(--space-2) var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm,6px)}.show-all.svelte-1owsj0q{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-primary);font:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:0}.show-all.svelte-1owsj0q:hover{background:var(--color-bg-tertiary)}.spinner.svelte-1owsj0q{border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite svelte-1owsj0q-spin;display:inline-block}@keyframes svelte-1owsj0q-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner.svelte-1owsj0q{animation:none}}.voice-control.svelte-1a5q9sh{align-items:center;gap:var(--space-2);display:flex}.voice-interim.svelte-1a5q9sh{max-width:200px;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:2px var(--space-2);background:var(--color-surface-hover);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:1;min-width:0;overflow:hidden}.voice-autoplay-banner.svelte-1a5q9sh{align-items:center;gap:var(--space-2);padding:4px var(--space-3);background:var(--color-primary-subtle);border:1px solid var(--color-primary);border-radius:var(--radius-md);height:32px;color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:filter var(--transition-fast);display:inline-flex}.voice-autoplay-banner.svelte-1a5q9sh:hover{filter:brightness(1.05)}.voice-autoplay-banner.svelte-1a5q9sh:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.voice-btn.svelte-1a5q9sh{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.voice-btn.svelte-1a5q9sh:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.voice-btn.svelte-1a5q9sh:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.voice-btn-active.svelte-1a5q9sh{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-bg)}.voice-btn-active.svelte-1a5q9sh:hover{color:var(--color-danger);border-color:var(--color-danger)}.voice-btn-on.svelte-1a5q9sh{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.voice-btn-on.svelte-1a5q9sh:hover{color:var(--color-primary);border-color:var(--color-primary)}.voice-btn-speaking.svelte-1a5q9sh{background:var(--color-primary-subtle);box-shadow:0 0 0 2px var(--color-primary-subtle)}.voice-btn-processing.svelte-1a5q9sh{color:var(--color-text-tertiary);cursor:not-allowed}.voice-btn-disabled.svelte-1a5q9sh,.voice-btn.svelte-1a5q9sh:disabled{color:var(--color-text-tertiary);background:var(--color-bg);cursor:not-allowed;opacity:.7}.voice-btn-disabled.svelte-1a5q9sh:hover{color:var(--color-text-tertiary);border-color:var(--color-border);background:var(--color-bg)}.voice-pulse.svelte-1a5q9sh{border:2px solid var(--color-danger);border-radius:var(--radius-md);opacity:0;pointer-events:none;animation:1.5s ease-out infinite svelte-1a5q9sh-voice-pulse-anim;position:absolute;inset:-3px}.voice-spinner.svelte-1a5q9sh{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite svelte-1a5q9sh-voice-spinner-anim;display:inline-block}@keyframes svelte-1a5q9sh-voice-spinner-anim{to{transform:rotate(360deg)}}.wave-anim.svelte-1a5q9sh{transform-origin:11px 12px;animation:1.2s ease-in-out infinite svelte-1a5q9sh-wave-pulse-anim}.wave-anim-2.svelte-1a5q9sh{transform-origin:11px 12px;animation:1.2s ease-in-out .3s infinite svelte-1a5q9sh-wave-pulse-anim}@keyframes svelte-1a5q9sh-wave-pulse-anim{0%,to{opacity:.4}50%{opacity:1}}@keyframes svelte-1a5q9sh-voice-pulse-anim{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.voice-pulse.svelte-1a5q9sh,.voice-spinner.svelte-1a5q9sh,.wave-anim.svelte-1a5q9sh,.wave-anim-2.svelte-1a5q9sh{animation:none}.voice-pulse.svelte-1a5q9sh{opacity:.4}}.sr-only.svelte-1a5q9sh{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.navbar.svelte-rfuq4y{z-index:50;background:var(--color-navbar-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.navbar.svelte-rfuq4y:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}.navbar-inner.svelte-rfuq4y{width:100%;padding:0 var(--space-4);height:var(--nav-height);align-items:center;gap:var(--space-3);display:flex}.navbar-brand.svelte-rfuq4y{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);flex-shrink:0;text-decoration:none;display:flex}.navbar-brand.svelte-rfuq4y:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.brand-icon.svelte-rfuq4y{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-rfuq4y img:where(.svelte-rfuq4y){max-width:34px;display:block}.brand-text.svelte-rfuq4y{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);letter-spacing:-.01em;white-space:nowrap}.navbar-actions.svelte-rfuq4y{align-items:center;gap:var(--space-2);min-width:0;margin-left:auto;display:flex}.navbar-actions.svelte-rfuq4y .switcher,.navbar-actions.svelte-rfuq4y .trigger{min-width:0}.gear-btn.svelte-rfuq4y{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.gear-btn.svelte-rfuq4y:hover{color:var(--color-text);background:var(--color-surface-hover)}.gear-btn.svelte-rfuq4y:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.gear-btn.active.svelte-rfuq4y{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border);font-weight:var(--font-semibold)}.gear-btn.svelte-rfuq4y svg:where(.svelte-rfuq4y){flex-shrink:0}@media (width<=900px){.navbar-actions.svelte-rfuq4y .trigger .label{display:none}}@media (width<=480px){.brand-text.svelte-rfuq4y{display:none}.navbar-inner.svelte-rfuq4y{padding:0 var(--space-3);gap:var(--space-2)}}.auth-gate.svelte-1vviwqr{max-width:none;height:100dvh;padding:var(--space-6);box-sizing:border-box;background-color:var(--color-bg-secondary);background-image:url(../../../fu.png);background-position:left -2% bottom -2%;background-repeat:no-repeat;background-size:35%;justify-content:center;align-items:center;margin:0;display:flex;overflow:hidden}.auth-card.svelte-1vviwqr{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:460px;box-shadow:var(--shadow-lg);padding:var(--space-6);box-sizing:border-box;margin-bottom:10vh}.auth-brand.svelte-1vviwqr{align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.auth-brand.svelte-1vviwqr h1:where(.svelte-1vviwqr){font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text)}.auth-brand.svelte-1vviwqr p:where(.svelte-1vviwqr){font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:4px}.brand-icon.svelte-1vviwqr{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-1vviwqr img:where(.svelte-1vviwqr){max-width:34px}.auth-form.svelte-1vviwqr{gap:var(--space-3);display:grid}.auth-form.svelte-1vviwqr label:where(.svelte-1vviwqr){font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.auth-form.svelte-1vviwqr input:where(.svelte-1vviwqr):not(.sr-only){border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%;height:40px;color:var(--color-text);font-size:var(--text-sm);padding:0 12px}.auth-form.svelte-1vviwqr input:where(.svelte-1vviwqr):not(.sr-only):focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.auth-error.svelte-1vviwqr{color:var(--color-danger);font-size:var(--text-sm);margin:0}.sr-only.svelte-1vviwqr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.token-input-wrapper.svelte-1vviwqr{align-items:center;gap:var(--space-2);display:flex}.token-input-wrapper.svelte-1vviwqr input:where(.svelte-1vviwqr){flex:1}.btn-toggle.svelte-1vviwqr{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-toggle.svelte-1vviwqr:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.btn-toggle.svelte-1vviwqr:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=480px){.auth-gate.svelte-1vviwqr{padding:var(--space-3);background-size:45%}.auth-card.svelte-1vviwqr{padding:var(--space-4);margin-bottom:5vh}.auth-brand.svelte-1vviwqr h1:where(.svelte-1vviwqr){font-size:var(--text-lg)}}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.mode-switch.svelte-1o2iqa1{align-items:center;gap:var(--space-1);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-shrink:0;padding:3px;display:inline-flex}.mode-tab.svelte-1o2iqa1{align-items:center;gap:var(--space-2);height:34px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-badge-neutral-fg);font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap;transition:color var(--transition-fast), background var(--transition-fast);text-decoration:none;display:inline-flex}.mode-tab.svelte-1o2iqa1:hover{color:var(--color-text)}.mode-tab.svelte-1o2iqa1:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.mode-tab.active.svelte-1o2iqa1{background:var(--color-surface);color:var(--color-text);font-weight:var(--font-semibold);box-shadow:var(--shadow-sm)}.mode-tab.svelte-1o2iqa1 svg:where(.svelte-1o2iqa1){flex-shrink:0}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.engine-list.svelte-1e5u5jo{gap:var(--space-2);flex-direction:column;display:flex}.engine-card.svelte-1e5u5jo{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:all var(--transition-fast);display:flex}.engine-card.svelte-1e5u5jo:hover:not(:disabled){border-color:var(--color-border-hover);background:var(--color-surface-hover)}.engine-card--selected.svelte-1e5u5jo{border-color:var(--color-primary);background:var(--color-primary-subtle)}.engine-card--disabled.svelte-1e5u5jo{opacity:.6;cursor:not-allowed}.engine-body.svelte-1e5u5jo{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.engine-name.svelte-1e5u5jo{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.engine-desc.svelte-1e5u5jo{font-size:var(--text-xs);color:var(--color-text-secondary)}.engine-subtitle.svelte-1e5u5jo{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:2px;font-style:italic}.engine-reachability.svelte-1e5u5jo{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:4px}.engine-reachability--ok.svelte-1e5u5jo{color:var(--color-success,#16a34a)}.engine-config.svelte-1e5u5jo{gap:var(--space-3);margin:calc(-1 * var(--space-1)) 0 var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);border-left:2px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;flex-direction:column;display:flex}.field-hint.svelte-1e5u5jo{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:2px}.profile-single.svelte-11ub9pr,.profile-desc.svelte-11ub9pr{font-size:var(--text-xs,.75rem);color:var(--color-text-secondary,#64748b);margin:0}.field-hint.svelte-11ub9pr{font-size:var(--text-xs,.75rem);color:var(--color-text-tertiary,#94a3b8);margin-top:2px}.field-hint--warning.svelte-11ub9pr{color:var(--color-error,#dc2626)}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{A as e,D as t,E as n,F as r,I as i,J as a,N as o,O as s,P as c,Q as l,V as u,X as d,Y as f,Z as p,ct as m,d as h,et as g,it as _,j as v,l as y,n as b,q as x,r as S,rt as C,s as w,st as T,u as E,v as D,w as O}from"./BwTF6U35.js";import"./xihTtKlq.js";import{B as k,V as A,X as j,Y as M,a as N,c as P,g as F,i as I,k as L,l as R,n as ee,o as z,r as te,s as B,t as V,u as H}from"./DpdFx-ph.js";import{t as U}from"./BOq4Y36A.js";var W=v(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`),G=v(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"></path></svg>`),K=e(`<button type="button" class="theme-toggle svelte-1cmi4dh"><!></button>`);function q(e,t){_(t,!0);let r=g(()=>V.resolved===`dark`),a=g(()=>i(r)?`Switch to light mode`:`Switch to dark mode`);function o(){V.toggle()}var l=K(),d=x(l),f=e=>{s(e,W())},p=e=>{s(e,G())};n(d,e=>{i(r)?e(f):e(p,-1)}),m(l),u(()=>{h(l,`aria-label`,i(a)),h(l,`aria-pressed`,i(r)),h(l,`title`,i(a))}),c(`click`,l,o),s(e,l),C()}o([`click`]);var J=1e3,Y=3e4,ne=`/proxy/assistant/event`;function X(e){let t={},n=[];for(let r of e.split(`
|
|
2
|
+
`))!r||r.startsWith(`:`)||(r.startsWith(`data:`)?n.push(r.replace(/^data:\s?/,``)):r.startsWith(`event:`)?t.event=r.replace(/^event:\s?/,``):r.startsWith(`id:`)&&(t.id=r.replace(/^id:\s?/,``)));return n.length>0&&(t.data=n.join(`
|
|
3
|
+
`)),t}function re(e,t){let n=t.properties?.info,r=n?.id;if(r)switch(t.type){case`session.created`:e.onCreated(r);return;case`session.updated`:e.onUpdated(r,{title:n?.title,updatedAt:n?.time?.updated});return;case`session.deleted`:e.onDeleted(r);return;default:return}}function ie(e){let t=!1,n=new AbortController,r,i=e=>new Promise(t=>{let r=setTimeout(t,e);n.signal.addEventListener(`abort`,()=>{clearTimeout(r),t()},{once:!0})});async function a(){let t={accept:`text/event-stream`};r!==void 0&&(t[`Last-Event-ID`]=r);let i=await fetch(ne,{method:`GET`,headers:t,credentials:`include`,signal:n.signal});if(!i.ok||!i.body)throw Error(`SSE stream failed: ${i.status} ${i.statusText}`);e.onConnect?.();let a=i.body.pipeThrough(new TextDecoderStream).getReader(),o=``;try{for(;;){let{done:t,value:n}=await a.read();if(t)break;o+=n;let i=o.split(`
|
|
4
|
+
|
|
5
|
+
`);o=i.pop()??``;for(let t of i){if(!t)continue;let n=X(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}re(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(J*2**Math.max(0,r-1),Y)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=l(d(new Map));get byEndpoint(){return i(this.#e)}set byEndpoint(e){p(this.#e,e,!0)}#t=l(`default`);get activeEndpointId(){return i(this.#t)}set activeEndpointId(e){p(this.#t,e,!0)}#n=l(d([]));get entries(){return i(this.#n)}set entries(e){p(this.#n,e,!0)}#r=l(!1);get entriesLoading(){return i(this.#r)}set entriesLoading(e){p(this.#r,e,!0)}#i=l(!1);get sending(){return i(this.#i)}set sending(e){p(this.#i,e,!0)}#a=l(``);get error(){return i(this.#a)}set error(e){p(this.#a,e,!0)}#o=l(!1);get liveConnected(){return i(this.#o)}set liveConnected(e){p(this.#o,e,!0)}_unsubscribeEvents=null;#s=g(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return i(this.#s)}set activeSessionId(e){p(this.#s,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions,r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),this._resubscribeEvents()}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=ie({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1}})}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1)return;let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await A();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this.entriesLoading=!0,this.error=``;try{let n=await k(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await F(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){if(this.sending)return;let t=e.trim();if(!t)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this.error=``,this.sending=!0;try{let e=(await M(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``),r={id:crypto.randomUUID(),role:`assistant`,text:e||`(no response)`,timestamp:Date.now()};this.entries=[...this.entries,r];let i=this.activeEndpointId,a=this.byEndpoint.get(i);if(a){let e=Date.now(),t=a.sessions.find(e=>e.id===n),r=t?{...t,updatedAt:e}:{id:n,title:``,createdAt:e,updatedAt:e},o=a.sessions.filter(e=>e.id!==n);this.setEndpointState(i,{sessions:[r,...o]})}H.ttsSupported&&H.ttsAutoEnabled&&e&&z(e)}catch(e){let t=e;t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`}finally{this.sending=!1}}reset(){if(R(),this.entries=[],this.error=``,this.byEndpoint=new Map,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}},$=new class{#e=l(d([]));get endpoints(){return i(this.#e)}set endpoints(e){p(this.#e,e,!0)}#t=l(`default`);get activeId(){return i(this.#t)}set activeId(e){p(this.#t,e,!0)}#n=l(!1);get loading(){return i(this.#n)}set loading(e){p(this.#n,e,!0)}#r=l(!1);get loaded(){return i(this.#r)}set loaded(e){p(this.#r,e,!0)}#i=l(``);get error(){return i(this.#i)}set error(e){p(this.#i,e,!0)}#a=g(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return i(this.#a)}set active(e){p(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await L();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(Q.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await j(e),await Q.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}},ae=e(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-1gh51ee" aria-hidden="true"> </span> <span class="menu-item-text svelte-1gh51ee"><span class="menu-item-label svelte-1gh51ee"> </span> <span class="menu-item-url svelte-1gh51ee"> </span></span></button>`),oe=e(`<div class="switcher svelte-1gh51ee"><button type="button" class="trigger svelte-1gh51ee" id="endpoint-trigger" aria-haspopup="menu"><svg class="trigger-icon svelte-1gh51ee" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <span class="dot svelte-1gh51ee" aria-hidden="true"></span> <span class="label svelte-1gh51ee"> </span> <span class="caret svelte-1gh51ee" aria-hidden="true">▾</span></button> <div class="menu svelte-1gh51ee" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-1gh51ee">Assistant endpoint</div> <!> <div class="menu-divider svelte-1gh51ee"></div> <a class="menu-item link svelte-1gh51ee" href="/admin/endpoints" role="menuitem">Manage endpoints…</a></div></div>`);function se(e,n){_(n,!0);let a=`endpoint-menu`,o=l(!1),d=l(!1),v=g(()=>$.active),y=g(()=>$.endpoints),b=g(()=>i(y).length>1);S(()=>{$.load()});function w(e){i(b)||(e.preventDefault(),window.location.href=`/admin/endpoints`)}async function E(e){if(!i(o)&&e!==i(v)?.id){p(o,!0);try{await $.activate(e)}catch{}finally{p(o,!1)}}}function k(e){p(d,e.newState===`open`)}var A=oe(),j=x(A);h(j,`aria-controls`,a);var M=f(x(j),4),N=x(M,!0);m(M),T(2),m(j);var P=f(j,2);h(P,`id`,a),O(f(x(P),2),17,()=>i(y),e=>e.id,(e,n)=>{var r=ae();let l;h(r,`popovertarget`,a);var d=x(r),p=x(d,!0);m(d);var g=f(d,2),_=x(g),y=x(_,!0);m(_);var b=f(_,2),S=x(b,!0);m(b),m(g),m(r),u(()=>{l=D(r,1,`menu-item svelte-1gh51ee`,null,l,{active:i(n).id===i(v)?.id}),h(r,`aria-checked`,i(n).id===i(v)?.id),r.disabled=i(o),t(p,i(n).id===i(v)?.id?`●`:`○`),t(y,i(n).label),t(S,i(n).url)}),c(`click`,r,()=>E(i(n).id)),s(e,r)}),T(4),m(P),m(A),u(()=>{h(j,`popovertarget`,i(b)?a:void 0),h(j,`aria-expanded`,i(d)),h(j,`aria-label`,i(v)?`Assistant endpoint: ${i(v).label}`:`Assistant endpoints`),h(j,`title`,i(v)?`Connected to: ${i(v).label} (${i(v).url})`:`Assistant endpoints`),j.disabled=i(o)||$.loading,t(N,i(v)?.label??`Endpoint…`)}),c(`click`,j,w),r(`toggle`,P,k),s(e,A),C()}o([`click`]);var ce=e(`<div class="notice svelte-1owsj0q">Wait for the current reply to finish before switching.</div>`),le=e(`<div class="empty svelte-1owsj0q"><span class="spinner svelte-1owsj0q" aria-hidden="true"></span> <span>Loading sessions…</span></div>`),ue=e(`<div class="error svelte-1owsj0q"><span class="svelte-1owsj0q"> </span> <button type="button" class="retry-btn svelte-1owsj0q">Retry</button></div>`),de=e(`<div class="empty svelte-1owsj0q">No sessions yet. Start the first one.</div>`),fe=e(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-1owsj0q" aria-hidden="true"> </span> <span class="menu-item-text svelte-1owsj0q"><span class="menu-item-label svelte-1owsj0q"> </span> <span class="menu-item-meta svelte-1owsj0q"> </span></span></button>`),pe=e(`<button type="button" class="show-all svelte-1owsj0q"> </button>`),me=e(`<div class="session-list svelte-1owsj0q" role="none"></div> <!>`,1),he=e(`<div class="picker svelte-1owsj0q"><button type="button" class="trigger svelte-1owsj0q" id="session-trigger" aria-haspopup="menu" aria-label="Sessions"><svg class="trigger-icon svelte-1owsj0q" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-1owsj0q"> </span> <span class="caret svelte-1owsj0q" aria-hidden="true">▾</span></button> <div class="menu svelte-1owsj0q" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-1owsj0q"> </div> <!> <button type="button" class="menu-item new-btn svelte-1owsj0q" role="menuitem" popovertargetaction="hide"><span class="check svelte-1owsj0q" aria-hidden="true">+</span> <span class="menu-item-text svelte-1owsj0q"><span class="menu-item-label svelte-1owsj0q">New session</span></span></button> <div class="menu-divider svelte-1owsj0q"></div> <!></div></div>`);function ge(e,o){_(o,!0);let d=`session-menu`,v=l(!1),y=l(!1),b=g(()=>$.active),S=g(()=>i(b)?Q.byEndpoint.get(i(b).id)??null:null),w=g(()=>i(S)?.sessions??[]),E=g(()=>i(S)?.sessionsLoading??!1),k=g(()=>i(S)?.sessionsError??``),A=g(()=>Q.activeSessionId),j=g(()=>i(w).find(e=>e.id===i(A))??null),M=g(()=>i(j)?i(j).title||`Untitled · ${I(i(j).updatedAt)}`:`New session`),N=g(()=>Q.liveConnected),P=g(()=>i(v)?i(w):i(w).slice(0,50)),F=g(()=>Math.max(0,i(w).length-50));function I(e){if(!e)return``;let t=Math.max(0,(Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i}d ago`;let a=Math.floor(i/7);if(a<5)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}function L(){i(b)&&!i(S)?.sessionsLoaded&&!i(E)&&Q.loadSessions()}async function R(e){Q.sending||await Q.openSession(e)}async function ee(){Q.sending||await Q.startNewSession()}async function z(){await Q.loadSessions()}function te(e){p(y,e.newState===`open`)}var B=he(),V=x(B);h(V,`popovertarget`,d),h(V,`aria-controls`,d);var H=f(x(V),2);let U;var W=f(H,2),G=x(W,!0);m(W),T(2),m(V);var K=f(V,2);h(K,`id`,d);var q=x(K),J=x(q);m(q);var Y=f(q,2),ne=e=>{s(e,ce())};n(Y,e=>{Q.sending&&e(ne)});var X=f(Y,2);h(X,`popovertarget`,d);var re=f(X,4),ie=e=>{s(e,le())},Z=e=>{var n=ue(),r=x(n),a=x(r,!0);m(r);var o=f(r,2);m(n),u(()=>t(a,i(k))),c(`click`,o,z),s(e,n)},ae=e=>{s(e,de())},oe=e=>{var r=me(),o=a(r);O(o,21,()=>i(P),e=>e.id,(e,n)=>{var r=fe();let a;h(r,`popovertarget`,d);var o=x(r),l=x(o,!0);m(o);var p=f(o,2),g=x(p),_=x(g,!0);m(g);var v=f(g,2),y=x(v,!0);m(v),m(p),m(r),u(e=>{a=D(r,1,`menu-item session-item svelte-1owsj0q`,null,a,{active:i(n).id===i(A)}),h(r,`aria-checked`,i(n).id===i(A)),r.disabled=Q.sending,t(l,i(n).id===i(A)?`●`:`○`),t(_,i(n).title||`Untitled`),t(y,e)},[()=>I(i(n).updatedAt)]),c(`click`,r,()=>R(i(n).id)),s(e,r)}),m(o);var l=f(o,2),g=e=>{var n=pe(),r=x(n);m(n),u(()=>t(r,`Show all (${i(F)??``} more)`)),c(`click`,n,()=>p(v,!0)),s(e,n)};n(l,e=>{!i(v)&&i(F)>0&&e(g)}),s(e,r)};n(re,e=>{i(E)?e(ie):i(k)?e(Z,1):i(w).length===0?e(ae,2):e(oe,-1)}),m(K),m(B),u(()=>{h(V,`aria-expanded`,i(y)),h(V,`title`,i(M)),U=D(H,1,`dot svelte-1owsj0q`,null,U,{connected:i(N)}),h(H,`title`,i(N)?`Live updates connected`:`Live updates disconnected`),t(G,i(M)),t(J,`Sessions on ${i(b)?.label??`this endpoint`??``}`),X.disabled=Q.sending}),c(`click`,V,L),r(`toggle`,K,te),c(`click`,X,ee),s(e,B),C()}o([`click`]);var _e=e(`<span class="voice-interim svelte-1a5q9sh" aria-hidden="true"> </span>`),ve=e(`<button type="button" class="voice-autoplay-banner svelte-1a5q9sh" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1a5q9sh"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-1a5q9sh"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-1a5q9sh"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-1a5q9sh"></line></svg> <span class="svelte-1a5q9sh">Audio paused — click to resume</span></button>`),ye=v(`<path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path>`,1),be=v(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-1a5q9sh"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-1a5q9sh"></line>`,1),xe=e(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1a5q9sh"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-1a5q9sh"></polygon><!></svg></button>`),Se=v(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1a5q9sh"><line x1="1" y1="1" x2="23" y2="23" class="svelte-1a5q9sh"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-1a5q9sh"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-1a5q9sh"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-1a5q9sh"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-1a5q9sh"></line></svg>`),Ce=e(`<span class="voice-spinner svelte-1a5q9sh" aria-hidden="true"></span>`),we=e(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-1a5q9sh"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-1a5q9sh"></rect></svg> <span class="voice-pulse svelte-1a5q9sh" aria-hidden="true"></span>`,1),Te=v(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1a5q9sh"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-1a5q9sh"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-1a5q9sh"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-1a5q9sh"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-1a5q9sh"></line></svg>`),Ee=e(`<div class="voice-control svelte-1a5q9sh" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-1a5q9sh" aria-live="polite"> </span></div>`);function De(e,r){_(r,!0);let o=l(!1);S(()=>{te().then(()=>{p(o,!0)})}),b(()=>{ee()});let d=g(()=>i(o)&&H.sttEngine!==`disabled`&&H.sttSupported),v=g(()=>i(o)&&H.ttsSupported),y=g(()=>H.status===`recording`),w=g(()=>H.status===`transcribing`),E=g(()=>!i(y)&&!i(w)&&Q.sending),O=g(()=>H.status===`speaking`);function k(){if(i(y)){P();return}i(w)||(R(),B(e=>{let t=e.trim();t&&Q.send(t)}))}function A(){N(!H.ttsAutoEnabled)}var j=Ee(),M=x(j),F=e=>{var n=_e(),r=x(n,!0);m(n),u(e=>{h(n,`title`,H.interimTranscript),t(r,e)},[()=>H.interimTranscript.length>48?H.interimTranscript.slice(0,48)+`…`:H.interimTranscript]),s(e,n)};n(M,e=>{i(y)&&H.interimTranscript&&e(F)});var L=f(M,2),z=e=>{var t=ve();c(`click`,t,()=>I()),s(e,t)};n(L,e=>{H.autoplayBlocked&&e(z)});var V=f(L,2),U=e=>{var t=xe();let r;var o=x(t),l=f(x(o)),d=e=>{var t=ye(),n=a(t);let r;var o=f(n);let c;u(()=>{r=D(n,0,`svelte-1a5q9sh`,null,r,{"wave-anim":i(O)}),c=D(o,0,`svelte-1a5q9sh`,null,c,{"wave-anim-2":i(O)})}),s(e,t)},p=e=>{var t=be();T(),s(e,t)};n(l,e=>{H.ttsAutoEnabled?e(d):e(p,-1)}),m(o),m(t),u(()=>{r=D(t,1,`voice-btn svelte-1a5q9sh`,null,r,{"voice-btn-on":H.ttsAutoEnabled,"voice-btn-speaking":i(O)}),h(t,`aria-label`,H.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),h(t,`aria-pressed`,H.ttsAutoEnabled),h(t,`title`,i(O)?`Speaking — click to turn off spoken responses`:H.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),c(`click`,t,A),s(e,t)};n(V,e=>{i(v)&&e(U)});var W=f(V,2);let G;var K=x(W),q=e=>{s(e,Se())},J=e=>{s(e,Ce())},Y=e=>{var t=we();T(2),s(e,t)},ne=e=>{s(e,Te())};n(K,e=>{i(d)?i(w)||i(E)?e(J,1):i(y)?e(Y,2):e(ne,-1):e(q)}),m(W);var X=f(W,2),re=x(X,!0);m(X),m(j),u(()=>{G=D(W,1,`voice-btn svelte-1a5q9sh`,null,G,{"voice-btn-active":i(y),"voice-btn-processing":i(E)||i(w),"voice-btn-disabled":!i(d)}),W.disabled=!i(d)||i(E),h(W,`aria-label`,i(d)?i(y)?`Stop recording`:i(w)?`Transcribing…`:i(E)?`Sending message…`:`Start recording`:`Voice input unavailable`),h(W,`aria-pressed`,i(y)),h(W,`title`,i(d)?i(y)?`Stop recording`:i(w)?`Transcribing…`:i(E)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),t(re,i(y)&&H.interimTranscript?H.interimTranscript:i(y)?`Recording`:i(w)?`Transcribing`:i(E)?`Sending message to assistant`:i(O)?`Assistant is speaking`:H.ttsAutoEnabled?`Spoken responses on`:``)}),c(`click`,W,k),s(e,j),C()}o([`click`]);var Oe=e(`<a href="/admin" aria-label="Settings & administration" title="Manage this machine"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-rfuq4y"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></a>`),ke=e(`<header class="navbar svelte-rfuq4y"><div class="navbar-inner svelte-rfuq4y"><a class="navbar-brand svelte-rfuq4y" href="/chat" aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-rfuq4y" aria-hidden="true"><img src="/logo-128.png" alt="" class="svelte-rfuq4y"/></span> <span class="brand-text svelte-rfuq4y">OpenPalm</span></a> <div class="navbar-actions svelte-rfuq4y"><!> <!> <!> <!> <!></div></div></header>`);function Ae(e,t){_(t,!0);let r=g(()=>U.url?.pathname??``),a=g(()=>i(r)===`/admin`||i(r).startsWith(`/admin/`)),o=g(()=>{let e=$.active?.url??``;if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}});var c=ke(),l=x(c),d=f(x(l),2),p=x(d),v=e=>{var t=Oe();let n;u(()=>{n=D(t,1,`gear-btn svelte-rfuq4y`,null,n,{active:i(a)}),h(t,`aria-current`,i(a)?`page`:void 0)}),s(e,t)};n(p,e=>{i(o)&&e(v)});var y=f(p,2);se(y,{});var b=f(y,2);ge(b,{});var S=f(b,2);q(S,{}),De(f(S,2),{}),m(d),m(l),m(c),s(e,c),C()}var je=v(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"></path><path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"></path><line x1="1" y1="1" x2="23" y2="23"></line><path d="M14.12 14.12a3 3 0 1 1-4.24-4.24"></path></svg>`),Me=v(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>`),Ne=e(`<p class="auth-error svelte-1vviwqr" role="alert"> </p>`),Pe=e(`<span class="spinner"></span>`),Fe=e(`<main class="auth-gate svelte-1vviwqr" aria-label="Admin login gate"><section class="auth-card svelte-1vviwqr"><div class="auth-brand svelte-1vviwqr"><span class="brand-icon svelte-1vviwqr"><img src="/logo-128.png" alt="OpenPalm Logo" class="svelte-1vviwqr"/></span> <div><h1 class="svelte-1vviwqr">OpenPalm Console</h1> <p class="svelte-1vviwqr">Enter your admin password to unlock the control plane.</p></div></div> <form class="auth-form svelte-1vviwqr"><label for="admin-token" class="svelte-1vviwqr">Admin Password</label> <input type="text" name="username" autocomplete="username" value="admin" class="sr-only svelte-1vviwqr" tabindex="-1" aria-hidden="true"/> <div class="token-input-wrapper svelte-1vviwqr"><input id="admin-token" name="admin-token" placeholder="Enter admin password" autocomplete="current-password" class="svelte-1vviwqr"/> <button type="button" class="btn-toggle svelte-1vviwqr"><!></button></div> <!> <button class="btn btn-primary" type="submit"><!> Unlock Console</button></form></section></main>`);function Ie(e,a){_(a,!0);let o=l(``),d=l(!1),g=l(void 0);async function v(e){e.preventDefault();let t=i(o).trim();if(!t||a.loading){i(g)?.focus();return}await a.onSuccess(t)||(i(g)?.focus(),i(g)?.select())}var b=Fe(),S=x(b),D=f(x(S),2),O=f(f(x(D),2),2),k=x(O);E(k),w(k,e=>p(g,e),()=>i(g));var A=f(k,2),j=x(A),M=e=>{s(e,je())},N=e=>{s(e,Me())};n(j,e=>{i(d)?e(M):e(N,-1)}),m(A),m(O);var P=f(O,2),F=e=>{var n=Ne(),r=x(n,!0);m(n),u(()=>t(r,a.error)),s(e,n)};n(P,e=>{a.error&&e(F)});var I=f(P,2),L=x(I),R=e=>{s(e,Pe())};n(L,e=>{a.loading&&e(R)}),T(),m(I),m(D),m(S),m(b),u(e=>{h(k,`type`,i(d)?`text`:`password`),h(A,`aria-label`,i(d)?`Hide token`:`Show token`),I.disabled=e},[()=>a.loading||!i(o).trim()]),r(`submit`,D,v),y(k,()=>i(o),e=>p(o,e)),c(`click`,A,()=>p(d,!i(d))),s(e,b),C()}o([`click`]);export{Q as i,Ae as n,$ as r,Ie as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./BwTF6U35.js";import{i as e,n as t,r as n}from"./Bdvti_5C.js";var r={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};Object.defineProperty({get from(){return n.current?n.current.from:null},get to(){return n.current?n.current.to:null},get type(){return n.current?n.current.type:null},get willUnload(){return n.current?n.current.willUnload:null},get delta(){return n.current?n.current.delta:null},get complete(){return n.current?n.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};
|
|
Binary file
|
|
Binary file
|