aeon-ui-engine 1.0.0 → 1.0.2

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 (88) hide show
  1. package/.changeset/config.json +2 -1
  2. package/CHANGELOG.md +38 -0
  3. package/COMPONENTS.md +7 -2
  4. package/INTEGRATION.md +14 -0
  5. package/PUBLISHING.md +20 -0
  6. package/README.md +8 -4
  7. package/apps/demo/og.config.mjs +8 -3
  8. package/apps/demo/public/og-aeon-ui-engine.png +0 -0
  9. package/apps/demo/public/og.svg +2 -2
  10. package/apps/demo/scripts/generate-og-png.mjs +4 -2
  11. package/apps/demo/src/App.tsx +2 -2
  12. package/apps/demo/src/aeonDiagrams.ts +17 -75
  13. package/apps/demo/src/components/DiagramsSection.tsx +8 -9
  14. package/apps/demo/src/components/HeroInstall.tsx +7 -4
  15. package/apps/demo/src/components/LandingFaq.tsx +1 -1
  16. package/apps/demo/src/components/LandingFooter.tsx +8 -0
  17. package/apps/demo/src/components/LandingHeader.tsx +4 -2
  18. package/apps/demo/src/components/LayersSection.tsx +6 -10
  19. package/apps/demo/src/components/MermaidDiagram.tsx +5 -3
  20. package/apps/demo/src/components/PhilosophySection.tsx +0 -2
  21. package/apps/demo/src/components/PlaygroundBlock.tsx +3 -8
  22. package/apps/demo/src/components/PlaygroundControlsDemo.tsx +63 -0
  23. package/apps/demo/src/components/PlaygroundSection.tsx +7 -91
  24. package/apps/demo/src/components/ThemeSwitcher.tsx +13 -10
  25. package/apps/demo/src/demo-layout.css +29 -0
  26. package/apps/demo/src/landing.css +138 -89
  27. package/apps/demo/src/nav.ts +3 -3
  28. package/apps/demo/src/site.ts +99 -228
  29. package/docs/MACHINES.md +6 -1
  30. package/package.json +1 -1
  31. package/packages/core/src/anatomy.ts +23 -0
  32. package/packages/panda/panda.config.ts +19 -1
  33. package/packages/panda/src/recipes/button.ts +4 -4
  34. package/packages/panda/src/recipes/combobox.ts +1 -1
  35. package/packages/panda/src/recipes/index.ts +5 -0
  36. package/packages/panda/src/recipes/pin-input.ts +29 -0
  37. package/packages/panda/src/recipes/progress.ts +44 -0
  38. package/packages/panda/src/recipes/radio-group.ts +51 -0
  39. package/packages/panda/src/recipes/select.ts +3 -1
  40. package/packages/panda/src/recipes/separator.ts +35 -0
  41. package/packages/panda/src/recipes/slider.ts +57 -0
  42. package/packages/panda/src/theme/tokens.ts +5 -0
  43. package/packages/panda/styled-system/recipes/aeon-pin-input.d.ts +28 -0
  44. package/packages/panda/styled-system/recipes/aeon-pin-input.mjs +36 -0
  45. package/packages/panda/styled-system/recipes/aeon-progress.d.ts +28 -0
  46. package/packages/panda/styled-system/recipes/aeon-progress.mjs +44 -0
  47. package/packages/panda/styled-system/recipes/aeon-radio-group.d.ts +28 -0
  48. package/packages/panda/styled-system/recipes/aeon-radio-group.mjs +48 -0
  49. package/packages/panda/styled-system/recipes/aeon-separator.d.ts +31 -0
  50. package/packages/panda/styled-system/recipes/aeon-separator.mjs +41 -0
  51. package/packages/panda/styled-system/recipes/aeon-slider.d.ts +28 -0
  52. package/packages/panda/styled-system/recipes/aeon-slider.mjs +48 -0
  53. package/packages/panda/styled-system/recipes/index.d.ts +5 -0
  54. package/packages/panda/styled-system/recipes/index.mjs +5 -0
  55. package/packages/panda/styled-system/styles.css +233 -52
  56. package/packages/panda/styled-system/tokens/index.mjs +32 -0
  57. package/packages/panda/styled-system/tokens/tokens.d.ts +2 -2
  58. package/packages/panda/styled-system/types/conditions.d.ts +1 -1
  59. package/packages/primitives/src/index.ts +1 -0
  60. package/packages/primitives/src/machines/slider.ts +93 -0
  61. package/packages/react/src/checkbox/index.tsx +14 -0
  62. package/packages/react/src/floating/FloatingPositioner.tsx +59 -0
  63. package/packages/react/src/hooks/use-anchor-position.ts +33 -5
  64. package/packages/react/src/hooks/use-prefers-hover.ts +16 -0
  65. package/packages/react/src/index.ts +5 -0
  66. package/packages/react/src/menu/index.tsx +38 -11
  67. package/packages/react/src/pin-input/index.tsx +223 -0
  68. package/packages/react/src/popover/index.tsx +38 -11
  69. package/packages/react/src/progress/index.tsx +110 -0
  70. package/packages/react/src/radio-group/index.tsx +199 -0
  71. package/packages/react/src/select/index.tsx +51 -28
  72. package/packages/react/src/select/select.test.tsx +21 -0
  73. package/packages/react/src/separator/index.tsx +23 -0
  74. package/packages/react/src/slider/index.tsx +264 -0
  75. package/packages/react/src/toast/primitives.tsx +8 -1
  76. package/packages/react/src/toast/toast.test.tsx +40 -0
  77. package/packages/react/src/tooltip/index.tsx +124 -20
  78. package/packages/react/src/tooltip/tooltip.test.tsx +114 -0
  79. package/packages/site/README.md +1 -1
  80. package/packages/ui/src/index.ts +5 -0
  81. package/packages/ui/src/pin-input.tsx +16 -0
  82. package/packages/ui/src/progress.tsx +21 -0
  83. package/packages/ui/src/radio-group.tsx +24 -0
  84. package/packages/ui/src/select.tsx +3 -4
  85. package/packages/ui/src/separator.tsx +15 -0
  86. package/packages/ui/src/slider.tsx +24 -0
  87. package/apps/demo/public/og.png +0 -0
  88. package/apps/demo/src/components/SceneSection.tsx +0 -157
@@ -336,6 +336,21 @@
336
336
  pointer-events: none;
337
337
  }
338
338
 
339
+ @keyframes aeonProgressIndeterminate {
340
+ 0% {
341
+ transform: translateX(-100%);
342
+ }
343
+
344
+ 100% {
345
+ transform: translateX(250%);
346
+ }
347
+ }
348
+
349
+ [data-aeon-scope="radioGroup"] [data-aeon-part="item"] {
350
+ display: inline-flex;
351
+ align-items: center;
352
+ }
353
+
339
354
  *,::before,::after,::backdrop {
340
355
  --blur: /*-*/ /*-*/;
341
356
  --brightness: /*-*/ /*-*/;
@@ -805,6 +820,10 @@
805
820
  --spacing-control-y: 0.375rem;
806
821
  --spacing-control-x-sm: 0.625rem;
807
822
  --spacing-control-y-sm: 0.3125rem;
823
+ --spacing-control-min-h-xs: 1.75rem;
824
+ --spacing-control-min-h-sm: 2rem;
825
+ --spacing-control-min-h-md: 2.25rem;
826
+ --spacing-control-min-h-lg: 2.5rem;
808
827
  --spacing-badge-x: 0.5rem;
809
828
  --spacing-badge-y: 0.125rem;
810
829
  --spacing-inset-x-sm: 1.125rem;
@@ -967,7 +986,7 @@
967
986
  border-radius: var(--radii-md);
968
987
  padding-block: 0.4375rem;
969
988
  padding-inline: 0.875rem;
970
- min-height: 2.25rem;
989
+ min-height: controlMinHMd;
971
990
  font-size: 0.875rem;
972
991
  }
