@styleframe/theme 2.3.0 → 2.5.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.
package/dist/theme.d.ts CHANGED
@@ -3,95 +3,15 @@ import { ModifierFactory } from '@styleframe/core';
3
3
  import { Reference } from '@styleframe/core';
4
4
  import { Styleframe } from '@styleframe/core';
5
5
  import { TokenValue } from '@styleframe/core';
6
+ import { UtilityAutogenerateFn } from '@styleframe/core';
6
7
  import { UtilityCallbackFn } from '@styleframe/core';
7
8
  import { UtilityCreatorFn } from '@styleframe/core';
8
9
  import { Variable } from '@styleframe/core';
9
10
 
10
- /**
11
- * Creates a generic composable function for a CSS utility.
12
- *
13
- * This factory function generates `use*Utility` composables (like `useMarginUtility`, `usePaddingUtility`, etc.)
14
- * from a utility name and factory function.
15
- *
16
- * @param utilityName - The utility name (e.g., 'margin', 'padding')
17
- * @param factory - Function that receives { value } and returns CSS declarations
18
- * @param options - Configuration options
19
- * @returns A composable function that creates utilities for the given property
20
- *
21
- * @example
22
- * ```typescript
23
- * // Create a useMarginUtility composable
24
- * export const useMarginUtility = createUseUtility(
25
- * 'm',
26
- * ({ value }) => ({ margin: value })
27
- * );
28
- *
29
- * // Usage
30
- * const s = styleframe();
31
- * const createMargin = useMarginUtility(s, {
32
- * sm: '0.5rem',
33
- * md: '1rem',
34
- * lg: '1.5rem',
35
- * });
36
- * ```
37
- */
38
- export declare function createUseUtility<UtilityName extends string, Defaults extends Record<string, TokenValue> = Record<string, TokenValue>>(utilityName: UtilityName, factory: UtilityCallbackFn, options?: CreateUseUtilityOptions<Defaults>): <T extends Record<string, TokenValue> = Defaults>(s: Styleframe, values?: T, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
39
-
40
- export declare interface CreateUseUtilityOptions<Defaults extends Record<string, TokenValue>> {
41
- /** Default values for the utility */
42
- defaults?: Defaults;
43
- /** Whether to merge user values with defaults (true) or replace them (false) */
44
- mergeDefaults?: boolean;
45
- }
46
-
47
- /**
48
- * Creates a generic composable function for a CSS property.
49
- *
50
- * This factory function generates `use*` composables (like `useFontFamily`, `useLineHeight`, etc.)
51
- * from a CSS property name string.
52
- *
53
- * @param propertyName - The CSS property name (e.g., 'font-family', 'line-height')
54
- * @returns A composable function that creates variables for the given property
55
- *
56
- * @example
57
- * ```typescript
58
- * import { styleframe } from "styleframe";
59
- * import { createUseVariable } from "styleframe/theme";
60
- *
61
- * // Create a useFontFamily composable
62
- * const useFontFamily = createUseVariable("font-family");
63
- *
64
- * const s = styleframe();
65
- * const { fontFamily, fontFamilyMono } = useFontFamily(s, {
66
- * default: "Arial, sans-serif",
67
- * mono: "Courier, monospace",
68
- * });
69
- * ```
70
- *
71
- * @example
72
- * ```typescript
73
- * // Create a useLineHeight composable
74
- * const useLineHeight = createUseVariable("line-height");
75
- *
76
- * const s = styleframe();
77
- * const { lineHeight, lineHeightTight, lineHeightLoose } = useLineHeight(s, {
78
- * default: "1.5",
79
- * tight: "1.25",
80
- * loose: "1.75",
81
- * });
82
- * ```
83
- */
84
- export declare function createUseVariable<PropertyName extends string, PropertyType = TokenValue, Delimiter extends string = ".", Defaults extends Record<string, PropertyType> = Record<string, PropertyType>, MergeDefaults extends boolean = false>(propertyName: PropertyName, { defaults, mergeDefaults, transform, delimiter, }?: {
85
- defaults?: Defaults;
86
- mergeDefaults?: MergeDefaults;
87
- transform?: (value: PropertyType) => TokenValue;
88
- delimiter?: Delimiter;
89
- }): <T extends Record<string, PropertyType> = Defaults>(s: Styleframe, tokens?: T) => ExportKeys<PropertyName, MergeDefaults extends true ? Defaults & T : T, Delimiter>;
90
-
91
11
  /**
92
12
  * Default align-content utility values matching Tailwind CSS.
93
13
  */
94
- export declare const defaultAlignContentValues: {
14
+ export declare const alignContentValues: {
95
15
  normal: string;
96
16
  center: string;
97
17
  start: string;
@@ -106,7 +26,7 @@ export declare const defaultAlignContentValues: {
106
26
  /**
107
27
  * Default align-items utility values matching Tailwind CSS.
108
28
  */
109
- export declare const defaultAlignItemsValues: {
29
+ export declare const alignItemsValues: {
110
30
  start: string;
111
31
  end: string;
112
32
  center: string;
@@ -117,7 +37,7 @@ export declare const defaultAlignItemsValues: {
117
37
  /**
118
38
  * Default align-self utility values matching Tailwind CSS.
119
39
  */
120
- export declare const defaultAlignSelfValues: {
40
+ export declare const alignSelfValues: {
121
41
  auto: string;
122
42
  start: string;
123
43
  end: string;
@@ -126,10 +46,15 @@ export declare const defaultAlignSelfValues: {
126
46
  baseline: string;
127
47
  };
128
48
 
49
+ /**
50
+ * Generates all variation keys for all colors in the record
51
+ */
52
+ declare type AllColorVariations<TColors extends Record<string, string>> = UnionToIntersection<ColorVariationsForKey<keyof TColors>>;
53
+
129
54
  /**
130
55
  * Default animation utility values matching Tailwind CSS.
131
56
  */
132
- export declare const defaultAnimationValues: {
57
+ export declare const animationValues: {
133
58
  none: string;
134
59
  spin: string;
135
60
  ping: string;
@@ -140,15 +65,15 @@ export declare const defaultAnimationValues: {
140
65
  /**
141
66
  * Default appearance utility values matching Tailwind CSS.
142
67
  */
143
- export declare const defaultAppearanceValues: {
68
+ export declare const appearanceValues: {
144
69
  none: string;
145
70
  auto: string;
146
71
  };
147
72
 
148
73
  /**
149
- * Default aspect ratio utility values matching Tailwind CSS.
74
+ * Default aspect-ratio utility values matching Tailwind CSS.
150
75
  */
151
- export declare const defaultAspectRatioValues: {
76
+ export declare const aspectRatioValues: {
152
77
  auto: string;
153
78
  square: string;
154
79
  video: string;
@@ -157,7 +82,7 @@ export declare const defaultAspectRatioValues: {
157
82
  /**
158
83
  * Default backface-visibility utility values matching Tailwind CSS.
159
84
  */
160
- export declare const defaultBackfaceVisibilityValues: {
85
+ export declare const backfaceVisibilityValues: {
161
86
  visible: string;
162
87
  hidden: string;
163
88
  };
@@ -165,7 +90,7 @@ export declare const defaultBackfaceVisibilityValues: {
165
90
  /**
166
91
  * Default background-attachment utility values matching Tailwind CSS.
167
92
  */
168
- export declare const defaultBackgroundAttachmentValues: {
93
+ export declare const backgroundAttachmentValues: {
169
94
  fixed: string;
170
95
  local: string;
171
96
  scroll: string;
@@ -174,7 +99,7 @@ export declare const defaultBackgroundAttachmentValues: {
174
99
  /**
175
100
  * Default background-blend-mode utility values matching Tailwind CSS.
176
101
  */
177
- export declare const defaultBackgroundBlendModeValues: {
102
+ export declare const backgroundBlendModeValues: {
178
103
  normal: string;
179
104
  multiply: string;
180
105
  screen: string;
@@ -196,7 +121,7 @@ export declare const defaultBackgroundBlendModeValues: {
196
121
  /**
197
122
  * Default background-clip utility values matching Tailwind CSS.
198
123
  */
199
- export declare const defaultBackgroundClipValues: {
124
+ export declare const backgroundClipValues: {
200
125
  border: string;
201
126
  padding: string;
202
127
  content: string;
@@ -206,7 +131,7 @@ export declare const defaultBackgroundClipValues: {
206
131
  /**
207
132
  * Default background-image utility values matching Tailwind CSS.
208
133
  */
209
- export declare const defaultBackgroundImageValues: {
134
+ export declare const backgroundImageValues: {
210
135
  none: string;
211
136
  "gradient-to-t": string;
212
137
  "gradient-to-tr": string;
@@ -221,7 +146,7 @@ export declare const defaultBackgroundImageValues: {
221
146
  /**
222
147
  * Default background-origin utility values matching Tailwind CSS.
223
148
  */
224
- export declare const defaultBackgroundOriginValues: {
149
+ export declare const backgroundOriginValues: {
225
150
  border: string;
226
151
  padding: string;
227
152
  content: string;
@@ -230,7 +155,7 @@ export declare const defaultBackgroundOriginValues: {
230
155
  /**
231
156
  * Default background-position utility values matching Tailwind CSS.
232
157
  */
233
- export declare const defaultBackgroundPositionValues: {
158
+ export declare const backgroundPositionValues: {
234
159
  bottom: string;
235
160
  center: string;
236
161
  left: string;
@@ -245,7 +170,7 @@ export declare const defaultBackgroundPositionValues: {
245
170
  /**
246
171
  * Default background-repeat utility values matching Tailwind CSS.
247
172
  */
248
- export declare const defaultBackgroundRepeatValues: {
173
+ export declare const backgroundRepeatValues: {
249
174
  repeat: string;
250
175
  "no-repeat": string;
251
176
  "repeat-x": string;
@@ -257,7 +182,7 @@ export declare const defaultBackgroundRepeatValues: {
257
182
  /**
258
183
  * Default background-size utility values matching Tailwind CSS.
259
184
  */
260
- export declare const defaultBackgroundSizeValues: {
185
+ export declare const backgroundSizeValues: {
261
186
  auto: string;
262
187
  cover: string;
263
188
  contain: string;
@@ -266,24 +191,23 @@ export declare const defaultBackgroundSizeValues: {
266
191
  /**
267
192
  * Default border-collapse utility values matching Tailwind CSS.
268
193
  */
269
- export declare const defaultBorderCollapseValues: {
194
+ export declare const borderCollapseValues: {
270
195
  collapse: string;
271
196
  separate: string;
272
197
  };
273
198
 
274
- /**
275
- * Default border-style utility values matching Tailwind CSS.
276
- */
277
- export declare const defaultBorderStyleUtilityValues: {
278
- solid: string;
279
- dashed: string;
280
- dotted: string;
281
- double: string;
282
- hidden: string;
199
+ export declare const borderRadiusValues: {
200
+ default: string;
283
201
  none: string;
202
+ sm: string;
203
+ md: string;
204
+ lg: string;
205
+ xl: string;
206
+ "2xl": string;
207
+ full: string;
284
208
  };
285
209
 
286
- export declare const defaultBorderStyleValues: {
210
+ export declare const borderStyleValues: {
287
211
  readonly default: "@solid";
288
212
  readonly none: "none";
289
213
  readonly solid: "solid";
@@ -295,7 +219,7 @@ export declare const defaultBorderStyleValues: {
295
219
  readonly outset: "outset";
296
220
  };
297
221
 
298
- export declare const defaultBorderWidthValues: {
222
+ export declare const borderWidthValues: {
299
223
  default: string;
300
224
  none: number;
301
225
  thin: string;
@@ -306,12 +230,12 @@ export declare const defaultBorderWidthValues: {
306
230
  /**
307
231
  * Default box-decoration-break utility values matching Tailwind CSS.
308
232
  */
309
- export declare const defaultBoxDecorationBreakValues: {
233
+ export declare const boxDecorationBreakValues: {
310
234
  clone: string;
311
235
  slice: string;
312
236
  };
313
237
 
314
- export declare const defaultBoxShadowValues: {
238
+ export declare const boxShadowValues: {
315
239
  default: string;
316
240
  none: string;
317
241
  xs: string;
@@ -327,7 +251,7 @@ export declare const defaultBoxShadowValues: {
327
251
  /**
328
252
  * Default box-sizing utility values matching Tailwind CSS.
329
253
  */
330
- export declare const defaultBoxSizingValues: {
254
+ export declare const boxSizingValues: {
331
255
  border: string;
332
256
  content: string;
333
257
  };
@@ -335,7 +259,7 @@ export declare const defaultBoxSizingValues: {
335
259
  /**
336
260
  * Default break-after utility values matching Tailwind CSS.
337
261
  */
338
- export declare const defaultBreakAfterValues: {
262
+ export declare const breakAfterValues: {
339
263
  auto: string;
340
264
  avoid: string;
341
265
  all: string;
@@ -349,7 +273,7 @@ export declare const defaultBreakAfterValues: {
349
273
  /**
350
274
  * Default break-before utility values matching Tailwind CSS.
351
275
  */
352
- export declare const defaultBreakBeforeValues: {
276
+ export declare const breakBeforeValues: {
353
277
  auto: string;
354
278
  avoid: string;
355
279
  all: string;
@@ -363,14 +287,14 @@ export declare const defaultBreakBeforeValues: {
363
287
  /**
364
288
  * Default break-inside utility values matching Tailwind CSS.
365
289
  */
366
- export declare const defaultBreakInsideValues: {
290
+ export declare const breakInsideValues: {
367
291
  auto: string;
368
292
  avoid: string;
369
293
  "avoid-page": string;
370
294
  "avoid-column": string;
371
295
  };
372
296
 
373
- export declare const defaultBreakpointValues: {
297
+ export declare const breakpointValues: {
374
298
  xs: number;
375
299
  sm: number;
376
300
  md: number;
@@ -381,7 +305,7 @@ export declare const defaultBreakpointValues: {
381
305
  /**
382
306
  * Default caption-side utility values matching Tailwind CSS.
383
307
  */
384
- export declare const defaultCaptionSideValues: {
308
+ export declare const captionSideValues: {
385
309
  top: string;
386
310
  bottom: string;
387
311
  };
@@ -389,7 +313,7 @@ export declare const defaultCaptionSideValues: {
389
313
  /**
390
314
  * Default clear utility values matching Tailwind CSS.
391
315
  */
392
- export declare const defaultClearValues: {
316
+ export declare const clearValues: {
393
317
  start: string;
394
318
  end: string;
395
319
  left: string;
@@ -398,7 +322,7 @@ export declare const defaultClearValues: {
398
322
  none: string;
399
323
  };
400
324
 
401
- export declare const defaultColorLightnessValues: {
325
+ export declare const colorLightnessValues: {
402
326
  readonly 50: 5;
403
327
  readonly 100: 10;
404
328
  readonly 200: 20;
@@ -412,34 +336,234 @@ export declare const defaultColorLightnessValues: {
412
336
  readonly 950: 95;
413
337
  };
414
338
 
339
+ /**
340
+ * Color result type that strongly types base colors and all variations.
341
+ */
342
+ declare type ColorResult<TColors extends Record<string, string> | false, TMerge extends boolean = false> = TColors extends false ? undefined : TColors extends Record<string, string> ? TMerge extends true ? ExportKeys<"color", Omit<DefaultColors, keyof TColors> & TColors, "."> & AllColorVariations<Omit<DefaultColors, keyof TColors> & TColors> : ExportKeys<"color", TColors, "."> & AllColorVariations<TColors> : ExportKeys<"color", DefaultColors, "."> & AllColorVariations<DefaultColors>;
343
+
415
344
  /**
416
345
  * Default color-scheme utility values matching Tailwind CSS.
417
346
  */
418
- export declare const defaultColorSchemeValues: {
347
+ export declare const colorSchemeValues: {
419
348
  normal: string;
420
349
  light: string;
421
350
  dark: string;
422
351
  "light-dark": string;
423
352
  };
424
353
 
425
- export declare const defaultColorShadeValues: {
354
+ export declare const colorShadeValues: {
426
355
  readonly 50: 5;
427
356
  readonly 100: 10;
428
357
  readonly 150: 15;
429
358
  readonly 200: 20;
430
359
  };
431
360
 
432
- export declare const defaultColorTintValues: {
361
+ /**
362
+ * Configuration for color generation behavior
363
+ */
364
+ export declare interface ColorsMetaConfig {
365
+ generateLightness?: boolean;
366
+ generateShades?: boolean;
367
+ generateTints?: boolean;
368
+ lightnessLevels?: Record<string | number, number>;
369
+ shadeLevels?: Record<string | number, number>;
370
+ tintLevels?: Record<string | number, number>;
371
+ }
372
+
373
+ export declare const colorTintValues: {
433
374
  readonly 50: 5;
434
375
  readonly 100: 10;
435
376
  readonly 150: 15;
436
377
  readonly 200: 20;
437
378
  };
438
379
 
380
+ export declare const colorValues: {
381
+ primary: string;
382
+ secondary: string;
383
+ success: string;
384
+ warning: string;
385
+ danger: string;
386
+ info: string;
387
+ light: string;
388
+ dark: string;
389
+ };
390
+
391
+ /**
392
+ * Generates all variation keys for a single color name (distributive over K)
393
+ */
394
+ declare type ColorVariationsForKey<K> = K extends string ? ExportKeys<`color.${K}`, DefaultLightnessLevels, "-"> & ExportKeys<`color.${K}-shade`, DefaultShadeLevels, "-"> & ExportKeys<`color.${K}-tint`, DefaultTintLevels, "-"> : never;
395
+
396
+ /**
397
+ * Creates an autogenerate function that handles @-prefixed numeric multiplier values.
398
+ *
399
+ * When a value like "@1.5" is detected (@ prefix + numeric), it generates:
400
+ * - key: the numeric value as string (e.g., "1.5")
401
+ * - value: calc(var(--baseVariable, fallback) * multiplier)
402
+ *
403
+ * Non-multiplier values fall back to the default transformUtilityKey behavior.
404
+ *
405
+ * @example
406
+ * ```typescript
407
+ * const autogenerate = createMultiplierAutogenerate({
408
+ * s,
409
+ * baseVariable: "spacing",
410
+ * fallback: "1rem",
411
+ * });
412
+ *
413
+ * // Usage with utility:
414
+ * const createMargin = s.utility("margin", ({ value }) => ({ margin: value }), { autogenerate });
415
+ * createMargin(["@1.5", "@2", "@-1"]);
416
+ * // Generates:
417
+ * // ._margin:1.5 { margin: calc(var(--spacing, 1rem) * 1.5); }
418
+ * // ._margin:2 { margin: calc(var(--spacing, 1rem) * 2); }
419
+ * // ._margin:-1 { margin: calc(var(--spacing, 1rem) * -1); }
420
+ * ```
421
+ */
422
+ export declare function createMultiplierAutogenerate(options: CreateMultiplierAutogenerateOptions): UtilityAutogenerateFn;
423
+
424
+ export declare interface CreateMultiplierAutogenerateOptions {
425
+ /** The Styleframe instance (required for css template literal) */
426
+ s: Styleframe;
427
+ /** The base variable to multiply against (variable object or variable name string) */
428
+ baseVariable: Variable | string;
429
+ /** Fallback value if the base variable is not defined (e.g., "1rem") */
430
+ fallback?: string;
431
+ /** Optional key replacer function for non-multiplier values */
432
+ replacer?: (key: string) => string;
433
+ }
434
+
435
+ /**
436
+ * Creates a composable function for spacing-based CSS utilities with multiplier support.
437
+ *
438
+ * This is similar to createUseUtility but adds automatic multiplier generation:
439
+ * - @-prefixed numeric values like "@1.5" become: calc(var(--spacing) * 1.5)
440
+ * - Named values and references work as normal
441
+ *
442
+ * @example
443
+ * ```typescript
444
+ * export const useMarginUtility = createUseSpacingUtility(
445
+ * 'margin',
446
+ * ({ value }) => ({ margin: value })
447
+ * );
448
+ *
449
+ * // Usage:
450
+ * const s = styleframe();
451
+ * const createMargin = useMarginUtility(s, { sm: ref(spacingSm) });
452
+ *
453
+ * // Add multiplier values (with @ prefix):
454
+ * createMargin(["@1.5", "@2", "@-1"]);
455
+ * // Generates:
456
+ * // ._margin:1.5 { margin: calc(var(--spacing) * 1.5); }
457
+ * // ._margin:2 { margin: calc(var(--spacing) * 2); }
458
+ * // ._margin:-1 { margin: calc(var(--spacing) * -1); }
459
+ * ```
460
+ */
461
+ export declare function createUseSpacingUtility<UtilityName extends string, Defaults extends Record<string, TokenValue> = Record<string, TokenValue>>(utilityName: UtilityName, factory: UtilityCallbackFn, options?: CreateUseSpacingUtilityOptions<Defaults>): <T extends Record<string, TokenValue> = Defaults>(s: Styleframe, values?: T, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
462
+
463
+ export declare interface CreateUseSpacingUtilityOptions<Defaults extends Record<string, TokenValue>> {
464
+ /** Default values for the utility */
465
+ defaults?: Defaults;
466
+ /** Whether to merge user values with defaults (true) or replace them (false) */
467
+ mergeDefaults?: boolean;
468
+ /**
469
+ * The base spacing variable name or Variable object.
470
+ * Defaults to "spacing" which references var(--spacing).
471
+ */
472
+ baseVariable?: string | Variable;
473
+ /**
474
+ * Fallback value if the base variable is not defined.
475
+ * Only used when baseVariable is a string. Defaults to "1rem".
476
+ */
477
+ fallback?: string;
478
+ }
479
+
480
+ /**
481
+ * Creates a generic composable function for a CSS utility.
482
+ *
483
+ * This factory function generates `use*Utility` composables (like `useMarginUtility`, `usePaddingUtility`, etc.)
484
+ * from a utility name and factory function.
485
+ *
486
+ * @param utilityName - The utility name (e.g., 'margin', 'padding')
487
+ * @param factory - Function that receives { value } and returns CSS declarations
488
+ * @param options - Configuration options
489
+ * @returns A composable function that creates utilities for the given property
490
+ *
491
+ * @example
492
+ * ```typescript
493
+ * // Create a useMarginUtility composable
494
+ * export const useMarginUtility = createUseUtility(
495
+ * 'm',
496
+ * ({ value }) => ({ margin: value })
497
+ * );
498
+ *
499
+ * // Usage
500
+ * const s = styleframe();
501
+ * const createMargin = useMarginUtility(s, {
502
+ * sm: '0.5rem',
503
+ * md: '1rem',
504
+ * lg: '1.5rem',
505
+ * });
506
+ * ```
507
+ */
508
+ export declare function createUseUtility<UtilityName extends string, Defaults extends Record<string, TokenValue> = Record<string, TokenValue>>(utilityName: UtilityName, factory: UtilityCallbackFn, options?: CreateUseUtilityOptions<Defaults>): <T extends Record<string, TokenValue> = Defaults>(s: Styleframe, values?: T, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
509
+
510
+ export declare interface CreateUseUtilityOptions<Defaults extends Record<string, TokenValue>> {
511
+ /** Default values for the utility */
512
+ defaults?: Defaults;
513
+ /** Whether to merge user values with defaults (true) or replace them (false) */
514
+ mergeDefaults?: boolean;
515
+ }
516
+
517
+ /**
518
+ * Creates a generic composable function for a CSS property.
519
+ *
520
+ * This factory function generates `use*` composables (like `useFontFamily`, `useLineHeight`, etc.)
521
+ * from a CSS property name string.
522
+ *
523
+ * @param propertyName - The CSS property name (e.g., 'font-family', 'line-height')
524
+ * @returns A composable function that creates variables for the given property
525
+ *
526
+ * @example
527
+ * ```typescript
528
+ * import { styleframe } from "styleframe";
529
+ * import { createUseVariable } from "styleframe/theme";
530
+ *
531
+ * // Create a useFontFamily composable
532
+ * const useFontFamily = createUseVariable("font-family");
533
+ *
534
+ * const s = styleframe();
535
+ * const { fontFamily, fontFamilyMono } = useFontFamily(s, {
536
+ * default: "Arial, sans-serif",
537
+ * mono: "Courier, monospace",
538
+ * });
539
+ * ```
540
+ *
541
+ * @example
542
+ * ```typescript
543
+ * // Create a useLineHeight composable
544
+ * const useLineHeight = createUseVariable("line-height");
545
+ *
546
+ * const s = styleframe();
547
+ * const { lineHeight, lineHeightTight, lineHeightLoose } = useLineHeight(s, {
548
+ * default: "1.5",
549
+ * tight: "1.25",
550
+ * loose: "1.75",
551
+ * });
552
+ * ```
553
+ */
554
+ export declare function createUseVariable<PropertyName extends string, PropertyType = TokenValue, Delimiter extends string = ".", Defaults extends Record<string, PropertyType> = Record<string, PropertyType>, MergeDefaults extends boolean = false>(propertyName: PropertyName, { defaults, mergeDefaults, transform, delimiter, }?: {
555
+ defaults?: Defaults;
556
+ mergeDefaults?: MergeDefaults;
557
+ transform?: (value: PropertyType) => TokenValue;
558
+ delimiter?: Delimiter;
559
+ }): <T extends Record<string, PropertyType> = Defaults>(s: Styleframe, tokens?: T, { default: isDefault }?: {
560
+ default?: boolean;
561
+ }) => ExportKeys<PropertyName, MergeDefaults extends true ? Defaults & T : T, Delimiter>;
562
+
439
563
  /**
440
564
  * Default cursor utility values matching Tailwind CSS.
441
565
  */
442
- export declare const defaultCursorValues: {
566
+ export declare const cursorValues: {
443
567
  auto: string;
444
568
  default: string;
445
569
  pointer: string;
@@ -478,10 +602,130 @@ export declare const defaultCursorValues: {
478
602
  "zoom-out": string;
479
603
  };
480
604
 
605
+ declare type DefaultBorderRadius = typeof borderRadiusValues;
606
+
607
+ declare type DefaultBorderStyle = typeof borderStyleValues;
608
+
609
+ /**
610
+ * Default border-style utility values matching Tailwind CSS.
611
+ */
612
+ export declare const defaultBorderStyleUtilityValues: {
613
+ solid: string;
614
+ dashed: string;
615
+ dotted: string;
616
+ double: string;
617
+ hidden: string;
618
+ none: string;
619
+ };
620
+
621
+ declare type DefaultBorderWidth = typeof borderWidthValues;
622
+
623
+ declare type DefaultBoxShadow = typeof boxShadowValues;
624
+
625
+ declare type DefaultBreakpoint = typeof breakpointValues;
626
+
627
+ declare type DefaultColors = typeof colorValues;
628
+
629
+ /**
630
+ * Default colors meta configuration
631
+ */
632
+ export declare const defaultColorsMetaConfig: Required<ColorsMetaConfig>;
633
+
634
+ declare type DefaultEasing = typeof easingValues;
635
+
636
+ declare type DefaultFontFamily = typeof fontFamilyValues;
637
+
638
+ declare type DefaultFontSize = typeof fontSizeValues;
639
+
640
+ declare type DefaultFontStyle = typeof fontStyleValues;
641
+
642
+ declare type DefaultFontWeight = typeof fontWeightValues;
643
+
644
+ /**
645
+ * Default font-weight utility values matching Tailwind CSS.
646
+ */
647
+ export declare const defaultFontWeightUtilityValues: {
648
+ thin: string;
649
+ extralight: string;
650
+ light: string;
651
+ normal: string;
652
+ medium: string;
653
+ semibold: string;
654
+ bold: string;
655
+ extrabold: string;
656
+ black: string;
657
+ };
658
+
659
+ declare type DefaultLetterSpacing = typeof letterSpacingValues;
660
+
661
+ declare type DefaultLightnessLevels = typeof colorLightnessValues;
662
+
663
+ declare type DefaultLineHeight = typeof lineHeightValues;
664
+
665
+ declare type DefaultScale = typeof scaleValues;
666
+
667
+ declare type DefaultShadeLevels = typeof colorShadeValues;
668
+
669
+ declare type DefaultSpacing = typeof spacingValues;
670
+
671
+ declare type DefaultTintLevels = typeof colorTintValues;
672
+
673
+ /**
674
+ * Configuration options for the default design tokens preset.
675
+ * Generic type parameters capture the shape of each domain's configuration.
676
+ *
677
+ * - Omit or set to `undefined` to use default values
678
+ * - Set to `false` to disable the domain entirely
679
+ * - Provide a custom record to use custom values
680
+ * - Set `meta.merge` to `true` to merge custom values with defaults
681
+ */
682
+ export declare interface DesignTokensPresetConfig<TSpacing extends Record<string, TokenValue> | false = DefaultSpacing, TBorderWidth extends Record<string, TokenValue> | false = DefaultBorderWidth, TBorderRadius extends Record<string, TokenValue> | false = DefaultBorderRadius, TBorderStyle extends Record<string, TokenValue> | false = DefaultBorderStyle, TBoxShadow extends Record<string, TokenValue> | false = DefaultBoxShadow, TColors extends Record<string, string> | false = DefaultColors, TFontFamily extends Record<string, TokenValue> | false = DefaultFontFamily, TFontSize extends Record<string, TokenValue> | false = DefaultFontSize, TFontStyle extends Record<string, TokenValue> | false = DefaultFontStyle, TFontWeight extends Record<string, TokenValue> | false = DefaultFontWeight, TLineHeight extends Record<string, TokenValue> | false = DefaultLineHeight, TLetterSpacing extends Record<string, TokenValue> | false = DefaultLetterSpacing, TScale extends Record<string, TokenValue> | false = DefaultScale, TBreakpoint extends Record<string, number> | false = DefaultBreakpoint, TEasing extends Record<string, TokenValue> | false = DefaultEasing, TMerge extends boolean = false> {
683
+ spacing?: TSpacing;
684
+ borderWidth?: TBorderWidth;
685
+ borderRadius?: TBorderRadius;
686
+ borderStyle?: TBorderStyle;
687
+ boxShadow?: TBoxShadow;
688
+ colors?: TColors;
689
+ meta?: MetaConfigWithMerge<TMerge>;
690
+ fontFamily?: TFontFamily;
691
+ fontSize?: TFontSize;
692
+ fontStyle?: TFontStyle;
693
+ fontWeight?: TFontWeight;
694
+ lineHeight?: TLineHeight;
695
+ letterSpacing?: TLetterSpacing;
696
+ scale?: TScale;
697
+ scalePowers?: readonly number[];
698
+ breakpoint?: TBreakpoint;
699
+ easing?: TEasing;
700
+ }
701
+
702
+ /**
703
+ * Result structure for the default design tokens preset.
704
+ * The result type reflects the exact structure based on config generics.
705
+ */
706
+ export declare interface DesignTokensPresetResult<TSpacing extends Record<string, TokenValue> | false = DefaultSpacing, TBorderWidth extends Record<string, TokenValue> | false = DefaultBorderWidth, TBorderRadius extends Record<string, TokenValue> | false = DefaultBorderRadius, TBorderStyle extends Record<string, TokenValue> | false = DefaultBorderStyle, TBoxShadow extends Record<string, TokenValue> | false = DefaultBoxShadow, TColors extends Record<string, string> | false = DefaultColors, TFontFamily extends Record<string, TokenValue> | false = DefaultFontFamily, TFontSize extends Record<string, TokenValue> | false = DefaultFontSize, TFontStyle extends Record<string, TokenValue> | false = DefaultFontStyle, TFontWeight extends Record<string, TokenValue> | false = DefaultFontWeight, TLineHeight extends Record<string, TokenValue> | false = DefaultLineHeight, TLetterSpacing extends Record<string, TokenValue> | false = DefaultLetterSpacing, TScale extends Record<string, TokenValue> | false = DefaultScale, TBreakpoint extends Record<string, number> | false = DefaultBreakpoint, TEasing extends Record<string, TokenValue> | false = DefaultEasing, TMerge extends boolean = false> {
707
+ spacing: TokenResult<TSpacing, "spacing", DefaultSpacing, TMerge>;
708
+ borderWidth: TokenResult<TBorderWidth, "border-width", DefaultBorderWidth, TMerge>;
709
+ borderRadius: TokenResult<TBorderRadius, "border-radius", DefaultBorderRadius, TMerge>;
710
+ borderStyle: TokenResult<TBorderStyle, "border-style", DefaultBorderStyle, TMerge>;
711
+ boxShadow: TokenResult<TBoxShadow, "box-shadow", DefaultBoxShadow, TMerge>;
712
+ colors: ColorResult<TColors, TMerge>;
713
+ fontFamily: TokenResult<TFontFamily, "font-family", DefaultFontFamily, TMerge>;
714
+ fontSize: TokenResult<TFontSize, "font-size", DefaultFontSize, TMerge>;
715
+ fontStyle: TokenResult<TFontStyle, "font-style", DefaultFontStyle, TMerge>;
716
+ fontWeight: TokenResult<TFontWeight, "font-weight", DefaultFontWeight, TMerge>;
717
+ lineHeight: TokenResult<TLineHeight, "line-height", DefaultLineHeight, TMerge>;
718
+ letterSpacing: TokenResult<TLetterSpacing, "letter-spacing", DefaultLetterSpacing, TMerge>;
719
+ scale: TokenResult<TScale, "scale", DefaultScale, TMerge>;
720
+ scalePowers: TScale extends false ? undefined : Record<number, TokenValue>;
721
+ breakpoint: TokenResult<TBreakpoint, "breakpoint", DefaultBreakpoint, TMerge>;
722
+ easing: TokenResult<TEasing, "easing", DefaultEasing, TMerge>;
723
+ }
724
+
481
725
  /**
482
726
  * Default display utility values matching Tailwind CSS.
483
727
  */
484
- export declare const defaultDisplayValues: {
728
+ export declare const displayValues: {
485
729
  block: string;
486
730
  "inline-block": string;
487
731
  inline: string;
@@ -508,7 +752,7 @@ export declare const defaultDisplayValues: {
508
752
  /**
509
753
  * Default divide-style utility values matching Tailwind CSS.
510
754
  */
511
- export declare const defaultDivideStyleValues: {
755
+ export declare const divideStyleValues: {
512
756
  solid: string;
513
757
  dashed: string;
514
758
  dotted: string;
@@ -516,7 +760,7 @@ export declare const defaultDivideStyleValues: {
516
760
  none: string;
517
761
  };
518
762
 
519
- export declare const defaultEasingValues: {
763
+ export declare const easingValues: {
520
764
  readonly linear: "linear";
521
765
  readonly ease: "ease";
522
766
  readonly "ease-in": "ease-in";
@@ -550,10 +794,28 @@ export declare const defaultEasingValues: {
550
794
  readonly bounce: "linear(0, 0.004, 0.016, 0.035, 0.063, 0.098, 0.141 13.6%, 0.25, 0.391, 0.563, 0.765, 1, 0.891 40.9%, 0.848, 0.813, 0.785, 0.766, 0.754, 0.75, 0.754, 0.766, 0.785, 0.813, 0.848, 0.891 68.2%, 1 72.7%, 0.973, 0.953, 0.941, 0.938, 0.941, 0.953, 0.973, 1, 0.988, 0.984, 0.988, 1)";
551
795
  };
552
796
 
797
+ /**
798
+ * Generic type that transforms keys to their export names with a given prefix
799
+ *
800
+ * @example
801
+ * ExportKeys<"example-property", { "default": "...", "variant": "..." }> -> {
802
+ * "exampleProperty": Variable<'example-property'>,
803
+ * "examplePropertyVariant": Variable<'example-property.variant'>,
804
+ * }
805
+ */
806
+ export declare type ExportKeys<Prefix extends string, T extends Record<string, unknown>, Separator extends string = "."> = {
807
+ [K in keyof T as CamelCase<ExportKeyVariableName<Prefix, K, Separator>>]: Variable<ExportKeyVariableName<Prefix, K, Separator>>;
808
+ };
809
+
810
+ /**
811
+ * Helper type to compute the variable name for a given prefix and key
812
+ */
813
+ declare type ExportKeyVariableName<Prefix extends string, K, Separator extends string = "."> = K extends "default" ? Prefix : `${Prefix}${Separator}${K & (string | number)}`;
814
+
553
815
  /**
554
816
  * Default flex-direction utility values matching Tailwind CSS.
555
817
  */
556
- export declare const defaultFlexDirectionValues: {
818
+ export declare const flexDirectionValues: {
557
819
  row: string;
558
820
  "row-reverse": string;
559
821
  col: string;
@@ -563,7 +825,7 @@ export declare const defaultFlexDirectionValues: {
563
825
  /**
564
826
  * Default flex utility values matching Tailwind CSS.
565
827
  */
566
- export declare const defaultFlexValues: {
828
+ export declare const flexValues: {
567
829
  "1": string;
568
830
  auto: string;
569
831
  initial: string;
@@ -573,7 +835,7 @@ export declare const defaultFlexValues: {
573
835
  /**
574
836
  * Default flex-wrap utility values matching Tailwind CSS.
575
837
  */
576
- export declare const defaultFlexWrapValues: {
838
+ export declare const flexWrapValues: {
577
839
  wrap: string;
578
840
  "wrap-reverse": string;
579
841
  nowrap: string;
@@ -582,7 +844,7 @@ export declare const defaultFlexWrapValues: {
582
844
  /**
583
845
  * Default float utility values matching Tailwind CSS.
584
846
  */
585
- export declare const defaultFloatValues: {
847
+ export declare const floatValues: {
586
848
  start: string;
587
849
  end: string;
588
850
  right: string;
@@ -590,21 +852,29 @@ export declare const defaultFloatValues: {
590
852
  none: string;
591
853
  };
592
854
 
593
- export declare const defaultFontFamilyValues: {
855
+ export declare const fontFamilyValues: {
594
856
  default: string;
595
857
  base: string;
596
858
  print: string;
597
859
  mono: string;
598
860
  };
599
861
 
600
- export declare const defaultFontSizeValues: {
862
+ export declare const fontSizeValues: {
601
863
  default: string;
864
+ xs: string;
865
+ sm: string;
866
+ md: string;
867
+ lg: string;
868
+ xl: string;
869
+ "2xl": string;
870
+ "3xl": string;
871
+ "4xl": string;
602
872
  };
603
873
 
604
874
  /**
605
875
  * Default font-smoothing utility values matching Tailwind CSS.
606
876
  */
607
- export declare const defaultFontSmoothingValues: {
877
+ export declare const fontSmoothingValues: {
608
878
  antialiased: string;
609
879
  "subpixel-antialiased": string;
610
880
  };
@@ -612,7 +882,7 @@ export declare const defaultFontSmoothingValues: {
612
882
  /**
613
883
  * Default font-stretch utility values matching Tailwind CSS.
614
884
  */
615
- export declare const defaultFontStretchValues: {
885
+ export declare const fontStretchValues: {
616
886
  "ultra-condensed": string;
617
887
  "extra-condensed": string;
618
888
  condensed: string;
@@ -624,18 +894,18 @@ export declare const defaultFontStretchValues: {
624
894
  "ultra-expanded": string;
625
895
  };
626
896
 
627
- /**
628
- * Default font-style utility values matching Tailwind CSS.
629
- */
630
- export declare const defaultFontStyleValues: {
897
+ export declare const fontStyleValues: {
898
+ default: string;
631
899
  italic: string;
632
- "not-italic": string;
900
+ oblique: string;
901
+ normal: string;
902
+ inherit: string;
633
903
  };
634
904
 
635
905
  /**
636
906
  * Default font-variant-numeric utility values matching Tailwind CSS.
637
907
  */
638
- export declare const defaultFontVariantNumericValues: {
908
+ export declare const fontVariantNumericValues: {
639
909
  "normal-nums": string;
640
910
  ordinal: string;
641
911
  "slashed-zero": string;
@@ -644,25 +914,10 @@ export declare const defaultFontVariantNumericValues: {
644
914
  "proportional-nums": string;
645
915
  "tabular-nums": string;
646
916
  "diagonal-fractions": string;
647
- "stacked-fractions": string;
648
- };
649
-
650
- /**
651
- * Default font-weight utility values matching Tailwind CSS.
652
- */
653
- export declare const defaultFontWeightUtilityValues: {
654
- thin: string;
655
- extralight: string;
656
- light: string;
657
- normal: string;
658
- medium: string;
659
- semibold: string;
660
- bold: string;
661
- extrabold: string;
662
- black: string;
917
+ "stacked-fractions": string;
663
918
  };
664
919
 
665
- export declare const defaultFontWeightValues: {
920
+ export declare const fontWeightValues: {
666
921
  default: string;
667
922
  extralight: number;
668
923
  light: number;
@@ -679,7 +934,7 @@ export declare const defaultFontWeightValues: {
679
934
  /**
680
935
  * Default forced-color-adjust utility values matching Tailwind CSS.
681
936
  */
682
- export declare const defaultForcedColorAdjustValues: {
937
+ export declare const forcedColorAdjustValues: {
683
938
  auto: string;
684
939
  none: string;
685
940
  };
@@ -687,7 +942,7 @@ export declare const defaultForcedColorAdjustValues: {
687
942
  /**
688
943
  * Default grid-auto-flow utility values matching Tailwind CSS.
689
944
  */
690
- export declare const defaultGridAutoFlowValues: {
945
+ export declare const gridAutoFlowValues: {
691
946
  row: string;
692
947
  col: string;
693
948
  dense: string;
@@ -698,16 +953,31 @@ export declare const defaultGridAutoFlowValues: {
698
953
  /**
699
954
  * Default hyphens utility values matching Tailwind CSS.
700
955
  */
701
- export declare const defaultHyphensValues: {
956
+ export declare const hyphensValues: {
702
957
  none: string;
703
958
  manual: string;
704
959
  auto: string;
705
960
  };
706
961
 
962
+ export declare function isKeyReferenceValue(value: unknown): value is `@${string}`;
963
+
964
+ /**
965
+ * Check if a value is a numeric string or number (including negative numbers and decimals).
966
+ *
967
+ * @example
968
+ * isNumericValue(1) // true
969
+ * isNumericValue("1.5") // true
970
+ * isNumericValue("-0.5") // true
971
+ * isNumericValue(".5") // true
972
+ * isNumericValue("sm") // false
973
+ * isNumericValue("1rem") // false
974
+ */
975
+ export declare function isNumericValue(value: unknown): value is string | number;
976
+
707
977
  /**
708
978
  * Default isolation utility values matching Tailwind CSS.
709
979
  */
710
- export declare const defaultIsolationValues: {
980
+ export declare const isolationValues: {
711
981
  isolate: string;
712
982
  auto: string;
713
983
  };
@@ -715,7 +985,7 @@ export declare const defaultIsolationValues: {
715
985
  /**
716
986
  * Default justify-content utility values matching Tailwind CSS.
717
987
  */
718
- export declare const defaultJustifyContentValues: {
988
+ export declare const justifyContentValues: {
719
989
  normal: string;
720
990
  start: string;
721
991
  end: string;
@@ -729,7 +999,7 @@ export declare const defaultJustifyContentValues: {
729
999
  /**
730
1000
  * Default justify-items utility values matching Tailwind CSS.
731
1001
  */
732
- export declare const defaultJustifyItemsValues: {
1002
+ export declare const justifyItemsValues: {
733
1003
  start: string;
734
1004
  end: string;
735
1005
  center: string;
@@ -739,7 +1009,7 @@ export declare const defaultJustifyItemsValues: {
739
1009
  /**
740
1010
  * Default justify-self utility values matching Tailwind CSS.
741
1011
  */
742
- export declare const defaultJustifySelfValues: {
1012
+ export declare const justifySelfValues: {
743
1013
  auto: string;
744
1014
  start: string;
745
1015
  end: string;
@@ -747,7 +1017,7 @@ export declare const defaultJustifySelfValues: {
747
1017
  stretch: string;
748
1018
  };
749
1019
 
750
- export declare const defaultLetterSpacingValues: {
1020
+ export declare const letterSpacingValues: {
751
1021
  default: string;
752
1022
  tighter: string;
753
1023
  tight: string;
@@ -756,7 +1026,7 @@ export declare const defaultLetterSpacingValues: {
756
1026
  wider: string;
757
1027
  };
758
1028
 
759
- export declare const defaultLineHeightValues: {
1029
+ export declare const lineHeightValues: {
760
1030
  default: string;
761
1031
  tight: number;
762
1032
  snug: number;
@@ -768,7 +1038,7 @@ export declare const defaultLineHeightValues: {
768
1038
  /**
769
1039
  * Default list-style-position utility values matching Tailwind CSS.
770
1040
  */
771
- export declare const defaultListStylePositionValues: {
1041
+ export declare const listStylePositionValues: {
772
1042
  inside: string;
773
1043
  outside: string;
774
1044
  };
@@ -776,16 +1046,35 @@ export declare const defaultListStylePositionValues: {
776
1046
  /**
777
1047
  * Default list-style-type utility values matching Tailwind CSS.
778
1048
  */
779
- export declare const defaultListStyleTypeValues: {
1049
+ export declare const listStyleTypeValues: {
780
1050
  none: string;
781
1051
  disc: string;
782
1052
  decimal: string;
783
1053
  };
784
1054
 
1055
+ /**
1056
+ * Meta configuration for advanced options
1057
+ */
1058
+ export declare interface MetaConfig {
1059
+ /**
1060
+ * When true, custom values are merged with defaults instead of replacing them.
1061
+ * Custom values override defaults with the same key.
1062
+ */
1063
+ merge?: boolean;
1064
+ colors?: ColorsMetaConfig;
1065
+ }
1066
+
1067
+ /**
1068
+ * Meta configuration with merge option typed for inference
1069
+ */
1070
+ export declare type MetaConfigWithMerge<TMerge extends boolean = false> = Omit<MetaConfig, "merge"> & {
1071
+ merge?: TMerge;
1072
+ };
1073
+
785
1074
  /**
786
1075
  * Default mix-blend-mode utility values matching Tailwind CSS.
787
1076
  */
788
- export declare const defaultMixBlendModeValues: {
1077
+ export declare const mixBlendModeValues: {
789
1078
  normal: string;
790
1079
  multiply: string;
791
1080
  screen: string;
@@ -809,7 +1098,7 @@ export declare const defaultMixBlendModeValues: {
809
1098
  /**
810
1099
  * Default object-fit utility values matching Tailwind CSS.
811
1100
  */
812
- export declare const defaultObjectFitValues: {
1101
+ export declare const objectFitValues: {
813
1102
  contain: string;
814
1103
  cover: string;
815
1104
  fill: string;
@@ -820,7 +1109,7 @@ export declare const defaultObjectFitValues: {
820
1109
  /**
821
1110
  * Default object-position utility values matching Tailwind CSS.
822
1111
  */
823
- export declare const defaultObjectPositionValues: {
1112
+ export declare const objectPositionValues: {
824
1113
  bottom: string;
825
1114
  center: string;
826
1115
  left: string;
@@ -835,7 +1124,7 @@ export declare const defaultObjectPositionValues: {
835
1124
  /**
836
1125
  * Default outline-style utility values matching Tailwind CSS.
837
1126
  */
838
- export declare const defaultOutlineStyleValues: {
1127
+ export declare const outlineStyleValues: {
839
1128
  none: string;
840
1129
  solid: string;
841
1130
  dashed: string;
@@ -846,7 +1135,7 @@ export declare const defaultOutlineStyleValues: {
846
1135
  /**
847
1136
  * Default overflow utility values matching Tailwind CSS.
848
1137
  */
849
- export declare const defaultOverflowValues: {
1138
+ export declare const overflowValues: {
850
1139
  auto: string;
851
1140
  hidden: string;
852
1141
  clip: string;
@@ -857,16 +1146,16 @@ export declare const defaultOverflowValues: {
857
1146
  /**
858
1147
  * Default overflow-wrap utility values matching Tailwind CSS.
859
1148
  */
860
- export declare const defaultOverflowWrapValues: {
1149
+ export declare const overflowWrapValues: {
861
1150
  normal: string;
862
1151
  "break-word": string;
863
1152
  anywhere: string;
864
1153
  };
865
1154
 
866
1155
  /**
867
- * Default overscroll-behavior utility values matching Tailwind CSS.
1156
+ * Default overscroll utility values matching Tailwind CSS.
868
1157
  */
869
- export declare const defaultOverscrollValues: {
1158
+ export declare const overscrollValues: {
870
1159
  auto: string;
871
1160
  contain: string;
872
1161
  none: string;
@@ -875,7 +1164,7 @@ export declare const defaultOverscrollValues: {
875
1164
  /**
876
1165
  * Default perspective-origin utility values matching Tailwind CSS.
877
1166
  */
878
- export declare const defaultPerspectiveOriginValues: {
1167
+ export declare const perspectiveOriginValues: {
879
1168
  center: string;
880
1169
  top: string;
881
1170
  "top-right": string;
@@ -890,7 +1179,7 @@ export declare const defaultPerspectiveOriginValues: {
890
1179
  /**
891
1180
  * Default place-content utility values matching Tailwind CSS.
892
1181
  */
893
- export declare const defaultPlaceContentValues: {
1182
+ export declare const placeContentValues: {
894
1183
  center: string;
895
1184
  start: string;
896
1185
  end: string;
@@ -904,7 +1193,7 @@ export declare const defaultPlaceContentValues: {
904
1193
  /**
905
1194
  * Default place-items utility values matching Tailwind CSS.
906
1195
  */
907
- export declare const defaultPlaceItemsValues: {
1196
+ export declare const placeItemsValues: {
908
1197
  start: string;
909
1198
  end: string;
910
1199
  center: string;
@@ -915,7 +1204,7 @@ export declare const defaultPlaceItemsValues: {
915
1204
  /**
916
1205
  * Default place-self utility values matching Tailwind CSS.
917
1206
  */
918
- export declare const defaultPlaceSelfValues: {
1207
+ export declare const placeSelfValues: {
919
1208
  auto: string;
920
1209
  start: string;
921
1210
  end: string;
@@ -926,7 +1215,7 @@ export declare const defaultPlaceSelfValues: {
926
1215
  /**
927
1216
  * Default pointer-events utility values matching Tailwind CSS.
928
1217
  */
929
- export declare const defaultPointerEventsValues: {
1218
+ export declare const pointerEventsValues: {
930
1219
  none: string;
931
1220
  auto: string;
932
1221
  };
@@ -934,7 +1223,7 @@ export declare const defaultPointerEventsValues: {
934
1223
  /**
935
1224
  * Default position utility values matching Tailwind CSS.
936
1225
  */
937
- export declare const defaultPositionValues: {
1226
+ export declare const positionValues: {
938
1227
  static: string;
939
1228
  fixed: string;
940
1229
  absolute: string;
@@ -945,16 +1234,25 @@ export declare const defaultPositionValues: {
945
1234
  /**
946
1235
  * Default resize utility values matching Tailwind CSS.
947
1236
  */
948
- export declare const defaultResizeValues: {
1237
+ export declare const resizeValues: {
949
1238
  none: string;
950
1239
  y: string;
951
1240
  x: string;
952
1241
  both: string;
953
1242
  };
954
1243
 
955
- export declare const defaultScalePowerValues: readonly number[];
1244
+ /**
1245
+ * Resolves which value record to use based on config:
1246
+ * - false => never (will be undefined)
1247
+ * - undefined => default values
1248
+ * - custom record => that record (or merged with defaults if TMerge is true)
1249
+ */
1250
+ declare type ResolveTokens<TConfig, TDefault extends Record<string, unknown>, TMerge extends boolean = false> = TConfig extends false ? never : TConfig extends undefined ? TDefault : TConfig extends Record<string, unknown> ? TMerge extends true ? Omit<TDefault, keyof TConfig> & TConfig : TConfig : TDefault;
956
1251
 
957
- export declare const defaultScaleValues: {
1252
+ export declare const scalePowerValues: readonly number[];
1253
+
1254
+ /** biome-ignore-all lint/suspicious/noApproximativeNumericConstant: Scale ratios are magic numbers */
1255
+ export declare const scaleValues: {
958
1256
  readonly default: "@minor-third";
959
1257
  readonly "minor-second": 1.067;
960
1258
  readonly "major-second": 1.125;
@@ -969,7 +1267,7 @@ export declare const defaultScaleValues: {
969
1267
  /**
970
1268
  * Default scroll-behavior utility values matching Tailwind CSS.
971
1269
  */
972
- export declare const defaultScrollBehaviorValues: {
1270
+ export declare const scrollBehaviorValues: {
973
1271
  auto: string;
974
1272
  smooth: string;
975
1273
  };
@@ -977,7 +1275,7 @@ export declare const defaultScrollBehaviorValues: {
977
1275
  /**
978
1276
  * Default scroll-snap-align utility values matching Tailwind CSS.
979
1277
  */
980
- export declare const defaultScrollSnapAlignValues: {
1278
+ export declare const scrollSnapAlignValues: {
981
1279
  start: string;
982
1280
  end: string;
983
1281
  center: string;
@@ -987,7 +1285,7 @@ export declare const defaultScrollSnapAlignValues: {
987
1285
  /**
988
1286
  * Default scroll-snap-stop utility values matching Tailwind CSS.
989
1287
  */
990
- export declare const defaultScrollSnapStopValues: {
1288
+ export declare const scrollSnapStopValues: {
991
1289
  normal: string;
992
1290
  always: string;
993
1291
  };
@@ -995,7 +1293,7 @@ export declare const defaultScrollSnapStopValues: {
995
1293
  /**
996
1294
  * Default scroll-snap-type utility values matching Tailwind CSS.
997
1295
  */
998
- export declare const defaultScrollSnapTypeValues: {
1296
+ export declare const scrollSnapTypeValues: {
999
1297
  none: string;
1000
1298
  x: string;
1001
1299
  y: string;
@@ -1004,10 +1302,22 @@ export declare const defaultScrollSnapTypeValues: {
1004
1302
  proximity: string;
1005
1303
  };
1006
1304
 
1305
+ export declare const spacingValues: {
1306
+ default: string;
1307
+ "2xs": string;
1308
+ xs: string;
1309
+ sm: string;
1310
+ md: string;
1311
+ lg: string;
1312
+ xl: string;
1313
+ "2xl": string;
1314
+ "3xl": string;
1315
+ };
1316
+
1007
1317
  /**
1008
1318
  * Default table-layout utility values matching Tailwind CSS.
1009
1319
  */
1010
- export declare const defaultTableLayoutValues: {
1320
+ export declare const tableLayoutValues: {
1011
1321
  auto: string;
1012
1322
  fixed: string;
1013
1323
  };
@@ -1015,7 +1325,7 @@ export declare const defaultTableLayoutValues: {
1015
1325
  /**
1016
1326
  * Default text-align utility values matching Tailwind CSS.
1017
1327
  */
1018
- export declare const defaultTextAlignValues: {
1328
+ export declare const textAlignValues: {
1019
1329
  left: string;
1020
1330
  center: string;
1021
1331
  right: string;
@@ -1027,7 +1337,7 @@ export declare const defaultTextAlignValues: {
1027
1337
  /**
1028
1338
  * Default text-decoration-line utility values matching Tailwind CSS.
1029
1339
  */
1030
- export declare const defaultTextDecorationLineValues: {
1340
+ export declare const textDecorationLineValues: {
1031
1341
  underline: string;
1032
1342
  overline: string;
1033
1343
  "line-through": string;
@@ -1037,7 +1347,7 @@ export declare const defaultTextDecorationLineValues: {
1037
1347
  /**
1038
1348
  * Default text-decoration-style utility values matching Tailwind CSS.
1039
1349
  */
1040
- export declare const defaultTextDecorationStyleValues: {
1350
+ export declare const textDecorationStyleValues: {
1041
1351
  solid: string;
1042
1352
  double: string;
1043
1353
  dotted: string;
@@ -1048,7 +1358,7 @@ export declare const defaultTextDecorationStyleValues: {
1048
1358
  /**
1049
1359
  * Default text-overflow utility values matching Tailwind CSS.
1050
1360
  */
1051
- export declare const defaultTextOverflowValues: {
1361
+ export declare const textOverflowValues: {
1052
1362
  truncate: string;
1053
1363
  "text-ellipsis": string;
1054
1364
  "text-clip": string;
@@ -1057,7 +1367,7 @@ export declare const defaultTextOverflowValues: {
1057
1367
  /**
1058
1368
  * Default text-transform utility values matching Tailwind CSS.
1059
1369
  */
1060
- export declare const defaultTextTransformValues: {
1370
+ export declare const textTransformValues: {
1061
1371
  uppercase: string;
1062
1372
  lowercase: string;
1063
1373
  capitalize: string;
@@ -1067,17 +1377,22 @@ export declare const defaultTextTransformValues: {
1067
1377
  /**
1068
1378
  * Default text-wrap utility values matching Tailwind CSS.
1069
1379
  */
1070
- export declare const defaultTextWrapValues: {
1380
+ export declare const textWrapValues: {
1071
1381
  wrap: string;
1072
1382
  nowrap: string;
1073
1383
  balance: string;
1074
1384
  pretty: string;
1075
1385
  };
1076
1386
 
1387
+ /**
1388
+ * Generates ExportKeys or undefined based on config
1389
+ */
1390
+ declare type TokenResult<TConfig, TPrefix extends string, TDefault extends Record<string, unknown>, TMerge extends boolean = false, TSeparator extends string = "."> = TConfig extends false ? undefined : ExportKeys<TPrefix, ResolveTokens<TConfig, TDefault, TMerge>, TSeparator>;
1391
+
1077
1392
  /**
1078
1393
  * Default touch-action utility values matching Tailwind CSS.
1079
1394
  */
1080
- export declare const defaultTouchActionValues: {
1395
+ export declare const touchActionValues: {
1081
1396
  auto: string;
1082
1397
  none: string;
1083
1398
  "pan-x": string;
@@ -1093,7 +1408,7 @@ export declare const defaultTouchActionValues: {
1093
1408
  /**
1094
1409
  * Default transform-origin utility values matching Tailwind CSS.
1095
1410
  */
1096
- export declare const defaultTransformOriginValues: {
1411
+ export declare const transformOriginValues: {
1097
1412
  center: string;
1098
1413
  top: string;
1099
1414
  "top-right": string;
@@ -1108,7 +1423,7 @@ export declare const defaultTransformOriginValues: {
1108
1423
  /**
1109
1424
  * Default transform-style utility values matching Tailwind CSS.
1110
1425
  */
1111
- export declare const defaultTransformStyleValues: {
1426
+ export declare const transformStyleValues: {
1112
1427
  flat: string;
1113
1428
  "3d": string;
1114
1429
  };
@@ -1116,7 +1431,7 @@ export declare const defaultTransformStyleValues: {
1116
1431
  /**
1117
1432
  * Default transition-behavior utility values matching Tailwind CSS.
1118
1433
  */
1119
- export declare const defaultTransitionBehaviorValues: {
1434
+ export declare const transitionBehaviorValues: {
1120
1435
  normal: string;
1121
1436
  "allow-discrete": string;
1122
1437
  };
@@ -1124,7 +1439,7 @@ export declare const defaultTransitionBehaviorValues: {
1124
1439
  /**
1125
1440
  * Default transition-property utility values matching Tailwind CSS.
1126
1441
  */
1127
- export declare const defaultTransitionPropertyValues: {
1442
+ export declare const transitionPropertyValues: {
1128
1443
  none: string;
1129
1444
  all: string;
1130
1445
  default: string;
@@ -1135,89 +1450,9 @@ export declare const defaultTransitionPropertyValues: {
1135
1450
  };
1136
1451
 
1137
1452
  /**
1138
- * Default user-select utility values matching Tailwind CSS.
1139
- */
1140
- export declare const defaultUserSelectValues: {
1141
- none: string;
1142
- text: string;
1143
- all: string;
1144
- auto: string;
1145
- };
1146
-
1147
- /**
1148
- * Default vertical-align utility values matching Tailwind CSS.
1149
- */
1150
- export declare const defaultVerticalAlignValues: {
1151
- baseline: string;
1152
- top: string;
1153
- middle: string;
1154
- bottom: string;
1155
- "text-top": string;
1156
- "text-bottom": string;
1157
- sub: string;
1158
- super: string;
1159
- };
1160
-
1161
- /**
1162
- * Default visibility utility values matching Tailwind CSS.
1163
- */
1164
- export declare const defaultVisibilityValues: {
1165
- visible: string;
1166
- invisible: string;
1167
- collapse: string;
1168
- };
1169
-
1170
- /**
1171
- * Default white-space utility values matching Tailwind CSS.
1172
- */
1173
- export declare const defaultWhitespaceValues: {
1174
- normal: string;
1175
- nowrap: string;
1176
- pre: string;
1177
- "pre-line": string;
1178
- "pre-wrap": string;
1179
- "break-spaces": string;
1180
- };
1181
-
1182
- /**
1183
- * Default will-change utility values matching Tailwind CSS.
1184
- */
1185
- export declare const defaultWillChangeValues: {
1186
- auto: string;
1187
- scroll: string;
1188
- contents: string;
1189
- transform: string;
1190
- };
1191
-
1192
- /**
1193
- * Default word-break utility values matching Tailwind CSS.
1194
- */
1195
- export declare const defaultWordBreakValues: {
1196
- normal: string;
1197
- words: string;
1198
- all: string;
1199
- keep: string;
1200
- };
1201
-
1202
- /**
1203
- * Generic type that transforms keys to their export names with a given prefix
1204
- *
1205
- * @example
1206
- * ExportKeys<"example-property", { "default": "...", "variant": "..." }> -> {
1207
- * "exampleProperty": Variable<'example-property'>,
1208
- * "examplePropertyVariant": Variable<'example-property.variant'>,
1209
- * }
1210
- */
1211
- export declare type ExportKeys<Prefix extends string, T extends Record<string, unknown>, Separator extends string = "."> = {
1212
- [K in keyof T as CamelCase<ExportKeyVariableName<Prefix, K, Separator>>]: Variable<ExportKeyVariableName<Prefix, K, Separator>>;
1213
- };
1214
-
1215
- /**
1216
- * Helper type to compute the variable name for a given prefix and key
1453
+ * Helper to convert a union to an intersection
1217
1454
  */
1218
- declare type ExportKeyVariableName<Prefix extends string, K, Separator extends string = "."> = K extends "default" ? Prefix : `${Prefix}${Separator}${K & (string | number)}`;
1219
-
1220
- export declare function isKeyReferenceValue(value: unknown): value is `@${string}`;
1455
+ declare type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
1221
1456
 
1222
1457
  /**
1223
1458
  * Create accent-color utility classes.
@@ -1474,6 +1709,21 @@ export declare const useBackgroundSizeUtility: <T extends Record<string, TokenVa
1474
1709
  contain: string;
1475
1710
  }>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
1476
1711
 
1712
+ /**
1713
+ * Create background shorthand utility classes.
1714
+ *
1715
+ * @example
1716
+ * ```typescript
1717
+ * const s = styleframe();
1718
+ * useBackgroundUtility(s, {
1719
+ * none: 'none',
1720
+ * cover: 'center / cover no-repeat',
1721
+ * contain: 'center / contain no-repeat',
1722
+ * });
1723
+ * ```
1724
+ */
1725
+ export declare const useBackgroundUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
1726
+
1477
1727
  /**
1478
1728
  * Create blur utility classes.
1479
1729
  *
@@ -1526,7 +1776,9 @@ export declare const useBorderCollapseUtility: <T extends Record<string, TokenVa
1526
1776
  * });
1527
1777
  * ```
1528
1778
  */
1529
- export declare const useBorderColor: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"border-color", T, ".">;
1779
+ export declare const useBorderColor: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
1780
+ default?: boolean;
1781
+ }) => ExportKeys<"border-color", T, ".">;
1530
1782
 
1531
1783
  /**
1532
1784
  * Create border-bottom-color utility classes.
@@ -1608,7 +1860,18 @@ export declare const useBorderColorYUtility: <T extends Record<string, TokenValu
1608
1860
  * });
1609
1861
  * ```
1610
1862
  */
1611
- export declare const useBorderRadius: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"border-radius", T, ".">;
1863
+ export declare const useBorderRadius: <T extends Record<string, TokenValue> = {
1864
+ default: string;
1865
+ none: string;
1866
+ sm: string;
1867
+ md: string;
1868
+ lg: string;
1869
+ xl: string;
1870
+ "2xl": string;
1871
+ full: string;
1872
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
1873
+ default?: boolean;
1874
+ }) => ExportKeys<"border-radius", T, ".">;
1612
1875
 
1613
1876
  /**
1614
1877
  * Create border-bottom-left-radius utility classes.
@@ -1755,7 +2018,9 @@ export declare const useBorderStyle: <T extends Record<string, TokenValue> = {
1755
2018
  readonly groove: "groove";
1756
2019
  readonly inset: "inset";
1757
2020
  readonly outset: "outset";
1758
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"border-style", T, ".">;
2021
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2022
+ default?: boolean;
2023
+ }) => ExportKeys<"border-style", T, ".">;
1759
2024
 
1760
2025
  /**
1761
2026
  * Create border-style utility classes.
@@ -1800,7 +2065,9 @@ export declare const useBorderWidth: <T extends Record<string, TokenValue> = {
1800
2065
  thin: string;
1801
2066
  medium: string;
1802
2067
  thick: string;
1803
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"border-width", T, ".">;
2068
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2069
+ default?: boolean;
2070
+ }) => ExportKeys<"border-width", T, ".">;
1804
2071
 
1805
2072
  /**
1806
2073
  * Create border-bottom-width utility classes.
@@ -1909,7 +2176,9 @@ export declare const useBoxShadow: <T extends Record<string, TokenValue> = {
1909
2176
  "2xl": string;
1910
2177
  inner: string;
1911
2178
  ring: string;
1912
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"box-shadow", T, ".">;
2179
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2180
+ default?: boolean;
2181
+ }) => ExportKeys<"box-shadow", T, ".">;
1913
2182
 
1914
2183
  /**
1915
2184
  * Create box-shadow-color utility classes.
@@ -2013,7 +2282,9 @@ export declare const useBreakpoint: <T extends Record<string, TokenValue> = {
2013
2282
  md: number;
2014
2283
  lg: number;
2015
2284
  xl: number;
2016
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"breakpoint", T, ".">;
2285
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2286
+ default?: boolean;
2287
+ }) => ExportKeys<"breakpoint", T, ".">;
2017
2288
 
2018
2289
  /**
2019
2290
  * Create brightness utility classes.
@@ -2064,7 +2335,9 @@ export declare const useClearUtility: <T extends Record<string, TokenValue> = {
2064
2335
  * });
2065
2336
  * ```
2066
2337
  */
2067
- export declare const useColor: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"color", T, ".">;
2338
+ export declare const useColor: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2339
+ default?: boolean;
2340
+ }) => ExportKeys<"color", T, ".">;
2068
2341
 
2069
2342
  /**
2070
2343
  * Create a set of lightness levels for a color variable.
@@ -2091,7 +2364,9 @@ export declare const useColor: <T extends Record<string, TokenValue> = Record<st
2091
2364
  * });
2092
2365
  * ```
2093
2366
  */
2094
- export declare function useColorLightness<Name extends string, T extends Record<string | number, number>>(s: Styleframe, color: Variable<Name>, levels: T): ExportKeys<Name, T, "-">;
2367
+ export declare function useColorLightness<Name extends string, T extends Record<string | number, number>>(s: Styleframe, color: Variable<Name>, levels: T, { default: isDefault }?: {
2368
+ default?: boolean;
2369
+ }): ExportKeys<Name, T, "-">;
2095
2370
 
2096
2371
  /**
2097
2372
  * Create color-scheme utility classes.
@@ -2124,7 +2399,9 @@ export declare const useColorSchemeUtility: <T extends Record<string, TokenValue
2124
2399
  * });
2125
2400
  * ```
2126
2401
  */
2127
- export declare function useColorShade<Name extends string, T extends Record<string | number, number>>(s: Styleframe, color: Variable<Name>, levels: T): ExportKeys<`${Name}-shade`, T, "-">;
2402
+ export declare function useColorShade<Name extends string, T extends Record<string | number, number>>(s: Styleframe, color: Variable<Name>, levels: T, { default: isDefault }?: {
2403
+ default?: boolean;
2404
+ }): ExportKeys<`${Name}-shade`, T, "-">;
2128
2405
 
2129
2406
  /**
2130
2407
  * Create a set of relative color tint (lighter) levels
@@ -2147,7 +2424,9 @@ export declare function useColorShade<Name extends string, T extends Record<stri
2147
2424
  * });
2148
2425
  * ```
2149
2426
  */
2150
- export declare function useColorTint<Name extends string, T extends Record<string | number, number>>(s: Styleframe, color: Variable<Name>, levels: T): ExportKeys<`${Name}-tint`, T, "-">;
2427
+ export declare function useColorTint<Name extends string, T extends Record<string | number, number>>(s: Styleframe, color: Variable<Name>, levels: T, { default: isDefault }?: {
2428
+ default?: boolean;
2429
+ }): ExportKeys<`${Name}-tint`, T, "-">;
2151
2430
 
2152
2431
  /**
2153
2432
  * Create color utility classes.
@@ -2246,6 +2525,57 @@ export declare const useCursorUtility: <T extends Record<string, TokenValue> = {
2246
2525
  "zoom-out": string;
2247
2526
  }>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
2248
2527
 
2528
+ /**
2529
+ * Create a complete design token system with sensible defaults.
2530
+ *
2531
+ * @param s - The Styleframe instance
2532
+ * @param config - Configuration options for customizing the preset
2533
+ * @returns An object containing all generated design token variables
2534
+ *
2535
+ * @remarks
2536
+ * **Scale Powers**: The `scalePowers` result is only generated when the `scale` config
2537
+ * includes a key named `scale` (either via defaults or a custom config with `{ default: "@scale", scale: "1.2" }`).
2538
+ * If you provide a custom scale config without a `scale` key (e.g., `{ ratio: "1.25" }`),
2539
+ * `scalePowers` will be `undefined`.
2540
+ *
2541
+ * @example
2542
+ * ```typescript
2543
+ * import { styleframe } from "styleframe";
2544
+ * import { useDesignTokensPreset } from "@styleframe/theme";
2545
+ *
2546
+ * const s = styleframe();
2547
+ *
2548
+ * // Use all defaults
2549
+ * const tokens = useDesignTokensPreset(s);
2550
+ *
2551
+ * // Customize specific domains
2552
+ * const tokens = useDesignTokensPreset(s, {
2553
+ * colors: { primary: "#ff6600", secondary: "#333" },
2554
+ * meta: {
2555
+ * colors: {
2556
+ * generateLightness: true,
2557
+ * generateShades: false,
2558
+ * },
2559
+ * },
2560
+ * spacing: {
2561
+ * default: "0.5rem",
2562
+ * sm: "0.25rem",
2563
+ * md: "0.5rem",
2564
+ * lg: "1rem",
2565
+ * },
2566
+ * easing: false, // Disable easing entirely
2567
+ * });
2568
+ *
2569
+ * // Merge custom values with defaults
2570
+ * const tokens = useDesignTokensPreset(s, {
2571
+ * meta: { merge: true },
2572
+ * spacing: { xl: "2rem", xxl: "4rem" }, // Added to default spacing values
2573
+ * colors: { brand: "#ff6600" }, // Added to default colors
2574
+ * });
2575
+ * ```
2576
+ */
2577
+ export declare function useDesignTokensPreset<TSpacing extends Record<string, TokenValue> | false = DefaultSpacing, TBorderWidth extends Record<string, TokenValue> | false = DefaultBorderWidth, TBorderRadius extends Record<string, TokenValue> | false = DefaultBorderRadius, TBorderStyle extends Record<string, TokenValue> | false = DefaultBorderStyle, TBoxShadow extends Record<string, TokenValue> | false = DefaultBoxShadow, TColors extends Record<string, string> | false = DefaultColors, TFontFamily extends Record<string, TokenValue> | false = DefaultFontFamily, TFontSize extends Record<string, TokenValue> | false = DefaultFontSize, TFontStyle extends Record<string, TokenValue> | false = DefaultFontStyle, TFontWeight extends Record<string, TokenValue> | false = DefaultFontWeight, TLineHeight extends Record<string, TokenValue> | false = DefaultLineHeight, TLetterSpacing extends Record<string, TokenValue> | false = DefaultLetterSpacing, TScale extends Record<string, TokenValue> | false = DefaultScale, TBreakpoint extends Record<string, number> | false = DefaultBreakpoint, TEasing extends Record<string, TokenValue> | false = DefaultEasing, TMerge extends boolean = false>(s: Styleframe, config?: DesignTokensPresetConfig<TSpacing, TBorderWidth, TBorderRadius, TBorderStyle, TBoxShadow, TColors, TFontFamily, TFontSize, TFontStyle, TFontWeight, TLineHeight, TLetterSpacing, TScale, TBreakpoint, TEasing, TMerge>): DesignTokensPresetResult<TSpacing, TBorderWidth, TBorderRadius, TBorderStyle, TBoxShadow, TColors, TFontFamily, TFontSize, TFontStyle, TFontWeight, TLineHeight, TLetterSpacing, TScale, TBreakpoint, TEasing, TMerge>;
2578
+
2249
2579
  /**
2250
2580
  * Create display utility classes.
2251
2581
  *
@@ -2383,7 +2713,9 @@ export declare const useEasing: <T extends Record<string, TokenValue> = {
2383
2713
  readonly "ease-in-out-back": "cubic-bezier(0.68, -0.55, 0.265, 1.55)";
2384
2714
  readonly spring: "linear(0, 0.0018, 0.0069 1.15%, 0.026 2.3%, 0.0637, 0.1135 5.18%, 0.2229 7.78%, 0.5977 15.84%, 0.7014, 0.7904, 0.8641, 0.9228, 0.9676 28.8%, 1.0032 31.68%, 1.0225, 1.0352 36.29%, 1.0431 38.88%, 1.046 42.05%, 1.0448 44.35%, 1.0407 47.23%, 1.0118 61.63%, 1.0025 69.41%, 0.9981 80.35%, 0.9992 99.94%)";
2385
2715
  readonly bounce: "linear(0, 0.004, 0.016, 0.035, 0.063, 0.098, 0.141 13.6%, 0.25, 0.391, 0.563, 0.765, 1, 0.891 40.9%, 0.848, 0.813, 0.785, 0.766, 0.754, 0.75, 0.754, 0.766, 0.785, 0.813, 0.848, 0.891 68.2%, 1 72.7%, 0.973, 0.953, 0.941, 0.938, 0.941, 0.953, 0.973, 1, 0.988, 0.984, 0.988, 1)";
2386
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"easing", T, ".">;
2716
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2717
+ default?: boolean;
2718
+ }) => ExportKeys<"easing", T, ".">;
2387
2719
 
2388
2720
  /**
2389
2721
  * Create fill utility classes for SVG elements.
@@ -2488,7 +2820,9 @@ export declare const useFontFamily: <T extends Record<string, TokenValue> = {
2488
2820
  base: string;
2489
2821
  print: string;
2490
2822
  mono: string;
2491
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"font-family", T, ".">;
2823
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2824
+ default?: boolean;
2825
+ }) => ExportKeys<"font-family", T, ".">;
2492
2826
 
2493
2827
  /**
2494
2828
  * Create font-family utility classes.
@@ -2530,7 +2864,17 @@ export declare const useFontFamilyUtility: <T extends Record<string, TokenValue>
2530
2864
  */
2531
2865
  export declare const useFontSize: <T extends Record<string, TokenValue> = {
2532
2866
  default: string;
2533
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"font-size", T, ".">;
2867
+ xs: string;
2868
+ sm: string;
2869
+ md: string;
2870
+ lg: string;
2871
+ xl: string;
2872
+ "2xl": string;
2873
+ "3xl": string;
2874
+ "4xl": string;
2875
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2876
+ default?: boolean;
2877
+ }) => ExportKeys<"font-size", T, ".">;
2534
2878
 
2535
2879
  /**
2536
2880
  * Create font-size utility classes.
@@ -2572,12 +2916,49 @@ export declare const useFontStretchUtility: <T extends Record<string, TokenValue
2572
2916
  "ultra-expanded": string;
2573
2917
  }>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
2574
2918
 
2919
+ /**
2920
+ * Create a set of font-style variables for use in a Styleframe instance.
2921
+ *
2922
+ * @usage
2923
+ * ```typescript
2924
+ * import { styleframe } from "styleframe";
2925
+ * import { useFontStyle } from "styleframe/theme";
2926
+ *
2927
+ * const s = styleframe();
2928
+ *
2929
+ * const {
2930
+ * fontStyleItalic,
2931
+ * fontStyleOblique,
2932
+ * fontStyleNormal,
2933
+ * fontStyle,
2934
+ * } = useFontStyle(s, {
2935
+ * default: "normal",
2936
+ * italic: "italic",
2937
+ * oblique: "oblique",
2938
+ * normal: "normal",
2939
+ * inherit: "inherit",
2940
+ * });
2941
+ * ```
2942
+ */
2943
+ export declare const useFontStyle: <T extends Record<string, TokenValue> = {
2944
+ default: string;
2945
+ italic: string;
2946
+ oblique: string;
2947
+ normal: string;
2948
+ inherit: string;
2949
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
2950
+ default?: boolean;
2951
+ }) => ExportKeys<"font-style", T, ".">;
2952
+
2575
2953
  /**
2576
2954
  * Create font-style utility classes.
2577
2955
  */
2578
2956
  export declare const useFontStyleUtility: <T extends Record<string, TokenValue> = {
2957
+ default: string;
2579
2958
  italic: string;
2580
- "not-italic": string;
2959
+ oblique: string;
2960
+ normal: string;
2961
+ inherit: string;
2581
2962
  }>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
2582
2963
 
2583
2964
  /**
@@ -2643,7 +3024,9 @@ export declare const useFontWeight: <T extends Record<string, TokenValue> = {
2643
3024
  lighter: string;
2644
3025
  bolder: string;
2645
3026
  inherit: string;
2646
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"font-weight", T, ".">;
3027
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
3028
+ default?: boolean;
3029
+ }) => ExportKeys<"font-weight", T, ".">;
2647
3030
 
2648
3031
  /**
2649
3032
  * Create font-weight utility classes.
@@ -2669,23 +3052,29 @@ export declare const useForcedColorAdjustUtility: <T extends Record<string, Toke
2669
3052
  }>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
2670
3053
 
2671
3054
  /**
2672
- * Create gap utility classes.
3055
+ * Create gap utility classes with multiplier support.
2673
3056
  *
2674
3057
  * @example
2675
3058
  * ```typescript
2676
3059
  * const s = styleframe();
2677
- * useGapUtility(s, { '0': '0', '1': '0.25rem', '2': '0.5rem' });
3060
+ * const createGap = useGapUtility(s, { '0': '0', '1': '0.25rem', '2': '0.5rem' });
3061
+ *
3062
+ * // Add multiplier values (with @ prefix):
3063
+ * createGap(["@1.5", "@2"]);
3064
+ * // Generates:
3065
+ * // ._gap:1.5 { gap: calc(var(--spacing) * 1.5); }
3066
+ * // ._gap:2 { gap: calc(var(--spacing) * 2); }
2678
3067
  * ```
2679
3068
  */
2680
3069
  export declare const useGapUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
2681
3070
 
2682
3071
  /**
2683
- * Create column-gap utility classes.
3072
+ * Create column-gap utility classes with multiplier support.
2684
3073
  */
2685
3074
  export declare const useGapXUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
2686
3075
 
2687
3076
  /**
2688
- * Create row-gap utility classes.
3077
+ * Create row-gap utility classes with multiplier support.
2689
3078
  */
2690
3079
  export declare const useGapYUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
2691
3080
 
@@ -2930,7 +3319,9 @@ export declare const useLetterSpacing: <T extends Record<string, TokenValue> = {
2930
3319
  normal: string;
2931
3320
  wide: string;
2932
3321
  wider: string;
2933
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"letter-spacing", T, ".">;
3322
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
3323
+ default?: boolean;
3324
+ }) => ExportKeys<"letter-spacing", T, ".">;
2934
3325
 
2935
3326
  /**
2936
3327
  * Create letter-spacing utility classes.
@@ -2996,7 +3387,9 @@ export declare const useLineHeight: <T extends Record<string, TokenValue> = {
2996
3387
  normal: number;
2997
3388
  relaxed: number;
2998
3389
  loose: number;
2999
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"line-height", T, ".">;
3390
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
3391
+ default?: boolean;
3392
+ }) => ExportKeys<"line-height", T, ".">;
3000
3393
 
3001
3394
  /**
3002
3395
  * Create line-height utility classes.
@@ -3079,13 +3472,19 @@ export declare const useMarginRightUtility: <T extends Record<string, TokenValue
3079
3472
  export declare const useMarginTopUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3080
3473
 
3081
3474
  /**
3082
- * Create margin utility classes.
3475
+ * Create margin utility classes with multiplier support.
3083
3476
  *
3084
3477
  * @example
3085
3478
  * ```typescript
3086
3479
  * const s = styleframe();
3087
- * useMarginUtility(s, { sm: '0.5rem', md: '1rem', lg: '1.5rem', auto: 'auto' });
3088
- * // Generates: ._margin:sm, ._margin:md, ._margin:lg, ._margin:auto
3480
+ * const createMargin = useMarginUtility(s, { sm: '0.5rem', md: '1rem', lg: '1.5rem', auto: 'auto' });
3481
+ *
3482
+ * // Add multiplier values (with @ prefix):
3483
+ * createMargin(["@1.5", "@2", "@-1"]);
3484
+ * // Generates:
3485
+ * // ._margin:1.5 { margin: calc(var(--spacing) * 1.5); }
3486
+ * // ._margin:2 { margin: calc(var(--spacing) * 2); }
3487
+ * // ._margin:-1 { margin: calc(var(--spacing) * -1); }
3089
3488
  * ```
3090
3489
  */
3091
3490
  export declare const useMarginUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
@@ -3401,13 +3800,18 @@ export declare const usePaddingRightUtility: <T extends Record<string, TokenValu
3401
3800
  export declare const usePaddingTopUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3402
3801
 
3403
3802
  /**
3404
- * Create padding utility classes.
3803
+ * Create padding utility classes with multiplier support.
3405
3804
  *
3406
3805
  * @example
3407
3806
  * ```typescript
3408
3807
  * const s = styleframe();
3409
- * usePaddingUtility(s, { sm: '0.5rem', md: '1rem', lg: '1.5rem' });
3410
- * // Generates: ._padding:sm, ._padding:md, ._padding:lg
3808
+ * const createPadding = usePaddingUtility(s, { sm: '0.5rem', md: '1rem', lg: '1.5rem' });
3809
+ *
3810
+ * // Add multiplier values (with @ prefix):
3811
+ * createPadding(["@1.5", "@2"]);
3812
+ * // Generates:
3813
+ * // ._padding:1.5 { padding: calc(var(--spacing) * 1.5); }
3814
+ * // ._padding:2 { padding: calc(var(--spacing) * 2); }
3411
3815
  * ```
3412
3816
  */
3413
3817
  export declare const usePaddingUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
@@ -3575,6 +3979,16 @@ export declare const useRotateXUtility: <T extends Record<string, TokenValue> =
3575
3979
  */
3576
3980
  export declare const useRotateYUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3577
3981
 
3982
+ /**
3983
+ * Default user-select utility values matching Tailwind CSS.
3984
+ */
3985
+ export declare const userSelectValues: {
3986
+ none: string;
3987
+ text: string;
3988
+ all: string;
3989
+ auto: string;
3990
+ };
3991
+
3578
3992
  /**
3579
3993
  * Create saturate utility classes.
3580
3994
  */
@@ -3623,7 +4037,9 @@ export declare const useScale: <T extends Record<string, TokenValue> = {
3623
4037
  readonly "augmented-fourth": 1.414;
3624
4038
  readonly "perfect-fifth": 1.5;
3625
4039
  readonly golden: 1.618;
3626
- }>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"scale", T, ".">;
4040
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
4041
+ default?: boolean;
4042
+ }) => ExportKeys<"scale", T, ".">;
3627
4043
 
3628
4044
  export declare function useScalePowers<T extends readonly number[]>(s: Styleframe, scale: Variable | Reference, powers?: T): Record<number, TokenValue>;
3629
4045
 
@@ -3656,7 +4072,7 @@ export declare const useScrollBehaviorUtility: <T extends Record<string, TokenVa
3656
4072
  export declare const useScrollMarginBottomUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3657
4073
 
3658
4074
  /**
3659
- * Create scroll-margin-end utility classes.
4075
+ * Create scroll-margin-inline-end utility classes.
3660
4076
  */
3661
4077
  export declare const useScrollMarginEndUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3662
4078
 
@@ -3671,7 +4087,7 @@ export declare const useScrollMarginLeftUtility: <T extends Record<string, Token
3671
4087
  export declare const useScrollMarginRightUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3672
4088
 
3673
4089
  /**
3674
- * Create scroll-margin-start utility classes.
4090
+ * Create scroll-margin-inline-start utility classes.
3675
4091
  */
3676
4092
  export declare const useScrollMarginStartUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3677
4093
 
@@ -3701,7 +4117,7 @@ export declare const useScrollMarginYUtility: <T extends Record<string, TokenVal
3701
4117
  export declare const useScrollPaddingBottomUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3702
4118
 
3703
4119
  /**
3704
- * Create scroll-padding-end utility classes.
4120
+ * Create scroll-padding-inline-end utility classes.
3705
4121
  */
3706
4122
  export declare const useScrollPaddingEndUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3707
4123
 
@@ -3716,7 +4132,7 @@ export declare const useScrollPaddingLeftUtility: <T extends Record<string, Toke
3716
4132
  export declare const useScrollPaddingRightUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3717
4133
 
3718
4134
  /**
3719
- * Create scroll-padding-start utility classes.
4135
+ * Create scroll-padding-inline-start utility classes.
3720
4136
  */
3721
4137
  export declare const useScrollPaddingStartUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3722
4138
 
@@ -3808,14 +4224,18 @@ export declare const useSkewYUtility: <T extends Record<string, TokenValue> = Re
3808
4224
  export declare const useSpaceXReverseUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3809
4225
 
3810
4226
  /**
3811
- * Create space-x utility classes (horizontal space between children).
4227
+ * Create space-x utility classes with multiplier support (horizontal space between children).
3812
4228
  * Uses the "lobotomized owl" selector to add margin-left to all but the first child.
3813
4229
  *
3814
4230
  * @example
3815
4231
  * ```typescript
3816
4232
  * const s = styleframe();
3817
- * useSpaceXUtility(s, { sm: '0.5rem', md: '1rem' });
3818
- * // Generates: ._space-x:sm > * + *, ._space-x:md > * + *
4233
+ * const createSpaceX = useSpaceXUtility(s, { sm: '0.5rem', md: '1rem' });
4234
+ *
4235
+ * // Add multiplier values (with @ prefix):
4236
+ * createSpaceX(["@1.5", "@2"]);
4237
+ * // Generates:
4238
+ * // ._space-x:1.5 > * + * { margin-left: calc(var(--spacing) * 1.5); }
3819
4239
  * ```
3820
4240
  */
3821
4241
  export declare const useSpaceXUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
@@ -3827,7 +4247,7 @@ export declare const useSpaceXUtility: <T extends Record<string, TokenValue> = R
3827
4247
  export declare const useSpaceYReverseUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
3828
4248
 
3829
4249
  /**
3830
- * Create space-y utility classes (vertical space between children).
4250
+ * Create space-y utility classes with multiplier support (vertical space between children).
3831
4251
  * Uses the "lobotomized owl" selector to add margin-top to all but the first child.
3832
4252
  */
3833
4253
  export declare const useSpaceYUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
@@ -3855,7 +4275,19 @@ export declare const useSpaceYUtility: <T extends Record<string, TokenValue> = R
3855
4275
  * });
3856
4276
  * ```
3857
4277
  */
3858
- export declare const useSpacing: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, tokens?: T | undefined) => ExportKeys<"spacing", T, ".">;
4278
+ export declare const useSpacing: <T extends Record<string, TokenValue> = {
4279
+ default: string;
4280
+ "2xs": string;
4281
+ xs: string;
4282
+ sm: string;
4283
+ md: string;
4284
+ lg: string;
4285
+ xl: string;
4286
+ "2xl": string;
4287
+ "3xl": string;
4288
+ }>(s: Styleframe, tokens?: T | undefined, { default: isDefault }?: {
4289
+ default?: boolean;
4290
+ }) => ExportKeys<"spacing", T, ".">;
3859
4291
 
3860
4292
  /**
3861
4293
  * Create screen-reader only utility class.
@@ -3980,10 +4412,10 @@ export declare const useTextShadowColorUtility: <T extends Record<string, TokenV
3980
4412
  * ```typescript
3981
4413
  * const s = styleframe();
3982
4414
  * useTextShadowUtility(s, {
3983
- * sm: '0 1px 2px var(--tw-text-shadow-color, rgb(0 0 0 / 0.05))',
3984
- * default: '0 1px 3px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1))',
3985
- * md: '0 2px 4px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1))',
3986
- * lg: '0 4px 8px var(--tw-text-shadow-color, rgb(0 0 0 / 0.1))',
4415
+ * sm: '0 1px 2px var(--text-shadow-color, rgb(0 0 0 / 0.05))',
4416
+ * default: '0 1px 3px var(--text-shadow-color, rgb(0 0 0 / 0.1))',
4417
+ * md: '0 2px 4px var(--text-shadow-color, rgb(0 0 0 / 0.1))',
4418
+ * lg: '0 4px 8px var(--text-shadow-color, rgb(0 0 0 / 0.1))',
3987
4419
  * none: 'none',
3988
4420
  * });
3989
4421
  * ```
@@ -4142,40 +4574,39 @@ export declare const useUserSelectUtility: <T extends Record<string, TokenValue>
4142
4574
  * Register all utility factories with the Styleframe instance and return their creator functions.
4143
4575
  *
4144
4576
  * This function is useful when you want to register all utilities at once for use with recipes.
4145
- * Each utility factory is registered without default values, allowing recipes to automatically
4146
- * generate utility classes based on the values used in recipe declarations.
4577
+ * Each utility factory is registered with configurable default values.
4578
+ *
4579
+ * @param s - The Styleframe instance to register utilities with
4580
+ * @param config - Configuration options for customizing utility defaults
4581
+ * @returns An object containing creator functions for all registered utilities
4147
4582
  *
4148
4583
  * @example
4149
4584
  * ```typescript
4150
4585
  * import { styleframe } from "styleframe";
4151
- * import { useUtilities } from "@styleframe/theme";
4586
+ * import { useUtilitiesPreset } from "@styleframe/theme";
4152
4587
  *
4153
4588
  * const s = styleframe();
4154
- * const {
4155
- * createMarginUtility,
4156
- * createPaddingUtility,
4157
- * createDisplayUtility,
4158
- * // ... all other utilities
4159
- * } = useUtilities(s);
4160
- *
4161
- * // Now you can use the creator functions to define utility values
4162
- * createMarginUtility({ sm: '0.5rem', md: '1rem', lg: '1.5rem' });
4163
- * createPaddingUtility({ sm: '0.5rem', md: '1rem', lg: '1.5rem' });
4164
- *
4165
- * // Or use them in recipes - utilities are already registered
4166
- * s.recipe({
4167
- * name: 'button',
4168
- * base: { display: 'flex' },
4169
- * variants: {
4170
- * size: {
4171
- * sm: { padding: '0.5rem' },
4172
- * md: { padding: '1rem' },
4173
- * },
4174
- * },
4589
+ *
4590
+ * // Use all defaults
4591
+ * const utilities = useUtilitiesPreset(s);
4592
+ *
4593
+ * // Customize specific utilities
4594
+ * const utilities = useUtilitiesPreset(s, {
4595
+ * display: { flex: "flex", block: "block", hidden: "none" },
4596
+ * position: false, // Disable position utilities
4175
4597
  * });
4598
+ *
4599
+ * // Merge custom values with defaults
4600
+ * const utilities = useUtilitiesPreset(s, {
4601
+ * meta: { merge: true },
4602
+ * cursor: { custom: "url('custom.cur'), auto" },
4603
+ * });
4604
+ *
4605
+ * // Now you can use the creator functions to define additional utility values
4606
+ * utilities.createMarginUtility({ sm: '0.5rem', md: '1rem', lg: '1.5rem' });
4176
4607
  * ```
4177
4608
  */
4178
- export declare function useUtilities(s: Styleframe): {
4609
+ export declare function useUtilitiesPreset(s: Styleframe, config?: UtilitiesPresetConfig): {
4179
4610
  createForcedColorAdjustUtility: UtilityCreatorFn;
4180
4611
  createNotSrOnlyUtility: UtilityCreatorFn;
4181
4612
  createSrOnlyUtility: UtilityCreatorFn;
@@ -4187,6 +4618,7 @@ export declare function useUtilities(s: Styleframe): {
4187
4618
  createBackgroundPositionUtility: UtilityCreatorFn;
4188
4619
  createBackgroundRepeatUtility: UtilityCreatorFn;
4189
4620
  createBackgroundSizeUtility: UtilityCreatorFn;
4621
+ createBackgroundUtility: UtilityCreatorFn;
4190
4622
  createGradientFromUtility: UtilityCreatorFn;
4191
4623
  createGradientToUtility: UtilityCreatorFn;
4192
4624
  createGradientViaUtility: UtilityCreatorFn;
@@ -4553,4 +4985,161 @@ export declare const useWordBreakUtility: <T extends Record<string, TokenValue>
4553
4985
  */
4554
4986
  export declare const useZIndexUtility: <T extends Record<string, TokenValue> = Record<string, TokenValue>>(s: Styleframe, values?: T | undefined, modifiers?: ModifierFactory[]) => UtilityCreatorFn;
4555
4987
 
4988
+ /**
4989
+ * Meta configuration for utilities preset
4990
+ */
4991
+ export declare interface UtilitiesMetaConfig {
4992
+ /**
4993
+ * When true, custom values are merged with defaults instead of replacing them.
4994
+ * Custom values override defaults with the same key.
4995
+ */
4996
+ merge?: boolean;
4997
+ }
4998
+
4999
+ /**
5000
+ * Configuration options for the utilities preset.
5001
+ *
5002
+ * - Omit or set to `undefined` to use default values
5003
+ * - Set to `false` to disable the utility category entirely
5004
+ * - Provide a custom record to use custom values
5005
+ * - Set `meta.merge` to `true` to merge custom values with defaults
5006
+ */
5007
+ export declare interface UtilitiesPresetConfig {
5008
+ meta?: UtilitiesMetaConfig;
5009
+ forcedColorAdjust?: Record<string, string> | false;
5010
+ backgroundAttachment?: Record<string, string> | false;
5011
+ backgroundClip?: Record<string, string> | false;
5012
+ backgroundImage?: Record<string, string> | false;
5013
+ backgroundOrigin?: Record<string, string> | false;
5014
+ backgroundPosition?: Record<string, string> | false;
5015
+ backgroundRepeat?: Record<string, string> | false;
5016
+ backgroundSize?: Record<string, string> | false;
5017
+ backgroundBlendMode?: Record<string, string> | false;
5018
+ mixBlendMode?: Record<string, string> | false;
5019
+ divideStyle?: Record<string, string> | false;
5020
+ outlineStyle?: Record<string, string> | false;
5021
+ flex?: Record<string, string> | false;
5022
+ flexDirection?: Record<string, string> | false;
5023
+ flexWrap?: Record<string, string> | false;
5024
+ justifyContent?: Record<string, string> | false;
5025
+ justifyItems?: Record<string, string> | false;
5026
+ justifySelf?: Record<string, string> | false;
5027
+ alignContent?: Record<string, string> | false;
5028
+ alignItems?: Record<string, string> | false;
5029
+ alignSelf?: Record<string, string> | false;
5030
+ placeContent?: Record<string, string> | false;
5031
+ placeItems?: Record<string, string> | false;
5032
+ placeSelf?: Record<string, string> | false;
5033
+ gridAutoFlow?: Record<string, string> | false;
5034
+ appearance?: Record<string, string> | false;
5035
+ colorScheme?: Record<string, string> | false;
5036
+ cursor?: Record<string, string> | false;
5037
+ pointerEvents?: Record<string, string> | false;
5038
+ resize?: Record<string, string> | false;
5039
+ scrollBehavior?: Record<string, string> | false;
5040
+ scrollSnapAlign?: Record<string, string> | false;
5041
+ scrollSnapStop?: Record<string, string> | false;
5042
+ scrollSnapType?: Record<string, string> | false;
5043
+ touchAction?: Record<string, string> | false;
5044
+ userSelect?: Record<string, string> | false;
5045
+ willChange?: Record<string, string> | false;
5046
+ aspectRatio?: Record<string, string> | false;
5047
+ boxDecorationBreak?: Record<string, string> | false;
5048
+ boxSizing?: Record<string, string> | false;
5049
+ breakAfter?: Record<string, string> | false;
5050
+ breakBefore?: Record<string, string> | false;
5051
+ breakInside?: Record<string, string> | false;
5052
+ clear?: Record<string, string> | false;
5053
+ display?: Record<string, string> | false;
5054
+ float?: Record<string, string> | false;
5055
+ isolation?: Record<string, string> | false;
5056
+ objectFit?: Record<string, string> | false;
5057
+ objectPosition?: Record<string, string> | false;
5058
+ overflow?: Record<string, string> | false;
5059
+ overscroll?: Record<string, string> | false;
5060
+ position?: Record<string, string> | false;
5061
+ visibility?: Record<string, string> | false;
5062
+ borderCollapse?: Record<string, string> | false;
5063
+ captionSide?: Record<string, string> | false;
5064
+ tableLayout?: Record<string, string> | false;
5065
+ backfaceVisibility?: Record<string, string> | false;
5066
+ perspectiveOrigin?: Record<string, string> | false;
5067
+ transformOrigin?: Record<string, string> | false;
5068
+ transformStyle?: Record<string, string> | false;
5069
+ animation?: Record<string, string> | false;
5070
+ transitionBehavior?: Record<string, string> | false;
5071
+ transitionProperty?: Record<string, string> | false;
5072
+ fontSmoothing?: Record<string, string> | false;
5073
+ fontStretch?: Record<string, string> | false;
5074
+ fontVariantNumeric?: Record<string, string> | false;
5075
+ hyphens?: Record<string, string> | false;
5076
+ listStylePosition?: Record<string, string> | false;
5077
+ listStyleType?: Record<string, string> | false;
5078
+ overflowWrap?: Record<string, string> | false;
5079
+ textAlign?: Record<string, string> | false;
5080
+ textDecorationLine?: Record<string, string> | false;
5081
+ textDecorationStyle?: Record<string, string> | false;
5082
+ textOverflow?: Record<string, string> | false;
5083
+ textTransform?: Record<string, string> | false;
5084
+ textWrap?: Record<string, string> | false;
5085
+ verticalAlign?: Record<string, string> | false;
5086
+ whitespace?: Record<string, string> | false;
5087
+ wordBreak?: Record<string, string> | false;
5088
+ }
5089
+
5090
+ /**
5091
+ * Default vertical-align utility values matching Tailwind CSS.
5092
+ */
5093
+ export declare const verticalAlignValues: {
5094
+ baseline: string;
5095
+ top: string;
5096
+ middle: string;
5097
+ bottom: string;
5098
+ "text-top": string;
5099
+ "text-bottom": string;
5100
+ sub: string;
5101
+ super: string;
5102
+ };
5103
+
5104
+ /**
5105
+ * Default visibility utility values matching Tailwind CSS.
5106
+ */
5107
+ export declare const visibilityValues: {
5108
+ visible: string;
5109
+ invisible: string;
5110
+ collapse: string;
5111
+ };
5112
+
5113
+ /**
5114
+ * Default whitespace utility values matching Tailwind CSS.
5115
+ */
5116
+ export declare const whitespaceValues: {
5117
+ normal: string;
5118
+ nowrap: string;
5119
+ pre: string;
5120
+ "pre-line": string;
5121
+ "pre-wrap": string;
5122
+ "break-spaces": string;
5123
+ };
5124
+
5125
+ /**
5126
+ * Default will-change utility values matching Tailwind CSS.
5127
+ */
5128
+ export declare const willChangeValues: {
5129
+ auto: string;
5130
+ scroll: string;
5131
+ contents: string;
5132
+ transform: string;
5133
+ };
5134
+
5135
+ /**
5136
+ * Default word-break utility values matching Tailwind CSS.
5137
+ */
5138
+ export declare const wordBreakValues: {
5139
+ normal: string;
5140
+ words: string;
5141
+ all: string;
5142
+ keep: string;
5143
+ };
5144
+
4556
5145
  export { }