@giddaa-housing/ui 3.1.0 → 3.3.0

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 (69) hide show
  1. package/css/generated/shared.css +1 -1
  2. package/css/giddaa.css +12 -3
  3. package/css/theme.css +4 -1
  4. package/dist/accordion.js +3 -2
  5. package/dist/activity-timeline.js +2 -2
  6. package/dist/alert.js +4 -4
  7. package/dist/breadcrumb.js +3 -3
  8. package/dist/button.js +8 -4
  9. package/dist/calendar.js +3 -3
  10. package/dist/call-card.js +1 -1
  11. package/dist/carousel.js +3 -3
  12. package/dist/chart.js +1 -1
  13. package/dist/chat.js +1 -1
  14. package/dist/checkbox.js +2 -2
  15. package/dist/combobox.js +6 -6
  16. package/dist/cta.js +3 -3
  17. package/dist/currency-selector.d.ts +10 -8
  18. package/dist/currency-selector.js +247 -28
  19. package/dist/data-table.js +2 -2
  20. package/dist/date-picker.js +6 -6
  21. package/dist/dialog.js +2 -2
  22. package/dist/dropdown-menu.js +20 -20
  23. package/dist/dropzone.js +1 -1
  24. package/dist/editorial-card.d.ts +20 -11
  25. package/dist/editorial-card.js +67 -2
  26. package/dist/file-upload.js +1 -1
  27. package/dist/filter.js +1 -1
  28. package/dist/footer.d.ts +8 -3
  29. package/dist/footer.js +16 -5
  30. package/dist/icons.d.ts +93 -0
  31. package/dist/icons.js +905 -0
  32. package/dist/infinite-scroll.js +1 -1
  33. package/dist/input-otp.js +2 -2
  34. package/dist/kpi-card.js +1 -1
  35. package/dist/match.js +1 -1
  36. package/dist/media-gallery-hero.js +4 -4
  37. package/dist/media-player.js +59 -48
  38. package/dist/message.js +1 -1
  39. package/dist/mobile-sidebar.js +4 -4
  40. package/dist/multi-step-form.js +2 -2
  41. package/dist/number-input.js +3 -3
  42. package/dist/pagination.js +4 -4
  43. package/dist/password-input.js +1 -1
  44. package/dist/phone-input.js +4 -4
  45. package/dist/photo-gallery.js +3 -3
  46. package/dist/price-tag.js +1 -1
  47. package/dist/property-listing-card.js +1 -1
  48. package/dist/rich-text-editor.js +4 -4
  49. package/dist/scroll-spy.d.ts +61 -0
  50. package/dist/scroll-spy.js +295 -0
  51. package/dist/search-input.js +1 -1
  52. package/dist/select.js +6 -6
  53. package/dist/sheet.js +2 -2
  54. package/dist/sidebar.js +1 -1
  55. package/dist/stepper.js +2 -2
  56. package/dist/styles.css +239 -26
  57. package/dist/tabs.d.ts +13 -1
  58. package/dist/tabs.js +9 -2
  59. package/dist/tag.js +1 -1
  60. package/dist/testimonial-block.js +1 -1
  61. package/dist/theme-switcher.d.ts +31 -0
  62. package/dist/theme-switcher.js +78 -0
  63. package/dist/time-picker.js +2 -2
  64. package/dist/toast.d.ts +38 -10
  65. package/dist/toast.js +56 -52
  66. package/dist/top-navbar.js +3 -3
  67. package/dist/video-player-dialog.d.ts +57 -0
  68. package/dist/video-player-dialog.js +188 -0
  69. package/package.json +17 -2
package/dist/styles.css CHANGED
@@ -143,7 +143,8 @@
143
143
  --color-action-danger: #ef4444;
144
144
  --color-action-danger-hover: #dc2626;
145
145
  --color-action-danger-pressed: #b91c1c;
146
- --color-whatsapp-button: #00d158;
146
+ --color-whatsapp-green: #00d158;
147
+ --color-whatsapp-button: var(--color-whatsapp-green);
147
148
  --color-status-success: #16a34a;
148
149
  --color-status-warning: #d97706;
149
150
  --color-status-danger: #ef4444;
@@ -577,9 +578,6 @@
577
578
  .row-start-2 {
578
579
  grid-row-start: 2;
579
580
  }
