iryx-ui 0.4.0 → 0.6.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 (68) hide show
  1. package/README.md +293 -10
  2. package/dist/component-names.d.ts +1 -1
  3. package/dist/components/Alert.vue.d.ts +19 -4
  4. package/dist/components/App.vue.d.ts +1 -1
  5. package/dist/components/Badge.vue.d.ts +4 -3
  6. package/dist/components/Banner.vue.d.ts +81 -0
  7. package/dist/components/Combobox.vue.d.ts +112 -0
  8. package/dist/components/Pagination.vue.d.ts +2 -0
  9. package/dist/components/Select.vue.d.ts +15 -4
  10. package/dist/components/Table.vue.d.ts +131 -0
  11. package/dist/components/index.d.ts +3 -0
  12. package/dist/composables/data-table.d.ts +93 -0
  13. package/dist/index.d.ts +5 -1
  14. package/dist/index.js +65 -58
  15. package/dist/node_modules/.pnpm/@hugeicons_core-free-icons@4.2.3/node_modules/@hugeicons/core-free-icons/dist/esm/index.js +15 -1
  16. package/dist/nuxt.d.ts +1 -1
  17. package/dist/packages/iryx-ui/src/component-names.js +1 -1
  18. package/dist/packages/iryx-ui/src/components/Alert.vue_vue_type_script_setup_true_lang.js +51 -35
  19. package/dist/packages/iryx-ui/src/components/Badge.vue_vue_type_script_setup_true_lang.js +1 -2
  20. package/dist/packages/iryx-ui/src/components/Banner.js +5 -0
  21. package/dist/packages/iryx-ui/src/components/Banner.vue_vue_type_script_setup_true_lang.js +93 -0
  22. package/dist/packages/iryx-ui/src/components/Combobox.js +5 -0
  23. package/dist/packages/iryx-ui/src/components/Combobox.vue_vue_type_script_setup_true_lang.js +284 -0
  24. package/dist/packages/iryx-ui/src/components/Pagination.vue_vue_type_script_setup_true_lang.js +5 -1
  25. package/dist/packages/iryx-ui/src/components/Select.vue_vue_type_script_setup_true_lang.js +72 -27
  26. package/dist/packages/iryx-ui/src/components/Table.js +5 -0
  27. package/dist/packages/iryx-ui/src/components/Table.vue_vue_type_script_setup_true_lang.js +217 -0
  28. package/dist/packages/iryx-ui/src/components/index.js +62 -56
  29. package/dist/packages/iryx-ui/src/composables/data-table.js +106 -0
  30. package/dist/packages/iryx-ui/src/theme/alert.js +10 -21
  31. package/dist/packages/iryx-ui/src/theme/badge.js +37 -37
  32. package/dist/packages/iryx-ui/src/theme/banner.js +62 -0
  33. package/dist/packages/iryx-ui/src/theme/button.js +2 -2
  34. package/dist/packages/iryx-ui/src/theme/card.js +1 -1
  35. package/dist/packages/iryx-ui/src/theme/checkbox.js +1 -1
  36. package/dist/packages/iryx-ui/src/theme/combobox.js +29 -0
  37. package/dist/packages/iryx-ui/src/theme/dialog.js +2 -2
  38. package/dist/packages/iryx-ui/src/theme/dropdown-menu.js +4 -4
  39. package/dist/packages/iryx-ui/src/theme/input.js +1 -1
  40. package/dist/packages/iryx-ui/src/theme/number-input.js +1 -1
  41. package/dist/packages/iryx-ui/src/theme/pagination.js +24 -14
  42. package/dist/packages/iryx-ui/src/theme/presets.js +0 -42
  43. package/dist/packages/iryx-ui/src/theme/radio-group.js +1 -1
  44. package/dist/packages/iryx-ui/src/theme/select.js +5 -3
  45. package/dist/packages/iryx-ui/src/theme/skeleton.js +1 -1
  46. package/dist/packages/iryx-ui/src/theme/stat.js +4 -4
  47. package/dist/packages/iryx-ui/src/theme/stepper.js +1 -1
  48. package/dist/packages/iryx-ui/src/theme/switch.js +1 -1
  49. package/dist/packages/iryx-ui/src/theme/table.js +62 -0
  50. package/dist/packages/iryx-ui/src/theme/tabs.js +3 -3
  51. package/dist/packages/iryx-ui/src/theme/toast.js +11 -26
  52. package/dist/packages/iryx-ui/src/theme/tooltip.js +1 -1
  53. package/dist/plugin.d.ts +1 -1
  54. package/dist/theme/alert.d.ts +6 -12
  55. package/dist/theme/badge.d.ts +15 -12
  56. package/dist/theme/banner.d.ts +185 -0
  57. package/dist/theme/button.d.ts +2 -2
  58. package/dist/theme/combobox.d.ts +101 -0
  59. package/dist/theme/index.d.ts +3 -0
  60. package/dist/theme/input.d.ts +5 -5
  61. package/dist/theme/pagination.d.ts +33 -0
  62. package/dist/theme/presets.d.ts +0 -42
  63. package/dist/theme/select.d.ts +6 -0
  64. package/dist/theme/stat.d.ts +0 -3
  65. package/dist/theme/table.d.ts +230 -0
  66. package/dist/theme/toast.d.ts +0 -15
  67. package/package.json +1 -1
  68. package/theme.css +24 -0
