glass-studio-ui-pro 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,9 +25,9 @@
25
25
  Install the library using npm or yarn:
26
26
 
27
27
  ```bash
28
- npm install glass-studio-ui
28
+ npm install glass-studio-ui-pro
29
29
  # OR
30
- yarn add glass-studio-ui
30
+ yarn add glass-studio-ui-pro
31
31
  ```
32
32
 
33
33
  ### Global Setup
@@ -0,0 +1,38 @@
1
+ interface Props {
2
+ variant?: 'default' | 'primary' | 'ghost';
3
+ active?: boolean;
4
+ glow?: boolean;
5
+ blur?: number;
6
+ opacity?: number;
7
+ distortion?: 'none' | 'wavy' | 'frosted' | 'grain' | 'ripple' | 'mist';
8
+ shadow?: boolean | string;
9
+ }
10
+ declare function __VLS_template(): {
11
+ attrs: Partial<{}>;
12
+ slots: {
13
+ default?(_: {}): any;
14
+ };
15
+ refs: {};
16
+ rootEl: HTMLButtonElement;
17
+ };
18
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
19
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
20
+ click: (...args: any[]) => void;
21
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
22
+ onClick?: ((...args: any[]) => any) | undefined;
23
+ }>, {
24
+ blur: number;
25
+ opacity: number;
26
+ distortion: "none" | "wavy" | "frosted" | "grain" | "ripple" | "mist";
27
+ shadow: boolean | string;
28
+ variant: "default" | "primary" | "ghost";
29
+ active: boolean;
30
+ glow: boolean;
31
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
32
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
33
+ export default _default;
34
+ type __VLS_WithTemplateSlots<T, S> = T & {
35
+ new (): {
36
+ $slots: S;
37
+ };
38
+ };
@@ -0,0 +1,44 @@
1
+ export type CardPreset = 'glass-frost' | 'light-frost' | 'heavy-frost' | 'grain-frost' | 'fine-frost' | 'soft-mist' | 'crystal' | 'deep-velvet' | 'frosted' | 'none' | 'glass';
2
+ export type DistortionType = 'none' | 'wavy' | 'frosted' | 'grain' | 'ripple' | 'mist';
3
+ interface Props {
4
+ type?: CardPreset;
5
+ blur?: string | number;
6
+ opacity?: string | number;
7
+ brightness?: string | number;
8
+ grain?: boolean;
9
+ distortion?: DistortionType;
10
+ customClass?: string;
11
+ radius?: string;
12
+ tag?: string;
13
+ shadow?: boolean | string;
14
+ }
15
+ declare function __VLS_template(): {
16
+ attrs: Partial<{}>;
17
+ slots: {
18
+ header?(_: {}): any;
19
+ default?(_: {}): any;
20
+ footer?(_: {}): any;
21
+ };
22
+ refs: {};
23
+ rootEl: any;
24
+ };
25
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
26
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
27
+ grain: boolean;
28
+ type: CardPreset;
29
+ blur: string | number;
30
+ opacity: string | number;
31
+ brightness: string | number;
32
+ distortion: DistortionType;
33
+ customClass: string;
34
+ radius: string;
35
+ tag: string;
36
+ shadow: boolean | string;
37
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
38
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
39
+ export default _default;
40
+ type __VLS_WithTemplateSlots<T, S> = T & {
41
+ new (): {
42
+ $slots: S;
43
+ };
44
+ };
@@ -0,0 +1,30 @@
1
+ interface Props {
2
+ modelValue?: boolean;
3
+ disabled?: boolean;
4
+ }
5
+ declare function __VLS_template(): {
6
+ attrs: Partial<{}>;
7
+ slots: {
8
+ default?(_: {}): any;
9
+ };
10
+ refs: {};
11
+ rootEl: HTMLLabelElement;
12
+ };
13
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
14
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
+ change: (...args: any[]) => void;
16
+ "update:modelValue": (...args: any[]) => void;
17
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
18
+ onChange?: ((...args: any[]) => any) | undefined;
19
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
20
+ }>, {
21
+ modelValue: boolean;
22
+ disabled: boolean;
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLLabelElement>;
24
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
25
+ export default _default;
26
+ type __VLS_WithTemplateSlots<T, S> = T & {
27
+ new (): {
28
+ $slots: S;
29
+ };
30
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, SVGSVGElement>;
2
+ export default _default;
@@ -0,0 +1,12 @@
1
+ export interface LicenseStatus {
2
+ isValid: boolean;
3
+ expiryDate?: string;
4
+ tier: 'free' | 'pro';
5
+ remainingDays?: number;
6
+ }
7
+ /**
8
+ * Validates the pro license from the central server.
9
+ * This runs automatically on module load.
10
+ */
11
+ export declare function validateProductLicense(): Promise<LicenseStatus>;
12
+ export declare const getLicenseStatus: () => LicenseStatus;
@@ -0,0 +1,10 @@
1
+ import { default as CmCard } from './components/CmCard.vue';
2
+ import { default as CmButton } from './components/CmButton.vue';
3
+ import { default as CmCheckbox } from './components/CmCheckbox.vue';
4
+ import { default as CmFilters } from './components/CmFilters.vue';
5
+ import { getLicenseStatus } from './core/license';
6
+ export { CmCard, CmButton, CmCheckbox, CmFilters, getLicenseStatus };
7
+ declare const _default: {
8
+ install(app: any): void;
9
+ };
10
+ export default _default;
@@ -1,11 +1,16 @@
1
- import { defineComponent as k, computed as p, openBlock as l, createBlock as x, resolveDynamicComponent as S, normalizeStyle as $, normalizeClass as C, withCtx as _, createElementBlock as d, renderSlot as b, createCommentVNode as v, createElementVNode as f, h as y, unref as D, createStaticVNode as G } from "vue";
2
- const F = {
1
+ import { defineComponent as S, computed as f, openBlock as d, createBlock as B, resolveDynamicComponent as V, normalizeStyle as C, normalizeClass as $, withCtx as F, createElementBlock as h, renderSlot as m, createCommentVNode as k, createElementVNode as b, h as x, unref as M, createStaticVNode as T } from "vue";
2
+ let j = {
3
+ isValid: !0,
4
+ // Default to true while checking
5
+ tier: "pro"
6
+ };
7
+ const _ = () => j, U = {
3
8
  key: 0,
4
9
  class: "cm-card-header"
5
- }, M = { class: "cm-card-body" }, T = {
10
+ }, N = { class: "cm-card-body" }, R = {
6
11
  key: 1,
7
12
  class: "cm-card-footer"
8
- }, V = /* @__PURE__ */ k({
13
+ }, L = /* @__PURE__ */ S({
9
14
  __name: "CmCard",
10
15
  props: {
11
16
  type: { default: "none" },
@@ -19,8 +24,8 @@ const F = {
19
24
  tag: { default: "div" },
20
25
  shadow: { type: [Boolean, String], default: void 0 }
21
26
  },
22
- setup(e) {
23
- const a = e, s = {
27
+ setup(t) {
28
+ const o = t, a = {
24
29
  "glass-frost": { blur: 0, opacity: 0, distortion: "mist", shadow: "reflex" },
25
30
  "light-frost": { blur: 5, opacity: 0.08, distortion: "frosted" },
26
31
  "heavy-frost": { blur: 24, opacity: 0, distortion: "frosted" },
@@ -38,60 +43,60 @@ const F = {
38
43
  frosted: { blur: 20, opacity: 0.12, distortion: "frosted" },
39
44
  glass: { blur: 0, opacity: 1, distortion: "none" },
40
45
  none: { blur: 15, opacity: 0.1, distortion: "none" }
41
- }, o = p(() => {
42
- const t = s[a.type] || s.none;
46
+ }, s = f(() => {
47
+ const e = a[o.type] || a.none, l = _().isValid ? o.distortion ?? e.distortion : "none";
43
48
  return {
44
- blur: a.blur ?? t.blur,
45
- opacity: a.opacity ?? t.opacity,
46
- brightness: a.brightness ?? t.brightness,
47
- distortion: a.distortion ?? t.distortion,
48
- shadow: a.shadow ?? t.shadow
49
+ blur: o.blur ?? e.blur,
50
+ opacity: o.opacity ?? e.opacity,
51
+ brightness: o.brightness ?? e.brightness,
52
+ distortion: l,
53
+ shadow: o.shadow ?? e.shadow
49
54
  };
50
- }), r = (t) => !t || t === "none" ? "" : `url(#cm-glass-distortion-${t})`, n = p(() => {
51
- const t = o.value.shadow;
52
- return t === "mist" || t === "deep" ? "cm-shadow-mist" : t === "reflex" || t === !0 ? "cm-shadow-reflex" : "";
53
- }), i = p(() => {
54
- const t = [], c = typeof o.value.blur == "string" ? parseFloat(o.value.blur) : o.value.blur;
55
- c && c > 0 && t.push(`blur(${c}px)`), o.value.brightness && t.push(`brightness(${o.value.brightness})`);
56
- const h = r(o.value.distortion);
57
- h && t.push(h);
58
- const w = t.join(" ");
59
- let g;
60
- const u = o.value.shadow;
61
- return typeof u == "string" && u !== "mist" && u !== "reflex" && u !== "deep" && (g = u), {
62
- backdropFilter: w,
63
- "-webkit-backdrop-filter": w,
64
- background: `rgba(var(--glass-bg-rgb), ${o.value.opacity})`,
65
- borderRadius: a.radius,
66
- boxShadow: g,
67
- "-webkit-box-shadow": g
55
+ }), n = (e) => !e || e === "none" ? "" : `url(#cm-glass-distortion-${e})`, i = f(() => {
56
+ const e = s.value.shadow;
57
+ return e === "mist" || e === "deep" ? "cm-shadow-mist" : e === "reflex" || e === !0 ? "cm-shadow-reflex" : "";
58
+ }), p = f(() => {
59
+ const e = [], r = typeof s.value.blur == "string" ? parseFloat(s.value.blur) : s.value.blur;
60
+ r && r > 0 && e.push(`blur(${r}px)`), s.value.brightness && e.push(`brightness(${s.value.brightness})`);
61
+ const l = n(s.value.distortion);
62
+ l && e.push(l);
63
+ const g = e.join(" ");
64
+ let u;
65
+ const c = s.value.shadow;
66
+ return typeof c == "string" && c !== "mist" && c !== "reflex" && c !== "deep" && (u = c), {
67
+ backdropFilter: g,
68
+ "-webkit-backdrop-filter": g,
69
+ background: `rgba(var(--glass-bg-rgb), ${s.value.opacity})`,
70
+ borderRadius: o.radius,
71
+ boxShadow: u,
72
+ "-webkit-box-shadow": u
68
73
  };
69
74
  });
70
- return (t, c) => (l(), x(S(e.tag), {
71
- class: C(["cm-card", [
72
- { "cm-card-grain": e.grain },
73
- `cm-distortion-${o.value.distortion}`,
74
- `cm-type-${e.type}`,
75
- n.value,
76
- e.customClass
75
+ return (e, r) => (d(), B(V(t.tag), {
76
+ class: $(["cm-card", [
77
+ { "cm-card-grain": t.grain },
78
+ `cm-distortion-${s.value.distortion}`,
79
+ `cm-type-${t.type}`,
80
+ i.value,
81
+ t.customClass
77
82
  ]]),
78
- style: $(i.value)
83
+ style: C(p.value)
79
84
  }, {
80
- default: _(() => [
81
- t.$slots.header ? (l(), d("div", F, [
82
- b(t.$slots, "header")
83
- ])) : v("", !0),
84
- f("div", M, [
85
- b(t.$slots, "default")
85
+ default: F(() => [
86
+ e.$slots.header ? (d(), h("div", U, [
87
+ m(e.$slots, "header")
88
+ ])) : k("", !0),
89
+ b("div", N, [
90
+ m(e.$slots, "default")
86
91
  ]),
87
- t.$slots.footer ? (l(), d("div", T, [
88
- b(t.$slots, "footer")
89
- ])) : v("", !0)
92
+ e.$slots.footer ? (d(), h("div", R, [
93
+ m(e.$slots, "footer")
94
+ ])) : k("", !0)
90
95
  ]),
91
96
  _: 3
92
97
  }, 8, ["class", "style"]));
93
98
  }
94
- }), U = { class: "cm-btn-content" }, j = /* @__PURE__ */ k({
99
+ }), I = { class: "cm-btn-content" }, O = /* @__PURE__ */ S({
95
100
  __name: "CmButton",
96
101
  props: {
97
102
  variant: { default: "default" },
@@ -99,31 +104,63 @@ const F = {
99
104
  glow: { type: Boolean, default: !1 },
100
105
  blur: { default: 12 },
101
106
  opacity: { default: 0.12 },
102
- distortion: { default: "none" }
107
+ distortion: { default: "none" },
108
+ shadow: { type: [Boolean, String], default: "none" }
103
109
  },
104
110
  emits: ["click"],
105
- setup(e, { emit: a }) {
106
- const s = e, o = (n) => n === "none" ? "" : `url(#cm-glass-distortion-${n})`, r = p(() => {
107
- const n = [`blur(${s.blur}px)`], i = o(s.distortion);
108
- i && n.push(i);
109
- const t = n.join(" ");
110
- return {
111
- backdropFilter: t,
112
- "-webkit-backdrop-filter": t,
113
- background: `rgba(var(--glass-bg-rgb), ${s.opacity})`
111
+ setup(t, { emit: o }) {
112
+ const a = t, s = f(() => ({
113
+ // Main button element is a transparent container
114
+ background: "none",
115
+ border: "none",
116
+ // Handle borders in surface or separate if needed
117
+ outline: "none",
118
+ boxShadow: "none"
119
+ // Handled by variants or shadowClass on main button
120
+ })), n = (e) => !e || e === "none" ? "" : `url(#cm-glass-distortion-${e})`, i = f(() => {
121
+ const e = [], r = [];
122
+ a.blur > 0 && e.push(`blur(${a.blur}px)`);
123
+ const g = _().isValid ? a.distortion : "none", u = n(g);
124
+ u && r.push(u);
125
+ const c = e.join(" "), G = r.join(" ");
126
+ let v = `rgba(var(--glass-bg-rgb), ${a.opacity})`, y = "rgba(var(--glass-border-rgb), 0.15)";
127
+ return a.variant === "primary" ? (v = `rgba(var(--primary-color-rgb), ${Math.min(a.opacity + 0.15, 0.4)})`, y = "rgba(var(--primary-color-rgb), 0.3)") : a.variant === "ghost" && (v = "transparent", y = "transparent", a.active && (v = `rgba(var(--glass-bg-rgb), ${a.opacity})`, y = "rgba(var(--glass-border-rgb), 0.15)")), {
128
+ position: "absolute",
129
+ top: 0,
130
+ left: 0,
131
+ right: 0,
132
+ bottom: 0,
133
+ background: v,
134
+ border: a.variant === "ghost" && !a.active ? "none" : `1px solid ${y}`,
135
+ backdropFilter: c,
136
+ "-webkit-backdrop-filter": c,
137
+ filter: G,
138
+ // SVG filters on the colored surface
139
+ pointerEvents: "none",
140
+ zIndex: 1,
141
+ borderRadius: "inherit",
142
+ transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)"
114
143
  };
144
+ }), p = f(() => {
145
+ const e = a.shadow;
146
+ return e === "mist" || e === "deep" ? "cm-shadow-mist" : e === "reflex" || e === !0 ? "cm-shadow-reflex" : "";
115
147
  });
116
- return (n, i) => (l(), d("button", {
117
- class: C(["cm-btn", [
118
- `cm-btn-${e.variant}`,
119
- { "cm-btn-active": e.active },
120
- { "cm-btn-glow": e.glow }
148
+ return (e, r) => (d(), h("button", {
149
+ class: $(["cm-btn", [
150
+ `cm-btn-${a.variant}`,
151
+ { "cm-btn-active": a.active },
152
+ { "cm-btn-glow": a.glow },
153
+ p.value
121
154
  ]]),
122
- style: $(r.value),
123
- onClick: i[0] || (i[0] = (t) => n.$emit("click", t))
155
+ style: C(s.value),
156
+ onClick: r[0] || (r[0] = (l) => e.$emit("click", l))
124
157
  }, [
125
- f("div", U, [
126
- b(n.$slots, "default")
158
+ b("div", {
159
+ class: "cm-btn-surface",
160
+ style: C(i.value)
161
+ }, null, 4),
162
+ b("div", I, [
163
+ m(e.$slots, "default")
127
164
  ])
128
165
  ], 6));
129
166
  }
@@ -134,14 +171,14 @@ const F = {
134
171
  * This source code is licensed under the ISC license.
135
172
  * See the LICENSE file in the root directory of this source tree.
136
173
  */
137
- const N = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
174
+ const q = (t) => t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
138
175
  /**
139
176
  * @license lucide-vue-next v0.477.0 - ISC
140
177
  *
141
178
  * This source code is licensed under the ISC license.
142
179
  * See the LICENSE file in the root directory of this source tree.
143
180
  */
144
- var m = {
181
+ var w = {
145
182
  xmlns: "http://www.w3.org/2000/svg",
146
183
  width: 24,
147
184
  height: 24,
@@ -158,18 +195,18 @@ var m = {
158
195
  * This source code is licensed under the ISC license.
159
196
  * See the LICENSE file in the root directory of this source tree.
160
197
  */
161
- const R = ({ size: e, strokeWidth: a = 2, absoluteStrokeWidth: s, color: o, iconNode: r, name: n, class: i, ...t }, { slots: c }) => y(
198
+ const E = ({ size: t, strokeWidth: o = 2, absoluteStrokeWidth: a, color: s, iconNode: n, name: i, class: p, ...e }, { slots: r }) => x(
162
199
  "svg",
163
200
  {
164
- ...m,
165
- width: e || m.width,
166
- height: e || m.height,
167
- stroke: o || m.stroke,
168
- "stroke-width": s ? Number(a) * 24 / Number(e) : a,
169
- class: ["lucide", `lucide-${N(n ?? "icon")}`],
170
- ...t
201
+ ...w,
202
+ width: t || w.width,
203
+ height: t || w.height,
204
+ stroke: s || w.stroke,
205
+ "stroke-width": a ? Number(o) * 24 / Number(t) : o,
206
+ class: ["lucide", `lucide-${q(i ?? "icon")}`],
207
+ ...e
171
208
  },
172
- [...r.map((h) => y(...h)), ...c.default ? [c.default()] : []]
209
+ [...n.map((l) => x(...l)), ...r.default ? [r.default()] : []]
173
210
  );
174
211
  /**
175
212
  * @license lucide-vue-next v0.477.0 - ISC
@@ -177,14 +214,14 @@ const R = ({ size: e, strokeWidth: a = 2, absoluteStrokeWidth: s, color: o, icon
177
214
  * This source code is licensed under the ISC license.
178
215
  * See the LICENSE file in the root directory of this source tree.
179
216
  */
180
- const O = (e, a) => (s, { slots: o }) => y(
181
- R,
217
+ const z = (t, o) => (a, { slots: s }) => x(
218
+ E,
182
219
  {
183
- ...s,
184
- iconNode: a,
185
- name: e
220
+ ...a,
221
+ iconNode: o,
222
+ name: t
186
223
  },
187
- o
224
+ s
188
225
  );
189
226
  /**
190
227
  * @license lucide-vue-next v0.477.0 - ISC
@@ -192,63 +229,68 @@ const O = (e, a) => (s, { slots: o }) => y(
192
229
  * This source code is licensed under the ISC license.
193
230
  * See the LICENSE file in the root directory of this source tree.
194
231
  */
195
- const q = O("CheckIcon", [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]]), I = { class: "cm-checkbox-wrapper" }, E = ["checked", "disabled"], A = { class: "cm-checkbox-box" }, L = {
232
+ const A = z("CheckIcon", [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]]), P = { class: "cm-checkbox-wrapper" }, K = ["checked", "disabled"], Z = { class: "cm-checkbox-box" }, H = {
196
233
  key: 0,
197
234
  class: "cm-checkbox-label"
198
- }, P = /* @__PURE__ */ k({
235
+ }, J = /* @__PURE__ */ S({
199
236
  __name: "CmCheckbox",
200
237
  props: {
201
238
  modelValue: { type: Boolean, default: !1 },
202
239
  disabled: { type: Boolean, default: !1 }
203
240
  },
204
241
  emits: ["update:modelValue", "change"],
205
- setup(e, { emit: a }) {
206
- const s = a, o = (r) => {
207
- const n = r.target;
208
- s("update:modelValue", n.checked), s("change", n.checked);
242
+ setup(t, { emit: o }) {
243
+ const a = o, s = (n) => {
244
+ const i = n.target;
245
+ a("update:modelValue", i.checked), a("change", i.checked);
209
246
  };
210
- return (r, n) => (l(), d("label", {
211
- class: C(["cm-checkbox-container", { disabled: e.disabled }])
247
+ return (n, i) => (d(), h("label", {
248
+ class: $(["cm-checkbox-container", { disabled: t.disabled }])
212
249
  }, [
213
- f("div", I, [
214
- f("input", {
250
+ b("div", P, [
251
+ b("input", {
215
252
  type: "checkbox",
216
- checked: e.modelValue,
217
- onChange: o,
218
- disabled: e.disabled
219
- }, null, 40, E),
220
- f("div", A, [
221
- e.modelValue ? (l(), x(D(q), {
253
+ checked: t.modelValue,
254
+ onChange: s,
255
+ disabled: t.disabled
256
+ }, null, 40, K),
257
+ b("div", Z, [
258
+ t.modelValue ? (d(), B(M(A), {
222
259
  key: 0,
223
260
  class: "cm-checkbox-icon"
224
- })) : v("", !0)
261
+ })) : k("", !0)
225
262
  ])
226
263
  ]),
227
- r.$slots.default ? (l(), d("span", L, [
228
- b(r.$slots, "default", {}, void 0, !0)
229
- ])) : v("", !0)
264
+ n.$slots.default ? (d(), h("span", H, [
265
+ m(n.$slots, "default", {}, void 0, !0)
266
+ ])) : k("", !0)
230
267
  ], 2));
231
268
  }
232
- }), B = (e, a) => {
233
- const s = e.__vccOpts || e;
234
- for (const [o, r] of a)
235
- s[o] = r;
236
- return s;
237
- }, z = /* @__PURE__ */ B(P, [["__scopeId", "data-v-d47cd0ab"]]), K = {}, Z = { style: { display: "none" } };
238
- function H(e, a) {
239
- return l(), d("svg", Z, [...a[0] || (a[0] = [
240
- G('<filter id="cm-glass-distortion-wavy" x="-10%" y="-10%" width="120%" height="120%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="fractalNoise" baseFrequency="0.003 0.007" numOctaves="1" result="turbulence" data-v-30a566b8></feTurbulence><feDisplacementMap in="SourceGraphic" in2="turbulence" scale="200" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-frosted" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="fractalNoise" baseFrequency="0.009 0.009" numOctaves="2" seed="92" result="noise" data-v-30a566b8></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.02" result="blur" data-v-30a566b8></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blur" scale="80" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-grain" x="0%" y="0%" width="100%" height="100%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="fractalNoise" baseFrequency="1.2 1.2" numOctaves="1" seed="9000" result="noise" data-v-30a566b8></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.1" result="blurred" data-v-30a566b8></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blurred" scale="100" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-ripple" x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="turbulence" baseFrequency="0.008" numOctaves="3" result="turbulence" data-v-30a566b8></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="155" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-mist" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="turbulence" baseFrequency="0.02" numOctaves="3" result="turbulence" data-v-30a566b8></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="30" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter>', 5)
269
+ }), D = (t, o) => {
270
+ const a = t.__vccOpts || t;
271
+ for (const [s, n] of o)
272
+ a[s] = n;
273
+ return a;
274
+ }, Q = /* @__PURE__ */ D(J, [["__scopeId", "data-v-d47cd0ab"]]), X = {}, Y = {
275
+ class: "cm-glass-filters",
276
+ "aria-hidden": "true",
277
+ focusable: "false"
278
+ };
279
+ function W(t, o) {
280
+ return d(), h("svg", Y, [...o[0] || (o[0] = [
281
+ T('<filter id="cm-glass-distortion-wavy" x="-10%" y="-10%" width="120%" height="120%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="fractalNoise" baseFrequency="0.003 0.007" numOctaves="1" result="turbulence" data-v-52af4cfb></feTurbulence><feDisplacementMap in="SourceGraphic" in2="turbulence" scale="200" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-frosted" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="fractalNoise" baseFrequency="0.009 0.009" numOctaves="2" seed="92" result="noise" data-v-52af4cfb></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.02" result="blur" data-v-52af4cfb></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blur" scale="80" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-grain" x="0%" y="0%" width="100%" height="100%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="fractalNoise" baseFrequency="1.2 1.2" numOctaves="1" seed="9000" result="noise" data-v-52af4cfb></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.1" result="blurred" data-v-52af4cfb></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blurred" scale="100" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-ripple" x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="turbulence" baseFrequency="0.008" numOctaves="3" result="turbulence" data-v-52af4cfb></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="155" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-mist" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="turbulence" baseFrequency="0.02" numOctaves="3" result="turbulence" data-v-52af4cfb></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="30" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter>', 5)
241
282
  ])]);
242
283
  }
243
- const J = /* @__PURE__ */ B(K, [["render", H], ["__scopeId", "data-v-30a566b8"]]), X = {
244
- install(e) {
245
- e.component("CmCard", V), e.component("CmButton", j), e.component("CmCheckbox", z), e.component("CmFilters", J);
284
+ const ee = /* @__PURE__ */ D(X, [["render", W], ["__scopeId", "data-v-52af4cfb"]]), ae = {
285
+ install(t) {
286
+ t.component("CmCard", L), t.component("CmButton", O), t.component("CmCheckbox", Q), t.component("CmFilters", ee);
246
287
  }
247
288
  };
248
289
  export {
249
- j as CmButton,
250
- V as CmCard,
251
- z as CmCheckbox,
252
- J as CmFilters,
253
- X as default
290
+ O as CmButton,
291
+ L as CmCard,
292
+ Q as CmCheckbox,
293
+ ee as CmFilters,
294
+ ae as default,
295
+ _ as getLicenseStatus
254
296
  };
@@ -1,26 +1,26 @@
1
- (function(i,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(i=typeof globalThis<"u"?globalThis:i||self,e(i.LiquidGlassUI={},i.Vue))})(this,(function(i,e){"use strict";const w={key:0,class:"cm-card-header"},B={class:"cm-card-body"},x={key:1,class:"cm-card-footer"},h=e.defineComponent({__name:"CmCard",props:{type:{default:"none"},blur:{default:void 0},opacity:{default:void 0},brightness:{default:void 0},grain:{type:Boolean,default:!1},distortion:{default:void 0},customClass:{default:""},radius:{default:"16px"},tag:{default:"div"},shadow:{type:[Boolean,String],default:void 0}},setup(t){const n=t,s={"glass-frost":{blur:0,opacity:0,distortion:"mist",shadow:"reflex"},"light-frost":{blur:5,opacity:.08,distortion:"frosted"},"heavy-frost":{blur:24,opacity:0,distortion:"frosted"},"grain-frost":{blur:4,opacity:0,distortion:"grain"},"fine-frost":{blur:7,opacity:0,distortion:"mist",shadow:"reflex"},"soft-mist":{blur:20,opacity:0,distortion:"none",brightness:2,shadow:"mist"},crystal:{blur:10,opacity:.08,distortion:"none"},"deep-velvet":{blur:60,opacity:.2,distortion:"none"},frosted:{blur:20,opacity:.12,distortion:"frosted"},glass:{blur:0,opacity:1,distortion:"none"},none:{blur:15,opacity:.1,distortion:"none"}},a=e.computed(()=>{const o=s[n.type]||s.none;return{blur:n.blur??o.blur,opacity:n.opacity??o.opacity,brightness:n.brightness??o.brightness,distortion:n.distortion??o.distortion,shadow:n.shadow??o.shadow}}),l=o=>!o||o==="none"?"":`url(#cm-glass-distortion-${o})`,r=e.computed(()=>{const o=a.value.shadow;return o==="mist"||o==="deep"?"cm-shadow-mist":o==="reflex"||o===!0?"cm-shadow-reflex":""}),c=e.computed(()=>{const o=[],d=typeof a.value.blur=="string"?parseFloat(a.value.blur):a.value.blur;d&&d>0&&o.push(`blur(${d}px)`),a.value.brightness&&o.push(`brightness(${a.value.brightness})`);const b=l(a.value.distortion);b&&o.push(b);const C=o.join(" ");let m;const u=a.value.shadow;return typeof u=="string"&&u!=="mist"&&u!=="reflex"&&u!=="deep"&&(m=u),{backdropFilter:C,"-webkit-backdrop-filter":C,background:`rgba(var(--glass-bg-rgb), ${a.value.opacity})`,borderRadius:n.radius,boxShadow:m,"-webkit-box-shadow":m}});return(o,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(["cm-card",[{"cm-card-grain":t.grain},`cm-distortion-${a.value.distortion}`,`cm-type-${t.type}`,r.value,t.customClass]]),style:e.normalizeStyle(c.value)},{default:e.withCtx(()=>[o.$slots.header?(e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(o.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",B,[e.renderSlot(o.$slots,"default")]),o.$slots.footer?(e.openBlock(),e.createElementBlock("div",x,[e.renderSlot(o.$slots,"footer")])):e.createCommentVNode("",!0)]),_:3},8,["class","style"]))}}),S={class:"cm-btn-content"},p=e.defineComponent({__name:"CmButton",props:{variant:{default:"default"},active:{type:Boolean,default:!1},glow:{type:Boolean,default:!1},blur:{default:12},opacity:{default:.12},distortion:{default:"none"}},emits:["click"],setup(t,{emit:n}){const s=t,a=r=>r==="none"?"":`url(#cm-glass-distortion-${r})`,l=e.computed(()=>{const r=[`blur(${s.blur}px)`],c=a(s.distortion);c&&r.push(c);const o=r.join(" ");return{backdropFilter:o,"-webkit-backdrop-filter":o,background:`rgba(var(--glass-bg-rgb), ${s.opacity})`}});return(r,c)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["cm-btn",[`cm-btn-${t.variant}`,{"cm-btn-active":t.active},{"cm-btn-glow":t.glow}]]),style:e.normalizeStyle(l.value),onClick:c[0]||(c[0]=o=>r.$emit("click",o))},[e.createElementVNode("div",S,[e.renderSlot(r.$slots,"default")])],6))}});/**
1
+ (function(i,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(i=typeof globalThis<"u"?globalThis:i||self,e(i.LiquidGlassUI={},i.Vue))})(this,(function(i,e){"use strict";let v={isValid:!0,tier:"pro"};const y=()=>v,x={key:0,class:"cm-card-header"},$={class:"cm-card-body"},_={key:1,class:"cm-card-footer"},k=e.defineComponent({__name:"CmCard",props:{type:{default:"none"},blur:{default:void 0},opacity:{default:void 0},brightness:{default:void 0},grain:{type:Boolean,default:!1},distortion:{default:void 0},customClass:{default:""},radius:{default:"16px"},tag:{default:"div"},shadow:{type:[Boolean,String],default:void 0}},setup(o){const a=o,n={"glass-frost":{blur:0,opacity:0,distortion:"mist",shadow:"reflex"},"light-frost":{blur:5,opacity:.08,distortion:"frosted"},"heavy-frost":{blur:24,opacity:0,distortion:"frosted"},"grain-frost":{blur:4,opacity:0,distortion:"grain"},"fine-frost":{blur:7,opacity:0,distortion:"mist",shadow:"reflex"},"soft-mist":{blur:20,opacity:0,distortion:"none",brightness:2,shadow:"mist"},crystal:{blur:10,opacity:.08,distortion:"none"},"deep-velvet":{blur:60,opacity:.2,distortion:"none"},frosted:{blur:20,opacity:.12,distortion:"frosted"},glass:{blur:0,opacity:1,distortion:"none"},none:{blur:15,opacity:.1,distortion:"none"}},r=e.computed(()=>{const t=n[a.type]||n.none,d=y().isValid?a.distortion??t.distortion:"none";return{blur:a.blur??t.blur,opacity:a.opacity??t.opacity,brightness:a.brightness??t.brightness,distortion:d,shadow:a.shadow??t.shadow}}),l=t=>!t||t==="none"?"":`url(#cm-glass-distortion-${t})`,c=e.computed(()=>{const t=r.value.shadow;return t==="mist"||t==="deep"?"cm-shadow-mist":t==="reflex"||t===!0?"cm-shadow-reflex":""}),m=e.computed(()=>{const t=[],s=typeof r.value.blur=="string"?parseFloat(r.value.blur):r.value.blur;s&&s>0&&t.push(`blur(${s}px)`),r.value.brightness&&t.push(`brightness(${r.value.brightness})`);const d=l(r.value.distortion);d&&t.push(d);const p=t.join(" ");let f;const u=r.value.shadow;return typeof u=="string"&&u!=="mist"&&u!=="reflex"&&u!=="deep"&&(f=u),{backdropFilter:p,"-webkit-backdrop-filter":p,background:`rgba(var(--glass-bg-rgb), ${r.value.opacity})`,borderRadius:a.radius,boxShadow:f,"-webkit-box-shadow":f}});return(t,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.tag),{class:e.normalizeClass(["cm-card",[{"cm-card-grain":o.grain},`cm-distortion-${r.value.distortion}`,`cm-type-${o.type}`,c.value,o.customClass]]),style:e.normalizeStyle(m.value)},{default:e.withCtx(()=>[t.$slots.header?(e.openBlock(),e.createElementBlock("div",x,[e.renderSlot(t.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",$,[e.renderSlot(t.$slots,"default")]),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(t.$slots,"footer")])):e.createCommentVNode("",!0)]),_:3},8,["class","style"]))}}),V={class:"cm-btn-content"},C=e.defineComponent({__name:"CmButton",props:{variant:{default:"default"},active:{type:Boolean,default:!1},glow:{type:Boolean,default:!1},blur:{default:12},opacity:{default:.12},distortion:{default:"none"},shadow:{type:[Boolean,String],default:"none"}},emits:["click"],setup(o,{emit:a}){const n=o,r=e.computed(()=>({background:"none",border:"none",outline:"none",boxShadow:"none"})),l=t=>!t||t==="none"?"":`url(#cm-glass-distortion-${t})`,c=e.computed(()=>{const t=[],s=[];n.blur>0&&t.push(`blur(${n.blur}px)`);const p=y().isValid?n.distortion:"none",f=l(p);f&&s.push(f);const u=t.join(" "),I=s.join(" ");let h=`rgba(var(--glass-bg-rgb), ${n.opacity})`,g="rgba(var(--glass-border-rgb), 0.15)";return n.variant==="primary"?(h=`rgba(var(--primary-color-rgb), ${Math.min(n.opacity+.15,.4)})`,g="rgba(var(--primary-color-rgb), 0.3)"):n.variant==="ghost"&&(h="transparent",g="transparent",n.active&&(h=`rgba(var(--glass-bg-rgb), ${n.opacity})`,g="rgba(var(--glass-border-rgb), 0.15)")),{position:"absolute",top:0,left:0,right:0,bottom:0,background:h,border:n.variant==="ghost"&&!n.active?"none":`1px solid ${g}`,backdropFilter:u,"-webkit-backdrop-filter":u,filter:I,pointerEvents:"none",zIndex:1,borderRadius:"inherit",transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)"}}),m=e.computed(()=>{const t=n.shadow;return t==="mist"||t==="deep"?"cm-shadow-mist":t==="reflex"||t===!0?"cm-shadow-reflex":""});return(t,s)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["cm-btn",[`cm-btn-${n.variant}`,{"cm-btn-active":n.active},{"cm-btn-glow":n.glow},m.value]]),style:e.normalizeStyle(r.value),onClick:s[0]||(s[0]=d=>t.$emit("click",d))},[e.createElementVNode("div",{class:"cm-btn-surface",style:e.normalizeStyle(c.value)},null,4),e.createElementVNode("div",V,[e.renderSlot(t.$slots,"default")])],6))}});/**
2
2
  * @license lucide-vue-next v0.477.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const v=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/**
6
+ */const N=o=>o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/**
7
7
  * @license lucide-vue-next v0.477.0 - ISC
8
8
  *
9
9
  * This source code is licensed under the ISC license.
10
10
  * See the LICENSE file in the root directory of this source tree.
11
- */var f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};/**
11
+ */var b={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};/**
12
12
  * @license lucide-vue-next v0.477.0 - ISC
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
- */const $=({size:t,strokeWidth:n=2,absoluteStrokeWidth:s,color:a,iconNode:l,name:r,class:c,...o},{slots:d})=>e.h("svg",{...f,width:t||f.width,height:t||f.height,stroke:a||f.stroke,"stroke-width":s?Number(n)*24/Number(t):n,class:["lucide",`lucide-${v(r??"icon")}`],...o},[...l.map(b=>e.h(...b)),...d.default?[d.default()]:[]]);/**
16
+ */const D=({size:o,strokeWidth:a=2,absoluteStrokeWidth:n,color:r,iconNode:l,name:c,class:m,...t},{slots:s})=>e.h("svg",{...b,width:o||b.width,height:o||b.height,stroke:r||b.stroke,"stroke-width":n?Number(a)*24/Number(o):a,class:["lucide",`lucide-${N(c??"icon")}`],...t},[...l.map(d=>e.h(...d)),...s.default?[s.default()]:[]]);/**
17
17
  * @license lucide-vue-next v0.477.0 - ISC
18
18
  *
19
19
  * This source code is licensed under the ISC license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
- */const _=(t,n)=>(s,{slots:a})=>e.h($,{...s,iconNode:n,name:t},a);/**
21
+ */const E=(o,a)=>(n,{slots:r})=>e.h(D,{...n,iconNode:a,name:o},r);/**
22
22
  * @license lucide-vue-next v0.477.0 - ISC
23
23
  *
24
24
  * This source code is licensed under the ISC license.
25
25
  * See the LICENSE file in the root directory of this source tree.
26
- */const V=_("CheckIcon",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),D={class:"cm-checkbox-wrapper"},G=["checked","disabled"],N={class:"cm-checkbox-box"},T={key:0,class:"cm-checkbox-label"},E=e.defineComponent({__name:"CmCheckbox",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:n}){const s=n,a=l=>{const r=l.target;s("update:modelValue",r.checked),s("change",r.checked)};return(l,r)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["cm-checkbox-container",{disabled:t.disabled}])},[e.createElementVNode("div",D,[e.createElementVNode("input",{type:"checkbox",checked:t.modelValue,onChange:a,disabled:t.disabled},null,40,G),e.createElementVNode("div",N,[t.modelValue?(e.openBlock(),e.createBlock(e.unref(V),{key:0,class:"cm-checkbox-icon"})):e.createCommentVNode("",!0)])]),l.$slots.default?(e.openBlock(),e.createElementBlock("span",T,[e.renderSlot(l.$slots,"default",{},void 0,!0)])):e.createCommentVNode("",!0)],2))}}),g=(t,n)=>{const s=t.__vccOpts||t;for(const[a,l]of n)s[a]=l;return s},y=g(E,[["__scopeId","data-v-d47cd0ab"]]),F={},M={style:{display:"none"}};function j(t,n){return e.openBlock(),e.createElementBlock("svg",M,[...n[0]||(n[0]=[e.createStaticVNode('<filter id="cm-glass-distortion-wavy" x="-10%" y="-10%" width="120%" height="120%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="fractalNoise" baseFrequency="0.003 0.007" numOctaves="1" result="turbulence" data-v-30a566b8></feTurbulence><feDisplacementMap in="SourceGraphic" in2="turbulence" scale="200" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-frosted" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="fractalNoise" baseFrequency="0.009 0.009" numOctaves="2" seed="92" result="noise" data-v-30a566b8></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.02" result="blur" data-v-30a566b8></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blur" scale="80" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-grain" x="0%" y="0%" width="100%" height="100%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="fractalNoise" baseFrequency="1.2 1.2" numOctaves="1" seed="9000" result="noise" data-v-30a566b8></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.1" result="blurred" data-v-30a566b8></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blurred" scale="100" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-ripple" x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="turbulence" baseFrequency="0.008" numOctaves="3" result="turbulence" data-v-30a566b8></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="155" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter><filter id="cm-glass-distortion-mist" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-30a566b8><feTurbulence type="turbulence" baseFrequency="0.02" numOctaves="3" result="turbulence" data-v-30a566b8></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="30" xChannelSelector="R" yChannelSelector="G" data-v-30a566b8></feDisplacementMap></filter>',5)])])}const k=g(F,[["render",j],["__scopeId","data-v-30a566b8"]]),U={install(t){t.component("CmCard",h),t.component("CmButton",p),t.component("CmCheckbox",y),t.component("CmFilters",k)}};i.CmButton=p,i.CmCard=h,i.CmCheckbox=y,i.CmFilters=k,i.default=U,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
26
+ */const G=E("CheckIcon",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),T={class:"cm-checkbox-wrapper"},F=["checked","disabled"],M={class:"cm-checkbox-box"},j={key:0,class:"cm-checkbox-label"},U=e.defineComponent({__name:"CmCheckbox",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(o,{emit:a}){const n=a,r=l=>{const c=l.target;n("update:modelValue",c.checked),n("change",c.checked)};return(l,c)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["cm-checkbox-container",{disabled:o.disabled}])},[e.createElementVNode("div",T,[e.createElementVNode("input",{type:"checkbox",checked:o.modelValue,onChange:r,disabled:o.disabled},null,40,F),e.createElementVNode("div",M,[o.modelValue?(e.openBlock(),e.createBlock(e.unref(G),{key:0,class:"cm-checkbox-icon"})):e.createCommentVNode("",!0)])]),l.$slots.default?(e.openBlock(),e.createElementBlock("span",j,[e.renderSlot(l.$slots,"default",{},void 0,!0)])):e.createCommentVNode("",!0)],2))}}),w=(o,a)=>{const n=o.__vccOpts||o;for(const[r,l]of a)n[r]=l;return n},B=w(U,[["__scopeId","data-v-d47cd0ab"]]),L={},R={class:"cm-glass-filters","aria-hidden":"true",focusable:"false"};function q(o,a){return e.openBlock(),e.createElementBlock("svg",R,[...a[0]||(a[0]=[e.createStaticVNode('<filter id="cm-glass-distortion-wavy" x="-10%" y="-10%" width="120%" height="120%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="fractalNoise" baseFrequency="0.003 0.007" numOctaves="1" result="turbulence" data-v-52af4cfb></feTurbulence><feDisplacementMap in="SourceGraphic" in2="turbulence" scale="200" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-frosted" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="fractalNoise" baseFrequency="0.009 0.009" numOctaves="2" seed="92" result="noise" data-v-52af4cfb></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.02" result="blur" data-v-52af4cfb></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blur" scale="80" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-grain" x="0%" y="0%" width="100%" height="100%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="fractalNoise" baseFrequency="1.2 1.2" numOctaves="1" seed="9000" result="noise" data-v-52af4cfb></feTurbulence><feGaussianBlur in="noise" stdDeviation="0.1" result="blurred" data-v-52af4cfb></feGaussianBlur><feDisplacementMap in="SourceGraphic" in2="blurred" scale="100" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-ripple" x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="turbulence" baseFrequency="0.008" numOctaves="3" result="turbulence" data-v-52af4cfb></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="155" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter><filter id="cm-glass-distortion-mist" x="-5%" y="-5%" width="110%" height="110%" filterUnits="objectBoundingBox" data-v-52af4cfb><feTurbulence type="turbulence" baseFrequency="0.02" numOctaves="3" result="turbulence" data-v-52af4cfb></feTurbulence><feDisplacementMap in2="turbulence" in="SourceGraphic" scale="30" xChannelSelector="R" yChannelSelector="G" data-v-52af4cfb></feDisplacementMap></filter>',5)])])}const S=w(L,[["render",q],["__scopeId","data-v-52af4cfb"]]),z={install(o){o.component("CmCard",k),o.component("CmButton",C),o.component("CmCheckbox",B),o.component("CmFilters",S)}};i.CmButton=C,i.CmCard=k,i.CmCheckbox=B,i.CmFilters=S,i.default=z,i.getLicenseStatus=y,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .cm-checkbox-container[data-v-d47cd0ab]{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .2s}.cm-checkbox-container.disabled[data-v-d47cd0ab]{cursor:not-allowed;opacity:.5}.cm-checkbox-wrapper[data-v-d47cd0ab]{position:relative;width:20px;height:20px}.cm-checkbox-wrapper input[data-v-d47cd0ab]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.cm-checkbox-box[data-v-d47cd0ab]{position:absolute;top:0;left:0;height:20px;width:20px;background:rgba(var(--glass-bg-rgb),.1);border:1px solid rgba(var(--glass-border-rgb),.2);border-radius:6px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.cm-checkbox-box .cm-checkbox-icon[data-v-d47cd0ab]{width:14px;height:14px;color:#fff;stroke-width:3px;transition:transform .2s}.cm-checkbox-wrapper input:checked~.cm-checkbox-box[data-v-d47cd0ab]{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 0 10px rgba(var(--primary-color-rgb),.3)}.cm-checkbox-container:hover .cm-checkbox-box[data-v-d47cd0ab]{border-color:rgba(var(--glass-border-rgb),.4);background:rgba(var(--glass-bg-rgb),.2)}.cm-checkbox-label[data-v-d47cd0ab]{font-size:.9rem;color:var(--text-color);opacity:.8}svg[data-v-30a566b8]{position:absolute;width:0;height:0;pointer-events:none}
1
+ .cm-checkbox-container[data-v-d47cd0ab]{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .2s}.cm-checkbox-container.disabled[data-v-d47cd0ab]{cursor:not-allowed;opacity:.5}.cm-checkbox-wrapper[data-v-d47cd0ab]{position:relative;width:20px;height:20px}.cm-checkbox-wrapper input[data-v-d47cd0ab]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.cm-checkbox-box[data-v-d47cd0ab]{position:absolute;top:0;left:0;height:20px;width:20px;background:rgba(var(--glass-bg-rgb),.1);border:1px solid rgba(var(--glass-border-rgb),.2);border-radius:6px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.cm-checkbox-box .cm-checkbox-icon[data-v-d47cd0ab]{width:14px;height:14px;color:#fff;stroke-width:3px;transition:transform .2s}.cm-checkbox-wrapper input:checked~.cm-checkbox-box[data-v-d47cd0ab]{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 0 10px rgba(var(--primary-color-rgb),.3)}.cm-checkbox-container:hover .cm-checkbox-box[data-v-d47cd0ab]{border-color:rgba(var(--glass-border-rgb),.4);background:rgba(var(--glass-bg-rgb),.2)}.cm-checkbox-label[data-v-d47cd0ab]{font-size:.9rem;color:var(--text-color);opacity:.8}.cm-glass-filters[data-v-52af4cfb]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none}
package/package.json CHANGED
@@ -1,44 +1,43 @@
1
1
  {
2
2
  "name": "glass-studio-ui-pro",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
- "files": ["dist", "media"],
6
-
5
+ "files": [
6
+ "dist",
7
+ "media"
8
+ ],
7
9
  "main": "./dist/liquid-glass-ui.umd.js",
8
10
  "module": "./dist/liquid-glass-ui.es.js",
9
11
  "types": "./dist/index.d.ts",
10
-
11
12
  "exports": {
12
13
  ".": {
14
+ "types": "./dist/index.d.ts",
13
15
  "import": "./dist/liquid-glass-ui.es.js",
14
16
  "require": "./dist/liquid-glass-ui.umd.js"
15
17
  },
16
18
  "./styles": "./dist/style.css"
17
19
  },
18
-
19
20
  "scripts": {
20
21
  "dev": "vite",
21
22
  "build": "vue-tsc && vite build",
22
23
  "preview": "vite preview"
23
24
  },
24
-
25
25
  "peerDependencies": {
26
26
  "vue": "^3.3.0"
27
27
  },
28
-
29
28
  "dependencies": {
30
29
  "lucide-vue-next": "^0.477.0"
31
30
  },
32
-
33
31
  "devDependencies": {
34
- "vue": "^3.5.13",
35
- "sass": "^1.85.1",
36
- "vue-router": "^4.5.0",
37
32
  "@types/node": "^22.0.0",
38
33
  "@vitejs/plugin-vue": "^5.2.1",
39
34
  "@vue/tsconfig": "^0.7.0",
35
+ "sass": "^1.85.1",
40
36
  "typescript": "^5.7.0",
41
37
  "vite": "^6.2.0",
38
+ "vite-plugin-dts": "^4.5.4",
39
+ "vue": "^3.5.13",
40
+ "vue-router": "^4.5.0",
42
41
  "vue-tsc": "^2.2.0"
43
42
  }
44
- }
43
+ }