@sytechui/theme 2.6.2 → 2.6.4

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 (159) hide show
  1. package/dist/{chunk-27EH4573.mjs → chunk-47BB6GL3.mjs} +1 -1
  2. package/dist/{chunk-GYRKKQKN.mjs → chunk-4N2PLITL.mjs} +1 -1
  3. package/dist/{chunk-3PBT3W4C.mjs → chunk-5DJU5KUL.mjs} +1 -1
  4. package/dist/{chunk-P2SWF4YK.mjs → chunk-7ARJ2TQM.mjs} +1 -1
  5. package/dist/chunk-7FAFG773.mjs +69 -0
  6. package/dist/{chunk-JGY6VQQQ.mjs → chunk-7K2CWEHT.mjs} +8 -1
  7. package/dist/{chunk-HRULT2QB.mjs → chunk-AGSAOCCR.mjs} +1 -1
  8. package/dist/{chunk-OBSH26UE.mjs → chunk-AL5UNXQI.mjs} +1 -1
  9. package/dist/{chunk-QU72GCNK.mjs → chunk-ECD4ABCS.mjs} +1 -1
  10. package/dist/{chunk-CR7SUL27.mjs → chunk-EZ47UJPD.mjs} +1 -1
  11. package/dist/{chunk-GXDNTAQH.mjs → chunk-I5YZBAB3.mjs} +1 -1
  12. package/dist/{chunk-RAC3PSZO.mjs → chunk-KKEJLP4U.mjs} +1 -1
  13. package/dist/{chunk-4XFAHRMJ.mjs → chunk-MTBQ5EO5.mjs} +1 -1
  14. package/dist/{chunk-YISEC5JS.mjs → chunk-NJBUOBAS.mjs} +9 -5
  15. package/dist/{chunk-7CAOOET2.mjs → chunk-OSP4OLTO.mjs} +1 -1
  16. package/dist/{chunk-M5F7VFZT.mjs → chunk-P5HLCB43.mjs} +1 -1
  17. package/dist/{chunk-T754O54S.mjs → chunk-PY74IHS4.mjs} +1 -1
  18. package/dist/{chunk-UJC5GXOO.mjs → chunk-ROFEKAS6.mjs} +7 -7
  19. package/dist/{chunk-22RNS2JQ.mjs → chunk-T6HDMOJB.mjs} +248 -97
  20. package/dist/{chunk-K6X3VPO4.mjs → chunk-USGOG5QI.mjs} +1 -1
  21. package/dist/{chunk-LD2JADOO.mjs → chunk-W37Q6YFS.mjs} +1 -1
  22. package/dist/{chunk-6Q4A5IGD.mjs → chunk-WH4ODSEM.mjs} +1 -1
  23. package/dist/{chunk-7MY46DKJ.mjs → chunk-XBJNS5SU.mjs} +1 -1
  24. package/dist/{chunk-63TVI5PY.mjs → chunk-XKMMJKKB.mjs} +1 -1
  25. package/dist/{chunk-TYJNRAT2.mjs → chunk-ZWG2GMCI.mjs} +1 -1
  26. package/dist/components/accordion.js +21 -0
  27. package/dist/components/accordion.mjs +28 -28
  28. package/dist/components/alert.js +21 -0
  29. package/dist/components/alert.mjs +7 -7
  30. package/dist/components/autocomplete.js +21 -0
  31. package/dist/components/autocomplete.mjs +7 -7
  32. package/dist/components/avatar.js +21 -0
  33. package/dist/components/avatar.mjs +28 -28
  34. package/dist/components/badge.js +21 -0
  35. package/dist/components/badge.mjs +28 -28
  36. package/dist/components/bottom-bar.js +21 -0
  37. package/dist/components/bottom-bar.mjs +28 -28
  38. package/dist/components/breadcrumbs.js +21 -0
  39. package/dist/components/breadcrumbs.mjs +28 -28
  40. package/dist/components/button.js +21 -0
  41. package/dist/components/button.mjs +28 -28
  42. package/dist/components/calendar.js +21 -0
  43. package/dist/components/calendar.mjs +28 -28
  44. package/dist/components/card.js +21 -0
  45. package/dist/components/card.mjs +28 -28
  46. package/dist/components/checkbox.js +28 -4
  47. package/dist/components/checkbox.mjs +28 -28
  48. package/dist/components/chip.js +21 -0
  49. package/dist/components/chip.mjs +28 -28
  50. package/dist/components/code.js +21 -0
  51. package/dist/components/code.mjs +28 -28
  52. package/dist/components/date-input.js +21 -0
  53. package/dist/components/date-input.mjs +7 -7
  54. package/dist/components/date-picker.js +21 -0
  55. package/dist/components/date-picker.mjs +7 -7
  56. package/dist/components/divider.js +21 -0
  57. package/dist/components/divider.mjs +7 -7
  58. package/dist/components/drawer.js +21 -0
  59. package/dist/components/drawer.mjs +7 -7
  60. package/dist/components/drip.js +21 -0
  61. package/dist/components/drip.mjs +7 -7
  62. package/dist/components/drop-zone.js +21 -0
  63. package/dist/components/drop-zone.mjs +28 -28
  64. package/dist/components/dropdown.js +21 -0
  65. package/dist/components/dropdown.mjs +28 -28
  66. package/dist/components/form.js +21 -0
  67. package/dist/components/form.mjs +7 -7
  68. package/dist/components/image.js +21 -0
  69. package/dist/components/image.mjs +7 -7
  70. package/dist/components/index.js +264 -92
  71. package/dist/components/index.mjs +29 -29
  72. package/dist/components/input-otp.js +21 -0
  73. package/dist/components/input-otp.mjs +28 -28
  74. package/dist/components/input.js +21 -0
  75. package/dist/components/input.mjs +28 -28
  76. package/dist/components/kbd.js +21 -0
  77. package/dist/components/kbd.mjs +7 -7
  78. package/dist/components/link.js +21 -0
  79. package/dist/components/link.mjs +28 -28
  80. package/dist/components/listbox.js +21 -0
  81. package/dist/components/listbox.mjs +28 -28
  82. package/dist/components/menu.js +21 -0
  83. package/dist/components/menu.mjs +28 -28
  84. package/dist/components/modal.js +21 -0
  85. package/dist/components/modal.mjs +28 -28
  86. package/dist/components/navbar.js +21 -0
  87. package/dist/components/navbar.mjs +28 -28
  88. package/dist/components/number-input.js +21 -0
  89. package/dist/components/number-input.mjs +28 -28
  90. package/dist/components/pagination.js +21 -0
  91. package/dist/components/pagination.mjs +28 -28
  92. package/dist/components/popover.js +21 -0
  93. package/dist/components/popover.mjs +28 -28
  94. package/dist/components/progress.js +21 -0
  95. package/dist/components/progress.mjs +7 -7
  96. package/dist/components/radio.js +21 -0
  97. package/dist/components/radio.mjs +28 -28
  98. package/dist/components/scroll-area.js +21 -0
  99. package/dist/components/scroll-area.mjs +7 -7
  100. package/dist/components/scroll-shadow.js +21 -0
  101. package/dist/components/scroll-shadow.mjs +7 -7
  102. package/dist/components/select.js +21 -0
  103. package/dist/components/select.mjs +28 -28
  104. package/dist/components/shimmer-text.js +21 -0
  105. package/dist/components/shimmer-text.mjs +7 -7
  106. package/dist/components/skeleton.js +21 -0
  107. package/dist/components/skeleton.mjs +7 -7
  108. package/dist/components/slider.js +21 -0
  109. package/dist/components/slider.mjs +28 -28
  110. package/dist/components/snippet.js +21 -0
  111. package/dist/components/snippet.mjs +28 -28
  112. package/dist/components/spacer.js +21 -0
  113. package/dist/components/spacer.mjs +7 -7
  114. package/dist/components/spinner.js +21 -0
  115. package/dist/components/spinner.mjs +7 -7
  116. package/dist/components/stepper.js +21 -0
  117. package/dist/components/stepper.mjs +28 -28
  118. package/dist/components/table.d.mts +111 -30
  119. package/dist/components/table.d.ts +111 -30
  120. package/dist/components/table.js +181 -72
  121. package/dist/components/table.mjs +28 -28
  122. package/dist/components/tabs.d.mts +81 -15
  123. package/dist/components/tabs.d.ts +81 -15
  124. package/dist/components/tabs.js +97 -16
  125. package/dist/components/tabs.mjs +28 -28
  126. package/dist/components/toast.js +21 -0
  127. package/dist/components/toast.mjs +28 -28
  128. package/dist/components/toggle.js +21 -0
  129. package/dist/components/toggle.mjs +28 -28
  130. package/dist/components/user.js +21 -0
  131. package/dist/components/user.mjs +28 -28
  132. package/dist/index.js +291 -94
  133. package/dist/index.mjs +33 -33
  134. package/dist/plugin.js +48 -2
  135. package/dist/plugin.mjs +7 -7
  136. package/dist/utilities/index.d.mts +18 -0
  137. package/dist/utilities/index.d.ts +18 -0
  138. package/dist/utilities/index.js +21 -0
  139. package/dist/utilities/index.mjs +4 -4
  140. package/dist/utilities/scrollbar-hide.d.mts +39 -4
  141. package/dist/utilities/scrollbar-hide.d.ts +39 -4
  142. package/dist/utilities/scrollbar-hide.js +44 -1
  143. package/dist/utilities/scrollbar-hide.mjs +4 -2
  144. package/dist/utils/classes.d.mts +7 -0
  145. package/dist/utils/classes.d.ts +7 -0
  146. package/dist/utils/classes.js +8 -1
  147. package/dist/utils/classes.mjs +1 -1
  148. package/dist/utils/cn.js +21 -0
  149. package/dist/utils/cn.mjs +6 -6
  150. package/dist/utils/index.js +29 -1
  151. package/dist/utils/index.mjs +28 -28
  152. package/dist/utils/merge-classes.js +21 -0
  153. package/dist/utils/merge-classes.mjs +28 -28
  154. package/dist/utils/tv.js +21 -0
  155. package/dist/utils/tv.mjs +6 -6
  156. package/dist/utils/tw-merge-config.js +21 -0
  157. package/dist/utils/tw-merge-config.mjs +5 -5
  158. package/package.json +1 -1
  159. package/dist/chunk-WH6SPIFG.mjs +0 -30
