iryx-ui 0.3.0 → 0.5.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 (57) hide show
  1. package/README.md +129 -27
  2. package/dist/component-names.d.ts +1 -1
  3. package/dist/components/App.vue.d.ts +1 -1
  4. package/dist/components/Combobox.vue.d.ts +112 -0
  5. package/dist/components/DropdownMenu.vue.d.ts +1 -1
  6. package/dist/components/FormField.vue.d.ts +0 -9
  7. package/dist/components/Label.vue.d.ts +0 -6
  8. package/dist/components/NumberInput.vue.d.ts +63 -0
  9. package/dist/components/Select.vue.d.ts +13 -2
  10. package/dist/components/index.d.ts +2 -0
  11. package/dist/composables/decimal.d.ts +53 -0
  12. package/dist/index.d.ts +4 -1
  13. package/dist/index.js +49 -44
  14. package/dist/nuxt.d.ts +1 -1
  15. package/dist/packages/iryx-ui/src/component-names.js +1 -1
  16. package/dist/packages/iryx-ui/src/components/Combobox.js +5 -0
  17. package/dist/packages/iryx-ui/src/components/Combobox.vue_vue_type_script_setup_true_lang.js +284 -0
  18. package/dist/packages/iryx-ui/src/components/FormField.vue_vue_type_script_setup_true_lang.js +3 -5
  19. package/dist/packages/iryx-ui/src/components/Label.vue_vue_type_script_setup_true_lang.js +0 -2
  20. package/dist/packages/iryx-ui/src/components/NumberInput.js +5 -0
  21. package/dist/packages/iryx-ui/src/components/NumberInput.vue_vue_type_script_setup_true_lang.js +136 -0
  22. package/dist/packages/iryx-ui/src/components/Select.vue_vue_type_script_setup_true_lang.js +72 -27
  23. package/dist/packages/iryx-ui/src/components/index.js +48 -44
  24. package/dist/packages/iryx-ui/src/composables/decimal.js +79 -0
  25. package/dist/packages/iryx-ui/src/theme/alert.js +2 -2
  26. package/dist/packages/iryx-ui/src/theme/button.js +2 -2
  27. package/dist/packages/iryx-ui/src/theme/card.js +1 -1
  28. package/dist/packages/iryx-ui/src/theme/checkbox.js +1 -1
  29. package/dist/packages/iryx-ui/src/theme/combobox.js +29 -0
  30. package/dist/packages/iryx-ui/src/theme/dialog.js +2 -2
  31. package/dist/packages/iryx-ui/src/theme/dropdown-menu.js +4 -4
  32. package/dist/packages/iryx-ui/src/theme/form.js +10 -34
  33. package/dist/packages/iryx-ui/src/theme/input.js +1 -1
  34. package/dist/packages/iryx-ui/src/theme/label.js +1 -10
  35. package/dist/packages/iryx-ui/src/theme/number-input.js +49 -0
  36. package/dist/packages/iryx-ui/src/theme/pagination.js +1 -1
  37. package/dist/packages/iryx-ui/src/theme/presets.js +0 -42
  38. package/dist/packages/iryx-ui/src/theme/radio-group.js +1 -1
  39. package/dist/packages/iryx-ui/src/theme/select.js +5 -3
  40. package/dist/packages/iryx-ui/src/theme/skeleton.js +1 -1
  41. package/dist/packages/iryx-ui/src/theme/stepper.js +1 -1
  42. package/dist/packages/iryx-ui/src/theme/switch.js +1 -1
  43. package/dist/packages/iryx-ui/src/theme/tabs.js +3 -3
  44. package/dist/packages/iryx-ui/src/theme/toast.js +3 -3
  45. package/dist/packages/iryx-ui/src/theme/tooltip.js +1 -1
  46. package/dist/plugin.d.ts +1 -1
  47. package/dist/theme/button.d.ts +2 -2
  48. package/dist/theme/combobox.d.ts +101 -0
  49. package/dist/theme/form.d.ts +35 -62
  50. package/dist/theme/index.d.ts +2 -0
  51. package/dist/theme/input.d.ts +5 -5
  52. package/dist/theme/label.d.ts +0 -18
  53. package/dist/theme/number-input.d.ts +92 -0
  54. package/dist/theme/presets.d.ts +0 -42
  55. package/dist/theme/select.d.ts +6 -0
  56. package/package.json +1 -1
  57. package/theme.css +14 -0
