iryx-ui 0.18.4 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/dist/component-names.d.ts +8 -0
- package/dist/component-names.js +10 -2
- package/dist/components/ColorPicker.vue_vue_type_script_setup_true_lang.js +38 -32
- package/dist/marketing/BrowserFrame.js +5 -0
- package/dist/marketing/BrowserFrame.vue.d.ts +40 -0
- package/dist/marketing/BrowserFrame.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/marketing/FeatureCard.js +5 -0
- package/dist/marketing/FeatureCard.vue.d.ts +40 -0
- package/dist/marketing/FeatureCard.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/marketing/Hero.js +5 -0
- package/dist/marketing/Hero.vue.d.ts +64 -0
- package/dist/marketing/Hero.vue_vue_type_script_setup_true_lang.js +94 -0
- package/dist/marketing/PricingCard.js +5 -0
- package/dist/marketing/PricingCard.vue.d.ts +70 -0
- package/dist/marketing/PricingCard.vue_vue_type_script_setup_true_lang.js +94 -0
- package/dist/marketing/PricingTable.js +5 -0
- package/dist/marketing/PricingTable.vue.d.ts +41 -0
- package/dist/marketing/PricingTable.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/marketing/Section.js +5 -0
- package/dist/marketing/Section.vue.d.ts +53 -0
- package/dist/marketing/Section.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/marketing/TestimonialCard.js +5 -0
- package/dist/marketing/TestimonialCard.vue.d.ts +41 -0
- package/dist/marketing/TestimonialCard.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/marketing/index.d.ts +7 -0
- package/dist/marketing/index.js +20 -0
- package/dist/marketing.d.ts +30 -0
- package/dist/marketing.js +9 -0
- package/dist/nuxt.d.ts +5 -0
- package/dist/nuxt.js +19 -13
- package/dist/plugin.d.ts +6 -1
- package/dist/plugin.js +3 -2
- package/dist/theme/accordion.js +1 -1
- package/dist/theme/alert.js +1 -1
- package/dist/theme/app-shell.js +1 -1
- package/dist/theme/banner.js +1 -1
- package/dist/theme/breadcrumb.js +1 -1
- package/dist/theme/browser-frame.d.ts +59 -0
- package/dist/theme/browser-frame.js +20 -0
- package/dist/theme/calendar.js +2 -2
- package/dist/theme/checkbox.js +1 -1
- package/dist/theme/collapsible.js +1 -1
- package/dist/theme/color-picker.js +2 -2
- package/dist/theme/combobox.js +2 -2
- package/dist/theme/date-picker.js +1 -1
- package/dist/theme/dialog.js +1 -1
- package/dist/theme/drawer.js +1 -1
- package/dist/theme/editable.js +1 -1
- package/dist/theme/feature-card.d.ts +41 -0
- package/dist/theme/feature-card.js +20 -0
- package/dist/theme/file-upload.js +1 -1
- package/dist/theme/hero.d.ts +98 -0
- package/dist/theme/hero.js +45 -0
- package/dist/theme/input.d.ts +2 -2
- package/dist/theme/input.js +2 -2
- package/dist/theme/menubar.js +1 -1
- package/dist/theme/navigation-menu.js +1 -1
- package/dist/theme/password-input.js +1 -1
- package/dist/theme/pin-input.js +1 -1
- package/dist/theme/popover.js +1 -1
- package/dist/theme/pricing-card.d.ts +62 -0
- package/dist/theme/pricing-card.js +23 -0
- package/dist/theme/radio-group.js +1 -1
- package/dist/theme/section.d.ts +140 -0
- package/dist/theme/section.js +48 -0
- package/dist/theme/sidebar.js +1 -1
- package/dist/theme/signature-pad.js +1 -1
- package/dist/theme/stepper.js +1 -1
- package/dist/theme/switch.js +1 -1
- package/dist/theme/table.js +2 -2
- package/dist/theme/tabs.js +1 -1
- package/dist/theme/tags-input.js +2 -2
- package/dist/theme/testimonial-card.d.ts +53 -0
- package/dist/theme/testimonial-card.js +20 -0
- package/dist/theme/toast.js +2 -2
- package/dist/theme/tree.js +1 -1
- package/package.json +5 -1
- package/theme.css +172 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export declare const pricingCardTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
featured: {
|
|
3
|
+
true: {
|
|
4
|
+
root: string;
|
|
5
|
+
};
|
|
6
|
+
false: {
|
|
7
|
+
root: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
}, {
|
|
11
|
+
root: string;
|
|
12
|
+
header: string;
|
|
13
|
+
name: string;
|
|
14
|
+
price: string;
|
|
15
|
+
amount: string;
|
|
16
|
+
period: string;
|
|
17
|
+
description: string;
|
|
18
|
+
features: string;
|
|
19
|
+
feature: string;
|
|
20
|
+
featureIcon: string;
|
|
21
|
+
}, undefined, {
|
|
22
|
+
featured: {
|
|
23
|
+
true: {
|
|
24
|
+
root: string;
|
|
25
|
+
};
|
|
26
|
+
false: {
|
|
27
|
+
root: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}, {
|
|
31
|
+
root: string;
|
|
32
|
+
header: string;
|
|
33
|
+
name: string;
|
|
34
|
+
price: string;
|
|
35
|
+
amount: string;
|
|
36
|
+
period: string;
|
|
37
|
+
description: string;
|
|
38
|
+
features: string;
|
|
39
|
+
feature: string;
|
|
40
|
+
featureIcon: string;
|
|
41
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
42
|
+
featured: {
|
|
43
|
+
true: {
|
|
44
|
+
root: string;
|
|
45
|
+
};
|
|
46
|
+
false: {
|
|
47
|
+
root: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}, {
|
|
51
|
+
root: string;
|
|
52
|
+
header: string;
|
|
53
|
+
name: string;
|
|
54
|
+
price: string;
|
|
55
|
+
amount: string;
|
|
56
|
+
period: string;
|
|
57
|
+
description: string;
|
|
58
|
+
features: string;
|
|
59
|
+
feature: string;
|
|
60
|
+
featureIcon: string;
|
|
61
|
+
}>>;
|
|
62
|
+
export type PricingCardSlots = keyof ReturnType<typeof pricingCardTheme>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { tv as e } from "tailwind-variants";
|
|
2
|
+
//#region src/theme/pricing-card.ts
|
|
3
|
+
var t = e({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "",
|
|
6
|
+
header: "flex items-center justify-between gap-2",
|
|
7
|
+
name: "font-medium",
|
|
8
|
+
price: "flex items-baseline gap-1.5",
|
|
9
|
+
amount: "text-4xl font-semibold tracking-tight tabular-nums",
|
|
10
|
+
period: "text-sm text-muted-foreground",
|
|
11
|
+
description: "mt-2 text-sm text-pretty text-muted-foreground",
|
|
12
|
+
features: "mt-6 flex flex-col gap-2.5",
|
|
13
|
+
feature: "flex items-start gap-2 text-sm",
|
|
14
|
+
featureIcon: "mt-0.5 size-4 shrink-0 text-primary"
|
|
15
|
+
},
|
|
16
|
+
variants: { featured: {
|
|
17
|
+
true: { root: "border-primary shadow-md ring-1 ring-primary/20" },
|
|
18
|
+
false: { root: "shadow-xs" }
|
|
19
|
+
} },
|
|
20
|
+
defaultVariants: { featured: !1 }
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
export { t as pricingCardTheme };
|
|
@@ -4,7 +4,7 @@ var t = e({
|
|
|
4
4
|
slots: {
|
|
5
5
|
root: "",
|
|
6
6
|
wrapper: "flex items-start gap-2.5",
|
|
7
|
-
item: "aspect-square shrink-0 cursor-pointer rounded-full border border-border bg-background transition-
|
|
7
|
+
item: "aspect-square shrink-0 cursor-pointer rounded-full border border-border bg-background transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary",
|
|
8
8
|
indicator: "flex size-full items-center justify-center after:block after:rounded-full after:bg-primary",
|
|
9
9
|
content: "grid gap-1",
|
|
10
10
|
label: "text-sm leading-5 text-foreground select-none",
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
export declare const sectionTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
tone: {
|
|
3
|
+
default: {};
|
|
4
|
+
muted: {
|
|
5
|
+
root: string;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
bordered: {
|
|
9
|
+
true: {
|
|
10
|
+
root: string;
|
|
11
|
+
};
|
|
12
|
+
false: {};
|
|
13
|
+
};
|
|
14
|
+
align: {
|
|
15
|
+
start: {
|
|
16
|
+
header: string;
|
|
17
|
+
};
|
|
18
|
+
center: {
|
|
19
|
+
header: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
padding: {
|
|
23
|
+
none: {};
|
|
24
|
+
sm: {
|
|
25
|
+
root: string;
|
|
26
|
+
};
|
|
27
|
+
md: {
|
|
28
|
+
root: string;
|
|
29
|
+
};
|
|
30
|
+
lg: {
|
|
31
|
+
root: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
hasHeader: {
|
|
35
|
+
true: {
|
|
36
|
+
body: string;
|
|
37
|
+
};
|
|
38
|
+
false: {};
|
|
39
|
+
};
|
|
40
|
+
}, {
|
|
41
|
+
root: string;
|
|
42
|
+
header: string;
|
|
43
|
+
eyebrow: string;
|
|
44
|
+
heading: string;
|
|
45
|
+
description: string;
|
|
46
|
+
body: string;
|
|
47
|
+
}, undefined, {
|
|
48
|
+
tone: {
|
|
49
|
+
default: {};
|
|
50
|
+
muted: {
|
|
51
|
+
root: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
bordered: {
|
|
55
|
+
true: {
|
|
56
|
+
root: string;
|
|
57
|
+
};
|
|
58
|
+
false: {};
|
|
59
|
+
};
|
|
60
|
+
align: {
|
|
61
|
+
start: {
|
|
62
|
+
header: string;
|
|
63
|
+
};
|
|
64
|
+
center: {
|
|
65
|
+
header: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
padding: {
|
|
69
|
+
none: {};
|
|
70
|
+
sm: {
|
|
71
|
+
root: string;
|
|
72
|
+
};
|
|
73
|
+
md: {
|
|
74
|
+
root: string;
|
|
75
|
+
};
|
|
76
|
+
lg: {
|
|
77
|
+
root: string;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
hasHeader: {
|
|
81
|
+
true: {
|
|
82
|
+
body: string;
|
|
83
|
+
};
|
|
84
|
+
false: {};
|
|
85
|
+
};
|
|
86
|
+
}, {
|
|
87
|
+
root: string;
|
|
88
|
+
header: string;
|
|
89
|
+
eyebrow: string;
|
|
90
|
+
heading: string;
|
|
91
|
+
description: string;
|
|
92
|
+
body: string;
|
|
93
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
94
|
+
tone: {
|
|
95
|
+
default: {};
|
|
96
|
+
muted: {
|
|
97
|
+
root: string;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
bordered: {
|
|
101
|
+
true: {
|
|
102
|
+
root: string;
|
|
103
|
+
};
|
|
104
|
+
false: {};
|
|
105
|
+
};
|
|
106
|
+
align: {
|
|
107
|
+
start: {
|
|
108
|
+
header: string;
|
|
109
|
+
};
|
|
110
|
+
center: {
|
|
111
|
+
header: string;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
padding: {
|
|
115
|
+
none: {};
|
|
116
|
+
sm: {
|
|
117
|
+
root: string;
|
|
118
|
+
};
|
|
119
|
+
md: {
|
|
120
|
+
root: string;
|
|
121
|
+
};
|
|
122
|
+
lg: {
|
|
123
|
+
root: string;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
hasHeader: {
|
|
127
|
+
true: {
|
|
128
|
+
body: string;
|
|
129
|
+
};
|
|
130
|
+
false: {};
|
|
131
|
+
};
|
|
132
|
+
}, {
|
|
133
|
+
root: string;
|
|
134
|
+
header: string;
|
|
135
|
+
eyebrow: string;
|
|
136
|
+
heading: string;
|
|
137
|
+
description: string;
|
|
138
|
+
body: string;
|
|
139
|
+
}>>;
|
|
140
|
+
export type SectionSlots = keyof ReturnType<typeof sectionTheme>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { tv as e } from "tailwind-variants";
|
|
2
|
+
//#region src/theme/section.ts
|
|
3
|
+
var t = e({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "w-full",
|
|
6
|
+
header: "flex flex-col gap-4",
|
|
7
|
+
eyebrow: "text-xs font-medium tracking-wide text-muted-foreground uppercase",
|
|
8
|
+
heading: "text-3xl font-semibold tracking-tight text-balance sm:text-4xl",
|
|
9
|
+
description: "text-pretty text-muted-foreground",
|
|
10
|
+
body: ""
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
tone: {
|
|
14
|
+
default: {},
|
|
15
|
+
muted: { root: "bg-muted/20" }
|
|
16
|
+
},
|
|
17
|
+
bordered: {
|
|
18
|
+
true: { root: "border-t border-border" },
|
|
19
|
+
false: {}
|
|
20
|
+
},
|
|
21
|
+
align: {
|
|
22
|
+
start: { header: "items-start text-left" },
|
|
23
|
+
center: { header: "mx-auto max-w-2xl items-center text-center" }
|
|
24
|
+
},
|
|
25
|
+
padding: {
|
|
26
|
+
none: {},
|
|
27
|
+
sm: { root: "py-12 sm:py-16" },
|
|
28
|
+
md: { root: "py-20 sm:py-24" },
|
|
29
|
+
lg: { root: "py-24 sm:py-32" }
|
|
30
|
+
},
|
|
31
|
+
hasHeader: {
|
|
32
|
+
true: { body: "mt-12" },
|
|
33
|
+
false: {}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
compoundVariants: [{
|
|
37
|
+
align: "start",
|
|
38
|
+
class: { description: "max-w-2xl" }
|
|
39
|
+
}],
|
|
40
|
+
defaultVariants: {
|
|
41
|
+
tone: "default",
|
|
42
|
+
bordered: !1,
|
|
43
|
+
align: "center",
|
|
44
|
+
padding: "md"
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
//#endregion
|
|
48
|
+
export { t as sectionTheme };
|
package/dist/theme/sidebar.js
CHANGED
|
@@ -8,7 +8,7 @@ var t = e({
|
|
|
8
8
|
footer: "flex shrink-0 items-center gap-2 border-t border-border px-3 py-3",
|
|
9
9
|
section: "flex flex-col gap-1",
|
|
10
10
|
sectionLabel: "px-2 pt-1 pb-0.5 text-xs font-medium tracking-wide text-muted-foreground uppercase",
|
|
11
|
-
link: "group/link relative flex w-full cursor-pointer items-center gap-3 rounded-lg px-2 py-2 text-sm font-medium text-muted-foreground no-underline transition-
|
|
11
|
+
link: "group/link relative flex w-full cursor-pointer items-center gap-3 rounded-lg px-2 py-2 text-sm font-medium text-muted-foreground no-underline transition-[color,background-color,border-color,box-shadow] outline-none select-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 data-[active]:bg-accent data-[active]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0",
|
|
12
12
|
linkLabel: "flex-1 truncate text-left",
|
|
13
13
|
linkBadge: "ml-auto shrink-0",
|
|
14
14
|
groupIcon: "ml-auto size-4 shrink-0 transition-[rotate] duration-200 ease-out group-data-[state=open]/link:rotate-90",
|
|
@@ -6,7 +6,7 @@ var n = t({
|
|
|
6
6
|
root: `relative flex flex-col ${e} h-auto overflow-hidden p-0 focus-within:ring-2 focus-within:ring-primary/50`,
|
|
7
7
|
canvas: "block w-full touch-none",
|
|
8
8
|
actions: "absolute top-2 right-2 flex items-center gap-1",
|
|
9
|
-
action: "inline-flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-
|
|
9
|
+
action: "inline-flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-[color,background-color,border-color,box-shadow] outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:size-3.5"
|
|
10
10
|
},
|
|
11
11
|
variants: {
|
|
12
12
|
invalid: { true: { root: "border-red-500 focus-within:ring-red-500/40" } },
|
package/dist/theme/stepper.js
CHANGED
|
@@ -4,7 +4,7 @@ var t = e({
|
|
|
4
4
|
slots: {
|
|
5
5
|
root: "flex w-full",
|
|
6
6
|
item: "group relative flex flex-1 items-center gap-3 last:flex-none",
|
|
7
|
-
trigger: "flex items-center gap-3 rounded-xl text-left outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50",
|
|
7
|
+
trigger: "flex items-center gap-3 rounded-xl text-left transition-shadow outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50",
|
|
8
8
|
indicator: "flex size-8 shrink-0 items-center justify-center rounded-full border border-border bg-linear-to-b text-sm font-medium transition-[color,border-color] group-data-[state=active]:border-primary group-data-[state=active]:from-primary-from group-data-[state=active]:to-primary-to group-data-[state=active]:text-primary-foreground group-data-[state=completed]:border-primary group-data-[state=completed]:from-primary-from group-data-[state=completed]:to-primary-to group-data-[state=completed]:text-primary-foreground [&_svg]:size-4",
|
|
9
9
|
content: "flex flex-col gap-0.5",
|
|
10
10
|
title: "text-sm font-medium text-foreground",
|
package/dist/theme/switch.js
CHANGED
|
@@ -3,7 +3,7 @@ import { tv as e } from "tailwind-variants";
|
|
|
3
3
|
var t = e({
|
|
4
4
|
slots: {
|
|
5
5
|
wrapper: "flex items-start gap-2.5",
|
|
6
|
-
root: "inline-flex shrink-0 cursor-pointer items-center rounded-full transition-
|
|
6
|
+
root: "inline-flex shrink-0 cursor-pointer items-center rounded-full transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted",
|
|
7
7
|
thumb: "pointer-events-none block rounded-full bg-background shadow-sm transition-transform data-[state=unchecked]:translate-x-0.5",
|
|
8
8
|
content: "grid gap-1",
|
|
9
9
|
label: "text-sm leading-5 font-medium text-foreground select-none",
|
package/dist/theme/table.js
CHANGED
|
@@ -8,14 +8,14 @@ var t = e({
|
|
|
8
8
|
tbody: "",
|
|
9
9
|
tr: "border-b border-border transition-colors last:border-b-0",
|
|
10
10
|
th: "border-b border-border px-3 py-3 text-start align-middle text-xs font-semibold tracking-wide text-muted-foreground uppercase",
|
|
11
|
-
sortButton: "inline-flex cursor-pointer items-center gap-1.5 rounded-md tracking-wide uppercase outline-none focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-3.5 [&_svg]:shrink-0",
|
|
11
|
+
sortButton: "inline-flex cursor-pointer items-center gap-1.5 rounded-md tracking-wide uppercase transition-shadow outline-none focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-3.5 [&_svg]:shrink-0",
|
|
12
12
|
sortIcon: "text-muted-foreground/70 transition-colors",
|
|
13
13
|
td: "px-3 py-3 align-middle text-foreground",
|
|
14
14
|
gutter: "w-px px-3 py-3 align-middle",
|
|
15
15
|
headGutter: "w-px border-b border-border px-3 py-3 align-middle",
|
|
16
16
|
actions: "w-px px-3 py-3 text-end align-middle whitespace-nowrap",
|
|
17
17
|
headActions: "w-px border-b border-border px-3 py-3 align-middle",
|
|
18
|
-
expandButton: "inline-flex size-6 cursor-pointer items-center justify-center rounded-md text-muted-foreground transition-[transform,color,background-color] outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4",
|
|
18
|
+
expandButton: "inline-flex size-6 cursor-pointer items-center justify-center rounded-md text-muted-foreground transition-[transform,color,background-color,box-shadow] outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4",
|
|
19
19
|
expandedRow: "bg-muted/30",
|
|
20
20
|
expandedCell: "p-0",
|
|
21
21
|
empty: "px-3 py-10 text-center text-sm text-muted-foreground",
|
package/dist/theme/tabs.js
CHANGED
|
@@ -5,7 +5,7 @@ var t = e({
|
|
|
5
5
|
root: "flex flex-col gap-4",
|
|
6
6
|
list: "relative flex shrink-0 items-center gap-1",
|
|
7
7
|
indicator: "absolute left-0 transition-[translate,width,height] duration-200 ease-out",
|
|
8
|
-
trigger: "relative z-10 inline-flex items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-
|
|
8
|
+
trigger: "relative z-10 inline-flex items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0",
|
|
9
9
|
content: "outline-none"
|
|
10
10
|
},
|
|
11
11
|
variants: {
|
package/dist/theme/tags-input.js
CHANGED
|
@@ -6,9 +6,9 @@ var n = t({
|
|
|
6
6
|
root: `flex flex-wrap items-center ${e} h-auto cursor-text focus-within:ring-2 focus-within:ring-primary/50`,
|
|
7
7
|
tag: "inline-flex shrink-0 items-center rounded-md border border-border bg-background font-medium whitespace-nowrap text-foreground data-[state=active]:border-primary data-[state=active]:bg-accent",
|
|
8
8
|
tagText: "truncate",
|
|
9
|
-
tagDelete: "flex shrink-0 items-center rounded-sm text-muted-foreground transition-
|
|
9
|
+
tagDelete: "flex shrink-0 items-center rounded-sm text-muted-foreground transition-[color,background-color,border-color,box-shadow] outline-none hover:text-danger focus-visible:ring-2 focus-visible:ring-primary/50",
|
|
10
10
|
input: "min-w-24 flex-1 bg-transparent text-foreground outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed",
|
|
11
|
-
clear: "flex shrink-0 items-center rounded-md text-muted-foreground transition-
|
|
11
|
+
clear: "flex shrink-0 items-center rounded-md text-muted-foreground transition-[color,background-color,border-color,box-shadow] outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50"
|
|
12
12
|
},
|
|
13
13
|
variants: {
|
|
14
14
|
size: {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare const testimonialCardTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
size: {
|
|
3
|
+
sm: {
|
|
4
|
+
quote: string;
|
|
5
|
+
};
|
|
6
|
+
md: {};
|
|
7
|
+
lg: {
|
|
8
|
+
quote: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}, {
|
|
12
|
+
root: string;
|
|
13
|
+
quote: string;
|
|
14
|
+
author: string;
|
|
15
|
+
identity: string;
|
|
16
|
+
name: string;
|
|
17
|
+
role: string;
|
|
18
|
+
}, undefined, {
|
|
19
|
+
size: {
|
|
20
|
+
sm: {
|
|
21
|
+
quote: string;
|
|
22
|
+
};
|
|
23
|
+
md: {};
|
|
24
|
+
lg: {
|
|
25
|
+
quote: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
}, {
|
|
29
|
+
root: string;
|
|
30
|
+
quote: string;
|
|
31
|
+
author: string;
|
|
32
|
+
identity: string;
|
|
33
|
+
name: string;
|
|
34
|
+
role: string;
|
|
35
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
36
|
+
size: {
|
|
37
|
+
sm: {
|
|
38
|
+
quote: string;
|
|
39
|
+
};
|
|
40
|
+
md: {};
|
|
41
|
+
lg: {
|
|
42
|
+
quote: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
}, {
|
|
46
|
+
root: string;
|
|
47
|
+
quote: string;
|
|
48
|
+
author: string;
|
|
49
|
+
identity: string;
|
|
50
|
+
name: string;
|
|
51
|
+
role: string;
|
|
52
|
+
}>>;
|
|
53
|
+
export type TestimonialCardSlots = keyof ReturnType<typeof testimonialCardTheme>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { tv as e } from "tailwind-variants";
|
|
2
|
+
//#region src/theme/testimonial-card.ts
|
|
3
|
+
var t = e({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "shadow-xs",
|
|
6
|
+
quote: "text-pretty",
|
|
7
|
+
author: "flex items-center gap-3",
|
|
8
|
+
identity: "min-w-0",
|
|
9
|
+
name: "truncate text-sm font-medium",
|
|
10
|
+
role: "truncate text-xs text-muted-foreground"
|
|
11
|
+
},
|
|
12
|
+
variants: { size: {
|
|
13
|
+
sm: { quote: "text-sm" },
|
|
14
|
+
md: {},
|
|
15
|
+
lg: { quote: "text-lg" }
|
|
16
|
+
} },
|
|
17
|
+
defaultVariants: { size: "md" }
|
|
18
|
+
});
|
|
19
|
+
//#endregion
|
|
20
|
+
export { t as testimonialCardTheme };
|
package/dist/theme/toast.js
CHANGED
|
@@ -8,8 +8,8 @@ var t = e({
|
|
|
8
8
|
content: "min-w-0 flex-1",
|
|
9
9
|
title: "text-sm font-medium text-foreground",
|
|
10
10
|
description: "text-sm text-muted-foreground",
|
|
11
|
-
action: "shrink-0 self-center rounded-lg border border-border px-2.5 py-1 text-xs font-medium transition-
|
|
12
|
-
close: "-m-1 shrink-0 self-start rounded-lg p-1 text-muted-foreground transition-
|
|
11
|
+
action: "shrink-0 self-center rounded-lg border border-border px-2.5 py-1 text-xs font-medium transition-[color,background-color,border-color,box-shadow] outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50",
|
|
12
|
+
close: "-m-1 shrink-0 self-start rounded-lg p-1 text-muted-foreground transition-[color,background-color,border-color,box-shadow] outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4"
|
|
13
13
|
},
|
|
14
14
|
variants: {
|
|
15
15
|
variant: {
|
package/dist/theme/tree.js
CHANGED
|
@@ -3,7 +3,7 @@ import { tv as e } from "tailwind-variants";
|
|
|
3
3
|
var t = e({
|
|
4
4
|
slots: {
|
|
5
5
|
root: "flex w-full list-none flex-col gap-0.5 outline-none select-none",
|
|
6
|
-
item: "flex cursor-pointer items-center gap-1.5 rounded-lg py-1.5 pr-2 text-sm text-foreground outline-none hover:bg-accent/60 focus-visible:ring-2 focus-visible:ring-primary/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[selected]:bg-accent data-[selected]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
|
|
6
|
+
item: "flex cursor-pointer items-center gap-1.5 rounded-lg py-1.5 pr-2 text-sm text-foreground transition-shadow outline-none hover:bg-accent/60 focus-visible:ring-2 focus-visible:ring-primary/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[selected]:bg-accent data-[selected]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
|
|
7
7
|
expander: "shrink-0 text-muted-foreground transition-transform duration-200 data-[expanded]:rotate-90",
|
|
8
8
|
spacer: "shrink-0",
|
|
9
9
|
icon: "shrink-0 text-muted-foreground",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iryx-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.19.0",
|
|
5
5
|
"description": "A Vue 3 component library built on Reka UI and Tailwind CSS v4.",
|
|
6
6
|
"author": "therok1",
|
|
7
7
|
"license": "MIT",
|
|
@@ -30,6 +30,10 @@
|
|
|
30
30
|
"types": "./dist/nuxt.d.ts",
|
|
31
31
|
"default": "./dist/nuxt.js"
|
|
32
32
|
},
|
|
33
|
+
"./marketing": {
|
|
34
|
+
"types": "./dist/marketing.d.ts",
|
|
35
|
+
"default": "./dist/marketing.js"
|
|
36
|
+
},
|
|
33
37
|
"./theme.css": "./theme.css"
|
|
34
38
|
},
|
|
35
39
|
"module": "./dist/index.js",
|
package/theme.css
CHANGED
|
@@ -621,3 +621,175 @@
|
|
|
621
621
|
transform: translate3d(calc(var(--reka-toast-swipe-end-x, 0) + 100%), var(--reka-toast-swipe-end-y, 0), 0);
|
|
622
622
|
}
|
|
623
623
|
}
|
|
624
|
+
|
|
625
|
+
/*
|
|
626
|
+
* IHero's ground. Two layers that compose: a ruled grid for structure, and a
|
|
627
|
+
* moving wash of the brand hue behind it. Both sit inside the hero and scroll
|
|
628
|
+
* away with it, so neither is a page background.
|
|
629
|
+
*
|
|
630
|
+
* These are plain classes rather than utilities because the effect is built
|
|
631
|
+
* from pseudo-elements, masks and keyframes — none of which a class list on an
|
|
632
|
+
* element can express.
|
|
633
|
+
*/
|
|
634
|
+
.iryx-hero {
|
|
635
|
+
position: relative;
|
|
636
|
+
isolation: isolate;
|
|
637
|
+
overflow: hidden;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
/*
|
|
641
|
+
* `--iryx-border` is the token component borders already use, so the ruling
|
|
642
|
+
* follows light and dark without a second rule.
|
|
643
|
+
*/
|
|
644
|
+
.iryx-hero-grid {
|
|
645
|
+
position: absolute;
|
|
646
|
+
inset: -4rem 0 -3rem;
|
|
647
|
+
z-index: -10;
|
|
648
|
+
pointer-events: none;
|
|
649
|
+
background-image:
|
|
650
|
+
linear-gradient(to right, var(--iryx-border) 1px, transparent 1px),
|
|
651
|
+
linear-gradient(to bottom, var(--iryx-border) 1px, transparent 1px);
|
|
652
|
+
background-size: 72px 72px;
|
|
653
|
+
opacity: 0.5;
|
|
654
|
+
/* Fades in every direction from the middle, so it ends rather than stops. */
|
|
655
|
+
mask-image: radial-gradient(80% 90% at 50% 25%, black 0%, black 30%, transparent 76%);
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
/*
|
|
659
|
+
* The `aurora` backdrop: two counter-rotating conic sweeps, blurred.
|
|
660
|
+
*
|
|
661
|
+
* Conic rather than radial because a radial glow has no direction — it sits
|
|
662
|
+
* there. A sweep turns, so the colour arrives and leaves, which is what makes
|
|
663
|
+
* it read as motion at a speed nobody has to watch.
|
|
664
|
+
*/
|
|
665
|
+
.iryx-hero-aurora {
|
|
666
|
+
position: absolute;
|
|
667
|
+
inset: -18rem 0 auto;
|
|
668
|
+
height: 52rem;
|
|
669
|
+
z-index: -20;
|
|
670
|
+
pointer-events: none;
|
|
671
|
+
/* Elliptical fade, so the light has no edge of its own anywhere. */
|
|
672
|
+
mask-image: radial-gradient(60% 55% at 50% 45%, black 0%, black 35%, transparent 78%);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
/*
|
|
676
|
+
* Blur plus opacity, never a `filter` on something masked: `filter` applies
|
|
677
|
+
* before `mask`, so a blurred masked shape comes back with a hard edge.
|
|
678
|
+
*/
|
|
679
|
+
.iryx-hero-aurora::before,
|
|
680
|
+
.iryx-hero-aurora::after {
|
|
681
|
+
content: "";
|
|
682
|
+
position: absolute;
|
|
683
|
+
inset: 0;
|
|
684
|
+
margin: auto;
|
|
685
|
+
border-radius: 9999px;
|
|
686
|
+
filter: blur(70px);
|
|
687
|
+
will-change: transform;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
.iryx-hero-aurora::before {
|
|
691
|
+
width: 62rem;
|
|
692
|
+
height: 62rem;
|
|
693
|
+
opacity: 0.3;
|
|
694
|
+
background: conic-gradient(
|
|
695
|
+
from 90deg,
|
|
696
|
+
var(--iryx-primary) 0deg,
|
|
697
|
+
transparent 70deg,
|
|
698
|
+
var(--iryx-primary-to) 160deg,
|
|
699
|
+
transparent 250deg,
|
|
700
|
+
var(--iryx-primary) 360deg
|
|
701
|
+
);
|
|
702
|
+
animation: iryx-hero-sweep 44s linear infinite;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
.iryx-hero-aurora::after {
|
|
706
|
+
width: 42rem;
|
|
707
|
+
height: 42rem;
|
|
708
|
+
opacity: 0.22;
|
|
709
|
+
background: conic-gradient(
|
|
710
|
+
from 210deg,
|
|
711
|
+
transparent 0deg,
|
|
712
|
+
var(--iryx-primary-to) 120deg,
|
|
713
|
+
transparent 220deg,
|
|
714
|
+
var(--iryx-primary) 330deg,
|
|
715
|
+
transparent 360deg
|
|
716
|
+
);
|
|
717
|
+
animation: iryx-hero-sweep 63s linear infinite reverse;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
@keyframes iryx-hero-sweep {
|
|
721
|
+
to { transform: rotate(1turn); }
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
/*
|
|
725
|
+
* The wash is barely there in light. It reads as light in a room, and a room
|
|
726
|
+
* that is already white has nothing left to light — at the dark appearance's
|
|
727
|
+
* strength the same gradient is a stain on the paper rather than a glow.
|
|
728
|
+
*/
|
|
729
|
+
:root:not(.dark) .iryx-hero-aurora::before {
|
|
730
|
+
opacity: 0.1;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
:root:not(.dark) .iryx-hero-aurora::after {
|
|
734
|
+
opacity: 0.07;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
/* The `bloom` backdrop: the same hue held still, as two drifting blobs. */
|
|
738
|
+
.iryx-hero-bloom {
|
|
739
|
+
position: absolute;
|
|
740
|
+
inset: -8rem 0 auto;
|
|
741
|
+
height: 40rem;
|
|
742
|
+
z-index: -20;
|
|
743
|
+
pointer-events: none;
|
|
744
|
+
/* Faded out at the foot, or the hero's own clip cuts the glow off flat. */
|
|
745
|
+
mask-image: linear-gradient(to bottom, black 45%, transparent 92%);
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
.iryx-hero-bloom::before,
|
|
749
|
+
.iryx-hero-bloom::after {
|
|
750
|
+
content: "";
|
|
751
|
+
position: absolute;
|
|
752
|
+
border-radius: 9999px;
|
|
753
|
+
filter: blur(90px);
|
|
754
|
+
will-change: transform;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
.iryx-hero-bloom::before {
|
|
758
|
+
left: 8%;
|
|
759
|
+
top: -6rem;
|
|
760
|
+
width: 34rem;
|
|
761
|
+
height: 34rem;
|
|
762
|
+
background: var(--iryx-primary);
|
|
763
|
+
opacity: 0.22;
|
|
764
|
+
animation: iryx-hero-drift-a 24s ease-in-out infinite alternate;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
.iryx-hero-bloom::after {
|
|
768
|
+
right: 6%;
|
|
769
|
+
top: 2rem;
|
|
770
|
+
width: 26rem;
|
|
771
|
+
height: 26rem;
|
|
772
|
+
background: var(--iryx-primary-to);
|
|
773
|
+
opacity: 0.18;
|
|
774
|
+
animation: iryx-hero-drift-b 19s ease-in-out infinite alternate;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
/* Transform only — a blur this size repainted per frame would cost real time. */
|
|
778
|
+
@keyframes iryx-hero-drift-a {
|
|
779
|
+
from { transform: translate3d(0, 0, 0) scale(1); }
|
|
780
|
+
to { transform: translate3d(6rem, 2rem, 0) scale(1.15); }
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
@keyframes iryx-hero-drift-b {
|
|
784
|
+
from { transform: translate3d(0, 0, 0) scale(1.1); }
|
|
785
|
+
to { transform: translate3d(-5rem, 3rem, 0) scale(0.95); }
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
@media (prefers-reduced-motion: reduce) {
|
|
789
|
+
.iryx-hero-aurora::before,
|
|
790
|
+
.iryx-hero-aurora::after,
|
|
791
|
+
.iryx-hero-bloom::before,
|
|
792
|
+
.iryx-hero-bloom::after {
|
|
793
|
+
animation: none;
|
|
794
|
+
}
|
|
795
|
+
}
|