glass-studio-ui-pro 1.1.6 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +68 -2
  2. package/dist/components/cg/CgIcon.vue.d.ts +31 -0
  3. package/dist/components/cm/CmButton.vue.d.ts +34 -0
  4. package/dist/components/cm/CmCard.vue.d.ts +28 -0
  5. package/dist/components/cm/CmIcon.vue.d.ts +30 -0
  6. package/dist/components/cn/CnButton.vue.d.ts +32 -0
  7. package/dist/components/cn/CnCard.vue.d.ts +28 -0
  8. package/dist/components/cn/CnIcon.vue.d.ts +32 -0
  9. package/dist/components/cn/CnModal.vue.d.ts +39 -0
  10. package/dist/index.d.ts +16 -19
  11. package/dist/liquid-glass-ui.es.js +749 -583
  12. package/dist/liquid-glass-ui.umd.js +1 -1
  13. package/dist/style.css +1 -1
  14. package/package.json +5 -1
  15. package/src/lib/styles/_mixins.scss +131 -125
  16. package/src/lib/styles/_themes.scss +47 -5
  17. package/src/lib/styles/_variables.scss +74 -52
  18. package/src/lib/styles/components/{_button.scss → cg/_button.scss} +1 -1
  19. package/src/lib/styles/components/{_card.scss → cg/_card.scss} +1 -1
  20. package/src/lib/styles/components/cg/_icon.scss +46 -0
  21. package/src/lib/styles/components/cm/_button.scss +39 -0
  22. package/src/lib/styles/components/cm/_card.scss +32 -0
  23. package/src/lib/styles/main.scss +36 -148
  24. package/dist/components/CgIcon.vue.d.ts +0 -65
  25. package/dist/components/CmIcon.vue.d.ts +0 -61
  26. package/dist/components/{CgButton.vue.d.ts → cg/CgButton.vue.d.ts} +3 -3
  27. package/dist/components/{CgCard.vue.d.ts → cg/CgCard.vue.d.ts} +2 -2
  28. package/dist/components/{CgCheckbox.vue.d.ts → cg/CgCheckbox.vue.d.ts} +0 -0
  29. package/dist/components/{CgFilters.vue.d.ts → cg/CgFilters.vue.d.ts} +0 -0
  30. package/dist/components/{CgModal.vue.d.ts → cg/CgModal.vue.d.ts} +3 -3
  31. package/dist/components/{CgNotification.vue.d.ts → cg/CgNotification.vue.d.ts} +0 -0
  32. package/dist/components/{CgToolbar.vue.d.ts → cg/CgToolbar.vue.d.ts} +4 -4
package/README.md CHANGED
@@ -33,7 +33,34 @@ npm install glass-studio-ui-pro
33
33
  yarn add glass-studio-ui-pro
34
34
  ```
35
35
 
36
- ### 2. Plugin Configuration (`main.ts`)
36
+ ### 2. Tailwind CSS v4 (Required)
37
+
38
+ `glass-studio-ui-pro` uses **Tailwind CSS v4** for gradient and utility classes (e.g., `CgIcon`). You must install and configure it in your project:
39
+
40
+ ```bash
41
+ npm install tailwindcss @tailwindcss/vite
42
+ ```
43
+
44
+ Then add the Tailwind Vite plugin to your `vite.config.ts`:
45
+
46
+ ```typescript
47
+ import tailwindcss from "@tailwindcss/vite";
48
+
49
+ export default defineConfig({
50
+ plugins: [
51
+ tailwindcss(),
52
+ // ...other plugins
53
+ ],
54
+ });
55
+ ```
56
+
57
+ Finally, import Tailwind CSS in your main CSS file (e.g., `main.css` or `style.css`):
58
+
59
+ ```css
60
+ @import "tailwindcss";
61
+ ```
62
+
63
+ ### 3. Plugin Configuration (`main.ts`)
37
64
 
38
65
  To unlock all Pro features, register the plugin and provide your **License Key**:
39
66
 
@@ -52,7 +79,7 @@ app.use(GlassUI, {
52
79
  app.mount("#app");
53
80
  ```
