tax4all-components 0.1.13 → 0.1.15

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.
@@ -1,14 +1,14 @@
1
- import { defineComponent as v, computed as b, openBlock as c, createElementBlock as r, normalizeClass as f, createElementVNode as s, createCommentVNode as _, toDisplayString as y, ref as $, onMounted as V, createTextVNode as I, watch as x, createVNode as g, createStaticVNode as E, Fragment as S, renderList as A } from "vue";
2
- const z = ["disabled"], N = {
1
+ import { defineComponent as _, computed as b, openBlock as d, createElementBlock as c, normalizeClass as m, createElementVNode as t, createCommentVNode as $, toDisplayString as y, ref as k, onMounted as S, createTextVNode as V, watch as E, createVNode as h, createStaticVNode as N, Fragment as T, renderList as x, withDirectives as U, vModelText as P } from "vue";
2
+ const z = ["disabled"], F = {
3
3
  key: 0,
4
4
  class: "spinner"
5
5
  }, M = {
6
6
  key: 2,
7
7
  class: "btn-label"
8
- }, P = {
8
+ }, D = {
9
9
  key: 4,
10
10
  class: "btn-badge"
11
- }, F = ["disabled"], L = /* @__PURE__ */ v({
11
+ }, W = ["disabled"], L = /* @__PURE__ */ _({
12
12
  __name: "BaseButton",
13
13
  props: {
14
14
  label: {},
@@ -27,10 +27,10 @@ const z = ["disabled"], N = {
27
27
  emits: ["click", "split-click"],
28
28
  setup(a, { emit: i }) {
29
29
  const e = a, l = i;
30
- function t() {
30
+ function o() {
31
31
  !e.disabled && !e.loading && l("click");
32
32
  }
33
- const n = b(() => e.label ? e.iconPosition : "left"), d = b(() => [
33
+ const s = b(() => e.label ? e.iconPosition : "left"), n = b(() => [
34
34
  `variant-${e.variant}`,
35
35
  `size-${e.size}`,
36
36
  `state-${e.state}`,
@@ -39,45 +39,45 @@ const z = ["disabled"], N = {
39
39
  disabled: e.disabled
40
40
  }
41
41
  ]);
42
- return (u, o) => (c(), r("div", {
43
- class: f(["base-button-wrapper", { "full-width": e.fullWidth, split: e.split }])
42
+ return (p, r) => (d(), c("div", {
43
+ class: m(["base-button-wrapper", { "full-width": e.fullWidth, split: e.split }])
44
44
  }, [
45
- s("button", {
46
- class: f(["base-button", d.value]),
45
+ t("button", {
46
+ class: m(["base-button", n.value]),
47
47
  disabled: a.disabled || a.loading,
48
- onClick: t
48
+ onClick: o
49
49
  }, [
50
- a.loading ? (c(), r("span", N)) : _("", !0),
51
- a.icon && n.value === "left" && !a.loading ? (c(), r("i", {
50
+ a.loading ? (d(), c("span", F)) : $("", !0),
51
+ a.icon && s.value === "left" && !a.loading ? (d(), c("i", {
52
52
  key: 1,
53
- class: f([a.icon, "btn-icon"])
54
- }, null, 2)) : _("", !0),
55
- a.label ? (c(), r("span", M, y(a.label), 1)) : _("", !0),
56
- a.icon && n.value === "right" && !a.loading ? (c(), r("i", {
53
+ class: m([a.icon, "btn-icon"])
54
+ }, null, 2)) : $("", !0),
55
+ a.label ? (d(), c("span", M, y(a.label), 1)) : $("", !0),
56
+ a.icon && s.value === "right" && !a.loading ? (d(), c("i", {
57
57
  key: 3,
58
- class: f([a.icon, "btn-icon"])
59
- }, null, 2)) : _("", !0),
60
- a.badge !== void 0 ? (c(), r("span", P, y(a.badge), 1)) : _("", !0)
58
+ class: m([a.icon, "btn-icon"])
59
+ }, null, 2)) : $("", !0),
60
+ a.badge !== void 0 ? (d(), c("span", D, y(a.badge), 1)) : $("", !0)
61
61
  ], 10, z),
62
- a.split ? (c(), r("button", {
62
+ a.split ? (d(), c("button", {
63
63
  key: 0,
64
- class: f(["base-button split-button", d.value]),
64
+ class: m(["base-button split-button", n.value]),
65
65
  disabled: a.disabled,
66
- onClick: o[0] || (o[0] = (m) => u.$emit("split-click"))
67
- }, [...o[1] || (o[1] = [
68
- s("i", { class: "bi bi-chevron-down" }, null, -1)
69
- ])], 10, F)) : _("", !0)
66
+ onClick: r[0] || (r[0] = (f) => p.$emit("split-click"))
67
+ }, [...r[1] || (r[1] = [
68
+ t("i", { class: "bi bi-chevron-down" }, null, -1)
69
+ ])], 10, W)) : $("", !0)
70
70
  ], 2));
71
71
  }
72
- }), k = (a, i) => {
72
+ }), g = (a, i) => {
73
73
  const e = a.__vccOpts || a;
74
- for (const [l, t] of i)
75
- e[l] = t;
74
+ for (const [l, o] of i)
75
+ e[l] = o;
76
76
  return e;
77
- }, W = /* @__PURE__ */ k(L, [["__scopeId", "data-v-0ce8be12"]]), U = {
77
+ }, A = /* @__PURE__ */ g(L, [["__scopeId", "data-v-0ce8be12"]]), R = {
78
78
  key: 0,
79
79
  class: "base-input__label"
80
- }, D = ["value", "placeholder", "readonly", "disabled", "type"], O = /* @__PURE__ */ v({
80
+ }, O = ["value", "placeholder", "readonly", "disabled", "type"], H = /* @__PURE__ */ _({
81
81
  __name: "BaseInput",
82
82
  props: {
83
83
  modelValue: {},
@@ -93,105 +93,105 @@ const z = ["disabled"], N = {
93
93
  },
94
94
  emits: ["update:modelValue"],
95
95
  setup(a, { emit: i }) {
96
- const e = a, l = i, t = $(e.state);
97
- function n(B) {
98
- const w = B.target;
99
- l("update:modelValue", w.value);
96
+ const e = a, l = i, o = k(e.state);
97
+ function s(C) {
98
+ const I = C.target;
99
+ l("update:modelValue", I.value);
100
100
  }
101
- function d() {
102
- e.disabled || (t.value = "focus");
101
+ function n() {
102
+ e.disabled || (o.value = "focus");
103
103
  }
104
- function u() {
105
- e.disabled || (t.value = "default");
104
+ function p() {
105
+ e.disabled || (o.value = "default");
106
106
  }
107
- function o() {
108
- e.disabled || t.value !== "focus" && (t.value = "hover");
107
+ function r() {
108
+ e.disabled || o.value !== "focus" && (o.value = "hover");
109
109
  }
110
- function m() {
111
- e.disabled || t.value !== "focus" && (t.value = "default");
110
+ function f() {
111
+ e.disabled || o.value !== "focus" && (o.value = "default");
112
112
  }
113
- const p = b(() => [
113
+ const u = b(() => [
114
114
  "base-input",
115
115
  `base-input--${e.variant}`,
116
116
  `base-input--${e.size}`,
117
- `base-input--${t.value}`,
117
+ `base-input--${o.value}`,
118
118
  {
119
119
  "base-input--full": e.fullWidth,
120
120
  "base-input--disabled": e.disabled
121
121
  }
122
- ]), h = b(() => ["base-input__field"]);
123
- return (B, w) => (c(), r("div", {
124
- class: f(p.value)
122
+ ]), v = b(() => ["base-input__field"]);
123
+ return (C, I) => (d(), c("div", {
124
+ class: m(u.value)
125
125
  }, [
126
- a.label ? (c(), r("label", U, y(a.label), 1)) : _("", !0),
127
- s("input", {
126
+ a.label ? (d(), c("label", R, y(a.label), 1)) : $("", !0),
127
+ t("input", {
128
128
  value: a.modelValue,
129
129
  placeholder: a.placeholder,
130
130
  readonly: a.readonly,
131
131
  disabled: a.disabled,
132
- class: f(h.value),
132
+ class: m(v.value),
133
133
  type: a.type,
134
- onInput: n,
135
- onFocus: d,
136
- onBlur: u,
137
- onMouseenter: o,
138
- onMouseleave: m
139
- }, null, 42, D)
134
+ onInput: s,
135
+ onFocus: n,
136
+ onBlur: p,
137
+ onMouseenter: r,
138
+ onMouseleave: f
139
+ }, null, 42, O)
140
140
  ], 2));
141
141
  }
142
- }), T = /* @__PURE__ */ k(O, [["__scopeId", "data-v-d79f0773"]]), H = { class: "base-snackbar__icon" }, K = { class: "base-snackbar__content" }, Y = { class: "base-snackbar__title" }, j = { class: "base-snackbar__message" }, pe = /* @__PURE__ */ v({
142
+ }), B = /* @__PURE__ */ g(H, [["__scopeId", "data-v-d79f0773"]]), q = { class: "base-snackbar__icon" }, K = { class: "base-snackbar__content" }, Y = { class: "base-snackbar__title" }, Z = { class: "base-snackbar__message" }, $e = /* @__PURE__ */ _({
143
143
  __name: "BaseSnackbar",
144
144
  props: {
145
145
  title: {},
146
146
  message: {},
147
147
  variant: { default: "success" },
148
- duration: { default: 15e3 }
148
+ duration: { default: 9e3 }
149
149
  },
150
150
  emits: ["close"],
151
151
  setup(a, { emit: i }) {
152
- const e = a, l = i, t = $(!1);
153
- let n = null;
154
- const d = b(() => ({
152
+ const e = a, l = i, o = k(!1);
153
+ let s = null;
154
+ const n = b(() => ({
155
155
  success: "bi bi-check-circle-fill",
156
156
  warning: "bi bi-exclamation-triangle-fill",
157
157
  critical: "bi bi-x-circle-fill"
158
158
  })[e.variant]);
159
- function u() {
160
- n = setTimeout(() => {
161
- t.value = !0;
159
+ function p() {
160
+ s = setTimeout(() => {
161
+ o.value = !0;
162
162
  }, e.duration);
163
163
  }
164
- function o(p) {
165
- p.propertyName === "opacity" && t.value && l("close");
164
+ function r(u) {
165
+ u.propertyName === "opacity" && o.value && l("close");
166
166
  }
167
- function m() {
168
- n && clearTimeout(n), t.value = !0;
167
+ function f() {
168
+ s && clearTimeout(s), o.value = !0;
169
169
  }
170
- return V(() => {
171
- u();
172
- }), (p, h) => (c(), r("div", {
173
- class: f(["base-snackbar", [`base-snackbar--${a.variant}`, { "base-snackbar--hide": t.value }]]),
174
- onTransitionend: o
170
+ return S(() => {
171
+ p();
172
+ }), (u, v) => (d(), c("div", {
173
+ class: m(["base-snackbar", [`base-snackbar--${a.variant}`, { "base-snackbar--hide": o.value }]]),
174
+ onTransitionend: r
175
175
  }, [
176
- s("div", H, [
177
- s("i", {
178
- class: f(d.value)
176
+ t("div", q, [
177
+ t("i", {
178
+ class: m(n.value)
179
179
  }, null, 2)
180
180
  ]),
181
- s("div", K, [
182
- s("strong", Y, y(a.title), 1),
183
- s("span", j, y(a.message), 1)
181
+ t("div", K, [
182
+ t("strong", Y, y(a.title), 1),
183
+ t("span", Z, y(a.message), 1)
184
184
  ]),
185
- s("button", {
185
+ t("button", {
186
186
  class: "base-snackbar__close",
187
- onClick: m
188
- }, [...h[0] || (h[0] = [
189
- s("i", { class: "bi bi-x-lg" }, null, -1),
190
- I(" Fechar ", -1)
187
+ onClick: f
188
+ }, [...v[0] || (v[0] = [
189
+ t("i", { class: "bi bi-x-lg" }, null, -1),
190
+ V(" Fechar ", -1)
191
191
  ])])
192
192
  ], 34));
193
193
  }
194
- }), q = /* @__PURE__ */ v({
194
+ }), j = /* @__PURE__ */ _({
195
195
  __name: "BaseAuthProviderChip",
196
196
  props: {
197
197
  provider: {},
@@ -199,55 +199,55 @@ const z = ["disabled"], N = {
199
199
  },
200
200
  emits: ["click"],
201
201
  setup(a, { emit: i }) {
202
- const e = a, l = i, t = b(() => ({
202
+ const e = a, l = i, o = b(() => ({
203
203
  google: "Google",
204
204
  microsoft: "Microsoft",
205
205
  apple: "Apple"
206
- })[e.provider]), n = b(() => ({
206
+ })[e.provider]), s = b(() => ({
207
207
  google: "bi bi-google",
208
208
  microsoft: "bi bi-microsoft",
209
209
  apple: "bi bi-apple"
210
210
  })[e.provider]);
211
- function d() {
211
+ function n() {
212
212
  l("click", e.provider);
213
213
  }
214
- return (u, o) => (c(), r("button", {
215
- class: f(["auth-chip", [`auth-chip--${a.provider}`, { "auth-chip--dark": a.dark }]]),
216
- onClick: d
214
+ return (p, r) => (d(), c("button", {
215
+ class: m(["auth-chip", [`auth-chip--${a.provider}`, { "auth-chip--dark": a.dark }]]),
216
+ onClick: n
217
217
  }, [
218
- s("i", {
219
- class: f(n.value)
218
+ t("i", {
219
+ class: m(s.value)
220
220
  }, null, 2),
221
- s("span", null, y(t.value), 1)
221
+ t("span", null, y(o.value), 1)
222
222
  ], 2));
223
223
  }
224
- }), C = /* @__PURE__ */ k(q, [["__scopeId", "data-v-b6215df6"]]), G = {
224
+ }), w = /* @__PURE__ */ g(j, [["__scopeId", "data-v-b6215df6"]]), G = {
225
225
  SITE_KEY: "0x4AAAAAACpnTZO7eMd0cjEL"
226
- }, R = { class: "captcha-wrapper" }, Z = /* @__PURE__ */ v({
226
+ }, J = { class: "captcha-wrapper" }, Q = /* @__PURE__ */ _({
227
227
  __name: "TurnsTile",
228
228
  setup(a) {
229
- const i = $(null);
229
+ const i = k(null);
230
230
  function e(l) {
231
231
  console.log("token captcha:", l);
232
232
  }
233
- return V(() => {
233
+ return S(() => {
234
234
  const l = setInterval(() => {
235
235
  window.turnstile && i.value && (window.turnstile.render(i.value, {
236
236
  sitekey: G.SITE_KEY,
237
237
  callback: e
238
238
  }), clearInterval(l));
239
239
  }, 100);
240
- }), (l, t) => (c(), r("div", R, [
241
- s("div", {
240
+ }), (l, o) => (d(), c("div", J, [
241
+ t("div", {
242
242
  ref_key: "captcha",
243
243
  ref: i
244
244
  }, null, 512)
245
245
  ]));
246
246
  }
247
- }), J = /* @__PURE__ */ k(Z, [["__scopeId", "data-v-b4abb288"]]), Q = { class: "login-form__field-wrapper" }, X = {
247
+ }), X = /* @__PURE__ */ g(Q, [["__scopeId", "data-v-b4abb288"]]), ee = { class: "login-form__field-wrapper" }, ae = {
248
248
  key: 0,
249
249
  class: "login-form__error-msg"
250
- }, ee = { class: "login-form__providers" }, ae = /* @__PURE__ */ v({
250
+ }, le = { class: "login-form__providers" }, te = /* @__PURE__ */ _({
251
251
  __name: "LoginForm",
252
252
  props: {
253
253
  dark: { type: Boolean, default: !1 },
@@ -255,81 +255,82 @@ const z = ["disabled"], N = {
255
255
  },
256
256
  emits: ["submit", "provider", "forgot-password"],
257
257
  setup(a, { emit: i }) {
258
- const e = i, l = $(""), t = $(""), n = $(!1);
259
- x(l, (m) => {
260
- m.trim().length >= 3 && (n.value = !1);
258
+ const e = i, l = k(""), o = k(""), s = k(!1), n = b(() => l.value.trim().length < 3 || o.value.length === 0);
259
+ E(l, (u) => {
260
+ u.trim().length >= 3 && (s.value = !1);
261
261
  });
262
- function d() {
263
- n.value = !1, e("submit", {
262
+ function p() {
263
+ n.value || (s.value = !1, e("submit", {
264
264
  username: l.value,
265
- password: t.value
266
- });
265
+ password: o.value
266
+ }));
267
267
  }
268
- function u(m) {
269
- m.preventDefault(), l.value.trim().length >= 3 ? (n.value = !1, e("forgot-password", l.value)) : n.value = !0;
268
+ function r(u) {
269
+ u.preventDefault(), l.value.trim().length >= 3 ? (s.value = !1, e("forgot-password", l.value)) : s.value = !0;
270
270
  }
271
- function o(m) {
272
- e("provider", m);
271
+ function f(u) {
272
+ e("provider", u);
273
273
  }
274
- return (m, p) => (c(), r("div", {
275
- class: f(["login-form", { "login-form--dark": a.dark }])
274
+ return (u, v) => (d(), c("div", {
275
+ class: m(["login-form", { "login-form--dark": a.dark }])
276
276
  }, [
277
- p[2] || (p[2] = s("h2", { class: "login-form__title" }, "Acessar Sistema", -1)),
278
- p[3] || (p[3] = s("p", { class: "login-form__subtitle" }, "Digite seu login e senha para continuar", -1)),
279
- s("div", Q, [
280
- g(T, {
277
+ v[2] || (v[2] = t("h2", { class: "login-form__title" }, "Acessar Sistema", -1)),
278
+ v[3] || (v[3] = t("p", { class: "login-form__subtitle" }, "Digite seu email e senha para continuar", -1)),
279
+ t("div", ee, [
280
+ h(B, {
281
281
  modelValue: l.value,
282
- "onUpdate:modelValue": p[0] || (p[0] = (h) => l.value = h),
283
- label: "Login",
284
- placeholder: "Seu login",
282
+ "onUpdate:modelValue": v[0] || (v[0] = (C) => l.value = C),
283
+ label: "Email",
284
+ placeholder: "exemple@email.com",
285
285
  fullWidth: ""
286
286
  }, null, 8, ["modelValue"]),
287
- n.value ? (c(), r("span", X, " Por favor, informe um login válido para recuperar a senha. ")) : _("", !0)
287
+ s.value ? (d(), c("span", ae, " Por favor, informe um email válido para recuperar a senha. ")) : $("", !0)
288
288
  ]),
289
- g(T, {
290
- modelValue: t.value,
291
- "onUpdate:modelValue": p[1] || (p[1] = (h) => t.value = h),
289
+ h(B, {
290
+ modelValue: o.value,
291
+ "onUpdate:modelValue": v[1] || (v[1] = (C) => o.value = C),
292
292
  label: "Senha",
293
293
  placeholder: "Sua senha",
294
294
  type: "password",
295
295
  fullWidth: ""
296
296
  }, null, 8, ["modelValue"]),
297
- g(J),
298
- g(W, {
297
+ h(X),
298
+ h(A, {
299
299
  label: "Entrar",
300
300
  variant: "solid",
301
301
  loading: a.loading,
302
+ disabled: n.value,
302
303
  fullWidth: "",
303
- onClick: d
304
- }, null, 8, ["loading"]),
305
- s("a", {
304
+ onClick: p
305
+ }, null, 8, ["loading", "disabled"]),
306
+ t("a", {
306
307
  href: "#",
307
308
  class: "login-form__forgot-link",
308
- onClick: u
309
+ onClick: r
309
310
  }, " Esqueci minha senha "),
310
- p[4] || (p[4] = s("div", { class: "login-form__divider" }, [
311
- s("span", null, "OU CONTINUE COM")
311
+ v[4] || (v[4] = t("div", { class: "login-form__divider" }, [
312
+ t("span", null, "OU CONTINUE COM")
312
313
  ], -1)),
313
- s("div", ee, [
314
- g(C, {
314
+ t("div", le, [
315
+ h(w, {
315
316
  provider: "google",
316
317
  dark: a.dark,
317
- onClick: o
318
+ onClick: f
318
319
  }, null, 8, ["dark"]),
319
- g(C, {
320
+ h(w, {
320
321
  provider: "microsoft",
321
322
  dark: a.dark,
322
- onClick: o
323
+ onClick: f
323
324
  }, null, 8, ["dark"]),
324
- g(C, {
325
+ h(w, {
325
326
  provider: "apple",
326
327
  dark: a.dark,
327
- onClick: o
328
+ onClick: f
328
329
  }, null, 8, ["dark"])
329
330
  ])
330
331
  ], 2));
331
332
  }
332
- }), me = /* @__PURE__ */ k(ae, [["__scopeId", "data-v-24aad6eb"]]), le = /* @__PURE__ */ v({
333
+ }), Ce = /* @__PURE__ */ g(te, [["__scopeId", "data-v-fd6f0976"]]), se = /* @__PURE__ */ _({
333
334
  __name: "BaseThemeToggle",
334
335
  props: {
335
336
  modelValue: { type: Boolean, default: !1 },
@@ -339,12 +340,12 @@ const z = ["disabled"], N = {
339
340
  emits: ["update:modelValue", "change"],
340
341
  setup(a, { emit: i }) {
341
342
  const e = a, l = i;
342
- function t() {
343
+ function o() {
343
344
  if (e.disabled) return;
344
- const d = !e.modelValue;
345
- l("update:modelValue", d), l("change", d);
345
+ const n = !e.modelValue;
346
+ l("update:modelValue", n), l("change", n);
346
347
  }
347
- const n = b(() => [
348
+ const s = b(() => [
348
349
  "theme-toggle",
349
350
  `theme-toggle--${e.size}`,
350
351
  {
@@ -352,14 +353,14 @@ const z = ["disabled"], N = {
352
353
  "theme-toggle--disabled": e.disabled
353
354
  }
354
355
  ]);
355
- return (d, u) => (c(), r("div", {
356
- class: f(n.value),
357
- onClick: t
358
- }, [...u[0] || (u[0] = [
359
- E('<div class="theme-toggle__icon theme-toggle__icon--left" data-v-af2312ab><i class="bi bi-sun-fill" data-v-af2312ab></i></div><div class="theme-toggle__track" data-v-af2312ab><div class="theme-toggle__thumb" data-v-af2312ab></div></div><div class="theme-toggle__icon theme-toggle__icon--right" data-v-af2312ab><i class="bi bi-moon-fill" data-v-af2312ab></i></div>', 3)
356
+ return (n, p) => (d(), c("div", {
357
+ class: m(s.value),
358
+ onClick: o
359
+ }, [...p[0] || (p[0] = [
360
+ N('<div class="theme-toggle__icon theme-toggle__icon--left" data-v-af2312ab><i class="bi bi-sun-fill" data-v-af2312ab></i></div><div class="theme-toggle__track" data-v-af2312ab><div class="theme-toggle__thumb" data-v-af2312ab></div></div><div class="theme-toggle__icon theme-toggle__icon--right" data-v-af2312ab><i class="bi bi-moon-fill" data-v-af2312ab></i></div>', 3)
360
361
  ])], 2));
361
362
  }
362
- }), te = /* @__PURE__ */ k(le, [["__scopeId", "data-v-af2312ab"]]), se = { class: "app-header__left" }, ne = ["src"], oe = { class: "app-header__right" }, ie = { class: "app-header__theme" }, de = ["src"], ce = /* @__PURE__ */ v({
363
+ }), oe = /* @__PURE__ */ g(se, [["__scopeId", "data-v-af2312ab"]]), ne = { class: "app-header__left" }, ie = ["src"], de = { class: "app-header__right" }, ce = { class: "app-header__theme" }, re = ["src"], ue = /* @__PURE__ */ _({
363
364
  __name: "BaseHeader",
364
365
  props: {
365
366
  userName: {},
@@ -371,45 +372,45 @@ const z = ["disabled"], N = {
371
372
  emits: ["update:theme", "profile-click"],
372
373
  setup(a, { emit: i }) {
373
374
  const e = a, l = i;
374
- function t(u) {
375
- l("update:theme", u);
375
+ function o(p) {
376
+ l("update:theme", p);
376
377
  }
377
- function n() {
378
+ function s() {
378
379
  l("profile-click");
379
380
  }
380
- const d = b(() => ["app-header", `app-header--${e.mode}`]);
381
- return (u, o) => (c(), r("header", {
382
- class: f(d.value)
381
+ const n = b(() => ["app-header", `app-header--${e.mode}`]);
382
+ return (p, r) => (d(), c("header", {
383
+ class: m(n.value)
383
384
  }, [
384
- s("div", se, [
385
- s("img", {
385
+ t("div", ne, [
386
+ t("img", {
386
387
  src: e.logo,
387
388
  class: "app-header__logo",
388
389
  alt: "Tax For All"
389
- }, null, 8, ne)
390
+ }, null, 8, ie)
390
391
  ]),
391
- s("div", oe, [
392
- s("div", ie, [
393
- o[0] || (o[0] = s("span", { class: "app-header__theme-label" }, " Tema ", -1)),
394
- g(te, {
392
+ t("div", de, [
393
+ t("div", ce, [
394
+ r[0] || (r[0] = t("span", { class: "app-header__theme-label" }, " Tema ", -1)),
395
+ h(oe, {
395
396
  "model-value": e.theme,
396
397
  size: "sm",
397
- "onUpdate:modelValue": t
398
+ "onUpdate:modelValue": o
398
399
  }, null, 8, ["model-value"])
399
400
  ]),
400
- s("button", {
401
+ t("button", {
401
402
  class: "app-header__profile",
402
- onClick: n
403
+ onClick: s
403
404
  }, [
404
- s("img", {
405
+ t("img", {
405
406
  src: e.userAvatar,
406
407
  class: "app-header__avatar"
407
- }, null, 8, de)
408
+ }, null, 8, re)
408
409
  ])
409
410
  ])
410
411
  ], 2));
411
412
  }
412
- }), be = /* @__PURE__ */ k(ce, [["__scopeId", "data-v-d01c874c"]]), re = ["onClick"], ue = /* @__PURE__ */ v({
413
+ }), Be = /* @__PURE__ */ g(ue, [["__scopeId", "data-v-d01c874c"]]), me = ["onClick"], pe = /* @__PURE__ */ _({
413
414
  __name: "BaseDropdown",
414
415
  props: {
415
416
  items: {},
@@ -418,32 +419,137 @@ const z = ["disabled"], N = {
418
419
  emits: ["action"],
419
420
  setup(a, { emit: i }) {
420
421
  const e = a, l = i;
421
- function t(d) {
422
- l("action", d.key);
422
+ function o(n) {
423
+ l("action", n.key);
423
424
  }
424
- const n = b(() => ["dropdown", `dropdown--${e.mode}`]);
425
- return (d, u) => (c(), r("div", {
426
- class: f(n.value)
425
+ const s = b(() => ["dropdown", `dropdown--${e.mode}`]);
426
+ return (n, p) => (d(), c("div", {
427
+ class: m(s.value)
427
428
  }, [
428
- (c(!0), r(S, null, A(e.items, (o) => (c(), r("button", {
429
- key: o.key,
430
- class: f(["dropdown__item", { danger: o.danger }]),
431
- onClick: (m) => t(o)
429
+ (d(!0), c(T, null, x(e.items, (r) => (d(), c("button", {
430
+ key: r.key,
431
+ class: m(["dropdown__item", { danger: r.danger }]),
432
+ onClick: (f) => o(r)
432
433
  }, [
433
- s("i", {
434
- class: f(o.icon)
434
+ t("i", {
435
+ class: m(r.icon)
435
436
  }, null, 2),
436
- s("span", null, y(o.label), 1)
437
- ], 10, re))), 128))
437
+ t("span", null, y(r.label), 1)
438
+ ], 10, me))), 128))
438
439
  ], 2));
439
440
  }
440
- }), ve = /* @__PURE__ */ k(ue, [["__scopeId", "data-v-8ab8c529"]]);
441
+ }), we = /* @__PURE__ */ g(pe, [["__scopeId", "data-v-8ab8c529"]]), fe = { class: "reset-password-form" }, ve = { class: "reset-password-form__checklist" }, be = /* @__PURE__ */ _({
442
+ __name: "ResetPassForm",
443
+ props: {
444
+ loading: { type: Boolean, default: !1 }
445
+ },
446
+ emits: ["submit"],
447
+ setup(a, { emit: i }) {
448
+ const e = i, l = k(""), o = k(""), s = b(() => [
449
+ { label: "Mínimo 8 caracteres", check: l.value.length >= 8 },
450
+ { label: "Uma letra maiúscula", check: /[A-Z]/.test(l.value) },
451
+ { label: "Uma letra minúscula", check: /[a-z]/.test(l.value) },
452
+ { label: "Um número", check: /[0-9]/.test(l.value) },
453
+ {
454
+ label: "Um caractere especial (@$!%*?&)",
455
+ check: /[!@#$%^&*(),.?":{}|<>]/.test(l.value)
456
+ },
457
+ {
458
+ label: "As senhas coincidem",
459
+ check: l.value === o.value && o.value !== ""
460
+ }
461
+ ]), n = b(() => !s.value.every((r) => r.check));
462
+ function p() {
463
+ n.value || e("submit", l.value);
464
+ }
465
+ return (r, f) => (d(), c("div", fe, [
466
+ f[2] || (f[2] = t("h2", { class: "reset-password-form__title" }, "Redefinir Senha", -1)),
467
+ f[3] || (f[3] = t("p", { class: "reset-password-form__subtitle" }, "Crie uma nova senha segura para continuar.", -1)),
468
+ h(B, {
469
+ modelValue: l.value,
470
+ "onUpdate:modelValue": f[0] || (f[0] = (u) => l.value = u),
471
+ label: "Nova Senha",
472
+ placeholder: "Digite sua senha",
473
+ type: "password",
474
+ fullWidth: ""
475
+ }, null, 8, ["modelValue"]),
476
+ h(B, {
477
+ modelValue: o.value,
478
+ "onUpdate:modelValue": f[1] || (f[1] = (u) => o.value = u),
479
+ label: "Confirmar Senha",
480
+ placeholder: "Repita a nova senha",
481
+ type: "password",
482
+ fullWidth: ""
483
+ }, null, 8, ["modelValue"]),
484
+ t("ul", ve, [
485
+ (d(!0), c(T, null, x(s.value, (u, v) => (d(), c("li", {
486
+ key: v,
487
+ class: m({ "is-valid": u.check })
488
+ }, [
489
+ t("i", {
490
+ class: m(u.check ? "bi bi-check" : "bi bi-x")
491
+ }, null, 2),
492
+ V(" " + y(u.label), 1)
493
+ ], 2))), 128))
494
+ ]),
495
+ h(A, {
496
+ label: "Salvar Nova Senha",
497
+ variant: "solid",
498
+ loading: a.loading,
499
+ disabled: n.value,
500
+ fullWidth: "",
501
+ onClick: p
502
+ }, null, 8, ["loading", "disabled"])
503
+ ]));
504
+ }
505
+ }), Ve = /* @__PURE__ */ g(be, [["__scopeId", "data-v-9e2eaa9a"]]), he = { class: "code-verification" }, _e = { class: "code-verification__input-container" }, ge = { class: "code-verification__slots" }, ke = /* @__PURE__ */ _({
506
+ __name: "BaseCodeVerification",
507
+ emits: ["submit"],
508
+ setup(a, { emit: i }) {
509
+ const e = i, l = k("");
510
+ return E(l, (o) => {
511
+ const s = o.replace(/\D/g, "");
512
+ s.length > 4 ? l.value = s.slice(0, 4) : l.value = s, l.value.length === 4 && e("submit", l.value);
513
+ }), (o, s) => (d(), c("div", he, [
514
+ s[3] || (s[3] = t("h2", { class: "code-verification__title" }, "Verifique seu e-mail", -1)),
515
+ s[4] || (s[4] = t("p", { class: "code-verification__subtitle" }, " Enviamos um código de 4 dígitos para o seu e-mail. Digite-o abaixo: ", -1)),
516
+ t("div", _e, [
517
+ U(t("input", {
518
+ "onUpdate:modelValue": s[0] || (s[0] = (n) => l.value = n),
519
+ type: "tel",
520
+ maxlength: "4",
521
+ pattern: "[0-9]*",
522
+ inputmode: "numeric",
523
+ class: "code-verification__hidden-input",
524
+ autofocus: ""
525
+ }, null, 512), [
526
+ [P, l.value]
527
+ ]),
528
+ t("div", ge, [
529
+ (d(), c(T, null, x(4, (n) => t("div", {
530
+ key: n,
531
+ class: m(["code-verification__underline", { "is-active": l.value.length === n - 1 || l.value.length === 4 && n === 4 }])
532
+ }, y(l.value[n - 1] || ""), 3)), 64))
533
+ ])
534
+ ]),
535
+ t("button", {
536
+ class: "code-verification__resend",
537
+ onClick: s[1] || (s[1] = (n) => l.value = "")
538
+ }, [...s[2] || (s[2] = [
539
+ V(" Não recebi o código. ", -1),
540
+ t("strong", null, "Reenviar", -1)
541
+ ])])
542
+ ]));
543
+ }
544
+ }), Te = /* @__PURE__ */ g(ke, [["__scopeId", "data-v-02c59f14"]]);
441
545
  export {
442
- W as BaseButton,
443
- ve as BaseDropdown,
444
- be as BaseHeader,
445
- T as BaseInput,
446
- pe as BaseSnackbar,
447
- te as BaseThemeToggle,
448
- me as LoginForm
546
+ A as BaseButton,
547
+ Te as BaseCodeVerification,
548
+ we as BaseDropdown,
549
+ Be as BaseHeader,
550
+ B as BaseInput,
551
+ $e as BaseSnackbar,
552
+ oe as BaseThemeToggle,
553
+ Ce as LoginForm,
554
+ Ve as ResetPassForm
449
555
  };
@@ -1 +1 @@
1
- (function(m,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(m=typeof globalThis<"u"?globalThis:m||self,e(m["tax4all-components"]={},m.Vue))})(this,function(m,e){"use strict";const C=["disabled"],V={key:0,class:"spinner"},E={key:2,class:"btn-label"},y={key:4,class:"btn-badge"},N=["disabled"],$=e.defineComponent({__name:"BaseButton",props:{label:{},icon:{},iconPosition:{default:"left"},badge:{},variant:{default:"solid"},size:{default:"cozy"},state:{default:"neutral"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},split:{type:Boolean,default:!1},dropdown:{type:Boolean,default:!1}},emits:["click","split-click"],setup(t,{emit:i}){const a=t,l=i;function o(){!a.disabled&&!a.loading&&l("click")}const n=e.computed(()=>a.label?a.iconPosition:"left"),c=e.computed(()=>[`variant-${a.variant}`,`size-${a.size}`,`state-${a.state}`,{"icon-only":a.icon&&!a.label,disabled:a.disabled}]);return(d,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["base-button-wrapper",{"full-width":a.fullWidth,split:a.split}])},[e.createElementVNode("button",{class:e.normalizeClass(["base-button",c.value]),disabled:t.disabled||t.loading,onClick:o},[t.loading?(e.openBlock(),e.createElementBlock("span",V)):e.createCommentVNode("",!0),t.icon&&n.value==="left"&&!t.loading?(e.openBlock(),e.createElementBlock("i",{key:1,class:e.normalizeClass([t.icon,"btn-icon"])},null,2)):e.createCommentVNode("",!0),t.label?(e.openBlock(),e.createElementBlock("span",E,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0),t.icon&&n.value==="right"&&!t.loading?(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass([t.icon,"btn-icon"])},null,2)):e.createCommentVNode("",!0),t.badge!==void 0?(e.openBlock(),e.createElementBlock("span",y,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0)],10,C),t.split?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["base-button split-button",c.value]),disabled:t.disabled,onClick:s[0]||(s[0]=p=>d.$emit("split-click"))},[...s[1]||(s[1]=[e.createElementVNode("i",{class:"bi bi-chevron-down"},null,-1)])],10,N)):e.createCommentVNode("",!0)],2))}}),f=(t,i)=>{const a=t.__vccOpts||t;for(const[l,o]of i)a[l]=o;return a},h=f($,[["__scopeId","data-v-0ce8be12"]]),w={key:0,class:"base-input__label"},T=["value","placeholder","readonly","disabled","type"],b=f(e.defineComponent({__name:"BaseInput",props:{modelValue:{},label:{},placeholder:{},variant:{default:"outlined"},state:{default:"default"},size:{default:"md"},fullWidth:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},type:{default:"text"}},emits:["update:modelValue"],setup(t,{emit:i}){const a=t,l=i,o=e.ref(a.state);function n(k){const B=k.target;l("update:modelValue",B.value)}function c(){a.disabled||(o.value="focus")}function d(){a.disabled||(o.value="default")}function s(){a.disabled||o.value!=="focus"&&(o.value="hover")}function p(){a.disabled||o.value!=="focus"&&(o.value="default")}const r=e.computed(()=>["base-input",`base-input--${a.variant}`,`base-input--${a.size}`,`base-input--${o.value}`,{"base-input--full":a.fullWidth,"base-input--disabled":a.disabled}]),u=e.computed(()=>["base-input__field"]);return(k,B)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.value)},[t.label?(e.openBlock(),e.createElementBlock("label",w,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0),e.createElementVNode("input",{value:t.modelValue,placeholder:t.placeholder,readonly:t.readonly,disabled:t.disabled,class:e.normalizeClass(u.value),type:t.type,onInput:n,onFocus:c,onBlur:d,onMouseenter:s,onMouseleave:p},null,42,T)],2))}}),[["__scopeId","data-v-d79f0773"]]),z={class:"base-snackbar__icon"},S={class:"base-snackbar__content"},I={class:"base-snackbar__title"},x={class:"base-snackbar__message"},A=e.defineComponent({__name:"BaseSnackbar",props:{title:{},message:{},variant:{default:"success"},duration:{default:15e3}},emits:["close"],setup(t,{emit:i}){const a=t,l=i,o=e.ref(!1);let n=null;const c=e.computed(()=>({success:"bi bi-check-circle-fill",warning:"bi bi-exclamation-triangle-fill",critical:"bi bi-x-circle-fill"})[a.variant]);function d(){n=setTimeout(()=>{o.value=!0},a.duration)}function s(r){r.propertyName==="opacity"&&o.value&&l("close")}function p(){n&&clearTimeout(n),o.value=!0}return e.onMounted(()=>{d()}),(r,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["base-snackbar",[`base-snackbar--${t.variant}`,{"base-snackbar--hide":o.value}]]),onTransitionend:s},[e.createElementVNode("div",z,[e.createElementVNode("i",{class:e.normalizeClass(c.value)},null,2)]),e.createElementVNode("div",S,[e.createElementVNode("strong",I,e.toDisplayString(t.title),1),e.createElementVNode("span",x,e.toDisplayString(t.message),1)]),e.createElementVNode("button",{class:"base-snackbar__close",onClick:p},[...u[0]||(u[0]=[e.createElementVNode("i",{class:"bi bi-x-lg"},null,-1),e.createTextVNode(" Fechar ",-1)])])],34))}}),g=f(e.defineComponent({__name:"BaseAuthProviderChip",props:{provider:{},dark:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:i}){const a=t,l=i,o=e.computed(()=>({google:"Google",microsoft:"Microsoft",apple:"Apple"})[a.provider]),n=e.computed(()=>({google:"bi bi-google",microsoft:"bi bi-microsoft",apple:"bi bi-apple"})[a.provider]);function c(){l("click",a.provider)}return(d,s)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["auth-chip",[`auth-chip--${t.provider}`,{"auth-chip--dark":t.dark}]]),onClick:c},[e.createElementVNode("i",{class:e.normalizeClass(n.value)},null,2),e.createElementVNode("span",null,e.toDisplayString(o.value),1)],2))}}),[["__scopeId","data-v-b6215df6"]]),D={SITE_KEY:"0x4AAAAAACpnTZO7eMd0cjEL"},M={class:"captcha-wrapper"},P=f(e.defineComponent({__name:"TurnsTile",setup(t){const i=e.ref(null);function a(l){console.log("token captcha:",l)}return e.onMounted(()=>{const l=setInterval(()=>{window.turnstile&&i.value&&(window.turnstile.render(i.value,{sitekey:D.SITE_KEY,callback:a}),clearInterval(l))},100)}),(l,o)=>(e.openBlock(),e.createElementBlock("div",M,[e.createElementVNode("div",{ref_key:"captcha",ref:i},null,512)]))}}),[["__scopeId","data-v-b4abb288"]]),F={class:"login-form__field-wrapper"},L={key:0,class:"login-form__error-msg"},W={class:"login-form__providers"},O=f(e.defineComponent({__name:"LoginForm",props:{dark:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["submit","provider","forgot-password"],setup(t,{emit:i}){const a=i,l=e.ref(""),o=e.ref(""),n=e.ref(!1);e.watch(l,p=>{p.trim().length>=3&&(n.value=!1)});function c(){n.value=!1,a("submit",{username:l.value,password:o.value})}function d(p){p.preventDefault(),l.value.trim().length>=3?(n.value=!1,a("forgot-password",l.value)):n.value=!0}function s(p){a("provider",p)}return(p,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["login-form",{"login-form--dark":t.dark}])},[r[2]||(r[2]=e.createElementVNode("h2",{class:"login-form__title"},"Acessar Sistema",-1)),r[3]||(r[3]=e.createElementVNode("p",{class:"login-form__subtitle"},"Digite seu login e senha para continuar",-1)),e.createElementVNode("div",F,[e.createVNode(b,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=u=>l.value=u),label:"Login",placeholder:"Seu login",fullWidth:""},null,8,["modelValue"]),n.value?(e.openBlock(),e.createElementBlock("span",L," Por favor, informe um login válido para recuperar a senha. ")):e.createCommentVNode("",!0)]),e.createVNode(b,{modelValue:o.value,"onUpdate:modelValue":r[1]||(r[1]=u=>o.value=u),label:"Senha",placeholder:"Sua senha",type:"password",fullWidth:""},null,8,["modelValue"]),e.createVNode(P),e.createVNode(h,{label:"Entrar",variant:"solid",loading:t.loading,fullWidth:"",onClick:c},null,8,["loading"]),e.createElementVNode("a",{href:"#",class:"login-form__forgot-link",onClick:d}," Esqueci minha senha "),r[4]||(r[4]=e.createElementVNode("div",{class:"login-form__divider"},[e.createElementVNode("span",null,"OU CONTINUE COM")],-1)),e.createElementVNode("div",W,[e.createVNode(g,{provider:"google",dark:t.dark,onClick:s},null,8,["dark"]),e.createVNode(g,{provider:"microsoft",dark:t.dark,onClick:s},null,8,["dark"]),e.createVNode(g,{provider:"apple",dark:t.dark,onClick:s},null,8,["dark"])])],2))}}),[["__scopeId","data-v-24aad6eb"]]),_=f(e.defineComponent({__name:"BaseThemeToggle",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{default:"md"}},emits:["update:modelValue","change"],setup(t,{emit:i}){const a=t,l=i;function o(){if(a.disabled)return;const c=!a.modelValue;l("update:modelValue",c),l("change",c)}const n=e.computed(()=>["theme-toggle",`theme-toggle--${a.size}`,{"theme-toggle--dark":a.modelValue,"theme-toggle--disabled":a.disabled}]);return(c,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value),onClick:o},[...d[0]||(d[0]=[e.createStaticVNode('<div class="theme-toggle__icon theme-toggle__icon--left" data-v-af2312ab><i class="bi bi-sun-fill" data-v-af2312ab></i></div><div class="theme-toggle__track" data-v-af2312ab><div class="theme-toggle__thumb" data-v-af2312ab></div></div><div class="theme-toggle__icon theme-toggle__icon--right" data-v-af2312ab><i class="bi bi-moon-fill" data-v-af2312ab></i></div>',3)])],2))}}),[["__scopeId","data-v-af2312ab"]]),U={class:"app-header__left"},H=["src"],j={class:"app-header__right"},q={class:"app-header__theme"},K=["src"],Y=f(e.defineComponent({__name:"BaseHeader",props:{userName:{},userAvatar:{},logo:{},theme:{type:Boolean,default:!1},mode:{default:"light"}},emits:["update:theme","profile-click"],setup(t,{emit:i}){const a=t,l=i;function o(d){l("update:theme",d)}function n(){l("profile-click")}const c=e.computed(()=>["app-header",`app-header--${a.mode}`]);return(d,s)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(c.value)},[e.createElementVNode("div",U,[e.createElementVNode("img",{src:a.logo,class:"app-header__logo",alt:"Tax For All"},null,8,H)]),e.createElementVNode("div",j,[e.createElementVNode("div",q,[s[0]||(s[0]=e.createElementVNode("span",{class:"app-header__theme-label"}," Tema ",-1)),e.createVNode(_,{"model-value":a.theme,size:"sm","onUpdate:modelValue":o},null,8,["model-value"])]),e.createElementVNode("button",{class:"app-header__profile",onClick:n},[e.createElementVNode("img",{src:a.userAvatar,class:"app-header__avatar"},null,8,K)])])],2))}}),[["__scopeId","data-v-d01c874c"]]),G=["onClick"],R=f(e.defineComponent({__name:"BaseDropdown",props:{items:{},mode:{default:"light"}},emits:["action"],setup(t,{emit:i}){const a=t,l=i;function o(c){l("action",c.key)}const n=e.computed(()=>["dropdown",`dropdown--${a.mode}`]);return(c,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,s=>(e.openBlock(),e.createElementBlock("button",{key:s.key,class:e.normalizeClass(["dropdown__item",{danger:s.danger}]),onClick:p=>o(s)},[e.createElementVNode("i",{class:e.normalizeClass(s.icon)},null,2),e.createElementVNode("span",null,e.toDisplayString(s.label),1)],10,G))),128))],2))}}),[["__scopeId","data-v-8ab8c529"]]);m.BaseButton=h,m.BaseDropdown=R,m.BaseHeader=Y,m.BaseInput=b,m.BaseSnackbar=A,m.BaseThemeToggle=_,m.LoginForm=O,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});
1
+ (function(f,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(f=typeof globalThis<"u"?globalThis:f||self,e(f["tax4all-components"]={},f.Vue))})(this,function(f,e){"use strict";const B=["disabled"],E={key:0,class:"spinner"},C={key:2,class:"btn-label"},N={key:4,class:"btn-badge"},y=["disabled"],$=e.defineComponent({__name:"BaseButton",props:{label:{},icon:{},iconPosition:{default:"left"},badge:{},variant:{default:"solid"},size:{default:"cozy"},state:{default:"neutral"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},split:{type:Boolean,default:!1},dropdown:{type:Boolean,default:!1}},emits:["click","split-click"],setup(t,{emit:i}){const a=t,l=i;function n(){!a.disabled&&!a.loading&&l("click")}const o=e.computed(()=>a.label?a.iconPosition:"left"),s=e.computed(()=>[`variant-${a.variant}`,`size-${a.size}`,`state-${a.state}`,{"icon-only":a.icon&&!a.label,disabled:a.disabled}]);return(d,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["base-button-wrapper",{"full-width":a.fullWidth,split:a.split}])},[e.createElementVNode("button",{class:e.normalizeClass(["base-button",s.value]),disabled:t.disabled||t.loading,onClick:n},[t.loading?(e.openBlock(),e.createElementBlock("span",E)):e.createCommentVNode("",!0),t.icon&&o.value==="left"&&!t.loading?(e.openBlock(),e.createElementBlock("i",{key:1,class:e.normalizeClass([t.icon,"btn-icon"])},null,2)):e.createCommentVNode("",!0),t.label?(e.openBlock(),e.createElementBlock("span",C,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0),t.icon&&o.value==="right"&&!t.loading?(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass([t.icon,"btn-icon"])},null,2)):e.createCommentVNode("",!0),t.badge!==void 0?(e.openBlock(),e.createElementBlock("span",N,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0)],10,B),t.split?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["base-button split-button",s.value]),disabled:t.disabled,onClick:c[0]||(c[0]=m=>d.$emit("split-click"))},[...c[1]||(c[1]=[e.createElementVNode("i",{class:"bi bi-chevron-down"},null,-1)])],10,y)):e.createCommentVNode("",!0)],2))}}),u=(t,i)=>{const a=t.__vccOpts||t;for(const[l,n]of i)a[l]=n;return a},h=u($,[["__scopeId","data-v-0ce8be12"]]),w={key:0,class:"base-input__label"},T=["value","placeholder","readonly","disabled","type"],_=u(e.defineComponent({__name:"BaseInput",props:{modelValue:{},label:{},placeholder:{},variant:{default:"outlined"},state:{default:"default"},size:{default:"md"},fullWidth:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},type:{default:"text"}},emits:["update:modelValue"],setup(t,{emit:i}){const a=t,l=i,n=e.ref(a.state);function o(b){const V=b.target;l("update:modelValue",V.value)}function s(){a.disabled||(n.value="focus")}function d(){a.disabled||(n.value="default")}function c(){a.disabled||n.value!=="focus"&&(n.value="hover")}function m(){a.disabled||n.value!=="focus"&&(n.value="default")}const r=e.computed(()=>["base-input",`base-input--${a.variant}`,`base-input--${a.size}`,`base-input--${n.value}`,{"base-input--full":a.fullWidth,"base-input--disabled":a.disabled}]),p=e.computed(()=>["base-input__field"]);return(b,V)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.value)},[t.label?(e.openBlock(),e.createElementBlock("label",w,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0),e.createElementVNode("input",{value:t.modelValue,placeholder:t.placeholder,readonly:t.readonly,disabled:t.disabled,class:e.normalizeClass(p.value),type:t.type,onInput:o,onFocus:s,onBlur:d,onMouseenter:c,onMouseleave:m},null,42,T)],2))}}),[["__scopeId","data-v-d79f0773"]]),z={class:"base-snackbar__icon"},S={class:"base-snackbar__content"},I={class:"base-snackbar__title"},D={class:"base-snackbar__message"},x=e.defineComponent({__name:"BaseSnackbar",props:{title:{},message:{},variant:{default:"success"},duration:{default:9e3}},emits:["close"],setup(t,{emit:i}){const a=t,l=i,n=e.ref(!1);let o=null;const s=e.computed(()=>({success:"bi bi-check-circle-fill",warning:"bi bi-exclamation-triangle-fill",critical:"bi bi-x-circle-fill"})[a.variant]);function d(){o=setTimeout(()=>{n.value=!0},a.duration)}function c(r){r.propertyName==="opacity"&&n.value&&l("close")}function m(){o&&clearTimeout(o),n.value=!0}return e.onMounted(()=>{d()}),(r,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["base-snackbar",[`base-snackbar--${t.variant}`,{"base-snackbar--hide":n.value}]]),onTransitionend:c},[e.createElementVNode("div",z,[e.createElementVNode("i",{class:e.normalizeClass(s.value)},null,2)]),e.createElementVNode("div",S,[e.createElementVNode("strong",I,e.toDisplayString(t.title),1),e.createElementVNode("span",D,e.toDisplayString(t.message),1)]),e.createElementVNode("button",{class:"base-snackbar__close",onClick:m},[...p[0]||(p[0]=[e.createElementVNode("i",{class:"bi bi-x-lg"},null,-1),e.createTextVNode(" Fechar ",-1)])])],34))}}),g=u(e.defineComponent({__name:"BaseAuthProviderChip",props:{provider:{},dark:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:i}){const a=t,l=i,n=e.computed(()=>({google:"Google",microsoft:"Microsoft",apple:"Apple"})[a.provider]),o=e.computed(()=>({google:"bi bi-google",microsoft:"bi bi-microsoft",apple:"bi bi-apple"})[a.provider]);function s(){l("click",a.provider)}return(d,c)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["auth-chip",[`auth-chip--${t.provider}`,{"auth-chip--dark":t.dark}]]),onClick:s},[e.createElementVNode("i",{class:e.normalizeClass(o.value)},null,2),e.createElementVNode("span",null,e.toDisplayString(n.value),1)],2))}}),[["__scopeId","data-v-b6215df6"]]),A={SITE_KEY:"0x4AAAAAACpnTZO7eMd0cjEL"},F={class:"captcha-wrapper"},P=u(e.defineComponent({__name:"TurnsTile",setup(t){const i=e.ref(null);function a(l){console.log("token captcha:",l)}return e.onMounted(()=>{const l=setInterval(()=>{window.turnstile&&i.value&&(window.turnstile.render(i.value,{sitekey:A.SITE_KEY,callback:a}),clearInterval(l))},100)}),(l,n)=>(e.openBlock(),e.createElementBlock("div",F,[e.createElementVNode("div",{ref_key:"captcha",ref:i},null,512)]))}}),[["__scopeId","data-v-b4abb288"]]),M={class:"login-form__field-wrapper"},U={key:0,class:"login-form__error-msg"},W={class:"login-form__providers"},L=u(e.defineComponent({__name:"LoginForm",props:{dark:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["submit","provider","forgot-password"],setup(t,{emit:i}){const a=i,l=e.ref(""),n=e.ref(""),o=e.ref(!1),s=e.computed(()=>l.value.trim().length<3||n.value.length===0);e.watch(l,r=>{r.trim().length>=3&&(o.value=!1)});function d(){s.value||(o.value=!1,a("submit",{username:l.value,password:n.value}))}function c(r){r.preventDefault(),l.value.trim().length>=3?(o.value=!1,a("forgot-password",l.value)):o.value=!0}function m(r){a("provider",r)}return(r,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["login-form",{"login-form--dark":t.dark}])},[p[2]||(p[2]=e.createElementVNode("h2",{class:"login-form__title"},"Acessar Sistema",-1)),p[3]||(p[3]=e.createElementVNode("p",{class:"login-form__subtitle"},"Digite seu email e senha para continuar",-1)),e.createElementVNode("div",M,[e.createVNode(_,{modelValue:l.value,"onUpdate:modelValue":p[0]||(p[0]=b=>l.value=b),label:"Email",placeholder:"exemple@email.com",fullWidth:""},null,8,["modelValue"]),o.value?(e.openBlock(),e.createElementBlock("span",U," Por favor, informe um email válido para recuperar a senha. ")):e.createCommentVNode("",!0)]),e.createVNode(_,{modelValue:n.value,"onUpdate:modelValue":p[1]||(p[1]=b=>n.value=b),label:"Senha",placeholder:"Sua senha",type:"password",fullWidth:""},null,8,["modelValue"]),e.createVNode(P),e.createVNode(h,{label:"Entrar",variant:"solid",loading:t.loading,disabled:s.value,fullWidth:"",onClick:d},null,8,["loading","disabled"]),e.createElementVNode("a",{href:"#",class:"login-form__forgot-link",onClick:c}," Esqueci minha senha "),p[4]||(p[4]=e.createElementVNode("div",{class:"login-form__divider"},[e.createElementVNode("span",null,"OU CONTINUE COM")],-1)),e.createElementVNode("div",W,[e.createVNode(g,{provider:"google",dark:t.dark,onClick:m},null,8,["dark"]),e.createVNode(g,{provider:"microsoft",dark:t.dark,onClick:m},null,8,["dark"]),e.createVNode(g,{provider:"apple",dark:t.dark,onClick:m},null,8,["dark"])])],2))}}),[["__scopeId","data-v-fd6f0976"]]),k=u(e.defineComponent({__name:"BaseThemeToggle",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{default:"md"}},emits:["update:modelValue","change"],setup(t,{emit:i}){const a=t,l=i;function n(){if(a.disabled)return;const s=!a.modelValue;l("update:modelValue",s),l("change",s)}const o=e.computed(()=>["theme-toggle",`theme-toggle--${a.size}`,{"theme-toggle--dark":a.modelValue,"theme-toggle--disabled":a.disabled}]);return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),onClick:n},[...d[0]||(d[0]=[e.createStaticVNode('<div class="theme-toggle__icon theme-toggle__icon--left" data-v-af2312ab><i class="bi bi-sun-fill" data-v-af2312ab></i></div><div class="theme-toggle__track" data-v-af2312ab><div class="theme-toggle__thumb" data-v-af2312ab></div></div><div class="theme-toggle__icon theme-toggle__icon--right" data-v-af2312ab><i class="bi bi-moon-fill" data-v-af2312ab></i></div>',3)])],2))}}),[["__scopeId","data-v-af2312ab"]]),R={class:"app-header__left"},O=["src"],v={class:"app-header__right"},H={class:"app-header__theme"},j=["src"],q=u(e.defineComponent({__name:"BaseHeader",props:{userName:{},userAvatar:{},logo:{},theme:{type:Boolean,default:!1},mode:{default:"light"}},emits:["update:theme","profile-click"],setup(t,{emit:i}){const a=t,l=i;function n(d){l("update:theme",d)}function o(){l("profile-click")}const s=e.computed(()=>["app-header",`app-header--${a.mode}`]);return(d,c)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(s.value)},[e.createElementVNode("div",R,[e.createElementVNode("img",{src:a.logo,class:"app-header__logo",alt:"Tax For All"},null,8,O)]),e.createElementVNode("div",v,[e.createElementVNode("div",H,[c[0]||(c[0]=e.createElementVNode("span",{class:"app-header__theme-label"}," Tema ",-1)),e.createVNode(k,{"model-value":a.theme,size:"sm","onUpdate:modelValue":n},null,8,["model-value"])]),e.createElementVNode("button",{class:"app-header__profile",onClick:o},[e.createElementVNode("img",{src:a.userAvatar,class:"app-header__avatar"},null,8,j)])])],2))}}),[["__scopeId","data-v-d01c874c"]]),K=["onClick"],Y=u(e.defineComponent({__name:"BaseDropdown",props:{items:{},mode:{default:"light"}},emits:["action"],setup(t,{emit:i}){const a=t,l=i;function n(s){l("action",s.key)}const o=e.computed(()=>["dropdown",`dropdown--${a.mode}`]);return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,c=>(e.openBlock(),e.createElementBlock("button",{key:c.key,class:e.normalizeClass(["dropdown__item",{danger:c.danger}]),onClick:m=>n(c)},[e.createElementVNode("i",{class:e.normalizeClass(c.icon)},null,2),e.createElementVNode("span",null,e.toDisplayString(c.label),1)],10,K))),128))],2))}}),[["__scopeId","data-v-8ab8c529"]]),Z={class:"reset-password-form"},G={class:"reset-password-form__checklist"},J=u(e.defineComponent({__name:"ResetPassForm",props:{loading:{type:Boolean,default:!1}},emits:["submit"],setup(t,{emit:i}){const a=i,l=e.ref(""),n=e.ref(""),o=e.computed(()=>[{label:"Mínimo 8 caracteres",check:l.value.length>=8},{label:"Uma letra maiúscula",check:/[A-Z]/.test(l.value)},{label:"Uma letra minúscula",check:/[a-z]/.test(l.value)},{label:"Um número",check:/[0-9]/.test(l.value)},{label:"Um caractere especial (@$!%*?&)",check:/[!@#$%^&*(),.?":{}|<>]/.test(l.value)},{label:"As senhas coincidem",check:l.value===n.value&&n.value!==""}]),s=e.computed(()=>!o.value.every(c=>c.check));function d(){s.value||a("submit",l.value)}return(c,m)=>(e.openBlock(),e.createElementBlock("div",Z,[m[2]||(m[2]=e.createElementVNode("h2",{class:"reset-password-form__title"},"Redefinir Senha",-1)),m[3]||(m[3]=e.createElementVNode("p",{class:"reset-password-form__subtitle"},"Crie uma nova senha segura para continuar.",-1)),e.createVNode(_,{modelValue:l.value,"onUpdate:modelValue":m[0]||(m[0]=r=>l.value=r),label:"Nova Senha",placeholder:"Digite sua senha",type:"password",fullWidth:""},null,8,["modelValue"]),e.createVNode(_,{modelValue:n.value,"onUpdate:modelValue":m[1]||(m[1]=r=>n.value=r),label:"Confirmar Senha",placeholder:"Repita a nova senha",type:"password",fullWidth:""},null,8,["modelValue"]),e.createElementVNode("ul",G,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(r,p)=>(e.openBlock(),e.createElementBlock("li",{key:p,class:e.normalizeClass({"is-valid":r.check})},[e.createElementVNode("i",{class:e.normalizeClass(r.check?"bi bi-check":"bi bi-x")},null,2),e.createTextVNode(" "+e.toDisplayString(r.label),1)],2))),128))]),e.createVNode(h,{label:"Salvar Nova Senha",variant:"solid",loading:t.loading,disabled:s.value,fullWidth:"",onClick:d},null,8,["loading","disabled"])]))}}),[["__scopeId","data-v-9e2eaa9a"]]),Q={class:"code-verification"},X={class:"code-verification__input-container"},ee={class:"code-verification__slots"},ae=u(e.defineComponent({__name:"BaseCodeVerification",emits:["submit"],setup(t,{emit:i}){const a=i,l=e.ref("");return e.watch(l,n=>{const o=n.replace(/\D/g,"");o.length>4?l.value=o.slice(0,4):l.value=o,l.value.length===4&&a("submit",l.value)}),(n,o)=>(e.openBlock(),e.createElementBlock("div",Q,[o[3]||(o[3]=e.createElementVNode("h2",{class:"code-verification__title"},"Verifique seu e-mail",-1)),o[4]||(o[4]=e.createElementVNode("p",{class:"code-verification__subtitle"}," Enviamos um código de 4 dígitos para o seu e-mail. Digite-o abaixo: ",-1)),e.createElementVNode("div",X,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=s=>l.value=s),type:"tel",maxlength:"4",pattern:"[0-9]*",inputmode:"numeric",class:"code-verification__hidden-input",autofocus:""},null,512),[[e.vModelText,l.value]]),e.createElementVNode("div",ee,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(4,s=>e.createElementVNode("div",{key:s,class:e.normalizeClass(["code-verification__underline",{"is-active":l.value.length===s-1||l.value.length===4&&s===4}])},e.toDisplayString(l.value[s-1]||""),3)),64))])]),e.createElementVNode("button",{class:"code-verification__resend",onClick:o[1]||(o[1]=s=>l.value="")},[...o[2]||(o[2]=[e.createTextVNode(" Não recebi o código. ",-1),e.createElementVNode("strong",null,"Reenviar",-1)])])]))}}),[["__scopeId","data-v-02c59f14"]]);f.BaseButton=h,f.BaseCodeVerification=ae,f.BaseDropdown=Y,f.BaseHeader=q,f.BaseInput=_,f.BaseSnackbar=x,f.BaseThemeToggle=k,f.LoginForm=L,f.ResetPassForm=J,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1,6 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
2
+ submit: (code: string) => any;
3
+ }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
+ onSubmit?: ((code: string) => any) | undefined;
5
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
6
+ export default _default;
@@ -5,11 +5,13 @@ import { default as LoginForm } from './components/LoginForm.vue';
5
5
  import { default as BaseHeader } from './components/BaseHeader.vue';
6
6
  import { default as BaseDropdown } from './components/BaseDropdown.vue';
7
7
  import { default as BaseThemeToggle } from './components/BaseThemeToggle.vue';
8
+ import { default as ResetPassForm } from './components/ResetPassForm.vue';
9
+ import { default as BaseCodeVerification } from './components/BaseCodeVerification.vue';
8
10
  import { IBaseButtonProps, ButtonVariant, ButtonSize, ButtonState, IconPosition } from './interfaces/IBaseButton';
9
11
  import { IBaseInputProps, InputVariant, InputSize, InputState } from './interfaces/IBaseInput';
10
12
  import { IBaseSnackbarProps, SnackbarVariant } from './interfaces/IBaseSnackbar';
11
13
  import { IHeaderProps } from './interfaces/IBaseHeader';
12
14
  import { IDropdownProps, IDropdownItem } from './interfaces/IDropdown';
13
15
  import { IThemeToggleProps } from './interfaces/IThemeToggle';
14
- export { BaseButton, BaseInput, BaseSnackbar, LoginForm, BaseHeader, BaseDropdown, BaseThemeToggle, };
16
+ export { BaseButton, BaseInput, BaseSnackbar, LoginForm, BaseHeader, BaseDropdown, BaseThemeToggle, ResetPassForm, BaseCodeVerification, };
15
17
  export type { IBaseButtonProps, ButtonVariant, ButtonSize, ButtonState, IconPosition, IBaseInputProps, InputVariant, InputSize, InputState, IBaseSnackbarProps, SnackbarVariant, IHeaderProps, IDropdownProps, IDropdownItem, IThemeToggleProps, };
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as BaseCodeVerification } from '../../components/BaseCodeVerification.vue';
3
+ declare const meta: Meta<typeof BaseCodeVerification>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof BaseCodeVerification>;
6
+ export declare const Default: Story;
@@ -1,7 +1,7 @@
1
1
  import { Meta, StoryObj } from '@storybook/vue3-vite';
2
- import { default as BaseResetPasswordForm } from '../../components/ResetPassForm.vue';
3
- declare const meta: Meta<typeof BaseResetPasswordForm>;
2
+ import { default as ResetPasswordForm } from '../../components/ResetPassForm.vue';
3
+ declare const meta: Meta<typeof ResetPasswordForm>;
4
4
  export default meta;
5
- type Story = StoryObj<typeof BaseResetPasswordForm>;
5
+ type Story = StoryObj<typeof ResetPasswordForm>;
6
6
  export declare const Default: Story;
7
7
  export declare const Loading: Story;
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&display=swap";[data-v-0ce8be12]{font-family:Mulish,sans-serif}span[data-v-0ce8be12],form[data-v-0ce8be12],label[data-v-0ce8be12],header[data-v-0ce8be12],body[data-v-0ce8be12],section[data-v-0ce8be12]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-0ce8be12]{border:none;background:none}input[data-v-0ce8be12]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.base-button-wrapper[data-v-0ce8be12]{display:inline-flex;align-items:stretch}.base-button-wrapper.full-width[data-v-0ce8be12]{width:100%}.base-button-wrapper.split .base-button[data-v-0ce8be12]:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.base-button-wrapper.split .split-button[data-v-0ce8be12]{border-top-left-radius:0;border-bottom-left-radius:0;width:40px}.base-button[data-v-0ce8be12]{position:relative;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;font-weight:500;border-radius:8px;transition:all .2s ease;box-shadow:0 1px 2px #00000040;width:100%}.base-button.icon-only[data-v-0ce8be12]{padding:0 12px}.base-button[data-v-0ce8be12]:disabled{opacity:.6;cursor:not-allowed}.base-button[data-v-0ce8be12]:focus-visible{outline:none;box-shadow:0 0 0 3px #2f54d326}.size-compact[data-v-0ce8be12]{height:32px;font-size:14px}.size-cozy[data-v-0ce8be12]{height:40px;font-size:16px}.variant-solid[data-v-0ce8be12]{color:#fff}.variant-outline[data-v-0ce8be12]{background:transparent;border:1px solid}.variant-ghost[data-v-0ce8be12]{background:transparent}.state-neutral.variant-solid[data-v-0ce8be12]{background:#00aa76}.state-neutral.variant-solid[data-v-0ce8be12]:hover{background:#017955}.state-neutral.variant-outline[data-v-0ce8be12]{border-color:#00aa76;color:#00aa76}.state-neutral.variant-outline[data-v-0ce8be12]:hover{background:#00aa7615}.state-neutral.variant-ghost[data-v-0ce8be12]{color:#00aa76}.state-neutral.variant-ghost[data-v-0ce8be12]:hover{background:#00aa7615}.state-success.variant-solid[data-v-0ce8be12]{background:#017a74}.state-success.variant-solid[data-v-0ce8be12]:hover{background:#044946}.state-success.variant-outline[data-v-0ce8be12]{border-color:#017a74;color:#017a74}.state-success.variant-outline[data-v-0ce8be12]:hover{background:#01707426}.state-success.variant-ghost[data-v-0ce8be12]{color:#017a74}.state-success.variant-ghost[data-v-0ce8be12]:hover{background:#01707426}.state-warning.variant-solid[data-v-0ce8be12]{background:#f6cb5c;color:#1a1a1a}.state-warning.variant-solid[data-v-0ce8be12]:hover{background:#9f7509}.state-warning.variant-outline[data-v-0ce8be12]{border-color:#f6cb5c;color:#f6cb5c}.state-warning.variant-outline[data-v-0ce8be12]:hover{background:#f6cb5c26}.state-warning.variant-ghost[data-v-0ce8be12]{color:#f6cb5c}.state-warning.variant-ghost[data-v-0ce8be12]:hover{background:#f6cb5c26}.state-error.variant-solid[data-v-0ce8be12]{background:#c93f58}.state-error.variant-solid[data-v-0ce8be12]:hover{background:#a62f44}.state-error.variant-outline[data-v-0ce8be12]{border-color:#c93f58;color:#c93f58}.state-error.variant-outline[data-v-0ce8be12]:hover{background:#c93f5826}.state-error.variant-ghost[data-v-0ce8be12]{color:#c93f58}.state-error.variant-ghost[data-v-0ce8be12]:hover{background:#c93f5826}.state-info.variant-solid[data-v-0ce8be12]{background:#00aa76}.state-info.variant-solid[data-v-0ce8be12]:hover{background:#017955}.state-info.variant-outline[data-v-0ce8be12]{border-color:#00aa76;color:#00aa76}.state-info.variant-outline[data-v-0ce8be12]:hover{background:#00aa7615}.state-info.variant-ghost[data-v-0ce8be12]{color:#00aa76}.state-info.variant-ghost[data-v-0ce8be12]:hover{background:#00aa7615}.btn-icon[data-v-0ce8be12]{font-size:16px}.btn-badge[data-v-0ce8be12]{background:#fff;color:#1a1a1a;border-radius:999px;padding:0 6px;font-size:12px;font-weight:600}.spinner[data-v-0ce8be12]{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-0ce8be12 .6s linear infinite}@keyframes spin-0ce8be12{to{transform:rotate(360deg)}}[data-v-d79f0773]{font-family:Mulish,sans-serif}span[data-v-d79f0773],form[data-v-d79f0773],label[data-v-d79f0773],header[data-v-d79f0773],body[data-v-d79f0773],section[data-v-d79f0773]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-d79f0773]{border:none;background:none}input[data-v-d79f0773]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.base-input[data-v-d79f0773]{display:inline-flex;flex-direction:column;gap:4px;width:auto}.base-input--full[data-v-d79f0773]{width:100%}.base-input__label[data-v-d79f0773]{font-size:14px;color:#5e5e5e}.base-input__field[data-v-d79f0773]{border:none;outline:none;font-size:14px;padding:6px 8px;background:transparent;color:#000c;transition:all .2s ease}.base-input__field[data-v-d79f0773]::placeholder{color:#999}.base-input--underline .base-input__field[data-v-d79f0773]{border-bottom:1px solid #cccccc}.base-input--underline.base-input--hover .base-input__field[data-v-d79f0773]{border-bottom-color:#00aa76}.base-input--underline.base-input--focus .base-input__field[data-v-d79f0773]{border-bottom:2px solid #00aa76}.base-input--outlined .base-input__field[data-v-d79f0773]{border:1px solid #cccccc;border-radius:6px;background:#f9f9f9}.base-input--outlined.base-input--hover .base-input__field[data-v-d79f0773]{border-color:#00aa76;background:#00aa7615}.base-input--outlined.base-input--focus .base-input__field[data-v-d79f0773]{border:2px solid #00aa76;background:#fff;box-shadow:0 0 0 3px #00aa7615}.base-input--sm .base-input__field[data-v-d79f0773]{font-size:12px;padding:4px 6px}.base-input--md .base-input__field[data-v-d79f0773]{font-size:14px;padding:6px 8px}.base-input--lg .base-input__field[data-v-d79f0773]{font-size:16px;padding:10px 12px}.base-input--disabled .base-input__field[data-v-d79f0773]{background:#f0f0f0;border-color:#e0e0e0;color:#999;cursor:not-allowed;opacity:.7}.base-input--disabled .base-input__field[data-v-d79f0773]::placeholder{color:#ccc}*{font-family:Mulish,sans-serif}span,form,label,header,body,section{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button{border:none;background:none}input:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.base-snackbar{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:8px;color:#fff;box-shadow:0 8px 24px #00000040;opacity:1;transform:translateY(0);transition:opacity .4s ease,transform .4s ease}.base-snackbar--hide{opacity:0;transform:translateY(-8px)}.base-snackbar__icon{font-size:28px;display:flex;align-items:center}.base-snackbar__content{display:flex;flex-direction:column;flex:1}.base-snackbar__title{font-size:14px;font-weight:600}.base-snackbar__message{font-size:13px;opacity:.9}.base-snackbar__close{background:transparent;border:none;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:6px}.base-snackbar__close:hover{opacity:.85}.base-snackbar--success{background:#017a74}.base-snackbar--warning{background:#f6cb5c;color:#1a1a1a}.base-snackbar--warning .base-snackbar__close{color:#1a1a1a}.base-snackbar--critical{background:#c93f58}[data-v-b6215df6]{font-family:Mulish,sans-serif}span[data-v-b6215df6],form[data-v-b6215df6],label[data-v-b6215df6],header[data-v-b6215df6],body[data-v-b6215df6],section[data-v-b6215df6]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-b6215df6]{border:none;background:none}input[data-v-b6215df6]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.auth-chip[data-v-b6215df6]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:24px;border:1px solid #e0e0e0;background:#fff;color:#444;font-size:14px;cursor:pointer;transition:all .2s ease}.auth-chip[data-v-b6215df6]:hover{background:#f0f0f0}.auth-chip--dark[data-v-b6215df6]{background:#1a1a1a;border-color:#444;color:#fff}.auth-chip--dark[data-v-b6215df6]:hover{background:#2b2b2b}[data-v-b4abb288]{font-family:Mulish,sans-serif}span[data-v-b4abb288],form[data-v-b4abb288],label[data-v-b4abb288],header[data-v-b4abb288],body[data-v-b4abb288],section[data-v-b4abb288]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-b4abb288]{border:none;background:none}input[data-v-b4abb288]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.captcha-wrapper[data-v-b4abb288]{display:inline-block;border-radius:8px;overflow:hidden;width:300px;height:65px}[data-v-24aad6eb]{font-family:Mulish,sans-serif}span[data-v-24aad6eb],form[data-v-24aad6eb],label[data-v-24aad6eb],header[data-v-24aad6eb],body[data-v-24aad6eb],section[data-v-24aad6eb]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-24aad6eb]{border:none;background:none}input[data-v-24aad6eb]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.login-form[data-v-24aad6eb]{width:320px;padding:40px;border-radius:12px;background:#f9f9f9;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 12px 32px #00000040}.login-form--dark[data-v-24aad6eb]{background:#1a1a1a}.login-form--dark .login-form__title[data-v-24aad6eb]{color:#fff}.login-form--dark .login-form__subtitle[data-v-24aad6eb]{color:#999}.login-form--dark .login-form__forgot-link[data-v-24aad6eb]{color:#00aa76}.login-form__field-wrapper[data-v-24aad6eb]{width:100%;display:flex;flex-direction:column;gap:4px}.login-form__error-msg[data-v-24aad6eb]{font-size:11px;color:#c93f58;margin-left:4px;font-weight:500}.login-form__title[data-v-24aad6eb]{text-align:center;font-size:22px;font-weight:600;color:#2b2b2b;margin:0}.login-form__subtitle[data-v-24aad6eb]{text-align:center;font-size:14px;color:#666;margin:0}.login-form__forgot-link[data-v-24aad6eb]{font-size:13px;color:#017955;text-decoration:none;font-weight:500}.login-form__forgot-link[data-v-24aad6eb]:hover{text-decoration:underline}.login-form__divider[data-v-24aad6eb]{width:100%;display:flex;align-items:center;gap:10px;color:#999;font-size:12px;margin:8px 0}.login-form__divider[data-v-24aad6eb]:before,.login-form__divider[data-v-24aad6eb]:after{content:"";flex:1;height:1px;background:#e0e0e0}.login-form__providers[data-v-24aad6eb]{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}[data-v-af2312ab]{font-family:Mulish,sans-serif}span[data-v-af2312ab],form[data-v-af2312ab],label[data-v-af2312ab],header[data-v-af2312ab],body[data-v-af2312ab],section[data-v-af2312ab]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-af2312ab]{border:none;background:none}input[data-v-af2312ab]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.theme-toggle[data-v-af2312ab]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.theme-toggle--disabled[data-v-af2312ab]{opacity:.6;cursor:not-allowed}.theme-toggle__track[data-v-af2312ab]{position:relative;width:80px;height:40px;border-radius:20px;background:linear-gradient(90deg,#b5dbf8,#8cccf5);box-shadow:inset 0 4px 12px #00000026;transition:background .4s ease}.theme-toggle__thumb[data-v-af2312ab]{position:absolute;width:36px;height:36px;top:2px;left:2px;border-radius:50%;background:linear-gradient(145deg,#fff,#f0f0f0);box-shadow:0 4px 10px #0003;transition:left .4s cubic-bezier(.68,-.55,.27,1.55),background .6s ease,box-shadow .6s ease}.theme-toggle__icon[data-v-af2312ab]{display:flex;align-items:center;justify-content:center;font-size:26px;color:#666}.theme-toggle--dark .theme-toggle__track[data-v-af2312ab]{background:linear-gradient(90deg,#1d2332,#222)}.theme-toggle--dark .theme-toggle__thumb[data-v-af2312ab]{left:42px;background:linear-gradient(45deg,gold,#fa0);box-shadow:0 0 15px #ffd700e6,0 0 25px #6b48ffb3}.theme-toggle--dark .theme-toggle__icon--left[data-v-af2312ab]{opacity:.4}.theme-toggle--dark .theme-toggle__icon--right[data-v-af2312ab]{color:#f6cb5c}.theme-toggle:not(.theme-toggle--dark) .theme-toggle__icon--right[data-v-af2312ab]{opacity:.4}.theme-toggle:not(.theme-toggle--dark) .theme-toggle__icon--left[data-v-af2312ab]{color:#f6cb5c}.theme-toggle--sm .theme-toggle__track[data-v-af2312ab]{width:60px;height:30px}.theme-toggle--sm .theme-toggle__thumb[data-v-af2312ab]{width:26px;height:26px}.theme-toggle--lg .theme-toggle__track[data-v-af2312ab]{width:100px;height:50px}.theme-toggle--lg .theme-toggle__thumb[data-v-af2312ab]{width:46px;height:46px}[data-v-d01c874c]{font-family:Mulish,sans-serif}span[data-v-d01c874c],form[data-v-d01c874c],label[data-v-d01c874c],header[data-v-d01c874c],body[data-v-d01c874c],section[data-v-d01c874c]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-d01c874c]{border:none;background:none}input[data-v-d01c874c]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.app-header[data-v-d01c874c]{width:100%;height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.app-header__left[data-v-d01c874c]{display:flex;align-items:center}.app-header__logo[data-v-d01c874c]{height:36px;object-fit:contain}.app-header__right[data-v-d01c874c]{display:flex;align-items:center;gap:24px}.app-header__theme[data-v-d01c874c]{display:flex;align-items:center;gap:10px}.app-header__theme-label[data-v-d01c874c]{font-size:14px;font-weight:500}.app-header__profile[data-v-d01c874c]{display:flex;align-items:center;gap:10px;border:none;background:transparent;cursor:pointer}.app-header__avatar[data-v-d01c874c]{width:34px;height:34px;border-radius:50%;object-fit:cover}.app-header__name[data-v-d01c874c]{font-size:14px;font-weight:500}.app-header--light[data-v-d01c874c]{background:#fff;border-bottom:1px solid #e0e0e0}.app-header--light .app-header__name[data-v-d01c874c]{color:#1a1a1a}.app-header--light .app-header__theme-label[data-v-d01c874c]{color:#2b2b2b}.app-header--dark[data-v-d01c874c]{background:#1a1a1a;border-bottom:1px solid #444444}.app-header--dark .app-header__name[data-v-d01c874c]{color:#fff}.app-header--dark .app-header__theme-label[data-v-d01c874c]{color:#f9f9f9}[data-v-8ab8c529]{font-family:Mulish,sans-serif}span[data-v-8ab8c529],form[data-v-8ab8c529],label[data-v-8ab8c529],header[data-v-8ab8c529],body[data-v-8ab8c529],section[data-v-8ab8c529]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-8ab8c529]{border:none;background:none}input[data-v-8ab8c529]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.dropdown[data-v-8ab8c529]{width:240px;border-radius:12px;padding:8px 0;display:flex;flex-direction:column;gap:4px;box-shadow:0 10px 30px #00000040}.dropdown__item[data-v-8ab8c529]{display:flex;align-items:center;gap:10px;padding:10px 16px;border:none;background:transparent;cursor:pointer;font-size:14px;text-align:left;transition:background .2s}.dropdown__item i[data-v-8ab8c529]{font-size:16px}.dropdown__item.danger[data-v-8ab8c529]{color:#c93f58}.dropdown--light[data-v-8ab8c529]{background:#fff}.dropdown--light .dropdown__item[data-v-8ab8c529]{color:#2b2b2b}.dropdown--light .dropdown__item[data-v-8ab8c529]:hover{background:#f0f0f0}.dropdown--light .dropdown__item.danger[data-v-8ab8c529]{color:#c93f58}.dropdown--light .dropdown__item.danger[data-v-8ab8c529]:hover{background:#c93f5826}.dropdown--dark[data-v-8ab8c529]{background:#1a1a1a}.dropdown--dark .dropdown__item[data-v-8ab8c529]{color:#f9f9f9}.dropdown--dark .dropdown__item[data-v-8ab8c529]:hover{background:#2b2b2b}.dropdown--dark .dropdown__item.danger[data-v-8ab8c529]{color:#c93f58}.dropdown--dark .dropdown__item.danger[data-v-8ab8c529]:hover{background:#c93f5826}
1
+ @import"https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&display=swap";[data-v-0ce8be12]{font-family:Mulish,sans-serif}span[data-v-0ce8be12],form[data-v-0ce8be12],label[data-v-0ce8be12],header[data-v-0ce8be12],body[data-v-0ce8be12],section[data-v-0ce8be12]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-0ce8be12]{border:none;background:none}input[data-v-0ce8be12]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.base-button-wrapper[data-v-0ce8be12]{display:inline-flex;align-items:stretch}.base-button-wrapper.full-width[data-v-0ce8be12]{width:100%}.base-button-wrapper.split .base-button[data-v-0ce8be12]:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.base-button-wrapper.split .split-button[data-v-0ce8be12]{border-top-left-radius:0;border-bottom-left-radius:0;width:40px}.base-button[data-v-0ce8be12]{position:relative;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;font-weight:500;border-radius:8px;transition:all .2s ease;box-shadow:0 1px 2px #00000040;width:100%}.base-button.icon-only[data-v-0ce8be12]{padding:0 12px}.base-button[data-v-0ce8be12]:disabled{opacity:.6;cursor:not-allowed}.base-button[data-v-0ce8be12]:focus-visible{outline:none;box-shadow:0 0 0 3px #2f54d326}.size-compact[data-v-0ce8be12]{height:32px;font-size:14px}.size-cozy[data-v-0ce8be12]{height:40px;font-size:16px}.variant-solid[data-v-0ce8be12]{color:#fff}.variant-outline[data-v-0ce8be12]{background:transparent;border:1px solid}.variant-ghost[data-v-0ce8be12]{background:transparent}.state-neutral.variant-solid[data-v-0ce8be12]{background:#00aa76}.state-neutral.variant-solid[data-v-0ce8be12]:hover{background:#017955}.state-neutral.variant-outline[data-v-0ce8be12]{border-color:#00aa76;color:#00aa76}.state-neutral.variant-outline[data-v-0ce8be12]:hover{background:#00aa7615}.state-neutral.variant-ghost[data-v-0ce8be12]{color:#00aa76}.state-neutral.variant-ghost[data-v-0ce8be12]:hover{background:#00aa7615}.state-success.variant-solid[data-v-0ce8be12]{background:#017a74}.state-success.variant-solid[data-v-0ce8be12]:hover{background:#044946}.state-success.variant-outline[data-v-0ce8be12]{border-color:#017a74;color:#017a74}.state-success.variant-outline[data-v-0ce8be12]:hover{background:#01707426}.state-success.variant-ghost[data-v-0ce8be12]{color:#017a74}.state-success.variant-ghost[data-v-0ce8be12]:hover{background:#01707426}.state-warning.variant-solid[data-v-0ce8be12]{background:#f6cb5c;color:#1a1a1a}.state-warning.variant-solid[data-v-0ce8be12]:hover{background:#9f7509}.state-warning.variant-outline[data-v-0ce8be12]{border-color:#f6cb5c;color:#f6cb5c}.state-warning.variant-outline[data-v-0ce8be12]:hover{background:#f6cb5c26}.state-warning.variant-ghost[data-v-0ce8be12]{color:#f6cb5c}.state-warning.variant-ghost[data-v-0ce8be12]:hover{background:#f6cb5c26}.state-error.variant-solid[data-v-0ce8be12]{background:#c93f58}.state-error.variant-solid[data-v-0ce8be12]:hover{background:#a62f44}.state-error.variant-outline[data-v-0ce8be12]{border-color:#c93f58;color:#c93f58}.state-error.variant-outline[data-v-0ce8be12]:hover{background:#c93f5826}.state-error.variant-ghost[data-v-0ce8be12]{color:#c93f58}.state-error.variant-ghost[data-v-0ce8be12]:hover{background:#c93f5826}.state-info.variant-solid[data-v-0ce8be12]{background:#00aa76}.state-info.variant-solid[data-v-0ce8be12]:hover{background:#017955}.state-info.variant-outline[data-v-0ce8be12]{border-color:#00aa76;color:#00aa76}.state-info.variant-outline[data-v-0ce8be12]:hover{background:#00aa7615}.state-info.variant-ghost[data-v-0ce8be12]{color:#00aa76}.state-info.variant-ghost[data-v-0ce8be12]:hover{background:#00aa7615}.btn-icon[data-v-0ce8be12]{font-size:16px}.btn-badge[data-v-0ce8be12]{background:#fff;color:#1a1a1a;border-radius:999px;padding:0 6px;font-size:12px;font-weight:600}.spinner[data-v-0ce8be12]{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-0ce8be12 .6s linear infinite}@keyframes spin-0ce8be12{to{transform:rotate(360deg)}}[data-v-d79f0773]{font-family:Mulish,sans-serif}span[data-v-d79f0773],form[data-v-d79f0773],label[data-v-d79f0773],header[data-v-d79f0773],body[data-v-d79f0773],section[data-v-d79f0773]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-d79f0773]{border:none;background:none}input[data-v-d79f0773]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.base-input[data-v-d79f0773]{display:inline-flex;flex-direction:column;gap:4px;width:auto}.base-input--full[data-v-d79f0773]{width:100%}.base-input__label[data-v-d79f0773]{font-size:14px;color:#5e5e5e}.base-input__field[data-v-d79f0773]{border:none;outline:none;font-size:14px;padding:6px 8px;background:transparent;color:#000c;transition:all .2s ease}.base-input__field[data-v-d79f0773]::placeholder{color:#999}.base-input--underline .base-input__field[data-v-d79f0773]{border-bottom:1px solid #cccccc}.base-input--underline.base-input--hover .base-input__field[data-v-d79f0773]{border-bottom-color:#00aa76}.base-input--underline.base-input--focus .base-input__field[data-v-d79f0773]{border-bottom:2px solid #00aa76}.base-input--outlined .base-input__field[data-v-d79f0773]{border:1px solid #cccccc;border-radius:6px;background:#f9f9f9}.base-input--outlined.base-input--hover .base-input__field[data-v-d79f0773]{border-color:#00aa76;background:#00aa7615}.base-input--outlined.base-input--focus .base-input__field[data-v-d79f0773]{border:2px solid #00aa76;background:#fff;box-shadow:0 0 0 3px #00aa7615}.base-input--sm .base-input__field[data-v-d79f0773]{font-size:12px;padding:4px 6px}.base-input--md .base-input__field[data-v-d79f0773]{font-size:14px;padding:6px 8px}.base-input--lg .base-input__field[data-v-d79f0773]{font-size:16px;padding:10px 12px}.base-input--disabled .base-input__field[data-v-d79f0773]{background:#f0f0f0;border-color:#e0e0e0;color:#999;cursor:not-allowed;opacity:.7}.base-input--disabled .base-input__field[data-v-d79f0773]::placeholder{color:#ccc}*{font-family:Mulish,sans-serif}span,form,label,header,body,section{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button{border:none;background:none}input:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.base-snackbar{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:8px;color:#fff;box-shadow:0 8px 24px #00000040;opacity:1;margin-bottom:12px;transform:translateY(0);transition:opacity .4s ease,transform .4s ease}.base-snackbar--hide{opacity:0;transform:translateY(-8px)}.base-snackbar__icon{font-size:28px;display:flex;align-items:center}.base-snackbar__content{display:flex;flex-direction:column;flex:1}.base-snackbar__title{font-size:14px;font-weight:600}.base-snackbar__message{font-size:13px;opacity:.9}.base-snackbar__close{background:transparent;border:none;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:6px}.base-snackbar__close:hover{opacity:.85}.base-snackbar--success{background:#017a74}.base-snackbar--warning{background:#f6cb5c;color:#1a1a1a}.base-snackbar--warning .base-snackbar__close{color:#1a1a1a}.base-snackbar--critical{background:#c93f58}[data-v-b6215df6]{font-family:Mulish,sans-serif}span[data-v-b6215df6],form[data-v-b6215df6],label[data-v-b6215df6],header[data-v-b6215df6],body[data-v-b6215df6],section[data-v-b6215df6]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-b6215df6]{border:none;background:none}input[data-v-b6215df6]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.auth-chip[data-v-b6215df6]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:24px;border:1px solid #e0e0e0;background:#fff;color:#444;font-size:14px;cursor:pointer;transition:all .2s ease}.auth-chip[data-v-b6215df6]:hover{background:#f0f0f0}.auth-chip--dark[data-v-b6215df6]{background:#1a1a1a;border-color:#444;color:#fff}.auth-chip--dark[data-v-b6215df6]:hover{background:#2b2b2b}[data-v-b4abb288]{font-family:Mulish,sans-serif}span[data-v-b4abb288],form[data-v-b4abb288],label[data-v-b4abb288],header[data-v-b4abb288],body[data-v-b4abb288],section[data-v-b4abb288]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-b4abb288]{border:none;background:none}input[data-v-b4abb288]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.captcha-wrapper[data-v-b4abb288]{display:inline-block;border-radius:8px;overflow:hidden;width:300px;height:65px}[data-v-fd6f0976]{font-family:Mulish,sans-serif}span[data-v-fd6f0976],form[data-v-fd6f0976],label[data-v-fd6f0976],header[data-v-fd6f0976],body[data-v-fd6f0976],section[data-v-fd6f0976]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-fd6f0976]{border:none;background:none}input[data-v-fd6f0976]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.login-form[data-v-fd6f0976]{width:320px;padding:40px;border-radius:12px;background:#f9f9f9;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 12px 32px #00000040}.login-form--dark[data-v-fd6f0976]{background:#1a1a1a}.login-form--dark .login-form__title[data-v-fd6f0976]{color:#fff}.login-form--dark .login-form__subtitle[data-v-fd6f0976]{color:#999}.login-form--dark .login-form__forgot-link[data-v-fd6f0976]{color:#00aa76}.login-form__field-wrapper[data-v-fd6f0976]{width:100%;display:flex;flex-direction:column;gap:4px}.login-form__error-msg[data-v-fd6f0976]{font-size:11px;color:#c93f58;margin-left:4px;font-weight:500}.login-form__title[data-v-fd6f0976]{text-align:center;font-size:22px;font-weight:600;color:#2b2b2b;margin:0}.login-form__subtitle[data-v-fd6f0976]{text-align:center;font-size:14px;color:#666;margin:0}.login-form__forgot-link[data-v-fd6f0976]{font-size:13px;color:#017955;text-decoration:none;font-weight:500}.login-form__forgot-link[data-v-fd6f0976]:hover{text-decoration:underline}.login-form__divider[data-v-fd6f0976]{width:100%;display:flex;align-items:center;gap:10px;color:#999;font-size:12px;margin:8px 0}.login-form__divider[data-v-fd6f0976]:before,.login-form__divider[data-v-fd6f0976]:after{content:"";flex:1;height:1px;background:#e0e0e0}.login-form__providers[data-v-fd6f0976]{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}[data-v-af2312ab]{font-family:Mulish,sans-serif}span[data-v-af2312ab],form[data-v-af2312ab],label[data-v-af2312ab],header[data-v-af2312ab],body[data-v-af2312ab],section[data-v-af2312ab]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-af2312ab]{border:none;background:none}input[data-v-af2312ab]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.theme-toggle[data-v-af2312ab]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.theme-toggle--disabled[data-v-af2312ab]{opacity:.6;cursor:not-allowed}.theme-toggle__track[data-v-af2312ab]{position:relative;width:80px;height:40px;border-radius:20px;background:linear-gradient(90deg,#b5dbf8,#8cccf5);box-shadow:inset 0 4px 12px #00000026;transition:background .4s ease}.theme-toggle__thumb[data-v-af2312ab]{position:absolute;width:36px;height:36px;top:2px;left:2px;border-radius:50%;background:linear-gradient(145deg,#fff,#f0f0f0);box-shadow:0 4px 10px #0003;transition:left .4s cubic-bezier(.68,-.55,.27,1.55),background .6s ease,box-shadow .6s ease}.theme-toggle__icon[data-v-af2312ab]{display:flex;align-items:center;justify-content:center;font-size:26px;color:#666}.theme-toggle--dark .theme-toggle__track[data-v-af2312ab]{background:linear-gradient(90deg,#1d2332,#222)}.theme-toggle--dark .theme-toggle__thumb[data-v-af2312ab]{left:42px;background:linear-gradient(45deg,gold,#fa0);box-shadow:0 0 15px #ffd700e6,0 0 25px #6b48ffb3}.theme-toggle--dark .theme-toggle__icon--left[data-v-af2312ab]{opacity:.4}.theme-toggle--dark .theme-toggle__icon--right[data-v-af2312ab]{color:#f6cb5c}.theme-toggle:not(.theme-toggle--dark) .theme-toggle__icon--right[data-v-af2312ab]{opacity:.4}.theme-toggle:not(.theme-toggle--dark) .theme-toggle__icon--left[data-v-af2312ab]{color:#f6cb5c}.theme-toggle--sm .theme-toggle__track[data-v-af2312ab]{width:60px;height:30px}.theme-toggle--sm .theme-toggle__thumb[data-v-af2312ab]{width:26px;height:26px}.theme-toggle--lg .theme-toggle__track[data-v-af2312ab]{width:100px;height:50px}.theme-toggle--lg .theme-toggle__thumb[data-v-af2312ab]{width:46px;height:46px}[data-v-d01c874c]{font-family:Mulish,sans-serif}span[data-v-d01c874c],form[data-v-d01c874c],label[data-v-d01c874c],header[data-v-d01c874c],body[data-v-d01c874c],section[data-v-d01c874c]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-d01c874c]{border:none;background:none}input[data-v-d01c874c]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.app-header[data-v-d01c874c]{width:100%;height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.app-header__left[data-v-d01c874c]{display:flex;align-items:center}.app-header__logo[data-v-d01c874c]{height:36px;object-fit:contain}.app-header__right[data-v-d01c874c]{display:flex;align-items:center;gap:24px}.app-header__theme[data-v-d01c874c]{display:flex;align-items:center;gap:10px}.app-header__theme-label[data-v-d01c874c]{font-size:14px;font-weight:500}.app-header__profile[data-v-d01c874c]{display:flex;align-items:center;gap:10px;border:none;background:transparent;cursor:pointer}.app-header__avatar[data-v-d01c874c]{width:34px;height:34px;border-radius:50%;object-fit:cover}.app-header__name[data-v-d01c874c]{font-size:14px;font-weight:500}.app-header--light[data-v-d01c874c]{background:#fff;border-bottom:1px solid #e0e0e0}.app-header--light .app-header__name[data-v-d01c874c]{color:#1a1a1a}.app-header--light .app-header__theme-label[data-v-d01c874c]{color:#2b2b2b}.app-header--dark[data-v-d01c874c]{background:#1a1a1a;border-bottom:1px solid #444444}.app-header--dark .app-header__name[data-v-d01c874c]{color:#fff}.app-header--dark .app-header__theme-label[data-v-d01c874c]{color:#f9f9f9}[data-v-8ab8c529]{font-family:Mulish,sans-serif}span[data-v-8ab8c529],form[data-v-8ab8c529],label[data-v-8ab8c529],header[data-v-8ab8c529],body[data-v-8ab8c529],section[data-v-8ab8c529]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-8ab8c529]{border:none;background:none}input[data-v-8ab8c529]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.dropdown[data-v-8ab8c529]{width:240px;border-radius:12px;padding:8px 0;display:flex;flex-direction:column;gap:4px;box-shadow:0 10px 30px #00000040}.dropdown__item[data-v-8ab8c529]{display:flex;align-items:center;gap:10px;padding:10px 16px;border:none;background:transparent;cursor:pointer;font-size:14px;text-align:left;transition:background .2s}.dropdown__item i[data-v-8ab8c529]{font-size:16px}.dropdown__item.danger[data-v-8ab8c529]{color:#c93f58}.dropdown--light[data-v-8ab8c529]{background:#fff}.dropdown--light .dropdown__item[data-v-8ab8c529]{color:#2b2b2b}.dropdown--light .dropdown__item[data-v-8ab8c529]:hover{background:#f0f0f0}.dropdown--light .dropdown__item.danger[data-v-8ab8c529]{color:#c93f58}.dropdown--light .dropdown__item.danger[data-v-8ab8c529]:hover{background:#c93f5826}.dropdown--dark[data-v-8ab8c529]{background:#1a1a1a}.dropdown--dark .dropdown__item[data-v-8ab8c529]{color:#f9f9f9}.dropdown--dark .dropdown__item[data-v-8ab8c529]:hover{background:#2b2b2b}.dropdown--dark .dropdown__item.danger[data-v-8ab8c529]{color:#c93f58}.dropdown--dark .dropdown__item.danger[data-v-8ab8c529]:hover{background:#c93f5826}[data-v-9e2eaa9a]{font-family:Mulish,sans-serif}span[data-v-9e2eaa9a],form[data-v-9e2eaa9a],label[data-v-9e2eaa9a],header[data-v-9e2eaa9a],body[data-v-9e2eaa9a],section[data-v-9e2eaa9a]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-9e2eaa9a]{border:none;background:none}input[data-v-9e2eaa9a]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.reset-password-form[data-v-9e2eaa9a]{width:320px;padding:40px;border-radius:12px;background:#f9f9f9;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 12px 32px #00000040}.reset-password-form__title[data-v-9e2eaa9a]{text-align:center;font-size:22px;font-weight:600;margin:0;color:#2b2b2b}.reset-password-form__subtitle[data-v-9e2eaa9a]{text-align:center;font-size:14px;color:#666;margin:0 0 4px}.reset-password-form__checklist[data-v-9e2eaa9a]{width:100%;list-style:none;padding:12px;margin:0;background:#f0f0f0;border-radius:8px;display:flex;flex-direction:column;gap:6px}.reset-password-form__checklist li[data-v-9e2eaa9a]{font-size:12px;color:#c93f58;display:flex;align-items:center;gap:8px;transition:all .2s ease}.reset-password-form__checklist li i[data-v-9e2eaa9a]{font-size:16px;line-height:1}.reset-password-form__checklist li.is-valid[data-v-9e2eaa9a]{color:#017a74}[data-v-02c59f14]{font-family:Mulish,sans-serif}span[data-v-02c59f14],form[data-v-02c59f14],label[data-v-02c59f14],header[data-v-02c59f14],body[data-v-02c59f14],section[data-v-02c59f14]{margin:0;padding:0;border:0;font-size:100%;text-decoration:none;font:inherit;vertical-align:baseline}button[data-v-02c59f14]{border:none;background:none}input[data-v-02c59f14]:focus{outline:none;border:2px solid #2ecc71;box-shadow:0 0 5px #2ecc71}.code-verification[data-v-02c59f14]{width:320px;padding:40px;border-radius:12px;background:#f9f9f9;display:flex;flex-direction:column;align-items:center;gap:24px;box-shadow:0 12px 32px #00000040}.code-verification__title[data-v-02c59f14]{font-size:20px;font-weight:600;color:#2b2b2b;margin:0}.code-verification__subtitle[data-v-02c59f14]{text-align:center;font-size:14px;color:#666;line-height:1.4;margin:0}.code-verification__input-container[data-v-02c59f14]{position:relative;width:100%;display:flex;justify-content:center}.code-verification__hidden-input[data-v-02c59f14]{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.code-verification__slots[data-v-02c59f14]{display:flex;gap:16px}.code-verification__underline[data-v-02c59f14]{width:40px;height:50px;border-bottom:3px solid #cccccc;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#017955;transition:all .2s ease}.code-verification__underline.is-active[data-v-02c59f14]{border-bottom-color:#00aa76;color:#00aa76}.code-verification__resend[data-v-02c59f14]{background:none;border:none;font-size:13px;color:#666;cursor:pointer}.code-verification__resend strong[data-v-02c59f14]{color:#017955}.code-verification__resend strong[data-v-02c59f14]:hover{text-decoration:underline}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tax4all-components",
3
3
  "private": false,
4
- "version": "0.1.13",
4
+ "version": "0.1.15",
5
5
  "description": "Pacote de componentes Vue",
6
6
  "author": "joao.tag",
7
7
  "license": "ISC",