973
992
 
@@ -975,7 +994,7 @@
975
994
  border-radius: var(--radii-sm);
976
995
  padding-block: var(--spacing-control-y);
977
996
  padding-inline: var(--spacing-control-x);
978
- min-height: 2rem;
997
+ min-height: controlMinHSm;
979
998
  font-size: 0.8125rem;
980
999
  }
981
1000
 
@@ -983,7 +1002,7 @@
983
1002
  border-radius: var(--radii-sm);
984
1003
  padding-block: var(--spacing-control-y-sm);
985
1004
  padding-inline: var(--spacing-control-x-sm);
986
- min-height: 1.75rem;
1005
+ min-height: controlMinHXs;
987
1006
  font-size: 0.75rem;
988
1007
  font-weight: var(--font-weights-semibold);
989
1008
  }
@@ -992,7 +1011,7 @@
992
1011
  border-radius: var(--radii-md);
993
1012
  padding-block: var(--spacing-inset-y-sm);
994
1013
  padding-inline: var(--spacing-inset-x-sm);
995
- min-height: 2.5rem;
1014
+ min-height: controlMinHLg;
996
1015
  font-size: 0.9375rem;
997
1016
  }
998
1017
 
@@ -1239,7 +1258,7 @@
1239
1258
  transition-duration: var(--durations-normal);
1240
1259
  }
1241
1260
 