580
- .row-start-3 {
581
- grid-row-start: 3;
582
- }
583
581
  .container {
584
582
  width: 100%;
585
583
  @media (width >= 40rem) {
@@ -879,6 +877,10 @@
879
877
  width: calc(var(--spacing) * 24);
880
878
  height: calc(var(--spacing) * 24);
881
879
  }
880
+ .size-\[14px\] {
881
+ width: 14px;
882
+ height: 14px;
883
+ }
882
884
  .size-\[34px\] {
883
885
  width: 34px;
884
886
  height: 34px;
@@ -995,6 +997,9 @@
995
997
  .h-dvh {
996
998
  height: 100dvh;
997
999
  }
1000
+ .h-fit {
1001
+ height: fit-content;
1002
+ }
998
1003
  .h-full {
999
1004
  height: 100%;
1000
1005
  }
@@ -1019,12 +1024,18 @@
1019
1024
  .max-h-\[68vh\] {
1020
1025
  max-height: 68vh;
1021
1026
  }
1027
+ .max-h-\[calc\(100dvh-4rem\)\] {
1028
+ max-height: calc(100dvh - 4rem);
1029
+ }
1022
1030
  .max-h-\[calc\(100dvh-5rem\)\] {
1023
1031
  max-height: calc(100dvh - 5rem);
1024
1032
  }
1025
1033
  .max-h-full {
1026
1034
  max-height: 100%;
1027
1035
  }
1036
+ .max-h-none {
1037
+ max-height: none;
1038
+ }
1028
1039
  .min-h-0 {
1029
1040
  min-height: 0;
1030
1041
  }
@@ -1301,6 +1312,15 @@
1301
1312
  .max-w-\[520px\] {
1302
1313
  max-width: 520px;
1303
1314
  }
1315
+ .max-w-\[584px\] {
1316
+ max-width: 584px;
1317
+ }
1318
+ .max-w-\[752px\] {
1319
+ max-width: 752px;
1320
+ }
1321
+ .max-w-\[920px\] {
1322
+ max-width: 920px;
1323
+ }
1304
1324
  .max-w-\[calc\(100vw-2\.5rem\)\] {
1305
1325
  max-width: calc(100vw - 2.5rem);
1306
1326
  }
@@ -1391,6 +1411,9 @@
1391
1411
  .flex-1 {
1392
1412
  flex: 1;
1393
1413
  }
1414
+ .shrink {
1415
+ flex-shrink: 1;
1416
+ }
1394
1417
  .shrink-0 {
1395
1418
  flex-shrink: 0;
1396
1419
  }
@@ -1492,6 +1515,10 @@
1492
1515
  --tw-translate-y: var(--active-tab-top);
1493
1516
  translate: var(--tw-translate-x) var(--tw-translate-y);
1494
1517
  }
1518
+ .translate-y-0 {
1519
+ --tw-translate-y: 0;
1520
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1521
+ }
1495
1522
  .translate-y-\[-2\.5rem\] {
1496
1523
  --tw-translate-y: -2.5rem;
1497
1524
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1751,6 +1778,13 @@
1751
1778
  margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
1752
1779
  }
1753
1780
  }
1781
+ .space-y-1 {
1782
+ :where(& > :not(:last-child)) {
1783
+ --tw-space-y-reverse: 0;
1784
+ margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));
1785
+ margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));
1786
+ }
1787
+ }
1754
1788
  .space-y-2 {
1755
1789
  :where(& > :not(:last-child)) {
1756
1790
  --tw-space-y-reverse: 0;
@@ -1963,6 +1997,10 @@
1963
1997
  border-top-left-radius: var(--radius-4xl);
1964
1998
  border-top-right-radius: var(--radius-4xl);
1965
1999
  }
2000
+ .rounded-t-\[inherit\] {
2001
+ border-top-left-radius: inherit;
2002
+ border-top-right-radius: inherit;
2003
+ }
1966
2004
  .rounded-l-full {
1967
2005
  border-top-left-radius: calc(infinity * 1px);
1968
2006
  border-bottom-left-radius: calc(infinity * 1px);
@@ -2118,6 +2156,12 @@
2118
2156
  .border-r-transparent {
2119
2157
  border-right-color: transparent;
2120
2158
  }
2159
+ .bg-\[\#2c3329\] {
2160
+ background-color: #2c3329;
2161
+ }
2162
+ .bg-\[\#11160f\] {
2163
+ background-color: #11160f;
2164
+ }
2121
2165
  .bg-action-danger {
2122
2166
  background-color: var(--color-action-danger);
2123
2167
  }
@@ -2163,10 +2207,10 @@
2163
2207
  background-color: color-mix(in oklab, var(--color-black) 65%, transparent);
2164
2208
  }
2165
2209
  }
