iryx-ui 0.16.0 → 0.17.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 (87) hide show
  1. package/dist/component-names.d.ts +1 -1
  2. package/dist/component-names.js +1 -1
  3. package/dist/components/Calendar.js +5 -0
  4. package/dist/components/Calendar.vue.d.ts +69 -0
  5. package/dist/components/Calendar.vue_vue_type_script_setup_true_lang.js +168 -0
  6. package/dist/components/Combobox.vue.d.ts +9 -9
  7. package/dist/components/Combobox.vue_vue_type_script_setup_true_lang.js +180 -144
  8. package/dist/components/DateField.js +5 -0
  9. package/dist/components/DateField.vue.d.ts +38 -0
  10. package/dist/components/DateField.vue_vue_type_script_setup_true_lang.js +94 -0
  11. package/dist/components/DatePicker.vue.d.ts +7 -2
  12. package/dist/components/DatePicker.vue_vue_type_script_setup_true_lang.js +73 -124
  13. package/dist/components/DateRangePicker.vue.d.ts +2 -2
  14. package/dist/components/DateRangePicker.vue_vue_type_script_setup_true_lang.js +81 -78
  15. package/dist/components/DropdownMenu.vue.d.ts +13 -6
  16. package/dist/components/DropdownMenu.vue_vue_type_script_setup_true_lang.js +28 -22
  17. package/dist/components/Editable.js +5 -0
  18. package/dist/components/Editable.vue.d.ts +81 -0
  19. package/dist/components/Editable.vue_vue_type_script_setup_true_lang.js +140 -0
  20. package/dist/components/HoverCard.js +5 -0
  21. package/dist/components/HoverCard.vue.d.ts +68 -0
  22. package/dist/components/HoverCard.vue_vue_type_script_setup_true_lang.js +79 -0
  23. package/dist/components/TagsInput.vue.d.ts +2 -2
  24. package/dist/components/TimeField.vue_vue_type_script_setup_true_lang.js +17 -14
  25. package/dist/components/index.d.ts +4 -0
  26. package/dist/components/index.js +124 -116
  27. package/dist/index.d.ts +4 -0
  28. package/dist/index.js +130 -122
  29. package/dist/theme/accordion.d.ts +0 -15
  30. package/dist/theme/alert.d.ts +0 -3
  31. package/dist/theme/avatar.d.ts +0 -3
  32. package/dist/theme/banner.d.ts +0 -6
  33. package/dist/theme/bar-chart.d.ts +0 -18
  34. package/dist/theme/breadcrumb.d.ts +0 -3
  35. package/dist/theme/calendar.d.ts +62 -0
  36. package/dist/theme/calendar.js +29 -0
  37. package/dist/theme/card.d.ts +0 -6
  38. package/dist/theme/chart-legend.d.ts +0 -3
  39. package/dist/theme/checkbox.d.ts +0 -6
  40. package/dist/theme/color-picker.d.ts +0 -6
  41. package/dist/theme/combobox.js +4 -4
  42. package/dist/theme/command-palette.d.ts +0 -6
  43. package/dist/theme/container.d.ts +0 -3
  44. package/dist/theme/container.js +3 -3
  45. package/dist/theme/date-field.d.ts +65 -0
  46. package/dist/theme/date-field.js +21 -0
  47. package/dist/theme/date-picker.d.ts +0 -195
  48. package/dist/theme/date-picker.js +2 -24
  49. package/dist/theme/donut-chart.d.ts +0 -18
  50. package/dist/theme/dropdown-menu.d.ts +3 -0
  51. package/dist/theme/dropdown-menu.js +1 -0
  52. package/dist/theme/editable.d.ts +77 -0
  53. package/dist/theme/editable.js +26 -0
  54. package/dist/theme/empty-state.d.ts +0 -3
  55. package/dist/theme/file-upload.d.ts +0 -39
  56. package/dist/theme/hover-card.d.ts +92 -0
  57. package/dist/theme/hover-card.js +28 -0
  58. package/dist/theme/index.d.ts +4 -0
  59. package/dist/theme/input.d.ts +0 -18
  60. package/dist/theme/kbd.d.ts +0 -3
  61. package/dist/theme/line-chart.d.ts +0 -18
  62. package/dist/theme/navigation-menu.d.ts +0 -48
  63. package/dist/theme/number-input.d.ts +0 -3
  64. package/dist/theme/page-header.d.ts +0 -3
  65. package/dist/theme/password-input.d.ts +0 -23
  66. package/dist/theme/pin-input.d.ts +0 -3
  67. package/dist/theme/popover.d.ts +0 -6
  68. package/dist/theme/progress.d.ts +0 -51
  69. package/dist/theme/scroll-area.d.ts +0 -3
  70. package/dist/theme/separator.d.ts +0 -3
  71. package/dist/theme/sidebar.d.ts +0 -54
  72. package/dist/theme/skeleton.d.ts +0 -3
  73. package/dist/theme/skeleton.js +1 -1
  74. package/dist/theme/slider.d.ts +0 -6
  75. package/dist/theme/sparkline.d.ts +0 -11
  76. package/dist/theme/splitter.d.ts +0 -3
  77. package/dist/theme/stat.d.ts +0 -12
  78. package/dist/theme/stat.js +2 -2
  79. package/dist/theme/switch.d.ts +0 -6
  80. package/dist/theme/table.d.ts +0 -39
  81. package/dist/theme/tabs.d.ts +0 -12
  82. package/dist/theme/time-field.d.ts +0 -3
  83. package/dist/theme/timeline.d.ts +0 -18
  84. package/dist/theme/toast.d.ts +0 -3
  85. package/dist/theme/toggle.d.ts +0 -23
  86. package/dist/theme/tree.d.ts +0 -3
  87. package/package.json +1 -1
