@sugarcube-sh/core 0.0.2 → 0.0.4

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.ts CHANGED
@@ -21,6 +21,16 @@ type TransformsConfig = {
21
21
  fluid: FluidConfig;
22
22
  colorFallbackStrategy: ColorFallbackStrategy;
23
23
  };
24
+ /**
25
+ * CSS cascade layers configuration.
26
+ * When configured, generated CSS will be wrapped in @layer blocks.
27
+ */
28
+ type LayersConfig = {
29
+ /** Layer name for CSS variables (e.g., "base", "tokens") */
30
+ variables: string;
31
+ /** Layer name for utility classes (e.g., "utilities") */
32
+ utilities: string;
33
+ };
24
34
  type OutputConfig = {
25
35
  cssRoot: string;
26
36
  variables?: string;
@@ -31,6 +41,8 @@ type OutputConfig = {
31
41
  components?: string;
32
42
  themeAttribute: string;
33
43
  defaultContext?: string;
44
+ /** CSS cascade layers configuration. When set, output is wrapped in @layer blocks. */
45
+ layers?: LayersConfig;
34
46
  };
35
47
  type UtilitiesConfig = Record<string, PropertyUtilityConfig | PropertyUtilityConfig[]>;
36
48
  /**
@@ -120,6 +132,17 @@ interface SugarcubeConfig {
120
132
  * @default The resolver's default context
121
133
  */
122
134
  defaultContext?: string;
135
+ /**
136
+ * CSS cascade layers configuration.
137
+ * When set, generated CSS will be wrapped in @layer blocks.
138
+ *
139
+ * @example
140
+ * layers: {
141
+ * variables: "base",
142
+ * utilities: "utilities"
143
+ * }
144
+ */
145
+ layers?: LayersConfig;
123
146
  };
124
147
  /**
125
148
  * CSS utility class generation configuration.
@@ -268,6 +291,24 @@ type ResolverDiscoveryResult = {
268
291
  */
269
292
  declare function findResolverDocument(directory: string): Promise<ResolverDiscoveryResult>;
270
293
 
294
+ /**
295
+ * Result of extracting file references from a resolver document.
296
+ */
297
+ type ExtractFileRefsResult = {
298
+ /** Absolute paths to all external token files referenced */
299
+ filePaths: string[];
300
+ /** Absolute path to the resolver file itself */
301
+ resolverPath: string;
302
+ };
303
+ /**
304
+ * Extract all external file paths from a resolver document without fully loading/resolving tokens.
305
+ * This is useful for watch mode to know which files to monitor for changes without fully loading/resolving tokens.
306
+ *
307
+ * @param resolverPath - Path to the resolver JSON file
308
+ * @returns Object containing absolute paths to all referenced files and the resolver itself
309
+ */
310
+ declare function extractFileRefs(resolverPath: string): Promise<ExtractFileRefsResult>;
311
+
271
312
  type BaseError = {
272
313
  message: string;
273
314
  };
