@sytechui/theme 2.6.2 → 2.6.3

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-K6X3VPO4.mjs → chunk-USGOG5QI.mjs} +1 -1
  20. package/dist/{chunk-LD2JADOO.mjs → chunk-W37Q6YFS.mjs} +1 -1
  21. package/dist/{chunk-6Q4A5IGD.mjs → chunk-WH4ODSEM.mjs} +1 -1
  22. package/dist/{chunk-7MY46DKJ.mjs → chunk-XBJNS5SU.mjs} +1 -1
  23. package/dist/{chunk-63TVI5PY.mjs → chunk-XKMMJKKB.mjs} +1 -1
  24. package/dist/{chunk-22RNS2JQ.mjs → chunk-Z4ZQGUPY.mjs} +260 -68
  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 +276 -63
  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 +93 -12
  119. package/dist/components/table.d.ts +93 -12
  120. package/dist/components/table.js +195 -44
  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 +95 -15
  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 +303 -65
  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
@@ -182,6 +182,19 @@ var custom_default = {
182
182
 
183
183
  // src/utilities/scrollbar-hide.ts
184
184
  var scrollbar_hide_default = {
185
+ /**
186
+ * Theme-aware scrollbar
187
+ */
188
+ ".scrollbar": {
189
+ "scrollbar-width": "var(--scrollbar-width)",
190
+ "scrollbar-color": "var(--scrollbar-color)",
191
+ "scrollbar-gutter": "var(--scrollbar-gutter)"
192
+ },
193
+ ".scrollbar-thin": {
194
+ "scrollbar-width": "thin",
195
+ "scrollbar-color": "var(--scrollbar-thumb) var(--scrollbar-track)",
196
+ "scrollbar-gutter": "auto"
197
+ },
185
198
  /**
186
199
  * Scroll Hide
187
200
  */
@@ -200,10 +213,18 @@ var scrollbar_hide_default = {
200
213
  "-ms-overflow-style": "auto",
201
214
  /* Firefox */
202
215
  "scrollbar-width": "auto",
216
+ "scrollbar-color": "auto",
217
+ "scrollbar-gutter": "auto",
203
218
  /* Safari and Chrome */
204
219
  "&::-webkit-scrollbar": {
205
220
  display: "block"
206
221
  }
222
+ },
223
+ ".scrollbar-none": {
224
+ "-ms-overflow-style": "none",
225
+ "scrollbar-width": "none",
226
+ "scrollbar-color": "auto",
227
+ "scrollbar-gutter": "auto"
207
228
  }
208
229
  };
209
230
 
@@ -3785,14 +3806,15 @@ var checkbox = tv({
3785
3806
  "justify-center",
3786
3807
  "shrink-0",
3787
3808
  "overflow-hidden",
3809
+ "shadow-small",
3788
3810
  // before
3789
3811
  "before:content-['']",
3790
3812
  "before:absolute",
3791
3813
  "before:inset-0",
3814
+ "before:border-small",
3792
3815
  "before:border-solid",
3793
- "before:border-2",
3794
- "before:box-border",
3795
- "before:border-default",
3816
+ "before:border-default-200",
3817
+ "before:bg-white",
3796
3818
  // after
3797
3819
  "after:content-['']",
3798
3820
  "after:absolute",
@@ -3802,8 +3824,10 @@ var checkbox = tv({
3802
3824
  "after:origin-center",
3803
3825
  "group-data-[selected=true]:after:scale-100",
3804
3826
  "group-data-[selected=true]:after:opacity-100",
3827
+ "group-data-[selected=true]:before:border-transparent",
3805
3828
  // hover
3806
- "group-data-[hover=true]:before:bg-default-100",
3829
+ "group-data-[hover=true]:before:border-default-400",
3830
+ "group-data-[selected=true]:group-data-[hover=true]:before:border-transparent",
3807
3831
  // focus ring
3808
3832
  ...groupDataFocusVisibleClasses
3809
3833
  ],
@@ -7563,15 +7587,36 @@ var table = tv({
7563
7587
  "justify-between",
7564
7588
  "gap-4",
7565
7589
  "shadow-small",
7566
- "bg-content1",
7567
- "overflow-auto"
7590
+ "bg-content1"
7568
7591
  ],
7592
+ scrollContainer: ["scrollbar", "overflow-x-auto"],
7593
+ resizableContainer: ["relative", "scrollbar", "overflow-auto"],
7569
7594
  table: "min-w-full h-auto",
7570
- thead: "[&>tr]:first:rounded-lg after:content-[''] after:table-row after:h-[5px]",
7571
- tbody: "after:block",
7572
- tr: ["group/tr", "outline-solid outline-transparent", ...dataFocusVisibleClasses],
7595
+ thead: [
7596
+ // VirtualizerItem wraps each column, so round via the header row rather than the column.
7597
+ "[&>[role=row]>[role=presentation]:first-child>[role=columnheader]]:rounded-s-lg",
7598
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:rounded-e-lg",
7599
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:before:hidden",
7600
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]>[data-slot=table-column-resizer]]:hidden",
7601
+ "[&>tr>th:last-child>[data-slot=table-column-resizer]]:hidden"
7602
+ ],
7603
+ tbody: [
7604
+ "[&:is(tbody)]:after:block",
7605
+ // A virtualized body is a div. Clip it instead of relying on first/last table cells.
7606
+ "[&:not(tbody)]:relative",
7607
+ "[&:not(tbody)]:h-full",
7608
+ "[&:not(tbody)]:overflow-hidden",
7609
+ "[&:not(tbody)]:rounded-lg"
7610
+ ],
7611
+ tr: [
7612
+ "group/tr",
7613
+ "outline-solid outline-transparent",
7614
+ "[&:not(tr)]:h-full",
7615
+ ...dataFocusVisibleClasses
7616
+ ],
7573
7617
  th: [
7574
7618
  "group/th",
7619
+ "relative",
7575
7620
  "px-3",
7576
7621
  "h-10",
7577
7622
  "text-start",
@@ -7581,21 +7626,62 @@ var table = tv({
7581
7626
  "text-foreground-500",
7582
7627
  "text-tiny",
7583
7628
  "font-semibold",
7584
- "first:rounded-s-lg",
7585
- "last:rounded-e-lg",
7629
+ "[&:not(th)]:flex [&:not(th)]:items-center",
7630
+ "[&:is(th):first-child]:rounded-s-lg",
7631
+ "[&:is(th):last-child]:rounded-e-lg",
7632
+ "[&:is(th):last-child]:before:hidden",
7633
+ "before:pointer-events-none",
7634
+ "before:absolute",
7635
+ "before:end-0",
7636
+ "before:top-1/2",
7637
+ "before:h-4",
7638
+ "before:w-px",
7639
+ "before:-translate-y-1/2",
7640
+ "before:rounded-small",
7641
+ "before:bg-default-300",
7642
+ "before:content-['']",
7586
7643
  "outline-solid outline-transparent",
7587
- "data-[sortable=true]:cursor-pointer",
7588
- "data-[hover=true]:text-foreground-400",
7644
+ "data-[allows-sorting]:cursor-pointer",
7589
7645
  ...dataFocusVisibleClasses
7590
7646
  ],
7647
+ columnResizer: [
7648
+ "absolute",
7649
+ "end-0",
7650
+ "top-1/2",
7651
+ "h-4",
7652
+ "w-px",
7653
+ "-translate-y-1/2",
7654
+ "translate-x-1/2",
7655
+ "rounded-small",
7656
+ "bg-default-300",
7657
+ "bg-clip-content",
7658
+ "box-content",
7659
+ "cursor-col-resize",
7660
+ "touch-none",
7661
+ "border-none",
7662
+ "outline-none",
7663
+ "px-2",
7664
+ "data-[hovered=true]:h-full",
7665
+ "data-[hovered=true]:w-0.5",
7666
+ "data-[hovered=true]:bg-primary",
7667
+ "data-[resizing=true]:h-full",
7668
+ "data-[resizing=true]:w-0.5",
7669
+ "data-[resizing=true]:bg-primary",
7670
+ "data-[focus-visible=true]:h-full",
7671
+ "data-[focus-visible=true]:w-0.5",
7672
+ "data-[focus-visible=true]:bg-focus"
7673
+ ],
7591
7674
  td: [
7592
7675
  "py-2",
7593
7676
  "px-3",
7594
7677
  "relative",
7678
+ "isolate",
7679
+ "z-0",
7595
7680
  "align-middle",
7596
7681
  "whitespace-normal",
7597
7682
  "text-small",
7598
7683
  "font-normal",
7684
+ "[&:not(td)]:h-full",
7599
7685
  "outline-solid outline-transparent",
7600
7686
  "[&>*]:z-1",
7601
7687
  "[&>*]:relative",
@@ -7604,10 +7690,12 @@ var table = tv({
7604
7690
  "before:pointer-events-none",
7605
7691
  "before:content-['']",
7606
7692
  "before:absolute",
7607
- "before:z-0",
7693
+ "before:-z-10",
7608
7694
  "before:inset-0",
7609
7695
  "before:opacity-0",
7610
7696
  "data-[selected=true]:before:opacity-100",
7697
+ "data-[selected]:before:opacity-100",
7698
+ "group-aria-[selected=true]/tr:before:opacity-100",
7611
7699
  // disabled
7612
7700
  "group-data-[disabled=true]/tr:text-foreground-300",
7613
7701
  "group-data-[disabled=true]/tr:cursor-not-allowed"
@@ -7624,28 +7712,28 @@ var table = tv({
7624
7712
  "group-data-[hover=true]/th:opacity-100",
7625
7713
  "data-[direction=ascending]:rotate-180"
7626
7714
  ],
7627
- emptyWrapper: "text-foreground-400 align-middle text-center h-40",
7715
+ emptyWrapper: "flex h-40 w-full items-center justify-center text-center align-middle text-foreground-400",
7628
7716
  loadingWrapper: "absolute inset-0 flex items-center justify-center"
7629
7717
  },
7630
7718
  variants: {
7631
7719
  color: {
7632
7720
  default: {
7633
- td: "before:bg-default/60 data-[selected=true]:text-default-foreground"
7721
+ td: "before:bg-default-300"
7634
7722
  },
7635
7723
  primary: {
7636
- td: "before:bg-primary/20 data-[selected=true]:text-primary"
7724
+ td: "before:bg-primary/20"
7637
7725
  },
7638
7726
  secondary: {
7639
- td: "before:bg-secondary/20 data-[selected=true]:text-secondary"
7727
+ td: "before:bg-secondary/20"
7640
7728
  },
7641
7729
  success: {
7642
- td: "before:bg-success/20 data-[selected=true]:text-success-600 dark:data-[selected=true]:text-success"
7730
+ td: "before:bg-success/20"
7643
7731
  },
7644
7732
  warning: {
7645
- td: "before:bg-warning/20 data-[selected=true]:text-warning-600 dark:data-[selected=true]:text-warning"
7733
+ td: "before:bg-warning/20"
7646
7734
  },
7647
7735
  danger: {
7648
- td: "before:bg-danger/20 data-[selected=true]:text-danger dark:data-[selected=true]:text-danger-500"
7736
+ td: "before:bg-danger/20"
7649
7737
  }
7650
7738
  },
7651
7739
  layout: {
@@ -7656,6 +7744,14 @@ var table = tv({
7656
7744
  table: "table-fixed"
7657
7745
  }
7658
7746
  },
7747
+ overflowMode: {
7748
+ wrap: {
7749
+ td: "whitespace-normal break-words"
7750
+ },
7751
+ truncate: {
7752
+ td: "truncate"
7753
+ }
7754
+ },
7659
7755
  shadow: {
7660
7756
  none: {
7661
7757
  wrapper: "shadow-none"
@@ -7678,9 +7774,9 @@ var table = tv({
7678
7774
  isStriped: {
7679
7775
  true: {
7680
7776
  td: [
7681
- "group-data-[odd=true]/tr:before:bg-default-100",
7682
- "group-data-[odd=true]/tr:before:opacity-100",
7683
- "group-data-[odd=true]/tr:before:-z-10"
7777
+ "group-even/tr:before:bg-default-100/50",
7778
+ "group-even/tr:before:opacity-100",
7779
+ "group-even/tr:before:-z-10"
7684
7780
  ]
7685
7781
  }
7686
7782
  },
@@ -7690,17 +7786,40 @@ var table = tv({
7690
7786
  },
7691
7787
  false: {}
7692
7788
  },
7693
- isHeaderSticky: {
7789
+ isBordered: {
7790
+ true: {
7791
+ // Inner grid lines only: no border after the last column or under the last row.
7792
+ // The end border is cleared from the row because a virtualized cell is wrapped in a
7793
+ // VirtualizerItem, so `:last-child` on the cell itself matches every column.
7794
+ td: ["border-b", "border-divider", "group-last/tr:border-b-0"]
7795
+ }
7796
+ },
7797
+ isGlass: {
7798
+ true: {}
7799
+ },
7800
+ isSticky: {
7694
7801
  true: {
7695
- thead: "sticky top-0 z-20 [&>tr]:first:shadow-small"
7802
+ thead: [
7803
+ "sticky top-0 z-20",
7804
+ // A virtualized rowgroup is 0-height (its children are all absolutely
7805
+ // positioned by VirtualizerItem). Stretch it to fill the sticky wrapper
7806
+ // so it has real area to paint on — same role a native <thead> already has.
7807
+ "[&:not(thead)]:absolute",
7808
+ "[&:not(thead)]:inset-0"
7809
+ ]
7810
+ }
7811
+ },
7812
+ isFooterSticky: {
7813
+ true: {
7814
+ tfoot: "sticky bottom-0 z-20 rounded-lg bg-default-100"
7696
7815
  }
7697
7816
  },
7698
7817
  isSelectable: {
7699
7818
  true: {
7700
7819
  tr: "cursor-default",
7701
7820
  td: [
7702
- "group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:bg-default-100",
7703
- "group-aria-[selected=false]/tr:group-data-[hover=true]/tr:before:opacity-70"
7821
+ "group-aria-[selected=false]/tr:group-data-[hovered]/tr:before:bg-default-100",
7822
+ "group-aria-[selected=false]/tr:group-data-[hovered]/tr:before:opacity-70"
7704
7823
  ]
7705
7824
  }
7706
7825
  },
@@ -7708,13 +7827,13 @@ var table = tv({
7708
7827
  true: {
7709
7828
  td: [
7710
7829
  // first
7711
- "group-data-[first=true]/tr:first:before:rounded-ss-lg",
7712
- "group-data-[first=true]/tr:last:before:rounded-se-lg",
7830
+ "group-first/tr:first:before:rounded-ss-lg",
7831
+ "group-first/tr:last:before:rounded-se-lg",
7713
7832
  // middle
7714
- "group-data-[middle=true]/tr:before:rounded-none",
7833
+ "group-[&:not(:first-child):not(:last-child)]/tr:before:rounded-none",
7715
7834
  // last
7716
- "group-data-[last=true]/tr:first:before:rounded-es-lg",
7717
- "group-data-[last=true]/tr:last:before:rounded-ee-lg"
7835
+ "group-last/tr:first:before:rounded-es-lg",
7836
+ "group-last/tr:last:before:rounded-ee-lg"
7718
7837
  ]
7719
7838
  },
7720
7839
  false: {
@@ -7724,19 +7843,25 @@ var table = tv({
7724
7843
  radius: {
7725
7844
  none: {
7726
7845
  wrapper: "rounded-none",
7846
+ tfoot: "rounded-none",
7847
+ thead: [
7848
+ "[&>[role=row]>[role=presentation]:first-child>[role=columnheader]]:rounded-s-none",
7849
+ "[&>[role=row]>[role=presentation]:last-child>[role=columnheader]]:rounded-e-none"
7850
+ ],
7851
+ tbody: "[&:not(tbody)]:rounded-none",
7727
7852
  th: [
7728
- "first:rounded-s-none",
7729
- "first:before:rounded-s-none",
7730
- "last:rounded-e-none",
7731
- "last:before:rounded-e-none"
7853
+ "[&:is(th):first-child]:rounded-s-none",
7854
+ "[&:is(th):first-child]:before:rounded-s-none",
7855
+ "[&:is(th):last-child]:rounded-e-none",
7856
+ "[&:is(th):last-child]:before:rounded-e-none"
7732
7857
  ],
7733
7858
  td: [
7734
7859
  "first:before:rounded-s-none",
7735
7860
  "last:before:rounded-e-none",
7736
- "group-data-[first=true]/tr:first:before:rounded-ss-none",
7737
- "group-data-[first=true]/tr:last:before:rounded-se-none",
7738
- "group-data-[last=true]/tr:first:before:rounded-es-none",
7739
- "group-data-[last=true]/tr:last:before:rounded-ee-none"
7861
+ "group-first/tr:first:before:rounded-ss-none",
7862
+ "group-first/tr:last:before:rounded-se-none",
7863
+ "group-last/tr:first:before:rounded-es-none",
7864
+ "group-last/tr:last:before:rounded-ee-none"
7740
7865
  ]
7741
7866
  },
7742
7867
  sm: {
@@ -7777,52 +7902,81 @@ var table = tv({
7777
7902
  radius: "lg",
7778
7903
  color: "default",
7779
7904
  isCompact: false,
7905
+ isGlass: true,
7780
7906
  hideHeader: false,
7781
7907
  isStriped: false,
7782
7908
  fullWidth: true,
7783
- align: "start"
7909
+ align: "start",
7910
+ overflowMode: "wrap"
7784
7911
  },
7785
7912
  compoundVariants: [
7913
+ {
7914
+ isGlass: true,
7915
+ isSticky: true,
7916
+ class: {
7917
+ // The single glass surface lives on the thead slot (rowgroup) — see the
7918
+ // isSticky variant above for why that works in both native and virtualized DOM.
7919
+ thead: "bg-default-100/80 backdrop-blur-sm",
7920
+ th: [
7921
+ // Cells stay transparent so the row group is the only thing painting glass —
7922
+ // per-cell backdrop-filter would clamp its sampling to each cell's own box,
7923
+ // producing a visible seam at every column boundary.
7924
+ "bg-transparent",
7925
+ // Native-only: a horizontally-pinned column header is sticky *within* the row
7926
+ // group, so it can scroll away from the row group's own (also-scrolling)
7927
+ // background box. It needs its own glass to stay opaque as content passes under it.
7928
+ "data-[pinned]:bg-default-100/80",
7929
+ "data-[pinned]:backdrop-blur-sm"
7930
+ ]
7931
+ }
7932
+ },
7933
+ {
7934
+ isFooterSticky: true,
7935
+ isGlass: true,
7936
+ class: {
7937
+ tfoot: "bg-default-100/80 backdrop-blur-sm"
7938
+ }
7939
+ },
7786
7940
  {
7787
7941
  isStriped: true,
7788
7942
  color: "default",
7789
7943
  class: {
7790
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-default/60"
7944
+ td: "group-even/tr:data-[selected=true]:before:bg-default/60"
7791
7945
  }
7792
7946
  },
7793
7947
  {
7794
7948
  isStriped: true,
7795
7949
  color: "primary",
7796
7950
  class: {
7797
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-primary/20"
7951
+ td: "group-even/tr:data-[selected=true]:before:bg-primary/20"
7798
7952
  }
7799
7953
  },
7800
7954
  {
7801
7955
  isStriped: true,
7802
7956
  color: "secondary",
7803
7957
  class: {
7804
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-secondary/20"
7958
+ td: "group-even/tr:data-[selected=true]:before:bg-secondary/20"
7805
7959
  }
7806
7960
  },
7807
7961
  {
7808
7962
  isStriped: true,
7809
7963
  color: "success",
7810
7964
  class: {
7811
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-success/20"
7965
+ td: "group-even/tr:data-[selected=true]:before:bg-success/20"
7812
7966
  }
7813
7967
  },
7814
7968
  {
7815
7969
  isStriped: true,
7816
7970
  color: "warning",
7817
7971
  class: {
7818
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-warning/20"
7972
+ td: "group-even/tr:data-[selected=true]:before:bg-warning/20"
7819
7973
  }
7820
7974
  },
7821
7975
  {
7822
7976
  isStriped: true,
7823
7977
  color: "danger",
7824
7978
  class: {
7825
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-danger/20"
7979
+ td: "group-even/tr:data-[selected=true]:before:bg-danger/20"
7826
7980
  }
7827
7981
  }
7828
7982
  ]
@@ -7892,18 +8046,58 @@ var kbd = tv({
7892
8046
  // src/components/tabs.ts
7893
8047
  var tabs = tv({
7894
8048
  slots: {
7895
- base: "inline-flex",
8049
+ base: "group relative inline-flex max-w-full bg-default-100",
8050
+ scroller: "max-w-full",
7896
8051
  tabList: [
7897
8052
  "relative",
7898
- "flex",
8053
+ "inline-flex",
7899
8054
  "p-1",
7900
8055
  "h-fit",
7901
8056
  "gap-2",
7902
8057
  "items-center",
7903
8058
  "flex-nowrap",
7904
- "overflow-x-scroll",
7905
- "scrollbar-hide",
7906
- "bg-default-100"
8059
+ "w-max",
8060
+ "min-w-full"
8061
+ ],
8062
+ scrollPrev: [
8063
+ "absolute",
8064
+ "z-20",
8065
+ "hidden",
8066
+ "size-4",
8067
+ "items-center",
8068
+ "justify-center",
8069
+ "rounded-full",
8070
+ "bg-transparent",
8071
+ "outline-none",
8072
+ "text-foreground",
8073
+ "transition-opacity",
8074
+ "hover:opacity-70",
8075
+ "focus-visible:outline-2",
8076
+ "focus-visible:outline-focus",
8077
+ "group-has-[[data-left-scroll=true]]:flex",
8078
+ "group-has-[[data-left-right-scroll=true]]:flex",
8079
+ "group-has-[[data-top-scroll=true]]:flex",
8080
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
8081
+ ],
8082
+ scrollNext: [
8083
+ "absolute",
8084
+ "z-20",
8085
+ "hidden",
8086
+ "size-4",
8087
+ "items-center",
8088
+ "justify-center",
8089
+ "rounded-full",
8090
+ "bg-transparent",
8091
+ "outline-none",
8092
+ "text-foreground",
8093
+ "transition-opacity",
8094
+ "hover:opacity-70",
8095
+ "focus-visible:outline-2",
8096
+ "focus-visible:outline-focus",
8097
+ "group-has-[[data-right-scroll=true]]:flex",
8098
+ "group-has-[[data-left-right-scroll=true]]:flex",
8099
+ "group-has-[[data-bottom-scroll=true]]:flex",
8100
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
7907
8101
  ],
7908
8102
  tab: [
7909
8103
  "z-0",
@@ -7959,14 +8153,14 @@ var tabs = tv({
7959
8153
  variant: {
7960
8154
  solid: {},
7961
8155
  light: {
7962
- tabList: "bg-transparent dark:bg-transparent"
8156
+ base: "bg-transparent dark:bg-transparent"
7963
8157
  },
7964
8158
  underlined: {
7965
- tabList: "bg-transparent dark:bg-transparent",
8159
+ base: "bg-transparent dark:bg-transparent",
7966
8160
  cursor: "h-[2px] w-[80%] bottom-0 shadow-[0_1px_0px_0_rgba(0,0,0,0.05)]"
7967
8161
  },
7968
8162
  bordered: {
7969
- tabList: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
8163
+ base: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
7970
8164
  }
7971
8165
  },
7972
8166
  color: {
@@ -7979,16 +8173,19 @@ var tabs = tv({
7979
8173
  },
7980
8174
  size: {
7981
8175
  sm: {
8176
+ base: "rounded-medium",
7982
8177
  tabList: "rounded-medium",
7983
8178
  tab: "h-7 text-tiny rounded-small",
7984
8179
  cursor: "rounded-small"
7985
8180
  },
7986
8181
  md: {
8182
+ base: "rounded-medium",
7987
8183
  tabList: "rounded-medium",
7988
8184
  tab: "h-8 text-small rounded-small",
7989
8185
  cursor: "rounded-small"
7990
8186
  },
7991
8187
  lg: {
8188
+ base: "rounded-large",
7992
8189
  tabList: "rounded-large",
7993
8190
  tab: "h-9 text-medium rounded-medium",
7994
8191
  cursor: "rounded-medium"
@@ -7996,26 +8193,31 @@ var tabs = tv({
7996
8193
  },
7997
8194
  radius: {
7998
8195
  none: {
8196
+ base: "rounded-none",
7999
8197
  tabList: "rounded-none",
8000
8198
  tab: "rounded-none",
8001
8199
  cursor: "rounded-none"
8002
8200
  },
8003
8201
  sm: {
8202
+ base: "rounded-medium",
8004
8203
  tabList: "rounded-medium",
8005
8204
  tab: "rounded-small",
8006
8205
  cursor: "rounded-small"
8007
8206
  },
8008
8207
  md: {
8208
+ base: "rounded-medium",
8009
8209
  tabList: "rounded-medium",
8010
8210
  tab: "rounded-small",
8011
8211
  cursor: "rounded-small"
8012
8212
  },
8013
8213
  lg: {
8214
+ base: "rounded-large",
8014
8215
  tabList: "rounded-large",
8015
8216
  tab: "rounded-medium",
8016
8217
  cursor: "rounded-medium"
8017
8218
  },
8018
8219
  full: {
8220
+ base: "rounded-full",
8019
8221
  tabList: "rounded-full",
8020
8222
  tab: "rounded-full",
8021
8223
  cursor: "rounded-full"
@@ -8024,7 +8226,7 @@ var tabs = tv({
8024
8226
  fullWidth: {
8025
8227
  true: {
8026
8228
  base: "w-full",
8027
- tabList: "w-full"
8229
+ scroller: "w-full"
8028
8230
  }
8029
8231
  },
8030
8232
  isDisabled: {
@@ -8039,19 +8241,30 @@ var tabs = tv({
8039
8241
  }
8040
8242
  },
8041
8243
  placement: {
8042
- top: {},
8244
+ top: {
8245
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8246
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8247
+ },
8043
8248
  start: {
8044
- tabList: "flex-col",
8249
+ scroller: "h-full",
8250
+ tabList: "min-w-0 flex-col",
8045
8251
  panel: "py-0 px-3",
8046
- tabWrapper: "flex"
8252
+ tabWrapper: "flex",
8253
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8254
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8047
8255
  },
8048
8256
  end: {
8049
- tabList: "flex-col",
8257
+ scroller: "h-full",
8258
+ tabList: "min-w-0 flex-col",
8050
8259
  panel: "py-0 px-3",
8051
- tabWrapper: "flex flex-row-reverse"
8260
+ tabWrapper: "flex flex-row-reverse",
8261
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8262
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8052
8263
  },
8053
8264
  bottom: {
8054
- tabWrapper: "flex flex-col-reverse"
8265
+ tabWrapper: "flex flex-col-reverse",
8266
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8267
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8055
8268
  }
8056
8269
  }
8057
8270
  },