@@ -15,75 +15,10 @@ export declare const datePickerTheme: import("tailwind-variants").TVReturnType<{
15
15
  trigger: string;
16
16
  };
17
17
  };
18
- /**
19
- * A single date is the whole selection, so it takes the solid fill. In a
20
- * range only the two endpoints do, and the days between get a flat tint —
21
- * emphasising all of them equally turns a long span into one solid block
22
- * that no longer shows where it starts and stops.
23
- *
24
- * The middle style excludes the endpoints with `not-*` rather than relying
25
- * on class order, so the two rules never compete for the background.
26
- */
27
- range: {
28
- false: {
29
- cellTrigger: string;
30
- };
31
- /**
32
- * Reka's `data-highlighted` hover preview is deliberately left unstyled:
33
- * a band that follows the cursor has to reshape its rounded ends on
34
- * every move, and no combination of transitioning or not transitioning
35
- * the radius looks right while it does. Only the committed range is
36
- * drawn, so nothing under the pointer changes shape.
37
- *
38
- * The band goes on the cell and the endpoint pills on the trigger, so
39
- * a single element never has to be both. Only the run's outer edges are
40
- * rounded, so the days between meet flush.
41
- */
42
- true: {
43
- cell: string;
44
- cellTrigger: string;
45
- };
46
- };
47
18
  }, {
48
19
  trigger: string;
49
- /** Shown in place of the value, so it reads as absent rather than chosen. */
50
20
  placeholder: string;
51
21
  content: string;
52
- header: string;
53
- heading: string;
54
- nav: string;
55
- /**
56
- * `items-start`: flex would otherwise stretch a short month to match a
57
- * taller neighbour, spreading its rows apart. Paired with `fixed-weeks`
58
- * on the calendar, which keeps every month six rows tall so the popover
59
- * does not resize as you page through it.
60
- */
61
- months: string;
62
- grid: string;
63
- headCell: string;
64
- /**
65
- * The range bands are painted here, not on the trigger — see `range`.
66
- *
67
- * `transition-colors` fades the band in and out but deliberately leaves
68
- * `border-radius` untransitioned: animating the radius morphs the band's
69
- * shape as the preview moves, which reads as the corners wobbling.
70
- */
71
- cell: string;
72
- /**
73
- * `w-full`, not a fixed `size-8`: the table cell is wider than 32px, so a
74
- * fixed-width pill leaves a gap between consecutive days and a run renders
75
- * as a chain of lozenges with pinched corners instead of one band.
76
- *
77
- * Hover is suppressed on already-selected days so it cannot paint a
78
- * competing pill over the solid endpoint fill.
79
- *
80
- * Selection colour is added by the `range` variant, which differs per mode.
81
- *
82
- * `tabular-nums`: a proportional `1` is narrower than a `0`, so day numbers
83
- * sit off-centre in their pill and the columns of a month no longer line
84
- * up vertically — visible as a wobble down the week columns.
85
- */
86
- cellTrigger: string;
87
22
  footer: string;
88
23
  action: string;
89
24
  }, undefined, {
@@ -103,75 +38,10 @@ export declare const datePickerTheme: import("tailwind-variants").TVReturnType<{
103
38
  trigger: string;
104
39
  };
105
40
  };