54
81
 
55
- ### 3. Global SVG Filters (`App.vue`)
82
+ ### 4. Global SVG Filters (`App.vue`)
56
83
 
57
84
  The liquid distortion engine requires the `CgFilters` component to be present at the root level (usually in `App.vue`):
58
85
 
@@ -85,6 +112,10 @@ To purchase a PRO license and unlock all premium glass effects, please visit [ht
85
112
 
86
113
  ## 🎨 Component Usage
87
114
 
115
+ ### 🔷 Glass Components (`Cg` prefix)
116
+
117
+ Glass components use the Crystal Glass design system with liquid distortion, glassmorphism, and material presets.
118
+
88
119
  ### CgCard (Glass Surface)
89
120
  A versatile container with backdrop blur and texture.
90
121
 
@@ -132,6 +163,31 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
132
163
 
133
164
  ---
134
165
 
166
+ ### 🔶 Common Components (`Cm` prefix)
167
+
168
+ Common components are general-purpose UI elements without glass effects.
169
+
170
+ ### CmIcon (Icon)
171
+ A single, reusable icon with morph animation on hover. Accepts any Lucide icon (or Vue component), with customizable size, gradient background, glow, and color.
172
+
173
+ ```vue
174
+ <script setup>
175
+ import { Settings } from "lucide-vue-next";
176
+ </script>
177
+
178
+ <template>
179
+ <CmIcon
180
+ :icon="Settings"
181
+ size="lg"
182
+ bg="bg-gradient-to-br from-emerald-500 to-teal-500"
183
+ glow="bg-emerald-400"
184
+ color="#ffd700"
185
+ />
186
+ </template>
187
+ ```
188
+
189
+ ---
190
+
135
191
  ## 📖 API Reference
136
192
 
137
193
  ### CgCard Props
@@ -180,6 +236,16 @@ Glass toolbars with multiple layout modes (Full, Floating, Fit).
180
236
  | `shadow` | `string` | `'reflex'` | Surface glint intensity. |
181
237
  | `position` | `string` | `'static'` | CSS Position: `static`, `top`, `bottom`. |
182
238
 
239
+ ### CmIcon Props
240
+
241
+ | Prop | Type | Default | Description |
242
+ | :--- | :--- | :--- | :--- |
243
+ | `icon` | `Component` | — | Lucide icon or any Vue component. **Required.** |
244
+ | `size` | `'sm' \| 'md' \| 'lg' \| 'xl' \| number` | `'md'` | Predefined size or custom px value. |
245
+ | `bg` | `string` | `'bg-gradient-to-br from-indigo-500 to-purple-600'` | Tailwind gradient class for the icon body. |
246
+ | `glow` | `string` | `'bg-indigo-400'` | Tailwind background class for hover glow. |
247
+ | `color` | `string` | `'white'` | CSS color value for the icon SVG. |
248
+
183
249
  ---
184
250
 
185
251
  ## 🔐 Security & License Guard
@@ -0,0 +1,31 @@
1
+ interface Props {
2
+ icon?: any;
3
+ size?: 'sm' | 'md' | 'lg' | 'xl' | number;
4
+ bg?: string;
5
+ glow?: string;
6
+ color?: string;
7
+ active?: boolean;
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ default?(_: {}): any;
13
+ };
14
+ refs: {};
15
+ rootEl: HTMLDivElement;
16
+ };
17
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
19
+ size: "sm" | "md" | "lg" | "xl" | number;
20
+ bg: string;
21
+ glow: string;
22
+ color: string;
23
+ active: boolean;
24
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
25
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
26
+ export default _default;
27
+ type __VLS_WithTemplateSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
@@ -0,0 +1,34 @@
1
+ interface Props {
2
+ color?: string;
3
+ variant?: "solid" | "tonal" | "outline" | "text";
4
+ size?: "sm" | "md" | "lg" | "xl";
5
+ lightPosition?: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
6
+ disabled?: boolean;
7
+ iconOnly?: boolean;
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ prepend?(_: {}): any;
13
+ default?(_: {}): any;
14
+ append?(_: {}): any;
15
+ };
16
+ refs: {};
17
+ rootEl: HTMLButtonElement;
18
+ };
19
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
21
+ size: "sm" | "md" | "lg" | "xl";
22
+ color: string;
23
+ variant: "solid" | "tonal" | "outline" | "text";
24
+ disabled: boolean;
25
+ lightPosition: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
26
+ iconOnly: boolean;
27
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
28
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
29
+ export default _default;
30
+ type __VLS_WithTemplateSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -0,0 +1,28 @@
1
+ interface Props {
2
+ color?: string;
3
+ intensity?: number;
4
+ lightPosition?: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
5
+ }
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ header?(_: {}): any;
10
+ default?(_: {}): any;
11
+ footer?(_: {}): any;
12
+ };
13
+ refs: {};
14
+ rootEl: HTMLDivElement;
15
+ };
16
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
18
+ color: string;
19
+ lightPosition: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
20
+ intensity: number;
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
22
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
23
+ export default _default;
24
+ type __VLS_WithTemplateSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,30 @@
1
+ interface Props {
2
+ variant?: "text" | "solid" | "outline" | "tonal";
3
+ color?: string;
4
+ size?: number;
5
+ rounded?: boolean;
6
+ lightPosition?: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
7
+ }
8
+ declare function __VLS_template(): {
9
+ attrs: Partial<{}>;
10
+ slots: {
11
+ default?(_: {}): any;
12
+ };
13
+ refs: {};
14
+ rootEl: HTMLDivElement;
15
+ };
16
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
18
+ size: number;
19
+ color: string;
20
+ variant: "text" | "solid" | "outline" | "tonal";
21
+ lightPosition: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
22
+ rounded: boolean;
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
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,32 @@
1
+ interface Props {
2
+ color?: string;
3
+ size?: "sm" | "md" | "lg" | "xl";
4
+ variant?: "solid" | "tonal" | "outline" | "text" | "soft";
5
+ pill?: boolean;
6
+ lightPosition?: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
7
+ intensity?: number;
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ default?(_: {}): any;
13
+ };
14
+ refs: {};
15
+ rootEl: HTMLButtonElement;
16
+ };
17
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
19
+ size: "sm" | "md" | "lg" | "xl";
20
+ color: string;
21
+ variant: "solid" | "tonal" | "outline" | "text" | "soft";
22
+ lightPosition: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
23
+ intensity: number;
24
+ pill: boolean;
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
26
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
27
+ export default _default;
28
+ type __VLS_WithTemplateSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1,28 @@
1
+ interface Props {
2
+ color?: string;
3
+ intensity?: number;
4
+ lightPosition?: 'tl' | 'tr' | 'bl' | 'br' | 't' | 'b' | 'l' | 'r';
5
+ }
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ header?(_: {}): any;
10
+ default?(_: {}): any;
11
+ footer?(_: {}): any;
12
+ };
13
+ refs: {};
14
+ rootEl: HTMLDivElement;
15
+ };
16
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
18
+ color: string;
19
+ lightPosition: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
20
+ intensity: number;
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
22
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
23
+ export default _default;
24
+ type __VLS_WithTemplateSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,32 @@
1
+ interface Props {
2
+ color?: string;
3
+ variant?: 'solid' | 'tonal' | 'soft' | 'outline' | 'text';
4
+ size?: number | string;
5
+ pill?: boolean;
6
+ intensity?: number;
7
+ lightPosition?: 'tl' | 'tr' | 'bl' | 'br' | 't' | 'b' | 'l' | 'r';
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ default?(_: {}): any;
13
+ };
14
+ refs: {};
15
+ rootEl: HTMLDivElement;
16
+ };
17
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
19
+ size: number | string;
20
+ color: string;
21
+ variant: "solid" | "tonal" | "soft" | "outline" | "text";
22
+ lightPosition: "tl" | "tr" | "bl" | "br" | "t" | "b" | "l" | "r";
23
+ intensity: number;
24
+ pill: boolean;
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
27
+ export default _default;
28
+ type __VLS_WithTemplateSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1,39 @@
1
+ interface Props {
2
+ modelValue: boolean;
3
+ title?: string;
4
+ width?: string;
5
+ color?: string;
6
+ intensity?: number;
7
+ showClose?: boolean;
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ header?(_: {}): any;
13
+ default?(_: {}): any;
14
+ footer?(_: {}): any;
15
+ };
16
+ refs: {};
17
+ rootEl: any;
18
+ };
19
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
21
+ close: (...args: any[]) => void;
22
+ "update:modelValue": (...args: any[]) => void;
23
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
24
+ onClose?: ((...args: any[]) => any) | undefined;
25
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
26
+ }>, {
27
+ color: string;
28
+ title: string;
29
+ width: string;
30
+ showClose: boolean;
31
+ intensity: number;
32
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
33
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
34
+ export default _default;
35
+ type __VLS_WithTemplateSlots<T, S> = T & {
36
+ new (): {
37
+ $slots: S;
38
+ };
39
+ };
package/dist/index.d.ts CHANGED
@@ -1,19 +1,16 @@
1
- import { default as CgCard } from './components/CgCard.vue';
2
- import { default as CgButton } from './components/CgButton.vue';
3
- import { default as CgCheckbox } from './components/CgCheckbox.vue';
4
- import { default as CgFilters } from './components/CgFilters.vue';
5
- import { default as CgModal } from './components/CgModal.vue';
6
- import { default as CgToolbar } from './components/CgToolbar.vue';
7
- import { default as CgNotification } from './components/CgNotification.vue';
8
- import { default as CgIcon } from './components/CgIcon.vue';
9
- import { default as CmIcon } from './components/CmIcon.vue';
10
- import { getLicenseStatus } from './core/license';
11
- export { CgCard, CgButton, CgCheckbox, CgFilters, CgModal, CgToolbar, CgNotification, CgIcon, CmIcon, getLicenseStatus };
12
- export interface GlassUIOptions {
13
- licenseKey?: string;
14
- }
15
- declare const GlassUI: {
16
- install(app: any, options?: GlassUIOptions): void;
17
- };
18
- export { GlassUI };
19
- export default GlassUI;
1
+ export { default as CgIcon } from './components/cg/CgIcon.vue';
2
+ export { default as CgCard } from './components/cg/CgCard.vue';
3
+ export { default as CgButton } from './components/cg/CgButton.vue';
4
+ export { default as CgModal } from './components/cg/CgModal.vue';
5
+ export { default as CgToolbar } from './components/cg/CgToolbar.vue';
6
+ export { default as CgNotification } from './components/cg/CgNotification.vue';
7
+ export { default as CgCheckbox } from './components/cg/CgCheckbox.vue';
8
+ export { default as CgFilters } from './components/cg/CgFilters.vue';
9
+ export { default as CmButton } from './components/cm/CmButton.vue';
10
+ export { default as CmCard } from './components/cm/CmCard.vue';
11
+ export { default as CmIcon } from './components/cm/CmIcon.vue';
12
+ export { default as CnButton } from './components/cn/CnButton.vue';
13
+ export { default as CnCard } from './components/cn/CnCard.vue';
14
+ export { default as CnIcon } from './components/cn/CnIcon.vue';
15
+ export { default as CnModal } from './components/cn/CnModal.vue';
16
+ export { getLicenseStatus, validateProductLicense } from './core/license';