@hanzo/ui 8.27.45 → 8.27.47

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 (72) hide show
  1. package/dist/backends/gui/popover.cjs +7 -2
  2. package/dist/backends/gui/popover.d.ts +8 -1
  3. package/dist/backends/gui/popover.d.ts.map +1 -1
  4. package/dist/backends/gui/popover.js +7 -2
  5. package/dist/backends/gui/popover.js.map +1 -1
  6. package/dist/chat/Chat.cjs +7 -2
  7. package/dist/chat/Chat.d.ts +14 -1
  8. package/dist/chat/Chat.d.ts.map +1 -1
  9. package/dist/chat/Chat.js +7 -2
  10. package/dist/chat/Chat.js.map +1 -1
  11. package/dist/gallery.html +119 -5
  12. package/dist/glass.css +14 -0
  13. package/dist/marketing/Cta.cjs +9 -3
  14. package/dist/marketing/Cta.d.ts +7 -5
  15. package/dist/marketing/Cta.d.ts.map +1 -1
  16. package/dist/marketing/Cta.js +10 -4
  17. package/dist/marketing/Cta.js.map +1 -1
  18. package/dist/marketing/controls.cjs +112 -0
  19. package/dist/marketing/controls.d.ts +42 -0
  20. package/dist/marketing/controls.d.ts.map +1 -0
  21. package/dist/marketing/controls.js +108 -0
  22. package/dist/marketing/controls.js.map +1 -0
  23. package/dist/marketing/document.cjs +7 -0
  24. package/dist/marketing/document.d.ts +22 -0
  25. package/dist/marketing/document.d.ts.map +1 -0
  26. package/dist/marketing/document.js +5 -0
  27. package/dist/marketing/document.js.map +1 -0
  28. package/dist/marketing/host.cjs +39 -0
  29. package/dist/marketing/host.d.ts +21 -0
  30. package/dist/marketing/host.d.ts.map +1 -0
  31. package/dist/marketing/host.js +35 -0
  32. package/dist/marketing/host.js.map +1 -0
  33. package/dist/marketing/index.cjs +24 -1
  34. package/dist/marketing/index.d.ts +8 -2
  35. package/dist/marketing/index.d.ts.map +1 -1
  36. package/dist/marketing/index.js +7 -1
  37. package/dist/marketing/index.js.map +1 -1
  38. package/dist/marketing/loose.cjs +2 -0
  39. package/dist/marketing/loose.d.ts +41 -0
  40. package/dist/marketing/loose.d.ts.map +1 -0
  41. package/dist/marketing/loose.js +2 -0
  42. package/dist/marketing/loose.js.map +1 -0
  43. package/dist/marketing/pager.cjs +22 -0
  44. package/dist/marketing/pager.d.ts +22 -0
  45. package/dist/marketing/pager.d.ts.map +1 -0
  46. package/dist/marketing/pager.js +20 -0
  47. package/dist/marketing/pager.js.map +1 -0
  48. package/dist/marketing/pair.cjs +21 -0
  49. package/dist/marketing/pair.d.ts +22 -0
  50. package/dist/marketing/pair.d.ts.map +1 -0
  51. package/dist/marketing/pair.js +19 -0
  52. package/dist/marketing/pair.js.map +1 -0
  53. package/dist/marketing/run.cjs +28 -0
  54. package/dist/marketing/run.d.ts +33 -0
  55. package/dist/marketing/run.d.ts.map +1 -0
  56. package/dist/marketing/run.js +26 -0
  57. package/dist/marketing/run.js.map +1 -0
  58. package/dist/marketing/surface.cjs +76 -0
  59. package/dist/marketing/surface.d.ts +59 -0
  60. package/dist/marketing/surface.d.ts.map +1 -0
  61. package/dist/marketing/surface.js +70 -0
  62. package/dist/marketing/surface.js.map +1 -0
  63. package/dist/marketing/type.cjs +29 -2
  64. package/dist/marketing/type.d.ts +43 -4
  65. package/dist/marketing/type.d.ts.map +1 -1
  66. package/dist/marketing/type.js +24 -1
  67. package/dist/marketing/type.js.map +1 -1
  68. package/dist/styles/document.css +93 -0
  69. package/dist/styles/motion.css +52 -2
  70. package/dist/styles.css +118 -4
  71. package/dist/theme.css +66 -2
  72. 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
@@ -1585,6 +1585,20 @@
1585
1585
  }
1586
1586
  }
1587
1587
 
