@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
package/dist/index.js CHANGED
@@ -213,7 +213,37 @@ var custom_default = {
213
213
  };
214
214
 
215
215
  // src/utilities/scrollbar-hide.ts
216
+ var scrollbarModes = {
217
+ '[data-scrollbar="thin"]': {
218
+ "--scrollbar-width": "thin",
219
+ "--scrollbar-color": "var(--scrollbar-thumb) var(--scrollbar-track)",
220
+ "--scrollbar-gutter": "auto"
221
+ },
222
+ '[data-scrollbar="default"]': {
223
+ "--scrollbar-width": "auto",
224
+ "--scrollbar-color": "auto",
225
+ "--scrollbar-gutter": "auto"
226
+ },
227
+ '[data-scrollbar="none"]': {
228
+ "--scrollbar-width": "none",
229
+ "--scrollbar-color": "auto",
230
+ "--scrollbar-gutter": "auto"
231
+ }
232
+ };
216
233
  var scrollbar_hide_default = {
234
+ /**
235
+ * Theme-aware scrollbar
236
+ */
237
+ ".scrollbar": {
238
+ "scrollbar-width": "var(--scrollbar-width)",
239
+ "scrollbar-color": "var(--scrollbar-color)",
240
+ "scrollbar-gutter": "var(--scrollbar-gutter)"
241
+ },
242
+ ".scrollbar-thin": {
243
+ "scrollbar-width": "thin",
244
+ "scrollbar-color": "var(--scrollbar-thumb) var(--scrollbar-track)",
245
+ "scrollbar-gutter": "auto"
246
+ },
217
247
  /**
218
248
  * Scroll Hide
219
249
  */
@@ -232,10 +262,18 @@ var scrollbar_hide_default = {
232
262
  "-ms-overflow-style": "auto",
233
263
  /* Firefox */
234
264
  "scrollbar-width": "auto",
265
+ "scrollbar-color": "auto",
266
+ "scrollbar-gutter": "auto",
235
267
  /* Safari and Chrome */
236
268
  "&::-webkit-scrollbar": {
237
269
  display: "block"
238
270
  }
271
+ },
272
+ ".scrollbar-none": {
273
+ "-ms-overflow-style": "none",
274
+ "scrollbar-width": "none",
275
+ "scrollbar-color": "auto",
276
+ "scrollbar-gutter": "auto"
239
277
  }
240
278
  };
241
279
 
