@gspa/ui 0.1.4 → 0.3.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.
Files changed (124) hide show
  1. package/README.md +34 -1
  2. package/dist/Button.vue_vue_type_script_setup_true_lang-B3TkBTvG.js +205 -0
  3. package/dist/Button.vue_vue_type_script_setup_true_lang-DZxttvYH.cjs +1 -0
  4. package/dist/DataTable.css +1 -0
  5. package/dist/DataTableToolBar.css +1 -0
  6. package/dist/DatePicker.vue_vue_type_script_setup_true_lang-CIKiZaO1.cjs +1 -0
  7. package/dist/DatePicker.vue_vue_type_script_setup_true_lang-Dx_9f8DO.js +557 -0
  8. package/dist/FormField.vue_vue_type_script_setup_true_lang-BljDj5YZ.js +205 -0
  9. package/dist/FormField.vue_vue_type_script_setup_true_lang-FWitIR3U.cjs +1 -0
  10. package/dist/Header.css +1 -0
  11. package/dist/Input.vue_vue_type_script_setup_true_lang-C1OQn24h.cjs +1 -0
  12. package/dist/Input.vue_vue_type_script_setup_true_lang-CpBoY97r.js +137 -0
  13. package/dist/Loader.css +1 -0
  14. package/dist/ReminderConfig.css +1 -0
  15. package/dist/ReusableForm.css +1 -0
  16. package/dist/Sidebar.css +1 -0
  17. package/dist/Toast.css +1 -0
  18. package/dist/components/AccordionItem.cjs +1 -1
  19. package/dist/components/AccordionItem.js +5 -5
  20. package/dist/components/Alert.cjs +1 -1
  21. package/dist/components/Alert.js +71 -66
  22. package/dist/components/Button.cjs +1 -1
  23. package/dist/components/Button.js +2 -188
  24. package/dist/components/DataTable.cjs +1 -1
  25. package/dist/components/DataTable.js +1 -1
  26. package/dist/components/DataTableFilters.cjs +1 -1
  27. package/dist/components/DataTableFilters.js +19 -19
  28. package/dist/components/DataTableToolBar.cjs +1 -1
  29. package/dist/components/DataTableToolBar.js +1 -1
  30. package/dist/components/DatePicker.cjs +1 -1
  31. package/dist/components/DatePicker.js +2 -399
  32. package/dist/components/FormField.cjs +1 -1
  33. package/dist/components/FormField.js +2 -188
  34. package/dist/components/GraphFilters.cjs +1 -1
  35. package/dist/components/GraphFilters.js +29 -29
  36. package/dist/components/Icon.cjs +1 -1
  37. package/dist/components/Icon.js +23 -16
  38. package/dist/components/Input.cjs +1 -1
  39. package/dist/components/Input.js +2 -164
  40. package/dist/components/ReusableForm.cjs +1 -1
  41. package/dist/components/ReusableForm.js +188 -159
  42. package/dist/components/ThemeConfigurator.cjs +1 -1
  43. package/dist/components/ThemeConfigurator.js +51 -28
  44. package/dist/gspa-ui.css +1 -1
  45. package/dist/index.cjs +1 -1
  46. package/dist/index.esm.js +124 -118
  47. package/dist/layouts/AuthLayout.cjs +1 -1
  48. package/dist/layouts/AuthLayout.js +110 -112
  49. package/dist/lib/form-field.cjs +1 -0
  50. package/dist/lib/form-field.js +4 -0
  51. package/dist/lib/icon.cjs +1 -0
  52. package/dist/lib/icon.js +4 -0
  53. package/dist/lib/theme.cjs +1 -1
  54. package/dist/lib/theme.js +73 -63
  55. package/dist/src/components/Alert.vue.d.ts.map +1 -1
  56. package/dist/src/components/Button.vue.d.ts +127 -29
  57. package/dist/src/components/Button.vue.d.ts.map +1 -1
  58. package/dist/src/components/Calendar.vue.d.ts +4 -4
  59. package/dist/src/components/Checkbox.vue.d.ts +2 -2
  60. package/dist/src/components/DataTable.vue.d.ts +1 -1
  61. package/dist/src/components/DatePicker.vue.d.ts +139 -29
  62. package/dist/src/components/DatePicker.vue.d.ts.map +1 -1
  63. package/dist/src/components/FormField.vue.d.ts +106 -38
  64. package/dist/src/components/FormField.vue.d.ts.map +1 -1
  65. package/dist/src/components/Icon.vue.d.ts.map +1 -1
  66. package/dist/src/components/Input.vue.d.ts +137 -33
  67. package/dist/src/components/Input.vue.d.ts.map +1 -1
  68. package/dist/src/components/ReusableForm.vue.d.ts +1 -1
  69. package/dist/src/components/ReusableForm.vue.d.ts.map +1 -1
  70. package/dist/src/components/ReusableFormModal.vue.d.ts +1 -1
  71. package/dist/src/components/Textarea.vue.d.ts +2 -2
  72. package/dist/src/index.d.ts +9 -4
  73. package/dist/src/index.d.ts.map +1 -1
  74. package/dist/src/layouts/AuthLayout.vue.d.ts +2 -0
  75. package/dist/src/layouts/AuthLayout.vue.d.ts.map +1 -1
  76. package/dist/src/lib/form-field.d.ts +2 -0
  77. package/dist/src/lib/form-field.d.ts.map +1 -0
  78. package/dist/src/lib/icon.d.ts +2 -0
  79. package/dist/src/lib/icon.d.ts.map +1 -0
  80. package/dist/src/lib/theme.d.ts +4 -0
  81. package/dist/src/lib/theme.d.ts.map +1 -1
  82. package/dist/src/types.d.ts +47 -0
  83. package/dist/src/types.d.ts.map +1 -0
  84. package/dist/styles/auth-layout.css +1 -0
  85. package/dist/styles/button.css +1 -0
  86. package/dist/styles/form-field.css +1 -0
  87. package/dist/styles/input.css +1 -0
  88. package/dist/styles/tokens.css +1 -0
  89. package/dist/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +10 -3
  91. package/dist/src/__tests__/Alert.spec.d.ts +0 -2
  92. package/dist/src/__tests__/Alert.spec.d.ts.map +0 -1
  93. package/dist/src/__tests__/App.spec.d.ts +0 -2
  94. package/dist/src/__tests__/App.spec.d.ts.map +0 -1
  95. package/dist/src/__tests__/AuthLayout.spec.d.ts +0 -2
  96. package/dist/src/__tests__/AuthLayout.spec.d.ts.map +0 -1
  97. package/dist/src/__tests__/Badge.spec.d.ts +0 -2
  98. package/dist/src/__tests__/Badge.spec.d.ts.map +0 -1
  99. package/dist/src/__tests__/Button.spec.d.ts +0 -2
  100. package/dist/src/__tests__/Button.spec.d.ts.map +0 -1
  101. package/dist/src/__tests__/Card.spec.d.ts +0 -2
  102. package/dist/src/__tests__/Card.spec.d.ts.map +0 -1
  103. package/dist/src/__tests__/Checkbox.spec.d.ts +0 -2
  104. package/dist/src/__tests__/Checkbox.spec.d.ts.map +0 -1
  105. package/dist/src/__tests__/Dropdown.spec.d.ts +0 -2
  106. package/dist/src/__tests__/Dropdown.spec.d.ts.map +0 -1
  107. package/dist/src/__tests__/Input.spec.d.ts +0 -2
  108. package/dist/src/__tests__/Input.spec.d.ts.map +0 -1
  109. package/dist/src/__tests__/Modal.spec.d.ts +0 -2
  110. package/dist/src/__tests__/Modal.spec.d.ts.map +0 -1
  111. package/dist/src/__tests__/Radio.spec.d.ts +0 -2
  112. package/dist/src/__tests__/Radio.spec.d.ts.map +0 -1
  113. package/dist/src/__tests__/ReusableForm.spec.d.ts +0 -2
  114. package/dist/src/__tests__/ReusableForm.spec.d.ts.map +0 -1
  115. package/dist/src/__tests__/Tabs.spec.d.ts +0 -2
  116. package/dist/src/__tests__/Tabs.spec.d.ts.map +0 -1
  117. package/dist/src/__tests__/integration/CardIntegration.spec.d.ts +0 -2
  118. package/dist/src/__tests__/integration/CardIntegration.spec.d.ts.map +0 -1
  119. package/dist/src/__tests__/integration/FormIntegration.spec.d.ts +0 -2
  120. package/dist/src/__tests__/integration/FormIntegration.spec.d.ts.map +0 -1
  121. package/dist/src/__tests__/integration/ModalIntegration.spec.d.ts +0 -2
  122. package/dist/src/__tests__/integration/ModalIntegration.spec.d.ts.map +0 -1
  123. package/dist/src/__tests__/integration/NavigationIntegration.spec.d.ts +0 -2
  124. package/dist/src/__tests__/integration/NavigationIntegration.spec.d.ts.map +0 -1