106
- /**
107
- * A single date is the whole selection, so it takes the solid fill. In a
108
- * range only the two endpoints do, and the days between get a flat tint —
109
- * emphasising all of them equally turns a long span into one solid block
110
- * that no longer shows where it starts and stops.
111
- *
112
- * The middle style excludes the endpoints with `not-*` rather than relying
113
- * on class order, so the two rules never compete for the background.
114
- */
115
- range: {
116
- false: {
117
- cellTrigger: string;
118
- };
119
- /**
120
- * Reka's `data-highlighted` hover preview is deliberately left unstyled:
121
- * a band that follows the cursor has to reshape its rounded ends on
122
- * every move, and no combination of transitioning or not transitioning
123
- * the radius looks right while it does. Only the committed range is
124
- * drawn, so nothing under the pointer changes shape.
125
- *
126
- * The band goes on the cell and the endpoint pills on the trigger, so
127
- * a single element never has to be both. Only the run's outer edges are
128
- * rounded, so the days between meet flush.
129
- */
130
- true: {
131
- cell: string;
132
- cellTrigger: string;
133
- };
134
- };
135
41
  }, {
136
42
  trigger: string;
137
- /** Shown in place of the value, so it reads as absent rather than chosen. */
138
43
  placeholder: string;
139
44
  content: string;
140
- header: string;
141
- heading: string;
142
- nav: string;
143
- /**
144
- * `items-start`: flex would otherwise stretch a short month to match a
145
- * taller neighbour, spreading its rows apart. Paired with `fixed-weeks`
146
- * on the calendar, which keeps every month six rows tall so the popover
147
- * does not resize as you page through it.
148
- */
149
- months: string;
150
- grid: string;
151
- headCell: string;
152
- /**
153
- * The range bands are painted here, not on the trigger — see `range`.
154
- *
155
- * `transition-colors` fades the band in and out but deliberately leaves
156
- * `border-radius` untransitioned: animating the radius morphs the band's
157
- * shape as the preview moves, which reads as the corners wobbling.
158
- */
159
- cell: string;
160
- /**
161
- * `w-full`, not a fixed `size-8`: the table cell is wider than 32px, so a
162
- * fixed-width pill leaves a gap between consecutive days and a run renders
163
- * as a chain of lozenges with pinched corners instead of one band.
164
- *
165
- * Hover is suppressed on already-selected days so it cannot paint a
166
- * competing pill over the solid endpoint fill.
167
- *
168
- * Selection colour is added by the `range` variant, which differs per mode.
169
- *
170
- * `tabular-nums`: a proportional `1` is narrower than a `0`, so day numbers
171
- * sit off-centre in their pill and the columns of a month no longer line
172
- * up vertically — visible as a wobble down the week columns.
173
- */
174
- cellTrigger: string;
175
45
  footer: string;
176
46
  action: string;
177
47
  }, import("tailwind-variants").TVReturnType<{
@@ -191,75 +61,10 @@ export declare const datePickerTheme: import("tailwind-variants").TVReturnType<{
191
61
  trigger: string;
192
62
  };
193
63
  };