2166
- .bg-black\/80 {
2167
- background-color: color-mix(in srgb, #000 80%, transparent);
2210
+ .bg-black\/70 {
2211
+ background-color: color-mix(in srgb, #000 70%, transparent);
2168
2212
  @supports (color: color-mix(in lab, red, red)) {
2169
- background-color: color-mix(in oklab, var(--color-black) 80%, transparent);
2213
+ background-color: color-mix(in oklab, var(--color-black) 70%, transparent);
2170
2214
  }
2171
2215
  }
2172
2216
  .bg-black\/90 {
@@ -2277,6 +2321,9 @@
2277
2321
  .bg-whatsapp-button {
2278
2322
  background-color: var(--color-whatsapp-button);
2279
2323
  }
2324
+ .bg-whatsapp-green {
2325
+ background-color: var(--color-whatsapp-green);
2326
+ }
2280
2327
  .\[background-image\:radial-gradient\(circle\,color-mix\(in_srgb\,var\(--color-line\)_55\%\,transparent\)_0\.75px\,transparent_0\.75px\)\] {
2281
2328
  background-image: radial-gradient(circle,color-mix(in srgb,#cbd5e1 55%,transparent) 0.75px,transparent 0.75px);
2282
2329
  @supports (color: color-mix(in lab, red, red)) {
@@ -2292,9 +2339,6 @@
2292
2339
  .\[background-size\:24px_24px\] {
2293
2340
  background-size: 24px 24px;
2294
2341
  }
2295
- .bg-cover {
2296
- background-size: cover;
2297
- }
2298
2342
  .bg-clip-padding {
2299
2343
  background-clip: padding-box;
2300
2344
  }
@@ -2559,6 +2603,9 @@
2559
2603
  .pt-14 {
2560
2604
  padding-top: calc(var(--spacing) * 14);
2561
2605
  }
2606
+ .pt-\[18px\] {
2607
+ padding-top: 18px;
2608
+ }
2562
2609
  .pt-gdt-5xl {
2563
2610
  padding-top: var(--spacing-gdt-5xl);
2564
2611
  }
@@ -2837,9 +2884,15 @@
2837
2884
  .wrap-break-word {
2838
2885
  overflow-wrap: break-word;
2839
2886
  }
2887
+ .whitespace-normal {
2888
+ white-space: normal;
2889
+ }
2840
2890
  .whitespace-nowrap {
2841
2891
  white-space: nowrap;
2842
2892
  }
2893
+ .text-\[\#ecf2ea\] {
2894
+ color: #ecf2ea;
2895
+ }
2843
2896
  .text-action-primary {
2844
2897
  color: var(--color-action-primary);
2845
2898
  }
@@ -2986,12 +3039,20 @@
2986
3039
  --tw-shadow: var(--shadow-3);
2987
3040
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2988
3041
  }
3042
+ .shadow-\[0_0_4px_rgb\(0_0_0\/0\.1\)\] {
3043
+ --tw-shadow: 0 0 4px var(--tw-shadow-color, rgb(0 0 0/0.1));
3044
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3045
+ }
3046
+ .shadow-\[0_0_8px_2px_rgb\(23_48_22\/0\.06\)\] {
3047
+ --tw-shadow: 0 0 8px 2px var(--tw-shadow-color, rgb(23 48 22/0.06));
3048
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3049
+ }
2989
3050
  .shadow-\[0px_0px_4px_0px_rgba\(0\,0\,0\,0\.1\)\] {
2990
3051
  --tw-shadow: 0px 0px 4px 0px var(--tw-shadow-color, rgba(0,0,0,0.1));
2991
3052
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2992
3053
  }
2993
- .shadow-\[inset_0_0_0_1px_rgb\(0_0_0\/0\.04\)\] {
2994
- --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, rgb(0 0 0/0.04));
3054
+ .shadow-\[inset_0_0_0_1px_rgb\(0_0_0\/0\.08\)\] {
3055
+ --tw-shadow: inset 0 0 0 1px var(--tw-shadow-color, rgb(0 0 0/0.08));
2995
3056
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2996
3057
  }
2997
3058
  .shadow-\[inset_0_0_0_1px_var\(--color-line-subtle\)\] {
@@ -3073,9 +3134,6 @@
3073
3134
  --tw-ring-color: color-mix(in oklab, var(--color-line-focus) 40%, transparent);
3074
3135
  }
3075
3136
  }
3076
- .ring-surface-brand {
3077
- --tw-ring-color: var(--color-surface-brand);
3078
- }
3079
3137
  .inset-ring-line-focus {
3080
3138
  --tw-inset-ring-color: var(--color-line-focus);
3081
3139
  }
@@ -3118,6 +3176,10 @@
3118
3176
  -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
3119
3177
  backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
3120
3178
  }
3179
+ .backdrop-filter {
3180
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
3181
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
3182
+ }
3121
3183
  .transition {
3122
3184
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
3123
3185
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -3173,6 +3235,11 @@
3173
3235
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3174
3236
  transition-duration: var(--tw-duration, var(--default-transition-duration));
3175
3237
  }
3238
+ .transition-\[background-color\,box-shadow\,scale\] {
3239
+ transition-property: background-color,box-shadow,scale;
3240
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3241
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3242
+ }
3176
3243
  .transition-\[background-color\,box-shadow\,transform\] {
3177
3244
  transition-property: background-color,box-shadow,transform;
3178
3245
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -3228,6 +3295,11 @@
3228
3295
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3229
3296
  transition-duration: var(--tw-duration, var(--default-transition-duration));
3230
3297
  }
3298
+ .transition-\[background-color\,transform\] {
3299
+ transition-property: background-color,transform;
3300
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3301
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3302
+ }
3231
3303
  .transition-\[background-color\,translate\] {
3232
3304
  transition-property: background-color,translate;
3233
3305
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -3278,6 +3350,11 @@
3278
3350
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3279
3351
  transition-duration: var(--tw-duration, var(--default-transition-duration));
3280
3352
  }
3353
+ .transition-\[inset-inline-start\] {
3354
+ transition-property: inset-inline-start;
3355
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3356
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3357
+ }
3281
3358
  .transition-\[left\,right\,width\] {
3282
3359
  transition-property: left,right,width;
3283
3360
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -3376,6 +3453,10 @@
3376
3453
  .transition-none {
3377
3454
  transition-property: none;
3378
3455
  }
3456
+ .duration-\(--duration-motion-popup\) {
3457
+ --tw-duration: var(--duration-motion-popup);
3458
+ transition-duration: var(--duration-motion-popup);
3459
+ }
3379
3460
  .duration-\(--duration-motion-press\) {
3380
3461
  --tw-duration: var(--duration-motion-press);
3381
3462
  transition-duration: var(--duration-motion-press);
@@ -3509,6 +3590,9 @@
3509
3590
  .\[--collapsed-y\:calc\(var\(--anchor-y\)\+var\(--toast-swipe-movement-y\)-\(var\(--toast-placement-index\)\*var\(--peek\)\)-\(var\(--shrink\)\*var\(--height\)\)\)\] {
3510
3591
  --collapsed-y: calc(var(--anchor-y) + var(--toast-swipe-movement-y) - (var(--toast-placement-index) * var(--peek)) - (var(--shrink) * var(--height)));
3511
3592
  }
3593
+ .\[--dialog-padding\:0px\] {
3594
+ --dialog-padding: 0px;
3595
+ }
3512
3596
  .\[--dialog-padding\:1\.25rem\] {
3513
3597
  --dialog-padding: 1.25rem;
3514
3598
  }
@@ -3641,6 +3725,9 @@
3641
3725
  .\[transition\:transform_var\(--duration-motion-surface\)_var\(--ease-gdt-out\)\,opacity_var\(--duration-motion-surface\)_var\(--ease-gdt-out\)\] {
3642
3726
  transition: transform var(--duration-motion-surface) var(--ease-gdt-out),opacity var(--duration-motion-surface) var(--ease-gdt-out);
3643
3727
  }
3728
+ .duration-\(--duration-motion-popup\) {
3729
+ animation-duration: var(--duration-motion-popup);
3730
+ }
3644
3731
  .duration-\(--duration-motion-press\) {
3645
3732
  animation-duration: var(--duration-motion-press);
3646
3733
  }
@@ -3895,11 +3982,21 @@
3895
3982
  display: none;
3896
3983
  }
3897
3984
  }
3985
+ .group-has-\[\:focus-visible\]\/seek-thumb\:\[filter\:drop-shadow\(0_0_0\.25rem_var\(--color-line-focus\)\)\] {
3986
+ &:is(:where(.group\/seek-thumb):has(*:is(:focus-visible)) *) {
3987
+ filter: drop-shadow(0 0 0.25rem var(--color-line-focus));
3988
+ }
3989
+ }
3898
3990
  .group-has-\[\[aria-invalid\=true\]\]\/input-group\:bg-line-danger {
3899
3991
  &:is(:where(.group\/input-group):has(*:is([aria-invalid=true])) *) {
3900
3992
  background-color: var(--color-line-danger);
3901
3993
  }
3902
3994
  }
3995
+ .group-has-\[\[data-slot\=alert-title\]\]\/alert\:row-start-2 {
3996
+ &:is(:where(.group\/alert):has(*:is([data-slot=alert-title])) *) {
3997
+ grid-row-start: 2;
3998
+ }
3999
+ }
3903
4000
  .group-has-\[\>input\]\/input-group\:pt-2 {
3904
4001
  &:is(:where(.group\/input-group):has(>input) *) {
3905
4002
  padding-top: calc(var(--spacing) * 2);
@@ -4210,6 +4307,14 @@
4210
4307
  color: var(--color-fg-caption-placeholder);
4211
4308
  }
4212
4309
  }
4310
+ .group-data-\[dragging\]\/seek-thumb\:scale-125 {
4311
+ &:is(:where(.group\/seek-thumb)[data-dragging] *) {
4312
+ --tw-scale-x: 125%;
4313
+ --tw-scale-y: 125%;
4314
+ --tw-scale-z: 125%;
4315
+ scale: var(--tw-scale-x) var(--tw-scale-y);
4316
+ }
4317
+ }
4213
4318
  .group-data-\[focused\=true\]\/day\:border-line-focus {
4214
4319
  &:is(:where(.group\/day)[data-focused="true"] *) {
4215
4320
  border-color: var(--color-line-focus);
@@ -4333,6 +4438,11 @@
4333
4438
  rotate: 180deg;
4334
4439
  }
4335
4440
  }
4441
+ .group-data-\[popup-open\]\/theme-switcher\:rotate-180 {
4442
+ &:is(:where(.group\/theme-switcher)[data-popup-open] *) {
4443
+ rotate: 180deg;
4444
+ }
4445
+ }
4336
4446
  .group-data-\[selected\=true\]\/list-item\:text-fg-brand {
4337
4447
  &:is(:where(.group\/list-item)[data-selected="true"] *) {
4338
4448
  color: var(--color-fg-brand);
@@ -6337,12 +6447,12 @@
6337
6447
  }
6338
6448
  }
6339
6449
  }
6340
- .hover\:bg-black\/90 {
6450
+ .hover\:bg-black\/80 {
6341
6451
  &:hover {
6342
6452
  @media (hover: hover) {
6343
- background-color: color-mix(in srgb, #000 90%, transparent);
6453
+ background-color: color-mix(in srgb, #000 80%, transparent);
6344
6454
  @supports (color: color-mix(in lab, red, red)) {
6345
- background-color: color-mix(in oklab, var(--color-black) 90%, transparent);
6455
+ background-color: color-mix(in oklab, var(--color-black) 80%, transparent);
6346
6456
  }
6347
6457
  }
6348
6458
  }
@@ -6751,6 +6861,11 @@
6751
6861
  scale: 0.97;
6752
6862
  }
6753
6863
  }
6864
+ .active\:scale-\[0\.99\] {
6865
+ &:active {
6866
+ scale: 0.99;
6867
+ }
6868
+ }
6754
6869
  .active\:border-line-strong {
6755
6870
  &:active {
6756
6871
  border-color: var(--color-line-strong);
@@ -6831,6 +6946,14 @@
6831
6946
  }
6832
6947
  }
6833
6948
  }
6949
+ .active\:not-aria-\[haspopup\]\:translate-y-0 {
6950
+ &:active {
6951
+ &:not(*[aria-haspopup]) {
6952
+ --tw-translate-y: 0;
6953
+ translate: var(--tw-translate-x) var(--tw-translate-y);
6954
+ }
6955
+ }
6956
+ }
6834
6957
  .active\:not-aria-\[haspopup\]\:translate-y-px {
6835
6958
  &:active {
6836
6959
  &:not(*[aria-haspopup]) {
@@ -7306,6 +7429,11 @@
7306
7429
  height: auto;
7307
7430
  }
7308
7431
  }
7432
+ .aria-current\:bg-surface-brand-subtle {
7433
+ &[aria-current="true"] {
7434
+ background-color: var(--color-surface-brand-subtle);
7435
+ }
7436
+ }
7309
7437
  .aria-disabled\:pointer-events-none {
7310
7438
  &[aria-disabled="true"] {
7311
7439
  pointer-events: none;
@@ -7869,6 +7997,11 @@
7869
7997
  background-color: var(--color-action-tertiary-hover);
7870
7998
  }
7871
7999
  }
8000
+ .data-popup-open\:bg-action-tertiary-pressed {
8001
+ &[data-popup-open] {
8002
+ background-color: var(--color-action-tertiary-pressed);
8003
+ }
8004
+ }
7872
8005
  .data-popup-open\:bg-surface {
7873
8006
  &[data-popup-open] {
7874
8007
  background-color: var(--color-surface);
@@ -8138,14 +8271,6 @@
8138
8271
  scale: var(--tw-scale-x) var(--tw-scale-y);
8139
8272
  }
8140
8273
  }
8141
- .data-\[dragging\]\:scale-125 {
8142
- &[data-dragging] {
8143
- --tw-scale-x: 125%;
8144
- --tw-scale-y: 125%;
8145
- --tw-scale-z: 125%;
8146
- scale: var(--tw-scale-x) var(--tw-scale-y);
8147
- }
8148
- }
8149
8274
  .data-\[dragging\]\:transition-none {
8150
8275
  &[data-dragging] {
8151
8276
  transition-property: none;
@@ -9481,6 +9606,21 @@
9481
9606
  margin-top: calc(var(--spacing) * -1);
9482
9607
  }
9483
9608
  }
9609
+ .supports-backdrop-filter\:bg-black\/40 {
9610
+ @supports (backdrop-filter: var(--tw)) {
9611
+ background-color: color-mix(in srgb, #000 40%, transparent);
9612
+ @supports (color: color-mix(in lab, red, red)) {
9613
+ background-color: color-mix(in oklab, var(--color-black) 40%, transparent);
9614
+ }
9615
+ }
9616
+ }
9617
+ .supports-backdrop-filter\:backdrop-blur-\[15px\] {
9618
+ @supports (backdrop-filter: var(--tw)) {
9619
+ --tw-backdrop-blur: blur(15px);
9620
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
9621
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
9622
+ }
9623
+ }
9484
9624
  .supports-backdrop-filter\:backdrop-blur-xl {
9485
9625
  @supports (backdrop-filter: var(--tw)) {
9486
9626
  --tw-backdrop-blur: blur(var(--blur-xl));
@@ -9488,6 +9628,18 @@
9488
9628
  backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
9489
9629
  }
9490
9630
  }
9631
+ .supports-backdrop-filter\:hover\:bg-black\/55 {
9632
+ @supports (backdrop-filter: var(--tw)) {
9633
+ &:hover {
9634
+ @media (hover: hover) {
9635
+ background-color: color-mix(in srgb, #000 55%, transparent);
9636
+ @supports (color: color-mix(in lab, red, red)) {
9637
+ background-color: color-mix(in oklab, var(--color-black) 55%, transparent);
9638
+ }
9639
+ }
9640
+ }
9641
+ }
9642
+ }
9491
9643
  .supports-\[backdrop-filter\]\:backdrop-blur-xl {
9492
9644
  @supports (backdrop-filter: var(--tw)) {
9493
9645
  --tw-backdrop-blur: blur(var(--blur-xl));
@@ -9525,6 +9677,16 @@
9525
9677
  transition: opacity var(--duration-motion-surface) var(--ease-gdt-out);
9526
9678
  }
9527
9679
  }
9680
+ .motion-reduce\:group-data-\[dragging\]\/seek-thumb\:scale-100 {
9681
+ @media (prefers-reduced-motion: reduce) {
9682
+ &:is(:where(.group\/seek-thumb)[data-dragging] *) {
9683
+ --tw-scale-x: 100%;
9684
+ --tw-scale-y: 100%;
9685
+ --tw-scale-z: 100%;
9686
+ scale: var(--tw-scale-x) var(--tw-scale-y);
9687
+ }
9688
+ }
9689
+ }
9528
9690
  .motion-reduce\:active\:translate-y-0 {
9529
9691
  @media (prefers-reduced-motion: reduce) {
9530
9692
  &:active {
@@ -9919,6 +10081,13 @@
9919
10081
  flex-direction: column;
9920
10082
  }
9921
10083
  }
10084
+ .max-sm\:group-has-\[\[data-slot\=alert-title\]\]\/alert\:row-start-3 {
10085
+ @media (width < 40rem) {
10086
+ &:is(:where(.group\/alert):has(*:is([data-slot=alert-title])) *) {
10087
+ grid-row-start: 3;
10088
+ }
10089
+ }
10090
+ }
9922
10091
  .sm\:top-4 {
9923
10092
  @media (width >= 40rem) {
9924
10093
  top: calc(var(--spacing) * 4);
@@ -10013,6 +10182,11 @@
10013
10182
  width: calc(var(--spacing) * 120);
10014
10183
  }
10015
10184
  }
10185
+ .sm\:w-full {
10186
+ @media (width >= 40rem) {
10187
+ width: 100%;
10188
+ }
10189
+ }
10016
10190
  .sm\:max-w-\[26\.5rem\] {
10017
10191
  @media (width >= 40rem) {
10018
10192
  max-width: 26.5rem;
@@ -11435,6 +11609,12 @@
11435
11609
  }
11436
11610
  }
11437
11611
  }
11612
+ .\[\&_svg\:not\(\[data-slot\=currency-flag\]\)\]\:size-3\.5 {
11613
+ & svg:not([data-slot=currency-flag]) {
11614
+ width: calc(var(--spacing) * 3.5);
11615
+ height: calc(var(--spacing) * 3.5);
11616
+ }
11617
+ }
11438
11618
  .\[\&_tr\:last-child\]\:border-0 {
11439
11619
  & tr:last-child {
11440
11620
  border-style: var(--tw-border-style);
@@ -11770,6 +11950,23 @@
11770
11950
  margin-left: -1px;
11771
11951
  }
11772
11952
  }
11953
+ .\[\&\>\[data-slot\=media-player\]\]\:size-full {
11954
+ &>[data-slot=media-player] {
11955
+ width: 100%;
11956
+ height: 100%;
11957
+ }
11958
+ }
11959
+ .\[\&\>\[data-slot\=media-player\]\]\:rounded-none {
11960
+ &>[data-slot=media-player] {
11961
+ border-radius: 0;
11962
+ }
11963
+ }
11964
+ .\[\&\>\[data-slot\=media-player\]\]\:shadow-none {
11965
+ &>[data-slot=media-player] {
11966
+ --tw-shadow: 0 0 #0000;
11967
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
11968
+ }
11969
+ }
11773
11970
  .has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-r-lg {
11774
11971
  &:has(*:is(select[aria-hidden=true]:last-child)) {
11775
11972
  &>[data-slot=select-trigger]:last-of-type {
@@ -12075,6 +12272,14 @@
12075
12272
  color: var(--color-fg-caption-placeholder);
12076
12273
  }
12077
12274
  }
12275
+ .group-data-\[size\=lg\]\/editorial-card\:\[\&\>svg\]\:size-5 {
12276
+ &:is(:where(.group\/editorial-card)[data-size="lg"] *) {
12277
+ &>svg {
12278
+ width: calc(var(--spacing) * 5);
12279
+ height: calc(var(--spacing) * 5);
12280
+ }
12281
+ }
12282
+ }
12078
12283
  .group-data-\[size\=lg\]\/editorial-card\:\[\&\>svg\]\:size-8 {
12079
12284
  &:is(:where(.group\/editorial-card)[data-size="lg"] *) {
12080
12285
  &>svg {
@@ -12099,6 +12304,14 @@
12099
12304
  }
12100
12305
  }
12101
12306
  }
12307
+ .group-data-\[size\=md\]\/editorial-card\:\[\&\>svg\]\:size-4\.5 {
12308
+ &:is(:where(.group\/editorial-card)[data-size="md"] *) {
12309
+ &>svg {
12310
+ width: calc(var(--spacing) * 4.5);
12311
+ height: calc(var(--spacing) * 4.5);
12312
+ }
12313
+ }
12314
+ }
12102
12315
  .group-data-\[size\=md\]\/editorial-card\:\[\&\>svg\]\:size-7 {
12103
12316
  &:is(:where(.group\/editorial-card)[data-size="md"] *) {
12104
12317
  &>svg {
package/dist/tabs.d.ts CHANGED
@@ -3,6 +3,11 @@ import { ComponentPropsWithoutRef } from "react";
3
3
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
4
4
  //#region src/tabs.d.ts
5
5
  type TabsListVariant = "default" | "line" | "secondary" | "underline";
6
+ /**
7
+ * Keep friendly aliases in the public API, but collapse to the two concrete
8
+ * looks the design system ships: `underline` (Primary) and `secondary` (Pill).
9
+ */
10
+ declare function resolveTabsListVariant(variant: TabsListVariant): "secondary" | "underline";
6
11
  declare function Tabs({ className, orientation, size, ...props }: Tabs$1.Root.Props & {
7
12
  /**
8
13
  * @deprecated Pass `size` to `TabsList` instead — the root is
@@ -18,6 +23,13 @@ declare function TabsList({ className, variant, size, children, ...props }: Tabs
18
23
  variant?: TabsListVariant;
19
24
  size?: ComponentSize;
20
25
  }): import("react").JSX.Element;
26
+ /**
27
+ * Indicator styling, exported alongside `tabsTriggerClassName` so recipes that
28
+ * drive their own active state (e.g. `ScrollSpy`) can render the same sliding
29
+ * bar. Positions itself off the `--active-tab-*` custom properties, which Base
30
+ * UI sets on the list — anything reusing this has to set them too.
31
+ */
32
+ declare const tabsIndicatorClassName: string;
21
33
  /**
22
34
  * Trigger styling, exported so recipes (e.g. an overflow "More" button that
23
35
  * isn't a real tab) can render the same look. Reads both `variant` and `size`
@@ -39,4 +51,4 @@ type TabsCountProps = ComponentPropsWithoutRef<"span"> & {
39
51
  declare function TabsCount({ className, count, abbreviate, max, loading, children, ...props }: TabsCountProps): import("react").JSX.Element;
40
52
  declare function TabsContent({ className, ...props }: Tabs$1.Panel.Props): import("react").JSX.Element;
41
53
  //#endregion
42
- export { Tabs, TabsContent, TabsCount, TabsList, TabsTrigger, tabsListVariants, tabsTriggerClassName };
54
+ export { Tabs, TabsContent, TabsCount, TabsList, type TabsListVariant, TabsTrigger, resolveTabsListVariant, tabsIndicatorClassName, tabsListVariants, tabsTriggerClassName };
package/dist/tabs.js CHANGED
@@ -40,10 +40,17 @@ function TabsList({ className, variant = "underline", size, children, ...props }
40
40
  "data-size": resolvedSize,
41
41
  className: cn(tabsListVariants({ variant: resolvedVariant }), className),
42
42
  ...props,
43
- children: [children, /* @__PURE__ */ jsx(Tabs$1.Indicator, { className: cn("pointer-events-none absolute left-0 top-0 z-0 h-(--active-tab-height) w-(--active-tab-width) translate-x-(--active-tab-left) translate-y-(--active-tab-top) transition-[translate,width,height] duration-200 ease-in-out motion-reduce:transition-none", "group-data-[variant=secondary]/tabs-list:hidden", "group-data-[variant=underline]/tabs-list:rounded-none group-data-[variant=underline]/tabs-list:bg-line-focus group-data-[variant=underline]/tabs-list:shadow-none", "group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:top-auto group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:bottom-[-1px] group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:h-0.5! group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:translate-y-0", "group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:left-auto group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:right-[-1px] group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:w-0.5! group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:translate-x-0") })]
43
+ children: [children, /* @__PURE__ */ jsx(Tabs$1.Indicator, { className: tabsIndicatorClassName })]
44
44
  });
45
45
  }
46
46
  /**
47
+ * Indicator styling, exported alongside `tabsTriggerClassName` so recipes that
48
+ * drive their own active state (e.g. `ScrollSpy`) can render the same sliding
49
+ * bar. Positions itself off the `--active-tab-*` custom properties, which Base
50
+ * UI sets on the list — anything reusing this has to set them too.
51
+ */
52
+ const tabsIndicatorClassName = cn("pointer-events-none absolute left-0 top-0 z-0 h-(--active-tab-height) w-(--active-tab-width) translate-x-(--active-tab-left) translate-y-(--active-tab-top) transition-[translate,width,height] duration-200 ease-in-out motion-reduce:transition-none", "group-data-[variant=secondary]/tabs-list:hidden", "group-data-[variant=underline]/tabs-list:rounded-none group-data-[variant=underline]/tabs-list:bg-line-focus group-data-[variant=underline]/tabs-list:shadow-none", "group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:top-auto group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:bottom-[-1px] group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:h-0.5! group-data-[orientation=horizontal]/tabs:group-data-[variant=underline]/tabs-list:translate-y-0", "group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:left-auto group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:right-[-1px] group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:w-0.5! group-data-[orientation=vertical]/tabs:group-data-[variant=underline]/tabs-list:translate-x-0");
53
+ /**
47
54
  * Trigger styling, exported so recipes (e.g. an overflow "More" button that
48
55
  * isn't a real tab) can render the same look. Reads both `variant` and `size`
49
56
  * off the parent `group/tabs-list`, so it stays in sync wherever it lives
@@ -112,4 +119,4 @@ function TabsContent({ className, ...props }) {
112
119
  });
113
120
  }
114
121
  //#endregion
115
- export { Tabs, TabsContent, TabsCount, TabsList, TabsTrigger, tabsListVariants, tabsTriggerClassName };
122
+ export { Tabs, TabsContent, TabsCount, TabsList, TabsTrigger, resolveTabsListVariant, tabsIndicatorClassName, tabsListVariants, tabsTriggerClassName };
package/dist/tag.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
+ import { X } from "./icons.js";
2
3
  import { t as cn } from "./cn-BI_4DMBf.js";
3
4
  import { useComponentSize } from "./size-context.js";
4
- import { X } from "lucide-react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { cva } from "class-variance-authority";
7
7
  //#region src/tag.tsx
@@ -1,8 +1,8 @@
1
1
  "use client";
2
+ import { ArrowUpRight, Play, Star } from "./icons.js";
2
3
  import { t as cn } from "./cn-BI_4DMBf.js";
3
4
  import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
4
5
  import { buttonVariants } from "./button.js";
5
- import { ArrowUpRight, Play, Star } from "lucide-react";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  import { mergeProps } from "@base-ui/react/merge-props";
8
8
  import { useRender } from "@base-ui/react/use-render";
@@ -0,0 +1,31 @@
1
+ import { DropdownMenuTrigger } from "./dropdown-menu.js";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as React from "react";
4
+ //#region src/theme-switcher.d.ts
5
+ type ThemeSwitcherValue = "light" | "dark" | "system";
6
+ type ThemeSwitcherOption = {
7
+ value: ThemeSwitcherValue;
8
+ label: string;
9
+ icon?: React.ReactNode;
10
+ };
11
+ declare const themeSwitcherVariants: (props?: ({
12
+ size?: "lg" | "md" | "sm" | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
+ declare const defaultThemeSwitcherOptions: readonly ThemeSwitcherOption[];
15
+ type ThemeSwitcherProps = Omit<React.ComponentProps<typeof DropdownMenuTrigger>, "children"> & VariantProps<typeof themeSwitcherVariants> & {
16
+ /** The selected theme. Pass this with `onValueChange` for controlled use. */
17
+ value?: ThemeSwitcherValue;
18
+ /** The initial theme when the switcher is uncontrolled. */
19
+ defaultValue?: ThemeSwitcherValue;
20
+ /** Called when a theme is selected. Applying the theme remains app-owned. */
21
+ onValueChange?: (value: ThemeSwitcherValue) => void;
22
+ /** Available modes, in menu order. Defaults to Light, Dark, and System. */
23
+ options?: readonly ThemeSwitcherOption[];
24
+ showIcon?: boolean;
25
+ showLabel?: boolean;
26
+ /** Accessible label used when the visible theme label is hidden. */
27
+ "aria-label"?: string;
28
+ };
29
+ declare function ThemeSwitcher({ className, size, value, defaultValue, onValueChange, options, showIcon, showLabel, "aria-label": ariaLabel, ...props }: ThemeSwitcherProps): React.JSX.Element;
30
+ //#endregion
31
+ export { ThemeSwitcher, type ThemeSwitcherOption, type ThemeSwitcherProps, type ThemeSwitcherValue, defaultThemeSwitcherOptions, themeSwitcherVariants };