@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
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"
7690
7802
  },
7691
7803
  primary: {
7692
- td: "before:bg-primary/20 data-[selected=true]:text-primary"
7804
+ td: "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"
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"
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"
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"
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,81 @@ 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: [
7993
+ {
7994
+ isGlass: true,
7995
+ isSticky: true,
7996
+ class: {
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
+ ]
8011
+ }
8012
+ },
8013
+ {
8014
+ isFooterSticky: true,
8015
+ isGlass: true,
8016
+ class: {
8017
+ tfoot: "bg-default-100/80 backdrop-blur-sm"
8018
+ }
8019
+ },
7842
8020
  {
7843
8021
  isStriped: true,
7844
8022
  color: "default",
7845
8023
  class: {
7846
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-default/60"
8024
+ td: "group-even/tr:data-[selected=true]:before:bg-default/60"
7847
8025
  }
7848
8026
  },
7849
8027
  {
7850
8028
  isStriped: true,
7851
8029
  color: "primary",
7852
8030
  class: {
7853
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-primary/20"
8031
+ td: "group-even/tr:data-[selected=true]:before:bg-primary/20"
7854
8032
  }
7855
8033
  },
7856
8034
  {
7857
8035
  isStriped: true,
7858
8036
  color: "secondary",
7859
8037
  class: {
7860
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-secondary/20"
8038
+ td: "group-even/tr:data-[selected=true]:before:bg-secondary/20"
7861
8039
  }
7862
8040
  },
7863
8041
  {
7864
8042
  isStriped: true,
7865
8043
  color: "success",
7866
8044
  class: {
7867
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-success/20"
8045
+ td: "group-even/tr:data-[selected=true]:before:bg-success/20"
7868
8046
  }
7869
8047
  },
7870
8048
  {
7871
8049
  isStriped: true,
7872
8050
  color: "warning",
7873
8051
  class: {
7874
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-warning/20"
8052
+ td: "group-even/tr:data-[selected=true]:before:bg-warning/20"
7875
8053
  }
7876
8054
  },
7877
8055
  {
7878
8056
  isStriped: true,
7879
8057
  color: "danger",
7880
8058
  class: {
7881
- td: "group-data-[odd=true]/tr:data-[selected=true]/tr:before:bg-danger/20"
8059
+ td: "group-even/tr:data-[selected=true]:before:bg-danger/20"
7882
8060
  }
7883
8061
  }
7884
8062
  ]