194
- /**
195
- * A single date is the whole selection, so it takes the solid fill. In a
196
- * range only the two endpoints do, and the days between get a flat tint —
197
- * emphasising all of them equally turns a long span into one solid block
198
- * that no longer shows where it starts and stops.
199
- *
200
- * The middle style excludes the endpoints with `not-*` rather than relying
201
- * on class order, so the two rules never compete for the background.
202
- */
203
- range: {
204
- false: {
205
- cellTrigger: string;
206
- };
207
- /**
208
- * Reka's `data-highlighted` hover preview is deliberately left unstyled:
209
- * a band that follows the cursor has to reshape its rounded ends on
210
- * every move, and no combination of transitioning or not transitioning
211
- * the radius looks right while it does. Only the committed range is
212
- * drawn, so nothing under the pointer changes shape.
213
- *
214
- * The band goes on the cell and the endpoint pills on the trigger, so
215
- * a single element never has to be both. Only the run's outer edges are
216
- * rounded, so the days between meet flush.
217
- */
218
- true: {
219
- cell: string;
220
- cellTrigger: string;
221
- };
222
- };
223
64
  }, {
224
65
  trigger: string;
225
- /** Shown in place of the value, so it reads as absent rather than chosen. */
226
66
  placeholder: string;
227
67
  content: string;
228
- header: string;
229
- heading: string;
230
- nav: string;
231
- /**
232
- * `items-start`: flex would otherwise stretch a short month to match a
233
- * taller neighbour, spreading its rows apart. Paired with `fixed-weeks`
234
- * on the calendar, which keeps every month six rows tall so the popover
235
- * does not resize as you page through it.
236
- */
237
- months: string;
238
- grid: string;
239
- headCell: string;
240
- /**
241
- * The range bands are painted here, not on the trigger — see `range`.
242
- *
243
- * `transition-colors` fades the band in and out but deliberately leaves
244
- * `border-radius` untransitioned: animating the radius morphs the band's
245
- * shape as the preview moves, which reads as the corners wobbling.
246
- */
247
- cell: string;
248
- /**
249
- * `w-full`, not a fixed `size-8`: the table cell is wider than 32px, so a
250
- * fixed-width pill leaves a gap between consecutive days and a run renders
251
- * as a chain of lozenges with pinched corners instead of one band.
252
- *
253
- * Hover is suppressed on already-selected days so it cannot paint a
254
- * competing pill over the solid endpoint fill.
255
- *
256
- * Selection colour is added by the `range` variant, which differs per mode.
257
- *
258
- * `tabular-nums`: a proportional `1` is narrower than a `0`, so day numbers
259
- * sit off-centre in their pill and the columns of a month no longer line
260
- * up vertically — visible as a wobble down the week columns.
261
- */
262
- cellTrigger: string;
263
68
  footer: string;
264
69
  action: string;
265
70
  }, undefined, unknown, unknown, undefined>>;
