@hanzo/ui 8.27.46 → 8.27.48

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 (93) hide show
  1. package/dist/backends/gui/control.cjs +18 -1
  2. package/dist/backends/gui/control.d.ts +33 -0
  3. package/dist/backends/gui/control.d.ts.map +1 -1
  4. package/dist/backends/gui/control.js +17 -0
  5. package/dist/backends/gui/control.js.map +1 -1
  6. package/dist/backends/gui/index.cjs +7 -6
  7. package/dist/backends/gui/index.d.ts +2 -1
  8. package/dist/backends/gui/index.d.ts.map +1 -1
  9. package/dist/backends/gui/index.js +1 -1
  10. package/dist/backends/gui/index.js.map +1 -1
  11. package/dist/backends/gui/input.cjs +10 -9
  12. package/dist/backends/gui/input.d.ts +6 -1
  13. package/dist/backends/gui/input.d.ts.map +1 -1
  14. package/dist/backends/gui/input.js +11 -10
  15. package/dist/backends/gui/input.js.map +1 -1
  16. package/dist/backends/gui/select.cjs +24 -1
  17. package/dist/backends/gui/select.d.ts +25 -2
  18. package/dist/backends/gui/select.d.ts.map +1 -1
  19. package/dist/backends/gui/select.js +26 -4
  20. package/dist/backends/gui/select.js.map +1 -1
  21. package/dist/backends/gui/textarea.cjs +5 -4
  22. package/dist/backends/gui/textarea.d.ts +7 -1
  23. package/dist/backends/gui/textarea.d.ts.map +1 -1
  24. package/dist/backends/gui/textarea.js +6 -5
  25. package/dist/backends/gui/textarea.js.map +1 -1
  26. package/dist/gallery.html +107 -7
  27. package/dist/index.cjs +8 -7
  28. package/dist/index.d.ts +2 -2
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/index.node.cjs +8 -7
  33. package/dist/index.node.js +1 -1
  34. package/dist/marketing/Cta.cjs +9 -3
  35. package/dist/marketing/Cta.d.ts +7 -5
  36. package/dist/marketing/Cta.d.ts.map +1 -1
  37. package/dist/marketing/Cta.js +10 -4
  38. package/dist/marketing/Cta.js.map +1 -1
  39. package/dist/marketing/controls.cjs +112 -0
  40. package/dist/marketing/controls.d.ts +42 -0
  41. package/dist/marketing/controls.d.ts.map +1 -0
  42. package/dist/marketing/controls.js +108 -0
  43. package/dist/marketing/controls.js.map +1 -0
  44. package/dist/marketing/document.cjs +7 -0
  45. package/dist/marketing/document.d.ts +22 -0
  46. package/dist/marketing/document.d.ts.map +1 -0
  47. package/dist/marketing/document.js +5 -0
  48. package/dist/marketing/document.js.map +1 -0
  49. package/dist/marketing/host.cjs +39 -0
  50. package/dist/marketing/host.d.ts +21 -0
  51. package/dist/marketing/host.d.ts.map +1 -0
  52. package/dist/marketing/host.js +35 -0
  53. package/dist/marketing/host.js.map +1 -0
  54. package/dist/marketing/index.cjs +24 -1
  55. package/dist/marketing/index.d.ts +8 -2
  56. package/dist/marketing/index.d.ts.map +1 -1
  57. package/dist/marketing/index.js +7 -1
  58. package/dist/marketing/index.js.map +1 -1
  59. package/dist/marketing/loose.cjs +2 -0
  60. package/dist/marketing/loose.d.ts +41 -0
  61. package/dist/marketing/loose.d.ts.map +1 -0
  62. package/dist/marketing/loose.js +2 -0
  63. package/dist/marketing/loose.js.map +1 -0
  64. package/dist/marketing/pager.cjs +22 -0
  65. package/dist/marketing/pager.d.ts +22 -0
  66. package/dist/marketing/pager.d.ts.map +1 -0
  67. package/dist/marketing/pager.js +20 -0
  68. package/dist/marketing/pager.js.map +1 -0
  69. package/dist/marketing/pair.cjs +21 -0
  70. package/dist/marketing/pair.d.ts +22 -0
  71. package/dist/marketing/pair.d.ts.map +1 -0
  72. package/dist/marketing/pair.js +19 -0
  73. package/dist/marketing/pair.js.map +1 -0
  74. package/dist/marketing/run.cjs +28 -0
  75. package/dist/marketing/run.d.ts +33 -0
  76. package/dist/marketing/run.d.ts.map +1 -0
  77. package/dist/marketing/run.js +26 -0
  78. package/dist/marketing/run.js.map +1 -0
  79. package/dist/marketing/surface.cjs +76 -0
  80. package/dist/marketing/surface.d.ts +59 -0
  81. package/dist/marketing/surface.d.ts.map +1 -0
  82. package/dist/marketing/surface.js +70 -0
  83. package/dist/marketing/surface.js.map +1 -0
  84. package/dist/marketing/type.cjs +29 -2
  85. package/dist/marketing/type.d.ts +43 -4
  86. package/dist/marketing/type.d.ts.map +1 -1
  87. package/dist/marketing/type.js +24 -1
  88. package/dist/marketing/type.js.map +1 -1
  89. package/dist/styles/document.css +93 -0
  90. package/dist/styles/motion.css +52 -2
  91. package/dist/styles.css +104 -4
  92. package/dist/theme.css +52 -2
  93. package/package.json +3 -2
