@meddleware/ui 0.1.16 → 0.1.17

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 CHANGED
@@ -1,2 +1,2 @@
1
- *,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--mw-font-sans);font-size:var(--font-size-base);line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}:where(ul,ol):where([role=list],[role=listitem]){margin:0;padding:0;list-style:none}:where(img,svg,video,canvas){max-width:100%;display:block}:where(fieldset){border:0;margin:0;padding:0}a{color:var(--accent);transition:color var(--transition-base);text-decoration:none}a:hover{text-decoration:underline}:where(button,input,select,textarea){font-family:inherit}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-mono{font-family:var(--mw-font-mono)}.mw-noise{isolation:isolate;position:relative}.mw-noise:before{content:"";z-index:-1;background-image:var(--noise-overlay);opacity:var(--noise-opacity);pointer-events:none;background-repeat:repeat;position:absolute;inset:0}.mw-hand-drawn{display:inline-flex;position:relative}.mw-spinner{width:var(--space-sm);height:var(--space-sm);border:2px solid var(--border);border-top-color:var(--accent);animation:mw-spin var(--transition-slow) linear infinite;border-radius:50%;display:inline-block}@keyframes mw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.mw-spinner{border-top-color:var(--accent);animation:none}}.mw-header[data-v-9b9826d5]{align-items:center;gap:var(--space-sm);height:var(--mw-header-height,56px);padding:0 var(--space-sm);background:var(--_bg);color:var(--_text);border-bottom:1px solid var(--_border);font-family:var(--mw-font-sans);display:flex}.mw-header--sticky[data-v-9b9826d5]{z-index:50;position:sticky;top:0}.mw-header__brand[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);letter-spacing:var(--tracking-wide);white-space:nowrap;font-weight:650;display:flex}.mw-header__center[data-v-9b9826d5]{flex:auto;min-width:0}.mw-header__actions[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);margin-left:auto;display:flex}.mw-sidebar[data-v-a2b8405c]{height:100%;width:var(--mw-sidebar-width,240px);background:var(--_bg);color:var(--_text);border-right:1px solid var(--_border);font-family:var(--mw-font-sans);flex-direction:column;display:flex}.mw-sidebar__head[data-v-a2b8405c]{padding:var(--space-sm);border-bottom:1px solid var(--_border)}.mw-sidebar__nav[data-v-a2b8405c]{gap:var(--space-3xs);padding:var(--space-xs);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.mw-sidebar__body[data-v-a2b8405c]{flex-shrink:0}.mw-sidebar__foot[data-v-a2b8405c]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--_border);color:var(--_muted);font-size:var(--font-size-sm)}.mw-footer[data-v-979579a9]{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--_bg);color:var(--_muted);border-top:1px solid var(--_border);font-family:var(--mw-font-sans);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.mw-footer--transparent[data-v-979579a9]{border-top:1px solid var(--border)}.mw-footer__center[data-v-979579a9]{flex:auto;min-width:0}.mw-footer__end[data-v-979579a9]{align-items:center;gap:var(--space-sm);margin-left:auto;display:flex}.mw-footer__docs-link[data-v-979579a9]{color:inherit;text-underline-offset:2px;opacity:.7;text-decoration:underline}.mw-footer__docs-link[data-v-979579a9]:hover{opacity:1}.mw-mode[data-v-e2ea0d79]{border:1px solid var(--_border,var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--_text,var(--text)) 6%, transparent);gap:2px;padding:2px;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]{align-items:center;gap:var(--space-3xs);padding:var(--space-3xs) var(--space-2xs);border-radius:calc(var(--radius) - 3px);color:var(--_text,var(--text));font:inherit;font-size:var(--font-size-sm);cursor:pointer;opacity:.7;transition:opacity var(--transition-base), background var(--transition-base);background:0 0;border:0;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]:hover{opacity:1}.mw-mode__btn.is-active[data-v-e2ea0d79]{opacity:1;background:color-mix(in srgb, var(--_text,var(--text)) 14%, transparent)}.mw-mode__btn[data-v-e2ea0d79]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@media (width<=640px){.mw-mode__label[data-v-e2ea0d79]{display:none}}.mw-btn[data-v-bc33cc23]{justify-content:center;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);font:inherit;cursor:pointer;transition:filter var(--transition-base), background var(--transition-base);border:1px solid #0000;font-weight:550;display:inline-flex}.mw-btn[data-v-bc33cc23]:disabled{opacity:.55;cursor:not-allowed}.mw-btn[data-v-bc33cc23]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-btn--primary[data-v-bc33cc23]{background:var(--accent);color:var(--accent-contrast)}.mw-btn--primary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--secondary[data-v-bc33cc23]{background:var(--secondary);color:var(--secondary-contrast)}.mw-btn--secondary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--ghost[data-v-bc33cc23]{color:var(--text);border-color:var(--border);background:0 0}.mw-btn--ghost[data-v-bc33cc23]:not(:disabled):hover{background:var(--lift)}.mw-btn--danger[data-v-bc33cc23]{background:var(--danger);color:var(--accent-contrast)}.mw-btn--danger[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-card[data-v-883f87f5]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);overflow:hidden}.mw-card__header[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.mw-card__title[data-v-883f87f5]{font-size:var(--font-size-base);margin:0;font-weight:600}.mw-card__body[data-v-883f87f5]{padding:var(--space-sm)}.mw-card__footer[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--border);background:var(--lift)}.mw-select[data-v-7e206184]{position:relative}.mw-select select[data-v-7e206184]{appearance:none;width:100%;padding:var(--space-2xs) calc(var(--space-md) + var(--space-2xs)) var(--space-2xs) var(--space-xs);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font:inherit}.mw-select select[data-v-7e206184]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-select__chevron[data-v-7e206184]{right:var(--space-xs);pointer-events:none;stroke:var(--muted);stroke-width:1.5px;fill:none;position:absolute;top:50%;transform:translateY(-50%)}.mw-notice[data-v-ee7fffb1]{padding:var(--space-2xs) var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);background:var(--lift);color:var(--text);font-size:var(--font-size-sm);border-left-width:3px;margin:0}.mw-notice--error[data-v-ee7fffb1]{border-left-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.mw-notice--ok[data-v-ee7fffb1]{border-left-color:var(--ok);color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}.sidebar-item[data-v-8da2d583]{align-items:center;gap:var(--space-2xs);width:100%;padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);color:inherit;font:inherit;text-align:left;cursor:pointer;opacity:.85;transition:background var(--transition-base), opacity var(--transition-base);background:0 0;border:0;display:flex}.sidebar-item[data-v-8da2d583]:hover:not(:disabled){background:color-mix(in srgb, currentColor 10%, transparent);opacity:1}.sidebar-item.is-active[data-v-8da2d583]{background:color-mix(in srgb, var(--accent) 26%, transparent);opacity:1}.sidebar-item[data-v-8da2d583]:disabled{cursor:default}.sidebar-item[data-v-8da2d583]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.sidebar-item__icon[data-v-8da2d583]{text-align:center;width:1.1rem}.mw-tab-nav[data-v-97d31503]{gap:var(--space-3xs);border-bottom:2px solid var(--border);display:flex}.mw-tab-nav__tab[data-v-97d31503]{appearance:none;padding:var(--space-2xs) var(--space-sm);cursor:pointer;font-size:var(--font-size-base);color:var(--muted);transition:color var(--transition-base), border-color var(--transition-base);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px}.mw-tab-nav__tab[data-v-97d31503]:hover{color:var(--text)}.mw-tab-nav__tab--active[data-v-97d31503]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.ca-root[data-v-b43dabdd]{align-items:center;gap:.35em;display:inline-flex}.ca-value[data-v-b43dabdd]{font-family:var(--mw-font-mono,monospace);font-size:inherit}.ca-copy[data-v-b43dabdd]{color:var(--muted,#888);cursor:pointer;transition:color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.ca-copy[data-v-b43dabdd]:hover{color:var(--text,#f0f0f0)}.ca-copy--copied[data-v-b43dabdd]{color:var(--accent,#6366f1)}.ca-icon[data-v-b43dabdd]{display:block}.el-root[data-v-073d1bbe]{font-family:monospace;font-size:inherit;color:var(--accent,#6366f1);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;transition:color .15s}.el-root[data-v-073d1bbe]:hover{color:var(--text,#f0f0f0);text-decoration-style:solid}.symbol-link[data-v-41d138d5]{color:inherit;text-decoration:none}.symbol-link[data-v-41d138d5]:hover{text-decoration:underline}.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}.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-8e4db6fe]{white-space:nowrap;display:inline}.symbol-link[data-v-8e4db6fe]{color:inherit;vertical-align:middle;align-items:center;text-decoration:none;display:inline-flex}.symbol-link[data-v-8e4db6fe]:hover{text-decoration:underline}.kopimi-symbol[data-v-8e4db6fe]{align-items:center;line-height:1;display:inline-flex}.kopimi-mark[data-v-8e4db6fe]{vertical-align:-.15em;display:inline}.text-content[data-v-8e4db6fe]{display:inline}.status-widget[data-v-6436368e]{align-items:center;gap:var(--space-2xs);color:inherit;font-size:var(--font-size-sm);opacity:.85;transition:opacity var(--transition-base);text-decoration:none;display:inline-flex}.status-widget[data-v-6436368e]:hover{opacity:1}.status-widget__dot[data-v-6436368e]{width:var(--space-2xs);height:var(--space-2xs);border-radius:50%;flex-shrink:0}.status-widget--ok .status-widget__dot[data-v-6436368e]{background:var(--ok)}.status-widget--degraded .status-widget__dot[data-v-6436368e]{background:var(--warning)}.status-widget--error .status-widget__dot[data-v-6436368e]{background:var(--danger)}
2
2
  /*$vite$:1*/