@@ -6,14 +6,6 @@ var n = t({
6
6
  trigger: `flex items-center justify-between gap-2 ${e} cursor-pointer [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:opacity-60`,
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
- header: "flex items-center justify-between gap-2 pb-3",
10
- heading: "text-sm font-medium",
11
- nav: "flex size-7 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 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4",
12
- months: "flex items-start gap-4",
13
- grid: "w-full border-collapse select-none",
14
- headCell: "pb-1 text-xs font-normal text-muted-foreground",
15
- cell: "p-0 transition-colors",
16
- cellTrigger: "flex h-8 w-full min-w-8 items-center justify-center rounded-lg text-sm tabular-nums transition-colors outline-none not-data-[selected]:hover:bg-accent not-data-[selected]:hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 data-[disabled]:pointer-events-none data-[disabled]:opacity-30 data-[outside-view]:text-muted-foreground/50 data-[today]:font-semibold data-[today]:text-primary data-[unavailable]:pointer-events-none data-[unavailable]:line-through data-[unavailable]:opacity-40",
17
9
  footer: "flex items-center justify-between gap-2 pt-3",
18
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"
19
11
  },
@@ -23,23 +15,9 @@ var n = t({
23
15
  md: { trigger: "h-9 px-3 text-sm" },
24
16
  lg: { trigger: "h-10 px-4 text-base" }
25
17
  },
26
- invalid: { true: { trigger: "border-red-500 focus-visible:ring-red-500/40" } },
27
- range: {
28
- false: { cellTrigger: "data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:hover:bg-primary data-[selected]:data-[today]:text-primary-foreground" },
29
- true: {
30
- cell: [
31
- "has-data-[selected]:bg-primary/15",
32
- "has-data-[selection-start]:rounded-s-lg",
33
- "has-data-[selection-end]:rounded-e-lg"
34
- ].join(" "),
35
- cellTrigger: ["data-[selection-start]:bg-primary data-[selection-start]:text-primary-foreground data-[selection-start]:hover:bg-primary", "data-[selection-end]:bg-primary data-[selection-end]:text-primary-foreground data-[selection-end]:hover:bg-primary"].join(" ")
36
- }
37
- }
18
+ invalid: { true: { trigger: "border-red-500 focus-visible:ring-red-500/40" } }
38
19
  },
39
- defaultVariants: {
40
- size: "md",
41
- range: !1
42
- }
20
+ defaultVariants: { size: "md" }
43
21
  });
44
22
  //#endregion
45
23
  export { n as datePickerTheme };
@@ -32,16 +32,10 @@ export declare const donutChartTheme: import("tailwind-variants").TVReturnType<{
32
32
  };
