@casinogate/ui 2.0.9 → 2.0.10

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 (48) hide show
  1. package/dist/assets/css/root.css +304 -5
  2. package/dist/assets/css/tailwind/theme.css +24 -0
  3. package/dist/assets/css/tokens/primitives.css +14 -0
  4. package/dist/internal/utils/motion.d.ts +20 -0
  5. package/dist/internal/utils/motion.js +15 -0
  6. package/dist/primitives/app-shell/styles.js +4 -5
  7. package/dist/primitives/badge/styles.js +5 -4
  8. package/dist/primitives/breadcrumb/styles.js +1 -1
  9. package/dist/primitives/button/styles.js +5 -3
  10. package/dist/primitives/calendar/styles.js +2 -2
  11. package/dist/primitives/checkbox/components/checkbox.root.svelte +19 -6
  12. package/dist/primitives/checkbox/styles.js +1 -1
  13. package/dist/primitives/chip/styles.js +1 -1
  14. package/dist/primitives/collapsible/components/collapsaible.content.svelte +2 -1
  15. package/dist/primitives/collapsible/styles.js +2 -2
  16. package/dist/primitives/combobox/styles.js +1 -1
  17. package/dist/primitives/command/styles.js +2 -2
  18. package/dist/primitives/date-picker/styles.js +4 -3
  19. package/dist/primitives/dialog/styles.js +2 -0
  20. package/dist/primitives/drawer/styles.js +2 -2
  21. package/dist/primitives/dropdown/styles.js +2 -1
  22. package/dist/primitives/field/styles.js +1 -1
  23. package/dist/primitives/file-upload/styles.js +2 -2
  24. package/dist/primitives/input/styles.js +1 -1
  25. package/dist/primitives/navigation/components/navigation.content.svelte +2 -1
  26. package/dist/primitives/navigation/components/navigation.item.svelte +3 -2
  27. package/dist/primitives/navigation/components/navigation.root.svelte +2 -1
  28. package/dist/primitives/navigation/components/navigation.sub-content.svelte +10 -5
  29. package/dist/primitives/navigation/components/navigation.sub-trigger.svelte +18 -22
  30. package/dist/primitives/navigation/components/navigation.sub.svelte +3 -2
  31. package/dist/primitives/navigation/components/navigation.trigger.svelte +9 -11
  32. package/dist/primitives/navigation/styles.js +31 -12
  33. package/dist/primitives/pagination/styles.js +2 -2
  34. package/dist/primitives/pill/styles.js +2 -2
  35. package/dist/primitives/popover/styles.js +1 -0
  36. package/dist/primitives/segment/styles.js +4 -4
  37. package/dist/primitives/select/components/select.item.svelte +1 -1
  38. package/dist/primitives/select/styles.js +10 -5
  39. package/dist/primitives/skeleton/components/skeleton.svelte +18 -12
  40. package/dist/primitives/skeleton/styles.d.ts +40 -31
  41. package/dist/primitives/skeleton/styles.js +122 -17
  42. package/dist/primitives/skeleton/types.d.ts +4 -5
  43. package/dist/primitives/slider/styles.js +2 -2
  44. package/dist/primitives/switch/styles.js +2 -2
  45. package/dist/primitives/textarea/styles.js +1 -1
  46. package/dist/primitives/toast/styles.js +2 -2
  47. package/package.json +1 -1
  48. package/dist/assets/css/theme.css +0 -337
@@ -24,7 +24,6 @@
24
24
  --cgui-font-weight-semibold: 600;
25
25
  --cgui-tracking-wide: 0.025em;
26
26
  --cgui-leading-relaxed: 1.625;
27
- --cgui-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
28
27
  --cgui-animate-spin: spin 1s linear infinite;
29
28
  --cgui-animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
30
29
  --cgui-default-transition-duration: 150ms;
@@ -862,6 +861,12 @@
862
861
  .cgui\:grid-cols-1 {
863
862
  grid-template-columns: repeat(1, minmax(0, 1fr));
864
863
  }
864
+ .cgui\:grid-cols-\[1\.5rem_minmax\(0\,1fr\)\] {
865
+ grid-template-columns: 1.5rem minmax(0,1fr);
866
+ }
867
+ .cgui\:grid-cols-\[1\.5rem_minmax\(0\,1fr\)_auto\] {
868
+ grid-template-columns: 1.5rem minmax(0,1fr) auto;
869
+ }
865
870
  .cgui\:flex-col {
866
871
  flex-direction: column;
867
872
  }
@@ -1161,6 +1166,9 @@
1161
1166
  .cgui\:bg-stroke-divider {
1162
1167
  background-color: var(--cg-ui-color-stroke-divider);
1163
1168
  }
1169
+ .cgui\:bg-surface-dark {
1170
+ background-color: var(--cg-ui-color-surface-dark);
1171
+ }
1164
1172
  .cgui\:bg-surface-darkest {
1165
1173
  background-color: var(--cg-ui-color-surface-darkest);
1166
1174
  }
