@vectoriox/iox-ui 5.43.0 → 5.45.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.
@@ -1425,6 +1425,208 @@ const SPEC_AXES = {
1425
1425
  "inverse-line": 0.03
1426
1426
  }
1427
1427
  }
1428
+ },
1429
+ "scrolls": {
1430
+ "normal": {
1431
+ "label": "Normal",
1432
+ "he": "רגילה",
1433
+ "hint": "The browser's own scrolling.",
1434
+ "lenis": null
1435
+ },
1436
+ "smooth": {
1437
+ "label": "Smooth",
1438
+ "he": "חלקה",
1439
+ "hint": "A short glide after each wheel turn — what every IOX site does today.",
1440
+ "lenis": {
1441
+ "duration": 1.2,
1442
+ "easing": "expo-out",
1443
+ "wheelMultiplier": 1,
1444
+ "syncTouch": false
1445
+ }
1446
+ },
1447
+ "extra": {
1448
+ "label": "Extra smooth",
1449
+ "he": "חלקה מאוד",
1450
+ "hint": "A longer, softer glide; each wheel turn moves a little less.",
1451
+ "lenis": {
1452
+ "duration": 1.8,
1453
+ "easing": "expo-out",
1454
+ "wheelMultiplier": 0.9,
1455
+ "syncTouch": false
1456
+ }
1457
+ }
1458
+ },
1459
+ "animations": {
1460
+ "still": {
1461
+ "label": "Still",
1462
+ "he": "ללא",
1463
+ "hint": "Nothing moves in as you scroll. Buttons and cards still respond to the pointer (Speed).",
1464
+ "parts": {}
1465
+ },
1466
+ "subtle": {
1467
+ "label": "Subtle",
1468
+ "he": "עדינה",
1469
+ "hint": "Each section's content fades in once, together.",
1470
+ "parts": {
1471
+ "content": {
1472
+ "type": "fadeIn",
1473
+ "duration": 500
1474
+ }
1475
+ }
1476
+ },
1477
+ "standard": {
1478
+ "label": "Standard",
1479
+ "he": "רגילה",
1480
+ "hint": "Headings rise in; cards, prices and steps follow one after another.",
1481
+ "parts": {
1482
+ "heading": {
1483
+ "type": "moveUp",
1484
+ "distance": 16,
1485
+ "duration": 500
1486
+ },
1487
+ "items": {
1488
+ "type": "moveUp",
1489
+ "distance": 16,
1490
+ "duration": 450,
1491
+ "stagger": 80,
1492
+ "cap": 6
1493
+ },
1494
+ "media": {
1495
+ "type": "fadeIn",
1496
+ "duration": 600
1497
+ }
1498
+ }
1499
+ },
1500
+ "lively": {
1501
+ "label": "Lively",
1502
+ "he": "תוססת",
1503
+ "hint": "Bigger, longer entrances; side-by-side rows slide in from their side; the hero's words fade in.",
1504
+ "parts": {
1505
+ "heroText": {
1506
+ "type": "fadeIn",
1507
+ "duration": 400
1508
+ },
1509
+ "heading": {
1510
+ "type": "moveUp",
1511
+ "distance": 24,
1512
+ "duration": 600
1513
+ },
1514
+ "items": {
1515
+ "type": "moveUp",
1516
+ "distance": 24,
1517
+ "duration": 600,
1518
+ "stagger": 100,
1519
+ "cap": 8
1520
+ },
1521
+ "media": {
1522
+ "type": "fadeIn",
1523
+ "duration": 700
1524
+ },
1525
+ "rowMedia": {
1526
+ "type": "moveLeft",
1527
+ "mirror": "moveRight",
1528
+ "distance": 24,
1529
+ "duration": 600
1530
+ }
1531
+ }
1532
+ }
1533
+ },
1534
+ "animationFamilies": {
1535
+ "nav": [],
1536
+ "footer": [],
1537
+ "hero": [
1538
+ "heroText"
1539
+ ],
1540
+ "header": [
1541
+ "heading"
1542
+ ],
1543
+ "detail": [
1544
+ "heading",
1545
+ "media"
1546
+ ],
1547
+ "proof": [
1548
+ "content",
1549
+ "heading",
1550
+ "items"
1551
+ ],
1552
+ "feature": [
1553
+ "content",
1554
+ "heading",
1555
+ "items",
1556
+ "media",
1557
+ "rowMedia"
1558
+ ],
1559
+ "collection": [
1560
+ "content",
1561
+ "heading",
1562
+ "items"
1563
+ ],
1564
+ "story": [
1565
+ "content",
1566
+ "heading",
1567
+ "media"
1568
+ ],
1569
+ "cta": [
1570
+ "content",
1571
+ "heading"
1572
+ ],
1573
+ "contact": [
1574
+ "content",
1575
+ "heading"
1576
+ ],
1577
+ "faq": [
1578
+ "content",
1579
+ "heading"
1580
+ ],
1581
+ "pricing": [
1582
+ "content",
1583
+ "heading",
1584
+ "items"
1585
+ ]
1586
+ },
1587
+ "betweens": {
1588
+ "none": {
1589
+ "label": "None",
1590
+ "he": "ללא",
1591
+ "hint": "The next page simply appears.",
1592
+ "transition": "none"
1593
+ },
1594
+ "fade": {
1595
+ "label": "Fade",
1596
+ "he": "דהייה",
1597
+ "hint": "The page fades into the next.",
1598
+ "transition": "fade",
1599
+ "feel": "snappy"
1600
+ },
1601
+ "slide": {
1602
+ "label": "Slide",
1603
+ "he": "החלקה",
1604
+ "hint": "The next page pushes this one aside (from the left on a Hebrew site). On phones: Fade.",
1605
+ "transition": "move-left",
1606
+ "rtl": "move-right",
1607
+ "feel": "smooth",
1608
+ "phone": "fade"
1609
+ },
1610
+ "cinematic": {
1611
+ "label": "Cinematic",
1612
+ "he": "קולנועית",
1613
+ "hint": "This page sinks back while the next rises over it. On phones: Fade.",
1614
+ "transition": "parallax-up",
1615
+ "feel": "cinematic",
1616
+ "phone": "fade"
1617
+ }
1618
+ },
1619
+ "motionChoices": {
1620
+ "pre": {
1621
+ "scroll": "smooth",
1622
+ "animate": "still",
1623
+ "between": "cinematic"
1624
+ },
1625
+ "reduced": {
1626
+ "scroll": "normal",
1627
+ "animate": "still",
1628
+ "between": "none"
1629
+ }
1428
1630
  }
1429
1631
  };
1430
1632
  const SPEC_SPRINGS = {
@@ -1437,6 +1639,773 @@ const SPEC_SPRINGS = {
1437
1639
  }
1438
1640
  }
1439
1641
  };