@@ -4,10 +4,12 @@ import { tv as t } from "tailwind-variants";
4
4
  var n = t({
5
5
  slots: {
6
6
  trigger: `flex items-center justify-between gap-2 ${e} cursor-pointer data-[placeholder]:text-muted-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:opacity-60`,
7
- content: "z-50 min-w-32 overflow-hidden rounded-lg border border-border bg-background text-foreground shadow-md",
7
+ content: "z-50 min-w-32 overflow-hidden rounded-xl border border-border bg-background text-foreground shadow-md",
8
8
  viewport: "p-1",
9
- item: "relative flex cursor-pointer items-center rounded-md 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",
10
- itemIndicator: "absolute left-2 flex items-center justify-center text-primary [&_svg]:size-4"
9
+ item: "relative flex 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",
10
+ itemIndicator: "absolute left-2 flex items-center justify-center text-primary [&_svg]:size-4",
11
+ group: "not-first:mt-1",
12
+ groupLabel: "px-2 py-1.5 text-xs font-medium text-muted-foreground"
11
13
  },
12
14
  variants: { size: {
13
15
  sm: { trigger: "h-8 px-2.5 text-sm" },
@@ -4,7 +4,7 @@ var t = e({
4
4
  base: "animate-pulse bg-muted",
5
5
  variants: { variant: {
6
6
  text: "h-[1em] w-full rounded",
7
- rect: "rounded-lg",
7
+ rect: "rounded-xl",
8
8
  circle: "aspect-square rounded-full"
9
9
  } },
10
10
  defaultVariants: { variant: "rect" }
@@ -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",
7
- trigger: "flex items-center gap-3 rounded-lg 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 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",
@@ -2,7 +2,7 @@ import { tv as e } from "tailwind-variants";
2
2
  //#region src/theme/switch.ts
3
3
  var t = e({ slots: {
4
4
  wrapper: "flex items-start gap-2.5",
5
- root: "inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted",
5
+ root: "inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full transition-colors outline-none focus:ring-2 focus:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted",
6
6
  thumb: "pointer-events-none block size-4 rounded-full bg-background shadow-sm transition-transform data-[state=checked]:translate-x-4.5 data-[state=unchecked]:translate-x-0.5",
7
7
  content: "grid gap-1",
8
8
  label: "text-sm leading-5 font-medium text-foreground select-none",
@@ -11,9 +11,9 @@ var t = e({
11
11
  variants: {
12
12
  variant: {
13
13
  solid: {
14
- list: "rounded-lg bg-muted p-1",
15
- indicator: "top-1 h-[calc(100%---spacing(2))] rounded-md bg-background shadow-sm",
16
- trigger: "rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:text-foreground"
14
+ list: "rounded-xl bg-muted p-1",
15
+ indicator: "top-1 h-[calc(100%---spacing(2))] rounded-lg bg-background shadow-sm",
16
+ trigger: "rounded-lg px-3 py-1.5 text-muted-foreground data-[state=active]:text-foreground"
17
17
  },
18
18
  line: {
19
19
  list: "gap-4 border-b border-border",
@@ -3,13 +3,13 @@ import { tv as e } from "tailwind-variants";
3
3
  var t = e({
4
4
  slots: {
5
5
  viewport: "fixed z-50 flex max-h-screen w-full flex-col gap-2 p-4 outline-none sm:max-w-sm",
6
- root: "flex items-start gap-3 rounded-lg border p-4 shadow-lg data-[state=closed]:animate-fade-out data-[state=open]:animate-toast-in",
6
+ root: "flex items-start gap-3 rounded-xl border p-4 shadow-lg data-[state=closed]:animate-fade-out data-[state=open]:animate-toast-in",
7
7
  icon: "mt-0.5 shrink-0 [&_svg]:size-5",
8
8
  content: "min-w-0 flex-1",
9
9
  title: "text-sm font-medium",
10
10
  description: "text-sm opacity-90",
11
- action: "shrink-0 self-center rounded-md px-2 py-1 text-sm font-medium underline-offset-4 transition-colors outline-none hover:underline focus-visible:ring-2 focus-visible:ring-current/50",
12
- close: "-m-1 shrink-0 self-start rounded-md p-1 opacity-70 transition-opacity outline-none hover:opacity-100 focus-visible:ring-2 focus-visible:ring-current/50 [&_svg]:size-4"
11
+ action: "shrink-0 self-center rounded-lg px-2 py-1 text-sm font-medium underline-offset-4 transition-colors outline-none hover:underline focus-visible:ring-2 focus-visible:ring-current/50",
12
+ close: "-m-1 shrink-0 self-start rounded-lg p-1 opacity-70 transition-opacity outline-none hover:opacity-100 focus-visible:ring-2 focus-visible:ring-current/50 [&_svg]:size-4"
13
13
  },
14
14
  variants: {
15
15
  variant: {
@@ -1,7 +1,7 @@
1
1
  import { tv as e } from "tailwind-variants";
2
2
  //#region src/theme/tooltip.ts
3
3
  var t = e({ slots: {
4
- content: "z-50 max-w-xs rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md data-[state=closed]:animate-fade-out data-[state=delayed-open]:animate-fade-in",
4
+ content: "z-50 max-w-xs rounded-lg bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md data-[state=closed]:animate-fade-out data-[state=delayed-open]:animate-fade-in",
5
5
  arrow: "fill-foreground"
6
6
  } });
7
7
  //#endregion
package/dist/plugin.d.ts CHANGED
@@ -7,7 +7,7 @@ export interface IryxUiPluginOptions extends Partial<IryxUiConfig> {
7
7
  prefix?: string;
8
8
  /** Startup appearance. A preference the user already stored wins over this. */
9
9
  appearance?: Appearance;
10
- /** Color theme: a preset name (`'emerald'`, `'rose'`…) or a custom theme. */
10
+ /** Color theme: a preset name (`'violet'`, `'rose'`) or a custom theme. */
11
11
  theme?: Theme | ThemePresetName;
12
12
  }
13
13
  /**
@@ -20,7 +20,7 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
20
20
  block: {
21
21
  true: string;
22
22
  };
23
- }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
23
+ }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-xl border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
24
24
  variant: {
25
25
  solid: string;
26
26
  outline: string;
@@ -64,5 +64,5 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
64
64
  block: {
65
65
  true: string;
66
66
  };
67
- }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", unknown, unknown, undefined>>;
67
+ }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-xl border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", unknown, unknown, undefined>>;
68
68
  export type ButtonVariants = Parameters<typeof buttonTheme>[0];
@@ -0,0 +1,101 @@
1
+ export declare const comboboxTheme: import("tailwind-variants").TVReturnType<{
2
+ size: {
3
+ sm: {
4
+ anchor: string;
5
+ };
6
+ md: {
7
+ anchor: string;
8
+ };
9
+ lg: {
10
+ anchor: string;
11
+ };
12
+ };
13
+ invalid: {
14
+ true: {
15
+ anchor: string;
16
+ };
17
+ };
18
+ disabled: {
19
+ true: {
20
+ anchor: string;
21
+ };
22
+ };
23
+ }, {
24
+ anchor: string;
25
+ input: string;
26
+ trigger: string;
27
+ content: string;
28
+ viewport: string;
29
+ item: string;
30
+ itemIndicator: string;
31
+ empty: string;
32
+ group: string;
33
+ groupLabel: string;
34
+ }, undefined, {
35
+ size: {
36
+ sm: {
37
+ anchor: string;
38
+ };
39
+ md: {
40
+ anchor: string;
41
+ };
42
+ lg: {
43
+ anchor: string;
44
+ };
45
+ };
46
+ invalid: {
47
+ true: {
48
+ anchor: string;
49
+ };
50
+ };
51
+ disabled: {
52
+ true: {
53
+ anchor: string;
54
+ };
55
+ };
56
+ }, {
57
+ anchor: string;
58
+ input: string;
59
+ trigger: string;
60
+ content: string;
61
+ viewport: string;
62
+ item: string;
63
+ itemIndicator: string;
64
+ empty: string;
65
+ group: string;
66
+ groupLabel: string;
67
+ }, import("tailwind-variants").TVReturnType<{
68
+ size: {
69
+ sm: {
70
+ anchor: string;
71
+ };
72
+ md: {
73
+ anchor: string;
74
+ };
75
+ lg: {
76
+ anchor: string;
77
+ };
78
+ };
79
+ invalid: {
80
+ true: {
81
+ anchor: string;
82
+ };
83
+ };
84
+ disabled: {
85
+ true: {
86
+ anchor: string;
87
+ };
88
+ };
89
+ }, {
90
+ anchor: string;
91
+ input: string;
92
+ trigger: string;
93
+ content: string;
94
+ viewport: string;
95
+ item: string;
96
+ itemIndicator: string;
97
+ empty: string;
98
+ group: string;
99
+ groupLabel: string;
100
+ }, undefined, unknown, unknown, undefined>>;
101
+ export type ComboboxSlots = keyof ReturnType<typeof comboboxTheme>;
@@ -1,26 +1,30 @@
1
1
  export declare const formFieldTheme: import("tailwind-variants").TVReturnType<{
2
- indent: {
3
- none: {};
4
- sm: {
5
- header: string;
6
- description: string;
7
- error: string;
8
- help: string;
2
+ [key: string]: {
3
+ [key: string]: import("tailwind-variants").ClassValue | {
4
+ root?: import("tailwind-variants").ClassValue;
5
+ description?: import("tailwind-variants").ClassValue;
6
+ label?: import("tailwind-variants").ClassValue;
7
+ header?: import("tailwind-variants").ClassValue;
8
+ error?: import("tailwind-variants").ClassValue;
9
+ hint?: import("tailwind-variants").ClassValue;
10
+ control?: import("tailwind-variants").ClassValue;
11
+ help?: import("tailwind-variants").ClassValue;
9
12
  };
10
- md: {
11
- header: string;
12
- description: string;
13
- error: string;
14
- help: string;
15
- };
16
- lg: {
17
- header: string;
18
- description: string;
19
- error: string;
20
- help: string;
13
+ };
14
+ } | {
15
+ [x: string]: {
16
+ [x: string]: import("tailwind-variants").ClassValue | {
17
+ root?: import("tailwind-variants").ClassValue;
18
+ description?: import("tailwind-variants").ClassValue;
19
+ label?: import("tailwind-variants").ClassValue;
20
+ header?: import("tailwind-variants").ClassValue;
21
+ error?: import("tailwind-variants").ClassValue;
22
+ hint?: import("tailwind-variants").ClassValue;
23
+ control?: import("tailwind-variants").ClassValue;
24
+ help?: import("tailwind-variants").ClassValue;
21
25
  };
22
26
  };
23
- }, {
27
+ } | {}, {
24
28
  root: string;
25
29
  header: string;
26
30
  label: string;
@@ -30,28 +34,19 @@ export declare const formFieldTheme: import("tailwind-variants").TVReturnType<{
30
34
  error: string;
31
35
  help: string;
32
36
  }, undefined, {
33
- indent: {
34
- none: {};
35
- sm: {
36
- header: string;
37
- description: string;
38
- error: string;
39
- help: string;
40
- };
41
- md: {
42
- header: string;
43
- description: string;
44
- error: string;
45
- help: string;
46
- };
47
- lg: {
48
- header: string;
49
- description: string;
50
- error: string;
51
- help: string;
37
+ [key: string]: {
38
+ [key: string]: import("tailwind-variants").ClassValue | {
39
+ root?: import("tailwind-variants").ClassValue;
40
+ description?: import("tailwind-variants").ClassValue;
41
+ label?: import("tailwind-variants").ClassValue;
42
+ header?: import("tailwind-variants").ClassValue;
43
+ error?: import("tailwind-variants").ClassValue;
44
+ hint?: import("tailwind-variants").ClassValue;
45
+ control?: import("tailwind-variants").ClassValue;
46
+ help?: import("tailwind-variants").ClassValue;
52
47
  };
53
48
  };
54
- }, {
49
+ } | {}, {
55
50
  root: string;
56
51
  header: string;
57
52
  label: string;
@@ -60,29 +55,7 @@ export declare const formFieldTheme: import("tailwind-variants").TVReturnType<{
60
55
  control: string;
61
56
  error: string;
62
57
  help: string;
63
- }, import("tailwind-variants").TVReturnType<{
64
- indent: {
65
- none: {};
66
- sm: {
67
- header: string;
68
- description: string;
69
- error: string;
70
- help: string;
71
- };
72
- md: {
73
- header: string;
74
- description: string;
75
- error: string;
76
- help: string;
77
- };
78
- lg: {
79
- header: string;
80
- description: string;
81
- error: string;
82
- help: string;
83
- };
84
- };
85
- }, {
58
+ }, import("tailwind-variants").TVReturnType<unknown, {
86
59
  root: string;
87
60
  header: string;
88
61
  label: string;
@@ -5,11 +5,13 @@ export * from './button';
5
5
  export * from './button-group';
6
6
  export * from './card';
7
7
  export * from './checkbox';
8
+ export * from './combobox';
8
9
  export * from './dialog';
9
10
  export * from './dropdown-menu';
10
11
  export * from './empty-state';
11
12
  export * from './input';
12
13
  export * from './label';
14
+ export * from './number-input';
13
15
  export * from './pagination';
14
16
  export * from './presets';
15
17
  export * from './progress';
@@ -1,5 +1,5 @@
1
1
  /** Shared field chrome for Input, Textarea and the Select trigger. */
2
- export declare const fieldBase = "w-full rounded-lg border border-border bg-background 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-colors 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: string;
@@ -9,7 +9,7 @@ export declare const inputTheme: import("tailwind-variants").TVReturnType<{
9
9
  invalid: {
10
10
  true: string;
11
11
  };
12
- }, undefined, "flex w-full rounded-lg border border-border bg-background 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", {
12
+ }, undefined, "flex 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", {
13
13
  size: {
14
14
  sm: string;
15
15
  md: string;
@@ -27,7 +27,7 @@ export declare const inputTheme: import("tailwind-variants").TVReturnType<{
27
27
  invalid: {
28
28
  true: string;
29
29
  };
30
- }, undefined, "flex w-full rounded-lg border border-border bg-background 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", unknown, unknown, undefined>>;
30
+ }, undefined, "flex 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", unknown, unknown, undefined>>;
31
31
  export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
32
32
  size: {
33
33
  sm: string;
@@ -37,7 +37,7 @@ export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
37
37
  invalid: {
38
38
  true: string;
39
39
  };
40
- }, undefined, "block resize-y w-full rounded-lg border border-border bg-background 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", {
40
+ }, 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", {
41
41
  size: {
42
42
  sm: string;
43
43
  md: string;
@@ -55,6 +55,6 @@ export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
55
55
  invalid: {
56
56
  true: string;
57
57
  };
58
- }, undefined, "block resize-y w-full rounded-lg border border-border bg-background 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", unknown, unknown, undefined>>;
58
+ }, 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", unknown, unknown, undefined>>;
59
59
  export type InputVariants = Parameters<typeof inputTheme>[0];
60
60
  export type TextareaVariants = Parameters<typeof textareaTheme>[0];
@@ -2,31 +2,13 @@ export declare const labelTheme: import("tailwind-variants").TVReturnType<{
2
2
  required: {
3
3
  true: string;
4
4
  };
5
- indent: {
6
- none: string;
7
- sm: string;
8
- md: string;
9
- lg: string;
10
- };
11
5
  }, undefined, "inline-flex items-center gap-1 text-sm leading-none font-medium text-foreground select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50", {
12
6
  required: {
13
7
  true: string;
14
8
  };
15
- indent: {
16
- none: string;
17
- sm: string;
18
- md: string;
19
- lg: string;
20
- };
21
9
  }, undefined, import("tailwind-variants").TVReturnType<{
22
10
  required: {
23
11
  true: string;
24
12
  };
25
- indent: {
26
- none: string;
27
- sm: string;
28
- md: string;
29
- lg: string;
30
- };
31
13
  }, undefined, "inline-flex items-center gap-1 text-sm leading-none font-medium text-foreground select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50", unknown, unknown, undefined>>;
32
14
  export type LabelVariants = Parameters<typeof labelTheme>[0];
@@ -0,0 +1,92 @@
1
+ export declare const numberInputTheme: import("tailwind-variants").TVReturnType<{
2
+ size: {
3
+ sm: {
4
+ input: string;
5
+ stepper: string;
6
+ };
7
+ md: {
8
+ input: string;
9
+ stepper: string;
10
+ };
11
+ lg: {
12
+ input: string;
13
+ stepper: string;
14
+ };
15
+ };
16
+ invalid: {
17
+ true: {
18
+ input: string;
19
+ };
20
+ };
21
+ /** Leaves room for the stepper so long values can't slide under it. */
22
+ withStepper: {
23
+ true: {};
24
+ };
25
+ }, {
26
+ root: string;
27
+ input: string;
28
+ /** Stacked +/- controls pinned inside the trailing edge of the field. */
29
+ stepper: string;
30
+ step: string;
31
+ }, undefined, {
32
+ size: {
33
+ sm: {
34
+ input: string;
35
+ stepper: string;
36
+ };
37
+ md: {
38
+ input: string;
39
+ stepper: string;
40
+ };
41
+ lg: {
42
+ input: string;
43
+ stepper: string;
44
+ };
45
+ };
46
+ invalid: {
47
+ true: {
48
+ input: string;
49
+ };
50
+ };
51
+ /** Leaves room for the stepper so long values can't slide under it. */
52
+ withStepper: {
53
+ true: {};
54
+ };
55
+ }, {
56
+ root: string;
57
+ input: string;
58
+ /** Stacked +/- controls pinned inside the trailing edge of the field. */
59
+ stepper: string;
60
+ step: string;
61
+ }, import("tailwind-variants").TVReturnType<{
62
+ size: {
63
+ sm: {
64
+ input: string;
65
+ stepper: string;
66
+ };
67
+ md: {
68
+ input: string;
69
+ stepper: string;
70
+ };
71
+ lg: {
72
+ input: string;
73
+ stepper: string;
74
+ };
75
+ };
76
+ invalid: {
77
+ true: {
78
+ input: string;
79
+ };
80
+ };
81
+ /** Leaves room for the stepper so long values can't slide under it. */
82
+ withStepper: {
83
+ true: {};
84
+ };
85
+ }, {
86
+ root: string;
87
+ input: string;
88
+ /** Stacked +/- controls pinned inside the trailing edge of the field. */
89
+ stepper: string;
90
+ step: string;
91
+ }, undefined, unknown, unknown, undefined>>;
92
+ export type NumberInputSlots = keyof ReturnType<typeof numberInputTheme>;
@@ -58,20 +58,6 @@ export declare const themes: {
58
58
  primaryTo: string;
59
59
  };
60
60
  };
61
- emerald: {
62
- light: {
63
- primary: string;
64
- primaryForeground: string;
65
- primaryFrom: string;
66
- primaryTo: string;
67
- };
68
- dark: {
69
- primary: string;
70
- primaryForeground: string;
71
- primaryFrom: string;
72
- primaryTo: string;
73
- };
74
- };
75
61
  rose: {
76
62
  light: {
77
63
  primary: string;
@@ -86,34 +72,6 @@ export declare const themes: {
86
72
  primaryTo: string;
87
73
  };
88
74
  };
89
- amber: {
90
- light: {
91
- primary: string;
92
- primaryForeground: string;
93
- primaryFrom: string;
94
- primaryTo: string;
95
- };
96
- dark: {
97
- primary: string;
98
- primaryForeground: string;
99
- primaryFrom: string;
100
- primaryTo: string;
101
- };
102
- };
103
- sky: {
104
- light: {
105
- primary: string;
106
- primaryForeground: string;
107
- primaryFrom: string;
108
- primaryTo: string;
109
- };
110
- dark: {
111
- primary: string;
112
- primaryForeground: string;
113
- primaryFrom: string;
114
- primaryTo: string;
115
- };
116
- };
117
75
  };
118
76
  export type ThemePresetName = keyof typeof themes;
119
77
  /**
@@ -16,6 +16,8 @@ export declare const selectTheme: import("tailwind-variants").TVReturnType<{
16
16
  viewport: string;
17
17
  item: string;
18
18
  itemIndicator: string;
19
+ group: string;
20
+ groupLabel: string;
19
21
  }, undefined, {
20
22
  size: {
21
23
  sm: {
@@ -34,6 +36,8 @@ export declare const selectTheme: import("tailwind-variants").TVReturnType<{
34
36
  viewport: string;
35
37
  item: string;
36
38
  itemIndicator: string;
39
+ group: string;
40
+ groupLabel: string;
37
41
  }, import("tailwind-variants").TVReturnType<{
38
42
  size: {
39
43
  sm: {
@@ -52,5 +56,7 @@ export declare const selectTheme: import("tailwind-variants").TVReturnType<{
52
56
  viewport: string;
53
57
  item: string;
54
58
  itemIndicator: string;
59
+ group: string;
60
+ groupLabel: string;
55
61
  }, undefined, unknown, unknown, undefined>>;
56
62
  export type SelectSlots = keyof ReturnType<typeof selectTheme>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iryx-ui",
3
3
  "type": "module",
4
- "version": "0.3.0",
4
+ "version": "0.5.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",
package/theme.css CHANGED
@@ -27,6 +27,17 @@
27
27
  --iryx-muted: oklch(0.97 0 0);
28
28
  --iryx-muted-foreground: oklch(0.556 0 0);
29
29
  --iryx-border: oklch(0.922 0 0);
30
+ /*
31
+ * Fill for controls that read as recessed — the fields and the outline
32
+ * button. Its own token rather than `--iryx-muted`, since how raised a
33
+ * control looks is a separate decision from how a muted surface reads.
34
+ *
35
+ * Flat in light and raised in dark, which is where the lift is legible;
36
+ * shadcn does the same with `bg-transparent dark:bg-input/30`. Expressed as
37
+ * two token values rather than a `dark:` variant, so components never carry
38
+ * mode-specific classes.
39
+ */
40
+ --iryx-input: oklch(1 0 0);
30
41
  /* Brand primary — kept as a violet gradient. */
31
42
  --iryx-primary: oklch(0.59 0.2 277.19);
32
43
  --iryx-primary-foreground: oklch(0.985 0.005 248);
@@ -68,6 +79,8 @@
68
79
  --iryx-muted: oklch(0.269 0 0);
69
80
  --iryx-muted-foreground: oklch(0.708 0 0);
70
81
  --iryx-border: oklch(1 0 0 / 10%);
82
+ /* Lifted just off the background — `--iryx-muted` reads as a panel here. */
83
+ --iryx-input: oklch(0.205 0 0);
71
84
  /* Brand primary — kept as a violet gradient. */
72
85
  --iryx-primary: oklch(0.62 0.22 293);
73
86
  --iryx-primary-foreground: oklch(0.985 0.005 248);
@@ -108,6 +121,7 @@
108
121
  --color-muted: var(--iryx-muted);
109
122
  --color-muted-foreground: var(--iryx-muted-foreground);
110
123
  --color-border: var(--iryx-border);
124
+ --color-input: var(--iryx-input);
111
125
  --color-success: var(--iryx-success);
112
126
  --color-success-foreground: var(--iryx-success-foreground);
113
127
  --color-success-muted: var(--iryx-success-muted);