@@ -1234,6 +1242,12 @@
1234
1242
  }
1235
1243
  background-image: linear-gradient(var(--tw-gradient-stops));
1236
1244
  }
1245
+ .cgui\:bg-\[linear-gradient\(105deg\,color-mix\(in_srgb\,var\(--cg-ui-color-fg-regular\)_20\%\,transparent\)_0\%_40\%\,var\(--cg-ui-color-fg-regular\)_50\%\,color-mix\(in_srgb\,var\(--cg-ui-color-fg-regular\)_20\%\,transparent\)_60\%_100\%\)\] {
1246
+ background-image: linear-gradient(105deg,var(--cg-ui-color-fg-regular) 0% 40%,var(--cg-ui-color-fg-regular) 50%,var(--cg-ui-color-fg-regular) 60% 100%);
1247
+ @supports (color: color-mix(in lab, red, red)) {
1248
+ background-image: linear-gradient(105deg,color-mix(in srgb,var(--cg-ui-color-fg-regular) 20%,transparent) 0% 40%,var(--cg-ui-color-fg-regular) 50%,color-mix(in srgb,var(--cg-ui-color-fg-regular) 20%,transparent) 60% 100%);
1249
+ }
1250
+ }
1237
1251
  .cgui\:from-neutral-40\/30 {
1238
1252
  --tw-gradient-from: var(--cg-ui-palette-neutral-40);
1239
1253
  @supports (color: color-mix(in lab, red, red)) {
@@ -1248,9 +1262,18 @@
1248
1262
  }
1249
1263
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1250
1264
  }
1265
+ .cgui\:bg-\[length\:200\%_auto\] {
1266
+ background-size: 200% auto;
1267
+ }
1251
1268
  .cgui\:bg-clip-padding {
1252
1269
  background-clip: padding-box;
1253
1270
  }
1271
+ .cgui\:bg-clip-text {
1272
+ background-clip: text;
1273
+ }
1274
+ .cgui\:bg-\[position\:-50\%_0\] {
1275
+ background-position: -50% 0;
1276
+ }
1254
1277
  .cgui\:object-contain {
1255
1278
  object-fit: contain;
1256
1279
  }
@@ -1525,6 +1548,9 @@
1525
1548
  .cgui\:text-state-warning {
1526
1549
  color: var(--cg-ui-color-state-warning);
1527
1550
  }
1551
+ .cgui\:text-transparent {
1552
+ color: transparent;
1553
+ }
1528
1554
  .cgui\:uppercase {
1529
1555
  text-transform: uppercase;
1530
1556
  }
@@ -1580,16 +1606,76 @@
1580
1606
  .cgui\:outline-stroke-focus {
1581
1607
  outline-color: var(--cg-ui-color-stroke-focus);
1582
1608
  }
1609
+ .cgui\:transition-\[background-color\,border-color\,box-shadow\] {
1610
+ transition-property: background-color,border-color,box-shadow;
1611
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1612
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1613
+ }
1614
+ .cgui\:transition-\[background-color\,border-color\,opacity\] {
1615
+ transition-property: background-color,border-color,opacity;
1616
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1617
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1618
+ }
1619
+ .cgui\:transition-\[background-color\,border-color\,transform\] {
1620
+ transition-property: background-color,border-color,transform;
1621
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1622
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1623
+ }
1583
1624
  .cgui\:transition-\[background-color\,color\,ring\,outline\,border-color\] {
1584
1625
  transition-property: background-color,color,ring,outline,border-color;
1585
1626
  transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1586
1627
  transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1587
1628
  }
1629
+ .cgui\:transition-\[background-color\,color\] {
1630
+ transition-property: background-color,color;
1631
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1632
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1633
+ }
1634
+ .cgui\:transition-\[background-color\] {
1635
+ transition-property: background-color;
1636
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1637
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1638
+ }
1639
+ .cgui\:transition-\[color\,background-color\,border-color\,box-shadow\,transform\,opacity\,width\,height\,border-radius\] {
1640
+ transition-property: color,background-color,border-color,box-shadow,transform,opacity,width,height,border-radius;
1641
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1642
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1643
+ }
1644
+ .cgui\:transition-\[color\,background-color\,border-color\,box-shadow\,transform\] {
1645
+ transition-property: color,background-color,border-color,box-shadow,transform;
1646
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1647
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1648
+ }
1649
+ .cgui\:transition-\[color\,background-color\,border-color\,box-shadow\] {
1650
+ transition-property: color,background-color,border-color,box-shadow;
1651
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1652
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1653
+ }
1654
+ .cgui\:transition-\[color\,background-color\,border-color\,opacity\] {
1655
+ transition-property: color,background-color,border-color,opacity;
1656
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1657
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1658
+ }
1659
+ .cgui\:transition-\[color\,background-color\,border-color\] {
1660
+ transition-property: color,background-color,border-color;
1661
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1662
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1663
+ }
1664
+ .cgui\:transition-\[opacity\,transform\] {
1665
+ transition-property: opacity,transform;
1666
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1667
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1668
+ }
1588
1669
  .cgui\:transition-\[opacity\] {
1589
1670
  transition-property: opacity;
1590
1671
  transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1591
1672
  transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1592
1673
  }
