@meddleware/ui 0.1.3 → 0.1.4
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/SidebarItem.vue.d.ts +12 -0
- package/dist/index.d.ts +1 -0
- package/dist/ui.js +82 -56
- package/package.json +1 -1
package/dist/base.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.mw-header[data-v-ad7cd1c5]{height:var(--mw-header-height,56px);background:var(--_bg);color:var(--_text);border-bottom:1px solid var(--_border);font-family:var(--mw-font-sans);align-items:center;gap:1rem;padding:0 1rem;display:flex}.mw-header--sticky[data-v-ad7cd1c5]{z-index:50;position:sticky;top:0}.mw-header__brand[data-v-ad7cd1c5]{letter-spacing:.01em;white-space:nowrap;align-items:center;gap:.5rem;font-weight:650;display:flex}.mw-header__center[data-v-ad7cd1c5]{flex:auto;min-width:0}.mw-header__actions[data-v-ad7cd1c5]{align-items:center;gap:.5rem;margin-left:auto;display:flex}.mw-sidebar[data-v-5aa0ef5a]{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-5aa0ef5a]{border-bottom:1px solid var(--_border);padding:1rem}.mw-sidebar__nav[data-v-5aa0ef5a]{flex-direction:column;flex:auto;gap:.25rem;padding:.75rem;display:flex;overflow-y:auto}.mw-sidebar__foot[data-v-5aa0ef5a]{border-top:1px solid var(--_border);color:var(--_muted);padding:.75rem 1rem;font-size:.85rem}.mw-footer[data-v-c646b8e1]{background:var(--_bg);color:var(--_muted);border-top:1px solid var(--_border);font-family:var(--mw-font-sans);flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.mw-footer--transparent[data-v-c646b8e1]{border-top:1px solid var(--border)}.mw-footer__center[data-v-c646b8e1]{flex:auto;min-width:0}.mw-footer__end[data-v-c646b8e1]{margin-left:auto}.mw-mode[data-v-e4a6bf1d]{border:1px solid var(--_border,var(--border));border-radius:var(--mw-radius,10px);background:color-mix(in srgb, var(--_text,var(--text)) 6%, transparent);gap:2px;padding:2px;display:inline-flex}.mw-mode__btn[data-v-e4a6bf1d]{border-radius:calc(var(--mw-radius,10px) - 3px);color:var(--_text,var(--text));font:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.8rem;display:inline-flex}.mw-mode__btn[data-v-e4a6bf1d]:hover{opacity:1}.mw-mode__btn.is-active[data-v-e4a6bf1d]{opacity:1;background:color-mix(in srgb, var(--_text,var(--text)) 14%, transparent)}.mw-mode__btn[data-v-e4a6bf1d]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (width<=640px){.mw-mode__label[data-v-e4a6bf1d]{display:none}}.mw-btn[data-v-299de2c3]{border-radius:var(--mw-radius,10px);font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .9rem;font-weight:550;transition:filter .12s,background .12s;display:inline-flex}.mw-btn[data-v-299de2c3]:disabled{opacity:.55;cursor:not-allowed}.mw-btn[data-v-299de2c3]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mw-btn--primary[data-v-299de2c3]{background:var(--accent);color:var(--accent-contrast)}.mw-btn--primary[data-v-299de2c3]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--secondary[data-v-299de2c3]{background:var(--secondary);color:var(--secondary-contrast)}.mw-btn--secondary[data-v-299de2c3]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--ghost[data-v-299de2c3]{color:var(--text);border-color:var(--border);background:0 0}.mw-btn--ghost[data-v-299de2c3]:not(:disabled):hover{background:var(--lift)}.mw-btn--danger[data-v-299de2c3]{background:var(--danger);color:var(--mw-neutral-000)}.mw-btn--danger[data-v-299de2c3]:not(:disabled):hover{filter:brightness(1.08)}.mw-card[data-v-fd2fd7ab]{background:var(--surface);border:1px solid var(--border);border-radius:var(--mw-radius,10px);color:var(--text);overflow:hidden}.mw-card__header[data-v-fd2fd7ab]{border-bottom:1px solid var(--border);padding:.85rem 1rem}.mw-card__title[data-v-fd2fd7ab]{margin:0;font-size:1rem;font-weight:600}.mw-card__body[data-v-fd2fd7ab]{padding:1rem}.mw-card__footer[data-v-fd2fd7ab]{border-top:1px solid var(--border);background:var(--lift);padding:.75rem 1rem}.mw-select[data-v-b9468387]{position:relative}.mw-select select[data-v-b9468387]{appearance:none;background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--mw-radius,10px);font:inherit;padding:.5rem 2.5rem .5rem .7rem}.mw-select select[data-v-b9468387]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.mw-select__chevron[data-v-b9468387]{pointer-events:none;stroke:var(--muted);stroke-width:1.5px;fill:none;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.mw-notice[data-v-6f53d0be]{border:1px solid var(--border);border-radius:var(--mw-radius,10px);background:var(--lift);color:var(--text);border-left-width:3px;margin:0;padding:.6rem .8rem;font-size:.9rem}.mw-notice--error[data-v-6f53d0be]{border-left-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.mw-notice--ok[data-v-6f53d0be]{border-left-color:var(--ok);color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}
|
|
1
|
+
.mw-header[data-v-ad7cd1c5]{height:var(--mw-header-height,56px);background:var(--_bg);color:var(--_text);border-bottom:1px solid var(--_border);font-family:var(--mw-font-sans);align-items:center;gap:1rem;padding:0 1rem;display:flex}.mw-header--sticky[data-v-ad7cd1c5]{z-index:50;position:sticky;top:0}.mw-header__brand[data-v-ad7cd1c5]{letter-spacing:.01em;white-space:nowrap;align-items:center;gap:.5rem;font-weight:650;display:flex}.mw-header__center[data-v-ad7cd1c5]{flex:auto;min-width:0}.mw-header__actions[data-v-ad7cd1c5]{align-items:center;gap:.5rem;margin-left:auto;display:flex}.mw-sidebar[data-v-5aa0ef5a]{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-5aa0ef5a]{border-bottom:1px solid var(--_border);padding:1rem}.mw-sidebar__nav[data-v-5aa0ef5a]{flex-direction:column;flex:auto;gap:.25rem;padding:.75rem;display:flex;overflow-y:auto}.mw-sidebar__foot[data-v-5aa0ef5a]{border-top:1px solid var(--_border);color:var(--_muted);padding:.75rem 1rem;font-size:.85rem}.mw-footer[data-v-c646b8e1]{background:var(--_bg);color:var(--_muted);border-top:1px solid var(--_border);font-family:var(--mw-font-sans);flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.mw-footer--transparent[data-v-c646b8e1]{border-top:1px solid var(--border)}.mw-footer__center[data-v-c646b8e1]{flex:auto;min-width:0}.mw-footer__end[data-v-c646b8e1]{margin-left:auto}.mw-mode[data-v-e4a6bf1d]{border:1px solid var(--_border,var(--border));border-radius:var(--mw-radius,10px);background:color-mix(in srgb, var(--_text,var(--text)) 6%, transparent);gap:2px;padding:2px;display:inline-flex}.mw-mode__btn[data-v-e4a6bf1d]{border-radius:calc(var(--mw-radius,10px) - 3px);color:var(--_text,var(--text));font:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.8rem;display:inline-flex}.mw-mode__btn[data-v-e4a6bf1d]:hover{opacity:1}.mw-mode__btn.is-active[data-v-e4a6bf1d]{opacity:1;background:color-mix(in srgb, var(--_text,var(--text)) 14%, transparent)}.mw-mode__btn[data-v-e4a6bf1d]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (width<=640px){.mw-mode__label[data-v-e4a6bf1d]{display:none}}.mw-btn[data-v-299de2c3]{border-radius:var(--mw-radius,10px);font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .9rem;font-weight:550;transition:filter .12s,background .12s;display:inline-flex}.mw-btn[data-v-299de2c3]:disabled{opacity:.55;cursor:not-allowed}.mw-btn[data-v-299de2c3]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mw-btn--primary[data-v-299de2c3]{background:var(--accent);color:var(--accent-contrast)}.mw-btn--primary[data-v-299de2c3]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--secondary[data-v-299de2c3]{background:var(--secondary);color:var(--secondary-contrast)}.mw-btn--secondary[data-v-299de2c3]:not(:disabled):hover{filter:brightness(1.08)}.mw-btn--ghost[data-v-299de2c3]{color:var(--text);border-color:var(--border);background:0 0}.mw-btn--ghost[data-v-299de2c3]:not(:disabled):hover{background:var(--lift)}.mw-btn--danger[data-v-299de2c3]{background:var(--danger);color:var(--mw-neutral-000)}.mw-btn--danger[data-v-299de2c3]:not(:disabled):hover{filter:brightness(1.08)}.mw-card[data-v-fd2fd7ab]{background:var(--surface);border:1px solid var(--border);border-radius:var(--mw-radius,10px);color:var(--text);overflow:hidden}.mw-card__header[data-v-fd2fd7ab]{border-bottom:1px solid var(--border);padding:.85rem 1rem}.mw-card__title[data-v-fd2fd7ab]{margin:0;font-size:1rem;font-weight:600}.mw-card__body[data-v-fd2fd7ab]{padding:1rem}.mw-card__footer[data-v-fd2fd7ab]{border-top:1px solid var(--border);background:var(--lift);padding:.75rem 1rem}.mw-select[data-v-b9468387]{position:relative}.mw-select select[data-v-b9468387]{appearance:none;background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--mw-radius,10px);font:inherit;padding:.5rem 2.5rem .5rem .7rem}.mw-select select[data-v-b9468387]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.mw-select__chevron[data-v-b9468387]{pointer-events:none;stroke:var(--muted);stroke-width:1.5px;fill:none;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.mw-notice[data-v-6f53d0be]{border:1px solid var(--border);border-radius:var(--mw-radius,10px);background:var(--lift);color:var(--text);border-left-width:3px;margin:0;padding:.6rem .8rem;font-size:.9rem}.mw-notice--error[data-v-6f53d0be]{border-left-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent)}.mw-notice--ok[data-v-6f53d0be]{border-left-color:var(--ok);color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}.sidebar-item[data-v-e15afdf7]{border-radius:var(--mw-radius,10px);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;opacity:.85;background:0 0;border:0;align-items:center;gap:.6rem;padding:.55rem .7rem;display:flex}.sidebar-item[data-v-e15afdf7]:hover:not(:disabled){background:color-mix(in srgb, currentColor 10%, transparent);opacity:1}.sidebar-item.is-active[data-v-e15afdf7]{background:color-mix(in srgb, var(--accent) 26%, transparent);opacity:1}.sidebar-item[data-v-e15afdf7]:disabled{cursor:default}.sidebar-item[data-v-e15afdf7]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sidebar-item__icon[data-v-e15afdf7]{text-align:center;width:1.1rem}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label: string;
|
|
3
|
+
icon?: string;
|
|
4
|
+
active?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
active: boolean;
|
|
10
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { default as UiButton } from './components/UiButton.vue';
|
|
|
6
6
|
export { default as UiCard } from './components/UiCard.vue';
|
|
7
7
|
export { default as UiSelect } from './components/UiSelect.vue';
|
|
8
8
|
export { default as UiNotice } from './components/UiNotice.vue';
|
|
9
|
+
export { default as SidebarItem } from './components/SidebarItem.vue';
|
|
9
10
|
export { useColorMode } from './composables/useColorMode.js';
|
|
10
11
|
export type { ColorMode } from './composables/useColorMode.js';
|
|
11
12
|
export type { PanelVariant, PanelColors } from './internal/panel.js';
|
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, defineComponent as a, mergeProps as o, normalizeClass as s, normalizeStyle as c, openBlock as l, ref as
|
|
1
|
+
import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, defineComponent as a, mergeProps as o, normalizeClass as s, normalizeStyle as c, openBlock as l, ref as ee, renderList as u, renderSlot as d, toDisplayString as f, useModel as p, vModelSelect as m, watch as te, withDirectives as ne } from "vue";
|
|
2
2
|
//#region src/internal/panel.ts
|
|
3
|
-
function
|
|
3
|
+
function h(e, t) {
|
|
4
4
|
let n;
|
|
5
5
|
return n = e === "transparent" ? {
|
|
6
6
|
"--_bg": "transparent",
|
|
@@ -24,7 +24,7 @@ function v(e, t) {
|
|
|
24
24
|
}
|
|
25
25
|
//#endregion
|
|
26
26
|
//#region src/components/AppHeader.vue?vue&type=script&setup=true&lang.ts
|
|
27
|
-
var
|
|
27
|
+
var re = { class: "mw-header__brand" }, g = { class: "mw-header__center" }, _ = { class: "mw-header__actions" }, v = /*@__PURE__*/ a({
|
|
28
28
|
__name: "AppHeader",
|
|
29
29
|
props: {
|
|
30
30
|
variant: { default: "dark" },
|
|
@@ -35,30 +35,30 @@ var ee = { class: "mw-header__brand" }, y = { class: "mw-header__center" }, b =
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
setup(e) {
|
|
38
|
-
let n = e, a = t(() =>
|
|
38
|
+
let n = e, a = t(() => h(n.variant, n.colors));
|
|
39
39
|
return (t, n) => (l(), r("header", {
|
|
40
40
|
class: s(["mw-header", [`mw-header--${e.variant}`, { "mw-header--sticky": e.sticky }]]),
|
|
41
41
|
style: c(a.value)
|
|
42
42
|
}, [
|
|
43
|
-
i("div",
|
|
44
|
-
i("div",
|
|
45
|
-
i("div",
|
|
43
|
+
i("div", re, [d(t.$slots, "brand", {}, void 0, !0)]),
|
|
44
|
+
i("div", g, [d(t.$slots, "default", {}, void 0, !0)]),
|
|
45
|
+
i("div", _, [d(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
|
+
}, b = /*#__PURE__*/ y(v, [["__scopeId", "data-v-ad7cd1c5"]]), x = {
|
|
53
53
|
key: 0,
|
|
54
54
|
class: "mw-sidebar__head"
|
|
55
|
-
},
|
|
55
|
+
}, S = {
|
|
56
56
|
class: "mw-sidebar__nav",
|
|
57
57
|
"aria-label": "Primary"
|
|
58
|
-
},
|
|
58
|
+
}, C = {
|
|
59
59
|
key: 1,
|
|
60
60
|
class: "mw-sidebar__foot"
|
|
61
|
-
},
|
|
61
|
+
}, w = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
62
62
|
__name: "AppSidebar",
|
|
63
63
|
props: {
|
|
64
64
|
variant: { default: "dark" },
|
|
@@ -67,44 +67,44 @@ var ee = { class: "mw-header__brand" }, y = { class: "mw-header__center" }, b =
|
|
|
67
67
|
},
|
|
68
68
|
setup(e) {
|
|
69
69
|
let a = e, o = t(() => {
|
|
70
|
-
let e =
|
|
70
|
+
let e = h(a.variant, a.colors);
|
|
71
71
|
return a.width && (e["--mw-sidebar-width"] = a.width), e;
|
|
72
72
|
});
|
|
73
73
|
return (t, a) => (l(), r("aside", {
|
|
74
74
|
class: s(["mw-sidebar", `mw-sidebar--${e.variant}`]),
|
|
75
75
|
style: c(o.value)
|
|
76
76
|
}, [
|
|
77
|
-
t.$slots.head ? (l(), r("div",
|
|
78
|
-
i("nav",
|
|
79
|
-
t.$slots.foot ? (l(), r("div",
|
|
77
|
+
t.$slots.head ? (l(), r("div", x, [d(t.$slots, "head", {}, void 0, !0)])) : n("", !0),
|
|
78
|
+
i("nav", S, [d(t.$slots, "default", {}, void 0, !0)]),
|
|
79
|
+
t.$slots.foot ? (l(), r("div", C, [d(t.$slots, "foot", {}, void 0, !0)])) : n("", !0)
|
|
80
80
|
], 6));
|
|
81
81
|
}
|
|
82
|
-
}), [["__scopeId", "data-v-5aa0ef5a"]]),
|
|
82
|
+
}), [["__scopeId", "data-v-5aa0ef5a"]]), T = { class: "mw-footer__start" }, E = { class: "mw-footer__center" }, D = { class: "mw-footer__end" }, O = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
83
83
|
__name: "AppFooter",
|
|
84
84
|
props: {
|
|
85
85
|
variant: { default: "transparent" },
|
|
86
86
|
colors: {}
|
|
87
87
|
},
|
|
88
88
|
setup(e) {
|
|
89
|
-
let n = e, a = t(() =>
|
|
89
|
+
let n = e, a = t(() => h(n.variant, n.colors));
|
|
90
90
|
return (t, n) => (l(), r("footer", {
|
|
91
91
|
class: s(["mw-footer", `mw-footer--${e.variant}`]),
|
|
92
92
|
style: c(a.value)
|
|
93
93
|
}, [
|
|
94
|
-
i("div",
|
|
95
|
-
i("div",
|
|
96
|
-
i("div",
|
|
94
|
+
i("div", T, [d(t.$slots, "start", {}, void 0, !0)]),
|
|
95
|
+
i("div", E, [d(t.$slots, "default", {}, void 0, !0)]),
|
|
96
|
+
i("div", D, [d(t.$slots, "end", {}, void 0, !0)])
|
|
97
97
|
], 6));
|
|
98
98
|
}
|
|
99
|
-
}), [["__scopeId", "data-v-c646b8e1"]]),
|
|
99
|
+
}), [["__scopeId", "data-v-c646b8e1"]]), k = {
|
|
100
100
|
class: "mw-mode",
|
|
101
101
|
role: "group",
|
|
102
102
|
"aria-label": "Colour mode"
|
|
103
|
-
},
|
|
103
|
+
}, A = [
|
|
104
104
|
"aria-pressed",
|
|
105
105
|
"title",
|
|
106
106
|
"onClick"
|
|
107
|
-
],
|
|
107
|
+
], j = { "aria-hidden": "true" }, M = { class: "mw-mode__label" }, N = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
108
108
|
__name: "ColorModeControl",
|
|
109
109
|
props: {
|
|
110
110
|
modelValue: {},
|
|
@@ -125,16 +125,16 @@ var ee = { class: "mw-header__brand" }, y = { class: "mw-header__center" }, b =
|
|
|
125
125
|
dark: "☾",
|
|
126
126
|
system: "◐"
|
|
127
127
|
};
|
|
128
|
-
return (o, c) => (l(), r("div",
|
|
128
|
+
return (o, c) => (l(), r("div", k, [(l(!0), r(e, null, u(t.modes, (e) => (l(), r("button", {
|
|
129
129
|
key: e,
|
|
130
130
|
type: "button",
|
|
131
131
|
class: s(["mw-mode__btn", { "is-active": t.modelValue === e }]),
|
|
132
132
|
"aria-pressed": t.modelValue === e,
|
|
133
133
|
title: n[e],
|
|
134
134
|
onClick: (t) => o.$emit("update:modelValue", e)
|
|
135
|
-
}, [i("span",
|
|
135
|
+
}, [i("span", j, f(a[e]), 1), i("span", M, f(n[e]), 1)], 10, A))), 128))]));
|
|
136
136
|
}
|
|
137
|
-
}), [["__scopeId", "data-v-e4a6bf1d"]]),
|
|
137
|
+
}), [["__scopeId", "data-v-e4a6bf1d"]]), P = ["type", "disabled"], F = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
138
138
|
__name: "UiButton",
|
|
139
139
|
props: {
|
|
140
140
|
variant: { default: "primary" },
|
|
@@ -149,25 +149,25 @@ var ee = { class: "mw-header__brand" }, y = { class: "mw-header__center" }, b =
|
|
|
149
149
|
type: e.type,
|
|
150
150
|
disabled: e.disabled,
|
|
151
151
|
class: s(["mw-btn", `mw-btn--${e.variant}`])
|
|
152
|
-
}, [
|
|
152
|
+
}, [d(t.$slots, "default", {}, void 0, !0)], 10, P));
|
|
153
153
|
}
|
|
154
|
-
}), [["__scopeId", "data-v-299de2c3"]]),
|
|
154
|
+
}), [["__scopeId", "data-v-299de2c3"]]), ie = { class: "mw-card" }, I = {
|
|
155
155
|
key: 0,
|
|
156
156
|
class: "mw-card__header"
|
|
157
|
-
},
|
|
157
|
+
}, L = { class: "mw-card__title" }, R = { class: "mw-card__body" }, z = {
|
|
158
158
|
key: 1,
|
|
159
159
|
class: "mw-card__footer"
|
|
160
|
-
},
|
|
160
|
+
}, B = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
161
161
|
__name: "UiCard",
|
|
162
162
|
props: { title: {} },
|
|
163
163
|
setup(e) {
|
|
164
|
-
return (t, a) => (l(), r("section",
|
|
165
|
-
e.title || t.$slots.header ? (l(), r("header",
|
|
166
|
-
i("div",
|
|
167
|
-
t.$slots.footer ? (l(), r("footer",
|
|
164
|
+
return (t, a) => (l(), r("section", ie, [
|
|
165
|
+
e.title || t.$slots.header ? (l(), r("header", I, [d(t.$slots, "header", {}, () => [i("h3", L, f(e.title), 1)], !0)])) : n("", !0),
|
|
166
|
+
i("div", R, [d(t.$slots, "default", {}, void 0, !0)]),
|
|
167
|
+
t.$slots.footer ? (l(), r("footer", z, [d(t.$slots, "footer", {}, void 0, !0)])) : n("", !0)
|
|
168
168
|
]));
|
|
169
169
|
}
|
|
170
|
-
}), [["__scopeId", "data-v-fd2fd7ab"]]),
|
|
170
|
+
}), [["__scopeId", "data-v-fd2fd7ab"]]), V = { class: "mw-select" }, H = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
171
171
|
inheritAttrs: !1,
|
|
172
172
|
__name: "UiSelect",
|
|
173
173
|
props: {
|
|
@@ -176,8 +176,8 @@ var ee = { class: "mw-header__brand" }, y = { class: "mw-header__center" }, b =
|
|
|
176
176
|
},
|
|
177
177
|
emits: ["update:modelValue"],
|
|
178
178
|
setup(e) {
|
|
179
|
-
let t =
|
|
180
|
-
return (e, n) => (l(), r("div",
|
|
179
|
+
let t = p(e, "modelValue");
|
|
180
|
+
return (e, n) => (l(), r("div", V, [ne(i("select", o(e.$attrs, { "onUpdate:modelValue": n[0] ||= (e) => t.value = e }), [d(e.$slots, "default", {}, void 0, !0)], 16), [[m, t.value]]), n[1] ||= i("svg", {
|
|
181
181
|
class: "mw-select__chevron",
|
|
182
182
|
xmlns: "http://www.w3.org/2000/svg",
|
|
183
183
|
width: "12",
|
|
@@ -186,7 +186,7 @@ var ee = { class: "mw-header__brand" }, y = { class: "mw-header__center" }, b =
|
|
|
186
186
|
"aria-hidden": "true"
|
|
187
187
|
}, [i("path", { d: "M1 1l5 5 5-5" })], -1)]));
|
|
188
188
|
}
|
|
189
|
-
}), [["__scopeId", "data-v-b9468387"]]),
|
|
189
|
+
}), [["__scopeId", "data-v-b9468387"]]), U = ["role"], W = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
190
190
|
__name: "UiNotice",
|
|
191
191
|
props: { type: {} },
|
|
192
192
|
setup(e) {
|
|
@@ -197,46 +197,72 @@ var ee = { class: "mw-header__brand" }, y = { class: "mw-header__center" }, b =
|
|
|
197
197
|
return (t, n) => (l(), r("p", {
|
|
198
198
|
class: s(["mw-notice", e.type && e.type !== "info" ? `mw-notice--${e.type}` : ""]),
|
|
199
199
|
role: i.value
|
|
200
|
-
}, [
|
|
200
|
+
}, [d(t.$slots, "default", {}, void 0, !0)], 10, U));
|
|
201
201
|
}
|
|
202
|
-
}), [["__scopeId", "data-v-6f53d0be"]]),
|
|
203
|
-
|
|
202
|
+
}), [["__scopeId", "data-v-6f53d0be"]]), G = ["disabled", "aria-current"], K = {
|
|
203
|
+
key: 0,
|
|
204
|
+
class: "sidebar-item__icon",
|
|
205
|
+
"aria-hidden": "true"
|
|
206
|
+
}, q = { class: "sidebar-item__label" }, J = /*#__PURE__*/ y(/* @__PURE__ */ a({
|
|
207
|
+
__name: "SidebarItem",
|
|
208
|
+
props: {
|
|
209
|
+
label: {},
|
|
210
|
+
icon: {},
|
|
211
|
+
active: {
|
|
212
|
+
type: Boolean,
|
|
213
|
+
default: !1
|
|
214
|
+
},
|
|
215
|
+
disabled: {
|
|
216
|
+
type: Boolean,
|
|
217
|
+
default: !1
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
setup(e) {
|
|
221
|
+
return (t, a) => (l(), r("button", {
|
|
222
|
+
type: "button",
|
|
223
|
+
class: s(["sidebar-item", { "is-active": e.active }]),
|
|
224
|
+
disabled: e.disabled,
|
|
225
|
+
"aria-current": e.active ? "page" : void 0
|
|
226
|
+
}, [e.icon ? (l(), r("span", K, f(e.icon), 1)) : n("", !0), i("span", q, f(e.label), 1)], 10, G));
|
|
227
|
+
}
|
|
228
|
+
}), [["__scopeId", "data-v-e15afdf7"]]), Y = "mw-color-mode", X = ee("system"), Z = !1;
|
|
229
|
+
function ae() {
|
|
204
230
|
return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
205
231
|
}
|
|
206
232
|
function Q(e) {
|
|
207
|
-
return e === "dark" || e === "system" &&
|
|
233
|
+
return e === "dark" || e === "system" && ae();
|
|
208
234
|
}
|
|
209
235
|
function $(e) {
|
|
210
236
|
typeof document > "u" || document.documentElement.setAttribute("data-theme", Q(e) ? "dark" : "light");
|
|
211
237
|
}
|
|
212
|
-
function
|
|
213
|
-
if (!
|
|
214
|
-
|
|
238
|
+
function oe(e = "system") {
|
|
239
|
+
if (!Z) {
|
|
240
|
+
Z = !0;
|
|
215
241
|
let t = null;
|
|
216
242
|
try {
|
|
217
|
-
t = typeof localStorage < "u" ? localStorage.getItem(
|
|
243
|
+
t = typeof localStorage < "u" ? localStorage.getItem(Y) : null;
|
|
218
244
|
} catch {}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}),
|
|
245
|
+
X.value = t ?? e, $(X.value), typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => {
|
|
246
|
+
X.value === "system" && $("system");
|
|
247
|
+
}), te(X, (e) => {
|
|
222
248
|
$(e);
|
|
223
249
|
try {
|
|
224
|
-
typeof localStorage < "u" && localStorage.setItem(
|
|
250
|
+
typeof localStorage < "u" && localStorage.setItem(Y, e);
|
|
225
251
|
} catch {}
|
|
226
252
|
});
|
|
227
253
|
}
|
|
228
254
|
function t(e) {
|
|
229
|
-
|
|
255
|
+
X.value = e;
|
|
230
256
|
}
|
|
231
257
|
function n() {
|
|
232
|
-
t(
|
|
258
|
+
t(X.value === "light" ? "dark" : X.value === "dark" ? "system" : "light");
|
|
233
259
|
}
|
|
234
260
|
return {
|
|
235
|
-
mode:
|
|
261
|
+
mode: X,
|
|
236
262
|
set: t,
|
|
237
263
|
cycle: n,
|
|
238
|
-
isDark: () => Q(
|
|
264
|
+
isDark: () => Q(X.value)
|
|
239
265
|
};
|
|
240
266
|
}
|
|
241
267
|
//#endregion
|
|
242
|
-
export {
|
|
268
|
+
export { O as AppFooter, b as AppHeader, w as AppSidebar, N as ColorModeControl, J as SidebarItem, F as UiButton, B as UiCard, W as UiNotice, H as UiSelect, oe as useColorMode };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meddleware/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
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
|
"license": "0BSD",
|
|
6
6
|
"type": "module",
|