iryx-ui 0.18.5 → 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.
Files changed (78) hide show
  1. package/README.md +37 -0
  2. package/dist/component-names.d.ts +8 -0
  3. package/dist/component-names.js +10 -2
  4. package/dist/marketing/BrowserFrame.js +5 -0
  5. package/dist/marketing/BrowserFrame.vue.d.ts +40 -0
  6. package/dist/marketing/BrowserFrame.vue_vue_type_script_setup_true_lang.js +57 -0
  7. package/dist/marketing/FeatureCard.js +5 -0
  8. package/dist/marketing/FeatureCard.vue.d.ts +40 -0
  9. package/dist/marketing/FeatureCard.vue_vue_type_script_setup_true_lang.js +55 -0
  10. package/dist/marketing/Hero.js +5 -0
  11. package/dist/marketing/Hero.vue.d.ts +64 -0
  12. package/dist/marketing/Hero.vue_vue_type_script_setup_true_lang.js +94 -0
  13. package/dist/marketing/PricingCard.js +5 -0
  14. package/dist/marketing/PricingCard.vue.d.ts +70 -0
  15. package/dist/marketing/PricingCard.vue_vue_type_script_setup_true_lang.js +94 -0
  16. package/dist/marketing/PricingTable.js +5 -0
  17. package/dist/marketing/PricingTable.vue.d.ts +41 -0
  18. package/dist/marketing/PricingTable.vue_vue_type_script_setup_true_lang.js +57 -0
  19. package/dist/marketing/Section.js +5 -0
  20. package/dist/marketing/Section.vue.d.ts +53 -0
  21. package/dist/marketing/Section.vue_vue_type_script_setup_true_lang.js +78 -0
  22. package/dist/marketing/TestimonialCard.js +5 -0
  23. package/dist/marketing/TestimonialCard.vue.d.ts +41 -0
  24. package/dist/marketing/TestimonialCard.vue_vue_type_script_setup_true_lang.js +61 -0
  25. package/dist/marketing/index.d.ts +7 -0
  26. package/dist/marketing/index.js +20 -0
  27. package/dist/marketing.d.ts +30 -0
  28. package/dist/marketing.js +9 -0
  29. package/dist/nuxt.d.ts +5 -0
  30. package/dist/nuxt.js +19 -13
  31. package/dist/plugin.d.ts +6 -1
  32. package/dist/plugin.js +3 -2
  33. package/dist/theme/accordion.js +1 -1
  34. package/dist/theme/alert.js +1 -1
  35. package/dist/theme/app-shell.js +1 -1
  36. package/dist/theme/banner.js +1 -1
  37. package/dist/theme/breadcrumb.js +1 -1
  38. package/dist/theme/browser-frame.d.ts +59 -0
  39. package/dist/theme/browser-frame.js +20 -0
  40. package/dist/theme/calendar.js +2 -2
  41. package/dist/theme/checkbox.js +1 -1
  42. package/dist/theme/collapsible.js +1 -1
  43. package/dist/theme/color-picker.js +2 -2
  44. package/dist/theme/combobox.js +2 -2
  45. package/dist/theme/date-picker.js +1 -1
  46. package/dist/theme/dialog.js +1 -1
  47. package/dist/theme/drawer.js +1 -1
  48. package/dist/theme/editable.js +1 -1
  49. package/dist/theme/feature-card.d.ts +41 -0
  50. package/dist/theme/feature-card.js +20 -0
  51. package/dist/theme/file-upload.js +1 -1
  52. package/dist/theme/hero.d.ts +98 -0
  53. package/dist/theme/hero.js +45 -0
  54. package/dist/theme/input.d.ts +2 -2
  55. package/dist/theme/input.js +2 -2
  56. package/dist/theme/menubar.js +1 -1
  57. package/dist/theme/navigation-menu.js +1 -1
  58. package/dist/theme/password-input.js +1 -1
  59. package/dist/theme/pin-input.js +1 -1
  60. package/dist/theme/popover.js +1 -1
  61. package/dist/theme/pricing-card.d.ts +62 -0
  62. package/dist/theme/pricing-card.js +23 -0
  63. package/dist/theme/radio-group.js +1 -1
  64. package/dist/theme/section.d.ts +140 -0
  65. package/dist/theme/section.js +48 -0
  66. package/dist/theme/sidebar.js +1 -1
  67. package/dist/theme/signature-pad.js +1 -1
  68. package/dist/theme/stepper.js +1 -1
  69. package/dist/theme/switch.js +1 -1
  70. package/dist/theme/table.js +2 -2
  71. package/dist/theme/tabs.js +1 -1
  72. package/dist/theme/tags-input.js +2 -2
  73. package/dist/theme/testimonial-card.d.ts +53 -0
  74. package/dist/theme/testimonial-card.js +20 -0
  75. package/dist/theme/toast.js +2 -2
  76. package/dist/theme/tree.js +1 -1
  77. package/package.json +5 -1
  78. package/theme.css +172 -0