33
33
  } | {}, {
34
34
  root: string;
35
- /** The tooltip's coordinates come from the SVG, so the SVG anchors it. */
36
35
  plot: string;
37
36
  svg: string;
38
37
  slice: string;
39
38
  faded: string;
40
- /**
41
- * The hole. Sized and placed inline from the geometry, so this only
42
- * carries the look — a column centred on both axes, out of the way of
43
- * pointer events so the slice underneath still hovers at the edges.
44
- */
45
39
  center: string;
46
40
  tooltip: string;
47
41
  tooltipLabel: string;
@@ -66,16 +60,10 @@ export declare const donutChartTheme: import("tailwind-variants").TVReturnType<{
66
60
  };
67
61
  } | {}, {
68
62
  root: string;
69
- /** The tooltip's coordinates come from the SVG, so the SVG anchors it. */
70
63
  plot: string;
71
64
  svg: string;
72
65
  slice: string;
73
66
  faded: string;
74
- /**
75
- * The hole. Sized and placed inline from the geometry, so this only
76
- * carries the look — a column centred on both axes, out of the way of
77
- * pointer events so the slice underneath still hovers at the edges.
78
- */
79
67
  center: string;
80
68
  tooltip: string;
81
69
  tooltipLabel: string;
@@ -84,16 +72,10 @@ export declare const donutChartTheme: import("tailwind-variants").TVReturnType<{
84
72
  table: string;
85
73
  }, import("tailwind-variants").TVReturnType<unknown, {
86
74
  root: string;
87
- /** The tooltip's coordinates come from the SVG, so the SVG anchors it. */
88
75
  plot: string;
89
76
  svg: string;
90
77
  slice: string;
91
78
  faded: string;
92
- /**
93
- * The hole. Sized and placed inline from the geometry, so this only
94
- * carries the look — a column centred on both axes, out of the way of
95
- * pointer events so the slice underneath still hovers at the edges.
96
- */
97
79
  center: string;
98
80
  tooltip: string;
99
81
  tooltipLabel: string;
@@ -8,6 +8,7 @@ export declare const dropdownMenuTheme: import("tailwind-variants").TVReturnType
8
8
  content: string;
9
9
  item: string;
10
10
  label: string;
11
+ header: string;
11
12
  separator: string;
12
13
  subTrigger: string;
13
14
  subContent: string;
@@ -22,6 +23,7 @@ export declare const dropdownMenuTheme: import("tailwind-variants").TVReturnType
22
23
  content: string;
23
24
  item: string;
24
25
  label: string;
26
+ header: string;
25
27
  separator: string;
26
28
  subTrigger: string;
27
29
  subContent: string;
@@ -36,6 +38,7 @@ export declare const dropdownMenuTheme: import("tailwind-variants").TVReturnType
36
38
  content: string;
37
39
  item: string;
38
40
  label: string;
41
+ header: string;
39
42
  separator: string;
40
43
  subTrigger: string;
41
44
  subContent: string;
@@ -5,6 +5,7 @@ var t = e({
5
5
  content: "z-50 min-w-40 overflow-hidden rounded-xl border border-border bg-background p-1 text-foreground shadow-lg outline-none data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
6
6
  item: "flex cursor-pointer items-center gap-2 rounded-lg px-2 py-1.5 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
7
7
  label: "px-2 py-1.5 text-xs font-medium text-muted-foreground",
8
+ header: "-mx-1 -mt-1 mb-1 border-b border-border px-3 py-2.5",
8
9
  separator: "-mx-1 my-1 h-px bg-border",
9
10
  subTrigger: "flex cursor-default items-center gap-2 rounded-lg px-2 py-1.5 text-sm outline-none select-none 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 [&_svg]:size-4 [&_svg]:shrink-0",
10
11
  subContent: "z-50 min-w-40 overflow-hidden rounded-xl border border-border bg-background p-1 text-foreground shadow-lg outline-none data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
@@ -0,0 +1,77 @@
1
+ export declare const editableTheme: import("tailwind-variants").TVReturnType<{
2
+ size: {
3
+ sm: {
4
+ root: string;
5
+ };
6
+ md: {
7
+ root: string;
8
+ };
9
+ lg: {
10
+ root: string;
11
+ };
12
+ };
13
+ invalid: {
14
+ true: {
15
+ preview: string;
16
+ input: string;
17
+ };
18
+ };
19
+ }, {
20
+ root: string;
21
+ area: string;
22
+ preview: string;
23
+ placeholder: string;
24
+ input: string;
25
+ control: string;
26
+ }, undefined, {
27
+ size: {
28
+ sm: {
29
+ root: string;
30
+ };
31
+ md: {
32
+ root: string;
33
+ };
34
+ lg: {
35
+ root: string;
36
+ };
37
+ };
38
+ invalid: {
39
+ true: {
40
+ preview: string;
41
+ input: string;
42
+ };
43
+ };
44
+ }, {
45
+ root: string;
46
+ area: string;
47
+ preview: string;
48
+ placeholder: string;
49
+ input: string;
50
+ control: string;
51
+ }, import("tailwind-variants").TVReturnType<{
52
+ size: {
53
+ sm: {
54
+ root: string;
55
+ };
56
+ md: {
57
+ root: string;
58
+ };
59
+ lg: {
60
+ root: string;
61
+ };
62
+ };
63
+ invalid: {
64
+ true: {
65
+ preview: string;
66
+ input: string;
67
+ };
68
+ };
69
+ }, {
70
+ root: string;
71
+ area: string;
72
+ preview: string;
73
+ placeholder: string;
74
+ input: string;
75
+ control: string;
76
+ }, undefined, unknown, unknown, undefined>>;
77
+ export type EditableSlots = keyof ReturnType<typeof editableTheme>;
@@ -0,0 +1,26 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/editable.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "inline-flex items-center gap-1",
6
+ area: "min-w-0 flex-1",
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
+ placeholder: "text-muted-foreground",
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"
11
+ },
12
+ variants: {
13
+ size: {
14
+ sm: { root: "text-sm" },
15
+ md: { root: "text-sm" },
16
+ lg: { root: "text-base" }
17
+ },
18
+ invalid: { true: {
19
+ preview: "text-red-500",
20
+ input: "text-red-500"
21
+ } }
22
+ },
23
+ defaultVariants: { size: "md" }
24
+ });
25
+ //#endregion
26
+ export { t as editableTheme };
@@ -24,7 +24,6 @@ export declare const emptyStateTheme: import("tailwind-variants").TVReturnType<{
24
24
  icon: string;
25
25
  title: string;
26
26
  description: string;
27
- /** Only rendered when the actions slot is used. */
28
27
  actions: string;
29
28
  }, undefined, {
30
29
  size: {
@@ -52,7 +51,6 @@ export declare const emptyStateTheme: import("tailwind-variants").TVReturnType<{
52
51
  icon: string;
53
52
  title: string;
54
53
  description: string;
55
- /** Only rendered when the actions slot is used. */
56
54
  actions: string;
57
55
  }, import("tailwind-variants").TVReturnType<{
58
56
  size: {
@@ -80,7 +78,6 @@ export declare const emptyStateTheme: import("tailwind-variants").TVReturnType<{
80
78
  icon: string;
81
79
  title: string;
82
80
  description: string;
83
- /** Only rendered when the actions slot is used. */
84
81
  actions: string;
85
82
  }, undefined, unknown, unknown, undefined>>;
86
83
  export type EmptyStateSlots = keyof ReturnType<typeof emptyStateTheme>;
@@ -16,28 +16,15 @@ export declare const fileUploadTheme: import("tailwind-variants").TVReturnType<{
16
16
  };
17
17
  }, {
18
18
  root: string;
19
- /**
20
- * A label, so a click anywhere on the zone opens the picker without any
21
- * script — the `<input type="file">` inside stays the real control and
22
- * keeps its native keyboard and screen-reader behaviour.
23
- */
24
19
  dropzone: string;
25
- /** Visually hidden rather than `display:none`, which drops it from the tab order. */
26
20
  input: string;
27
- /**
28
- * A filled disc behind the glyph. A bare icon floating in the middle of a
29
- * large dashed box reads as an artefact; the disc gives it enough weight
30
- * to be the thing the zone is built around.
31
- */
32
21
  icon: string;
33
22
  label: string;
34
- /** Spacing only — the look comes from Button, so it tracks the theme. */
35
23
  browse: string;
36
24
  hint: string;
37
25
  list: string;
38
26
  item: string;
39
27
  thumbnail: string;
40
- /** Stand-in for anything without a preview, so rows stay the same height. */
41
28
  placeholder: string;
42
29
  details: string;
43
30
  name: string;
@@ -62,28 +49,15 @@ export declare const fileUploadTheme: import("tailwind-variants").TVReturnType<{
62
49
  };
63
50
  }, {
64
51
  root: string;
65
- /**
66
- * A label, so a click anywhere on the zone opens the picker without any
67
- * script — the `<input type="file">` inside stays the real control and
68
- * keeps its native keyboard and screen-reader behaviour.
69
- */
70
52
  dropzone: string;
71
- /** Visually hidden rather than `display:none`, which drops it from the tab order. */
72
53
  input: string;
73
- /**
74
- * A filled disc behind the glyph. A bare icon floating in the middle of a
75
- * large dashed box reads as an artefact; the disc gives it enough weight
76
- * to be the thing the zone is built around.
77
- */
78
54
  icon: string;
79
55
  label: string;
80
- /** Spacing only — the look comes from Button, so it tracks the theme. */
81
56
  browse: string;
82
57
  hint: string;
83
58
  list: string;
84
59
  item: string;
85
60
  thumbnail: string;
86
- /** Stand-in for anything without a preview, so rows stay the same height. */
87
61
  placeholder: string;
88
62
  details: string;
89
63
  name: string;
@@ -108,28 +82,15 @@ export declare const fileUploadTheme: import("tailwind-variants").TVReturnType<{
108
82
  };
109
83
  }, {
110
84
  root: string;
111
- /**
112
- * A label, so a click anywhere on the zone opens the picker without any
113
- * script — the `<input type="file">` inside stays the real control and
114
- * keeps its native keyboard and screen-reader behaviour.
115
- */
116
85
  dropzone: string;
117
- /** Visually hidden rather than `display:none`, which drops it from the tab order. */
118
86
  input: string;
119
- /**
120
- * A filled disc behind the glyph. A bare icon floating in the middle of a
121
- * large dashed box reads as an artefact; the disc gives it enough weight
122
- * to be the thing the zone is built around.
123
- */
124
87
  icon: string;
125
88
  label: string;
126
- /** Spacing only — the look comes from Button, so it tracks the theme. */
127
89
  browse: string;
128
90
  hint: string;
129
91
  list: string;
130
92
  item: string;
131
93
  thumbnail: string;
132
- /** Stand-in for anything without a preview, so rows stay the same height. */
133
94
  placeholder: string;
134
95
  details: string;
135
96
  name: string;
@@ -0,0 +1,92 @@
1
+ export declare const hoverCardTheme: import("tailwind-variants").TVReturnType<{
2
+ padding: {
3
+ none: {
4
+ content: string;
5
+ };
6
+ sm: {
7
+ content: string;
8
+ };
9
+ md: {
10
+ content: string;
11
+ };
12
+ lg: {
13
+ content: string;
14
+ };
15
+ };
16
+ width: {
17
+ none: {};
18
+ sm: {
19
+ content: string;
20
+ };
21
+ md: {
22
+ content: string;
23
+ };
24
+ lg: {
25
+ content: string;
26
+ };
27
+ };
28
+ }, {
29
+ content: string;
30
+ arrow: string;
31
+ }, undefined, {
32
+ padding: {
33
+ none: {
34
+ content: string;
35
+ };
36
+ sm: {
37
+ content: string;
38
+ };
39
+ md: {
40
+ content: string;
41
+ };
42
+ lg: {
43
+ content: string;
44
+ };
45
+ };
46
+ width: {
47
+ none: {};
48
+ sm: {
49
+ content: string;
50
+ };
51
+ md: {
52
+ content: string;
53
+ };
54
+ lg: {
55
+ content: string;
56
+ };
57
+ };
58
+ }, {
59
+ content: string;
60
+ arrow: string;
61
+ }, import("tailwind-variants").TVReturnType<{
62
+ padding: {
63
+ none: {
64
+ content: string;
65
+ };
66
+ sm: {
67
+ content: string;
68
+ };
69
+ md: {
70
+ content: string;
71
+ };
72
+ lg: {
73
+ content: string;
74
+ };
75
+ };
76
+ width: {
77
+ none: {};
78
+ sm: {
79
+ content: string;
80
+ };
81
+ md: {
82
+ content: string;
83
+ };
84
+ lg: {
85
+ content: string;
86
+ };
87
+ };
88
+ }, {
89
+ content: string;
90
+ arrow: string;
91
+ }, undefined, unknown, unknown, undefined>>;
92
+ export type HoverCardSlots = keyof ReturnType<typeof hoverCardTheme>;
@@ -0,0 +1,28 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/hover-card.ts
3
+ var t = e({
4
+ slots: {
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
+ arrow: "fill-background stroke-border"
7
+ },
8
+ variants: {
9
+ padding: {
10
+ none: { content: "p-0" },
11
+ sm: { content: "p-3" },
12
+ md: { content: "p-4" },
13
+ lg: { content: "p-6" }
14
+ },
15
+ width: {
16
+ none: {},
17
+ sm: { content: "w-56" },
18
+ md: { content: "w-72" },
19
+ lg: { content: "w-88" }
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ padding: "md",
24
+ width: "md"
25
+ }
26
+ });
27
+ //#endregion
28
+ export { t as hoverCardTheme };