@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
@@ -114,6 +114,19 @@ var custom_default = {
114
114
 
115
115
  // src/utilities/scrollbar-hide.ts
116
116
  var scrollbar_hide_default = {
117
+ /**
118
+ * Theme-aware scrollbar
119
+ */
120
+ ".scrollbar": {
121
+ "scrollbar-width": "var(--scrollbar-width)",
122
+ "scrollbar-color": "var(--scrollbar-color)",
123
+ "scrollbar-gutter": "var(--scrollbar-gutter)"
124
+ },
125
+ ".scrollbar-thin": {
126
+ "scrollbar-width": "thin",
127
+ "scrollbar-color": "var(--scrollbar-thumb) var(--scrollbar-track)",
128
+ "scrollbar-gutter": "auto"
129
+ },
117
130
  /**
118
131
  * Scroll Hide
119
132
  */
@@ -132,10 +145,18 @@ var scrollbar_hide_default = {
132
145
  "-ms-overflow-style": "auto",
133
146
  /* Firefox */
134
147
  "scrollbar-width": "auto",
148
+ "scrollbar-color": "auto",
149
+ "scrollbar-gutter": "auto",
135
150
  /* Safari and Chrome */
136
151
  "&::-webkit-scrollbar": {
137
152
  display: "block"
138
153
  }
154
+ },
155
+ ".scrollbar-none": {
156
+ "-ms-overflow-style": "none",
157
+ "scrollbar-width": "none",
158
+ "scrollbar-color": "auto",
159
+ "scrollbar-gutter": "auto"
139
160
  }
140
161
  };
141
162
 
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  image
3
- } from "../chunk-HRULT2QB.mjs";
4
- import "../chunk-RAC3PSZO.mjs";
5
- import "../chunk-QU72GCNK.mjs";
6
- import "../chunk-UJC5GXOO.mjs";
7
- import "../chunk-FJOYYPB2.mjs";
8
- import "../chunk-RUIUXVZ4.mjs";
3
+ } from "../chunk-AGSAOCCR.mjs";
4
+ import "../chunk-KKEJLP4U.mjs";
5
+ import "../chunk-ECD4ABCS.mjs";
6
+ import "../chunk-ROFEKAS6.mjs";
9
7
  import "../chunk-GSRZWDGA.mjs";
10
8
  import "../chunk-AWXUGVFR.mjs";
11
9
  import "../chunk-MPVWW3DX.mjs";
12
- import "../chunk-WH6SPIFG.mjs";
10
+ import "../chunk-7FAFG773.mjs";
11
+ import "../chunk-FJOYYPB2.mjs";
12
+ import "../chunk-RUIUXVZ4.mjs";
13
13
  export {
14
14
  image
15
15
  };