1588
+ /* ── Solid — the one way out of the material ─────────────────────────────────
1589
+ A panel over something that moves (a menu over a streaming transcript) reads
1590
+ the motion through 72% frost. `<PopoverContent solid>` marks itself, and every
1591
+ popover opened from inside it, with `data-material="solid"`: the ground is
1592
+ design's opaque `--popover` and nothing behind is blurred into it. The rung's
1593
+ shadow, lit edge and prism lip stay, so it is the same surface at the same
1594
+ height with a solid fill. Declared after the material so the later rule wins
1595
+ between two !important declarations of equal weight. */
1596
+ [data-material="solid"] {
1597
+ background-color: var(--popover, #0f0f0f) !important;
1598
+ -webkit-backdrop-filter: none;
1599
+ backdrop-filter: none;
1600
+ }
1601
+
1588
1602
  /* ── Depth — three rungs, and the lit edge is the load-bearing half ──────────
1589
1603
  A cast shadow is how a light page shows lift. On a near-black canvas it is
1590
1604
  nearly free of information: black on near-black moves no pixels, so a raised
@@ -1805,13 +1819,15 @@
1805
1819
  itself. Every animation is off under `prefers-reduced-motion: reduce`.
1806
1820
 
1807
1821
  rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
1822
+ `data-beat="n"` staggers it n x 70ms
1808
1823
  fade opacity eases 240ms SlideOver's scrim
1809
1824
  slide transform eases 260ms SlideOver's panel
1810
1825
  drag a row eases into place while one is held Reorder
1811
1826
  pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
1812
1827
  blink on/off, 1s Caret
1813
1828
  shimmer a highlight sweeps a placeholder product Skeleton
1814
- 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 */
1815
1831
 
1816
1832
  @keyframes rise {
1817
1833
  from {
@@ -1829,6 +1845,17 @@
1829
1845
  will-change: transform, opacity;
1830
1846
  }
1831
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
+
1832
1859
  [data-motion='fade'] {
1833
1860
  transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
1834
1861
  will-change: opacity;
@@ -1909,8 +1936,45 @@
1909
1936
  --turn: 7deg;
1910
1937
  }
1911
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
+
1912
1975
  @media (prefers-reduced-motion: reduce) {
1913
- [data-motion] {
1976
+ [data-motion],
1977
+ [data-motion='run'] > * {
1914
1978
  animation: none;
1915
1979
  transition: none;
1916
1980
  }
@@ -2486,13 +2550,15 @@ a svg,
2486
2550
  itself. Every animation is off under `prefers-reduced-motion: reduce`.
2487
2551
 
2488
2552
  rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
2553
+ `data-beat="n"` staggers it n x 70ms
2489
2554
  fade opacity eases 240ms SlideOver's scrim
2490
2555
  slide transform eases 260ms SlideOver's panel
2491
2556
  drag a row eases into place while one is held Reorder
2492
2557
  pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
2493
2558
  blink on/off, 1s Caret
2494
2559
  shimmer a highlight sweeps a placeholder product Skeleton
2495
- 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 */
2496
2562
 
2497
2563
  @keyframes rise {
2498
2564
  from {
@@ -2510,6 +2576,17 @@ a svg,
2510
2576
  will-change: transform, opacity;
2511
2577
  }
2512
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
+
2513
2590
  [data-motion='fade'] {
2514
2591
  transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
2515
2592
  will-change: opacity;
@@ -2590,8 +2667,45 @@ a svg,
2590
2667
  --turn: 7deg;
2591
2668
  }
2592
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
+
2593
2706
  @media (prefers-reduced-motion: reduce) {
2594
- [data-motion] {
2707
+ [data-motion],
2708
+ [data-motion='run'] > * {
2595
2709
  animation: none;
2596
2710
  transition: none;
2597
2711
  }
package/dist/theme.css CHANGED
@@ -1583,6 +1583,20 @@
1583
1583
  }
1584
1584
  }
1585
1585
 
1586
+ /* ── Solid — the one way out of the material ─────────────────────────────────
1587
+ A panel over something that moves (a menu over a streaming transcript) reads
1588
+ the motion through 72% frost. `<PopoverContent solid>` marks itself, and every
1589
+ popover opened from inside it, with `data-material="solid"`: the ground is
1590
+ design's opaque `--popover` and nothing behind is blurred into it. The rung's
1591
+ shadow, lit edge and prism lip stay, so it is the same surface at the same
1592
+ height with a solid fill. Declared after the material so the later rule wins
1593
+ between two !important declarations of equal weight. */
1594
+ [data-material="solid"] {
1595
+ background-color: var(--popover, #0f0f0f) !important;
1596
+ -webkit-backdrop-filter: none;
1597
+ backdrop-filter: none;
1598
+ }
1599
+
1586
1600
  /* ── Depth — three rungs, and the lit edge is the load-bearing half ──────────
1587
1601
  A cast shadow is how a light page shows lift. On a near-black canvas it is
1588
1602
  nearly free of information: black on near-black moves no pixels, so a raised
@@ -1803,13 +1817,15 @@
1803
1817
  itself. Every animation is off under `prefers-reduced-motion: reduce`.
1804
1818
 
1805
1819
  rise enter: fade up 10px over 400ms FadeIn, Timeline, tooltips
1820
+ `data-beat="n"` staggers it n x 70ms
1806
1821
  fade opacity eases 240ms SlideOver's scrim
1807
1822
  slide transform eases 260ms SlideOver's panel
1808
1823
  drag a row eases into place while one is held Reorder
1809
1824
  pulse opacity dims and returns, 2s Pulse, StatusDot, Skeleton
1810
1825
  blink on/off, 1s Caret
1811
1826
  shimmer a highlight sweeps a placeholder product Skeleton
1812
- 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 */
1813
1829
 
1814
1830
  @keyframes rise {
1815
1831
  from {
@@ -1827,6 +1843,17 @@
1827
1843
  will-change: transform, opacity;
1828
1844
  }
1829
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
+
1830
1857
  [data-motion='fade'] {
1831
1858
  transition: opacity 240ms cubic-bezier(0.16, 1, 0.3, 1);
1832
1859
  will-change: opacity;
@@ -1907,8 +1934,45 @@
1907
1934
  --turn: 7deg;
1908
1935
  }
1909
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
+
1910
1973
  @media (prefers-reduced-motion: reduce) {
1911
- [data-motion] {
1974
+ [data-motion],
1975
+ [data-motion='run'] > * {
1912
1976
  animation: none;
1913
1977
  transition: none;
1914
1978
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzo/ui",
3
- "version": "8.27.45",
3
+ "version": "8.27.47",
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",