@@ -0,0 +1,230 @@
1
+ export declare const tableTheme: import("tailwind-variants").TVReturnType<{
2
+ striped: {
3
+ true: {
4
+ tr: string;
5
+ };
6
+ };
7
+ hoverable: {
8
+ true: {
9
+ tr: string;
10
+ };
11
+ };
12
+ clickable: {
13
+ true: {
14
+ tr: string;
15
+ };
16
+ };
17
+ stickyHeader: {
18
+ true: {
19
+ th: string;
20
+ };
21
+ };
22
+ selected: {
23
+ true: {
24
+ tr: string;
25
+ };
26
+ };
27
+ size: {
28
+ sm: {
29
+ th: string;
30
+ td: string;
31
+ gutter: string;
32
+ };
33
+ md: {};
34
+ lg: {
35
+ th: string;
36
+ td: string;
37
+ gutter: string;
38
+ };
39
+ };
40
+ align: {
41
+ start: {
42
+ th: string;
43
+ td: string;
44
+ };
45
+ center: {
46
+ th: string;
47
+ td: string;
48
+ };
49
+ end: {
50
+ th: string;
51
+ td: string;
52
+ };
53
+ };
54
+ }, {
55
+ /** Scroll container — the table itself never shrinks below its content. */
56
+ root: string;
57
+ table: string;
58
+ thead: string;
59
+ tbody: string;
60
+ tr: string;
61
+ th: string;
62
+ /**
63
+ * Header sort control. A real button so it is tabbable and announced as
64
+ * one; the `<th>` carries `aria-sort` for the state.
65
+ */
66
+ sortButton: string;
67
+ sortIcon: string;
68
+ td: string;
69
+ gutter: string;
70
+ headGutter: string;
71
+ expandButton: string;
72
+ expandedRow: string;
73
+ expandedCell: string;
74
+ /** Message row for "no results", spanning every column. */
75
+ empty: string;
76
+ caption: string;
77
+ }, undefined, {
78
+ striped: {
79
+ true: {
80
+ tr: string;
81
+ };
82
+ };
83
+ hoverable: {
84
+ true: {
85
+ tr: string;
86
+ };
87
+ };
88
+ clickable: {
89
+ true: {
90
+ tr: string;
91
+ };
92
+ };
93
+ stickyHeader: {
94
+ true: {
95
+ th: string;
96
+ };
97
+ };
98
+ selected: {
99
+ true: {
100
+ tr: string;
101
+ };
102
+ };
103
+ size: {
104
+ sm: {
105
+ th: string;
106
+ td: string;
107
+ gutter: string;
108
+ };
109
+ md: {};
110
+ lg: {
111
+ th: string;
112
+ td: string;
113
+ gutter: string;
114
+ };
115
+ };
116
+ align: {
117
+ start: {
118
+ th: string;
119
+ td: string;
120
+ };
121
+ center: {
122
+ th: string;
123
+ td: string;
124
+ };
125
+ end: {
126
+ th: string;
127
+ td: string;
128
+ };
129
+ };
130
+ }, {
131
+ /** Scroll container — the table itself never shrinks below its content. */
132
+ root: string;
133
+ table: string;
134
+ thead: string;
135
+ tbody: string;
136
+ tr: string;
137
+ th: string;
138
+ /**
139
+ * Header sort control. A real button so it is tabbable and announced as
140
+ * one; the `<th>` carries `aria-sort` for the state.
141
+ */
142
+ sortButton: string;
143
+ sortIcon: string;
144
+ td: string;
145
+ gutter: string;
146
+ headGutter: string;
147
+ expandButton: string;
148
+ expandedRow: string;
149
+ expandedCell: string;
150
+ /** Message row for "no results", spanning every column. */
151
+ empty: string;
152
+ caption: string;
153
+ }, import("tailwind-variants").TVReturnType<{
154
+ striped: {
155
+ true: {
156
+ tr: string;
157
+ };
158
+ };
159
+ hoverable: {
160
+ true: {
161
+ tr: string;
162
+ };
163
+ };
164
+ clickable: {
165
+ true: {
166
+ tr: string;
167
+ };
168
+ };
169
+ stickyHeader: {
170
+ true: {
171
+ th: string;
172
+ };
173
+ };
174
+ selected: {
175
+ true: {
176
+ tr: string;
177
+ };
178
+ };
179
+ size: {
180
+ sm: {
181
+ th: string;
182
+ td: string;
183
+ gutter: string;
184
+ };
185
+ md: {};
186
+ lg: {
187
+ th: string;
188
+ td: string;
189
+ gutter: string;
190
+ };
191
+ };
192
+ align: {
193
+ start: {
194
+ th: string;
195
+ td: string;
196
+ };
197
+ center: {
198
+ th: string;
199
+ td: string;
200
+ };
201
+ end: {
202
+ th: string;
203
+ td: string;
204
+ };
205
+ };
206
+ }, {
207
+ /** Scroll container — the table itself never shrinks below its content. */
208
+ root: string;
209
+ table: string;
210
+ thead: string;
211
+ tbody: string;
212
+ tr: string;
213
+ th: string;
214
+ /**
215
+ * Header sort control. A real button so it is tabbable and announced as
216
+ * one; the `<th>` carries `aria-sort` for the state.
217
+ */
218
+ sortButton: string;
219
+ sortIcon: string;
220
+ td: string;
221
+ gutter: string;
222
+ headGutter: string;
223
+ expandButton: string;
224
+ expandedRow: string;
225
+ expandedCell: string;
226
+ /** Message row for "no results", spanning every column. */
227
+ empty: string;
228
+ caption: string;
229
+ }, undefined, unknown, unknown, undefined>>;
230
+ export type TableSlots = keyof ReturnType<typeof tableTheme>;
@@ -1,23 +1,18 @@
1
1
  export declare const toastTheme: import("tailwind-variants").TVReturnType<{
2
2
  variant: {
3
3
  neutral: {
4
- root: string;
5
4
  icon: string;
6
5
  };
7
6
  success: {
8
- root: string;
9
7
  icon: string;
10
8
  };
11
9
  warning: {
12
- root: string;
13
10
  icon: string;
14
11
  };
15
12
  danger: {
16
- root: string;
17
13
  icon: string;
18
14
  };
19
15
  info: {
20
- root: string;
21
16
  icon: string;
22
17
  };
23
18
  };
@@ -59,23 +54,18 @@ export declare const toastTheme: import("tailwind-variants").TVReturnType<{
59
54
  }, undefined, {
60
55
  variant: {
61
56
  neutral: {
62
- root: string;
63
57
  icon: string;
64
58
  };
65
59
  success: {
66
- root: string;
67
60
  icon: string;
68
61
  };
69
62
  warning: {
70
- root: string;
71
63
  icon: string;
72
64
  };
73
65
  danger: {
74
- root: string;
75
66
  icon: string;
76
67
  };
77
68
  info: {
78
- root: string;
79
69
  icon: string;
80
70
  };
81
71
  };
@@ -117,23 +107,18 @@ export declare const toastTheme: import("tailwind-variants").TVReturnType<{
117
107
  }, import("tailwind-variants").TVReturnType<{
118
108
  variant: {
119
109
  neutral: {
120
- root: string;
121
110
  icon: string;
122
111
  };
123
112
  success: {
124
- root: string;
125
113
  icon: string;
126
114
  };
127
115
  warning: {
128
- root: string;
129
116
  icon: string;
130
117
  };
131
118
  danger: {
132
- root: string;
133
119
  icon: string;
134
120
  };
135
121
  info: {
136
- root: string;
137
122
  icon: string;
138
123
  };
139
124
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iryx-ui",
3
3
  "type": "module",
4
- "version": "0.4.0",
4
+ "version": "0.6.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
@@ -19,6 +19,15 @@
19
19
  @custom-variant dark (&:where(.dark, .dark *));
20
20
 
21
21
  :root {
22
+ /*
23
+ * Typeface. The library ships no webfont — that would put font files, a
24
+ * licence and a network request in every consumer's bundle whether they
25
+ * wanted them or not. Point this at your own family instead:
26
+ *
27
+ * :root { --iryx-font-sans: "Instrument Sans", sans-serif; }
28
+ */
29
+ --iryx-font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
30
+
22
31
  /* Neutral surfaces — shadcn/ui "zinc" palette. */
23
32
  --iryx-background: oklch(1 0 0);
24
33
  --iryx-foreground: oklch(0.145 0 0);
@@ -27,6 +36,17 @@
27
36
  --iryx-muted: oklch(0.97 0 0);
28
37
  --iryx-muted-foreground: oklch(0.556 0 0);
29
38
  --iryx-border: oklch(0.922 0 0);
39
+ /*
40
+ * Fill for controls that read as recessed — the fields and the outline
41
+ * button. Its own token rather than `--iryx-muted`, since how raised a
42
+ * control looks is a separate decision from how a muted surface reads.
43
+ *
44
+ * Flat in light and raised in dark, which is where the lift is legible;
45
+ * shadcn does the same with `bg-transparent dark:bg-input/30`. Expressed as
46
+ * two token values rather than a `dark:` variant, so components never carry
47
+ * mode-specific classes.
48
+ */
49
+ --iryx-input: oklch(1 0 0);
30
50
  /* Brand primary — kept as a violet gradient. */
31
51
  --iryx-primary: oklch(0.59 0.2 277.19);
32
52
  --iryx-primary-foreground: oklch(0.985 0.005 248);
@@ -68,6 +88,8 @@
68
88
  --iryx-muted: oklch(0.269 0 0);
69
89
  --iryx-muted-foreground: oklch(0.708 0 0);
70
90
  --iryx-border: oklch(1 0 0 / 10%);
91
+ /* Lifted just off the background — `--iryx-muted` reads as a panel here. */
92
+ --iryx-input: oklch(0.205 0 0);
71
93
  /* Brand primary — kept as a violet gradient. */
72
94
  --iryx-primary: oklch(0.62 0.22 293);
73
95
  --iryx-primary-foreground: oklch(0.985 0.005 248);
@@ -97,6 +119,7 @@
97
119
  }
98
120
 
99
121
  @theme inline {
122
+ --font-sans: var(--iryx-font-sans);
100
123
  --color-background: var(--iryx-background);
101
124
  --color-foreground: var(--iryx-foreground);
102
125
  --color-primary: var(--iryx-primary);
@@ -108,6 +131,7 @@
108
131
  --color-muted: var(--iryx-muted);
109
132
  --color-muted-foreground: var(--iryx-muted-foreground);
110
133
  --color-border: var(--iryx-border);
134
+ --color-input: var(--iryx-input);
111
135
  --color-success: var(--iryx-success);
112
136
  --color-success-foreground: var(--iryx-success-foreground);
113
137
  --color-success-muted: var(--iryx-success-muted);