@@ -11,13 +11,15 @@
11
11
  itself. Every animation is off under `prefers-reduced-motion: reduce`.
12
12
 
13
13
  rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
14
+ `data-beat="n"` staggers it n x 70ms
14
15
  fade opacity eases 240ms SlideOver's scrim
15
16
  slide transform eases 260ms SlideOver's panel
16
17
  drag a row eases into place while one is held Reorder
17
18
  pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
18
19
  blink on/off, 1s Caret
19
20
  shimmer a highlight sweeps a placeholder product Skeleton
20
- unfold a sheet turns open about its hinge unfold() */
21
+ unfold a sheet turns open about its hinge unfold()
22
+ run a light sweeps a set, child by child Run */
21
23
 
22
24
  @keyframes rise {
23
25
  from {
@@ -35,6 +37,17 @@
35
37
  will-change: transform, opacity;
36
38
  }
37
39
 
40
+ /* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
41
+ that arrives together still reads in order. Reduced motion drops the
42
+ animation and the delay with it, so nothing waits hidden. */
43
+ [data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
44
+ [data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
45
+ [data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
46
+ [data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
47
+ [data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
48
+ [data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
49
+ [data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
50
+
38
51
  [data-motion='fade'] {
39
52
  transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
40
53
  will-change: opacity;
@@ -115,8 +128,45 @@
115
128
  --turn: 7deg;
116
129
  }
117
130
 
131
+ /* A run: a light crosses a set of things that are all true at once (`<Run>`).
132
+ Each direct child is lit `data-beat` steps of `--run-step` after the first;
133
+ the sweep owns `color` and returns it to `--run-rest`. */
134
+ @keyframes run {
135
+ 0%,
136
+ 26%,
137
+ 100% {
138
+ color: var(--run-rest, var(--neutral-400));
139
+ border-color: var(--neutral-800);
140
+ }
141
+ 8% {
142
+ color: var(--foreground);
143
+ border-color: var(--muted-foreground);
144
+ }
145
+ }
146
+
147
+ [data-motion='run'] > * {
148
+ animation: run 5.4s var(--ease-in-out) infinite;
149
+ }
150
+
151
+ [data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
152
+ [data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
153
+ [data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
154
+ [data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
155
+ [data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
156
+ [data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
157
+ [data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
158
+ [data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
159
+ [data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
160
+ [data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
161
+ [data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
162
+ [data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
163
+ [data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
164
+ [data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
165
+ [data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
166
+
118
167
  @media (prefers-reduced-motion: reduce) {
119
- [data-motion] {
168
+ [data-motion],
169
+ [data-motion='run'] > * {
120
170
  animation: none;
121
171
  transition: none;
122
172
  }
package/dist/styles.css CHANGED
@@ -1819,13 +1819,15 @@
1819
1819
  itself. Every animation is off under `prefers-reduced-motion: reduce`.
1820
1820
 
1821
1821
  rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
1822
+ `data-beat="n"` staggers it n x 70ms
1822
1823
  fade opacity eases 240ms SlideOver's scrim
1823
1824
  slide transform eases 260ms SlideOver's panel
1824
1825
  drag a row eases into place while one is held Reorder
1825
1826
  pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
1826
1827
  blink on/off, 1s Caret
1827
1828
  shimmer a highlight sweeps a placeholder product Skeleton
1828
- unfold a sheet turns open about its hinge unfold() */
1829
+ unfold a sheet turns open about its hinge unfold()
1830
+ run a light sweeps a set, child by child Run */
1829
1831
 
1830
1832
  @keyframes rise {
1831
1833
  from {
@@ -1843,6 +1845,17 @@
1843
1845
  will-change: transform, opacity;
1844
1846
  }
1845
1847
 
1848
+ /* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
1849
+ that arrives together still reads in order. Reduced motion drops the
1850
+ animation and the delay with it, so nothing waits hidden. */
1851
+ [data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
1852
+ [data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
1853
+ [data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
1854
+ [data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
1855
+ [data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
1856
+ [data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
1857
+ [data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
1858
+
1846
1859
  [data-motion='fade'] {
1847
1860
  transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
1848
1861
  will-change: opacity;
@@ -1923,8 +1936,45 @@
1923
1936
  --turn: 7deg;
1924
1937
  }
1925
1938
 
1939
+ /* A run: a light crosses a set of things that are all true at once (`<Run>`).
1940
+ Each direct child is lit `data-beat` steps of `--run-step` after the first;
1941
+ the sweep owns `color` and returns it to `--run-rest`. */
1942
+ @keyframes run {
1943
+ 0%,
1944
+ 26%,
1945
+ 100% {
1946
+ color: var(--run-rest, var(--neutral-400));
1947
+ border-color: var(--neutral-800);
1948
+ }
1949
+ 8% {
1950
+ color: var(--foreground);
1951
+ border-color: var(--muted-foreground);
1952
+ }
1953
+ }
1954
+
1955
+ [data-motion='run'] > * {
1956
+ animation: run 5.4s var(--ease-in-out) infinite;
1957
+ }
1958
+
1959
+ [data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
1960
+ [data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
1961
+ [data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
1962
+ [data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
1963
+ [data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
1964
+ [data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
1965
+ [data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
1966
+ [data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
1967
+ [data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
1968
+ [data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
1969
+ [data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
1970
+ [data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
1971
+ [data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
1972
+ [data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
1973
+ [data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
1974
+
1926
1975
  @media (prefers-reduced-motion: reduce) {
1927
- [data-motion] {
1976
+ [data-motion],
1977
+ [data-motion='run'] > * {
1928
1978
  animation: none;
1929
1979
  transition: none;
1930
1980
  }
@@ -2500,13 +2550,15 @@ a svg,
2500
2550
  itself. Every animation is off under `prefers-reduced-motion: reduce`.
2501
2551
 
2502
2552
  rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
2553
+ `data-beat="n"` staggers it n x 70ms
2503
2554
  fade opacity eases 240ms SlideOver's scrim
2504
2555
  slide transform eases 260ms SlideOver's panel
2505
2556
  drag a row eases into place while one is held Reorder
2506
2557
  pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
2507
2558
  blink on/off, 1s Caret
2508
2559
  shimmer a highlight sweeps a placeholder product Skeleton
2509
- unfold a sheet turns open about its hinge unfold() */
2560
+ unfold a sheet turns open about its hinge unfold()
2561
+ run a light sweeps a set, child by child Run */
2510
2562
 
2511
2563
  @keyframes rise {
2512
2564
  from {
@@ -2524,6 +2576,17 @@ a svg,
2524
2576
  will-change: transform, opacity;
2525
2577
  }
2526
2578
 
2579
+ /* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
2580
+ that arrives together still reads in order. Reduced motion drops the
2581
+ animation and the delay with it, so nothing waits hidden. */
2582
+ [data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
2583
+ [data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
2584
+ [data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
2585
+ [data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
2586
+ [data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
2587
+ [data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
2588
+ [data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
2589
+
2527
2590
  [data-motion='fade'] {
2528
2591
  transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
2529
2592
  will-change: opacity;
@@ -2604,8 +2667,45 @@ a svg,
2604
2667
  --turn: 7deg;
2605
2668
  }
2606
2669
 
2670
+ /* A run: a light crosses a set of things that are all true at once (`<Run>`).
2671
+ Each direct child is lit `data-beat` steps of `--run-step` after the first;
2672
+ the sweep owns `color` and returns it to `--run-rest`. */
2673
+ @keyframes run {
2674
+ 0%,
2675
+ 26%,
2676
+ 100% {
2677
+ color: var(--run-rest, var(--neutral-400));
2678
+ border-color: var(--neutral-800);
2679
+ }
2680
+ 8% {
2681
+ color: var(--foreground);
2682
+ border-color: var(--muted-foreground);
2683
+ }
2684
+ }
2685
+
2686
+ [data-motion='run'] > * {
2687
+ animation: run 5.4s var(--ease-in-out) infinite;
2688
+ }
2689
+
2690
+ [data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
2691
+ [data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
2692
+ [data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
2693
+ [data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
2694
+ [data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
2695
+ [data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
2696
+ [data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
2697
+ [data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
2698
+ [data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
2699
+ [data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
2700
+ [data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
2701
+ [data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
2702
+ [data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
2703
+ [data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
2704
+ [data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
2705
+
2607
2706
  @media (prefers-reduced-motion: reduce) {
2608
- [data-motion] {
2707
+ [data-motion],
2708
+ [data-motion='run'] > * {
2609
2709
  animation: none;
2610
2710
  transition: none;
2611
2711
  }
package/dist/theme.css CHANGED
@@ -1817,13 +1817,15 @@
1817
1817
  itself. Every animation is off under `prefers-reduced-motion: reduce`.
1818
1818
 
1819
1819
  rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
1820
+ `data-beat="n"` staggers it n x 70ms
1820
1821
  fade opacity eases 240ms SlideOver's scrim
1821
1822
  slide transform eases 260ms SlideOver's panel
1822
1823
  drag a row eases into place while one is held Reorder
1823
1824
  pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
1824
1825
  blink on/off, 1s Caret
1825
1826
  shimmer a highlight sweeps a placeholder product Skeleton
1826
- unfold a sheet turns open about its hinge unfold() */
1827
+ unfold a sheet turns open about its hinge unfold()
1828
+ run a light sweeps a set, child by child Run */
1827
1829
 
1828
1830
  @keyframes rise {
1829
1831
  from {
@@ -1841,6 +1843,17 @@
1841
1843
  will-change: transform, opacity;
1842
1844
  }
1843
1845
 
1846
+ /* A staged entrance: `data-beat="n"` holds a rise back n beats of 70ms, so a set
1847
+ that arrives together still reads in order. Reduced motion drops the
1848
+ animation and the delay with it, so nothing waits hidden. */
1849
+ [data-motion='rise'][data-beat='1'] { animation-delay: 70ms; }
1850
+ [data-motion='rise'][data-beat='2'] { animation-delay: 140ms; }
1851
+ [data-motion='rise'][data-beat='3'] { animation-delay: 210ms; }
1852
+ [data-motion='rise'][data-beat='4'] { animation-delay: 280ms; }
1853
+ [data-motion='rise'][data-beat='5'] { animation-delay: 350ms; }
1854
+ [data-motion='rise'][data-beat='6'] { animation-delay: 420ms; }
1855
+ [data-motion='rise'][data-beat='7'] { animation-delay: 490ms; }
1856
+
1844
1857
  [data-motion='fade'] {
1845
1858
  transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
1846
1859
  will-change: opacity;
@@ -1921,8 +1934,45 @@
1921
1934
  --turn: 7deg;
1922
1935
  }
1923
1936
 
1937
+ /* A run: a light crosses a set of things that are all true at once (`<Run>`).
1938
+ Each direct child is lit `data-beat` steps of `--run-step` after the first;
1939
+ the sweep owns `color` and returns it to `--run-rest`. */
1940
+ @keyframes run {
1941
+ 0%,
1942
+ 26%,
1943
+ 100% {
1944
+ color: var(--run-rest, var(--neutral-400));
1945
+ border-color: var(--neutral-800);
1946
+ }
1947
+ 8% {
1948
+ color: var(--foreground);
1949
+ border-color: var(--muted-foreground);
1950
+ }
1951
+ }
1952
+
1953
+ [data-motion='run'] > * {
1954
+ animation: run 5.4s var(--ease-in-out) infinite;
1955
+ }
1956
+
1957
+ [data-motion='run'] > [data-beat='1'] { animation-delay: calc(1 * var(--run-step, 0.22s)); }
1958
+ [data-motion='run'] > [data-beat='2'] { animation-delay: calc(2 * var(--run-step, 0.22s)); }
1959
+ [data-motion='run'] > [data-beat='3'] { animation-delay: calc(3 * var(--run-step, 0.22s)); }
1960
+ [data-motion='run'] > [data-beat='4'] { animation-delay: calc(4 * var(--run-step, 0.22s)); }
1961
+ [data-motion='run'] > [data-beat='5'] { animation-delay: calc(5 * var(--run-step, 0.22s)); }
1962
+ [data-motion='run'] > [data-beat='6'] { animation-delay: calc(6 * var(--run-step, 0.22s)); }
1963
+ [data-motion='run'] > [data-beat='7'] { animation-delay: calc(7 * var(--run-step, 0.22s)); }
1964
+ [data-motion='run'] > [data-beat='8'] { animation-delay: calc(8 * var(--run-step, 0.22s)); }
1965
+ [data-motion='run'] > [data-beat='9'] { animation-delay: calc(9 * var(--run-step, 0.22s)); }
1966
+ [data-motion='run'] > [data-beat='10'] { animation-delay: calc(10 * var(--run-step, 0.22s)); }
1967
+ [data-motion='run'] > [data-beat='11'] { animation-delay: calc(11 * var(--run-step, 0.22s)); }
1968
+ [data-motion='run'] > [data-beat='12'] { animation-delay: calc(12 * var(--run-step, 0.22s)); }
1969
+ [data-motion='run'] > [data-beat='13'] { animation-delay: calc(13 * var(--run-step, 0.22s)); }
1970
+ [data-motion='run'] > [data-beat='14'] { animation-delay: calc(14 * var(--run-step, 0.22s)); }
1971
+ [data-motion='run'] > [data-beat='15'] { animation-delay: calc(15 * var(--run-step, 0.22s)); }
1972
+
1924
1973
  @media (prefers-reduced-motion: reduce) {
1925
- [data-motion] {
1974
+ [data-motion],
1975
+ [data-motion='run'] > * {
1926
1976
  animation: none;
1927
1977
  transition: none;
1928
1978
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzo/ui",
3
- "version": "8.27.46",
3
+ "version": "8.27.48",
4
4
  "type": "module",
5
5
  "description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
6
6
  "exports": {
@@ -247,6 +247,7 @@
247
247
  "default": "./dist/telemetry.js"
248
248
  },
249
249
  "./styles/motion.css": "./dist/styles/motion.css",
250
+ "./styles/document.css": "./dist/styles/document.css",
250
251
  "./package.json": "./package.json",
251
252
  "./tw": {
252
253
  "types": "./dist/tw.d.ts",
@@ -412,7 +413,7 @@
412
413
  "license": "Apache-2.0 OR MIT",
413
414
  "author": "Hanzo AI <dev@hanzo.ai>",
414
415
  "scripts": {
415
- "build": "rm -rf dist dist-cjs && tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json --noCheck && mkdir -p dist/styles && node scripts/compose-theme.mjs && cp src/styles/motion.css dist/styles/motion.css && cp src/next.cjs dist/next.cjs && node scripts/postbuild.mjs && node scripts/gen-css.mjs",
416
+ "build": "rm -rf dist dist-cjs && tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json --noCheck && mkdir -p dist/styles && node scripts/compose-theme.mjs && cp src/styles/motion.css dist/styles/motion.css && cp src/styles/document.css dist/styles/document.css && cp src/next.cjs dist/next.cjs && node scripts/postbuild.mjs && node scripts/gen-css.mjs",
416
417
  "clean": "rm -rf dist dist-cjs types",
417
418
  "gen:primitives": "node scripts/gen-primitives.mjs",
418
419
  "tc": "tsc --noEmit",