@tarsis/toolkit 0.6.6 → 0.7.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.
Files changed (78) hide show
  1. package/dist/Container-BVX2MW1U.cjs +138 -0
  2. package/dist/Container-BirkN1fA.js +119 -0
  3. package/dist/SelectBase-BC6WKZVF.cjs +448 -0
  4. package/dist/SelectBase-DPcXvMTa.js +399 -0
  5. package/dist/Slot-SOe-b2n6.cjs +77 -0
  6. package/dist/Slot-z71j7q57.js +65 -0
  7. package/dist/animation-BFpILbqb.js +102 -0
  8. package/dist/animation-BauloIgQ.cjs +119 -0
  9. package/dist/assets-BMqH4phf.cjs +52 -0
  10. package/dist/assets-huTvlamy.js +29 -0
  11. package/dist/audio/fail.mp3 +0 -0
  12. package/dist/audio/fail.ogg +0 -0
  13. package/dist/audio/hover.mp3 +0 -0
  14. package/dist/audio/hover.ogg +0 -0
  15. package/dist/audio/lock/fail.mp3 +0 -0
  16. package/dist/audio/lock/fail.ogg +0 -0
  17. package/dist/audio/lock/hover.mp3 +0 -0
  18. package/dist/audio/lock/hover.ogg +0 -0
  19. package/dist/audio/lock/prev-next.mp3 +0 -0
  20. package/dist/audio/lock/prev-next.ogg +0 -0
  21. package/dist/audio/lock/select.mp3 +0 -0
  22. package/dist/audio/lock/select.ogg +0 -0
  23. package/dist/audio/lock/success.mp3 +0 -0
  24. package/dist/audio/lock/success.ogg +0 -0
  25. package/dist/audio/prev-next.mp3 +0 -0
  26. package/dist/audio/prev-next.ogg +0 -0
  27. package/dist/audio/select.mp3 +0 -0
  28. package/dist/audio/select.ogg +0 -0
  29. package/dist/audio/success.mp3 +0 -0
  30. package/dist/audio/success.ogg +0 -0
  31. package/dist/chunk-CKQMccvm.cjs +28 -0
  32. package/dist/fonts/orbitron/orbitron-black.fnt +426 -0
  33. package/dist/fonts/orbitron/orbitron-black.png +0 -0
  34. package/dist/fonts/orbitron-black.fnt +426 -0
  35. package/dist/fonts/orbitron-black.png +0 -0
  36. package/dist/gl-B0NhVYRl.cjs +177 -0
  37. package/dist/gl-BipoEx9s.js +171 -0
  38. package/dist/hooks.cjs +661 -24
  39. package/dist/hooks.d.ts +72 -0
  40. package/dist/hooks.js +635 -1
  41. package/dist/index.cjs +26708 -384
  42. package/dist/index.d.ts +913 -27
  43. package/dist/index.js +26282 -3
  44. package/dist/layout.cjs +5 -0
  45. package/dist/layout.d.ts +45 -0
  46. package/dist/layout.js +2 -0
  47. package/dist/primitives.cjs +13 -0
  48. package/dist/primitives.d.ts +178 -0
  49. package/dist/primitives.js +3 -0
  50. package/dist/server.cjs +25 -0
  51. package/dist/server.d.ts +70 -0
  52. package/dist/server.js +2 -0
  53. package/dist/styles.css +4017 -2943
  54. package/dist/tokens-B2AxRYyF.js +434 -0
  55. package/dist/tokens-DlMougUi.cjs +469 -0
  56. package/dist/tokens.cjs +12 -0
  57. package/dist/tokens.d.ts +435 -0
  58. package/dist/tokens.js +3 -0
  59. package/dist/useMergeRefs-BM2-gSLn.js +16 -0
  60. package/dist/useMergeRefs-C_l6omwU.cjs +28 -0
  61. package/dist/utils-BGgmkNY4.cjs +330 -0
  62. package/dist/utils-Dw5El_3G.js +222 -0
  63. package/dist/utils.cjs +44 -38
  64. package/dist/utils.d.ts +75 -0
  65. package/dist/utils.js +3 -1
  66. package/dist/values-BTw18-W5.js +138 -0
  67. package/dist/values-BqSJ0h9o.cjs +275 -0
  68. package/package.json +88 -36
  69. package/dist/gl-C1OpenGq.js +0 -3258
  70. package/dist/gl-LtHwn-bj.cjs +0 -3262
  71. package/dist/index-Cz74WvnK.js +0 -3910
  72. package/dist/index-DhWWozeo.cjs +0 -3912
  73. package/dist/index-DvXp0wCM.cjs +0 -116866
  74. package/dist/index-JZY8IMW2.js +0 -116503
  75. package/dist/svg-BT_esDTZ.cjs +0 -236
  76. package/dist/svg-CQLdTbLk.js +0 -205
  77. package/dist/useWindowReady-6kIdYolB.cjs +0 -9317
  78. package/dist/useWindowReady-tUs-ONyG.js +0 -9224