@@ -748,6 +789,16 @@ declare const userConfigSchema: z.ZodObject<{
748
789
  components: z.ZodOptional<z.ZodString>;
749
790
  themeAttribute: z.ZodOptional<z.ZodString>;
750
791
  defaultContext: z.ZodOptional<z.ZodString>;
792
+ layers: z.ZodOptional<z.ZodObject<{
793
+ variables: z.ZodString;
794
+ utilities: z.ZodString;
795
+ }, "strip", z.ZodTypeAny, {
796
+ variables: string;
797
+ utilities: string;
798
+ }, {
799
+ variables: string;
800
+ utilities: string;
801
+ }>>;
751
802
  }, "strip", z.ZodTypeAny, {
752
803
  cssRoot?: string | undefined;
753
804
  variables?: string | undefined;
@@ -758,6 +809,10 @@ declare const userConfigSchema: z.ZodObject<{
758
809
  components?: string | undefined;
759
810
  themeAttribute?: string | undefined;
760
811
  defaultContext?: string | undefined;
812
+ layers?: {
813
+ variables: string;
814
+ utilities: string;
815
+ } | undefined;
761
816
  }, {
762
817
  cssRoot?: string | undefined;
763
818
  variables?: string | undefined;
@@ -768,6 +823,10 @@ declare const userConfigSchema: z.ZodObject<{
768
823
  components?: string | undefined;
769
824
  themeAttribute?: string | undefined;
770
825
  defaultContext?: string | undefined;
826
+ layers?: {
827
+ variables: string;
828
+ utilities: string;
829
+ } | undefined;
771
830
  }>>;
772
831
  utilities: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
773
832
  source: z.ZodString;
@@ -830,6 +889,10 @@ declare const userConfigSchema: z.ZodObject<{
830
889
  components?: string | undefined;
831
890
  themeAttribute?: string | undefined;
832
891
  defaultContext?: string | undefined;
892
+ layers?: {
893
+ variables: string;
894
+ utilities: string;
895
+ } | undefined;
833
896
  } | undefined;
834
897
  }, {
835
898
  resolver?: string | undefined;
@@ -861,8 +924,12 @@ declare const userConfigSchema: z.ZodObject<{
861
924
  components?: string | undefined;
862
925
  themeAttribute?: string | undefined;
863
926
  defaultContext?: string | undefined;
927
+ layers?: {
928
+ variables: string;
929
+ utilities: string;
930
+ } | undefined;
864
931
  } | undefined;
865
932
  }>;
866
933
 
867
- export { DEFAULT_CONFIG, Instrumentation, PerfMonitor, clearMatchCache, configFileExists, convertConfigToUnoRules, defineConfig, fillDefaults, findResolverDocument, generateCSSVariables, isNoConfigError, loadAndResolveTokens, loadInternalConfig, loadSugarcubeConfig, processAndConvertTokens, userConfigSchema, validateConfig, writeCSSUtilitiesToDisk, writeCSSVariablesToDisk };
868
- export type { CSSFileOutput, ColorFallbackStrategy, FluidConfig, InternalConfig, ModifierMeta, NormalizedConvertedTokens, ResolvedTokens, ResolverDiscoveryResult, SugarcubeConfig, TokenPipelineSource, TokenTree };
934
+ export { DEFAULT_CONFIG, Instrumentation, PerfMonitor, clearMatchCache, configFileExists, convertConfigToUnoRules, defineConfig, extractFileRefs, fillDefaults, findResolverDocument, generateCSSVariables, isNoConfigError, loadAndResolveTokens, loadInternalConfig, loadSugarcubeConfig, processAndConvertTokens, userConfigSchema, validateConfig, writeCSSUtilitiesToDisk, writeCSSVariablesToDisk };
935
+ export type { CSSFileOutput, ColorFallbackStrategy, ExtractFileRefsResult, FluidConfig, InternalConfig, LayersConfig, ModifierMeta, NormalizedConvertedTokens, ResolvedTokens, ResolverDiscoveryResult, SugarcubeConfig, TokenPipelineSource, TokenTree };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var Je=Object.defineProperty;var s=(e,t)=>Je(e,"name",{value:t,configurable:!0});import{existsSync as Xe}from"node:fs";import Ze,{readFile as le,mkdir as fe,writeFile as pe}from"node:fs/promises";import{pathToFileURL as Qe}from"node:url";import{relative as x,resolve as O,isAbsolute as F,dirname as z}from"pathe";import{glob as et}from"tinyglobby";import{z as f}from"zod";function tt(e){return e}s(tt,"defineConfig");const b={output:{cssRoot:"src/styles",variablesFilename:"tokens.variables.gen.css",utilitiesFilename:"utilities.gen.css",components:"src/components/ui",themeAttribute:"data-theme"},transforms:{fluid:{min:320,max:1200},colorFallbackStrategy:"native"}},u={LOAD:{NO_FILES_FOUND:s(e=>`No files found matching pattern: ${e}.`,"NO_FILES_FOUND"),INVALID_JSON:s((e,t)=>`Invalid JSON in file ${e}: ${t}`,"INVALID_JSON"),GLOB_ERROR:s((e,t)=>`Error resolving glob pattern ${e}: ${t}`,"GLOB_ERROR")},FLATTEN:{INVALID_TOKEN_NAME:s(e=>`Invalid token name "${e}": Token names cannot contain dots (.), curly braces ({,}), or other special characters`,"INVALID_TOKEN_NAME"),MISSING_DOLLAR_PREFIX:s(e=>`Token at ${e} is using 'value' or 'type' without the required '$' prefix. Use '$value' and '$type' instead.`,"MISSING_DOLLAR_PREFIX"),INVALID_TOKEN_NESTING:s(e=>`Token at "${e}" cannot contain child tokens or groups. Only metadata properties (starting with $) are allowed.`,"INVALID_TOKEN_NESTING"),COMPOSITE_TOKEN_MISSING_TYPE:s(e=>`Composite token at '${e}' is missing the required "$type" property. Composite tokens (tokens with object values) must specify their type to define their structure.`,"COMPOSITE_TOKEN_MISSING_TYPE"),CONFLICT_TOKEN_VS_GROUP:s(e=>`Conflict at "${e}": token vs group. A token cannot be replaced by a group (or vice versa).`,"CONFLICT_TOKEN_VS_GROUP"),CONFLICT_INCOMPATIBLE_TYPES:s((e,t,n)=>`Type conflict at "${n}": expected ${e}, got ${t}`,"CONFLICT_INCOMPATIBLE_TYPES")},METADATA:{COLLECTION_ERROR:s(e=>`Error collecting metadata: ${e}`,"COLLECTION_ERROR"),INVALID_EXTENSIONS:s(e=>`Invalid extensions at ${e}: expected object, got ${typeof e}`,"INVALID_EXTENSIONS"),INVALID_DESCRIPTION:s(e=>`Invalid description at ${e}: expected string, got ${typeof e}`,"INVALID_DESCRIPTION")},VALIDATE:{MISSING_TYPE:s(e=>`Token at '${e}' is missing the "$type" property`,"MISSING_TYPE"),UNKNOWN_TOKEN_TYPE:s((e,t)=>`Unknown token type '${e}' at ${t}. Valid types are: color, dimension, fontFamily, fontWeight, duration, cubicBezier, strokeStyle, border, transition, shadow, gradient, typography`,"UNKNOWN_TOKEN_TYPE"),INVALID_COLOR:s((e,t)=>`Invalid color at ${t}: '${e}'. Color should be a valid hex value or W3C color object`,"INVALID_COLOR"),INVALID_DIMENSION:s((e,t)=>`Invalid dimension at '${t}': ${e}. Dimensions should have a numeric value and unit, like { "value": 16, "unit": "px" }`,"INVALID_DIMENSION"),INVALID_DIMENSION_UNIT:s((e,t)=>`Invalid unit at ${t}': '${e}'. Unit must be either "px" or "rem"`,"INVALID_DIMENSION_UNIT"),INVALID_FONT_FAMILY:s((e,t)=>`Invalid font family at '${t}': ${e}. Should be a string or array of strings, like "Arial" or ["Arial", "sans-serif"]`,"INVALID_FONT_FAMILY"),INVALID_FONT_WEIGHT:s((e,t)=>`Invalid font weight at '${t}': ${e}. Should be a number between 1-1000 or a keyword like "thin", "light", "normal", "bold"`,"INVALID_FONT_WEIGHT"),INVALID_DURATION:s((e,t)=>`Invalid duration at '${t}': ${e}. Should be like { "value": 300, "unit": "ms" }`,"INVALID_DURATION"),INVALID_DURATION_UNIT:s((e,t)=>`Invalid unit at ${t}: "${e}". Unit must be "ms" or "s"`,"INVALID_DURATION_UNIT"),INVALID_CUBIC_BEZIER:s((e,t)=>`Invalid cubic bezier at ${t}: "${e}". Should be an array of 4 numbers between 0 and 1`,"INVALID_CUBIC_BEZIER"),INVALID_STROKE_STYLE:s((e,t)=>`Invalid stroke style at ${t}: "${e}". Should be "solid", "dashed", "dotted", etc.`,"INVALID_STROKE_STYLE"),INVALID_STROKE_LINE_CAP:s((e,t)=>`Invalid line cap at ${t}: "${e}". Should be one of: round, butt, square`,"INVALID_STROKE_LINE_CAP"),INVALID_BORDER:s((e,t)=>`Invalid border at ${t}: "${e}". Should have color, width, and style properties`,"INVALID_BORDER"),INVALID_SHADOW:s((e,t)=>`Invalid shadow at ${t}: "${e}". Should have color, offsetX, offsetY properties (blur and spread are optional)`,"INVALID_SHADOW"),INVALID_SHADOW_INSET:s((e,t)=>`Invalid inset value at ${t}: "${e}". Should be true or false`,"INVALID_SHADOW_INSET"),INVALID_TRANSITION:s((e,t)=>`Invalid transition at ${t}: "${e}". Should have duration, delay, and timingFunction properties`,"INVALID_TRANSITION"),INVALID_GRADIENT:s((e,t)=>`Invalid gradient at ${t}: "${e}". Should be an array of color stops with position values between 0 and 1`,"INVALID_GRADIENT"),INVALID_GRADIENT_STOP_POSITION:s((e,t)=>`Invalid gradient stop position at ${t}: "${e}". Position must be between 0 and 1`,"INVALID_GRADIENT_STOP_POSITION"),INVALID_TYPOGRAPHY:s((e,t)=>`Invalid typography at ${t}: "${e}". Should have fontFamily and fontSize (fontWeight, letterSpacing, and lineHeight are optional)`,"INVALID_TYPOGRAPHY"),MISSING_REQUIRED_PROPERTY:s((e,t)=>`Missing required property '${e}' at ${t}`,"MISSING_REQUIRED_PROPERTY"),INVALID_NUMBER:s((e,t)=>`Invalid number at ${t}: "${e}". Expected a number value`,"INVALID_NUMBER"),INVALID_ARRAY:s((e,t)=>`Invalid array at ${t}: "${e}". Expected an array value`,"INVALID_ARRAY"),MISSING_FLUID_CONFIG:s(e=>`Missing fluid configuration. Token at ${e} requires fluid viewport settings.`,"MISSING_FLUID_CONFIG"),INVALID_FLUID_DIMENSION:s((e,t)=>`Invalid fluid dimension at ${t}: "${e}". Fluid dimensions should have min and max values, like { "min": { "value": 16, "unit": "px" }, "max": { "value": 24, "unit": "px" } }`,"INVALID_FLUID_DIMENSION"),INVALID_VIEWPORT_CONFIG:s((e,t)=>`Invalid viewport configuration at ${t}: "${e}". Viewport config should have min and max dimension values`,"INVALID_VIEWPORT_CONFIG"),MISMATCHED_UNITS:s((e,t,n)=>`Mismatched units at ${n}: min uses '${e}', max uses '${t}'. Both values must use the same unit`,"MISMATCHED_UNITS"),INVALID_FLUID_VALUE_RANGE:s(e=>`Invalid fluid value range at ${e}: min value must be less than max value`,"INVALID_FLUID_VALUE_RANGE"),INVALID_TOKEN_TYPE:s((e,t,n)=>`Invalid token type at ${n}: expected ${e}, got ${t}`,"INVALID_TOKEN_TYPE"),INVALID_TYPE:s((e,t,n)=>`Expected ${e}, received ${typeof t} at ${n}`,"INVALID_TYPE"),INVALID_ENUM_VALUE:s((e,t,n)=>`Expected value to be one of [${e.join(", ")}], but got ${String(t)} at ${n}`,"INVALID_ENUM_VALUE")},RESOLVE:{CIRCULAR_REFERENCE:s((e,t)=>`Circular reference detected: ${e} -> ${t}`,"CIRCULAR_REFERENCE"),REFERENCE_NOT_FOUND:s((e,t)=>`Reference not found: ${e} in ${t}. Does ${e} exist?`,"REFERENCE_NOT_FOUND"),TYPE_MISMATCH:s(e=>`Type mismatch in ${e}`,"TYPE_MISMATCH")},GENERATE:{INVALID_CSS_VALUE:s((e,t)=>`Invalid CSS value for property '${e}': ${t}`,"INVALID_CSS_VALUE"),INVALID_VARIABLE_NAME:s((e,t)=>`Invalid CSS variable name at '${e}': ${t}`,"INVALID_VARIABLE_NAME")},CONFIG:{INVALID_JSON:s(e=>`Invalid JSON in config file: ${e}`,"INVALID_JSON"),INVALID_CONFIG:s((e,t)=>`Invalid configuration at ${e}: ${t}`,"INVALID_CONFIG"),DUPLICATE_FILENAMES:s((e,t)=>`Duplicate filename "${e}":
1
+ var Qe=Object.defineProperty;var s=(e,t)=>Qe(e,"name",{value:t,configurable:!0});import{existsSync as et}from"node:fs";import tt,{readFile as X,mkdir as de,writeFile as me}from"node:fs/promises";import{pathToFileURL as nt}from"node:url";import{relative as F,resolve as T,isAbsolute as D,dirname as C}from"pathe";import{glob as rt}from"tinyglobby";import{z as u}from"zod";function ot(e){return e}s(ot,"defineConfig");const O={output:{cssRoot:"src/styles",variablesFilename:"tokens.variables.gen.css",utilitiesFilename:"utilities.gen.css",components:"src/components/ui",themeAttribute:"data-theme"},transforms:{fluid:{min:320,max:1200},colorFallbackStrategy:"native"}},f={LOAD:{NO_FILES_FOUND:s(e=>`No files found matching pattern: ${e}.`,"NO_FILES_FOUND"),INVALID_JSON:s((e,t)=>`Invalid JSON in file ${e}: ${t}`,"INVALID_JSON"),GLOB_ERROR:s((e,t)=>`Error resolving glob pattern ${e}: ${t}`,"GLOB_ERROR")},FLATTEN:{INVALID_TOKEN_NAME:s(e=>`Invalid token name "${e}": Token names cannot contain dots (.), curly braces ({,}), or other special characters`,"INVALID_TOKEN_NAME"),MISSING_DOLLAR_PREFIX:s(e=>`Token at ${e} is using 'value' or 'type' without the required '$' prefix. Use '$value' and '$type' instead.`,"MISSING_DOLLAR_PREFIX"),INVALID_TOKEN_NESTING:s(e=>`Token at "${e}" cannot contain child tokens or groups. Only metadata properties (starting with $) are allowed.`,"INVALID_TOKEN_NESTING"),COMPOSITE_TOKEN_MISSING_TYPE:s(e=>`Composite token at '${e}' is missing the required "$type" property. Composite tokens (tokens with object values) must specify their type to define their structure.`,"COMPOSITE_TOKEN_MISSING_TYPE"),CONFLICT_TOKEN_VS_GROUP:s(e=>`Conflict at "${e}": token vs group. A token cannot be replaced by a group (or vice versa).`,"CONFLICT_TOKEN_VS_GROUP"),CONFLICT_INCOMPATIBLE_TYPES:s((e,t,n)=>`Type conflict at "${n}": expected ${e}, got ${t}`,"CONFLICT_INCOMPATIBLE_TYPES")},METADATA:{COLLECTION_ERROR:s(e=>`Error collecting metadata: ${e}`,"COLLECTION_ERROR"),INVALID_EXTENSIONS:s(e=>`Invalid extensions at ${e}: expected object, got ${typeof e}`,"INVALID_EXTENSIONS"),INVALID_DESCRIPTION:s(e=>`Invalid description at ${e}: expected string, got ${typeof e}`,"INVALID_DESCRIPTION")},VALIDATE:{MISSING_TYPE:s(e=>`Token at '${e}' is missing the "$type" property`,"MISSING_TYPE"),UNKNOWN_TOKEN_TYPE:s((e,t)=>`Unknown token type '${e}' at ${t}. Valid types are: color, dimension, fontFamily, fontWeight, duration, cubicBezier, strokeStyle, border, transition, shadow, gradient, typography`,"UNKNOWN_TOKEN_TYPE"),INVALID_COLOR:s((e,t)=>`Invalid color at ${t}: '${e}'. Color should be a valid hex value or W3C color object`,"INVALID_COLOR"),INVALID_DIMENSION:s((e,t)=>`Invalid dimension at '${t}': ${e}. Dimensions should have a numeric value and unit, like { "value": 16, "unit": "px" }`,"INVALID_DIMENSION"),INVALID_DIMENSION_UNIT:s((e,t)=>`Invalid unit at ${t}': '${e}'. Unit must be either "px" or "rem"`,"INVALID_DIMENSION_UNIT"),INVALID_FONT_FAMILY:s((e,t)=>`Invalid font family at '${t}': ${e}. Should be a string or array of strings, like "Arial" or ["Arial", "sans-serif"]`,"INVALID_FONT_FAMILY"),INVALID_FONT_WEIGHT:s((e,t)=>`Invalid font weight at '${t}': ${e}. Should be a number between 1-1000 or a keyword like "thin", "light", "normal", "bold"`,"INVALID_FONT_WEIGHT"),INVALID_DURATION:s((e,t)=>`Invalid duration at '${t}': ${e}. Should be like { "value": 300, "unit": "ms" }`,"INVALID_DURATION"),INVALID_DURATION_UNIT:s((e,t)=>`Invalid unit at ${t}: "${e}". Unit must be "ms" or "s"`,"INVALID_DURATION_UNIT"),INVALID_CUBIC_BEZIER:s((e,t)=>`Invalid cubic bezier at ${t}: "${e}". Should be an array of 4 numbers between 0 and 1`,"INVALID_CUBIC_BEZIER"),INVALID_STROKE_STYLE:s((e,t)=>`Invalid stroke style at ${t}: "${e}". Should be "solid", "dashed", "dotted", etc.`,"INVALID_STROKE_STYLE"),INVALID_STROKE_LINE_CAP:s((e,t)=>`Invalid line cap at ${t}: "${e}". Should be one of: round, butt, square`,"INVALID_STROKE_LINE_CAP"),INVALID_BORDER:s((e,t)=>`Invalid border at ${t}: "${e}". Should have color, width, and style properties`,"INVALID_BORDER"),INVALID_SHADOW:s((e,t)=>`Invalid shadow at ${t}: "${e}". Should have color, offsetX, offsetY properties (blur and spread are optional)`,"INVALID_SHADOW"),INVALID_SHADOW_INSET:s((e,t)=>`Invalid inset value at ${t}: "${e}". Should be true or false`,"INVALID_SHADOW_INSET"),INVALID_TRANSITION:s((e,t)=>`Invalid transition at ${t}: "${e}". Should have duration, delay, and timingFunction properties`,"INVALID_TRANSITION"),INVALID_GRADIENT:s((e,t)=>`Invalid gradient at ${t}: "${e}". Should be an array of color stops with position values between 0 and 1`,"INVALID_GRADIENT"),INVALID_GRADIENT_STOP_POSITION:s((e,t)=>`Invalid gradient stop position at ${t}: "${e}". Position must be between 0 and 1`,"INVALID_GRADIENT_STOP_POSITION"),INVALID_TYPOGRAPHY:s((e,t)=>`Invalid typography at ${t}: "${e}". Should have fontFamily and fontSize (fontWeight, letterSpacing, and lineHeight are optional)`,"INVALID_TYPOGRAPHY"),MISSING_REQUIRED_PROPERTY:s((e,t)=>`Missing required property '${e}' at ${t}`,"MISSING_REQUIRED_PROPERTY"),INVALID_NUMBER:s((e,t)=>`Invalid number at ${t}: "${e}". Expected a number value`,"INVALID_NUMBER"),INVALID_ARRAY:s((e,t)=>`Invalid array at ${t}: "${e}". Expected an array value`,"INVALID_ARRAY"),MISSING_FLUID_CONFIG:s(e=>`Missing fluid configuration. Token at ${e} requires fluid viewport settings.`,"MISSING_FLUID_CONFIG"),INVALID_FLUID_DIMENSION:s((e,t)=>`Invalid fluid dimension at ${t}: "${e}". Fluid dimensions should have min and max values, like { "min": { "value": 16, "unit": "px" }, "max": { "value": 24, "unit": "px" } }`,"INVALID_FLUID_DIMENSION"),INVALID_VIEWPORT_CONFIG:s((e,t)=>`Invalid viewport configuration at ${t}: "${e}". Viewport config should have min and max dimension values`,"INVALID_VIEWPORT_CONFIG"),MISMATCHED_UNITS:s((e,t,n)=>`Mismatched units at ${n}: min uses '${e}', max uses '${t}'. Both values must use the same unit`,"MISMATCHED_UNITS"),INVALID_FLUID_VALUE_RANGE:s(e=>`Invalid fluid value range at ${e}: min value must be less than max value`,"INVALID_FLUID_VALUE_RANGE"),INVALID_TOKEN_TYPE:s((e,t,n)=>`Invalid token type at ${n}: expected ${e}, got ${t}`,"INVALID_TOKEN_TYPE"),INVALID_TYPE:s((e,t,n)=>`Expected ${e}, received ${typeof t} at ${n}`,"INVALID_TYPE"),INVALID_ENUM_VALUE:s((e,t,n)=>`Expected value to be one of [${e.join(", ")}], but got ${String(t)} at ${n}`,"INVALID_ENUM_VALUE")},RESOLVE:{CIRCULAR_REFERENCE:s((e,t)=>`Circular reference detected: ${e} -> ${t}`,"CIRCULAR_REFERENCE"),REFERENCE_NOT_FOUND:s((e,t)=>`Reference not found: ${e} in ${t}. Does ${e} exist?`,"REFERENCE_NOT_FOUND"),TYPE_MISMATCH:s(e=>`Type mismatch in ${e}`,"TYPE_MISMATCH")},GENERATE:{INVALID_CSS_VALUE:s((e,t)=>`Invalid CSS value for property '${e}': ${t}`,"INVALID_CSS_VALUE"),INVALID_VARIABLE_NAME:s((e,t)=>`Invalid CSS variable name at '${e}': ${t}`,"INVALID_VARIABLE_NAME")},CONFIG:{INVALID_JSON:s(e=>`Invalid JSON in config file: ${e}`,"INVALID_JSON"),INVALID_CONFIG:s((e,t)=>`Invalid configuration at ${e}: ${t}`,"INVALID_CONFIG"),DUPLICATE_FILENAMES:s((e,t)=>`Duplicate filename "${e}":
2
2
  ${t.map(n=>` - ${n}`).join(`
3
3
  `)}`,"DUPLICATE_FILENAMES"),FILE_NOT_FOUND:s(e=>e==="sugarcube.config.ts"?"Cannot find sugarcube config file. Please ensure you have a valid sugarcube.config.ts file in your project root.":`Cannot find sugarcube config file at "${e}". Please check the path and file permissions.`,"FILE_NOT_FOUND"),MULTIPLE_RESOLVERS_FOUND:s(e=>`Multiple resolver files found:
4
4
  ${e.map(t=>` - ${t}`).join(`
@@ -9,24 +9,24 @@ Please specify which one to use:
9
9
  2. Use --resolver flag (generate command only)`,"MULTIPLE_RESOLVERS_FOUND"),NO_CONFIG_OR_RESOLVER:s(()=>`No configuration found. Either:
10
10
  1. Run: npx @sugarcube-sh/cli init
11
11
  2. Create a .resolver.json file
12
- 3. Create a sugarcube.config.ts file`,"NO_CONFIG_OR_RESOLVER")},UTILITIES:{RESERVED_PREFIX:s((e,t)=>`Cannot use reserved prefix "${e}" for ${t} token type. This prefix is reserved for default utility classes. Please use a custom prefix instead.`,"RESERVED_PREFIX"),DUPLICATE_CLASS_NAME:s((e,t)=>`Ambiguous utility class "${e}" would be generated from multiple token paths: ${t.join(", ")}. This would make it impossible to know which token value should be used when this class is applied in HTML. To fix this, configure one or more paths with custom prefixes to make the intent clear.`,"DUPLICATE_CLASS_NAME"),INVALID_PROPERTY_MAPPING:s(e=>`Invalid property mapping for ${e} token type. When mapping multiple properties, each mapping must include a unique prefix to avoid class name collisions.`,"INVALID_PROPERTY_MAPPING"),DUPLICATE_PREFIX:s((e,t)=>`Duplicate prefix "${e}" found in property mappings for ${t} token type. Each property mapping must have a unique prefix to avoid class name collisions.`,"DUPLICATE_PREFIX"),MISSING_SOURCE:s(e=>`Utility config for '${e}' must have a valid 'source' property`,"MISSING_SOURCE"),INVALID_SOURCE_PATTERN:s((e,t)=>`Utility config for '${e}' has invalid source pattern '${t}'. Only patterns ending with '.*' are supported (e.g., 'color.*', 'font.weight.*').`,"INVALID_SOURCE_PATTERN"),INVALID_DIRECTIONS:s(e=>`Utility config for '${e}' must have 'directions' as an array`,"INVALID_DIRECTIONS"),INVALID_CONFIG_OBJECT:"utilitiesConfig must be an object",INVALID_TOKENS_OBJECT:"tokens must be an object"},RESOLVER:{FILE_NOT_FOUND:s(e=>`Cannot read resolver file at "${e}". Please check the path and file permissions.`,"FILE_NOT_FOUND"),INVALID_JSON:s(e=>`Invalid JSON in resolver file: ${e}`,"INVALID_JSON"),INVALID_REFERENCE:s(e=>`Invalid reference "${e}". References must use format #/sets/<name> or #/modifiers/<name>.`,"INVALID_REFERENCE"),INVALID_SOURCE_REFERENCE:s(e=>`Invalid source reference "${e}". Sources can only reference sets (#/sets/<name>), not modifiers.`,"INVALID_SOURCE_REFERENCE"),UNDEFINED_SET:s(e=>`Reference to undefined set "${e}". Define it in the "sets" section first.`,"UNDEFINED_SET"),UNDEFINED_MODIFIER:s(e=>`Reference to undefined modifier "${e}". Define it in the "modifiers" section first.`,"UNDEFINED_MODIFIER"),CIRCULAR_REFERENCE:s(e=>`Circular reference detected at "${e}".`,"CIRCULAR_REFERENCE"),EXTERNAL_FILE_NOT_FOUND:s(e=>`Referenced file not found: ${e}`,"EXTERNAL_FILE_NOT_FOUND"),EXTERNAL_FILE_ERROR:s((e,t)=>`Failed to load "${e}": ${t}`,"EXTERNAL_FILE_ERROR"),INVALID_JSON_POINTER:s((e,t)=>`Invalid JSON pointer "${e}": ${t}`,"INVALID_JSON_POINTER"),DUPLICATE_NAME:s(e=>`Duplicate name "${e}" in resolutionOrder.`,"DUPLICATE_NAME"),MODIFIER_NEEDS_CONTEXTS:"Modifier must have at least one context defined.",MODIFIER_SINGLE_CONTEXT:"Modifier has only one context. Consider using a set instead, or add more contexts.",INVALID_DEFAULT:s((e,t)=>`Default context "${e}" is not defined. Valid contexts: ${t.join(", ")}`,"INVALID_DEFAULT"),UNKNOWN_MODIFIER:s(e=>`Unknown modifier "${e}".`,"UNKNOWN_MODIFIER"),INVALID_CONTEXT:s((e,t,n)=>`Invalid context "${e}" for modifier "${t}". Valid contexts: ${n.join(", ")}`,"INVALID_CONTEXT"),MISSING_REQUIRED_INPUT:s(e=>`Missing required input for modifier "${e}". No default value is defined.`,"MISSING_REQUIRED_INPUT"),INVALID_INPUT_TYPE:s(e=>`Input for modifier "${e}" must be a string.`,"INVALID_INPUT_TYPE"),MALFORMED_REFERENCE:s((e,t)=>`Malformed source reference: { "${e}": "${t}" }. Did you mean { "$ref": "${t}" }?`,"MALFORMED_REFERENCE"),RESOLVER_AS_TOKEN_SOURCE:s(e=>`File "${e}" is a resolver document, not a token file. Resolver documents (version: "2025.10") cannot be used as token sources. Did you mean to reference a specific token file instead?`,"RESOLVER_AS_TOKEN_SOURCE")}};async function J(e){const n=await et(["**/*.resolver.json"],{cwd:e,onlyFiles:!0,absolute:!0,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/out/**","**/.git/**","**/.next/**","**/.nuxt/**","**/.astro/**","**/.cache/**","**/.turbo/**","**/.vercel/**","**/.svelte-kit/**"]});if(n.length===0)return{found:"none"};const[r]=n;return n.length===1&&r?{found:"one",path:x(process.cwd(),r)}:{found:"multiple",paths:n.map(o=>x(process.cwd(),o))}}s(J,"findResolverDocument");function C(e){const t=e.output?.cssRoot??b.output.cssRoot,n={resolver:e.resolver,transforms:{fluid:e.transforms?.fluid??b.transforms.fluid,colorFallbackStrategy:e.transforms?.colorFallbackStrategy??b.transforms.colorFallbackStrategy},output:{cssRoot:t,variables:e.output?.variables??`${t}/global`,variablesFilename:e.output?.variablesFilename??b.output.variablesFilename,utilities:e.output?.utilities??`${t}/utilities`,utilitiesFilename:e.output?.utilitiesFilename??b.output.utilitiesFilename,cube:e.output?.cube??t,themeAttribute:e.output?.themeAttribute??b.output.themeAttribute,defaultContext:e.output?.defaultContext}};return(e.output?.components!==void 0||b.output.components!==void 0)&&(n.output.components=e.output?.components??b.output.components),e.utilities&&(n.utilities=e.utilities),n}s(C,"fillDefaults");const de=f.object({min:f.number(),max:f.number()}),me=f.object({source:f.string(),directions:f.union([f.enum(["top","right","bottom","left","x","y","full","all"]),f.array(f.enum(["top","right","bottom","left","x","y","full","all"]))]).optional(),prefix:f.string().optional(),stripDuplicates:f.boolean().optional()}),he=f.union([me,f.array(me)]),nt=f.object({resolver:f.string().optional(),transforms:f.object({fluid:de.optional(),colorFallbackStrategy:f.enum(["native","polyfill"]).optional()}).optional(),output:f.object({cssRoot:f.string().optional(),variables:f.string().optional(),variablesFilename:f.string().optional(),utilities:f.string().optional(),utilitiesFilename:f.string().optional(),cube:f.string().optional(),components:f.string().optional(),themeAttribute:f.string().optional(),defaultContext:f.string().optional()}).optional(),utilities:f.record(f.string(),he).optional()}),rt=f.object({resolver:f.string().optional(),transforms:f.object({fluid:de,colorFallbackStrategy:f.enum(["native","polyfill"])}),output:f.object({cssRoot:f.string(),variables:f.string().optional(),variablesFilename:f.string(),utilities:f.string().optional(),utilitiesFilename:f.string(),cube:f.string().optional(),components:f.string().optional(),themeAttribute:f.string(),defaultContext:f.string().optional()}),utilities:f.record(f.string(),he).optional()});function X(e){const t=nt.safeParse(e);if(!t.success){const n=t.error.errors.map(r=>{const o=r.path.join(".");return u.CONFIG.INVALID_CONFIG(o||"root",r.message)});throw new Error(n.join(`
13
- `))}return t.data}s(X,"validateSugarcubeConfig");function Z(e){const t=rt.safeParse(e);if(!t.success){const n=t.error.errors.map(r=>{const o=r.path.join(".");return u.CONFIG.INVALID_CONFIG(o||"root",r.message)});throw new Error(n.join(`
14
- `))}return t.data}s(Z,"validateInternalConfig");function ot(e){const t=X(e),n=C(t);return Z(n)}s(ot,"validateConfig");function st(e){return e instanceof Error&&e.message===u.CONFIG.NO_CONFIG_OR_RESOLVER()}s(st,"isNoConfigError");function Q(e="sugarcube.config"){const t=[".ts",".js"],n=process.cwd();for(const r of t){const o=O(n,`${e}${r}`);if(Xe(o))return o}return null}s(Q,"findConfigFile");function it(e="sugarcube.config"){return Q(e)!==null}s(it,"configFileExists");async function at(e){try{if(typeof globalThis.Bun<"u"){const i=Qe(e).href,c=await new Function("url","return import(url)")(i);if(c&&typeof c=="object"&&"default"in c)return c.default;throw new Error(u.CONFIG.INVALID_CONFIG("root","Config file must export a default object"))}const{createJiti:n}=await import("jiti"),o=await n(import.meta.url,{interopDefault:!0}).import(e);return o&&typeof o=="object"&&"default"in o?o.default:o}catch(t){throw t instanceof Error?new Error(u.CONFIG.INVALID_CONFIG("root",t.message)):t}}s(at,"loadTSConfig");async function Ie(e){if(e.endsWith(".ts")||e.endsWith(".js"))return await at(e);const n=await Ze.readFile(e,"utf-8");return JSON.parse(n)}s(Ie,"loadConfigFile");function ct(e){if(e)return O(process.cwd(),e);const t=Q();if(!t)throw new Error(u.CONFIG.FILE_NOT_FOUND("sugarcube.config.ts"));return t}s(ct,"resolveConfigPath");async function ut(e){const t=ct(e);try{const n=await Ie(t);return{config:X(n),configPath:t}}catch(n){throw n instanceof Error&&"code"in n&&n.code==="ENOENT"?new Error(u.CONFIG.FILE_NOT_FOUND(t)):n instanceof SyntaxError?new Error(u.CONFIG.INVALID_JSON(n.message)):n}}s(ut,"loadSugarcubeConfig");async function lt(e){const t=e?O(process.cwd(),e):Q();if(t)try{const r=await Ie(t),o=X(r);if(!o.resolver){const c=await J(process.cwd());if(c.found==="one")o.resolver=c.path;else{if(c.found==="multiple")throw new Error(u.CONFIG.MULTIPLE_RESOLVERS_FOUND(c.paths));if(c.found==="none")throw new Error(u.CONFIG.NO_CONFIG_OR_RESOLVER())}}const i=C(o);return{config:Z(i),configPath:t}}catch(r){throw r instanceof Error&&"code"in r&&r.code==="ENOENT"?new Error(u.CONFIG.FILE_NOT_FOUND(t)):r instanceof SyntaxError?new Error(u.CONFIG.INVALID_JSON(r.message)):r}const n=await J(process.cwd());if(n.found==="one"){const r={resolver:n.path},o=C(r);return{config:Z(o),configPath:n.path}}throw n.found==="multiple"?new Error(u.CONFIG.MULTIPLE_RESOLVERS_FOUND(n.paths)):new Error(u.CONFIG.NO_CONFIG_OR_RESOLVER())}s(lt,"loadInternalConfig");function h(e){return typeof e=="string"&&e.startsWith("{")&&e.endsWith("}")}s(h,"isReference$1");function ft(e){if(typeof e!="object"||e===null||!("$value"in e))return!1;const t=e.$value;return typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length>0}s(ft,"isCompositeToken");function pt(e){return e.$type==="typography"}s(pt,"isTypographyToken");function ee(e){return typeof e=="object"&&e!==null&&"$value"in e}s(ee,"isTokenNode");function dt(e,t,n){for(const[r,o]of Object.entries(t.tokens)){const i=e.tokens[r];if(!ee(o)){if(i&&ee(i)){const d=i;n.push({path:d.$path,source:d.$source,message:u.FLATTEN.CONFLICT_TOKEN_VS_GROUP(d.$path)});continue}e.tokens[r]=o;continue}if(!i){e.tokens[r]=o;continue}if(!ee(i)){n.push({path:o.$path,source:o.$source,message:u.FLATTEN.CONFLICT_TOKEN_VS_GROUP(o.$path)});continue}const c=o,l=i,p=!!c.$type,m=!!l.$type;if(p&&m&&c.$type!==l.$type){n.push({path:c.$path,source:c.$source,message:u.FLATTEN.CONFLICT_INCOMPATIBLE_TYPES(String(l.$type??"unknown"),String(c.$type??"unknown"),c.$path)});continue}e.tokens[r]=o}for(const[r,o]of t.pathIndex)e.pathIndex.set(r,o)}s(dt,"mergeFlattenedInto");function mt(e){if(typeof e!="object"||e===null||"$value"in e)return!1;const t="value"in e,n="type"in e;if(t&&n)return!0;if(t){const r=e.value;return typeof r=="string"||typeof r=="number"||Array.isArray(r)}return!1}s(mt,"looksLikeUnprefixedToken");function ht(e,t){const n={tokens:{},pathIndex:new Map},r=[];function o(a=[]){const c=[];return t.context&&c.push(t.context),a.length>0&&c.push(a.join(".")),c.length>0?c.join("."):""}s(o,"createLookupKey"),(e.$description||e.$extensions)&&(n.tokens[o()]={$description:e.$description,$extensions:e.$extensions});function i(a,c=[],l){if(c.join("."),c.length>0){const d=o(c);n.tokens[d]={$description:a.$description,$extensions:a.$extensions,$path:c.join("."),$source:{context:t.context,sourcePath:t.sourcePath}}}const p=Object.keys(a).filter(d=>!d.startsWith("$")),m=a.$type||l;for(const d of p){const I=a[d],E=[...c,d],$=E.join(".");if(mt(I)){r.push({path:$,source:t,message:u.FLATTEN.MISSING_DOLLAR_PREFIX($)});continue}if(d.includes(".")||d.includes("{")||d.includes("}")){r.push({path:$,source:t,message:u.FLATTEN.INVALID_TOKEN_NAME(d)});continue}if("$value"in I){if(Object.keys(I).filter(ze=>!ze.startsWith("$")).length>0){r.push({path:$,source:t,message:u.FLATTEN.INVALID_TOKEN_NESTING($)});continue}if(ft(I)&&!I.$type&&!m){r.push({path:$,source:t,message:u.FLATTEN.COMPOSITE_TOKEN_MISSING_TYPE($)});continue}const ue=o(E),q=E.join(".");n.tokens[ue]={...I,...I.$type||m?{$type:I.$type||m}:{},$path:q,$source:{context:t.context,sourcePath:t.sourcePath},$originalPath:q},n.pathIndex.set(q,ue)}else i(I,E,m)}}return s(i,"processNode"),i(e),{tokens:n,errors:r}}s(ht,"flattenTree");function It(e){const t={tokens:{},pathIndex:new Map},n=[];for(const r of e){const{tokens:o,errors:i}=ht(r.tokens,{context:r.context,sourcePath:r.sourcePath});n.push(...i),dt(t,o,n)}return{tokens:t,errors:n}}s(It,"flatten");const V=f.string().min(1,"Name cannot be empty").refine(e=>!e.startsWith("$"),"Names must not start with '$' (reserved prefix)").refine(e=>!e.includes("{"),"Names must not contain '{'").refine(e=>!e.includes("}"),"Names must not contain '}'").refine(e=>!e.includes("."),"Names must not contain '.'"),Ee=f.object({$ref:f.string().min(1,"$ref cannot be empty")}).passthrough(),te=f.union([Ee,f.record(f.string(),f.unknown())]),Et=f.object({description:f.string().optional(),sources:f.array(te),$extensions:f.record(f.string(),f.unknown()).optional()}),ye=f.record(f.string(),f.array(te)),yt=f.object({description:f.string().optional(),contexts:ye,default:f.string().optional(),$extensions:f.record(f.string(),f.unknown()).optional()}).refine(e=>Object.keys(e.contexts).length>=1,"Modifier must have at least 1 context"),$t=f.object({type:f.literal("set"),name:V,sources:f.array(te),description:f.string().optional(),$extensions:f.record(f.string(),f.unknown()).optional()}),gt=f.object({type:f.literal("modifier"),name:V,contexts:ye,description:f.string().optional(),default:f.string().optional(),$extensions:f.record(f.string(),f.unknown()).optional()}).refine(e=>Object.keys(e.contexts).length>=1,"Modifier must have at least 1 context"),Nt=f.union([Ee,$t,gt]),Tt=f.record(V,Et),St=f.record(V,yt),bt=f.object({version:f.literal("2025.10"),name:f.string().optional(),description:f.string().optional(),sets:Tt.optional(),modifiers:St.optional(),resolutionOrder:f.array(Nt),$schema:f.string().optional(),$extensions:f.record(f.string(),f.unknown()).optional(),$defs:f.record(f.string(),f.unknown()).optional()});function R(e){return typeof e=="object"&&e!==null&&"$ref"in e&&typeof e.$ref=="string"}s(R,"isReference");function $e(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="set"}s($e,"isInlineSet");function _(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="modifier"}s(_,"isInlineModifier");async function Ot(e){const t=F(e)?e:O(process.cwd(),e),n=await At(t);if(n.error)return{document:k(),errors:[n.error]};const r=Rt(n.content);if(r.error)return{document:k(),errors:[r.error]};const o=Dt(r.data);if(o.errors.length>0)return{document:k(),errors:o.errors};const i=[];return _t(o.document,i),{document:o.document,errors:i}}s(Ot,"parseResolverDocument");async function At(e){try{return{content:await le(e,"utf-8")}}catch{return{error:{path:e,message:u.RESOLVER.FILE_NOT_FOUND(e)}}}}s(At,"loadFile");function Rt(e){try{return{data:JSON.parse(e)}}catch(t){const n=t instanceof Error?t.message:"Unknown error";return{error:{path:"resolver",message:u.RESOLVER.INVALID_JSON(n)}}}}s(Rt,"parseJson");function Dt(e){const t=bt.safeParse(e);if(!t.success){const n=t.error.errors.map(r=>{const o=r.path.join(".")||"resolver";return{path:o,message:`Resolver error at ${o}: ${r.message}. See https://sugarcube.sh/docs/resolver`}});return{document:k(),errors:n}}return{document:t.data,errors:[]}}s(Dt,"validateSchema$1");function _t(e,t){Lt(e,t),vt(e,t),xt(e,t)}s(_t,"validateDocument");function Lt(e,t){if(e.modifiers)for(const[n,r]of Object.entries(e.modifiers))ge(r,`modifiers.${n}`,t);for(let n=0;n<e.resolutionOrder.length;n++){const r=e.resolutionOrder[n];_(r)&&ge(r,`resolutionOrder[${n}]`,t)}}s(Lt,"validateModifierContexts");function ge(e,t,n){const r=Object.keys(e.contexts).length;if(r===0){n.push({path:`${t}.contexts`,message:u.RESOLVER.MODIFIER_NEEDS_CONTEXTS});return}r===1&&n.push({path:`${t}.contexts`,message:u.RESOLVER.MODIFIER_SINGLE_CONTEXT}),e.default&&!e.contexts[e.default]&&n.push({path:`${t}.default`,message:u.RESOLVER.INVALID_DEFAULT(e.default,Object.keys(e.contexts))})}s(ge,"checkModifierContexts");function vt(e,t){const n=new Set;for(let r=0;r<e.resolutionOrder.length;r++){const o=e.resolutionOrder[r];if(R(o))continue;const i=o.name;n.has(i)&&t.push({path:`resolutionOrder[${r}].name`,message:u.RESOLVER.DUPLICATE_NAME(i)}),n.add(i)}}s(vt,"validateNameUniqueness");function xt(e,t){for(let n=0;n<e.resolutionOrder.length;n++){const r=e.resolutionOrder[n];if(R(r))Ft(r.$ref,`resolutionOrder[${n}].$ref`,e,t);else if($e(r))w(r.sources,`resolutionOrder[${n}].sources`,t);else if(_(r))for(const[o,i]of Object.entries(r.contexts))w(i,`resolutionOrder[${n}].contexts.${o}`,t)}if(e.sets)for(const[n,r]of Object.entries(e.sets))w(r.sources,`sets.${n}.sources`,t);if(e.modifiers)for(const[n,r]of Object.entries(e.modifiers))for(const[o,i]of Object.entries(r.contexts))w(i,`modifiers.${n}.contexts.${o}`,t)}s(xt,"validateReferences");function w(e,t,n){for(let r=0;r<e.length;r++){const o=e[r];if(!o)continue;if(!R(o)){const a=Object.keys(o);if(a.length===1){const c=a[0],l=o[c];typeof l=="string"&&(l.includes("/")||l.endsWith(".json"))&&n.push({path:`${t}[${r}]`,message:u.RESOLVER.MALFORMED_REFERENCE(c,l)})}continue}const i=o.$ref;i.startsWith("#/")&&(i.match(/^#\/sets\/[^/]+$/)||n.push({path:`${t}[${r}].$ref`,message:u.RESOLVER.INVALID_SOURCE_REFERENCE(i)}))}}s(w,"validateSourcesReferences");function Ft(e,t,n,r){if(!e.startsWith("#/"))return;const o=e.slice(2).split("/"),[i,a]=o;if(o.length!==2||!i||!a){r.push({path:t,message:u.RESOLVER.INVALID_REFERENCE(e)});return}if(i==="sets"){n.sets?.[a]||r.push({path:t,message:u.RESOLVER.UNDEFINED_SET(a)});return}if(i==="modifiers"){n.modifiers?.[a]||r.push({path:t,message:u.RESOLVER.UNDEFINED_MODIFIER(a)});return}r.push({path:t,message:u.RESOLVER.INVALID_REFERENCE(e)})}s(Ft,"validateReference");function k(){return{version:"2025.10",resolutionOrder:[]}}s(k,"createEmptyDocument");function Ne(e){if(typeof e!="object"||e===null)return!1;const t=e;return t.version==="2025.10"&&Array.isArray(t.resolutionOrder)}s(Ne,"isResolverFormat");function Te(e,t){return{document:e,basePath:t,visitedRefs:new Set,fileCache:new Map}}s(Te,"createResolveContext");async function Se(e,t){if(t.visitedRefs.has(e))return T({},u.RESOLVER.CIRCULAR_REFERENCE(e),e);t.visitedRefs.add(e);try{return e.startsWith("#/")?Ct(e,t):e.includes("#/")?await wt(e,t):await Vt(e,t)}finally{t.visitedRefs.delete(e)}}s(Se,"resolveReference");function Ct(e,t){const n=e.slice(2),[r,o]=n.split("/");if(!r||!o||n.split("/").length!==2)return T({sources:[]},u.RESOLVER.INVALID_REFERENCE(e));if(r==="sets"){const i=t.document.sets?.[o];return i?{content:i,sourcePath:"#",errors:[]}:T({sources:[]},u.RESOLVER.UNDEFINED_SET(o))}if(r==="modifiers"){const i=t.document.modifiers?.[o];return i?{content:i,sourcePath:"#",errors:[]}:T({contexts:{}},u.RESOLVER.UNDEFINED_MODIFIER(o))}return T({sources:[]},u.RESOLVER.INVALID_REFERENCE(e))}s(Ct,"resolveSameDocumentRef");async function Vt(e,t){const n=F(e)?e:O(t.basePath,e),r=t.fileCache.get(n);if(r)return Ne(r)?T({},u.RESOLVER.RESOLVER_AS_TOKEN_SOURCE(n),n):{content:r,sourcePath:n,errors:[]};const o=await be(n);return o.error?T({},o.error,n):Ne(o.content)?T({},u.RESOLVER.RESOLVER_AS_TOKEN_SOURCE(n),n):(t.fileCache.set(n,o.content),{content:o.content,sourcePath:n,errors:[]})}s(Vt,"resolveFileRef");async function wt(e,t){const[n="",r=""]=e.split("#"),o=F(n)?n:O(t.basePath,n);let i=t.fileCache.get(o);if(!i){const l=await be(o);if(l.error)return T({},l.error,o);i=l.content,t.fileCache.set(o,i)}const a=r.startsWith("/")?r:`/${r}`,c=kt(i,a);return c.error?T({},u.RESOLVER.INVALID_JSON_POINTER(a,c.error),o):{content:c.value,sourcePath:o,errors:[]}}s(wt,"resolveFileFragmentRef");async function be(e){try{const t=await le(e,"utf-8");return{content:JSON.parse(t)}}catch(t){if(t.code==="ENOENT")return{error:u.RESOLVER.EXTERNAL_FILE_NOT_FOUND(e)};const n=t instanceof Error?t.message:"Unknown error";return{error:u.RESOLVER.EXTERNAL_FILE_ERROR(e,n)}}}s(be,"loadJsonFile");function kt(e,t){if(t===""||t==="/")return{value:e};const n=t.slice(1).split("/").map(o=>o.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const o of n){if(r===null||typeof r!="object")return{error:"cannot navigate into non-object"};if(Array.isArray(r)){const a=Number.parseInt(o,10);if(Number.isNaN(a)||a<0||a>=r.length)return{error:`invalid array index "${o}"`};r=r[a];continue}const i=r;if(!(o in i))return{error:`property "${o}" not found`};r=i[o]}return{value:r}}s(kt,"resolveJsonPointer");async function Oe(e,t){const n=[],r=[];for(const o of e){if(!R(o)){n.push(o);continue}const i=await Se(o.$ref,t);r.push(...i.errors),i.errors.length===0&&n.push(Mt(i.content,o))}return{resolved:n,errors:r}}s(Oe,"resolveSources");function Mt(e,t){const{$ref:n,...r}=t;return Object.keys(r).length===0?e:{...e,...r}}s(Mt,"applyExtending");function T(e,t,n="#"){return{content:e,sourcePath:n,errors:[{path:n,message:t}]}}s(T,"errorResult");function Ae(e){return typeof e=="object"&&e!==null&&"$value"in e}s(Ae,"isToken");function M(e,t){const n={...e};for(const[r,o]of Object.entries(t)){if(o===void 0)continue;if(r.startsWith("$")){n[r]=o;continue}if(Ae(o)){n[r]=o;continue}const i=n[r],a=i!==void 0&&typeof i=="object"&&i!==null&&typeof o=="object"&&o!==null&&!Ae(i);n[r]=a?M(i,o):o}return n}s(M,"deepMerge");function Re(e){const t=[],n=new Set;for(const r of e.resolutionOrder){const o=jt(r,e,n);o&&(t.push(o),n.add(o.name))}return t}s(Re,"extractModifiers");function jt(e,t,n){return R(e)&&e.$ref.startsWith("#/modifiers/")?Pt(e.$ref,t,n):_(e)?Ut(e,n):null}s(jt,"extractModifierFromItem");function Pt(e,t,n){const r=e.split("/")[2];if(!r||n.has(r))return null;const o=t.modifiers?.[r];return o?{name:r,contexts:Object.keys(o.contexts),default:o.default}:null}s(Pt,"extractReferencedModifier");function Ut(e,t){return t.has(e.name)?null:{name:e.name,contexts:Object.keys(e.contexts),default:e.default}}s(Ut,"extractInlineModifier");function Gt(e,t={}){const n=[],r={},o=Re(e);if(o.length===0)return Wt(t,n),{valid:n.length===0,errors:n,resolvedInputs:r};const i=new Map(o.map(a=>[a.name,a]));return Bt(t,i,n,r),Yt(o,r,n),{valid:n.length===0,errors:n,resolvedInputs:r}}s(Gt,"validateInputs$1");function Wt(e,t){for(const n of Object.keys(e))t.push({modifier:n,message:u.RESOLVER.UNKNOWN_MODIFIER(n)})}s(Wt,"validateNoModifiersCase");function Bt(e,t,n,r){for(const[o,i]of Object.entries(e)){const a=t.get(o);if(!a){n.push({modifier:o,message:u.RESOLVER.UNKNOWN_MODIFIER(o)});continue}if(typeof i!="string"){n.push({modifier:o,message:u.RESOLVER.INVALID_INPUT_TYPE(o)});continue}if(!a.contexts.includes(i)){n.push({modifier:o,message:u.RESOLVER.INVALID_CONTEXT(i,o,a.contexts)});continue}r[o]=i}}s(Bt,"validateProvidedInputs");function Yt(e,t,n){for(const r of e)t[r.name]===void 0&&(r.default!==void 0?t[r.name]=r.default:n.push({modifier:r.name,message:u.RESOLVER.MISSING_REQUIRED_INPUT(r.name)}))}s(Yt,"applyDefaults");async function De(e,t,n={}){const r=Gt(e,n);if(!r.valid)return{tokens:{},sources:[],errors:r.errors.map(a=>({path:a.modifier||"inputs",message:a.message}))};const o=Te(e,t),i=Ht();for(const a of e.resolutionOrder)await Kt(a,e,o,r.resolvedInputs,i);return{tokens:i.tokens,sources:i.sources,errors:i.errors}}s(De,"processResolutionOrder");function Ht(){return{tokens:{},sources:[],errors:[]}}s(Ht,"createProcessingState");async function Kt(e,t,n,r,o){if(R(e)){await qt(e,t,n,r,o);return}if($e(e)){await zt(e,n,o);return}_(e)&&await Jt(e,n,r,o)}s(Kt,"processItem");async function qt(e,t,n,r,o){const i=await Se(e.$ref,n);if(i.errors.length>0){o.errors.push(...i.errors);return}const a=e.$ref.split("/")[2];if(a){if(e.$ref.startsWith("#/sets/")){const c=await j(i.content.sources,n,{type:"set",name:a});P(c,o);return}if(e.$ref.startsWith("#/modifiers/")){const c=r[a];if(!c)return;const p=i.content.contexts[c];if(!p)return;const m=await j(p,n,{type:"modifier",name:a,context:c});P(m,o)}}}s(qt,"processReference");async function zt(e,t,n){const r=await j(e.sources,t,{type:"set",name:e.name});P(r,n)}s(zt,"processInlineSet");async function Jt(e,t,n,r){const o=n[e.name];if(!o)return;const i=e.contexts[o];if(!i)return;const a=await j(i,t,{type:"modifier",name:e.name,context:o});P(a,r)}s(Jt,"processInlineModifier");async function j(e,t,n){const r=await Oe(e,t);let o={};for(const i of r.resolved)o=M(o,i);return{tokens:o,source:{path:"#",...n},errors:r.errors}}s(j,"mergeSources");function P(e,t){t.errors.push(...e.errors),t.tokens=M(t.tokens,e.tokens),t.sources.push(e.source)}s(P,"applyResult");async function Xt(e,t){const n=[],r=Te(e,t),o=Re(e),i={};for(const p of o)p.default&&(i[p.name]=p.default);const a=await De(e,t,i);n.push(...a.errors);const c=a.tokens,l=[];for(const p of o){const m=new Map,d=p.default??p.contexts[0]??"default";for(const I of p.contexts){if(I===d)continue;const E=await Zt(e,t,r,p.name,I,n);Object.keys(E).length>0&&m.set(I,E)}l.push({name:p.name,defaultContext:d,contexts:m})}return{base:c,modifiers:l,errors:n}}s(Xt,"processForLayeredCSS");async function Zt(e,t,n,r,o,i){const a=Qt(e,r);if(!a)return{};const c=a.contexts[o];if(!c||c.length===0)return{};const l=await Oe(c,n);i.push(...l.errors.map(E=>({path:E.path,message:E.message})));let p={};for(const E of l.resolved)p=M(p,E);const m=new Set;_e(p,"",m);const d=await De(e,t,{[r]:o});i.push(...d.errors);const I={};for(const E of m){const $=en(d.tokens,E);$!==void 0&&tn(I,E,$)}return I}s(Zt,"processModifierContext");function Qt(e,t){if(e.modifiers?.[t])return e.modifiers[t];for(const n of e.resolutionOrder)if(_(n)&&n.name===t)return n}s(Qt,"findModifierDefinition");function _e(e,t,n){for(const[r,o]of Object.entries(e)){if(r.startsWith("$"))continue;const i=t?`${t}.${r}`:r;o&&typeof o=="object"&&"$value"in o?n.add(i):o&&typeof o=="object"&&_e(o,i,n)}}s(_e,"collectTokenPaths");function en(e,t){const n=t.split(".");let r=e;for(const o of n){if(r===null||typeof r!="object")return;r=r[o]}return r}s(en,"getTokenAtPath");function tn(e,t,n){const r=t.split(".");let o=e;for(let a=0;a<r.length-1;a++){const c=r[a];c&&(c in o||(o[c]={}),o=o[c])}const i=r[r.length-1];i&&(o[i]=n)}s(tn,"setTokenAtPath");async function nn(e){const t=F(e)?e:O(process.cwd(),e),n=z(t),r=[],o=[],i=x(process.cwd(),t),a=await Ot(t);if(a.errors.length>0)return{trees:[],modifiers:[],errors:a.errors.map(p=>({file:p.path,message:p.message}))};const c=await Xt(a.document,n);for(const p of c.errors)r.push({file:p.path,message:p.message});Object.keys(c.base).length>0&&o.push({context:void 0,tokens:c.base,sourcePath:i});const l=[];for(const p of c.modifiers){const m=[];for(const[d,I]of p.contexts)Object.keys(I).length>0&&(o.push({context:`${p.name}:${d}`,tokens:I,sourcePath:i}),m.push(d));l.push({name:p.name,attribute:`data-${p.name}`,defaultContext:p.defaultContext,contexts:m})}return{trees:o,modifiers:l,errors:r}}s(nn,"loadFromResolver");async function rn(e){const t=[],n=[],r=Object.entries(e);r.sort(([,o],[,i])=>{const a=!o.context,c=!i.context;return a&&!c?-1:!a&&c?1:0});for(const[o,{context:i,content:a}]of r)try{const c=JSON.parse(a);t.push({context:i,tokens:c,sourcePath:x(process.cwd(),o)})}catch(c){c instanceof Error?c instanceof SyntaxError?n.push({file:o,message:u.LOAD.INVALID_JSON(o,c.message)}):n.push({file:o,message:c.message}):n.push({file:o,message:"Unknown error"})}return{trees:t,errors:n}}s(rn,"loadTreesFromMemory");function U(e,t,n,r){return typeof t=="string"&&h(t)?sn(e,t,n,r):Array.isArray(t)?t.map(o=>U(e,o,n,r)):typeof t=="object"&&t!==null?Object.entries(t).reduce((i,[a,c])=>Object.assign(i,{[a]:U(`${e}.${a}`,c,n,r)}),{}):t}s(U,"resolveValue");function Le(e,t){const n=e.slice(1,-1),r=t.pathIndex.get(n);if(!r)return;const o=t.tokens[r];if(!(!o||!("$value"in o))){if(o.$type)return o.$type;if(typeof o.$value=="string"&&h(o.$value))return Le(o.$value,t)}}s(Le,"inferTypeFromReference");function on(e){const t={},n=new Set,r=[];for(const[o,i]of Object.entries(e.tokens))try{if(!("$value"in i)){t[o]=i;continue}const a=i;let c=a.$type;!c&&typeof a.$value=="string"&&h(a.$value)&&(c=Le(a.$value,e)),t[o]={...a,...c?{$type:c}:{},$resolvedValue:U(a.$path,a.$value,e,n)}}catch(a){const c=a instanceof Error?a.message:String(a),l=i,p=l.$path,m=l.$source;let d,I;c.includes("Circular reference detected")?(d="circular",I=c):c.includes("Reference not found")?(d="missing",I=c):(d="type-mismatch",I=u.RESOLVE.TYPE_MISMATCH(p)),r.push({type:d,path:p,source:m,message:I})}return{resolved:t,errors:r}}s(on,"resolve");function sn(e,t,n,r){const o=t.slice(1,-1),i=n.pathIndex.get(o);if(!i)throw new Error(u.RESOLVE.REFERENCE_NOT_FOUND(o,e));if(r.has(i)){const l=n.tokens[i];throw!l||!("$path"in l)?new Error(u.RESOLVE.REFERENCE_NOT_FOUND(o,e)):new Error(u.RESOLVE.CIRCULAR_REFERENCE(e,l.$path))}const a=n.tokens[i];if(!a||!("$value"in a))throw new Error(u.RESOLVE.REFERENCE_NOT_FOUND(o,e));r.add(i);const c=U(i,a.$value,n,r);return r.delete(i),c}s(sn,"resolveReferenceChain");function S(e){return{success:!0,value:e}}s(S,"success");function g(e){return{success:!1,error:e}}s(g,"error");function ne(e){if(typeof e!="object"||e===null)return!1;const t=e;return!(typeof t.colorSpace!="string"||!["oklch","display-p3","srgb","hsl"].includes(t.colorSpace)||!Array.isArray(t.components)||t.components.length!==3||!t.components.every(r=>typeof r=="number"||r==="none")||t.alpha!==void 0&&typeof t.alpha!="number"||t.hex!==void 0&&typeof t.hex!="string")}s(ne,"isDTCGColorValue");function G(e){const t=[],n=["oklch","display-p3","srgb","hsl"];if(n.includes(e.colorSpace)||t.push(`Unsupported colorSpace: "${e.colorSpace}". Supported color spaces: ${n.join(", ")}.`),!Array.isArray(e.components)||e.components.length!==3)t.push("Components must be an array of exactly 3 numbers.");else if(e.components.forEach((r,o)=>{r!=="none"&&(typeof r!="number"||!Number.isFinite(r))&&t.push(`Component ${o} must be a finite number or "none".`)}),e.colorSpace==="oklch"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>1)&&t.push("OKLCH Lightness (L) must be between 0 and 1 or 'none'."),o!=="none"&&o<0&&t.push("OKLCH Chroma (C) must be >= 0 or 'none'."),i!=="none"&&(i<0||i>=360)&&t.push("OKLCH Hue (H) must be between 0 and 360 (exclusive) or 'none'.")}else if(e.colorSpace==="display-p3"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>1)&&t.push("Display P3 Red component must be between 0 and 1 or 'none'."),o!=="none"&&(o<0||o>1)&&t.push("Display P3 Green component must be between 0 and 1 or 'none'."),i!=="none"&&(i<0||i>1)&&t.push("Display P3 Blue component must be between 0 and 1 or 'none'.")}else if(e.colorSpace==="srgb"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>1)&&t.push("sRGB Red component must be between 0 and 1 or 'none'."),o!=="none"&&(o<0||o>1)&&t.push("sRGB Green component must be between 0 and 1 or 'none'."),i!=="none"&&(i<0||i>1)&&t.push("sRGB Blue component must be between 0 and 1 or 'none'.")}else if(e.colorSpace==="hsl"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>=360)&&t.push("HSL Hue must be between 0 and 360 (exclusive) or 'none'."),o!=="none"&&(o<0||o>100)&&t.push("HSL Saturation must be between 0 and 100 or 'none'."),i!=="none"&&(i<0||i>100)&&t.push("HSL Lightness must be between 0 and 100 or 'none'.")}return e.alpha!==void 0&&(typeof e.alpha!="number"||!Number.isFinite(e.alpha)?t.push("Alpha must be a finite number."):(e.alpha<0||e.alpha>1)&&t.push("Alpha must be between 0 and 1.")),t}s(G,"validateDTCGColorValue");function an(e){const t=G(e);return t.length>0?g(t.join(", ")):S(e)}s(an,"validateDTCGColorValueResult");function cn(e){const t=an(e);if(!t.success)return t;const[n,r,o]=e.components,i=e.alpha,a=n==="none"?"none":Number(n.toFixed(4)),c=r==="none"?"none":Number(r.toFixed(4)),l=o==="none"?"none":Number(o.toFixed(4));if(i!==void 0&&i!==1){const p=Number(i.toFixed(4));return S(`oklch(${a} ${c} ${l} / ${p})`)}return S(`oklch(${a} ${c} ${l})`)}s(cn,"formatDTCGColorToOKLCH");const un={isObject:s(e=>typeof e=="object"&&e!==null&&!Array.isArray(e),"isObject")};function y(e,t,n,r){if(h(t))return[];switch(e.type){case"object":return fn(e,t,n,r);case"union":return pn(e,t,n,r);case"array":return dn(e,t,n,r);default:return ln(e,t,n,r)}}s(y,"validateSchema");function ln(e,t,n,r){return e.type!==typeof t?[{path:n,message:e.errorMessage?.(t,n)||u.VALIDATE.INVALID_TYPE(e.type,t,n),source:r}]:e.validate?.(t,n,r)??[]}s(ln,"validateSimpleValue");function fn(e,t,n,r){if(!un.isObject(t))return[{path:n,message:e.errorMessage?.(t,n)||u.VALIDATE.INVALID_TYPE("object",t,n),source:r}];const o=[],i=t;if(e.required)for(const a of e.required)a in i||o.push({path:`${n}.${a}`,message:u.VALIDATE.MISSING_REQUIRED_PROPERTY(a,n),source:r});for(const[a,c]of Object.entries(e.properties))a in i&&o.push(...y(c,i[a],`${n}.${a}`,r));return o}s(fn,"validateObject");function pn(e,t,n,r){let o=[],i=Number.POSITIVE_INFINITY;for(const a of e.oneOf){if(a.type==="string"&&typeof t!="string"||a.type==="object"&&typeof t!="object")continue;const c=y(a,t,n,r);if(c.length===0)return a.validate?.(t,n,r)??[];c.length<i&&(o=c,i=c.length)}return i===Number.POSITIVE_INFINITY?[{path:n,message:u.VALIDATE.INVALID_TYPE(e.oneOf.map(a=>a.type).join(" or "),t,n),source:r}]:o}s(pn,"validateUnion");function dn(e,t,n,r){return Array.isArray(t)?e.validate?.(t,n,r)??[]:[{path:n,message:e.errorMessage?.(t,n)||u.VALIDATE.INVALID_TYPE("array",t,n),source:r}]}s(dn,"validateArray");const W={schema:{type:"union",oneOf:[{type:"string",validate:s((e,t,n)=>/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/.test(e)?[]:[{path:t,message:u.VALIDATE.INVALID_COLOR(e,t),source:n}],"validate")},{type:"object",required:["colorSpace","components"],properties:{colorSpace:{type:"string"},components:{type:"array"},alpha:{type:"number"},hex:{type:"string"}},validate:s((e,t,n)=>ne(e)?G(e).map(o=>({path:t,message:`Invalid color at ${t}: ${o}`,source:n})):[{path:t,message:u.VALIDATE.INVALID_COLOR(e,t),source:n}],"validate")}]}};function mn(e,t,n){return y(W.schema,e,t,n)}s(mn,"validateColor");const B={schema:{type:"number",errorMessage:s((e,t)=>u.VALIDATE.INVALID_NUMBER(e,t),"errorMessage"),validate:s((e,t,n)=>typeof e!="number"||Number.isNaN(e)?[{path:t,message:u.VALIDATE.INVALID_NUMBER(e,t),source:n}]:[],"validate")}};function hn(e,t,n){return y(B.schema,e,t,n)}s(hn,"validateNumber");const N={schema:{type:"object",errorMessage:s((e,t)=>u.VALIDATE.INVALID_DIMENSION(e,t),"errorMessage"),properties:{value:B.schema,unit:{type:"string",validate:s((e,t,n)=>typeof e!="string"||!["px","rem"].includes(e)?[{path:t,message:u.VALIDATE.INVALID_DIMENSION_UNIT(e,t),source:n}]:[],"validate")}},required:["value","unit"]}};function In(e,t,n){return y(N.schema,e,t,n)}s(In,"validateDimension");const En=["solid","dashed","dotted","double","groove","ridge","outset","inset"],yn=["round","butt","square"],$n={type:"object",errorMessage:s((e,t)=>u.VALIDATE.INVALID_STROKE_STYLE(e,t),"errorMessage"),properties:{dashArray:{type:"array",validate:s((e,t,n)=>{const r=e,o=[];return r.forEach((i,a)=>{typeof i!="string"&&o.push(...y(N.schema,i,`${t}.${a}`,n))}),o},"validate")},lineCap:{type:"string",validate:s((e,t,n)=>yn.includes(e)?[]:[{path:t,message:u.VALIDATE.INVALID_STROKE_LINE_CAP(e,t),source:n}],"validate")}},required:["dashArray","lineCap"]},ve={schema:{type:"union",oneOf:[{type:"string",validate:s((e,t,n)=>!En.includes(e)&&typeof e=="string"?[{path:t,message:u.VALIDATE.INVALID_STROKE_STYLE(e,t),source:n}]:[],"validate")},$n]}};function gn(e,t,n){return y(ve.schema,e,t,n)}s(gn,"validateStrokeStyle");const Nn={schema:{type:"object",properties:{color:W.schema,width:N.schema,style:ve.schema},required:["color","width","style"],errorMessage:s((e,t)=>u.VALIDATE.INVALID_BORDER(e,t),"errorMessage")}};function Tn(e,t,n){return y(Nn.schema,e,t,n)}s(Tn,"validateBorder");const xe={schema:{type:"array",errorMessage:s((e,t)=>u.VALIDATE.INVALID_CUBIC_BEZIER(e,t),"errorMessage"),validate:s((e,t,n)=>{const r=e;if(r.length!==4||!r.every(a=>typeof a=="number"))return[{path:t,message:u.VALIDATE.INVALID_CUBIC_BEZIER(e,t),source:n}];const[o,,i]=r;return o<0||o>1||i<0||i>1?[{path:t,message:u.VALIDATE.INVALID_CUBIC_BEZIER(e,t),source:n}]:[]},"validate")}};function Sn(e,t,n){return y(xe.schema,e,t,n)}s(Sn,"validateCubicBezier");const bn=["ms","s"],re={schema:{type:"object",errorMessage:s((e,t)=>u.VALIDATE.INVALID_DURATION(e,t),"errorMessage"),properties:{value:B.schema,unit:{type:"string",validate:s((e,t,n)=>bn.includes(e)?[]:[{path:t,message:u.VALIDATE.INVALID_DURATION_UNIT(e,t),source:n}],"validate")}},required:["value","unit"]}};function On(e,t,n){return y(re.schema,e,t,n)}s(On,"validateDuration");const An={schema:{type:"object",errorMessage:s((e,t)=>u.VALIDATE.INVALID_FLUID_DIMENSION(e,t),"errorMessage"),properties:{min:N.schema,max:N.schema},required:["min","max"]}};function Rn(e,t,n){return y(An.schema,e,t,n)}s(Rn,"validateFluidDimension");const Fe={schema:{type:"union",oneOf:[{type:"string",errorMessage:s((e,t)=>u.VALIDATE.INVALID_FONT_FAMILY(e,t),"errorMessage")},{type:"array",errorMessage:s((e,t)=>u.VALIDATE.INVALID_FONT_FAMILY(e,t),"errorMessage"),validate:s((e,t,n)=>e.every(o=>typeof o=="string")?[]:[{path:t,message:u.VALIDATE.INVALID_FONT_FAMILY(e,t),source:n}],"validate")}],errorMessage:s((e,t)=>u.VALIDATE.INVALID_FONT_FAMILY(e,t),"errorMessage")}};function Dn(e,t,n){return y(Fe.schema,e,t,n)}s(Dn,"validateFontFamily");const _n=["thin","hairline","extra-light","ultra-light","light","normal","regular","book","medium","semi-bold","demi-bold","bold","extra-bold","ultra-bold","black","heavy","extra-black","ultra-black"],Ce={schema:{type:"union",errorMessage:s((e,t)=>u.VALIDATE.INVALID_FONT_WEIGHT(e,t),"errorMessage"),oneOf:[{type:"number",errorMessage:s((e,t)=>u.VALIDATE.INVALID_FONT_WEIGHT(e,t),"errorMessage"),validate:s((e,t,n)=>e<1||e>1e3?[{path:t,message:u.VALIDATE.INVALID_FONT_WEIGHT(e,t),source:n}]:[],"validate")},{type:"string",errorMessage:s((e,t)=>u.VALIDATE.INVALID_FONT_WEIGHT(e,t),"errorMessage"),validate:s((e,t,n)=>_n.includes(e.toLowerCase())?[]:[{path:t,message:u.VALIDATE.INVALID_FONT_WEIGHT(e,t),source:n}],"validate")}]}};function Ln(e,t,n){return y(Ce.schema,e,t,n)}s(Ln,"validateFontWeight");const vn={type:"object",errorMessage:s((e,t)=>u.VALIDATE.INVALID_GRADIENT(e,t),"errorMessage"),properties:{color:W.schema,position:{type:"number",validate:s((e,t,n)=>e<0||e>1?[{path:t,message:u.VALIDATE.INVALID_GRADIENT_STOP_POSITION(e,t),source:n}]:[],"validate")}},required:["color","position"]},xn={schema:{type:"array",errorMessage:s((e,t)=>u.VALIDATE.INVALID_ARRAY(e,t),"errorMessage"),validate:s((e,t,n)=>{const r=e,o=[];return r.forEach((i,a)=>{o.push(...y(vn,i,`${t}[${a}]`,n))}),o},"validate")}};function Fn(e,t,n){return y(xn.schema,e,t,n)}s(Fn,"validateGradient");const Ve={schema:{type:"object",properties:{color:{type:"union",oneOf:[W.schema]},offsetX:N.schema,offsetY:N.schema,blur:N.schema,spread:N.schema,inset:{type:"boolean",errorMessage:s((e,t)=>u.VALIDATE.INVALID_SHADOW_INSET(e,t),"errorMessage")}},required:["color","offsetX","offsetY","blur","spread"],errorMessage:s((e,t)=>u.VALIDATE.INVALID_SHADOW(e,t),"errorMessage")}};function Cn(e,t,n){const r=[];return Array.isArray(e)?(e.forEach((o,i)=>{r.push(...y(Ve.schema,o,`${t}[${i}]`,n))}),r):y(Ve.schema,e,t,n)}s(Cn,"validateShadow");const Vn={schema:{type:"object",properties:{duration:re.schema,delay:re.schema,timingFunction:xe.schema},required:["duration","delay","timingFunction"],errorMessage:s((e,t)=>u.VALIDATE.INVALID_TRANSITION(e,t),"errorMessage")}};function wn(e,t,n){return y(Vn.schema,e,t,n)}s(wn,"validateTransition");const kn={schema:{type:"object",properties:{fontFamily:Fe.schema,fontSize:N.schema,letterSpacing:N.schema,lineHeight:B.schema,fontWeight:Ce.schema},required:["fontFamily","fontSize"],errorMessage:s((e,t)=>u.VALIDATE.INVALID_TYPOGRAPHY(e,t),"errorMessage")}};function Mn(e,t,n){return y(kn.schema,e,t,n)}s(Mn,"validateTypography");const jn={color:mn,dimension:In,fluidDimension:Rn,duration:On,cubicBezier:Sn,fontFamily:Dn,fontWeight:Ln,number:hn,strokeStyle:gn,typography:Mn,border:Tn,shadow:Cn,gradient:Fn,transition:wn};function Pn(e){const t=[];for(const[n,r]of Object.entries(e.tokens)){if(typeof r!="object"||r===null||!("$type"in r)||!("$path"in r)||r.$path.startsWith("$"))continue;if(!("$value"in r)){t.push({path:r.$path,message:u.VALIDATE.MISSING_REQUIRED_PROPERTY("$value",r.$path),source:r.$source});continue}const o=jn[r.$type];if(!o){t.push({path:r.$path,message:u.VALIDATE.UNKNOWN_TOKEN_TYPE(r.$type,r.$path),source:r.$source});continue}const i=r;t.push(...o(i.$value,i.$path,i.$source))}return t}s(Pn,"validate");async function Un(e){const{trees:t,modifiers:n,errors:r}=await Gn(e),{tokens:o,errors:i}=It(t),a=Pn(o),{resolved:c,errors:l}=on(o);return{trees:t,resolved:c,modifiers:n,errors:{load:r,flatten:i,validation:a,resolution:l}}}s(Un,"loadAndResolveTokens");async function Gn(e){switch(e.type){case"memory":{const t=await rn(e.data);return{trees:t.trees,modifiers:[],errors:t.errors}}case"resolver":{const t=await nn(e.resolverPath);return{trees:t.trees,modifiers:t.modifiers,errors:t.errors}}}}s(Gn,"loadTokens");function we(e){return h(e)?{value:e}:typeof e=="string"?{value:e}:{value:`${e.dashArray.map(n=>h(n)?n:`${n.value}${n.unit}`).join(" ")} ${e.lineCap}`}}s(we,"convertStrokeStyleToken");function Wn(e){if(h(e))return{value:e};const t=h(e.width)?e.width:`${e.width.value}${e.width.unit}`,n=(h(e.color),e.color),r=typeof e.style=="string"?e.style:we(e.style).value;return{value:`${t} ${r} ${n}`}}s(Wn,"convertBorderToken");function ke(e,t="native"){return ne(e)?Bn(e):S(e)}s(ke,"convertColorToString");function Bn(e){switch(e.colorSpace){case"oklch":return cn(e);case"display-p3":return Yn(e);case"srgb":return Hn(e);case"hsl":return Kn(e);default:return g(`Unsupported color space: ${e.colorSpace}. Supported color spaces: oklch, display-p3, srgb, hsl.`)}}s(Bn,"formatDTCGColorNative");function Yn(e){if(e.colorSpace!=="display-p3")return g(`Expected display-p3 color space, got: ${e.colorSpace}`);if(!Array.isArray(e.components)||e.components.length!==3)return g("Display P3 components must be an array of exactly 3 numbers [R, G, B]");const[t,n,r]=e.components,o=e.alpha;if(t!=="none"&&(t<0||t>1))return g("Display P3 Red component must be between 0 and 1 or 'none'");if(n!=="none"&&(n<0||n>1))return g("Display P3 Green component must be between 0 and 1 or 'none'");if(r!=="none"&&(r<0||r>1))return g("Display P3 Blue component must be between 0 and 1 or 'none'");if(o!==void 0&&(o<0||o>1))return g("Alpha must be between 0 and 1");const i=t==="none"?"none":Number(t.toFixed(4)),a=n==="none"?"none":Number(n.toFixed(4)),c=r==="none"?"none":Number(r.toFixed(4));if(o!==void 0&&o!==1){const l=Number(o.toFixed(4));return S(`color(display-p3 ${i} ${a} ${c} / ${l})`)}return S(`color(display-p3 ${i} ${a} ${c})`)}s(Yn,"formatDTCGColorToP3");function Hn(e){if(e.colorSpace!=="srgb")return g(`Expected srgb color space, got: ${e.colorSpace}`);const t=G(e);if(t.length>0)return g(`Invalid DTCG color value: ${t.join(", ")}`);const[n,r,o]=e.components,i=e.alpha,a=n==="none"?"none":Math.round(n*255),c=r==="none"?"none":Math.round(r*255),l=o==="none"?"none":Math.round(o*255);if(i!==void 0&&i!==1){const p=Number(i.toFixed(4));return S(`rgb(${a} ${c} ${l} / ${p})`)}return S(`rgb(${a} ${c} ${l})`)}s(Hn,"formatDTCGColorToRGB");function Kn(e){if(e.colorSpace!=="hsl")return g(`Expected hsl color space, got: ${e.colorSpace}`);const t=G(e);if(t.length>0)return g(`Invalid DTCG color value: ${t.join(", ")}`);const[n,r,o]=e.components,i=e.alpha,a=n==="none"?"none":Number(n.toFixed(1)),c=r==="none"?"none":Math.round(r),l=o==="none"?"none":Math.round(o);if(i!==void 0&&i!==1){const d=Number(i.toFixed(4)),I=c==="none"?"none":`${c}%`,E=l==="none"?"none":`${l}%`;return S(`hsl(${a} ${I} ${E} / ${d})`)}const p=c==="none"?"none":`${c}%`,m=l==="none"?"none":`${l}%`;return S(`hsl(${a} ${p} ${m})`)}s(Kn,"formatDTCGColorToHSL");function qn(e,t){if(typeof e=="string"&&h(e))return{value:e};const n=t.colorFallbackStrategy;if(ne(e))return zn(e,n);const r=ke(e,n);return r.success?{value:r.value}:(console.warn(`[sugarcube] Failed to convert color ${typeof e=="string"?e:"DTCG color object"}: ${r.error}`),{value:typeof e=="string"?e:"#000000"})}s(qn,"convertColorToken");function zn(e,t){const n=ke(e,t);if(!n.success)return console.warn(`[sugarcube] Failed to convert DTCG color: ${n.error}`),{value:"#000000"};const r=n.value;if(t==="native")return{value:r};if(e.colorSpace==="srgb"||e.colorSpace==="hsl")return{value:r};if(!e.hex)throw new Error(`${e.colorSpace} colors require a 'hex' fallback when using 'polyfill' strategy. Tip: Switch to 'native' strategy if targeting modern browsers only.`);return{value:e.hex,featureValues:[{query:Jn(e.colorSpace),value:r}]}}s(zn,"convertDTCGColorToken");function Jn(e){switch(e){case"oklch":return"@supports (color: oklch(0 0 0))";case"display-p3":return"@supports (color: color(display-p3 1 1 1))";default:throw new Error(`No feature query defined for color space: ${e}`)}}s(Jn,"getFeatureQuery");function Xn(e){return h(e)?{value:e}:{value:`cubic-bezier(${e.join(", ")})`}}s(Xn,"convertCubicBezierToken");function Zn(e){return h(e)?{value:e}:{value:`${e.value}${e.unit}`}}s(Zn,"convertDimensionToken");function Qn(e){return h(e)?{value:e}:{value:`${e.value}${e.unit}`}}s(Qn,"convertDurationToken");function Me(e,t=16){return e.unit==="px"?e.value:e.value*t}s(Me,"normalizeToPixels");function er(e,t){const{min:n,max:r}=e,o=t.fluidConfig,i=16,a=Me(n,i),c=Me(r,i),l=o.min,p=o.max;if(a===c)return{value:`${a/i}rem`};const m=a/i,d=c/i,I=l/i,E=p/i,$=(d-m)/(E-I),ce=-1*I*$+m;return{value:`clamp(${m}rem, ${ce.toFixed(2)}rem + ${($*100).toFixed(2)}vw, ${d}rem)`}}s(er,"convertFluidDimension");function tr(e,t){return h(e)?{value:e}:er(e,t)}s(tr,"convertFluidDimensionToken");function Y(e){return["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","emoji","math","fangsong"].includes(e.toLowerCase())?e:/[\s'"!@#$%^&*()=+[\]{};:|\\/,.<>?~]/.test(e)?`"${e}"`:e}s(Y,"quoteFont");function nr(e){return h(e)?{value:e}:{value:Array.isArray(e)?e.map(n=>Y(n)).join(", "):Y(e)}}s(nr,"convertFontFamilyToken");const rr={thin:100,hairline:100,"extra-light":200,"ultra-light":200,light:300,normal:400,regular:400,book:400,medium:500,"semi-bold":600,"demi-bold":600,bold:700,"extra-bold":800,"ultra-bold":800,black:900,heavy:900,"extra-black":950,"ultra-black":950};function je(e){return h(e)?{value:e}:typeof e=="number"?{value:e}:{value:rr[e.toLowerCase()]??e}}s(je,"convertFontWeightToken");function or(e){return h(e)?{value:e}:{value:`linear-gradient(${e.map(n=>{const r=(h(n.color),n.color),o=h(n.position)?n.position:`${n.position*100}`;return`${r} ${o}%`}).join(", ")})`}}s(or,"convertGradientToken");function sr(e){return h(e)?{value:e}:{value:e}}s(sr,"convertNumberToken");function Pe(e){const t=h(e.offsetX)?e.offsetX:`${e.offsetX.value}${e.offsetX.unit}`,n=h(e.offsetY)?e.offsetY:`${e.offsetY.value}${e.offsetY.unit}`,r=h(e.blur)?e.blur:`${e.blur.value}${e.blur.unit}`,o=h(e.spread)?e.spread:`${e.spread.value}${e.spread.unit}`,i=(h(e.color),e.color);return`${e.inset?"inset ":""}${t} ${n} ${r} ${o} ${i}`}s(Pe,"convertSingleShadow");function ir(e){return h(e)?{value:e}:Array.isArray(e)?{value:e.map(Pe).join(", ")}:{value:Pe(e)}}s(ir,"convertShadowToken");function Ue(e){return e?`${e.value}${e.unit}`:"0ms"}s(Ue,"formatDuration");function ar(e){if(h(e))return{value:e};const t=h(e.duration)?e.duration:Ue(e.duration),n=h(e.timingFunction)?e.timingFunction:`cubic-bezier(${e.timingFunction.join(", ")})`,r=e.delay&&(h(e.delay)?e.delay:Ue(e.delay));return{value:[t,n,r].filter(Boolean).join(" ")}}s(ar,"convertTransitionToken");function cr(e){if(h(e))return{"font-family":e,"font-size":e};const t={"font-family":h(e.fontFamily)?e.fontFamily:Array.isArray(e.fontFamily)?e.fontFamily.map(n=>Y(n)).join(", "):Y(e.fontFamily),"font-size":h(e.fontSize)?e.fontSize:`${e.fontSize.value}${e.fontSize.unit}`};return e.fontWeight&&(t["font-weight"]=h(e.fontWeight)?e.fontWeight:je(e.fontWeight).value),e.letterSpacing&&(t["letter-spacing"]=h(e.letterSpacing)?e.letterSpacing:`${e.letterSpacing.value}${e.letterSpacing.unit}`),e.lineHeight&&(t["line-height"]=(h(e.lineHeight),e.lineHeight)),t}s(cr,"convertTypographyToken");const Ge={duration:Qn,number:sr,cubicBezier:Xn,color:qn,dimension:Zn,fluidDimension:tr,typography:cr,border:Wn,shadow:ir,gradient:or,transition:ar,strokeStyle:we,fontFamily:nr,fontWeight:je};function ur(e,t){const n=Ge[e.$type];return{...e.$description?{$description:e.$description}:{},...e.$extensions?{$extensions:e.$extensions}:{},$type:e.$type,$value:e.$value,$path:e.$path,$source:e.$source,$originalPath:e.$originalPath,$resolvedValue:e.$resolvedValue,$cssProperties:n(e.$value,t)}}s(ur,"convertSingleToken");function lr(e,t,n){const r={};for(const[o,i]of Object.entries(e)){if(!i||typeof i!="object")continue;if(!("$type"in i)){r[o]={...i.$description?{$description:i.$description}:{},...i.$extensions?{$extensions:i.$extensions}:{}};continue}if(n?.(i.$path)||!Ge[i.$type])continue;const a={fluidConfig:t.transforms.fluid,colorFallbackStrategy:t.transforms.colorFallbackStrategy,path:i.$path,resolvedTokens:e};r[o]=ur(i,a)}return r}s(lr,"convertTokens");function fr(e,t,n){const r={};for(const[o,i]of Object.entries(e))r[o]=lr(i,t,n);return r}s(fr,"convert");function pr(e,t){const n={},r=new Set;for(const o of e){const i=o.context??"default";r.add(i)}for(const o of r)n[o]={};for(const o of e){const{context:i,tokens:a}=o,c=i??"default";n[c]||(n[c]={});for(const[l,p]of Object.entries(a))n[c][l]=p}return{tokens:n,defaultContext:t}}s(pr,"normalizeTokens");function dr(e,t){const n=new Map;for(const[r,o]of Object.entries(t)){if(!("$source"in o)){for(const c of e){const l=c.context??"";n.has(l)||n.set(l,{});const p=n.get(l);p&&(p[r]=o)}continue}const i=o.$source.context??"";n.has(i)||n.set(i,{});const a=n.get(i);a&&(a[r]=o)}return e.map(r=>{const o=r.context??"",i=n.get(o)||{};return{context:r.context,tokens:i}})}s(dr,"processTrees");async function mr(e,t,n,r){const o=dr(e,t),{tokens:i}=pr(o);return fr(i,n,r?l=>r.some(p=>p.path===l||p.path.startsWith(`${l}.`)):void 0)}s(mr,"processAndConvertTokens");function hr(e){return Object.entries(e).sort(([t],[n])=>t.localeCompare(n))}s(hr,"deterministicEntries");const We=new Map;function Ir(e){const t=We.get(e);if(t)return t;const n=e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z])(?=[a-z])/g,"$1-$2").toLowerCase();return We.set(e,n),n}s(Ir,"toKebabCase");function oe(e){return e.split(".").join("-")}s(oe,"formatCSSVarPath");function se(e){return typeof e=="number"?e:typeof e!="string"?(console.warn("[sugarcube] Unexpected value type in convertReferenceToCSSVar:",e),String(e)):e.replace(/\{([^}]+)\}/g,(t,n)=>`var(--${n.split(".").map(Ir).join("-")})`)}s(se,"convertReferenceToCSSVar");function Er(e){const t=e.$cssProperties;if("value"in t)return{name:`--${oe(e.$path)}`,value:se(t.value)}}s(Er,"generateSingleVariable");function yr(e){return Object.entries(e.$cssProperties).filter(([t,n])=>n!==void 0).map(([t,n])=>({name:`--${oe(e.$path)}-${t}`,value:se(n)}))}s(yr,"generateTypographyVariables");function Be(e){if(e.$type!=="color")return[];const t=e.$cssProperties;if(!("featureValues"in t))return[];const n=new Map;for(const r of t.featureValues||[]){n.has(r.query)||n.set(r.query,[]);const o=n.get(r.query);o&&o.push({name:`--${oe(e.$path)}`,value:se(r.value)})}return Array.from(n.entries()).map(([r,o])=>({query:r,vars:o}))}s(Be,"generateFeatureVariables");function Ye(e){const t=[`${e.selector} {`];if(e.comment&&t.push(` /* ${e.comment} */`),e.vars.length>0){const n=e.vars.map(r=>` ${r.name}: ${r.value};`).join(`
12
+ 3. Create a sugarcube.config.ts file`,"NO_CONFIG_OR_RESOLVER")},UTILITIES:{RESERVED_PREFIX:s((e,t)=>`Cannot use reserved prefix "${e}" for ${t} token type. This prefix is reserved for default utility classes. Please use a custom prefix instead.`,"RESERVED_PREFIX"),DUPLICATE_CLASS_NAME:s((e,t)=>`Ambiguous utility class "${e}" would be generated from multiple token paths: ${t.join(", ")}. This would make it impossible to know which token value should be used when this class is applied in HTML. To fix this, configure one or more paths with custom prefixes to make the intent clear.`,"DUPLICATE_CLASS_NAME"),INVALID_PROPERTY_MAPPING:s(e=>`Invalid property mapping for ${e} token type. When mapping multiple properties, each mapping must include a unique prefix to avoid class name collisions.`,"INVALID_PROPERTY_MAPPING"),DUPLICATE_PREFIX:s((e,t)=>`Duplicate prefix "${e}" found in property mappings for ${t} token type. Each property mapping must have a unique prefix to avoid class name collisions.`,"DUPLICATE_PREFIX"),MISSING_SOURCE:s(e=>`Utility config for '${e}' must have a valid 'source' property`,"MISSING_SOURCE"),INVALID_SOURCE_PATTERN:s((e,t)=>`Utility config for '${e}' has invalid source pattern '${t}'. Only patterns ending with '.*' are supported (e.g., 'color.*', 'font.weight.*').`,"INVALID_SOURCE_PATTERN"),INVALID_DIRECTIONS:s(e=>`Utility config for '${e}' must have 'directions' as an array`,"INVALID_DIRECTIONS"),INVALID_CONFIG_OBJECT:"utilitiesConfig must be an object",INVALID_TOKENS_OBJECT:"tokens must be an object"},RESOLVER:{FILE_NOT_FOUND:s(e=>`Cannot read resolver file at "${e}". Please check the path and file permissions.`,"FILE_NOT_FOUND"),INVALID_JSON:s(e=>`Invalid JSON in resolver file: ${e}`,"INVALID_JSON"),INVALID_REFERENCE:s(e=>`Invalid reference "${e}". References must use format #/sets/<name> or #/modifiers/<name>.`,"INVALID_REFERENCE"),INVALID_SOURCE_REFERENCE:s(e=>`Invalid source reference "${e}". Sources can only reference sets (#/sets/<name>), not modifiers.`,"INVALID_SOURCE_REFERENCE"),UNDEFINED_SET:s(e=>`Reference to undefined set "${e}". Define it in the "sets" section first.`,"UNDEFINED_SET"),UNDEFINED_MODIFIER:s(e=>`Reference to undefined modifier "${e}". Define it in the "modifiers" section first.`,"UNDEFINED_MODIFIER"),CIRCULAR_REFERENCE:s(e=>`Circular reference detected at "${e}".`,"CIRCULAR_REFERENCE"),EXTERNAL_FILE_NOT_FOUND:s(e=>`Referenced file not found: ${e}`,"EXTERNAL_FILE_NOT_FOUND"),EXTERNAL_FILE_ERROR:s((e,t)=>`Failed to load "${e}": ${t}`,"EXTERNAL_FILE_ERROR"),INVALID_JSON_POINTER:s((e,t)=>`Invalid JSON pointer "${e}": ${t}`,"INVALID_JSON_POINTER"),DUPLICATE_NAME:s(e=>`Duplicate name "${e}" in resolutionOrder.`,"DUPLICATE_NAME"),MODIFIER_NEEDS_CONTEXTS:"Modifier must have at least one context defined.",MODIFIER_SINGLE_CONTEXT:"Modifier has only one context. Consider using a set instead, or add more contexts.",INVALID_DEFAULT:s((e,t)=>`Default context "${e}" is not defined. Valid contexts: ${t.join(", ")}`,"INVALID_DEFAULT"),UNKNOWN_MODIFIER:s(e=>`Unknown modifier "${e}".`,"UNKNOWN_MODIFIER"),INVALID_CONTEXT:s((e,t,n)=>`Invalid context "${e}" for modifier "${t}". Valid contexts: ${n.join(", ")}`,"INVALID_CONTEXT"),MISSING_REQUIRED_INPUT:s(e=>`Missing required input for modifier "${e}". No default value is defined.`,"MISSING_REQUIRED_INPUT"),INVALID_INPUT_TYPE:s(e=>`Input for modifier "${e}" must be a string.`,"INVALID_INPUT_TYPE"),MALFORMED_REFERENCE:s((e,t)=>`Malformed source reference: { "${e}": "${t}" }. Did you mean { "$ref": "${t}" }?`,"MALFORMED_REFERENCE"),RESOLVER_AS_TOKEN_SOURCE:s(e=>`File "${e}" is a resolver document, not a token file. Resolver documents (version: "2025.10") cannot be used as token sources. Did you mean to reference a specific token file instead?`,"RESOLVER_AS_TOKEN_SOURCE")}};async function Z(e){const n=await rt(["**/*.resolver.json"],{cwd:e,onlyFiles:!0,absolute:!0,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/out/**","**/.git/**","**/.next/**","**/.nuxt/**","**/.astro/**","**/.cache/**","**/.turbo/**","**/.vercel/**","**/.svelte-kit/**"]});if(n.length===0)return{found:"none"};const[r]=n;return n.length===1&&r?{found:"one",path:F(process.cwd(),r)}:{found:"multiple",paths:n.map(o=>F(process.cwd(),o))}}s(Z,"findResolverDocument");function w(e){const t=e.output?.cssRoot??O.output.cssRoot,n={resolver:e.resolver,transforms:{fluid:e.transforms?.fluid??O.transforms.fluid,colorFallbackStrategy:e.transforms?.colorFallbackStrategy??O.transforms.colorFallbackStrategy},output:{cssRoot:t,variables:e.output?.variables??`${t}/global`,variablesFilename:e.output?.variablesFilename??O.output.variablesFilename,utilities:e.output?.utilities??`${t}/utilities`,utilitiesFilename:e.output?.utilitiesFilename??O.output.utilitiesFilename,cube:e.output?.cube??t,themeAttribute:e.output?.themeAttribute??O.output.themeAttribute,defaultContext:e.output?.defaultContext,layers:e.output?.layers}};return(e.output?.components!==void 0||O.output.components!==void 0)&&(n.output.components=e.output?.components??O.output.components),e.utilities&&(n.utilities=e.utilities),n}s(w,"fillDefaults");const he=u.object({min:u.number(),max:u.number()}),Ie=u.object({source:u.string(),directions:u.union([u.enum(["top","right","bottom","left","x","y","full","all"]),u.array(u.enum(["top","right","bottom","left","x","y","full","all"]))]).optional(),prefix:u.string().optional(),stripDuplicates:u.boolean().optional()}),Ee=u.union([Ie,u.array(Ie)]),ye=u.object({variables:u.string(),utilities:u.string()}),st=u.object({resolver:u.string().optional(),transforms:u.object({fluid:he.optional(),colorFallbackStrategy:u.enum(["native","polyfill"]).optional()}).optional(),output:u.object({cssRoot:u.string().optional(),variables:u.string().optional(),variablesFilename:u.string().optional(),utilities:u.string().optional(),utilitiesFilename:u.string().optional(),cube:u.string().optional(),components:u.string().optional(),themeAttribute:u.string().optional(),defaultContext:u.string().optional(),layers:ye.optional()}).optional(),utilities:u.record(u.string(),Ee).optional()}),it=u.object({resolver:u.string().optional(),transforms:u.object({fluid:he,colorFallbackStrategy:u.enum(["native","polyfill"])}),output:u.object({cssRoot:u.string(),variables:u.string().optional(),variablesFilename:u.string(),utilities:u.string().optional(),utilitiesFilename:u.string(),cube:u.string().optional(),components:u.string().optional(),themeAttribute:u.string(),defaultContext:u.string().optional(),layers:ye.optional()}),utilities:u.record(u.string(),Ee).optional()});function Q(e){const t=st.safeParse(e);if(!t.success){const n=t.error.errors.map(r=>{const o=r.path.join(".");return f.CONFIG.INVALID_CONFIG(o||"root",r.message)});throw new Error(n.join(`
13
+ `))}return t.data}s(Q,"validateSugarcubeConfig");function ee(e){const t=it.safeParse(e);if(!t.success){const n=t.error.errors.map(r=>{const o=r.path.join(".");return f.CONFIG.INVALID_CONFIG(o||"root",r.message)});throw new Error(n.join(`
14
+ `))}return t.data}s(ee,"validateInternalConfig");function at(e){const t=Q(e),n=w(t);return ee(n)}s(at,"validateConfig");function ct(e){return e instanceof Error&&e.message===f.CONFIG.NO_CONFIG_OR_RESOLVER()}s(ct,"isNoConfigError");function te(e="sugarcube.config"){const t=[".ts",".js"],n=process.cwd();for(const r of t){const o=T(n,`${e}${r}`);if(et(o))return o}return null}s(te,"findConfigFile");function ut(e="sugarcube.config"){return te(e)!==null}s(ut,"configFileExists");async function ft(e){try{if(typeof globalThis.Bun<"u"){const i=nt(e).href,c=await new Function("url","return import(url)")(i);if(c&&typeof c=="object"&&"default"in c)return c.default;throw new Error(f.CONFIG.INVALID_CONFIG("root","Config file must export a default object"))}const{createJiti:n}=await import("jiti"),o=await n(import.meta.url,{interopDefault:!0}).import(e);return o&&typeof o=="object"&&"default"in o?o.default:o}catch(t){throw t instanceof Error?new Error(f.CONFIG.INVALID_CONFIG("root",t.message)):t}}s(ft,"loadTSConfig");async function $e(e){if(e.endsWith(".ts")||e.endsWith(".js"))return await ft(e);const n=await tt.readFile(e,"utf-8");return JSON.parse(n)}s($e,"loadConfigFile");function lt(e){if(e)return T(process.cwd(),e);const t=te();if(!t)throw new Error(f.CONFIG.FILE_NOT_FOUND("sugarcube.config.ts"));return t}s(lt,"resolveConfigPath");async function pt(e){const t=lt(e);try{const n=await $e(t);return{config:Q(n),configPath:t}}catch(n){throw n instanceof Error&&"code"in n&&n.code==="ENOENT"?new Error(f.CONFIG.FILE_NOT_FOUND(t)):n instanceof SyntaxError?new Error(f.CONFIG.INVALID_JSON(n.message)):n}}s(pt,"loadSugarcubeConfig");async function dt(e){const t=e?T(process.cwd(),e):te();if(t)try{const r=await $e(t),o=Q(r);if(!o.resolver){const c=await Z(process.cwd());if(c.found==="one")o.resolver=c.path;else{if(c.found==="multiple")throw new Error(f.CONFIG.MULTIPLE_RESOLVERS_FOUND(c.paths));if(c.found==="none")throw new Error(f.CONFIG.NO_CONFIG_OR_RESOLVER())}}const i=w(o);return{config:ee(i),configPath:t}}catch(r){throw r instanceof Error&&"code"in r&&r.code==="ENOENT"?new Error(f.CONFIG.FILE_NOT_FOUND(t)):r instanceof SyntaxError?new Error(f.CONFIG.INVALID_JSON(r.message)):r}const n=await Z(process.cwd());if(n.found==="one"){const r={resolver:n.path},o=w(r);return{config:ee(o),configPath:n.path}}throw n.found==="multiple"?new Error(f.CONFIG.MULTIPLE_RESOLVERS_FOUND(n.paths)):new Error(f.CONFIG.NO_CONFIG_OR_RESOLVER())}s(dt,"loadInternalConfig");function A(e){return typeof e=="object"&&e!==null&&"$ref"in e&&typeof e.$ref=="string"}s(A,"isReference$1");function ne(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="set"}s(ne,"isInlineSet");function _(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="modifier"}s(_,"isInlineModifier");async function mt(e){const t=D(e)?e:T(process.cwd(),e),n=C(t),r=await X(t,"utf-8"),o=JSON.parse(r),i=new Set;for(const a of o.resolutionOrder)if(A(a))ge(a.$ref,n,i);else if(ne(a))V(a.sources,n,i);else if(_(a))for(const c of Object.values(a.contexts))V(c,n,i);if(o.sets)for(const a of Object.values(o.sets))V(a.sources,n,i);if(o.modifiers)for(const a of Object.values(o.modifiers))for(const c of Object.values(a.contexts))V(c,n,i);return{filePaths:[...i],resolverPath:t}}s(mt,"extractFileRefs");function V(e,t,n){for(const r of e)A(r)&&ge(r.$ref,t,n)}s(V,"extractFromSources");function ge(e,t,n){if(e.startsWith("#/"))return;const r=e.split("#")[0];if(!r)return;const o=D(r)?r:T(t,r);n.add(o)}s(ge,"addFileRef");function h(e){return typeof e=="string"&&e.startsWith("{")&&e.endsWith("}")}s(h,"isReference");function ht(e){if(typeof e!="object"||e===null||!("$value"in e))return!1;const t=e.$value;return typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length>0}s(ht,"isCompositeToken");function It(e){return e.$type==="typography"}s(It,"isTypographyToken");function re(e){return typeof e=="object"&&e!==null&&"$value"in e}s(re,"isTokenNode");function Et(e,t,n){for(const[r,o]of Object.entries(t.tokens)){const i=e.tokens[r];if(!re(o)){if(i&&re(i)){const d=i;n.push({path:d.$path,source:d.$source,message:f.FLATTEN.CONFLICT_TOKEN_VS_GROUP(d.$path)});continue}e.tokens[r]=o;continue}if(!i){e.tokens[r]=o;continue}if(!re(i)){n.push({path:o.$path,source:o.$source,message:f.FLATTEN.CONFLICT_TOKEN_VS_GROUP(o.$path)});continue}const c=o,l=i,p=!!c.$type,m=!!l.$type;if(p&&m&&c.$type!==l.$type){n.push({path:c.$path,source:c.$source,message:f.FLATTEN.CONFLICT_INCOMPATIBLE_TYPES(String(l.$type??"unknown"),String(c.$type??"unknown"),c.$path)});continue}e.tokens[r]=o}for(const[r,o]of t.pathIndex)e.pathIndex.set(r,o)}s(Et,"mergeFlattenedInto");function yt(e){if(typeof e!="object"||e===null||"$value"in e)return!1;const t="value"in e,n="type"in e;if(t&&n)return!0;if(t){const r=e.value;return typeof r=="string"||typeof r=="number"||Array.isArray(r)}return!1}s(yt,"looksLikeUnprefixedToken");function $t(e,t){const n={tokens:{},pathIndex:new Map},r=[];function o(a=[]){const c=[];return t.context&&c.push(t.context),a.length>0&&c.push(a.join(".")),c.length>0?c.join("."):""}s(o,"createLookupKey"),(e.$description||e.$extensions)&&(n.tokens[o()]={$description:e.$description,$extensions:e.$extensions});function i(a,c=[],l){if(c.join("."),c.length>0){const d=o(c);n.tokens[d]={$description:a.$description,$extensions:a.$extensions,$path:c.join("."),$source:{context:t.context,sourcePath:t.sourcePath}}}const p=Object.keys(a).filter(d=>!d.startsWith("$")),m=a.$type||l;for(const d of p){const I=a[d],E=[...c,d],$=E.join(".");if(yt(I)){r.push({path:$,source:t,message:f.FLATTEN.MISSING_DOLLAR_PREFIX($)});continue}if(d.includes(".")||d.includes("{")||d.includes("}")){r.push({path:$,source:t,message:f.FLATTEN.INVALID_TOKEN_NAME(d)});continue}if("$value"in I){if(Object.keys(I).filter(Ze=>!Ze.startsWith("$")).length>0){r.push({path:$,source:t,message:f.FLATTEN.INVALID_TOKEN_NESTING($)});continue}if(ht(I)&&!I.$type&&!m){r.push({path:$,source:t,message:f.FLATTEN.COMPOSITE_TOKEN_MISSING_TYPE($)});continue}const pe=o(E),J=E.join(".");n.tokens[pe]={...I,...I.$type||m?{$type:I.$type||m}:{},$path:J,$source:{context:t.context,sourcePath:t.sourcePath},$originalPath:J},n.pathIndex.set(J,pe)}else i(I,E,m)}}return s(i,"processNode"),i(e),{tokens:n,errors:r}}s($t,"flattenTree");function gt(e){const t={tokens:{},pathIndex:new Map},n=[];for(const r of e){const{tokens:o,errors:i}=$t(r.tokens,{context:r.context,sourcePath:r.sourcePath});n.push(...i),Et(t,o,n)}return{tokens:t,errors:n}}s(gt,"flatten");const k=u.string().min(1,"Name cannot be empty").refine(e=>!e.startsWith("$"),"Names must not start with '$' (reserved prefix)").refine(e=>!e.includes("{"),"Names must not contain '{'").refine(e=>!e.includes("}"),"Names must not contain '}'").refine(e=>!e.includes("."),"Names must not contain '.'"),Ne=u.object({$ref:u.string().min(1,"$ref cannot be empty")}).passthrough(),oe=u.union([Ne,u.record(u.string(),u.unknown())]),Nt=u.object({description:u.string().optional(),sources:u.array(oe),$extensions:u.record(u.string(),u.unknown()).optional()}),be=u.record(u.string(),u.array(oe)),bt=u.object({description:u.string().optional(),contexts:be,default:u.string().optional(),$extensions:u.record(u.string(),u.unknown()).optional()}).refine(e=>Object.keys(e.contexts).length>=1,"Modifier must have at least 1 context"),St=u.object({type:u.literal("set"),name:k,sources:u.array(oe),description:u.string().optional(),$extensions:u.record(u.string(),u.unknown()).optional()}),Tt=u.object({type:u.literal("modifier"),name:k,contexts:be,description:u.string().optional(),default:u.string().optional(),$extensions:u.record(u.string(),u.unknown()).optional()}).refine(e=>Object.keys(e.contexts).length>=1,"Modifier must have at least 1 context"),Ot=u.union([Ne,St,Tt]),At=u.record(k,Nt),Rt=u.record(k,bt),Dt=u.object({version:u.literal("2025.10"),name:u.string().optional(),description:u.string().optional(),sets:At.optional(),modifiers:Rt.optional(),resolutionOrder:u.array(Ot),$schema:u.string().optional(),$extensions:u.record(u.string(),u.unknown()).optional(),$defs:u.record(u.string(),u.unknown()).optional()});async function _t(e){const t=D(e)?e:T(process.cwd(),e),n=await Lt(t);if(n.error)return{document:j(),errors:[n.error]};const r=vt(n.content);if(r.error)return{document:j(),errors:[r.error]};const o=xt(r.data);if(o.errors.length>0)return{document:j(),errors:o.errors};const i=[];return Ft(o.document,i),{document:o.document,errors:i}}s(_t,"parseResolverDocument");async function Lt(e){try{return{content:await X(e,"utf-8")}}catch{return{error:{path:e,message:f.RESOLVER.FILE_NOT_FOUND(e)}}}}s(Lt,"loadFile");function vt(e){try{return{data:JSON.parse(e)}}catch(t){const n=t instanceof Error?t.message:"Unknown error";return{error:{path:"resolver",message:f.RESOLVER.INVALID_JSON(n)}}}}s(vt,"parseJson");function xt(e){const t=Dt.safeParse(e);if(!t.success){const n=t.error.errors.map(r=>{const o=r.path.join(".")||"resolver";return{path:o,message:`Resolver error at ${o}: ${r.message}. See https://sugarcube.sh/docs/resolver`}});return{document:j(),errors:n}}return{document:t.data,errors:[]}}s(xt,"validateSchema$1");function Ft(e,t){Ct(e,t),wt(e,t),Vt(e,t)}s(Ft,"validateDocument");function Ct(e,t){if(e.modifiers)for(const[n,r]of Object.entries(e.modifiers))Se(r,`modifiers.${n}`,t);for(let n=0;n<e.resolutionOrder.length;n++){const r=e.resolutionOrder[n];_(r)&&Se(r,`resolutionOrder[${n}]`,t)}}s(Ct,"validateModifierContexts");function Se(e,t,n){const r=Object.keys(e.contexts).length;if(r===0){n.push({path:`${t}.contexts`,message:f.RESOLVER.MODIFIER_NEEDS_CONTEXTS});return}r===1&&n.push({path:`${t}.contexts`,message:f.RESOLVER.MODIFIER_SINGLE_CONTEXT}),e.default&&!e.contexts[e.default]&&n.push({path:`${t}.default`,message:f.RESOLVER.INVALID_DEFAULT(e.default,Object.keys(e.contexts))})}s(Se,"checkModifierContexts");function wt(e,t){const n=new Set;for(let r=0;r<e.resolutionOrder.length;r++){const o=e.resolutionOrder[r];if(A(o))continue;const i=o.name;n.has(i)&&t.push({path:`resolutionOrder[${r}].name`,message:f.RESOLVER.DUPLICATE_NAME(i)}),n.add(i)}}s(wt,"validateNameUniqueness");function Vt(e,t){for(let n=0;n<e.resolutionOrder.length;n++){const r=e.resolutionOrder[n];if(A(r))kt(r.$ref,`resolutionOrder[${n}].$ref`,e,t);else if(ne(r))M(r.sources,`resolutionOrder[${n}].sources`,t);else if(_(r))for(const[o,i]of Object.entries(r.contexts))M(i,`resolutionOrder[${n}].contexts.${o}`,t)}if(e.sets)for(const[n,r]of Object.entries(e.sets))M(r.sources,`sets.${n}.sources`,t);if(e.modifiers)for(const[n,r]of Object.entries(e.modifiers))for(const[o,i]of Object.entries(r.contexts))M(i,`modifiers.${n}.contexts.${o}`,t)}s(Vt,"validateReferences");function M(e,t,n){for(let r=0;r<e.length;r++){const o=e[r];if(!o)continue;if(!A(o)){const a=Object.keys(o);if(a.length===1){const c=a[0],l=o[c];typeof l=="string"&&(l.includes("/")||l.endsWith(".json"))&&n.push({path:`${t}[${r}]`,message:f.RESOLVER.MALFORMED_REFERENCE(c,l)})}continue}const i=o.$ref;i.startsWith("#/")&&(i.match(/^#\/sets\/[^/]+$/)||n.push({path:`${t}[${r}].$ref`,message:f.RESOLVER.INVALID_SOURCE_REFERENCE(i)}))}}s(M,"validateSourcesReferences");function kt(e,t,n,r){if(!e.startsWith("#/"))return;const o=e.slice(2).split("/"),[i,a]=o;if(o.length!==2||!i||!a){r.push({path:t,message:f.RESOLVER.INVALID_REFERENCE(e)});return}if(i==="sets"){n.sets?.[a]||r.push({path:t,message:f.RESOLVER.UNDEFINED_SET(a)});return}if(i==="modifiers"){n.modifiers?.[a]||r.push({path:t,message:f.RESOLVER.UNDEFINED_MODIFIER(a)});return}r.push({path:t,message:f.RESOLVER.INVALID_REFERENCE(e)})}s(kt,"validateReference");function j(){return{version:"2025.10",resolutionOrder:[]}}s(j,"createEmptyDocument");function Te(e){if(typeof e!="object"||e===null)return!1;const t=e;return t.version==="2025.10"&&Array.isArray(t.resolutionOrder)}s(Te,"isResolverFormat");function Oe(e,t){return{document:e,basePath:t,visitedRefs:new Set,fileCache:new Map}}s(Oe,"createResolveContext");async function Ae(e,t){if(t.visitedRefs.has(e))return b({},f.RESOLVER.CIRCULAR_REFERENCE(e),e);t.visitedRefs.add(e);try{return e.startsWith("#/")?Mt(e,t):e.includes("#/")?await Pt(e,t):await jt(e,t)}finally{t.visitedRefs.delete(e)}}s(Ae,"resolveReference");function Mt(e,t){const n=e.slice(2),[r,o]=n.split("/");if(!r||!o||n.split("/").length!==2)return b({sources:[]},f.RESOLVER.INVALID_REFERENCE(e));if(r==="sets"){const i=t.document.sets?.[o];return i?{content:i,sourcePath:"#",errors:[]}:b({sources:[]},f.RESOLVER.UNDEFINED_SET(o))}if(r==="modifiers"){const i=t.document.modifiers?.[o];return i?{content:i,sourcePath:"#",errors:[]}:b({contexts:{}},f.RESOLVER.UNDEFINED_MODIFIER(o))}return b({sources:[]},f.RESOLVER.INVALID_REFERENCE(e))}s(Mt,"resolveSameDocumentRef");async function jt(e,t){const n=D(e)?e:T(t.basePath,e),r=t.fileCache.get(n);if(r)return Te(r)?b({},f.RESOLVER.RESOLVER_AS_TOKEN_SOURCE(n),n):{content:r,sourcePath:n,errors:[]};const o=await Re(n);return o.error?b({},o.error,n):Te(o.content)?b({},f.RESOLVER.RESOLVER_AS_TOKEN_SOURCE(n),n):(t.fileCache.set(n,o.content),{content:o.content,sourcePath:n,errors:[]})}s(jt,"resolveFileRef");async function Pt(e,t){const[n="",r=""]=e.split("#"),o=D(n)?n:T(t.basePath,n);let i=t.fileCache.get(o);if(!i){const l=await Re(o);if(l.error)return b({},l.error,o);i=l.content,t.fileCache.set(o,i)}const a=r.startsWith("/")?r:`/${r}`,c=Ut(i,a);return c.error?b({},f.RESOLVER.INVALID_JSON_POINTER(a,c.error),o):{content:c.value,sourcePath:o,errors:[]}}s(Pt,"resolveFileFragmentRef");async function Re(e){try{const t=await X(e,"utf-8");return{content:JSON.parse(t)}}catch(t){if(t.code==="ENOENT")return{error:f.RESOLVER.EXTERNAL_FILE_NOT_FOUND(e)};const n=t instanceof Error?t.message:"Unknown error";return{error:f.RESOLVER.EXTERNAL_FILE_ERROR(e,n)}}}s(Re,"loadJsonFile");function Ut(e,t){if(t===""||t==="/")return{value:e};const n=t.slice(1).split("/").map(o=>o.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const o of n){if(r===null||typeof r!="object")return{error:"cannot navigate into non-object"};if(Array.isArray(r)){const a=Number.parseInt(o,10);if(Number.isNaN(a)||a<0||a>=r.length)return{error:`invalid array index "${o}"`};r=r[a];continue}const i=r;if(!(o in i))return{error:`property "${o}" not found`};r=i[o]}return{value:r}}s(Ut,"resolveJsonPointer");async function De(e,t){const n=[],r=[];for(const o of e){if(!A(o)){n.push(o);continue}const i=await Ae(o.$ref,t);r.push(...i.errors),i.errors.length===0&&n.push(Gt(i.content,o))}return{resolved:n,errors:r}}s(De,"resolveSources");function Gt(e,t){const{$ref:n,...r}=t;return Object.keys(r).length===0?e:{...e,...r}}s(Gt,"applyExtending");function b(e,t,n="#"){return{content:e,sourcePath:n,errors:[{path:n,message:t}]}}s(b,"errorResult");function _e(e){return typeof e=="object"&&e!==null&&"$value"in e}s(_e,"isToken");function P(e,t){const n={...e};for(const[r,o]of Object.entries(t)){if(o===void 0)continue;if(r.startsWith("$")){n[r]=o;continue}if(_e(o)){n[r]=o;continue}const i=n[r],a=i!==void 0&&typeof i=="object"&&i!==null&&typeof o=="object"&&o!==null&&!_e(i);n[r]=a?P(i,o):o}return n}s(P,"deepMerge");function Le(e){const t=[],n=new Set;for(const r of e.resolutionOrder){const o=Wt(r,e,n);o&&(t.push(o),n.add(o.name))}return t}s(Le,"extractModifiers");function Wt(e,t,n){return A(e)&&e.$ref.startsWith("#/modifiers/")?Bt(e.$ref,t,n):_(e)?Yt(e,n):null}s(Wt,"extractModifierFromItem");function Bt(e,t,n){const r=e.split("/")[2];if(!r||n.has(r))return null;const o=t.modifiers?.[r];return o?{name:r,contexts:Object.keys(o.contexts),default:o.default}:null}s(Bt,"extractReferencedModifier");function Yt(e,t){return t.has(e.name)?null:{name:e.name,contexts:Object.keys(e.contexts),default:e.default}}s(Yt,"extractInlineModifier");function Ht(e,t={}){const n=[],r={},o=Le(e);if(o.length===0)return Kt(t,n),{valid:n.length===0,errors:n,resolvedInputs:r};const i=new Map(o.map(a=>[a.name,a]));return qt(t,i,n,r),zt(o,r,n),{valid:n.length===0,errors:n,resolvedInputs:r}}s(Ht,"validateInputs$1");function Kt(e,t){for(const n of Object.keys(e))t.push({modifier:n,message:f.RESOLVER.UNKNOWN_MODIFIER(n)})}s(Kt,"validateNoModifiersCase");function qt(e,t,n,r){for(const[o,i]of Object.entries(e)){const a=t.get(o);if(!a){n.push({modifier:o,message:f.RESOLVER.UNKNOWN_MODIFIER(o)});continue}if(typeof i!="string"){n.push({modifier:o,message:f.RESOLVER.INVALID_INPUT_TYPE(o)});continue}if(!a.contexts.includes(i)){n.push({modifier:o,message:f.RESOLVER.INVALID_CONTEXT(i,o,a.contexts)});continue}r[o]=i}}s(qt,"validateProvidedInputs");function zt(e,t,n){for(const r of e)t[r.name]===void 0&&(r.default!==void 0?t[r.name]=r.default:n.push({modifier:r.name,message:f.RESOLVER.MISSING_REQUIRED_INPUT(r.name)}))}s(zt,"applyDefaults");async function ve(e,t,n={}){const r=Ht(e,n);if(!r.valid)return{tokens:{},sources:[],errors:r.errors.map(a=>({path:a.modifier||"inputs",message:a.message}))};const o=Oe(e,t),i=Jt();for(const a of e.resolutionOrder)await Xt(a,e,o,r.resolvedInputs,i);return{tokens:i.tokens,sources:i.sources,errors:i.errors}}s(ve,"processResolutionOrder");function Jt(){return{tokens:{},sources:[],errors:[]}}s(Jt,"createProcessingState");async function Xt(e,t,n,r,o){if(A(e)){await Zt(e,t,n,r,o);return}if(ne(e)){await Qt(e,n,o);return}_(e)&&await en(e,n,r,o)}s(Xt,"processItem");async function Zt(e,t,n,r,o){const i=await Ae(e.$ref,n);if(i.errors.length>0){o.errors.push(...i.errors);return}const a=e.$ref.split("/")[2];if(a){if(e.$ref.startsWith("#/sets/")){const c=await U(i.content.sources,n,{type:"set",name:a});G(c,o);return}if(e.$ref.startsWith("#/modifiers/")){const c=r[a];if(!c)return;const p=i.content.contexts[c];if(!p)return;const m=await U(p,n,{type:"modifier",name:a,context:c});G(m,o)}}}s(Zt,"processReference");async function Qt(e,t,n){const r=await U(e.sources,t,{type:"set",name:e.name});G(r,n)}s(Qt,"processInlineSet");async function en(e,t,n,r){const o=n[e.name];if(!o)return;const i=e.contexts[o];if(!i)return;const a=await U(i,t,{type:"modifier",name:e.name,context:o});G(a,r)}s(en,"processInlineModifier");async function U(e,t,n){const r=await De(e,t);let o={};for(const i of r.resolved)o=P(o,i);return{tokens:o,source:{path:"#",...n},errors:r.errors}}s(U,"mergeSources");function G(e,t){t.errors.push(...e.errors),t.tokens=P(t.tokens,e.tokens),t.sources.push(e.source)}s(G,"applyResult");async function tn(e,t){const n=[],r=Oe(e,t),o=Le(e),i={};for(const p of o)p.default&&(i[p.name]=p.default);const a=await ve(e,t,i);n.push(...a.errors);const c=a.tokens,l=[];for(const p of o){const m=new Map,d=p.default??p.contexts[0]??"default";for(const I of p.contexts){if(I===d)continue;const E=await nn(e,t,r,p.name,I,n);Object.keys(E).length>0&&m.set(I,E)}l.push({name:p.name,defaultContext:d,contexts:m})}return{base:c,modifiers:l,errors:n}}s(tn,"processForLayeredCSS");async function nn(e,t,n,r,o,i){const a=rn(e,r);if(!a)return{};const c=a.contexts[o];if(!c||c.length===0)return{};const l=await De(c,n);i.push(...l.errors.map(E=>({path:E.path,message:E.message})));let p={};for(const E of l.resolved)p=P(p,E);const m=new Set;xe(p,"",m);const d=await ve(e,t,{[r]:o});i.push(...d.errors);const I={};for(const E of m){const $=on(d.tokens,E);$!==void 0&&sn(I,E,$)}return I}s(nn,"processModifierContext");function rn(e,t){if(e.modifiers?.[t])return e.modifiers[t];for(const n of e.resolutionOrder)if(_(n)&&n.name===t)return n}s(rn,"findModifierDefinition");function xe(e,t,n){for(const[r,o]of Object.entries(e)){if(r.startsWith("$"))continue;const i=t?`${t}.${r}`:r;o&&typeof o=="object"&&"$value"in o?n.add(i):o&&typeof o=="object"&&xe(o,i,n)}}s(xe,"collectTokenPaths");function on(e,t){const n=t.split(".");let r=e;for(const o of n){if(r===null||typeof r!="object")return;r=r[o]}return r}s(on,"getTokenAtPath");function sn(e,t,n){const r=t.split(".");let o=e;for(let a=0;a<r.length-1;a++){const c=r[a];c&&(c in o||(o[c]={}),o=o[c])}const i=r[r.length-1];i&&(o[i]=n)}s(sn,"setTokenAtPath");async function an(e){const t=D(e)?e:T(process.cwd(),e),n=C(t),r=[],o=[],i=F(process.cwd(),t),a=await _t(t);if(a.errors.length>0)return{trees:[],modifiers:[],errors:a.errors.map(p=>({file:p.path,message:p.message}))};const c=await tn(a.document,n);for(const p of c.errors)r.push({file:p.path,message:p.message});Object.keys(c.base).length>0&&o.push({context:void 0,tokens:c.base,sourcePath:i});const l=[];for(const p of c.modifiers){const m=[];for(const[d,I]of p.contexts)Object.keys(I).length>0&&(o.push({context:`${p.name}:${d}`,tokens:I,sourcePath:i}),m.push(d));l.push({name:p.name,attribute:`data-${p.name}`,defaultContext:p.defaultContext,contexts:m})}return{trees:o,modifiers:l,errors:r}}s(an,"loadFromResolver");async function cn(e){const t=[],n=[],r=Object.entries(e);r.sort(([,o],[,i])=>{const a=!o.context,c=!i.context;return a&&!c?-1:!a&&c?1:0});for(const[o,{context:i,content:a}]of r)try{const c=JSON.parse(a);t.push({context:i,tokens:c,sourcePath:F(process.cwd(),o)})}catch(c){c instanceof Error?c instanceof SyntaxError?n.push({file:o,message:f.LOAD.INVALID_JSON(o,c.message)}):n.push({file:o,message:c.message}):n.push({file:o,message:"Unknown error"})}return{trees:t,errors:n}}s(cn,"loadTreesFromMemory");function W(e,t,n,r){return typeof t=="string"&&h(t)?fn(e,t,n,r):Array.isArray(t)?t.map(o=>W(e,o,n,r)):typeof t=="object"&&t!==null?Object.entries(t).reduce((i,[a,c])=>Object.assign(i,{[a]:W(`${e}.${a}`,c,n,r)}),{}):t}s(W,"resolveValue");function Fe(e,t){const n=e.slice(1,-1),r=t.pathIndex.get(n);if(!r)return;const o=t.tokens[r];if(!(!o||!("$value"in o))){if(o.$type)return o.$type;if(typeof o.$value=="string"&&h(o.$value))return Fe(o.$value,t)}}s(Fe,"inferTypeFromReference");function un(e){const t={},n=new Set,r=[];for(const[o,i]of Object.entries(e.tokens))try{if(!("$value"in i)){t[o]=i;continue}const a=i;let c=a.$type;!c&&typeof a.$value=="string"&&h(a.$value)&&(c=Fe(a.$value,e)),t[o]={...a,...c?{$type:c}:{},$resolvedValue:W(a.$path,a.$value,e,n)}}catch(a){const c=a instanceof Error?a.message:String(a),l=i,p=l.$path,m=l.$source;let d,I;c.includes("Circular reference detected")?(d="circular",I=c):c.includes("Reference not found")?(d="missing",I=c):(d="type-mismatch",I=f.RESOLVE.TYPE_MISMATCH(p)),r.push({type:d,path:p,source:m,message:I})}return{resolved:t,errors:r}}s(un,"resolve");function fn(e,t,n,r){const o=t.slice(1,-1),i=n.pathIndex.get(o);if(!i)throw new Error(f.RESOLVE.REFERENCE_NOT_FOUND(o,e));if(r.has(i)){const l=n.tokens[i];throw!l||!("$path"in l)?new Error(f.RESOLVE.REFERENCE_NOT_FOUND(o,e)):new Error(f.RESOLVE.CIRCULAR_REFERENCE(e,l.$path))}const a=n.tokens[i];if(!a||!("$value"in a))throw new Error(f.RESOLVE.REFERENCE_NOT_FOUND(o,e));r.add(i);const c=W(i,a.$value,n,r);return r.delete(i),c}s(fn,"resolveReferenceChain");function S(e){return{success:!0,value:e}}s(S,"success");function g(e){return{success:!1,error:e}}s(g,"error");function se(e){if(typeof e!="object"||e===null)return!1;const t=e;return!(typeof t.colorSpace!="string"||!["oklch","display-p3","srgb","hsl"].includes(t.colorSpace)||!Array.isArray(t.components)||t.components.length!==3||!t.components.every(r=>typeof r=="number"||r==="none")||t.alpha!==void 0&&typeof t.alpha!="number"||t.hex!==void 0&&typeof t.hex!="string")}s(se,"isDTCGColorValue");function B(e){const t=[],n=["oklch","display-p3","srgb","hsl"];if(n.includes(e.colorSpace)||t.push(`Unsupported colorSpace: "${e.colorSpace}". Supported color spaces: ${n.join(", ")}.`),!Array.isArray(e.components)||e.components.length!==3)t.push("Components must be an array of exactly 3 numbers.");else if(e.components.forEach((r,o)=>{r!=="none"&&(typeof r!="number"||!Number.isFinite(r))&&t.push(`Component ${o} must be a finite number or "none".`)}),e.colorSpace==="oklch"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>1)&&t.push("OKLCH Lightness (L) must be between 0 and 1 or 'none'."),o!=="none"&&o<0&&t.push("OKLCH Chroma (C) must be >= 0 or 'none'."),i!=="none"&&(i<0||i>=360)&&t.push("OKLCH Hue (H) must be between 0 and 360 (exclusive) or 'none'.")}else if(e.colorSpace==="display-p3"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>1)&&t.push("Display P3 Red component must be between 0 and 1 or 'none'."),o!=="none"&&(o<0||o>1)&&t.push("Display P3 Green component must be between 0 and 1 or 'none'."),i!=="none"&&(i<0||i>1)&&t.push("Display P3 Blue component must be between 0 and 1 or 'none'.")}else if(e.colorSpace==="srgb"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>1)&&t.push("sRGB Red component must be between 0 and 1 or 'none'."),o!=="none"&&(o<0||o>1)&&t.push("sRGB Green component must be between 0 and 1 or 'none'."),i!=="none"&&(i<0||i>1)&&t.push("sRGB Blue component must be between 0 and 1 or 'none'.")}else if(e.colorSpace==="hsl"){const[r,o,i]=e.components;r!=="none"&&(r<0||r>=360)&&t.push("HSL Hue must be between 0 and 360 (exclusive) or 'none'."),o!=="none"&&(o<0||o>100)&&t.push("HSL Saturation must be between 0 and 100 or 'none'."),i!=="none"&&(i<0||i>100)&&t.push("HSL Lightness must be between 0 and 100 or 'none'.")}return e.alpha!==void 0&&(typeof e.alpha!="number"||!Number.isFinite(e.alpha)?t.push("Alpha must be a finite number."):(e.alpha<0||e.alpha>1)&&t.push("Alpha must be between 0 and 1.")),t}s(B,"validateDTCGColorValue");function ln(e){const t=B(e);return t.length>0?g(t.join(", ")):S(e)}s(ln,"validateDTCGColorValueResult");function pn(e){const t=ln(e);if(!t.success)return t;const[n,r,o]=e.components,i=e.alpha,a=n==="none"?"none":Number(n.toFixed(4)),c=r==="none"?"none":Number(r.toFixed(4)),l=o==="none"?"none":Number(o.toFixed(4));if(i!==void 0&&i!==1){const p=Number(i.toFixed(4));return S(`oklch(${a} ${c} ${l} / ${p})`)}return S(`oklch(${a} ${c} ${l})`)}s(pn,"formatDTCGColorToOKLCH");const dn={isObject:s(e=>typeof e=="object"&&e!==null&&!Array.isArray(e),"isObject")};function y(e,t,n,r){if(h(t))return[];switch(e.type){case"object":return hn(e,t,n,r);case"union":return In(e,t,n,r);case"array":return En(e,t,n,r);default:return mn(e,t,n,r)}}s(y,"validateSchema");function mn(e,t,n,r){return e.type!==typeof t?[{path:n,message:e.errorMessage?.(t,n)||f.VALIDATE.INVALID_TYPE(e.type,t,n),source:r}]:e.validate?.(t,n,r)??[]}s(mn,"validateSimpleValue");function hn(e,t,n,r){if(!dn.isObject(t))return[{path:n,message:e.errorMessage?.(t,n)||f.VALIDATE.INVALID_TYPE("object",t,n),source:r}];const o=[],i=t;if(e.required)for(const a of e.required)a in i||o.push({path:`${n}.${a}`,message:f.VALIDATE.MISSING_REQUIRED_PROPERTY(a,n),source:r});for(const[a,c]of Object.entries(e.properties))a in i&&o.push(...y(c,i[a],`${n}.${a}`,r));return o}s(hn,"validateObject");function In(e,t,n,r){let o=[],i=Number.POSITIVE_INFINITY;for(const a of e.oneOf){if(a.type==="string"&&typeof t!="string"||a.type==="object"&&typeof t!="object")continue;const c=y(a,t,n,r);if(c.length===0)return a.validate?.(t,n,r)??[];c.length<i&&(o=c,i=c.length)}return i===Number.POSITIVE_INFINITY?[{path:n,message:f.VALIDATE.INVALID_TYPE(e.oneOf.map(a=>a.type).join(" or "),t,n),source:r}]:o}s(In,"validateUnion");function En(e,t,n,r){return Array.isArray(t)?e.validate?.(t,n,r)??[]:[{path:n,message:e.errorMessage?.(t,n)||f.VALIDATE.INVALID_TYPE("array",t,n),source:r}]}s(En,"validateArray");const Y={schema:{type:"union",oneOf:[{type:"string",validate:s((e,t,n)=>/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/.test(e)?[]:[{path:t,message:f.VALIDATE.INVALID_COLOR(e,t),source:n}],"validate")},{type:"object",required:["colorSpace","components"],properties:{colorSpace:{type:"string"},components:{type:"array"},alpha:{type:"number"},hex:{type:"string"}},validate:s((e,t,n)=>se(e)?B(e).map(o=>({path:t,message:`Invalid color at ${t}: ${o}`,source:n})):[{path:t,message:f.VALIDATE.INVALID_COLOR(e,t),source:n}],"validate")}]}};function yn(e,t,n){return y(Y.schema,e,t,n)}s(yn,"validateColor");const H={schema:{type:"number",errorMessage:s((e,t)=>f.VALIDATE.INVALID_NUMBER(e,t),"errorMessage"),validate:s((e,t,n)=>typeof e!="number"||Number.isNaN(e)?[{path:t,message:f.VALIDATE.INVALID_NUMBER(e,t),source:n}]:[],"validate")}};function $n(e,t,n){return y(H.schema,e,t,n)}s($n,"validateNumber");const N={schema:{type:"object",errorMessage:s((e,t)=>f.VALIDATE.INVALID_DIMENSION(e,t),"errorMessage"),properties:{value:H.schema,unit:{type:"string",validate:s((e,t,n)=>typeof e!="string"||!["px","rem"].includes(e)?[{path:t,message:f.VALIDATE.INVALID_DIMENSION_UNIT(e,t),source:n}]:[],"validate")}},required:["value","unit"]}};function gn(e,t,n){return y(N.schema,e,t,n)}s(gn,"validateDimension");const Nn=["solid","dashed","dotted","double","groove","ridge","outset","inset"],bn=["round","butt","square"],Sn={type:"object",errorMessage:s((e,t)=>f.VALIDATE.INVALID_STROKE_STYLE(e,t),"errorMessage"),properties:{dashArray:{type:"array",validate:s((e,t,n)=>{const r=e,o=[];return r.forEach((i,a)=>{typeof i!="string"&&o.push(...y(N.schema,i,`${t}.${a}`,n))}),o},"validate")},lineCap:{type:"string",validate:s((e,t,n)=>bn.includes(e)?[]:[{path:t,message:f.VALIDATE.INVALID_STROKE_LINE_CAP(e,t),source:n}],"validate")}},required:["dashArray","lineCap"]},Ce={schema:{type:"union",oneOf:[{type:"string",validate:s((e,t,n)=>!Nn.includes(e)&&typeof e=="string"?[{path:t,message:f.VALIDATE.INVALID_STROKE_STYLE(e,t),source:n}]:[],"validate")},Sn]}};function Tn(e,t,n){return y(Ce.schema,e,t,n)}s(Tn,"validateStrokeStyle");const On={schema:{type:"object",properties:{color:Y.schema,width:N.schema,style:Ce.schema},required:["color","width","style"],errorMessage:s((e,t)=>f.VALIDATE.INVALID_BORDER(e,t),"errorMessage")}};function An(e,t,n){return y(On.schema,e,t,n)}s(An,"validateBorder");const we={schema:{type:"array",errorMessage:s((e,t)=>f.VALIDATE.INVALID_CUBIC_BEZIER(e,t),"errorMessage"),validate:s((e,t,n)=>{const r=e;if(r.length!==4||!r.every(a=>typeof a=="number"))return[{path:t,message:f.VALIDATE.INVALID_CUBIC_BEZIER(e,t),source:n}];const[o,,i]=r;return o<0||o>1||i<0||i>1?[{path:t,message:f.VALIDATE.INVALID_CUBIC_BEZIER(e,t),source:n}]:[]},"validate")}};function Rn(e,t,n){return y(we.schema,e,t,n)}s(Rn,"validateCubicBezier");const Dn=["ms","s"],ie={schema:{type:"object",errorMessage:s((e,t)=>f.VALIDATE.INVALID_DURATION(e,t),"errorMessage"),properties:{value:H.schema,unit:{type:"string",validate:s((e,t,n)=>Dn.includes(e)?[]:[{path:t,message:f.VALIDATE.INVALID_DURATION_UNIT(e,t),source:n}],"validate")}},required:["value","unit"]}};function _n(e,t,n){return y(ie.schema,e,t,n)}s(_n,"validateDuration");const Ln={schema:{type:"object",errorMessage:s((e,t)=>f.VALIDATE.INVALID_FLUID_DIMENSION(e,t),"errorMessage"),properties:{min:N.schema,max:N.schema},required:["min","max"]}};function vn(e,t,n){return y(Ln.schema,e,t,n)}s(vn,"validateFluidDimension");const Ve={schema:{type:"union",oneOf:[{type:"string",errorMessage:s((e,t)=>f.VALIDATE.INVALID_FONT_FAMILY(e,t),"errorMessage")},{type:"array",errorMessage:s((e,t)=>f.VALIDATE.INVALID_FONT_FAMILY(e,t),"errorMessage"),validate:s((e,t,n)=>e.every(o=>typeof o=="string")?[]:[{path:t,message:f.VALIDATE.INVALID_FONT_FAMILY(e,t),source:n}],"validate")}],errorMessage:s((e,t)=>f.VALIDATE.INVALID_FONT_FAMILY(e,t),"errorMessage")}};function xn(e,t,n){return y(Ve.schema,e,t,n)}s(xn,"validateFontFamily");const Fn=["thin","hairline","extra-light","ultra-light","light","normal","regular","book","medium","semi-bold","demi-bold","bold","extra-bold","ultra-bold","black","heavy","extra-black","ultra-black"],ke={schema:{type:"union",errorMessage:s((e,t)=>f.VALIDATE.INVALID_FONT_WEIGHT(e,t),"errorMessage"),oneOf:[{type:"number",errorMessage:s((e,t)=>f.VALIDATE.INVALID_FONT_WEIGHT(e,t),"errorMessage"),validate:s((e,t,n)=>e<1||e>1e3?[{path:t,message:f.VALIDATE.INVALID_FONT_WEIGHT(e,t),source:n}]:[],"validate")},{type:"string",errorMessage:s((e,t)=>f.VALIDATE.INVALID_FONT_WEIGHT(e,t),"errorMessage"),validate:s((e,t,n)=>Fn.includes(e.toLowerCase())?[]:[{path:t,message:f.VALIDATE.INVALID_FONT_WEIGHT(e,t),source:n}],"validate")}]}};function Cn(e,t,n){return y(ke.schema,e,t,n)}s(Cn,"validateFontWeight");const wn={type:"object",errorMessage:s((e,t)=>f.VALIDATE.INVALID_GRADIENT(e,t),"errorMessage"),properties:{color:Y.schema,position:{type:"number",validate:s((e,t,n)=>e<0||e>1?[{path:t,message:f.VALIDATE.INVALID_GRADIENT_STOP_POSITION(e,t),source:n}]:[],"validate")}},required:["color","position"]},Vn={schema:{type:"array",errorMessage:s((e,t)=>f.VALIDATE.INVALID_ARRAY(e,t),"errorMessage"),validate:s((e,t,n)=>{const r=e,o=[];return r.forEach((i,a)=>{o.push(...y(wn,i,`${t}[${a}]`,n))}),o},"validate")}};function kn(e,t,n){return y(Vn.schema,e,t,n)}s(kn,"validateGradient");const Me={schema:{type:"object",properties:{color:{type:"union",oneOf:[Y.schema]},offsetX:N.schema,offsetY:N.schema,blur:N.schema,spread:N.schema,inset:{type:"boolean",errorMessage:s((e,t)=>f.VALIDATE.INVALID_SHADOW_INSET(e,t),"errorMessage")}},required:["color","offsetX","offsetY","blur","spread"],errorMessage:s((e,t)=>f.VALIDATE.INVALID_SHADOW(e,t),"errorMessage")}};function Mn(e,t,n){const r=[];return Array.isArray(e)?(e.forEach((o,i)=>{r.push(...y(Me.schema,o,`${t}[${i}]`,n))}),r):y(Me.schema,e,t,n)}s(Mn,"validateShadow");const jn={schema:{type:"object",properties:{duration:ie.schema,delay:ie.schema,timingFunction:we.schema},required:["duration","delay","timingFunction"],errorMessage:s((e,t)=>f.VALIDATE.INVALID_TRANSITION(e,t),"errorMessage")}};function Pn(e,t,n){return y(jn.schema,e,t,n)}s(Pn,"validateTransition");const Un={schema:{type:"object",properties:{fontFamily:Ve.schema,fontSize:N.schema,letterSpacing:N.schema,lineHeight:H.schema,fontWeight:ke.schema},required:["fontFamily","fontSize"],errorMessage:s((e,t)=>f.VALIDATE.INVALID_TYPOGRAPHY(e,t),"errorMessage")}};function Gn(e,t,n){return y(Un.schema,e,t,n)}s(Gn,"validateTypography");const Wn={color:yn,dimension:gn,fluidDimension:vn,duration:_n,cubicBezier:Rn,fontFamily:xn,fontWeight:Cn,number:$n,strokeStyle:Tn,typography:Gn,border:An,shadow:Mn,gradient:kn,transition:Pn};function Bn(e){const t=[];for(const[n,r]of Object.entries(e.tokens)){if(typeof r!="object"||r===null||!("$type"in r)||!("$path"in r)||r.$path.startsWith("$"))continue;if(!("$value"in r)){t.push({path:r.$path,message:f.VALIDATE.MISSING_REQUIRED_PROPERTY("$value",r.$path),source:r.$source});continue}const o=Wn[r.$type];if(!o){t.push({path:r.$path,message:f.VALIDATE.UNKNOWN_TOKEN_TYPE(r.$type,r.$path),source:r.$source});continue}const i=r;t.push(...o(i.$value,i.$path,i.$source))}return t}s(Bn,"validate");async function Yn(e){const{trees:t,modifiers:n,errors:r}=await Hn(e),{tokens:o,errors:i}=gt(t),a=Bn(o),{resolved:c,errors:l}=un(o);return{trees:t,resolved:c,modifiers:n,errors:{load:r,flatten:i,validation:a,resolution:l}}}s(Yn,"loadAndResolveTokens");async function Hn(e){switch(e.type){case"memory":{const t=await cn(e.data);return{trees:t.trees,modifiers:[],errors:t.errors}}case"resolver":{const t=await an(e.resolverPath);return{trees:t.trees,modifiers:t.modifiers,errors:t.errors}}}}s(Hn,"loadTokens");function je(e){return h(e)?{value:e}:typeof e=="string"?{value:e}:{value:`${e.dashArray.map(n=>h(n)?n:`${n.value}${n.unit}`).join(" ")} ${e.lineCap}`}}s(je,"convertStrokeStyleToken");function Kn(e){if(h(e))return{value:e};const t=h(e.width)?e.width:`${e.width.value}${e.width.unit}`,n=(h(e.color),e.color),r=typeof e.style=="string"?e.style:je(e.style).value;return{value:`${t} ${r} ${n}`}}s(Kn,"convertBorderToken");function Pe(e,t="native"){return se(e)?qn(e):S(e)}s(Pe,"convertColorToString");function qn(e){switch(e.colorSpace){case"oklch":return pn(e);case"display-p3":return zn(e);case"srgb":return Jn(e);case"hsl":return Xn(e);default:return g(`Unsupported color space: ${e.colorSpace}. Supported color spaces: oklch, display-p3, srgb, hsl.`)}}s(qn,"formatDTCGColorNative");function zn(e){if(e.colorSpace!=="display-p3")return g(`Expected display-p3 color space, got: ${e.colorSpace}`);if(!Array.isArray(e.components)||e.components.length!==3)return g("Display P3 components must be an array of exactly 3 numbers [R, G, B]");const[t,n,r]=e.components,o=e.alpha;if(t!=="none"&&(t<0||t>1))return g("Display P3 Red component must be between 0 and 1 or 'none'");if(n!=="none"&&(n<0||n>1))return g("Display P3 Green component must be between 0 and 1 or 'none'");if(r!=="none"&&(r<0||r>1))return g("Display P3 Blue component must be between 0 and 1 or 'none'");if(o!==void 0&&(o<0||o>1))return g("Alpha must be between 0 and 1");const i=t==="none"?"none":Number(t.toFixed(4)),a=n==="none"?"none":Number(n.toFixed(4)),c=r==="none"?"none":Number(r.toFixed(4));if(o!==void 0&&o!==1){const l=Number(o.toFixed(4));return S(`color(display-p3 ${i} ${a} ${c} / ${l})`)}return S(`color(display-p3 ${i} ${a} ${c})`)}s(zn,"formatDTCGColorToP3");function Jn(e){if(e.colorSpace!=="srgb")return g(`Expected srgb color space, got: ${e.colorSpace}`);const t=B(e);if(t.length>0)return g(`Invalid DTCG color value: ${t.join(", ")}`);const[n,r,o]=e.components,i=e.alpha,a=n==="none"?"none":Math.round(n*255),c=r==="none"?"none":Math.round(r*255),l=o==="none"?"none":Math.round(o*255);if(i!==void 0&&i!==1){const p=Number(i.toFixed(4));return S(`rgb(${a} ${c} ${l} / ${p})`)}return S(`rgb(${a} ${c} ${l})`)}s(Jn,"formatDTCGColorToRGB");function Xn(e){if(e.colorSpace!=="hsl")return g(`Expected hsl color space, got: ${e.colorSpace}`);const t=B(e);if(t.length>0)return g(`Invalid DTCG color value: ${t.join(", ")}`);const[n,r,o]=e.components,i=e.alpha,a=n==="none"?"none":Number(n.toFixed(1)),c=r==="none"?"none":Math.round(r),l=o==="none"?"none":Math.round(o);if(i!==void 0&&i!==1){const d=Number(i.toFixed(4)),I=c==="none"?"none":`${c}%`,E=l==="none"?"none":`${l}%`;return S(`hsl(${a} ${I} ${E} / ${d})`)}const p=c==="none"?"none":`${c}%`,m=l==="none"?"none":`${l}%`;return S(`hsl(${a} ${p} ${m})`)}s(Xn,"formatDTCGColorToHSL");function Zn(e,t){if(typeof e=="string"&&h(e))return{value:e};const n=t.colorFallbackStrategy;if(se(e))return Qn(e,n);const r=Pe(e,n);return r.success?{value:r.value}:(console.warn(`[sugarcube] Failed to convert color ${typeof e=="string"?e:"DTCG color object"}: ${r.error}`),{value:typeof e=="string"?e:"#000000"})}s(Zn,"convertColorToken");function Qn(e,t){const n=Pe(e,t);if(!n.success)return console.warn(`[sugarcube] Failed to convert DTCG color: ${n.error}`),{value:"#000000"};const r=n.value;if(t==="native")return{value:r};if(e.colorSpace==="srgb"||e.colorSpace==="hsl")return{value:r};if(!e.hex)throw new Error(`${e.colorSpace} colors require a 'hex' fallback when using 'polyfill' strategy. Tip: Switch to 'native' strategy if targeting modern browsers only.`);return{value:e.hex,featureValues:[{query:er(e.colorSpace),value:r}]}}s(Qn,"convertDTCGColorToken");function er(e){switch(e){case"oklch":return"@supports (color: oklch(0 0 0))";case"display-p3":return"@supports (color: color(display-p3 1 1 1))";default:throw new Error(`No feature query defined for color space: ${e}`)}}s(er,"getFeatureQuery");function tr(e){return h(e)?{value:e}:{value:`cubic-bezier(${e.join(", ")})`}}s(tr,"convertCubicBezierToken");function nr(e){return h(e)?{value:e}:{value:`${e.value}${e.unit}`}}s(nr,"convertDimensionToken");function rr(e){return h(e)?{value:e}:{value:`${e.value}${e.unit}`}}s(rr,"convertDurationToken");function Ue(e,t=16){return e.unit==="px"?e.value:e.value*t}s(Ue,"normalizeToPixels");function or(e,t){const{min:n,max:r}=e,o=t.fluidConfig,i=16,a=Ue(n,i),c=Ue(r,i),l=o.min,p=o.max;if(a===c)return{value:`${a/i}rem`};const m=a/i,d=c/i,I=l/i,E=p/i,$=(d-m)/(E-I),le=-1*I*$+m;return{value:`clamp(${m}rem, ${le.toFixed(2)}rem + ${($*100).toFixed(2)}vw, ${d}rem)`}}s(or,"convertFluidDimension");function sr(e,t){return h(e)?{value:e}:or(e,t)}s(sr,"convertFluidDimensionToken");function K(e){return["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","emoji","math","fangsong"].includes(e.toLowerCase())?e:/[\s'"!@#$%^&*()=+[\]{};:|\\/,.<>?~]/.test(e)?`"${e}"`:e}s(K,"quoteFont");function ir(e){return h(e)?{value:e}:{value:Array.isArray(e)?e.map(n=>K(n)).join(", "):K(e)}}s(ir,"convertFontFamilyToken");const ar={thin:100,hairline:100,"extra-light":200,"ultra-light":200,light:300,normal:400,regular:400,book:400,medium:500,"semi-bold":600,"demi-bold":600,bold:700,"extra-bold":800,"ultra-bold":800,black:900,heavy:900,"extra-black":950,"ultra-black":950};function Ge(e){return h(e)?{value:e}:typeof e=="number"?{value:e}:{value:ar[e.toLowerCase()]??e}}s(Ge,"convertFontWeightToken");function cr(e){return h(e)?{value:e}:{value:`linear-gradient(${e.map(n=>{const r=(h(n.color),n.color),o=h(n.position)?n.position:`${n.position*100}`;return`${r} ${o}%`}).join(", ")})`}}s(cr,"convertGradientToken");function ur(e){return h(e)?{value:e}:{value:e}}s(ur,"convertNumberToken");function We(e){const t=h(e.offsetX)?e.offsetX:`${e.offsetX.value}${e.offsetX.unit}`,n=h(e.offsetY)?e.offsetY:`${e.offsetY.value}${e.offsetY.unit}`,r=h(e.blur)?e.blur:`${e.blur.value}${e.blur.unit}`,o=h(e.spread)?e.spread:`${e.spread.value}${e.spread.unit}`,i=(h(e.color),e.color);return`${e.inset?"inset ":""}${t} ${n} ${r} ${o} ${i}`}s(We,"convertSingleShadow");function fr(e){return h(e)?{value:e}:Array.isArray(e)?{value:e.map(We).join(", ")}:{value:We(e)}}s(fr,"convertShadowToken");function Be(e){return e?`${e.value}${e.unit}`:"0ms"}s(Be,"formatDuration");function lr(e){if(h(e))return{value:e};const t=h(e.duration)?e.duration:Be(e.duration),n=h(e.timingFunction)?e.timingFunction:`cubic-bezier(${e.timingFunction.join(", ")})`,r=e.delay&&(h(e.delay)?e.delay:Be(e.delay));return{value:[t,n,r].filter(Boolean).join(" ")}}s(lr,"convertTransitionToken");function pr(e){if(h(e))return{"font-family":e,"font-size":e};const t={"font-family":h(e.fontFamily)?e.fontFamily:Array.isArray(e.fontFamily)?e.fontFamily.map(n=>K(n)).join(", "):K(e.fontFamily),"font-size":h(e.fontSize)?e.fontSize:`${e.fontSize.value}${e.fontSize.unit}`};return e.fontWeight&&(t["font-weight"]=h(e.fontWeight)?e.fontWeight:Ge(e.fontWeight).value),e.letterSpacing&&(t["letter-spacing"]=h(e.letterSpacing)?e.letterSpacing:`${e.letterSpacing.value}${e.letterSpacing.unit}`),e.lineHeight&&(t["line-height"]=(h(e.lineHeight),e.lineHeight)),t}s(pr,"convertTypographyToken");const Ye={duration:rr,number:ur,cubicBezier:tr,color:Zn,dimension:nr,fluidDimension:sr,typography:pr,border:Kn,shadow:fr,gradient:cr,transition:lr,strokeStyle:je,fontFamily:ir,fontWeight:Ge};function dr(e,t){const n=Ye[e.$type];return{...e.$description?{$description:e.$description}:{},...e.$extensions?{$extensions:e.$extensions}:{},$type:e.$type,$value:e.$value,$path:e.$path,$source:e.$source,$originalPath:e.$originalPath,$resolvedValue:e.$resolvedValue,$cssProperties:n(e.$value,t)}}s(dr,"convertSingleToken");function mr(e,t,n){const r={};for(const[o,i]of Object.entries(e)){if(!i||typeof i!="object")continue;if(!("$type"in i)){r[o]={...i.$description?{$description:i.$description}:{},...i.$extensions?{$extensions:i.$extensions}:{}};continue}if(n?.(i.$path)||!Ye[i.$type])continue;const a={fluidConfig:t.transforms.fluid,colorFallbackStrategy:t.transforms.colorFallbackStrategy,path:i.$path,resolvedTokens:e};r[o]=dr(i,a)}return r}s(mr,"convertTokens");function hr(e,t,n){const r={};for(const[o,i]of Object.entries(e))r[o]=mr(i,t,n);return r}s(hr,"convert");function Ir(e,t){const n={},r=new Set;for(const o of e){const i=o.context??"default";r.add(i)}for(const o of r)n[o]={};for(const o of e){const{context:i,tokens:a}=o,c=i??"default";n[c]||(n[c]={});for(const[l,p]of Object.entries(a))n[c][l]=p}return{tokens:n,defaultContext:t}}s(Ir,"normalizeTokens");function Er(e,t){const n=new Map;for(const[r,o]of Object.entries(t)){if(!("$source"in o)){for(const c of e){const l=c.context??"";n.has(l)||n.set(l,{});const p=n.get(l);p&&(p[r]=o)}continue}const i=o.$source.context??"";n.has(i)||n.set(i,{});const a=n.get(i);a&&(a[r]=o)}return e.map(r=>{const o=r.context??"",i=n.get(o)||{};return{context:r.context,tokens:i}})}s(Er,"processTrees");async function yr(e,t,n,r){const o=Er(e,t),{tokens:i}=Ir(o);return hr(i,n,r?l=>r.some(p=>p.path===l||p.path.startsWith(`${l}.`)):void 0)}s(yr,"processAndConvertTokens");function $r(e){return Object.entries(e).sort(([t],[n])=>t.localeCompare(n))}s($r,"deterministicEntries");const He=new Map;function gr(e){const t=He.get(e);if(t)return t;const n=e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z])(?=[a-z])/g,"$1-$2").toLowerCase();return He.set(e,n),n}s(gr,"toKebabCase");function ae(e){return e.split(".").join("-")}s(ae,"formatCSSVarPath");function ce(e){return typeof e=="number"?e:typeof e!="string"?(console.warn("[sugarcube] Unexpected value type in convertReferenceToCSSVar:",e),String(e)):e.replace(/\{([^}]+)\}/g,(t,n)=>`var(--${n.split(".").map(gr).join("-")})`)}s(ce,"convertReferenceToCSSVar");function Nr(e){const t=e.$cssProperties;if("value"in t)return{name:`--${ae(e.$path)}`,value:ce(t.value)}}s(Nr,"generateSingleVariable");function br(e){return Object.entries(e.$cssProperties).filter(([t,n])=>n!==void 0).map(([t,n])=>({name:`--${ae(e.$path)}-${t}`,value:ce(n)}))}s(br,"generateTypographyVariables");function Ke(e){if(e.$type!=="color")return[];const t=e.$cssProperties;if(!("featureValues"in t))return[];const n=new Map;for(const r of t.featureValues||[]){n.has(r.query)||n.set(r.query,[]);const o=n.get(r.query);o&&o.push({name:`--${ae(e.$path)}`,value:ce(r.value)})}return Array.from(n.entries()).map(([r,o])=>({query:r,vars:o}))}s(Ke,"generateFeatureVariables");function qe(e){const t=[`${e.selector} {`];if(e.comment&&t.push(` /* ${e.comment} */`),e.vars.length>0){const n=e.vars.map(r=>` ${r.name}: ${r.value};`).join(`
15
15
  `);t.push(n)}return t.push("}"),t.join(`
16
- `)}s(Ye,"generateCSSBlock");function $r(e){const t=[];e.root.vars.length>0&&t.push(Ye({selector:e.root.selector,vars:e.root.vars}));for(const n of e.features){const o=Ye({selector:e.root.selector,vars:n.vars}).split(`
16
+ `)}s(qe,"generateCSSBlock");function Sr(e){const t=[];e.root.vars.length>0&&t.push(qe({selector:e.root.selector,vars:e.root.vars}));for(const n of e.features){const o=qe({selector:e.root.selector,vars:n.vars}).split(`
17
17
  `).map(i=>` ${i}`).join(`
18
18
  `);t.push(`${n.query} {
19
19
  ${o}
20
20
  }`)}return t.filter(Boolean).join(`
21
21
 
22
- `)}s($r,"convertCSSVarsToString");function gr(e){if(pt(e))return{vars:yr(e),features:Be(e)};const t=Er(e);return{vars:t?[t]:[],features:Be(e)}}s(gr,"generateVariablesForToken");function Nr(e,t,n){if(!e||e==="default")return":root";const r=e.indexOf(":");if(r!==-1){const o=e.slice(0,r),i=e.slice(r+1);return`[${t?.find(l=>l.name===o)?.attribute??`data-${o}`}="${i}"]`}return`[${n.output.themeAttribute}="${e}"]`}s(Nr,"buildSelector");async function Tr(e,t,n){const r=hr(e).filter(([m,d])=>m!=="$extensions"&&"$type"in d).map(([m,d])=>gr(d)),o=Nr(n.context,n.modifiers,t),i=r.flatMap(m=>m.vars),a=r.flatMap(m=>m.features||[]),c=new Map;for(const m of a){c.has(m.query)||c.set(m.query,[]);const d=c.get(m.query);d&&d.push(...m.vars)}const l=Array.from(c.entries()).map(([m,d])=>({query:m,vars:d})),p=$r({root:{selector:o,vars:i},features:l});return p.trim()?{output:[{path:t.output.variablesFilename,css:Sr(p)}]}:{output:[{path:t.output.variablesFilename,css:""}]}}s(Tr,"generateCSS");function Sr(e){return e.endsWith(`
22
+ `)}s(Sr,"convertCSSVarsToString");function Tr(e){if(It(e))return{vars:br(e),features:Ke(e)};const t=Nr(e);return{vars:t?[t]:[],features:Ke(e)}}s(Tr,"generateVariablesForToken");function Or(e,t,n){if(!e||e==="default")return":root";const r=e.indexOf(":");if(r!==-1){const o=e.slice(0,r),i=e.slice(r+1);return`[${t?.find(l=>l.name===o)?.attribute??`data-${o}`}="${i}"]`}return`[${n.output.themeAttribute}="${e}"]`}s(Or,"buildSelector");async function Ar(e,t,n){const r=$r(e).filter(([m,d])=>m!=="$extensions"&&"$type"in d).map(([m,d])=>Tr(d)),o=Or(n.context,n.modifiers,t),i=r.flatMap(m=>m.vars),a=r.flatMap(m=>m.features||[]),c=new Map;for(const m of a){c.has(m.query)||c.set(m.query,[]);const d=c.get(m.query);d&&d.push(...m.vars)}const l=Array.from(c.entries()).map(([m,d])=>({query:m,vars:d})),p=Sr({root:{selector:o,vars:i},features:l});return p.trim()?{output:[{path:t.output.variablesFilename,css:Rr(p)}]}:{output:[{path:t.output.variablesFilename,css:""}]}}s(Ar,"generateCSS");function Rr(e){return e.endsWith(`
23
23
  `)?e:`${e}
24
- `}s(Sr,"formatCSSVars");async function br(e,t,n){const r=t.output.variables,o=[],i=Object.entries(e).sort(([a],[c])=>!a||a==="default"?-1:!c||c==="default"?1:a.localeCompare(c));for(const[a,c]of i){const l=await Tr(c,t,{context:a,modifiers:n});l.output[0].css.trim()&&o.push(l.output[0].css)}return o.length===0?[]:[{path:`${r}/${t.output.variablesFilename}`,css:`${o.filter(Boolean).join(`
24
+ `}s(Rr,"formatCSSVars");async function Dr(e,t,n){const r=t.output.variables,o=[],i=Object.entries(e).sort(([a],[c])=>!a||a==="default"?-1:!c||c==="default"?1:a.localeCompare(c));for(const[a,c]of i){const l=await Ar(c,t,{context:a,modifiers:n});l.output[0].css.trim()&&o.push(l.output[0].css)}return o.length===0?[]:[{path:`${r}/${t.output.variablesFilename}`,css:`${o.filter(Boolean).join(`
25
25
  `).trim()}
26
- `}]}s(br,"generateSingleFile");async function Or(e,t,n){const r={};for(const[o,i]of Object.entries(e))Object.keys(i).length>0&&(r[o]=i);return{output:await br(r,t,n)}}s(Or,"generate");async function Ar(e,t,n){const{output:r}=await Or(e,t,n);return r}s(Ar,"generateCSSVariables");const L="--",A="-",Rr=["all","full"],Dr={top:"t",right:"r",bottom:"b",left:"l",x:"x",y:"y",full:"",all:""},_r={top:"block-start",right:"inline-end",bottom:"block-end",left:"inline-start",x:"inline",y:"block"};function Lr(e){return Dr[e]}s(Lr,"getDirectionAbbreviation");function He(e,t){if(t==="full"||t==="all")return e;const n=_r[t];return n?`${e}${A}${n}`:e}s(He,"getLogicalProperty");const vr=["top","right","bottom","left","x","y","full"];function xr(e){return(Array.isArray(e)?e:[e]).flatMap(n=>n==="all"?vr:[n])}s(xr,"expandDirections");function Fr(e,t){const r={color:["color"],"background-color":["color"],"border-color":["color"],"font-size":["dimension","fluidDimension"],"font-weight":["fontWeight"],"line-height":["number"],"border-radius":["dimension","fluidDimension"],"border-width":["dimension","fluidDimension"],padding:["dimension","fluidDimension"],margin:["dimension","fluidDimension"],width:["dimension","fluidDimension"],height:["dimension","fluidDimension"],gap:["dimension","fluidDimension"],"font-family":["fontFamily"],"transition-duration":["duration"],"transition-timing-function":["cubicBezier"],"border-style":["strokeStyle"],"box-shadow":["shadow"],"text-shadow":["shadow"],"background-image":["gradient"],opacity:["number"]}[t];return r?r.includes(e):!0}s(Fr,"isTokenTypeValidForProperty");const Ke=new WeakMap,D=new Map;function Cr(){D.clear()}s(Cr,"clearMatchCache");function Vr(e){const t=Ke.get(e);if(t)return t;const n=new Map;for(const r of Object.values(e)){if(!("$path"in r))continue;const o=r;n.set(o.$path,o)}return Ke.set(e,n),n}s(Vr,"buildPathIndex");function wr(e){if(e.default)return e.default;const t=Object.keys(e);return t.length>0&&t[0]?e[t[0]]:null}s(wr,"getDefaultContextTokens");function H(e,t,n){const r=`${t.source}:${t.prefix??""}:${t.property??""}:${e}`;if(D.has(r))return D.get(r)??null;const o=[t.source.replace("*",e),t.source.replace("*",e.split("-").join("."))];if(t.stripDuplicates&&t.prefix){const c=t.source.lastIndexOf(".*");if(c!==-1){const l=t.source.slice(0,c);l&&o.push(`${l}.${t.prefix}.${e}`,`${l}.${t.prefix}.${e.split("-").join(".")}`)}}const i=wr(n);if(!i)return D.set(r,null),null;const a=Vr(i);for(const c of o){const l=a.get(c);if(l){if(t.property&&l.$type&&!Fr(l.$type,t.property))continue;const p=l.$path.split(".");return D.set(r,p),p}}return D.set(r,null),null}s(H,"findMatchingToken");function ie(e,t){return t.stripDuplicates&&t.prefix&&e.startsWith(`${t.prefix}-`)?e.slice(t.prefix.length+1):e}s(ie,"stripDuplicatePrefix");function K(e,t=""){const n=e??"",r=n||t?A:"";return new RegExp(`^${n}${t}${r}(.+)$`)}s(K,"createUtilityPattern");function ae(e,t,n){return[K(t.prefix),o=>{const i=o[1];if(!i)return{};const a=ie(i,t),c={...t,property:e},l=H(a,c,n);return l?{[e]:`var(${L}${l.join(A)})`}:{}}]}s(ae,"createSimpleRule");function kr(e,t,n,r){if(n==="all")return ae(e,t,r);const o=Lr(n);return[K(t.prefix,o),a=>{const c=a[1];if(!c)return{};const l=ie(c,t),p={...t,property:e},m=H(l,p,r);return m?{[He(e,n)]:`var(${L}${m.join(A)})`}:{}}]}s(kr,"createDirectionalRule");function Mr(e,t){return[K(e),r=>{const o=r[1];if(!o)return{};for(const{property:i,config:a,direction:c,tokens:l}of t){const p=ie(o,a),m={...a,property:i},d=H(p,m,l);if(d)return c?{[He(i,c)]:`var(${L}${d.join(A)})`}:{[i]:`var(${L}${d.join(A)})`}}return{}}]}s(Mr,"createSmartRule");function jr(e,t,n){const r=t.source.indexOf("."),o=r!==-1?t.source.slice(0,r):t.source;return[K(o),a=>{const c=a[1];if(!c)return{};const l={...t,property:e},p=H(c,l,n);return p?{[e]:`var(${L}${p.join(A)})`}:{}}]}s(jr,"createDirectTokenPathRule");function Pr(e,t){if(!e?.source||typeof e.source!="string")throw new Error(u.UTILITIES.MISSING_SOURCE(t));if(e.source.includes("*")&&!e.source.endsWith(".*"))throw new Error(u.UTILITIES.INVALID_SOURCE_PATTERN(t,e.source));if(e.directions&&!Array.isArray(e.directions))throw new Error(u.UTILITIES.INVALID_DIRECTIONS(t))}s(Pr,"validateUtilityConfig");function Ur(e,t){if(!e||typeof e!="object")throw new Error(u.UTILITIES.INVALID_CONFIG_OBJECT);if(!t||typeof t!="object")throw new Error(u.UTILITIES.INVALID_TOKENS_OBJECT)}s(Ur,"validateInputs");function Gr(e,t){Ur(e,t);const n=[],r={};for(const[o,i]of Object.entries(e)){const a=Array.isArray(i)?i:[i];for(const c of a)if(Pr(c,o),c.prefix){const l=c.prefix;r[l]||(r[l]=[]),r[l].push({property:o,config:c,direction:null,tokens:t})}else{const l=jr(o,c,t);n.push(l)}}for(const[o,i]of Object.entries(r))if(i.length===1){const a=i[0];if(!a)continue;const{property:c,config:l,tokens:p}=a;if(l.directions){const m=xr(l.directions);(Array.isArray(l.directions)?l.directions:[l.directions]).includes("all")&&n.push(ae(c,l,p));for(const E of m)Rr.includes(E)||n.push(kr(c,l,E,p))}else n.push(ae(c,l,p))}else n.push(Mr(o,i));return n}s(Gr,"convertConfigToUnoRules");const v=process.env.SUGARCUBE_PERF==="true";class Wr{static{s(this,"PerfMonitor")}constructor(t=n=>void process.stderr.write(`${n}
27
- `)){this.defaultFlush=t}#n=0;#t=0;#e=Date.now();#r=null;#o=0;#s(){return Math.round(process.memoryUsage().heapUsed/1024/1024)}#i(){return new Date().toISOString().split("T")[1]?.slice(0,-1)??""}log(t,n){if(!v)return;const r=this.#i(),o=this.#s(),i=o-this.#n;this.#n=o,this.defaultFlush(`[perf ${r}] ${t} ${n?JSON.stringify(n):""} | heap: ${o}MB (${i>=0?"+":""}${i}MB)`)}trackWatcherEvent(t,n){if(!v)return;this.#t++;const r=Date.now(),o=t.split("/").slice(-3).join("/");this.log(`WATCHER EVENT #${this.#t}: ${o}`),r-this.#e>1e4&&(this.log("WATCHER STATS (last 10s)",{events:this.#t,moduleGraphSize:n}),this.#t=0,this.#e=r)}logWatcherSetup(t,n){v&&this.log("WATCHER SETUP: Adding watch pattern",{pattern:t,dir:n})}logModuleGraphStats(t,n,r){v&&this.log(`MODULE GRAPH (${r})`,{modules:t,urls:n})}startMemoryMonitor(){!v||this.#r||(this.log("PERF MONITORING ENABLED - Starting memory monitor"),this.#o=this.#s(),this.#r=setInterval(()=>{const t=this.#s(),n=t-this.#o;Math.abs(n)>5&&(this.log("MEMORY CHANGE",{from:this.#o,to:t,delta:n}),this.#o=t)},5e3))}stopMemoryMonitor(){this.#r&&(clearInterval(this.#r),this.#r=null)}[Symbol.dispose](){this.stopMemoryMonitor()}}class qe extends Map{static{s(this,"DefaultMap")}constructor(t){super(),this.factory=t}get(t){let n=super.get(t);return n===void 0&&(n=this.factory(t,this),this.set(t,n)),n}}const Br=process.env.DEBUG==="true";class Yr{static{s(this,"Instrumentation")}constructor(t=n=>void process.stderr.write(`${n}
28
- `)){this.defaultFlush=t}#n=new qe(()=>({value:0}));#t=new qe(()=>({value:0n}));#e=[];hit(t){this.#n.get(t).value++}start(t){const n=this.#e.map(o=>o.label).join("//"),r=`${n}${n.length===0?"":"//"}${t}`;this.#n.get(r).value++,this.#t.get(r),this.#e.push({id:r,label:t,namespace:n,value:process.hrtime.bigint()})}end(t){const n=process.hrtime.bigint();if(this.#e.length===0)throw new Error("Timer stack is empty");const r=this.#e.length-1,o=this.#e[r];if(!o)throw new Error("Timer stack is corrupted");if(o.label!==t)throw new Error(`Mismatched timer label: ${t}`);const i=this.#e.pop();if(!i)throw new Error("Timer stack is empty");const a=n-i.value;this.#t.get(i.id).value+=a}report(t=this.defaultFlush){const n=[];let r=!1;for(let o=this.#e.length-1;o>=0;o--){const i=this.#e[o];i&&this.end(i.label)}for(const[o,{value:i}]of this.#n.entries()){if(this.#t.has(o))continue;n.length===0&&(r=!0,n.push("Hits:"));const a=o.split("//").length;n.push(`${" ".repeat(a)}${o} \xD7 ${i}`)}if(this.#t.size>0){r&&n.push(`
26
+ `}]}s(Dr,"generateSingleFile");async function _r(e,t,n){const r={};for(const[o,i]of Object.entries(e))Object.keys(i).length>0&&(r[o]=i);return{output:await Dr(r,t,n)}}s(_r,"generate");async function Lr(e,t,n){const{output:r}=await _r(e,t,n);return r}s(Lr,"generateCSSVariables");const v="--",R="-",vr=["all","full"],xr={top:"t",right:"r",bottom:"b",left:"l",x:"x",y:"y",full:"",all:""},Fr={top:"block-start",right:"inline-end",bottom:"block-end",left:"inline-start",x:"inline",y:"block"};function Cr(e){return xr[e]}s(Cr,"getDirectionAbbreviation");function ze(e,t){if(t==="full"||t==="all")return e;const n=Fr[t];return n?`${e}${R}${n}`:e}s(ze,"getLogicalProperty");const wr=["top","right","bottom","left","x","y","full"];function Vr(e){return(Array.isArray(e)?e:[e]).flatMap(n=>n==="all"?wr:[n])}s(Vr,"expandDirections");function kr(e,t){const r={color:["color"],"background-color":["color"],"border-color":["color"],"font-size":["dimension","fluidDimension"],"font-weight":["fontWeight"],"line-height":["number"],"border-radius":["dimension","fluidDimension"],"border-width":["dimension","fluidDimension"],padding:["dimension","fluidDimension"],margin:["dimension","fluidDimension"],width:["dimension","fluidDimension"],height:["dimension","fluidDimension"],gap:["dimension","fluidDimension"],"font-family":["fontFamily"],"transition-duration":["duration"],"transition-timing-function":["cubicBezier"],"border-style":["strokeStyle"],"box-shadow":["shadow"],"text-shadow":["shadow"],"background-image":["gradient"],opacity:["number"]}[t];return r?r.includes(e):!0}s(kr,"isTokenTypeValidForProperty");const Je=new WeakMap,L=new Map;function Mr(){L.clear()}s(Mr,"clearMatchCache");function jr(e){const t=Je.get(e);if(t)return t;const n=new Map;for(const r of Object.values(e)){if(!("$path"in r))continue;const o=r;n.set(o.$path,o)}return Je.set(e,n),n}s(jr,"buildPathIndex");function Pr(e){if(e.default)return e.default;const t=Object.keys(e);return t.length>0&&t[0]?e[t[0]]:null}s(Pr,"getDefaultContextTokens");function q(e,t,n){const r=`${t.source}:${t.prefix??""}:${t.property??""}:${e}`;if(L.has(r))return L.get(r)??null;const o=[t.source.replace("*",e),t.source.replace("*",e.split("-").join("."))];if(t.stripDuplicates&&t.prefix){const c=t.source.lastIndexOf(".*");if(c!==-1){const l=t.source.slice(0,c);l&&o.push(`${l}.${t.prefix}.${e}`,`${l}.${t.prefix}.${e.split("-").join(".")}`)}}const i=Pr(n);if(!i)return L.set(r,null),null;const a=jr(i);for(const c of o){const l=a.get(c);if(l){if(t.property&&l.$type&&!kr(l.$type,t.property))continue;const p=l.$path.split(".");return L.set(r,p),p}}return L.set(r,null),null}s(q,"findMatchingToken");function ue(e,t){return t.stripDuplicates&&t.prefix&&e.startsWith(`${t.prefix}-`)?e.slice(t.prefix.length+1):e}s(ue,"stripDuplicatePrefix");function z(e,t=""){const n=e??"",r=n||t?R:"";return new RegExp(`^${n}${t}${r}(.+)$`)}s(z,"createUtilityPattern");function fe(e,t,n){return[z(t.prefix),o=>{const i=o[1];if(!i)return{};const a=ue(i,t),c={...t,property:e},l=q(a,c,n);return l?{[e]:`var(${v}${l.join(R)})`}:{}}]}s(fe,"createSimpleRule");function Ur(e,t,n,r){if(n==="all")return fe(e,t,r);const o=Cr(n);return[z(t.prefix,o),a=>{const c=a[1];if(!c)return{};const l=ue(c,t),p={...t,property:e},m=q(l,p,r);return m?{[ze(e,n)]:`var(${v}${m.join(R)})`}:{}}]}s(Ur,"createDirectionalRule");function Gr(e,t){return[z(e),r=>{const o=r[1];if(!o)return{};for(const{property:i,config:a,direction:c,tokens:l}of t){const p=ue(o,a),m={...a,property:i},d=q(p,m,l);if(d)return c?{[ze(i,c)]:`var(${v}${d.join(R)})`}:{[i]:`var(${v}${d.join(R)})`}}return{}}]}s(Gr,"createSmartRule");function Wr(e,t,n){const r=t.source.indexOf("."),o=r!==-1?t.source.slice(0,r):t.source;return[z(o),a=>{const c=a[1];if(!c)return{};const l={...t,property:e},p=q(c,l,n);return p?{[e]:`var(${v}${p.join(R)})`}:{}}]}s(Wr,"createDirectTokenPathRule");function Br(e,t){if(!e?.source||typeof e.source!="string")throw new Error(f.UTILITIES.MISSING_SOURCE(t));if(e.source.includes("*")&&!e.source.endsWith(".*"))throw new Error(f.UTILITIES.INVALID_SOURCE_PATTERN(t,e.source));if(e.directions&&!Array.isArray(e.directions))throw new Error(f.UTILITIES.INVALID_DIRECTIONS(t))}s(Br,"validateUtilityConfig");function Yr(e,t){if(!e||typeof e!="object")throw new Error(f.UTILITIES.INVALID_CONFIG_OBJECT);if(!t||typeof t!="object")throw new Error(f.UTILITIES.INVALID_TOKENS_OBJECT)}s(Yr,"validateInputs");function Hr(e,t){Yr(e,t);const n=[],r={};for(const[o,i]of Object.entries(e)){const a=Array.isArray(i)?i:[i];for(const c of a)if(Br(c,o),c.prefix){const l=c.prefix;r[l]||(r[l]=[]),r[l].push({property:o,config:c,direction:null,tokens:t})}else{const l=Wr(o,c,t);n.push(l)}}for(const[o,i]of Object.entries(r))if(i.length===1){const a=i[0];if(!a)continue;const{property:c,config:l,tokens:p}=a;if(l.directions){const m=Vr(l.directions);(Array.isArray(l.directions)?l.directions:[l.directions]).includes("all")&&n.push(fe(c,l,p));for(const E of m)vr.includes(E)||n.push(Ur(c,l,E,p))}else n.push(fe(c,l,p))}else n.push(Gr(o,i));return n}s(Hr,"convertConfigToUnoRules");const x=process.env.SUGARCUBE_PERF==="true";class Kr{static{s(this,"PerfMonitor")}constructor(t=n=>void process.stderr.write(`${n}
27
+ `)){this.defaultFlush=t}#n=0;#t=0;#e=Date.now();#r=null;#o=0;#s(){return Math.round(process.memoryUsage().heapUsed/1024/1024)}#i(){return new Date().toISOString().split("T")[1]?.slice(0,-1)??""}log(t,n){if(!x)return;const r=this.#i(),o=this.#s(),i=o-this.#n;this.#n=o,this.defaultFlush(`[perf ${r}] ${t} ${n?JSON.stringify(n):""} | heap: ${o}MB (${i>=0?"+":""}${i}MB)`)}trackWatcherEvent(t,n){if(!x)return;this.#t++;const r=Date.now(),o=t.split("/").slice(-3).join("/");this.log(`WATCHER EVENT #${this.#t}: ${o}`),r-this.#e>1e4&&(this.log("WATCHER STATS (last 10s)",{events:this.#t,moduleGraphSize:n}),this.#t=0,this.#e=r)}logWatcherSetup(t,n){x&&this.log("WATCHER SETUP: Adding watch pattern",{pattern:t,dir:n})}logModuleGraphStats(t,n,r){x&&this.log(`MODULE GRAPH (${r})`,{modules:t,urls:n})}startMemoryMonitor(){!x||this.#r||(this.log("PERF MONITORING ENABLED - Starting memory monitor"),this.#o=this.#s(),this.#r=setInterval(()=>{const t=this.#s(),n=t-this.#o;Math.abs(n)>5&&(this.log("MEMORY CHANGE",{from:this.#o,to:t,delta:n}),this.#o=t)},5e3))}stopMemoryMonitor(){this.#r&&(clearInterval(this.#r),this.#r=null)}[Symbol.dispose](){this.stopMemoryMonitor()}}class Xe extends Map{static{s(this,"DefaultMap")}constructor(t){super(),this.factory=t}get(t){let n=super.get(t);return n===void 0&&(n=this.factory(t,this),this.set(t,n)),n}}const qr=process.env.DEBUG==="true";class zr{static{s(this,"Instrumentation")}constructor(t=n=>void process.stderr.write(`${n}
28
+ `)){this.defaultFlush=t}#n=new Xe(()=>({value:0}));#t=new Xe(()=>({value:0n}));#e=[];hit(t){this.#n.get(t).value++}start(t){const n=this.#e.map(o=>o.label).join("//"),r=`${n}${n.length===0?"":"//"}${t}`;this.#n.get(r).value++,this.#t.get(r),this.#e.push({id:r,label:t,namespace:n,value:process.hrtime.bigint()})}end(t){const n=process.hrtime.bigint();if(this.#e.length===0)throw new Error("Timer stack is empty");const r=this.#e.length-1,o=this.#e[r];if(!o)throw new Error("Timer stack is corrupted");if(o.label!==t)throw new Error(`Mismatched timer label: ${t}`);const i=this.#e.pop();if(!i)throw new Error("Timer stack is empty");const a=n-i.value;this.#t.get(i.id).value+=a}report(t=this.defaultFlush){const n=[];let r=!1;for(let o=this.#e.length-1;o>=0;o--){const i=this.#e[o];i&&this.end(i.label)}for(const[o,{value:i}]of this.#n.entries()){if(this.#t.has(o))continue;n.length===0&&(r=!0,n.push("Hits:"));const a=o.split("//").length;n.push(`${" ".repeat(a)}${o} \xD7 ${i}`)}if(this.#t.size>0){r&&n.push(`
29
29
  Timers:`);for(const[o,{value:i}]of this.#t){const a=o.split("//").length,c=`${(Number(i)/1e6).toFixed(2)}ms`;n.push(`${" ".repeat(a-1)}${o.split("//").pop()} [${c}] ${this.#n.get(o).value===1?"":`\xD7 ${this.#n.get(o).value}`}`.trimEnd())}}t(`
30
30
  ${n.join(`
31
31
  `)}
32
- `)}[Symbol.dispose](){Br&&this.report()}}async function Hr(e){for(const t of e)try{await fe(z(t.path),{recursive:!0}),await pe(t.path,t.css,"utf-8")}catch(n){throw new Error(`Failed to write CSS file ${t.path}: ${n instanceof Error?n.message:"Unknown error"}`)}return e}s(Hr,"writeCSSVariablesToDisk");async function Kr(e){for(const t of e)try{await fe(z(t.path),{recursive:!0}),await pe(t.path,t.css,"utf-8")}catch(n){throw new Error(`Failed to write utility CSS file ${t.path}: ${n instanceof Error?n.message:"Unknown error"}`)}return e}s(Kr,"writeCSSUtilitiesToDisk");export{b as DEFAULT_CONFIG,Yr as Instrumentation,Wr as PerfMonitor,Cr as clearMatchCache,it as configFileExists,Gr as convertConfigToUnoRules,tt as defineConfig,C as fillDefaults,J as findResolverDocument,Ar as generateCSSVariables,st as isNoConfigError,Un as loadAndResolveTokens,lt as loadInternalConfig,ut as loadSugarcubeConfig,mr as processAndConvertTokens,ot as validateConfig,Kr as writeCSSUtilitiesToDisk,Hr as writeCSSVariablesToDisk};
32
+ `)}[Symbol.dispose](){qr&&this.report()}}async function Jr(e){for(const t of e)try{await de(C(t.path),{recursive:!0}),await me(t.path,t.css,"utf-8")}catch(n){throw new Error(`Failed to write CSS file ${t.path}: ${n instanceof Error?n.message:"Unknown error"}`)}return e}s(Jr,"writeCSSVariablesToDisk");async function Xr(e){for(const t of e)try{await de(C(t.path),{recursive:!0}),await me(t.path,t.css,"utf-8")}catch(n){throw new Error(`Failed to write utility CSS file ${t.path}: ${n instanceof Error?n.message:"Unknown error"}`)}return e}s(Xr,"writeCSSUtilitiesToDisk");export{O as DEFAULT_CONFIG,zr as Instrumentation,Kr as PerfMonitor,Mr as clearMatchCache,ut as configFileExists,Hr as convertConfigToUnoRules,ot as defineConfig,mt as extractFileRefs,w as fillDefaults,Z as findResolverDocument,Lr as generateCSSVariables,ct as isNoConfigError,Yn as loadAndResolveTokens,dt as loadInternalConfig,pt as loadSugarcubeConfig,yr as processAndConvertTokens,at as validateConfig,Xr as writeCSSUtilitiesToDisk,Jr as writeCSSVariablesToDisk};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sugarcube-sh/core",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": false
@@ -45,8 +45,8 @@
45
45
  "vitest": "^4.0.18"
46
46
  },
47
47
  "dependencies": {
48
- "jiti": "2.4.2",
49
- "pathe": "2.0.3",
48
+ "jiti": "^2.6.1",
49
+ "pathe": "^2.0.3",
50
50
  "tinyglobby": "^0.2.9",
51
51
  "zod": "^3.23.8"
52
52
  },