@@ -1,17 +1,16 @@
1
- import { computed as m, onMounted as b, onBeforeUnmount as k, resolveComponent as w, createElementBlock as n, openBlock as o, createElementVNode as s, normalizeStyle as S, createBlock as u, createCommentVNode as a, withCtx as r, createTextVNode as c, toDisplayString as l, createVNode as g, renderSlot as y } from "vue";
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 N from "../components/Divider.js";
4
- import { _ as I } from "../_plugin-vue_export-helper-CHgC5LLL.js";
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
- }, H = {
7
+ }, M = {
9
8
  key: 0,
10
9
  class: "text-right"
11
- }, M = {
10
+ }, R = {
12
11
  key: 1,
13
12
  class: "px-6 pb-6 sm:px-8 sm:pb-8"
14
- }, C = {
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, h = m(() => (/* @__PURE__ */ new Date()).getFullYear()), x = m(() => {
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
- }), p = m(() => {
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 b(() => {
76
+ return w(() => {
78
77
  document.documentElement.classList.add("auth-page"), document.body.classList.add("auth-page");
79
- }), k(() => {
78
+ }), S(() => {
80
79
  document.documentElement.classList.remove("auth-page"), document.body.classList.remove("auth-page");
81
- }), (e, f) => {
82
- const v = w("router-view");
83
- return o(), n("div", L, [
84
- s("div", {
85
- class: "absolute inset-0 bg-cover bg-center",
86
- style: S(x.value)
87
- }, null, 4),
88
- f[0] || (f[0] = s("div", { class: "absolute inset-0" }, null, -1)),
89
- s("div", $, [
90
- s("section", _, [
91
- t.quote ? (o(), u(d, {
92
- key: 0,
93
- variant: "body-xl",
94
- class: "max-w-3xl text-2xl leading-[1.4] font-light tracking-wide text-white/90 xl:text-[38px]"
95
- }, {
96
- default: r(() => [
97
- c(' "' + l(t.quote) + '" ', 1)
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
- _: 1
100
- })) : a("", !0)
101
- ]),
102
- s("section", A, [
103
- s("div", E, [
104
- s("div", U, [
105
- s("div", G, [
106
- t.logoUrl ? (o(), n("img", {
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
- src: t.logoUrl,
109
- alt: `${t.appName} logo`,
110
- class: "h-16 w-auto max-w-[220px] object-contain sm:h-36"
111
- }, null, 8, T)) : a("", !0),
112
- t.secondaryLogoUrl ? (o(), n("img", {
113
- key: 1,
114
- src: t.secondaryLogoUrl,
115
- alt: t.secondaryLogoAlt,
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
- t.showFooter && t.copyright ? (o(), u(d, {
173
- key: 0,
174
- variant: "body-md",
175
- class: "mt-3 text-center text-sm font-light leading-none text-white sm:text-[16px]"
176
- }, {
177
- default: r(() => [
178
- c(" © " + l(t.copyright) + " " + l(h.value), 1)
179
- ]),
180
- _: 1
181
- })) : a("", !0)
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
- }, Y = /* @__PURE__ */ I(C, [["__scopeId", "data-v-909fd474"]]);
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,4 @@
1
+ const o = Symbol("gspaFormFieldContext");
2
+ export {
3
+ o as FORM_FIELD_CONTEXT_KEY
4
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Symbol("gspaIconAdapter");exports.ICON_ADAPTER_KEY=e;
@@ -0,0 +1,4 @@
1
+ const o = Symbol("gspaIconAdapter");
2
+ export {
3
+ o as ICON_ADAPTER_KEY
4
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S="ui-mode",T="ui-theme",O="ocean",f=()=>typeof document<"u",M=e=>{f()&&document.documentElement.setAttribute("data-mode",e)},P=()=>f()?document.documentElement.getAttribute("data-mode"):null,_=(e,n,t)=>Math.min(t,Math.max(n,e)),i=(e,n="#0070f3")=>{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},p=e=>{const t=i(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)}},A=({r:e,g:n,b:t})=>{const r=o=>_(Math.round(o),0,255).toString(16).padStart(2,"0");return`#${r(e)}${r(n)}${r(t)}`},s=(e,n,t=.5)=>{const r=_(t,0,1),o=p(e),a=p(n);return A({r:o.r*(1-r)+a.r*r,g:o.g*(1-r)+a.g*r,b:o.b*(1-r)+a.b*r})},C=e=>{const{r:n,g:t,b:r}=p(e);return(.2126*n+.7152*t+.0722*r)/255>.62?"#111111":"#ffffff"},b=[{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"]}}],x=e=>{const n=String(e||O);return b.find(t=>t.key===n)||b[0]},h=(e={})=>{const n=P()||"light",t=x(e.preset||e.theme_preset),r=n==="dark"?t.dark:t.light,o=!!(e.preset||e.theme_preset),a=!!(e.use_custom||e.useCustom),d=o&&!a,c=i(d?r.primary:e.primary||e.primary_color||r.primary,"#0070f3"),u=d?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]],l=i(u?.[0],"#14b8a6"),y=i(u?.[1],"#f97316"),m=i(u?.[2],"#8b5cf6"),g=n==="dark",I=g?s(c,"#042438",.92):"#ffffff",w=g?s(c,"#031f31",.9):"#ffffff",B=g?s(c,"#03283e",.9):"#ffffff";return{"--ui-primary":c,"--ui-primary-strong":s(c,"#000000",.14),"--ui-primary-soft":s(c,"#ffffff",.86),"--ui-accent":l,"--ui-accent-strong":s(l,"#000000",.14),"--ui-accent-soft":s(l,"#ffffff",.84),"--ui-success":y,"--ui-success-strong":s(y,"#000000",.1),"--ui-success-soft":s(y,"#ffffff",.84),"--ui-warning":m,"--ui-warning-strong":s(m,"#000000",.1),"--ui-warning-soft":s(m,"#ffffff",.84),"--ui-ring":s(c,"#ffffff",.28),"--ui-text-inverse":C(c),"--ui-header-bg":I,"--ui-sidebar-bg":w,"--ui-submenu-bg":B}},E=()=>{if(!f())return null;const e=localStorage.getItem(T);if(!e)return null;try{return JSON.parse(e)}catch{return null}},H=()=>{if(!f())return;const e=document.documentElement;Object.keys(h({})).forEach(t=>e.style.removeProperty(t)),localStorage.removeItem(T)},k=(e,n={})=>{if(!f())return;const{persist:t=!0}=n;if(!e){H();return}const r=h(e),o=document.documentElement;Object.entries(r).forEach(([a,d])=>{o.style.setProperty(a,d)}),t&&localStorage.setItem(T,JSON.stringify(e))},K=e=>{if(e&&(M(e),f())){localStorage.setItem(S,e);const n=E();n&&k(n,{persist:!1})}},R=(e={})=>{if(!f())return;const{defaultMode:n="light"}=e,t=localStorage.getItem(S);M(t||n);const r=E();r&&k(r,{persist:!1})};exports.THEME_PRESETS=b;exports.buildThemeTokens=h;exports.clearTheme=H;exports.getMode=P;exports.getTheme=E;exports.getThemePreset=x;exports.initTheme=R;exports.setMode=K;exports.setTheme=k;
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 h = "ui-mode", b = "ui-theme", w = "ocean", f = () => typeof document < "u", E = (e) => {
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
- }, B = () => f() ? document.documentElement.getAttribute("data-mode") : null, T = (e, n, t) => Math.min(t, Math.max(n, e)), i = (e, n = "#0070f3") => {
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
- }, p = (e) => {
8
- const t = i(e).slice(1);
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
- }, H = ({ r: e, g: n, b: t }) => {
15
- const r = (o) => T(Math.round(o), 0, 255).toString(16).padStart(2, "0");
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 = T(t, 0, 1), o = p(e), a = p(n);
19
- return H({
20
- r: o.r * (1 - r) + a.r * r,
21
- g: o.g * (1 - r) + a.g * r,
22
- b: o.b * (1 - r) + a.b * 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
- }, A = (e) => {
25
- const { r: n, g: t, b: r } = p(e);
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
- }, k = [
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
- ], O = (e) => {
59
- const n = String(e || w);
60
- return k.find((t) => t.key === n) || k[0];
61
- }, S = (e = {}) => {
62
- const n = B() || "light", t = O(e.preset || e.theme_preset), r = n === "dark" ? t.dark : t.light, o = !!(e.preset || e.theme_preset), a = !!(e.use_custom || e.useCustom), d = o && !a, c = i(d ? r.primary : e.primary || e.primary_color || r.primary, "#0070f3"), u = d ? r.secondary : Array.isArray(e.secondary) ? e.secondary : [
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 = i(u?.[0], "#14b8a6"), l = i(u?.[1], "#f97316"), m = i(u?.[2], "#8b5cf6"), g = n === "dark", _ = g ? s(c, "#042438", 0.92) : "#ffffff", P = g ? s(c, "#031f31", 0.9) : "#ffffff", I = g ? s(c, "#03283e", 0.9) : "#ffffff";
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, "#000000", 0.14),
70
- "--ui-primary-soft": s(c, "#ffffff", 0.86),
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, "#000000", 0.14),
73
- "--ui-accent-soft": s(y, "#ffffff", 0.84),
74
- "--ui-success": l,
75
- "--ui-success-strong": s(l, "#000000", 0.1),
76
- "--ui-success-soft": s(l, "#ffffff", 0.84),
77
- "--ui-warning": m,
78
- "--ui-warning-strong": s(m, "#000000", 0.1),
79
- "--ui-warning-soft": s(m, "#ffffff", 0.84),
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": A(c),
82
- "--ui-header-bg": _,
83
- "--ui-sidebar-bg": P,
84
- "--ui-submenu-bg": I
91
+ "--ui-text-inverse": "#ffffff",
92
+ "--ui-header-bg": A,
93
+ "--ui-sidebar-bg": B,
94
+ "--ui-submenu-bg": H
85
95
  };
86
- }, x = () => {
96
+ }, P = () => {
87
97
  if (!f()) return null;
88
- const e = localStorage.getItem(b);
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
- }, C = () => {
105
+ }, F = () => {
96
106
  if (!f()) return;
97
107
  const e = document.documentElement;
98
- Object.keys(S({})).forEach((t) => e.style.removeProperty(t)), localStorage.removeItem(b);
99
- }, M = (e, n = {}) => {
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
- C();
113
+ F();
104
114
  return;
105
115
  }
106
- const r = S(e), o = document.documentElement;
107
- Object.entries(r).forEach(([a, d]) => {
108
- o.style.setProperty(a, d);
109
- }), t && localStorage.setItem(b, JSON.stringify(e));
110
- }, K = (e) => {
111
- if (e && (E(e), f())) {
112
- localStorage.setItem(h, e);
113
- const n = x();
114
- n && M(n, { persist: !1 });
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
- }, $ = (e = {}) => {
126
+ }, j = (e = {}) => {
117
127
  if (!f()) return;
118
128
  const {
119
129
  defaultMode: n = "light"
120
- } = e, t = localStorage.getItem(h);
121
- E(t || n);
122
- const r = x();
123
- r && M(r, { persist: !1 });
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
- k as THEME_PRESETS,
127
- S as buildThemeTokens,
128
- C as clearTheme,
129
- B as getMode,
130
- x as getTheme,
131
- O as getThemePreset,
132
- $ as initTheme,
133
- K as setMode,
134
- M as setTheme
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":"wBAopBqB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;;qBAEpD,CAAC,EAAE,CAAC;;;AATzB;WAIkB,OAAO,IAAI;YADV,OAAO,CAAC,OAAO,KAAK,CAAC;;;;;;;;;2OAGrC;;;;;;AAjXH,0EAA+C;AAlB/C;;;;;;;;;EAgBE"}
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"}