@samyx/preview-stacks-ui 0.7.0 → 0.14.0
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 +29 -0
- package/dist/assets/{ActionButton.vue_vue_type_script_setup_true_lang-DUQBVs8T.js → ActionButton.vue_vue_type_script_setup_true_lang-DxV7T6dV.js} +2 -2
- package/dist/assets/{ActionButton.vue_vue_type_script_setup_true_lang-DUQBVs8T.js.map → ActionButton.vue_vue_type_script_setup_true_lang-DxV7T6dV.js.map} +1 -1
- package/dist/assets/{AxesTab-DU92FPX2.js → AxesTab-DkF15gUV.js} +2 -2
- package/dist/assets/{AxesTab-DU92FPX2.js.map → AxesTab-DkF15gUV.js.map} +1 -1
- package/dist/assets/{ConfigTab-CR9C6wOR.js → ConfigTab-DIfAtFKC.js} +2 -2
- package/dist/assets/{ConfigTab-CR9C6wOR.js.map → ConfigTab-DIfAtFKC.js.map} +1 -1
- package/dist/assets/DangerTab-BOrQMzL3.js +2 -0
- package/dist/assets/{DangerTab-BUfuJ0MC.js.map → DangerTab-BOrQMzL3.js.map} +1 -1
- package/dist/assets/DashboardView-Cr6Nnj3O.js +2 -0
- package/dist/assets/DashboardView-Cr6Nnj3O.js.map +1 -0
- package/dist/assets/DeploymentDetailView-D23-qn3Z.js +2 -0
- package/dist/assets/DeploymentDetailView-D23-qn3Z.js.map +1 -0
- package/dist/assets/DeploymentsView-BMD-3aeS.js +2 -0
- package/dist/assets/DeploymentsView-BMD-3aeS.js.map +1 -0
- package/dist/assets/{ErrorNote.vue_vue_type_script_setup_true_lang-BmqVrFXt.js → ErrorNote.vue_vue_type_script_setup_true_lang-BlepSrj0.js} +2 -2
- package/dist/assets/{ErrorNote.vue_vue_type_script_setup_true_lang-BmqVrFXt.js.map → ErrorNote.vue_vue_type_script_setup_true_lang-BlepSrj0.js.map} +1 -1
- package/dist/assets/{JobDetailView-UehfrAMm.js → JobDetailView-ByaH2ylY.js} +2 -2
- package/dist/assets/{JobDetailView-UehfrAMm.js.map → JobDetailView-ByaH2ylY.js.map} +1 -1
- package/dist/assets/JobsView-h_BUWgIG.js +2 -0
- package/dist/assets/JobsView-h_BUWgIG.js.map +1 -0
- package/dist/assets/LoginView-BstzTLQc.js +5 -0
- package/dist/assets/LoginView-BstzTLQc.js.map +1 -0
- package/dist/assets/LoginView-CAyD1E0h.css +1 -0
- package/dist/assets/LogsTab-B_NVnnVo.js +4 -0
- package/dist/assets/LogsTab-B_NVnnVo.js.map +1 -0
- package/dist/assets/NotFoundView-BN-7ZNip.js +2 -0
- package/dist/assets/{NotFoundView-D4P7ej9y.js.map → NotFoundView-BN-7ZNip.js.map} +1 -1
- package/dist/assets/NotifiersView-CsAmv8wB.js +2 -0
- package/dist/assets/NotifiersView-CsAmv8wB.js.map +1 -0
- package/dist/assets/OverviewTab-BI1DZZxS.js +2 -0
- package/dist/assets/OverviewTab-BI1DZZxS.js.map +1 -0
- package/dist/assets/RegistriesView-CEE730kV.js +2 -0
- package/dist/assets/{RegistriesView-r-FHyu2l.js.map → RegistriesView-CEE730kV.js.map} +1 -1
- package/dist/assets/RelativeTime.vue_vue_type_script_setup_true_lang-lQaz4t05.js +2 -0
- package/dist/assets/RelativeTime.vue_vue_type_script_setup_true_lang-lQaz4t05.js.map +1 -0
- package/dist/assets/{RequiresTab-Ca5DAPqS.js → RequiresTab-B9YauFIz.js} +2 -2
- package/dist/assets/{RequiresTab-Ca5DAPqS.js.map → RequiresTab-B9YauFIz.js.map} +1 -1
- package/dist/assets/{RoutingView-6KgROiI7.js → RoutingView-DXCaRJek.js} +3 -3
- package/dist/assets/{RoutingView-6KgROiI7.js.map → RoutingView-DXCaRJek.js.map} +1 -1
- package/dist/assets/RuntimeTab-DvrQFekD.js +2 -0
- package/dist/assets/RuntimeTab-DvrQFekD.js.map +1 -0
- package/dist/assets/SettingsView-B7_zHjVP.js +2 -0
- package/dist/assets/SettingsView-B7_zHjVP.js.map +1 -0
- package/dist/assets/SkeletonList.vue_vue_type_script_setup_true_lang-SxitAmDb.js +2 -0
- package/dist/assets/{SkeletonList.vue_vue_type_script_setup_true_lang-CrqRcqcf.js.map → SkeletonList.vue_vue_type_script_setup_true_lang-SxitAmDb.js.map} +1 -1
- package/dist/assets/SpecDetailView-CViJ8WG_.js +2 -0
- package/dist/assets/{SpecDetailView-QKk7yCjK.js.map → SpecDetailView-CViJ8WG_.js.map} +1 -1
- package/dist/assets/SpecsView-BpG2OWMm.js +2 -0
- package/dist/assets/SpecsView-BpG2OWMm.js.map +1 -0
- package/dist/assets/StateBadge.vue_vue_type_script_setup_true_lang-CgDXVhMF.js +2 -0
- package/dist/assets/{StateBadge.vue_vue_type_script_setup_true_lang-DGyF-Maq.js.map → StateBadge.vue_vue_type_script_setup_true_lang-CgDXVhMF.js.map} +1 -1
- package/dist/assets/SubmitView-CwdWrsVS.js +45 -0
- package/dist/assets/SubmitView-CwdWrsVS.js.map +1 -0
- package/dist/assets/TerminalTab-Bqulz6Eb.css +1 -0
- package/dist/assets/TerminalTab-C6gRXura.js +3 -0
- package/dist/assets/TerminalTab-C6gRXura.js.map +1 -0
- package/dist/assets/{VarEditor.vue_vue_type_script_setup_true_lang-D3_cdVoO.js → VarEditor.vue_vue_type_script_setup_true_lang-CZcKBdbw.js} +2 -2
- package/dist/assets/{VarEditor.vue_vue_type_script_setup_true_lang-D3_cdVoO.js.map → VarEditor.vue_vue_type_script_setup_true_lang-CZcKBdbw.js.map} +1 -1
- package/dist/assets/_commonjsHelpers-CqkleIqs.js +2 -0
- package/dist/assets/_commonjsHelpers-CqkleIqs.js.map +1 -0
- package/dist/assets/_plugin-vue_export-helper-DlAUqK2U.js +2 -0
- package/dist/assets/_plugin-vue_export-helper-DlAUqK2U.js.map +1 -0
- package/dist/assets/addon-fit-CevVMrUA.js +2 -0
- package/dist/assets/addon-fit-CevVMrUA.js.map +1 -0
- package/dist/assets/index-Bygbts8t.js +129 -0
- package/dist/assets/index-Bygbts8t.js.map +1 -0
- package/dist/assets/index-DOv3m8-x.css +1 -0
- package/dist/assets/{useDeployment-B6jhAMSe.js → useDeployment-C4MdUG63.js} +2 -2
- package/dist/assets/{useDeployment-B6jhAMSe.js.map → useDeployment-C4MdUG63.js.map} +1 -1
- package/dist/assets/xterm-D6Mng-DB.js +10 -0
- package/dist/assets/xterm-D6Mng-DB.js.map +1 -0
- package/dist/assets/xterm-DYP7pi_n.css +32 -0
- package/dist/index.html +2 -2
- package/nginx.conf +17 -1
- package/package.json +3 -1
- package/dist/assets/DangerTab-BUfuJ0MC.js +0 -2
- package/dist/assets/DashboardView-DHYQn3Mi.js +0 -2
- package/dist/assets/DashboardView-DHYQn3Mi.js.map +0 -1
- package/dist/assets/DeploymentDetailView-DXvZu_pa.js +0 -2
- package/dist/assets/DeploymentDetailView-DXvZu_pa.js.map +0 -1
- package/dist/assets/DeploymentsView-C0Z2RIx1.js +0 -2
- package/dist/assets/DeploymentsView-C0Z2RIx1.js.map +0 -1
- package/dist/assets/JobsView-Dlv1T547.js +0 -2
- package/dist/assets/JobsView-Dlv1T547.js.map +0 -1
- package/dist/assets/LogsTab-CECPXx_O.js +0 -4
- package/dist/assets/LogsTab-CECPXx_O.js.map +0 -1
- package/dist/assets/NotFoundView-D4P7ej9y.js +0 -2
- package/dist/assets/OverviewTab-k0B5wCfH.js +0 -2
- package/dist/assets/OverviewTab-k0B5wCfH.js.map +0 -1
- package/dist/assets/RegistriesView-r-FHyu2l.js +0 -2
- package/dist/assets/RuntimeTab-z5tBtP5a.js +0 -2
- package/dist/assets/RuntimeTab-z5tBtP5a.js.map +0 -1
- package/dist/assets/SettingsView-DF18WFzT.js +0 -2
- package/dist/assets/SettingsView-DF18WFzT.js.map +0 -1
- package/dist/assets/SkeletonList.vue_vue_type_script_setup_true_lang-CrqRcqcf.js +0 -2
- package/dist/assets/SpecDetailView-QKk7yCjK.js +0 -2
- package/dist/assets/SpecsView-BIQkHWcI.js +0 -2
- package/dist/assets/SpecsView-BIQkHWcI.js.map +0 -1
- package/dist/assets/StateBadge.vue_vue_type_script_setup_true_lang-DGyF-Maq.js +0 -2
- package/dist/assets/SubmitView-Cv_QCAe0.js +0 -45
- package/dist/assets/SubmitView-Cv_QCAe0.js.map +0 -1
- package/dist/assets/index-Ca3L5StC.css +0 -1
- package/dist/assets/index-DXW03q8i.js +0 -124
- package/dist/assets/index-DXW03q8i.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0e1116;--bg-grad: radial-gradient(1100px 620px at 12% -12%, rgba(64, 106, 168, .22) 0%, transparent 70%), radial-gradient(900px 520px at 108% 8%, rgba(96, 76, 168, .13) 0%, transparent 68%);--panel: #171b22;--panel-2: #1e232c;--sunk: #11141a;--line: #2b323d;--line-soft: #21262f;--fg: #eef2f8;--fg-dim: #a4afbe;--fg-mute: #78838f;--accent: #4a9dff;--accent-soft: rgba(74, 157, 255, .18);--ok: #35d17e;--ok-soft: rgba(53, 209, 126, .17);--fail: #ff6159;--fail-soft: rgba(255, 97, 89, .17);--leak: #ffa62b;--leak-soft: rgba(255, 166, 43, .18);--neutral: #95a2b3;--neutral-soft: rgba(149, 162, 179, .16);--hairline: inset 0 1px 0 rgba(255, 255, 255, .055);--hairline-strong: inset 0 1px 0 rgba(255, 255, 255, .09);--elev-1: 0 1px 2px rgba(5, 8, 14, .5);--elev-2: 0 1px 2px rgba(5, 8, 14, .45), 0 6px 16px -4px rgba(5, 8, 14, .5);--elev-3: 0 1px 2px rgba(5, 8, 14, .5), 0 12px 32px -8px rgba(5, 8, 14, .62);--elev-4: 0 2px 4px rgba(5, 8, 14, .5), 0 24px 64px -12px rgba(5, 8, 14, .72);--shadow: var(--elev-2);--hover: rgba(255, 255, 255, .04);--hover-strong: rgba(255, 255, 255, .07);--press: rgba(0, 0, 0, .18);--skel: linear-gradient(90deg, #1c212a 0%, #262d38 50%, #1c212a 100%)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--bg: #f5f6f8;--bg-grad: radial-gradient(1100px 620px at 12% -12%, rgba(31, 111, 235, .07) 0%, transparent 70%), radial-gradient(900px 520px at 108% 8%, rgba(120, 80, 220, .045) 0%, transparent 68%);--panel: #ffffff;--panel-2: #f4f6f9;--sunk: #eef1f5;--line: #dfe3e9;--line-soft: #eaedf1;--fg: #14181e;--fg-dim: #57616f;--fg-mute: #7d8794;--accent: #1f6feb;--accent-soft: rgba(31, 111, 235, .1);--ok: #1a7f37;--ok-soft: rgba(26, 127, 55, .1);--fail: #cf222e;--fail-soft: rgba(207, 34, 46, .1);--leak: #9a6700;--leak-soft: rgba(154, 103, 0, .12);--neutral: #656d76;--neutral-soft: rgba(101, 109, 118, .1);--hairline: inset 0 1px 0 rgba(255, 255, 255, .9);--hairline-strong: inset 0 1px 0 rgba(255, 255, 255, 1);--elev-1: 0 1px 1px rgba(16, 24, 40, .05);--elev-2: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 12px -2px rgba(16, 24, 40, .07);--elev-3: 0 1px 2px rgba(16, 24, 40, .07), 0 10px 28px -6px rgba(16, 24, 40, .1);--elev-4: 0 2px 4px rgba(16, 24, 40, .07), 0 22px 56px -10px rgba(16, 24, 40, .14);--shadow: var(--elev-2);--hover: rgba(16, 24, 40, .035);--hover-strong: rgba(16, 24, 40, .06);--press: rgba(16, 24, 40, .07);--skel: linear-gradient(90deg, #e9edf2 0%, #f6f8fa 50%, #e9edf2 100%)}}:root[data-theme=light]{color-scheme:light;--bg: #f5f6f8;--bg-grad: radial-gradient(1100px 620px at 12% -12%, rgba(31, 111, 235, .07) 0%, transparent 70%), radial-gradient(900px 520px at 108% 8%, rgba(120, 80, 220, .045) 0%, transparent 68%);--panel: #ffffff;--panel-2: #f4f6f9;--sunk: #eef1f5;--line: #dfe3e9;--line-soft: #eaedf1;--fg: #14181e;--fg-dim: #57616f;--fg-mute: #7d8794;--accent: #1f6feb;--accent-soft: rgba(31, 111, 235, .1);--ok: #1a7f37;--ok-soft: rgba(26, 127, 55, .1);--fail: #cf222e;--fail-soft: rgba(207, 34, 46, .1);--leak: #9a6700;--leak-soft: rgba(154, 103, 0, .12);--neutral: #656d76;--neutral-soft: rgba(101, 109, 118, .1);--hairline: inset 0 1px 0 rgba(255, 255, 255, .9);--hairline-strong: inset 0 1px 0 rgba(255, 255, 255, 1);--elev-1: 0 1px 1px rgba(16, 24, 40, .05);--elev-2: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 12px -2px rgba(16, 24, 40, .07);--elev-3: 0 1px 2px rgba(16, 24, 40, .07), 0 10px 28px -6px rgba(16, 24, 40, .1);--elev-4: 0 2px 4px rgba(16, 24, 40, .07), 0 22px 56px -10px rgba(16, 24, 40, .14);--shadow: var(--elev-2);--hover: rgba(16, 24, 40, .035);--hover-strong: rgba(16, 24, 40, .06);--press: rgba(16, 24, 40, .07);--skel: linear-gradient(90deg, #e9edf2 0%, #f6f8fa 50%, #e9edf2 100%)}:root{--t-xs: 12px;--t-sm: 13.5px;--t-md: 15px;--t-lg: 17px;--t-xl: 22px;--t-2xl: 28px;--t-3xl: 36px;--track-display: -.022em;--track-title: -.014em;--track-body: -.003em;--track-caps: .075em;--lh-tight: 1.15;--lh-body: 1.55;--sans: -apple-system, BlinkMacSystemFont, "Inter var", Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--r1: 9px;--r2: 13px;--r3: 16px;--r4: 20px;--rail: 216px;--gap-shell: 12px;--measure: 1240px;--ring: 0 0 0 2px var(--bg), 0 0 0 4px color-mix(in srgb, var(--accent) 62%, transparent);--dur-fast: .11s;--dur: .17s;--dur-slow: .28s;--ease: cubic-bezier(.2, .7, .3, 1);--ease-spring: cubic-bezier(.22, 1.4, .36, 1);--stagger-step: 26ms}@media(prefers-reduced-motion:reduce){:root:not([data-motion=full]){--dur-fast: 0ms;--dur: 0ms;--dur-slow: 0ms;--stagger-step: 0ms}:root:not([data-motion=full]) *,:root:not([data-motion=full]) *:before,:root:not([data-motion=full]) *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}:root:not([data-motion=full])::view-transition-old(root),:root:not([data-motion=full])::view-transition-new(root){animation:none!important}}:root[data-motion=none]{--dur-fast: 0ms;--dur: 0ms;--dur-slow: 0ms;--stagger-step: 0ms}:root[data-motion=none] *,:root[data-motion=none] *:before,:root[data-motion=none] *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}:root[data-motion=none]::view-transition-old(root),:root[data-motion=none]::view-transition-new(root){animation:none!important}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);background-image:var(--bg-grad);background-attachment:fixed;color:var(--fg);font:var(--t-md) / var(--lh-body) var(--sans);letter-spacing:var(--track-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums;font-feature-settings:"cv05" 1;overflow-x:hidden}h1,h2,h3,p,ul,figure{margin:0}ul{padding:0;list-style:none}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--mono);font-size:.92em}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r1)}a:focus-visible{border-radius:4px}.skip{position:absolute;left:-9999px;top:0;z-index:100;padding:var(--s2) var(--s3);background:var(--panel);border:1px solid var(--line);border-radius:var(--r1)}.skip:focus{left:var(--s3);top:var(--s3)}.shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100%;padding:var(--gap-shell);gap:var(--gap-shell)}.shell.no-rail{grid-template-columns:minmax(0,1fr)}.rail{border:1px solid var(--line);border-radius:var(--r4);background:color-mix(in srgb,var(--panel) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--s4) var(--s3);position:sticky;top:var(--gap-shell);height:calc(100vh - var(--gap-shell) * 2);display:flex;flex-direction:column;gap:var(--s4);box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:var(--s2);font-size:var(--t-lg);font-weight:650;letter-spacing:-.01em;color:var(--fg)}.brand:hover{text-decoration:none}.brand svg{color:var(--accent)}.rail nav{display:flex;flex-direction:column;gap:2px}.navlink{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r1);color:var(--fg-dim);font-weight:500;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.navlink:hover{background:var(--panel-2);color:var(--fg);text-decoration:none}.navlink.router-link-active{background:var(--accent-soft);color:var(--accent)}.navlink svg{flex:none}.navlink .count{margin-left:auto;font:600 var(--t-xs) / 1 var(--sans);font-variant-numeric:tabular-nums;color:var(--fg-mute);background:var(--panel-2);padding:3px 6px;border-radius:999px}.rail .foot{margin-top:auto;font-size:var(--t-xs);color:var(--fg-mute);display:grid;gap:var(--s1);word-break:break-all}.view{min-width:0;padding:var(--s3) var(--s4) var(--s7);max-width:1180px}@media(max-width:800px){.shell{grid-template-columns:minmax(0,1fr);padding:var(--gap-shell) var(--s2) 0}.rail{position:fixed;inset:auto var(--s2) calc(var(--s2) + env(safe-area-inset-bottom)) var(--s2);height:auto;flex-direction:row;align-items:center;gap:var(--s1);padding:var(--s2);background:color-mix(in srgb,var(--panel) 94%,transparent);z-index:20}.rail .brand,.rail .foot{display:none}.rail nav{flex-direction:row;flex:1;justify-content:space-around}.navlink{flex-direction:column;gap:2px;font-size:var(--t-xs);padding:var(--s1) var(--s2);min-width:56px;align-items:center}.navlink .count{display:none}.view{padding:var(--s4) var(--s4) calc(84px + env(safe-area-inset-bottom))}}.page-head{display:flex;align-items:flex-start;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s5)}.page-head h1{font-size:var(--t-2xl);font-weight:640;letter-spacing:var(--track-display);line-height:var(--lh-tight)}.page-head .sub{color:var(--fg-dim);font-size:var(--t-sm);margin-top:2px}.grow{flex:1}h2.section{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--fg-dim);font-weight:620}h3{font-size:var(--t-md);font-weight:600}.dim{color:var(--fg-dim)}.mute{color:var(--fg-mute)}.nowrap{white-space:nowrap}.break{word-break:break-all}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s4) var(--s4) var(--s5);margin-bottom:var(--s4);min-width:0;container-type:inline-size;box-shadow:var(--hairline),var(--elev-2)}.panel.flush{padding:0;overflow:hidden}.panel>.phead{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s3)}.panel.flush>.phead{padding:var(--s4) var(--s4) 0}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s4);align-items:start}.row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}button,.btn{font:530 var(--t-sm) / 1 var(--sans);letter-spacing:var(--track-body);color:var(--fg);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r1);padding:var(--s2) var(--s3);min-height:32px;cursor:pointer;display:inline-flex;align-items:center;gap:var(--s2);position:relative;overflow:hidden;box-shadow:var(--hairline),var(--elev-1);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}button:hover:not(:disabled),.btn:hover{border-color:color-mix(in srgb,var(--fg-mute) 60%,var(--line));background:color-mix(in srgb,var(--hover) 100%,var(--panel-2));text-decoration:none}button:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 2px 4px var(--press)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff) 0%,var(--accent) 100%);border-color:color-mix(in srgb,var(--accent) 75%,#000);color:#fff;box-shadow:var(--hairline-strong),var(--elev-2),0 0 color-mix(in srgb,var(--accent) 40%,transparent)}button.primary:hover:not(:disabled){background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 78%,#fff),color-mix(in srgb,var(--accent) 94%,#fff));border-color:color-mix(in srgb,var(--accent) 75%,#000);box-shadow:var(--hairline-strong),var(--elev-2),0 0 18px -2px color-mix(in srgb,var(--accent) 45%,transparent)}button.danger{background:var(--fail-soft);border-color:color-mix(in srgb,var(--fail) 45%,transparent);color:var(--fail)}button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--fail) 26%,transparent);border-color:color-mix(in srgb,var(--fail) 62%,transparent)}button.ghost{background:transparent;box-shadow:none}button.ghost:hover:not(:disabled){background:var(--hover)}button.sm{min-height:27px;padding:var(--s1) var(--s2);font-size:var(--t-xs)}button .progress{position:absolute;inset:auto 0 0 0;height:2px;background:currentColor;opacity:.65;animation:indeterminate 1.1s var(--ease) infinite;transform-origin:left}input[type=text],input[type=password],input[type=search],textarea,select{font:var(--t-sm) / 1.5 var(--sans);letter-spacing:var(--track-body);color:var(--fg);background:var(--sunk);border:1px solid var(--line);border-radius:var(--r1);padding:var(--s2) var(--s3);min-height:32px;width:100%;min-width:0;box-shadow:inset 0 1px 2px var(--press);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}input[type=text]:hover,input[type=password]:hover,input[type=search]:hover,textarea:hover,select:hover{border-color:color-mix(in srgb,var(--fg-mute) 55%,var(--line))}input[type=text]:focus,input[type=password]:focus,input[type=search]:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:inset 0 1px 2px var(--press),0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}textarea{font-family:var(--mono);font-size:var(--t-sm);line-height:1.55;resize:vertical;white-space:pre;overflow-wrap:normal;overflow-x:auto}input::placeholder,textarea::placeholder{color:var(--fg-mute)}label{font-size:var(--t-sm);color:var(--fg-dim)}.field{display:grid;gap:var(--s2);min-width:0}.field+.field,.field+.hint,.hint+.field{margin-top:var(--s4)}.check{display:inline-flex;align-items:center;gap:var(--s2);cursor:pointer;color:var(--fg)}.check input{width:auto;min-height:0;accent-color:var(--accent)}.kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:var(--s2);margin-bottom:var(--s2);align-items:center}.kv.head{font-size:var(--t-xs);color:var(--fg-mute);text-transform:uppercase;letter-spacing:.06em}@media(max-width:560px){.kv{grid-template-columns:minmax(0,1fr) auto}.kv.head{display:none}}.badge{display:inline-flex;align-items:center;gap:5px;font:500 var(--t-xs) / 1 var(--sans);padding:4px 8px;border-radius:999px;background:var(--neutral-soft);color:var(--fg-dim);border:1px solid transparent;white-space:nowrap}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.failed,.badge.fail{background:var(--fail-soft);color:var(--fail)}.badge.leaked,.badge.warn{background:var(--leak-soft);color:var(--leak)}.badge.running,.badge.busy,.badge.info{background:var(--accent-soft);color:var(--accent)}.badge.unknown{background:var(--neutral-soft);color:var(--neutral)}.badge.shared{background:var(--leak-soft);color:var(--leak)}.badge.isolated{background:var(--accent-soft);color:var(--accent)}.badge.off{opacity:.38}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.running .dot,.dot.pulse{animation:pulse 1.6s var(--ease) infinite}.banner{border:1px solid var(--line);border-left-width:3px;border-radius:var(--r2);padding:var(--s3) var(--s4);margin:var(--s3) 0;background:var(--panel-2);font-size:var(--t-sm)}.banner b{color:var(--fg)}.banner p{margin-top:var(--s2);color:var(--fg-dim)}.banner.ok{border-left-color:var(--ok);background:var(--ok-soft)}.banner.failed{border-left-color:var(--fail);background:var(--fail-soft)}.banner.leaked,.banner.warn{border-left-color:var(--leak);background:var(--leak-soft)}.banner.info{border-left-color:var(--accent);background:var(--accent-soft)}.banner.plain{border-left-color:var(--fg-mute)}.hint{font-size:var(--t-sm);color:var(--fg-mute);margin-top:var(--s3)}.hint code,.banner code{background:var(--sunk);padding:1px 5px;border-radius:4px}table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}th{text-align:left;font:620 var(--t-xs) / 1 var(--sans);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--fg-mute);padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1;background:var(--panel);white-space:nowrap}td{padding:var(--s2) var(--s3);border-bottom:1px solid var(--line-soft);vertical-align:middle}tbody tr{transition:background var(--dur-fast) var(--ease)}tbody tr:hover{background:var(--hover)}tbody tr:last-child td{border-bottom:none}td.name{font-weight:600;word-break:break-all}@media(max-width:640px){table.cards,table.cards tbody,table.cards tr,table.cards td{display:block;width:100%}table.cards thead{display:none}table.cards tr{border:1px solid var(--line);border-radius:var(--r2);padding:var(--s2) var(--s3);margin-bottom:var(--s2);background:var(--panel-2)}table.cards td{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);border:0;padding:var(--s1) 0;text-align:right}table.cards td:before{content:attr(data-label);font:600 var(--t-xs) / 1.6 var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-mute);text-align:left;flex:none}table.cards td[colspan]{text-align:left}table.cards td[colspan]:before{content:""}}.kvlist{display:grid;gap:1px;background:var(--line-soft);border-radius:var(--r2);overflow:hidden}.kvlist>li{display:flex;gap:var(--s3);padding:var(--s3);background:var(--panel);align-items:baseline;flex-wrap:wrap}.kvlist>li>.k{flex:none;width:128px;color:var(--fg-dim);font-size:var(--t-sm)}.kvlist>li>.v{flex:1;min-width:0;word-break:break-word}@media(max-width:480px){.kvlist>li>.k{width:100%}}pre.raw,pre.log{font-family:var(--mono);font-size:var(--t-sm);line-height:1.6;background:var(--sunk);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3);margin:var(--s3) 0 0;overflow:auto;white-space:pre}pre.raw{color:var(--fail);max-height:420px}pre.code{font-family:var(--mono);font-size:var(--t-sm);line-height:1.6;background:var(--sunk);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3);margin:0;max-height:520px;overflow:auto;white-space:pre;color:var(--fg-dim)}pre.log{max-height:460px;color:var(--fg-dim)}pre.log .t{color:var(--fg-mute)}pre.log .lv-error{color:var(--fail)}pre.log .lv-warn{color:var(--leak)}pre.log .lv-info{color:var(--fg)}pre.log mark{background:var(--leak-soft);color:var(--leak)}.masked{color:var(--fg-mute);letter-spacing:.12em}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}@container (min-width: 680px){.stats{grid-template-columns:repeat(6,1fr)}}.stat{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--r2);padding:var(--s3);box-shadow:var(--hairline);min-width:0}.stat .v{font:600 var(--t-2xl) / 1.1 var(--sans);letter-spacing:var(--track-display);font-variant-numeric:tabular-nums}.stat[data-zero=true] .v{color:var(--fg-mute);font-weight:500}.stat .k{font-size:var(--t-xs);color:var(--fg-mute);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat.unknown .v{color:var(--neutral)}.stat.busy .v{color:var(--accent)}.stat.leak .v{color:var(--leak)}.tabs{display:flex;gap:var(--s1);border-bottom:1px solid var(--line);margin-bottom:var(--s4);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:var(--s2) var(--s3);color:var(--fg-dim);font-size:var(--t-sm);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.tabs a:hover{color:var(--fg);text-decoration:none}.tabs a.router-link-active{color:var(--fg);border-bottom-color:var(--accent)}.steps{display:grid;gap:1px;background:var(--line-soft);border-radius:var(--r2);overflow:hidden}.step{display:grid;grid-template-columns:24px minmax(0,1fr);gap:var(--s3);padding:var(--s3);background:var(--panel);align-items:start}.step .mark{font:600 var(--t-lg) / 1.2 var(--sans);text-align:center}.step .who{font-weight:550;word-break:break-all}.step .msg{font-size:var(--t-sm);color:var(--fg-dim);word-break:break-word}.s-ok{color:var(--ok)}.s-failed{color:var(--fail)}.s-leaked{color:var(--leak)}.s-unverifiable{color:var(--neutral)}.skel{background:var(--skel);background-size:200% 100%;border-radius:var(--r1);height:14px;animation:shimmer 1.3s linear infinite}.skel+.skel{margin-top:var(--s2)}.skel.tall{height:44px}.skel.w60{width:60%}.skel.w40{width:40%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@keyframes indeterminate{0%{transform:scaleX(0)}50%{transform:scaleX(.7)}to{transform:scaleX(0);transform-origin:right}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes land{0%{transform:scale(.985);opacity:.4}60%{transform:scale(1.004)}to{transform:none;opacity:1}}.stagger>*{animation:rise var(--dur) var(--ease) backwards;animation-delay:calc(var(--i, 0) * var(--stagger-step))}.land{animation:land var(--dur-slow) var(--ease)}.view-enter-active,.view-leave-active{transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.view-enter-from{opacity:0;transform:translateY(6px)}.view-leave-to{opacity:0;transform:translateY(-4px)}.toasts{position:fixed;right:var(--s4);bottom:var(--s4);z-index:50;display:grid;gap:var(--s2);width:min(360px,calc(100vw - var(--s5)))}@media(max-width:800px){.toasts{bottom:calc(84px + env(safe-area-inset-bottom))}}.toast{display:flex;gap:var(--s3);align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3) var(--s3) var(--s3) var(--s2);box-shadow:var(--hairline),var(--elev-4);font-size:var(--t-sm);position:relative}.toast:before{content:"";flex:none;width:8px;height:8px;margin:6px 0 0 var(--s2);border-radius:50%;background:var(--neutral);box-shadow:0 0 0 3px var(--neutral-soft)}.toast.ok:before{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.toast.error:before{background:var(--fail);box-shadow:0 0 0 3px var(--fail-soft)}.toast.warn:before{background:var(--leak);box-shadow:0 0 0 3px var(--leak-soft)}.toast.info:before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.toast .x{margin-left:auto;background:none;border:0;min-height:0;padding:2px 6px;color:var(--fg-mute)}.toast-enter-active,.toast-leave-active{transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(12px)}.toast-move{transition:transform var(--dur) var(--ease)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:60;display:grid;place-items:center;padding:var(--s4)}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow);padding:var(--s5);width:min(460px,100%);max-height:80vh;overflow:auto}.sheet dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s2) var(--s4);margin:var(--s4) 0 0;align-items:baseline}.sheet dt{text-align:right}.sheet dd{margin:0;color:var(--fg-dim);font-size:var(--t-sm)}kbd{font:500 var(--t-xs) / 1 var(--mono);background:var(--sunk);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:4px 6px;color:var(--fg)}.fade-enter-active,.fade-leave-active{transition:opacity var(--dur) var(--ease)}.fade-enter-from,.fade-leave-to{opacity:0}.hint-wrap{position:relative;display:inline-flex;vertical-align:middle;margin-inline-start:var(--s1)}.hint-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-height:0;padding:0;border:0;border-radius:999px;background:none;color:var(--fg-mute);cursor:pointer;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.hint-btn:hover,.hint-btn.on{color:var(--accent);background:var(--accent-soft)}.hint-bub{position:absolute;z-index:40;width:max-content;max-width:min(300px,74vw);padding:var(--s2) var(--s3);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow);color:var(--fg-dim);font:400 var(--t-sm) / 1.5 var(--sans);text-transform:none;letter-spacing:normal;white-space:normal;text-align:start;pointer-events:none}.hint-bub.below{top:calc(100% + 6px)}.hint-bub.above{bottom:calc(100% + 6px)}.hint-bub.to-start{inset-inline-start:-2px}.hint-bub.to-end{inset-inline-end:-2px}.hint-bub code{color:var(--fg)}.hint-enter-active,.hint-leave-active{transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.hint-enter-from,.hint-leave-to{opacity:0}.hint-bub.below.hint-enter-from,.hint-bub.below.hint-leave-to{transform:translateY(-3px)}.hint-bub.above.hint-enter-from,.hint-bub.above.hint-leave-to{transform:translateY(3px)}.palette-scrim{align-items:flex-start;padding-top:12vh}.palette{width:min(620px,calc(100vw - var(--s5)));background:var(--panel);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--hairline-strong),var(--elev-4);overflow:hidden;display:flex;flex-direction:column;max-height:min(60vh,560px)}.palette-q{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line-soft);color:var(--fg-mute)}.palette-q input{flex:1;background:none;border:none;box-shadow:none;padding:0;min-height:26px;font-size:var(--t-lg);letter-spacing:var(--track-title);color:var(--fg)}.palette-q input:focus{outline:none;border:none;box-shadow:none}.palette-list{overflow-y:auto;padding:var(--s2);min-height:0}.palette-group{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--fg-mute);padding:var(--s3) var(--s2) var(--s1)}.palette-row{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;background:none;border:none;box-shadow:none;border-radius:var(--r1);padding:var(--s2) var(--s3);min-height:34px;color:var(--fg)}.palette-row[data-on=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent)}.palette-label{font-weight:520}.palette-hint{margin-left:auto;color:var(--fg-mute);font-size:var(--t-xs);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}.palette-empty{color:var(--fg-mute);padding:var(--s5) var(--s3);text-align:center;font-size:var(--t-sm)}.palette-foot{display:flex;gap:var(--s4);align-items:center;padding:var(--s2) var(--s4);border-top:1px solid var(--line-soft);background:var(--panel-2);color:var(--fg-mute);font-size:var(--t-xs)}kbd{font:500 11px / 1 var(--mono);color:var(--fg-dim);background:var(--sunk);border:1px solid var(--line);border-radius:5px;padding:3px 5px;margin-right:3px}.fade-enter-active .palette{animation:palette-in var(--dur-slow) var(--ease-spring)}@keyframes palette-in{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur);animation-timing-function:var(--ease)}::view-transition-old(root){animation-name:vt-out}::view-transition-new(root){animation-name:vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(4px)}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=useDeployment-
|
|
1
|
+
import{U as n,D as i,B as d,C as l,L as p,V as c}from"./index-Bygbts8t.js";import{w as u,r as y}from"./useVars-VN9gYdR6.js";const e=n({id:"",detail:null,error:"",loading:!1,vars:[]}),f=i(()=>p(e.vars)),k=i(()=>c(e.id)),b=i(()=>{var a;return((a=e.detail)==null?void 0:a.kind)==="shared"}),h=i(()=>{var a;return(((a=e.detail)==null?void 0:a.axes)??[]).filter(s=>!s.verifiable).map(s=>s.name)});async function t(){const a=e.id;e.loading=!0;const s=await d.get(`/api/deployments/${encodeURIComponent(a)}${f.value}`);if(e.id!==a)return;if(e.loading=!1,!s.ok){e.detail=null,e.error=l(s,`GET /api/deployments/${a}`);return}e.error="";const r=s.body;e.detail={id:r.id??a,kind:r.kind==="shared"?"shared":"isolated",createdAt:r.createdAt,updatedAt:r.updatedAt,stack:typeof r.stack=="string"?r.stack:"",busy:r.busy??null,compose:r.compose?{file:r.compose.file??"?",profiles:r.compose.profiles??[],overlays:r.compose.overlays??[]}:null,requires:Array.isArray(r.requires)?r.requires:[],axes:(Array.isArray(r.axes)?r.axes:[]).map(o=>({name:o.name,hooks:Array.isArray(o.hooks)?o.hooks:[],verifiable:o.verifiable??(Array.isArray(o.hooks)&&o.hooks.includes("assert_gone"))})),env:Array.isArray(r.env)?r.env:[]}}function g(a){e.id===a&&(e.detail||e.error)||(e.id=a,e.detail=null,e.error="",e.vars=y(a),t())}function m(){u(e.id,e.vars)}function x(){m(),t()}export{x as a,e as d,b as i,g as o,m as p,k as r,h as u,f as v};
|
|
2
|
+
//# sourceMappingURL=useDeployment-C4MdUG63.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeployment-
|
|
1
|
+
{"version":3,"file":"useDeployment-C4MdUG63.js","sources":["../../src/composables/useDeployment.ts"],"sourcesContent":["/**\n * The deployment currently open in the detail view.\n *\n * A module singleton rather than provide/inject, because the six tabs are CHILD ROUTES: they are\n * siblings of each other and are mounted and unmounted independently, so passing the loaded\n * deployment down as a prop would mean re-fetching it on every tab change. Switching tabs must not\n * re-fetch or blank the panel — only opening a DIFFERENT deployment does.\n *\n * `vars` here are REQUEST-TIME variables, sent as `?query` on every route that resolves this\n * deployment. See `useVars.ts` for why they matter and what they can get wrong.\n */\n\nimport { computed, reactive } from 'vue';\nimport { api, problem, query } from '../api/client';\nimport type { Deployment, VarPair } from '../api/types';\nimport { readVars, writeVars } from './useVars';\nimport { rowFor } from './useControlPlane';\n\nexport const dep = reactive({\n id: '',\n detail: null as Deployment | null,\n /** The resolve failure, verbatim. It is a 400 that NAMES the missing variable. */\n error: '',\n loading: false,\n vars: [] as VarPair[],\n});\n\nexport const varsQuery = computed(() => query(dep.vars));\n\n/** The list row, which is the only place the server exposes stored `vars` and `specName` today. */\nexport const row = computed(() => rowFor(dep.id));\n\nexport const isShared = computed(() => dep.detail?.kind === 'shared');\n\nexport const unverifiableAxes = computed(() =>\n (dep.detail?.axes ?? []).filter((a) => !a.verifiable).map((a) => a.name),\n);\n\nexport async function loadDetail(): Promise<void> {\n const id = dep.id;\n dep.loading = true;\n const r = await api.get<Deployment>(`/api/deployments/${encodeURIComponent(id)}${varsQuery.value}`);\n // Navigated to another deployment while this was in flight: drop the answer rather than render\n // one deployment's spec under another's id.\n if (dep.id !== id) return;\n dep.loading = false;\n\n if (!r.ok) {\n dep.detail = null;\n dep.error = problem(r, `GET /api/deployments/${id}`);\n return;\n }\n dep.error = '';\n const b = r.body;\n dep.detail = {\n id: b.id ?? id,\n kind: b.kind === 'shared' ? 'shared' : 'isolated',\n createdAt: b.createdAt,\n updatedAt: b.updatedAt,\n stack: typeof b.stack === 'string' ? b.stack : '',\n busy: b.busy ?? null,\n compose: b.compose\n ? {\n file: b.compose.file ?? '?',\n profiles: b.compose.profiles ?? [],\n overlays: b.compose.overlays ?? [],\n }\n : null,\n requires: Array.isArray(b.requires) ? b.requires : [],\n axes: (Array.isArray(b.axes) ? b.axes : []).map((a) => ({\n name: a.name,\n hooks: Array.isArray(a.hooks) ? a.hooks : [],\n // Derive it if an older build omits the field. Defaulting to `false` would claim an axis is\n // unverifiable when it may define a perfectly good `assert_gone`.\n verifiable: a.verifiable ?? (Array.isArray(a.hooks) && a.hooks.includes('assert_gone')),\n })),\n env: Array.isArray(b.env) ? b.env : [],\n };\n}\n\n/** Point the singleton at a deployment. Resets everything a stale id could leak into the new one. */\nexport function openDeployment(id: string): void {\n if (dep.id === id && (dep.detail || dep.error)) return; // a tab change, not a navigation\n dep.id = id;\n dep.detail = null;\n dep.error = '';\n dep.vars = readVars(id);\n void loadDetail();\n}\n\nexport function persistVars(): void {\n writeVars(dep.id, dep.vars);\n}\n\nexport function applyVars(): void {\n persistVars();\n void loadDetail();\n}\n"],"names":["dep","reactive","varsQuery","computed","query","row","rowFor","isShared","_a","unverifiableAxes","a","loadDetail","id","r","api","problem","b","openDeployment","readVars","persistVars","writeVars","applyVars"],"mappings":"4HAkBO,MAAMA,EAAMC,EAAS,CAC1B,GAAI,GACJ,OAAQ,KAER,MAAO,GACP,QAAS,GACT,KAAM,CAAA,CACR,CAAC,EAEYC,EAAYC,EAAS,IAAMC,EAAMJ,EAAI,IAAI,CAAC,EAG1CK,EAAMF,EAAS,IAAMG,EAAON,EAAI,EAAE,CAAC,EAEnCO,EAAWJ,EAAS,IAAA,OAAM,QAAAK,EAAAR,EAAI,SAAJ,YAAAQ,EAAY,QAAS,SAAQ,EAEvDC,EAAmBN,EAAS,IAAA,OACtC,SAAAK,EAAAR,EAAI,SAAJ,YAAAQ,EAAY,OAAQ,CAAA,GAAI,OAAQE,GAAM,CAACA,EAAE,UAAU,EAAE,IAAKA,GAAMA,EAAE,IAAI,EACzE,EAEA,eAAsBC,GAA4B,CAChD,MAAMC,EAAKZ,EAAI,GACfA,EAAI,QAAU,GACd,MAAMa,EAAI,MAAMC,EAAI,IAAgB,oBAAoB,mBAAmBF,CAAE,CAAC,GAAGV,EAAU,KAAK,EAAE,EAGlG,GAAIF,EAAI,KAAOY,EAAI,OAGnB,GAFAZ,EAAI,QAAU,GAEV,CAACa,EAAE,GAAI,CACTb,EAAI,OAAS,KACbA,EAAI,MAAQe,EAAQF,EAAG,wBAAwBD,CAAE,EAAE,EACnD,MACF,CACAZ,EAAI,MAAQ,GACZ,MAAMgB,EAAIH,EAAE,KACZb,EAAI,OAAS,CACX,GAAIgB,EAAE,IAAMJ,EACZ,KAAMI,EAAE,OAAS,SAAW,SAAW,WACvC,UAAWA,EAAE,UACb,UAAWA,EAAE,UACb,MAAO,OAAOA,EAAE,OAAU,SAAWA,EAAE,MAAQ,GAC/C,KAAMA,EAAE,MAAQ,KAChB,QAASA,EAAE,QACP,CACE,KAAMA,EAAE,QAAQ,MAAQ,IACxB,SAAUA,EAAE,QAAQ,UAAY,CAAA,EAChC,SAAUA,EAAE,QAAQ,UAAY,CAAA,CAAC,EAEnC,KACJ,SAAU,MAAM,QAAQA,EAAE,QAAQ,EAAIA,EAAE,SAAW,CAAA,EACnD,MAAO,MAAM,QAAQA,EAAE,IAAI,EAAIA,EAAE,KAAO,CAAA,GAAI,IAAKN,IAAO,CACtD,KAAMA,EAAE,KACR,MAAO,MAAM,QAAQA,EAAE,KAAK,EAAIA,EAAE,MAAQ,CAAA,EAG1C,WAAYA,EAAE,aAAe,MAAM,QAAQA,EAAE,KAAK,GAAKA,EAAE,MAAM,SAAS,aAAa,EAAA,EACrF,EACF,IAAK,MAAM,QAAQM,EAAE,GAAG,EAAIA,EAAE,IAAM,CAAA,CAAC,CAEzC,CAGO,SAASC,EAAeL,EAAkB,CAC3CZ,EAAI,KAAOY,IAAOZ,EAAI,QAAUA,EAAI,SACxCA,EAAI,GAAKY,EACTZ,EAAI,OAAS,KACbA,EAAI,MAAQ,GACZA,EAAI,KAAOkB,EAASN,CAAE,EACjBD,EAAA,EACP,CAEO,SAASQ,GAAoB,CAClCC,EAAUpB,EAAI,GAAIA,EAAI,IAAI,CAC5B,CAEO,SAASqB,GAAkB,CAChCF,EAAA,EACKR,EAAA,CACP"}
|