1642
+ const SPEC_MOODS = {
1643
+ "calm": "Calm",
1644
+ "warm": "Warm",
1645
+ "natural": "Natural",
1646
+ "elegant": "Elegant",
1647
+ "luxurious": "Luxurious",
1648
+ "minimal": "Minimal",
1649
+ "professional": "Professional",
1650
+ "trustworthy": "Trustworthy",
1651
+ "friendly": "Friendly",
1652
+ "playful": "Playful",
1653
+ "bold": "Bold",
1654
+ "energetic": "Energetic",
1655
+ "dark": "Dark",
1656
+ "editorial": "Editorial",
1657
+ "technical": "Technical",
1658
+ "romantic": "Romantic",
1659
+ "crafted": "Hand-made"
1660
+ };
1661
+ const SPEC_STYLE_PRESETS = [
1662
+ {
1663
+ "id": "clear-care",
1664
+ "name": "Clear care",
1665
+ "flavorId": "crisp",
1666
+ "seed": "#0E7490",
1667
+ "tint": "subtle",
1668
+ "pairId": "manrope",
1669
+ "shape": "soft",
1670
+ "density": "regular",
1671
+ "motion": "standard",
1672
+ "pillButtons": false,
1673
+ "moves": {
1674
+ "scroll": "smooth",
1675
+ "animate": "standard",
1676
+ "between": "fade"
1677
+ },
1678
+ "modes": [
1679
+ "light"
1680
+ ],
1681
+ "moods": [
1682
+ "trustworthy",
1683
+ "calm",
1684
+ "professional"
1685
+ ],
1686
+ "uupm": [
1687
+ "Accessible & Ethical",
1688
+ "Minimalism & Swiss Style"
1689
+ ],
1690
+ "blurb": "Clean, light and easy to read. Says \"you are in good hands\".",
1691
+ "slice": true
1692
+ },
1693
+ {
1694
+ "id": "swiss-grid",
1695
+ "name": "Swiss grid",
1696
+ "flavorId": "crisp",
1697
+ "seed": "#111827",
1698
+ "tint": "neutral",
1699
+ "pairId": "inter-tight",
1700
+ "shape": "sharp",
1701
+ "density": "compact",
1702
+ "motion": "snappy",
1703
+ "pillButtons": false,
1704
+ "moves": {
1705
+ "scroll": "normal",
1706
+ "animate": "standard",
1707
+ "between": "none"
1708
+ },
1709
+ "modes": [
1710
+ "light",
1711
+ "dark"
1712
+ ],
1713
+ "moods": [
1714
+ "minimal",
1715
+ "professional",
1716
+ "technical"
1717
+ ],
1718
+ "uupm": [
1719
+ "Minimalism & Swiss Style",
1720
+ "Swiss Modernism 2.0"
1721
+ ],
1722
+ "blurb": "Black on white, a strict grid, nothing extra.",
1723
+ "slice": true
1724
+ },
1725
+ {
1726
+ "id": "trusted-advisor",
1727
+ "name": "Trusted advisor",
1728
+ "flavorId": "crisp",
1729
+ "seed": "#1E3A8A",
1730
+ "tint": "subtle",
1731
+ "pairId": "plex",
1732
+ "shape": "subtle",
1733
+ "density": "regular",
1734
+ "motion": "standard",
1735
+ "pillButtons": false,
1736
+ "moves": {
1737
+ "scroll": "normal",
1738
+ "animate": "standard",
1739
+ "between": "fade"
1740
+ },
1741
+ "modes": [
1742
+ "light"
1743
+ ],
1744
+ "moods": [
1745
+ "trustworthy",
1746
+ "professional"
1747
+ ],
1748
+ "uupm": [
1749
+ "Accessible & Ethical",
1750
+ "Trust & Authority (landing)"
1751
+ ],
1752
+ "blurb": "Navy, plain type, firm edges. Serious without being cold.",
1753
+ "slice": true
1754
+ },
1755
+ {
1756
+ "id": "fresh-practice",
1757
+ "name": "Fresh practice",
1758
+ "flavorId": "crisp",
1759
+ "seed": "#0284C7",
1760
+ "tint": "rich",
1761
+ "pairId": "inter-tight",
1762
+ "shape": "round",
1763
+ "density": "airy",
1764
+ "motion": "calm",
1765
+ "pillButtons": true,
1766
+ "moves": {
1767
+ "scroll": "smooth",
1768
+ "animate": "subtle",
1769
+ "between": "fade"
1770
+ },
1771
+ "modes": [
1772
+ "light"
1773
+ ],
1774
+ "moods": [
1775
+ "friendly",
1776
+ "calm",
1777
+ "trustworthy"
1778
+ ],
1779
+ "uupm": [
1780
+ "Soft UI Evolution",
1781
+ "Accessible & Ethical"
1782
+ ],
1783
+ "blurb": "Bright, soft and reassuring, with rounded buttons.",
1784
+ "slice": false
1785
+ },
1786
+ {
1787
+ "id": "gallery-minimal",
1788
+ "name": "Gallery minimal",
1789
+ "flavorId": "linen",
1790
+ "seed": "#3F4A5A",
1791
+ "tint": "neutral",
1792
+ "pairId": "instrument",
1793
+ "shape": "sharp",
1794
+ "density": "airy",
1795
+ "motion": "calm",
1796
+ "pillButtons": false,
1797
+ "moves": {
1798
+ "scroll": "extra",
1799
+ "animate": "subtle",
1800
+ "between": "fade"
1801
+ },
1802
+ "modes": [
1803
+ "light",
1804
+ "dark"
1805
+ ],
1806
+ "moods": [
1807
+ "minimal",
1808
+ "elegant",
1809
+ "editorial"
1810
+ ],
1811
+ "uupm": [
1812
+ "Exaggerated Minimalism",
1813
+ "Editorial Grid / Magazine"
1814
+ ],
1815
+ "blurb": "White walls and a quiet serif. The work does the talking.",
1816
+ "slice": true
1817
+ },
1818
+ {
1819
+ "id": "warm-editorial",
1820
+ "name": "Warm editorial",
1821
+ "flavorId": "linen",
1822
+ "seed": "#9A4F2B",
1823
+ "tint": "subtle",
1824
+ "pairId": "fraunces",
1825
+ "shape": "sharp",
1826
+ "density": "airy",
1827
+ "motion": "calm",
1828
+ "pillButtons": false,
1829
+ "moves": {
1830
+ "scroll": "smooth",
1831
+ "animate": "subtle",
1832
+ "between": "fade"
1833
+ },
1834
+ "modes": [
1835
+ "light"
1836
+ ],
1837
+ "moods": [
1838
+ "warm",
1839
+ "editorial",
1840
+ "crafted"
1841
+ ],
1842
+ "uupm": [
1843
+ "Editorial Grid / Magazine",
1844
+ "Nature Distilled"
1845
+ ],
1846
+ "blurb": "Cream paper, terracotta and a soft serif, like a good magazine.",
1847
+ "slice": true
1848
+ },
1849
+ {
1850
+ "id": "soft-spa",
1851
+ "name": "Soft spa",
1852
+ "flavorId": "linen",
1853
+ "seed": "#7D4E5E",
1854
+ "tint": "rich",
1855
+ "pairId": "cormorant",
1856
+ "shape": "soft",
1857
+ "density": "airy",
1858
+ "motion": "calm",
1859
+ "pillButtons": false,
1860
+ "moves": {
1861
+ "scroll": "extra",
1862
+ "animate": "subtle",
1863
+ "between": "fade"
1864
+ },
1865
+ "modes": [
1866
+ "light"
1867
+ ],
1868
+ "moods": [
1869
+ "calm",
1870
+ "elegant",
1871
+ "natural"
1872
+ ],
1873
+ "uupm": [
1874
+ "Soft UI Evolution",
1875
+ "Nature Distilled"
1876
+ ],
1877
+ "blurb": "Rose-tinted cream, a fine serif and slow, gentle motion.",
1878
+ "slice": true
1879
+ },
1880
+ {
1881
+ "id": "quiet-luxury",
1882
+ "name": "Quiet luxury",
1883
+ "flavorId": "linen",
1884
+ "seed": "#7A5B36",
1885
+ "tint": "subtle",
1886
+ "pairId": "cormorant",
1887
+ "shape": "sharp",
1888
+ "density": "airy",
1889
+ "motion": "calm",
1890
+ "pillButtons": false,
1891
+ "moves": {
1892
+ "scroll": "extra",
1893
+ "animate": "subtle",
1894
+ "between": "cinematic"
1895
+ },
1896
+ "modes": [
1897
+ "light",
1898
+ "dark"
1899
+ ],
1900
+ "moods": [
1901
+ "luxurious",
1902
+ "elegant",
1903
+ "calm"
1904
+ ],
1905
+ "uupm": [
1906
+ "Exaggerated Minimalism",
1907
+ "Liquid Glass (luxury rows, without the glass)"
1908
+ ],
1909
+ "blurb": "Bronze on warm white. Expensive, never loud.",
1910
+ "slice": false
1911
+ },
1912
+ {
1913
+ "id": "after-dark",
1914
+ "name": "After dark",
1915
+ "flavorId": "midnight",
1916
+ "seed": "#DB2777",
1917
+ "tint": "subtle",
1918
+ "pairId": "grotesk",
1919
+ "shape": "soft",
1920
+ "density": "regular",
1921
+ "motion": "lively",
1922
+ "pillButtons": false,
1923
+ "moves": {
1924
+ "scroll": "smooth",
1925
+ "animate": "lively",
1926
+ "between": "slide"
1927
+ },
1928
+ "modes": [
1929
+ "dark"
1930
+ ],
1931
+ "moods": [
1932
+ "bold",
1933
+ "energetic",
1934
+ "dark"
1935
+ ],
1936
+ "uupm": [
1937
+ "Dark Mode (OLED)",
1938
+ "Vibrant & Block-based"
1939
+ ],
1940
+ "blurb": "A night out: dark rooms, one bright colour, lively motion.",
1941
+ "slice": false
1942
+ },
1943
+ {
1944
+ "id": "ink-studio",
1945
+ "name": "Ink studio",
1946
+ "flavorId": "midnight",
1947
+ "seed": "#EA580C",
1948
+ "tint": "neutral",
1949
+ "pairId": "inter-tight",
1950
+ "shape": "sharp",
1951
+ "density": "compact",
1952
+ "motion": "snappy",
1953
+ "pillButtons": false,
1954
+ "moves": {
1955
+ "scroll": "normal",
1956
+ "animate": "standard",
1957
+ "between": "slide"
1958
+ },
1959
+ "modes": [
1960
+ "dark"
1961
+ ],
1962
+ "moods": [
1963
+ "bold",
1964
+ "dark",
1965
+ "crafted"
1966
+ ],
1967
+ "uupm": [
1968
+ "Dark Mode (OLED)",
1969
+ "Brutalism"
1970
+ ],
1971
+ "blurb": "Black, sharp and orange. A shop with attitude.",
1972
+ "slice": false
1973
+ },
1974
+ {
1975
+ "id": "night-gallery",
1976
+ "name": "Night gallery",
1977
+ "flavorId": "midnight",
1978
+ "seed": "#8B9BB4",
1979
+ "tint": "neutral",
1980
+ "pairId": "geist",
1981
+ "shape": "sharp",
1982
+ "density": "airy",
1983
+ "motion": "calm",
1984
+ "pillButtons": false,
1985
+ "moves": {
1986
+ "scroll": "extra",
1987
+ "animate": "subtle",
1988
+ "between": "cinematic"
1989
+ },
1990
+ "modes": [
1991
+ "dark",
1992
+ "light"
1993
+ ],
1994
+ "moods": [
1995
+ "minimal",
1996
+ "dark",
1997
+ "editorial"
1998
+ ],
1999
+ "uupm": [
2000
+ "Dark Mode (OLED)",
2001
+ "Minimalism & Swiss Style"
2002
+ ],
2003
+ "blurb": "Pictures on black, like a darkened gallery.",
2004
+ "slice": true
2005
+ },
2006
+ {
2007
+ "id": "tech-studio",
2008
+ "name": "Tech studio",
2009
+ "flavorId": "midnight",
2010
+ "seed": "#059669",
2011
+ "tint": "subtle",
2012
+ "pairId": "geist",
2013
+ "shape": "soft",
2014
+ "density": "regular",
2015
+ "motion": "standard",
2016
+ "pillButtons": false,
2017
+ "moves": {
2018
+ "scroll": "normal",
2019
+ "animate": "standard",
2020
+ "between": "fade"
2021
+ },
2022
+ "modes": [
2023
+ "dark",
2024
+ "light"
2025
+ ],
2026
+ "moods": [
2027
+ "technical",
2028
+ "bold",
2029
+ "professional"
2030
+ ],
2031
+ "uupm": [
2032
+ "Dark Mode (OLED)",
2033
+ "Minimalism & Swiss Style"
2034
+ ],
2035
+ "blurb": "Dark, precise and modern, for people who build things.",
2036
+ "slice": false
2037
+ },
2038
+ {
2039
+ "id": "morning-glass",
2040
+ "name": "Morning glass",
2041
+ "flavorId": "glass",
2042
+ "seed": "#0E8A89",
2043
+ "tint": "subtle",
2044
+ "pairId": "figtree",
2045
+ "shape": "round",
2046
+ "density": "regular",
2047
+ "motion": "calm",
2048
+ "pillButtons": true,
2049
+ "moves": {
2050
+ "scroll": "smooth",
2051
+ "animate": "subtle",
2052
+ "between": "fade"
2053
+ },
2054
+ "modes": [
2055
+ "light"
2056
+ ],
2057
+ "moods": [
2058
+ "calm",
2059
+ "friendly",
2060
+ "natural"
2061
+ ],
2062
+ "uupm": [
2063
+ "Glassmorphism",
2064
+ "Soft UI Evolution"
2065
+ ],
2066
+ "blurb": "Frosted panels over a soft teal light. Fresh and calm.",
2067
+ "slice": true
2068
+ },
2069
+ {
2070
+ "id": "holiday-light",
2071
+ "name": "Holiday light",
2072
+ "flavorId": "glass",
2073
+ "seed": "#0A66E8",
2074
+ "tint": "rich",
2075
+ "pairId": "jakarta",
2076
+ "shape": "round",
2077
+ "density": "regular",
2078
+ "motion": "lively",
2079
+ "pillButtons": true,
2080
+ "moves": {
2081
+ "scroll": "smooth",
2082
+ "animate": "lively",
2083
+ "between": "slide"
2084
+ },
2085
+ "modes": [
2086
+ "light"
2087
+ ],
2088
+ "moods": [
2089
+ "friendly",
2090
+ "energetic"
2091
+ ],
2092
+ "uupm": [
2093
+ "Liquid Glass",
2094
+ "Glassmorphism"
2095
+ ],
2096
+ "blurb": "Sea-blue glass and big photos. Makes people want to go.",
2097
+ "slice": false
2098
+ },
2099
+ {
2100
+ "id": "frosted-portfolio",
2101
+ "name": "Frosted portfolio",
2102
+ "flavorId": "glass",
2103
+ "seed": "#1F2937",
2104
+ "tint": "neutral",
2105
+ "pairId": "manrope",
2106
+ "shape": "round",
2107
+ "density": "airy",
2108
+ "motion": "calm",
2109
+ "pillButtons": true,
2110
+ "moves": {
2111
+ "scroll": "extra",
2112
+ "animate": "subtle",
2113
+ "between": "cinematic"
2114
+ },
2115
+ "modes": [
2116
+ "light",
2117
+ "dark"
2118
+ ],
2119
+ "moods": [
2120
+ "minimal",
2121
+ "elegant"
2122
+ ],
2123
+ "uupm": [
2124
+ "Glassmorphism",
2125
+ "Spatial UI (VisionOS)"
2126
+ ],
2127
+ "blurb": "Grey glass and lots of space around your pictures.",
2128
+ "slice": true
2129
+ },
2130
+ {
2131
+ "id": "coral-studio",
2132
+ "name": "Coral studio",
2133
+ "flavorId": "glass",
2134
+ "seed": "#E5484D",
2135
+ "tint": "subtle",
2136
+ "pairId": "figtree",
2137
+ "shape": "round",
2138
+ "density": "regular",
2139
+ "motion": "lively",
2140
+ "pillButtons": true,
2141
+ "moves": {
2142
+ "scroll": "smooth",
2143
+ "animate": "lively",
2144
+ "between": "slide"
2145
+ },
2146
+ "modes": [
2147
+ "light"
2148
+ ],
2149
+ "moods": [
2150
+ "energetic",
2151
+ "friendly"
2152
+ ],
2153
+ "uupm": [
2154
+ "Glassmorphism",
2155
+ "Vibrant & Block-based"
2156
+ ],
2157
+ "blurb": "Warm coral and bouncy buttons. Full of energy.",
2158
+ "slice": false
2159
+ },
2160
+ {
2161
+ "id": "corner-cafe",
2162
+ "name": "Corner café",
2163
+ "flavorId": "bloom",
2164
+ "seed": "#9C4146",
2165
+ "tint": "subtle",
2166
+ "pairId": "bricolage",
2167
+ "shape": "bubbly",
2168
+ "density": "regular",
2169
+ "motion": "lively",
2170
+ "pillButtons": true,
2171
+ "moves": {
2172
+ "scroll": "smooth",
2173
+ "animate": "lively",
2174
+ "between": "slide"
2175
+ },
2176
+ "modes": [
2177
+ "light"
2178
+ ],
2179
+ "moods": [
2180
+ "warm",
2181
+ "friendly",
2182
+ "playful"
2183
+ ],
2184
+ "uupm": [
2185
+ "Vibrant & Block-based",
2186
+ "Soft UI Evolution"
2187
+ ],
2188
+ "blurb": "Berry red, round shapes, a cheerful headline face.",
2189
+ "slice": true
2190
+ },
2191
+ {
2192
+ "id": "kind-community",
2193
+ "name": "Kind community",
2194
+ "flavorId": "bloom",
2195
+ "seed": "#3B6939",
2196
+ "tint": "subtle",
2197
+ "pairId": "nunito",
2198
+ "shape": "bubbly",
2199
+ "density": "regular",
2200
+ "motion": "standard",
2201
+ "pillButtons": true,
2202
+ "moves": {
2203
+ "scroll": "normal",
2204
+ "animate": "standard",
2205
+ "between": "fade"
2206
+ },
2207
+ "modes": [
2208
+ "light"
2209
+ ],
2210
+ "moods": [
2211
+ "friendly",
2212
+ "natural",
2213
+ "trustworthy"
2214
+ ],
2215
+ "uupm": [
2216
+ "Accessible & Ethical",
2217
+ "Organic Biophilic"
2218
+ ],
2219
+ "blurb": "Leaf green and soft, open shapes. Welcoming to everyone.",
2220
+ "slice": false
2221
+ },
2222
+ {
2223
+ "id": "little-ones",
2224
+ "name": "Little ones",
2225
+ "flavorId": "bloom",
2226
+ "seed": "#006A6A",
2227
+ "tint": "rich",
2228
+ "pairId": "sans-flex",
2229
+ "shape": "bubbly",
2230
+ "density": "regular",
2231
+ "motion": "lively",
2232
+ "pillButtons": true,
2233
+ "moves": {
2234
+ "scroll": "normal",
2235
+ "animate": "lively",
2236
+ "between": "slide"
2237
+ },
2238
+ "modes": [
2239
+ "light"
2240
+ ],
2241
+ "moods": [
2242
+ "playful",
2243
+ "friendly"
2244
+ ],
2245
+ "uupm": [
2246
+ "Claymorphism",
2247
+ "Vibrant & Block-based"
2248
+ ],
2249
+ "blurb": "Teal, chunky and playful. Made for families.",
2250
+ "slice": false
2251
+ },
2252
+ {
2253
+ "id": "garden-party",
2254
+ "name": "Garden party",
2255
+ "flavorId": "bloom",
2256
+ "seed": "#7D5260",
2257
+ "tint": "subtle",
2258
+ "pairId": "bricolage",
2259
+ "shape": "bubbly",
2260
+ "density": "airy",
2261
+ "motion": "standard",
2262
+ "pillButtons": true,
2263
+ "moves": {
2264
+ "scroll": "smooth",
2265
+ "animate": "standard",
2266
+ "between": "fade"
2267
+ },
2268
+ "modes": [
2269
+ "light"
2270
+ ],
2271
+ "moods": [
2272
+ "romantic",
2273
+ "warm",
2274
+ "friendly"
2275
+ ],
2276
+ "uupm": [
2277
+ "Soft UI Evolution",
2278
+ "Organic Biophilic"
2279
+ ],
2280
+ "blurb": "Dusty rose and soft lavender light. A celebration.",
2281
+ "slice": true
2282
+ },
2283
+ {
2284
+ "id": "bold-maker",
2285
+ "name": "Bold maker",
2286
+ "flavorId": "pop",
2287
+ "seed": "#FF5C39",
2288
+ "tint": "subtle",
2289
+ "pairId": "grotesk",
2290
+ "shape": "subtle",
2291
+ "density": "compact",
2292
+ "motion": "snappy",
2293
+ "pillButtons": false,
2294
+ "moves": {
2295
+ "scroll": "normal",
2296
+ "animate": "lively",
2297
+ "between": "slide"
2298
+ },
2299
+ "modes": [
2300
+ "light"
2301
+ ],
2302
+ "moods": [
2303
+ "bold",
2304
+ "playful",
2305
+ "crafted"
2306
+ ],
2307
+ "uupm": [
2308
+ "Neubrutalism",
2309
+ "Vibrant & Block-based"
2310
+ ],
2311
+ "blurb": "Thick outlines and orange. Proud of what you make.",
2312
+ "slice": true
2313
+ },
2314
+ {
2315
+ "id": "festival",
2316
+ "name": "Festival",
2317
+ "flavorId": "pop",
2318
+ "seed": "#FF4FA3",
2319
+ "tint": "subtle",
2320
+ "pairId": "archivo",
2321
+ "shape": "subtle",
2322
+ "density": "compact",
2323
+ "motion": "snappy",
2324
+ "pillButtons": false,
2325
+ "moves": {
2326
+ "scroll": "normal",
2327
+ "animate": "lively",
2328
+ "between": "slide"
2329
+ },
2330
+ "modes": [
2331
+ "light",
2332
+ "dark"
2333
+ ],
2334
+ "moods": [
2335
+ "energetic",
2336
+ "bold",
2337
+ "playful"
2338
+ ],
2339
+ "uupm": [
2340
+ "Memphis Design",
2341
+ "Vibrant & Block-based"
2342
+ ],
2343
+ "blurb": "Pink, heavy type, poster energy.",
2344
+ "slice": false
2345
+ },
2346
+ {
2347
+ "id": "zine",
2348
+ "name": "Zine",
2349
+ "flavorId": "pop",
2350
+ "seed": "#3D5AFE",
2351
+ "tint": "neutral",
2352
+ "pairId": "syne",
2353
+ "shape": "sharp",
2354
+ "density": "regular",
2355
+ "motion": "snappy",
2356
+ "pillButtons": false,
2357
+ "moves": {
2358
+ "scroll": "normal",
2359
+ "animate": "standard",
2360
+ "between": "slide"
2361
+ },
2362
+ "modes": [
2363
+ "light"
2364
+ ],
2365
+ "moods": [
2366
+ "bold",
2367
+ "editorial",
2368
+ "playful"
2369
+ ],
2370
+ "uupm": [
2371
+ "Brutalism",
2372
+ "Anti-Polish / Raw Aesthetic"
2373
+ ],
2374
+ "blurb": "Electric blue and an odd, wide face. Made by hand, on purpose.",
2375
+ "slice": false
2376
+ },
2377
+ {
2378
+ "id": "fresh-market",
2379
+ "name": "Fresh market",
2380
+ "flavorId": "pop",
2381
+ "seed": "#00B86B",
2382
+ "tint": "subtle",
2383
+ "pairId": "grotesk",
2384
+ "shape": "subtle",
2385
+ "density": "regular",
2386
+ "motion": "snappy",
2387
+ "pillButtons": false,
2388
+ "moves": {
2389
+ "scroll": "normal",
2390
+ "animate": "standard",
2391
+ "between": "slide"
2392
+ },
2393
+ "modes": [
2394
+ "light"
2395
+ ],
2396
+ "moods": [
2397
+ "energetic",
2398
+ "friendly",
2399
+ "natural"
2400
+ ],
2401
+ "uupm": [
2402
+ "Vibrant & Block-based",
2403
+ "Flat Design"
2404
+ ],
2405
+ "blurb": "Green and bright, like a market stall in the morning.",
2406
+ "slice": false
2407
+ }
2408
+ ];
1440
2409
  const SPEC_FONTS = {
1441
2410
  "Inter": "Inter:wght@300;400;500;600;700",
1442
2411
  "Inter Tight": "Inter+Tight:wght@500;600;700",
@@ -14016,6 +14985,13 @@ const DESIGN_TOKEN_GROUPS = ['colour', 'type', 'shape', 'depth', 'space', 'motio
14016
14985
  const TINT_IDS = Object.keys(SPEC_AXES.tints);
14017
14986
  /** What a studio that stored its look BEFORE the tint existed wears: exactly the look's own palette. */
14018
14987
  const PRE_TINT_DEFAULT = 'neutral';
14988
+ const SCROLL_IDS = Object.keys(SPEC_AXES.scrolls);
14989
+ const ANIMATE_IDS = Object.keys(SPEC_AXES.animations);
14990
+ const BETWEEN_IDS = Object.keys(SPEC_AXES.betweens);
14991
+ /** What a look stored BEFORE rev 3.1 wears: exactly what every live site did (Smooth · Still · Cinematic). */
14992
+ const PRE_MOTION = SPEC_AXES.motionChoices.pre;
14993
+ /** What a visitor who asks for reduced motion always gets, whatever the look chose. */
14994
+ const REDUCED_DESIGN_MOTION = SPEC_AXES.motionChoices.reduced;
14019
14995
  /** The spec's flavors, typed. Assignment here is the compile-time proof that the generated
14020
14996
  * data fits `FlavorPackV2`. */
14021
14997
  const SPEC_FLAVORS = SPEC_FLAVOR_PACKS;
@@ -16503,6 +17479,7 @@ function defaultDesignChoices(pack) {
16503
17479
  seed: pack.seed,
16504
17480
  pairId: pack.pairs[0]?.id ?? '',
16505
17481
  ...pack.defaults,
17482
+ ...PRE_MOTION,
16506
17483
  };
16507
17484
  }
16508
17485
  /**
@@ -16830,6 +17807,9 @@ var DesignConfigKey;
16830
17807
  DesignConfigKey["Mode"] = "mode";
16831
17808
  DesignConfigKey["Tint"] = "tint";
16832
17809
  DesignConfigKey["Fonts"] = "fonts";
17810
+ DesignConfigKey["Scroll"] = "scroll";
17811
+ DesignConfigKey["Animate"] = "animate";
17812
+ DesignConfigKey["Between"] = "between";
16833
17813
  DesignConfigKey["Revert"] = "revert";
16834
17814
  })(DesignConfigKey || (DesignConfigKey = {}));
16835
17815
  const MODES = SPEC_AXES.modes;
@@ -16907,6 +17887,15 @@ function resolveDesignChoices(partial) {
16907
17887
  mode: (MODES.includes(asString(partial?.mode) ?? '') ? asString(partial?.mode) : pack.defaults.mode),
16908
17888
  tint: keyOf(SPEC_AXES.tints, asString(partial?.tint)) ?? pack.defaults.tint,
16909
17889
  ...(fonts ? { fonts } : {}),
17890
+ ...resolveDesignMotion(partial),
17891
+ };
17892
+ }
17893
+ /** The look's motion, completed: an absent or unknown choice reads `PRE_MOTION` — what the site already does. */
17894
+ function resolveDesignMotion(partial) {
17895
+ return {
17896
+ scroll: keyOf(SPEC_AXES.scrolls, asString(partial?.scroll)) ?? PRE_MOTION.scroll,
17897
+ animate: keyOf(SPEC_AXES.animations, asString(partial?.animate)) ?? PRE_MOTION.animate,
17898
+ between: keyOf(SPEC_AXES.betweens, asString(partial?.between)) ?? PRE_MOTION.between,
16910
17899
  };
16911
17900
  }
16912
17901
  /** The pack's own defaults for `flavorId` — what picking a card means before anything is tuned. */
@@ -16916,13 +17905,14 @@ function packDesignChoices(flavorId) {
16916
17905
  /**
16917
17906
  * What picking a pack card means, given the design the studio wears: the applied pack → the applied
16918
17907
  * choices; another pack → that pack's defaults, CARRYING the author's chosen fonts (§5b — a font the
16919
- * author chose survives a pack switch unless the author changes it). Both picker homes call this.
17908
+ * author chose survives a pack switch unless the author changes it) and the site's motion (rev 3.1 MO-D3 —
17909
+ * how it scrolls and changes page is not a pack's, so a Look pick never resets it). Both picker homes call this.
16920
17910
  */
16921
17911
  function choicesForPack(flavorId, applied) {
16922
17912
  const pack = flavorPackById(flavorId) ?? defaultPack();
16923
17913
  if (applied && resolveDesignChoices(applied).flavorId === pack.id)
16924
17914
  return resolveDesignChoices(applied);
16925
- return resolveDesignChoices({ flavorId: pack.id, fonts: applied?.fonts });
17915
+ return resolveDesignChoices({ flavorId: pack.id, fonts: applied?.fonts, ...resolveDesignMotion(applied) });
16926
17916
  }
16927
17917
  /**
16928
17918
  * A stored `settings.design` config → the resolved design. No row (or no config) → Crisp's defaults. A
@@ -16945,6 +17935,9 @@ function readDesignConfig(config, hasRow = !!config) {
16945
17935
  mode: map.get(DesignConfigKey.Mode),
16946
17936
  tint: (storedTint ?? undefined),
16947
17937
  fonts: map.get(DesignConfigKey.Fonts),
17938
+ scroll: map.get(DesignConfigKey.Scroll),
17939
+ animate: map.get(DesignConfigKey.Animate),
17940
+ between: map.get(DesignConfigKey.Between),
16948
17941
  });
16949
17942
  return {
16950
17943
  choices,
@@ -16959,6 +17952,10 @@ function readDesignConfig(config, hasRow = !!config) {
16959
17952
  function designModeOf(config) {
16960
17953
  return readDesignConfig(config).choices.mode;
16961
17954
  }
17955
+ /** The look's motion of a stored config — what the public page read hands the engine (`designMotion`). */
17956
+ function designMotionOf(config) {
17957
+ return resolveDesignMotion(readDesignConfig(config).choices);
17958
+ }
16962
17959
  /** Resolved choices (+ the revert snapshot) → the config array a settings row stores. */
16963
17960
  function designConfigEntries(choices, flavorVersion, revert) {
16964
17961
  const c = resolveDesignChoices(choices);
@@ -16973,6 +17970,9 @@ function designConfigEntries(choices, flavorVersion, revert) {
16973
17970
  { key: DesignConfigKey.PillButtons, value: String(c.pillButtons) },
16974
17971
  { key: DesignConfigKey.Mode, value: c.mode },
16975
17972
  { key: DesignConfigKey.Tint, value: c.tint },
17973
+ { key: DesignConfigKey.Scroll, value: c.scroll },
17974
+ { key: DesignConfigKey.Animate, value: c.animate },
17975
+ { key: DesignConfigKey.Between, value: c.between },
16976
17976
  ...(c.fonts ? [{ key: DesignConfigKey.Fonts, value: JSON.stringify(c.fonts) }] : []),
16977
17977
  ...(revert ? [{ key: DesignConfigKey.Revert, value: JSON.stringify(revert) }] : []),
16978
17978
  ];
@@ -16984,6 +17984,7 @@ function sameDesignChoices(a, b) {
16984
17984
  return x.flavorId === y.flavorId && x.seed.toLowerCase() === y.seed.toLowerCase() && x.pairId === y.pairId
16985
17985
  && x.shape === y.shape && x.density === y.density && x.motion === y.motion
16986
17986
  && x.pillButtons === y.pillButtons && x.mode === y.mode && x.tint === y.tint
17987
+ && x.scroll === y.scroll && x.animate === y.animate && x.between === y.between
16987
17988
  && JSON.stringify(x.fonts ?? {}) === JSON.stringify(y.fonts ?? {});
16988
17989
  }
16989
17990
 
@@ -17241,6 +18242,35 @@ function planFontFamilyRemoval(existing, previous, family) {
17241
18242
  return { roles, choices, plan, fallbacks };
17242
18243
  }
17243
18244
 
18245
+ const MOOD_IDS = Object.keys(SPEC_MOODS);
18246
+ const MOOD_LABELS = SPEC_MOODS;
18247
+ /** The 24, catalogue order (four per flavor). Assignment here proves the generated data fits the type. */
18248
+ const STYLE_PRESETS = SPEC_STYLE_PRESETS;
18249
+ function stylePresetById(id) {
18250
+ return id ? STYLE_PRESETS.find(p => p.id === id) : undefined;
18251
+ }
18252
+ const FOLLOW_VISITOR = 'auto';
18253
+ /** The modes Design offers for a preset: the audited ones, then "Follow visitor" when it passed both (H-D3). */
18254
+ function presetModes(preset) {
18255
+ return preset.modes.length > 1 ? [...preset.modes, FOLLOW_VISITOR] : [...preset.modes];
18256
+ }
18257
+ /**
18258
+ * What picking a preset means — the complete `DesignChoices`, its motion included — in `mode` (default:
18259
+ * its first). A mode it was not audited in is REFUSED (null): a light-only preset is never worn dark.
18260
+ */
18261
+ function presetChoices(id, mode) {
18262
+ const preset = stylePresetById(id);
18263
+ if (!preset)
18264
+ return null;
18265
+ const wear = mode ?? preset.modes[0];
18266
+ if (!presetModes(preset).includes(wear))
18267
+ return null;
18268
+ return resolveDesignChoices({
18269
+ flavorId: preset.flavorId, seed: preset.seed, pairId: preset.pairId, shape: preset.shape, density: preset.density,
18270
+ motion: preset.motion, pillButtons: preset.pillButtons, mode: wear, tint: preset.tint, ...preset.moves,
18271
+ });
18272
+ }
18273
+
17244
18274
  /**
17245
18275
  * @vectoriox/iox-ui/design-core — the shared, FRAMEWORK-FREE core of the design system
17246
18276
  * (design-system plan §3e): the token vocabulary, the flavor contract (generated 1:1 from
@@ -17256,5 +18286,5 @@ function planFontFamilyRemoval(existing, previous, family) {
17256
18286
  * Generated bundle index. Do not edit.
17257
18287
  */
17258
18288
 
17259
- export { ACCENT_TOKEN_NAMES, AdoptOutcome, AdoptSkipReason, BAR_RESERVE_BREAKPOINTS, BAR_RESERVE_CLASS, BOTTOM_BAR_STYLE, BUTTON_VARIANT_TO_STYLE, CANVAS_LINK_ATTRIBUTE, CARD_LINK_CLASS, COLOR_SCHEMES, COLOR_SCHEME_TRAIT, COLOR_SCHEME_TYPES, ColorScheme, ColourCheckId, DEFAULT_FLAVOR_ID, DESIGN_TOKEN_GROUPS, DESIGN_TOKEN_TIERS, DESIGN_TOKEN_TYPES, DesignConfigKey, ELEMENT_STYLES, ELEMENT_STYLE_MARKER_CLASS, ELEMENT_STYLE_STATES, EMPTY_IMAGE_ATTRIBUTE, EMPTY_IMAGE_SRC, ElementStyleState, FLAVOR_SPEC_VERSION, FONT_CATALOG, FONT_FAMILY_TOKENS, FONT_FILE_ACCEPT, FONT_FILE_EXTENSIONS, FONT_FILE_FORMATS, FONT_STYLES, FONT_WEIGHTS, FontUploadError, GOOGLE_FONTS_CSS_ORIGIN, GOOGLE_FONTS_FILE_ORIGIN, HELD_CONTRAST, INHERITED_TEXT, LinkType, MAX_FONT_FILE_BYTES, NEW_NODE_STYLE_DEFAULTS, OwnedTraitLink, PALETTE_PRESETS, PRE_DS2_FLAVOR_DEFAULTS, PRE_TINT_DEFAULT, REDUCED_MOTION_OVERRIDES, REDUCED_TRANSPARENCY_OVERRIDES, REVERT_WINDOW_MS, SCHEME_INK, SPEC_A11Y, SPEC_AXES, SPEC_BUTTON_VARIANT_TO_STYLE, SPEC_CONTRAST, SPEC_CONTRAST_AUDIT, SPEC_DEFAULT_ELEMENT_STYLE, SPEC_ELEMENT_STYLES, SPEC_FIELD_CLASS_BASELINE, SPEC_FLAVORS, SPEC_FLAVOR_PACKS, SPEC_FONTS, SPEC_FONT_ROLES, SPEC_INK_SCOPES, SPEC_LEGACY_ALIASES, SPEC_PALETTE_PRESETS, SPEC_SCHEMES, SPEC_SCHEME_INK, SPEC_SPRINGS, SPEC_TIERS, SPEC_TIER_IDS, SPEC_TOKEN_TYPES, SUPERSEDED_STYLE_VALUES, SWISS_FLAVOR, TINT_FULL_CHROMA, TINT_IDS, TINT_LEVELS, TINT_OWN_HUE_CHROMA, TINT_TURN_CHROMA, USER_TOKEN_SOURCE, WCAG_AA_TEXT, WCAG_AA_UI, adoptElementStyles, adoptionStyleFor, apcaLc, applyElementStyle, applyHeadingLevelRule, atLightness, atLightnessMaxChroma, auditDesignContrast, barReserveClass, buildFlavorTokens, buildFontFaceCss, buttonBlockHref, catalogFontId, checkFontWeight, choicesForPack, colorSchemeClass, colorSchemeOf, colourTabChecks, compareFontWeights, compileSchemeCss, compileTokenCss, compileTokenCssBlocks, compositeOver, cssString, defaultDesignChoices, defaultElementStyleFor, deriveAccentTokens, deriveBrandTokens, designApplySnapshot, designBaseline, designConfigEntries, designModeOf, designRevertConfig, designTokenRepairs, designTokenRows, elementStyleById, elementStyleClass, elementStylesFor, emptyImageLabelSrc, emptyImagePlaceholder, emptyImageSrc, ensureAlpha, ensureContrast, flavorColours, flavorPackById, flavorSeedWrites, flavorSourceStamp, fontFamilyKey, fontFileName, fontFileStem, fontFormatOf, fontPreloads, fontRoleReferences, fontStackWithout, fontWeightCovers, fontWeightRange, fontWeightValue, fontsForTokens, formatFontFamilies, formatFontFamily, formatFontWeight, googleFontHref, groupFontFamilies, hasElementStyleMarker, headingHref, inSrgbGamut, isDesignTokenGroup, isDesignTokenTier, isDesignTokenType, isFontWeightRange, isRetiredFlavorId, legacyDesignTokenRows, legacyFlavorTokens, legacyRuleTokenReferences, matchFontWeight, missingDesignRows, missingFontRoles, nodeDesignClasses, normalizeFontStyle, normalizeFontWeight, normalizeFontWeightValue, oklabToRgb, ownedTraitStatus, ownedTraitsOf, packDesignChoices, paintColours, parseCssColour, parseFontFamilies, parseFontWeight, parseHexColor, planDesignApply, planDesignRevert, planFlavorRevert, planFlavorSeed, planFontFamilyRemoval, planSwissMigration, preTintAccentGrounds, previewElementStyleAdoption, previewFontWeight, quantizeRgb, readDesignConfig, readOwnedTrait, relativeLuminance, releaseElementStyle, resolveDesignChoices, resolveSchemeTokenValues, resolveTokenReferences, resolveTokenValues, revertAvailable, rgbToOklab, ringColour, roleClass, sameDesignChoices, setColorScheme, specTokenNames, splitTopLevel, springToLinear, stackNamesFamily, styleKeyToKebab, switchElementStyle, syncNodeDesignClasses, toHexColor, tokenReferences, tokensToDarkVarMap, tokensToVarMap, unknownTokenReferences, untouchedSeedRow, userFontStack, validateFlavorPack, wcagContrastRatio, withSchemeInk, writeOwnedTrait };
18289
+ export { ACCENT_TOKEN_NAMES, ANIMATE_IDS, AdoptOutcome, AdoptSkipReason, BAR_RESERVE_BREAKPOINTS, BAR_RESERVE_CLASS, BETWEEN_IDS, BOTTOM_BAR_STYLE, BUTTON_VARIANT_TO_STYLE, CANVAS_LINK_ATTRIBUTE, CARD_LINK_CLASS, COLOR_SCHEMES, COLOR_SCHEME_TRAIT, COLOR_SCHEME_TYPES, ColorScheme, ColourCheckId, DEFAULT_FLAVOR_ID, DESIGN_TOKEN_GROUPS, DESIGN_TOKEN_TIERS, DESIGN_TOKEN_TYPES, DesignConfigKey, ELEMENT_STYLES, ELEMENT_STYLE_MARKER_CLASS, ELEMENT_STYLE_STATES, EMPTY_IMAGE_ATTRIBUTE, EMPTY_IMAGE_SRC, ElementStyleState, FLAVOR_SPEC_VERSION, FONT_CATALOG, FONT_FAMILY_TOKENS, FONT_FILE_ACCEPT, FONT_FILE_EXTENSIONS, FONT_FILE_FORMATS, FONT_STYLES, FONT_WEIGHTS, FontUploadError, GOOGLE_FONTS_CSS_ORIGIN, GOOGLE_FONTS_FILE_ORIGIN, HELD_CONTRAST, INHERITED_TEXT, LinkType, MAX_FONT_FILE_BYTES, MOOD_IDS, MOOD_LABELS, NEW_NODE_STYLE_DEFAULTS, OwnedTraitLink, PALETTE_PRESETS, PRE_DS2_FLAVOR_DEFAULTS, PRE_MOTION, PRE_TINT_DEFAULT, REDUCED_DESIGN_MOTION, REDUCED_MOTION_OVERRIDES, REDUCED_TRANSPARENCY_OVERRIDES, REVERT_WINDOW_MS, SCHEME_INK, SCROLL_IDS, SPEC_A11Y, SPEC_AXES, SPEC_BUTTON_VARIANT_TO_STYLE, SPEC_CONTRAST, SPEC_CONTRAST_AUDIT, SPEC_DEFAULT_ELEMENT_STYLE, SPEC_ELEMENT_STYLES, SPEC_FIELD_CLASS_BASELINE, SPEC_FLAVORS, SPEC_FLAVOR_PACKS, SPEC_FONTS, SPEC_FONT_ROLES, SPEC_INK_SCOPES, SPEC_LEGACY_ALIASES, SPEC_MOODS, SPEC_PALETTE_PRESETS, SPEC_SCHEMES, SPEC_SCHEME_INK, SPEC_SPRINGS, SPEC_STYLE_PRESETS, SPEC_TIERS, SPEC_TIER_IDS, SPEC_TOKEN_TYPES, STYLE_PRESETS, SUPERSEDED_STYLE_VALUES, SWISS_FLAVOR, TINT_FULL_CHROMA, TINT_IDS, TINT_LEVELS, TINT_OWN_HUE_CHROMA, TINT_TURN_CHROMA, USER_TOKEN_SOURCE, WCAG_AA_TEXT, WCAG_AA_UI, adoptElementStyles, adoptionStyleFor, apcaLc, applyElementStyle, applyHeadingLevelRule, atLightness, atLightnessMaxChroma, auditDesignContrast, barReserveClass, buildFlavorTokens, buildFontFaceCss, buttonBlockHref, catalogFontId, checkFontWeight, choicesForPack, colorSchemeClass, colorSchemeOf, colourTabChecks, compareFontWeights, compileSchemeCss, compileTokenCss, compileTokenCssBlocks, compositeOver, cssString, defaultDesignChoices, defaultElementStyleFor, deriveAccentTokens, deriveBrandTokens, designApplySnapshot, designBaseline, designConfigEntries, designModeOf, designMotionOf, designRevertConfig, designTokenRepairs, designTokenRows, elementStyleById, elementStyleClass, elementStylesFor, emptyImageLabelSrc, emptyImagePlaceholder, emptyImageSrc, ensureAlpha, ensureContrast, flavorColours, flavorPackById, flavorSeedWrites, flavorSourceStamp, fontFamilyKey, fontFileName, fontFileStem, fontFormatOf, fontPreloads, fontRoleReferences, fontStackWithout, fontWeightCovers, fontWeightRange, fontWeightValue, fontsForTokens, formatFontFamilies, formatFontFamily, formatFontWeight, googleFontHref, groupFontFamilies, hasElementStyleMarker, headingHref, inSrgbGamut, isDesignTokenGroup, isDesignTokenTier, isDesignTokenType, isFontWeightRange, isRetiredFlavorId, legacyDesignTokenRows, legacyFlavorTokens, legacyRuleTokenReferences, matchFontWeight, missingDesignRows, missingFontRoles, nodeDesignClasses, normalizeFontStyle, normalizeFontWeight, normalizeFontWeightValue, oklabToRgb, ownedTraitStatus, ownedTraitsOf, packDesignChoices, paintColours, parseCssColour, parseFontFamilies, parseFontWeight, parseHexColor, planDesignApply, planDesignRevert, planFlavorRevert, planFlavorSeed, planFontFamilyRemoval, planSwissMigration, preTintAccentGrounds, presetChoices, presetModes, previewElementStyleAdoption, previewFontWeight, quantizeRgb, readDesignConfig, readOwnedTrait, relativeLuminance, releaseElementStyle, resolveDesignChoices, resolveDesignMotion, resolveSchemeTokenValues, resolveTokenReferences, resolveTokenValues, revertAvailable, rgbToOklab, ringColour, roleClass, sameDesignChoices, setColorScheme, specTokenNames, splitTopLevel, springToLinear, stackNamesFamily, styleKeyToKebab, stylePresetById, switchElementStyle, syncNodeDesignClasses, toHexColor, tokenReferences, tokensToDarkVarMap, tokensToVarMap, unknownTokenReferences, untouchedSeedRow, userFontStack, validateFlavorPack, wcagContrastRatio, withSchemeInk, writeOwnedTrait };
17260
18290
  //# sourceMappingURL=vectoriox-iox-ui-design-core.mjs.map