@meddleware/ui 0.1.19 → 0.1.21
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/dist/base.css +1 -1
- package/dist/components/SidebarGroup.vue.d.ts +63 -0
- package/dist/components/UiStepper.vue.d.ts +15 -0
- package/dist/index.d.ts +3 -0
- package/dist/ui.js +207 -148
- package/package.json +1 -1
package/dist/base.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--mw-font-sans);font-size:var(--font-size-base);line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}:where(ul,ol):where([role=list],[role=listitem]){margin:0;padding:0;list-style:none}:where(img,svg,video,canvas){max-width:100%;display:block}:where(fieldset){border:0;margin:0;padding:0}a{color:var(--accent);transition:color var(--transition-base);text-decoration:none}a:hover{text-decoration:underline}:where(button,input,select,textarea){font-family:inherit}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-mono{font-family:var(--mw-font-mono)}.mw-noise{isolation:isolate;position:relative}.mw-noise:before{content:"";z-index:-1;background-image:var(--noise-overlay);opacity:var(--noise-opacity);pointer-events:none;background-repeat:repeat;position:absolute;inset:0}.mw-hand-drawn{display:inline-flex;position:relative}.mw-spinner{width:var(--space-sm);height:var(--space-sm);border:2px solid var(--border);border-top-color:var(--accent);animation:mw-spin var(--transition-slow) linear infinite;border-radius:50%;display:inline-block}@keyframes mw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.mw-spinner{border-top-color:var(--accent);animation:none}}.mw-header[data-v-9b9826d5]{align-items:center;gap:var(--space-sm);height:var(--mw-header-height,56px);padding:0 var(--space-sm);background:var(--_bg);color:var(--_text);border-bottom:1px solid var(--_border);font-family:var(--mw-font-sans);display:flex}.mw-header--sticky[data-v-9b9826d5]{z-index:50;position:sticky;top:0}.mw-header__brand[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);letter-spacing:var(--tracking-wide);white-space:nowrap;font-weight:650;display:flex}.mw-header__center[data-v-9b9826d5]{flex:auto;min-width:0}.mw-header__actions[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);margin-left:auto;display:flex}.mw-sidebar[data-v-a2b8405c]{height:100%;width:var(--mw-sidebar-width,240px);background:var(--_bg);color:var(--_text);border-right:1px solid var(--_border);font-family:var(--mw-font-sans);flex-direction:column;display:flex}.mw-sidebar__head[data-v-a2b8405c]{padding:var(--space-sm);border-bottom:1px solid var(--_border)}.mw-sidebar__nav[data-v-a2b8405c]{gap:var(--space-3xs);padding:var(--space-xs);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.mw-sidebar__body[data-v-a2b8405c]{flex-shrink:0}.mw-sidebar__foot[data-v-a2b8405c]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--_border);color:var(--_muted);font-size:var(--font-size-sm)}.mw-footer[data-v-979579a9]{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--_bg);color:var(--_muted);border-top:1px solid var(--_border);font-family:var(--mw-font-sans);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.mw-footer--transparent[data-v-979579a9]{border-top:1px solid var(--border)}.mw-footer__center[data-v-979579a9]{flex:auto;min-width:0}.mw-footer__end[data-v-979579a9]{align-items:center;gap:var(--space-sm);margin-left:auto;display:flex}.mw-footer__docs-link[data-v-979579a9]{color:inherit;text-underline-offset:2px;opacity:.7;text-decoration:underline}.mw-footer__docs-link[data-v-979579a9]:hover{opacity:1}.mw-mode[data-v-e2ea0d79]{border:1px solid var(--_border,var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--_text,var(--text)) 6%, transparent);gap:2px;padding:2px;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]{align-items:center;gap:var(--space-3xs);padding:var(--space-3xs) var(--space-2xs);border-radius:calc(var(--radius) - 3px);color:var(--_text,var(--text));font:inherit;font-size:var(--font-size-sm);cursor:pointer;opacity:.7;transition:opacity var(--transition-base), background var(--transition-base);background:0 0;border:0;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]:hover{opacity:1}.mw-mode__btn.is-active[data-v-e2ea0d79]{opacity:1;background:color-mix(in srgb, var(--_text,var(--text)) 14%, transparent)}.mw-mode__btn[data-v-e2ea0d79]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@media (width<=640px){.mw-mode__label[data-v-e2ea0d79]{display:none}}.mw-btn[data-v-bc33cc23]{justify-content:center;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);font:inherit;cursor:pointer;transition:filter var(--transition-base), background var(--transition-base);border:1px solid #0000;font-weight:550;display:inline-flex}.mw-btn[data-v-bc33cc23]:disabled{opacity:.55;cursor:not-allowed}.mw-btn[data-v-bc33cc23]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-btn--primary[data-v-bc33cc23]{background:var(--accent);color:var(--accent-contrast)}.mw-btn--primary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--secondary[data-v-bc33cc23]{background:var(--secondary);color:var(--secondary-contrast)}.mw-btn--secondary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--ghost[data-v-bc33cc23]{color:var(--text);border-color:var(--border);background:0 0}.mw-btn--ghost[data-v-bc33cc23]:not(:disabled):hover{background:var(--lift)}.mw-btn--danger[data-v-bc33cc23]{background:var(--danger);color:var(--accent-contrast)}.mw-btn--danger[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-card[data-v-883f87f5]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);overflow:hidden}.mw-card__header[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.mw-card__title[data-v-883f87f5]{font-size:var(--font-size-base);margin:0;font-weight:600}.mw-card__body[data-v-883f87f5]{padding:var(--space-sm)}.mw-card__footer[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--border);background:var(--lift)}.mw-select[data-v-7e206184]{position:relative}.mw-select select[data-v-7e206184]{appearance:none;width:100%;padding:var(--space-2xs) calc(var(--space-md) + var(--space-2xs)) var(--space-2xs) var(--space-xs);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font:inherit}.mw-select select[data-v-7e206184]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-select__chevron[data-v-7e206184]{right:var(--space-xs);pointer-events:none;stroke:var(--muted);stroke-width:1.5px;fill:none;position:absolute;top:50%;transform:translateY(-50%)}.mw-notice[data-v-ee7fffb1]{padding:var(--space-2xs) var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);background:var(--lift);color:var(--text);font-size:var(--font-size-sm);border-left-width:3px;margin:0}.mw-notice--error[data-v-ee7fffb1]{border-left-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.mw-notice--ok[data-v-ee7fffb1]{border-left-color:var(--ok);color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}.sidebar-item[data-v-8da2d583]{align-items:center;gap:var(--space-2xs);width:100%;padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);color:inherit;font:inherit;text-align:left;cursor:pointer;opacity:.85;transition:background var(--transition-base), opacity var(--transition-base);background:0 0;border:0;display:flex}.sidebar-item[data-v-8da2d583]:hover:not(:disabled){background:color-mix(in srgb, currentColor 10%, transparent);opacity:1}.sidebar-item.is-active[data-v-8da2d583]{background:color-mix(in srgb, var(--accent) 26%, transparent);opacity:1}.sidebar-item[data-v-8da2d583]:disabled{cursor:default}.sidebar-item[data-v-8da2d583]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.sidebar-item__icon[data-v-8da2d583]{text-align:center;width:1.1rem}.mw-tab-nav[data-v-97d31503]{gap:var(--space-3xs);border-bottom:2px solid var(--border);display:flex}.mw-tab-nav__tab[data-v-97d31503]{appearance:none;padding:var(--space-2xs) var(--space-sm);cursor:pointer;font-size:var(--font-size-base);color:var(--muted);transition:color var(--transition-base), border-color var(--transition-base);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px}.mw-tab-nav__tab[data-v-97d31503]:hover{color:var(--text)}.mw-tab-nav__tab--active[data-v-97d31503]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.ca-root[data-v-b43dabdd]{align-items:center;gap:.35em;display:inline-flex}.ca-value[data-v-b43dabdd]{font-family:var(--mw-font-mono,monospace);font-size:inherit}.ca-copy[data-v-b43dabdd]{color:var(--muted,#888);cursor:pointer;transition:color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.ca-copy[data-v-b43dabdd]:hover{color:var(--text,#f0f0f0)}.ca-copy--copied[data-v-b43dabdd]{color:var(--accent,#6366f1)}.ca-icon[data-v-b43dabdd]{display:block}.el-root[data-v-073d1bbe]{font-family:monospace;font-size:inherit;color:var(--accent,#6366f1);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;transition:color .15s}.el-root[data-v-073d1bbe]:hover{color:var(--text,#f0f0f0);text-decoration-style:solid}.copyright-line[data-v-6c593bea]{display:inherit;white-space:nowrap}.symbol-link[data-v-6c593bea]{color:inherit;vertical-align:text-bottom;font-size:initial;align-items:center;text-decoration:none;display:inline-flex}.symbol-link[data-v-6c593bea]:hover{text-decoration:underline}.kopimi-symbol[data-v-6c593bea]{align-items:center;line-height:1;display:inline-flex}.kopimi-mark[data-v-6c593bea]{vertical-align:-.15em;display:inline}.text-content[data-v-6c593bea]{display:inline}.status-widget[data-v-6436368e]{align-items:center;gap:var(--space-2xs);color:inherit;font-size:var(--font-size-sm);opacity:.85;transition:opacity var(--transition-base);text-decoration:none;display:inline-flex}.status-widget[data-v-6436368e]:hover{opacity:1}.status-widget__dot[data-v-6436368e]{width:var(--space-2xs);height:var(--space-2xs);border-radius:50%;flex-shrink:0}.status-widget--ok .status-widget__dot[data-v-6436368e]{background:var(--ok)}.status-widget--degraded .status-widget__dot[data-v-6436368e]{background:var(--warning)}.status-widget--error .status-widget__dot[data-v-6436368e]{background:var(--danger)}
|
|
1
|
+
*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--mw-font-sans);font-size:var(--font-size-base);line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}:where(ul,ol):where([role=list],[role=listitem]){margin:0;padding:0;list-style:none}:where(img,svg,video,canvas){max-width:100%;display:block}:where(fieldset){border:0;margin:0;padding:0}a{color:var(--accent);transition:color var(--transition-base);text-decoration:none}a:hover{text-decoration:underline}:where(button,input,select,textarea){font-family:inherit}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-mono{font-family:var(--mw-font-mono)}.mw-noise{isolation:isolate;position:relative}.mw-noise:before{content:"";z-index:-1;background-image:var(--noise-overlay);opacity:var(--noise-opacity);pointer-events:none;background-repeat:repeat;position:absolute;inset:0}.mw-hand-drawn{display:inline-flex;position:relative}.mw-spinner{width:var(--space-sm);height:var(--space-sm);border:2px solid var(--border);border-top-color:var(--accent);animation:mw-spin var(--transition-slow) linear infinite;border-radius:50%;display:inline-block}@keyframes mw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.mw-spinner{border-top-color:var(--accent);animation:none}}.mw-header[data-v-9b9826d5]{align-items:center;gap:var(--space-sm);height:var(--mw-header-height,56px);padding:0 var(--space-sm);background:var(--_bg);color:var(--_text);border-bottom:1px solid var(--_border);font-family:var(--mw-font-sans);display:flex}.mw-header--sticky[data-v-9b9826d5]{z-index:50;position:sticky;top:0}.mw-header__brand[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);letter-spacing:var(--tracking-wide);white-space:nowrap;font-weight:650;display:flex}.mw-header__center[data-v-9b9826d5]{flex:auto;min-width:0}.mw-header__actions[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);margin-left:auto;display:flex}.mw-sidebar[data-v-a2b8405c]{height:100%;width:var(--mw-sidebar-width,240px);background:var(--_bg);color:var(--_text);border-right:1px solid var(--_border);font-family:var(--mw-font-sans);flex-direction:column;display:flex}.mw-sidebar__head[data-v-a2b8405c]{padding:var(--space-sm);border-bottom:1px solid var(--_border)}.mw-sidebar__nav[data-v-a2b8405c]{gap:var(--space-3xs);padding:var(--space-xs);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.mw-sidebar__body[data-v-a2b8405c]{flex-shrink:0}.mw-sidebar__foot[data-v-a2b8405c]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--_border);color:var(--_muted);font-size:var(--font-size-sm)}.mw-footer[data-v-979579a9]{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--_bg);color:var(--_muted);border-top:1px solid var(--_border);font-family:var(--mw-font-sans);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.mw-footer--transparent[data-v-979579a9]{border-top:1px solid var(--border)}.mw-footer__center[data-v-979579a9]{flex:auto;min-width:0}.mw-footer__end[data-v-979579a9]{align-items:center;gap:var(--space-sm);margin-left:auto;display:flex}.mw-footer__docs-link[data-v-979579a9]{color:inherit;text-underline-offset:2px;opacity:.7;text-decoration:underline}.mw-footer__docs-link[data-v-979579a9]:hover{opacity:1}.mw-mode[data-v-e2ea0d79]{border:1px solid var(--_border,var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--_text,var(--text)) 6%, transparent);gap:2px;padding:2px;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]{align-items:center;gap:var(--space-3xs);padding:var(--space-3xs) var(--space-2xs);border-radius:calc(var(--radius) - 3px);color:var(--_text,var(--text));font:inherit;font-size:var(--font-size-sm);cursor:pointer;opacity:.7;transition:opacity var(--transition-base), background var(--transition-base);background:0 0;border:0;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]:hover{opacity:1}.mw-mode__btn.is-active[data-v-e2ea0d79]{opacity:1;background:color-mix(in srgb, var(--_text,var(--text)) 14%, transparent)}.mw-mode__btn[data-v-e2ea0d79]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@media (width<=640px){.mw-mode__label[data-v-e2ea0d79]{display:none}}.mw-btn[data-v-bc33cc23]{justify-content:center;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);font:inherit;cursor:pointer;transition:filter var(--transition-base), background var(--transition-base);border:1px solid #0000;font-weight:550;display:inline-flex}.mw-btn[data-v-bc33cc23]:disabled{opacity:.55;cursor:not-allowed}.mw-btn[data-v-bc33cc23]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-btn--primary[data-v-bc33cc23]{background:var(--accent);color:var(--accent-contrast)}.mw-btn--primary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--secondary[data-v-bc33cc23]{background:var(--secondary);color:var(--secondary-contrast)}.mw-btn--secondary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--ghost[data-v-bc33cc23]{color:var(--text);border-color:var(--border);background:0 0}.mw-btn--ghost[data-v-bc33cc23]:not(:disabled):hover{background:var(--lift)}.mw-btn--danger[data-v-bc33cc23]{background:var(--danger);color:var(--accent-contrast)}.mw-btn--danger[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-card[data-v-883f87f5]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);overflow:hidden}.mw-card__header[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.mw-card__title[data-v-883f87f5]{font-size:var(--font-size-base);margin:0;font-weight:600}.mw-card__body[data-v-883f87f5]{padding:var(--space-sm)}.mw-card__footer[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--border);background:var(--lift)}.mw-select[data-v-7e206184]{position:relative}.mw-select select[data-v-7e206184]{appearance:none;width:100%;padding:var(--space-2xs) calc(var(--space-md) + var(--space-2xs)) var(--space-2xs) var(--space-xs);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font:inherit}.mw-select select[data-v-7e206184]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-select__chevron[data-v-7e206184]{right:var(--space-xs);pointer-events:none;stroke:var(--muted);stroke-width:1.5px;fill:none;position:absolute;top:50%;transform:translateY(-50%)}.mw-notice[data-v-ee7fffb1]{padding:var(--space-2xs) var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);background:var(--lift);color:var(--text);font-size:var(--font-size-sm);border-left-width:3px;margin:0}.mw-notice--error[data-v-ee7fffb1]{border-left-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.mw-notice--ok[data-v-ee7fffb1]{border-left-color:var(--ok);color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}.sidebar-item[data-v-8da2d583]{align-items:center;gap:var(--space-2xs);width:100%;padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);color:inherit;font:inherit;text-align:left;cursor:pointer;opacity:.85;transition:background var(--transition-base), opacity var(--transition-base);background:0 0;border:0;display:flex}.sidebar-item[data-v-8da2d583]:hover:not(:disabled){background:color-mix(in srgb, currentColor 10%, transparent);opacity:1}.sidebar-item.is-active[data-v-8da2d583]{background:color-mix(in srgb, var(--accent) 26%, transparent);opacity:1}.sidebar-item[data-v-8da2d583]:disabled{cursor:default}.sidebar-item[data-v-8da2d583]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.sidebar-item__icon[data-v-8da2d583]{text-align:center;width:1.1rem}.sidebar-group--l1+.sidebar-group--l1[data-v-c8f6c8b2]{margin-block-start:var(--space-2xs)}.sidebar-group__label[data-v-c8f6c8b2]{padding:var(--space-3xs) var(--space-xs);font-size:var(--font-size-xs);color:var(--muted);-webkit-user-select:none;user-select:none;font-weight:600}.sidebar-group--l1>.sidebar-group__label[data-v-c8f6c8b2]{text-transform:uppercase;letter-spacing:var(--tracking-wide);opacity:.75}.sidebar-group--l2>.sidebar-group__label[data-v-c8f6c8b2]{opacity:.6;padding-inline-start:calc(var(--space-xs) + var(--space-3xs))}.sidebar-group--l2>.sidebar-group__items[data-v-c8f6c8b2]{padding-inline-start:var(--space-3xs)}.mw-tab-nav[data-v-97d31503]{gap:var(--space-3xs);border-bottom:2px solid var(--border);display:flex}.mw-tab-nav__tab[data-v-97d31503]{appearance:none;padding:var(--space-2xs) var(--space-sm);cursor:pointer;font-size:var(--font-size-base);color:var(--muted);transition:color var(--transition-base), border-color var(--transition-base);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px}.mw-tab-nav__tab[data-v-97d31503]:hover{color:var(--text)}.mw-tab-nav__tab--active[data-v-97d31503]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.ca-root[data-v-b43dabdd]{align-items:center;gap:.35em;display:inline-flex}.ca-value[data-v-b43dabdd]{font-family:var(--mw-font-mono,monospace);font-size:inherit}.ca-copy[data-v-b43dabdd]{color:var(--muted,#888);cursor:pointer;transition:color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.ca-copy[data-v-b43dabdd]:hover{color:var(--text,#f0f0f0)}.ca-copy--copied[data-v-b43dabdd]{color:var(--accent,#6366f1)}.ca-icon[data-v-b43dabdd]{display:block}.el-root[data-v-073d1bbe]{font-family:monospace;font-size:inherit;color:var(--accent,#6366f1);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;transition:color .15s}.el-root[data-v-073d1bbe]:hover{color:var(--text,#f0f0f0);text-decoration-style:solid}.copyright-line[data-v-1f9a5da9]{display:inherit;white-space:nowrap;text-align:center}.symbol-link[data-v-1f9a5da9]{color:inherit;vertical-align:text-top;align-items:center;padding:0 .1rem;text-decoration:none;display:inline-flex}.symbol-link[data-v-1f9a5da9]:hover{text-decoration:underline}.kopimi-symbol[data-v-1f9a5da9]{align-items:center;line-height:1;display:inline-flex}.kopimi-mark[data-v-1f9a5da9]{vertical-align:-.15em;display:inline}.text-content[data-v-1f9a5da9]{display:inline}.ui-stepper[data-v-33717fc3]{margin:0 0 var(--space-md,1.5rem);padding:0;list-style:none;display:flex}.ui-stepper__step[data-v-33717fc3]{flex-direction:column;flex:1 1 0;align-items:center;gap:.4rem;min-width:0;display:flex;position:relative}.ui-stepper__step[data-v-33717fc3]:not(:first-child):before{content:"";background:var(--border);z-index:0;height:2px;position:absolute;top:1rem;left:-50%;right:50%}.ui-stepper__step.is-done[data-v-33717fc3]:before,.ui-stepper__step.is-active[data-v-33717fc3]:before{background:var(--accent)}.ui-stepper__badge[data-v-33717fc3]{z-index:1;border:2px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--muted);cursor:default;transition:background-color var(--transition-base,.2s), border-color var(--transition-base,.2s);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.8rem;font-weight:600;line-height:1;display:flex;position:relative}button.ui-stepper__badge[data-v-33717fc3]{cursor:pointer}button.ui-stepper__badge[data-v-33717fc3]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.is-done .ui-stepper__badge[data-v-33717fc3]{background:var(--accent);border-color:var(--accent);color:#fff}.is-active .ui-stepper__badge[data-v-33717fc3]{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-color:var(--accent);color:var(--accent)}.ui-stepper__label[data-v-33717fc3]{text-align:center;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.78rem;line-height:1.2;overflow:hidden}.is-done .ui-stepper__label[data-v-33717fc3],.is-active .ui-stepper__label[data-v-33717fc3]{color:var(--text)}.is-active .ui-stepper__label[data-v-33717fc3]{font-weight:600}.status-widget[data-v-6436368e]{align-items:center;gap:var(--space-2xs);color:inherit;font-size:var(--font-size-sm);opacity:.85;transition:opacity var(--transition-base);text-decoration:none;display:inline-flex}.status-widget[data-v-6436368e]:hover{opacity:1}.status-widget__dot[data-v-6436368e]{width:var(--space-2xs);height:var(--space-2xs);border-radius:50%;flex-shrink:0}.status-widget--ok .status-widget__dot[data-v-6436368e]{background:var(--ok)}.status-widget--degraded .status-widget__dot[data-v-6436368e]{background:var(--warning)}.status-widget--error .status-widget__dot[data-v-6436368e]{background:var(--danger)}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SidebarGroup — accessible section-header wrapper for sidebar navigation.
|
|
3
|
+
*
|
|
4
|
+
* Renders a visible group label and wraps its children in a WAI-ARIA `group` so
|
|
5
|
+
* assistive technology announces the category before reading the contained items.
|
|
6
|
+
* The visible label element carries `aria-hidden="true"` — its content is already
|
|
7
|
+
* conveyed by `aria-label` on the group container, preventing double-announcement.
|
|
8
|
+
*
|
|
9
|
+
* Two visual levels are supported via the {@link SidebarGroupProps.level} prop:
|
|
10
|
+
* - `1` — top-level category label (e.g. "Blockchain"): uppercase, wide tracking,
|
|
11
|
+
* subtle opacity, section gap above when following a sibling.
|
|
12
|
+
* - `2` — sub-group label within a category (e.g. "Sui"): normal case, slightly
|
|
13
|
+
* more muted, items indented by `--space-3xs` to show nesting.
|
|
14
|
+
*
|
|
15
|
+
* Nest a level-2 group inside a level-1 group to build a two-tier hierarchy:
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```vue
|
|
19
|
+
* <SidebarGroup label="Blockchain" :level="1">
|
|
20
|
+
* <SidebarGroup label="Sui" :level="2">
|
|
21
|
+
* <SidebarItem label="DAO" icon="🏛" :active="isDao" @click="navigate" />
|
|
22
|
+
* <SidebarItem label="Token Deployer" icon="🪙" :active="isToken" @click="navigate" />
|
|
23
|
+
* </SidebarGroup>
|
|
24
|
+
* </SidebarGroup>
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* Screen-reader output for the above (abbreviated):
|
|
28
|
+
* > "Blockchain, group; Sui, group; DAO, button, current page; Token Deployer, button"
|
|
29
|
+
*/
|
|
30
|
+
type __VLS_Props = {
|
|
31
|
+
/**
|
|
32
|
+
* Human-readable group name. Used as both the `aria-label` on the group
|
|
33
|
+
* container and the rendered visible section header.
|
|
34
|
+
*/
|
|
35
|
+
label: string;
|
|
36
|
+
/**
|
|
37
|
+
* Visual hierarchy level.
|
|
38
|
+
*
|
|
39
|
+
* `1` — Top-level category. Rendered as an uppercase, wide-tracked, muted
|
|
40
|
+
* micro-label. Adds a top gap when preceded by another sibling group.
|
|
41
|
+
*
|
|
42
|
+
* `2` — Sub-group within a category. Rendered in normal case with a slight
|
|
43
|
+
* left indent; items inside gain `--space-3xs` of left padding.
|
|
44
|
+
*
|
|
45
|
+
* @default 1
|
|
46
|
+
*/
|
|
47
|
+
level?: 1 | 2;
|
|
48
|
+
};
|
|
49
|
+
declare var __VLS_1: {};
|
|
50
|
+
type __VLS_Slots = {} & {
|
|
51
|
+
default?: (props: typeof __VLS_1) => any;
|
|
52
|
+
};
|
|
53
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
54
|
+
level: 1 | 2;
|
|
55
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
56
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
57
|
+
declare const _default: typeof __VLS_export;
|
|
58
|
+
export default _default;
|
|
59
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
60
|
+
new (): {
|
|
61
|
+
$slots: S;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface StepperStep {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
}
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
steps: StepperStep[];
|
|
7
|
+
modelValue: number;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:modelValue": (index: number) => any;
|
|
11
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
12
|
+
"onUpdate:modelValue"?: ((index: number) => any) | undefined;
|
|
13
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
package/dist/index.d.ts
CHANGED
|
@@ -8,11 +8,14 @@ export { default as UiCard } from './components/UiCard.vue';
|
|
|
8
8
|
export { default as UiSelect } from './components/UiSelect.vue';
|
|
9
9
|
export { default as UiNotice } from './components/UiNotice.vue';
|
|
10
10
|
export { default as SidebarItem } from './components/SidebarItem.vue';
|
|
11
|
+
export { default as SidebarGroup } from './components/SidebarGroup.vue';
|
|
11
12
|
export { default as AppTabNav } from './components/AppTabNav.vue';
|
|
12
13
|
export type { AppTab } from './components/AppTabNav.vue';
|
|
13
14
|
export { default as CopyableAddress } from './components/CopyableAddress.vue';
|
|
14
15
|
export { default as ExplorerLink } from './components/ExplorerLink.vue';
|
|
15
16
|
export { default as CopyrightLine } from './components/CopyrightLine.vue';
|
|
17
|
+
export { default as UiStepper } from './components/UiStepper.vue';
|
|
18
|
+
export type { StepperStep } from './components/UiStepper.vue';
|
|
16
19
|
export { default as StatusWidget } from './components/StatusWidget.vue';
|
|
17
20
|
export { suiExplorerUrl } from './explorer.js';
|
|
18
21
|
export type { SuiNetwork, SuiExplorerKind } from './explorer.js';
|
package/dist/ui.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment as e, computed as t,
|
|
1
|
+
import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, defineComponent as s, mergeProps as c, normalizeClass as l, normalizeStyle as u, onMounted as ee, onUnmounted as d, openBlock as f, ref as p, renderList as m, renderSlot as h, resolveDynamicComponent as te, toDisplayString as g, unref as _, useModel as ne, vModelSelect as re, watch as ie, withCtx as ae, withDirectives as oe } from "vue";
|
|
2
2
|
//#region src/internal/panel.ts
|
|
3
3
|
function v(e, t) {
|
|
4
4
|
let n;
|
|
@@ -24,7 +24,7 @@ function v(e, t) {
|
|
|
24
24
|
}
|
|
25
25
|
//#endregion
|
|
26
26
|
//#region src/components/AppHeader.vue?vue&type=script&setup=true&lang.ts
|
|
27
|
-
var
|
|
27
|
+
var se = { class: "mw-header__brand" }, ce = { class: "mw-header__center" }, le = { class: "mw-header__actions" }, ue = /*@__PURE__*/ s({
|
|
28
28
|
__name: "AppHeader",
|
|
29
29
|
props: {
|
|
30
30
|
variant: { default: "dark" },
|
|
@@ -35,33 +35,33 @@ var ie = { class: "mw-header__brand" }, ae = { class: "mw-header__center" }, oe
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
setup(e) {
|
|
38
|
-
let n = e,
|
|
39
|
-
return (t, n) => (
|
|
40
|
-
class:
|
|
41
|
-
style:
|
|
38
|
+
let n = e, r = t(() => v(n.variant, n.colors));
|
|
39
|
+
return (t, n) => (f(), i("header", {
|
|
40
|
+
class: l(["mw-header", [`mw-header--${e.variant}`, { "mw-header--sticky": e.sticky }]]),
|
|
41
|
+
style: u(r.value)
|
|
42
42
|
}, [
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
a("div", se, [h(t.$slots, "brand", {}, void 0, !0)]),
|
|
44
|
+
a("div", ce, [h(t.$slots, "default", {}, void 0, !0)]),
|
|
45
|
+
a("div", le, [h(t.$slots, "actions", {}, void 0, !0)])
|
|
46
46
|
], 6));
|
|
47
47
|
}
|
|
48
48
|
}), y = (e, t) => {
|
|
49
49
|
let n = e.__vccOpts || e;
|
|
50
50
|
for (let [e, r] of t) n[e] = r;
|
|
51
51
|
return n;
|
|
52
|
-
},
|
|
52
|
+
}, de = /*#__PURE__*/ y(ue, [["__scopeId", "data-v-9b9826d5"]]), b = {
|
|
53
53
|
key: 0,
|
|
54
54
|
class: "mw-sidebar__head"
|
|
55
|
-
},
|
|
55
|
+
}, x = {
|
|
56
56
|
class: "mw-sidebar__nav",
|
|
57
57
|
"aria-label": "Primary"
|
|
58
|
-
},
|
|
58
|
+
}, S = {
|
|
59
59
|
key: 1,
|
|
60
60
|
class: "mw-sidebar__body"
|
|
61
|
-
},
|
|
61
|
+
}, C = {
|
|
62
62
|
key: 2,
|
|
63
63
|
class: "mw-sidebar__foot"
|
|
64
|
-
},
|
|
64
|
+
}, w = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
65
65
|
__name: "AppSidebar",
|
|
66
66
|
props: {
|
|
67
67
|
variant: { default: "dark" },
|
|
@@ -69,24 +69,24 @@ var ie = { class: "mw-header__brand" }, ae = { class: "mw-header__center" }, oe
|
|
|
69
69
|
width: {}
|
|
70
70
|
},
|
|
71
71
|
setup(e) {
|
|
72
|
-
let
|
|
73
|
-
let e = v(
|
|
74
|
-
return
|
|
72
|
+
let n = e, o = t(() => {
|
|
73
|
+
let e = v(n.variant, n.colors);
|
|
74
|
+
return n.width && (e["--mw-sidebar-width"] = n.width), e;
|
|
75
75
|
});
|
|
76
|
-
return (t,
|
|
77
|
-
class:
|
|
78
|
-
style:
|
|
76
|
+
return (t, n) => (f(), i("aside", {
|
|
77
|
+
class: l(["mw-sidebar", `mw-sidebar--${e.variant}`]),
|
|
78
|
+
style: u(o.value)
|
|
79
79
|
}, [
|
|
80
|
-
t.$slots.head ? (
|
|
81
|
-
|
|
82
|
-
t.$slots.body ? (
|
|
83
|
-
t.$slots.foot ? (
|
|
80
|
+
t.$slots.head ? (f(), i("div", b, [h(t.$slots, "head", {}, void 0, !0)])) : r("", !0),
|
|
81
|
+
a("nav", x, [h(t.$slots, "default", {}, void 0, !0)]),
|
|
82
|
+
t.$slots.body ? (f(), i("div", S, [h(t.$slots, "body", {}, void 0, !0)])) : r("", !0),
|
|
83
|
+
t.$slots.foot ? (f(), i("div", C, [h(t.$slots, "foot", {}, void 0, !0)])) : r("", !0)
|
|
84
84
|
], 6));
|
|
85
85
|
}
|
|
86
86
|
}), [["__scopeId", "data-v-a2b8405c"]]);
|
|
87
87
|
//#endregion
|
|
88
88
|
//#region src/safe-href.ts
|
|
89
|
-
function
|
|
89
|
+
function T(e) {
|
|
90
90
|
if (e) try {
|
|
91
91
|
let t = new URL(e);
|
|
92
92
|
if (t.protocol === "https:" || t.protocol === "http:" && (t.hostname === "localhost" || t.hostname === "127.0.0.1")) return e;
|
|
@@ -94,7 +94,7 @@ function S(e) {
|
|
|
94
94
|
}
|
|
95
95
|
//#endregion
|
|
96
96
|
//#region src/components/AppFooter.vue?vue&type=script&setup=true&lang.ts
|
|
97
|
-
var
|
|
97
|
+
var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = { class: "mw-footer__end" }, k = ["href"], A = ["href"], j = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
98
98
|
__name: "AppFooter",
|
|
99
99
|
props: {
|
|
100
100
|
variant: { default: "transparent" },
|
|
@@ -103,42 +103,42 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
103
103
|
devUrl: {}
|
|
104
104
|
},
|
|
105
105
|
setup(e) {
|
|
106
|
-
let
|
|
107
|
-
return (t,
|
|
108
|
-
class:
|
|
109
|
-
style:
|
|
106
|
+
let n = e, o = t(() => v(n.variant, n.colors));
|
|
107
|
+
return (t, n) => (f(), i("footer", {
|
|
108
|
+
class: l(["mw-footer", `mw-footer--${e.variant}`]),
|
|
109
|
+
style: u(o.value)
|
|
110
110
|
}, [
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
e.docsUrl ? (
|
|
111
|
+
a("div", E, [h(t.$slots, "start", {}, void 0, !0)]),
|
|
112
|
+
a("div", D, [h(t.$slots, "default", {}, void 0, !0)]),
|
|
113
|
+
a("div", O, [
|
|
114
|
+
h(t.$slots, "end", {}, void 0, !0),
|
|
115
|
+
e.docsUrl ? (f(), i("a", {
|
|
116
116
|
key: 0,
|
|
117
|
-
href:
|
|
117
|
+
href: _(T)(e.docsUrl),
|
|
118
118
|
target: "_blank",
|
|
119
119
|
rel: "noopener noreferrer",
|
|
120
120
|
class: "mw-footer__docs-link"
|
|
121
|
-
}, "Documentation", 8,
|
|
122
|
-
e.devUrl ? (
|
|
121
|
+
}, "Documentation", 8, k)) : r("", !0),
|
|
122
|
+
e.devUrl ? (f(), i("a", {
|
|
123
123
|
key: 1,
|
|
124
|
-
href:
|
|
124
|
+
href: _(T)(e.devUrl),
|
|
125
125
|
target: "_blank",
|
|
126
126
|
rel: "noopener noreferrer",
|
|
127
127
|
"aria-label": "Developer documentation",
|
|
128
128
|
class: "mw-footer__docs-link"
|
|
129
|
-
}, "Developer docs", 8,
|
|
129
|
+
}, "Developer docs", 8, A)) : r("", !0)
|
|
130
130
|
])
|
|
131
131
|
], 6));
|
|
132
132
|
}
|
|
133
|
-
}), [["__scopeId", "data-v-979579a9"]]),
|
|
133
|
+
}), [["__scopeId", "data-v-979579a9"]]), M = {
|
|
134
134
|
class: "mw-mode",
|
|
135
135
|
role: "group",
|
|
136
136
|
"aria-label": "Colour mode"
|
|
137
|
-
},
|
|
137
|
+
}, N = [
|
|
138
138
|
"aria-pressed",
|
|
139
139
|
"title",
|
|
140
140
|
"onClick"
|
|
141
|
-
],
|
|
141
|
+
], P = { "aria-hidden": "true" }, F = { class: "mw-mode__label" }, I = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
142
142
|
__name: "ColorModeControl",
|
|
143
143
|
props: {
|
|
144
144
|
modelValue: {},
|
|
@@ -154,21 +154,21 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
154
154
|
light: "Light",
|
|
155
155
|
dark: "Dark",
|
|
156
156
|
system: "System"
|
|
157
|
-
},
|
|
157
|
+
}, r = {
|
|
158
158
|
light: "☀",
|
|
159
159
|
dark: "☾",
|
|
160
160
|
system: "🖵"
|
|
161
161
|
};
|
|
162
|
-
return (o, s) => (
|
|
162
|
+
return (o, s) => (f(), i("div", M, [(f(!0), i(e, null, m(t.modes, (e) => (f(), i("button", {
|
|
163
163
|
key: e,
|
|
164
164
|
type: "button",
|
|
165
|
-
class:
|
|
165
|
+
class: l(["mw-mode__btn", { "is-active": t.modelValue === e }]),
|
|
166
166
|
"aria-pressed": t.modelValue === e,
|
|
167
167
|
title: n[e],
|
|
168
168
|
onClick: (t) => o.$emit("update:modelValue", e)
|
|
169
|
-
}, [
|
|
169
|
+
}, [a("span", P, g(r[e]), 1), a("span", F, g(n[e]), 1)], 10, N))), 128))]));
|
|
170
170
|
}
|
|
171
|
-
}), [["__scopeId", "data-v-e2ea0d79"]]),
|
|
171
|
+
}), [["__scopeId", "data-v-e2ea0d79"]]), L = ["type", "disabled"], R = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
172
172
|
__name: "UiButton",
|
|
173
173
|
props: {
|
|
174
174
|
variant: { default: "primary" },
|
|
@@ -179,29 +179,29 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
179
179
|
}
|
|
180
180
|
},
|
|
181
181
|
setup(e) {
|
|
182
|
-
return (t, n) => (
|
|
182
|
+
return (t, n) => (f(), i("button", {
|
|
183
183
|
type: e.type,
|
|
184
184
|
disabled: e.disabled,
|
|
185
|
-
class:
|
|
186
|
-
}, [
|
|
185
|
+
class: l(["mw-btn", `mw-btn--${e.variant}`])
|
|
186
|
+
}, [h(t.$slots, "default", {}, void 0, !0)], 10, L));
|
|
187
187
|
}
|
|
188
|
-
}), [["__scopeId", "data-v-bc33cc23"]]),
|
|
188
|
+
}), [["__scopeId", "data-v-bc33cc23"]]), z = { class: "mw-card" }, B = {
|
|
189
189
|
key: 0,
|
|
190
190
|
class: "mw-card__header"
|
|
191
|
-
},
|
|
191
|
+
}, V = { class: "mw-card__title" }, H = { class: "mw-card__body" }, fe = {
|
|
192
192
|
key: 1,
|
|
193
193
|
class: "mw-card__footer"
|
|
194
|
-
},
|
|
194
|
+
}, pe = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
195
195
|
__name: "UiCard",
|
|
196
196
|
props: { title: {} },
|
|
197
197
|
setup(e) {
|
|
198
|
-
return (t,
|
|
199
|
-
e.title || t.$slots.header ? (
|
|
200
|
-
|
|
201
|
-
t.$slots.footer ? (
|
|
198
|
+
return (t, n) => (f(), i("section", z, [
|
|
199
|
+
e.title || t.$slots.header ? (f(), i("header", B, [h(t.$slots, "header", {}, () => [a("h3", V, g(e.title), 1)], !0)])) : r("", !0),
|
|
200
|
+
a("div", H, [h(t.$slots, "default", {}, void 0, !0)]),
|
|
201
|
+
t.$slots.footer ? (f(), i("footer", fe, [h(t.$slots, "footer", {}, void 0, !0)])) : r("", !0)
|
|
202
202
|
]));
|
|
203
203
|
}
|
|
204
|
-
}), [["__scopeId", "data-v-883f87f5"]]),
|
|
204
|
+
}), [["__scopeId", "data-v-883f87f5"]]), me = { class: "mw-select" }, he = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
205
205
|
inheritAttrs: !1,
|
|
206
206
|
__name: "UiSelect",
|
|
207
207
|
props: {
|
|
@@ -210,34 +210,34 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
210
210
|
},
|
|
211
211
|
emits: ["update:modelValue"],
|
|
212
212
|
setup(e) {
|
|
213
|
-
let t =
|
|
214
|
-
return (e, n) => (
|
|
213
|
+
let t = ne(e, "modelValue");
|
|
214
|
+
return (e, n) => (f(), i("div", me, [oe(a("select", c(e.$attrs, { "onUpdate:modelValue": n[0] ||= (e) => t.value = e }), [h(e.$slots, "default", {}, void 0, !0)], 16), [[re, t.value]]), n[1] ||= a("svg", {
|
|
215
215
|
class: "mw-select__chevron",
|
|
216
216
|
xmlns: "http://www.w3.org/2000/svg",
|
|
217
217
|
width: "12",
|
|
218
218
|
height: "8",
|
|
219
219
|
viewBox: "0 0 12 8",
|
|
220
220
|
"aria-hidden": "true"
|
|
221
|
-
}, [
|
|
221
|
+
}, [a("path", { d: "M1 1l5 5 5-5" })], -1)]));
|
|
222
222
|
}
|
|
223
|
-
}), [["__scopeId", "data-v-7e206184"]]),
|
|
223
|
+
}), [["__scopeId", "data-v-7e206184"]]), ge = ["role"], _e = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
224
224
|
__name: "UiNotice",
|
|
225
225
|
props: { type: {} },
|
|
226
226
|
setup(e) {
|
|
227
|
-
let n = e,
|
|
227
|
+
let n = e, r = t(() => {
|
|
228
228
|
if (n.type === "error") return "alert";
|
|
229
229
|
if (n.type === "ok") return "status";
|
|
230
230
|
});
|
|
231
|
-
return (t, n) => (
|
|
232
|
-
class:
|
|
233
|
-
role:
|
|
234
|
-
}, [
|
|
231
|
+
return (t, n) => (f(), i("p", {
|
|
232
|
+
class: l(["mw-notice", e.type && e.type !== "info" ? `mw-notice--${e.type}` : ""]),
|
|
233
|
+
role: r.value
|
|
234
|
+
}, [h(t.$slots, "default", {}, void 0, !0)], 10, ge));
|
|
235
235
|
}
|
|
236
|
-
}), [["__scopeId", "data-v-ee7fffb1"]]),
|
|
236
|
+
}), [["__scopeId", "data-v-ee7fffb1"]]), ve = ["disabled", "aria-current"], ye = {
|
|
237
237
|
key: 0,
|
|
238
238
|
class: "sidebar-item__icon",
|
|
239
239
|
"aria-hidden": "true"
|
|
240
|
-
},
|
|
240
|
+
}, be = { class: "sidebar-item__label" }, xe = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
241
241
|
__name: "SidebarItem",
|
|
242
242
|
props: {
|
|
243
243
|
label: {},
|
|
@@ -252,14 +252,30 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
252
252
|
}
|
|
253
253
|
},
|
|
254
254
|
setup(e) {
|
|
255
|
-
return (t,
|
|
255
|
+
return (t, n) => (f(), i("button", {
|
|
256
256
|
type: "button",
|
|
257
|
-
class:
|
|
257
|
+
class: l(["sidebar-item", { "is-active": e.active }]),
|
|
258
258
|
disabled: e.disabled,
|
|
259
259
|
"aria-current": e.active ? "page" : void 0
|
|
260
|
-
}, [e.icon ? (
|
|
260
|
+
}, [e.icon ? (f(), i("span", ye, g(e.icon), 1)) : r("", !0), a("span", be, g(e.label), 1)], 10, ve));
|
|
261
261
|
}
|
|
262
|
-
}), [["__scopeId", "data-v-8da2d583"]]),
|
|
262
|
+
}), [["__scopeId", "data-v-8da2d583"]]), Se = ["aria-label"], Ce = {
|
|
263
|
+
class: "sidebar-group__label",
|
|
264
|
+
"aria-hidden": "true"
|
|
265
|
+
}, we = { class: "sidebar-group__items" }, Te = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
266
|
+
__name: "SidebarGroup",
|
|
267
|
+
props: {
|
|
268
|
+
label: {},
|
|
269
|
+
level: { default: 1 }
|
|
270
|
+
},
|
|
271
|
+
setup(e) {
|
|
272
|
+
return (t, n) => (f(), i("div", {
|
|
273
|
+
class: l(["sidebar-group", `sidebar-group--l${e.level}`]),
|
|
274
|
+
role: "group",
|
|
275
|
+
"aria-label": e.label
|
|
276
|
+
}, [a("div", Ce, g(e.label), 1), a("div", we, [h(t.$slots, "default", {}, void 0, !0)])], 10, Se));
|
|
277
|
+
}
|
|
278
|
+
}), [["__scopeId", "data-v-c8f6c8b2"]]), Ee = ["aria-label"], De = ["aria-current", "onClick"], Oe = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
263
279
|
__name: "AppTabNav",
|
|
264
280
|
props: {
|
|
265
281
|
tabs: {},
|
|
@@ -268,19 +284,19 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
268
284
|
},
|
|
269
285
|
emits: ["update:modelValue"],
|
|
270
286
|
setup(t, { emit: n }) {
|
|
271
|
-
let
|
|
272
|
-
return (n, a) => (
|
|
287
|
+
let r = n;
|
|
288
|
+
return (n, a) => (f(), i("nav", {
|
|
273
289
|
class: "mw-tab-nav",
|
|
274
290
|
"aria-label": t.ariaLabel
|
|
275
|
-
}, [(
|
|
291
|
+
}, [(f(!0), i(e, null, m(t.tabs, (e) => (f(), i("button", {
|
|
276
292
|
key: e.id,
|
|
277
293
|
type: "button",
|
|
278
|
-
class:
|
|
294
|
+
class: l(["mw-tab-nav__tab", { "mw-tab-nav__tab--active": t.modelValue === e.id }]),
|
|
279
295
|
"aria-current": t.modelValue === e.id ? "page" : void 0,
|
|
280
|
-
onClick: (t) =>
|
|
281
|
-
},
|
|
296
|
+
onClick: (t) => r("update:modelValue", e.id)
|
|
297
|
+
}, g(e.label), 11, De))), 128))], 8, Ee));
|
|
282
298
|
}
|
|
283
|
-
}), [["__scopeId", "data-v-97d31503"]]),
|
|
299
|
+
}), [["__scopeId", "data-v-97d31503"]]), ke = { class: "ca-root" }, Ae = ["title"], je = ["title", "aria-label"], Me = {
|
|
284
300
|
key: 0,
|
|
285
301
|
class: "ca-icon",
|
|
286
302
|
viewBox: "0 0 24 24",
|
|
@@ -292,7 +308,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
292
308
|
"stroke-linecap": "round",
|
|
293
309
|
"stroke-linejoin": "round",
|
|
294
310
|
"aria-hidden": "true"
|
|
295
|
-
},
|
|
311
|
+
}, Ne = {
|
|
296
312
|
key: 1,
|
|
297
313
|
class: "ca-icon",
|
|
298
314
|
viewBox: "0 0 24 24",
|
|
@@ -304,7 +320,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
304
320
|
"stroke-linecap": "round",
|
|
305
321
|
"stroke-linejoin": "round",
|
|
306
322
|
"aria-hidden": "true"
|
|
307
|
-
},
|
|
323
|
+
}, Pe = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
308
324
|
__name: "CopyableAddress",
|
|
309
325
|
props: {
|
|
310
326
|
address: {},
|
|
@@ -316,35 +332,35 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
316
332
|
label: { default: "Copy" }
|
|
317
333
|
},
|
|
318
334
|
setup(e) {
|
|
319
|
-
let n = e,
|
|
335
|
+
let n = e, r = p(!1), s = t(() => {
|
|
320
336
|
if (!n.truncate) return n.address;
|
|
321
337
|
let [e, t] = n.chars;
|
|
322
338
|
return `${n.address.slice(0, e)}…${n.address.slice(-t)}`;
|
|
323
339
|
});
|
|
324
|
-
async function
|
|
325
|
-
await navigator.clipboard.writeText(n.address),
|
|
326
|
-
|
|
340
|
+
async function c() {
|
|
341
|
+
await navigator.clipboard.writeText(n.address), r.value = !0, setTimeout(() => {
|
|
342
|
+
r.value = !1;
|
|
327
343
|
}, 1500);
|
|
328
344
|
}
|
|
329
|
-
return (t, n) => (
|
|
345
|
+
return (t, n) => (f(), i("span", ke, [a("span", {
|
|
330
346
|
class: "ca-value",
|
|
331
347
|
title: e.address
|
|
332
|
-
}, [
|
|
348
|
+
}, [h(t.$slots, "default", {}, () => [o(g(s.value), 1)], !0)], 8, Ae), a("button", {
|
|
333
349
|
type: "button",
|
|
334
|
-
class:
|
|
335
|
-
title:
|
|
336
|
-
"aria-label":
|
|
337
|
-
onClick:
|
|
338
|
-
}, [
|
|
350
|
+
class: l(["ca-copy", { "ca-copy--copied": r.value }]),
|
|
351
|
+
title: r.value ? "Copied!" : e.label,
|
|
352
|
+
"aria-label": r.value ? "Copied" : e.label,
|
|
353
|
+
onClick: c
|
|
354
|
+
}, [r.value ? (f(), i("svg", Me, [...n[0] ||= [a("polyline", { points: "20 6 9 17 4 12" }, null, -1)]])) : (f(), i("svg", Ne, [...n[1] ||= [a("rect", {
|
|
339
355
|
x: "9",
|
|
340
356
|
y: "9",
|
|
341
357
|
width: "13",
|
|
342
358
|
height: "13",
|
|
343
359
|
rx: "2",
|
|
344
360
|
ry: "2"
|
|
345
|
-
}, null, -1),
|
|
361
|
+
}, null, -1), a("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" }, null, -1)]]))], 10, je)]));
|
|
346
362
|
}
|
|
347
|
-
}), [["__scopeId", "data-v-b43dabdd"]]),
|
|
363
|
+
}), [["__scopeId", "data-v-b43dabdd"]]), Fe = ["href", "title"], Ie = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
348
364
|
__name: "ExplorerLink",
|
|
349
365
|
props: {
|
|
350
366
|
href: {},
|
|
@@ -356,24 +372,24 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
356
372
|
chars: { default: () => [6, 4] }
|
|
357
373
|
},
|
|
358
374
|
setup(e) {
|
|
359
|
-
let n = e,
|
|
375
|
+
let n = e, r = t(() => {
|
|
360
376
|
if (!n.value) return "";
|
|
361
377
|
if (!n.truncate) return n.value;
|
|
362
378
|
let [e, t] = n.chars;
|
|
363
379
|
return `${n.value.slice(0, e)}…${n.value.slice(-t)}`;
|
|
364
380
|
});
|
|
365
|
-
return (t, n) => (
|
|
381
|
+
return (t, n) => (f(), i("a", {
|
|
366
382
|
class: "el-root",
|
|
367
|
-
href:
|
|
383
|
+
href: _(T)(e.href),
|
|
368
384
|
target: "_blank",
|
|
369
385
|
rel: "noopener noreferrer",
|
|
370
386
|
title: e.value
|
|
371
|
-
}, [
|
|
387
|
+
}, [h(t.$slots, "default", {}, () => [o(g(r.value), 1)], !0)], 8, Fe));
|
|
372
388
|
}
|
|
373
|
-
}), [["__scopeId", "data-v-073d1bbe"]]),
|
|
389
|
+
}), [["__scopeId", "data-v-073d1bbe"]]), Le = { class: "copyright-line" }, Re = ["href", "aria-label"], ze = { key: 0 }, Be = { key: 1 }, Ve = {
|
|
374
390
|
key: 2,
|
|
375
391
|
class: "kopimi-symbol"
|
|
376
|
-
},
|
|
392
|
+
}, He = { class: "text-content" }, Ue = { key: 0 }, We = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
377
393
|
__name: "CopyrightLine",
|
|
378
394
|
props: {
|
|
379
395
|
organisationName: {},
|
|
@@ -384,26 +400,26 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
384
400
|
symbolLabel: {}
|
|
385
401
|
},
|
|
386
402
|
setup(e) {
|
|
387
|
-
let
|
|
388
|
-
return (t,
|
|
403
|
+
let n = e, s = t(() => n.symbolVariant), c = t(() => n.symbolHref || (s.value === "kopimi" ? "/legal/powr.broccoli-kopimi.pdf" : s.value === "copyleft" ? "/legal/copyleft.html" : "/legal/copyright.html")), l = t(() => n.symbolLabel || (s.value === "kopimi" ? "Kopimi legal notice" : s.value === "copyleft" ? "Copyleft legal notice" : "Copyright legal notice")), u = t(() => n.rightsStatement === "" ? "" : n.rightsStatement === "none" ? "No rights reserved." : n.rightsStatement === "all" || !n.rightsStatement ? "All rights reserved." : n.rightsStatement === "jam" ? "All jams preserved." : n.rightsStatement);
|
|
404
|
+
return (t, n) => (f(), i("small", Le, [a("a", {
|
|
389
405
|
href: c.value,
|
|
390
406
|
class: "symbol-link",
|
|
391
407
|
target: "_blank",
|
|
392
408
|
rel: "noopener noreferrer",
|
|
393
409
|
"aria-label": l.value
|
|
394
|
-
}, [s.value === "copyright" ? (
|
|
410
|
+
}, [s.value === "copyright" ? (f(), i("span", ze, "©")) : s.value === "copyleft" ? (f(), i("span", Be, "🄯")) : s.value === "kopimi" ? (f(), i("span", Ve, [...n[0] ||= [a("svg", {
|
|
395
411
|
viewBox: "0 0 24 24",
|
|
396
412
|
width: "1em",
|
|
397
413
|
height: "1em",
|
|
398
414
|
"aria-hidden": "true",
|
|
399
415
|
focusable: "false",
|
|
400
416
|
class: "kopimi-mark"
|
|
401
|
-
}, [
|
|
417
|
+
}, [a("path", {
|
|
402
418
|
d: "M12 4L22 23H2Z",
|
|
403
419
|
fill: "none",
|
|
404
420
|
stroke: "currentColor",
|
|
405
421
|
"stroke-width": "1.5"
|
|
406
|
-
}),
|
|
422
|
+
}), a("text", {
|
|
407
423
|
x: "12",
|
|
408
424
|
y: "18",
|
|
409
425
|
"text-anchor": "middle",
|
|
@@ -411,48 +427,91 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
411
427
|
"font-family": "system-ui, sans-serif",
|
|
412
428
|
"font-size": "11",
|
|
413
429
|
fill: "currentColor"
|
|
414
|
-
}, " C ")], -1)]])) :
|
|
415
|
-
${u.value}`), 1)) :
|
|
430
|
+
}, " C ")], -1)]])) : r("", !0)], 8, Re), a("span", He, [o(g(e.year) + " " + g(e.organisationName) + ".", 1), u.value ? (f(), i("span", Ue, g(`
|
|
431
|
+
${u.value}`), 1)) : r("", !0)])]));
|
|
416
432
|
}
|
|
417
|
-
}), [["__scopeId", "data-v-
|
|
433
|
+
}), [["__scopeId", "data-v-1f9a5da9"]]), Ge = {
|
|
434
|
+
class: "ui-stepper",
|
|
435
|
+
role: "list"
|
|
436
|
+
}, Ke = {
|
|
437
|
+
key: 0,
|
|
438
|
+
"aria-hidden": "true"
|
|
439
|
+
}, qe = {
|
|
440
|
+
key: 1,
|
|
441
|
+
"aria-hidden": "true"
|
|
442
|
+
}, Je = { class: "ui-stepper__label" }, Ye = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
443
|
+
__name: "UiStepper",
|
|
444
|
+
props: {
|
|
445
|
+
steps: {},
|
|
446
|
+
modelValue: {}
|
|
447
|
+
},
|
|
448
|
+
emits: ["update:modelValue"],
|
|
449
|
+
setup(t, { emit: r }) {
|
|
450
|
+
let o = t, s = r;
|
|
451
|
+
function c(e) {
|
|
452
|
+
return e < o.modelValue ? "done" : e === o.modelValue ? "active" : "upcoming";
|
|
453
|
+
}
|
|
454
|
+
function u(e) {
|
|
455
|
+
e < o.modelValue && s("update:modelValue", e);
|
|
456
|
+
}
|
|
457
|
+
return (r, o) => (f(), i("ol", Ge, [(f(!0), i(e, null, m(t.steps, (e, t) => (f(), i("li", {
|
|
458
|
+
key: e.id,
|
|
459
|
+
class: l(["ui-stepper__step", `is-${c(t)}`])
|
|
460
|
+
}, [(f(), n(te(c(t) === "done" ? "button" : "span"), {
|
|
461
|
+
class: "ui-stepper__badge",
|
|
462
|
+
type: c(t) === "done" ? "button" : void 0,
|
|
463
|
+
"aria-label": c(t) === "done" ? `Back to ${e.label}` : void 0,
|
|
464
|
+
"aria-current": c(t) === "active" ? "step" : void 0,
|
|
465
|
+
onClick: (e) => c(t) === "done" && u(t)
|
|
466
|
+
}, {
|
|
467
|
+
default: ae(() => [c(t) === "done" ? (f(), i("span", Ke, "✓")) : (f(), i("span", qe, g(t + 1), 1))]),
|
|
468
|
+
_: 2
|
|
469
|
+
}, 1032, [
|
|
470
|
+
"type",
|
|
471
|
+
"aria-label",
|
|
472
|
+
"aria-current",
|
|
473
|
+
"onClick"
|
|
474
|
+
])), a("span", Je, g(e.label), 1)], 2))), 128))]));
|
|
475
|
+
}
|
|
476
|
+
}), [["__scopeId", "data-v-33717fc3"]]), Xe = /* @__PURE__ */ new Set([
|
|
418
477
|
"operational",
|
|
419
478
|
"degraded",
|
|
420
479
|
"down",
|
|
421
480
|
"unknown"
|
|
422
481
|
]);
|
|
482
|
+
function U(e) {
|
|
483
|
+
return typeof e == "string" && Xe.has(e);
|
|
484
|
+
}
|
|
423
485
|
function W(e) {
|
|
424
|
-
return
|
|
486
|
+
return U(e) ? e : "unknown";
|
|
425
487
|
}
|
|
426
488
|
function G(e) {
|
|
427
|
-
return W(e) ? e : "unknown";
|
|
428
|
-
}
|
|
429
|
-
function K(e) {
|
|
430
489
|
return typeof e != "string" || e.trim() === "" ? "" : e.replace(/[<>&"]/g, "");
|
|
431
490
|
}
|
|
432
|
-
function
|
|
491
|
+
function Ze(e) {
|
|
433
492
|
if (typeof e != "object" || !e) return null;
|
|
434
|
-
let t = e, n =
|
|
493
|
+
let t = e, n = G(t.name);
|
|
435
494
|
return n ? {
|
|
436
495
|
name: n,
|
|
437
|
-
status:
|
|
496
|
+
status: W(t.status)
|
|
438
497
|
} : null;
|
|
439
498
|
}
|
|
440
|
-
function
|
|
499
|
+
function Qe(e) {
|
|
441
500
|
if (typeof e != "object" || !e) return null;
|
|
442
|
-
let t = e, n =
|
|
501
|
+
let t = e, n = G(t.name);
|
|
443
502
|
if (!n) return null;
|
|
444
|
-
let r = Array.isArray(t.components) ? t.components.map(
|
|
503
|
+
let r = Array.isArray(t.components) ? t.components.map(Ze).filter((e) => e !== null) : [];
|
|
445
504
|
return {
|
|
446
505
|
name: n,
|
|
447
|
-
status:
|
|
506
|
+
status: W(t.status),
|
|
448
507
|
components: r
|
|
449
508
|
};
|
|
450
509
|
}
|
|
451
|
-
function
|
|
510
|
+
function K(e) {
|
|
452
511
|
if (typeof e != "object" || !e) return null;
|
|
453
512
|
let t = e;
|
|
454
|
-
if (!
|
|
455
|
-
let n = t.groups.map(
|
|
513
|
+
if (!U(t.overall) || typeof t.generated_at != "string" || !Array.isArray(t.groups)) return null;
|
|
514
|
+
let n = t.groups.map(Qe).filter((e) => e !== null);
|
|
456
515
|
return {
|
|
457
516
|
generated_at: t.generated_at,
|
|
458
517
|
overall: t.overall,
|
|
@@ -461,7 +520,7 @@ function q(e) {
|
|
|
461
520
|
}
|
|
462
521
|
//#endregion
|
|
463
522
|
//#region src/components/StatusWidget.vue?vue&type=script&setup=true&lang.ts
|
|
464
|
-
var
|
|
523
|
+
var $e = ["href", "title"], et = { class: "status-widget__label" }, q = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
465
524
|
__name: "StatusWidget",
|
|
466
525
|
props: {
|
|
467
526
|
apiUrl: { default: "https://status.meddleware.co.uk/api/status" },
|
|
@@ -474,59 +533,59 @@ var Be = ["href", "title"], Ve = { class: "status-widget__label" }, He = /*#__PU
|
|
|
474
533
|
degraded: "degraded",
|
|
475
534
|
down: "error",
|
|
476
535
|
unknown: "degraded"
|
|
477
|
-
},
|
|
536
|
+
}, r = {
|
|
478
537
|
operational: "All systems operational",
|
|
479
538
|
degraded: "Degraded",
|
|
480
539
|
down: "Major outage",
|
|
481
540
|
unknown: "Status unknown"
|
|
482
|
-
}, o =
|
|
483
|
-
async function
|
|
541
|
+
}, o = p("ok"), s = p("All systems operational"), c = null;
|
|
542
|
+
async function u() {
|
|
484
543
|
try {
|
|
485
544
|
let e = await fetch(t.apiUrl);
|
|
486
545
|
if (!e.ok) throw Error(`HTTP ${e.status}`);
|
|
487
|
-
let
|
|
488
|
-
if (!
|
|
489
|
-
o.value = n[
|
|
546
|
+
let i = K(await e.json());
|
|
547
|
+
if (!i) throw Error("unexpected response shape");
|
|
548
|
+
o.value = n[i.overall], s.value = r[i.overall];
|
|
490
549
|
} catch {
|
|
491
550
|
o.value = "error", s.value = "Status unavailable";
|
|
492
551
|
}
|
|
493
552
|
}
|
|
494
|
-
return
|
|
495
|
-
|
|
496
|
-
}),
|
|
497
|
-
|
|
498
|
-
}), (t, n) => (
|
|
499
|
-
href:
|
|
553
|
+
return ee(() => {
|
|
554
|
+
u(), c = setInterval(u, t.pollInterval);
|
|
555
|
+
}), d(() => {
|
|
556
|
+
c !== null && clearInterval(c);
|
|
557
|
+
}), (t, n) => (f(), i("a", {
|
|
558
|
+
href: _(T)(e.href),
|
|
500
559
|
target: "_blank",
|
|
501
560
|
rel: "noopener noreferrer",
|
|
502
|
-
class:
|
|
561
|
+
class: l(["status-widget", `status-widget--${o.value}`]),
|
|
503
562
|
title: `Platform status: ${s.value}`
|
|
504
|
-
}, [n[0] ||=
|
|
563
|
+
}, [n[0] ||= a("span", {
|
|
505
564
|
class: "status-widget__dot",
|
|
506
565
|
"aria-hidden": "true"
|
|
507
|
-
}, null, -1),
|
|
566
|
+
}, null, -1), a("span", et, g(s.value), 1)], 10, $e));
|
|
508
567
|
}
|
|
509
568
|
}), [["__scopeId", "data-v-6436368e"]]), J = {
|
|
510
569
|
mainnet: "https://suivision.xyz",
|
|
511
570
|
testnet: "https://testnet.suivision.xyz",
|
|
512
571
|
devnet: "https://devnet.suivision.xyz"
|
|
513
572
|
};
|
|
514
|
-
function
|
|
573
|
+
function tt(e, t, n = "testnet") {
|
|
515
574
|
return `${J[n] ?? J.testnet}/${e}/${t}`;
|
|
516
575
|
}
|
|
517
576
|
//#endregion
|
|
518
577
|
//#region src/composables/useColorMode.ts
|
|
519
|
-
var Y = "mw-color-mode", X =
|
|
520
|
-
function
|
|
578
|
+
var Y = "mw-color-mode", X = p("system"), Z = !1;
|
|
579
|
+
function nt() {
|
|
521
580
|
return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
522
581
|
}
|
|
523
582
|
function Q(e) {
|
|
524
|
-
return e === "dark" || e === "system" &&
|
|
583
|
+
return e === "dark" || e === "system" && nt();
|
|
525
584
|
}
|
|
526
585
|
function $(e) {
|
|
527
586
|
typeof document < "u" && document.documentElement.setAttribute("data-theme", Q(e) ? "dark" : "light");
|
|
528
587
|
}
|
|
529
|
-
function
|
|
588
|
+
function rt(e = "system") {
|
|
530
589
|
if (!Z) {
|
|
531
590
|
Z = !0;
|
|
532
591
|
let t = null;
|
|
@@ -535,7 +594,7 @@ function Ge(e = "system") {
|
|
|
535
594
|
} catch {}
|
|
536
595
|
X.value = t ?? e, $(X.value), typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => {
|
|
537
596
|
X.value === "system" && $("system");
|
|
538
|
-
}),
|
|
597
|
+
}), ie(X, (e) => {
|
|
539
598
|
$(e);
|
|
540
599
|
try {
|
|
541
600
|
typeof localStorage < "u" && localStorage.setItem(Y, e);
|
|
@@ -557,10 +616,10 @@ function Ge(e = "system") {
|
|
|
557
616
|
}
|
|
558
617
|
//#endregion
|
|
559
618
|
//#region src/composables/useSeason.ts
|
|
560
|
-
function
|
|
619
|
+
function it() {
|
|
561
620
|
if (typeof document > "u") return;
|
|
562
621
|
let e = (/* @__PURE__ */ new Date()).getMonth(), t = e >= 2 && e <= 4 ? "spring" : e >= 5 && e <= 7 ? "summer" : e >= 8 && e <= 10 ? "autumn" : "winter";
|
|
563
622
|
document.documentElement.dataset.season = t;
|
|
564
623
|
}
|
|
565
624
|
//#endregion
|
|
566
|
-
export {
|
|
625
|
+
export { j as AppFooter, de as AppHeader, w as AppSidebar, Oe as AppTabNav, I as ColorModeControl, Pe as CopyableAddress, We as CopyrightLine, Ie as ExplorerLink, Te as SidebarGroup, xe as SidebarItem, q as StatusWidget, R as UiButton, pe as UiCard, _e as UiNotice, he as UiSelect, Ye as UiStepper, U as isStatusLevel, K as parseSnapshot, T as safeHref, tt as suiExplorerUrl, rt as useColorMode, it as useSeason };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meddleware/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"description": "Shared Vue 3 component library for @meddleware UIs \u2014 layout shell (header/sidebar/footer), colour-mode control, and primitives. Built on @meddleware/design-tokens.",
|
|
5
5
|
"homepage": "https://docs.meddleware.co.uk/",
|
|
6
6
|
"license": "0BSD",
|