@techfides/ui-library-design 0.8.0 → 0.9.1

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 (217) hide show
  1. package/README.md +1 -3
  2. package/css/theme.css +61 -82
  3. package/dist/anatomies.d.ts +1 -9
  4. package/dist/anatomies.js +0 -2
  5. package/dist/anatomy.d.ts +2 -3
  6. package/dist/anatomy.js +0 -2
  7. package/dist/brands.d.ts +1 -2
  8. package/dist/brands.js +0 -2
  9. package/dist/cn.d.ts +1 -2
  10. package/dist/cn.generated.js +40 -4
  11. package/dist/cn.js +0 -2
  12. package/dist/control.d.ts +1 -2
  13. package/dist/control.js +0 -2
  14. package/dist/index.d.ts +2 -1
  15. package/dist/index.js +2 -1
  16. package/dist/mark.d.ts +1 -2
  17. package/dist/mark.js +0 -2
  18. package/dist/parts/control.js +0 -2
  19. package/dist/parts/eyebrow.js +0 -2
  20. package/dist/parts/mark.js +0 -2
  21. package/dist/parts/reveal.js +0 -2
  22. package/dist/parts/rouse.js +0 -2
  23. package/dist/parts/rule.js +0 -2
  24. package/dist/parts/scroll.js +0 -2
  25. package/dist/parts/shell.js +0 -2
  26. package/dist/parts/surface.js +0 -2
  27. package/dist/parts/tone.js +0 -2
  28. package/dist/parts/travel.js +0 -2
  29. package/dist/recipes/accordion.d.ts +1 -2
  30. package/dist/recipes/accordion.js +0 -2
  31. package/dist/recipes/alert.d.ts +1 -2
  32. package/dist/recipes/alert.js +0 -2
  33. package/dist/recipes/band.d.ts +1 -2
  34. package/dist/recipes/band.js +0 -2
  35. package/dist/recipes/bars.d.ts +1 -2
  36. package/dist/recipes/bars.js +0 -2
  37. package/dist/recipes/brandMark.d.ts +1 -2
  38. package/dist/recipes/brandMark.js +0 -2
  39. package/dist/recipes/button.d.ts +1 -2
  40. package/dist/recipes/button.js +0 -2
  41. package/dist/recipes/cardHeader.d.ts +1 -2
  42. package/dist/recipes/cardHeader.js +0 -2
  43. package/dist/recipes/chart.d.ts +5 -0
  44. package/dist/recipes/chart.js +5 -0
  45. package/dist/recipes/checkbox.d.ts +1 -2
  46. package/dist/recipes/checkbox.js +0 -2
  47. package/dist/recipes/chip.d.ts +1 -2
  48. package/dist/recipes/chip.js +0 -2
  49. package/dist/recipes/codeEditor.d.ts +1 -2
  50. package/dist/recipes/codeEditor.js +0 -2
  51. package/dist/recipes/datePicker.d.ts +1 -2
  52. package/dist/recipes/datePicker.js +0 -2
  53. package/dist/recipes/dialog.d.ts +1 -2
  54. package/dist/recipes/dialog.js +0 -2
  55. package/dist/recipes/feature.d.ts +1 -2
  56. package/dist/recipes/feature.js +0 -2
  57. package/dist/recipes/field.d.ts +1 -2
  58. package/dist/recipes/field.js +0 -2
  59. package/dist/recipes/findings.d.ts +1 -2
  60. package/dist/recipes/findings.js +0 -2
  61. package/dist/recipes/heading.d.ts +1 -2
  62. package/dist/recipes/heading.js +0 -2
  63. package/dist/recipes/heartbeat.d.ts +1 -2
  64. package/dist/recipes/heartbeat.js +0 -2
  65. package/dist/recipes/ink.d.ts +1 -2
  66. package/dist/recipes/ink.js +0 -2
  67. package/dist/recipes/input.d.ts +1 -3
  68. package/dist/recipes/input.js +0 -3
  69. package/dist/recipes/listItem.d.ts +1 -2
  70. package/dist/recipes/listItem.js +0 -2
  71. package/dist/recipes/listbox.d.ts +1 -2
  72. package/dist/recipes/listbox.js +0 -2
  73. package/dist/recipes/marquee.d.ts +1 -2
  74. package/dist/recipes/marquee.js +0 -2
  75. package/dist/recipes/menu.d.ts +1 -2
  76. package/dist/recipes/menu.js +0 -2
  77. package/dist/recipes/metaRow.d.ts +1 -2
  78. package/dist/recipes/metaRow.js +0 -2
  79. package/dist/recipes/meter.d.ts +1 -2
  80. package/dist/recipes/meter.js +0 -2
  81. package/dist/recipes/motion.d.ts +1 -2
  82. package/dist/recipes/motion.js +0 -2
  83. package/dist/recipes/nebula.d.ts +1 -2
  84. package/dist/recipes/nebula.js +0 -2
  85. package/dist/recipes/numberRange.d.ts +1 -2
  86. package/dist/recipes/numberRange.js +0 -2
  87. package/dist/recipes/paper.d.ts +1 -2
  88. package/dist/recipes/paper.js +0 -2
  89. package/dist/recipes/progressBar.d.ts +1 -2
  90. package/dist/recipes/progressBar.js +0 -2
  91. package/dist/recipes/queue.d.ts +1 -2
  92. package/dist/recipes/queue.js +0 -2
  93. package/dist/recipes/radioGroup.d.ts +1 -3
  94. package/dist/recipes/radioGroup.js +0 -3
  95. package/dist/recipes/scopeSwitcher.d.ts +1 -4
  96. package/dist/recipes/scopeSwitcher.js +0 -4
  97. package/dist/recipes/scrollArea.d.ts +1 -2
  98. package/dist/recipes/scrollArea.js +0 -2
  99. package/dist/recipes/searchPalette.d.ts +1 -3
  100. package/dist/recipes/searchPalette.js +0 -3
  101. package/dist/recipes/sectionHeader.d.ts +1 -2
  102. package/dist/recipes/sectionHeader.js +0 -2
  103. package/dist/recipes/segmentedControl.d.ts +1 -2
  104. package/dist/recipes/segmentedControl.js +0 -2
  105. package/dist/recipes/select.d.ts +1 -3
  106. package/dist/recipes/select.js +0 -3
  107. package/dist/recipes/separator.d.ts +1 -2
  108. package/dist/recipes/separator.js +0 -2
  109. package/dist/recipes/sidebar.d.ts +1 -2
  110. package/dist/recipes/sidebar.js +0 -2
  111. package/dist/recipes/sky.d.ts +1 -2
  112. package/dist/recipes/sky.js +0 -2
  113. package/dist/recipes/slider.d.ts +1 -2
  114. package/dist/recipes/slider.js +0 -2
  115. package/dist/recipes/stat.d.ts +1 -3
  116. package/dist/recipes/stat.js +0 -4
  117. package/dist/recipes/switch.d.ts +1 -2
  118. package/dist/recipes/switch.js +0 -2
  119. package/dist/recipes/table.d.ts +1 -2
  120. package/dist/recipes/table.js +0 -2
  121. package/dist/recipes/tableFilter.d.ts +1 -2
  122. package/dist/recipes/tableFilter.js +0 -2
  123. package/dist/recipes/tablePaging.d.ts +1 -2
  124. package/dist/recipes/tablePaging.js +0 -2
  125. package/dist/recipes/tail.d.ts +1 -2
  126. package/dist/recipes/tail.js +0 -2
  127. package/dist/recipes/text.d.ts +1 -2
  128. package/dist/recipes/text.js +0 -2
  129. package/dist/recipes/textarea.d.ts +1 -2
  130. package/dist/recipes/textarea.js +0 -2
  131. package/dist/recipes/tile.d.ts +1 -2
  132. package/dist/recipes/tile.js +0 -2
  133. package/dist/recipes/tooltip.d.ts +1 -2
  134. package/dist/recipes/tooltip.js +0 -2
  135. package/dist/recipes/topBar.d.ts +1 -2
  136. package/dist/recipes/topBar.js +0 -2
  137. package/dist/recipes/trail.d.ts +1 -2
  138. package/dist/recipes/trail.js +0 -2
  139. package/dist/recipes/userMenu.d.ts +1 -2
  140. package/dist/recipes/userMenu.js +0 -2
  141. package/dist/tone.d.ts +1 -2
  142. package/dist/tone.js +0 -2
  143. package/package.json +1 -1
  144. package/dist/anatomies.js.map +0 -1
  145. package/dist/anatomy.js.map +0 -1
  146. package/dist/brands.js.map +0 -1
  147. package/dist/cn.generated.js.map +0 -1
  148. package/dist/cn.js.map +0 -1
  149. package/dist/control.js.map +0 -1
  150. package/dist/mark.js.map +0 -1
  151. package/dist/parts/control.js.map +0 -1
  152. package/dist/parts/eyebrow.js.map +0 -1
  153. package/dist/parts/mark.js.map +0 -1
  154. package/dist/parts/reveal.js.map +0 -1
  155. package/dist/parts/rouse.js.map +0 -1
  156. package/dist/parts/rule.js.map +0 -1
  157. package/dist/parts/scroll.js.map +0 -1
  158. package/dist/parts/shell.js.map +0 -1
  159. package/dist/parts/surface.js.map +0 -1
  160. package/dist/parts/tone.js.map +0 -1
  161. package/dist/parts/travel.js.map +0 -1
  162. package/dist/recipes/accordion.js.map +0 -1
  163. package/dist/recipes/alert.js.map +0 -1
  164. package/dist/recipes/band.js.map +0 -1
  165. package/dist/recipes/bars.js.map +0 -1
  166. package/dist/recipes/brandMark.js.map +0 -1
  167. package/dist/recipes/button.js.map +0 -1
  168. package/dist/recipes/cardHeader.js.map +0 -1
  169. package/dist/recipes/checkbox.js.map +0 -1
  170. package/dist/recipes/chip.js.map +0 -1
  171. package/dist/recipes/codeEditor.js.map +0 -1
  172. package/dist/recipes/datePicker.js.map +0 -1
  173. package/dist/recipes/dialog.js.map +0 -1
  174. package/dist/recipes/feature.js.map +0 -1
  175. package/dist/recipes/field.js.map +0 -1
  176. package/dist/recipes/findings.js.map +0 -1
  177. package/dist/recipes/heading.js.map +0 -1
  178. package/dist/recipes/heartbeat.js.map +0 -1
  179. package/dist/recipes/ink.js.map +0 -1
  180. package/dist/recipes/input.js.map +0 -1
  181. package/dist/recipes/listItem.js.map +0 -1
  182. package/dist/recipes/listbox.js.map +0 -1
  183. package/dist/recipes/marquee.js.map +0 -1
  184. package/dist/recipes/menu.js.map +0 -1
  185. package/dist/recipes/metaRow.js.map +0 -1
  186. package/dist/recipes/meter.js.map +0 -1
  187. package/dist/recipes/motion.js.map +0 -1
  188. package/dist/recipes/nebula.js.map +0 -1
  189. package/dist/recipes/numberRange.js.map +0 -1
  190. package/dist/recipes/paper.js.map +0 -1
  191. package/dist/recipes/progressBar.js.map +0 -1
  192. package/dist/recipes/queue.js.map +0 -1
  193. package/dist/recipes/radioGroup.js.map +0 -1
  194. package/dist/recipes/scopeSwitcher.js.map +0 -1
  195. package/dist/recipes/scrollArea.js.map +0 -1
  196. package/dist/recipes/searchPalette.js.map +0 -1
  197. package/dist/recipes/sectionHeader.js.map +0 -1
  198. package/dist/recipes/segmentedControl.js.map +0 -1
  199. package/dist/recipes/select.js.map +0 -1
  200. package/dist/recipes/separator.js.map +0 -1
  201. package/dist/recipes/sidebar.js.map +0 -1
  202. package/dist/recipes/sky.js.map +0 -1
  203. package/dist/recipes/slider.js.map +0 -1
  204. package/dist/recipes/stat.js.map +0 -1
  205. package/dist/recipes/switch.js.map +0 -1
  206. package/dist/recipes/table.js.map +0 -1
  207. package/dist/recipes/tableFilter.js.map +0 -1
  208. package/dist/recipes/tablePaging.js.map +0 -1
  209. package/dist/recipes/tail.js.map +0 -1
  210. package/dist/recipes/text.js.map +0 -1
  211. package/dist/recipes/textarea.js.map +0 -1
  212. package/dist/recipes/tile.js.map +0 -1
  213. package/dist/recipes/tooltip.js.map +0 -1
  214. package/dist/recipes/topBar.js.map +0 -1
  215. package/dist/recipes/trail.js.map +0 -1
  216. package/dist/recipes/userMenu.js.map +0 -1
  217. package/dist/tone.js.map +0 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The framework-agnostic half of the TechFides UI library: the Tailwind CSS v4 theme, the design tokens, and the variant recipes every component is built from.