1242
- .aeonCheckbox__control[data-aeon-state*=checked] {
1261
+ .aeonCheckbox__control[data-aeon-state~="checked"] {
1243
1262
  background: var(--colors-accent);
1244
1263
  border-color: var(--colors-accent);
1245
1264
  }
@@ -1273,7 +1292,7 @@
1273
1292
  .aeonCombobox__input {
1274
1293
  display: block;
1275
1294
  width: 100%;
1276
- min-height: 2rem;
1295
+ min-height: controlMinHSm;
1277
1296
  padding-block: var(--spacing-control-y);
1278
1297
  border-radius: var(--radii-sm);
1279
1298
  color: var(--colors-fg);
@@ -1640,6 +1659,36 @@
1640
1659
  background: var(--colors-border);
1641
1660
  }
1642
1661
 
1662
+ .aeonPinInput__root {
1663
+ display: inline-flex;
1664
+ gap: var(--spacing-gap-sm);
1665
+ }
1666
+
1667
+ .aeonPinInput__input {
1668
+ width: 2.5rem;
1669
+ height: 2.75rem;
1670
+ text-align: center;
1671
+ border-radius: var(--radii-md);
1672
+ background: var(--colors-surface);
1673
+ color: var(--colors-fg);
1674
+ outline: var(--borders-none);
1675
+ font-size: var(--font-sizes-lg);
1676
+ font-family: var(--fonts-ui);
1677
+ font-weight: var(--font-weights-semibold);
1678
+ border-width: 1px;
1679
+ border-style: solid;
1680
+ border-color: var(--colors-border);
1681
+ }
1682
+
1683
+ .aeonPinInput__input[data-aeon-state=filled] {
1684
+ border-color: var(--colors-accent);
1685
+ }
1686
+
1687
+ .aeonPinInput__input:is(:focus-visible, [data-focus-visible]) {
1688
+ box-shadow: var(--shadows-focus-ring);
1689
+ border-color: var(--colors-accent);
1690
+ }
1691
+
1643
1692
  .aeonPopover__root {
1644
1693
  position: relative;
1645
1694
  display: inline-block;
@@ -1701,6 +1750,108 @@
1701
1750
  color: var(--colors-fg);
1702
1751
  }
1703
1752
 
1753
+ .aeonProgress__root {
1754
+ display: flex;
1755
+ gap: var(--spacing-gap-sm);
1756
+ width: 100%;
1757
+ flex-direction: column;
1758
+ font-family: var(--fonts-ui);
1759
+ }
1760
+
1761
+ .aeonProgress__root[data-aeon-state=loading] .aeonProgress__range {
1762
+ width: 40% !important;
1763
+ animation: aeonProgressIndeterminate 1.2s ease-in-out infinite;
1764
+ }
1765
+
1766
+ .aeonProgress__track {
1767
+ position: relative;
1768
+ width: 100%;
1769
+ height: 0.5rem;
1770
+ border-radius: var(--radii-full);
1771
+ background: var(--colors-surface);
1772
+ overflow: hidden;
1773
+ border-width: 1px;
1774
+ border-style: solid;
1775
+ border-color: var(--colors-border);
1776
+ }
1777
+
1778
+ .aeonProgress__range {
1779
+ height: 100%;
1780
+ border-radius: var(--radii-full);
1781
+ background: var(--colors-accent);
1782
+ --transition-prop: width;
1783
+ transition-property: width;
1784
+ --transition-duration: var(--durations-normal);
1785
+ transition-duration: var(--durations-normal);
1786
+ }
1787
+
1788
+ .aeonProgress__label {
1789
+ color: var(--colors-muted);
1790
+ font-size: var(--font-sizes-sm);
1791
+ line-height: var(--line-heights-snug);
1792
+ }
1793
+
1794
+ .aeonRadioGroup__root {
1795
+ display: flex;
1796
+ gap: var(--spacing-gap-sm);
1797
+ flex-direction: column;
1798
+ font-family: var(--fonts-ui);
1799
+ }
1800
+
1801
+ .aeonRadioGroup__item {
1802
+ gap: var(--spacing-gap-lg);
1803
+ vertical-align: middle;
1804
+ font-family: var(--fonts-ui);
1805
+ line-height: 1.5;
1806
+ }
1807
+
1808
+ .aeonRadioGroup__item,.aeonRadioGroup__itemControl {
1809
+ display: inline-flex;
1810
+ cursor: pointer;
1811
+ align-items: center;
1812
+ }
1813
+
1814
+ .aeonRadioGroup__itemControl {
1815
+ width: 1.5rem;
1816
+ height: 1.5rem;
1817
+ border-radius: var(--radii-full);
1818
+ background: var(--colors-surface);
1819
+ outline: var(--borders-none);
1820
+ justify-content: center;
1821
+ flex-shrink: 0;
1822
+ border-width: 1px;
1823
+ border-style: solid;
1824
+ border-color: var(--colors-border);
1825
+ --transition-prop: background-color, border-color;
1826
+ transition-property: background-color, border-color;
1827
+ --transition-duration: var(--durations-normal);
1828
+ transition-duration: var(--durations-normal);
1829
+ }
1830
+
1831
+ .aeonRadioGroup__itemControl[data-aeon-state=selected] {
1832
+ border-color: var(--colors-accent);
1833
+ }
1834
+
1835
+ .aeonRadioGroup__itemControl:is(:focus-visible, [data-focus-visible]) {
1836
+ box-shadow: var(--shadows-focus-ring);
1837
+ }
1838
+
1839
+ .aeonRadioGroup__itemIndicator {
1840
+ width: 0.625rem;
1841
+ height: 0.625rem;
1842
+ border-radius: var(--radii-full);
1843
+ background: var(--colors-accent);
1844
+ }
1845
+
1846
+ .aeonRadioGroup__itemLabel {
1847
+ color: var(--colors-fg);
1848
+ -webkit-user-select: none;
1849
+ user-select: none;
1850
+ cursor: pointer;
1851
+ font-size: var(--font-sizes-sm);
1852
+ line-height: 1.5;
1853
+ }
1854
+
1704
1855
  .aeonScroll__root {
1705
1856
  display: flex;
1706
1857
  gap: var(--spacing-gap-sm);
@@ -1733,7 +1884,8 @@
1733
1884
  display: inline-flex;
1734
1885
  gap: var(--spacing-gap-sm);
1735
1886
  width: 100%;
1736
- min-height: 2rem;
1887
+ box-sizing: border-box;
1888
+ min-height: controlMinHSm;
1737
1889
  padding-block: var(--spacing-control-y);
1738
1890
  padding-inline: var(--spacing-control-x);
1739
1891
  border-radius: var(--radii-sm);
@@ -1787,6 +1939,7 @@
1787
1939
  border-right: 2px solid;
1788
1940
  border-bottom: 2px solid;
1789
1941
  transform: rotate(45deg) translateY(-1px);
1942
+ transform-origin: center;
1790
1943
  flex-shrink: 0;
1791
1944
  border-color: var(--colors-muted);
1792
1945
  --transition-prop: transform;
@@ -1843,6 +1996,73 @@
1843
1996
  color: var(--colors-accent);
1844
1997
  }
1845
1998
 
1999
+ .aeonSeparator__root {
2000
+ background: var(--colors-border);
2001
+ border: var(--borders-none);
2002
+ flex-shrink: 0;
2003
+ }
2004
+
2005
+ .aeonSlider__root {
2006
+ position: relative;
2007
+ display: flex;
2008
+ gap: var(--spacing-gap-sm);
2009
+ width: 100%;
2010
+ min-width: 8rem;
2011
+ flex-direction: column;
2012
+ }
2013
+
2014
+ .aeonSlider__track {
2015
+ position: relative;
2016
+ height: 0.35rem;
2017
+ border-radius: var(--radii-full);
2018
+ background: var(--colors-surface);
2019
+ cursor: pointer;
2020
+ touch-action: none;
2021
+ border-width: 1px;
2022
+ border-style: solid;
2023
+ border-color: var(--colors-border);
2024
+ }
2025
+
2026
+ .aeonSlider__range {
2027
+ height: 100%;
2028
+ background: var(--colors-accent-dim);
2029
+ pointer-events: none;
2030
+ top: var(--spacing-0);
2031
+ left: var(--spacing-0);
2032
+ }
2033
+
2034
+ .aeonSlider__range,.aeonSlider__thumb {
2035
+ position: absolute;
2036
+ border-radius: var(--radii-full);
2037
+ }
2038
+
2039
+ .aeonSlider__thumb {
2040
+ width: 1rem;
2041
+ height: 1rem;
2042
+ background: var(--colors-accent);
2043
+ transform: translate(-50%, -50%);
2044
+ cursor: grab;
2045
+ box-shadow: var(--shadows-panel);
2046
+ top: 50%;
2047
+ border-width: 2px;
2048
+ border-style: solid;
2049
+ border-color: var(--colors-surface-raised);
2050
+ }
2051
+
2052
+ .aeonSlider__thumb[data-aeon-state=dragging] {
2053
+ cursor: grabbing;
2054
+ }
2055
+
2056
+ .aeonSlider__thumb:is(:focus-visible, [data-focus-visible]) {
2057
+ box-shadow: var(--shadows-focus-ring);
2058
+ }
2059
+
2060
+ .aeonSlider__valueText {
2061
+ color: var(--colors-muted);
2062
+ font-size: var(--font-sizes-xs);
2063
+ font-family: var(--fonts-ui);
2064
+ }
2065
+
1846
2066
  .aeonSwitch__root {
1847
2067
  gap: var(--spacing-gap-lg);
1848
2068
  font-family: var(--fonts-ui);
@@ -1880,7 +2100,7 @@
1880
2100
  transition-duration: var(--durations-normal);
1881
2101
  }
1882
2102
 
1883
- .aeonSwitch__control[data-aeon-state*=checked] {
2103
+ .aeonSwitch__control[data-aeon-state~="checked"] {
1884
2104
  background: var(--colors-accent-dim);
1885
2105
  border-color: var(--colors-accent);
1886
2106
  }
@@ -1902,7 +2122,7 @@
1902
2122
  transition-duration: var(--durations-normal);
1903
2123
  }
1904
2124
 
1905
- .aeonSwitch__thumb[data-aeon-state*=checked] {
2125
+ .aeonSwitch__thumb[data-aeon-state~="checked"] {
1906
2126
  background: var(--colors-accent);
1907
2127
  margin-left: auto;
1908
2128
  }
@@ -2091,53 +2311,14 @@
2091
2311
  .aeonScroll__viewport--maxW_full {
2092
2312
  max-width: 100%;
2093
2313
  }
2094
- }
2095
-
2096
- @layer utilities{
2097
-
2098
- .min-h_340 {
2099
- min-height: 340px;
2100
- }
2101
-
2102
- .distance_980 {
2103
- distance: 980px;
2104
- }
2105
-
2106
- .origin_50\%_36\% {
2107
- origin: 50% 36%;
2108
- }
2109
2314
 
2110
- .translate-z_-130 {
2111
- --translate-z: -130;
2112
- }
2113
-
2114
- .translate-z_-85 {
2115
- --translate-z: -85;
2116
- }
2117
-
2118
- .translate-z_-55 {
2119
- --translate-z: -55;
2120
- }
2121
-
2122
- .rotate-y_42 {
2123
- --rotate-y: 42;
2124
- }
2125
-
2126
- .rotate-y_-42 {
2127
- --rotate-y: -42;
2128
- }
2129
-
2130
- .translate-z_0 {
2131
- --translate-z: var(--spacing-0);
2315
+ .aeonSeparator__root--orientation_horizontal {
2316
+ width: 100%;
2317
+ height: 1px;
2132
2318
  }
2133
-
2134
- .rotate-x_56 {
2135
- --rotate-x: 56;
2136
2319
  }
2137
2320
 
2138
- .translate-z_28 {
2139
- --translate-z: var(--spacing-28);
2140
- }
2321
+ @layer utilities{
2141
2322
 
2142
2323
  .max-h_sm {
2143
2324
  max-height: var(--sizes-sm);
@@ -1719,6 +1719,22 @@ const tokens = {
1719
1719
  "value": "0.3125rem",
1720
1720
  "variable": "var(--spacing-control-y-sm)"
1721
1721
  },
1722
+ "spacing.controlMinHXs": {
1723
+ "value": "1.75rem",
1724
+ "variable": "var(--spacing-control-min-h-xs)"
1725
+ },
1726
+ "spacing.controlMinHSm": {
1727
+ "value": "2rem",
1728
+ "variable": "var(--spacing-control-min-h-sm)"
1729
+ },
1730
+ "spacing.controlMinHMd": {
1731
+ "value": "2.25rem",
1732
+ "variable": "var(--spacing-control-min-h-md)"
1733
+ },
1734
+ "spacing.controlMinHLg": {
1735
+ "value": "2.5rem",
1736
+ "variable": "var(--spacing-control-min-h-lg)"
1737
+ },
1722
1738
  "spacing.badgeX": {
1723
1739
  "value": "0.5rem",
1724
1740
  "variable": "var(--spacing-badge-x)"
@@ -2011,6 +2027,22 @@ const tokens = {
2011
2027
  "value": "calc(var(--spacing-control-y-sm) * -1)",
2012
2028
  "variable": "var(--spacing-control-y-sm)"
2013
2029
  },
2030
+ "spacing.-controlMinHXs": {
2031
+ "value": "calc(var(--spacing-control-min-h-xs) * -1)",
2032
+ "variable": "var(--spacing-control-min-h-xs)"
2033
+ },
2034
+ "spacing.-controlMinHSm": {
2035
+ "value": "calc(var(--spacing-control-min-h-sm) * -1)",
2036
+ "variable": "var(--spacing-control-min-h-sm)"
2037
+ },
2038
+ "spacing.-controlMinHMd": {
2039
+ "value": "calc(var(--spacing-control-min-h-md) * -1)",
2040
+ "variable": "var(--spacing-control-min-h-md)"
2041
+ },
2042
+ "spacing.-controlMinHLg": {
2043
+ "value": "calc(var(--spacing-control-min-h-lg) * -1)",
2044
+ "variable": "var(--spacing-control-min-h-lg)"
2045
+ },
2014
2046
  "spacing.-badgeX": {
2015
2047
  "value": "calc(var(--spacing-badge-x) * -1)",
2016
2048
  "variable": "var(--spacing-badge-x)"
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
- export type Token = "aspectRatios.square" | "aspectRatios.landscape" | "aspectRatios.portrait" | "aspectRatios.wide" | "aspectRatios.ultrawide" | "aspectRatios.golden" | "borders.none" | "easings.default" | "easings.linear" | "easings.in" | "easings.out" | "easings.in-out" | "durations.fastest" | "durations.faster" | "durations.fast" | "durations.normal" | "durations.slow" | "durations.slower" | "durations.slowest" | "fontWeights.thin" | "fontWeights.extralight" | "fontWeights.light" | "fontWeights.normal" | "fontWeights.medium" | "fontWeights.semibold" | "fontWeights.bold" | "fontWeights.extrabold" | "fontWeights.black" | "lineHeights.none" | "lineHeights.tight" | "lineHeights.snug" | "lineHeights.normal" | "lineHeights.relaxed" | "lineHeights.loose" | "letterSpacings.tighter" | "letterSpacings.tight" | "letterSpacings.normal" | "letterSpacings.wide" | "letterSpacings.wider" | "letterSpacings.widest" | "fontSizes.2xs" | "fontSizes.xs" | "fontSizes.sm" | "fontSizes.md" | "fontSizes.lg" | "fontSizes.xl" | "fontSizes.2xl" | "fontSizes.3xl" | "fontSizes.4xl" | "fontSizes.5xl" | "fontSizes.6xl" | "fontSizes.7xl" | "fontSizes.8xl" | "fontSizes.9xl" | "blurs.sm" | "blurs.base" | "blurs.md" | "blurs.lg" | "blurs.xl" | "blurs.2xl" | "blurs.3xl" | "sizes.0" | "sizes.1" | "sizes.2" | "sizes.3" | "sizes.4" | "sizes.5" | "sizes.6" | "sizes.7" | "sizes.8" | "sizes.9" | "sizes.10" | "sizes.11" | "sizes.12" | "sizes.14" | "sizes.16" | "sizes.20" | "sizes.24" | "sizes.28" | "sizes.32" | "sizes.36" | "sizes.40" | "sizes.44" | "sizes.48" | "sizes.52" | "sizes.56" | "sizes.60" | "sizes.64" | "sizes.72" | "sizes.80" | "sizes.96" | "sizes.0.5" | "sizes.1.5" | "sizes.2.5" | "sizes.3.5" | "sizes.xs" | "sizes.sm" | "sizes.md" | "sizes.lg" | "sizes.xl" | "sizes.2xl" | "sizes.3xl" | "sizes.4xl" | "sizes.5xl" | "sizes.6xl" | "sizes.7xl" | "sizes.8xl" | "sizes.prose" | "sizes.full" | "sizes.min" | "sizes.max" | "sizes.fit" | "sizes.breakpoint-sm" | "sizes.breakpoint-md" | "sizes.breakpoint-lg" | "sizes.breakpoint-xl" | "sizes.breakpoint-2xl" | "animations.spin" | "animations.ping" | "animations.pulse" | "animations.bounce" | "fonts.sans" | "fonts.serif" | "fonts.ui" | "fonts.mono" | "fonts.display" | "fonts.body" | "colors.current" | "colors.black" | "colors.white" | "colors.transparent" | "colors.rose.50" | "colors.rose.100" | "colors.rose.200" | "colors.rose.300" | "colors.rose.400" | "colors.rose.500" | "colors.rose.600" | "colors.rose.700" | "colors.rose.800" | "colors.rose.900" | "colors.rose.950" | "colors.pink.50" | "colors.pink.100" | "colors.pink.200" | "colors.pink.300" | "colors.pink.400" | "colors.pink.500" | "colors.pink.600" | "colors.pink.700" | "colors.pink.800" | "colors.pink.900" | "colors.pink.950" | "colors.fuchsia.50" | "colors.fuchsia.100" | "colors.fuchsia.200" | "colors.fuchsia.300" | "colors.fuchsia.400" | "colors.fuchsia.500" | "colors.fuchsia.600" | "colors.fuchsia.700" | "colors.fuchsia.800" | "colors.fuchsia.900" | "colors.fuchsia.950" | "colors.purple.50" | "colors.purple.100" | "colors.purple.200" | "colors.purple.300" | "colors.purple.400" | "colors.purple.500" | "colors.purple.600" | "colors.purple.700" | "colors.purple.800" | "colors.purple.900" | "colors.purple.950" | "colors.violet.50" | "colors.violet.100" | "colors.violet.200" | "colors.violet.300" | "colors.violet.400" | "colors.violet.500" | "colors.violet.600" | "colors.violet.700" | "colors.violet.800" | "colors.violet.900" | "colors.violet.950" | "colors.indigo.50" | "colors.indigo.100" | "colors.indigo.200" | "colors.indigo.300" | "colors.indigo.400" | "colors.indigo.500" | "colors.indigo.600" | "colors.indigo.700" | "colors.indigo.800" | "colors.indigo.900" | "colors.indigo.950" | "colors.blue.50" | "colors.blue.100" | "colors.blue.200" | "colors.blue.300" | "colors.blue.400" | "colors.blue.500" | "colors.blue.600" | "colors.blue.700" | "colors.blue.800" | "colors.blue.900" | "colors.blue.950" | "colors.sky.50" | "colors.sky.100" | "colors.sky.200" | "colors.sky.300" | "colors.sky.400" | "colors.sky.500" | "colors.sky.600" | "colors.sky.700" | "colors.sky.800" | "colors.sky.900" | "colors.sky.950" | "colors.cyan.50" | "colors.cyan.100" | "colors.cyan.200" | "colors.cyan.300" | "colors.cyan.400" | "colors.cyan.500" | "colors.cyan.600" | "colors.cyan.700" | "colors.cyan.800" | "colors.cyan.900" | "colors.cyan.950" | "colors.teal.50" | "colors.teal.100" | "colors.teal.200" | "colors.teal.300" | "colors.teal.400" | "colors.teal.500" | "colors.teal.600" | "colors.teal.700" | "colors.teal.800" | "colors.teal.900" | "colors.teal.950" | "colors.emerald.50" | "colors.emerald.100" | "colors.emerald.200" | "colors.emerald.300" | "colors.emerald.400" | "colors.emerald.500" | "colors.emerald.600" | "colors.emerald.700" | "colors.emerald.800" | "colors.emerald.900" | "colors.emerald.950" | "colors.green.50" | "colors.green.100" | "colors.green.200" | "colors.green.300" | "colors.green.400" | "colors.green.500" | "colors.green.600" | "colors.green.700" | "colors.green.800" | "colors.green.900" | "colors.green.950" | "colors.lime.50" | "colors.lime.100" | "colors.lime.200" | "colors.lime.300" | "colors.lime.400" | "colors.lime.500" | "colors.lime.600" | "colors.lime.700" | "colors.lime.800" | "colors.lime.900" | "colors.lime.950" | "colors.yellow.50" | "colors.yellow.100" | "colors.yellow.200" | "colors.yellow.300" | "colors.yellow.400" | "colors.yellow.500" | "colors.yellow.600" | "colors.yellow.700" | "colors.yellow.800" | "colors.yellow.900" | "colors.yellow.950" | "colors.amber.50" | "colors.amber.100" | "colors.amber.200" | "colors.amber.300" | "colors.amber.400" | "colors.amber.500" | "colors.amber.600" | "colors.amber.700" | "colors.amber.800" | "colors.amber.900" | "colors.amber.950" | "colors.orange.50" | "colors.orange.100" | "colors.orange.200" | "colors.orange.300" | "colors.orange.400" | "colors.orange.500" | "colors.orange.600" | "colors.orange.700" | "colors.orange.800" | "colors.orange.900" | "colors.orange.950" | "colors.red.50" | "colors.red.100" | "colors.red.200" | "colors.red.300" | "colors.red.400" | "colors.red.500" | "colors.red.600" | "colors.red.700" | "colors.red.800" | "colors.red.900" | "colors.red.950" | "colors.neutral.50" | "colors.neutral.100" | "colors.neutral.200" | "colors.neutral.300" | "colors.neutral.400" | "colors.neutral.500" | "colors.neutral.600" | "colors.neutral.700" | "colors.neutral.800" | "colors.neutral.900" | "colors.neutral.950" | "colors.stone.50" | "colors.stone.100" | "colors.stone.200" | "colors.stone.300" | "colors.stone.400" | "colors.stone.500" | "colors.stone.600" | "colors.stone.700" | "colors.stone.800" | "colors.stone.900" | "colors.stone.950" | "colors.zinc.50" | "colors.zinc.100" | "colors.zinc.200" | "colors.zinc.300" | "colors.zinc.400" | "colors.zinc.500" | "colors.zinc.600" | "colors.zinc.700" | "colors.zinc.800" | "colors.zinc.900" | "colors.zinc.950" | "colors.gray.50" | "colors.gray.100" | "colors.gray.200" | "colors.gray.300" | "colors.gray.400" | "colors.gray.500" | "colors.gray.600" | "colors.gray.700" | "colors.gray.800" | "colors.gray.900" | "colors.gray.950" | "colors.slate.50" | "colors.slate.100" | "colors.slate.200" | "colors.slate.300" | "colors.slate.400" | "colors.slate.500" | "colors.slate.600" | "colors.slate.700" | "colors.slate.800" | "colors.slate.900" | "colors.slate.950" | "radii.xs" | "radii.xl" | "radii.2xl" | "radii.3xl" | "radii.4xl" | "radii.full" | "radii.sm" | "radii.md" | "radii.lg" | "radii.siteLg" | "shadows.xs" | "shadows.sm" | "shadows.md" | "shadows.lg" | "shadows.xl" | "shadows.2xl" | "shadows.inner" | "shadows.panel" | "shadows.focusRing" | "spacing.0" | "spacing.1" | "spacing.2" | "spacing.3" | "spacing.4" | "spacing.5" | "spacing.6" | "spacing.7" | "spacing.8" | "spacing.9" | "spacing.10" | "spacing.11" | "spacing.12" | "spacing.14" | "spacing.16" | "spacing.20" | "spacing.24" | "spacing.28" | "spacing.32" | "spacing.36" | "spacing.40" | "spacing.44" | "spacing.48" | "spacing.52" | "spacing.56" | "spacing.60" | "spacing.64" | "spacing.72" | "spacing.80" | "spacing.96" | "spacing.0.5" | "spacing.1.5" | "spacing.2.5" | "spacing.3.5" | "spacing.controlX" | "spacing.controlY" | "spacing.controlXSm" | "spacing.controlYSm" | "spacing.badgeX" | "spacing.badgeY" | "spacing.insetXSm" | "spacing.insetYSm" | "spacing.insetX" | "spacing.insetY" | "spacing.insetXLg" | "spacing.insetYLg" | "spacing.padSm" | "spacing.padMd" | "spacing.padLg" | "spacing.padXl" | "spacing.gapSm" | "spacing.gap" | "spacing.gapLg" | "spacing.accordionGap" | "spacing.accordionInsetX" | "spacing.accordionTriggerY" | "spacing.accordionTriggerMinH" | "spacing.accordionContentY" | "spacing.accordionContentB" | "breakpoints.sm" | "breakpoints.md" | "breakpoints.lg" | "breakpoints.xl" | "breakpoints.2xl" | "colors.bg" | "colors.surface" | "colors.surfaceRaised" | "colors.border" | "colors.fg" | "colors.muted" | "colors.accent" | "colors.accentDim" | "colors.danger" | "colors.dangerDim" | "spacing.-1" | "spacing.-2" | "spacing.-3" | "spacing.-4" | "spacing.-5" | "spacing.-6" | "spacing.-7" | "spacing.-8" | "spacing.-9" | "spacing.-10" | "spacing.-11" | "spacing.-12" | "spacing.-14" | "spacing.-16" | "spacing.-20" | "spacing.-24" | "spacing.-28" | "spacing.-32" | "spacing.-36" | "spacing.-40" | "spacing.-44" | "spacing.-48" | "spacing.-52" | "spacing.-56" | "spacing.-60" | "spacing.-64" | "spacing.-72" | "spacing.-80" | "spacing.-96" | "spacing.-0.5" | "spacing.-1.5" | "spacing.-2.5" | "spacing.-3.5" | "spacing.-controlX" | "spacing.-controlY" | "spacing.-controlXSm" | "spacing.-controlYSm" | "spacing.-badgeX" | "spacing.-badgeY" | "spacing.-insetXSm" | "spacing.-insetYSm" | "spacing.-insetX" | "spacing.-insetY" | "spacing.-insetXLg" | "spacing.-insetYLg" | "spacing.-padSm" | "spacing.-padMd" | "spacing.-padLg" | "spacing.-padXl" | "spacing.-gapSm" | "spacing.-gap" | "spacing.-gapLg" | "spacing.-accordionGap" | "spacing.-accordionInsetX" | "spacing.-accordionTriggerY" | "spacing.-accordionTriggerMinH" | "spacing.-accordionContentY" | "spacing.-accordionContentB" | "colors.colorPalette" | "colors.colorPalette.50" | "colors.colorPalette.100" | "colors.colorPalette.200" | "colors.colorPalette.300" | "colors.colorPalette.400" | "colors.colorPalette.500" | "colors.colorPalette.600" | "colors.colorPalette.700" | "colors.colorPalette.800" | "colors.colorPalette.900" | "colors.colorPalette.950"
2
+ export type Token = "aspectRatios.square" | "aspectRatios.landscape" | "aspectRatios.portrait" | "aspectRatios.wide" | "aspectRatios.ultrawide" | "aspectRatios.golden" | "borders.none" | "easings.default" | "easings.linear" | "easings.in" | "easings.out" | "easings.in-out" | "durations.fastest" | "durations.faster" | "durations.fast" | "durations.normal" | "durations.slow" | "durations.slower" | "durations.slowest" | "fontWeights.thin" | "fontWeights.extralight" | "fontWeights.light" | "fontWeights.normal" | "fontWeights.medium" | "fontWeights.semibold" | "fontWeights.bold" | "fontWeights.extrabold" | "fontWeights.black" | "lineHeights.none" | "lineHeights.tight" | "lineHeights.snug" | "lineHeights.normal" | "lineHeights.relaxed" | "lineHeights.loose" | "letterSpacings.tighter" | "letterSpacings.tight" | "letterSpacings.normal" | "letterSpacings.wide" | "letterSpacings.wider" | "letterSpacings.widest" | "fontSizes.2xs" | "fontSizes.xs" | "fontSizes.sm" | "fontSizes.md" | "fontSizes.lg" | "fontSizes.xl" | "fontSizes.2xl" | "fontSizes.3xl" | "fontSizes.4xl" | "fontSizes.5xl" | "fontSizes.6xl" | "fontSizes.7xl" | "fontSizes.8xl" | "fontSizes.9xl" | "blurs.sm" | "blurs.base" | "blurs.md" | "blurs.lg" | "blurs.xl" | "blurs.2xl" | "blurs.3xl" | "sizes.0" | "sizes.1" | "sizes.2" | "sizes.3" | "sizes.4" | "sizes.5" | "sizes.6" | "sizes.7" | "sizes.8" | "sizes.9" | "sizes.10" | "sizes.11" | "sizes.12" | "sizes.14" | "sizes.16" | "sizes.20" | "sizes.24" | "sizes.28" | "sizes.32" | "sizes.36" | "sizes.40" | "sizes.44" | "sizes.48" | "sizes.52" | "sizes.56" | "sizes.60" | "sizes.64" | "sizes.72" | "sizes.80" | "sizes.96" | "sizes.0.5" | "sizes.1.5" | "sizes.2.5" | "sizes.3.5" | "sizes.xs" | "sizes.sm" | "sizes.md" | "sizes.lg" | "sizes.xl" | "sizes.2xl" | "sizes.3xl" | "sizes.4xl" | "sizes.5xl" | "sizes.6xl" | "sizes.7xl" | "sizes.8xl" | "sizes.prose" | "sizes.full" | "sizes.min" | "sizes.max" | "sizes.fit" | "sizes.breakpoint-sm" | "sizes.breakpoint-md" | "sizes.breakpoint-lg" | "sizes.breakpoint-xl" | "sizes.breakpoint-2xl" | "animations.spin" | "animations.ping" | "animations.pulse" | "animations.bounce" | "fonts.sans" | "fonts.serif" | "fonts.ui" | "fonts.mono" | "fonts.display" | "fonts.body" | "colors.current" | "colors.black" | "colors.white" | "colors.transparent" | "colors.rose.50" | "colors.rose.100" | "colors.rose.200" | "colors.rose.300" | "colors.rose.400" | "colors.rose.500" | "colors.rose.600" | "colors.rose.700" | "colors.rose.800" | "colors.rose.900" | "colors.rose.950" | "colors.pink.50" | "colors.pink.100" | "colors.pink.200" | "colors.pink.300" | "colors.pink.400" | "colors.pink.500" | "colors.pink.600" | "colors.pink.700" | "colors.pink.800" | "colors.pink.900" | "colors.pink.950" | "colors.fuchsia.50" | "colors.fuchsia.100" | "colors.fuchsia.200" | "colors.fuchsia.300" | "colors.fuchsia.400" | "colors.fuchsia.500" | "colors.fuchsia.600" | "colors.fuchsia.700" | "colors.fuchsia.800" | "colors.fuchsia.900" | "colors.fuchsia.950" | "colors.purple.50" | "colors.purple.100" | "colors.purple.200" | "colors.purple.300" | "colors.purple.400" | "colors.purple.500" | "colors.purple.600" | "colors.purple.700" | "colors.purple.800" | "colors.purple.900" | "colors.purple.950" | "colors.violet.50" | "colors.violet.100" | "colors.violet.200" | "colors.violet.300" | "colors.violet.400" | "colors.violet.500" | "colors.violet.600" | "colors.violet.700" | "colors.violet.800" | "colors.violet.900" | "colors.violet.950" | "colors.indigo.50" | "colors.indigo.100" | "colors.indigo.200" | "colors.indigo.300" | "colors.indigo.400" | "colors.indigo.500" | "colors.indigo.600" | "colors.indigo.700" | "colors.indigo.800" | "colors.indigo.900" | "colors.indigo.950" | "colors.blue.50" | "colors.blue.100" | "colors.blue.200" | "colors.blue.300" | "colors.blue.400" | "colors.blue.500" | "colors.blue.600" | "colors.blue.700" | "colors.blue.800" | "colors.blue.900" | "colors.blue.950" | "colors.sky.50" | "colors.sky.100" | "colors.sky.200" | "colors.sky.300" | "colors.sky.400" | "colors.sky.500" | "colors.sky.600" | "colors.sky.700" | "colors.sky.800" | "colors.sky.900" | "colors.sky.950" | "colors.cyan.50" | "colors.cyan.100" | "colors.cyan.200" | "colors.cyan.300" | "colors.cyan.400" | "colors.cyan.500" | "colors.cyan.600" | "colors.cyan.700" | "colors.cyan.800" | "colors.cyan.900" | "colors.cyan.950" | "colors.teal.50" | "colors.teal.100" | "colors.teal.200" | "colors.teal.300" | "colors.teal.400" | "colors.teal.500" | "colors.teal.600" | "colors.teal.700" | "colors.teal.800" | "colors.teal.900" | "colors.teal.950" | "colors.emerald.50" | "colors.emerald.100" | "colors.emerald.200" | "colors.emerald.300" | "colors.emerald.400" | "colors.emerald.500" | "colors.emerald.600" | "colors.emerald.700" | "colors.emerald.800" | "colors.emerald.900" | "colors.emerald.950" | "colors.green.50" | "colors.green.100" | "colors.green.200" | "colors.green.300" | "colors.green.400" | "colors.green.500" | "colors.green.600" | "colors.green.700" | "colors.green.800" | "colors.green.900" | "colors.green.950" | "colors.lime.50" | "colors.lime.100" | "colors.lime.200" | "colors.lime.300" | "colors.lime.400" | "colors.lime.500" | "colors.lime.600" | "colors.lime.700" | "colors.lime.800" | "colors.lime.900" | "colors.lime.950" | "colors.yellow.50" | "colors.yellow.100" | "colors.yellow.200" | "colors.yellow.300" | "colors.yellow.400" | "colors.yellow.500" | "colors.yellow.600" | "colors.yellow.700" | "colors.yellow.800" | "colors.yellow.900" | "colors.yellow.950" | "colors.amber.50" | "colors.amber.100" | "colors.amber.200" | "colors.amber.300" | "colors.amber.400" | "colors.amber.500" | "colors.amber.600" | "colors.amber.700" | "colors.amber.800" | "colors.amber.900" | "colors.amber.950" | "colors.orange.50" | "colors.orange.100" | "colors.orange.200" | "colors.orange.300" | "colors.orange.400" | "colors.orange.500" | "colors.orange.600" | "colors.orange.700" | "colors.orange.800" | "colors.orange.900" | "colors.orange.950" | "colors.red.50" | "colors.red.100" | "colors.red.200" | "colors.red.300" | "colors.red.400" | "colors.red.500" | "colors.red.600" | "colors.red.700" | "colors.red.800" | "colors.red.900" | "colors.red.950" | "colors.neutral.50" | "colors.neutral.100" | "colors.neutral.200" | "colors.neutral.300" | "colors.neutral.400" | "colors.neutral.500" | "colors.neutral.600" | "colors.neutral.700" | "colors.neutral.800" | "colors.neutral.900" | "colors.neutral.950" | "colors.stone.50" | "colors.stone.100" | "colors.stone.200" | "colors.stone.300" | "colors.stone.400" | "colors.stone.500" | "colors.stone.600" | "colors.stone.700" | "colors.stone.800" | "colors.stone.900" | "colors.stone.950" | "colors.zinc.50" | "colors.zinc.100" | "colors.zinc.200" | "colors.zinc.300" | "colors.zinc.400" | "colors.zinc.500" | "colors.zinc.600" | "colors.zinc.700" | "colors.zinc.800" | "colors.zinc.900" | "colors.zinc.950" | "colors.gray.50" | "colors.gray.100" | "colors.gray.200" | "colors.gray.300" | "colors.gray.400" | "colors.gray.500" | "colors.gray.600" | "colors.gray.700" | "colors.gray.800" | "colors.gray.900" | "colors.gray.950" | "colors.slate.50" | "colors.slate.100" | "colors.slate.200" | "colors.slate.300" | "colors.slate.400" | "colors.slate.500" | "colors.slate.600" | "colors.slate.700" | "colors.slate.800" | "colors.slate.900" | "colors.slate.950" | "radii.xs" | "radii.xl" | "radii.2xl" | "radii.3xl" | "radii.4xl" | "radii.full" | "radii.sm" | "radii.md" | "radii.lg" | "radii.siteLg" | "shadows.xs" | "shadows.sm" | "shadows.md" | "shadows.lg" | "shadows.xl" | "shadows.2xl" | "shadows.inner" | "shadows.panel" | "shadows.focusRing" | "spacing.0" | "spacing.1" | "spacing.2" | "spacing.3" | "spacing.4" | "spacing.5" | "spacing.6" | "spacing.7" | "spacing.8" | "spacing.9" | "spacing.10" | "spacing.11" | "spacing.12" | "spacing.14" | "spacing.16" | "spacing.20" | "spacing.24" | "spacing.28" | "spacing.32" | "spacing.36" | "spacing.40" | "spacing.44" | "spacing.48" | "spacing.52" | "spacing.56" | "spacing.60" | "spacing.64" | "spacing.72" | "spacing.80" | "spacing.96" | "spacing.0.5" | "spacing.1.5" | "spacing.2.5" | "spacing.3.5" | "spacing.controlX" | "spacing.controlY" | "spacing.controlXSm" | "spacing.controlYSm" | "spacing.controlMinHXs" | "spacing.controlMinHSm" | "spacing.controlMinHMd" | "spacing.controlMinHLg" | "spacing.badgeX" | "spacing.badgeY" | "spacing.insetXSm" | "spacing.insetYSm" | "spacing.insetX" | "spacing.insetY" | "spacing.insetXLg" | "spacing.insetYLg" | "spacing.padSm" | "spacing.padMd" | "spacing.padLg" | "spacing.padXl" | "spacing.gapSm" | "spacing.gap" | "spacing.gapLg" | "spacing.accordionGap" | "spacing.accordionInsetX" | "spacing.accordionTriggerY" | "spacing.accordionTriggerMinH" | "spacing.accordionContentY" | "spacing.accordionContentB" | "breakpoints.sm" | "breakpoints.md" | "breakpoints.lg" | "breakpoints.xl" | "breakpoints.2xl" | "colors.bg" | "colors.surface" | "colors.surfaceRaised" | "colors.border" | "colors.fg" | "colors.muted" | "colors.accent" | "colors.accentDim" | "colors.danger" | "colors.dangerDim" | "spacing.-1" | "spacing.-2" | "spacing.-3" | "spacing.-4" | "spacing.-5" | "spacing.-6" | "spacing.-7" | "spacing.-8" | "spacing.-9" | "spacing.-10" | "spacing.-11" | "spacing.-12" | "spacing.-14" | "spacing.-16" | "spacing.-20" | "spacing.-24" | "spacing.-28" | "spacing.-32" | "spacing.-36" | "spacing.-40" | "spacing.-44" | "spacing.-48" | "spacing.-52" | "spacing.-56" | "spacing.-60" | "spacing.-64" | "spacing.-72" | "spacing.-80" | "spacing.-96" | "spacing.-0.5" | "spacing.-1.5" | "spacing.-2.5" | "spacing.-3.5" | "spacing.-controlX" | "spacing.-controlY" | "spacing.-controlXSm" | "spacing.-controlYSm" | "spacing.-controlMinHXs" | "spacing.-controlMinHSm" | "spacing.-controlMinHMd" | "spacing.-controlMinHLg" | "spacing.-badgeX" | "spacing.-badgeY" | "spacing.-insetXSm" | "spacing.-insetYSm" | "spacing.-insetX" | "spacing.-insetY" | "spacing.-insetXLg" | "spacing.-insetYLg" | "spacing.-padSm" | "spacing.-padMd" | "spacing.-padLg" | "spacing.-padXl" | "spacing.-gapSm" | "spacing.-gap" | "spacing.-gapLg" | "spacing.-accordionGap" | "spacing.-accordionInsetX" | "spacing.-accordionTriggerY" | "spacing.-accordionTriggerMinH" | "spacing.-accordionContentY" | "spacing.-accordionContentB" | "colors.colorPalette" | "colors.colorPalette.50" | "colors.colorPalette.100" | "colors.colorPalette.200" | "colors.colorPalette.300" | "colors.colorPalette.400" | "colors.colorPalette.500" | "colors.colorPalette.600" | "colors.colorPalette.700" | "colors.colorPalette.800" | "colors.colorPalette.900" | "colors.colorPalette.950"
3
3
 
4
4
  export type ColorPalette = "current" | "black" | "white" | "transparent" | "rose" | "pink" | "fuchsia" | "purple" | "violet" | "indigo" | "blue" | "sky" | "cyan" | "teal" | "emerald" | "green" | "lime" | "yellow" | "amber" | "orange" | "red" | "neutral" | "stone" | "zinc" | "gray" | "slate" | "bg" | "surface" | "surfaceRaised" | "border" | "fg" | "muted" | "accent" | "accentDim" | "danger" | "dangerDim"
5
5
 
@@ -33,7 +33,7 @@ export type RadiusToken = "xs" | "xl" | "2xl" | "3xl" | "4xl" | "full" | "sm" |
33
33
 
34
34
  export type ShadowToken = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "inner" | "panel" | "focusRing"
35
35
 
36
- export type SpacingToken = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | "0.5" | "1.5" | "2.5" | "3.5" | "controlX" | "controlY" | "controlXSm" | "controlYSm" | "badgeX" | "badgeY" | "insetXSm" | "insetYSm" | "insetX" | "insetY" | "insetXLg" | "insetYLg" | "padSm" | "padMd" | "padLg" | "padXl" | "gapSm" | "gap" | "gapLg" | "accordionGap" | "accordionInsetX" | "accordionTriggerY" | "accordionTriggerMinH" | "accordionContentY" | "accordionContentB" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9" | "-10" | "-11" | "-12" | "-14" | "-16" | "-20" | "-24" | "-28" | "-32" | "-36" | "-40" | "-44" | "-48" | "-52" | "-56" | "-60" | "-64" | "-72" | "-80" | "-96" | "-0.5" | "-1.5" | "-2.5" | "-3.5" | "-controlX" | "-controlY" | "-controlXSm" | "-controlYSm" | "-badgeX" | "-badgeY" | "-insetXSm" | "-insetYSm" | "-insetX" | "-insetY" | "-insetXLg" | "-insetYLg" | "-padSm" | "-padMd" | "-padLg" | "-padXl" | "-gapSm" | "-gap" | "-gapLg" | "-accordionGap" | "-accordionInsetX" | "-accordionTriggerY" | "-accordionTriggerMinH" | "-accordionContentY" | "-accordionContentB"
36
+ export type SpacingToken = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "14" | "16" | "20" | "24" | "28" | "32" | "36" | "40" | "44" | "48" | "52" | "56" | "60" | "64" | "72" | "80" | "96" | "0.5" | "1.5" | "2.5" | "3.5" | "controlX" | "controlY" | "controlXSm" | "controlYSm" | "controlMinHXs" | "controlMinHSm" | "controlMinHMd" | "controlMinHLg" | "badgeX" | "badgeY" | "insetXSm" | "insetYSm" | "insetX" | "insetY" | "insetXLg" | "insetYLg" | "padSm" | "padMd" | "padLg" | "padXl" | "gapSm" | "gap" | "gapLg" | "accordionGap" | "accordionInsetX" | "accordionTriggerY" | "accordionTriggerMinH" | "accordionContentY" | "accordionContentB" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9" | "-10" | "-11" | "-12" | "-14" | "-16" | "-20" | "-24" | "-28" | "-32" | "-36" | "-40" | "-44" | "-48" | "-52" | "-56" | "-60" | "-64" | "-72" | "-80" | "-96" | "-0.5" | "-1.5" | "-2.5" | "-3.5" | "-controlX" | "-controlY" | "-controlXSm" | "-controlYSm" | "-controlMinHXs" | "-controlMinHSm" | "-controlMinHMd" | "-controlMinHLg" | "-badgeX" | "-badgeY" | "-insetXSm" | "-insetYSm" | "-insetX" | "-insetY" | "-insetXLg" | "-insetYLg" | "-padSm" | "-padMd" | "-padLg" | "-padXl" | "-gapSm" | "-gap" | "-gapLg" | "-accordionGap" | "-accordionInsetX" | "-accordionTriggerY" | "-accordionTriggerMinH" | "-accordionContentY" | "-accordionContentB"
37
37
 
38
38
  export type BreakpointToken = "sm" | "md" | "lg" | "xl" | "2xl"
39
39
 
@@ -214,7 +214,7 @@ export interface Conditions {
214
214
  "_starting": string
215
215
  /** `&[data-aeon-state=selected]` */
216
216
  "_aeonSelected": string
217
- /** `&[data-aeon-state*=checked]` */
217
+ /** `&[data-aeon-state~="checked"]` */
218
218
  "_aeonChecked": string
219
219
  /** `&[data-aeon-state=open]` */
220
220
  "_aeonOpen": string
@@ -7,3 +7,4 @@ export * from './machines/button.js'
7
7
  export * from './machines/field.js'
8
8
  export * from './machines/popover.js'
9
9
  export * from './machines/toast.js'
10
+ export * from './machines/slider.js'
@@ -0,0 +1,93 @@
1
+ import { assign, setup } from 'xstate'
2
+
3
+ export interface SliderContext {
4
+ value: number
5
+ min: number
6
+ max: number
7
+ step: number
8
+ disabled: boolean
9
+ }
10
+
11
+ export type SliderEvent =
12
+ | { type: 'SET_VALUE'; value: number }
13
+ | { type: 'STEP'; delta: number }
14
+ | { type: 'POINTER_DOWN' }
15
+ | { type: 'POINTER_UP' }
16
+ | { type: 'HOME' }
17
+ | { type: 'END' }
18
+
19
+ function clamp(value: number, min: number, max: number) {
20
+ return Math.min(max, Math.max(min, value))
21
+ }
22
+
23
+ function snap(value: number, min: number, max: number, step: number) {
24
+ if (step <= 0) return clamp(value, min, max)
25
+ const snapped = min + Math.round((value - min) / step) * step
26
+ return clamp(snapped, min, max)
27
+ }
28
+
29
+ /** Range control — idle vs dragging interaction regions. */
30
+ export const sliderMachine = setup({
31
+ types: {
32
+ context: {} as SliderContext,
33
+ events: {} as SliderEvent,
34
+ input: {} as SliderContext,
35
+ },
36
+ guards: {
37
+ notDisabled: ({ context }) => !context.disabled,
38
+ },
39
+ actions: {
40
+ setValue: assign({
41
+ value: ({ context, event }) =>
42
+ event.type === 'SET_VALUE'
43
+ ? snap(event.value, context.min, context.max, context.step)
44
+ : context.value,
45
+ }),
46
+ step: assign({
47
+ value: ({ context, event }) =>
48
+ event.type === 'STEP'
49
+ ? snap(context.value + event.delta, context.min, context.max, context.step)
50
+ : context.value,
51
+ }),
52
+ home: assign({
53
+ value: ({ context }) => context.min,
54
+ }),
55
+ end: assign({
56
+ value: ({ context }) => context.max,
57
+ }),
58
+ },
59
+ }).createMachine({
60
+ id: 'slider',
61
+ context: ({ input }) => ({
62
+ value: snap(input.value ?? input.min, input.min, input.max, input.step),
63
+ min: input.min,
64
+ max: input.max,
65
+ step: input.step,
66
+ disabled: input.disabled ?? false,
67
+ }),
68
+ initial: 'interaction',
69
+ states: {
70
+ interaction: {
71
+ initial: 'idle',
72
+ states: {
73
+ idle: {
74
+ on: {
75
+ SET_VALUE: { actions: 'setValue', guard: 'notDisabled' },
76
+ STEP: { actions: 'step', guard: 'notDisabled' },
77
+ HOME: { actions: 'home', guard: 'notDisabled' },
78
+ END: { actions: 'end', guard: 'notDisabled' },
79
+ POINTER_DOWN: { target: 'dragging', guard: 'notDisabled' },
80
+ },
81
+ },
82
+ dragging: {
83
+ on: {
84
+ SET_VALUE: { actions: 'setValue' },
85
+ POINTER_UP: 'idle',
86
+ },
87
+ },
88
+ },
89
+ },
90
+ },
91
+ })
92
+
93
+ export { clamp as clampSliderValue, snap as snapSliderValue }
@@ -69,6 +69,13 @@ const Root = forwardRef<HTMLLabelElement, CheckboxRootProps>(function CheckboxRo
69
69
  [resolvedChecked, disabled, checked, onCheckedChange, send],
70
70
  )
71
71
 
72
+ const toggle = () => {
73
+ if (disabled) return
74
+ const next = !resolvedChecked
75
+ if (checked !== undefined) onCheckedChange?.(next)
76
+ else send({ type: 'TOGGLE' })
77
+ }
78
+
72
79
  return (
73
80
  <CheckboxCtx.Provider value={value}>
74
81
  <label
@@ -79,6 +86,13 @@ const Root = forwardRef<HTMLLabelElement, CheckboxRootProps>(function CheckboxRo
79
86
  state: resolvedChecked ? 'checked' : 'unchecked',
80
87
  disabled,
81
88
  }),
89
+ {
90
+ onClick: (e: MouseEvent<HTMLLabelElement>) => {
91
+ const target = e.target as HTMLElement
92
+ if (target.closest(`[data-aeon-part="${checkboxAnatomy.control}"]`)) return
93
+ toggle()
94
+ },
95
+ },
82
96
  rest as ButtonHTMLAttributes<HTMLLabelElement>,
83
97
  )}
84
98
  >