1674
+ .cgui\:transition-\[width\] {
1675
+ transition-property: width;
1676
+ transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1677
+ transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1678
+ }
1593
1679
  .cgui\:transition-all {
1594
1680
  transition-property: all;
1595
1681
  transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
@@ -1610,6 +1696,18 @@
1610
1696
  transition-timing-function: var(--tw-ease, var(--cgui-default-transition-timing-function));
1611
1697
  transition-duration: var(--tw-duration, var(--cgui-default-transition-duration));
1612
1698
  }
1699
+ .cgui\:duration-\(--cg-ui-duration-base\) {
1700
+ --tw-duration: var(--cg-ui-duration-base);
1701
+ transition-duration: var(--cg-ui-duration-base);
1702
+ }
1703
+ .cgui\:duration-\(--cg-ui-duration-fast\) {
1704
+ --tw-duration: var(--cg-ui-duration-fast);
1705
+ transition-duration: var(--cg-ui-duration-fast);
1706
+ }
1707
+ .cgui\:duration-\(--cg-ui-duration-slow\) {
1708
+ --tw-duration: var(--cg-ui-duration-slow);
1709
+ transition-duration: var(--cg-ui-duration-slow);
1710
+ }
1613
1711
  .cgui\:duration-150 {
1614
1712
  --tw-duration: 150ms;
1615
1713
  transition-duration: 150ms;
@@ -1626,9 +1724,20 @@
1626
1724
  --tw-duration: 300ms;
1627
1725
  transition-duration: 300ms;
1628
1726
  }
1727
+ .cgui\:ease-hover {
1728
+ --tw-ease: var(--cg-ui-ease-hover);
1729
+ transition-timing-function: var(--cg-ui-ease-hover);
1730
+ }
1629
1731
  .cgui\:ease-in-out {
1630
- --tw-ease: var(--cgui-ease-in-out);
1631
- transition-timing-function: var(--cgui-ease-in-out);
1732
+ --tw-ease: var(--cg-ui-ease-in-out);
1733
+ transition-timing-function: var(--cg-ui-ease-in-out);
1734
+ }
1735
+ .cgui\:ease-out {
1736
+ --tw-ease: var(--cg-ui-ease-out);
1737
+ transition-timing-function: var(--cg-ui-ease-out);
1738
+ }
1739
+ .cgui\:will-change-\[background-position\] {
1740
+ will-change: background-position;
1632
1741
  }
1633
1742
  .cgui\:outline-none {
1634
1743
  --tw-outline-style: none;
@@ -1638,6 +1747,9 @@
1638
1747
  -webkit-user-select: none;
1639
1748
  user-select: none;
1640
1749
  }
1750
+ .cgui\:\[transition\:grid-template-columns_var\(--cg-ui-duration-slow\)_var\(--ease-out\)\,padding_var\(--cg-ui-duration-slow\)_var\(--ease-out\)\,gap_var\(--cg-ui-duration-slow\)_var\(--ease-out\)\,border-radius_var\(--cg-ui-duration-slow\)_var\(--ease-out\)\,background-color_var\(--cg-ui-duration-base\)_var\(--ease-hover\)\,color_var\(--cg-ui-duration-base\)_var\(--ease-hover\)\,transform_var\(--cg-ui-duration-instant\)_var\(--ease-out\)\] {
1751
+ transition: grid-template-columns var(--cg-ui-duration-slow) var(--ease-out),padding var(--cg-ui-duration-slow) var(--ease-out),gap var(--cg-ui-duration-slow) var(--ease-out),border-radius var(--cg-ui-duration-slow) var(--ease-out),background-color var(--cg-ui-duration-base) var(--ease-hover),color var(--cg-ui-duration-base) var(--ease-hover),transform var(--cg-ui-duration-instant) var(--ease-out);
1752
+ }
1641
1753
  .cgui\:scrollbar-thumb-rounded-full {
1642
1754
  --scrollbar-thumb-radius: 9999px;
1643
1755
  }
@@ -1705,11 +1817,21 @@
1705
1817
  }
1706
1818
  }
1707
1819
  }
1820
+ .cgui\:group-data-\[compact\=true\]\/navigation\:grid-cols-\[1\.5rem_minmax\(0\,0fr\)\] {
1821
+ &:is(:where(.cgui\:group\/navigation)[data-compact="true"] *) {
1822
+ grid-template-columns: 1.5rem minmax(0,0fr);
1823
+ }
1824
+ }
1708
1825
  .cgui\:group-data-\[compact\=true\]\/navigation\:justify-center {
1709
1826
  &:is(:where(.cgui\:group\/navigation)[data-compact="true"] *) {
1710
1827
  justify-content: center;
1711
1828
  }
1712
1829
  }