@@ -0,0 +1,434 @@
1
+ //#region src/tokens/tokens.ts
2
+ /**
3
+ * Extract the CSS custom property name from a var() reference.
4
+ * `'var(--space-4)'` -> `'--space-4'`
5
+ */
6
+ var getVarName = (token) => {
7
+ const match = token.match(/^var\(([^,)]+)\)$/);
8
+ return match ? match[1].trim() : token;
9
+ };
10
+ /**
11
+ * Compose an alpha-adjusted color from a channel token.
12
+ * `opacity(Token.colorChannel.accent, 0.5)` -> `rgb(var(--color-channel-accent) / 0.5)`
13
+ */
14
+ var opacity = (channel, value) => `rgb(${channel} / ${value})`;
15
+ /**
16
+ * Resolve the computed value of a CSS variable token at runtime.
17
+ * Checks `document.body` first so semantic theme tokens resolve from the
18
+ * same element they are defined on, then falls back to `document.documentElement`.
19
+ */
20
+ var resolveToken = (token, element) => {
21
+ const varName = getVarName(token);
22
+ if (element) return getComputedStyle(element).getPropertyValue(varName).trim();
23
+ const bodyValue = document.body ? getComputedStyle(document.body).getPropertyValue(varName).trim() : "";
24
+ if (bodyValue) return bodyValue;
25
+ return getComputedStyle(document.documentElement).getPropertyValue(varName).trim();
26
+ };
27
+ var Token = {
28
+ color: {
29
+ black: "var(--color-black)",
30
+ white: "var(--color-white)",
31
+ accent1: "var(--color-accent1)",
32
+ accent2: "var(--color-accent2)",
33
+ accent3: "var(--color-accent3)",
34
+ accentGreen: "var(--color-accent-green)",
35
+ accentGreen1: "var(--color-accent-green1)",
36
+ surfaceCanvas: "var(--color-surface-canvas)",
37
+ surfaceRaised: "var(--color-surface-raised)",
38
+ surfaceElevated: "var(--color-surface-elevated)",
39
+ surfaceOverlay: "var(--color-surface-overlay)",
40
+ surfaceInverse: "var(--color-surface-inverse)",
41
+ surfaceDisabled: "var(--color-surface-disabled)",
42
+ textPrimary: "var(--color-text-primary)",
43
+ textSecondary: "var(--color-text-secondary)",
44
+ textTertiary: "var(--color-text-tertiary)",
45
+ textInverse: "var(--color-text-inverse)",
46
+ textDisabled: "var(--color-text-disabled)",
47
+ borderMuted: "var(--color-border-muted)",
48
+ borderSubtle: "var(--color-border-subtle)",
49
+ borderStrong: "var(--color-border-strong)",
50
+ accentPrimary: "var(--color-accent-primary)",
51
+ accentPrimaryMuted: "var(--color-accent-primary-muted)",
52
+ accentPrimaryEmphasis: "var(--color-accent-primary-emphasis)",
53
+ accentSuccess: "var(--color-accent-success)",
54
+ accentSuccessEmphasis: "var(--color-accent-success-emphasis)",
55
+ accentWarning: "var(--color-accent-warning)",
56
+ accentWarningEmphasis: "var(--color-accent-warning-emphasis)",
57
+ accentDanger: "var(--color-accent-danger)",
58
+ accentDangerEmphasis: "var(--color-accent-danger-emphasis)",
59
+ accentHighlight: "var(--color-accent-highlight)",
60
+ accentHighlightEmphasis: "var(--color-accent-highlight-emphasis)",
61
+ focusRing: "var(--color-focus-ring)",
62
+ bg: "var(--color-bg)",
63
+ gray1: "var(--color-gray1)",
64
+ gray2: "var(--color-gray2)",
65
+ gray3: "var(--color-gray3)",
66
+ gray4: "var(--color-gray4)",
67
+ gray5: "var(--color-gray5)",
68
+ gray6: "var(--color-gray6)",
69
+ gray7: "var(--color-gray7)",
70
+ gray8: "var(--color-gray8)",
71
+ gray9: "var(--color-gray9)",
72
+ gray10: "var(--color-gray10)",
73
+ gray11: "var(--color-gray11)",
74
+ gray12: "var(--color-gray12)",
75
+ grayA1: "var(--color-grayA1)",
76
+ grayA2: "var(--color-grayA2)",
77
+ grayA3: "var(--color-grayA3)",
78
+ grayA4: "var(--color-grayA4)",
79
+ grayA5: "var(--color-grayA5)",
80
+ grayA6: "var(--color-grayA6)",
81
+ grayA7: "var(--color-grayA7)",
82
+ grayA8: "var(--color-grayA8)",
83
+ grayA9: "var(--color-grayA9)",
84
+ grayA10: "var(--color-grayA10)",
85
+ grayA11: "var(--color-grayA11)",
86
+ grayA12: "var(--color-grayA12)",
87
+ blue1: "var(--color-blue1)",
88
+ blue2: "var(--color-blue2)",
89
+ blue3: "var(--color-blue3)",
90
+ blue4: "var(--color-blue4)",
91
+ blue5: "var(--color-blue5)",
92
+ blue6: "var(--color-blue6)",
93
+ blue7: "var(--color-blue7)",
94
+ blue8: "var(--color-blue8)",
95
+ blue9: "var(--color-blue9)",
96
+ blue10: "var(--color-blue10)",
97
+ blue11: "var(--color-blue11)",
98
+ blue12: "var(--color-blue12)",
99
+ green1: "var(--color-green1)",
100
+ green2: "var(--color-green2)",
101
+ green3: "var(--color-green3)",
102
+ green4: "var(--color-green4)",
103
+ green5: "var(--color-green5)",
104
+ green6: "var(--color-green6)",
105
+ green7: "var(--color-green7)",
106
+ green8: "var(--color-green8)",
107
+ green9: "var(--color-green9)",
108
+ green10: "var(--color-green10)",
109
+ green11: "var(--color-green11)",
110
+ green12: "var(--color-green12)",
111
+ amber1: "var(--color-amber1)",
112
+ amber2: "var(--color-amber2)",
113
+ amber3: "var(--color-amber3)",
114
+ amber4: "var(--color-amber4)",
115
+ amber5: "var(--color-amber5)",
116
+ amber6: "var(--color-amber6)",
117
+ amber7: "var(--color-amber7)",
118
+ amber8: "var(--color-amber8)",
119
+ amber9: "var(--color-amber9)",
120
+ amber10: "var(--color-amber10)",
121
+ amber11: "var(--color-amber11)",
122
+ amber12: "var(--color-amber12)",
123
+ purple1: "var(--color-purple1)",
124
+ purple2: "var(--color-purple2)",
125
+ purple3: "var(--color-purple3)",
126
+ purple4: "var(--color-purple4)",
127
+ purple5: "var(--color-purple5)",
128
+ purple6: "var(--color-purple6)",
129
+ purple7: "var(--color-purple7)",
130
+ purple8: "var(--color-purple8)",
131
+ purple9: "var(--color-purple9)",
132
+ purple10: "var(--color-purple10)",
133
+ purple11: "var(--color-purple11)",
134
+ purple12: "var(--color-purple12)",
135
+ red1: "var(--color-red1)",
136
+ red2: "var(--color-red2)",
137
+ red3: "var(--color-red3)",
138
+ red4: "var(--color-red4)",
139
+ red5: "var(--color-red5)",
140
+ red6: "var(--color-red6)",
141
+ red7: "var(--color-red7)",
142
+ red8: "var(--color-red8)",
143
+ red9: "var(--color-red9)",
144
+ red10: "var(--color-red10)",
145
+ red11: "var(--color-red11)",
146
+ red12: "var(--color-red12)"
147
+ },
148
+ space: {
149
+ s1: "var(--space-1)",
150
+ s2: "var(--space-2)",
151
+ s3: "var(--space-3)",
152
+ s4: "var(--space-4)",
153
+ s5: "var(--space-5)",
154
+ s6: "var(--space-6)",
155
+ s7: "var(--space-7)",
156
+ s8: "var(--space-8)",
157
+ s9: "var(--space-9)",
158
+ s10: "var(--space-10)",
159
+ s11: "var(--space-11)",
160
+ s12: "var(--space-12)",
161
+ s13: "var(--space-13)",
162
+ s14: "var(--space-14)",
163
+ s15: "var(--space-15)",
164
+ xs: "var(--space-xs)",
165
+ sm: "var(--space-sm)",
166
+ md: "var(--space-md)",
167
+ lg: "var(--space-lg)",
168
+ xl: "var(--space-xl)",
169
+ "2xl": "var(--space-2xl)",
170
+ "3xl": "var(--space-3xl)"
171
+ },
172
+ radius: {
173
+ r1: "var(--radius-1)",
174
+ r2: "var(--radius-2)",
175
+ r3: "var(--radius-3)",
176
+ r4: "var(--radius-4)",
177
+ r5: "var(--radius-5)",
178
+ r6: "var(--radius-6)",
179
+ r7: "var(--radius-7)",
180
+ xs: "var(--radius-xs)",
181
+ sm: "var(--radius-sm)",
182
+ md: "var(--radius-md)",
183
+ lg: "var(--radius-lg)",
184
+ xl: "var(--radius-xl)",
185
+ round: "var(--radius-round)",
186
+ pill: "var(--radius-pill)"
187
+ },
188
+ shadow: {
189
+ sm: "var(--shadow-sm)",
190
+ md: "var(--shadow-md)",
191
+ lg: "var(--shadow-lg)",
192
+ raised: "var(--shadow-raised)",
193
+ overlay: "var(--shadow-overlay)"
194
+ },
195
+ font: {
196
+ fancy: "var(--font-fancy)",
197
+ body: "var(--font-body)",
198
+ numeric: "var(--font-numeric)"
199
+ },
200
+ fontSize: {
201
+ f1: "var(--font-size-1)",
202
+ f2: "var(--font-size-2)",
203
+ f3: "var(--font-size-3)",
204
+ f4: "var(--font-size-4)",
205
+ f5: "var(--font-size-5)",
206
+ f6: "var(--font-size-6)",
207
+ f7: "var(--font-size-7)"
208
+ },
209
+ fontWeight: {
210
+ regular: "var(--font-weight-regular)",
211
+ medium: "var(--font-weight-medium)",
212
+ semibold: "var(--font-weight-semibold)",
213
+ bold: "var(--font-weight-bold)"
214
+ },
215
+ lineHeight: {
216
+ tight: "var(--line-height-tight)",
217
+ snug: "var(--line-height-snug)",
218
+ body: "var(--line-height-body)",
219
+ loose: "var(--line-height-loose)"
220
+ },
221
+ letterSpacing: {
222
+ tight: "var(--letter-spacing-tight)",
223
+ normal: "var(--letter-spacing-normal)",
224
+ wide: "var(--letter-spacing-wide)"
225
+ },
226
+ duration: {
227
+ fastest: "var(--duration-fastest)",
228
+ fast: "var(--duration-fast)",
229
+ normal: "var(--duration-normal)",
230
+ slow: "var(--duration-slow)",
231
+ slowest: "var(--duration-slowest)"
232
+ },
233
+ easing: {
234
+ snappy: "var(--easing-snappy)",
235
+ inQuad: "var(--ease-in-quad)",
236
+ inCubic: "var(--ease-in-cubic)",
237
+ inQuart: "var(--ease-in-quart)",
238
+ inQuint: "var(--ease-in-quint)",
239
+ inExpo: "var(--ease-in-expo)",
240
+ inCirc: "var(--ease-in-circ)",
241
+ outQuad: "var(--ease-out-quad)",
242
+ outCubic: "var(--ease-out-cubic)",
243
+ outQuart: "var(--ease-out-quart)",
244
+ outQuint: "var(--ease-out-quint)",
245
+ outExpo: "var(--ease-out-expo)",
246
+ outCirc: "var(--ease-out-circ)",
247
+ inOutQuad: "var(--ease-in-out-quad)",
248
+ inOutCubic: "var(--ease-in-out-cubic)",
249
+ inOutQuart: "var(--ease-in-out-quart)",
250
+ inOutQuint: "var(--ease-in-out-quint)",
251
+ inOutExpo: "var(--ease-in-out-expo)",
252
+ inOutCirc: "var(--ease-in-out-circ)"
253
+ },
254
+ transition: {
255
+ all: "var(--transition-all)",
256
+ shadow: "var(--transition-shadow)",
257
+ colors: "var(--transition-colors)",
258
+ background: "var(--transition-background)",
259
+ border: "var(--transition-border)",
260
+ opacity: "var(--transition-opacity)",
261
+ transform: "var(--transition-transform)"
262
+ },
263
+ colorChannel: {
264
+ accent: "var(--color-channel-accent)",
265
+ success: "var(--color-channel-success)",
266
+ danger: "var(--color-channel-danger)",
267
+ warning: "var(--color-channel-warning)",
268
+ highlight: "var(--color-channel-highlight)",
269
+ white: "var(--color-channel-white)",
270
+ black: "var(--color-channel-black)"
271
+ },
272
+ effectChannel: {
273
+ accent: "var(--effect-channel-accent)",
274
+ danger: "var(--effect-channel-danger)",
275
+ focusOutline: "var(--effect-channel-focus-outline)",
276
+ glass: "var(--effect-channel-glass)",
277
+ highlight: "var(--effect-channel-highlight)",
278
+ shadow: "var(--effect-channel-shadow)"
279
+ },
280
+ effect: {
281
+ accentRingSoft: "var(--effect-accent-ring-soft)",
282
+ focusOutline: "var(--effect-focus-outline)",
283
+ focusOutlineHighlight: "var(--effect-focus-outline-highlight)",
284
+ focusShadowAccent: "var(--effect-focus-shadow-accent)",
285
+ focusShadowHighlight: "var(--effect-focus-shadow-highlight)",
286
+ glassBorder: "var(--effect-glass-border)",
287
+ glassBorderSoft: "var(--effect-glass-border-soft)",
288
+ glassRing: "var(--effect-glass-ring)",
289
+ glassShadowDepth: "var(--effect-glass-shadow-depth)",
290
+ glassShadowSoft: "var(--effect-glass-shadow-soft)",
291
+ glassShell: "var(--effect-glass-shell)",
292
+ glassSurface: "var(--effect-glass-surface)",
293
+ glowBorder: "var(--effect-glow-border)",
294
+ glowCool: "var(--effect-glow-cool)",
295
+ glowOutline: "var(--effect-glow-outline)",
296
+ glowSheenEnd: "var(--effect-glow-sheen-end)",
297
+ glowSheenStart: "var(--effect-glow-sheen-start)",
298
+ glowVeil: "var(--effect-glow-veil)",
299
+ glowWarm: "var(--effect-glow-warm)",
300
+ glossLineFaint: "var(--effect-gloss-line-faint)",
301
+ glossLineMedium: "var(--effect-gloss-line-medium)",
302
+ glossLineSoft: "var(--effect-gloss-line-soft)",
303
+ glossLineStrong: "var(--effect-gloss-line-strong)",
304
+ highlightTrail: "var(--effect-highlight-trail)",
305
+ overlayScrim: "var(--effect-overlay-scrim)",
306
+ selectionAccent: "var(--effect-selection-accent)",
307
+ shadowFaint: "var(--effect-shadow-faint)",
308
+ shadowInteractive: "var(--effect-shadow-interactive)",
309
+ shadowMuted: "var(--effect-shadow-muted)",
310
+ shadowSoft: "var(--effect-shadow-soft)",
311
+ shadowStrong: "var(--effect-shadow-strong)",
312
+ thumbShadow: "var(--effect-thumb-shadow)",
313
+ tooltipSurface: "var(--effect-tooltip-surface)"
314
+ },
315
+ utils: { opacity },
316
+ textStyle: {
317
+ heading1: "var(--text-heading-1)",
318
+ heading2: "var(--text-heading-2)",
319
+ heading3: "var(--text-heading-3)",
320
+ body: "var(--text-body)",
321
+ bodyEmphasis: "var(--text-body-emphasis)",
322
+ small: "var(--text-small)",
323
+ caption: "var(--text-caption)"
324
+ },
325
+ zIndex: {
326
+ n1: "var(--z-index-n1)",
327
+ z0: "var(--z-index-0)",
328
+ z1: "var(--z-index-1)",
329
+ z2: "var(--z-index-2)",
330
+ z3: "var(--z-index-3)",
331
+ z4: "var(--z-index-4)",
332
+ z5: "var(--z-index-5)",
333
+ max: "var(--z-index-max)"
334
+ },
335
+ breakpoint: {
336
+ sm: "var(--breakpoint-sm)",
337
+ md: "var(--breakpoint-md)",
338
+ lg: "var(--breakpoint-lg)",
339
+ xl: "var(--breakpoint-xl)"
340
+ },
341
+ focusRingWidth: "var(--focus-ring-width)"
342
+ };
343
+ //#endregion
344
+ //#region src/tokens/spring.ts
345
+ /**
346
+ * Standardised spring presets for framer-motion / react-spring.
347
+ * Usage: <motion.div transition={springPreset.bouncy} />
348
+ */
349
+ var springPreset = {
350
+ stiff: {
351
+ type: "spring",
352
+ stiffness: 400,
353
+ damping: 30,
354
+ mass: 1
355
+ },
356
+ bouncy: {
357
+ type: "spring",
358
+ stiffness: 300,
359
+ damping: 15,
360
+ mass: 1
361
+ },
362
+ gentle: {
363
+ type: "spring",
364
+ stiffness: 150,
365
+ damping: 20,
366
+ mass: 1
367
+ },
368
+ snappy: {
369
+ type: "spring",
370
+ stiffness: 500,
371
+ damping: 35,
372
+ mass: .8
373
+ },
374
+ slow: {
375
+ type: "spring",
376
+ stiffness: 100,
377
+ damping: 20,
378
+ mass: 1.5
379
+ }
380
+ };
381
+ //#endregion
382
+ //#region src/tokens/colorValidation.ts
383
+ /**
384
+ * All semantic CSS custom property names that must be defined per theme.
385
+ * Used for CI/test validation to assert theme completeness.
386
+ */
387
+ var REQUIRED_SEMANTIC_VARS = [
388
+ "--color-surface-canvas",
389
+ "--color-surface-raised",
390
+ "--color-surface-elevated",
391
+ "--color-surface-overlay",
392
+ "--color-surface-inverse",
393
+ "--color-surface-disabled",
394
+ "--color-text-primary",
395
+ "--color-text-secondary",
396
+ "--color-text-tertiary",
397
+ "--color-text-inverse",
398
+ "--color-text-disabled",
399
+ "--color-border-muted",
400
+ "--color-border-subtle",
401
+ "--color-border-strong",
402
+ "--color-accent-primary",
403
+ "--color-accent-primary-muted",
404
+ "--color-accent-primary-emphasis",
405
+ "--color-accent-success",
406
+ "--color-accent-success-emphasis",
407
+ "--color-accent-warning",
408
+ "--color-accent-warning-emphasis",
409
+ "--color-accent-danger",
410
+ "--color-accent-danger-emphasis",
411
+ "--color-accent-highlight",
412
+ "--color-accent-highlight-emphasis",
413
+ "--color-focus-ring",
414
+ "--color-bg"
415
+ ];
416
+ /**
417
+ * Validate that all required semantic CSS variables are defined
418
+ * on the given element (defaults to `document.body`).
419
+ */
420
+ var validateColorScheme = (element) => {
421
+ const el = element ?? document.body;
422
+ const computed = getComputedStyle(el);
423
+ const missing = [];
424
+ const present = [];
425
+ for (const varName of REQUIRED_SEMANTIC_VARS) if (computed.getPropertyValue(varName).trim()) present.push(varName);
426
+ else missing.push(varName);
427
+ return {
428
+ valid: missing.length === 0,
429
+ missing,
430
+ present
431
+ };
432
+ };
433
+ //#endregion
434
+ export { getVarName as a, Token as i, validateColorScheme as n, resolveToken as o, springPreset as r, REQUIRED_SEMANTIC_VARS as t };