@meddleware/ui 0.1.24 → 0.1.27
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/AppHeader.vue.d.ts +7 -0
- package/dist/components/UiActivityFeed.vue.d.ts +13 -0
- package/dist/components/UiActivityItem.vue.d.ts +19 -0
- package/dist/components/UiBadge.vue.d.ts +18 -0
- package/dist/components/UiDataTable.vue.d.ts +16 -0
- package/dist/components/UiPanel.vue.d.ts +18 -0
- package/dist/components/UiStatGrid.vue.d.ts +13 -0
- package/dist/components/UiStatRow.vue.d.ts +19 -0
- package/dist/components/UiStatusBar.vue.d.ts +13 -0
- package/dist/components/UiStatusDot.vue.d.ts +8 -0
- package/dist/components/UiToolbar.vue.d.ts +13 -0
- package/dist/components/UiToolbarButton.vue.d.ts +13 -0
- package/dist/index.d.ts +11 -0
- package/dist/ui.js +243 -140
- package/package.json +26 -4
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}.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-3f874e32]{gap:var(--space-3xs);border-bottom:2px solid var(--border);display:flex}.mw-tab-nav__tab[data-v-3f874e32]{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;border-radius:0;margin-bottom:-2px}.mw-tab-nav__tab[data-v-3f874e32]:hover{color:var(--text)}.mw-tab-nav__tab--active[data-v-3f874e32]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.mw-tab-nav--raised[data-v-3f874e32]{border-bottom:1px solid var(--border);background:var(--surface);scrollbar-width:none;flex-shrink:0;align-items:flex-end;gap:2px;padding:4px 4px 0;overflow-x:auto}.mw-tab-nav--raised[data-v-3f874e32]::-webkit-scrollbar{display:none}.mw-tab-nav--raised .mw-tab-nav__tab[data-v-3f874e32]{border-bottom:1px solid var(--border);color:var(--muted);background:var(--lift);letter-spacing:.01em;white-space:nowrap;transition:color var(--transition-base), background var(--transition-base), border-color var(--transition-base);border-top:2px solid #0000;border-left:1px solid #0000;border-right:1px solid #0000;margin-bottom:-1px;padding:5px 14px 6px;font-size:.8rem;font-weight:500}.mw-tab-nav--raised .mw-tab-nav__tab[data-v-3f874e32]:hover:not(.mw-tab-nav__tab--active){color:var(--text);background:var(--surface)}.mw-tab-nav--raised .mw-tab-nav__tab--active[data-v-3f874e32]{color:var(--text);background:var(--bg);border-top-color:var(--accent);border-left-color:var(--border);border-right-color:var(--border);border-bottom-color:var(--bg);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}.mw-seg[data-v-0dacb6ea]{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.mw-seg__item[data-v-0dacb6ea]{height:2rem;padding:0 var(--space-sm);border-right:1px solid var(--border);cursor:pointer;font-size:var(--font-size-sm);color:var(--muted);transition:background var(--transition-base), color var(--transition-base);-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;justify-content:center;align-items:center;margin:0;display:flex}.mw-seg__item[data-v-0dacb6ea]:last-child{border-right:none}.mw-seg__item--active[data-v-0dacb6ea]{background:var(--accent);color:var(--accent-contrast)}.mw-seg__item--disabled[data-v-0dacb6ea]{opacity:.5;pointer-events:none;cursor:not-allowed}.mw-seg__item input[type=radio][data-v-0dacb6ea]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.mw-field-hint[data-v-4d63aaa4]{margin-left:var(--space-3xs,.35rem);vertical-align:middle;display:inline-block;position:relative}.mw-field-hint__btn[data-v-4d63aaa4]{border:1px solid var(--muted);width:1.1em;height:1.1em;color:var(--muted);cursor:help;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.mw-field-hint__btn[data-v-4d63aaa4]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-field-hint__tip[data-v-4d63aaa4]{z-index:10;min-width:200px;max-width:min(300px,90vw);padding:var(--space-2xs,.6rem) var(--space-xs,.75rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm,.85rem);color:var(--text);visibility:hidden;opacity:0;transition:opacity var(--transition-base,.15s ease), visibility var(--transition-base,.15s ease);pointer-events:none;font-weight:400;line-height:1.5;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001f}.mw-field-hint:hover .mw-field-hint__tip[data-v-4d63aaa4],.mw-field-hint:focus-within .mw-field-hint__tip[data-v-4d63aaa4]{visibility:visible;opacity:1;pointer-events:auto}.mw-form-field label[data-v-c22333c7]{margin:.9rem 0 .3rem;font-weight:600;display:block}.mw-form-field__hint[data-v-c22333c7]{color:var(--muted);font-size:var(--font-size-sm,.9rem);margin:.25rem 0 0;font-weight:400}.mw-form-field__error[data-v-c22333c7]{color:var(--danger);font-size:var(--font-size-sm,.88rem);margin:.25rem 0 0}.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;-moz-osx-font-smoothing:grayscale;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-a7df94dc]{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);transition:background var(--transition-base), backdrop-filter var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);display:flex}.mw-header--sticky[data-v-a7df94dc]{z-index:50;position:sticky;top:0}.mw-header--scrolled[data-v-a7df94dc]{background:color-mix(in srgb, var(--_bg-solid,var(--bg)) 82%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom-color:var(--border);box-shadow:0 1px 0 color-mix(in srgb, var(--border) 60%, transparent)}.mw-header__brand[data-v-a7df94dc]{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-a7df94dc]{flex:auto;min-width:0}.mw-header__actions[data-v-a7df94dc]{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-345f2b04]{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-345f2b04]{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-345f2b04]:hover{opacity:1}.mw-mode__btn.is-active[data-v-345f2b04]{opacity:1;background:color-mix(in srgb, var(--_text,var(--text)) 14%, transparent)}.mw-mode__btn[data-v-345f2b04]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@media (width<=640px){.mw-mode__label[data-v-345f2b04]{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-3096db80]{position:relative}.mw-select select[data-v-3096db80]{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-3096db80]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-select__chevron[data-v-3096db80]{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-00b3c666]{gap:var(--space-3xs);border-bottom:2px solid var(--border);display:flex}.mw-tab-nav__tab[data-v-00b3c666]{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;border-radius:0;margin-bottom:-2px}.mw-tab-nav__tab[data-v-00b3c666]:hover{color:var(--text)}.mw-tab-nav__tab--active[data-v-00b3c666]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.mw-tab-nav--raised[data-v-00b3c666]{border-bottom:1px solid var(--border);background:var(--surface);scrollbar-width:none;flex-shrink:0;align-items:flex-end;gap:2px;padding:4px 4px 0;overflow-x:auto}.mw-tab-nav--raised[data-v-00b3c666]::-webkit-scrollbar{display:none}.mw-tab-nav--raised .mw-tab-nav__tab[data-v-00b3c666]{border-bottom:1px solid var(--border);color:var(--muted);background:var(--lift);letter-spacing:.01em;white-space:nowrap;transition:color var(--transition-base), background var(--transition-base), border-color var(--transition-base);border-top:2px solid #0000;border-left:1px solid #0000;border-right:1px solid #0000;margin-bottom:-1px;padding:5px 14px 6px;font-size:.8rem;font-weight:500}.mw-tab-nav--raised .mw-tab-nav__tab[data-v-00b3c666]:hover:not(.mw-tab-nav__tab--active){color:var(--text);background:var(--surface)}.mw-tab-nav--raised .mw-tab-nav__tab--active[data-v-00b3c666]{color:var(--text);background:var(--bg);border-color:var(--accent) var(--border) var(--bg) var(--border);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-44b327f4]{white-space:nowrap;text-align:center;display:inline-block}.symbol-link[data-v-44b327f4]{color:inherit;vertical-align:text-top;align-items:center;padding:0 .1rem;text-decoration:none;display:inline-flex}.symbol-link[data-v-44b327f4]:hover{text-decoration:underline}.kopimi-symbol[data-v-44b327f4]{align-items:center;line-height:1;display:inline-flex}.kopimi-mark[data-v-44b327f4]{vertical-align:-.15em;display:inline}.text-content[data-v-44b327f4]{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}.mw-seg[data-v-0dacb6ea]{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.mw-seg__item[data-v-0dacb6ea]{height:2rem;padding:0 var(--space-sm);border-right:1px solid var(--border);cursor:pointer;font-size:var(--font-size-sm);color:var(--muted);transition:background var(--transition-base), color var(--transition-base);-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;justify-content:center;align-items:center;margin:0;display:flex}.mw-seg__item[data-v-0dacb6ea]:last-child{border-right:none}.mw-seg__item--active[data-v-0dacb6ea]{background:var(--accent);color:var(--accent-contrast)}.mw-seg__item--disabled[data-v-0dacb6ea]{opacity:.5;pointer-events:none;cursor:not-allowed}.mw-seg__item input[type=radio][data-v-0dacb6ea]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.mw-field-hint[data-v-29d9a629]{margin-left:var(--space-3xs,.35rem);vertical-align:middle;display:inline-block;position:relative}.mw-field-hint__btn[data-v-29d9a629]{border:1px solid var(--muted);width:1.1em;height:1.1em;color:var(--muted);cursor:help;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.mw-field-hint__btn[data-v-29d9a629]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-field-hint__tip[data-v-29d9a629]{z-index:10;min-width:200px;max-width:min(300px,90vw);padding:var(--space-2xs,.6rem) var(--space-xs,.75rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm,.85rem);color:var(--text);visibility:hidden;opacity:0;transition:opacity var(--transition-base,.15s ease), visibility var(--transition-base,.15s ease);pointer-events:none;font-weight:400;line-height:1.5;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 4px 12px #0000001f}.mw-field-hint:hover .mw-field-hint__tip[data-v-29d9a629],.mw-field-hint:focus-within .mw-field-hint__tip[data-v-29d9a629]{visibility:visible;opacity:1;pointer-events:auto}.mw-form-field label[data-v-c22333c7]{margin:.9rem 0 .3rem;font-weight:600;display:block}.mw-form-field__hint[data-v-c22333c7]{color:var(--muted);font-size:var(--font-size-sm,.9rem);margin:.25rem 0 0;font-weight:400}.mw-form-field__error[data-v-c22333c7]{color:var(--danger);font-size:var(--font-size-sm,.88rem);margin:.25rem 0 0}.mw-panel[data-v-d112e62d]{border:1px solid var(--border);background:var(--surface);border-radius:2px;overflow:hidden}.mw-panel__head[data-v-d112e62d]{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--lift);border-bottom:1px solid var(--border);padding:5px 10px;font-size:.72rem;font-weight:600}.mw-panel__body[data-v-d112e62d]{padding:10px}.mw-badge[data-v-5aa44ef5]{letter-spacing:.04em;text-transform:uppercase;border-radius:2px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.mw-badge--active[data-v-5aa44ef5]{background:color-mix(in srgb, var(--ok) 20%, transparent);color:var(--ok)}.mw-badge--closed[data-v-5aa44ef5]{background:color-mix(in srgb, var(--muted) 20%, transparent);color:var(--muted)}.mw-badge--pending[data-v-5aa44ef5]{background:color-mix(in srgb, var(--warning) 20%, transparent);color:var(--warning)}.mw-badge--neutral[data-v-5aa44ef5]{background:var(--lift);color:var(--muted)}.mw-toolbar[data-v-827466de]{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:4px;padding:4px 8px;display:flex}.mw-toolbar-btn[data-v-d5f19134]{background:var(--lift);border:1px solid var(--border);height:26px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:2px;align-items:center;gap:5px;padding:3px 10px;font-size:.8rem;transition:background .1s,border-color .1s;display:inline-flex}.mw-toolbar-btn[data-v-d5f19134]:hover:not(:disabled){background:var(--surface);border-color:var(--accent)}.mw-toolbar-btn[data-v-d5f19134]:disabled{opacity:.5;cursor:not-allowed}.mw-toolbar-btn[data-v-d5f19134]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-stat-grid[data-v-f481948b]{grid-template-columns:auto 1fr;gap:3px 12px;font-size:.8rem;display:grid}.mw-stat-grid__label[data-v-4c872fab]{color:var(--muted);white-space:nowrap}.mw-stat-grid__value[data-v-4c872fab]{font-family:var(--mw-font-mono);color:var(--text);text-align:right}.mw-stat-grid__value--left[data-v-4c872fab]{text-align:left}.mw-data-table-wrap[data-v-fc20cb49]{overflow-x:auto}.mw-data-table[data-v-fc20cb49]{border-collapse:collapse;width:100%;font-size:.8rem}.mw-data-table[data-v-fc20cb49] th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 8px;font-size:.7rem;font-weight:600}.mw-data-table[data-v-fc20cb49] td{border-bottom:1px solid var(--border);vertical-align:middle;padding:5px 8px}.mw-data-table[data-v-fc20cb49] tbody tr:last-child td{border-bottom:none}.mw-data-table[data-v-fc20cb49] tbody tr:nth-child(2n) td{background:var(--lift)}.mw-data-table__empty[data-v-fc20cb49]{text-align:center;color:var(--muted);padding:24px 16px;font-size:.8rem}.mw-statusbar[data-v-890bec3f]{color:var(--muted);background:var(--surface);border-top:1px solid var(--border);font-size:.72rem;font-family:var(--mw-font-mono);z-index:1;flex-shrink:0;align-items:center;gap:16px;padding:3px 12px;display:flex;position:sticky;bottom:0}.mw-statusbar[data-v-890bec3f] .mw-statusbar__item{align-items:center;display:flex}.mw-statusbar[data-v-890bec3f] .mw-statusbar__sep{color:var(--border)}.mw-status-dot[data-v-62e9a7cc]{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-right:4px;display:inline-block}.mw-status-dot--ok[data-v-62e9a7cc]{background:var(--ok)}.mw-status-dot--warn[data-v-62e9a7cc]{background:var(--warning)}.mw-status-dot--error[data-v-62e9a7cc]{background:var(--danger)}.mw-feed[data-v-9e578c9d]{margin:0;padding:0;font-size:.78rem;list-style:none}.mw-feed__item[data-v-f662c634]{border-bottom:1px solid var(--border);color:var(--muted);align-items:flex-start;gap:8px;padding:4px 0;display:flex}.mw-feed__item[data-v-f662c634]:last-child{border-bottom:none}.mw-feed__dot[data-v-f662c634]{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:4px}.mw-feed__type[data-v-f662c634]{color:var(--text);white-space:nowrap;font-weight:500}.mw-feed__time[data-v-f662c634]{white-space:nowrap;font-family:var(--mw-font-mono);margin-left:auto;font-size:.72rem}.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*/
|
|
@@ -6,6 +6,12 @@ type __VLS_Props = {
|
|
|
6
6
|
colors?: PanelColors;
|
|
7
7
|
/** Stick to the top of the viewport (full-width shells). */
|
|
8
8
|
sticky?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Solidify a transparent header on scroll: while at the top the header stays
|
|
11
|
+
* see-through (e.g. over a hero); once the page scrolls it fades in a frosted
|
|
12
|
+
* background so the brand/nav stay legible. No-op unless the header scrolls.
|
|
13
|
+
*/
|
|
14
|
+
solidifyOnScroll?: boolean;
|
|
9
15
|
};
|
|
10
16
|
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
|
|
11
17
|
type __VLS_Slots = {} & {
|
|
@@ -18,6 +24,7 @@ type __VLS_Slots = {} & {
|
|
|
18
24
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
19
25
|
variant: PanelVariant;
|
|
20
26
|
sticky: boolean;
|
|
27
|
+
solidifyOnScroll: boolean;
|
|
21
28
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
29
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
23
30
|
declare const _default: typeof __VLS_export;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
9
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
10
|
+
new (): {
|
|
11
|
+
$slots: S;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
type?: string;
|
|
3
|
+
time?: string;
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {}, __VLS_3: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
type?: (props: typeof __VLS_1) => any;
|
|
8
|
+
} & {
|
|
9
|
+
time?: (props: typeof __VLS_3) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
variant?: 'active' | 'closed' | 'pending' | 'neutral';
|
|
3
|
+
};
|
|
4
|
+
declare var __VLS_1: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_1) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
9
|
+
variant: "active" | "closed" | "pending" | "neutral";
|
|
10
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
empty?: string;
|
|
3
|
+
};
|
|
4
|
+
type __VLS_Slots = {
|
|
5
|
+
head(): unknown;
|
|
6
|
+
default(): unknown;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
title?: string;
|
|
3
|
+
};
|
|
4
|
+
declare var __VLS_1: {}, __VLS_3: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
head?: (props: typeof __VLS_1) => any;
|
|
7
|
+
} & {
|
|
8
|
+
default?: (props: typeof __VLS_3) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
9
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
10
|
+
new (): {
|
|
11
|
+
$slots: S;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label: string;
|
|
3
|
+
align?: 'left' | 'right';
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_1) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
10
|
+
align: "left" | "right";
|
|
11
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
9
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
10
|
+
new (): {
|
|
11
|
+
$slots: S;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
status?: 'ok' | 'warn' | 'error';
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
5
|
+
status: "ok" | "warn" | "error";
|
|
6
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
9
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
10
|
+
new (): {
|
|
11
|
+
$slots: S;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
9
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
10
|
+
new (): {
|
|
11
|
+
$slots: S;
|
|
12
|
+
};
|
|
13
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,17 @@ export { default as UiSegmentedControl } from './components/UiSegmentedControl.v
|
|
|
20
20
|
export type { SegmentedOption } from './components/UiSegmentedControl.vue';
|
|
21
21
|
export { default as UiFieldHint } from './components/UiFieldHint.vue';
|
|
22
22
|
export { default as UiFormField } from './components/UiFormField.vue';
|
|
23
|
+
export { default as UiPanel } from './components/UiPanel.vue';
|
|
24
|
+
export { default as UiBadge } from './components/UiBadge.vue';
|
|
25
|
+
export { default as UiToolbar } from './components/UiToolbar.vue';
|
|
26
|
+
export { default as UiToolbarButton } from './components/UiToolbarButton.vue';
|
|
27
|
+
export { default as UiStatGrid } from './components/UiStatGrid.vue';
|
|
28
|
+
export { default as UiStatRow } from './components/UiStatRow.vue';
|
|
29
|
+
export { default as UiDataTable } from './components/UiDataTable.vue';
|
|
30
|
+
export { default as UiStatusBar } from './components/UiStatusBar.vue';
|
|
31
|
+
export { default as UiStatusDot } from './components/UiStatusDot.vue';
|
|
32
|
+
export { default as UiActivityFeed } from './components/UiActivityFeed.vue';
|
|
33
|
+
export { default as UiActivityItem } from './components/UiActivityItem.vue';
|
|
23
34
|
export { default as StatusWidget } from './components/StatusWidget.vue';
|
|
24
35
|
export { suiExplorerUrl } from './explorer.js';
|
|
25
36
|
export type { SuiNetwork, SuiExplorerKind } from './explorer.js';
|
package/dist/ui.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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,
|
|
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, onBeforeUnmount as ee, onMounted as d, onUnmounted as f, openBlock as p, ref as m, renderList as h, renderSlot as g, resolveDynamicComponent as te, toDisplayString as _, unref as v, useModel as ne, useSlots as re, vModelSelect as ie, watch as ae, withCtx as oe, withDirectives as se } from "vue";
|
|
2
2
|
//#region src/internal/panel.ts
|
|
3
|
-
function
|
|
3
|
+
function y(e, t) {
|
|
4
4
|
let n;
|
|
5
5
|
return n = e === "transparent" ? {
|
|
6
6
|
"--_bg": "transparent",
|
|
@@ -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 ce = { class: "mw-header__brand" }, le = { class: "mw-header__center" }, ue = { class: "mw-header__actions" }, de = /*@__PURE__*/ s({
|
|
28
28
|
__name: "AppHeader",
|
|
29
29
|
props: {
|
|
30
30
|
variant: { default: "dark" },
|
|
@@ -32,36 +32,49 @@ var se = { class: "mw-header__brand" }, ce = { class: "mw-header__center" }, le
|
|
|
32
32
|
sticky: {
|
|
33
33
|
type: Boolean,
|
|
34
34
|
default: !0
|
|
35
|
+
},
|
|
36
|
+
solidifyOnScroll: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: !1
|
|
35
39
|
}
|
|
36
40
|
},
|
|
37
41
|
setup(e) {
|
|
38
|
-
let n = e, r = t(() =>
|
|
39
|
-
return (
|
|
40
|
-
|
|
42
|
+
let n = e, r = t(() => y(n.variant, n.colors)), o = m(!1), s = null;
|
|
43
|
+
return d(() => {
|
|
44
|
+
n.solidifyOnScroll && typeof window < "u" && (s = () => {
|
|
45
|
+
o.value = window.scrollY > 8;
|
|
46
|
+
}, s(), window.addEventListener("scroll", s, { passive: !0 }));
|
|
47
|
+
}), ee(() => {
|
|
48
|
+
s && window.removeEventListener("scroll", s);
|
|
49
|
+
}), (t, n) => (p(), i("header", {
|
|
50
|
+
class: l(["mw-header", [`mw-header--${e.variant}`, {
|
|
51
|
+
"mw-header--sticky": e.sticky,
|
|
52
|
+
"mw-header--scrolled": e.solidifyOnScroll && o.value
|
|
53
|
+
}]]),
|
|
41
54
|
style: u(r.value)
|
|
42
55
|
}, [
|
|
43
|
-
a("div",
|
|
44
|
-
a("div",
|
|
45
|
-
a("div",
|
|
56
|
+
a("div", ce, [g(t.$slots, "brand", {}, void 0, !0)]),
|
|
57
|
+
a("div", le, [g(t.$slots, "default", {}, void 0, !0)]),
|
|
58
|
+
a("div", ue, [g(t.$slots, "actions", {}, void 0, !0)])
|
|
46
59
|
], 6));
|
|
47
60
|
}
|
|
48
|
-
}),
|
|
61
|
+
}), b = (e, t) => {
|
|
49
62
|
let n = e.__vccOpts || e;
|
|
50
63
|
for (let [e, r] of t) n[e] = r;
|
|
51
64
|
return n;
|
|
52
|
-
},
|
|
65
|
+
}, x = /*#__PURE__*/ b(de, [["__scopeId", "data-v-a7df94dc"]]), S = {
|
|
53
66
|
key: 0,
|
|
54
67
|
class: "mw-sidebar__head"
|
|
55
|
-
},
|
|
68
|
+
}, C = {
|
|
56
69
|
class: "mw-sidebar__nav",
|
|
57
70
|
"aria-label": "Primary"
|
|
58
|
-
},
|
|
71
|
+
}, w = {
|
|
59
72
|
key: 1,
|
|
60
73
|
class: "mw-sidebar__body"
|
|
61
|
-
},
|
|
74
|
+
}, T = {
|
|
62
75
|
key: 2,
|
|
63
76
|
class: "mw-sidebar__foot"
|
|
64
|
-
},
|
|
77
|
+
}, E = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
65
78
|
__name: "AppSidebar",
|
|
66
79
|
props: {
|
|
67
80
|
variant: { default: "dark" },
|
|
@@ -70,23 +83,23 @@ var se = { class: "mw-header__brand" }, ce = { class: "mw-header__center" }, le
|
|
|
70
83
|
},
|
|
71
84
|
setup(e) {
|
|
72
85
|
let n = e, o = t(() => {
|
|
73
|
-
let e =
|
|
86
|
+
let e = y(n.variant, n.colors);
|
|
74
87
|
return n.width && (e["--mw-sidebar-width"] = n.width), e;
|
|
75
88
|
});
|
|
76
|
-
return (t, n) => (
|
|
89
|
+
return (t, n) => (p(), i("aside", {
|
|
77
90
|
class: l(["mw-sidebar", `mw-sidebar--${e.variant}`]),
|
|
78
91
|
style: u(o.value)
|
|
79
92
|
}, [
|
|
80
|
-
t.$slots.head ? (
|
|
81
|
-
a("nav",
|
|
82
|
-
t.$slots.body ? (
|
|
83
|
-
t.$slots.foot ? (
|
|
93
|
+
t.$slots.head ? (p(), i("div", S, [g(t.$slots, "head", {}, void 0, !0)])) : r("", !0),
|
|
94
|
+
a("nav", C, [g(t.$slots, "default", {}, void 0, !0)]),
|
|
95
|
+
t.$slots.body ? (p(), i("div", w, [g(t.$slots, "body", {}, void 0, !0)])) : r("", !0),
|
|
96
|
+
t.$slots.foot ? (p(), i("div", T, [g(t.$slots, "foot", {}, void 0, !0)])) : r("", !0)
|
|
84
97
|
], 6));
|
|
85
98
|
}
|
|
86
99
|
}), [["__scopeId", "data-v-a2b8405c"]]);
|
|
87
100
|
//#endregion
|
|
88
101
|
//#region src/safe-href.ts
|
|
89
|
-
function
|
|
102
|
+
function D(e) {
|
|
90
103
|
if (e) try {
|
|
91
104
|
let t = new URL(e);
|
|
92
105
|
if (t.protocol === "https:" || t.protocol === "http:" && (t.hostname === "localhost" || t.hostname === "127.0.0.1")) return e;
|
|
@@ -94,7 +107,7 @@ function T(e) {
|
|
|
94
107
|
}
|
|
95
108
|
//#endregion
|
|
96
109
|
//#region src/components/AppFooter.vue?vue&type=script&setup=true&lang.ts
|
|
97
|
-
var
|
|
110
|
+
var O = { class: "mw-footer__start" }, k = { class: "mw-footer__center" }, A = { class: "mw-footer__end" }, j = ["href"], M = ["href"], N = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
98
111
|
__name: "AppFooter",
|
|
99
112
|
props: {
|
|
100
113
|
variant: { default: "transparent" },
|
|
@@ -103,42 +116,42 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
103
116
|
devUrl: {}
|
|
104
117
|
},
|
|
105
118
|
setup(e) {
|
|
106
|
-
let n = e, o = t(() =>
|
|
107
|
-
return (t, n) => (
|
|
119
|
+
let n = e, o = t(() => y(n.variant, n.colors));
|
|
120
|
+
return (t, n) => (p(), i("footer", {
|
|
108
121
|
class: l(["mw-footer", `mw-footer--${e.variant}`]),
|
|
109
122
|
style: u(o.value)
|
|
110
123
|
}, [
|
|
111
|
-
a("div",
|
|
112
|
-
a("div",
|
|
113
|
-
a("div",
|
|
114
|
-
|
|
115
|
-
e.docsUrl ? (
|
|
124
|
+
a("div", O, [g(t.$slots, "start", {}, void 0, !0)]),
|
|
125
|
+
a("div", k, [g(t.$slots, "default", {}, void 0, !0)]),
|
|
126
|
+
a("div", A, [
|
|
127
|
+
g(t.$slots, "end", {}, void 0, !0),
|
|
128
|
+
e.docsUrl ? (p(), i("a", {
|
|
116
129
|
key: 0,
|
|
117
|
-
href:
|
|
130
|
+
href: v(D)(e.docsUrl),
|
|
118
131
|
target: "_blank",
|
|
119
132
|
rel: "noopener noreferrer",
|
|
120
133
|
class: "mw-footer__docs-link"
|
|
121
|
-
}, "Documentation", 8,
|
|
122
|
-
e.devUrl ? (
|
|
134
|
+
}, "Documentation", 8, j)) : r("", !0),
|
|
135
|
+
e.devUrl ? (p(), i("a", {
|
|
123
136
|
key: 1,
|
|
124
|
-
href:
|
|
137
|
+
href: v(D)(e.devUrl),
|
|
125
138
|
target: "_blank",
|
|
126
139
|
rel: "noopener noreferrer",
|
|
127
140
|
"aria-label": "Developer documentation",
|
|
128
141
|
class: "mw-footer__docs-link"
|
|
129
|
-
}, "Developer docs", 8,
|
|
142
|
+
}, "Developer docs", 8, M)) : r("", !0)
|
|
130
143
|
])
|
|
131
144
|
], 6));
|
|
132
145
|
}
|
|
133
|
-
}), [["__scopeId", "data-v-979579a9"]]),
|
|
146
|
+
}), [["__scopeId", "data-v-979579a9"]]), P = {
|
|
134
147
|
class: "mw-mode",
|
|
135
148
|
role: "group",
|
|
136
149
|
"aria-label": "Colour mode"
|
|
137
|
-
},
|
|
150
|
+
}, F = [
|
|
138
151
|
"aria-pressed",
|
|
139
152
|
"title",
|
|
140
153
|
"onClick"
|
|
141
|
-
],
|
|
154
|
+
], I = { "aria-hidden": "true" }, L = { class: "mw-mode__label" }, R = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
142
155
|
__name: "ColorModeControl",
|
|
143
156
|
props: {
|
|
144
157
|
modelValue: {},
|
|
@@ -159,16 +172,16 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
159
172
|
dark: "☾",
|
|
160
173
|
system: "🖵"
|
|
161
174
|
};
|
|
162
|
-
return (o, s) => (
|
|
175
|
+
return (o, s) => (p(), i("div", P, [(p(!0), i(e, null, h(t.modes, (e) => (p(), i("button", {
|
|
163
176
|
key: e,
|
|
164
177
|
type: "button",
|
|
165
178
|
class: l(["mw-mode__btn", { "is-active": t.modelValue === e }]),
|
|
166
179
|
"aria-pressed": t.modelValue === e,
|
|
167
180
|
title: n[e],
|
|
168
181
|
onClick: (t) => o.$emit("update:modelValue", e)
|
|
169
|
-
}, [a("span",
|
|
182
|
+
}, [a("span", I, _(r[e]), 1), a("span", L, _(n[e]), 1)], 10, F))), 128))]));
|
|
170
183
|
}
|
|
171
|
-
}), [["__scopeId", "data-v-
|
|
184
|
+
}), [["__scopeId", "data-v-345f2b04"]]), z = ["type", "disabled"], B = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
172
185
|
__name: "UiButton",
|
|
173
186
|
props: {
|
|
174
187
|
variant: { default: "primary" },
|
|
@@ -179,29 +192,29 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
179
192
|
}
|
|
180
193
|
},
|
|
181
194
|
setup(e) {
|
|
182
|
-
return (t, n) => (
|
|
195
|
+
return (t, n) => (p(), i("button", {
|
|
183
196
|
type: e.type,
|
|
184
197
|
disabled: e.disabled,
|
|
185
198
|
class: l(["mw-btn", `mw-btn--${e.variant}`])
|
|
186
|
-
}, [
|
|
199
|
+
}, [g(t.$slots, "default", {}, void 0, !0)], 10, z));
|
|
187
200
|
}
|
|
188
|
-
}), [["__scopeId", "data-v-bc33cc23"]]),
|
|
201
|
+
}), [["__scopeId", "data-v-bc33cc23"]]), V = { class: "mw-card" }, H = {
|
|
189
202
|
key: 0,
|
|
190
203
|
class: "mw-card__header"
|
|
191
|
-
},
|
|
204
|
+
}, fe = { class: "mw-card__title" }, pe = { class: "mw-card__body" }, me = {
|
|
192
205
|
key: 1,
|
|
193
206
|
class: "mw-card__footer"
|
|
194
|
-
},
|
|
207
|
+
}, he = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
195
208
|
__name: "UiCard",
|
|
196
209
|
props: { title: {} },
|
|
197
210
|
setup(e) {
|
|
198
|
-
return (t, n) => (
|
|
199
|
-
e.title || t.$slots.header ? (
|
|
200
|
-
a("div",
|
|
201
|
-
t.$slots.footer ? (
|
|
211
|
+
return (t, n) => (p(), i("section", V, [
|
|
212
|
+
e.title || t.$slots.header ? (p(), i("header", H, [g(t.$slots, "header", {}, () => [a("h3", fe, _(e.title), 1)], !0)])) : r("", !0),
|
|
213
|
+
a("div", pe, [g(t.$slots, "default", {}, void 0, !0)]),
|
|
214
|
+
t.$slots.footer ? (p(), i("footer", me, [g(t.$slots, "footer", {}, void 0, !0)])) : r("", !0)
|
|
202
215
|
]));
|
|
203
216
|
}
|
|
204
|
-
}), [["__scopeId", "data-v-883f87f5"]]),
|
|
217
|
+
}), [["__scopeId", "data-v-883f87f5"]]), ge = { class: "mw-select" }, _e = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
205
218
|
inheritAttrs: !1,
|
|
206
219
|
__name: "UiSelect",
|
|
207
220
|
props: {
|
|
@@ -211,7 +224,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
211
224
|
emits: ["update:modelValue"],
|
|
212
225
|
setup(e) {
|
|
213
226
|
let t = ne(e, "modelValue");
|
|
214
|
-
return (e, n) => (
|
|
227
|
+
return (e, n) => (p(), i("div", ge, [se(a("select", c(e.$attrs, { "onUpdate:modelValue": n[0] ||= (e) => t.value = e }), [g(e.$slots, "default", {}, void 0, !0)], 16), [[ie, t.value]]), n[1] ||= a("svg", {
|
|
215
228
|
class: "mw-select__chevron",
|
|
216
229
|
xmlns: "http://www.w3.org/2000/svg",
|
|
217
230
|
width: "12",
|
|
@@ -220,7 +233,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
220
233
|
"aria-hidden": "true"
|
|
221
234
|
}, [a("path", { d: "M1 1l5 5 5-5" })], -1)]));
|
|
222
235
|
}
|
|
223
|
-
}), [["__scopeId", "data-v-
|
|
236
|
+
}), [["__scopeId", "data-v-3096db80"]]), ve = ["role"], ye = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
224
237
|
__name: "UiNotice",
|
|
225
238
|
props: { type: {} },
|
|
226
239
|
setup(e) {
|
|
@@ -228,16 +241,16 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
228
241
|
if (n.type === "error") return "alert";
|
|
229
242
|
if (n.type === "ok") return "status";
|
|
230
243
|
});
|
|
231
|
-
return (t, n) => (
|
|
244
|
+
return (t, n) => (p(), i("p", {
|
|
232
245
|
class: l(["mw-notice", e.type && e.type !== "info" ? `mw-notice--${e.type}` : ""]),
|
|
233
246
|
role: r.value
|
|
234
|
-
}, [
|
|
247
|
+
}, [g(t.$slots, "default", {}, void 0, !0)], 10, ve));
|
|
235
248
|
}
|
|
236
|
-
}), [["__scopeId", "data-v-ee7fffb1"]]),
|
|
249
|
+
}), [["__scopeId", "data-v-ee7fffb1"]]), be = ["disabled", "aria-current"], xe = {
|
|
237
250
|
key: 0,
|
|
238
251
|
class: "sidebar-item__icon",
|
|
239
252
|
"aria-hidden": "true"
|
|
240
|
-
},
|
|
253
|
+
}, Se = { class: "sidebar-item__label" }, Ce = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
241
254
|
__name: "SidebarItem",
|
|
242
255
|
props: {
|
|
243
256
|
label: {},
|
|
@@ -252,30 +265,30 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
252
265
|
}
|
|
253
266
|
},
|
|
254
267
|
setup(e) {
|
|
255
|
-
return (t, n) => (
|
|
268
|
+
return (t, n) => (p(), i("button", {
|
|
256
269
|
type: "button",
|
|
257
270
|
class: l(["sidebar-item", { "is-active": e.active }]),
|
|
258
271
|
disabled: e.disabled,
|
|
259
272
|
"aria-current": e.active ? "page" : void 0
|
|
260
|
-
}, [e.icon ? (
|
|
273
|
+
}, [e.icon ? (p(), i("span", xe, _(e.icon), 1)) : r("", !0), a("span", Se, _(e.label), 1)], 10, be));
|
|
261
274
|
}
|
|
262
|
-
}), [["__scopeId", "data-v-8da2d583"]]),
|
|
275
|
+
}), [["__scopeId", "data-v-8da2d583"]]), we = ["aria-label"], Te = {
|
|
263
276
|
class: "sidebar-group__label",
|
|
264
277
|
"aria-hidden": "true"
|
|
265
|
-
},
|
|
278
|
+
}, Ee = { class: "sidebar-group__items" }, De = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
266
279
|
__name: "SidebarGroup",
|
|
267
280
|
props: {
|
|
268
281
|
label: {},
|
|
269
282
|
level: { default: 1 }
|
|
270
283
|
},
|
|
271
284
|
setup(e) {
|
|
272
|
-
return (t, n) => (
|
|
285
|
+
return (t, n) => (p(), i("div", {
|
|
273
286
|
class: l(["sidebar-group", `sidebar-group--l${e.level}`]),
|
|
274
287
|
role: "group",
|
|
275
288
|
"aria-label": e.label
|
|
276
|
-
}, [a("div",
|
|
289
|
+
}, [a("div", Te, _(e.label), 1), a("div", Ee, [g(t.$slots, "default", {}, void 0, !0)])], 10, we));
|
|
277
290
|
}
|
|
278
|
-
}), [["__scopeId", "data-v-c8f6c8b2"]]),
|
|
291
|
+
}), [["__scopeId", "data-v-c8f6c8b2"]]), Oe = ["aria-label"], ke = ["aria-current", "onClick"], Ae = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
279
292
|
__name: "AppTabNav",
|
|
280
293
|
props: {
|
|
281
294
|
tabs: {},
|
|
@@ -286,18 +299,18 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
286
299
|
emits: ["update:modelValue"],
|
|
287
300
|
setup(t, { emit: n }) {
|
|
288
301
|
let r = n;
|
|
289
|
-
return (n, a) => (
|
|
302
|
+
return (n, a) => (p(), i("nav", {
|
|
290
303
|
class: l(["mw-tab-nav", { "mw-tab-nav--raised": t.variant === "raised" }]),
|
|
291
304
|
"aria-label": t.ariaLabel
|
|
292
|
-
}, [(
|
|
305
|
+
}, [(p(!0), i(e, null, h(t.tabs, (e) => (p(), i("button", {
|
|
293
306
|
key: e.id,
|
|
294
307
|
type: "button",
|
|
295
308
|
class: l(["mw-tab-nav__tab", { "mw-tab-nav__tab--active": t.modelValue === e.id }]),
|
|
296
309
|
"aria-current": t.modelValue === e.id ? "page" : void 0,
|
|
297
310
|
onClick: (t) => r("update:modelValue", e.id)
|
|
298
|
-
},
|
|
311
|
+
}, _(e.label), 11, ke))), 128))], 10, Oe));
|
|
299
312
|
}
|
|
300
|
-
}), [["__scopeId", "data-v-
|
|
313
|
+
}), [["__scopeId", "data-v-00b3c666"]]), je = { class: "ca-root" }, Me = ["title"], Ne = ["title", "aria-label"], Pe = {
|
|
301
314
|
key: 0,
|
|
302
315
|
class: "ca-icon",
|
|
303
316
|
viewBox: "0 0 24 24",
|
|
@@ -309,7 +322,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
309
322
|
"stroke-linecap": "round",
|
|
310
323
|
"stroke-linejoin": "round",
|
|
311
324
|
"aria-hidden": "true"
|
|
312
|
-
},
|
|
325
|
+
}, Fe = {
|
|
313
326
|
key: 1,
|
|
314
327
|
class: "ca-icon",
|
|
315
328
|
viewBox: "0 0 24 24",
|
|
@@ -321,7 +334,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
321
334
|
"stroke-linecap": "round",
|
|
322
335
|
"stroke-linejoin": "round",
|
|
323
336
|
"aria-hidden": "true"
|
|
324
|
-
},
|
|
337
|
+
}, Ie = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
325
338
|
__name: "CopyableAddress",
|
|
326
339
|
props: {
|
|
327
340
|
address: {},
|
|
@@ -333,7 +346,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
333
346
|
label: { default: "Copy" }
|
|
334
347
|
},
|
|
335
348
|
setup(e) {
|
|
336
|
-
let n = e, r =
|
|
349
|
+
let n = e, r = m(!1), s = t(() => {
|
|
337
350
|
if (!n.truncate) return n.address;
|
|
338
351
|
let [e, t] = n.chars;
|
|
339
352
|
return `${n.address.slice(0, e)}…${n.address.slice(-t)}`;
|
|
@@ -343,25 +356,25 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
343
356
|
r.value = !1;
|
|
344
357
|
}, 1500);
|
|
345
358
|
}
|
|
346
|
-
return (t, n) => (
|
|
359
|
+
return (t, n) => (p(), i("span", je, [a("span", {
|
|
347
360
|
class: "ca-value",
|
|
348
361
|
title: e.address
|
|
349
|
-
}, [
|
|
362
|
+
}, [g(t.$slots, "default", {}, () => [o(_(s.value), 1)], !0)], 8, Me), a("button", {
|
|
350
363
|
type: "button",
|
|
351
364
|
class: l(["ca-copy", { "ca-copy--copied": r.value }]),
|
|
352
365
|
title: r.value ? "Copied!" : e.label,
|
|
353
366
|
"aria-label": r.value ? "Copied" : e.label,
|
|
354
367
|
onClick: c
|
|
355
|
-
}, [r.value ? (
|
|
368
|
+
}, [r.value ? (p(), i("svg", Pe, [...n[0] ||= [a("polyline", { points: "20 6 9 17 4 12" }, null, -1)]])) : (p(), i("svg", Fe, [...n[1] ||= [a("rect", {
|
|
356
369
|
x: "9",
|
|
357
370
|
y: "9",
|
|
358
371
|
width: "13",
|
|
359
372
|
height: "13",
|
|
360
373
|
rx: "2",
|
|
361
374
|
ry: "2"
|
|
362
|
-
}, 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,
|
|
375
|
+
}, 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, Ne)]));
|
|
363
376
|
}
|
|
364
|
-
}), [["__scopeId", "data-v-b43dabdd"]]),
|
|
377
|
+
}), [["__scopeId", "data-v-b43dabdd"]]), Le = ["href", "title"], Re = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
365
378
|
__name: "ExplorerLink",
|
|
366
379
|
props: {
|
|
367
380
|
href: {},
|
|
@@ -379,18 +392,18 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
379
392
|
let [e, t] = n.chars;
|
|
380
393
|
return `${n.value.slice(0, e)}…${n.value.slice(-t)}`;
|
|
381
394
|
});
|
|
382
|
-
return (t, n) => (
|
|
395
|
+
return (t, n) => (p(), i("a", {
|
|
383
396
|
class: "el-root",
|
|
384
|
-
href:
|
|
397
|
+
href: v(D)(e.href),
|
|
385
398
|
target: "_blank",
|
|
386
399
|
rel: "noopener noreferrer",
|
|
387
400
|
title: e.value
|
|
388
|
-
}, [
|
|
401
|
+
}, [g(t.$slots, "default", {}, () => [o(_(r.value), 1)], !0)], 8, Le));
|
|
389
402
|
}
|
|
390
|
-
}), [["__scopeId", "data-v-073d1bbe"]]),
|
|
403
|
+
}), [["__scopeId", "data-v-073d1bbe"]]), ze = { class: "copyright-line" }, Be = ["href", "aria-label"], Ve = { key: 0 }, He = { key: 1 }, Ue = {
|
|
391
404
|
key: 2,
|
|
392
405
|
class: "kopimi-symbol"
|
|
393
|
-
},
|
|
406
|
+
}, We = { class: "text-content" }, Ge = { key: 0 }, Ke = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
394
407
|
__name: "CopyrightLine",
|
|
395
408
|
props: {
|
|
396
409
|
organisationName: {},
|
|
@@ -402,13 +415,13 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
402
415
|
},
|
|
403
416
|
setup(e) {
|
|
404
417
|
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);
|
|
405
|
-
return (t, n) => (
|
|
418
|
+
return (t, n) => (p(), i("small", ze, [a("a", {
|
|
406
419
|
href: c.value,
|
|
407
420
|
class: "symbol-link",
|
|
408
421
|
target: "_blank",
|
|
409
422
|
rel: "noopener noreferrer",
|
|
410
423
|
"aria-label": l.value
|
|
411
|
-
}, [s.value === "copyright" ? (
|
|
424
|
+
}, [s.value === "copyright" ? (p(), i("span", Ve, "©")) : s.value === "copyleft" ? (p(), i("span", He, "🄯")) : s.value === "kopimi" ? (p(), i("span", Ue, [...n[0] ||= [a("svg", {
|
|
412
425
|
viewBox: "0 0 24 24",
|
|
413
426
|
width: "1em",
|
|
414
427
|
height: "1em",
|
|
@@ -428,19 +441,19 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
428
441
|
"font-family": "system-ui, sans-serif",
|
|
429
442
|
"font-size": "11",
|
|
430
443
|
fill: "currentColor"
|
|
431
|
-
}, " C ")], -1)]])) : r("", !0)], 8,
|
|
444
|
+
}, " C ")], -1)]])) : r("", !0)], 8, Be), a("span", We, [o(_(e.year) + " " + _(e.organisationName) + ".", 1), u.value ? (p(), i("span", Ge, _(`
|
|
432
445
|
${u.value}`), 1)) : r("", !0)])]));
|
|
433
446
|
}
|
|
434
|
-
}), [["__scopeId", "data-v-
|
|
447
|
+
}), [["__scopeId", "data-v-44b327f4"]]), qe = {
|
|
435
448
|
class: "ui-stepper",
|
|
436
449
|
role: "list"
|
|
437
|
-
},
|
|
450
|
+
}, Je = {
|
|
438
451
|
key: 0,
|
|
439
452
|
"aria-hidden": "true"
|
|
440
|
-
},
|
|
453
|
+
}, Ye = {
|
|
441
454
|
key: 1,
|
|
442
455
|
"aria-hidden": "true"
|
|
443
|
-
},
|
|
456
|
+
}, Xe = { class: "ui-stepper__label" }, Ze = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
444
457
|
__name: "UiStepper",
|
|
445
458
|
props: {
|
|
446
459
|
steps: {},
|
|
@@ -455,31 +468,31 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
455
468
|
function u(e) {
|
|
456
469
|
e < o.modelValue && s("update:modelValue", e);
|
|
457
470
|
}
|
|
458
|
-
return (r, o) => (
|
|
471
|
+
return (r, o) => (p(), i("ol", qe, [(p(!0), i(e, null, h(t.steps, (e, t) => (p(), i("li", {
|
|
459
472
|
key: e.id,
|
|
460
473
|
class: l(["ui-stepper__step", `is-${c(t)}`])
|
|
461
|
-
}, [(
|
|
474
|
+
}, [(p(), n(te(c(t) === "done" ? "button" : "span"), {
|
|
462
475
|
class: "ui-stepper__badge",
|
|
463
476
|
type: c(t) === "done" ? "button" : void 0,
|
|
464
477
|
"aria-label": c(t) === "done" ? `Back to ${e.label}` : void 0,
|
|
465
478
|
"aria-current": c(t) === "active" ? "step" : void 0,
|
|
466
479
|
onClick: (e) => c(t) === "done" && u(t)
|
|
467
480
|
}, {
|
|
468
|
-
default:
|
|
481
|
+
default: oe(() => [c(t) === "done" ? (p(), i("span", Je, "✓")) : (p(), i("span", Ye, _(t + 1), 1))]),
|
|
469
482
|
_: 2
|
|
470
483
|
}, 1032, [
|
|
471
484
|
"type",
|
|
472
485
|
"aria-label",
|
|
473
486
|
"aria-current",
|
|
474
487
|
"onClick"
|
|
475
|
-
])), a("span",
|
|
488
|
+
])), a("span", Xe, _(e.label), 1)], 2))), 128))]));
|
|
476
489
|
}
|
|
477
|
-
}), [["__scopeId", "data-v-33717fc3"]]),
|
|
490
|
+
}), [["__scopeId", "data-v-33717fc3"]]), Qe = ["aria-label"], $e = ["title"], et = [
|
|
478
491
|
"value",
|
|
479
492
|
"checked",
|
|
480
493
|
"disabled",
|
|
481
494
|
"onChange"
|
|
482
|
-
],
|
|
495
|
+
], tt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
483
496
|
__name: "UiSegmentedControl",
|
|
484
497
|
props: {
|
|
485
498
|
options: {},
|
|
@@ -489,11 +502,11 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
489
502
|
emits: ["update:modelValue"],
|
|
490
503
|
setup(t, { emit: n }) {
|
|
491
504
|
let r = n;
|
|
492
|
-
return (n, s) => (
|
|
505
|
+
return (n, s) => (p(), i("div", {
|
|
493
506
|
class: "mw-seg",
|
|
494
507
|
role: "group",
|
|
495
508
|
"aria-label": t.ariaLabel
|
|
496
|
-
}, [(
|
|
509
|
+
}, [(p(!0), i(e, null, h(t.options, (e) => (p(), i("label", {
|
|
497
510
|
key: e.id,
|
|
498
511
|
class: l(["mw-seg__item", {
|
|
499
512
|
"mw-seg__item--active": t.modelValue === e.id,
|
|
@@ -506,31 +519,31 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
506
519
|
checked: t.modelValue === e.id,
|
|
507
520
|
disabled: e.disabled,
|
|
508
521
|
onChange: (t) => r("update:modelValue", e.id)
|
|
509
|
-
}, null, 40,
|
|
522
|
+
}, null, 40, et), o(" " + _(e.label), 1)], 10, $e))), 128))], 8, Qe));
|
|
510
523
|
}
|
|
511
|
-
}), [["__scopeId", "data-v-0dacb6ea"]]),
|
|
524
|
+
}), [["__scopeId", "data-v-0dacb6ea"]]), nt = { class: "mw-field-hint" }, rt = ["aria-describedby"], it = ["id"], at = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
512
525
|
__name: "UiFieldHint",
|
|
513
526
|
props: { fieldId: {} },
|
|
514
527
|
setup(e) {
|
|
515
528
|
function t(e) {
|
|
516
529
|
e.key === "Escape" && e.currentTarget.blur();
|
|
517
530
|
}
|
|
518
|
-
return (n, r) => (
|
|
531
|
+
return (n, r) => (p(), i("span", nt, [a("button", {
|
|
519
532
|
type: "button",
|
|
520
533
|
class: "mw-field-hint__btn",
|
|
521
534
|
"aria-describedby": `${e.fieldId}-hint`,
|
|
522
535
|
"aria-label": "Help",
|
|
523
536
|
onKeydown: t
|
|
524
|
-
}, "?", 40,
|
|
537
|
+
}, "?", 40, rt), a("span", {
|
|
525
538
|
id: `${e.fieldId}-hint`,
|
|
526
539
|
role: "tooltip",
|
|
527
540
|
class: "mw-field-hint__tip"
|
|
528
|
-
}, [
|
|
541
|
+
}, [g(n.$slots, "default", {}, void 0, !0)], 8, it)]));
|
|
529
542
|
}
|
|
530
|
-
}), [["__scopeId", "data-v-
|
|
543
|
+
}), [["__scopeId", "data-v-29d9a629"]]), ot = { class: "mw-form-field" }, st = ["for"], ct = {
|
|
531
544
|
key: 0,
|
|
532
545
|
class: "mw-form-field__hint"
|
|
533
|
-
},
|
|
546
|
+
}, lt = ["id"], ut = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
534
547
|
__name: "UiFormField",
|
|
535
548
|
props: {
|
|
536
549
|
id: {},
|
|
@@ -544,56 +557,146 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
544
557
|
"aria-invalid": n.error ? !0 : void 0,
|
|
545
558
|
"aria-describedby": n.error ? s.value : void 0
|
|
546
559
|
}));
|
|
547
|
-
return (t, n) => (
|
|
548
|
-
a("label", { for: e.id }, [o(
|
|
549
|
-
|
|
550
|
-
e.hint && !e.error ? (
|
|
551
|
-
e.error ? (
|
|
560
|
+
return (t, n) => (p(), i("div", ot, [
|
|
561
|
+
a("label", { for: e.id }, [o(_(e.label), 1), g(t.$slots, "label-suffix", {}, void 0, !0)], 8, st),
|
|
562
|
+
g(t.$slots, "default", { attrs: c.value }, void 0, !0),
|
|
563
|
+
e.hint && !e.error ? (p(), i("p", ct, _(e.hint), 1)) : r("", !0),
|
|
564
|
+
e.error ? (p(), i("p", {
|
|
552
565
|
key: 1,
|
|
553
566
|
id: s.value,
|
|
554
567
|
class: "mw-form-field__error"
|
|
555
|
-
},
|
|
568
|
+
}, _(e.error), 9, lt)) : r("", !0)
|
|
569
|
+
]));
|
|
570
|
+
}
|
|
571
|
+
}), [["__scopeId", "data-v-c22333c7"]]), dt = { class: "mw-panel" }, ft = {
|
|
572
|
+
key: 0,
|
|
573
|
+
class: "mw-panel__head"
|
|
574
|
+
}, pt = { class: "mw-panel__body" }, mt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
575
|
+
__name: "UiPanel",
|
|
576
|
+
props: { title: {} },
|
|
577
|
+
setup(e) {
|
|
578
|
+
return (t, n) => (p(), i("div", dt, [e.title || t.$slots.head ? (p(), i("div", ft, [g(t.$slots, "head", {}, () => [o(_(e.title), 1)], !0)])) : r("", !0), a("div", pt, [g(t.$slots, "default", {}, void 0, !0)])]));
|
|
579
|
+
}
|
|
580
|
+
}), [["__scopeId", "data-v-d112e62d"]]), ht = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
581
|
+
__name: "UiBadge",
|
|
582
|
+
props: { variant: { default: "neutral" } },
|
|
583
|
+
setup(e) {
|
|
584
|
+
return (t, n) => (p(), i("span", { class: l(["mw-badge", `mw-badge--${e.variant}`]) }, [g(t.$slots, "default", {}, void 0, !0)], 2));
|
|
585
|
+
}
|
|
586
|
+
}), [["__scopeId", "data-v-5aa44ef5"]]), gt = { class: "mw-toolbar" }, _t = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
587
|
+
__name: "UiToolbar",
|
|
588
|
+
setup(e) {
|
|
589
|
+
return (e, t) => (p(), i("div", gt, [g(e.$slots, "default", {}, void 0, !0)]));
|
|
590
|
+
}
|
|
591
|
+
}), [["__scopeId", "data-v-827466de"]]), vt = {
|
|
592
|
+
type: "button",
|
|
593
|
+
class: "mw-toolbar-btn"
|
|
594
|
+
}, yt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
595
|
+
__name: "UiToolbarButton",
|
|
596
|
+
setup(e) {
|
|
597
|
+
return (e, t) => (p(), i("button", vt, [g(e.$slots, "default", {}, void 0, !0)]));
|
|
598
|
+
}
|
|
599
|
+
}), [["__scopeId", "data-v-d5f19134"]]), bt = { class: "mw-stat-grid" }, xt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
600
|
+
__name: "UiStatGrid",
|
|
601
|
+
setup(e) {
|
|
602
|
+
return (e, t) => (p(), i("div", bt, [g(e.$slots, "default", {}, void 0, !0)]));
|
|
603
|
+
}
|
|
604
|
+
}), [["__scopeId", "data-v-f481948b"]]), St = { class: "mw-stat-grid__label" }, Ct = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
605
|
+
__name: "UiStatRow",
|
|
606
|
+
props: {
|
|
607
|
+
label: {},
|
|
608
|
+
align: { default: "right" }
|
|
609
|
+
},
|
|
610
|
+
setup(t) {
|
|
611
|
+
return (n, r) => (p(), i(e, null, [a("span", St, _(t.label), 1), a("span", { class: l(["mw-stat-grid__value", { "mw-stat-grid__value--left": t.align === "left" }]) }, [g(n.$slots, "default", {}, void 0, !0)], 2)], 64));
|
|
612
|
+
}
|
|
613
|
+
}), [["__scopeId", "data-v-4c872fab"]]), wt = { class: "mw-data-table-wrap" }, Tt = { class: "mw-data-table" }, Et = {
|
|
614
|
+
key: 0,
|
|
615
|
+
class: "mw-data-table__empty"
|
|
616
|
+
}, Dt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
617
|
+
__name: "UiDataTable",
|
|
618
|
+
props: { empty: {} },
|
|
619
|
+
setup(e) {
|
|
620
|
+
let t = re();
|
|
621
|
+
return (n, o) => (p(), i("div", wt, [a("table", Tt, [a("thead", null, [a("tr", null, [g(n.$slots, "head", {}, void 0, !0)])]), a("tbody", null, [g(n.$slots, "default", {}, void 0, !0)])]), e.empty && !t.default ? (p(), i("p", Et, _(e.empty), 1)) : r("", !0)]));
|
|
622
|
+
}
|
|
623
|
+
}), [["__scopeId", "data-v-fc20cb49"]]), Ot = { class: "mw-statusbar" }, kt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
624
|
+
__name: "UiStatusBar",
|
|
625
|
+
setup(e) {
|
|
626
|
+
return (e, t) => (p(), i("footer", Ot, [g(e.$slots, "default", {}, void 0, !0)]));
|
|
627
|
+
}
|
|
628
|
+
}), [["__scopeId", "data-v-890bec3f"]]), At = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
629
|
+
__name: "UiStatusDot",
|
|
630
|
+
props: { status: { default: "ok" } },
|
|
631
|
+
setup(e) {
|
|
632
|
+
return (t, n) => (p(), i("span", {
|
|
633
|
+
class: l(["mw-status-dot", `mw-status-dot--${e.status}`]),
|
|
634
|
+
"aria-hidden": "true"
|
|
635
|
+
}, null, 2));
|
|
636
|
+
}
|
|
637
|
+
}), [["__scopeId", "data-v-62e9a7cc"]]), jt = {
|
|
638
|
+
class: "mw-feed",
|
|
639
|
+
role: "list"
|
|
640
|
+
}, Mt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
641
|
+
__name: "UiActivityFeed",
|
|
642
|
+
setup(e) {
|
|
643
|
+
return (e, t) => (p(), i("ul", jt, [g(e.$slots, "default", {}, void 0, !0)]));
|
|
644
|
+
}
|
|
645
|
+
}), [["__scopeId", "data-v-9e578c9d"]]), Nt = { class: "mw-feed__item" }, Pt = { class: "mw-feed__type" }, Ft = { class: "mw-feed__time" }, It = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
646
|
+
__name: "UiActivityItem",
|
|
647
|
+
props: {
|
|
648
|
+
type: {},
|
|
649
|
+
time: {}
|
|
650
|
+
},
|
|
651
|
+
setup(e) {
|
|
652
|
+
return (t, n) => (p(), i("li", Nt, [
|
|
653
|
+
n[0] ||= a("span", {
|
|
654
|
+
class: "mw-feed__dot",
|
|
655
|
+
"aria-hidden": "true"
|
|
656
|
+
}, null, -1),
|
|
657
|
+
a("span", Pt, [g(t.$slots, "type", {}, () => [o(_(e.type), 1)], !0)]),
|
|
658
|
+
a("span", Ft, [g(t.$slots, "time", {}, () => [o(_(e.time), 1)], !0)])
|
|
556
659
|
]));
|
|
557
660
|
}
|
|
558
|
-
}), [["__scopeId", "data-v-
|
|
661
|
+
}), [["__scopeId", "data-v-f662c634"]]), Lt = /* @__PURE__ */ new Set([
|
|
559
662
|
"operational",
|
|
560
663
|
"degraded",
|
|
561
664
|
"down",
|
|
562
665
|
"unknown"
|
|
563
666
|
]);
|
|
667
|
+
function U(e) {
|
|
668
|
+
return typeof e == "string" && Lt.has(e);
|
|
669
|
+
}
|
|
564
670
|
function W(e) {
|
|
565
|
-
return
|
|
671
|
+
return U(e) ? e : "unknown";
|
|
566
672
|
}
|
|
567
673
|
function G(e) {
|
|
568
|
-
return W(e) ? e : "unknown";
|
|
569
|
-
}
|
|
570
|
-
function K(e) {
|
|
571
674
|
return typeof e != "string" || e.trim() === "" ? "" : e.replace(/[<>&"]/g, "");
|
|
572
675
|
}
|
|
573
|
-
function
|
|
676
|
+
function Rt(e) {
|
|
574
677
|
if (typeof e != "object" || !e) return null;
|
|
575
|
-
let t = e, n =
|
|
678
|
+
let t = e, n = G(t.name);
|
|
576
679
|
return n ? {
|
|
577
680
|
name: n,
|
|
578
|
-
status:
|
|
681
|
+
status: W(t.status)
|
|
579
682
|
} : null;
|
|
580
683
|
}
|
|
581
|
-
function
|
|
684
|
+
function zt(e) {
|
|
582
685
|
if (typeof e != "object" || !e) return null;
|
|
583
|
-
let t = e, n =
|
|
686
|
+
let t = e, n = G(t.name);
|
|
584
687
|
if (!n) return null;
|
|
585
|
-
let r = Array.isArray(t.components) ? t.components.map(
|
|
688
|
+
let r = Array.isArray(t.components) ? t.components.map(Rt).filter((e) => e !== null) : [];
|
|
586
689
|
return {
|
|
587
690
|
name: n,
|
|
588
|
-
status:
|
|
691
|
+
status: W(t.status),
|
|
589
692
|
components: r
|
|
590
693
|
};
|
|
591
694
|
}
|
|
592
|
-
function
|
|
695
|
+
function K(e) {
|
|
593
696
|
if (typeof e != "object" || !e) return null;
|
|
594
697
|
let t = e;
|
|
595
|
-
if (!
|
|
596
|
-
let n = t.groups.map(
|
|
698
|
+
if (!U(t.overall) || typeof t.generated_at != "string" || !Array.isArray(t.groups)) return null;
|
|
699
|
+
let n = t.groups.map(zt).filter((e) => e !== null);
|
|
597
700
|
return {
|
|
598
701
|
generated_at: t.generated_at,
|
|
599
702
|
overall: t.overall,
|
|
@@ -602,7 +705,7 @@ function q(e) {
|
|
|
602
705
|
}
|
|
603
706
|
//#endregion
|
|
604
707
|
//#region src/components/StatusWidget.vue?vue&type=script&setup=true&lang.ts
|
|
605
|
-
var
|
|
708
|
+
var q = ["href", "title"], Bt = { class: "status-widget__label" }, Vt = /*#__PURE__*/ b(/* @__PURE__ */ s({
|
|
606
709
|
__name: "StatusWidget",
|
|
607
710
|
props: {
|
|
608
711
|
apiUrl: { default: "https://status.meddleware.co.uk/api/status" },
|
|
@@ -620,24 +723,24 @@ var dt = ["href", "title"], ft = { class: "status-widget__label" }, pt = /*#__PU
|
|
|
620
723
|
degraded: "Degraded",
|
|
621
724
|
down: "Major outage",
|
|
622
725
|
unknown: "Status unknown"
|
|
623
|
-
}, o =
|
|
726
|
+
}, o = m("ok"), s = m("All systems operational"), c = null;
|
|
624
727
|
async function u() {
|
|
625
728
|
try {
|
|
626
729
|
let e = await fetch(t.apiUrl);
|
|
627
730
|
if (!e.ok) throw Error(`HTTP ${e.status}`);
|
|
628
|
-
let i =
|
|
731
|
+
let i = K(await e.json());
|
|
629
732
|
if (!i) throw Error("unexpected response shape");
|
|
630
733
|
o.value = n[i.overall], s.value = r[i.overall];
|
|
631
734
|
} catch {
|
|
632
735
|
o.value = "error", s.value = "Status unavailable";
|
|
633
736
|
}
|
|
634
737
|
}
|
|
635
|
-
return
|
|
738
|
+
return d(() => {
|
|
636
739
|
u(), c = setInterval(u, t.pollInterval);
|
|
637
|
-
}),
|
|
740
|
+
}), f(() => {
|
|
638
741
|
c !== null && clearInterval(c);
|
|
639
|
-
}), (t, n) => (
|
|
640
|
-
href:
|
|
742
|
+
}), (t, n) => (p(), i("a", {
|
|
743
|
+
href: v(D)(e.href),
|
|
641
744
|
target: "_blank",
|
|
642
745
|
rel: "noopener noreferrer",
|
|
643
746
|
class: l(["status-widget", `status-widget--${o.value}`]),
|
|
@@ -645,29 +748,29 @@ var dt = ["href", "title"], ft = { class: "status-widget__label" }, pt = /*#__PU
|
|
|
645
748
|
}, [n[0] ||= a("span", {
|
|
646
749
|
class: "status-widget__dot",
|
|
647
750
|
"aria-hidden": "true"
|
|
648
|
-
}, null, -1), a("span",
|
|
751
|
+
}, null, -1), a("span", Bt, _(s.value), 1)], 10, q));
|
|
649
752
|
}
|
|
650
753
|
}), [["__scopeId", "data-v-6436368e"]]), J = {
|
|
651
754
|
mainnet: "https://suivision.xyz",
|
|
652
755
|
testnet: "https://testnet.suivision.xyz",
|
|
653
756
|
devnet: "https://devnet.suivision.xyz"
|
|
654
757
|
};
|
|
655
|
-
function
|
|
758
|
+
function Ht(e, t, n = "testnet") {
|
|
656
759
|
return `${J[n] ?? J.testnet}/${e}/${t}`;
|
|
657
760
|
}
|
|
658
761
|
//#endregion
|
|
659
762
|
//#region src/composables/useColorMode.ts
|
|
660
|
-
var Y = "mw-color-mode", X =
|
|
661
|
-
function
|
|
763
|
+
var Y = "mw-color-mode", X = m("system"), Z = !1;
|
|
764
|
+
function Ut() {
|
|
662
765
|
return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
663
766
|
}
|
|
664
767
|
function Q(e) {
|
|
665
|
-
return e === "dark" || e === "system" &&
|
|
768
|
+
return e === "dark" || e === "system" && Ut();
|
|
666
769
|
}
|
|
667
770
|
function $(e) {
|
|
668
771
|
typeof document < "u" && document.documentElement.setAttribute("data-theme", Q(e) ? "dark" : "light");
|
|
669
772
|
}
|
|
670
|
-
function
|
|
773
|
+
function Wt(e = "system") {
|
|
671
774
|
if (!Z) {
|
|
672
775
|
Z = !0;
|
|
673
776
|
let t = null;
|
|
@@ -676,7 +779,7 @@ function gt(e = "system") {
|
|
|
676
779
|
} catch {}
|
|
677
780
|
X.value = t ?? e, $(X.value), typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => {
|
|
678
781
|
X.value === "system" && $("system");
|
|
679
|
-
}),
|
|
782
|
+
}), ae(X, (e) => {
|
|
680
783
|
$(e);
|
|
681
784
|
try {
|
|
682
785
|
typeof localStorage < "u" && localStorage.setItem(Y, e);
|
|
@@ -698,10 +801,10 @@ function gt(e = "system") {
|
|
|
698
801
|
}
|
|
699
802
|
//#endregion
|
|
700
803
|
//#region src/composables/useSeason.ts
|
|
701
|
-
function
|
|
804
|
+
function Gt() {
|
|
702
805
|
if (typeof document > "u") return;
|
|
703
806
|
let e = (/* @__PURE__ */ new Date()).getMonth(), t = e >= 2 && e <= 4 ? "spring" : e >= 5 && e <= 7 ? "summer" : e >= 8 && e <= 10 ? "autumn" : "winter";
|
|
704
807
|
document.documentElement.dataset.season = t;
|
|
705
808
|
}
|
|
706
809
|
//#endregion
|
|
707
|
-
export {
|
|
810
|
+
export { N as AppFooter, x as AppHeader, E as AppSidebar, Ae as AppTabNav, R as ColorModeControl, Ie as CopyableAddress, Ke as CopyrightLine, Re as ExplorerLink, De as SidebarGroup, Ce as SidebarItem, Vt as StatusWidget, Mt as UiActivityFeed, It as UiActivityItem, ht as UiBadge, B as UiButton, he as UiCard, Dt as UiDataTable, at as UiFieldHint, ut as UiFormField, ye as UiNotice, mt as UiPanel, tt as UiSegmentedControl, _e as UiSelect, xt as UiStatGrid, Ct as UiStatRow, kt as UiStatusBar, At as UiStatusDot, Ze as UiStepper, _t as UiToolbar, yt as UiToolbarButton, U as isStatusLevel, K as parseSnapshot, D as safeHref, Ht as suiExplorerUrl, Wt as useColorMode, Gt as useSeason };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meddleware/ui",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Shared Vue 3 component library for @meddleware UIs
|
|
3
|
+
"version": "0.1.27",
|
|
4
|
+
"description": "Shared Vue 3 component library for @meddleware UIs — 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",
|
|
7
7
|
"type": "module",
|
|
@@ -25,23 +25,45 @@
|
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "rm -rf dist && vue-tsc -p tsconfig.build.json && vite build",
|
|
27
27
|
"type-check": "vue-tsc --noEmit",
|
|
28
|
+
"lint:css": "stylelint \"src/**/*.{css,vue}\"",
|
|
29
|
+
"lint:js": "eslint .",
|
|
30
|
+
"lint": "npm run lint:css && npm run lint:js",
|
|
28
31
|
"test": "vitest run"
|
|
29
32
|
},
|
|
30
33
|
"peerDependencies": {
|
|
31
34
|
"vue": "^3.5.0"
|
|
32
35
|
},
|
|
33
36
|
"dependencies": {
|
|
34
|
-
"@meddleware/design-tokens": "^0.1.
|
|
37
|
+
"@meddleware/design-tokens": "^0.1.6"
|
|
35
38
|
},
|
|
36
39
|
"devDependencies": {
|
|
37
40
|
"@vitejs/plugin-vue": "^6.0.9",
|
|
41
|
+
"@vue/eslint-config-typescript": "^14.9.0",
|
|
42
|
+
"@vue/test-utils": "^2.5.1",
|
|
43
|
+
"autoprefixer": "^10.4.20",
|
|
44
|
+
"eslint": "^10.11.0",
|
|
45
|
+
"eslint-plugin-vue": "^10.11.1",
|
|
46
|
+
"eslint-plugin-vuejs-accessibility": "^2.6.0",
|
|
47
|
+
"jiti": "^2.7.0",
|
|
48
|
+
"jsdom": "^29.1.1",
|
|
49
|
+
"postcss": "^8.4.49",
|
|
50
|
+
"postcss-html": "^2.0.0",
|
|
51
|
+
"stylelint": "^17.15.0",
|
|
52
|
+
"stylelint-config-standard": "^40.0.0",
|
|
38
53
|
"typescript": "^6.0.0",
|
|
39
54
|
"vite": "^8.3.0",
|
|
40
55
|
"vitest": "~5.0.1",
|
|
56
|
+
"vitest-axe": "^0.1.0",
|
|
41
57
|
"vue": "^3.5.43",
|
|
58
|
+
"vue-eslint-parser": "^10.4.1",
|
|
42
59
|
"vue-tsc": "~3.3.11"
|
|
43
60
|
},
|
|
61
|
+
"browserslist": [
|
|
62
|
+
"> 0.5%",
|
|
63
|
+
"last 2 versions",
|
|
64
|
+
"not dead"
|
|
65
|
+
],
|
|
44
66
|
"publishConfig": {
|
|
45
67
|
"access": "public"
|
|
46
68
|
}
|
|
47
|
-
}
|
|
69
|
+
}
|