@openpalm/ui 0.11.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -0
- package/build/.openpalm-ui-version +1 -0
- package/build/client/_app/immutable/assets/0.BK7X4bPu.css +1 -0
- package/build/client/_app/immutable/assets/0.BK7X4bPu.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BK7X4bPu.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.D9MwgTDo.css +1 -0
- package/build/client/_app/immutable/assets/4.D9MwgTDo.css.br +0 -0
- package/build/client/_app/immutable/assets/4.D9MwgTDo.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.DJenXolA.css +1 -0
- package/build/client/_app/immutable/assets/6.DJenXolA.css.br +0 -0
- package/build/client/_app/immutable/assets/6.DJenXolA.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.BHUsSUvX.css +1 -0
- package/build/client/_app/immutable/assets/7.BHUsSUvX.css.br +0 -0
- package/build/client/_app/immutable/assets/7.BHUsSUvX.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.BtJV-xXj.css +1 -0
- package/build/client/_app/immutable/assets/AuthGate.BtJV-xXj.css.br +0 -0
- package/build/client/_app/immutable/assets/AuthGate.BtJV-xXj.css.gz +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.Dp7tWdKe.css +1 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.Dp7tWdKe.css.br +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.Dp7tWdKe.css.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/C8qMxft1.js +1 -0
- package/build/client/_app/immutable/chunks/C8qMxft1.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8qMxft1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cb_i8bV9.js +1 -0
- package/build/client/_app/immutable/chunks/Cb_i8bV9.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cb_i8bV9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CzXGhlNF.js +1 -0
- package/build/client/_app/immutable/chunks/CzXGhlNF.js.br +0 -0
- package/build/client/_app/immutable/chunks/CzXGhlNF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYskO3Sk.js +5 -0
- package/build/client/_app/immutable/chunks/DYskO3Sk.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYskO3Sk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ak2ISc8B.js +1 -0
- package/build/client/_app/immutable/chunks/ak2ISc8B.js.br +0 -0
- package/build/client/_app/immutable/chunks/ak2ISc8B.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.C_eSlUyi.js +2 -0
- package/build/client/_app/immutable/entry/app.C_eSlUyi.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C_eSlUyi.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BAta_Cih.js +1 -0
- package/build/client/_app/immutable/entry/start.BAta_Cih.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BAta_Cih.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Bi_of0So.js +1 -0
- package/build/client/_app/immutable/nodes/0.Bi_of0So.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Bi_of0So.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.qjZsjpWC.js +1 -0
- package/build/client/_app/immutable/nodes/1.qjZsjpWC.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.qjZsjpWC.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.BYtA2xx-.js +19 -0
- package/build/client/_app/immutable/nodes/4.BYtA2xx-.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.BYtA2xx-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.ChSoAFFd.js +4 -0
- package/build/client/_app/immutable/nodes/5.ChSoAFFd.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.ChSoAFFd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BRG0vYmH.js +1 -0
- package/build/client/_app/immutable/nodes/6.BRG0vYmH.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BRG0vYmH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BVvy1f_p.js +15 -0
- package/build/client/_app/immutable/nodes/7.BVvy1f_p.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BVvy1f_p.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Cb4MWMah.js +2 -0
- package/build/client/_app/immutable/nodes/8.Cb4MWMah.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Cb4MWMah.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +0 -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-Dk6RRhi2.js +9 -0
- package/build/server/chunks/0-Dk6RRhi2.js.map +1 -0
- package/build/server/chunks/1-CWcY3PRs.js +9 -0
- package/build/server/chunks/1-CWcY3PRs.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-DeAt_mYc.js +9 -0
- package/build/server/chunks/4-DeAt_mYc.js.map +1 -0
- package/build/server/chunks/5-qTXiNPEM.js +9 -0
- package/build/server/chunks/5-qTXiNPEM.js.map +1 -0
- package/build/server/chunks/6-C444Mr69.js +9 -0
- package/build/server/chunks/6-C444Mr69.js.map +1 -0
- package/build/server/chunks/7-Dg_sVly5.js +9 -0
- package/build/server/chunks/7-Dg_sVly5.js.map +1 -0
- package/build/server/chunks/8-CF5kn4AY.js +9 -0
- package/build/server/chunks/8-CF5kn4AY.js.map +1 -0
- package/build/server/chunks/AuthGate-keg7G6rX.js +707 -0
- package/build/server/chunks/AuthGate-keg7G6rX.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-BNWepgTx.js +58 -0
- package/build/server/chunks/_layout.svelte-BNWepgTx.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-BdYSYjmj.js +67 -0
- package/build/server/chunks/_page.svelte-BdYSYjmj.js.map +1 -0
- package/build/server/chunks/_page.svelte-BiKY57wg.js +533 -0
- package/build/server/chunks/_page.svelte-BiKY57wg.js.map +1 -0
- package/build/server/chunks/_page.svelte-CtX_8pMq.js +5528 -0
- package/build/server/chunks/_page.svelte-CtX_8pMq.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-DwMiUmq6.js +107 -0
- package/build/server/chunks/_page.svelte-DwMiUmq6.js.map +1 -0
- package/build/server/chunks/_server.ts-0FuXkx70.js +56 -0
- package/build/server/chunks/_server.ts-0FuXkx70.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-5Q0J3F4-.js +55 -0
- package/build/server/chunks/_server.ts-5Q0J3F4-.js.map +1 -0
- package/build/server/chunks/_server.ts-AJk0xBLJ.js +46 -0
- package/build/server/chunks/_server.ts-AJk0xBLJ.js.map +1 -0
- package/build/server/chunks/_server.ts-AQe1PIYE.js +68 -0
- package/build/server/chunks/_server.ts-AQe1PIYE.js.map +1 -0
- package/build/server/chunks/_server.ts-B0N2Nj7L.js +44 -0
- package/build/server/chunks/_server.ts-B0N2Nj7L.js.map +1 -0
- package/build/server/chunks/_server.ts-BDBJ6fxs.js +67 -0
- package/build/server/chunks/_server.ts-BDBJ6fxs.js.map +1 -0
- package/build/server/chunks/_server.ts-BEeaI665.js +79 -0
- package/build/server/chunks/_server.ts-BEeaI665.js.map +1 -0
- package/build/server/chunks/_server.ts-BM4QuGQf.js +53 -0
- package/build/server/chunks/_server.ts-BM4QuGQf.js.map +1 -0
- package/build/server/chunks/_server.ts-BSIZMZVn.js +50 -0
- package/build/server/chunks/_server.ts-BSIZMZVn.js.map +1 -0
- package/build/server/chunks/_server.ts-BV-6Mum8.js +54 -0
- package/build/server/chunks/_server.ts-BV-6Mum8.js.map +1 -0
- package/build/server/chunks/_server.ts-BdnJF23z.js +44 -0
- package/build/server/chunks/_server.ts-BdnJF23z.js.map +1 -0
- package/build/server/chunks/_server.ts-Bfy4RFhe.js +41 -0
- package/build/server/chunks/_server.ts-Bfy4RFhe.js.map +1 -0
- package/build/server/chunks/_server.ts-Bhh33s6N.js +149 -0
- package/build/server/chunks/_server.ts-Bhh33s6N.js.map +1 -0
- package/build/server/chunks/_server.ts-BiSuK8jN.js +41 -0
- package/build/server/chunks/_server.ts-BiSuK8jN.js.map +1 -0
- package/build/server/chunks/_server.ts-BjiyoKWK.js +41 -0
- package/build/server/chunks/_server.ts-BjiyoKWK.js.map +1 -0
- package/build/server/chunks/_server.ts-BnEeEd9g.js +57 -0
- package/build/server/chunks/_server.ts-BnEeEd9g.js.map +1 -0
- package/build/server/chunks/_server.ts-Bq2dkWvj.js +33 -0
- package/build/server/chunks/_server.ts-Bq2dkWvj.js.map +1 -0
- package/build/server/chunks/_server.ts-Br16AqpO.js +82 -0
- package/build/server/chunks/_server.ts-Br16AqpO.js.map +1 -0
- package/build/server/chunks/_server.ts-BsZrddQT.js +200 -0
- package/build/server/chunks/_server.ts-BsZrddQT.js.map +1 -0
- package/build/server/chunks/_server.ts-Btbzy89u.js +65 -0
- package/build/server/chunks/_server.ts-Btbzy89u.js.map +1 -0
- package/build/server/chunks/_server.ts-BudQlGOx.js +70 -0
- package/build/server/chunks/_server.ts-BudQlGOx.js.map +1 -0
- package/build/server/chunks/_server.ts-BxPYakCb.js +59 -0
- package/build/server/chunks/_server.ts-BxPYakCb.js.map +1 -0
- package/build/server/chunks/_server.ts-ByyRcwFy.js +79 -0
- package/build/server/chunks/_server.ts-ByyRcwFy.js.map +1 -0
- package/build/server/chunks/_server.ts-C7rtn3mH.js +103 -0
- package/build/server/chunks/_server.ts-C7rtn3mH.js.map +1 -0
- package/build/server/chunks/_server.ts-C88qd-ju.js +46 -0
- package/build/server/chunks/_server.ts-C88qd-ju.js.map +1 -0
- package/build/server/chunks/_server.ts-CD6LeslU.js +55 -0
- package/build/server/chunks/_server.ts-CD6LeslU.js.map +1 -0
- package/build/server/chunks/_server.ts-CDlWxA5S.js +60 -0
- package/build/server/chunks/_server.ts-CDlWxA5S.js.map +1 -0
- package/build/server/chunks/_server.ts-CGqrfNlv.js +514 -0
- package/build/server/chunks/_server.ts-CGqrfNlv.js.map +1 -0
- package/build/server/chunks/_server.ts-CGwYZUuw.js +759 -0
- package/build/server/chunks/_server.ts-CGwYZUuw.js.map +1 -0
- package/build/server/chunks/_server.ts-CHVs0yya.js +54 -0
- package/build/server/chunks/_server.ts-CHVs0yya.js.map +1 -0
- package/build/server/chunks/_server.ts-CMEY6oQe.js +121 -0
- package/build/server/chunks/_server.ts-CMEY6oQe.js.map +1 -0
- package/build/server/chunks/_server.ts-CS73tiTY.js +63 -0
- package/build/server/chunks/_server.ts-CS73tiTY.js.map +1 -0
- package/build/server/chunks/_server.ts-CWwgmo8z.js +33 -0
- package/build/server/chunks/_server.ts-CWwgmo8z.js.map +1 -0
- package/build/server/chunks/_server.ts-CXzZeGlQ.js +55 -0
- package/build/server/chunks/_server.ts-CXzZeGlQ.js.map +1 -0
- package/build/server/chunks/_server.ts-C_kseo_y.js +72 -0
- package/build/server/chunks/_server.ts-C_kseo_y.js.map +1 -0
- package/build/server/chunks/_server.ts-Cbk-UThV.js +73 -0
- package/build/server/chunks/_server.ts-Cbk-UThV.js.map +1 -0
- package/build/server/chunks/_server.ts-CboRRTK1.js +139 -0
- package/build/server/chunks/_server.ts-CboRRTK1.js.map +1 -0
- package/build/server/chunks/_server.ts-CgD8-EFl.js +52 -0
- package/build/server/chunks/_server.ts-CgD8-EFl.js.map +1 -0
- package/build/server/chunks/_server.ts-Ci-q0BiD.js +79 -0
- package/build/server/chunks/_server.ts-Ci-q0BiD.js.map +1 -0
- package/build/server/chunks/_server.ts-Cn7ahHlk.js +44 -0
- package/build/server/chunks/_server.ts-Cn7ahHlk.js.map +1 -0
- package/build/server/chunks/_server.ts-Cy36-qGT.js +60 -0
- package/build/server/chunks/_server.ts-Cy36-qGT.js.map +1 -0
- package/build/server/chunks/_server.ts-CyFZ9OZQ.js +97 -0
- package/build/server/chunks/_server.ts-CyFZ9OZQ.js.map +1 -0
- package/build/server/chunks/_server.ts-D-UAqhor.js +33 -0
- package/build/server/chunks/_server.ts-D-UAqhor.js.map +1 -0
- package/build/server/chunks/_server.ts-D1cb1hmF.js +90 -0
- package/build/server/chunks/_server.ts-D1cb1hmF.js.map +1 -0
- package/build/server/chunks/_server.ts-D33gvU5B.js +65 -0
- package/build/server/chunks/_server.ts-D33gvU5B.js.map +1 -0
- package/build/server/chunks/_server.ts-DDwiNChJ.js +88 -0
- package/build/server/chunks/_server.ts-DDwiNChJ.js.map +1 -0
- package/build/server/chunks/_server.ts-DEnxvwcJ.js +46 -0
- package/build/server/chunks/_server.ts-DEnxvwcJ.js.map +1 -0
- package/build/server/chunks/_server.ts-DHXmcRrP.js +41 -0
- package/build/server/chunks/_server.ts-DHXmcRrP.js.map +1 -0
- package/build/server/chunks/_server.ts-DQxY-pHZ.js +64 -0
- package/build/server/chunks/_server.ts-DQxY-pHZ.js.map +1 -0
- package/build/server/chunks/_server.ts-DXNJ2LJu.js +83 -0
- package/build/server/chunks/_server.ts-DXNJ2LJu.js.map +1 -0
- package/build/server/chunks/_server.ts-Dbly1Fe-.js +96 -0
- package/build/server/chunks/_server.ts-Dbly1Fe-.js.map +1 -0
- package/build/server/chunks/_server.ts-DffjWMNC.js +53 -0
- package/build/server/chunks/_server.ts-DffjWMNC.js.map +1 -0
- package/build/server/chunks/_server.ts-Di-8UJYw.js +40 -0
- package/build/server/chunks/_server.ts-Di-8UJYw.js.map +1 -0
- package/build/server/chunks/_server.ts-DsEzCr9k.js +109 -0
- package/build/server/chunks/_server.ts-DsEzCr9k.js.map +1 -0
- package/build/server/chunks/_server.ts-DwXd92Ow.js +63 -0
- package/build/server/chunks/_server.ts-DwXd92Ow.js.map +1 -0
- package/build/server/chunks/_server.ts-DwjjO7L5.js +41 -0
- package/build/server/chunks/_server.ts-DwjjO7L5.js.map +1 -0
- package/build/server/chunks/_server.ts-DyEbcQS0.js +62 -0
- package/build/server/chunks/_server.ts-DyEbcQS0.js.map +1 -0
- package/build/server/chunks/_server.ts-HxcM6xQA.js +70 -0
- package/build/server/chunks/_server.ts-HxcM6xQA.js.map +1 -0
- package/build/server/chunks/_server.ts-JItoNB1Z.js +57 -0
- package/build/server/chunks/_server.ts-JItoNB1Z.js.map +1 -0
- package/build/server/chunks/_server.ts-KpT_vKKo.js +77 -0
- package/build/server/chunks/_server.ts-KpT_vKKo.js.map +1 -0
- package/build/server/chunks/_server.ts-WbY7XmtT.js +157 -0
- package/build/server/chunks/_server.ts-WbY7XmtT.js.map +1 -0
- package/build/server/chunks/_server.ts-Yy0BWsSd.js +70 -0
- package/build/server/chunks/_server.ts-Yy0BWsSd.js.map +1 -0
- package/build/server/chunks/_server.ts-b9yNYKW6.js +49 -0
- package/build/server/chunks/_server.ts-b9yNYKW6.js.map +1 -0
- package/build/server/chunks/_server.ts-bAJXjaCc.js +42 -0
- package/build/server/chunks/_server.ts-bAJXjaCc.js.map +1 -0
- package/build/server/chunks/_server.ts-cwRl-tZ-.js +40 -0
- package/build/server/chunks/_server.ts-cwRl-tZ-.js.map +1 -0
- package/build/server/chunks/_server.ts-hMTx0DC3.js +159 -0
- package/build/server/chunks/_server.ts-hMTx0DC3.js.map +1 -0
- package/build/server/chunks/_server.ts-l_HoZ2_I.js +163 -0
- package/build/server/chunks/_server.ts-l_HoZ2_I.js.map +1 -0
- package/build/server/chunks/_server.ts-uLRX2uy0.js +107 -0
- package/build/server/chunks/_server.ts-uLRX2uy0.js.map +1 -0
- package/build/server/chunks/_server.ts-uWfb47S6.js +204 -0
- package/build/server/chunks/_server.ts-uWfb47S6.js.map +1 -0
- package/build/server/chunks/addon-helpers-Bnj3aKJ2.js +49 -0
- package/build/server/chunks/addon-helpers-Bnj3aKJ2.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-CEYPfvQh.js +121 -0
- package/build/server/chunks/config-CEYPfvQh.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-sGFTjRfy.js +20 -0
- package/build/server/chunks/docker-sGFTjRfy.js.map +1 -0
- package/build/server/chunks/endpoints-L7Wjvq44.js +340 -0
- package/build/server/chunks/endpoints-L7Wjvq44.js.map +1 -0
- package/build/server/chunks/environment-BnT49Gi3.js +36 -0
- package/build/server/chunks/environment-BnT49Gi3.js.map +1 -0
- package/build/server/chunks/error.svelte-PJnhZZCy.js +16 -0
- package/build/server/chunks/error.svelte-PJnhZZCy.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-5jd3ccud.js +226 -0
- package/build/server/chunks/helpers-5jd3ccud.js.map +1 -0
- package/build/server/chunks/hooks.server-Al9-eO5K.js +82 -0
- package/build/server/chunks/hooks.server-Al9-eO5K.js.map +1 -0
- package/build/server/chunks/http-D5xo_m60.js +31 -0
- package/build/server/chunks/http-D5xo_m60.js.map +1 -0
- package/build/server/chunks/internal-CJBOAkaQ.js +1544 -0
- package/build/server/chunks/internal-CJBOAkaQ.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-UKTSVAC0.js +529 -0
- package/build/server/chunks/setup-deploy-UKTSVAC0.js.map +1 -0
- package/build/server/chunks/src-FpMyngcw.js +14064 -0
- package/build/server/chunks/src-FpMyngcw.js.map +1 -0
- package/build/server/chunks/state-BI-lJPhE.js +203 -0
- package/build/server/chunks/state-BI-lJPhE.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/chunks/voice-state.svelte-CQp8u0bn.js +437 -0
- package/build/server/chunks/voice-state.svelte-CQp8u0bn.js.map +1 -0
- package/build/server/index.js +4359 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +570 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +61 -0
package/README.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# packages/ui
|
|
2
|
+
|
|
3
|
+
Optional SvelteKit UI and API for OpenPalm.
|
|
4
|
+
OpenPalm remains compose-first and manual-first; the admin addon is a convenience layer for inspecting state and performing stack actions through Docker Socket Proxy.
|
|
5
|
+
|
|
6
|
+
## Responsibilities
|
|
7
|
+
|
|
8
|
+
- Web UI for stack status, addons, connections, and automations
|
|
9
|
+
- Authenticated `/admin/*` API used by the UI and assistant tools
|
|
10
|
+
- Thin control-plane consumer built on `@openpalm/lib`
|
|
11
|
+
- Reads the shipped addon catalog from `registry/addons/` and enabled runtime overlays from `stack/addons/`
|
|
12
|
+
- Exposes addon schema details and points operators to `knowledge/env/user.env` for values
|
|
13
|
+
|
|
14
|
+
## Notes on internals
|
|
15
|
+
|
|
16
|
+
- Some module names still use historical terms like `staging`
|
|
17
|
+
- The current runtime model is direct write + Docker Compose over `~/.openpalm/`
|
|
18
|
+
- `registry/` is the shipped catalog source; `stack/addons/` are active runtime addon overlays; `knowledge/tasks/` holds active AKM task files
|
|
19
|
+
- Compose overlays under `stack/addons/` are deployment truth; admin does not replace that model
|
|
20
|
+
|
|
21
|
+
## Structure
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
src/
|
|
25
|
+
├── lib/server/ # server-side wrappers around @openpalm/lib + admin helpers
|
|
26
|
+
├── lib/components/ # Svelte UI components
|
|
27
|
+
└── routes/admin/ # admin API endpoints
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Development
|
|
31
|
+
|
|
32
|
+
The recommended local-dev loop uses Vite HMR pointed at an isolated
|
|
33
|
+
`.dev/` `OP_HOME` so your real install at `~/.openpalm/` is never touched.
|
|
34
|
+
|
|
35
|
+
### Quick start: `ui:dev:isolated` against `.dev/`
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Once, from repo root — seeds .dev/ with stack.env, dev login password,
|
|
39
|
+
# and offset ports. Idempotent; safe to re-run after stack.env changes.
|
|
40
|
+
bun run dev:setup
|
|
41
|
+
|
|
42
|
+
# Iterate:
|
|
43
|
+
bun run ui:dev:isolated
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This is `OP_HOME=$(pwd)/.dev vite dev --port 8100` under the hood. Vite
|
|
47
|
+
binds to **`http://localhost:8100/`** — the port matches the host
|
|
48
|
+
allowlist (`helpers.ts:checkHostHeader` accepts only the configured
|
|
49
|
+
`ADMIN_PORT`, default `8100`); using Vite's default 5173 would 400 on
|
|
50
|
+
every request.
|
|
51
|
+
|
|
52
|
+
**Login**: the password lives in `.dev/knowledge/secrets/op_ui_login_password`:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
tr -d '\n' < .dev/knowledge/secrets/op_ui_login_password
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Assistant URL**: by default `.dev/knowledge/env/stack.env` sets
|
|
59
|
+
`OP_ASSISTANT_PORT=3800` — so the proxy reaches **your existing prod
|
|
60
|
+
assistant container** (no second stack required for UI iteration).
|
|
61
|
+
If you want full isolation, spin up the dev compose stack alongside:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
bun run dev:stack
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
That brings up a separate assistant/guardian on the dev ports
|
|
68
|
+
(8100/3800/8180 mapped to the dev project) and the UI's proxy still
|
|
69
|
+
hits `localhost:3800` — same URL, isolated containers via Docker
|
|
70
|
+
project name.
|
|
71
|
+
|
|
72
|
+
### Why isolated?
|
|
73
|
+
|
|
74
|
+
`OP_HOME=$(pwd)/.dev` keeps **every** filesystem write the dev server
|
|
75
|
+
might make (`config/`, `data/`, `knowledge/`, `workspace/`) inside the gitignored
|
|
76
|
+
`.dev/` tree. `~/.openpalm/` is your production install and the
|
|
77
|
+
[heightened-caution paths in CLAUDE.md](../../CLAUDE.md) forbid touching
|
|
78
|
+
it during dev work.
|
|
79
|
+
|
|
80
|
+
### Iteration tips
|
|
81
|
+
|
|
82
|
+
- **HMR works**: edit `.svelte` / `.ts` → page reloads in <1s.
|
|
83
|
+
- **Mic works**: Vite serves a real browser context, so the Web Speech
|
|
84
|
+
API isn't gated behind Electron's bundled Chromium. The MediaRecorder
|
|
85
|
+
fallback in `voice-state.svelte.ts` exercises the same `/api/transcribe`
|
|
86
|
+
path the Electron app uses — useful for verifying STT end-to-end.
|
|
87
|
+
- **Switching to the prod build**: `bun run ui:build` produces
|
|
88
|
+
`packages/ui/build/` which can be swapped into `~/.openpalm/data/ui/`
|
|
89
|
+
for live testing in the Electron app.
|
|
90
|
+
|
|
91
|
+
### Other variants
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Vite HMR with no .dev (default OP_HOME = ~/.openpalm — touches prod, AVOID):
|
|
95
|
+
bun run ui:dev
|
|
96
|
+
|
|
97
|
+
# Run the Electron app in dev mode (no HMR; rebuilds UI + bundles main.ts):
|
|
98
|
+
bun run electron:dev
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Type / unit / build checks
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
bun run ui:check # svelte-check + tsc
|
|
105
|
+
bun run ui:test:unit # vitest
|
|
106
|
+
bun run ui:build # production SvelteKit build
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## API auth
|
|
110
|
+
|
|
111
|
+
Protected endpoints require an `op_session` cookie. The browser obtains the
|
|
112
|
+
cookie by POSTing the operator password to `/admin/auth/login`. The legacy
|
|
113
|
+
`x-admin-token` / `Authorization: Bearer` header fallbacks were removed in
|
|
114
|
+
Phase 2 of `docs/technical/auth-and-proxy-refactor-plan.md`.
|
|
115
|
+
|
|
116
|
+
In a normal install the source of truth for the password is
|
|
117
|
+
`~/.openpalm/knowledge/secrets/op_ui_login_password`. Local dev with
|
|
118
|
+
`bun run ui:dev:isolated` reads `OP_UI_LOGIN_PASSWORD` from the process
|
|
119
|
+
environment seeded by the dev setup helpers.
|
|
120
|
+
|
|
121
|
+
## Key environment variables
|
|
122
|
+
|
|
123
|
+
| Variable | Purpose |
|
|
124
|
+
|---|---|
|
|
125
|
+
| `OP_HOME` | OpenPalm root. Prod: `~/.openpalm`. Dev: `$(pwd)/.dev` via `ui:dev:isolated`. |
|
|
126
|
+
| `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. |
|
|
127
|
+
| `OP_OPENCODE_URL` / `OP_ASSISTANT_PORT` | Where the proxy forwards `/proxy/assistant/*`. Default `http://localhost:3800`. |
|
|
128
|
+
| `OP_OPENCODE_PASSWORD` | Basic-auth password for OpenCode endpoints. Empty in dev (matches the `OPENCODE_AUTH=false` default). |
|
|
129
|
+
| `DOCKER_HOST` | Docker Socket Proxy URL inside the addon network. |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.11.0-rc.2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--color-primary:#ff9d00;--color-primary-hover:#e68a00;--color-primary-subtle:#ff9d0014;--color-success:#40c057;--color-success-bg:#40c0571a;--color-success-border:#40c05740;--color-danger:#fa5252;--color-danger-bg:#fa52521a;--color-warning:#fd7e14;--color-warning-bg:#fd7e141a;--color-info:#339af0;--color-info-bg:#339af014;--color-pending:#868e96;--color-pending-bg:#868e961a;--color-caution:#e67700;--color-caution-bg:#e6770014;--color-bg:#fff;--color-bg-secondary:#f9fafb;--color-bg-tertiary:#f3f4f6;--color-surface:#fffffffa;--color-surface-hover:#f9fafb;--color-surface-alt:#f6f8fa;--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-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-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;--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)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}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-primary);border-color:var(--color-primary);color:#000}.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);text-transform:uppercase;letter-spacing:.05em;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);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:8px 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-primary);border-color:var(--color-primary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-primary-subtle,#50c87814)}.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{font-size:var(--text-xs);padding:4px 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:40px;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,#50c87826);outline:none}.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);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;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-xs);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{align-items:center;gap:var(--space-2);display:flex}.panel-body{padding:var(--space-5)}.panel-body--flush{padding:0}.badge{font-size:10px;font-weight:var(--font-semibold);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em;align-items:center;padding:1px 6px;display:inline-flex}.badge-enabled{background:var(--color-success-bg);color:var(--color-success)}.badge-disabled{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.badge-connected,.badge-recommended,.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-idle{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.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
|
+
.tabs.svelte-1wwzsr0{gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);top:var(--nav-height);z-index:40;background:var(--color-bg-secondary);display:flex;position:sticky}@media (width<=480px){.tabs.svelte-1wwzsr0:after{content:"";background:linear-gradient(to right, transparent, var(--color-bg-secondary));pointer-events:none;flex-shrink:0;align-self:stretch;width:40px;position:sticky;right:0}}.tab.svelte-1wwzsr0{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;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);border-bottom-color:var(--color-primary)}@media (width<=768px){.tab.svelte-1wwzsr0{padding:var(--space-2) var(--space-3)}.tab-active.svelte-1wwzsr0{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:var(--font-semibold)}}@media (width<=480px){.tabs.svelte-1wwzsr0{-webkit-overflow-scrolling:touch;overflow-x:auto}}.health-summary.svelte-1ob1zsm{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-6);border:1px solid #0000;display:flex}.health-summary--ok.svelte-1ob1zsm{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.health-summary--warning.svelte-1ob1zsm{background:var(--color-warning-bg);color:var(--color-text);border-color:var(--color-warning)}.health-summary--unknown.svelte-1ob1zsm{background:var(--color-bg-secondary);color:var(--color-text-secondary);border-color:var(--color-border)}.health-dot.svelte-1ob1zsm{border-radius:50%;flex-shrink:0;width:8px;height:8px}.health-summary--ok.svelte-1ob1zsm .health-dot:where(.svelte-1ob1zsm){background:var(--color-success)}.health-summary--warning.svelte-1ob1zsm .health-dot:where(.svelte-1ob1zsm){background:var(--color-warning)}.health-summary--unknown.svelte-1ob1zsm .health-dot:where(.svelte-1ob1zsm){background:var(--color-border)}.btn-warning.svelte-1ob1zsm{background:var(--color-warning-bg);color:var(--color-text);border:1px solid var(--color-warning)}.btn-warning.svelte-1ob1zsm:hover:not(:disabled){background:var(--color-warning)}.status-row.svelte-1ob1zsm{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.status-card.svelte-1ob1zsm{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);justify-content:space-between;align-items:center;display:flex}.status-card.svelte-1ob1zsm:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.status-card-header.svelte-1ob1zsm{align-items:center;gap:var(--space-4);display:flex}.status-icon.svelte-1ob1zsm{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.status-icon--success.svelte-1ob1zsm{background:var(--color-success-bg);color:var(--color-success)}.status-icon--danger.svelte-1ob1zsm{background:var(--color-danger-bg);color:var(--color-danger)}.status-icon--idle.svelte-1ob1zsm{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.status-card-info.svelte-1ob1zsm{flex-direction:column;display:flex}.status-card-name.svelte-1ob1zsm{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.status-card-value.svelte-1ob1zsm{font-size:var(--text-xs);margin-top:2px}.status-text--success.svelte-1ob1zsm{color:var(--color-success)}.status-text--danger.svelte-1ob1zsm{color:var(--color-danger)}.status-text--idle.svelte-1ob1zsm{color:var(--color-text-tertiary)}.status-indicator.svelte-1ob1zsm{border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-indicator--success.svelte-1ob1zsm{background:var(--color-success);box-shadow:0 0 0 3px var(--color-success-bg)}.status-indicator--danger.svelte-1ob1zsm{background:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-bg)}.status-indicator--idle.svelte-1ob1zsm{background:var(--color-border);box-shadow:0 0 0 3px var(--color-bg-tertiary)}.output-section.svelte-1ob1zsm{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-8);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}.panel-grid.svelte-1ob1zsm{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));display:grid}.action-list.svelte-1ob1zsm{gap:var(--space-2);flex-direction:column;display:flex}.action-item.svelte-1ob1zsm{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-sans);text-align:left;color:inherit;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;text-decoration:none;display:flex}.action-item.svelte-1ob1zsm:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border)}.action-item.svelte-1ob1zsm:disabled{opacity:.5;cursor:not-allowed}.action-icon.svelte-1ob1zsm{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.action-icon--blue.svelte-1ob1zsm{background:var(--color-info-bg);color:var(--color-info)}.action-icon--amber.svelte-1ob1zsm{background:var(--color-primary-subtle);color:var(--color-primary)}.action-icon--purple.svelte-1ob1zsm{color:#7c3aed;background:#ede9fe}.action-content.svelte-1ob1zsm{flex-direction:column;flex:1;min-width:0;display:flex}.action-title.svelte-1ob1zsm{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.action-desc.svelte-1ob1zsm{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:1px}.action-hint.svelte-1ob1zsm{color:var(--color-text-tertiary);margin-top:2px;font-size:.6875rem;font-style:italic}.action-arrow.svelte-1ob1zsm{color:var(--color-text-tertiary);flex-shrink:0}.info-grid.svelte-1ob1zsm{flex-direction:column;gap:0;display:flex}.info-item.svelte-1ob1zsm{padding:var(--space-3) 0;border-bottom:1px solid var(--color-bg-tertiary);justify-content:space-between;align-items:center;display:flex}.info-item.svelte-1ob1zsm:last-child{border-bottom:none}.info-label.svelte-1ob1zsm{font-size:var(--text-sm);color:var(--color-text-secondary)}.info-value.svelte-1ob1zsm{font-size:var(--text-sm);font-weight:var(--font-medium)}.info-mono.svelte-1ob1zsm{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary)}.channel-list.svelte-1ob1zsm{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}@media (width<=768px){.panel-grid.svelte-1ob1zsm,.status-row.svelte-1ob1zsm{grid-template-columns:1fr}}.version-section.svelte-1ob1zsm{gap:var(--space-2);flex-direction:column;display:flex}.version-row.svelte-1ob1zsm{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.version-label.svelte-1ob1zsm{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.version-value.svelte-1ob1zsm{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-1ob1zsm{gap:var(--space-2);display:flex}.version-input.svelte-1ob1zsm{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-1ob1zsm:disabled{opacity:.5;cursor:not-allowed}.version-hint.svelte-1ob1zsm{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;line-height:1.5}.version-divider.svelte-1ob1zsm{background:var(--color-border);height:1px;margin:var(--space-3) 0}.version-restart-prompt.svelte-1ob1zsm{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-1ob1zsm{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-1ob1zsm:disabled{opacity:.5;cursor:not-allowed}.version-select-skeleton.svelte-1ob1zsm{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-1ob1zsm-skeleton-shimmer}@keyframes svelte-1ob1zsm-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.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-text-secondary);text-transform:uppercase;letter-spacing:.04em;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)}.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{border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;font-size:10px}.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:uppercase;letter-spacing:.04em;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:.6875rem;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:1px 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{color:var(--color-text-tertiary);font-size:.6875rem}.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:uppercase;letter-spacing:.04em}.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);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;font-size:11px;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:10px}}.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-2);margin-top:var(--space-3);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}.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);text-transform:uppercase;letter-spacing:.05em;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.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-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)}.badge--on.svelte-1844cb2{background:var(--color-success-subtle,#22c55e1f);color:var(--color-success,#16a34a);border-color:var(--color-success-border,#22c55e4d)}.host-akm-status.svelte-1844cb2{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.host-akm-path.svelte-1844cb2{font-size:var(--text-xs);color:var(--color-text-secondary);word-break:break-all}.host-akm-actions.svelte-1844cb2{gap:var(--space-2);flex-flow:wrap;align-items:center}.control-label--checkbox.svelte-1844cb2{align-items:center;gap:var(--space-2);text-transform:none;letter-spacing:0;font-weight:var(--font-normal,400);font-size:var(--text-sm);color:var(--color-text-primary);display:flex}.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);text-transform:uppercase;letter-spacing:.05em}.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}.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-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);text-transform:uppercase;letter-spacing:.05em;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(100vh - var(--nav-height));background:var(--color-bg);width:100%}.opencode-frame.svelte-1z0msvj{border:none;width:100%;height:100%;display:block}
|
|
Binary file
|
|
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{flex-direction:column;max-width:80%;display:flex}.message-user.svelte-1ebqwt{align-self:flex-end;align-items:flex-end}.message-assistant.svelte-1ebqwt{align-self:flex-start;align-items:flex-start}.message-bubble.svelte-1ebqwt{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){background:var(--color-primary);color:#000;border-bottom-right-radius:var(--radius-sm)}.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-tertiary)}.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:40px;height:40px;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-layout.svelte-23dtxz{height:calc(100dvh - var(--nav-height));flex-direction:column;margin:0;display:flex}.messages-area.svelte-23dtxz{gap:var(--space-3);padding:var(--space-4) var(--space-6);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.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
|
+
.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-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}.switcher.svelte-1gh51ee{position:relative}.trigger.svelte-1gh51ee{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface,#ffffffb3);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;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-1gh51ee:hover:not(:disabled){background:var(--color-surface-hover,#ffffffe6)}.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}@media (width<=600px){.trigger.svelte-1gh51ee{justify-content:center;gap:0;width:32px;max-width:32px;padding:0}.trigger-icon.svelte-1gh51ee{display:inline-block}.dot.svelte-1gh51ee,.label.svelte-1gh51ee,.caret.svelte-1gh51ee{display:none}}.menu.svelte-1gh51ee{z-index:100;background:var(--color-bg,#fff);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:min(280px,100vw - 24px);max-width:min(360px,100vw - 24px);padding:var(--space-2);position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #0000001f}@media (width<=600px){.menu.svelte-1gh51ee{top:calc(var(--nav-height) + 6px);right:var(--space-3);position:fixed}}.menu-header.svelte-1gh51ee{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.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-surface-hover,#0000000a)}.menu-item.svelte-1gh51ee:disabled{opacity:.6;cursor:progress}.menu-item.active.svelte-1gh51ee{background:var(--color-surface-hover,#0000000a)}.check.svelte-1gh51ee{width:14px;color:var(--color-accent,#2563eb);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-muted);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-accent,#2563eb);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,#ffffffb3);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;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-1owsj0q:hover{background:var(--color-surface-hover,#ffffffe6)}.trigger-icon.svelte-1owsj0q{color:var(--color-text-secondary);flex-shrink:0}.dot.svelte-1owsj0q{background:var(--color-text-muted,#9ca3af);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}@media (width<=600px){.trigger.svelte-1owsj0q{justify-content:center;gap:0;width:32px;max-width:32px;padding:0}.label.svelte-1owsj0q,.caret.svelte-1owsj0q,.dot.svelte-1owsj0q{display:none}}.menu.svelte-1owsj0q{z-index:100;background:var(--color-bg,#fff);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:min(300px,100vw - 24px);max-width:min(380px,100vw - 24px);padding:var(--space-2);position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #0000001f}@media (width<=600px){.menu.svelte-1owsj0q{top:calc(var(--nav-height) + 6px);right:var(--space-3);position:fixed}}.menu-header.svelte-1owsj0q{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.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-surface-hover,#0000000a)}.menu-item.svelte-1owsj0q:disabled{opacity:.6;cursor:not-allowed}.menu-item.active.svelte-1owsj0q{background:var(--color-surface-hover,#0000000a)}.new-btn.svelte-1owsj0q{color:var(--color-accent,#2563eb);font-weight:500}.check.svelte-1owsj0q{text-align:center;width:14px;color:var(--color-accent,#2563eb);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-muted)}.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-muted);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:#fff}.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-muted);background:var(--color-bg-tertiary,#0000000a);border-radius:var(--radius-sm,6px)}.show-all.svelte-1owsj0q{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-accent,#2563eb);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-surface-hover,#0000000a)}.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}}.navbar.svelte-rfuq4y{z-index:50;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;position:sticky;top:0}.navbar-inner.svelte-rfuq4y{width:100%;padding:0 var(--space-6);height:var(--nav-height);align-items:center;gap:var(--space-4);display:flex}.navbar-brand.svelte-rfuq4y{margin-right:var(--space-2)}.navbar-actions.svelte-rfuq4y{margin-left:auto}.navbar-brand.svelte-rfuq4y{align-items:center;gap:var(--space-3);min-width:0;display:flex}.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}.brand-text.svelte-rfuq4y{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);letter-spacing:-.01em}.navbar-actions.svelte-rfuq4y{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.version-badge.svelte-rfuq4y{font-size:calc(var(--text-xs) - 2.5pt);font-weight:var(--font-medium);font-family:var(--font-mono);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);border-radius:var(--radius-full);letter-spacing:.02em;padding:2px 8px}.navbar-nav.svelte-rfuq4y{align-items:center;gap:var(--space-1);display:flex}.nav-btn.svelte-rfuq4y{align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:1px solid #0000;text-decoration:none;display:inline-flex}.nav-btn.svelte-rfuq4y:hover{color:var(--color-text);background:var(--color-surface-hover)}.nav-btn.svelte-rfuq4y:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.nav-btn.active.svelte-rfuq4y{color:var(--color-primary);background:var(--color-bg-tertiary);border-color:var(--color-border)}@media (width<=768px){.navbar-inner.svelte-rfuq4y{padding:0 var(--space-4)}}@media (width<=600px){.nav-label.svelte-rfuq4y{display:none}.nav-btn.svelte-rfuq4y{padding:0 var(--space-2)}}@media (width<=480px){.version-badge.svelte-rfuq4y{display:none}.brand-text.svelte-rfuq4y{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@media (width<=360px){.brand-text.svelte-rfuq4y{display:none}.navbar-inner.svelte-rfuq4y{padding:0 var(--space-3)}}.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
|
+
.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-tertiary)}.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 @@
|
|
|
1
|
+
var e=class{constructor(e,t){this.status=e,typeof t==`string`?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},t=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},n=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new TextEncoder;function r(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}export{n as i,e as n,t as r,r as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=Array.isArray,r=Array.prototype.indexOf,i=Array.prototype.includes,a=Array.from,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyDescriptors,l=Object.prototype,u=Array.prototype,d=Object.getPrototypeOf,f=Object.isExtensible,p=()=>{};function m(e){for(var t=0;t<e.length;t++)e[t]()}function h(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var g=1024,_=2048,v=4096,y=8192,ee=16384,b=32768,x=1<<25,te=65536,ne=1<<18,re=1<<19,ie=1<<20,ae=1<<25,oe=65536,se=1<<21,ce=1<<22,le=1<<23,ue=Symbol(`$state`),de=Symbol(`legacy props`),fe=Symbol(``),pe=Symbol(`attributes`),me=Symbol(`class`),he=Symbol(`style`),ge=Symbol(`text`),_e=Symbol(`form reset`),ve=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ye=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function be(e){throw Error(`https://svelte.dev/e/experimental_async_required`)}function xe(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Se(){throw Error(`https://svelte.dev/e/missing_context`)}function Ce(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function we(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function Te(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Ee(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function De(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Oe(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function ke(){throw Error(`https://svelte.dev/e/fork_discarded`)}function Ae(){throw Error(`https://svelte.dev/e/fork_timing`)}function je(){throw Error(`https://svelte.dev/e/get_abort_signal_outside_reaction`)}function Me(){throw Error(`https://svelte.dev/e/hydration_failed`)}function Ne(e){throw Error(`https://svelte.dev/e/lifecycle_legacy_only`)}function Pe(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Fe(){throw Error(`https://svelte.dev/e/set_context_after_init`)}function Ie(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Le(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Re(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function ze(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Be={},S=Symbol(`uninitialized`),Ve=`http://www.w3.org/1999/xhtml`,He=`http://www.w3.org/2000/svg`,Ue=`http://www.w3.org/1998/Math/MathML`;function We(){console.warn(`https://svelte.dev/e/derived_inert`)}function Ge(e){console.warn(`https://svelte.dev/e/hydratable_missing_but_expected`)}function Ke(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function qe(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Je(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var C=!1;function w(e){C=e}var T;function E(e){if(e===null)throw Ke(),Be;return T=e}function D(){return E(R(T))}function Ye(e){if(C){if(R(T)!==null)throw Ke(),Be;T=e}}function Xe(e=1){if(C){for(var t=e,n=T;t--;)n=R(n);T=n}}function Ze(e=!0){for(var t=0,n=T;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else (r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=R(n);e&&n.remove(),n=i}}function Qe(e){if(!e||e.nodeType!==8)throw Ke(),Be;return e.data}function $e(e){return e===this.v}function et(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function tt(e){return!et(e,this.v)}var O=!1,nt=!1;function rt(){nt=!0}var k=null;function it(e){k=e}function at(){let e={};return[()=>(ct(e)||Se(),ot(e)),t=>st(e,t)]}function ot(e){return pt(`getContext`).get(e)}function st(e,t){let n=pt(`setContext`);if(O){var r=K.f;!U&&r&32&&!k.i||Fe()}return n.set(e,t),t}function ct(e){return pt(`hasContext`).has(e)}function lt(){return pt(`getAllContexts`)}function ut(e,t=!1,n){k={p:k,i:!1,c:null,e:null,s:e,x:null,r:K,l:nt&&!t?{s:null,u:null,$:[]}:null}}function dt(e){var t=k,n=t.e;if(n!==null){t.e=null;for(var r of n)er(r)}return e!==void 0&&(t.x=e),t.i=!0,k=t.p,e??{}}function ft(){return!nt||k!==null&&k.l===null}function pt(e){return k===null&&xe(e),k.c??=new Map(mt(k)||void 0)}function mt(e){let t=e.p;for(;t!==null;){let e=t.c;if(e!==null)return e;t=t.p}return null}var ht=[];function gt(){var e=ht;ht=[],m(e)}function A(e){if(ht.length===0&&!Nt){var t=ht;queueMicrotask(()=>{t===ht&>()})}ht.push(e)}function _t(){for(;ht.length>0;)gt()}function vt(e){var t=K;if(t===null)return U.f|=le,e;if(!(t.f&32768)&&!(t.f&4))throw e;yt(e,t)}function yt(e,t){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}var bt=~(_|v|g);function j(e,t){e.f=e.f&bt|t}function xt(e){e.f&512||e.deps===null?j(e,g):j(e,v)}function St(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=oe,St(t.deps))}function Ct(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),St(e.deps),j(e,g)}var wt=[];function Tt(e,t=p){let n=null,r=new Set;function i(t){if(et(e,t)&&(e=t,n)){let t=!wt.length;for(let t of r)t[1](),wt.push(t,e);if(t){for(let e=0;e<wt.length;e+=2)wt[e][0](wt[e+1]);wt.length=0}}}function a(t){i(t(e))}function o(o,s=p){let c=[o,s];return r.add(c),r.size===1&&(n=t(i,a)||p),o(e),()=>{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}var Et=!1,Dt=!1;function Ot(e){var t=Dt;try{return Dt=!1,[e(),Dt]}finally{Dt=t}}var kt=null,At=null,M=null,jt=null,N=null,Mt=null,Nt=!1,Pt=!1,Ft=null,It=null,Lt=0,Rt=1,zt=class e{id=Rt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#r=new Set;#i=new Set;#a=new Set;#o=0;#s=new Map;#c=null;#l=[];#u=[];#d=new Set;#f=new Set;#p=new Map;#m=new Set;is_fork=!1;#h=!1;#g(){if(this.is_fork)return!0;for(let n of this.#s.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#p.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#p.has(e)||this.#p.set(e,{d:[],m:[]}),this.#m.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#p.get(e);if(n){this.#p.delete(e);for(var r of n.d)j(r,_),t(r);for(r of n.m)j(r,v),t(r)}this.#m.add(e)}#_(){if(this.#e=!0,Lt++>1e3&&(this.#w(),Vt()),!this.#g()){for(let e of this.#d)this.#f.delete(e),j(e,_),this.schedule(e);for(let e of this.#f)j(e,v),this.schedule(e)}let t=this.#l;this.#l=[],this.apply();var n=Ft=[],r=[],i=It=[];for(let e of t)try{this.#v(e,n,r)}catch(t){throw Jt(e),t}if(M=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Ft=null,It=null,this.#g()){this.#x(r),this.#x(n);for(let[e,t]of this.#p)qt(e,t);i.length>0&&M.#_();return}let o=this.#y();if(o){o.#b(this);return}this.#d.clear(),this.#f.clear();for(let e of this.#r)e(this);this.#r.clear(),jt=this,Ht(r),Ht(n),jt=null,this.#c?.resolve();var s=M;if(this.linked&&this.#o===0&&this.#w(),O&&!this.linked&&(this.#S(),M=s),this.#l.length>0){s===null&&(s=this,this.#C());let e=s;e.#l.push(...this.#l.filter(t=>!e.#l.includes(t)))}s!==null&&s.#_()}#v(e,t,n){e.f^=g;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#p.has(r))&&r.fn!==null){a?r.f^=g:i&4?t.push(r):O&&i&16777224?n.push(r):Or(r)&&(i&16&&this.#f.add(r),Nr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve)}let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#f.delete(i),j(i,_),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#w(),M=this,this.#_()}#x(e){for(var t=0;t<e.length;t+=1)Ct(e[t],this.#d,this.#f)}capture(e,t,n=!1){e.v!==S&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),N?.set(e,t)),this.is_fork||(e.v=t)}activate(){M=this}deactivate(){M=null,N=null}flush(){try{Pt=!0,M=this,this.#_()}finally{Lt=0,Mt=null,Ft=null,It=null,Pt=!1,M=null,N=null,gn.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear(),this.#a.clear(),this.#w()}register_created_effect(e){this.#u.push(e)}#S(){this.#w();for(let l=kt;l!==null;l=l.#n){var e=l.id<this.id,t=[];for(let[r,[i,a]]of this.current){if(l.current.has(r)){var n=l.current.get(r)[0];if(e&&i!==n)l.current.set(r,[i,a]);else continue}t.push(r)}if(e)for(let[e,t]of this.async_deriveds){let n=l.async_deriveds.get(e);n&&t.promise.then(n.resolve)}if(l.#e){var r=[...l.current.keys()].filter(e=>!this.current.has(e));if(r.length===0)e&&l.discard();else if(t.length>0){if(e)for(let e of this.#m)l.unskip_effect(e,e=>{e.f&4194320?l.schedule(e):l.#x([e])});l.activate();var i=new Set,a=new Map;for(var o of t)Ut(o,r,i,a);a=new Map;var s=[...l.current.keys()].filter(e=>this.current.has(e)?this.current.get(e)[0]!==e.v:!0);if(s.length>0)for(let e of this.#u)!(e.f&155648)&&Gt(e,s,a)&&(e.f&4194320?(j(e,_),l.schedule(e)):l.#d.add(e));if(l.#l.length>0&&!l.#h){l.apply();for(var c of l.#l)l.#v(c,[],[]);l.#l=[]}l.deactivate()}}}}increment(e,t){if(this.#o+=1,e){let e=this.#s.get(t)??0;this.#s.set(t,e+1)}}decrement(e,t){if(--this.#o,e){let e=this.#s.get(t)??0;e===1?this.#s.delete(t):this.#s.set(t,e-1)}this.#h||(this.#h=!0,A(()=>{this.#h=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#d.add(t);for(let e of t)this.#f.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}on_fork_commit(e){this.#a.add(e)}run_fork_commit_callbacks(){for(let e of this.#a)e(this);this.#a.clear()}settled(){return(this.#c??=h()).promise}static ensure(){if(M===null){let t=M=new e;t.#C(),!Pt&&!Nt&&A(()=>{t.#e||t.flush()})}return M}apply(){if(!O||!this.is_fork&&this.#t===null&&this.#n===null){N=null;return}N=new Map;for(let[e,[t]]of this.current)N.set(e,t);for(let t=kt;t!==null;t=t.#n)if(!(t===this||t.is_fork)){var e=!1;if(t.id<this.id){for(let[n,[,r]]of t.current)if(!r&&this.current.has(n)){e=!0;break}}if(!e)for(let[e,n]of t.previous)N.has(e)||N.set(e,n)}}schedule(e){if(Mt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Ft!==null&&t===K&&(O||(U===null||!(U.f&2))&&!Et))return;if(n&96){if(!(n&1024))return;t.f^=g}}this.#l.push(t)}#C(){At===null?kt=At=this:(At.#n=this,this.#t=At),At=this}#w(){var e=this.#t,t=this.#n;e===null?kt=t:e.#n=t,t===null?At=e:t.#t=e,this.linked=!1}};function Bt(e){var t=Nt;Nt=!0;try{var n;for(e&&(M!==null&&!M.is_fork&&M.flush(),n=e());;){if(_t(),M===null)return n;M.flush()}}finally{Nt=t}}function Vt(){try{Oe()}catch(e){yt(e,Mt)}}var P=null;function Ht(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&Or(r)&&(P=new Set,Nr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&fr(r),P?.size>0)){gn.clear();for(let e of P){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)P.has(n)&&(P.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||Nr(n)}}P.clear()}}P=null}}function Ut(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Ut(i,t,n,r):e&4194320&&!(e&2048)&&Gt(i,t,r)&&(j(i,_),Kt(i))}}function Wt(e,t){if(e.reactions!==null)for(let n of e.reactions){let e=n.f;e&2?Wt(n,t):e&131072&&(j(n,_),t.add(n))}}function Gt(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(let r of e.deps){if(i.call(t,r))return!0;if(r.f&2&&Gt(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function Kt(e){M.schedule(e)}function qt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),j(e,g);for(var n=e.first;n!==null;)qt(n,t),n=n.next}}function Jt(e){j(e,g);for(var t=e.first;t!==null;)Jt(t),t=t.next}function Yt(e){O||be(`fork`),M!==null&&Ae();var t=zt.ensure();t.is_fork=!0,N=new Map;var n=!1,r=t.settled();return Bt(e),{commit:async()=>{if(n){await r;return}t.linked||ke(),n=!0,t.is_fork=!1;for(var[e,[i]]of t.current)e.v=i,e.wv=Dr();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Bt(()=>{var e=new Set;for(var n of t.current.keys())Wt(n,e);_n(e),Cn()}),t.flush(),await r},discard:()=>{for(var e of t.current.keys())e.wv=Dr();!n&&t.linked&&t.discard()}}}function Xt(e){let t=0,n=yn(0),r;return()=>{Zn()&&(Q(n),ar(()=>(t===0&&(r=Rr(()=>e(()=>Tn(n)))),t+=1,()=>{A(()=>{--t,t===0&&(r?.(),r=void 0,Tn(n))})})))}}var Zt=te|re;function Qt(e,t,n,r){new $t(e,t,n,r)}var $t=class{parent;is_pending=!1;transform_error;#e;#t=C?T:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Xt(()=>(this.#m=yn(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=K;t.b=this,t.f|=128,n(e)},this.parent=K.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=sr(()=>{if(C){let e=this.#t;D();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},Zt),C&&(this.#e=T)}#g(){try{this.#a=B(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=B(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=B(()=>e(this.#e)),A(()=>{var e=this.#c=document.createDocumentFragment(),t=I();e.append(t),this.#a=this.#x(()=>B(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,pr(this.#o,()=>{this.#o=null}),this.#b(M))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=B(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();_r(this.#a,e);let t=this.#n.pending;this.#o=B(()=>t(this.#e))}else this.#b(M)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){Ct(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=K,n=U,r=k;q(this.#i),G(this.#i),it(this.#i.ctx);try{return zt.ensure(),e()}catch(e){return vt(e),null}finally{q(t),G(n),it(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&pr(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,A(()=>{this.#d=!1,this.#m&&Sn(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),Q(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;M?.is_fork?(this.#a&&M.skip_effect(this.#a),this.#o&&M.skip_effect(this.#o),this.#s&&M.skip_effect(this.#s),M.on_fork_commit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(V(this.#a),null),this.#o&&=(V(this.#o),null),this.#s&&=(V(this.#s),null),C&&(E(this.#t),Xe(),E(Ze()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Je();return}r=!0,i&&ze(),this.#s!==null&&pr(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){yt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return B(()=>{var t=K;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return yt(e,this.#i.parent),null}}))};A(()=>{var t;try{t=this.transform_error(e)}catch(e){yt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>yt(e,this.#i&&this.#i.parent)):o(t)})}};function en(e,t,n,r){let i=ft()?an:ln;var a=e.filter(e=>!e.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=K,s=tn(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function l(e){if(!(o.f&16384)){s();try{r(e)}catch(e){yt(e,o)}nn()}}var u=rn();if(n.length===0){c.then(()=>l(t.map(i))).finally(u);return}function d(){Promise.all(n.map(e=>sn(e))).then(e=>l([...t.map(i),...e])).catch(e=>yt(e,o)).finally(u)}c?c.then(()=>{s(),d(),nn()}):d()}function tn(){var e=K,t=U,n=k,r=M;return function(i=!0){q(e),G(t),it(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function nn(e=!0){q(null),G(null),it(null),e&&M?.deactivate()}function rn(){var e=K,t=e.b,n=M,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}function an(e){var t=2|_;return K!==null&&(K.f|=re),{ctx:k,deps:null,effects:null,equals:$e,f:t,fn:e,reactions:null,rv:0,v:S,wv:0,parent:K,ac:null}}var on=Symbol(`obsolete`);function sn(e,t,n){let r=K;r===null&&Ce();var i=void 0,a=yn(S),o=!U,s=new Set;return ir(()=>{var t=K,n=h();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ve&&n.reject(e)}).finally(nn)}catch(e){n.reject(e),nn()}var c=M;if(o){if(t.f&32768)var l=rn();if(r.b.is_rendered())c.async_deriveds.get(t)?.reject(on);else for(let e of s.values())e.reject(on);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==on&&(c.activate(),t?(a.f|=le,Sn(a,t)):(a.f&8388608&&(a.f^=le),Sn(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),Qn(()=>{for(let e of s)e.reject(on)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function cn(e){let t=an(e);return O||xr(t),t}function ln(e){let t=an(e);return t.equals=tt,t}function un(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)V(t[n])}}function dn(e){var t,n=K,r=e.parent;if(!H&&r!==null&&e.v!==S&&r.f&24576)return We(),e.v;q(r);try{e.f&=~oe,un(e),t=Ar(e)}finally{q(n)}return t}function fn(e){var t=dn(e);if(!e.equals(t)&&(e.wv=Dr(),(!M?.is_fork||e.deps===null)&&(M===null?e.v=t:(M.capture(e,t,!0),jt?.capture(e,t,!0)),e.deps===null))){j(e,g);return}H||(N===null?xt(e):(Zn()||M?.is_fork)&&N.set(e,t))}function pn(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ve),t.fn!==null&&(t.teardown=p),t.ac=null,Mr(t,0),lr(t))}function mn(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&Nr(t)}var hn=new Set,gn=new Map;function _n(e){hn=e}var vn=!1;function yn(e,t){return{f:0,v:e,reactions:null,equals:$e,rv:0,wv:0}}function bn(e,t){let n=yn(e,t);return xr(n),n}function xn(e,t=!1,n=!0){let r=yn(e);return t||(r.equals=tt),nt&&n&&k!==null&&k.l!==null&&(k.l.s??=[]).push(r),r}function F(e,t,n=!1){return U!==null&&(!W||U.f&131072)&&ft()&&U.f&4325394&&(J===null||!i.call(J,e))&&Re(),Sn(e,n?Dn(t):t,It)}function Sn(e,t,n=null){if(!e.equals(t)){gn.set(e,H?t:e.v);var r=zt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&dn(t),N===null&&xt(t)}e.wv=Dr(),En(e,_,n),ft()&&K!==null&&K.f&1024&&!(K.f&96)&&(Z===null?Sr([e]):Z.push(e)),!r.is_fork&&hn.size>0&&!vn&&Cn()}return t}function Cn(){vn=!1;for(let e of hn){e.f&1024&&j(e,v);let t;try{t=Or(e)}catch{t=!0}t&&Nr(e)}hn.clear()}function wn(e,t=1){var n=Q(e),r=t===1?n++:n--;return F(e,n),r}function Tn(e){F(e,e.v+1)}function En(e,t,n){var r=e.reactions;if(r!==null)for(var i=ft(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===K)){var l=(c&_)===0;if(l&&j(s,t),c&131072)hn.add(s);else if(c&2){var u=s;N?.delete(u),c&65536||(c&512&&(K===null||!(K.f&2097152))&&(s.f|=oe),En(u,v,n))}else if(l){var d=s;c&16&&P!==null&&P.add(d),n===null?Kt(d):n.push(d)}}}}function Dn(e){if(typeof e!=`object`||!e||ue in e)return e;let t=d(e);if(t!==l&&t!==u)return e;var r=new Map,i=n(e),a=bn(0),o=null,c=Tr,f=e=>{if(Tr===c)return e();var t=U,n=Tr;G(null),Er(c);var r=e();return G(t),Er(n),r};return i&&r.set(`length`,bn(e.length,o)),new Proxy(e,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&Ie();var i=r.get(t);return i===void 0?f(()=>{var e=bn(n.value,o);return r.set(t,e),e}):F(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>bn(S,o));r.set(t,e),Tn(a)}}else F(n,S),Tn(a);return!0},get(t,n,i){if(n===ue)return e;var a=r.get(n),c=n in t;if(a===void 0&&(!c||s(t,n)?.writable)&&(a=f(()=>bn(Dn(c?t[n]:S),o)),r.set(n,a)),a!==void 0){var l=Q(a);return l===S?void 0:l}return Reflect.get(t,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=Q(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==S)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===ue)return!0;var n=r.get(t),i=n!==void 0&&n.v!==S||Reflect.has(e,t);return(n!==void 0||K!==null&&(!i||s(e,t)?.writable))&&(n===void 0&&(n=f(()=>bn(i?Dn(e[t]):S,o)),r.set(t,n)),Q(n)===S)?!1:i},set(e,t,n,c){var l=r.get(t),u=t in e;if(i&&t===`length`)for(var d=n;d<l.v;d+=1){var p=r.get(d+``);p===void 0?d in e&&(p=f(()=>bn(S,o)),r.set(d+``,p)):F(p,S)}if(l===void 0)(!u||s(e,t)?.writable)&&(l=f(()=>bn(void 0,o)),F(l,Dn(n)),r.set(t,l));else{u=l.v!==S;var m=f(()=>Dn(n));F(l,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(c,n),!u){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&F(g,_+1)}Tn(a)}return!0},ownKeys(e){Q(a);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==S});for(var[n,i]of r)i.v!==S&&!(n in e)&&t.push(n);return t},setPrototypeOf(){Le()}})}function On(e){try{if(typeof e==`object`&&e&&ue in e)return e[ue]}catch{}return e}function kn(e,t){return Object.is(On(e),On(t))}new Set([`copyWithin`,`fill`,`pop`,`push`,`reverse`,`shift`,`sort`,`splice`,`unshift`]);var An,jn,Mn,Nn,Pn;function Fn(){if(An===void 0){An=window,jn=document,Mn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Nn=s(t,`firstChild`).get,Pn=s(t,`nextSibling`).get,f(e)&&(e[me]=void 0,e[pe]=null,e[he]=void 0,e.__e=void 0),f(n)&&(n[ge]=void 0)}}function I(e=``){return document.createTextNode(e)}function L(e){return Nn.call(e)}function R(e){return Pn.call(e)}function In(e,t){if(!C)return L(e);var n=L(T);if(n===null)n=T.appendChild(I());else if(t&&n.nodeType!==3){var r=I();return n?.before(r),E(r),r}return t&&Hn(n),E(n),n}function Ln(e,t=!1){if(!C){var n=L(e);return n instanceof Comment&&n.data===``?R(n):n}if(t){if(T?.nodeType!==3){var r=I();return T?.before(r),E(r),r}Hn(T)}return T}function Rn(e,t=1,n=!1){let r=C?T:e;for(var i;t--;)i=r,r=R(r);if(!C)return r;if(n){if(r?.nodeType!==3){var a=I();return r===null?i?.after(a):r.before(a),E(a),a}Hn(r)}return E(r),r}function zn(e){e.textContent=``}function Bn(){return!O||P!==null?!1:(K.f&b)!==0}function Vn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??`http://www.w3.org/1999/xhtml`,e,r)}function Hn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Un(e,t){if(t){let t=document.body;e.autofocus=!0,A(()=>{document.activeElement===t&&e.focus()})}}function Wn(e){C&&L(e)!==null&&zn(e)}var Gn=!1;function Kn(){Gn||(Gn=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[_e]?.()})},{capture:!0}))}function qn(e){var t=U,n=K;G(null),q(null);try{return e()}finally{G(t),q(n)}}function Jn(e,t,n,r=n){e.addEventListener(t,()=>qn(n));let i=e[_e];i?e[_e]=()=>{i(),r(!0)}:e[_e]=()=>r(!0),Kn()}function Yn(e){K===null&&(U===null&&De(e),Ee()),H&&Te(e)}function Xn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function z(e,t){var n=K;n!==null&&n.f&8192&&(e|=y);var r={ctx:k,deps:null,nodes:null,f:e|_|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};M?.register_created_effect(r);var i=r;if(e&4)Ft===null?zt.ensure().schedule(r):Ft.push(r);else if(t!==null){try{Nr(r)}catch(e){throw V(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=te))}if(i!==null&&(i.parent=n,n!==null&&Xn(i,n),U!==null&&U.f&2&&!(e&64))){var a=U;(a.effects??=[]).push(i)}return r}function Zn(){return U!==null&&!W}function Qn(e){let t=z(8,null);return j(t,g),t.teardown=e,t}function $n(e){Yn(`$effect`);var t=K.f;if(!U&&t&32&&!(t&32768)){var n=k;(n.e??=[]).push(e)}else return er(e)}function er(e){return z(4|ie,e)}function tr(e){return Yn(`$effect.pre`),z(8|ie,e)}function nr(e){zt.ensure();let t=z(64|re,e);return(e={})=>new Promise(n=>{e.outro?pr(t,()=>{V(t),n(void 0)}):(V(t),n(void 0))})}function rr(e){return z(4,e)}function ir(e){return z(ce|re,e)}function ar(e,t=0){return z(8|t,e)}function or(e,t=[],n=[],r=[]){en(r,t,n,t=>{z(8,()=>e(...t.map(Q)))})}function sr(e,t=0){return z(16|t,e)}function B(e){return z(32|re,e)}function cr(e){var t=e.teardown;if(t!==null){let e=H,n=U;br(!0),G(null);try{t.call(null)}finally{br(e),G(n)}}}function lr(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&qn(()=>{e.abort(ve)});var r=n.next;n.f&64?n.parent=null:V(n,t),n=r}}function ur(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||V(t),t=n}}function V(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(dr(e.nodes.start,e.nodes.end),n=!0),j(e,x),lr(e,t&&!n),Mr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();cr(e),e.f^=x,e.f|=ee;var i=e.parent;i!==null&&i.first!==null&&fr(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function dr(e,t){for(;e!==null;){var n=e===t?null:R(e);e.remove(),e=n}}function fr(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function pr(e,t,n=!0){var r=[];mr(e,r,!0);var i=()=>{n&&V(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function mr(e,t,n){if(!(e.f&8192)){e.f^=y;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;mr(i,t,o?n:!1)}i=a}}}function hr(e){gr(e,!0)}function gr(e,t){if(e.f&8192){e.f^=y,e.f&1024||(j(e,_),zt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;gr(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function _r(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:R(n);t.append(n),n=i}}var vr=null,yr=!1,H=!1;function br(e){H=e}var U=null,W=!1;function G(e){U=e}var K=null;function q(e){K=e}var J=null;function xr(e){U!==null&&(!O||U.f&2)&&(J===null?J=[e]:J.push(e))}var Y=null,X=0,Z=null;function Sr(e){Z=e}var Cr=1,wr=0,Tr=wr;function Er(e){Tr=e}function Dr(){return++Cr}function Or(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~oe),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(Or(a)&&fn(a),a.wv>e.wv)return!0}t&512&&N===null&&j(e,g)}return!1}function kr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(!O&&J!==null&&i.call(J,e)))for(var a=0;a<r.length;a++){var o=r[a];o.f&2?kr(o,t,!1):t===o&&(n?j(o,_):o.f&1024&&j(o,v),Kt(o))}}function Ar(e){var t=Y,n=X,r=Z,i=U,a=J,o=k,s=W,c=Tr,l=e.f;Y=null,X=0,Z=null,U=l&96?null:e,J=null,it(e.ctx),W=!1,Tr=++wr,e.ac!==null&&(qn(()=>{e.ac.abort(ve)}),e.ac=null);try{e.f|=se;var u=e.fn,d=u();e.f|=b;var f=e.deps,p=M?.is_fork;if(Y!==null){var m;if(p||Mr(e,X),f!==null&&X>0)for(f.length=X+Y.length,m=0;m<Y.length;m++)f[X+m]=Y[m];else e.deps=f=Y;if(Zn()&&e.f&512)for(m=X;m<f.length;m++)(f[m].reactions??=[]).push(e)}else !p&&f!==null&&X<f.length&&(Mr(e,X),f.length=X);if(ft()&&Z!==null&&!W&&f!==null&&!(e.f&6146))for(m=0;m<Z.length;m++)kr(Z[m],e);if(i!==null&&i!==e){if(wr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=wr;if(t!==null)for(let e of t)e.rv=wr;Z!==null&&(r===null?r=Z:r.push(...Z))}return e.f&8388608&&(e.f^=le),d}catch(e){return vt(e)}finally{e.f^=se,Y=t,X=n,Z=r,U=i,J=a,it(o),W=s,Tr=c}}function jr(e,t){let n=t.reactions;if(n!==null){var a=r.call(n,e);if(a!==-1){var o=n.length-1;o===0?n=t.reactions=null:(n[a]=n[o],n.pop())}}if(n===null&&t.f&2&&(Y===null||!i.call(Y,t))){var s=t;s.f&512&&(s.f^=512,s.f&=~oe),s.v!==S&&xt(s),pn(s),Mr(s,0)}}function Mr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)jr(e,n[r])}function Nr(e){var t=e.f;if(!(t&16384)){j(e,g);var n=K,r=yr;K=e,yr=!0;try{t&16777232?ur(e):lr(e),cr(e);var i=Ar(e);e.teardown=typeof i==`function`?i:null,e.wv=Cr}finally{yr=r,K=n}}}async function Pr(){if(O)return new Promise(e=>{requestAnimationFrame(()=>e()),setTimeout(()=>e())});await Promise.resolve(),Bt()}function Fr(){return zt.ensure().settled()}function Q(e){var t=(e.f&2)!=0;if(vr?.add(e),U!==null&&!W&&!(K!==null&&K.f&16384)&&(J===null||!i.call(J,e))){var n=U.deps;if(U.f&2097152)e.rv<wr&&(e.rv=wr,Y===null&&n!==null&&n[X]===e?X++:Y===null?Y=[e]:Y.push(e));else{U.deps??=[],i.call(U.deps,e)||U.deps.push(e);var r=e.reactions;r===null?e.reactions=[U]:i.call(r,U)||r.push(U)}}if(H&&gn.has(e))return gn.get(e);if(t){var a=e;if(H){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||Lr(a))&&(o=dn(a)),gn.set(a,o),o}var s=(a.f&512)==0&&!W&&U!==null&&(yr||(U.f&512)!=0),c=(a.f&b)===0;Or(a)&&(s&&(a.f|=512),fn(a)),s&&!c&&(mn(a),Ir(a))}if(N?.has(e))return N.get(e);if(e.f&8388608)throw e.v;return e.v}function Ir(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(mn(t),Ir(t))}function Lr(e){if(e.v===S)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(gn.has(t)||t.f&2&&Lr(t))return!0;return!1}function Rr(e){var t=W;try{return W=!0,e()}finally{W=t}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var zr=[`touchstart`,`touchmove`];function Br(e){return zr.includes(e)}var Vr=Symbol(`events`),Hr=new Set,Ur=new Set;function Wr(e,t,n,r={}){function i(e){if(r.capture||Yr.call(t,e),!e.cancelBubble)return qn(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?A(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Gr(e,t,n,r,i){var a={capture:r,passive:i},o=Wr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Qn(()=>{t.removeEventListener(e,o,a)})}function Kr(e,t,n){(t[Vr]??={})[e]=n}function qr(e){for(var t=0;t<e.length;t++)Hr.add(e[t]);for(var n of Ur)n(e)}var Jr=null;function Yr(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;Jr=e;var s=0,c=Jr===e&&e[Vr];if(c){var l=i.indexOf(c);if(l!==-1&&(t===document||t===window)){e[Vr]=t;return}var u=i.indexOf(t);if(u===-1)return;l<=u&&(s=l)}if(a=i[s]||e.target,a!==t){o(e,`currentTarget`,{configurable:!0,get(){return a||n}});var d=U,f=K;G(null),q(null);try{for(var p,m=[];a!==null;){var h=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Vr]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble||h===t||h===null)break;a=h}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[Vr]=t,delete e.currentTarget,G(d),q(f)}}}var Xr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Zr(e){return Xr?.createHTML(e)??e}function Qr(e){var t=Vn(`template`);return t.innerHTML=Zr(e.replaceAll(`<!>`,`<!---->`)),t.content}function $(e,t){var n=K;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function $r(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(C)return $(T,null),T;i===void 0&&(i=Qr(a?e:`<!>`+e),n||(i=L(i)));var t=r||Mn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=L(t),s=t.lastChild;$(o,s)}else $(t,t);return t}}function ei(e,t,n=`svg`){var r=!e.startsWith(`<!>`),i=(t&1)!=0,a=`<${n}>${r?e:`<!>`+e}</${n}>`,o;return()=>{if(C)return $(T,null),T;if(!o){var e=L(Qr(a));if(i)for(o=document.createDocumentFragment();L(e);)o.appendChild(L(e));else o=L(e)}var t=o.cloneNode(!0);if(i){var n=L(t),r=t.lastChild;$(n,r)}else $(t,t);return t}}function ti(e,t){return ei(e,t,`svg`)}function ni(e=``){if(!C){var t=I(e+``);return $(t,t),t}var n=T;return n.nodeType===3?Hn(n):(n.before(n=I()),E(n)),$(n,n),n}function ri(){if(C)return $(T,null),T;var e=document.createDocumentFragment(),t=document.createComment(``),n=I();return e.append(t,n),$(t,n),e}function ii(e,t){if(C){var n=K;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=T),D();return}e!==null&&e.before(t)}function ai(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[ge]??=e.nodeValue)&&(e[ge]=n,e.nodeValue=`${n}`)}function oi(e,t){return li(e,t)}function si(e,t){Fn(),t.intro=t.intro??!1;let n=t.target,r=C,i=T;try{for(var a=L(n);a&&(a.nodeType!==8||a.data!==`[`);)a=R(a);if(!a)throw Be;w(!0),E(a);let r=li(e,{...t,anchor:a});return w(!1),r}catch(r){if(r instanceof Error&&r.message.split(`
|
|
2
|
+
`).some(e=>e.startsWith(`https://svelte.dev/e/`)))throw r;return r!==Be&&console.warn(`Failed to hydrate: `,r),t.recover===!1&&Me(),Fn(),zn(n),w(!1),oi(e,t)}finally{w(r),E(i)}}var ci=new Map;function li(e,{target:t,anchor:n,props:r={},events:i,context:o,intro:s=!0,transformError:c}){Fn();var l=void 0,u=nr(()=>{var s=n??t.appendChild(I());Qt(s,{pending:()=>{}},t=>{ut({});var n=k;if(o&&(n.c=o),i&&(r.$$events=i),C&&$(t,null),l=e(t,r)||{},C&&(K.nodes.end=T,T===null||T.nodeType!==8||T.data!==`]`))throw Ke(),Be;dt()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=Br(r);for(let e of[t,document]){var a=ci.get(e);a===void 0&&(a=new Map,ci.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Yr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(a(Hr)),Ur.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=ci.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Yr),r.delete(e),r.size===0&&ci.delete(n)):r.set(e,i)}Ur.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return ui.set(l,u),l}var ui=new WeakMap;function di(e,t){let n=ui.get(e);return n?(ui.delete(e),n(t)):Promise.resolve()}var fi=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)hr(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(V(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();_r(r,t),t.append(I()),this.#n.set(e,{effect:r,fragment:t})}else V(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),pr(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(V(n.effect),this.#n.delete(e))};ensure(e,t){var n=M,r=Bn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=I();i.append(a),this.#n.set(e,{effect:B(()=>t(a)),fragment:i})}else this.#t.set(e,B(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else C&&(this.anchor=T),this.#a(n)}};function pi(e,t,n=!1){var r;C&&(r=T,D());var i=new fi(e),a=n?te:0;function o(e,t){if(C){var n=Qe(r);if(e!==parseInt(n.substring(1))){var a=Ze();E(a),i.anchor=a,w(!1),i.ensure(e,t),w(!0);return}}i.ensure(e,t)}sr(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function mi(e,t){return t}function hi(e,t,n){for(var r=[],i=t.length,o,s=t.length,c=0;c<i;c++){let n=t[c];pr(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;gi(e,a(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else --s},!1)}if(s===0){var l=r.length===0&&n!==null;if(l){var u=n,d=u.parentNode;zn(d),d.append(u),e.items.clear()}gi(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function gi(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=ae,_r(a,document.createDocumentFragment())):V(t[i],n)}}var _i;function vi(e,t,r,i,o,s=null){var c=e,l=new Map;if(t&4){var u=e;c=C?E(L(u)):u.appendChild(I())}C&&D();var d=null,f=ln(()=>{var e=r();return n(e)?e:e==null?[]:a(e)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,bi(v,p,c,t,i),d!==null&&(p.length===0?d.f&33554432?(d.f^=ae,Si(d,null,c)):hr(d):pr(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:sr(()=>{p=Q(f);var e=p.length;let n=!1;C&&Qe(c)===`[!`!=(e===0)&&(c=Ze(),E(c),w(!1),n=!0);for(var a=new Set,u=M,v=Bn(),y=0;y<e;y+=1){C&&T.nodeType===8&&T.data===`]`&&(c=T,n=!0,w(!1));var ee=p[y],b=i(ee,y),x=h?null:l.get(b);x?(x.v&&Sn(x.v,ee),x.i&&Sn(x.i,y),v&&u.unskip_effect(x.e)):(x=xi(l,h?c:_i??=I(),ee,b,y,o,t,r),h||(x.e.f|=ae),l.set(b,x)),a.add(b)}if(e===0&&s&&!d&&(h?d=B(()=>s(c)):(d=B(()=>s(_i??=I())),d.f|=ae)),e>a.size&&we(``,``,``),C&&e>0&&E(Ze()),!h)if(m.set(u,a),v){for(let[e,t]of l)a.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);n&&w(!0),Q(f)}),flags:t,items:l,pending:m,outrogroups:null,fallback:d};h=!1,C&&(c=T)}function yi(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function bi(e,t,n,r,i){var o=(r&8)!=0,s=t.length,c=e.items,l=yi(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v<s;v+=1)h=t[v],g=i(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=i(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(hr(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=ae,_===l)Si(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),Ci(e,d,_),Ci(e,_,y),Si(_,y,n),d=_,p=[],m=[],l=yi(d.next);continue}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var ee=m[0],b;d=ee.prev;var x=p[0],te=p[p.length-1];for(b=0;b<p.length;b+=1)Si(p[b],ee,n);for(b=0;b<m.length;b+=1)u.delete(m[b]);Ci(e,x.prev,te.next),Ci(e,d,x),Ci(e,te,ee),l=ee,d=te,--v,p=[],m=[]}else u.delete(_),Si(_,l,n),Ci(e,_.prev,_.next),Ci(e,_,d===null?e.effect.first:d.next),Ci(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=yi(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=yi(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(gi(e,a(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var ne=[];if(u!==void 0)for(_ of u)_.f&8192||ne.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&ne.push(l),l=yi(l.next);var re=ne.length;if(re>0){var ie=r&4&&s===0?n:null;if(o){for(v=0;v<re;v+=1)ne[v].nodes?.a?.measure();for(v=0;v<re;v+=1)ne[v].nodes?.a?.fix()}hi(e,ne,ie)}}o&&A(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function xi(e,t,n,r,i,a,o,s){var c=o&1?o&16?yn(n):xn(n,!1,!1):null,l=o&2?yn(i):null;return{v:c,i:l,e:B(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function Si(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=R(r);if(a.before(r),r===i)return;r=o}}function Ci(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function wi(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;C&&(o=E(L(c)))}or(()=>{var e=K;if(s===(s=t()??``)){C&&D();return}if(n&&!C){e.nodes=null,c.innerHTML=s,s!==``&&$(L(c),c.lastChild);return}if(e.nodes!==null&&(dr(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(C){for(var a=T.data,l=D(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=R(l);if(l===null)throw Ke(),Be;$(T,u),o=E(l);return}var d=Vn(r?`svg`:i?`math`:`template`,r?He:i?Ue:void 0);d.innerHTML=s;var f=r||i?d:d.content;if($(L(f),f.lastChild),r||i)for(;L(f);)o.before(L(f));else o.before(f)}})}function Ti(e,t,n,r,i){C&&D();var a=t.$$slots?.[n],o=!1;a===!0&&(a=t[n===`default`?`children`:n],o=!0),a===void 0?i!==null&&i(e):a(e,o?()=>r:r)}function Ei(e,t,...n){var r=new fi(e);sr(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},te)}function Di(e){return(t,...n)=>{var r=e(...n),i;C?(i=T,D()):(i=L(Qr(r.render().trim())),t.before(i));let a=r.setup?.(i);$(i,i),typeof a==`function`&&Qn(a)}}function Oi(e,t,n){var r;C&&(r=T,D());var i=new fi(e);sr(()=>{var e=t()??null;if(C&&Qe(r)===`[`!=(e!==null)){var a=Ze();E(a),i.anchor=a,w(!1),i.ensure(e,e&&(t=>n(t,e))),w(!0);return}i.ensure(e,e&&(t=>n(t,e)))},te)}function ki(e,t){let n=null,r=C;var i;if(C){n=T;for(var a=L(document.head);a!==null&&(a.nodeType!==8||a.data!==e);)a=R(a);if(a===null)w(!1);else{var o=R(a);a.remove(),E(o)}}C||(i=document.head.appendChild(I()));try{sr(()=>{var e=B(()=>t(i));e.f|=ne})}finally{r&&(w(!0),E(n))}}var Ai=[...`
|
|
3
|
+
\r\f\xA0\v`];function ji(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||Ai.includes(r[o-1]))&&(s===r.length||Ai.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function Mi(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function Ni(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Pi(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(Ni)),i&&c.push(...Object.keys(i).map(Ni));var l=0,u=-1;let t=e.length;for(var d=0;d<t;d++){var f=e[d];if(s?f===`/`&&e[d-1]===`*`&&(s=!1):a?a===f&&(a=!1):f===`/`&&e[d+1]===`*`?s=!0:f===`"`||f===`'`?a=f:f===`(`?o++:f===`)`&&o--,!s&&a===!1&&o===0){if(f===`:`&&u===-1)u=d;else if(f===`;`||d===t-1){if(u!==-1){var p=Ni(e.substring(l,u).trim());if(!c.includes(p)){f!==`;`&&d++;var m=e.substring(l,d).trim();n+=` `+m+`;`}}l=d+1,u=-1}}}}return r&&(n+=Mi(r)),i&&(n+=Mi(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function Fi(e,t,n,r,i,a){var o=e[me];if(C||o!==n||o===void 0){var s=ji(n,r,a);(!C||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[me]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function Ii(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function Li(e,t,n,r){var i=e[he];if(C||i!==t){var a=Pi(t,r);(!C||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[he]=t}else r&&(Array.isArray(r)?(Ii(e,n?.[0],r[0]),Ii(e,n?.[1],r[1],`important`)):Ii(e,n,r));return r}function Ri(e,t,r=!1){if(e.multiple){if(t==null)return;if(!n(t))return qe();for(var i of e.options)i.selected=t.includes(Vi(i));return}for(i of e.options)if(kn(Vi(i),t)){i.selected=!0;return}(!r||t!==void 0)&&(e.selectedIndex=-1)}function zi(e){var t=new MutationObserver(()=>{Ri(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),Qn(()=>{t.disconnect()})}function Bi(e,t,n=t){var r=new WeakSet,i=!0;Jn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),Vi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&Vi(o)}n(a),e.__value=a,M!==null&&r.add(M)}),rr(()=>{var a=t();if(e===document.activeElement){var o=O?jt:M;if(r.has(o))return}if(Ri(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=Vi(s),n(a))}e.__value=a,i=!1}),zi(e)}function Vi(e){return`__value`in e?e.__value:e.value}var Hi=Symbol(`is custom element`),Ui=Symbol(`is html`),Wi=ye?`link`:`LINK`,Gi=ye?`progress`:`PROGRESS`;function Ki(e){if(C){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;Yi(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;Yi(e,`checked`,null),e.checked=r}}};e[_e]=n,A(n),Kn()}}function qi(e,t){var n=Xi(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Gi)||(e.value=t??``)}function Ji(e,t){var n=Xi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Yi(e,t,n,r){var i=Xi(e);C&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Wi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[fe]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Qi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Xi(e){return e[pe]??={[Hi]:e.nodeName.includes(`-`),[Ui]:e.namespaceURI===Ve}}var Zi=new Map;function Qi(e){var t=e.getAttribute(`is`)||e.nodeName,n=Zi.get(t);if(n)return n;Zi.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=c(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=d(i)}return n}function $i(e,t,n=t){var r=new WeakSet;Jn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=ta(e)?na(a):a,n(a),M!==null&&r.add(M),await Pr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(C&&e.defaultValue!==e.value||Rr(t)==null&&e.value)&&(n(ta(e)?na(e.value):e.value),M!==null&&r.add(M)),ar(()=>{var n=t();if(e===document.activeElement){var i=O?jt:M;if(r.has(i))return}ta(e)&&n===na(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function ea(e,t,n=t){Jn(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(C&&e.defaultChecked!==e.checked||Rr(t)==null)&&n(e.checked),ar(()=>{e.checked=!!t()})}function ta(e){var t=e.type;return t===`number`||t===`range`}function na(e){return e===``?null:+e}function ra(e,t){return e===t||e?.[ue]===t}function ia(e={},t,n,r){var i=k.r,a=K;return rr(()=>{var o,s;return ar(()=>{o=s,s=r?.()||[],Rr(()=>{ra(n(...s),e)||(t(e,...s),o&&ra(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&ra(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function aa(e,t,n,r,i){var a=()=>{r(n[e])};n.addEventListener(t,a),i?ar(()=>{n[e]=i()}):a(),(n===document.body||n===window||n===document)&&Qn(()=>{n.removeEventListener(t,a)})}function oa(e,t,n,r){var i=!nt||(n&2)!=0,a=(n&8)!=0,o=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>o&&i?(u??=an(r),Q(u)):(l&&(l=!1,c=o?Rr(r):r),c);let f;if(a){var p=ue in e||de in e;f=s(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;a?[m,h]=Ot(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Pe(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?an:ln)(()=>(v=!1,g()));a&&Q(y);var ee=K;return(function(e,t){if(arguments.length>0){let n=t?Q(y):i&&a?Dn(e):e;return F(y,n),v=!0,c!==void 0&&(c=n),e}return H&&v||ee.f&16384?y.v:Q(y)})}function sa(e){return class extends ca{constructor(t){super({component:e,...t})}}}var ca=class{#e;#t;constructor(e){var t=new Map,n=(e,n)=>{var r=xn(n,!1,!1);return t.set(e,r),r};let r=new Proxy({...e.props||{},$$events:{}},{get(e,r){return Q(t.get(r)??n(r,Reflect.get(e,r)))},has(e,r){return r===de?!0:(Q(t.get(r)??n(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,i){return F(t.get(r)??n(r,i),i),Reflect.set(e,r,i)}});this.#t=(e.hydrate?si:oi)(e.component,{target:e.target,anchor:e.anchor,props:r,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError}),!O&&(!e?.props?.$$host||e.sync===!1)&&Bt(),this.#e=r.$$events;for(let e of Object.keys(this.#t))e===`$set`||e===`$destroy`||e===`$on`||o(this,e,{get(){return this.#t[e]},set(t){this.#t[e]=t},enumerable:!0});this.#t.$set=e=>{Object.assign(r,e)},this.#t.$destroy=()=>{di(this.#t)}}$set(e){this.#t.$set(e)}$on(e,t){this.#e[e]=this.#e[e]||[];let n=(...e)=>t.call(this,...e);return this.#e[e].push(n),()=>{this.#e[e]=this.#e[e].filter(e=>e!==n)}}$destroy(){this.#t.$destroy()}};function la(e,t){if(O||be(`hydratable`),C){let t=window.__svelte?.h;if(t?.has(e))return t.get(e);Ge(e)}return t()}var ua=t({afterUpdate:()=>_a,beforeUpdate:()=>ga,createContext:()=>at,createEventDispatcher:()=>ha,createRawSnippet:()=>Di,flushSync:()=>Bt,fork:()=>Yt,getAbortSignal:()=>da,getAllContexts:()=>lt,getContext:()=>ot,hasContext:()=>ct,hydratable:()=>la,hydrate:()=>si,mount:()=>oi,onDestroy:()=>pa,onMount:()=>fa,setContext:()=>st,settled:()=>Fr,tick:()=>Pr,unmount:()=>di,untrack:()=>Rr});function da(){return U===null&&je(),(U.ac??=new AbortController).signal}function fa(e){k===null&&xe(`onMount`),nt&&k.l!==null?va(k).m.push(e):$n(()=>{let t=Rr(e);if(typeof t==`function`)return t})}function pa(e){k===null&&xe(`onDestroy`),fa(()=>()=>Rr(e))}function ma(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function ha(){let e=k;return e===null&&xe(`createEventDispatcher`),(t,r,i)=>{let a=e.s.$$events?.[t];if(a){let o=n(a)?a.slice():[a],s=ma(t,r,i);for(let t of o)t.call(e.x,s);return!s.defaultPrevented}return!0}}function ga(e){k===null&&xe(`beforeUpdate`),k.l===null&&Ne(`beforeUpdate`),va(k).b.push(e)}function _a(e){k===null&&xe(`afterUpdate`),k.l===null&&Ne(`afterUpdate`),va(k).a.push(e)}function va(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}export{wn as $,$r as A,rr as B,wi as C,ai as D,pi as E,Gr as F,Wn as G,$n as H,Q as I,Ln as J,jn as K,Fr as L,ni as M,qr as N,ii as O,Kr as P,bn as Q,Pr as R,Ti as S,mi as T,tr as U,or as V,Un as W,Dn as X,Rn as Y,F as Z,Li as _,oa as a,st as at,Oi as b,ea as c,Ye as ct,Yi as d,cn as et,Ji as f,Ri as g,zi as h,sa as i,ut as it,ti as j,ri as k,$i as l,p as lt,Bi as m,pa as n,ot as nt,aa as o,rt as ot,qi as p,In as q,fa as r,dt as rt,ia as s,Xe as st,ua as t,Tt as tt,Ki as u,t as ut,Fi as v,vi as w,Ei as x,ki as y,Rr as z};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as e,Q as t,X as n,Z as r}from"./BwTF6U35.js";var i=[`audio/webm;codecs=opus`,`audio/webm`];function a(){let e=globalThis.MediaRecorder;if(!(!e||typeof e.isTypeSupported!=`function`)){for(let t of i)if(e.isTypeSupported(t))return t}}async function o(){if(typeof window>`u`)throw Error(`Recording is only available in the browser.`);if(typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)throw Error(`Recording is not supported in this browser.`);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:!0})}catch(e){let t=e?.name??``;throw Error(t===`NotAllowedError`||t===`SecurityError`?`Microphone access denied`:t===`NotFoundError`||t===`OverconstrainedError`?`No microphone was found`:`Microphone error: ${e?.message??String(e)}`)}let t=a(),n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e),r=[];n.addEventListener(`dataavailable`,e=>{let t=e.data;t&&t.size>0&&r.push(t)});let i=!1,o=!1,s=null,c=null;function l(){for(let t of e.getTracks())try{t.stop()}catch{}}return n.addEventListener(`stop`,()=>{if(l(),o)return;let e=new Blob(r,{type:n.mimeType||t||`audio/webm`});s?.(e)}),n.addEventListener(`error`,e=>{l();let t=e?.error??Error(`Recorder error`);c?.(t)}),n.start(),{stop(){return i?Promise.reject(Error(`Recorder already stopped`)):(i=!0,new Promise((e,t)=>{s=e,c=t;try{n.state!==`inactive`&&n.stop()}catch(e){l(),t(e)}}))},cancel(){if(!i){i=!0,o=!0;try{n.state!==`inactive`&&n.stop()}catch{}l()}}}}var s=``;function c(){return{"x-request-id":crypto.randomUUID(),"x-requested-by":`ui`}}async function l(e,t,n){let r={...n===void 0?{}:{"content-type":`application/json`},...c()};return fetch(`${s}${t}`,{method:e,headers:r,credentials:`include`,...n===void 0?{}:{body:JSON.stringify(n)}})}async function u(e,t=`Request failed (HTTP ${e.status})`){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.clone().json().catch(e=>(console.warn(`[api] Failed to parse JSON error response:`,e),null));if(t&&typeof t.message==`string`&&t.message.length>0)return t.message;if(t&&typeof t.error==`string`&&t.error.length>0)return t.error}return await e.text().catch(e=>(console.warn(`[api] Failed to read error response text:`,e),``))||t}async function d(e,t){if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!e.ok)throw Error(await u(e,t));return e}async function ee(){let[e,t]=await Promise.all([l(`GET`,`/health`),l(`GET`,`/guardian/health`).catch(e=>(console.warn(`[api] Guardian health check failed:`,e),null))]),n=await e.json(),r=null;if(t)try{r=await t.json()}catch(e){console.warn(`[api] Failed to parse guardian health response:`,e),r={status:`unavailable`,service:`guardian`}}return{admin:n,guardian:r}}async function f(){return await(await d(await l(`GET`,`/admin/containers/list`))).json()}async function te(e,t){await d(await l(`POST`,{start:`/admin/containers/up`,stop:`/admin/containers/down`,restart:`/admin/containers/restart`}[e],{service:t}))}async function ne(){let e=await l(`POST`,`/admin/update`,{});if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!(e.headers.get(`content-type`)??``).includes(`application/json`))throw Error(await u(e,`Apply failed (HTTP ${e.status})`));return await e.json()}async function re(){return await(await d(await l(`POST`,`/admin/upgrade`,{}))).json()}async function ie(){return await(await d(await l(`GET`,`/admin/versions`))).json()}async function ae(){try{let e=await l(`GET`,`/admin/versions/releases`);return e.ok?await e.json():{releases:[]}}catch{return{releases:[]}}}async function oe(e){return await(await d(await l(`PATCH`,`/admin/stack-version`,{tag:e}))).json()}async function se(e){return await(await d(await l(`POST`,`/admin/ui-version`,{tag:e}))).json()}async function ce(){return await(await d(await l(`GET`,`/admin/automations`))).json()}async function le(e){let t=new URLSearchParams;e?.service&&t.set(`service`,e.service),e?.tail&&t.set(`tail`,String(e.tail)),e?.since&&t.set(`since`,e.since);let n=t.toString();return await(await d(await l(`GET`,`/admin/logs${n?`?${n}`:``}`))).json()}async function ue(){return(await(await d(await l(`GET`,`/admin/addons`))).json()).addons}async function de(e,t,n){let r={enabled:t};return n&&(r.env=n),await(await d(await l(`POST`,`/admin/addons/${encodeURIComponent(e)}`,r))).json()}async function fe(e){return(await(await d(await l(`GET`,`/admin/addons/${encodeURIComponent(e)}/credentials`))).json()).fields}async function pe(e,t){return await(await d(await l(`POST`,`/admin/addons/${encodeURIComponent(e)}/credentials`,{values:t}))).json()}async function me(){return await(await d(await l(`GET`,`/admin/secrets`))).json()}async function he(e){return await(await d(await l(`GET`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function ge(e,t){return await(await d(await l(`PUT`,`/admin/secrets/${encodeURIComponent(e)}`,{value:t}))).json()}async function _e(e){return await(await d(await l(`DELETE`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function ve(e){return await(await d(await l(`GET`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function ye(e,t){return await(await d(await l(`PUT`,`/admin/automations/${encodeURIComponent(e)}/file`,{content:t}))).json()}async function be(e){return await(await d(await l(`DELETE`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function p(){return await(await d(await l(`GET`,`/admin/voice`))).json()}async function m(e){let t=await l(`PUT`,`/admin/voice`,e);if(t.status===401)throw Object.assign(Error(`Invalid password.`),{status:401});if(t.status===200||t.status===202||t.status===502)return{...await t.json(),status:t.status};throw Error(await u(t))}async function h(e,t){let n=new FormData;n.append(`audio`,e,`recording.webm`),t?.language&&n.append(`language`,t.language),t?.prompt&&n.append(`prompt`,t.prompt);let r=await(await d(await fetch(`/api/transcribe`,{method:`POST`,headers:c(),credentials:`include`,body:n}))).json();return typeof r.text==`string`?r.text:``}async function g(){return await(await d(await l(`GET`,`/admin/akm`))).json()}async function _(e){return await(await d(await l(`PATCH`,`/admin/akm`,e))).json()}async function v(){return await(await d(await l(`GET`,`/admin/akm/host-sharing`))).json()}async function y(e={}){return await(await d(await l(`PUT`,`/admin/akm/host-sharing`,e))).json()}async function b(){return await(await d(await l(`DELETE`,`/admin/akm/host-sharing`))).json()}async function x(){await d(await l(`POST`,`/admin/containers/pull`,{}))}async function S(){return await(await d(await l(`GET`,`/admin/endpoints`))).json()}async function C(e){return await(await d(await l(`POST`,`/admin/endpoints`,e))).json()}async function w(e,t){return await(await d(await l(`PATCH`,`/admin/endpoints/${encodeURIComponent(e)}`,t))).json()}async function T(e){await d(await l(`DELETE`,`/admin/endpoints/${encodeURIComponent(e)}`))}async function E(e){return await(await d(await l(`POST`,`/admin/endpoints/active`,{id:e}))).json()}async function D(){return await(await d(await l(`POST`,`/proxy/assistant/session`,{}))).json()}async function O(){let e=(await(await d(await l(`GET`,`/proxy/assistant/session`))).json()).map(e=>({id:e.id,title:e.title??``,createdAt:e.time?.created??0,updatedAt:e.time?.updated??e.time?.created??0}));return e.sort((e,t)=>t.updatedAt-e.updatedAt),e}async function k(e){let t=await(await d(await l(`GET`,`/proxy/assistant/session/${encodeURIComponent(e)}/message`))).json(),n=[];for(let e of t){let t=e.parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``);t&&n.push({id:e.info.id,role:e.info.role,text:t,timestamp:e.info.time?.created??Date.now()})}return n}async function A(e,t){let n=await fetch(`/proxy/assistant/session/${encodeURIComponent(e)}/message`,{method:`POST`,headers:{"content-type":`application/json`,...c()},credentials:`include`,body:JSON.stringify({parts:[{type:`text`,text:t}]}),signal:AbortSignal.timeout(15e4)});if(n.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!n.ok){let e=await u(n);throw Object.assign(Error(e),{status:n.status})}return await n.json()}async function j(){try{return(await fetch(`/proxy/assistant/provider`,{method:`GET`,headers:c(),credentials:`include`,signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}var M={info:4e3,success:5e3,error:8e3},N=new class{#e=t(n([]));get toasts(){return e(this.#e)}set toasts(e){r(this.#e,e,!0)}timers=new Map;push(e,t,n={}){let r=n.replaceId??(typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`t-${Date.now()}-${Math.random().toString(36).slice(2)}`),i=n.sticky?null:n.ttlMs??M[e],a={id:r,kind:e,message:t,ttlMs:i},o=this.timers.get(r);o&&(clearTimeout(o),this.timers.delete(r));let s=this.toasts.findIndex(e=>e.id===r);if(s>=0){let e=[...this.toasts];e[s]=a,this.toasts=e}else this.toasts=[...this.toasts,a];if(i!==null){let e=setTimeout(()=>this.dismiss(r),i);this.timers.set(r,e)}return r}dismiss(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}clear(){for(let e of this.timers.values())clearTimeout(e);this.timers.clear(),this.toasts=[]}},xe=6e4,P=new class{#e=t(`idle`);get status(){return e(this.#e)}set status(e){r(this.#e,e,!0)}#t=t(!1);get sttSupported(){return e(this.#t)}set sttSupported(e){r(this.#t,e,!0)}#n=t(!1);get ttsSupported(){return e(this.#n)}set ttsSupported(e){r(this.#n,e,!0)}#r=t(``);get errorMessage(){return e(this.#r)}set errorMessage(e){r(this.#r,e,!0)}#i=t(``);get interimTranscript(){return e(this.#i)}set interimTranscript(e){r(this.#i,e,!0)}#a=t(`disabled`);get sttEngine(){return e(this.#a)}set sttEngine(e){r(this.#a,e,!0)}#o=t(`disabled`);get ttsEngine(){return e(this.#o)}set ttsEngine(e){r(this.#o,e,!0)}#s=t(``);get sttLanguage(){return e(this.#s)}set sttLanguage(e){r(this.#s,e,!0)}#c=t(!1);get ttsAutoEnabled(){return e(this.#c)}set ttsAutoEnabled(e){r(this.#c,e,!0)}#l=t(!1);get autoplayBlocked(){return e(this.#l)}set autoplayBlocked(e){r(this.#l,e,!0)}#u=t(``);get browserSttUnsupportedReason(){return e(this.#u)}set browserSttUnsupportedReason(e){r(this.#u,e,!0)}},F=`openpalm.tts.auto`,I=null,L=null,R=null,z=null;function Se(e){let t=P.ttsAutoEnabled;if(P.ttsAutoEnabled=e,typeof window<`u`)try{window.localStorage.setItem(F,e?`1`:`0`)}catch{}if(!e){$();return}t||Ce()}function Ce(){if(typeof window>`u`)return;let e=window.AudioContext??window.webkitAudioContext;if(e)try{let t=new e,n=t.createBuffer(1,1,22050),r=t.createBufferSource();r.buffer=n,r.connect(t.destination),r.start(0),setTimeout(()=>{t.close().catch(()=>{})},100)}catch{}}function B(){if(!(typeof window>`u`))return window.SpeechRecognition??window.webkitSpeechRecognition??void 0}function we(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent??``,t=/iPad|iPhone|iPod/.test(e),n=window.MSStream;return t&&!n}function Te(){return!(typeof window>`u`||typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)}function Ee(e){switch(e){case`browser`:return P.browserSttUnsupportedReason?!1:!!B();case`remote`:case`openpalm-voice`:return Te();default:return!1}}function V(e){return e===`browser`||e===`browser-stt`?`browser`:e===`openpalm-voice`?`openpalm-voice`:e&&!e.startsWith(`skip-`)?`remote`:`disabled`}async function De(){let e=typeof window<`u`&&`speechSynthesis`in window;if(typeof window<`u`)try{P.ttsAutoEnabled=window.localStorage.getItem(F)===`1`}catch{}try{let e=await p(),t=e.stt??{},n=e.tts??{},r=typeof t.engine==`string`?t.engine:``,i=typeof n.engine==`string`?n.engine:``;P.sttLanguage=typeof t.language==`string`?t.language:``,P.sttEngine=V(r),P.ttsEngine=V(i)}catch{P.sttEngine=`disabled`,P.ttsEngine=`disabled`}P.ttsSupported=P.ttsEngine===`openpalm-voice`||P.ttsEngine===`remote`||P.ttsEngine===`browser`&&e,we()&&B()?(P.browserSttUnsupportedReason=`iOS Safari does not support Web Speech recognition`,P.sttEngine===`browser`&&(P.sttEngine=`disabled`)):P.browserSttUnsupportedReason=``,P.sttEngine===`disabled`&&B()&&!P.browserSttUnsupportedReason&&(P.sttEngine=`browser`),P.sttSupported=Ee(P.sttEngine)}function Oe(e){if(!(P.status===`recording`||P.status===`transcribing`)){if(!P.sttSupported||P.sttEngine===`disabled`){P.errorMessage=`Speech recognition is not available.`;return}if(P.errorMessage=``,z=e,P.sttEngine===`browser`){ke(e);return}Ae()}}function ke(e){let t=B();if(!t){P.errorMessage=`Speech recognition is not supported in this browser.`;return}let n=new t;L=n,n.lang=P.sttLanguage||navigator?.language||`en-US`,n.interimResults=!0,n.maxAlternatives=1,n.continuous=!1;let r=``;n.onresult=e=>{let t=``;for(let n=e.resultIndex;n<e.results.length;n++){let i=e.results[n];i.isFinal?r+=i[0]?.transcript??``:t+=i[0]?.transcript??``}P.interimTranscript=r+t},n.onerror=e=>{if(L!==n)return;let t=e.error??``;t===`no-speech`||t===`aborted`||(t===`not-allowed`?P.errorMessage=`Microphone access denied.`:P.errorMessage=`Speech error: ${t}`),P.interimTranscript=``,P.status=`idle`,L=null,z=null},n.onend=()=>{L===n&&(r.trim()&&e&&e(r.trim()),P.interimTranscript=``,P.status=`idle`,L=null,z=null)};try{n.start(),P.status=`recording`}catch{P.errorMessage=`Failed to start speech recognition.`,P.status=`idle`,L=null,z=null}}async function Ae(){let e;try{e=await o()}catch(e){P.errorMessage=e instanceof Error?e.message:`Failed to start recording.`,P.status=`idle`,z=null;return}I=e,P.status=`recording`,R=setTimeout(()=>{H()},xe)}async function H(){let e=I,t=z;if(!e)return;I=null,z=null,R&&=(clearTimeout(R),null),P.status=`transcribing`;let n;try{n=await e.stop()}catch(e){P.errorMessage=e instanceof Error?e.message:`Recording failed.`,P.status=`idle`;return}if(n.size===0){P.status=`idle`;return}try{let e=(await h(n,{language:P.sttLanguage||void 0})).trim();e&&t&&t(e)}catch(e){P.errorMessage=e instanceof Error?e.message:`Transcription failed.`}finally{P.status=`idle`}}function je(){if(L){try{L.stop()}catch{}return}I&&H()}var U=null,W=null,Me=3,G=[],K=!1,q=null,J=null;function Y(){if(U){U.onerror=null,U.onended=null;try{U.pause()}catch{}U.src=``,U=null}W&&=(URL.revokeObjectURL(W),null)}function X(){if(q){q.onerror=null,q.onended=null;try{q.pause()}catch{}q.src=``,q=null}J&&=(URL.revokeObjectURL(J),null),P.autoplayBlocked=!1}function Z(){let e=q;if(!e){P.autoplayBlocked=!1;return}P.autoplayBlocked=!1,P.errorMessage=``,P.status=`speaking`,U=e,W=J,q=null,J=null,e.play().catch(()=>{P.status=`idle`,P.errorMessage=`Audio playback failed.`,Y()})}async function Ne(e){if(!(typeof window>`u`||!e.trim())){if(P.status===`speaking`){G.push(e);let t=0;for(;G.length>Me;)G.shift(),t+=1;t>0&&!K&&(K=!0,N.push(`info`,`Skipped ${t} spoken ${t===1?`reply`:`replies`} — too much overlap. Lower the auto-speak chat rate.`));return}await Q(e)}}async function Q(e){if(typeof window>`u`||!e.trim())return;X(),Y(),`speechSynthesis`in window&&window.speechSynthesis.cancel(),P.errorMessage=``;let t=P.ttsEngine,n=t===`openpalm-voice`||t===`remote`;if(n){let t;try{t=await fetch(`/api/speak`,{method:`POST`,headers:{"content-type":`application/json`},credentials:`include`,body:JSON.stringify({text:e})})}catch{}if(t&&t.ok&&t.headers.get(`content-type`)?.startsWith(`audio/`)){let e=await t.blob(),n=URL.createObjectURL(e),r=new Audio(n);U=r,W=n,r.onended=()=>{P.status=`idle`,Y();let e=G.shift();e?Q(e):K=!1},r.onerror=()=>{P.status=`idle`,P.errorMessage=`Audio playback failed.`,Y();let e=G.shift();e?Q(e):K=!1},P.status=`speaking`;try{await r.play()}catch{P.status=`idle`,q=r,J=n,U=null,W=null,P.autoplayBlocked=!0}return}t&&!t.ok&&(P.errorMessage=await Pe(t))}if(!(`speechSynthesis`in window))return;n&&(P.errorMessage=``);let r=new SpeechSynthesisUtterance(e);r.onstart=()=>{P.status=`speaking`},r.onend=()=>{P.status=`idle`;let e=G.shift();e?Q(e):K=!1},r.onerror=()=>{P.status=`idle`;let e=G.shift();e?Q(e):K=!1},window.speechSynthesis.speak(r)}async function Pe(e){let t;try{let n=await e.clone().json();typeof n.error==`string`&&(t=n.error)}catch{}return t===`tts_not_configured`?`TTS is not configured.`:t===`upstream_error`||e.status===502||e.status===503?`Voice engine is warming up — try again in a moment.`:`TTS failed (HTTP ${e.status}).`}function $(){G.length=0,K=!1,X(),Y(),typeof window<`u`&&`speechSynthesis`in window&&window.speechSynthesis.cancel(),P.status=`idle`}function Fe(){if(R&&=(clearTimeout(R),null),I){try{I.cancel()}catch{}I=null}if(L){try{L.stop()}catch{}L=null}z=null,P.interimTranscript=``,P.status=`idle`}export{ae as A,x as B,ue as C,S as D,f as E,ie as F,m as G,_ as H,p as I,oe as J,A as K,k as L,me as M,le as N,ee as O,ve as P,O as R,fe as S,ce as T,ge as U,pe as V,ye as W,w as X,de as Y,re as Z,_e as _,Ne as a,se as b,$ as c,ne as d,c as f,T as g,D as h,Se as i,he as j,v as k,P as l,C as m,De as n,Oe as o,te as p,E as q,Z as r,je as s,Fe as t,N as u,be as v,g as w,y as x,b as y,j as z};
|
|
Binary file
|
|
Binary file
|