package/dist/ui.js CHANGED
@@ -259,7 +259,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
259
259
  "aria-current": e.active ? "page" : void 0
260
260
  }, [e.icon ? (d(), r("span", ge, h(e.icon), 1)) : n("", !0), i("span", _e, h(e.label), 1)], 10, he));
261
261
  }
262
- }), [["__scopeId", "data-v-8da2d583"]]), ye = ["aria-label"], be = ["aria-current", "onClick"], xe = /*#__PURE__*/ y(/* @__PURE__ */ o({
262
+ }), [["__scopeId", "data-v-8da2d583"]]), ye = ["aria-label"], be = ["aria-current", "onClick"], U = /*#__PURE__*/ y(/* @__PURE__ */ o({
263
263
  __name: "AppTabNav",
264
264
  props: {
265
265
  tabs: {},
@@ -280,7 +280,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
280
280
  onClick: (t) => i("update:modelValue", e.id)
281
281
  }, h(e.label), 11, be))), 128))], 8, ye));
282
282
  }
283
- }), [["__scopeId", "data-v-97d31503"]]), Se = { class: "ca-root" }, Ce = ["title"], we = ["title", "aria-label"], Te = {
283
+ }), [["__scopeId", "data-v-97d31503"]]), xe = { class: "ca-root" }, Se = ["title"], Ce = ["title", "aria-label"], we = {
284
284
  key: 0,
285
285
  class: "ca-icon",
286
286
  viewBox: "0 0 24 24",
@@ -292,7 +292,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
292
292
  "stroke-linecap": "round",
293
293
  "stroke-linejoin": "round",
294
294
  "aria-hidden": "true"
295
- }, Ee = {
295
+ }, Te = {
296
296
  key: 1,
297
297
  class: "ca-icon",
298
298
  viewBox: "0 0 24 24",
@@ -304,7 +304,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
304
304
  "stroke-linecap": "round",
305
305
  "stroke-linejoin": "round",
306
306
  "aria-hidden": "true"
307
- }, De = /*#__PURE__*/ y(/* @__PURE__ */ o({
307
+ }, Ee = /*#__PURE__*/ y(/* @__PURE__ */ o({
308
308
  __name: "CopyableAddress",
309
309
  props: {
310
310
  address: {},
@@ -326,25 +326,25 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
326
326
  o.value = !1;
327
327
  }, 1500);
328
328
  }
329
- return (t, n) => (d(), r("span", Se, [i("span", {
329
+ return (t, n) => (d(), r("span", xe, [i("span", {
330
330
  class: "ca-value",
331
331
  title: e.address
332
- }, [m(t.$slots, "default", {}, () => [a(h(s.value), 1)], !0)], 8, Ce), i("button", {
332
+ }, [m(t.$slots, "default", {}, () => [a(h(s.value), 1)], !0)], 8, Se), i("button", {
333
333
  type: "button",
334
334
  class: c(["ca-copy", { "ca-copy--copied": o.value }]),
335
335
  title: o.value ? "Copied!" : e.label,
336
336
  "aria-label": o.value ? "Copied" : e.label,
337
337
  onClick: l
338
- }, [o.value ? (d(), r("svg", Te, [...n[0] ||= [i("polyline", { points: "20 6 9 17 4 12" }, null, -1)]])) : (d(), r("svg", Ee, [...n[1] ||= [i("rect", {
338
+ }, [o.value ? (d(), r("svg", we, [...n[0] ||= [i("polyline", { points: "20 6 9 17 4 12" }, null, -1)]])) : (d(), r("svg", Te, [...n[1] ||= [i("rect", {
339
339
  x: "9",
340
340
  y: "9",
341
341
  width: "13",
342
342
  height: "13",
343
343
  rx: "2",
344
344
  ry: "2"
345
- }, null, -1), i("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, we)]));
345
+ }, null, -1), i("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, Ce)]));
346
346
  }
347
- }), [["__scopeId", "data-v-b43dabdd"]]), Oe = ["href", "title"], ke = /*#__PURE__*/ y(/* @__PURE__ */ o({
347
+ }), [["__scopeId", "data-v-b43dabdd"]]), De = ["href", "title"], Oe = /*#__PURE__*/ y(/* @__PURE__ */ o({
348
348
  __name: "ExplorerLink",
349
349
  props: {
350
350
  href: {},
@@ -368,9 +368,12 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
368
368
  target: "_blank",
369
369
  rel: "noopener noreferrer",
370
370
  title: e.value
371
- }, [m(t.$slots, "default", {}, () => [a(h(i.value), 1)], !0)], 8, Oe));
371
+ }, [m(t.$slots, "default", {}, () => [a(h(i.value), 1)], !0)], 8, De));
372
372
  }
373
- }), [["__scopeId", "data-v-073d1bbe"]]), Ae = ["href", "aria-label"], je = { key: 0 }, Me = { key: 1 }, Ne = { key: 2 }, Pe = { key: 0 }, Fe = /*#__PURE__*/ y(/* @__PURE__ */ o({
373
+ }), [["__scopeId", "data-v-073d1bbe"]]), ke = { class: "copyright-line" }, Ae = ["href", "aria-label"], je = { key: 0 }, Me = { key: 1 }, Ne = {
374
+ key: 2,
375
+ class: "kopimi-symbol"
376
+ }, Pe = { class: "text-content" }, Fe = { key: 0 }, Ie = /*#__PURE__*/ y(/* @__PURE__ */ o({
374
377
  __name: "CopyrightLine",
375
378
  props: {
376
379
  organisationName: {},
@@ -382,77 +385,73 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
382
385
  },
383
386
  setup(e) {
384
387
  let o = e, s = t(() => o.symbolVariant), c = t(() => o.symbolHref || (s.value === "kopimi" ? "/legal/powr.broccoli-kopimi.pdf" : s.value === "copyleft" ? "/legal/copyleft.html" : "/legal/copyright.html")), l = t(() => o.symbolLabel || (s.value === "kopimi" ? "Kopimi legal notice" : s.value === "copyleft" ? "Copyleft legal notice" : "Copyright legal notice")), u = t(() => o.rightsStatement === "" ? "" : o.rightsStatement === "none" ? "No rights reserved." : o.rightsStatement === "all" || !o.rightsStatement ? "All rights reserved." : o.rightsStatement === "jam" ? "All jams preserved." : o.rightsStatement);
385
- return (t, o) => (d(), r("small", null, [
386
- i("a", {
387
- href: c.value,
388
- class: "symbol-link",
389
- target: "_blank",
390
- rel: "noopener noreferrer",
391
- "aria-label": l.value
392
- }, [s.value === "copyright" ? (d(), r("span", je, "©")) : s.value === "copyleft" ? (d(), r("span", Me, "🄯")) : s.value === "kopimi" ? (d(), r("span", Ne, [...o[0] ||= [i("svg", {
393
- viewBox: "0 0 24 24",
394
- width: "1em",
395
- height: "1em",
396
- "aria-hidden": "true",
397
- focusable: "false",
398
- class: "kopimi-mark"
399
- }, [i("path", {
400
- d: "M12 4L22 23H2Z",
401
- fill: "none",
402
- stroke: "currentColor",
403
- "stroke-width": "1.5"
404
- }), i("text", {
405
- x: "12",
406
- y: "18",
407
- "text-anchor": "middle",
408
- "dominant-baseline": "middle",
409
- "font-family": "system-ui, sans-serif",
410
- "font-size": "11",
411
- fill: "currentColor"
412
- }, " C ")], -1)]])) : n("", !0)], 8, Ae),
413
- a(" " + h(e.year) + " " + h(e.organisationName) + ".", 1),
414
- u.value ? (d(), r("span", Pe, h(` ${u.value}`), 1)) : n("", !0)
415
- ]));
388
+ return (t, o) => (d(), r("small", ke, [i("a", {
389
+ href: c.value,
390
+ class: "symbol-link",
391
+ target: "_blank",
392
+ rel: "noopener noreferrer",
393
+ "aria-label": l.value
394
+ }, [s.value === "copyright" ? (d(), r("span", je, "©")) : s.value === "copyleft" ? (d(), r("span", Me, "🄯")) : s.value === "kopimi" ? (d(), r("span", Ne, [...o[0] ||= [i("svg", {
395
+ viewBox: "0 0 24 24",
396
+ width: "1em",
397
+ height: "1em",
398
+ "aria-hidden": "true",
399
+ focusable: "false",
400
+ class: "kopimi-mark"
401
+ }, [i("path", {
402
+ d: "M12 4L22 23H2Z",
403
+ fill: "none",
404
+ stroke: "currentColor",
405
+ "stroke-width": "1.5"
406
+ }), i("text", {
407
+ x: "12",
408
+ y: "18",
409
+ "text-anchor": "middle",
410
+ "dominant-baseline": "middle",
411
+ "font-family": "system-ui, sans-serif",
412
+ "font-size": "11",
413
+ fill: "currentColor"
414
+ }, " C ")], -1)]])) : n("", !0)], 8, Ae), i("span", Pe, [a(h(e.year) + " " + h(e.organisationName) + ".", 1), u.value ? (d(), r("span", Fe, h(` ${u.value}`), 1)) : n("", !0)])]));
416
415
  }
417
- }), [["__scopeId", "data-v-41d138d5"]]), Ie = /* @__PURE__ */ new Set([
416
+ }), [["__scopeId", "data-v-8e4db6fe"]]), Le = /* @__PURE__ */ new Set([
418
417
  "operational",
419
418
  "degraded",
420
419
  "down",
421
420
  "unknown"
422
421
  ]);
423
- function U(e) {
424
- return typeof e == "string" && Ie.has(e);
425
- }
426
422
  function W(e) {
427
- return U(e) ? e : "unknown";
423
+ return typeof e == "string" && Le.has(e);
428
424
  }
429
425
  function G(e) {
426
+ return W(e) ? e : "unknown";
427
+ }
428
+ function K(e) {
430
429
  return typeof e != "string" || e.trim() === "" ? "" : e.replace(/[<>&"]/g, "");
431
430
  }
432
- function Le(e) {
431
+ function Re(e) {
433
432
  if (typeof e != "object" || !e) return null;
434
- let t = e, n = G(t.name);
433
+ let t = e, n = K(t.name);
435
434
  return n ? {
436
435
  name: n,
437
- status: W(t.status)
436
+ status: G(t.status)
438
437
  } : null;
439
438
  }
440
- function Re(e) {
439
+ function ze(e) {
441
440
  if (typeof e != "object" || !e) return null;
442
- let t = e, n = G(t.name);
441
+ let t = e, n = K(t.name);
443
442
  if (!n) return null;
444
- let r = Array.isArray(t.components) ? t.components.map(Le).filter((e) => e !== null) : [];
443
+ let r = Array.isArray(t.components) ? t.components.map(Re).filter((e) => e !== null) : [];
445
444
  return {
446
445
  name: n,
447
- status: W(t.status),
446
+ status: G(t.status),
448
447
  components: r
449
448
  };
450
449
  }
451
- function K(e) {
450
+ function q(e) {
452
451
  if (typeof e != "object" || !e) return null;
453
452
  let t = e;
454
- if (!U(t.overall) || typeof t.generated_at != "string" || !Array.isArray(t.groups)) return null;
455
- let n = t.groups.map(Re).filter((e) => e !== null);
453
+ if (!W(t.overall) || typeof t.generated_at != "string" || !Array.isArray(t.groups)) return null;
454
+ let n = t.groups.map(ze).filter((e) => e !== null);
456
455
  return {
457
456
  generated_at: t.generated_at,
458
457
  overall: t.overall,
@@ -461,7 +460,7 @@ function K(e) {
461
460
  }
462
461
  //#endregion
463
462
  //#region src/components/StatusWidget.vue?vue&type=script&setup=true&lang.ts
464
- var ze = ["href", "title"], Be = { class: "status-widget__label" }, q = /*#__PURE__*/ y(/* @__PURE__ */ o({
463
+ var Be = ["href", "title"], Ve = { class: "status-widget__label" }, He = /*#__PURE__*/ y(/* @__PURE__ */ o({
465
464
  __name: "StatusWidget",
466
465
  props: {
467
466
  apiUrl: { default: "https://status.meddleware.co.uk/api/status" },
@@ -484,7 +483,7 @@ var ze = ["href", "title"], Be = { class: "status-widget__label" }, q = /*#__PUR
484
483
  try {
485
484
  let e = await fetch(t.apiUrl);
486
485
  if (!e.ok) throw Error(`HTTP ${e.status}`);
487
- let r = K(await e.json());
486
+ let r = q(await e.json());
488
487
  if (!r) throw Error("unexpected response shape");
489
488
  o.value = n[r.overall], s.value = a[r.overall];
490
489
  } catch {
@@ -504,29 +503,29 @@ var ze = ["href", "title"], Be = { class: "status-widget__label" }, q = /*#__PUR
504
503
  }, [n[0] ||= i("span", {
505
504
  class: "status-widget__dot",
506
505
  "aria-hidden": "true"
507
- }, null, -1), i("span", Be, h(s.value), 1)], 10, ze));
506
+ }, null, -1), i("span", Ve, h(s.value), 1)], 10, Be));
508
507
  }
509
508
  }), [["__scopeId", "data-v-6436368e"]]), J = {
510
509
  mainnet: "https://suivision.xyz",
511
510
  testnet: "https://testnet.suivision.xyz",
512
511
  devnet: "https://devnet.suivision.xyz"
513
512
  };
514
- function Ve(e, t, n = "testnet") {
513
+ function Ue(e, t, n = "testnet") {
515
514
  return `${J[n] ?? J.testnet}/${e}/${t}`;
516
515
  }
517
516
  //#endregion
518
517
  //#region src/composables/useColorMode.ts
519
518
  var Y = "mw-color-mode", X = f("system"), Z = !1;
520
- function He() {
519
+ function We() {
521
520
  return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").matches;
522
521
  }
523
522
  function Q(e) {
524
- return e === "dark" || e === "system" && He();
523
+ return e === "dark" || e === "system" && We();
525
524
  }
526
525
  function $(e) {
527
526
  typeof document < "u" && document.documentElement.setAttribute("data-theme", Q(e) ? "dark" : "light");
528
527
  }
529
- function Ue(e = "system") {
528
+ function Ge(e = "system") {
530
529
  if (!Z) {
531
530
  Z = !0;
532
531
  let t = null;
@@ -557,10 +556,10 @@ function Ue(e = "system") {
557
556
  }
558
557
  //#endregion
559
558
  //#region src/composables/useSeason.ts
560
- function We() {
559
+ function Ke() {
561
560
  if (typeof document > "u") return;
562
561
  let e = (/* @__PURE__ */ new Date()).getMonth(), t = e >= 2 && e <= 4 ? "spring" : e >= 5 && e <= 7 ? "summer" : e >= 8 && e <= 10 ? "autumn" : "winter";
563
562
  document.documentElement.dataset.season = t;
564
563
  }
565
564
  //#endregion
566
- export { O as AppFooter, ce as AppHeader, x as AppSidebar, xe as AppTabNav, N as ColorModeControl, De as CopyableAddress, Fe as CopyrightLine, ke as ExplorerLink, ve as SidebarItem, q as StatusWidget, F as UiButton, V as UiCard, me as UiNotice, fe as UiSelect, U as isStatusLevel, K as parseSnapshot, S as safeHref, Ve as suiExplorerUrl, Ue as useColorMode, We as useSeason };
565
+ export { O as AppFooter, ce as AppHeader, x as AppSidebar, U as AppTabNav, N as ColorModeControl, Ee as CopyableAddress, Ie as CopyrightLine, Oe as ExplorerLink, ve as SidebarItem, He as StatusWidget, F as UiButton, V as UiCard, me as UiNotice, fe as UiSelect, W as isStatusLevel, q as parseSnapshot, S as safeHref, Ue as suiExplorerUrl, Ge as useColorMode, Ke as useSeason };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meddleware/ui",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
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",