@meddleware/ui 0.1.21 → 0.1.23
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/AppTabNav.vue.d.ts +4 -1
- package/dist/components/UiFieldHint.vue.d.ts +16 -0
- package/dist/components/UiFormField.vue.d.ts +27 -0
- package/dist/components/UiSegmentedControl.vue.d.ts +18 -0
- package/dist/index.d.ts +4 -0
- package/dist/ui.js +127 -45
- 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}.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)}
|
|
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-11f45a0a]{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.mw-seg__item[data-v-11f45a0a]{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;display:flex}.mw-seg__item[data-v-11f45a0a]:last-child{border-right:none}.mw-seg__item--active[data-v-11f45a0a]{background:var(--accent);color:var(--accent-contrast)}.mw-seg__item--disabled[data-v-11f45a0a]{opacity:.5;pointer-events:none;cursor:not-allowed}.mw-seg__item input[type=radio][data-v-11f45a0a]{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)}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -6,11 +6,14 @@ type __VLS_Props = {
|
|
|
6
6
|
tabs: AppTab[];
|
|
7
7
|
modelValue: string;
|
|
8
8
|
ariaLabel?: string;
|
|
9
|
+
variant?: 'underline' | 'raised';
|
|
9
10
|
};
|
|
10
11
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
12
|
"update:modelValue": (id: string) => any;
|
|
12
13
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
14
|
"onUpdate:modelValue"?: ((id: string) => any) | undefined;
|
|
14
|
-
}>, {
|
|
15
|
+
}>, {
|
|
16
|
+
variant: "underline" | "raised";
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
18
|
declare const _default: typeof __VLS_export;
|
|
16
19
|
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
fieldId: string;
|
|
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<{}>, {}, {}, {}, {}, 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,27 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
error?: string | null;
|
|
5
|
+
hint?: string;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_1: {}, __VLS_3: {
|
|
8
|
+
attrs: {
|
|
9
|
+
id: string;
|
|
10
|
+
'aria-invalid': true | undefined;
|
|
11
|
+
'aria-describedby': string | undefined;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
type __VLS_Slots = {} & {
|
|
15
|
+
'label-suffix'?: (props: typeof __VLS_1) => any;
|
|
16
|
+
} & {
|
|
17
|
+
default?: (props: typeof __VLS_3) => any;
|
|
18
|
+
};
|
|
19
|
+
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>;
|
|
20
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface SegmentedOption {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
title?: string;
|
|
6
|
+
}
|
|
7
|
+
type __VLS_Props = {
|
|
8
|
+
options: SegmentedOption[];
|
|
9
|
+
modelValue: string;
|
|
10
|
+
ariaLabel?: string;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
"update:modelValue": (id: string) => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
15
|
+
"onUpdate:modelValue"?: ((id: string) => any) | undefined;
|
|
16
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ export { default as ExplorerLink } from './components/ExplorerLink.vue';
|
|
|
16
16
|
export { default as CopyrightLine } from './components/CopyrightLine.vue';
|
|
17
17
|
export { default as UiStepper } from './components/UiStepper.vue';
|
|
18
18
|
export type { StepperStep } from './components/UiStepper.vue';
|
|
19
|
+
export { default as UiSegmentedControl } from './components/UiSegmentedControl.vue';
|
|
20
|
+
export type { SegmentedOption } from './components/UiSegmentedControl.vue';
|
|
21
|
+
export { default as UiFieldHint } from './components/UiFieldHint.vue';
|
|
22
|
+
export { default as UiFormField } from './components/UiFormField.vue';
|
|
19
23
|
export { default as StatusWidget } from './components/StatusWidget.vue';
|
|
20
24
|
export { suiExplorerUrl } from './explorer.js';
|
|
21
25
|
export type { SuiNetwork, SuiExplorerKind } from './explorer.js';
|
package/dist/ui.js
CHANGED
|
@@ -280,13 +280,14 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
280
280
|
props: {
|
|
281
281
|
tabs: {},
|
|
282
282
|
modelValue: {},
|
|
283
|
-
ariaLabel: {}
|
|
283
|
+
ariaLabel: {},
|
|
284
|
+
variant: { default: "underline" }
|
|
284
285
|
},
|
|
285
286
|
emits: ["update:modelValue"],
|
|
286
287
|
setup(t, { emit: n }) {
|
|
287
288
|
let r = n;
|
|
288
289
|
return (n, a) => (f(), i("nav", {
|
|
289
|
-
class: "mw-tab-nav",
|
|
290
|
+
class: l(["mw-tab-nav", { "mw-tab-nav--raised": t.variant === "raised" }]),
|
|
290
291
|
"aria-label": t.ariaLabel
|
|
291
292
|
}, [(f(!0), i(e, null, m(t.tabs, (e) => (f(), i("button", {
|
|
292
293
|
key: e.id,
|
|
@@ -294,9 +295,9 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
294
295
|
class: l(["mw-tab-nav__tab", { "mw-tab-nav__tab--active": t.modelValue === e.id }]),
|
|
295
296
|
"aria-current": t.modelValue === e.id ? "page" : void 0,
|
|
296
297
|
onClick: (t) => r("update:modelValue", e.id)
|
|
297
|
-
}, g(e.label), 11, De))), 128))],
|
|
298
|
+
}, g(e.label), 11, De))), 128))], 10, Ee));
|
|
298
299
|
}
|
|
299
|
-
}), [["__scopeId", "data-v-
|
|
300
|
+
}), [["__scopeId", "data-v-3f874e32"]]), ke = { class: "ca-root" }, Ae = ["title"], je = ["title", "aria-label"], Me = {
|
|
300
301
|
key: 0,
|
|
301
302
|
class: "ca-icon",
|
|
302
303
|
viewBox: "0 0 24 24",
|
|
@@ -308,7 +309,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
308
309
|
"stroke-linecap": "round",
|
|
309
310
|
"stroke-linejoin": "round",
|
|
310
311
|
"aria-hidden": "true"
|
|
311
|
-
},
|
|
312
|
+
}, U = {
|
|
312
313
|
key: 1,
|
|
313
314
|
class: "ca-icon",
|
|
314
315
|
viewBox: "0 0 24 24",
|
|
@@ -320,7 +321,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
320
321
|
"stroke-linecap": "round",
|
|
321
322
|
"stroke-linejoin": "round",
|
|
322
323
|
"aria-hidden": "true"
|
|
323
|
-
},
|
|
324
|
+
}, Ne = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
324
325
|
__name: "CopyableAddress",
|
|
325
326
|
props: {
|
|
326
327
|
address: {},
|
|
@@ -351,7 +352,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
351
352
|
title: r.value ? "Copied!" : e.label,
|
|
352
353
|
"aria-label": r.value ? "Copied" : e.label,
|
|
353
354
|
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",
|
|
355
|
+
}, [r.value ? (f(), i("svg", Me, [...n[0] ||= [a("polyline", { points: "20 6 9 17 4 12" }, null, -1)]])) : (f(), i("svg", U, [...n[1] ||= [a("rect", {
|
|
355
356
|
x: "9",
|
|
356
357
|
y: "9",
|
|
357
358
|
width: "13",
|
|
@@ -360,7 +361,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
360
361
|
ry: "2"
|
|
361
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, je)]));
|
|
362
363
|
}
|
|
363
|
-
}), [["__scopeId", "data-v-b43dabdd"]]),
|
|
364
|
+
}), [["__scopeId", "data-v-b43dabdd"]]), Pe = ["href", "title"], Fe = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
364
365
|
__name: "ExplorerLink",
|
|
365
366
|
props: {
|
|
366
367
|
href: {},
|
|
@@ -384,12 +385,12 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
384
385
|
target: "_blank",
|
|
385
386
|
rel: "noopener noreferrer",
|
|
386
387
|
title: e.value
|
|
387
|
-
}, [h(t.$slots, "default", {}, () => [o(g(r.value), 1)], !0)], 8,
|
|
388
|
+
}, [h(t.$slots, "default", {}, () => [o(g(r.value), 1)], !0)], 8, Pe));
|
|
388
389
|
}
|
|
389
|
-
}), [["__scopeId", "data-v-073d1bbe"]]),
|
|
390
|
+
}), [["__scopeId", "data-v-073d1bbe"]]), Ie = { class: "copyright-line" }, Le = ["href", "aria-label"], Re = { key: 0 }, ze = { key: 1 }, Be = {
|
|
390
391
|
key: 2,
|
|
391
392
|
class: "kopimi-symbol"
|
|
392
|
-
},
|
|
393
|
+
}, Ve = { class: "text-content" }, He = { key: 0 }, Ue = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
393
394
|
__name: "CopyrightLine",
|
|
394
395
|
props: {
|
|
395
396
|
organisationName: {},
|
|
@@ -401,13 +402,13 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
401
402
|
},
|
|
402
403
|
setup(e) {
|
|
403
404
|
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",
|
|
405
|
+
return (t, n) => (f(), i("small", Ie, [a("a", {
|
|
405
406
|
href: c.value,
|
|
406
407
|
class: "symbol-link",
|
|
407
408
|
target: "_blank",
|
|
408
409
|
rel: "noopener noreferrer",
|
|
409
410
|
"aria-label": l.value
|
|
410
|
-
}, [s.value === "copyright" ? (f(), i("span",
|
|
411
|
+
}, [s.value === "copyright" ? (f(), i("span", Re, "©")) : s.value === "copyleft" ? (f(), i("span", ze, "🄯")) : s.value === "kopimi" ? (f(), i("span", Be, [...n[0] ||= [a("svg", {
|
|
411
412
|
viewBox: "0 0 24 24",
|
|
412
413
|
width: "1em",
|
|
413
414
|
height: "1em",
|
|
@@ -427,19 +428,19 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
427
428
|
"font-family": "system-ui, sans-serif",
|
|
428
429
|
"font-size": "11",
|
|
429
430
|
fill: "currentColor"
|
|
430
|
-
}, " C ")], -1)]])) : r("", !0)], 8,
|
|
431
|
+
}, " C ")], -1)]])) : r("", !0)], 8, Le), a("span", Ve, [o(g(e.year) + " " + g(e.organisationName) + ".", 1), u.value ? (f(), i("span", He, g(`
|
|
431
432
|
${u.value}`), 1)) : r("", !0)])]));
|
|
432
433
|
}
|
|
433
|
-
}), [["__scopeId", "data-v-1f9a5da9"]]),
|
|
434
|
+
}), [["__scopeId", "data-v-1f9a5da9"]]), We = {
|
|
434
435
|
class: "ui-stepper",
|
|
435
436
|
role: "list"
|
|
436
|
-
},
|
|
437
|
+
}, Ge = {
|
|
437
438
|
key: 0,
|
|
438
439
|
"aria-hidden": "true"
|
|
439
|
-
},
|
|
440
|
+
}, Ke = {
|
|
440
441
|
key: 1,
|
|
441
442
|
"aria-hidden": "true"
|
|
442
|
-
},
|
|
443
|
+
}, qe = { class: "ui-stepper__label" }, Je = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
443
444
|
__name: "UiStepper",
|
|
444
445
|
props: {
|
|
445
446
|
steps: {},
|
|
@@ -454,7 +455,7 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
454
455
|
function u(e) {
|
|
455
456
|
e < o.modelValue && s("update:modelValue", e);
|
|
456
457
|
}
|
|
457
|
-
return (r, o) => (f(), i("ol",
|
|
458
|
+
return (r, o) => (f(), i("ol", We, [(f(!0), i(e, null, m(t.steps, (e, t) => (f(), i("li", {
|
|
458
459
|
key: e.id,
|
|
459
460
|
class: l(["ui-stepper__step", `is-${c(t)}`])
|
|
460
461
|
}, [(f(), n(te(c(t) === "done" ? "button" : "span"), {
|
|
@@ -464,54 +465,135 @@ var E = { class: "mw-footer__start" }, D = { class: "mw-footer__center" }, O = {
|
|
|
464
465
|
"aria-current": c(t) === "active" ? "step" : void 0,
|
|
465
466
|
onClick: (e) => c(t) === "done" && u(t)
|
|
466
467
|
}, {
|
|
467
|
-
default: ae(() => [c(t) === "done" ? (f(), i("span",
|
|
468
|
+
default: ae(() => [c(t) === "done" ? (f(), i("span", Ge, "✓")) : (f(), i("span", Ke, g(t + 1), 1))]),
|
|
468
469
|
_: 2
|
|
469
470
|
}, 1032, [
|
|
470
471
|
"type",
|
|
471
472
|
"aria-label",
|
|
472
473
|
"aria-current",
|
|
473
474
|
"onClick"
|
|
474
|
-
])), a("span",
|
|
475
|
+
])), a("span", qe, g(e.label), 1)], 2))), 128))]));
|
|
476
|
+
}
|
|
477
|
+
}), [["__scopeId", "data-v-33717fc3"]]), Ye = ["aria-label"], Xe = ["title"], Ze = [
|
|
478
|
+
"value",
|
|
479
|
+
"checked",
|
|
480
|
+
"disabled",
|
|
481
|
+
"onChange"
|
|
482
|
+
], Qe = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
483
|
+
__name: "UiSegmentedControl",
|
|
484
|
+
props: {
|
|
485
|
+
options: {},
|
|
486
|
+
modelValue: {},
|
|
487
|
+
ariaLabel: {}
|
|
488
|
+
},
|
|
489
|
+
emits: ["update:modelValue"],
|
|
490
|
+
setup(t, { emit: n }) {
|
|
491
|
+
let r = n;
|
|
492
|
+
return (n, s) => (f(), i("div", {
|
|
493
|
+
class: "mw-seg",
|
|
494
|
+
role: "group",
|
|
495
|
+
"aria-label": t.ariaLabel
|
|
496
|
+
}, [(f(!0), i(e, null, m(t.options, (e) => (f(), i("label", {
|
|
497
|
+
key: e.id,
|
|
498
|
+
class: l(["mw-seg__item", {
|
|
499
|
+
"mw-seg__item--active": t.modelValue === e.id,
|
|
500
|
+
"mw-seg__item--disabled": e.disabled
|
|
501
|
+
}]),
|
|
502
|
+
title: e.title
|
|
503
|
+
}, [a("input", {
|
|
504
|
+
type: "radio",
|
|
505
|
+
value: e.id,
|
|
506
|
+
checked: t.modelValue === e.id,
|
|
507
|
+
disabled: e.disabled,
|
|
508
|
+
onChange: (t) => r("update:modelValue", e.id)
|
|
509
|
+
}, null, 40, Ze), o(" " + g(e.label), 1)], 10, Xe))), 128))], 8, Ye));
|
|
475
510
|
}
|
|
476
|
-
}), [["__scopeId", "data-v-
|
|
511
|
+
}), [["__scopeId", "data-v-11f45a0a"]]), $e = { class: "mw-field-hint" }, et = ["aria-describedby"], tt = ["id"], nt = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
512
|
+
__name: "UiFieldHint",
|
|
513
|
+
props: { fieldId: {} },
|
|
514
|
+
setup(e) {
|
|
515
|
+
function t(e) {
|
|
516
|
+
e.key === "Escape" && e.currentTarget.blur();
|
|
517
|
+
}
|
|
518
|
+
return (n, r) => (f(), i("span", $e, [a("button", {
|
|
519
|
+
type: "button",
|
|
520
|
+
class: "mw-field-hint__btn",
|
|
521
|
+
"aria-describedby": `${e.fieldId}-hint`,
|
|
522
|
+
"aria-label": "Help",
|
|
523
|
+
onKeydown: t
|
|
524
|
+
}, "?", 40, et), a("span", {
|
|
525
|
+
id: `${e.fieldId}-hint`,
|
|
526
|
+
role: "tooltip",
|
|
527
|
+
class: "mw-field-hint__tip"
|
|
528
|
+
}, [h(n.$slots, "default", {}, void 0, !0)], 8, tt)]));
|
|
529
|
+
}
|
|
530
|
+
}), [["__scopeId", "data-v-4d63aaa4"]]), rt = { class: "mw-form-field" }, it = ["for"], at = {
|
|
531
|
+
key: 0,
|
|
532
|
+
class: "mw-form-field__hint"
|
|
533
|
+
}, ot = ["id"], st = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
534
|
+
__name: "UiFormField",
|
|
535
|
+
props: {
|
|
536
|
+
id: {},
|
|
537
|
+
label: {},
|
|
538
|
+
error: {},
|
|
539
|
+
hint: {}
|
|
540
|
+
},
|
|
541
|
+
setup(e) {
|
|
542
|
+
let n = e, s = t(() => `${n.id}-err`), c = t(() => ({
|
|
543
|
+
id: n.id,
|
|
544
|
+
"aria-invalid": n.error ? !0 : void 0,
|
|
545
|
+
"aria-describedby": n.error ? s.value : void 0
|
|
546
|
+
}));
|
|
547
|
+
return (t, n) => (f(), i("div", rt, [
|
|
548
|
+
a("label", { for: e.id }, [o(g(e.label), 1), h(t.$slots, "label-suffix", {}, void 0, !0)], 8, it),
|
|
549
|
+
h(t.$slots, "default", { attrs: c.value }, void 0, !0),
|
|
550
|
+
e.hint && !e.error ? (f(), i("p", at, g(e.hint), 1)) : r("", !0),
|
|
551
|
+
e.error ? (f(), i("p", {
|
|
552
|
+
key: 1,
|
|
553
|
+
id: s.value,
|
|
554
|
+
class: "mw-form-field__error"
|
|
555
|
+
}, g(e.error), 9, ot)) : r("", !0)
|
|
556
|
+
]));
|
|
557
|
+
}
|
|
558
|
+
}), [["__scopeId", "data-v-c22333c7"]]), ct = /* @__PURE__ */ new Set([
|
|
477
559
|
"operational",
|
|
478
560
|
"degraded",
|
|
479
561
|
"down",
|
|
480
562
|
"unknown"
|
|
481
563
|
]);
|
|
482
|
-
function U(e) {
|
|
483
|
-
return typeof e == "string" && Xe.has(e);
|
|
484
|
-
}
|
|
485
564
|
function W(e) {
|
|
486
|
-
return
|
|
565
|
+
return typeof e == "string" && ct.has(e);
|
|
487
566
|
}
|
|
488
567
|
function G(e) {
|
|
568
|
+
return W(e) ? e : "unknown";
|
|
569
|
+
}
|
|
570
|
+
function K(e) {
|
|
489
571
|
return typeof e != "string" || e.trim() === "" ? "" : e.replace(/[<>&"]/g, "");
|
|
490
572
|
}
|
|
491
|
-
function
|
|
573
|
+
function lt(e) {
|
|
492
574
|
if (typeof e != "object" || !e) return null;
|
|
493
|
-
let t = e, n =
|
|
575
|
+
let t = e, n = K(t.name);
|
|
494
576
|
return n ? {
|
|
495
577
|
name: n,
|
|
496
|
-
status:
|
|
578
|
+
status: G(t.status)
|
|
497
579
|
} : null;
|
|
498
580
|
}
|
|
499
|
-
function
|
|
581
|
+
function ut(e) {
|
|
500
582
|
if (typeof e != "object" || !e) return null;
|
|
501
|
-
let t = e, n =
|
|
583
|
+
let t = e, n = K(t.name);
|
|
502
584
|
if (!n) return null;
|
|
503
|
-
let r = Array.isArray(t.components) ? t.components.map(
|
|
585
|
+
let r = Array.isArray(t.components) ? t.components.map(lt).filter((e) => e !== null) : [];
|
|
504
586
|
return {
|
|
505
587
|
name: n,
|
|
506
|
-
status:
|
|
588
|
+
status: G(t.status),
|
|
507
589
|
components: r
|
|
508
590
|
};
|
|
509
591
|
}
|
|
510
|
-
function
|
|
592
|
+
function q(e) {
|
|
511
593
|
if (typeof e != "object" || !e) return null;
|
|
512
594
|
let t = e;
|
|
513
|
-
if (!
|
|
514
|
-
let n = t.groups.map(
|
|
595
|
+
if (!W(t.overall) || typeof t.generated_at != "string" || !Array.isArray(t.groups)) return null;
|
|
596
|
+
let n = t.groups.map(ut).filter((e) => e !== null);
|
|
515
597
|
return {
|
|
516
598
|
generated_at: t.generated_at,
|
|
517
599
|
overall: t.overall,
|
|
@@ -520,7 +602,7 @@ function K(e) {
|
|
|
520
602
|
}
|
|
521
603
|
//#endregion
|
|
522
604
|
//#region src/components/StatusWidget.vue?vue&type=script&setup=true&lang.ts
|
|
523
|
-
var
|
|
605
|
+
var dt = ["href", "title"], ft = { class: "status-widget__label" }, pt = /*#__PURE__*/ y(/* @__PURE__ */ s({
|
|
524
606
|
__name: "StatusWidget",
|
|
525
607
|
props: {
|
|
526
608
|
apiUrl: { default: "https://status.meddleware.co.uk/api/status" },
|
|
@@ -543,7 +625,7 @@ var $e = ["href", "title"], et = { class: "status-widget__label" }, q = /*#__PUR
|
|
|
543
625
|
try {
|
|
544
626
|
let e = await fetch(t.apiUrl);
|
|
545
627
|
if (!e.ok) throw Error(`HTTP ${e.status}`);
|
|
546
|
-
let i =
|
|
628
|
+
let i = q(await e.json());
|
|
547
629
|
if (!i) throw Error("unexpected response shape");
|
|
548
630
|
o.value = n[i.overall], s.value = r[i.overall];
|
|
549
631
|
} catch {
|
|
@@ -563,29 +645,29 @@ var $e = ["href", "title"], et = { class: "status-widget__label" }, q = /*#__PUR
|
|
|
563
645
|
}, [n[0] ||= a("span", {
|
|
564
646
|
class: "status-widget__dot",
|
|
565
647
|
"aria-hidden": "true"
|
|
566
|
-
}, null, -1), a("span",
|
|
648
|
+
}, null, -1), a("span", ft, g(s.value), 1)], 10, dt));
|
|
567
649
|
}
|
|
568
650
|
}), [["__scopeId", "data-v-6436368e"]]), J = {
|
|
569
651
|
mainnet: "https://suivision.xyz",
|
|
570
652
|
testnet: "https://testnet.suivision.xyz",
|
|
571
653
|
devnet: "https://devnet.suivision.xyz"
|
|
572
654
|
};
|
|
573
|
-
function
|
|
655
|
+
function mt(e, t, n = "testnet") {
|
|
574
656
|
return `${J[n] ?? J.testnet}/${e}/${t}`;
|
|
575
657
|
}
|
|
576
658
|
//#endregion
|
|
577
659
|
//#region src/composables/useColorMode.ts
|
|
578
660
|
var Y = "mw-color-mode", X = p("system"), Z = !1;
|
|
579
|
-
function
|
|
661
|
+
function ht() {
|
|
580
662
|
return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
581
663
|
}
|
|
582
664
|
function Q(e) {
|
|
583
|
-
return e === "dark" || e === "system" &&
|
|
665
|
+
return e === "dark" || e === "system" && ht();
|
|
584
666
|
}
|
|
585
667
|
function $(e) {
|
|
586
668
|
typeof document < "u" && document.documentElement.setAttribute("data-theme", Q(e) ? "dark" : "light");
|
|
587
669
|
}
|
|
588
|
-
function
|
|
670
|
+
function gt(e = "system") {
|
|
589
671
|
if (!Z) {
|
|
590
672
|
Z = !0;
|
|
591
673
|
let t = null;
|
|
@@ -616,10 +698,10 @@ function rt(e = "system") {
|
|
|
616
698
|
}
|
|
617
699
|
//#endregion
|
|
618
700
|
//#region src/composables/useSeason.ts
|
|
619
|
-
function
|
|
701
|
+
function _t() {
|
|
620
702
|
if (typeof document > "u") return;
|
|
621
703
|
let e = (/* @__PURE__ */ new Date()).getMonth(), t = e >= 2 && e <= 4 ? "spring" : e >= 5 && e <= 7 ? "summer" : e >= 8 && e <= 10 ? "autumn" : "winter";
|
|
622
704
|
document.documentElement.dataset.season = t;
|
|
623
705
|
}
|
|
624
706
|
//#endregion
|
|
625
|
-
export { j as AppFooter, de as AppHeader, w as AppSidebar, Oe as AppTabNav, I as ColorModeControl,
|
|
707
|
+
export { j as AppFooter, de as AppHeader, w as AppSidebar, Oe as AppTabNav, I as ColorModeControl, Ne as CopyableAddress, Ue as CopyrightLine, Fe as ExplorerLink, Te as SidebarGroup, xe as SidebarItem, pt as StatusWidget, R as UiButton, pe as UiCard, nt as UiFieldHint, st as UiFormField, _e as UiNotice, Qe as UiSegmentedControl, he as UiSelect, Je as UiStepper, W as isStatusLevel, q as parseSnapshot, T as safeHref, mt as suiExplorerUrl, gt as useColorMode, _t 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.23",
|
|
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",
|