@gspa/ui 0.1.4 → 0.2.0
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/README.md +17 -0
- package/dist/Button.vue_vue_type_script_setup_true_lang-B3TkBTvG.js +205 -0
- package/dist/Button.vue_vue_type_script_setup_true_lang-DZxttvYH.cjs +1 -0
- package/dist/DataTable.css +1 -0
- package/dist/DataTableToolBar.css +1 -0
- package/dist/FormField.vue_vue_type_script_setup_true_lang-DimMUyA-.js +205 -0
- package/dist/FormField.vue_vue_type_script_setup_true_lang-mEO-VA6R.cjs +1 -0
- package/dist/Header.css +1 -0
- package/dist/Input.vue_vue_type_script_setup_true_lang-C1OQn24h.cjs +1 -0
- package/dist/Input.vue_vue_type_script_setup_true_lang-CpBoY97r.js +137 -0
- package/dist/Loader.css +1 -0
- package/dist/ReminderConfig.css +1 -0
- package/dist/ReusableForm.css +1 -0
- package/dist/Sidebar.css +1 -0
- package/dist/Toast.css +1 -0
- package/dist/components/AccordionItem.cjs +1 -1
- package/dist/components/AccordionItem.js +5 -5
- package/dist/components/Alert.cjs +1 -1
- package/dist/components/Alert.js +71 -66
- package/dist/components/Button.cjs +1 -1
- package/dist/components/Button.js +2 -188
- package/dist/components/DataTable.cjs +1 -1
- package/dist/components/DataTable.js +1 -1
- package/dist/components/DataTableFilters.cjs +1 -1
- package/dist/components/DataTableFilters.js +19 -19
- package/dist/components/DataTableToolBar.cjs +1 -1
- package/dist/components/DataTableToolBar.js +1 -1
- package/dist/components/FormField.cjs +1 -1
- package/dist/components/FormField.js +2 -188
- package/dist/components/GraphFilters.cjs +1 -1
- package/dist/components/GraphFilters.js +29 -29
- package/dist/components/Icon.cjs +1 -1
- package/dist/components/Icon.js +23 -16
- package/dist/components/Input.cjs +1 -1
- package/dist/components/Input.js +2 -164
- package/dist/components/ReusableForm.cjs +1 -1
- package/dist/components/ReusableForm.js +187 -158
- package/dist/components/ThemeConfigurator.cjs +1 -1
- package/dist/components/ThemeConfigurator.js +51 -28
- package/dist/gspa-ui.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +123 -117
- package/dist/layouts/AuthLayout.cjs +1 -1
- package/dist/layouts/AuthLayout.js +110 -112
- package/dist/lib/form-field.cjs +1 -0
- package/dist/lib/form-field.js +4 -0
- package/dist/lib/icon.cjs +1 -0
- package/dist/lib/icon.js +4 -0
- package/dist/lib/theme.cjs +1 -1
- package/dist/lib/theme.js +73 -63
- package/dist/src/components/Alert.vue.d.ts.map +1 -1
- package/dist/src/components/Button.vue.d.ts +127 -29
- package/dist/src/components/Button.vue.d.ts.map +1 -1
- package/dist/src/components/Checkbox.vue.d.ts +2 -2
- package/dist/src/components/DataTable.vue.d.ts +1 -1
- package/dist/src/components/FormField.vue.d.ts +106 -38
- package/dist/src/components/FormField.vue.d.ts.map +1 -1
- package/dist/src/components/Icon.vue.d.ts.map +1 -1
- package/dist/src/components/Input.vue.d.ts +137 -33
- package/dist/src/components/Input.vue.d.ts.map +1 -1
- package/dist/src/components/ReusableForm.vue.d.ts +1 -1
- package/dist/src/components/ReusableForm.vue.d.ts.map +1 -1
- package/dist/src/components/ReusableFormModal.vue.d.ts +1 -1
- package/dist/src/components/Textarea.vue.d.ts +2 -2
- package/dist/src/index.d.ts +9 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/layouts/AuthLayout.vue.d.ts +2 -0
- package/dist/src/layouts/AuthLayout.vue.d.ts.map +1 -1
- package/dist/src/lib/form-field.d.ts +2 -0
- package/dist/src/lib/form-field.d.ts.map +1 -0
- package/dist/src/lib/icon.d.ts +2 -0
- package/dist/src/lib/icon.d.ts.map +1 -0
- package/dist/src/lib/theme.d.ts +4 -0
- package/dist/src/lib/theme.d.ts.map +1 -1
- package/dist/src/types.d.ts +44 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/styles/auth-layout.css +1 -0
- package/dist/styles/button.css +1 -0
- package/dist/styles/form-field.css +1 -0
- package/dist/styles/input.css +1 -0
- package/dist/styles/tokens.css +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -3
- package/dist/src/__tests__/Alert.spec.d.ts +0 -2
- package/dist/src/__tests__/Alert.spec.d.ts.map +0 -1
- package/dist/src/__tests__/App.spec.d.ts +0 -2
- package/dist/src/__tests__/App.spec.d.ts.map +0 -1
- package/dist/src/__tests__/AuthLayout.spec.d.ts +0 -2
- package/dist/src/__tests__/AuthLayout.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Badge.spec.d.ts +0 -2
- package/dist/src/__tests__/Badge.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Button.spec.d.ts +0 -2
- package/dist/src/__tests__/Button.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Card.spec.d.ts +0 -2
- package/dist/src/__tests__/Card.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Checkbox.spec.d.ts +0 -2
- package/dist/src/__tests__/Checkbox.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Dropdown.spec.d.ts +0 -2
- package/dist/src/__tests__/Dropdown.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Input.spec.d.ts +0 -2
- package/dist/src/__tests__/Input.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Modal.spec.d.ts +0 -2
- package/dist/src/__tests__/Modal.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Radio.spec.d.ts +0 -2
- package/dist/src/__tests__/Radio.spec.d.ts.map +0 -1
- package/dist/src/__tests__/ReusableForm.spec.d.ts +0 -2
- package/dist/src/__tests__/ReusableForm.spec.d.ts.map +0 -1
- package/dist/src/__tests__/Tabs.spec.d.ts +0 -2
- package/dist/src/__tests__/Tabs.spec.d.ts.map +0 -1
- package/dist/src/__tests__/integration/CardIntegration.spec.d.ts +0 -2
- package/dist/src/__tests__/integration/CardIntegration.spec.d.ts.map +0 -1
- package/dist/src/__tests__/integration/FormIntegration.spec.d.ts +0 -2
- package/dist/src/__tests__/integration/FormIntegration.spec.d.ts.map +0 -1
- package/dist/src/__tests__/integration/ModalIntegration.spec.d.ts +0 -2
- package/dist/src/__tests__/integration/ModalIntegration.spec.d.ts.map +0 -1
- package/dist/src/__tests__/integration/NavigationIntegration.spec.d.ts +0 -2
- package/dist/src/__tests__/integration/NavigationIntegration.spec.d.ts.map +0 -1
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { computed as
|
|
1
|
+
import { computed as g, getCurrentInstance as k, onMounted as w, onBeforeUnmount as S, createElementBlock as n, openBlock as o, createElementVNode as a, normalizeStyle as N, createBlock as r, createCommentVNode as s, withCtx as u, createTextVNode as c, toDisplayString as l, createVNode as x, renderSlot as m, unref as p, resolveDynamicComponent as I } from "vue";
|
|
2
2
|
import d from "../components/Typography.js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
const L = { class: "relative min-h-screen overflow-hidden" }, $ = { class: "relative z-10 mx-auto flex min-h-screen w-full max-w-[1400px] items-center px-4 py-4 sm:px-8 sm:py-6 lg:px-14" }, _ = { class: "hidden w-full max-w-4xl pr-10 lg:block" }, A = { class: "ml-auto w-full max-w-[460px]" }, E = { class: "overflow-hidden rounded-sm ui-surface" }, U = { class: "px-1 sm:pt-2" }, G = { class: "flex items-start justify-between gap-2" }, T = ["src", "alt"], V = ["src", "alt"], B = { key: 0 }, F = { class: "px-5 py-4 sm:px-6 sm:py-2" }, O = { class: "space-y-4" }, D = {
|
|
3
|
+
import L from "../components/Divider.js";
|
|
4
|
+
const $ = { class: "relative min-h-screen overflow-hidden bg-(--ui-auth-background)" }, V = { class: "relative z-10 mx-auto flex min-h-screen w-full max-w-[1400px] items-center px-4 py-4 sm:px-8 sm:py-6 lg:px-14" }, E = { class: "hidden w-full max-w-4xl pr-10 lg:block" }, U = { class: "ml-auto w-full max-w-[460px]" }, A = { class: "overflow-hidden rounded-sm ui-surface" }, C = { class: "px-1 sm:pt-2" }, G = { class: "flex items-start justify-between gap-2" }, T = ["src", "alt"], B = ["src", "alt"], D = { key: 0 }, F = { class: "px-5 py-4 sm:px-6 sm:py-2" }, O = { class: "space-y-4" }, H = {
|
|
6
5
|
key: 0,
|
|
7
6
|
class: "px-5 pb-4 sm:px-6 sm:pb-5"
|
|
8
|
-
},
|
|
7
|
+
}, M = {
|
|
9
8
|
key: 0,
|
|
10
9
|
class: "text-right"
|
|
11
|
-
},
|
|
10
|
+
}, R = {
|
|
12
11
|
key: 1,
|
|
13
12
|
class: "px-6 pb-6 sm:px-8 sm:pb-8"
|
|
14
|
-
},
|
|
13
|
+
}, Y = {
|
|
15
14
|
__name: "AuthLayout",
|
|
16
15
|
props: {
|
|
17
16
|
title: {
|
|
@@ -64,127 +63,126 @@ const L = { class: "relative min-h-screen overflow-hidden" }, $ = { class: "rela
|
|
|
64
63
|
}
|
|
65
64
|
},
|
|
66
65
|
setup(t) {
|
|
67
|
-
const i = t,
|
|
66
|
+
const i = t, f = g(() => (/* @__PURE__ */ new Date()).getFullYear()), y = k()?.appContext.components.RouterView || null, b = g(() => {
|
|
68
67
|
const e = Number.isFinite(i.backgroundOpacity) ? Math.min(1, Math.max(0, i.backgroundOpacity)) : 1;
|
|
69
68
|
return {
|
|
70
69
|
backgroundImage: i.backgroundImage ? `url(${JSON.stringify(i.backgroundImage)})` : void 0,
|
|
71
70
|
opacity: e
|
|
72
71
|
};
|
|
73
|
-
}),
|
|
72
|
+
}), v = g(() => {
|
|
74
73
|
const e = String(i.appVersion ?? "").trim();
|
|
75
74
|
return e ? e.toLowerCase().startsWith("v") ? e : `v${e}` : "v0.0.0";
|
|
76
75
|
});
|
|
77
|
-
return
|
|
76
|
+
return w(() => {
|
|
78
77
|
document.documentElement.classList.add("auth-page"), document.body.classList.add("auth-page");
|
|
79
|
-
}),
|
|
78
|
+
}), S(() => {
|
|
80
79
|
document.documentElement.classList.remove("auth-page"), document.body.classList.remove("auth-page");
|
|
81
|
-
}), (e,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
80
|
+
}), (e, h) => (o(), n("div", $, [
|
|
81
|
+
a("div", {
|
|
82
|
+
class: "absolute inset-0 bg-cover bg-center",
|
|
83
|
+
style: N(b.value)
|
|
84
|
+
}, null, 4),
|
|
85
|
+
h[0] || (h[0] = a("div", { class: "absolute inset-0 bg-(--ui-auth-background)/20" }, null, -1)),
|
|
86
|
+
a("div", V, [
|
|
87
|
+
a("section", E, [
|
|
88
|
+
t.quote ? (o(), r(d, {
|
|
89
|
+
key: 0,
|
|
90
|
+
variant: "body-xl",
|
|
91
|
+
class: "max-w-3xl text-2xl leading-[1.4] font-light tracking-wide ui-text-inverse opacity-90 xl:text-[38px]"
|
|
92
|
+
}, {
|
|
93
|
+
default: u(() => [
|
|
94
|
+
c(' "' + l(t.quote) + '" ', 1)
|
|
95
|
+
]),
|
|
96
|
+
_: 1
|
|
97
|
+
})) : s("", !0)
|
|
98
|
+
]),
|
|
99
|
+
a("section", U, [
|
|
100
|
+
a("div", A, [
|
|
101
|
+
a("div", C, [
|
|
102
|
+
a("div", G, [
|
|
103
|
+
t.logoUrl ? (o(), n("img", {
|
|
104
|
+
key: 0,
|
|
105
|
+
src: t.logoUrl,
|
|
106
|
+
alt: `${t.appName} logo`,
|
|
107
|
+
class: "h-16 w-auto max-w-[220px] object-contain sm:h-36"
|
|
108
|
+
}, null, 8, T)) : s("", !0),
|
|
109
|
+
t.secondaryLogoUrl ? (o(), n("img", {
|
|
110
|
+
key: 1,
|
|
111
|
+
src: t.secondaryLogoUrl,
|
|
112
|
+
alt: t.secondaryLogoAlt,
|
|
113
|
+
class: "h-8 w-auto object-contain sm:h-32"
|
|
114
|
+
}, null, 8, B)) : s("", !0)
|
|
98
115
|
]),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
116
|
+
e.$slots["card-header"] || t.title ? (o(), n("div", D, [
|
|
117
|
+
m(e.$slots, "card-header", {}, () => [
|
|
118
|
+
x(d, {
|
|
119
|
+
variant: "text-xl",
|
|
120
|
+
align: "center",
|
|
121
|
+
class: "font-normal leading-tight ui-text text-center"
|
|
122
|
+
}, {
|
|
123
|
+
default: u(() => [
|
|
124
|
+
c(l(t.title), 1)
|
|
125
|
+
]),
|
|
126
|
+
_: 1
|
|
127
|
+
}),
|
|
128
|
+
t.subtitle ? (o(), r(d, {
|
|
107
129
|
key: 0,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
class: "h-8 w-auto object-contain sm:h-32"
|
|
117
|
-
}, null, 8, V)) : a("", !0)
|
|
118
|
-
]),
|
|
119
|
-
e.$slots["card-header"] || t.title ? (o(), n("div", B, [
|
|
120
|
-
y(e.$slots, "card-header", {}, () => [
|
|
121
|
-
g(d, {
|
|
122
|
-
variant: "text-xl",
|
|
123
|
-
align: "center",
|
|
124
|
-
class: "font-normal leading-tight text-[#1f2328] text-center"
|
|
125
|
-
}, {
|
|
126
|
-
default: r(() => [
|
|
127
|
-
c(l(t.title), 1)
|
|
128
|
-
]),
|
|
129
|
-
_: 1
|
|
130
|
-
}),
|
|
131
|
-
t.subtitle ? (o(), u(d, {
|
|
132
|
-
key: 0,
|
|
133
|
-
variant: "body-sm",
|
|
134
|
-
class: "mt-1 text-xs leading-normal text-[#5f6a74]"
|
|
135
|
-
}, {
|
|
136
|
-
default: r(() => [
|
|
137
|
-
c(l(t.subtitle), 1)
|
|
138
|
-
]),
|
|
139
|
-
_: 1
|
|
140
|
-
})) : a("", !0)
|
|
141
|
-
], !0)
|
|
142
|
-
])) : a("", !0)
|
|
143
|
-
]),
|
|
144
|
-
g(N, {
|
|
145
|
-
size: "sm",
|
|
146
|
-
class: "my-0 bg-[#c7ccd2]"
|
|
147
|
-
}),
|
|
148
|
-
s("div", F, [
|
|
149
|
-
s("div", O, [
|
|
150
|
-
g(v)
|
|
130
|
+
variant: "body-sm",
|
|
131
|
+
class: "mt-1 text-xs leading-normal ui-text-muted"
|
|
132
|
+
}, {
|
|
133
|
+
default: u(() => [
|
|
134
|
+
c(l(t.subtitle), 1)
|
|
135
|
+
]),
|
|
136
|
+
_: 1
|
|
137
|
+
})) : s("", !0)
|
|
151
138
|
])
|
|
152
|
-
]),
|
|
153
|
-
e.$slots.links || t.showFooter ? (o(), n("div", D, [
|
|
154
|
-
e.$slots.links ? (o(), n("div", H, [
|
|
155
|
-
y(e.$slots, "links", {}, void 0, !0)
|
|
156
|
-
])) : a("", !0),
|
|
157
|
-
t.showFooter ? (o(), u(d, {
|
|
158
|
-
key: 1,
|
|
159
|
-
variant: "body-md",
|
|
160
|
-
class: "mt-2 text-right text-xs font-light leading-none text-[#5f6a74] sm:text-[14px]"
|
|
161
|
-
}, {
|
|
162
|
-
default: r(() => [
|
|
163
|
-
c(l(p.value), 1)
|
|
164
|
-
]),
|
|
165
|
-
_: 1
|
|
166
|
-
})) : a("", !0)
|
|
167
|
-
])) : a("", !0),
|
|
168
|
-
e.$slots["card-footer"] ? (o(), n("div", M, [
|
|
169
|
-
y(e.$slots, "card-footer", {}, void 0, !0)
|
|
170
|
-
])) : a("", !0)
|
|
139
|
+
])) : s("", !0)
|
|
171
140
|
]),
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
141
|
+
x(L, {
|
|
142
|
+
size: "sm",
|
|
143
|
+
class: "my-0 bg-(--ui-border-strong)"
|
|
144
|
+
}),
|
|
145
|
+
a("div", F, [
|
|
146
|
+
a("div", O, [
|
|
147
|
+
m(e.$slots, "default", {}, () => [
|
|
148
|
+
p(y) ? (o(), r(I(p(y)), { key: 0 })) : s("", !0)
|
|
149
|
+
])
|
|
150
|
+
])
|
|
151
|
+
]),
|
|
152
|
+
e.$slots.links || t.showFooter ? (o(), n("div", H, [
|
|
153
|
+
e.$slots.links ? (o(), n("div", M, [
|
|
154
|
+
m(e.$slots, "links")
|
|
155
|
+
])) : s("", !0),
|
|
156
|
+
t.showFooter ? (o(), r(d, {
|
|
157
|
+
key: 1,
|
|
158
|
+
variant: "body-md",
|
|
159
|
+
class: "mt-2 text-right text-xs font-light leading-none ui-text-muted sm:text-[14px]"
|
|
160
|
+
}, {
|
|
161
|
+
default: u(() => [
|
|
162
|
+
c(l(v.value), 1)
|
|
163
|
+
]),
|
|
164
|
+
_: 1
|
|
165
|
+
})) : s("", !0)
|
|
166
|
+
])) : s("", !0),
|
|
167
|
+
e.$slots["card-footer"] ? (o(), n("div", R, [
|
|
168
|
+
m(e.$slots, "card-footer")
|
|
169
|
+
])) : s("", !0)
|
|
170
|
+
]),
|
|
171
|
+
t.showFooter && t.copyright ? (o(), r(d, {
|
|
172
|
+
key: 0,
|
|
173
|
+
variant: "body-md",
|
|
174
|
+
class: "mt-3 text-center text-sm font-light leading-none ui-text-inverse sm:text-[16px]"
|
|
175
|
+
}, {
|
|
176
|
+
default: u(() => [
|
|
177
|
+
c(" © " + l(t.copyright) + " " + l(f.value), 1)
|
|
178
|
+
]),
|
|
179
|
+
_: 1
|
|
180
|
+
})) : s("", !0)
|
|
183
181
|
])
|
|
184
|
-
])
|
|
185
|
-
|
|
182
|
+
])
|
|
183
|
+
]));
|
|
186
184
|
}
|
|
187
|
-
}
|
|
185
|
+
};
|
|
188
186
|
export {
|
|
189
187
|
Y as default
|
|
190
188
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Symbol("gspaFormFieldContext");exports.FORM_FIELD_CONTEXT_KEY=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Symbol("gspaIconAdapter");exports.ICON_ADAPTER_KEY=e;
|
package/dist/lib/icon.js
ADDED
package/dist/lib/theme.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _="ui-mode",E="ui-theme",R="academy",f=()=>typeof document<"u",x=e=>{f()&&document.documentElement.setAttribute("data-mode",e)},w=()=>f()?document.documentElement.getAttribute("data-mode"):null,H=(e,n,t)=>Math.min(t,Math.max(n,e)),d=(e,n="#173866")=>{if(!e)return n;let t=String(e).trim().replace("#","");return t.length===3&&(t=t.split("").map(r=>r+r).join("")),/^[0-9a-fA-F]{6}$/.test(t)?`#${t.toLowerCase()}`:n},h=e=>{const t=d(e).slice(1);return{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16)}},$=({r:e,g:n,b:t})=>{const r=o=>H(Math.round(o),0,255).toString(16).padStart(2,"0");return`#${r(e)}${r(n)}${r(t)}`},s=(e,n,t=.5)=>{const r=H(t,0,1),o=h(e),i=h(n);return $({r:o.r*(1-r)+i.r*r,g:o.g*(1-r)+i.g*r,b:o.b*(1-r)+i.b*r})},b=e=>{const{r:n,g:t,b:r}=h(e);return(.2126*n+.7152*t+.0722*r)/255>.62?"#111111":"#ffffff"},k=[{key:"academy",name:"Security Academy",light:{primary:"#173866",secondary:["#b98218","#14745d","#a96008"]},dark:{primary:"#e2b84e",secondary:["#8db0e1","#65c7a5","#efb45f"]}},{key:"ocean",name:"Ocean Blue",light:{primary:"#1d4ed8",secondary:["#0ea5e9","#22c55e","#f59e0b"]},dark:{primary:"#2ccad3",secondary:["#39d9df","#2fa6ff","#1fc8b3"]}},{key:"forest",name:"Forest Green",light:{primary:"#0f766e",secondary:["#14b8a6","#6366f1","#f97316"]},dark:{primary:"#22c7bc",secondary:["#2fded1","#2fa6ff","#1ea8c2"]}},{key:"violet",name:"Royal Violet",light:{primary:"#7c3aed",secondary:["#a855f7","#3b82f6","#ef4444"]},dark:{primary:"#3bc8f0",secondary:["#59d6ff","#29c5d8","#1da1be"]}},{key:"sunset",name:"Sunset",light:{primary:"#ea580c",secondary:["#fb7185","#f59e0b","#8b5cf6"]},dark:{primary:"#36cfd1",secondary:["#58dcde","#2fb7ff","#21c4a1"]}},{key:"graphite",name:"Graphite",light:{primary:"#334155",secondary:["#64748b","#0ea5e9","#22c55e"]},dark:{primary:"#2fb6d7",secondary:["#5fd8ea","#2da5e9","#22c4b5"]}}],I=e=>{const n=String(e||R);return k.find(t=>t.key===n)||k[0]},S=(e={})=>{const n=w()||"light",t=I(e.preset||e.theme_preset),r=n==="dark"?t.dark:t.light,o=!!(e.preset||e.theme_preset),i=!!(e.use_custom||e.useCustom),u=o&&!i,c=d(u?r.primary:e.primary||e.primary_color||r.primary,"#173866"),T=u?r.secondary:Array.isArray(e.secondary)?e.secondary:[e.secondary_1||r.secondary[0],e.secondary_2||r.secondary[1],e.secondary_3||r.secondary[2]],y=d(T?.[0],"#b98218"),m=d(T?.[1],"#14745d"),l=d(T?.[2],"#a96008"),a=n==="dark",g=a?"#ffffff":"#000000",p=a?"#07152a":"#ffffff",B=a?.72:.86,O=a?s(c,"#0a1b33",.94):"#ffffff",C=a?s(c,"#09192f",.94):"#edf2f8",K=a?s(c,"#122744",.94):"#e4ebf4";return{"--ui-primary":c,"--ui-primary-strong":s(c,g,.14),"--ui-primary-soft":s(c,p,B),"--ui-primary-contrast":b(c),"--ui-accent":y,"--ui-accent-strong":s(y,g,.14),"--ui-accent-soft":s(y,p,a?.72:.84),"--ui-accent-contrast":b(y),"--ui-success":m,"--ui-success-strong":s(m,g,.1),"--ui-success-soft":s(m,p,a?.72:.84),"--ui-success-contrast":b(m),"--ui-warning":l,"--ui-warning-strong":s(l,g,.1),"--ui-warning-soft":s(l,p,a?.72:.84),"--ui-warning-contrast":b(l),"--ui-ring":s(c,"#ffffff",.28),"--ui-text-inverse":"#ffffff","--ui-header-bg":O,"--ui-sidebar-bg":C,"--ui-submenu-bg":K}},M=()=>{if(!f())return null;const e=localStorage.getItem(E);if(!e)return null;try{return JSON.parse(e)}catch{return null}},A=()=>{if(!f())return;const e=document.documentElement;Object.keys(S({})).forEach(t=>e.style.removeProperty(t)),localStorage.removeItem(E)},P=(e,n={})=>{if(!f())return;const{persist:t=!0}=n;if(!e){A();return}const r=S(e),o=document.documentElement;Object.entries(r).forEach(([i,u])=>{o.style.setProperty(i,u)}),t&&localStorage.setItem(E,JSON.stringify(e))},j=e=>{if(e&&(x(e),f())){localStorage.setItem(_,e);const n=M();n&&P(n,{persist:!1})}},v=(e={})=>{if(!f())return;const{defaultMode:n="light"}=e,t=localStorage.getItem(_);x(t||n);const r=M();r&&P(r,{persist:!1})};exports.THEME_PRESETS=k;exports.buildThemeTokens=S;exports.clearTheme=A;exports.getMode=w;exports.getTheme=M;exports.getThemePreset=I;exports.initTheme=v;exports.setMode=j;exports.setTheme=P;
|
package/dist/lib/theme.js
CHANGED
|
@@ -1,30 +1,36 @@
|
|
|
1
|
-
const
|
|
1
|
+
const S = "ui-mode", E = "ui-theme", O = "academy", f = () => typeof document < "u", x = (e) => {
|
|
2
2
|
f() && document.documentElement.setAttribute("data-mode", e);
|
|
3
|
-
},
|
|
3
|
+
}, C = () => f() ? document.documentElement.getAttribute("data-mode") : null, M = (e, n, t) => Math.min(t, Math.max(n, e)), d = (e, n = "#173866") => {
|
|
4
4
|
if (!e) return n;
|
|
5
5
|
let t = String(e).trim().replace("#", "");
|
|
6
6
|
return t.length === 3 && (t = t.split("").map((r) => r + r).join("")), /^[0-9a-fA-F]{6}$/.test(t) ? `#${t.toLowerCase()}` : n;
|
|
7
|
-
},
|
|
8
|
-
const t =
|
|
7
|
+
}, h = (e) => {
|
|
8
|
+
const t = d(e).slice(1);
|
|
9
9
|
return {
|
|
10
10
|
r: parseInt(t.slice(0, 2), 16),
|
|
11
11
|
g: parseInt(t.slice(2, 4), 16),
|
|
12
12
|
b: parseInt(t.slice(4, 6), 16)
|
|
13
13
|
};
|
|
14
|
-
},
|
|
15
|
-
const r = (o) =>
|
|
14
|
+
}, K = ({ r: e, g: n, b: t }) => {
|
|
15
|
+
const r = (o) => M(Math.round(o), 0, 255).toString(16).padStart(2, "0");
|
|
16
16
|
return `#${r(e)}${r(n)}${r(t)}`;
|
|
17
17
|
}, s = (e, n, t = 0.5) => {
|
|
18
|
-
const r =
|
|
19
|
-
return
|
|
20
|
-
r: o.r * (1 - r) +
|
|
21
|
-
g: o.g * (1 - r) +
|
|
22
|
-
b: o.b * (1 - r) +
|
|
18
|
+
const r = M(t, 0, 1), o = h(e), i = h(n);
|
|
19
|
+
return K({
|
|
20
|
+
r: o.r * (1 - r) + i.r * r,
|
|
21
|
+
g: o.g * (1 - r) + i.g * r,
|
|
22
|
+
b: o.b * (1 - r) + i.b * r
|
|
23
23
|
});
|
|
24
|
-
},
|
|
25
|
-
const { r: n, g: t, b: r } =
|
|
24
|
+
}, b = (e) => {
|
|
25
|
+
const { r: n, g: t, b: r } = h(e);
|
|
26
26
|
return (0.2126 * n + 0.7152 * t + 0.0722 * r) / 255 > 0.62 ? "#111111" : "#ffffff";
|
|
27
|
-
},
|
|
27
|
+
}, T = [
|
|
28
|
+
{
|
|
29
|
+
key: "academy",
|
|
30
|
+
name: "Security Academy",
|
|
31
|
+
light: { primary: "#173866", secondary: ["#b98218", "#14745d", "#a96008"] },
|
|
32
|
+
dark: { primary: "#e2b84e", secondary: ["#8db0e1", "#65c7a5", "#efb45f"] }
|
|
33
|
+
},
|
|
28
34
|
{
|
|
29
35
|
key: "ocean",
|
|
30
36
|
name: "Ocean Blue",
|
|
@@ -55,81 +61,85 @@ const h = "ui-mode", b = "ui-theme", w = "ocean", f = () => typeof document < "u
|
|
|
55
61
|
light: { primary: "#334155", secondary: ["#64748b", "#0ea5e9", "#22c55e"] },
|
|
56
62
|
dark: { primary: "#2fb6d7", secondary: ["#5fd8ea", "#2da5e9", "#22c4b5"] }
|
|
57
63
|
}
|
|
58
|
-
],
|
|
59
|
-
const n = String(e ||
|
|
60
|
-
return
|
|
61
|
-
},
|
|
62
|
-
const n =
|
|
64
|
+
], $ = (e) => {
|
|
65
|
+
const n = String(e || O);
|
|
66
|
+
return T.find((t) => t.key === n) || T[0];
|
|
67
|
+
}, _ = (e = {}) => {
|
|
68
|
+
const n = C() || "light", t = $(e.preset || e.theme_preset), r = n === "dark" ? t.dark : t.light, o = !!(e.preset || e.theme_preset), i = !!(e.use_custom || e.useCustom), u = o && !i, c = d(u ? r.primary : e.primary || e.primary_color || r.primary, "#173866"), k = u ? r.secondary : Array.isArray(e.secondary) ? e.secondary : [
|
|
63
69
|
e.secondary_1 || r.secondary[0],
|
|
64
70
|
e.secondary_2 || r.secondary[1],
|
|
65
71
|
e.secondary_3 || r.secondary[2]
|
|
66
|
-
], y =
|
|
72
|
+
], y = d(k?.[0], "#b98218"), m = d(k?.[1], "#14745d"), l = d(k?.[2], "#a96008"), a = n === "dark", g = a ? "#ffffff" : "#000000", p = a ? "#07152a" : "#ffffff", I = a ? 0.72 : 0.86, A = a ? s(c, "#0a1b33", 0.94) : "#ffffff", B = a ? s(c, "#09192f", 0.94) : "#edf2f8", H = a ? s(c, "#122744", 0.94) : "#e4ebf4";
|
|
67
73
|
return {
|
|
68
74
|
"--ui-primary": c,
|
|
69
|
-
"--ui-primary-strong": s(c,
|
|
70
|
-
"--ui-primary-soft": s(c,
|
|
75
|
+
"--ui-primary-strong": s(c, g, 0.14),
|
|
76
|
+
"--ui-primary-soft": s(c, p, I),
|
|
77
|
+
"--ui-primary-contrast": b(c),
|
|
71
78
|
"--ui-accent": y,
|
|
72
|
-
"--ui-accent-strong": s(y,
|
|
73
|
-
"--ui-accent-soft": s(y,
|
|
74
|
-
"--ui-
|
|
75
|
-
"--ui-success
|
|
76
|
-
"--ui-success-
|
|
77
|
-
"--ui-
|
|
78
|
-
"--ui-
|
|
79
|
-
"--ui-warning
|
|
79
|
+
"--ui-accent-strong": s(y, g, 0.14),
|
|
80
|
+
"--ui-accent-soft": s(y, p, a ? 0.72 : 0.84),
|
|
81
|
+
"--ui-accent-contrast": b(y),
|
|
82
|
+
"--ui-success": m,
|
|
83
|
+
"--ui-success-strong": s(m, g, 0.1),
|
|
84
|
+
"--ui-success-soft": s(m, p, a ? 0.72 : 0.84),
|
|
85
|
+
"--ui-success-contrast": b(m),
|
|
86
|
+
"--ui-warning": l,
|
|
87
|
+
"--ui-warning-strong": s(l, g, 0.1),
|
|
88
|
+
"--ui-warning-soft": s(l, p, a ? 0.72 : 0.84),
|
|
89
|
+
"--ui-warning-contrast": b(l),
|
|
80
90
|
"--ui-ring": s(c, "#ffffff", 0.28),
|
|
81
|
-
"--ui-text-inverse":
|
|
82
|
-
"--ui-header-bg":
|
|
83
|
-
"--ui-sidebar-bg":
|
|
84
|
-
"--ui-submenu-bg":
|
|
91
|
+
"--ui-text-inverse": "#ffffff",
|
|
92
|
+
"--ui-header-bg": A,
|
|
93
|
+
"--ui-sidebar-bg": B,
|
|
94
|
+
"--ui-submenu-bg": H
|
|
85
95
|
};
|
|
86
|
-
},
|
|
96
|
+
}, P = () => {
|
|
87
97
|
if (!f()) return null;
|
|
88
|
-
const e = localStorage.getItem(
|
|
98
|
+
const e = localStorage.getItem(E);
|
|
89
99
|
if (!e) return null;
|
|
90
100
|
try {
|
|
91
101
|
return JSON.parse(e);
|
|
92
102
|
} catch {
|
|
93
103
|
return null;
|
|
94
104
|
}
|
|
95
|
-
},
|
|
105
|
+
}, F = () => {
|
|
96
106
|
if (!f()) return;
|
|
97
107
|
const e = document.documentElement;
|
|
98
|
-
Object.keys(
|
|
99
|
-
},
|
|
108
|
+
Object.keys(_({})).forEach((t) => e.style.removeProperty(t)), localStorage.removeItem(E);
|
|
109
|
+
}, w = (e, n = {}) => {
|
|
100
110
|
if (!f()) return;
|
|
101
111
|
const { persist: t = !0 } = n;
|
|
102
112
|
if (!e) {
|
|
103
|
-
|
|
113
|
+
F();
|
|
104
114
|
return;
|
|
105
115
|
}
|
|
106
|
-
const r =
|
|
107
|
-
Object.entries(r).forEach(([
|
|
108
|
-
o.style.setProperty(
|
|
109
|
-
}), t && localStorage.setItem(
|
|
110
|
-
},
|
|
111
|
-
if (e && (
|
|
112
|
-
localStorage.setItem(
|
|
113
|
-
const n =
|
|
114
|
-
n &&
|
|
116
|
+
const r = _(e), o = document.documentElement;
|
|
117
|
+
Object.entries(r).forEach(([i, u]) => {
|
|
118
|
+
o.style.setProperty(i, u);
|
|
119
|
+
}), t && localStorage.setItem(E, JSON.stringify(e));
|
|
120
|
+
}, R = (e) => {
|
|
121
|
+
if (e && (x(e), f())) {
|
|
122
|
+
localStorage.setItem(S, e);
|
|
123
|
+
const n = P();
|
|
124
|
+
n && w(n, { persist: !1 });
|
|
115
125
|
}
|
|
116
|
-
},
|
|
126
|
+
}, j = (e = {}) => {
|
|
117
127
|
if (!f()) return;
|
|
118
128
|
const {
|
|
119
129
|
defaultMode: n = "light"
|
|
120
|
-
} = e, t = localStorage.getItem(
|
|
121
|
-
|
|
122
|
-
const r =
|
|
123
|
-
r &&
|
|
130
|
+
} = e, t = localStorage.getItem(S);
|
|
131
|
+
x(t || n);
|
|
132
|
+
const r = P();
|
|
133
|
+
r && w(r, { persist: !1 });
|
|
124
134
|
};
|
|
125
135
|
export {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
136
|
+
T as THEME_PRESETS,
|
|
137
|
+
_ as buildThemeTokens,
|
|
138
|
+
F as clearTheme,
|
|
139
|
+
C as getMode,
|
|
140
|
+
P as getTheme,
|
|
141
|
+
$ as getThemePreset,
|
|
142
|
+
j as initTheme,
|
|
143
|
+
R as setMode,
|
|
144
|
+
w as setTheme
|
|
135
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Alert.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Alert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Alert.vue"],"names":[],"mappings":"wBA8pBqB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;;qBAEpD,CAAC,EAAE,CAAC;;;AATzB;WAIkB,OAAO,IAAI;YADV,OAAO,CAAC,OAAO,KAAK,CAAC;;;;;;;;;2OAGrC;;;;;;AAtXH,0EAA+C;AAlB/C;;;;;;;;;EAgBE"}
|