{"version":3,"sources":["../../src/syntax-highlighter/spec.ts","../../src/syntax-highlighter/monaco.ts","../../src/syntax-highlighter/prism.ts"],"names":["ReservedKeyword","StringSymbol","NumberSymbol","NumberWithUnitSymbol","ColorSymbol","ListSymbol","DictionarySymbol","BooleanSymbol","SupportedFormats","Operations","__name"],"mappings":"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","file":"syntax-highlighting.cjs","sourcesContent":["/**\n * Shared syntax highlighting patterns for TokenScript language\n * Used by both Monaco Editor (VSCode) and Prism.js implementations\n */\n\nimport {\n  BooleanSymbol,\n  ColorSymbol,\n  DictionarySymbol,\n  ListSymbol,\n  NumberSymbol,\n  NumberWithUnitSymbol,\n  StringSymbol,\n} from \"@interpreter/symbols\";\nimport { Operations, ReservedKeyword, SupportedFormats } from \"@src/types\";\n\nexport const KEYWORDS = Object.values(ReservedKeyword);\n\nexport const TYPES = [\n  StringSymbol.type,\n  NumberSymbol.type,\n  NumberWithUnitSymbol.type,\n  ColorSymbol.type,\n  ListSymbol.type,\n  DictionarySymbol.type,\n  BooleanSymbol.type,\n] as const;\n\nexport const BUILTIN_FUNCTIONS = [\n  \"rgb\",\n  \"hsl\",\n  \"srgb\",\n  \"lrgb\",\n  \"hex\",\n  \"oklch\",\n  \"oklchRamp\",\n  \"lighten\",\n  \"darken\",\n  \"saturate\",\n  \"desaturate\",\n  \"spin\",\n  \"mix\",\n  \"round_to\",\n  \"snap\",\n  \"remap\",\n  \"pow\",\n  \"linear-gradient\",\n  \"type\",\n] as const;\n\nexport const UNITS = Object.values(SupportedFormats);\n\nexport const OPERATORS = [\n  ...Object.values(Operations),\n  \"=\",\n  \">\",\n  \"<\",\n  \":\",\n  \"==\",\n  \"<=\",\n  \">=\",\n  \"!=\",\n] as const;\n\nconst numberWithUnit = createUnitPattern(UNITS);\n\nexport const PATTERNS = {\n  /** Single-line comments */\n  comment: /\\/\\/.*/,\n\n  /** String literals (single or double quotes) */\n  string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n\n  /** TokenScript references with curly braces (e.g., {token.path}) */\n  reference: /\\{[^}]+\\}/,\n\n  /** Hex color codes (#RGB, #RRGGBB, #RRGGBBAA) */\n  hexColor: /#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b/,\n\n  /** Numbers with CSS units (e.g., 10px, 1.5em, 45deg) - dynamically constructed from UNITS */\n  numberWithUnit,\n\n  /** Plain numbers (integers and floats, including scientific notation) */\n  number: /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b/,\n\n  /** Float numbers with decimal point */\n  float: /\\d*\\.\\d+(?:[eE][-+]?\\d+)?/,\n\n  /** Identifiers and keywords */\n  identifier: /[a-zA-Z_$][\\w$]*/,\n\n  /** Operators */\n  operator: /[+\\-*/%=<>!&|^~?:]+/,\n\n  /** Punctuation */\n  punctuation: /[[\\]();,.:]/,\n\n  /** Method calls (e.g., .methodName() ) */\n  method: /\\.\\w+(?=\\()/,\n\n  /** Property access (e.g., .propertyName) */\n  property: /\\.\\w+\\b(?!\\()/,\n\n  /** Color type constructors (e.g., Color, Color.Rgb, Color.Hex) - accepts any subtype */\n  colorType: /\\bColor(?:\\.\\w+)?\\b/,\n} as const;\n\n/**\n * Monaco-specific patterns that cannot be shared due to Monaco's tokenizer requirements\n * Monaco uses different syntax for string state transitions and lookahead\n */\nexport const MONACO_PATTERNS = {\n  /** Invalid string (unterminated double quote) - Monaco-specific for error highlighting */\n  stringInvalidDouble: /\"([^\"\\\\]|\\\\.)*$/,\n\n  /** Invalid string (unterminated single quote) - Monaco-specific for error highlighting */\n  stringInvalidSingle: /'([^'\\\\]|\\\\.)*$/,\n\n  /** String start (double quote) - Monaco-specific for state-based tokenization */\n  stringStartDouble: /\"/,\n\n  /** String start (single quote) - Monaco-specific for state-based tokenization */\n  stringStartSingle: /'/,\n\n  /** Number with any unit (captures unit for dynamic validation) - Monaco-specific for unit validation */\n  numberWithDynamicUnit: /\\d+(\\.\\d+)?([a-zA-Z%]+)\\b/,\n} as const;\n\nexport function createKeywordPattern(keywords: readonly string[]): RegExp {\n  return new RegExp(`\\\\b(?:${keywords.join(\"|\")})\\\\b`);\n}\n\nexport function createUnitPattern(units: readonly string[]): RegExp {\n  const escapedUnits = units.map((unit) => unit.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"));\n  return new RegExp(`\\\\b\\\\d+(?:\\\\.\\\\d+)?(?:${escapedUnits.join(\"|\")})(?!\\\\w)`);\n}\n","import type { languages } from \"monaco-editor\";\nimport {\n  BUILTIN_FUNCTIONS,\n  KEYWORDS,\n  MONACO_PATTERNS,\n  OPERATORS,\n  PATTERNS,\n  TYPES,\n  UNITS,\n} from \"./spec.js\";\n\nexport const tokenscriptLanguageDefinition: languages.IMonarchLanguage = {\n  keywords: [...KEYWORDS],\n  types: [...TYPES],\n  colorFunctions: [...BUILTIN_FUNCTIONS],\n  units: [...UNITS],\n  operators: [...OPERATORS],\n  symbols: /[=><!~?:&|+\\-*/^%]+/,\n\n  tokenizer: {\n    root: [\n      // Comments - must come first\n      [PATTERNS.comment, \"comment\"],\n\n      // Strings - Monaco requires state-based tokenization for multi-line strings\n      // Cannot use PATTERNS.string because Monaco needs separate start/end tokens\n      [MONACO_PATTERNS.stringInvalidDouble, \"string.invalid\"],\n      [MONACO_PATTERNS.stringInvalidSingle, \"string.invalid\"],\n      [MONACO_PATTERNS.stringStartDouble, \"string\", \"@string_double\"],\n      [MONACO_PATTERNS.stringStartSingle, \"string\", \"@string_single\"],\n\n      // TokenScript references with curly braces\n      [PATTERNS.reference, \"reference\"],\n\n      // Hex colors\n      [PATTERNS.hexColor, \"number.hex\"],\n\n      // Numbers with units - Monaco requires capture groups for dynamic unit validation\n      // Cannot use PATTERNS.numberWithUnit because Monaco needs $2 to validate against @units\n      [\n        MONACO_PATTERNS.numberWithDynamicUnit,\n        {\n          cases: {\n            \"$2@units\": \"number.unit\",\n            \"@default\": \"number\",\n          },\n        },\n      ],\n\n      // Float numbers - must come before integer pattern to match decimals first\n      [PATTERNS.float, \"number.float\"],\n\n      // Integer numbers\n      [PATTERNS.number, \"number\"],\n\n      // Color types (Color.Hex, Color.Rgb, etc.)\n      [PATTERNS.colorType, \"type\"],\n\n      // Method calls (.method())\n      [PATTERNS.method, \"method\"],\n\n      // Property access (.property)\n      [PATTERNS.property, \"property\"],\n\n      // Identifiers and keywords\n      [\n        PATTERNS.identifier,\n        {\n          cases: {\n            \"@keywords\": \"keyword\",\n            \"@types\": \"type\",\n            \"@colorFunctions\": \"function\",\n            \"@default\": \"identifier\",\n          },\n        },\n      ],\n\n      // Whitespace\n      { include: \"@whitespace\" },\n\n      // Delimiters and operators\n      [/[()[\\]]/, \"delimiter\"],\n      [/[<>]=?/, \"operator\"],\n      [/[=!]=?/, \"operator\"],\n      [/&&|\\|\\|/, \"operator\"],\n      [/[+\\-*/^%]/, \"operator\"],\n      [/[;:,]/, \"delimiter\"],\n      [/@symbols/, \"operator\"],\n    ],\n\n    // String handling\n    string_double: [\n      [/[^\\\\\"]+/, \"string\"],\n      [/\"/, \"string\", \"@pop\"],\n    ],\n\n    string_single: [\n      [/[^\\\\']+/, \"string\"],\n      [/'/, \"string\", \"@pop\"],\n    ],\n\n    // Whitespace\n    whitespace: [[/[ \\t\\r\\n]+/, \"white\"]],\n  },\n};\n\nexport const tokenscriptLanguageConfig: languages.LanguageConfiguration = {\n  comments: {\n    lineComment: \"//\",\n  },\n  brackets: [\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n  ],\n  autoClosingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"', notIn: [\"string\"] },\n    { open: \"'\", close: \"'\", notIn: [\"string\"] },\n  ],\n  surroundingPairs: [\n    { open: \"[\", close: \"]\" },\n    { open: \"(\", close: \")\" },\n    { open: '\"', close: '\"' },\n    { open: \"'\", close: \"'\" },\n  ],\n  folding: {\n    markers: {\n      start: /^\\s*\\/\\/\\s*#?region\\b/,\n      end: /^\\s*\\/\\/\\s*#?endregion\\b/,\n    },\n  },\n  wordPattern: /(-?\\d*\\.\\d\\w*)|([a-zA-Z_$][\\w$]*)/g,\n  indentationRules: {\n    increaseIndentPattern: /^((?!.*?\\/\\*).*)*\\[[^\\]]*$/,\n    decreaseIndentPattern: /^((?!.*?\\/\\*).*)*\\].*$/,\n  },\n};\n","/**\n * Prism.js syntax highlighting for TokenScript\n * Uses shared patterns from spec.ts\n */\n\nimport { BUILTIN_FUNCTIONS, createKeywordPattern, KEYWORDS, PATTERNS, TYPES } from \"./spec.js\";\n\nexport function tokenscriptLanguage(Prism: any) {\n  Prism.languages.tokenscript = {\n    comment: {\n      pattern: PATTERNS.comment,\n      greedy: true,\n    },\n    string: {\n      pattern: PATTERNS.string,\n      greedy: true,\n    },\n    reference: {\n      pattern: PATTERNS.reference,\n      greedy: true,\n      alias: \"variable\",\n    },\n    \"hex-color\": {\n      pattern: PATTERNS.hexColor,\n      alias: \"number\",\n    },\n    \"number-with-unit\": {\n      pattern: PATTERNS.numberWithUnit,\n      alias: \"number\",\n    },\n    number: {\n      pattern: PATTERNS.number,\n    },\n    keyword: {\n      pattern: createKeywordPattern(KEYWORDS),\n    },\n    type: {\n      pattern: createKeywordPattern(TYPES),\n      alias: \"class-name\",\n    },\n    \"color-type\": {\n      pattern: PATTERNS.colorType,\n      alias: \"class-name\",\n    },\n    function: {\n      pattern: createKeywordPattern([...BUILTIN_FUNCTIONS, \"(?=\\\\()\"]),\n    },\n    method: {\n      pattern: PATTERNS.method,\n      inside: {\n        punctuation: /\\./,\n      },\n    },\n    property: {\n      pattern: PATTERNS.property,\n      inside: {\n        punctuation: /\\./,\n      },\n    },\n    operator: PATTERNS.operator,\n    punctuation: PATTERNS.punctuation,\n  };\n\n  // Add tokenscript as an alias for ts\n  Prism.languages.ts = Prism.languages.tokenscript;\n\n  return Prism.languages.tokenscript;\n}\n\nexport default tokenscriptLanguage;\n"]}