@@ -375,7 +413,14 @@ var tv = (options, config) => {
375
413
  // src/utils/classes.ts
376
414
  var baseStyles = (prefix) => ({
377
415
  color: `hsl(var(--${prefix}-foreground))`,
378
- backgroundColor: `hsl(var(--${prefix}-background))`
416
+ backgroundColor: `hsl(var(--${prefix}-background))`,
417
+ "--scrollbar-thumb": `hsl(var(--${prefix}-foreground) / 0.15)`,
418
+ "--scrollbar-track": "transparent",
419
+ "--scrollbar-gutter": "auto",
420
+ "--scrollbar-width": "thin",
421
+ "--scrollbar-color": "var(--scrollbar-thumb) var(--scrollbar-track)",
422
+ "--table-pinned-bg": `hsl(var(--${prefix}-content1))`,
423
+ "--table-pinned-shadow": `hsl(var(--${prefix}-foreground) / 0.25)`
379
424
  });
380
425
  var focusVisibleClasses = [
381
426
  "focus-visible:z-10",
@@ -3841,14 +3886,15 @@ var checkbox = tv({
3841
3886
  "justify-center",
3842
3887
  "shrink-0",
3843
3888
  "overflow-hidden",
3889
+ "shadow-small",
3844
3890
  // before
3845
3891
  "before:content-['']",
3846
3892
  "before:absolute",
3847
3893
  "before:inset-0",
3894
+ "before:border-small",
3848
3895
  "before:border-solid",
3849
- "before:border-2",
3850
- "before:box-border",
3851
- "before:border-default",
3896
+ "before:border-default-200",
3897
+ "before:bg-white",
3852
3898
  // after
3853
3899
  "after:content-['']",
3854
3900
  "after:absolute",
@@ -3858,8 +3904,10 @@ var checkbox = tv({
3858
3904
  "after:origin-center",
3859
3905
  "group-data-[selected=true]:after:scale-100",
3860
3906
  "group-data-[selected=true]:after:opacity-100",
3907
+ "group-data-[selected=true]:before:border-transparent",
3861
3908
  // hover
3862
- "group-data-[hover=true]:before:bg-default-100",
3909
+ "group-data-[hover=true]:before:border-default-400",
3910
+ "group-data-[selected=true]:group-data-[hover=true]:before:border-transparent",
3863
3911
  // focus ring
3864
3912
  ...groupDataFocusVisibleClasses
3865
3913
  ],
@@ -7619,15 +7667,36 @@ var table = tv({
7619
7667
  "justify-between",
7620
7668
  "gap-4",
7621
7669
  "shadow-small",
7622
- "bg-content1",
7623
- "overflow-auto"
7670
+ "bg-content1"
7624
7671
  ],
7672
+ scrollContainer: ["scrollbar", "overflow-x-auto"],
7673
+ resizableContainer: ["relative", "scrollbar", "overflow-auto"],
7625
7674
  table: "min-w-full h-auto",
7626
- thead: "[&>tr]:first:rounded-lg after:content-[''] after:table-row after:h-[5px]",
7627
- tbody: "after:block",
7628
- tr: ["group/tr", "outline-solid outline-transparent", ...dataFocusVisibleClasses],
7675
+ thead: [
7676
+ // VirtualizerItem wraps each column, so round via the header row rather than the column.
7677
+ "[&>[role=row]>[role=presentation]:first-child>[role=columnheader]]:rounded-s-lg",
7678
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:rounded-e-lg",
7679
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:before:hidden",
7680
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]>[data-slot=table-column-resizer]]:hidden",
7681
+ "[&>tr>th:last-child>[data-slot=table-column-resizer]]:hidden"
7682
+ ],
7683
+ tbody: [
7684
+ "[&:is(tbody)]:after:block",
7685
+ // A virtualized body is a div. Clip it instead of relying on first/last table cells.
7686
+ "[&:not(tbody)]:relative",
7687
+ "[&:not(tbody)]:h-full",
7688
+ "[&:not(tbody)]:overflow-hidden",
7689
+ "[&:not(tbody)]:rounded-lg"
7690
+ ],
7691
+ tr: [
7692
+ "group/tr",
7693
+ "outline-solid outline-transparent",
7694
+ "[&:not(tr)]:h-full",
7695
+ ...dataFocusVisibleClasses
7696
+ ],
7629
7697
  th: [
7630
7698
  "group/th",
7699
+ "relative",
7631
7700
  "px-3",
7632
7701
  "h-10",
7633
7702
  "text-start",
@@ -7637,21 +7706,62 @@ var table = tv({
7637
7706
  "text-foreground-500",
7638
7707
  "text-tiny",
7639
7708
  "font-semibold",
7640
- "first:rounded-s-lg",
7641
- "last:rounded-e-lg",
7709
+ "[&:not(th)]:flex [&:not(th)]:items-center",
7710
+ "[&:is(th):first-child]:rounded-s-lg",
7711
+ "[&:is(th):last-child]:rounded-e-lg",
7712
+ "[&:is(th):last-child]:before:hidden",
7713
+ "before:pointer-events-none",
7714
+ "before:absolute",
7715
+ "before:end-0",
7716
+ "before:top-1/2",
7717
+ "before:h-4",
7718
+ "before:w-px",
7719
+ "before:-translate-y-1/2",
7720
+ "before:rounded-small",
7721
+ "before:bg-default-300",
7722
+ "before:content-['']",
7642
7723
  "outline-solid outline-transparent",
7643
- "data-[sortable=true]:cursor-pointer",
7644
- "data-[hover=true]:text-foreground-400",
7724
+ "data-[allows-sorting]:cursor-pointer",
7645
7725
  ...dataFocusVisibleClasses
7646
7726
  ],
7727
+ columnResizer: [
7728
+ "absolute",
7729
+ "end-0",
7730
+ "top-1/2",
7731
+ "h-4",
7732
+ "w-px",
7733
+ "-translate-y-1/2",
7734
+ "translate-x-1/2",
7735
+ "rounded-small",
7736
+ "bg-default-300",
7737
+ "bg-clip-content",
7738
+ "box-content",
7739
+ "cursor-col-resize",
7740
+ "touch-none",
7741
+ "border-none",
7742
+ "outline-none",
7743
+ "px-2",
7744
+ "data-[hovered=true]:h-full",
7745
+ "data-[hovered=true]:w-0.5",
7746
+ "data-[hovered=true]:bg-primary",
7747
+ "data-[resizing=true]:h-full",
7748
+ "data-[resizing=true]:w-0.5",
7749
+ "data-[resizing=true]:bg-primary",
7750
+ "data-[focus-visible=true]:h-full",
7751
+ "data-[focus-visible=true]:w-0.5",
7752
+ "data-[focus-visible=true]:bg-focus"
7753
+ ],
7647
7754
  td: [
7648
7755
  "py-2",
7649
7756
  "px-3",
7650
7757
  "relative",
7758
+ "isolate",
7759
+ "z-0",
7651
7760
  "align-middle",
7652
7761
  "whitespace-normal",
7653
7762
  "text-small",
7654
7763
  "font-normal",
7764
+ "[&:not(td)]:h-full",
7655
7765
  "outline-solid outline-transparent",
7656
7766
  "[&>*]:z-1",
7657
7767
  "[&>*]:relative",
@@ -7660,10 +7770,12 @@ var table = tv({
7660
7770
  "before:pointer-events-none",
7661
7771
  "before:content-['']",
7662
7772
  "before:absolute",
7663
- "before:z-0",
7773
+ "before:-z-10",
7664
7774
  "before:inset-0",
7665
7775
  "before:opacity-0",
7666
7776
  "data-[selected=true]:before:opacity-100",
7777
+ "data-[selected]:before:opacity-100",
7778
+ "group-aria-[selected=true]/tr:before:opacity-100",
7667
7779
  // disabled
7668
7780
  "group-data-[disabled=true]/tr:text-foreground-300",
7669
7781
  "group-data-[disabled=true]/tr:cursor-not-allowed"
@@ -7680,28 +7792,28 @@ var table = tv({
7680
7792
  "group-data-[hover=true]/th:opacity-100",
7681
7793
  "data-[direction=ascending]:rotate-180"
7682
7794
  ],
7683
- emptyWrapper: "text-foreground-400 align-middle text-center h-40",
7795
+ emptyWrapper: "flex h-40 w-full items-center justify-center text-center align-middle text-foreground-400",
7684
7796
  loadingWrapper: "absolute inset-0 flex items-center justify-center"
7685
7797
  },
7686
7798
  variants: {
7687
7799
  color: {
7688
7800
  default: {
7689
- td: "before:bg-default/60 data-[selected=true]:text-default-foreground"
7801
+ td: ["before:bg-default-300", "group-aria-[selected=true]/tr:before:!bg-default-300"]
7690
7802
  },
7691
7803
  primary: {
7692
- td: "before:bg-primary/20 data-[selected=true]:text-primary"
7804
+ td: ["before:bg-primary/20", "group-aria-[selected=true]/tr:before:!bg-primary/20"]
7693
7805
  },
7694
7806
  secondary: {
7695
- td: "before:bg-secondary/20 data-[selected=true]:text-secondary"
7807
+ td: ["before:bg-secondary/20", "group-aria-[selected=true]/tr:before:!bg-secondary/20"]
7696
7808
  },
7697
7809
  success: {
7698
- td: "before:bg-success/20 data-[selected=true]:text-success-600 dark:data-[selected=true]:text-success"
7810
+ td: ["before:bg-success/20", "group-aria-[selected=true]/tr:before:!bg-success/20"]
7699
7811
  },
7700
7812
  warning: {
7701
- td: "before:bg-warning/20 data-[selected=true]:text-warning-600 dark:data-[selected=true]:text-warning"
7813
+ td: ["before:bg-warning/20", "group-aria-[selected=true]/tr:before:!bg-warning/20"]
7702
7814
  },
7703
7815
  danger: {
7704
- td: "before:bg-danger/20 data-[selected=true]:text-danger dark:data-[selected=true]:text-danger-500"
7816
+ td: ["before:bg-danger/20", "group-aria-[selected=true]/tr:before:!bg-danger/20"]
7705
7817
  }
7706
7818
  },
7707
7819
  layout: {
@@ -7712,6 +7824,14 @@ var table = tv({
7712
7824
  table: "table-fixed"
7713
7825
  }
7714
7826
  },
7827
+ overflowMode: {
7828
+ wrap: {
7829
+ td: "whitespace-normal break-words"
7830
+ },
7831
+ truncate: {
7832
+ td: "truncate"
7833
+ }
7834
+ },
7715
7835
  shadow: {
7716
7836
  none: {
7717
7837
  wrapper: "shadow-none"
@@ -7734,9 +7854,9 @@ var table = tv({
7734
7854
  isStriped: {
7735
7855
  true: {
7736
7856
  td: [
7737
- "group-data-[odd=true]/tr:before:bg-default-100",
7738
- "group-data-[odd=true]/tr:before:opacity-100",
7739
- "group-data-[odd=true]/tr:before:-z-10"
7857
+ "group-even/tr:before:bg-default-100/50",
7858
+ "group-even/tr:before:opacity-100",
7859
+ "group-even/tr:before:-z-10"
7740
7860
  ]
7741
7861
  }
7742
7862
  },
@@ -7746,17 +7866,40 @@ var table = tv({
7746
7866
  },
7747
7867
  false: {}
7748
7868
  },
7749
- isHeaderSticky: {
7869
+ isBordered: {
7750
7870
  true: {
7751
- thead: "sticky top-0 z-20 [&>tr]:first:shadow-small"
7871
+ // Inner grid lines only: no border after the last column or under the last row.
7872
+ // The end border is cleared from the row because a virtualized cell is wrapped in a
7873
+ // VirtualizerItem, so `:last-child` on the cell itself matches every column.
7874
+ td: ["border-b", "border-divider", "group-last/tr:border-b-0"]
7875
+ }
7876
+ },
7877
+ isGlass: {
7878
+ true: {}
7879
+ },
7880
+ isSticky: {
7881
+ true: {
7882
+ thead: [
7883
+ "sticky top-0 z-20",
7884
+ // A virtualized rowgroup is 0-height (its children are all absolutely
7885
+ // positioned by VirtualizerItem). Stretch it to fill the sticky wrapper
7886
+ // so it has real area to paint on — same role a native <thead> already has.
7887
+ "[&:not(thead)]:absolute",
7888
+ "[&:not(thead)]:inset-0"
7889
+ ]
7890
+ }
7891
+ },
7892
+ isFooterSticky: {
7893
+ true: {
7894
+ tfoot: "sticky bottom-0 z-20 rounded-lg bg-default-100"
7752
7895
  }
7753
7896
  },
7754
7897
  isSelectable: {
7755
7898
  true: {
7756
7899
  tr: "cursor-default",
7757
7900
  td: [
7758
- "group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:bg-default-100",
7759
- "group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:opacity-70"
7901
+ "group-aria-[selected=false]/tr:group-data-[hovered]/tr:before:!bg-default-100",
7902
+ "group-aria-[selected=false]/tr:group-data-[hovered]/tr:before:!opacity-70"
7760
7903
  ]
7761
7904
  }
7762
7905
  },
@@ -7764,13 +7907,13 @@ var table = tv({
7764
7907
  true: {
7765
7908
  td: [
7766
7909
  // first
7767
- "group-data-[first=true]/tr:first:before:rounded-ss-lg",
7768
- "group-data-[first=true]/tr:last:before:rounded-se-lg",
7910
+ "group-first/tr:first:before:rounded-ss-lg",
7911
+ "group-first/tr:last:before:rounded-se-lg",
7769
7912
  // middle
7770
- "group-data-[middle=true]/tr:before:rounded-none",
7913
+ "group-[&:not(:first-child):not(:last-child)]/tr:before:rounded-none",
7771
7914
  // last
7772
- "group-data-[last=true]/tr:first:before:rounded-es-lg",
7773
- "group-data-[last=true]/tr:last:before:rounded-ee-lg"
7915
+ "group-last/tr:first:before:rounded-es-lg",
7916
+ "group-last/tr:last:before:rounded-ee-lg"
7774
7917
  ]
7775
7918
  },
7776
7919
  false: {
@@ -7780,19 +7923,25 @@ var table = tv({
7780
7923
  radius: {
7781
7924
  none: {
7782
7925
  wrapper: "rounded-none",
7926
+ tfoot: "rounded-none",
7927
+ thead: [
7928
+ "[&>[role=row]>[role=presentation]:first-child>[role=columnheader]]:rounded-s-none",
7929
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:rounded-e-none"
7930
+ ],
7931
+ tbody: "[&:not(tbody)]:rounded-none",
7783
7932
  th: [
7784
- "first:rounded-s-none",
7785
- "first:before:rounded-s-none",
7786
- "last:rounded-e-none",
7787
- "last:before:rounded-e-none"
7933
+ "[&:is(th):first-child]:rounded-s-none",
7934
+ "[&:is(th):first-child]:before:rounded-s-none",
7935
+ "[&:is(th):last-child]:rounded-e-none",
7936
+ "[&:is(th):last-child]:before:rounded-e-none"
7788
7937
  ],
7789
7938
  td: [
7790
7939
  "first:before:rounded-s-none",
7791
7940
  "last:before:rounded-e-none",
7792
- "group-data-[first=true]/tr:first:before:rounded-ss-none",
7793
- "group-data-[first=true]/tr:last:before:rounded-se-none",
7794
- "group-data-[last=true]/tr:first:before:rounded-es-none",
7795
- "group-data-[last=true]/tr:last:before:rounded-ee-none"
7941
+ "group-first/tr:first:before:rounded-ss-none",
7942
+ "group-first/tr:last:before:rounded-se-none",
7943
+ "group-last/tr:first:before:rounded-es-none",
7944
+ "group-last/tr:last:before:rounded-ee-none"
7796
7945
  ]
7797
7946
  },
7798
7947
  sm: {
@@ -7833,52 +7982,39 @@ var table = tv({
7833
7982
  radius: "lg",
7834
7983
  color: "default",
7835
7984
  isCompact: false,
7985
+ isGlass: true,
7836
7986
  hideHeader: false,
7837
7987
  isStriped: false,
7838
7988
  fullWidth: true,
7839
- align: "start"
7989
+ align: "start",
7990
+ overflowMode: "wrap"
7840
7991
  },
7841
7992
  compoundVariants: [
7842
7993
  {
7843
- isStriped: true,
7844
- color: "default",
7994
+ isGlass: true,
7995
+ isSticky: true,
7845
7996
  class: {
7846
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-default/60"
7847
- }
7848
- },
7849
- {
7850
- isStriped: true,
7851
- color: "primary",
7852
- class: {
7853
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-primary/20"
7854
- }
7855
- },
7856
- {
7857
- isStriped: true,
7858
- color: "secondary",
7859
- class: {
7860
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-secondary/20"
7861
- }
7862
- },
7863
- {
7864
- isStriped: true,
7865
- color: "success",
7866
- class: {
7867
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-success/20"
7868
- }
7869
- },
7870
- {
7871
- isStriped: true,
7872
- color: "warning",
7873
- class: {
7874
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-warning/20"
7997
+ // The single glass surface lives on the thead slot (rowgroup) — see the
7998
+ // isSticky variant above for why that works in both native and virtualized DOM.
7999
+ thead: "bg-default-100/80 backdrop-blur-sm",
8000
+ th: [
8001
+ // Cells stay transparent so the row group is the only thing painting glass —
8002
+ // per-cell backdrop-filter would clamp its sampling to each cell's own box,
8003
+ // producing a visible seam at every column boundary.
8004
+ "bg-transparent",
8005
+ // Native-only: a horizontally-pinned column header is sticky *within* the row
8006
+ // group, so it can scroll away from the row group's own (also-scrolling)
8007
+ // background box. It needs its own glass to stay opaque as content passes under it.
8008
+ "data-[pinned]:bg-default-100/80",
8009
+ "data-[pinned]:backdrop-blur-sm"
8010
+ ]
7875
8011
  }
7876
8012
  },
7877
8013
  {
7878
- isStriped: true,
7879
- color: "danger",
8014
+ isFooterSticky: true,
8015
+ isGlass: true,
7880
8016
  class: {
7881
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-danger/20"
8017
+ tfoot: "bg-default-100/80 backdrop-blur-sm"
7882
8018
  }
7883
8019
  }
7884
8020
  ]
@@ -7948,18 +8084,58 @@ var kbd = tv({
7948
8084
  // src/components/tabs.ts
7949
8085
  var tabs = tv({
7950
8086
  slots: {
7951
- base: "inline-flex",
8087
+ base: "group relative inline-flex max-w-full bg-default-100",
8088
+ scroller: "max-w-full",
7952
8089
  tabList: [
7953
8090
  "relative",
7954
- "flex",
8091
+ "inline-flex",
7955
8092
  "p-1",
7956
8093
  "h-fit",
7957
8094
  "gap-2",
7958
8095
  "items-center",
7959
8096
  "flex-nowrap",
7960
- "overflow-x-scroll",
7961
- "scrollbar-hide",
7962
- "bg-default-100"
8097
+ "w-max",
8098
+ "min-w-full"
8099
+ ],
8100
+ scrollPrev: [
8101
+ "absolute",
8102
+ "z-20",
8103
+ "hidden",
8104
+ "size-4",
8105
+ "items-center",
8106
+ "justify-center",
8107
+ "rounded-full",
8108
+ "bg-transparent",
8109
+ "outline-none",
8110
+ "text-foreground",
8111
+ "transition-opacity",
8112
+ "hover:opacity-70",
8113
+ "focus-visible:outline-2",
8114
+ "focus-visible:outline-focus",
8115
+ "group-has-[[data-left-scroll=true]]:flex",
8116
+ "group-has-[[data-left-right-scroll=true]]:flex",
8117
+ "group-has-[[data-top-scroll=true]]:flex",
8118
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
8119
+ ],
8120
+ scrollNext: [
8121
+ "absolute",
8122
+ "z-20",
8123
+ "hidden",
8124
+ "size-4",
8125
+ "items-center",
8126
+ "justify-center",
8127
+ "rounded-full",
8128
+ "bg-transparent",
8129
+ "outline-none",
8130
+ "text-foreground",
8131
+ "transition-opacity",
8132
+ "hover:opacity-70",
8133
+ "focus-visible:outline-2",
8134
+ "focus-visible:outline-focus",
8135
+ "group-has-[[data-right-scroll=true]]:flex",
8136
+ "group-has-[[data-left-right-scroll=true]]:flex",
8137
+ "group-has-[[data-bottom-scroll=true]]:flex",
8138
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
7963
8139
  ],
7964
8140
  tab: [
7965
8141
  "z-0",
@@ -7994,7 +8170,8 @@ var tabs = tv({
7994
8170
  "absolute",
7995
8171
  "z-0",
7996
8172
  "bg-white",
7997
- "will-change-[transform,width,height]",
8173
+ // WebKit can drop nested tab title content when a composited cursor is inside ScrollShadow.
8174
+ "will-change-auto",
7998
8175
  "invisible",
7999
8176
  "data-[initialized=true]:visible",
8000
8177
  "data-[animated=true]:transition-[left,top,width,height]",
@@ -8015,14 +8192,14 @@ var tabs = tv({
8015
8192
  variant: {
8016
8193
  solid: {},
8017
8194
  light: {
8018
- tabList: "bg-transparent dark:bg-transparent"
8195
+ base: "bg-transparent dark:bg-transparent"
8019
8196
  },
8020
8197
  underlined: {
8021
- tabList: "bg-transparent dark:bg-transparent",
8198
+ base: "bg-transparent dark:bg-transparent",
8022
8199
  cursor: "h-[2px] w-[80%] bottom-0 shadow-[0_1px_0px_0_rgba(0,0,0,0.05)]"
8023
8200
  },
8024
8201
  bordered: {
8025
- tabList: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
8202
+ base: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
8026
8203
  }
8027
8204
  },
8028
8205
  color: {
@@ -8035,16 +8212,19 @@ var tabs = tv({
8035
8212
  },
8036
8213
  size: {
8037
8214
  sm: {
8215
+ base: "rounded-medium",
8038
8216
  tabList: "rounded-medium",
8039
8217
  tab: "h-7 text-tiny rounded-small",
8040
8218
  cursor: "rounded-small"
8041
8219
  },
8042
8220
  md: {
8221
+ base: "rounded-medium",
8043
8222
  tabList: "rounded-medium",
8044
8223
  tab: "h-8 text-small rounded-small",
8045
8224
  cursor: "rounded-small"
8046
8225
  },
8047
8226
  lg: {
8227
+ base: "rounded-large",
8048
8228
  tabList: "rounded-large",
8049
8229
  tab: "h-9 text-medium rounded-medium",
8050
8230
  cursor: "rounded-medium"
@@ -8052,26 +8232,31 @@ var tabs = tv({
8052
8232
  },
8053
8233
  radius: {
8054
8234
  none: {
8235
+ base: "rounded-none",
8055
8236
  tabList: "rounded-none",
8056
8237
  tab: "rounded-none",
8057
8238
  cursor: "rounded-none"
8058
8239
  },
8059
8240
  sm: {
8241
+ base: "rounded-medium",
8060
8242
  tabList: "rounded-medium",
8061
8243
  tab: "rounded-small",
8062
8244
  cursor: "rounded-small"
8063
8245
  },
8064
8246
  md: {
8247
+ base: "rounded-medium",
8065
8248
  tabList: "rounded-medium",
8066
8249
  tab: "rounded-small",
8067
8250
  cursor: "rounded-small"
8068
8251
  },
8069
8252
  lg: {
8253
+ base: "rounded-large",
8070
8254
  tabList: "rounded-large",
8071
8255
  tab: "rounded-medium",
8072
8256
  cursor: "rounded-medium"
8073
8257
  },
8074
8258
  full: {
8259
+ base: "rounded-full",
8075
8260
  tabList: "rounded-full",
8076
8261
  tab: "rounded-full",
8077
8262
  cursor: "rounded-full"
@@ -8080,7 +8265,7 @@ var tabs = tv({
8080
8265
  fullWidth: {
8081
8266
  true: {
8082
8267
  base: "w-full",
8083
- tabList: "w-full"
8268
+ scroller: "w-full"
8084
8269
  }
8085
8270
  },
8086
8271
  isDisabled: {
@@ -8095,19 +8280,30 @@ var tabs = tv({
8095
8280
  }
8096
8281
  },
8097
8282
  placement: {
8098
- top: {},
8283
+ top: {
8284
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8285
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8286
+ },
8099
8287
  start: {
8100
- tabList: "flex-col",
8288
+ scroller: "h-full",
8289
+ tabList: "min-w-0 flex-col",
8101
8290
  panel: "py-0 px-3",
8102
- tabWrapper: "flex"
8291
+ tabWrapper: "flex",
8292
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8293
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8103
8294
  },
8104
8295
  end: {
8105
- tabList: "flex-col",
8296
+ scroller: "h-full",
8297
+ tabList: "min-w-0 flex-col",
8106
8298
  panel: "py-0 px-3",
8107
- tabWrapper: "flex flex-row-reverse"
8299
+ tabWrapper: "flex flex-row-reverse",
8300
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8301
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8108
8302
  },
8109
8303
  bottom: {
8110
- tabWrapper: "flex flex-col-reverse"
8304
+ tabWrapper: "flex flex-col-reverse",
8305
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8306
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8111
8307
  }
8112
8308
  }
8113
8309
  },
@@ -13543,7 +13739,8 @@ var corePlugin = (themes = {}, defaultTheme, prefix, addCommonColors) => {
13543
13739
  addBase({
13544
13740
  [":root, [data-theme]"]: {
13545
13741
  ...baseStyles(prefix)
13546
- }
13742
+ },
13743
+ ...scrollbarModes
13547
13744
  });
13548
13745
  addBase({ ...resolved == null ? void 0 : resolved.baseStyles });
13549
13746
  addUtilities({ ...resolved == null ? void 0 : resolved.utilities, ...utilities });