@quidgest/ui 0.16.26 → 0.16.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quidgest UI v0.16.26
2
+ * Quidgest UI v0.16.27
3
3
  * (c) 2025 Quidgest - Consultores de Gestão, S.A.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"QThemeProvider.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QThemeProvider/QThemeProvider.vue"],"names":[],"mappings":"AAOA;AAmEC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAyDnD,iBAAS,cAAc;WAyBT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe,6TAOnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"QThemeProvider.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QThemeProvider/QThemeProvider.vue"],"names":[],"mappings":"AAOA;AA6DC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAmDnD,iBAAS,cAAc;WAyBT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe,6TAOnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,40 +1,34 @@
1
- import { defineComponent as i, toRef as m, watchEffect as u, onBeforeUnmount as h, createElementBlock as p, openBlock as f, normalizeClass as v, unref as d, renderSlot as y } from "vue";
2
- import { useId as C } from "../../composables/uid.js";
3
- import { provideTheme as _ } from "../../composables/theme.js";
4
- const q = ["id"], N = /* @__PURE__ */ i({
1
+ import { defineComponent as a, toRef as d, watchEffect as i, onBeforeUnmount as u, createElementBlock as p, openBlock as f, normalizeClass as h, unref as m, renderSlot as v } from "vue";
2
+ import { useId as y } from "../../composables/uid.js";
3
+ import { provideTheme as C } from "../../composables/theme.js";
4
+ const _ = ["id"], P = /* @__PURE__ */ a({
5
5
  __name: "QThemeProvider",
6
6
  props: {
7
7
  id: {},
8
8
  class: {},
9
9
  theme: {}
10
10
  },
11
- setup(a) {
12
- const o = a, {
13
- class: c,
14
- css: r,
15
- name: n
16
- } = _(m(o, "theme")), l = C(m(o, "id"));
11
+ setup(c) {
12
+ const o = c, { class: r, css: n } = C(d(o, "theme")), l = y(d(o, "id"));
17
13
  let e = null, s = null;
18
- return u(() => {
19
- if (r.value) {
20
- const t = `q-theme-${n.value}`;
21
- s = t, e = document.getElementById(t), e || (e = document.createElement("style"), e.id = t, document.head.appendChild(e)), e.textContent = r.value;
14
+ return i(() => {
15
+ if (n.value) {
16
+ const t = r.value;
17
+ s = t, e = document.getElementById(t), e || (e = document.createElement("style"), e.id = t, document.head.appendChild(e)), e.textContent = n.value;
22
18
  }
23
- }), h(() => {
19
+ }), u(() => {
24
20
  if (!e || !s) return;
25
21
  !Array.from(
26
- document.querySelectorAll(
27
- `.q-theme-provider.q-theme--${n.value}:not(#${l.value})`
28
- )
22
+ document.querySelectorAll(`.q-theme-provider.${r.value}:not(#${l.value})`)
29
23
  ).length && e.parentNode && e.parentNode.removeChild(e);
30
24
  }), (t, E) => (f(), p("div", {
31
- id: d(l),
32
- class: v(["q-theme-provider", d(c), o.class])
25
+ id: m(l),
26
+ class: h(["q-theme-provider", m(r), o.class])
33
27
  }, [
34
- y(t.$slots, "default")
35
- ], 10, q));
28
+ v(t.$slots, "default")
29
+ ], 10, _));
36
30
  }
37
31
  });
38
32
  export {
39
- N as default
33
+ P as default
40
34
  };
package/esm/framework.js CHANGED
@@ -1,34 +1,34 @@
1
- import { DEFAULTS_SYMBOL as c } from "./composables/defaults.js";
1
+ import { DEFAULTS_SYMBOL as i } from "./composables/defaults.js";
2
2
  import { ThemeSymbol as h } from "./composables/theme.js";
3
3
  import { DismissibleLayerKey as f } from "./symbols/dismissibleLayer.js";
4
4
  import { ToastSymbol as d } from "./composables/useToast/types.js";
5
5
  import { useDismissibleLayerStack as u } from "./composables/useDismissibleLayerStack/index.js";
6
6
  import { createToastInstance as p } from "./composables/useToast/index.js";
7
7
  import { defaultLightColorScheme as r, defaultDarkColorScheme as l } from "./templates/theme.js";
8
- import { ref as i, watch as S } from "vue";
8
+ import { ref as c, watch as S } from "vue";
9
9
  import { createThemeInstance as T, generateRootStyle as L } from "./utils/theme.js";
10
- function F(s = {}) {
10
+ function N(o = {}) {
11
11
  return { install: (t) => {
12
- const m = s.components || {};
13
- for (const a in m)
14
- t.component(a, m[a]);
15
- const e = s.defaults || {};
16
- t.provide(c, i(e)), y(t, s.themes);
17
- const n = u();
18
- t.provide(f, n), b(t);
12
+ const m = o.components || {};
13
+ for (const n in m)
14
+ t.component(n, m[n]);
15
+ const e = o.defaults || {};
16
+ t.provide(i, c(e)), y(t, o.themes);
17
+ const a = u();
18
+ t.provide(f, a), b(t);
19
19
  } };
20
20
  }
21
- function y(s, o) {
21
+ function y(o, s) {
22
22
  const t = [];
23
23
  let m;
24
- if (o)
25
- for (const e of o.themes) {
26
- const a = { ...e.mode === "light" ? r : l, ...e.colors };
24
+ if (s)
25
+ for (const e of s.themes) {
26
+ const n = { ...e.mode === "light" ? r : l, ...e.colors };
27
27
  t.push({
28
28
  name: e.name,
29
29
  mode: e.mode,
30
- scheme: a
31
- }), e.name === o.defaultTheme && (m = e.name);
30
+ scheme: n
31
+ }), e.name === s.defaultTheme && (m = e.name);
32
32
  }
33
33
  else {
34
34
  const e = [
@@ -46,18 +46,18 @@ function y(s, o) {
46
46
  t.push(...e), m = "light";
47
47
  }
48
48
  if (m) {
49
- const e = i(m), n = T(e, t);
50
- L(t), S(n.name, k, { immediate: !0 }), s.provide(h, n);
49
+ const e = c(m), a = T(e, t);
50
+ L(t), S(a.class, k, { immediate: !0 }), o.provide(h, a);
51
51
  }
52
52
  }
53
- function b(s) {
54
- const o = p();
55
- s.provide(d, o);
53
+ function b(o) {
54
+ const s = p();
55
+ o.provide(d, s);
56
56
  }
57
- function k(s) {
58
- const o = document.documentElement, m = Array.from(o.classList).filter((e) => !e.startsWith("q-theme"));
59
- o.className = m.join(" "), o.classList.add(`q-theme--${s}`);
57
+ function k(o) {
58
+ const s = document.documentElement, m = Array.from(s.classList).filter((e) => !e.startsWith("q-theme"));
59
+ s.className = m.join(" "), s.classList.add(o);
60
60
  }
61
61
  export {
62
- F as createFramework
62
+ N as createFramework
63
63
  };
@@ -51,4 +51,13 @@ export declare function toProperty(color: string): string;
51
51
  * @throws Will throw an error if no theme with the specified name exists in `themes`.
52
52
  */
53
53
  export declare function createThemeInstance(name: MaybeRefOrGetter<string>, themes: DeepReadonly<ThemeDefinition[]>): ThemeInstance;
54
+ /**
55
+ * Generates a CSS class name for a given theme.
56
+ *
57
+ * Converts the theme name to kebab-case and prepends it with `q-theme--`.
58
+ *
59
+ * @param name - The name of the theme (e.g., 'QuidgestTheme').
60
+ * @returns The corresponding CSS class name (e.g., 'q-theme--quidgest-theme').
61
+ */
62
+ export declare function getThemeClass(name: string): string;
54
63
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAQ1E,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,gBAAgB,CAY/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,UAoBtD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,QAM1D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,UAOvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,GACrC,aAAa,CAqBf"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAQ1E,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,gBAAgB,CAY/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,UAoBtD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,QAM1D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,UAOvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,GACrC,aAAa,CAqBf;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,UAEzC"}
@@ -1,15 +1,15 @@
1
- import { ref as f, toValue as h, computed as c } from "vue";
2
- import { parseColor as d } from "./color.js";
3
- import { toKebabCase as p } from "./string.js";
1
+ import { ref as d, toValue as p, computed as c } from "vue";
2
+ import { parseColor as $ } from "./color.js";
3
+ import { toKebabCase as l } from "./string.js";
4
4
  const a = "q-theme";
5
- function $() {
5
+ function g() {
6
6
  let e = document.getElementById(
7
7
  a
8
8
  );
9
9
  return e || (e = document.createElement("style"), e.id = a, document.head.appendChild(e)), e;
10
10
  }
11
- function l(e) {
12
- let t = `.q-theme--${e.name} {
11
+ function i(e) {
12
+ let t = `.${f(e.name)} {
13
13
  `;
14
14
  const n = e.scheme;
15
15
  let o;
@@ -18,42 +18,46 @@ function l(e) {
18
18
  if (r) {
19
19
  t += ` ${u(o)}: ${r};
20
20
  `;
21
- const m = d(r);
22
- t += ` ${u(o)}-rgb: ${m.r} ${m.g} ${m.b};
21
+ const s = $(r);
22
+ t += ` ${u(o)}-rgb: ${s.r} ${s.g} ${s.b};
23
23
  `;
24
24
  }
25
25
  }
26
26
  return t += `}
27
27
  `, t;
28
28
  }
29
- function E(e) {
30
- const t = e.map(l).join(`
31
- `), n = $();
29
+ function b(e) {
30
+ const t = e.map(i).join(`
31
+ `), n = g();
32
32
  n.textContent = t;
33
33
  }
34
34
  function u(e) {
35
- return e ? `--q-theme-${p(e)}` : "";
35
+ return e ? `--q-theme-${l(e)}` : "";
36
36
  }
37
- function b(e, t) {
38
- const n = f(h(e)), o = c(() => {
39
- const s = t.find((i) => i.name === n.value);
40
- if (!s)
37
+ function v(e, t) {
38
+ const n = d(p(e)), o = c(() => {
39
+ const m = t.find((h) => h.name === n.value);
40
+ if (!m)
41
41
  throw new Error(`Theme "${n.value}" not found`);
42
- return s;
43
- }), r = c(() => `q-theme--${o.value.name}`), m = c(() => l(o.value));
42
+ return m;
43
+ }), r = c(() => f(o.value.name)), s = c(() => i(o.value));
44
44
  return {
45
45
  name: n,
46
46
  current: o,
47
47
  themes: t,
48
48
  class: r,
49
- css: m
49
+ css: s
50
50
  };
51
51
  }
52
+ function f(e) {
53
+ return `q-theme--${l(e)}`;
54
+ }
52
55
  export {
53
56
  a as THEME_NODE_ID,
54
- b as createThemeInstance,
55
- E as generateRootStyle,
56
- l as generateThemeCss,
57
- $ as getThemeNode,
57
+ v as createThemeInstance,
58
+ b as generateRootStyle,
59
+ i as generateThemeCss,
60
+ f as getThemeClass,
61
+ g as getThemeNode,
58
62
  u as toProperty
59
63
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@quidgest/ui",
3
3
  "description": "Quidgest's UI framework",
4
- "version": "0.16.26",
4
+ "version": "0.16.27",
5
5
  "private": false,
6
6
  "type": "module",
7
7
  "author": "Quidgest",