4
4
 
5
- No framework, no components. If you are building with Vue, install [`@techfides/ui-library-vue`](https://www.npmjs.com/package/@techfides/ui-library-vue) instead — it depends on this one and brings it with it. Reach for this package directly when you are styling something the component library does not cover, or when a React binding arrives.
5
+ No framework, no components. If you are building with Vue, install [`@techfides/ui-library-vue`](https://www.npmjs.com/package/@techfides/ui-library-vue) instead — it depends on this one and brings it with it. Reach for this package directly when you are styling something the component library does not cover, or when a React binding arrives. Words and languages live in [`@techfides/ui-library-core`](https://www.npmjs.com/package/@techfides/ui-library-core), the framework-free package, not here.
6
6
 
7
7
  ## Install
8
8
 
@@ -37,8 +37,6 @@ cn('bg-tf-panel p-6', props.class)
37
37
 
38
38
  **Brand** — four accents, switched by a `data-brand` attribute on the root. Every accent role in the system derives from the one the brand names.
39
39
 
40
- **Words** — every string a component says on its own behalf, as a `Language`. `english` and `czech` ship; the framework binding hands one to `provideLanguage`. Words live here rather than in the binding so both bindings say the same thing ([ADR 0004](https://github.com/TechFides/ui-library/blob/main/docs/adr/0004-words-live-in-the-framework-free-package.md)).
41
-
42
40
  ## The one thing to know about surfaces
43
41
 
44
42
  Depth is carried by lightness, not by shadow: on a dark screen a black shadow has almost nothing to fall on. There are five surface steps and each is measurably lighter than the one below it. A shadow means something different — that a thing has left the page altogether.
package/css/theme.css CHANGED
@@ -27,17 +27,34 @@
27
27
  font-family: var(--font-tf-body);
28
28
  scrollbar-gutter: stable;
29
29
  }
30
+
31
+ x-vue-echarts {
32
+ display: block;
33
+ width: 100%;
34
+ height: 100%;
35
+ min-width: 0;
36
+ }
37
+
38
+ x-vue-echarts > .echarts-host {
39
+ display: block;
40
+ width: 100%;
41
+ height: 100%;
42
+ min-width: 0;
43
+ }
44
+
45
+ x-vue-echarts > .echarts-host > :first-child,
46
+ x-vue-echarts > .echarts-host > :first-child > canvas {
47
+ border-radius: inherit;
48
+ }
30
49
  }
31
50
 
32
51
  @theme static inline {
33
52
  --ceiling-tf-accent: var(--tf-accent-ceiling);
34
-
35
53
  --color-tf-accent: var(--tf-accent);
36
- --color-tf-accent-hi: oklch(from var(--tf-accent) 0.73 c h);
37
- --color-tf-accent-surface: oklch(from var(--tf-accent) 0.55 c h);
38
- --color-tf-accent-deep: oklch(from var(--tf-accent) 0.45 c h);
39
- --color-tf-on-accent: #ffffff;
40
-
54
+ --color-tf-accent-hi: oklch(from var(--tf-accent) 73% c h);
55
+ --color-tf-accent-surface: oklch(from var(--tf-accent) 55% c h);
56
+ --color-tf-accent-deep: oklch(from var(--tf-accent) 45% c h);
57
+ --color-tf-on-accent: #fff;
41
58
  --color-tf-accent-tint: color-mix(
42
59
  in oklab,
43
60
  var(--tf-accent) var(--tf-tint),
@@ -57,13 +74,11 @@
57
74
  --color-tf-panel-2: rgb(255 255 255 / 3%);
58
75
  --color-tf-panel-hi: rgb(255 255 255 / 8.5%);
59
76
  --color-tf-glass: rgb(255 255 255 / 6.5%);
60
-
61
77
  --color-tf-sunken: rgb(0 0 0 / 26%);
62
78
  --color-tf-sunken-hi: rgb(0 0 0 / 20%);
63
79
  --color-tf-sunken-quiet: rgb(0 0 0 / 34%);
64
80
  --color-tf-control: rgb(255 255 255 / 9%);
65
81
  --color-tf-control-hi: rgb(255 255 255 / 12%);
66
-
67
82
  --color-tf-surface-hi: color-mix(in oklab, #fff 4.5%, var(--color-tf-surface));
68
83
  --color-tf-surface-quiet: color-mix(in oklab, var(--color-tf-bg) 55%, var(--color-tf-surface));
69
84
  --color-tf-shade-under: color-mix(in oklab, var(--color-tf-bg) 38%, transparent);
@@ -76,26 +91,22 @@
76
91
  --color-tf-fg: #eef1f6;
77
92
  --color-tf-fg-held: color-mix(in oklab, #eef1f6 82%, var(--color-tf-bg));
78
93
  --color-tf-muted: #98a1b2;
79
-
80
- --color-tf-success: oklch(0.55 0.19 133);
81
- --color-tf-success-hi: oklch(0.73 0.195 133);
82
- --color-tf-warning: oklch(0.6 0.13 70);
83
- --color-tf-warning-hi: oklch(0.73 0.158 70);
84
- --color-tf-info: oklch(0.55 0.196 243);
85
- --color-tf-info-hi: oklch(0.73 0.156 243);
86
- --color-tf-danger: oklch(0.55 0.241 27);
87
- --color-tf-danger-hi: oklch(0.73 0.17 27);
88
- --color-tf-on-semantic: #ffffff;
89
-
94
+ --color-tf-success: oklch(55% 0.19 133deg);
95
+ --color-tf-success-hi: oklch(73% 0.195 133deg);
96
+ --color-tf-warning: oklch(60% 0.13 70deg);
97
+ --color-tf-warning-hi: oklch(73% 0.158 70deg);
98
+ --color-tf-info: oklch(55% 0.196 243deg);
99
+ --color-tf-info-hi: oklch(73% 0.156 243deg);
100
+ --color-tf-danger: oklch(55% 0.241 27deg);
101
+ --color-tf-danger-hi: oklch(73% 0.17 27deg);
102
+ --color-tf-on-semantic: #fff;
90
103
  --ceiling-tf-success: 0.169;
91
104
  --ceiling-tf-warning: 0.13;
92
105
  --ceiling-tf-info: 0.145;
93
106
  --ceiling-tf-danger: 0.244;
94
-
95
107
  --tf-tint: 15%;
96
108
  --tf-edge: 32%;
97
109
  --tf-edge-rest: 32%;
98
-
99
110
  --tf-rest-angle: 110deg;
100
111
  --tf-rest-waist: 33%;
101
112
  --tf-mixed-angle: 150deg;
@@ -103,11 +114,9 @@
103
114
  --tf-milk-reach: 34%;
104
115
  --tf-pressed-angle: 124deg;
105
116
  --tf-fall-angle: 180deg;
106
-
107
117
  --tf-glass-flat:
108
118
  linear-gradient(var(--color-tf-glass), var(--color-tf-glass)), var(--color-tf-bg);
109
119
  --tf-rise-angle: 290deg;
110
-
111
120
  --color-tf-success-tint: color-mix(
112
121
  in oklab,
113
122
  var(--color-tf-success) var(--tf-tint),
@@ -149,10 +158,8 @@
149
158
  var(--color-tf-danger) var(--tf-edge),
150
159
  var(--color-tf-surface)
151
160
  );
152
-
153
161
  --font-tf-display: 'Poppins', system-ui, sans-serif;
154
162
  --font-tf-body: 'Inter Variable', 'Inter', system-ui, sans-serif;
155
-
156
163
  --text-tf-numeral: clamp(96px, 11vw, 160px);
157
164
  --text-tf-numeral--line-height: 1;
158
165
  --text-tf-display: clamp(38px, 4.5vw, 54px);
@@ -179,16 +186,13 @@
179
186
  --text-tf-caption--line-height: 1.6;
180
187
  --text-tf-caption-sm: 12px;
181
188
  --text-tf-caption-sm--line-height: 1.6;
182
-
183
189
  --tracking-tf-tight: -0.022em;
184
190
  --tracking-tf-eyebrow: 0.12em;
185
-
186
191
  --breakpoint-*: initial;
187
192
  --breakpoint-sm: 40rem;
188
193
  --breakpoint-md: 48rem;
189
194
  --breakpoint-lg: 64rem;
190
195
  --breakpoint-xl: 80rem;
191
-
192
196
  --container-*: initial;
193
197
  --max-width-*: initial;
194
198
  --container-tf-panel: 24rem;
@@ -197,97 +201,77 @@
197
201
  --container-tf-measure: 65ch;
198
202
  --container-tf-page: 56rem;
199
203
  --container-tf-canvas: 100rem;
200
-
201
204
  --spacing-tf-hairline: 1px;
202
-
203
205
  --spacing-tf-control-2xs: 1.5rem;
204
206
  --spacing-tf-control-xs: 2rem;
205
207
  --spacing-tf-control-sm: 2.5rem;
206
208
  --spacing-tf-control-md: 3rem;
207
209
  --spacing-tf-control-lg: 3.5rem;
208
-
209
210
  --spacing-tf-row: 2.25rem;
210
211
  --spacing-tf-chip-sm: 1.5rem;
211
212
  --spacing-tf-target: 3rem;
212
-
213
213
  --spacing-tf-menu: 12rem;
214
214
  --spacing-tf-sidebar: 17rem;
215
215
  --spacing-tf-rail: 5rem;
216
-
217
216
  --spacing-tf-icon-2xs: 0.875rem;
218
217
  --spacing-tf-icon-xs: 1rem;
219
218
  --spacing-tf-icon-sm: 1.125rem;
220
219
  --spacing-tf-icon-md: 1.25rem;
221
220
  --spacing-tf-icon-lg: 1.375rem;
222
-
223
221
  --spacing-tf-icon-solo-xs: 1rem;
224
222
  --spacing-tf-icon-solo-sm: 1.25rem;
225
223
  --spacing-tf-icon-solo-md: 1.375rem;
226
224
  --spacing-tf-icon-solo-lg: 1.5rem;
227
-
228
225
  --spacing-tf-mark-glyph: 0.875rem;
229
226
  --spacing-tf-mark-dot: 0.625rem;
230
227
  --spacing-tf-mark-track: 0.375rem;
231
228
  --spacing-tf-mark-inset: 0.1875rem;
232
-
233
229
  --tf-mark-path: 23;
234
230
  --tf-icon-stroke: 2.75;
235
231
  --tf-icon-stroke-solo: 3;
236
-
237
232
  --blur-tf-panel: 16px;
238
233
  --blur-tf-glass: 16px;
239
234
  --blur-tf-scrim: 6px;
240
235
  --blur-tf-cloud-md: 14px;
241
236
  --blur-tf-cloud-tight: 10px;
242
237
  --blur-tf-cloud-wide: 32px;
243
-
244
238
  --radius-tf-none: 0;
245
239
  --radius-tf-inline: 0.375rem;
246
240
  --radius-tf-control: 0.625rem;
247
241
  --radius-tf-block: 0.75rem;
248
242
  --radius-tf-card: 1rem;
249
243
  --radius-tf-pill: 9999px;
250
-
251
244
  --shadow-tf-float: 0 18px 44px -18px rgb(0 0 0 / 88%);
252
245
  --shadow-tf-mark: 0 1px 2px rgb(0 0 0 / 40%);
253
-
254
246
  --ease-tf: cubic-bezier(0.16, 0.8, 0.3, 1);
255
247
  --ease-tf-spring: cubic-bezier(0.34, 1.56, 0.5, 1);
256
248
  --ease-tf-glide: cubic-bezier(0.45, 0.05, 0.35, 1);
257
249
  --ease-tf-settle: cubic-bezier(0.32, 1.36, 0.58, 1);
258
-
259
250
  --tf-z-raised: 10;
260
251
  --tf-z-dropdown: 20;
261
252
  --tf-z-tooltip: 30;
262
253
  --tf-z-modal: 40;
263
254
  --tf-z-toast: 50;
264
-
265
255
  --tf-duration-1: 140ms;
266
256
  --tf-duration-2: 240ms;
267
257
  --tf-duration-3: 600ms;
268
258
  --tf-duration-4: 700ms;
269
-
270
259
  --tf-marquee-pace: calc(var(--spacing-tf-icon-solo-lg) * (1s / var(--tf-duration-3)));
271
-
272
260
  --tf-sweep-duration: calc(var(--tf-duration-3) * 30);
273
261
  --tf-twinkle-duration: calc(var(--tf-duration-3) * 26);
274
262
  --tf-pulse-duration: calc(var(--tf-duration-3) * 3);
275
-
276
263
  --tf-timing-quick: var(--tf-duration-1) var(--ease-tf);
277
264
  --tf-timing-glide: var(--tf-duration-2) var(--ease-tf-glide);
278
265
  --tf-timing-drift: var(--tf-duration-3) var(--ease-tf-glide);
279
266
  --tf-timing-trail: var(--tf-duration-4) var(--ease-tf-glide);
280
267
  --tf-timing-spring: var(--tf-duration-2) var(--ease-tf-spring);
281
268
  --tf-timing-settle: var(--tf-duration-2) var(--ease-tf-settle);
282
-
283
269
  --tf-blend-timing: var(--tf-timing-glide);
284
270
  --tf-shadow-timing: var(--tf-timing-glide);
285
271
  --tf-move-timing: var(--tf-timing-quick);
286
272
  --tf-weather-timing: var(--tf-timing-drift);
287
273
  --tf-ink-timing: var(--tf-timing-quick);
288
-
289
274
  --tf-cloud-blur: var(--blur-tf-cloud-md);
290
-
291
275
  --animate-tf-blend-in: tf-blend-in var(--tf-duration-2) var(--ease-tf-glide);
292
276
  --animate-tf-arrive: tf-arrive var(--tf-duration-2) var(--ease-tf) both;
293
277
  --animate-tf-depart: tf-depart var(--tf-duration-1) var(--ease-tf) both;
@@ -457,7 +441,7 @@
457
441
  }
458
442
 
459
443
  @keyframes tf-chip-in {
460
- from {
444
+ 0% {
461
445
  width: 0;
462
446
  padding-inline: 0;
463
447
  margin-inline-end: calc(var(--tf-chip-gap, 0px) * -1);
@@ -613,15 +597,10 @@
613
597
  }
614
598
 
615
599
  @custom-variant interactive (&:not(:disabled):not([aria-disabled='true']):not([data-disabled]));
616
-
617
600
  @custom-variant hovered (&:hover, &[data-hover]);
618
-
619
601
  @custom-variant pressed (&:active, &[data-active]);
620
-
621
602
  @custom-variant focused (&:focus-visible, &[data-focus-visible]);
622
-
623
603
  @custom-variant reached (&:focus-within, &[data-reached]);
624
-
625
604
  @custom-variant asleep (
626
605
  &:has(:placeholder-shown, [data-placeholder-shown]):not(:focus-within):not([data-reached]):not([data-state='open'])
627
606
  );
@@ -713,7 +692,7 @@
713
692
  @property --tf-nudge {
714
693
  syntax: '<length>';
715
694
  inherits: true;
716
- initial-value: 0px;
695
+ initial-value: 0;
717
696
  }
718
697
 
719
698
  @property --tf-tally {
@@ -754,25 +733,25 @@
754
733
 
755
734
  @property --tf-marquee-run {
756
735
  syntax: '<length>';
757
- initial-value: 0px;
736
+ initial-value: 0;
758
737
  inherits: true;
759
738
  }
760
739
 
761
740
  @property --tf-marquee-pace {
762
741
  syntax: '<length>';
763
- initial-value: 0px;
742
+ initial-value: 0;
764
743
  inherits: true;
765
744
  }
766
745
 
767
746
  @property --tf-fade-head {
768
747
  syntax: '<length>';
769
- initial-value: 0px;
748
+ initial-value: 0;
770
749
  inherits: false;
771
750
  }
772
751
 
773
752
  @property --tf-fade-foot {
774
753
  syntax: '<length>';
775
- initial-value: 0px;
754
+ initial-value: 0;
776
755
  inherits: false;
777
756
  }
778
757
 
@@ -837,15 +816,15 @@
837
816
  }
838
817
 
839
818
  @utility tf-fill-scale {
840
- --tf-lift: oklch(from var(--tf-base) 0.6 min(calc(var(--tf-c, c) * 1.1), var(--tf-ceiling)) h);
819
+ --tf-lift: oklch(from var(--tf-base) 60% min(calc(var(--tf-c, c) * 1.1), var(--tf-ceiling)) h);
841
820
  --tf-vivid: oklch(
842
- from var(--tf-base) 0.51 min(calc(var(--tf-c, c) * 1.05), calc(var(--tf-ceiling) * 0.85)) h
821
+ from var(--tf-base) 51% min(calc(var(--tf-c, c) * 1.05), calc(var(--tf-ceiling) * 0.85)) h
843
822
  );
844
- --tf-deep: oklch(from var(--tf-base) 0.42 min(c, calc(var(--tf-ceiling) * 0.7)) h);
823
+ --tf-deep: oklch(from var(--tf-base) 42% min(c, calc(var(--tf-ceiling) * 0.7)) h);
845
824
  --tf-flare: oklch(
846
- from var(--tf-base) 0.68 min(calc(var(--tf-c, c) * 1.1), calc(var(--tf-ceiling) * 0.77)) h
825
+ from var(--tf-base) 68% min(calc(var(--tf-c, c) * 1.1), calc(var(--tf-ceiling) * 0.77)) h
847
826
  );
848
- --tf-abyss: oklch(from var(--tf-base) 0.33 min(c, calc(var(--tf-ceiling) * 0.55)) h);
827
+ --tf-abyss: oklch(from var(--tf-base) 33% min(c, calc(var(--tf-ceiling) * 0.55)) h);
849
828
  }
850
829
 
851
830
  @utility bg-tf-blend {
@@ -865,11 +844,11 @@
865
844
  }
866
845
 
867
846
  @utility tf-ink-scale {
868
- --tf-lift: oklch(from var(--tf-base) 0.88 calc(var(--tf-c, c) * 1.1) h);
869
- --tf-vivid: oklch(from var(--tf-base) 0.82 calc(var(--tf-c, c) * 1.3) h);
870
- --tf-deep: oklch(from var(--tf-base) 0.7 c h);
871
- --tf-flare: oklch(from var(--tf-base) 0.92 calc(var(--tf-c, c) * 1.15) h);
872
- --tf-abyss: oklch(from var(--tf-base) 0.66 calc(var(--tf-c, c) * 1.05) h);
847
+ --tf-lift: oklch(from var(--tf-base) 88% calc(var(--tf-c, c) * 1.1) h);
848
+ --tf-vivid: oklch(from var(--tf-base) 82% calc(var(--tf-c, c) * 1.3) h);
849
+ --tf-deep: oklch(from var(--tf-base) 70% c h);
850
+ --tf-flare: oklch(from var(--tf-base) 92% calc(var(--tf-c, c) * 1.15) h);
851
+ --tf-abyss: oklch(from var(--tf-base) 66% calc(var(--tf-c, c) * 1.05) h);
873
852
  }
874
853
 
875
854
  @utility text-tf-blend {
@@ -880,6 +859,7 @@
880
859
  --tf-rest-trail: var(--color-tf-fg);
881
860
 
882
861
  @apply tf-ramp;
862
+
883
863
  background-clip: text;
884
864
  color: transparent;
885
865
  text-box-trim: trim-start;
@@ -907,9 +887,9 @@
907
887
  }
908
888
 
909
889
  @utility tf-label-lit {
910
- --tf-label-lead: var(--tf-label-ink, oklch(from var(--tf-base) 0.73 c h));
911
- --tf-label-mid: var(--tf-label-ink, oklch(from var(--tf-base) 0.73 c h));
912
- --tf-label-trail: var(--tf-label-ink, oklch(from var(--tf-base) 0.73 c h));
890
+ --tf-label-lead: var(--tf-label-ink, oklch(from var(--tf-base) 73% c h));
891
+ --tf-label-mid: var(--tf-label-ink, oklch(from var(--tf-base) 73% c h));
892
+ --tf-label-trail: var(--tf-label-ink, oklch(from var(--tf-base) 73% c h));
913
893
  }
914
894
 
915
895
  @utility tf-label-failed {
@@ -1022,7 +1002,6 @@
1022
1002
 
1023
1003
  @utility tf-blend-outline {
1024
1004
  @apply tf-ink-scale;
1025
-
1026
1005
  @apply tf-ring-scale;
1027
1006
 
1028
1007
  --tf-outline-lift: var(--tf-ring-lit-bloom);
@@ -1080,7 +1059,7 @@
1080
1059
  mask-image: linear-gradient(
1081
1060
  to bottom,
1082
1061
  transparent 0,
1083
- transparent var(--tf-fade-head, 0px),
1062
+ transparent var(--tf-fade-head, 0),
1084
1063
  #000 calc(var(--tf-fade-head, 0px) + var(--spacing)),
1085
1064
  #000 calc(100% - var(--tf-fade-foot, 0px)),
1086
1065
  transparent 100%
@@ -1179,10 +1158,10 @@
1179
1158
  }
1180
1159
 
1181
1160
  @utility tf-ring-scale {
1182
- --tf-ring-dim: oklch(from var(--tf-base) 0.34 calc(var(--tf-c, c) * 0.34) h);
1183
- --tf-ring-dim-bloom: oklch(from var(--tf-base) 0.45 calc(var(--tf-c, c) * 0.42) h);
1184
- --tf-ring-lit: oklch(from var(--tf-base) 0.6 calc(var(--tf-c, c) * 0.85) h);
1185
- --tf-ring-lit-bloom: oklch(from var(--tf-base) 0.78 c h);
1161
+ --tf-ring-dim: oklch(from var(--tf-base) 34% calc(var(--tf-c, c) * 0.34) h);
1162
+ --tf-ring-dim-bloom: oklch(from var(--tf-base) 45% calc(var(--tf-c, c) * 0.42) h);
1163
+ --tf-ring-lit: oklch(from var(--tf-base) 60% calc(var(--tf-c, c) * 0.85) h);
1164
+ --tf-ring-lit-bloom: oklch(from var(--tf-base) 78% c h);
1186
1165
  }
1187
1166
 
1188
1167
  @utility tf-ring-rest {
@@ -1331,7 +1310,7 @@
1331
1310
 
1332
1311
  --tf-rest-lead: var(--tf-ring-base);
1333
1312
  --tf-rest-mid: oklch(from var(--tf-ring-base) l c h / calc(100% - var(--tf-blend-waist)));
1334
- --tf-rest-trail: oklch(from var(--tf-ring-base) l c h / 0);
1313
+ --tf-rest-trail: oklch(from var(--tf-ring-base) l c h / 0%);
1335
1314
 
1336
1315
  @apply tf-ramp;
1337
1316
  }
@@ -1392,9 +1371,9 @@
1392
1371
  }
1393
1372
 
1394
1373
  @utility tf-cloud-scale {
1395
- --tf-haze: oklch(from var(--tf-base) 0.85 c h);
1396
- --tf-haze-lit: oklch(from var(--tf-base) 0.92 c h);
1397
- --tf-haze-quiet: oklch(from var(--tf-base) 0.6 c h);
1374
+ --tf-haze: oklch(from var(--tf-base) 85% c h);
1375
+ --tf-haze-lit: oklch(from var(--tf-base) 92% c h);
1376
+ --tf-haze-quiet: oklch(from var(--tf-base) 60% c h);
1398
1377
  }
1399
1378
 
1400
1379
  @utility tf-cloud-brand {
@@ -541,7 +541,6 @@ declare const anatomies: {
541
541
  };
542
542
  readonly spinner: {
543
543
  readonly part: "spinner";
544
- readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
545
544
  readonly required: false;
546
545
  };
547
546
  readonly trailing: {
@@ -836,7 +835,6 @@ declare const anatomies: {
836
835
  };
837
836
  readonly requiredIndicator: {
838
837
  readonly part: "required-indicator";
839
- readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
840
838
  readonly required: false;
841
839
  };
842
840
  readonly root: {
@@ -863,7 +861,6 @@ declare const anatomies: {
863
861
  };
864
862
  readonly root: {
865
863
  readonly part: "scope-switcher";
866
- readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
867
864
  readonly required: true;
868
865
  };
869
866
  readonly rowText: {
@@ -878,7 +875,6 @@ declare const anatomies: {
878
875
  };
879
876
  readonly value: {
880
877
  readonly part: "value";
881
- readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
882
878
  readonly required: true;
883
879
  };
884
880
  };
@@ -904,7 +900,6 @@ declare const anatomies: {
904
900
  };
905
901
  readonly hint: {
906
902
  readonly part: "hint";
907
- readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
908
903
  readonly required: true;
909
904
  };
910
905
  readonly mark: {
@@ -1011,7 +1006,6 @@ declare const anatomies: {
1011
1006
  };
1012
1007
  readonly spinner: {
1013
1008
  readonly part: "spinner";
1014
- readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
1015
1009
  readonly required: false;
1016
1010
  };
1017
1011
  readonly trailing: {
@@ -1214,7 +1208,6 @@ declare const anatomies: {
1214
1208
  };
1215
1209
  readonly counted: {
1216
1210
  readonly part: "counted";
1217
- readonly recipe: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
1218
1211
  readonly required: true;
1219
1212
  };
1220
1213
  readonly figure: {
@@ -1582,5 +1575,4 @@ declare const anatomies: {
1582
1575
  };
1583
1576
  type AnyPart = PartsOf<(typeof anatomies)[keyof typeof anatomies]>;
1584
1577
  //#endregion
1585
- export { type AnyPart, anatomies };
1586
- //# sourceMappingURL=anatomies.d.ts.map
1578
+ export { type AnyPart, anatomies };
package/dist/anatomies.js CHANGED
@@ -103,5 +103,3 @@ const anatomies = {
103
103
  };
104
104
  //#endregion
105
105
  export { anatomies };
106
-
107
- //# sourceMappingURL=anatomies.js.map
package/dist/anatomy.d.ts CHANGED
@@ -2,12 +2,11 @@
2
2
  type Recipe = (...args: never[]) => string;
3
3
  interface Part {
4
4
  part: string;
5
- recipe: Recipe;
5
+ recipe?: Recipe;
6
6
  required: boolean;
7
7
  }
8
8
  type Anatomy = Record<string, Part>;
9
9
  declare const anatomy: <const Shape extends Anatomy>(parts: Shape) => Shape;
10
10
  type PartsOf<Shape> = Shape extends Anatomy ? Shape[keyof Shape]['part'] : never;
11
11
  //#endregion
12
- export { type Anatomy, type Part, type PartsOf, type Recipe, anatomy };
13
- //# sourceMappingURL=anatomy.d.ts.map
12
+ export { type Anatomy, type Part, type PartsOf, type Recipe, anatomy };
package/dist/anatomy.js CHANGED
@@ -2,5 +2,3 @@
2
2
  const anatomy = (parts) => parts;
3
3
  //#endregion
4
4
  export { anatomy };
5
-
6
- //# sourceMappingURL=anatomy.js.map
package/dist/brands.d.ts CHANGED
@@ -35,5 +35,4 @@ declare const brands: readonly [{
35
35
  declare const defaultBrand: BrandSlug;
36
36
  declare const brandTitle: (slug: string) => string;
37
37
  //#endregion
38
- export { type Brand, type BrandSlug, brandTitle, brands, defaultBrand };
39
- //# sourceMappingURL=brands.d.ts.map
38
+ export { type Brand, type BrandSlug, brandTitle, brands, defaultBrand };
package/dist/brands.js CHANGED
@@ -37,5 +37,3 @@ const brandTitle = (slug) => {
37
37
  };
38
38
  //#endregion
39
39
  export { brandTitle, brands, defaultBrand };
40
-
41
- //# sourceMappingURL=brands.js.map
package/dist/cn.d.ts CHANGED
@@ -2,5 +2,4 @@ import { ClassValue } from "clsx";
2
2
  //#region src/cn.d.ts
3
3
  declare const cn: (...inputs: ClassValue[]) => string;
4
4
  //#endregion
5
- export { cn };
6
- //# sourceMappingURL=cn.d.ts.map
5
+ export { cn };
@@ -167,6 +167,29 @@ const zSteps = [
167
167
  "tf-toast"
168
168
  ];
169
169
  const utilityFamilies = {
170
+ "tf-animation": [
171
+ "tf-blend-hushed",
172
+ "tf-blended",
173
+ "tf-breathing",
174
+ "tf-chip-arrives",
175
+ "tf-chip-departs",
176
+ "tf-cloud-breathing",
177
+ "tf-lands",
178
+ "tf-looping",
179
+ "tf-pinging",
180
+ "tf-pops",
181
+ "tf-shaken",
182
+ "tf-tallies",
183
+ "tf-turning",
184
+ "tf-twinkling"
185
+ ],
186
+ "tf-cast": [
187
+ "tf-lifted",
188
+ "tf-pressed",
189
+ "tf-raised",
190
+ "tf-settled",
191
+ "tf-settled-quiet"
192
+ ],
170
193
  "tf-cloud-blur": [
171
194
  "tf-cloud-md",
172
195
  "tf-cloud-tight",
@@ -198,6 +221,11 @@ const utilityFamilies = {
198
221
  ],
199
222
  "tf-lit": ["tf-lit-inside", "tf-lit-rest"],
200
223
  "tf-mark-tone": ["tf-mark-failed", "tf-mark-lit"],
224
+ "tf-mask": [
225
+ "tf-cloud-low",
226
+ "tf-faded-x",
227
+ "tf-scroll-faded"
228
+ ],
201
229
  "tf-moves": ["tf-moves-glide", "tf-moves-spring"],
202
230
  "tf-plated": ["tf-plated", "tf-plated-quiet"],
203
231
  "tf-rule": [
@@ -208,10 +236,18 @@ const utilityFamilies = {
208
236
  "tf-rule-quiet",
209
237
  "tf-rule-quiet-fall"
210
238
  ],
211
- "tf-settled": ["tf-settled", "tf-settled-quiet"],
212
- "tf-slides": ["tf-slides-settle", "tf-slides-spring"]
239
+ "tf-scroll": ["tf-scroll-hidden", "tf-scroll-thin"],
240
+ "tf-slides": ["tf-slides-settle", "tf-slides-spring"],
241
+ "tf-transition": [
242
+ "tf-arrives",
243
+ "tf-crossfades",
244
+ "tf-fades",
245
+ "tf-grows",
246
+ "tf-resizes",
247
+ "tf-reveals",
248
+ "tf-slows",
249
+ "tf-transition"
250
+ ]
213
251
  };
214
252
  //#endregion
215
253
  export { durationSteps, twScales, utilityFamilies, zSteps };
216
-
217
- //# sourceMappingURL=cn.generated.js.map
package/dist/cn.js CHANGED
@@ -21,5 +21,3 @@ const twMerge = extendTailwindMerge({ extend: {
21
21
  const cn = (...inputs) => twMerge(clsx(inputs));
22
22
  //#endregion
23
23
  export { cn };
24
-
25
- //# sourceMappingURL=cn.js.map
package/dist/control.d.ts CHANGED
@@ -10,5 +10,4 @@ declare const controlIcon: {
10
10
  xs: string;
11
11
  };
12
12
  //#endregion
13
- export { type ButtonSize, type ControlSize, type FieldSize, controlIcon, defaultFieldSize };
14
- //# sourceMappingURL=control.d.ts.map
13
+ export { type ButtonSize, type ControlSize, type FieldSize, controlIcon, defaultFieldSize };
package/dist/control.js CHANGED
@@ -8,5 +8,3 @@ const controlIcon = {
8
8
  };
9
9
  //#endregion
10
10
  export { controlIcon, defaultFieldSize };
11
-
12
- //# sourceMappingURL=control.js.map