@@ -7948,18 +8126,58 @@ var kbd = tv({
7948
8126
  // src/components/tabs.ts
7949
8127
  var tabs = tv({
7950
8128
  slots: {
7951
- base: "inline-flex",
8129
+ base: "group relative inline-flex max-w-full bg-default-100",
8130
+ scroller: "max-w-full",
7952
8131
  tabList: [
7953
8132
  "relative",
7954
- "flex",
8133
+ "inline-flex",
7955
8134
  "p-1",
7956
8135
  "h-fit",
7957
8136
  "gap-2",
7958
8137
  "items-center",
7959
8138
  "flex-nowrap",
7960
- "overflow-x-scroll",
7961
- "scrollbar-hide",
7962
- "bg-default-100"
8139
+ "w-max",
8140
+ "min-w-full"
8141
+ ],
8142
+ scrollPrev: [
8143
+ "absolute",
8144
+ "z-20",
8145
+ "hidden",
8146
+ "size-4",
8147
+ "items-center",
8148
+ "justify-center",
8149
+ "rounded-full",
8150
+ "bg-transparent",
8151
+ "outline-none",
8152
+ "text-foreground",
8153
+ "transition-opacity",
8154
+ "hover:opacity-70",
8155
+ "focus-visible:outline-2",
8156
+ "focus-visible:outline-focus",
8157
+ "group-has-[[data-left-scroll=true]]:flex",
8158
+ "group-has-[[data-left-right-scroll=true]]:flex",
8159
+ "group-has-[[data-top-scroll=true]]:flex",
8160
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
8161
+ ],
8162
+ scrollNext: [
8163
+ "absolute",
8164
+ "z-20",
8165
+ "hidden",
8166
+ "size-4",
8167
+ "items-center",
8168
+ "justify-center",
8169
+ "rounded-full",
8170
+ "bg-transparent",
8171
+ "outline-none",
8172
+ "text-foreground",
8173
+ "transition-opacity",
8174
+ "hover:opacity-70",
8175
+ "focus-visible:outline-2",
8176
+ "focus-visible:outline-focus",
8177
+ "group-has-[[data-right-scroll=true]]:flex",
8178
+ "group-has-[[data-left-right-scroll=true]]:flex",
8179
+ "group-has-[[data-bottom-scroll=true]]:flex",
8180
+ "group-has-[[data-top-bottom-scroll=true]]:flex"
7963
8181
  ],
7964
8182
  tab: [
7965
8183
  "z-0",
@@ -8015,14 +8233,14 @@ var tabs = tv({
8015
8233
  variant: {
8016
8234
  solid: {},
8017
8235
  light: {
8018
- tabList: "bg-transparent dark:bg-transparent"
8236
+ base: "bg-transparent dark:bg-transparent"
8019
8237
  },
8020
8238
  underlined: {
8021
- tabList: "bg-transparent dark:bg-transparent",
8239
+ base: "bg-transparent dark:bg-transparent",
8022
8240
  cursor: "h-[2px] w-[80%] bottom-0 shadow-[0_1px_0px_0_rgba(0,0,0,0.05)]"
8023
8241
  },
8024
8242
  bordered: {
8025
- tabList: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
8243
+ base: "bg-transparent dark:bg-transparent border-medium border-default-200 shadow-xs"
8026
8244
  }
8027
8245
  },
8028
8246
  color: {
@@ -8035,16 +8253,19 @@ var tabs = tv({
8035
8253
  },
8036
8254
  size: {
8037
8255
  sm: {
8256
+ base: "rounded-medium",
8038
8257
  tabList: "rounded-medium",
8039
8258
  tab: "h-7 text-tiny rounded-small",
8040
8259
  cursor: "rounded-small"
8041
8260
  },
8042
8261
  md: {
8262
+ base: "rounded-medium",
8043
8263
  tabList: "rounded-medium",
8044
8264
  tab: "h-8 text-small rounded-small",
8045
8265
  cursor: "rounded-small"
8046
8266
  },
8047
8267
  lg: {
8268
+ base: "rounded-large",
8048
8269
  tabList: "rounded-large",
8049
8270
  tab: "h-9 text-medium rounded-medium",
8050
8271
  cursor: "rounded-medium"
@@ -8052,26 +8273,31 @@ var tabs = tv({
8052
8273
  },
8053
8274
  radius: {
8054
8275
  none: {
8276
+ base: "rounded-none",
8055
8277
  tabList: "rounded-none",
8056
8278
  tab: "rounded-none",
8057
8279
  cursor: "rounded-none"
8058
8280
  },
8059
8281
  sm: {
8282
+ base: "rounded-medium",
8060
8283
  tabList: "rounded-medium",
8061
8284
  tab: "rounded-small",
8062
8285
  cursor: "rounded-small"
8063
8286
  },
8064
8287
  md: {
8288
+ base: "rounded-medium",
8065
8289
  tabList: "rounded-medium",
8066
8290
  tab: "rounded-small",
8067
8291
  cursor: "rounded-small"
8068
8292
  },
8069
8293
  lg: {
8294
+ base: "rounded-large",
8070
8295
  tabList: "rounded-large",
8071
8296
  tab: "rounded-medium",
8072
8297
  cursor: "rounded-medium"
8073
8298
  },
8074
8299
  full: {
8300
+ base: "rounded-full",
8075
8301
  tabList: "rounded-full",
8076
8302
  tab: "rounded-full",
8077
8303
  cursor: "rounded-full"
@@ -8080,7 +8306,7 @@ var tabs = tv({
8080
8306
  fullWidth: {
8081
8307
  true: {
8082
8308
  base: "w-full",
8083
- tabList: "w-full"
8309
+ scroller: "w-full"
8084
8310
  }
8085
8311
  },
8086
8312
  isDisabled: {
@@ -8095,19 +8321,30 @@ var tabs = tv({
8095
8321
  }
8096
8322
  },
8097
8323
  placement: {
8098
- top: {},
8324
+ top: {
8325
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8326
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8327
+ },
8099
8328
  start: {
8100
- tabList: "flex-col",
8329
+ scroller: "h-full",
8330
+ tabList: "min-w-0 flex-col",
8101
8331
  panel: "py-0 px-3",
8102
- tabWrapper: "flex"
8332
+ tabWrapper: "flex",
8333
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8334
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8103
8335
  },
8104
8336
  end: {
8105
- tabList: "flex-col",
8337
+ scroller: "h-full",
8338
+ tabList: "min-w-0 flex-col",
8106
8339
  panel: "py-0 px-3",
8107
- tabWrapper: "flex flex-row-reverse"
8340
+ tabWrapper: "flex flex-row-reverse",
8341
+ scrollPrev: "top-1 left-1/2 -translate-x-1/2",
8342
+ scrollNext: "bottom-1 left-1/2 -translate-x-1/2"
8108
8343
  },
8109
8344
  bottom: {
8110
- tabWrapper: "flex flex-col-reverse"
8345
+ tabWrapper: "flex flex-col-reverse",
8346
+ scrollPrev: "top-1/2 left-1 -translate-y-1/2",
8347
+ scrollNext: "top-1/2 right-1 -translate-y-1/2"
8111
8348
  }
8112
8349
  }
8113
8350
  },
@@ -13543,7 +13780,8 @@ var corePlugin = (themes = {}, defaultTheme, prefix, addCommonColors) => {
13543
13780
  addBase({
13544
13781
  [":root, [data-theme]"]: {
13545
13782
  ...baseStyles(prefix)
13546
- }
13783
+ },
13784
+ ...scrollbarModes
13547
13785
  });
13548
13786
  addBase({ ...resolved == null ? void 0 : resolved.baseStyles });
13549
13787
  addUtilities({ ...resolved == null ? void 0 : resolved.utilities, ...utilities });