@@ -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", "group-aria-[selected=true]/tr: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", "group-aria-[selected=true]/tr: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", "group-aria-[selected=true]/tr: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", "group-aria-[selected=true]/tr: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", "group-aria-[selected=true]/tr: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", "group-aria-[selected=true]/tr: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: {
7801
+ true: {
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: {
7694
7813
  true: {
7695
- thead: "sticky top-0 z-20 [&>tr]:first:shadow-small"
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,39 @@ 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: [
7786
7913
  {
7787
- isStriped: true,
7788
- color: "default",
7914
+ isGlass: true,
7915
+ isSticky: true,
7789
7916
  class: {
7790
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-default/60"
7791
- }
7792
- },
7793
- {
7794
- isStriped: true,
7795
- color: "primary",
7796
- class: {
7797
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-primary/20"
7798
- }
7799
- },
7800
- {
7801
- isStriped: true,
7802
- color: "secondary",
7803
- class: {
7804
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-secondary/20"
7805
- }
7806
- },
7807
- {
7808
- isStriped: true,
7809
- color: "success",
7810
- class: {
7811
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-success/20"
7812
- }
7813
- },
7814
- {
7815
- isStriped: true,
7816
- color: "warning",
7817
- class: {
7818
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-warning/20"
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
+ ]
7819
7931
  }
7820
7932
  },
7821
7933
  {
7822
- isStriped: true,
7823
- color: "danger",
7934
+ isFooterSticky: true,
7935
+ isGlass: true,
7824
7936
  class: {
7825
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-danger/20"
7937
+ tfoot: "bg-default-100/80 backdrop-blur-sm"
7826
7938
  }
7827
7939
  }
7828
7940
  ]
@@ -7892,18 +8004,58 @@ var kbd = tv({
7892
8004
  // src/components/tabs.ts
7893
8005
  var tabs = tv({
7894
8006
  slots: {
7895
- base: "inline-flex",
8007
+ base: "group relative inline-flex max-w-full bg-default-100",
8008
+ scroller: "max-w-full",
7896
8009
  tabList: [
7897
8010
  "relative",
7898
- "flex",
8011
+ "inline-flex",
7899
8012
  "p-1",
7900
8013
  "h-fit",
7901
8014
  "gap-2",
7902
8015
  "items-center",
7903
8016
  "flex-nowrap",
7904
- "overflow-x-scroll",
7905
- "scrollbar-hide",
7906
- "bg-default-100"
8017
+ "w-max",
8018
+ "min-w-full"
8019
+ ],
8020
+ scrollPrev: [
8021
+ "absolute",
8022
+ "z-20",
8023
+ "hidden",
8024
+ "size-4",
8025
+ "items-center",
8026
+ "justify-center",
8027
+ "rounded-full",
8028
+ "bg-transparent",
8029
+ "outline-none",
8030
+ "text-foreground",
8031
+ "transition-opacity",
8032
+ "hover:opacity-70",
8033
+ "focus-visible:outline-2",
8034
+ "focus-visible:outline-focus",
8035
+ "group-has-[[data-left-scroll=true]]:flex",
8036
+ "group-has-[[data-left-right-scroll=true]]:flex",
8037
+ "group-has-[[data-top-scroll=true]]:flex",
8038
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
8039
+ ],
8040
+ scrollNext: [
8041
+ "absolute",
8042
+ "z-20",
8043
+ "hidden",
8044
+ "size-4",
8045
+ "items-center",
8046
+ "justify-center",
8047
+ "rounded-full",
8048
+ "bg-transparent",
8049
+ "outline-none",
8050
+ "text-foreground",
8051
+ "transition-opacity",
8052
+ "hover:opacity-70",
8053
+ "focus-visible:outline-2",
8054
+ "focus-visible:outline-focus",
8055
+ "group-has-[[data-right-scroll=true]]:flex",
8056
+ "group-has-[[data-left-right-scroll=true]]:flex",
8057
+ "group-has-[[data-bottom-scroll=true]]:flex",
8058
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
7907
8059
  ],
7908
8060
  tab: [
7909
8061
  "z-0",
@@ -7938,7 +8090,8 @@ var tabs = tv({
7938
8090
  "absolute",
7939
8091
  "z-0",
7940
8092
  "bg-white",
7941
- "will-change-[transform,width,height]",
8093
+ // WebKit can drop nested tab title content when a composited cursor is inside ScrollShadow.
8094
+ "will-change-auto",
7942
8095
  "invisible",
7943
8096
  "data-[initialized=true]:visible",
7944
8097
  "data-[animated=true]:transition-[left,top,width,height]",
@@ -7959,14 +8112,14 @@ var tabs = tv({
7959
8112
  variant: {
7960
8113
  solid: {},
7961
8114
  light: {
7962
- tabList: "bg-transparent dark:bg-transparent"
8115
+ base: "bg-transparent dark:bg-transparent"
7963
8116
  },
7964
8117
  underlined: {
7965
- tabList: "bg-transparent dark:bg-transparent",
8118
+ base: "bg-transparent dark:bg-transparent",
7966
8119
  cursor: "h-[2px] w-[80%] bottom-0 shadow-[0_1px_0px_0_rgba(0,0,0,0.05)]"
7967
8120
  },
7968
8121
  bordered: {
7969
- tabList: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
8122
+ base: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
7970
8123
  }
7971
8124
  },
7972
8125
  color: {
@@ -7979,16 +8132,19 @@ var tabs = tv({
7979
8132
  },
7980
8133
  size: {
7981
8134
  sm: {
8135
+ base: "rounded-medium",
7982
8136
  tabList: "rounded-medium",
7983
8137
  tab: "h-7 text-tiny rounded-small",
7984
8138
  cursor: "rounded-small"
7985
8139
  },
7986
8140
  md: {
8141
+ base: "rounded-medium",
7987
8142
  tabList: "rounded-medium",
7988
8143
  tab: "h-8 text-small rounded-small",
7989
8144
  cursor: "rounded-small"
7990
8145
  },
7991
8146
  lg: {
8147
+ base: "rounded-large",
7992
8148
  tabList: "rounded-large",
7993
8149
  tab: "h-9 text-medium rounded-medium",
7994
8150
  cursor: "rounded-medium"
@@ -7996,26 +8152,31 @@ var tabs = tv({
7996
8152
  },
7997
8153
  radius: {
7998
8154
  none: {
8155
+ base: "rounded-none",
7999
8156
  tabList: "rounded-none",
8000
8157
  tab: "rounded-none",
8001
8158
  cursor: "rounded-none"
8002
8159
  },
8003
8160
  sm: {
8161
+ base: "rounded-medium",
8004
8162
  tabList: "rounded-medium",
8005
8163
  tab: "rounded-small",
8006
8164
  cursor: "rounded-small"
8007
8165
  },
8008
8166
  md: {
8167
+ base: "rounded-medium",
8009
8168
  tabList: "rounded-medium",
8010
8169
  tab: "rounded-small",
8011
8170
  cursor: "rounded-small"
8012
8171
  },
8013
8172
  lg: {
8173
+ base: "rounded-large",
8014
8174
  tabList: "rounded-large",
8015
8175
  tab: "rounded-medium",
8016
8176
  cursor: "rounded-medium"
8017
8177
  },
8018
8178
  full: {
8179
+ base: "rounded-full",
8019
8180
  tabList: "rounded-full",
8020
8181
  tab: "rounded-full",
8021
8182
  cursor: "rounded-full"
@@ -8024,7 +8185,7 @@ var tabs = tv({
8024
8185
  fullWidth: {
8025
8186
  true: {
8026
8187
  base: "w-full",
8027
- tabList: "w-full"
8188
+ scroller: "w-full"
8028
8189
  }
8029
8190
  },
8030
8191
  isDisabled: {
@@ -8039,19 +8200,30 @@ var tabs = tv({
8039
8200
  }
8040
8201
  },
8041
8202
  placement: {
8042
- top: {},
8203
+ top: {
8204
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8205
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8206
+ },
8043
8207
  start: {
8044
- tabList: "flex-col",
8208
+ scroller: "h-full",
8209
+ tabList: "min-w-0 flex-col",
8045
8210
  panel: "py-0 px-3",
8046
- tabWrapper: "flex"
8211
+ tabWrapper: "flex",
8212
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8213
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8047
8214
  },
8048
8215
  end: {
8049
- tabList: "flex-col",
8216
+ scroller: "h-full",
8217
+ tabList: "min-w-0 flex-col",
8050
8218
  panel: "py-0 px-3",
8051
- tabWrapper: "flex flex-row-reverse"
8219
+ tabWrapper: "flex flex-row-reverse",
8220
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8221
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8052
8222
  },
8053
8223
  bottom: {
8054
- tabWrapper: "flex flex-col-reverse"
8224
+ tabWrapper: "flex flex-col-reverse",
8225
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8226
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8055
8227
  }
8056
8228
  }
8057
8229
  },