@@ -4,7 +4,7 @@ import { tv as t } from "tailwind-variants";
4
4
  var n = t({ slots: {
5
5
  root: "flex w-64 flex-col gap-3",
6
6
  area: "relative h-40 w-full rounded-xl",
7
- thumb: "size-4 rounded-full border-2 border-gray-300 bg-white outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
7
+ thumb: "size-4 rounded-full border-2 border-gray-300 bg-white transition-shadow outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
8
8
  sliderThumb: "absolute top-1/2 -mt-2",
9
9
  slider: "relative h-3 w-full rounded-full",
10
10
  checkerboard: "absolute inset-0 rounded-full bg-[repeating-conic-gradient(theme(colors.gray.400)_0_25%,transparent_0_50%)] bg-[length:8px_8px]",
@@ -13,7 +13,7 @@ var n = t({ slots: {
13
13
  input: "w-full min-w-0 flex-1 bg-transparent font-mono text-sm uppercase outline-none",
14
14
  preview: "relative size-5 shrink-0 overflow-hidden rounded-md border border-border",
15
15
  swatches: "flex flex-wrap gap-1.5",
16
- swatch: "size-6 rounded-md border border-border outline-none focus-visible:ring-2 focus-visible:ring-primary/50 data-[state=checked]:ring-2 data-[state=checked]:ring-primary"
16
+ swatch: "size-6 rounded-md border border-border transition-shadow outline-none focus-visible:ring-2 focus-visible:ring-primary/50 data-[state=checked]:ring-2 data-[state=checked]:ring-primary"
17
17
  } });
18
18
  //#endregion
19
19
  export { n as colorPickerTheme };
@@ -6,10 +6,10 @@ var n = t({
6
6
  anchor: `flex items-center gap-2 ${e} focus-within:ring-2 focus-within:ring-primary/50`,
7
7
  input: "min-w-0 grow bg-transparent outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed",
8
8
  trigger: "flex shrink-0 cursor-pointer items-center text-muted-foreground disabled:cursor-not-allowed [&_svg]:size-4",
9
- clear: "flex shrink-0 cursor-pointer items-center rounded-md text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-3.5",
9
+ clear: "flex shrink-0 cursor-pointer 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 [&_svg]:size-3.5",
10
10
  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",
11
11
  tagText: "truncate",
12
- tagDelete: "flex shrink-0 cursor-pointer items-center rounded-sm text-muted-foreground transition-colors outline-none hover:text-danger focus-visible:ring-2 focus-visible:ring-primary/50",
12
+ tagDelete: "flex shrink-0 cursor-pointer 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",
13
13
  content: "z-50 max-h-64 w-(--reka-combobox-trigger-width) min-w-32 overflow-hidden rounded-xl border border-border bg-background text-foreground shadow-md",
14
14
  viewport: "max-h-64 overflow-y-auto p-1",
15
15
  item: "relative flex w-full cursor-pointer items-center rounded-lg py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground",
@@ -7,7 +7,7 @@ var n = t({
7
7
  placeholder: "text-muted-foreground",
8
8
  content: "z-50 rounded-xl border border-border bg-background p-3 text-foreground shadow-md",
9
9
  footer: "flex items-center justify-between gap-2 pt-3",
10
- action: "rounded-lg px-2 py-1 text-sm text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50"
10
+ action: "rounded-lg px-2 py-1 text-sm 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"
11
11
  },
12
12
  variants: {
13
13
  size: {
@@ -9,7 +9,7 @@ var t = e({
9
9
  description: "text-sm text-muted-foreground",
10
10
  body: "-m-1 min-h-0 flex-1 overflow-y-auto p-1",
11
11
  footer: "flex flex-wrap items-center justify-end gap-2",
12
- close: "absolute top-4 right-4 rounded-lg p-1 text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4"
12
+ close: "absolute top-4 right-4 rounded-lg p-1 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 [&_svg]:size-4"
13
13
  },
14
14
  variants: { size: {
15
15
  sm: { content: "sm:max-w-sm" },
@@ -10,7 +10,7 @@ var t = e({
10
10
  description: "text-sm text-muted-foreground",
11
11
  body: "-m-1 min-h-0 flex-1 touch-auto overflow-y-auto p-1",
12
12
  footer: "flex flex-wrap items-center justify-end gap-2",
13
- close: "absolute top-4 right-4 rounded-lg p-1 text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4"
13
+ close: "absolute top-4 right-4 rounded-lg p-1 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 [&_svg]:size-4"
14
14
  },
15
15
  variants: {
16
16
  side: {
@@ -7,7 +7,7 @@ var t = e({
7
7
  preview: "-mx-1 w-full cursor-text truncate rounded-md px-1 text-left text-foreground transition-colors outline-none hover:bg-accent/60 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:bg-transparent",
8
8
  placeholder: "text-muted-foreground",
9
9
  input: "-mx-1 w-full bg-transparent px-1 [letter-spacing:inherit] text-foreground outline-none [font:inherit] placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
10
- control: "flex size-7 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4"
10
+ control: "flex size-7 shrink-0 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 [&_svg]:size-4"
11
11
  },
12
12
  variants: {
13
13
  size: {
@@ -0,0 +1,41 @@
1
+ export declare const featureCardTheme: import("tailwind-variants").TVReturnType<{
2
+ align: {
3
+ start: {};
4
+ center: {
5
+ root: string;
6
+ icon: string;
7
+ };
8
+ };
9
+ }, {
10
+ root: string;
11
+ icon: string;
12
+ title: string;
13
+ description: string;
14
+ }, undefined, {
15
+ align: {
16
+ start: {};
17
+ center: {
18
+ root: string;
19
+ icon: string;
20
+ };
21
+ };
22
+ }, {
23
+ root: string;
24
+ icon: string;
25
+ title: string;
26
+ description: string;
27
+ }, import("tailwind-variants").TVReturnTypeLike<{
28
+ align: {
29
+ start: {};
30
+ center: {
31
+ root: string;
32
+ icon: string;
33
+ };
34
+ };
35
+ }, {
36
+ root: string;
37
+ icon: string;
38
+ title: string;
39
+ description: string;
40
+ }>>;
41
+ export type FeatureCardSlots = keyof ReturnType<typeof featureCardTheme>;
@@ -0,0 +1,20 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/feature-card.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "shadow-xs",
6
+ icon: "mb-4 flex size-9 items-center justify-center rounded-lg bg-primary/10 text-primary [&_svg]:size-5",
7
+ title: "font-medium",
8
+ description: "mt-2 text-sm text-pretty text-muted-foreground"
9
+ },
10
+ variants: { align: {
11
+ start: {},
12
+ center: {
13
+ root: "text-center",
14
+ icon: "mx-auto"
15
+ }
16
+ } },
17
+ defaultVariants: { align: "start" }
18
+ });
19
+ //#endregion
20
+ export { t as featureCardTheme };
@@ -16,7 +16,7 @@ var t = e({
16
16
  details: "flex min-w-0 flex-1 flex-col",
17
17
  name: "truncate text-sm text-foreground",
18
18
  meta: "text-xs text-muted-foreground tabular-nums",
19
- remove: "flex size-8 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4",
19
+ remove: "flex size-8 shrink-0 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 [&_svg]:size-4",
20
20
  error: "text-xs text-danger"
21
21
  },
22
22
  variants: {
@@ -0,0 +1,98 @@
1
+ export declare const heroTheme: import("tailwind-variants").TVReturnType<{
2
+ align: {
3
+ start: {};
4
+ center: {
5
+ container: string;
6
+ heading: string;
7
+ description: string;
8
+ actions: string;
9
+ media: string;
10
+ };
11
+ };
12
+ padding: {
13
+ none: {};
14
+ sm: {
15
+ container: string;
16
+ };
17
+ md: {
18
+ container: string;
19
+ };
20
+ lg: {
21
+ container: string;
22
+ };
23
+ };
24
+ }, {
25
+ root: string;
26
+ container: string;
27
+ badge: string;
28
+ heading: string;
29
+ description: string;
30
+ actions: string;
31
+ note: string;
32
+ media: string;
33
+ }, undefined, {
34
+ align: {
35
+ start: {};
36
+ center: {
37
+ container: string;
38
+ heading: string;
39
+ description: string;
40
+ actions: string;
41
+ media: string;
42
+ };
43
+ };
44
+ padding: {
45
+ none: {};
46
+ sm: {
47
+ container: string;
48
+ };
49
+ md: {
50
+ container: string;
51
+ };
52
+ lg: {
53
+ container: string;
54
+ };
55
+ };
56
+ }, {
57
+ root: string;
58
+ container: string;
59
+ badge: string;
60
+ heading: string;
61
+ description: string;
62
+ actions: string;
63
+ note: string;
64
+ media: string;
65
+ }, import("tailwind-variants").TVReturnTypeLike<{
66
+ align: {
67
+ start: {};
68
+ center: {
69
+ container: string;
70
+ heading: string;
71
+ description: string;
72
+ actions: string;
73
+ media: string;
74
+ };
75
+ };
76
+ padding: {
77
+ none: {};
78
+ sm: {
79
+ container: string;
80
+ };
81
+ md: {
82
+ container: string;
83
+ };
84
+ lg: {
85
+ container: string;
86
+ };
87
+ };
88
+ }, {
89
+ root: string;
90
+ container: string;
91
+ badge: string;
92
+ heading: string;
93
+ description: string;
94
+ actions: string;
95
+ note: string;
96
+ media: string;
97
+ }>>;
98
+ export type HeroSlots = keyof ReturnType<typeof heroTheme>;
@@ -0,0 +1,45 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/hero.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "iryx-hero w-full",
6
+ container: "",
7
+ badge: "mb-6",
8
+ heading: "text-4xl font-semibold tracking-tight text-balance sm:text-5xl md:text-6xl",
9
+ description: "mt-6 text-lg text-pretty text-muted-foreground",
10
+ actions: "mt-9 flex flex-wrap items-center gap-3",
11
+ note: "mt-4 text-sm text-muted-foreground",
12
+ media: "mt-16"
13
+ },
14
+ variants: {
15
+ align: {
16
+ start: {},
17
+ center: {
18
+ container: "text-center",
19
+ heading: "mx-auto max-w-3xl",
20
+ description: "mx-auto max-w-2xl",
21
+ actions: "justify-center",
22
+ media: "mx-auto"
23
+ }
24
+ },
25
+ padding: {
26
+ none: {},
27
+ sm: { container: "py-12 sm:py-16" },
28
+ md: { container: "py-20 sm:py-28" },
29
+ lg: { container: "py-28 sm:py-36" }
30
+ }
31
+ },
32
+ compoundVariants: [{
33
+ align: "start",
34
+ class: {
35
+ heading: "max-w-3xl",
36
+ description: "max-w-2xl"
37
+ }
38
+ }],
39
+ defaultVariants: {
40
+ align: "center",
41
+ padding: "md"
42
+ }
43
+ });
44
+ //#endregion
45
+ export { t as heroTheme };
@@ -1,5 +1,5 @@
1
1
  /** Shared field chrome for Input, Textarea and the Select trigger. */
2
- export declare const fieldBase = "w-full rounded-xl border border-border bg-input text-foreground transition-colors outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50";
2
+ export declare const fieldBase = "w-full rounded-xl border border-border bg-input text-foreground transition-[color,background-color,border-color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50";
3
3
  export declare const inputTheme: import("tailwind-variants").TVReturnType<{
4
4
  size: {
5
5
  sm: {
@@ -91,7 +91,7 @@ export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
91
91
  autosize: {
92
92
  true: "min-h-0 resize-none";
93
93
  };
94
- }, undefined, "block resize-y w-full rounded-xl border border-border bg-input text-foreground transition-colors outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50", {
94
+ }, undefined, "block resize-y w-full rounded-xl border border-border bg-input text-foreground transition-[color,background-color,border-color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50", {
95
95
  size: {
96
96
  sm: "min-h-16 px-2.5 py-1.5 text-sm";
97
97
  md: "min-h-20 px-3 py-2 text-sm";
@@ -1,12 +1,12 @@
1
1
  import { tv as e } from "tailwind-variants";
2
2
  //#region src/theme/input.ts
3
- var t = "w-full rounded-xl border border-border bg-input text-foreground transition-colors outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50", n = e({
3
+ var t = "w-full rounded-xl border border-border bg-input text-foreground transition-[color,background-color,border-color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50", n = e({
4
4
  slots: {
5
5
  root: `flex items-center ${t} focus-within:ring-2 focus-within:ring-primary/50 has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50`,
6
6
  input: "w-full min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed",
7
7
  leading: "flex shrink-0 items-center text-muted-foreground [&_svg]:size-4",
8
8
  trailing: "flex shrink-0 items-center gap-1.5 text-muted-foreground [&_svg]:size-4",
9
- clear: "flex items-center rounded-md text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-3.5"
9
+ clear: "flex 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 [&_svg]:size-3.5"
10
10
  },
11
11
  variants: {
12
12
  size: {
@@ -3,7 +3,7 @@ import { tv as e } from "tailwind-variants";
3
3
  var t = e({
4
4
  slots: {
5
5
  root: "flex items-center gap-0.5 rounded-xl border border-border bg-background p-1",
6
- trigger: "flex cursor-default items-center rounded-lg px-2.5 py-1.5 text-sm font-medium text-foreground outline-none select-none focus-visible:ring-2 focus-visible:ring-primary/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground"
6
+ trigger: "flex cursor-default items-center rounded-lg px-2.5 py-1.5 text-sm font-medium text-foreground transition-shadow outline-none select-none focus-visible:ring-2 focus-visible:ring-primary/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground"
7
7
  },
8
8
  variants: { bare: { true: { root: "rounded-none border-0 bg-transparent p-0" } } }
9
9
  });
@@ -5,7 +5,7 @@ var t = e({
5
5
  root: "relative z-10 flex max-w-max",
6
6
  list: "flex list-none items-center gap-1",
7
7
  item: "relative",
8
- link: "group inline-flex cursor-pointer items-center gap-2 rounded-lg px-3 py-1.5 text-sm font-medium whitespace-nowrap text-muted-foreground no-underline transition-colors outline-none select-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 data-[active]:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
8
+ link: "group inline-flex cursor-pointer items-center gap-2 rounded-lg px-3 py-1.5 text-sm font-medium whitespace-nowrap 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]:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
9
9
  triggerIcon: "transition-transform duration-200 group-data-[state=open]:rotate-180",
10
10
  viewportWrapper: "absolute flex items-start",
11
11
  viewport: "relative box-content h-(--reka-navigation-menu-viewport-height) w-(--reka-navigation-menu-viewport-width) shrink-0 origin-top overflow-hidden rounded-xl border border-border bg-background text-foreground shadow-lg transition-[width,height,translate] duration-200 ease-out data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
@@ -4,7 +4,7 @@ var t = e({
4
4
  slots: {
5
5
  root: "flex w-full flex-col gap-2",
6
6
  input: "[&::-ms-clear]:hidden [&::-ms-reveal]:hidden",
7
- toggle: "flex items-center rounded-md text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4",
7
+ toggle: "flex 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 [&_svg]:size-4",
8
8
  meter: "flex items-center gap-2",
9
9
  track: "flex h-1 flex-1 gap-1",
10
10
  segment: "h-full flex-1 rounded-full bg-muted transition-colors",
@@ -3,7 +3,7 @@ import { tv as e } from "tailwind-variants";
3
3
  var t = e({
4
4
  slots: {
5
5
  root: "flex items-center",
6
- input: "rounded-xl border border-border bg-input text-center font-medium text-foreground tabular-nums transition-colors outline-none focus-visible:z-10 focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50",
6
+ input: "rounded-xl border border-border bg-input text-center font-medium text-foreground tabular-nums transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:z-10 focus-visible:border-primary focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50",
7
7
  separator: "text-muted-foreground select-none"
8
8
  },
9
9
  variants: {
@@ -4,7 +4,7 @@ var t = e({
4
4
  slots: {
5
5
  content: "z-50 rounded-xl border border-border bg-background text-foreground shadow-lg outline-none data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
6
6
  arrow: "fill-background stroke-border",
7
- close: "absolute top-2 right-2 rounded-lg p-1 text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4",
7
+ close: "absolute top-2 right-2 rounded-lg p-1 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 [&_svg]:size-4",
8
8
  title: "mb-2 text-sm font-medium text-foreground"
9
9
  },
10
10
  variants: {
@@ -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-colors outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary",
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 };