@meddleware/ui 0.1.15 → 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 +1 -1
- package/dist/components/CopyrightLine.vue.d.ts +19 -0
- package/dist/index.d.ts +1 -0
- package/dist/legal/copyleft.html +48 -0
- package/dist/legal/copyright.html +48 -0
- package/dist/legal/powr.broccoli-kopimi.pdf +0 -0
- package/dist/ui.js +141 -98
- package/package.json +1 -1
package/dist/base.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--mw-font-sans);font-size:var(--font-size-base);line-height:var(--leading-normal);letter-spacing:var(--tracking-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}:where(ul,ol):where([role=list],[role=listitem]){margin:0;padding:0;list-style:none}:where(img,svg,video,canvas){max-width:100%;display:block}:where(fieldset){border:0;margin:0;padding:0}a{color:var(--accent);transition:color var(--transition-base);text-decoration:none}a:hover{text-decoration:underline}:where(button,input,select,textarea){font-family:inherit}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-mono{font-family:var(--mw-font-mono)}.mw-noise{isolation:isolate;position:relative}.mw-noise:before{content:"";z-index:-1;background-image:var(--noise-overlay);opacity:var(--noise-opacity);pointer-events:none;background-repeat:repeat;position:absolute;inset:0}.mw-hand-drawn{display:inline-flex;position:relative}.mw-spinner{width:var(--space-sm);height:var(--space-sm);border:2px solid var(--border);border-top-color:var(--accent);animation:mw-spin var(--transition-slow) linear infinite;border-radius:50%;display:inline-block}@keyframes mw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.mw-spinner{border-top-color:var(--accent);animation:none}}.mw-header[data-v-9b9826d5]{align-items:center;gap:var(--space-sm);height:var(--mw-header-height,56px);padding:0 var(--space-sm);background:var(--_bg);color:var(--_text);border-bottom:1px solid var(--_border);font-family:var(--mw-font-sans);display:flex}.mw-header--sticky[data-v-9b9826d5]{z-index:50;position:sticky;top:0}.mw-header__brand[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);letter-spacing:var(--tracking-wide);white-space:nowrap;font-weight:650;display:flex}.mw-header__center[data-v-9b9826d5]{flex:auto;min-width:0}.mw-header__actions[data-v-9b9826d5]{align-items:center;gap:var(--space-2xs);margin-left:auto;display:flex}.mw-sidebar[data-v-a2b8405c]{height:100%;width:var(--mw-sidebar-width,240px);background:var(--_bg);color:var(--_text);border-right:1px solid var(--_border);font-family:var(--mw-font-sans);flex-direction:column;display:flex}.mw-sidebar__head[data-v-a2b8405c]{padding:var(--space-sm);border-bottom:1px solid var(--_border)}.mw-sidebar__nav[data-v-a2b8405c]{gap:var(--space-3xs);padding:var(--space-xs);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.mw-sidebar__body[data-v-a2b8405c]{flex-shrink:0}.mw-sidebar__foot[data-v-a2b8405c]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--_border);color:var(--_muted);font-size:var(--font-size-sm)}.mw-footer[data-v-979579a9]{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--_bg);color:var(--_muted);border-top:1px solid var(--_border);font-family:var(--mw-font-sans);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.mw-footer--transparent[data-v-979579a9]{border-top:1px solid var(--border)}.mw-footer__center[data-v-979579a9]{flex:auto;min-width:0}.mw-footer__end[data-v-979579a9]{align-items:center;gap:var(--space-sm);margin-left:auto;display:flex}.mw-footer__docs-link[data-v-979579a9]{color:inherit;text-underline-offset:2px;opacity:.7;text-decoration:underline}.mw-footer__docs-link[data-v-979579a9]:hover{opacity:1}.mw-mode[data-v-e2ea0d79]{border:1px solid var(--_border,var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--_text,var(--text)) 6%, transparent);gap:2px;padding:2px;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]{align-items:center;gap:var(--space-3xs);padding:var(--space-3xs) var(--space-2xs);border-radius:calc(var(--radius) - 3px);color:var(--_text,var(--text));font:inherit;font-size:var(--font-size-sm);cursor:pointer;opacity:.7;transition:opacity var(--transition-base), background var(--transition-base);background:0 0;border:0;display:inline-flex}.mw-mode__btn[data-v-e2ea0d79]:hover{opacity:1}.mw-mode__btn.is-active[data-v-e2ea0d79]{opacity:1;background:color-mix(in srgb, var(--_text,var(--text)) 14%, transparent)}.mw-mode__btn[data-v-e2ea0d79]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@media (width<=640px){.mw-mode__label[data-v-e2ea0d79]{display:none}}.mw-btn[data-v-bc33cc23]{justify-content:center;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);font:inherit;cursor:pointer;transition:filter var(--transition-base), background var(--transition-base);border:1px solid #0000;font-weight:550;display:inline-flex}.mw-btn[data-v-bc33cc23]:disabled{opacity:.55;cursor:not-allowed}.mw-btn[data-v-bc33cc23]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.mw-btn--primary[data-v-bc33cc23]{background:var(--accent);color:var(--accent-contrast)}.mw-btn--primary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--secondary[data-v-bc33cc23]{background:var(--secondary);color:var(--secondary-contrast)}.mw-btn--secondary[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--ghost[data-v-bc33cc23]{color:var(--text);border-color:var(--border);background:0 0}.mw-btn--ghost[data-v-bc33cc23]:not(:disabled):hover{background:var(--lift)}.mw-btn--danger[data-v-bc33cc23]{background:var(--danger);color:var(--accent-contrast)}.mw-btn--danger[data-v-bc33cc23]:not(:disabled):hover{filter:brightness(1.08)}.mw-card[data-v-883f87f5]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);overflow:hidden}.mw-card__header[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.mw-card__title[data-v-883f87f5]{font-size:var(--font-size-base);margin:0;font-weight:600}.mw-card__body[data-v-883f87f5]{padding:var(--space-sm)}.mw-card__footer[data-v-883f87f5]{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--border);background:var(--lift)}.mw-select[data-v-7e206184]{position:relative}.mw-select select[data-v-7e206184]{appearance:none;width:100%;padding:var(--space-2xs) calc(var(--space-md) + var(--space-2xs)) var(--space-2xs) var(--space-xs);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font:inherit}.mw-select select[data-v-7e206184]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.mw-select__chevron[data-v-7e206184]{right:var(--space-xs);pointer-events:none;stroke:var(--muted);stroke-width:1.5px;fill:none;position:absolute;top:50%;transform:translateY(-50%)}.mw-notice[data-v-ee7fffb1]{padding:var(--space-2xs) var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);background:var(--lift);color:var(--text);font-size:var(--font-size-sm);border-left-width:3px;margin:0}.mw-notice--error[data-v-ee7fffb1]{border-left-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.mw-notice--ok[data-v-ee7fffb1]{border-left-color:var(--ok);color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}.sidebar-item[data-v-8da2d583]{align-items:center;gap:var(--space-2xs);width:100%;padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius);color:inherit;font:inherit;text-align:left;cursor:pointer;opacity:.85;transition:background var(--transition-base), opacity var(--transition-base);background:0 0;border:0;display:flex}.sidebar-item[data-v-8da2d583]:hover:not(:disabled){background:color-mix(in srgb, currentColor 10%, transparent);opacity:1}.sidebar-item.is-active[data-v-8da2d583]{background:color-mix(in srgb, var(--accent) 26%, transparent);opacity:1}.sidebar-item[data-v-8da2d583]:disabled{cursor:default}.sidebar-item[data-v-8da2d583]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.sidebar-item__icon[data-v-8da2d583]{text-align:center;width:1.1rem}.mw-tab-nav[data-v-97d31503]{gap:var(--space-3xs);border-bottom:2px solid var(--border);display:flex}.mw-tab-nav__tab[data-v-97d31503]{appearance:none;padding:var(--space-2xs) var(--space-sm);cursor:pointer;font-size:var(--font-size-base);color:var(--muted);transition:color var(--transition-base), border-color var(--transition-base);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px}.mw-tab-nav__tab[data-v-97d31503]:hover{color:var(--text)}.mw-tab-nav__tab--active[data-v-97d31503]{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.ca-root[data-v-b43dabdd]{align-items:center;gap:.35em;display:inline-flex}.ca-value[data-v-b43dabdd]{font-family:var(--mw-font-mono,monospace);font-size:inherit}.ca-copy[data-v-b43dabdd]{color:var(--muted,#888);cursor:pointer;transition:color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.ca-copy[data-v-b43dabdd]:hover{color:var(--text,#f0f0f0)}.ca-copy--copied[data-v-b43dabdd]{color:var(--accent,#6366f1)}.ca-icon[data-v-b43dabdd]{display:block}.el-root[data-v-073d1bbe]{font-family:monospace;font-size:inherit;color:var(--accent,#6366f1);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;transition:color .15s}.el-root[data-v-073d1bbe]:hover{color:var(--text,#f0f0f0);text-decoration-style:solid}.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*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type RightsStatementVariant = 'all' | 'none' | 'jam' | 'custom';
|
|
2
|
+
type SymbolVariant = 'copyright' | 'copyleft' | 'kopimi';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
organisationName: string;
|
|
5
|
+
year?: number;
|
|
6
|
+
rightsStatement?: RightsStatementVariant | string;
|
|
7
|
+
symbolVariant?: SymbolVariant;
|
|
8
|
+
/** Optional override for the symbol link href. Defaults based on symbolVariant. */
|
|
9
|
+
symbolHref?: string;
|
|
10
|
+
/** Optional override for the symbol link aria-label. Defaults based on symbolVariant. */
|
|
11
|
+
symbolLabel?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
|
+
year: number;
|
|
15
|
+
rightsStatement: RightsStatementVariant | string;
|
|
16
|
+
symbolVariant: SymbolVariant;
|
|
17
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
export default _default;
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { default as AppTabNav } from './components/AppTabNav.vue';
|
|
|
12
12
|
export type { AppTab } from './components/AppTabNav.vue';
|
|
13
13
|
export { default as CopyableAddress } from './components/CopyableAddress.vue';
|
|
14
14
|
export { default as ExplorerLink } from './components/ExplorerLink.vue';
|
|
15
|
+
export { default as CopyrightLine } from './components/CopyrightLine.vue';
|
|
15
16
|
export { default as StatusWidget } from './components/StatusWidget.vue';
|
|
16
17
|
export { suiExplorerUrl } from './explorer.js';
|
|
17
18
|
export type { SuiNetwork, SuiExplorerKind } from './explorer.js';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Copyleft Notice</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root {
|
|
9
|
+
color-scheme: light dark;
|
|
10
|
+
font-family:
|
|
11
|
+
system-ui,
|
|
12
|
+
-apple-system,
|
|
13
|
+
BlinkMacSystemFont,
|
|
14
|
+
"Segoe UI",
|
|
15
|
+
sans-serif;
|
|
16
|
+
}
|
|
17
|
+
body {
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: 2rem;
|
|
20
|
+
line-height: 1.6;
|
|
21
|
+
max-width: 48rem;
|
|
22
|
+
}
|
|
23
|
+
h1 {
|
|
24
|
+
margin-top: 0;
|
|
25
|
+
font-size: 1.5rem;
|
|
26
|
+
}
|
|
27
|
+
code {
|
|
28
|
+
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
|
|
29
|
+
}
|
|
30
|
+
</style>
|
|
31
|
+
</head>
|
|
32
|
+
<body>
|
|
33
|
+
<h1>Copyleft Notice</h1>
|
|
34
|
+
<p>
|
|
35
|
+
This page is reserved for works distributed under a copyleft-style
|
|
36
|
+
permission structure.
|
|
37
|
+
</p>
|
|
38
|
+
<p>
|
|
39
|
+
Copyleft generally means that derivatives and redistributions must
|
|
40
|
+
preserve the same or compatible licensing terms, depending on the specific
|
|
41
|
+
licence in force.
|
|
42
|
+
</p>
|
|
43
|
+
<p>
|
|
44
|
+
The exact legal meaning depends on the licence or notice that accompanies
|
|
45
|
+
the relevant work.
|
|
46
|
+
</p>
|
|
47
|
+
</body>
|
|
48
|
+
</html>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Copyright Notice</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root {
|
|
9
|
+
color-scheme: light dark;
|
|
10
|
+
font-family:
|
|
11
|
+
system-ui,
|
|
12
|
+
-apple-system,
|
|
13
|
+
BlinkMacSystemFont,
|
|
14
|
+
"Segoe UI",
|
|
15
|
+
sans-serif;
|
|
16
|
+
}
|
|
17
|
+
body {
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: 2rem;
|
|
20
|
+
line-height: 1.6;
|
|
21
|
+
max-width: 48rem;
|
|
22
|
+
}
|
|
23
|
+
h1 {
|
|
24
|
+
margin-top: 0;
|
|
25
|
+
font-size: 1.5rem;
|
|
26
|
+
}
|
|
27
|
+
code {
|
|
28
|
+
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
|
|
29
|
+
}
|
|
30
|
+
</style>
|
|
31
|
+
</head>
|
|
32
|
+
<body>
|
|
33
|
+
<h1>Copyright Notice</h1>
|
|
34
|
+
<p>
|
|
35
|
+
Unless otherwise stated, the content and code in this application are
|
|
36
|
+
protected by copyright.
|
|
37
|
+
</p>
|
|
38
|
+
<p>
|
|
39
|
+
Copyright in the relevant work is retained by the applicable rights holder
|
|
40
|
+
and used under the permissions, licences, or agreements associated with
|
|
41
|
+
that work.
|
|
42
|
+
</p>
|
|
43
|
+
<p>
|
|
44
|
+
For the full application footer, see the main interface. This page exists
|
|
45
|
+
as a static legal reference.
|
|
46
|
+
</p>
|
|
47
|
+
</body>
|
|
48
|
+
</html>
|
|
Binary file
|
package/dist/ui.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, defineComponent as o, mergeProps as s, normalizeClass as c, normalizeStyle as l, onMounted as
|
|
1
|
+
import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, defineComponent as o, mergeProps as s, normalizeClass as c, normalizeStyle as l, onMounted as u, onUnmounted as ee, openBlock as d, ref as f, renderList as p, renderSlot as m, toDisplayString as h, unref as g, useModel as te, vModelSelect as _, watch as ne, withDirectives as re } from "vue";
|
|
2
2
|
//#region src/internal/panel.ts
|
|
3
|
-
function
|
|
3
|
+
function v(e, t) {
|
|
4
4
|
let n;
|
|
5
5
|
return n = e === "transparent" ? {
|
|
6
6
|
"--_bg": "transparent",
|
|
@@ -24,7 +24,7 @@ function _(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 ie = { class: "mw-header__brand" }, ae = { class: "mw-header__center" }, oe = { class: "mw-header__actions" }, se = /*@__PURE__*/ o({
|
|
28
28
|
__name: "AppHeader",
|
|
29
29
|
props: {
|
|
30
30
|
variant: { default: "dark" },
|
|
@@ -35,33 +35,33 @@ var ae = { class: "mw-header__brand" }, oe = { class: "mw-header__center" }, se
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
setup(e) {
|
|
38
|
-
let n = e, a = t(() =>
|
|
39
|
-
return (t, n) => (
|
|
38
|
+
let n = e, a = t(() => v(n.variant, n.colors));
|
|
39
|
+
return (t, n) => (d(), r("header", {
|
|
40
40
|
class: c(["mw-header", [`mw-header--${e.variant}`, { "mw-header--sticky": e.sticky }]]),
|
|
41
41
|
style: l(a.value)
|
|
42
42
|
}, [
|
|
43
|
-
i("div",
|
|
44
|
-
i("div",
|
|
45
|
-
i("div",
|
|
43
|
+
i("div", ie, [m(t.$slots, "brand", {}, void 0, !0)]),
|
|
44
|
+
i("div", ae, [m(t.$slots, "default", {}, void 0, !0)]),
|
|
45
|
+
i("div", oe, [m(t.$slots, "actions", {}, void 0, !0)])
|
|
46
46
|
], 6));
|
|
47
47
|
}
|
|
48
|
-
}),
|
|
48
|
+
}), y = (e, t) => {
|
|
49
49
|
let n = e.__vccOpts || e;
|
|
50
50
|
for (let [e, r] of t) n[e] = r;
|
|
51
51
|
return n;
|
|
52
|
-
},
|
|
52
|
+
}, ce = /*#__PURE__*/ y(se, [["__scopeId", "data-v-9b9826d5"]]), le = {
|
|
53
53
|
key: 0,
|
|
54
54
|
class: "mw-sidebar__head"
|
|
55
|
-
},
|
|
55
|
+
}, ue = {
|
|
56
56
|
class: "mw-sidebar__nav",
|
|
57
57
|
"aria-label": "Primary"
|
|
58
|
-
},
|
|
58
|
+
}, de = {
|
|
59
59
|
key: 1,
|
|
60
60
|
class: "mw-sidebar__body"
|
|
61
61
|
}, b = {
|
|
62
62
|
key: 2,
|
|
63
63
|
class: "mw-sidebar__foot"
|
|
64
|
-
}, x = /*#__PURE__*/
|
|
64
|
+
}, x = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
65
65
|
__name: "AppSidebar",
|
|
66
66
|
props: {
|
|
67
67
|
variant: { default: "dark" },
|
|
@@ -70,17 +70,17 @@ var ae = { class: "mw-header__brand" }, oe = { class: "mw-header__center" }, se
|
|
|
70
70
|
},
|
|
71
71
|
setup(e) {
|
|
72
72
|
let a = e, o = t(() => {
|
|
73
|
-
let e =
|
|
73
|
+
let e = v(a.variant, a.colors);
|
|
74
74
|
return a.width && (e["--mw-sidebar-width"] = a.width), e;
|
|
75
75
|
});
|
|
76
|
-
return (t, a) => (
|
|
76
|
+
return (t, a) => (d(), r("aside", {
|
|
77
77
|
class: c(["mw-sidebar", `mw-sidebar--${e.variant}`]),
|
|
78
78
|
style: l(o.value)
|
|
79
79
|
}, [
|
|
80
|
-
t.$slots.head ? (
|
|
81
|
-
i("nav",
|
|
82
|
-
t.$slots.body ? (
|
|
83
|
-
t.$slots.foot ? (
|
|
80
|
+
t.$slots.head ? (d(), r("div", le, [m(t.$slots, "head", {}, void 0, !0)])) : n("", !0),
|
|
81
|
+
i("nav", ue, [m(t.$slots, "default", {}, void 0, !0)]),
|
|
82
|
+
t.$slots.body ? (d(), r("div", de, [m(t.$slots, "body", {}, void 0, !0)])) : n("", !0),
|
|
83
|
+
t.$slots.foot ? (d(), r("div", b, [m(t.$slots, "foot", {}, void 0, !0)])) : n("", !0)
|
|
84
84
|
], 6));
|
|
85
85
|
}
|
|
86
86
|
}), [["__scopeId", "data-v-a2b8405c"]]);
|
|
@@ -94,7 +94,7 @@ function S(e) {
|
|
|
94
94
|
}
|
|
95
95
|
//#endregion
|
|
96
96
|
//#region src/components/AppFooter.vue?vue&type=script&setup=true&lang.ts
|
|
97
|
-
var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = { class: "mw-footer__end" }, E = ["href"], D = ["href"], O = /*#__PURE__*/
|
|
97
|
+
var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = { class: "mw-footer__end" }, E = ["href"], D = ["href"], O = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
98
98
|
__name: "AppFooter",
|
|
99
99
|
props: {
|
|
100
100
|
variant: { default: "transparent" },
|
|
@@ -103,25 +103,25 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
103
103
|
devUrl: {}
|
|
104
104
|
},
|
|
105
105
|
setup(e) {
|
|
106
|
-
let a = e, o = t(() =>
|
|
107
|
-
return (t, a) => (
|
|
106
|
+
let a = e, o = t(() => v(a.variant, a.colors));
|
|
107
|
+
return (t, a) => (d(), r("footer", {
|
|
108
108
|
class: c(["mw-footer", `mw-footer--${e.variant}`]),
|
|
109
109
|
style: l(o.value)
|
|
110
110
|
}, [
|
|
111
|
-
i("div", C, [
|
|
112
|
-
i("div", w, [
|
|
111
|
+
i("div", C, [m(t.$slots, "start", {}, void 0, !0)]),
|
|
112
|
+
i("div", w, [m(t.$slots, "default", {}, void 0, !0)]),
|
|
113
113
|
i("div", T, [
|
|
114
|
-
|
|
115
|
-
e.docsUrl ? (
|
|
114
|
+
m(t.$slots, "end", {}, void 0, !0),
|
|
115
|
+
e.docsUrl ? (d(), r("a", {
|
|
116
116
|
key: 0,
|
|
117
|
-
href:
|
|
117
|
+
href: g(S)(e.docsUrl),
|
|
118
118
|
target: "_blank",
|
|
119
119
|
rel: "noopener noreferrer",
|
|
120
120
|
class: "mw-footer__docs-link"
|
|
121
121
|
}, "Documentation", 8, E)) : n("", !0),
|
|
122
|
-
e.devUrl ? (
|
|
122
|
+
e.devUrl ? (d(), r("a", {
|
|
123
123
|
key: 1,
|
|
124
|
-
href:
|
|
124
|
+
href: g(S)(e.devUrl),
|
|
125
125
|
target: "_blank",
|
|
126
126
|
rel: "noopener noreferrer",
|
|
127
127
|
"aria-label": "Developer documentation",
|
|
@@ -138,7 +138,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
138
138
|
"aria-pressed",
|
|
139
139
|
"title",
|
|
140
140
|
"onClick"
|
|
141
|
-
], j = { "aria-hidden": "true" }, M = { class: "mw-mode__label" }, N = /*#__PURE__*/
|
|
141
|
+
], j = { "aria-hidden": "true" }, M = { class: "mw-mode__label" }, N = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
142
142
|
__name: "ColorModeControl",
|
|
143
143
|
props: {
|
|
144
144
|
modelValue: {},
|
|
@@ -159,16 +159,16 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
159
159
|
dark: "☾",
|
|
160
160
|
system: "🖵"
|
|
161
161
|
};
|
|
162
|
-
return (o, s) => (
|
|
162
|
+
return (o, s) => (d(), r("div", k, [(d(!0), r(e, null, p(t.modes, (e) => (d(), r("button", {
|
|
163
163
|
key: e,
|
|
164
164
|
type: "button",
|
|
165
165
|
class: c(["mw-mode__btn", { "is-active": t.modelValue === e }]),
|
|
166
166
|
"aria-pressed": t.modelValue === e,
|
|
167
167
|
title: n[e],
|
|
168
168
|
onClick: (t) => o.$emit("update:modelValue", e)
|
|
169
|
-
}, [i("span", j,
|
|
169
|
+
}, [i("span", j, h(a[e]), 1), i("span", M, h(n[e]), 1)], 10, A))), 128))]));
|
|
170
170
|
}
|
|
171
|
-
}), [["__scopeId", "data-v-e2ea0d79"]]), P = ["type", "disabled"], F = /*#__PURE__*/
|
|
171
|
+
}), [["__scopeId", "data-v-e2ea0d79"]]), P = ["type", "disabled"], F = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
172
172
|
__name: "UiButton",
|
|
173
173
|
props: {
|
|
174
174
|
variant: { default: "primary" },
|
|
@@ -179,11 +179,11 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
179
179
|
}
|
|
180
180
|
},
|
|
181
181
|
setup(e) {
|
|
182
|
-
return (t, n) => (
|
|
182
|
+
return (t, n) => (d(), r("button", {
|
|
183
183
|
type: e.type,
|
|
184
184
|
disabled: e.disabled,
|
|
185
185
|
class: c(["mw-btn", `mw-btn--${e.variant}`])
|
|
186
|
-
}, [
|
|
186
|
+
}, [m(t.$slots, "default", {}, void 0, !0)], 10, P));
|
|
187
187
|
}
|
|
188
188
|
}), [["__scopeId", "data-v-bc33cc23"]]), I = { class: "mw-card" }, L = {
|
|
189
189
|
key: 0,
|
|
@@ -191,17 +191,17 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
191
191
|
}, R = { class: "mw-card__title" }, z = { class: "mw-card__body" }, B = {
|
|
192
192
|
key: 1,
|
|
193
193
|
class: "mw-card__footer"
|
|
194
|
-
}, V = /*#__PURE__*/
|
|
194
|
+
}, V = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
195
195
|
__name: "UiCard",
|
|
196
196
|
props: { title: {} },
|
|
197
197
|
setup(e) {
|
|
198
|
-
return (t, a) => (
|
|
199
|
-
e.title || t.$slots.header ? (
|
|
200
|
-
i("div", z, [
|
|
201
|
-
t.$slots.footer ? (
|
|
198
|
+
return (t, a) => (d(), r("section", I, [
|
|
199
|
+
e.title || t.$slots.header ? (d(), r("header", L, [m(t.$slots, "header", {}, () => [i("h3", R, h(e.title), 1)], !0)])) : n("", !0),
|
|
200
|
+
i("div", z, [m(t.$slots, "default", {}, void 0, !0)]),
|
|
201
|
+
t.$slots.footer ? (d(), r("footer", B, [m(t.$slots, "footer", {}, void 0, !0)])) : n("", !0)
|
|
202
202
|
]));
|
|
203
203
|
}
|
|
204
|
-
}), [["__scopeId", "data-v-883f87f5"]]), H = { class: "mw-select" }, fe = /*#__PURE__*/
|
|
204
|
+
}), [["__scopeId", "data-v-883f87f5"]]), H = { class: "mw-select" }, fe = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
205
205
|
inheritAttrs: !1,
|
|
206
206
|
__name: "UiSelect",
|
|
207
207
|
props: {
|
|
@@ -210,8 +210,8 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
210
210
|
},
|
|
211
211
|
emits: ["update:modelValue"],
|
|
212
212
|
setup(e) {
|
|
213
|
-
let t =
|
|
214
|
-
return (e, n) => (
|
|
213
|
+
let t = te(e, "modelValue");
|
|
214
|
+
return (e, n) => (d(), r("div", H, [re(i("select", s(e.$attrs, { "onUpdate:modelValue": n[0] ||= (e) => t.value = e }), [m(e.$slots, "default", {}, void 0, !0)], 16), [[_, t.value]]), n[1] ||= i("svg", {
|
|
215
215
|
class: "mw-select__chevron",
|
|
216
216
|
xmlns: "http://www.w3.org/2000/svg",
|
|
217
217
|
width: "12",
|
|
@@ -220,7 +220,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
220
220
|
"aria-hidden": "true"
|
|
221
221
|
}, [i("path", { d: "M1 1l5 5 5-5" })], -1)]));
|
|
222
222
|
}
|
|
223
|
-
}), [["__scopeId", "data-v-7e206184"]]), pe = ["role"], me = /*#__PURE__*/
|
|
223
|
+
}), [["__scopeId", "data-v-7e206184"]]), pe = ["role"], me = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
224
224
|
__name: "UiNotice",
|
|
225
225
|
props: { type: {} },
|
|
226
226
|
setup(e) {
|
|
@@ -228,16 +228,16 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
228
228
|
if (n.type === "error") return "alert";
|
|
229
229
|
if (n.type === "ok") return "status";
|
|
230
230
|
});
|
|
231
|
-
return (t, n) => (
|
|
231
|
+
return (t, n) => (d(), r("p", {
|
|
232
232
|
class: c(["mw-notice", e.type && e.type !== "info" ? `mw-notice--${e.type}` : ""]),
|
|
233
233
|
role: i.value
|
|
234
|
-
}, [
|
|
234
|
+
}, [m(t.$slots, "default", {}, void 0, !0)], 10, pe));
|
|
235
235
|
}
|
|
236
236
|
}), [["__scopeId", "data-v-ee7fffb1"]]), he = ["disabled", "aria-current"], ge = {
|
|
237
237
|
key: 0,
|
|
238
238
|
class: "sidebar-item__icon",
|
|
239
239
|
"aria-hidden": "true"
|
|
240
|
-
}, _e = { class: "sidebar-item__label" }, ve = /*#__PURE__*/
|
|
240
|
+
}, _e = { class: "sidebar-item__label" }, ve = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
241
241
|
__name: "SidebarItem",
|
|
242
242
|
props: {
|
|
243
243
|
label: {},
|
|
@@ -252,14 +252,14 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
252
252
|
}
|
|
253
253
|
},
|
|
254
254
|
setup(e) {
|
|
255
|
-
return (t, a) => (
|
|
255
|
+
return (t, a) => (d(), r("button", {
|
|
256
256
|
type: "button",
|
|
257
257
|
class: c(["sidebar-item", { "is-active": e.active }]),
|
|
258
258
|
disabled: e.disabled,
|
|
259
259
|
"aria-current": e.active ? "page" : void 0
|
|
260
|
-
}, [e.icon ? (
|
|
260
|
+
}, [e.icon ? (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"],
|
|
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: {},
|
|
@@ -269,18 +269,18 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
269
269
|
emits: ["update:modelValue"],
|
|
270
270
|
setup(t, { emit: n }) {
|
|
271
271
|
let i = n;
|
|
272
|
-
return (n, a) => (
|
|
272
|
+
return (n, a) => (d(), r("nav", {
|
|
273
273
|
class: "mw-tab-nav",
|
|
274
274
|
"aria-label": t.ariaLabel
|
|
275
|
-
}, [(
|
|
275
|
+
}, [(d(!0), r(e, null, p(t.tabs, (e) => (d(), r("button", {
|
|
276
276
|
key: e.id,
|
|
277
277
|
type: "button",
|
|
278
278
|
class: c(["mw-tab-nav__tab", { "mw-tab-nav__tab--active": t.modelValue === e.id }]),
|
|
279
279
|
"aria-current": t.modelValue === e.id ? "page" : void 0,
|
|
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"]]),
|
|
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
|
-
},
|
|
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
|
-
},
|
|
307
|
+
}, Ee = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
308
308
|
__name: "CopyableAddress",
|
|
309
309
|
props: {
|
|
310
310
|
address: {},
|
|
@@ -316,7 +316,7 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
316
316
|
label: { default: "Copy" }
|
|
317
317
|
},
|
|
318
318
|
setup(e) {
|
|
319
|
-
let n = e, o =
|
|
319
|
+
let n = e, o = f(!1), s = t(() => {
|
|
320
320
|
if (!n.truncate) return n.address;
|
|
321
321
|
let [e, t] = n.chars;
|
|
322
322
|
return `${n.address.slice(0, e)}…${n.address.slice(-t)}`;
|
|
@@ -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) => (
|
|
329
|
+
return (t, n) => (d(), r("span", xe, [i("span", {
|
|
330
330
|
class: "ca-value",
|
|
331
331
|
title: e.address
|
|
332
|
-
}, [
|
|
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 ? (
|
|
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,
|
|
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"]]),
|
|
347
|
+
}), [["__scopeId", "data-v-b43dabdd"]]), De = ["href", "title"], Oe = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
348
348
|
__name: "ExplorerLink",
|
|
349
349
|
props: {
|
|
350
350
|
href: {},
|
|
@@ -362,53 +362,96 @@ var C = { class: "mw-footer__start" }, w = { class: "mw-footer__center" }, T = {
|
|
|
362
362
|
let [e, t] = n.chars;
|
|
363
363
|
return `${n.value.slice(0, e)}…${n.value.slice(-t)}`;
|
|
364
364
|
});
|
|
365
|
-
return (t, n) => (
|
|
365
|
+
return (t, n) => (d(), r("a", {
|
|
366
366
|
class: "el-root",
|
|
367
|
-
href:
|
|
367
|
+
href: g(S)(e.href),
|
|
368
368
|
target: "_blank",
|
|
369
369
|
rel: "noopener noreferrer",
|
|
370
370
|
title: e.value
|
|
371
|
-
}, [
|
|
371
|
+
}, [m(t.$slots, "default", {}, () => [a(h(i.value), 1)], !0)], 8, De));
|
|
372
372
|
}
|
|
373
|
-
}), [["__scopeId", "data-v-073d1bbe"]]), Ae =
|
|
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({
|
|
377
|
+
__name: "CopyrightLine",
|
|
378
|
+
props: {
|
|
379
|
+
organisationName: {},
|
|
380
|
+
year: { default: () => (/* @__PURE__ */ new Date()).getFullYear() },
|
|
381
|
+
rightsStatement: { default: "all" },
|
|
382
|
+
symbolVariant: { default: "copyright" },
|
|
383
|
+
symbolHref: {},
|
|
384
|
+
symbolLabel: {}
|
|
385
|
+
},
|
|
386
|
+
setup(e) {
|
|
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);
|
|
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)])]));
|
|
415
|
+
}
|
|
416
|
+
}), [["__scopeId", "data-v-8e4db6fe"]]), Le = /* @__PURE__ */ new Set([
|
|
374
417
|
"operational",
|
|
375
418
|
"degraded",
|
|
376
419
|
"down",
|
|
377
420
|
"unknown"
|
|
378
421
|
]);
|
|
379
|
-
function U(e) {
|
|
380
|
-
return typeof e == "string" && Ae.has(e);
|
|
381
|
-
}
|
|
382
422
|
function W(e) {
|
|
383
|
-
return
|
|
423
|
+
return typeof e == "string" && Le.has(e);
|
|
384
424
|
}
|
|
385
425
|
function G(e) {
|
|
426
|
+
return W(e) ? e : "unknown";
|
|
427
|
+
}
|
|
428
|
+
function K(e) {
|
|
386
429
|
return typeof e != "string" || e.trim() === "" ? "" : e.replace(/[<>&"]/g, "");
|
|
387
430
|
}
|
|
388
|
-
function
|
|
431
|
+
function Re(e) {
|
|
389
432
|
if (typeof e != "object" || !e) return null;
|
|
390
|
-
let t = e, n =
|
|
433
|
+
let t = e, n = K(t.name);
|
|
391
434
|
return n ? {
|
|
392
435
|
name: n,
|
|
393
|
-
status:
|
|
436
|
+
status: G(t.status)
|
|
394
437
|
} : null;
|
|
395
438
|
}
|
|
396
|
-
function
|
|
439
|
+
function ze(e) {
|
|
397
440
|
if (typeof e != "object" || !e) return null;
|
|
398
|
-
let t = e, n =
|
|
441
|
+
let t = e, n = K(t.name);
|
|
399
442
|
if (!n) return null;
|
|
400
|
-
let r = Array.isArray(t.components) ? t.components.map(
|
|
443
|
+
let r = Array.isArray(t.components) ? t.components.map(Re).filter((e) => e !== null) : [];
|
|
401
444
|
return {
|
|
402
445
|
name: n,
|
|
403
|
-
status:
|
|
446
|
+
status: G(t.status),
|
|
404
447
|
components: r
|
|
405
448
|
};
|
|
406
449
|
}
|
|
407
|
-
function
|
|
450
|
+
function q(e) {
|
|
408
451
|
if (typeof e != "object" || !e) return null;
|
|
409
452
|
let t = e;
|
|
410
|
-
if (!
|
|
411
|
-
let n = t.groups.map(
|
|
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);
|
|
412
455
|
return {
|
|
413
456
|
generated_at: t.generated_at,
|
|
414
457
|
overall: t.overall,
|
|
@@ -417,7 +460,7 @@ function K(e) {
|
|
|
417
460
|
}
|
|
418
461
|
//#endregion
|
|
419
462
|
//#region src/components/StatusWidget.vue?vue&type=script&setup=true&lang.ts
|
|
420
|
-
var
|
|
463
|
+
var Be = ["href", "title"], Ve = { class: "status-widget__label" }, He = /*#__PURE__*/ y(/* @__PURE__ */ o({
|
|
421
464
|
__name: "StatusWidget",
|
|
422
465
|
props: {
|
|
423
466
|
apiUrl: { default: "https://status.meddleware.co.uk/api/status" },
|
|
@@ -435,24 +478,24 @@ var Ne = ["href", "title"], q = { class: "status-widget__label" }, Pe = /*#__PUR
|
|
|
435
478
|
degraded: "Degraded",
|
|
436
479
|
down: "Major outage",
|
|
437
480
|
unknown: "Status unknown"
|
|
438
|
-
}, o =
|
|
439
|
-
async function
|
|
481
|
+
}, o = f("ok"), s = f("All systems operational"), l = null;
|
|
482
|
+
async function p() {
|
|
440
483
|
try {
|
|
441
484
|
let e = await fetch(t.apiUrl);
|
|
442
485
|
if (!e.ok) throw Error(`HTTP ${e.status}`);
|
|
443
|
-
let r =
|
|
486
|
+
let r = q(await e.json());
|
|
444
487
|
if (!r) throw Error("unexpected response shape");
|
|
445
488
|
o.value = n[r.overall], s.value = a[r.overall];
|
|
446
489
|
} catch {
|
|
447
490
|
o.value = "error", s.value = "Status unavailable";
|
|
448
491
|
}
|
|
449
492
|
}
|
|
450
|
-
return
|
|
451
|
-
|
|
452
|
-
}),
|
|
493
|
+
return u(() => {
|
|
494
|
+
p(), l = setInterval(p, t.pollInterval);
|
|
495
|
+
}), ee(() => {
|
|
453
496
|
l !== null && clearInterval(l);
|
|
454
|
-
}), (t, n) => (
|
|
455
|
-
href:
|
|
497
|
+
}), (t, n) => (d(), r("a", {
|
|
498
|
+
href: g(S)(e.href),
|
|
456
499
|
target: "_blank",
|
|
457
500
|
rel: "noopener noreferrer",
|
|
458
501
|
class: c(["status-widget", `status-widget--${o.value}`]),
|
|
@@ -460,29 +503,29 @@ var Ne = ["href", "title"], q = { class: "status-widget__label" }, Pe = /*#__PUR
|
|
|
460
503
|
}, [n[0] ||= i("span", {
|
|
461
504
|
class: "status-widget__dot",
|
|
462
505
|
"aria-hidden": "true"
|
|
463
|
-
}, null, -1), i("span",
|
|
506
|
+
}, null, -1), i("span", Ve, h(s.value), 1)], 10, Be));
|
|
464
507
|
}
|
|
465
508
|
}), [["__scopeId", "data-v-6436368e"]]), J = {
|
|
466
509
|
mainnet: "https://suivision.xyz",
|
|
467
510
|
testnet: "https://testnet.suivision.xyz",
|
|
468
511
|
devnet: "https://devnet.suivision.xyz"
|
|
469
512
|
};
|
|
470
|
-
function
|
|
513
|
+
function Ue(e, t, n = "testnet") {
|
|
471
514
|
return `${J[n] ?? J.testnet}/${e}/${t}`;
|
|
472
515
|
}
|
|
473
516
|
//#endregion
|
|
474
517
|
//#region src/composables/useColorMode.ts
|
|
475
|
-
var Y = "mw-color-mode", X =
|
|
476
|
-
function
|
|
518
|
+
var Y = "mw-color-mode", X = f("system"), Z = !1;
|
|
519
|
+
function We() {
|
|
477
520
|
return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
478
521
|
}
|
|
479
522
|
function Q(e) {
|
|
480
|
-
return e === "dark" || e === "system" &&
|
|
523
|
+
return e === "dark" || e === "system" && We();
|
|
481
524
|
}
|
|
482
525
|
function $(e) {
|
|
483
526
|
typeof document < "u" && document.documentElement.setAttribute("data-theme", Q(e) ? "dark" : "light");
|
|
484
527
|
}
|
|
485
|
-
function
|
|
528
|
+
function Ge(e = "system") {
|
|
486
529
|
if (!Z) {
|
|
487
530
|
Z = !0;
|
|
488
531
|
let t = null;
|
|
@@ -491,7 +534,7 @@ function Le(e = "system") {
|
|
|
491
534
|
} catch {}
|
|
492
535
|
X.value = t ?? e, $(X.value), typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => {
|
|
493
536
|
X.value === "system" && $("system");
|
|
494
|
-
}),
|
|
537
|
+
}), ne(X, (e) => {
|
|
495
538
|
$(e);
|
|
496
539
|
try {
|
|
497
540
|
typeof localStorage < "u" && localStorage.setItem(Y, e);
|
|
@@ -513,10 +556,10 @@ function Le(e = "system") {
|
|
|
513
556
|
}
|
|
514
557
|
//#endregion
|
|
515
558
|
//#region src/composables/useSeason.ts
|
|
516
|
-
function
|
|
559
|
+
function Ke() {
|
|
517
560
|
if (typeof document > "u") return;
|
|
518
561
|
let e = (/* @__PURE__ */ new Date()).getMonth(), t = e >= 2 && e <= 4 ? "spring" : e >= 5 && e <= 7 ? "summer" : e >= 8 && e <= 10 ? "autumn" : "winter";
|
|
519
562
|
document.documentElement.dataset.season = t;
|
|
520
563
|
}
|
|
521
564
|
//#endregion
|
|
522
|
-
export { O as AppFooter,
|
|
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.
|
|
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",
|