@tenphi/glaze 0.0.0-snapshot.718119b → 0.0.0-snapshot.78261ef

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/index.d.cts CHANGED
@@ -133,6 +133,11 @@ interface RegularColorDef {
133
133
  * should not be combined (a console.warn is emitted).
134
134
  */
135
135
  opacity?: number;
136
+ /**
137
+ * Whether this color is inherited by child themes created via `extend()`.
138
+ * Default: true. Set to false to make this color local to the current theme.
139
+ */
140
+ inherit?: boolean;
136
141
  }
137
142
  /** Shadow tuning knobs. All values use the 0–1 scale (OKHSL). */
138
143
  interface ShadowTuning {
@@ -156,6 +161,12 @@ interface ShadowTuning {
156
161
  * 0 = pure fg hue, 1 = pure bg hue. Default: 0.2.
157
162
  */
158
163
  bgHueBlend?: number;
164
+ /**
165
+ * Power curve for dark-scheme shadow alpha (0-1). Default: 0.4.
166
+ * Lower values compress low/mid-intensity shadows more aggressively.
167
+ * 1.0 = no dampening (identity).
168
+ */
169
+ darkShadowCurve?: number;
159
170
  }
160
171
  interface ShadowColorDef {
161
172
  type: 'shadow';
@@ -177,6 +188,11 @@ interface ShadowColorDef {
177
188
  intensity: HCPair<number>;
178
189
  /** Override default tuning. Merged field-by-field with global `shadowTuning`. */
179
190
  tuning?: ShadowTuning;
191
+ /**
192
+ * Whether this color is inherited by child themes created via `extend()`.
193
+ * Default: true. Set to false to make this color local to the current theme.
194
+ */
195
+ inherit?: boolean;
180
196
  }
181
197
  interface MixColorDef {
182
198
  type: 'mix';
@@ -211,6 +227,11 @@ interface MixColorDef {
211
227
  * Supports [normal, highContrast] pair.
212
228
  */
213
229
  contrast?: HCPair<MinContrast>;
230
+ /**
231
+ * Whether this color is inherited by child themes created via `extend()`.
232
+ * Default: true. Set to false to make this color local to the current theme.
233
+ */
234
+ inherit?: boolean;
214
235
  }
215
236
  type ColorDef = RegularColorDef | ShadowColorDef | MixColorDef;
216
237
  type ColorMap = Record<string, ColorDef>;
@@ -242,6 +263,13 @@ interface GlazeConfig {
242
263
  darkLightness?: [number, number];
243
264
  /** Saturation reduction factor for dark scheme (0–1). Default: 0.1. */
244
265
  darkDesaturation?: number;
266
+ /**
267
+ * Möbius beta for dark auto-inversion (0–1).
268
+ * Lower values expand subtle near-white distinctions in dark mode.
269
+ * Set to 1 for linear (legacy) behavior. Default: 0.5.
270
+ * Accepts [normal, highContrast] pair for separate HC tuning.
271
+ */
272
+ darkCurve?: HCPair<number>;
245
273
  /** State alias names for token export. */
246
274
  states?: {
247
275
  dark?: string;
@@ -256,6 +284,7 @@ interface GlazeConfigResolved {
256
284
  lightLightness: [number, number];
257
285
  darkLightness: [number, number];
258
286
  darkDesaturation: number;
287
+ darkCurve: HCPair<number>;
259
288
  states: {
260
289
  dark: string;
261
290
  highContrast: string;
@@ -278,6 +307,8 @@ interface GlazeShadowInput {
278
307
  /** Intensity 0-100. */
279
308
  intensity: number;
280
309
  tuning?: ShadowTuning;
310
+ /** Whether to apply dark-scheme dampening. Default: false. */
311
+ dark?: boolean;
281
312
  }
282
313
  /** Input for `glaze.color()` standalone factory. */
283
314
  interface GlazeColorInput {
@@ -385,35 +416,47 @@ interface GlazeCssResult {
385
416
  lightContrast: string;
386
417
  darkContrast: string;
387
418
  }
388
- /** Options shared by palette `tokens()`, `tasty()`, and `css()` exports. */
389
- interface GlazePaletteExportOptions {
390
- /**
391
- * Prefix mode. `true` uses `"<themeName>-"`, or provide a custom map.
392
- * Defaults to `true` for palette export methods.
393
- * Set to `false` explicitly to disable prefixing (last-write-wins on collisions).
394
- */
395
- prefix?: boolean | Record<string, string>;
419
+ /** Options for `glaze.palette()` creation. */
420
+ interface GlazePaletteOptions {
396
421
  /**
397
422
  * Name of the primary theme. The primary theme's tokens are duplicated
398
- * without prefix, providing convenient short aliases alongside the
399
- * prefixed versions.
423
+ * without prefix in all exports, providing convenient short aliases
424
+ * alongside the prefixed versions. Can be overridden per-export.
400
425
  *
401
426
  * @example
402
427
  * ```ts
403
- * palette.tokens({ primary: 'brand' })
428
+ * const palette = glaze.palette({ brand, accent }, { primary: 'brand' });
429
+ * palette.tokens()
404
430
  * // → { light: { 'brand-surface': '...', 'surface': '...', 'accent-surface': '...' } }
405
431
  * ```
406
432
  */
407
433
  primary?: string;
408
434
  }
435
+ /** Options shared by palette `tokens()`, `tasty()`, and `css()` exports. */
436
+ interface GlazePaletteExportOptions {
437
+ /**
438
+ * Prefix mode. `true` uses `"<themeName>-"`, or provide a custom map.
439
+ * Defaults to `true` for palette export methods.
440
+ * Set to `false` explicitly to disable prefixing. Colliding keys
441
+ * produce a console.warn and the first-written value wins.
442
+ */
443
+ prefix?: boolean | Record<string, string>;
444
+ /**
445
+ * Override the palette-level primary theme for this export.
446
+ * Pass a theme name to set/change the primary, or `false` to disable it.
447
+ * When omitted, inherits the palette-level `primary`.
448
+ */
449
+ primary?: string | false;
450
+ }
409
451
  interface GlazePalette {
410
452
  /**
411
453
  * Export all themes as a flat token map grouped by scheme variant.
412
454
  * Prefix defaults to `true` — all tokens are prefixed with the theme name.
413
- * Use `primary` to duplicate one theme's tokens without prefix.
455
+ * Inherits the palette-level `primary`; override per-call or pass `false` to disable.
414
456
  *
415
457
  * ```ts
416
- * palette.tokens({ primary: 'brand' })
458
+ * const palette = glaze.palette({ brand, accent }, { primary: 'brand' });
459
+ * palette.tokens()
417
460
  * // → { light: { 'brand-surface': '...', 'surface': '...', 'accent-surface': '...' } }
418
461
  * ```
419
462
  */
@@ -421,12 +464,10 @@ interface GlazePalette {
421
464
  /**
422
465
  * Export all themes as tasty style-to-state bindings.
423
466
  * Uses `#name` color token keys and state aliases (`''`, `@dark`, etc.).
424
- * Prefix defaults to `true`. Use `primary` to duplicate one theme without prefix.
467
+ * Prefix defaults to `true`. Inherits the palette-level `primary`.
425
468
  * @see https://cube-ui-kit.vercel.app/?path=/docs/tasty-documentation--docs
426
469
  */
427
- tasty(options?: GlazeTokenOptions & {
428
- primary?: string;
429
- }): Record<string, Record<string, string>>;
470
+ tasty(options?: GlazeTokenOptions & GlazePaletteExportOptions): Record<string, Record<string, string>>;
430
471
  /** Export all themes as plain JSON grouped by theme name. */
431
472
  json(options?: GlazeJsonOptions & {
432
473
  prefix?: boolean | Record<string, string>;
@@ -453,11 +494,9 @@ declare function glaze(hueOrOptions: number | {
453
494
  }, saturation?: number): GlazeTheme;
454
495
  declare namespace glaze {
455
496
  var configure: (config: GlazeConfig) => void;
456
- var palette: (themes: PaletteInput) => {
497
+ var palette: (themes: PaletteInput, options?: GlazePaletteOptions) => {
457
498
  tokens(options?: GlazeJsonOptions & GlazePaletteExportOptions): Record<string, Record<string, string>>;
458
- tasty(options?: GlazeTokenOptions & {
459
- primary?: string;
460
- }): Record<string, Record<string, string>>;
499
+ tasty(options?: GlazeTokenOptions & GlazePaletteExportOptions): Record<string, Record<string, string>>;
461
500
  json(options?: GlazeJsonOptions & {
462
501
  prefix?: boolean | Record<string, string>;
463
502
  }): Record<string, Record<string, Record<string, string>>>;
@@ -541,5 +580,5 @@ declare function formatHsl(h: number, s: number, l: number): string;
541
580
  */
542
581
  declare function formatOklch(h: number, s: number, l: number): string;
543
582
  //#endregion
544
- export { type AdaptationMode, type ColorDef, type ColorMap, type ContrastPreset, type FindLightnessForContrastOptions, type FindLightnessForContrastResult, type FindValueForMixContrastOptions, type FindValueForMixContrastResult, type GlazeColorFormat, type GlazeColorInput, type GlazeColorToken, type GlazeConfig, type GlazeCssOptions, type GlazeCssResult, type GlazeExtendOptions, type GlazeJsonOptions, type GlazeOutputModes, type GlazePalette, type GlazePaletteExportOptions, type GlazeShadowInput, type GlazeTheme, type GlazeThemeExport, type GlazeTokenOptions, type HCPair, type HexColor, type MinContrast, type MixColorDef, type OkhslColor, type RegularColorDef, type RelativeValue, type ResolvedColor, type ResolvedColorVariant, type ShadowColorDef, type ShadowTuning, contrastRatioFromLuminance, findLightnessForContrast, findValueForMixContrast, formatHsl, formatOkhsl, formatOklch, formatRgb, gamutClampedLuminance, glaze, okhslToLinearSrgb, okhslToOklab, okhslToSrgb, parseHex, relativeLuminanceFromLinearRgb, resolveMinContrast, srgbToOkhsl };
583
+ export { type AdaptationMode, type ColorDef, type ColorMap, type ContrastPreset, type FindLightnessForContrastOptions, type FindLightnessForContrastResult, type FindValueForMixContrastOptions, type FindValueForMixContrastResult, type GlazeColorFormat, type GlazeColorInput, type GlazeColorToken, type GlazeConfig, type GlazeCssOptions, type GlazeCssResult, type GlazeExtendOptions, type GlazeJsonOptions, type GlazeOutputModes, type GlazePalette, type GlazePaletteExportOptions, type GlazePaletteOptions, type GlazeShadowInput, type GlazeTheme, type GlazeThemeExport, type GlazeTokenOptions, type HCPair, type HexColor, type MinContrast, type MixColorDef, type OkhslColor, type RegularColorDef, type RelativeValue, type ResolvedColor, type ResolvedColorVariant, type ShadowColorDef, type ShadowTuning, contrastRatioFromLuminance, findLightnessForContrast, findValueForMixContrast, formatHsl, formatOkhsl, formatOklch, formatRgb, gamutClampedLuminance, glaze, okhslToLinearSrgb, okhslToOklab, okhslToSrgb, parseHex, relativeLuminanceFromLinearRgb, resolveMinContrast, srgbToOkhsl };
545
584
  //# sourceMappingURL=index.d.cts.map
package/dist/index.d.mts CHANGED
@@ -133,6 +133,11 @@ interface RegularColorDef {
133
133
  * should not be combined (a console.warn is emitted).
134
134
  */
135
135
  opacity?: number;
136
+ /**
137
+ * Whether this color is inherited by child themes created via `extend()`.
138
+ * Default: true. Set to false to make this color local to the current theme.
139
+ */
140
+ inherit?: boolean;
136
141
  }
137
142
  /** Shadow tuning knobs. All values use the 0–1 scale (OKHSL). */
138
143
  interface ShadowTuning {
@@ -156,6 +161,12 @@ interface ShadowTuning {
156
161
  * 0 = pure fg hue, 1 = pure bg hue. Default: 0.2.
157
162
  */
158
163
  bgHueBlend?: number;
164
+ /**
165
+ * Power curve for dark-scheme shadow alpha (0-1). Default: 0.4.
166
+ * Lower values compress low/mid-intensity shadows more aggressively.
167
+ * 1.0 = no dampening (identity).
168
+ */
169
+ darkShadowCurve?: number;
159
170
  }
160
171
  interface ShadowColorDef {
161
172
  type: 'shadow';
@@ -177,6 +188,11 @@ interface ShadowColorDef {
177
188
  intensity: HCPair<number>;
178
189
  /** Override default tuning. Merged field-by-field with global `shadowTuning`. */
179
190
  tuning?: ShadowTuning;
191
+ /**
192
+ * Whether this color is inherited by child themes created via `extend()`.
193
+ * Default: true. Set to false to make this color local to the current theme.
194
+ */
195
+ inherit?: boolean;
180
196
  }
181
197
  interface MixColorDef {
182
198
  type: 'mix';
@@ -211,6 +227,11 @@ interface MixColorDef {
211
227
  * Supports [normal, highContrast] pair.
212
228
  */
213
229
  contrast?: HCPair<MinContrast>;
230
+ /**
231
+ * Whether this color is inherited by child themes created via `extend()`.
232
+ * Default: true. Set to false to make this color local to the current theme.
233
+ */
234
+ inherit?: boolean;
214
235
  }
215
236
  type ColorDef = RegularColorDef | ShadowColorDef | MixColorDef;
216
237
  type ColorMap = Record<string, ColorDef>;
@@ -242,6 +263,13 @@ interface GlazeConfig {
242
263
  darkLightness?: [number, number];
243
264
  /** Saturation reduction factor for dark scheme (0–1). Default: 0.1. */
244
265
  darkDesaturation?: number;
266
+ /**
267
+ * Möbius beta for dark auto-inversion (0–1).
268
+ * Lower values expand subtle near-white distinctions in dark mode.
269
+ * Set to 1 for linear (legacy) behavior. Default: 0.5.
270
+ * Accepts [normal, highContrast] pair for separate HC tuning.
271
+ */
272
+ darkCurve?: HCPair<number>;
245
273
  /** State alias names for token export. */
246
274
  states?: {
247
275
  dark?: string;
@@ -256,6 +284,7 @@ interface GlazeConfigResolved {
256
284
  lightLightness: [number, number];
257
285
  darkLightness: [number, number];
258
286
  darkDesaturation: number;
287
+ darkCurve: HCPair<number>;
259
288
  states: {
260
289
  dark: string;
261
290
  highContrast: string;
@@ -278,6 +307,8 @@ interface GlazeShadowInput {
278
307
  /** Intensity 0-100. */
279
308
  intensity: number;
280
309
  tuning?: ShadowTuning;
310
+ /** Whether to apply dark-scheme dampening. Default: false. */
311
+ dark?: boolean;
281
312
  }
282
313
  /** Input for `glaze.color()` standalone factory. */
283
314
  interface GlazeColorInput {
@@ -385,35 +416,47 @@ interface GlazeCssResult {
385
416
  lightContrast: string;
386
417
  darkContrast: string;
387
418
  }
388
- /** Options shared by palette `tokens()`, `tasty()`, and `css()` exports. */
389
- interface GlazePaletteExportOptions {
390
- /**
391
- * Prefix mode. `true` uses `"<themeName>-"`, or provide a custom map.
392
- * Defaults to `true` for palette export methods.
393
- * Set to `false` explicitly to disable prefixing (last-write-wins on collisions).
394
- */
395
- prefix?: boolean | Record<string, string>;
419
+ /** Options for `glaze.palette()` creation. */
420
+ interface GlazePaletteOptions {
396
421
  /**
397
422
  * Name of the primary theme. The primary theme's tokens are duplicated
398
- * without prefix, providing convenient short aliases alongside the
399
- * prefixed versions.
423
+ * without prefix in all exports, providing convenient short aliases
424
+ * alongside the prefixed versions. Can be overridden per-export.
400
425
  *
401
426
  * @example
402
427
  * ```ts
403
- * palette.tokens({ primary: 'brand' })
428
+ * const palette = glaze.palette({ brand, accent }, { primary: 'brand' });
429
+ * palette.tokens()
404
430
  * // → { light: { 'brand-surface': '...', 'surface': '...', 'accent-surface': '...' } }
405
431
  * ```
406
432
  */
407
433
  primary?: string;
408
434
  }
435
+ /** Options shared by palette `tokens()`, `tasty()`, and `css()` exports. */
436
+ interface GlazePaletteExportOptions {
437
+ /**
438
+ * Prefix mode. `true` uses `"<themeName>-"`, or provide a custom map.
439
+ * Defaults to `true` for palette export methods.
440
+ * Set to `false` explicitly to disable prefixing. Colliding keys
441
+ * produce a console.warn and the first-written value wins.
442
+ */
443
+ prefix?: boolean | Record<string, string>;
444
+ /**
445
+ * Override the palette-level primary theme for this export.
446
+ * Pass a theme name to set/change the primary, or `false` to disable it.
447
+ * When omitted, inherits the palette-level `primary`.
448
+ */
449
+ primary?: string | false;
450
+ }
409
451
  interface GlazePalette {
410
452
  /**
411
453
  * Export all themes as a flat token map grouped by scheme variant.
412
454
  * Prefix defaults to `true` — all tokens are prefixed with the theme name.
413
- * Use `primary` to duplicate one theme's tokens without prefix.
455
+ * Inherits the palette-level `primary`; override per-call or pass `false` to disable.
414
456
  *
415
457
  * ```ts
416
- * palette.tokens({ primary: 'brand' })
458
+ * const palette = glaze.palette({ brand, accent }, { primary: 'brand' });
459
+ * palette.tokens()
417
460
  * // → { light: { 'brand-surface': '...', 'surface': '...', 'accent-surface': '...' } }
418
461
  * ```
419
462
  */
@@ -421,12 +464,10 @@ interface GlazePalette {
421
464
  /**
422
465
  * Export all themes as tasty style-to-state bindings.
423
466
  * Uses `#name` color token keys and state aliases (`''`, `@dark`, etc.).
424
- * Prefix defaults to `true`. Use `primary` to duplicate one theme without prefix.
467
+ * Prefix defaults to `true`. Inherits the palette-level `primary`.
425
468
  * @see https://cube-ui-kit.vercel.app/?path=/docs/tasty-documentation--docs
426
469
  */
427
- tasty(options?: GlazeTokenOptions & {
428
- primary?: string;
429
- }): Record<string, Record<string, string>>;
470
+ tasty(options?: GlazeTokenOptions & GlazePaletteExportOptions): Record<string, Record<string, string>>;
430
471
  /** Export all themes as plain JSON grouped by theme name. */
431
472
  json(options?: GlazeJsonOptions & {
432
473
  prefix?: boolean | Record<string, string>;
@@ -453,11 +494,9 @@ declare function glaze(hueOrOptions: number | {
453
494
  }, saturation?: number): GlazeTheme;
454
495
  declare namespace glaze {
455
496
  var configure: (config: GlazeConfig) => void;
456
- var palette: (themes: PaletteInput) => {
497
+ var palette: (themes: PaletteInput, options?: GlazePaletteOptions) => {
457
498
  tokens(options?: GlazeJsonOptions & GlazePaletteExportOptions): Record<string, Record<string, string>>;
458
- tasty(options?: GlazeTokenOptions & {
459
- primary?: string;
460
- }): Record<string, Record<string, string>>;
499
+ tasty(options?: GlazeTokenOptions & GlazePaletteExportOptions): Record<string, Record<string, string>>;
461
500
  json(options?: GlazeJsonOptions & {
462
501
  prefix?: boolean | Record<string, string>;
463
502
  }): Record<string, Record<string, Record<string, string>>>;
@@ -541,5 +580,5 @@ declare function formatHsl(h: number, s: number, l: number): string;
541
580
  */
542
581
  declare function formatOklch(h: number, s: number, l: number): string;
543
582
  //#endregion
544
- export { type AdaptationMode, type ColorDef, type ColorMap, type ContrastPreset, type FindLightnessForContrastOptions, type FindLightnessForContrastResult, type FindValueForMixContrastOptions, type FindValueForMixContrastResult, type GlazeColorFormat, type GlazeColorInput, type GlazeColorToken, type GlazeConfig, type GlazeCssOptions, type GlazeCssResult, type GlazeExtendOptions, type GlazeJsonOptions, type GlazeOutputModes, type GlazePalette, type GlazePaletteExportOptions, type GlazeShadowInput, type GlazeTheme, type GlazeThemeExport, type GlazeTokenOptions, type HCPair, type HexColor, type MinContrast, type MixColorDef, type OkhslColor, type RegularColorDef, type RelativeValue, type ResolvedColor, type ResolvedColorVariant, type ShadowColorDef, type ShadowTuning, contrastRatioFromLuminance, findLightnessForContrast, findValueForMixContrast, formatHsl, formatOkhsl, formatOklch, formatRgb, gamutClampedLuminance, glaze, okhslToLinearSrgb, okhslToOklab, okhslToSrgb, parseHex, relativeLuminanceFromLinearRgb, resolveMinContrast, srgbToOkhsl };
583
+ export { type AdaptationMode, type ColorDef, type ColorMap, type ContrastPreset, type FindLightnessForContrastOptions, type FindLightnessForContrastResult, type FindValueForMixContrastOptions, type FindValueForMixContrastResult, type GlazeColorFormat, type GlazeColorInput, type GlazeColorToken, type GlazeConfig, type GlazeCssOptions, type GlazeCssResult, type GlazeExtendOptions, type GlazeJsonOptions, type GlazeOutputModes, type GlazePalette, type GlazePaletteExportOptions, type GlazePaletteOptions, type GlazeShadowInput, type GlazeTheme, type GlazeThemeExport, type GlazeTokenOptions, type HCPair, type HexColor, type MinContrast, type MixColorDef, type OkhslColor, type RegularColorDef, type RelativeValue, type ResolvedColor, type ResolvedColorVariant, type ShadowColorDef, type ShadowTuning, contrastRatioFromLuminance, findLightnessForContrast, findValueForMixContrast, formatHsl, formatOkhsl, formatOklch, formatRgb, gamutClampedLuminance, glaze, okhslToLinearSrgb, okhslToOklab, okhslToSrgb, parseHex, relativeLuminanceFromLinearRgb, resolveMinContrast, srgbToOkhsl };
545
584
  //# sourceMappingURL=index.d.mts.map