1830
+ .cgui\:group-data-\[compact\=true\]\/navigation\:gap-0 {
1831
+ &:is(:where(.cgui\:group\/navigation)[data-compact="true"] *) {
1832
+ gap: calc(var(--cgui-spacing) * 0);
1833
+ }
1834
+ }
1713
1835
  .cgui\:group-data-\[compact\=true\]\/navigation\:py-3 {
1714
1836
  &:is(:where(.cgui\:group\/navigation)[data-compact="true"] *) {
1715
1837
  padding-block: calc(var(--cgui-spacing) * 3);
@@ -2219,6 +2341,14 @@
2219
2341
  scale: var(--tw-scale-x) var(--tw-scale-y);
2220
2342
  }
2221
2343
  }
2344
+ .cgui\:active\:scale-98 {
2345
+ &:active {
2346
+ --tw-scale-x: 98%;
2347
+ --tw-scale-y: 98%;
2348
+ --tw-scale-z: 98%;
2349
+ scale: var(--tw-scale-x) var(--tw-scale-y);
2350
+ }
2351
+ }
2222
2352
  .cgui\:active\:bg-primary-100 {
2223
2353
  &:active {
2224
2354
  background-color: var(--cg-ui-palette-primary-100);
@@ -2229,6 +2359,19 @@
2229
2359
  color: var(--cg-ui-palette-primary-100);
2230
2360
  }
2231
2361
  }
2362
+ .cgui\:active\:duration-\(--cg-ui-duration-instant\) {
2363
+ &:active {
2364
+ --tw-duration: var(--cg-ui-duration-instant);
2365
+ transition-duration: var(--cg-ui-duration-instant);
2366
+ }
2367
+ }
2368
+ .cgui\:not-data-\[disabled\]\:active\:scale-\[0\.98\] {
2369
+ &:not(*[data-disabled]) {
2370
+ &:active {
2371
+ scale: 0.98;
2372
+ }
2373
+ }
2374
+ }
2232
2375
  .cgui\:disabled\:pointer-events-none {
2233
2376
  &:disabled {
2234
2377
  pointer-events: none;
@@ -2298,6 +2441,14 @@
2298
2441
  color: var(--cg-ui-color-fg-primary);
2299
2442
  }
2300
2443
  }
2444
+ .cgui\:data-active\:scale-98 {
2445
+ &[data-active] {
2446
+ --tw-scale-x: 98%;
2447
+ --tw-scale-y: 98%;
2448
+ --tw-scale-z: 98%;
2449
+ scale: var(--tw-scale-x) var(--tw-scale-y);
2450
+ }
2451
+ }
2301
2452
  .cgui\:data-active\:scale-\[0\.98\] {
2302
2453
  &[data-active] {
2303
2454
  scale: 0.98;
@@ -2757,6 +2908,17 @@
2757
2908
  animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);
2758
2909
  }
2759
2910
  }
2911
+ .cgui\:data-\[state\=closed\]\:delay-\[120ms\] {
2912
+ &[data-state="closed"] {
2913
+ transition-delay: 120ms;
2914
+ }
2915
+ }
2916
+ .cgui\:data-\[state\=closed\]\:delay-\[120ms\] {
2917
+ &[data-state="closed"] {
2918
+ animation-delay: 120ms;
2919
+ --tw-animation-delay: 120ms;
2920
+ }
2921
+ }
2760
2922
  .cgui\:data-\[state\=closed\]\:fade-out-0 {
2761
2923
  &[data-state="closed"] {
2762
2924
  --tw-exit-opacity: calc(0/100);
@@ -2775,6 +2937,11 @@
2775
2937
  --tw-exit-scale: .95;
2776
2938
  }
2777
2939
  }
2940
+ .cgui\:data-\[state\=closed\]\:slide-out-to-top-2 {
2941
+ &[data-state="closed"] {
2942
+ --tw-exit-translate-y: calc(2*var(--spacing)*-1);
2943
+ }
2944
+ }
2778
2945
  .cgui\:data-\[state\=indeterminate\]\:border-surface-primary {
2779
2946
  &[data-state="indeterminate"] {
2780
2947
  border-color: var(--cg-ui-color-surface-primary);
@@ -2827,6 +2994,19 @@
2827
2994
  }
2828
2995
  }
2829
2996
  }
2997
+ .cgui\:data-\[state\=open\]\:delay-0 {
2998
+ &[data-state="open"] {
2999
+ transition-delay: 0ms;
3000
+ }
3001
+ }
3002
+ .cgui\:data-\[state\=open\]\:delay-0 {
3003
+ &[data-state="open"] {
3004
+ animation-delay: calc(0*1ms);
3005
+ animation-delay: 0s;
3006
+ --tw-animation-delay: calc(0*1ms);
3007
+ --tw-animation-delay: 0s;
3008
+ }
3009
+ }
2830
3010
  .cgui\:data-\[state\=open\]\:fade-in-0 {
2831
3011
  &[data-state="open"] {
2832
3012
  --tw-enter-opacity: calc(0/100);
@@ -2845,6 +3025,11 @@
2845
3025
  --tw-enter-scale: .95;
2846
3026
  }
2847
3027
  }