@@ -39,22 +39,22 @@ import { VariantProps } from 'tailwind-variants';
39
39
  declare const table: tailwind_variants.TVReturnType<{
40
40
  color: {
41
41
  default: {
42
- td: string;
42
+ td: string[];
43
43
  };
44
44
  primary: {
45
- td: string;
45
+ td: string[];
46
46
  };
47
47
  secondary: {
48
- td: string;
48
+ td: string[];
49
49
  };
50
50
  success: {
51
- td: string;
51
+ td: string[];
52
52
  };
53
53
  warning: {
54
- td: string;
54
+ td: string[];
55
55
  };
56
56
  danger: {
57
- td: string;
57
+ td: string[];
58
58
  };
59
59
  };
60
60
  layout: {
@@ -65,6 +65,14 @@ declare const table: tailwind_variants.TVReturnType<{
65
65
  table: string;
66
66
  };
67
67
  };
68
+ overflowMode: {
69
+ wrap: {
70
+ td: string;
71
+ };
72
+ truncate: {
73
+ td: string;
74
+ };
75
+ };
68
76
  shadow: {
69
77
  none: {
70
78
  wrapper: string;
@@ -95,9 +103,22 @@ declare const table: tailwind_variants.TVReturnType<{
95
103
  };
96
104
  false: {};
97
105
  };
98
- isHeaderSticky: {
106
+ isBordered: {
99
107
  true: {
100
- thead: string;
108
+ td: string[];
109
+ };
110
+ };
111
+ isGlass: {
112
+ true: {};
113
+ };
114
+ isSticky: {
115
+ true: {
116
+ thead: string[];
117
+ };
118
+ };
119
+ isFooterSticky: {
120
+ true: {
121
+ tfoot: string;
101
122
  };
102
123
  };
103
124
  isSelectable: {
@@ -117,6 +138,9 @@ declare const table: tailwind_variants.TVReturnType<{
117
138
  radius: {
118
139
  none: {
119
140
  wrapper: string;
141
+ tfoot: string;
142
+ thead: string[];
143
+ tbody: string;
120
144
  th: string[];
121
145
  td: string[];
122
146
  };
@@ -154,11 +178,14 @@ declare const table: tailwind_variants.TVReturnType<{
154
178
  }, {
155
179
  base: string;
156
180
  wrapper: string[];
181
+ scrollContainer: string[];
182
+ resizableContainer: string[];
157
183
  table: string;
158
- thead: string;
159
- tbody: string;
184
+ thead: string[];
185
+ tbody: string[];
160
186
  tr: string[];
161
187
  th: string[];
188
+ columnResizer: string[];
162
189
  td: string[];
163
190
  tfoot: string;
164
191
  sortIcon: string[];
@@ -167,22 +194,22 @@ declare const table: tailwind_variants.TVReturnType<{
167
194
  }, undefined, {
168
195
  color: {
169
196
  default: {
170
- td: string;
197
+ td: string[];
171
198
  };
172
199
  primary: {
173
- td: string;
200
+ td: string[];
174
201
  };
175
202
  secondary: {
176
- td: string;
203
+ td: string[];
177
204
  };
178
205
  success: {
179
- td: string;
206
+ td: string[];
180
207
  };
181
208
  warning: {
182
- td: string;
209
+ td: string[];
183
210
  };
184
211
  danger: {
185
- td: string;
212
+ td: string[];
186
213
  };
187
214
  };
188
215
  layout: {
@@ -193,6 +220,14 @@ declare const table: tailwind_variants.TVReturnType<{
193
220
  table: string;
194
221
  };
195
222
  };
223
+ overflowMode: {
224
+ wrap: {
225
+ td: string;
226
+ };
227
+ truncate: {
228
+ td: string;
229
+ };
230
+ };
196
231
  shadow: {
197
232
  none: {
198
233
  wrapper: string;
@@ -223,9 +258,22 @@ declare const table: tailwind_variants.TVReturnType<{
223
258
  };
224
259
  false: {};
225
260
  };
226
- isHeaderSticky: {
261
+ isBordered: {
227
262
  true: {
228
- thead: string;
263
+ td: string[];
264
+ };
265
+ };
266
+ isGlass: {
267
+ true: {};
268
+ };
269
+ isSticky: {
270
+ true: {
271
+ thead: string[];
272
+ };
273
+ };
274
+ isFooterSticky: {
275
+ true: {
276
+ tfoot: string;
229
277
  };
230
278
  };
231
279
  isSelectable: {
@@ -245,6 +293,9 @@ declare const table: tailwind_variants.TVReturnType<{
245
293
  radius: {
246
294
  none: {
247
295
  wrapper: string;
296
+ tfoot: string;
297
+ thead: string[];
298
+ tbody: string;
248
299
  th: string[];
249
300
  td: string[];
250
301
  };
@@ -282,11 +333,14 @@ declare const table: tailwind_variants.TVReturnType<{
282
333
  }, {
283
334
  base: string;
284
335
  wrapper: string[];
336
+ scrollContainer: string[];
337
+ resizableContainer: string[];
285
338
  table: string;
286
- thead: string;
287
- tbody: string;
339
+ thead: string[];
340
+ tbody: string[];
288
341
  tr: string[];
289
342
  th: string[];
343
+ columnResizer: string[];
290
344
  td: string[];
291
345
  tfoot: string;
292
346
  sortIcon: string[];
@@ -295,22 +349,22 @@ declare const table: tailwind_variants.TVReturnType<{
295
349
  }, tailwind_variants.TVReturnType<{
296
350
  color: {
297
351
  default: {
298
- td: string;
352
+ td: string[];
299
353
  };
300
354
  primary: {
301
- td: string;
355
+ td: string[];
302
356
  };
303
357
  secondary: {
304
- td: string;
358
+ td: string[];
305
359
  };
306
360
  success: {
307
- td: string;
361
+ td: string[];
308
362
  };
309
363
  warning: {
310
- td: string;
364
+ td: string[];
311
365
  };
312
366
  danger: {
313
- td: string;
367
+ td: string[];
314
368
  };
315
369
  };
316
370
  layout: {
@@ -321,6 +375,14 @@ declare const table: tailwind_variants.TVReturnType<{
321
375
  table: string;
322
376
  };
323
377
  };
378
+ overflowMode: {
379
+ wrap: {
380
+ td: string;
381
+ };
382
+ truncate: {
383
+ td: string;
384
+ };
385
+ };
324
386
  shadow: {
325
387
  none: {
326
388
  wrapper: string;
@@ -351,9 +413,22 @@ declare const table: tailwind_variants.TVReturnType<{
351
413
  };
352
414
  false: {};
353
415
  };
354
- isHeaderSticky: {
416
+ isBordered: {
355
417
  true: {
356
- thead: string;
418
+ td: string[];
419
+ };
420
+ };
421
+ isGlass: {
422
+ true: {};
423
+ };
424
+ isSticky: {
425
+ true: {
426
+ thead: string[];
427
+ };
428
+ };
429
+ isFooterSticky: {
430
+ true: {
431
+ tfoot: string;
357
432
  };
358
433
  };
359
434
  isSelectable: {
@@ -373,6 +448,9 @@ declare const table: tailwind_variants.TVReturnType<{
373
448
  radius: {
374
449
  none: {
375
450
  wrapper: string;
451
+ tfoot: string;
452
+ thead: string[];
453
+ tbody: string;
376
454
  th: string[];
377
455
  td: string[];
378
456
  };
@@ -410,11 +488,14 @@ declare const table: tailwind_variants.TVReturnType<{
410
488
  }, {
411
489
  base: string;
412
490
  wrapper: string[];
491
+ scrollContainer: string[];
492
+ resizableContainer: string[];
413
493
  table: string;
414
- thead: string;
415
- tbody: string;
494
+ thead: string[];
495
+ tbody: string[];
416
496
  tr: string[];
417
497
  th: string[];
498
+ columnResizer: string[];
418
499
  td: string[];
419
500
  tfoot: string;
420
501
  sortIcon: string[];
@@ -120,6 +120,19 @@ var custom_default = {
120
120
 
121
121
  // src/utilities/scrollbar-hide.ts
122
122
  var scrollbar_hide_default = {
123
+ /**
124
+ * Theme-aware scrollbar
125
+ */
126
+ ".scrollbar": {
127
+ "scrollbar-width": "var(--scrollbar-width)",
128
+ "scrollbar-color": "var(--scrollbar-color)",
129
+ "scrollbar-gutter": "var(--scrollbar-gutter)"
130
+ },
131
+ ".scrollbar-thin": {
132
+ "scrollbar-width": "thin",
133
+ "scrollbar-color": "var(--scrollbar-thumb) var(--scrollbar-track)",
134
+ "scrollbar-gutter": "auto"
135
+ },
123
136
  /**
124
137
  * Scroll Hide
125
138
  */
@@ -138,10 +151,18 @@ var scrollbar_hide_default = {
138
151
  "-ms-overflow-style": "auto",
139
152
  /* Firefox */
140
153
  "scrollbar-width": "auto",
154
+ "scrollbar-color": "auto",
155
+ "scrollbar-gutter": "auto",
141
156
  /* Safari and Chrome */
142
157
  "&::-webkit-scrollbar": {
143
158
  display: "block"
144
159
  }
160
+ },
161
+ ".scrollbar-none": {
162
+ "-ms-overflow-style": "none",
163
+ "scrollbar-width": "none",
164
+ "scrollbar-color": "auto",
165
+ "scrollbar-gutter": "auto"
145
166
  }
146
167
  };
147
168
 
@@ -292,15 +313,36 @@ var table = tv({
292
313
  "justify-between",
293
314
  "gap-4",
294
315
  "shadow-small",
295
- "bg-content1",
296
- "overflow-auto"
316
+ "bg-content1"
297
317
  ],
318
+ scrollContainer: ["scrollbar", "overflow-x-auto"],
319
+ resizableContainer: ["relative", "scrollbar", "overflow-auto"],
298
320
  table: "min-w-full h-auto",
299
- thead: "[&>tr]:first:rounded-lg after:content-[''] after:table-row after:h-[5px]",
300
- tbody: "after:block",
301
- tr: ["group/tr", "outline-solid outline-transparent", ...dataFocusVisibleClasses],
321
+ thead: [
322
+ // VirtualizerItem wraps each column, so round via the header row rather than the column.
323
+ "[&>[role=row]>[role=presentation]:first-child>[role=columnheader]]:rounded-s-lg",
324
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:rounded-e-lg",
325
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:before:hidden",
326
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]>[data-slot=table-column-resizer]]:hidden",
327
+ "[&>tr>th:last-child>[data-slot=table-column-resizer]]:hidden"
328
+ ],
329
+ tbody: [
330
+ "[&:is(tbody)]:after:block",
331
+ // A virtualized body is a div. Clip it instead of relying on first/last table cells.
332
+ "[&:not(tbody)]:relative",
333
+ "[&:not(tbody)]:h-full",
334
+ "[&:not(tbody)]:overflow-hidden",
335
+ "[&:not(tbody)]:rounded-lg"
336
+ ],
337
+ tr: [
338
+ "group/tr",
339
+ "outline-solid outline-transparent",
340
+ "[&:not(tr)]:h-full",
341
+ ...dataFocusVisibleClasses
342
+ ],
302
343
  th: [
303
344
  "group/th",
345
+ "relative",
304
346
  "px-3",
305
347
  "h-10",
306
348
  "text-start",
@@ -310,21 +352,62 @@ var table = tv({
310
352
  "text-foreground-500",
311
353
  "text-tiny",
312
354
  "font-semibold",
313
- "first:rounded-s-lg",
314
- "last:rounded-e-lg",
355
+ "[&:not(th)]:flex [&:not(th)]:items-center",
356
+ "[&:is(th):first-child]:rounded-s-lg",
357
+ "[&:is(th):last-child]:rounded-e-lg",
358
+ "[&:is(th):last-child]:before:hidden",
359
+ "before:pointer-events-none",
360
+ "before:absolute",
361
+ "before:end-0",
362
+ "before:top-1/2",
363
+ "before:h-4",
364
+ "before:w-px",
365
+ "before:-translate-y-1/2",
366
+ "before:rounded-small",
367
+ "before:bg-default-300",
368
+ "before:content-['']",
315
369
  "outline-solid outline-transparent",
316
- "data-[sortable=true]:cursor-pointer",
317
- "data-[hover=true]:text-foreground-400",
370
+ "data-[allows-sorting]:cursor-pointer",
318
371
  ...dataFocusVisibleClasses
319
372
  ],
373
+ columnResizer: [
374
+ "absolute",
375
+ "end-0",
376
+ "top-1/2",
377
+ "h-4",
378
+ "w-px",
379
+ "-translate-y-1/2",
380
+ "translate-x-1/2",
381
+ "rounded-small",
382
+ "bg-default-300",
383
+ "bg-clip-content",
384
+ "box-content",
385
+ "cursor-col-resize",
386
+ "touch-none",
387
+ "border-none",
388
+ "outline-none",
389
+ "px-2",
390
+ "data-[hovered=true]:h-full",
391
+ "data-[hovered=true]:w-0.5",
392
+ "data-[hovered=true]:bg-primary",
393
+ "data-[resizing=true]:h-full",
394
+ "data-[resizing=true]:w-0.5",
395
+ "data-[resizing=true]:bg-primary",
396
+ "data-[focus-visible=true]:h-full",
397
+ "data-[focus-visible=true]:w-0.5",
398
+ "data-[focus-visible=true]:bg-focus"
399
+ ],
320
400
  td: [
321
401
  "py-2",
322
402
  "px-3",
323
403
  "relative",
404
+ "isolate",
405
+ "z-0",
324
406
  "align-middle",
325
407
  "whitespace-normal",
326
408
  "text-small",
327
409
  "font-normal",
410
+ "[&:not(td)]:h-full",
328
411
  "outline-solid outline-transparent",
329
412
  "[&>*]:z-1",
330
413
  "[&>*]:relative",
@@ -333,10 +416,12 @@ var table = tv({
333
416
  "before:pointer-events-none",
334
417
  "before:content-['']",
335
418
  "before:absolute",
336
- "before:z-0",
419
+ "before:-z-10",
337
420
  "before:inset-0",
338
421
  "before:opacity-0",
339
422
  "data-[selected=true]:before:opacity-100",
423
+ "data-[selected]:before:opacity-100",
424
+ "group-aria-[selected=true]/tr:before:opacity-100",
340
425
  // disabled
341
426
  "group-data-[disabled=true]/tr:text-foreground-300",
342
427
  "group-data-[disabled=true]/tr:cursor-not-allowed"
@@ -353,28 +438,28 @@ var table = tv({
353
438
  "group-data-[hover=true]/th:opacity-100",
354
439
  "data-[direction=ascending]:rotate-180"
355
440
  ],
356
- emptyWrapper: "text-foreground-400 align-middle text-center h-40",
441
+ emptyWrapper: "flex h-40 w-full items-center justify-center text-center align-middle text-foreground-400",
357
442
  loadingWrapper: "absolute inset-0 flex items-center justify-center"
358
443
  },
359
444
  variants: {
360
445
  color: {
361
446
  default: {
362
- td: "before:bg-default/60 data-[selected=true]:text-default-foreground"
447
+ td: ["before:bg-default-300", "group-aria-[selected=true]/tr:before:!bg-default-300"]
363
448
  },
364
449
  primary: {
365
- td: "before:bg-primary/20 data-[selected=true]:text-primary"
450
+ td: ["before:bg-primary/20", "group-aria-[selected=true]/tr:before:!bg-primary/20"]
366
451
  },
367
452
  secondary: {
368
- td: "before:bg-secondary/20 data-[selected=true]:text-secondary"
453
+ td: ["before:bg-secondary/20", "group-aria-[selected=true]/tr:before:!bg-secondary/20"]
369
454
  },
370
455
  success: {
371
- td: "before:bg-success/20 data-[selected=true]:text-success-600 dark:data-[selected=true]:text-success"
456
+ td: ["before:bg-success/20", "group-aria-[selected=true]/tr:before:!bg-success/20"]
372
457
  },
373
458
  warning: {
374
- td: "before:bg-warning/20 data-[selected=true]:text-warning-600 dark:data-[selected=true]:text-warning"
459
+ td: ["before:bg-warning/20", "group-aria-[selected=true]/tr:before:!bg-warning/20"]
375
460
  },
376
461
  danger: {
377
- td: "before:bg-danger/20 data-[selected=true]:text-danger dark:data-[selected=true]:text-danger-500"
462
+ td: ["before:bg-danger/20", "group-aria-[selected=true]/tr:before:!bg-danger/20"]
378
463
  }
379
464
  },
380
465
  layout: {
@@ -385,6 +470,14 @@ var table = tv({
385
470
  table: "table-fixed"
386
471
  }
387
472
  },
473
+ overflowMode: {
474
+ wrap: {
475
+ td: "whitespace-normal break-words"
476
+ },
477
+ truncate: {
478
+ td: "truncate"
479
+ }
480
+ },
388
481
  shadow: {
389
482
  none: {
390
483
  wrapper: "shadow-none"
@@ -407,9 +500,9 @@ var table = tv({
407
500
  isStriped: {
408
501
  true: {
409
502
  td: [
410
- "group-data-[odd=true]/tr:before:bg-default-100",
411
- "group-data-[odd=true]/tr:before:opacity-100",
412
- "group-data-[odd=true]/tr:before:-z-10"
503
+ "group-even/tr:before:bg-default-100/50",
504
+ "group-even/tr:before:opacity-100",
505
+ "group-even/tr:before:-z-10"
413
506
  ]
414
507
  }
415
508
  },
@@ -419,17 +512,40 @@ var table = tv({
419
512
  },
420
513
  false: {}
421
514
  },
422
- isHeaderSticky: {
515
+ isBordered: {
423
516
  true: {
424
- thead: "sticky top-0 z-20 [&>tr]:first:shadow-small"
517
+ // Inner grid lines only: no border after the last column or under the last row.
518
+ // The end border is cleared from the row because a virtualized cell is wrapped in a
519
+ // VirtualizerItem, so `:last-child` on the cell itself matches every column.
520
+ td: ["border-b", "border-divider", "group-last/tr:border-b-0"]
521
+ }
522
+ },
523
+ isGlass: {
524
+ true: {}
525
+ },
526
+ isSticky: {
527
+ true: {
528
+ thead: [
529
+ "sticky top-0 z-20",
530
+ // A virtualized rowgroup is 0-height (its children are all absolutely
531
+ // positioned by VirtualizerItem). Stretch it to fill the sticky wrapper
532
+ // so it has real area to paint on — same role a native <thead> already has.
533
+ "[&:not(thead)]:absolute",
534
+ "[&:not(thead)]:inset-0"
535
+ ]
536
+ }
537
+ },
538
+ isFooterSticky: {
539
+ true: {
540
+ tfoot: "sticky bottom-0 z-20 rounded-lg bg-default-100"
425
541
  }
426
542
  },
427
543
  isSelectable: {
428
544
  true: {
429
545
  tr: "cursor-default",
430
546
  td: [
431
- "group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:bg-default-100",
432
- "group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:opacity-70"
547
+ "group-aria-[selected=false]/tr:group-data-[hovered]/tr:before:!bg-default-100",
548
+ "group-aria-[selected=false]/tr:group-data-[hovered]/tr:before:!opacity-70"
433
549
  ]
434
550
  }
435
551
  },
@@ -437,13 +553,13 @@ var table = tv({
437
553
  true: {
438
554
  td: [
439
555
  // first
440
- "group-data-[first=true]/tr:first:before:rounded-ss-lg",
441
- "group-data-[first=true]/tr:last:before:rounded-se-lg",
556
+ "group-first/tr:first:before:rounded-ss-lg",
557
+ "group-first/tr:last:before:rounded-se-lg",
442
558
  // middle
443
- "group-data-[middle=true]/tr:before:rounded-none",
559
+ "group-[&:not(:first-child):not(:last-child)]/tr:before:rounded-none",
444
560
  // last
445
- "group-data-[last=true]/tr:first:before:rounded-es-lg",
446
- "group-data-[last=true]/tr:last:before:rounded-ee-lg"
561
+ "group-last/tr:first:before:rounded-es-lg",
562
+ "group-last/tr:last:before:rounded-ee-lg"
447
563
  ]
448
564
  },
449
565
  false: {
@@ -453,19 +569,25 @@ var table = tv({
453
569
  radius: {
454
570
  none: {
455
571
  wrapper: "rounded-none",
572
+ tfoot: "rounded-none",
573
+ thead: [
574
+ "[&>[role=row]>[role=presentation]:first-child>[role=columnheader]]:rounded-s-none",
575
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:rounded-e-none"
576
+ ],
577
+ tbody: "[&:not(tbody)]:rounded-none",
456
578
  th: [
457
- "first:rounded-s-none",
458
- "first:before:rounded-s-none",
459
- "last:rounded-e-none",
460
- "last:before:rounded-e-none"
579
+ "[&:is(th):first-child]:rounded-s-none",
580
+ "[&:is(th):first-child]:before:rounded-s-none",
581
+ "[&:is(th):last-child]:rounded-e-none",
582
+ "[&:is(th):last-child]:before:rounded-e-none"
461
583
  ],
462
584
  td: [
463
585
  "first:before:rounded-s-none",
464
586
  "last:before:rounded-e-none",
465
- "group-data-[first=true]/tr:first:before:rounded-ss-none",
466
- "group-data-[first=true]/tr:last:before:rounded-se-none",
467
- "group-data-[last=true]/tr:first:before:rounded-es-none",
468
- "group-data-[last=true]/tr:last:before:rounded-ee-none"
587
+ "group-first/tr:first:before:rounded-ss-none",
588
+ "group-first/tr:last:before:rounded-se-none",
589
+ "group-last/tr:first:before:rounded-es-none",
590
+ "group-last/tr:last:before:rounded-ee-none"
469
591
  ]
470
592
  },
471
593
  sm: {
@@ -506,52 +628,39 @@ var table = tv({
506
628
  radius: "lg",
507
629
  color: "default",
508
630
  isCompact: false,
631
+ isGlass: true,
509
632
  hideHeader: false,
510
633
  isStriped: false,
511
634
  fullWidth: true,
512
- align: "start"
635
+ align: "start",
636
+ overflowMode: "wrap"
513
637
  },
514
638
  compoundVariants: [
515
639
  {
516
- isStriped: true,
517
- color: "default",
518
- class: {
519
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-default/60"
520
- }
521
- },
522
- {
523
- isStriped: true,
524
- color: "primary",
525
- class: {
526
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-primary/20"
527
- }
528
- },
529
- {
530
- isStriped: true,
531
- color: "secondary",
532
- class: {
533
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-secondary/20"
534
- }
535
- },
536
- {
537
- isStriped: true,
538
- color: "success",
640
+ isGlass: true,
641
+ isSticky: true,
539
642
  class: {
540
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-success/20"
541
- }
542
- },
543
- {
544
- isStriped: true,
545
- color: "warning",
546
- class: {
547
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-warning/20"
643
+ // The single glass surface lives on the thead slot (rowgroup) — see the
644
+ // isSticky variant above for why that works in both native and virtualized DOM.
645
+ thead: "bg-default-100/80 backdrop-blur-sm",
646
+ th: [
647
+ // Cells stay transparent so the row group is the only thing painting glass —
648
+ // per-cell backdrop-filter would clamp its sampling to each cell's own box,
649
+ // producing a visible seam at every column boundary.
650
+ "bg-transparent",
651
+ // Native-only: a horizontally-pinned column header is sticky *within* the row
652
+ // group, so it can scroll away from the row group's own (also-scrolling)
653
+ // background box. It needs its own glass to stay opaque as content passes under it.
654
+ "data-[pinned]:bg-default-100/80",
655
+ "data-[pinned]:backdrop-blur-sm"
656
+ ]
548
657
  }
549
658
  },
550
659
  {
551
- isStriped: true,
552
- color: "danger",
660
+ isFooterSticky: true,
661
+ isGlass: true,
553
662
  class: {
554
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-danger/20"
663
+ tfoot: "bg-default-100/80 backdrop-blur-sm"
555
664
  }
556
665
  }
557
666
  ]