3028
+ .cgui\:data-\[state\=open\]\:slide-in-from-top-2 {
3029
+ &[data-state="open"] {
3030
+ --tw-enter-translate-y: calc(2*var(--spacing)*-1);
3031
+ }
3032
+ }
2848
3033
  .cgui\:data-\[vaul-drawer-direction\=bottom\]\:right-0 {
2849
3034
  &[data-vaul-drawer-direction="bottom"] {
2850
3035
  right: calc(var(--cgui-spacing) * 0);
@@ -2949,6 +3134,17 @@
2949
3134
  border-bottom-left-radius: calc(var(--cg-ui-number-md) * 1px);
2950
3135
  }
2951
3136
  }
3137
+ .cgui\:motion-safe\:animate-shimmer {
3138
+ @media (prefers-reduced-motion: no-preference) {
3139
+ animation: shimmer 1.8s ease-in-out infinite;
3140
+ }
3141
+ }
3142
+ .cgui\:motion-reduce\:duration-\[15s\] {
3143
+ @media (prefers-reduced-motion: reduce) {
3144
+ --tw-duration: 15s;
3145
+ transition-duration: 15s;
3146
+ }
3147
+ }
2952
3148
  .cgui\:md\:grid-cols-2 {
2953
3149
  @media (width >= 48rem) {
2954
3150
  grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -3004,6 +3200,92 @@
3004
3200
  margin-inline-end: auto;
3005
3201
  }
3006
3202
  }
3203
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-chevron\"\]\]\:inline-grid {
3204
+ & [data-slot="nav-trigger-chevron"] {
3205
+ display: inline-grid;
3206
+ }
3207
+ }
3208
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-chevron\"\]\]\:shrink-0 {
3209
+ & [data-slot="nav-trigger-chevron"] {
3210
+ flex-shrink: 0;
3211
+ }
3212
+ }
3213
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-chevron\"\]\]\:place-items-center {
3214
+ & [data-slot="nav-trigger-chevron"] {
3215
+ place-items: center;
3216
+ }
3217
+ }
3218
+ .cgui\:group-data-\[compact\=false\]\/navigation\:data-\[state\=open\]\:\[\&_\[data-slot\=\"nav-trigger-chevron\"\]\]\:rotate-180 {
3219
+ &:is(:where(.cgui\:group\/navigation)[data-compact="false"] *) {
3220
+ &[data-state="open"] {
3221
+ & [data-slot="nav-trigger-chevron"] {
3222
+ rotate: 180deg;
3223
+ }
3224
+ }
3225
+ }
3226
+ }
3227
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-chevron\"\]_svg\]\:size-5 {
3228
+ & [data-slot="nav-trigger-chevron"] svg {
3229
+ width: calc(var(--cgui-spacing) * 5);
3230
+ height: calc(var(--cgui-spacing) * 5);
3231
+ }
3232
+ }
3233
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-icon\"\]\]\:pointer-events-none {
3234
+ & [data-slot="nav-trigger-icon"] {
3235
+ pointer-events: none;
3236
+ }
3237
+ }
3238
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-icon\"\]\]\:me-auto {
3239
+ & [data-slot="nav-trigger-icon"] {
3240
+ margin-inline-end: auto;
3241
+ }
3242
+ }
3243
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-icon\"\]\]\:shrink-0 {
3244
+ & [data-slot="nav-trigger-icon"] {
3245
+ flex-shrink: 0;
3246
+ }
3247
+ }
3248
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-icon\"\]_svg\:not\(\[class\*\=\"size-\"\]\)\]\:size-6 {
3249
+ & [data-slot="nav-trigger-icon"] svg:not([class*="size-"]) {
3250
+ width: calc(var(--cgui-spacing) * 6);
3251
+ height: calc(var(--cgui-spacing) * 6);
3252
+ }
3253
+ }
3254
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-label\"\]\]\:min-w-0 {
3255
+ & [data-slot="nav-trigger-label"] {
3256
+ min-width: calc(var(--cgui-spacing) * 0);
3257
+ }
3258
+ }
3259
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-label\"\]\]\:overflow-hidden {
3260
+ & [data-slot="nav-trigger-label"] {
3261
+ overflow: hidden;
3262
+ }
3263
+ }
3264
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-label\"\]\]\:text-left {
3265
+ & [data-slot="nav-trigger-label"] {
3266
+ text-align: left;
3267
+ }
3268
+ }
3269
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-label\"\]\]\:whitespace-nowrap {
3270
+ & [data-slot="nav-trigger-label"] {
3271
+ white-space: nowrap;
3272
+ }
3273
+ }
3274
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-label\"\]\>\*\]\:min-w-0 {
3275
+ & [data-slot="nav-trigger-label"]>* {
3276
+ min-width: calc(var(--cgui-spacing) * 0);
3277
+ }
3278
+ }
3279
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-label\"\]\>\*\]\:overflow-hidden {
3280
+ & [data-slot="nav-trigger-label"]>* {
3281
+ overflow: hidden;
3282
+ }
3283
+ }
3284
+ .cgui\:\[\&_\[data-slot\=\"nav-trigger-label\"\]\>\*\]\:whitespace-nowrap {
3285
+ & [data-slot="nav-trigger-label"]>* {
3286
+ white-space: nowrap;
3287
+ }
3288
+ }
3007
3289
  .cgui\:\[\&_\[data-slot\=\"trigger\"\]\]\:rounded-sm {
3008
3290
  & [data-slot="trigger"] {
3009
3291
  border-radius: calc(var(--cg-ui-number-sm) * 1px);
@@ -3191,8 +3473,8 @@
3191
3473
  }
3192
3474
  .cgui\:\[\&_svg\]\:ease-in-out {
3193
3475
  & svg {
3194
- --tw-ease: var(--cgui-ease-in-out);
3195
- transition-timing-function: var(--cgui-ease-in-out);
3476
+ --tw-ease: var(--cg-ui-ease-in-out);
3477
+ transition-timing-function: var(--cg-ui-ease-in-out);
3196
3478
  }
3197
3479
  }
3198
3480
  .cgui\:\[\&_svg\:not\(\[class\*\=\"size-\"\]\)\]\:size-3 {
@@ -3624,6 +3906,15 @@
3624
3906
  --cg-ui-z-index-notification: 400;
3625
3907
  --cg-ui-z-index-critical: 500;
3626
3908
  --cg-ui-z-index-loading: 500;
3909
+ --cg-ui-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
3910
+ --cg-ui-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
3911
+ --cg-ui-ease-hover: cubic-bezier(0.4, 0, 0.2, 1);
3912
+ --cg-ui-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
3913
+ --cg-ui-ease-out-expo: var(--ease-out);
3914
+ --cg-ui-duration-instant: 100ms;
3915
+ --cg-ui-duration-fast: 150ms;
3916
+ --cg-ui-duration-base: 200ms;
3917
+ --cg-ui-duration-slow: 300ms;
3627
3918
  }
3628
3919
  :root, [data-theme='light'] {
3629
3920
  --cg-ui-color-fg-darkest: var(--cg-ui-palette-neutral-100);
@@ -4076,6 +4367,14 @@
4076
4367
  filter: blur(var(--tw-exit-blur,0));
4077
4368
  }
4078
4369
  }
4370
+ @keyframes shimmer {
4371
+ 0% {
4372
+ background-position: 150%;
4373
+ }
4374
+ 100% {
4375
+ background-position: -50%;
4376
+ }
4377
+ }
4079
4378
  @layer properties {
4080
4379
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
4081
4380
  *, ::before, ::after, ::backdrop {
@@ -170,4 +170,28 @@
170
170
  --breakpoint-desktop-sm: 1280px;
171
171
  --breakpoint-desktop: 1440px;
172
172
  --breakpoint-desktop-lg: 1920px;
173
+
174
+ /* -------------------------------------------------------------------------
175
+ Animations
176
+ ------------------------------------------------------------------------- */
177
+ --ease-out: var(--cg-ui-ease-out);
178
+ --ease-in-out: var(--cg-ui-ease-in-out);
179
+ --ease-hover: var(--cg-ui-ease-hover);
180
+ --ease-drawer: var(--cg-ui-ease-drawer);
181
+ --ease-out-expo: var(--cg-ui-ease-out-expo);
182
+
183
+ --duration-instant: var(--cg-ui-duration-instant);
184
+ --duration-fast: var(--cg-ui-duration-fast);
185
+ --duration-base: var(--cg-ui-duration-base);
186
+ --duration-slow: var(--cg-ui-duration-slow);
187
+
188
+ --animate-shimmer: shimmer 1.8s ease-in-out infinite;
189
+ @keyframes shimmer {
190
+ 0% {
191
+ background-position: 150%;
192
+ }
193
+ 100% {
194
+ background-position: -50%;
195
+ }
196
+ }
173
197
  }
@@ -121,4 +121,18 @@
121
121
  --cg-ui-z-index-notification: 400;
122
122
  --cg-ui-z-index-critical: 500;
123
123
  --cg-ui-z-index-loading: 500;
124
+
125
+ /* -------------------------------------------------------------------------
126
+ Animations
127
+ ------------------------------------------------------------------------- */
128
+ --cg-ui-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
129
+ --cg-ui-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
130
+ --cg-ui-ease-hover: cubic-bezier(0.4, 0, 0.2, 1);
131
+ --cg-ui-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
132
+ --cg-ui-ease-out-expo: var(--ease-out);
133
+
134
+ --cg-ui-duration-instant: 100ms; /* button press, scale-98 */
135
+ --cg-ui-duration-fast: 150ms; /* tooltips, popover content */
136
+ --cg-ui-duration-base: 200ms; /* selects, hovers, inputs */
137
+ --cg-ui-duration-slow: 300ms; /* sidebar collapse, layout grid */
124
138
  }
@@ -0,0 +1,20 @@
1
+ import { cubicInOut, quartOut } from 'svelte/easing';
2
+ /** Duration tokens in milliseconds (match `--duration-*` in `theme.css`). */
3
+ export declare const duration: {
4
+ readonly instant: 100;
5
+ readonly fast: 150;
6
+ readonly base: 200;
7
+ readonly slow: 300;
8
+ };
9
+ export declare const easeOut: typeof quartOut;
10
+ export declare const easeInOut: typeof cubicInOut;
11
+ export declare const motion: {
12
+ readonly duration: {
13
+ readonly instant: 100;
14
+ readonly fast: 150;
15
+ readonly base: 200;
16
+ readonly slow: 300;
17
+ };
18
+ readonly easeOut: typeof quartOut;
19
+ readonly easeInOut: typeof cubicInOut;
20
+ };
@@ -0,0 +1,15 @@
1
+ import { cubicInOut, quartOut } from 'svelte/easing';
2
+ /** Duration tokens in milliseconds (match `--duration-*` in `theme.css`). */
3
+ export const duration = {
4
+ instant: 100,
5
+ fast: 150,
6
+ base: 200,
7
+ slow: 300,
8
+ };
9
+ export const easeOut = quartOut;
10
+ export const easeInOut = cubicInOut;
11
+ export const motion = {
12
+ duration,
13
+ easeOut,
14
+ easeInOut,
15
+ };
@@ -8,7 +8,7 @@ export const appShellHeaderVariants = tv({
8
8
  base: [
9
9
  'cgui:fixed cgui:top-0 cgui:right-0 cgui:h-(--app-shell-header-height) cgui:w-full',
10
10
  'cgui:flex cgui:items-center',
11
- 'cgui:transition-(width) cgui:duration-250 cgui:ease-in-out',
11
+ 'cgui:transition-[width] cgui:duration-(--cg-ui-duration-slow) cgui:ease-out',
12
12
  'cgui:bg-surface-white',
13
13
  ],
14
14
  variants: {
@@ -29,9 +29,8 @@ export const appShellSidebarVariants = tv({
29
29
  'cgui:flex cgui:flex-col',
30
30
  'cgui:h-full cgui:w-(--app-shell-sidebar-width) cgui:data-[collapsed]:w-(--app-shell-sidebar-collapsed-width)',
31
31
  'cgui:bg-surface-darkest',
32
- 'cgui:transition-(width) cgui:duration-250 cgui:ease-in-out',
32
+ 'cgui:transition-all cgui:duration-(--cg-ui-duration-slow) cgui:ease-out',
33
33
  'cgui:fixed cgui:left-0 cgui:bottom-0',
34
- 'cgui:will-change-width',
35
34
  ],
36
35
  variants: {
37
36
  layout: {
@@ -47,13 +46,13 @@ export const appShellContentVariants = tv({
47
46
  base: [
48
47
  'cgui:overflow-y-auto',
49
48
  'cgui:size-full cgui:flex cgui:flex-col cgui:grow',
50
- 'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
49
+ 'cgui:transition-all cgui:duration-(--cg-ui-duration-slow) cgui:ease-out',
51
50
  ],
52
51
  });
53
52
  export const appShellViewportVariants = tv({
54
53
  base: [
55
54
  'cgui:size-full cgui:overflow-hidden cgui:flex cgui:flex-col cgui:grow',
56
- 'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
55
+ 'cgui:transition-all cgui:duration-(--cg-ui-duration-slow) cgui:ease-out',
57
56
  'cgui:group-has-[[data-slot="sidebar"]]/appShell:pl-(--app-shell-sidebar-width) cgui:group-data-[collapsed]/appShell:group-has-[[data-slot="sidebar"]]/appShell:pl-(--app-shell-sidebar-collapsed-width)',
58
57
  'cgui:group-has-[[data-slot="header"]]/appShell:pt-(--app-shell-header-height)',
59
58
  ],
@@ -1,10 +1,11 @@
1
1
  import { tv } from '../../internal/utils/tailwindcss.js';
2
2
  export const badgeVariants = tv({
3
3
  base: [
4
- 'cgui:inline-flex cgui:items-center cgui:justify-center cgui:gap-1 cgui:text-center cgui:overflow-hidden cgui:shrink-0 cgui:w-fit cgui:whitespace-nowrap',
5
- 'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
6
- 'cgui:select-none cgui:font-normal cgui:text-caption-2',
7
- 'cgui:[&>svg]:pointer-events-none',
4
+ 'cgui:inline-flex cgui:items-center cgui:justify-center cgui:gap-1 cgui:overflow-hidden cgui:shrink-0 cgui:w-fit',
5
+ 'cgui:whitespace-nowrap cgui:select-none cgui:bg-clip-padding',
6
+ 'cgui:transition-[color,background-color,border-color,box-shadow,transform,opacity,width,height,border-radius] cgui:duration-(--cg-ui-duration-base) cgui:ease-out',
7
+ 'cgui:text-center cgui:leading-none cgui:font-normal cgui:text-caption-2',
8
+ 'cgui:[&_svg]:pointer-events-none',
8
9
  ],
9
10
  variants: {
10
11
  variant: {
@@ -14,7 +14,7 @@ export const breadcrumbSeparatorVariants = tv({
14
14
  export const breadcrumbLinkVariants = tv({
15
15
  base: [
16
16
  'cgui:text-fg-regular cgui:hover:text-fg-darkest',
17
- 'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
17
+ 'cgui:transition-colors cgui:duration-(--cg-ui-duration-base) cgui:ease-out',
18
18
  'cgui:truncate',
19
19
  ],
20
20
  });
@@ -1,13 +1,15 @@
1
1
  import { tv } from '../../internal/utils/tailwindcss.js';
2
2
  export const buttonVariants = tv({
3
3
  base: [
4
- 'cgui:flex cgui:items-center cgui:justify-center cgui:gap-1 cgui:cursor-pointer cgui:px-2 cgui:text-center cgui:overflow-hidden cgui:shrink-0',
5
- 'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
6
- 'cgui:select-none cgui:font-medium cgui:outline-none cgui:bg-clip-padding cgui:whitespace-nowrap',
4
+ 'cgui:inline-flex cgui:items-center cgui:justify-center cgui:gap-1 cgui:px-2 cgui:overflow-hidden cgui:shrink-0',
5
+ 'cgui:whitespace-nowrap cgui:select-none cgui:outline-none cgui:cursor-pointer cgui:bg-clip-padding',
6
+ 'cgui:transition-[color,background-color,border-color,box-shadow,transform] cgui:duration-(--cg-ui-duration-base) cgui:ease-out',
7
+ 'cgui:font-medium cgui:text-center cgui:leading-none',
7
8
  'cgui:data-disabled:cursor-not-allowed cgui:data-disabled:opacity-50',
8
9
  'cgui:[&_svg]:shrink-0 cgui:[&_svg]:pointer-events-none cgui:[&_svg:not([class*="size-"])]:size-4.5',
9
10
  'cgui:focus-visible:ring-stroke-primary/50 cgui:focus-visible:ring-2',
10
11
  'cgui:aria-invalid:ring-stroke-error cgui:aria-invalid:border-stroke-error',
12
+ 'cgui:active:scale-98 cgui:active:duration-(--cg-ui-duration-instant)',
11
13
  ],
12
14
  variants: {
13
15
  variant: {
@@ -21,7 +21,7 @@ export const calendarHeaderButtonVariants = tv({
21
21
  base: [
22
22
  'cgui:inline-flex cgui:items-center cgui:justify-center cgui:gap-1 cgui:cursor-pointer cgui:size-6 cgui:text-center cgui:overflow-hidden',
23
23
  'cgui:text-icon-default',
24
- 'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
24
+ 'cgui:transition-[color,background-color,border-color,box-shadow] cgui:duration-(--cg-ui-duration-base) cgui:ease-out',
25
25
  'cgui:select-none cgui:font-medium cgui:outline-none',
26
26
  'cgui:data-disabled:cursor-not-allowed cgui:data-disabled:opacity-50',
27
27
  'cgui:[&_svg]:shrink-0 cgui:[&_svg]:size-5',
@@ -59,7 +59,7 @@ export const calendarDayVariants = tv({
59
59
  'cgui:before:absolute cgui:data-today:before:block cgui:before:hidden cgui:before:top-1 cgui:before:left-1/2 cgui:before:-translate-x-1/2 cgui:before:size-1 cgui:before:bg-stroke-primary cgui:before:rounded-full',
60
60
  'cgui:rounded-full cgui:text-body-2 cgui:text-fg-darkest cgui:font-normal cgui:whitespace-nowrap',
61
61
  'cgui:bg-transparent cgui:border cgui:border-transparent',
62
- 'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
62
+ 'cgui:transition-[color,background-color,border-color,box-shadow] cgui:duration-(--cg-ui-duration-base) cgui:ease-out',
63
63
  'cgui:cursor-pointer cgui:outline-none',
64
64
  'cgui:focus-visible:ring-stroke-primary/50 cgui:focus-visible:ring-2 cgui:bg-clip-padding',
65
65
  'cgui:data-selected:bg-surface-primary cgui:data-selected:text-fg-white cgui:data-selected:font-medium',