@lass-lang/core 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-utils.js","sourceRoot":"","sources":["../src/plugin-utils.ts"],"names":[],"mappings":"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"}
package/dist/scanner.d.ts CHANGED
@@ -62,18 +62,6 @@ export interface DollarVariable {
62
62
  /** End index (exclusive) of $varname in the CSS string */
63
63
  endIndex: number;
64
64
  }
65
- /**
66
- * Information about a detected @prop shorthand.
67
- * Story 4.2: Style Lookup Shorthand
68
- */
69
- export interface StyleLookupShorthand {
70
- /** The property name (without @ prefix) */
71
- propName: string;
72
- /** Start index of @propname in the CSS string */
73
- startIndex: number;
74
- /** End index (exclusive) of @propname in the CSS string */
75
- endIndex: number;
76
- }
77
65
  /**
78
66
  * Scanner options for customizing scan behavior.
79
67
  */
@@ -96,26 +84,51 @@ export declare class Scanner {
96
84
  private readonly source;
97
85
  constructor(source: string, _options?: ScanOptions);
98
86
  /**
99
- * Finds the --- separator and splits source into preamble and CSS zones.
100
- *
101
- * Story 2.1: Zone detection
102
- *
103
- * Rules:
104
- * - Separator must be exactly "---" at column 0 (start of line)
105
- * - May have trailing whitespace
106
- * - Must NOT be inside a multi-line comment (slash-star ... star-slash)
107
- * - Only one separator allowed per file
87
+ * Finds the --- delimiters and splits source into preamble and CSS zones.
88
+ *
89
+ * Story 2.1: Zone detection (updated Story 10.1: Preamble Format Change)
90
+ *
91
+ * Rules for surrounding delimiters:
92
+ * - Opening delimiter must be on line 0 (first line of file)
93
+ * - Delimiter must be exactly "---" at column 0 (start of line)
94
+ * - May have extra dashes: "------"
95
+ * - May have optional comment after space: "--- comment text"
96
+ * - "---nospace" is NOT a delimiter (no space before text, not extra dashes)
97
+ * - Second delimiter closes the preamble
98
+ * - Must NOT be inside a multi-line comment in CSS zone
99
+ *
100
+ * Format:
101
+ * ```
102
+ * --- optional comment
103
+ * JS preamble code
104
+ * --- optional comment
105
+ * CSS zone
106
+ * ```
108
107
  *
109
108
  * Note: Line endings are normalized to \n during processing.
110
- * When no separator is found, cssZone returns the original source unchanged.
109
+ * When no opening delimiter is found on line 0, cssZone returns the original source unchanged.
111
110
  *
112
111
  * @returns Zone split result with preamble, cssZone, and hasSeparator
113
- * @throws LassTranspileError if multiple separators found
114
112
  */
115
113
  findSeparator(): ZoneSplit;
116
114
  /**
117
- * Checks if a line is the --- separator.
118
- * Must be exactly "---" with optional trailing whitespace.
115
+ * Checks if a line is the --- delimiter.
116
+ * Must be exactly "---" with optional extra dashes or comment.
117
+ *
118
+ * Story 8.1: Separator Comment Support
119
+ * Story 10.1: Preamble Format Change (updated regex)
120
+ *
121
+ * Matches:
122
+ * - "---" (bare three dashes)
123
+ * - "--- comment" (three dashes + space + comment text)
124
+ * - "---\tcomment" (three dashes + tab + comment text)
125
+ * - "------" (three+ dashes for visual separator)
126
+ * - "--- title ---" (decorative comment style)
127
+ *
128
+ * Does NOT match:
129
+ * - "---nospace" (no whitespace before text, not extra dashes)
130
+ * - " ---" (leading whitespace)
131
+ * - "--" (only two dashes)
119
132
  */
120
133
  private isSeparatorLine;
121
134
  /**
@@ -251,43 +264,6 @@ export declare class Scanner {
251
264
  * Valid: a-z, A-Z, 0-9, _, $
252
265
  */
253
266
  private static isIdentifierChar;
254
- /**
255
- * Finds @prop shorthand accessors in CSS zone.
256
- *
257
- * Story 4.2: Style Lookup Shorthand
258
- *
259
- * Detection rules:
260
- * - @prop in CSS value position (after :) is a Lass shorthand accessor
261
- * - @prop shorthand only works when identifier starts with a letter [a-zA-Z]
262
- * - Identifier continues with letters, digits, hyphens, underscores
263
- * - NOT detected inside {{ }} script blocks (use explicit @(prop) there)
264
- * - NOT detected inside protected contexts: strings, comments, url()
265
- *
266
- * Examples:
267
- * - @border → shorthand for @(border)
268
- * - @border-color → shorthand for @(border-color)
269
- * - @--custom → NOT detected (starts with hyphen, use @(--custom))
270
- * - @-webkit-foo → NOT detected (starts with hyphen, use @(-webkit-foo))
271
- *
272
- * @param cssZone - The CSS zone content to scan
273
- * @returns Array of StyleLookupShorthand objects with propName and indices
274
- */
275
- findStyleLookupShorthands(cssZone: string): StyleLookupShorthand[];
276
- /**
277
- * Static version of findStyleLookupShorthands for use without Scanner instantiation.
278
- * Used internally by transpiler to avoid creating unnecessary Scanner instances.
279
- *
280
- * Story 4.2: Style Lookup Shorthand
281
- *
282
- * @param cssZone - The CSS zone content to scan
283
- * @returns Array of StyleLookupShorthand objects with propName and indices
284
- */
285
- static findStyleLookupShorthandsStatic(cssZone: string): StyleLookupShorthand[];
286
- /**
287
- * Checks if a character is a valid CSS identifier character.
288
- * Valid: a-z, A-Z, 0-9, -, _
289
- */
290
- private static isCssIdentifierChar;
291
267
  /**
292
268
  * Strips // single-line comments from CSS zone.
293
269
  *
@@ -299,7 +275,7 @@ export declare class Scanner {
299
275
  * - Full-line comments remove the entire line
300
276
  * - Inline comments preserve content before //
301
277
  *
302
- * Note: url() is protected here (unlike $param/@prop) because
278
+ * Note: url() is protected here (unlike $param) because
303
279
  * url(https://...) contains // as part of the URL protocol.
304
280
  *
305
281
  * @param cssZone - The CSS zone content to process
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kGAAkG;IAClG,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,WAAgB;IAMtD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,aAAa,IAAI,SAAS;IAmD1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,eAAe;IAOvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;;OAMG;IACH,IAAI,IAAI,UAAU;IAOlB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IA0FjD;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAgBjC;IAEH;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAI1D;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAwGvE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IAItD;;;;;;;;OAQG;IACH,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IA8EnE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;;;;;;OASG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA6GvD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAOnC"}
package/dist/scanner.js CHANGED
@@ -28,49 +28,69 @@ export class Scanner {
28
28
  // Future: include filename in error messages for better debugging
29
29
  }
30
30
  /**
31
- * Finds the --- separator and splits source into preamble and CSS zones.
32
- *
33
- * Story 2.1: Zone detection
34
- *
35
- * Rules:
36
- * - Separator must be exactly "---" at column 0 (start of line)
37
- * - May have trailing whitespace
38
- * - Must NOT be inside a multi-line comment (slash-star ... star-slash)
39
- * - Only one separator allowed per file
31
+ * Finds the --- delimiters and splits source into preamble and CSS zones.
32
+ *
33
+ * Story 2.1: Zone detection (updated Story 10.1: Preamble Format Change)
34
+ *
35
+ * Rules for surrounding delimiters:
36
+ * - Opening delimiter must be on line 0 (first line of file)
37
+ * - Delimiter must be exactly "---" at column 0 (start of line)
38
+ * - May have extra dashes: "------"
39
+ * - May have optional comment after space: "--- comment text"
40
+ * - "---nospace" is NOT a delimiter (no space before text, not extra dashes)
41
+ * - Second delimiter closes the preamble
42
+ * - Must NOT be inside a multi-line comment in CSS zone
43
+ *
44
+ * Format:
45
+ * ```
46
+ * --- optional comment
47
+ * JS preamble code
48
+ * --- optional comment
49
+ * CSS zone
50
+ * ```
40
51
  *
41
52
  * Note: Line endings are normalized to \n during processing.
42
- * When no separator is found, cssZone returns the original source unchanged.
53
+ * When no opening delimiter is found on line 0, cssZone returns the original source unchanged.
43
54
  *
44
55
  * @returns Zone split result with preamble, cssZone, and hasSeparator
45
- * @throws LassTranspileError if multiple separators found
46
56
  */
47
57
  findSeparator() {
48
58
  // Normalize line endings to \n for consistent processing
49
59
  const normalized = this.source.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
50
60
  const lines = normalized.split('\n');
51
- let separatorLineIndex = -1;
52
- for (let i = 0; i < lines.length; i++) {
53
- const line = lines[i];
54
- // Check if this line is the separator (only if not inside a block comment)
55
- if (!this.isInBlockComment(lines, i) && this.isSeparatorLine(line)) {
56
- if (separatorLineIndex !== -1) {
57
- // Multiple separators found
58
- throw LassTranspileError.at('Multiple --- separators found. Only one is allowed per file.', ErrorCategory.SCAN, i + 1, 1, this.getOffset(lines, i));
59
- }
60
- separatorLineIndex = i;
61
- }
62
- }
63
- if (separatorLineIndex === -1) {
64
- // No separator - entire file is CSS zone
61
+ // Check if line 0 is the opening delimiter
62
+ if (lines.length === 0 || !this.isSeparatorLine(lines[0])) {
63
+ // No opening delimiter on line 0 - entire file is CSS zone
65
64
  return {
66
65
  preamble: '',
67
66
  cssZone: this.source,
68
67
  hasSeparator: false,
69
68
  };
70
69
  }
71
- // Split at separator
72
- const preambleLines = lines.slice(0, separatorLineIndex);
73
- const cssLines = lines.slice(separatorLineIndex + 1);
70
+ // Opening delimiter found on line 0. Find the closing delimiter.
71
+ let closingLineIndex = -1;
72
+ for (let i = 1; i < lines.length; i++) {
73
+ const line = lines[i];
74
+ // Check if this line is the closing delimiter (only if not inside a block comment)
75
+ // Note: We only check for comments in what will become the CSS zone (after closing)
76
+ // The preamble is JS, so we don't apply CSS comment logic there
77
+ if (this.isSeparatorLine(line)) {
78
+ closingLineIndex = i;
79
+ break; // First delimiter after opening is the closing delimiter
80
+ }
81
+ }
82
+ if (closingLineIndex === -1) {
83
+ // No closing delimiter - entire file after line 0 is JS preamble, empty CSS zone
84
+ const preambleLines = lines.slice(1);
85
+ return {
86
+ preamble: preambleLines.join('\n'),
87
+ cssZone: '',
88
+ hasSeparator: true,
89
+ };
90
+ }
91
+ // Split at delimiters
92
+ const preambleLines = lines.slice(1, closingLineIndex);
93
+ const cssLines = lines.slice(closingLineIndex + 1);
74
94
  return {
75
95
  preamble: preambleLines.join('\n'),
76
96
  cssZone: cssLines.join('\n'),
@@ -78,13 +98,29 @@ export class Scanner {
78
98
  };
79
99
  }
80
100
  /**
81
- * Checks if a line is the --- separator.
82
- * Must be exactly "---" with optional trailing whitespace.
101
+ * Checks if a line is the --- delimiter.
102
+ * Must be exactly "---" with optional extra dashes or comment.
103
+ *
104
+ * Story 8.1: Separator Comment Support
105
+ * Story 10.1: Preamble Format Change (updated regex)
106
+ *
107
+ * Matches:
108
+ * - "---" (bare three dashes)
109
+ * - "--- comment" (three dashes + space + comment text)
110
+ * - "---\tcomment" (three dashes + tab + comment text)
111
+ * - "------" (three+ dashes for visual separator)
112
+ * - "--- title ---" (decorative comment style)
113
+ *
114
+ * Does NOT match:
115
+ * - "---nospace" (no whitespace before text, not extra dashes)
116
+ * - " ---" (leading whitespace)
117
+ * - "--" (only two dashes)
83
118
  */
84
119
  isSeparatorLine(line) {
85
- // Must start with exactly "---" (no leading whitespace)
86
- // May have trailing whitespace
87
- return /^---\s*$/.test(line);
120
+ // ^--- line must start with exactly three dashes
121
+ // (\s.*|-*) followed by either: whitespace + anything (comment), OR more dashes
122
+ // $ end of line
123
+ return /^---(\s.*|-*)$/.test(line);
88
124
  }
89
125
  /**
90
126
  * Checks if line at index is inside a block comment.
@@ -506,181 +542,6 @@ export class Scanner {
506
542
  static isIdentifierChar(char) {
507
543
  return /^[a-zA-Z0-9_$]$/.test(char);
508
544
  }
509
- /**
510
- * Finds @prop shorthand accessors in CSS zone.
511
- *
512
- * Story 4.2: Style Lookup Shorthand
513
- *
514
- * Detection rules:
515
- * - @prop in CSS value position (after :) is a Lass shorthand accessor
516
- * - @prop shorthand only works when identifier starts with a letter [a-zA-Z]
517
- * - Identifier continues with letters, digits, hyphens, underscores
518
- * - NOT detected inside {{ }} script blocks (use explicit @(prop) there)
519
- * - NOT detected inside protected contexts: strings, comments, url()
520
- *
521
- * Examples:
522
- * - @border → shorthand for @(border)
523
- * - @border-color → shorthand for @(border-color)
524
- * - @--custom → NOT detected (starts with hyphen, use @(--custom))
525
- * - @-webkit-foo → NOT detected (starts with hyphen, use @(-webkit-foo))
526
- *
527
- * @param cssZone - The CSS zone content to scan
528
- * @returns Array of StyleLookupShorthand objects with propName and indices
529
- */
530
- findStyleLookupShorthands(cssZone) {
531
- return Scanner.findStyleLookupShorthandsStatic(cssZone);
532
- }
533
- /**
534
- * Static version of findStyleLookupShorthands for use without Scanner instantiation.
535
- * Used internally by transpiler to avoid creating unnecessary Scanner instances.
536
- *
537
- * Story 4.2: Style Lookup Shorthand
538
- *
539
- * @param cssZone - The CSS zone content to scan
540
- * @returns Array of StyleLookupShorthand objects with propName and indices
541
- */
542
- static findStyleLookupShorthandsStatic(cssZone) {
543
- const shorthands = [];
544
- if (!cssZone) {
545
- return shorthands;
546
- }
547
- // Context tracking for protected zones (strings, comments)
548
- // Note: url() is NOT a protected context - @prop inside url(@path) IS detected
549
- const state = createContextState();
550
- const contextStack = [{ type: 'css', braceDepth: 0 }];
551
- // Track if we're in value position (after :)
552
- let inValuePosition = false;
553
- let i = 0;
554
- while (i < cssZone.length) {
555
- const char = cssZone[i];
556
- const nextChar = cssZone[i + 1];
557
- // Update context state (handles strings and comments)
558
- const consumed = updateContextState(cssZone, i, state);
559
- if (consumed === 2) {
560
- i += 2;
561
- continue;
562
- }
563
- // Skip string quote characters (already handled by updateContextState)
564
- if (char === '"' || char === "'") {
565
- i++;
566
- continue;
567
- }
568
- // Skip if in protected context (strings, comments)
569
- if (isInProtectedContext(state)) {
570
- i++;
571
- continue;
572
- }
573
- // Track context transitions
574
- const currentEntry = contextStack[contextStack.length - 1];
575
- // Check for {{ - enters JS context
576
- if (char === '{' && nextChar === '{') {
577
- contextStack.push({ type: 'js', braceDepth: 0 });
578
- i += 2;
579
- continue;
580
- }
581
- // Check for }} - exits JS context
582
- if (char === '}' && nextChar === '}') {
583
- // Pop until we find a 'js' context (may need to pop @{ css first)
584
- while (contextStack.length > 1 && contextStack[contextStack.length - 1].type !== 'js') {
585
- contextStack.pop();
586
- }
587
- if (contextStack.length > 1) {
588
- contextStack.pop(); // pop the 'js'
589
- }
590
- i += 2;
591
- continue;
592
- }
593
- // Check for @{ - enters CSS context (style block inside JS)
594
- if (char === '@' && nextChar === '{' && currentEntry.type === 'js') {
595
- contextStack.push({ type: 'css', braceDepth: 0 });
596
- i += 2;
597
- continue;
598
- }
599
- // Track single braces within @{ CSS context (for nested CSS blocks)
600
- if (currentEntry.type === 'css' && contextStack.length > 1) {
601
- // We're in a @{ block (not the root CSS context)
602
- if (char === '{') {
603
- currentEntry.braceDepth++;
604
- inValuePosition = false;
605
- i++;
606
- continue;
607
- }
608
- if (char === '}') {
609
- if (currentEntry.braceDepth > 0) {
610
- // Closing a nested CSS block within @{
611
- currentEntry.braceDepth--;
612
- inValuePosition = false;
613
- }
614
- else {
615
- // Closing the @{ block itself
616
- contextStack.pop();
617
- }
618
- i++;
619
- continue;
620
- }
621
- }
622
- // Get current context type
623
- const currentContext = contextStack[contextStack.length - 1].type;
624
- // Skip if in JS context (not inside a @{ block)
625
- if (currentContext === 'js') {
626
- i++;
627
- continue;
628
- }
629
- // Track colon for value position
630
- if (char === ':') {
631
- inValuePosition = true;
632
- i++;
633
- continue;
634
- }
635
- // Reset on semicolon (end of declaration)
636
- if (char === ';') {
637
- inValuePosition = false;
638
- i++;
639
- continue;
640
- }
641
- // Reset on single opening brace (entering a new CSS block)
642
- if (char === '{') {
643
- inValuePosition = false;
644
- i++;
645
- continue;
646
- }
647
- // Reset on single closing brace (end of block)
648
- if (char === '}') {
649
- inValuePosition = false;
650
- i++;
651
- continue;
652
- }
653
- // Check for @ followed by letter (shorthand only works when starting with letter)
654
- if (char === '@' && nextChar !== undefined && /^[a-zA-Z]$/.test(nextChar)) {
655
- // Only detect in value position
656
- if (inValuePosition) {
657
- const startIndex = i;
658
- i++; // Move past @
659
- // Consume CSS identifier characters (letters, digits, hyphens, underscores)
660
- let propName = '';
661
- while (i < cssZone.length && Scanner.isCssIdentifierChar(cssZone[i])) {
662
- propName += cssZone[i];
663
- i++;
664
- }
665
- shorthands.push({
666
- propName,
667
- startIndex,
668
- endIndex: i,
669
- });
670
- continue;
671
- }
672
- }
673
- i++;
674
- }
675
- return shorthands;
676
- }
677
- /**
678
- * Checks if a character is a valid CSS identifier character.
679
- * Valid: a-z, A-Z, 0-9, -, _
680
- */
681
- static isCssIdentifierChar(char) {
682
- return /^[a-zA-Z0-9_-]$/.test(char);
683
- }
684
545
  /**
685
546
  * Strips // single-line comments from CSS zone.
686
547
  *
@@ -692,7 +553,7 @@ export class Scanner {
692
553
  * - Full-line comments remove the entire line
693
554
  * - Inline comments preserve content before //
694
555
  *
695
- * Note: url() is protected here (unlike $param/@prop) because
556
+ * Note: url() is protected here (unlike $param) because
696
557
  * url(https://...) contains // as part of the URL protocol.
697
558
  *
698
559
  * @param cssZone - The CSS zone content to process
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,7 @@ export declare function cutByBraces(cssZone: string): ScopeSlices;
113
113
  * Finds the value of a CSS property by searching the scope tree.
114
114
  *
115
115
  * Story 3.3: Algorithm using parent references:
116
- * 1. Search current slice (up to the position before @prop)
116
+ * 1. Search current slice (up to the position before @(prop))
117
117
  * 2. Search earlier sibling slices (same parent, earlier index)
118
118
  * 3. Walk up to parent and repeat
119
119
  * 4. Stop when we reach a root slice (parent: null) and exhaust all earlier siblings
@@ -123,7 +123,7 @@ export declare function cutByBraces(cssZone: string): ScopeSlices;
123
123
  *
124
124
  * @param propName - The property name to look up (e.g., "border")
125
125
  * @param slices - The slices from cutByBraces()
126
- * @param currentIndex - Index of the slice containing the @prop reference
126
+ * @param currentIndex - Index of the slice containing the @(prop) reference
127
127
  * @param positionInSlice - Character position in current slice (for self-reference protection)
128
128
  * @returns The property value, or empty string if not found
129
129
  */
@@ -215,7 +215,7 @@ function getContextOpenedBy(contextStack) {
215
215
  * Finds the value of a CSS property by searching the scope tree.
216
216
  *
217
217
  * Story 3.3: Algorithm using parent references:
218
- * 1. Search current slice (up to the position before @prop)
218
+ * 1. Search current slice (up to the position before @(prop))
219
219
  * 2. Search earlier sibling slices (same parent, earlier index)
220
220
  * 3. Walk up to parent and repeat
221
221
  * 4. Stop when we reach a root slice (parent: null) and exhaust all earlier siblings
@@ -225,7 +225,7 @@ function getContextOpenedBy(contextStack) {
225
225
  *
226
226
  * @param propName - The property name to look up (e.g., "border")
227
227
  * @param slices - The slices from cutByBraces()
228
- * @param currentIndex - Index of the slice containing the @prop reference
228
+ * @param currentIndex - Index of the slice containing the @(prop) reference
229
229
  * @param positionInSlice - Character position in current slice (for self-reference protection)
230
230
  * @returns The property value, or empty string if not found
231
231
  */
@@ -27,24 +27,7 @@ export declare function detectZones(source: string, options: TranspileOptions):
27
27
  */
28
28
  export declare function stripLineComments(cssZone: string): string;
29
29
  /**
30
- * Step 3a: Normalize @prop shorthands to @(prop) form.
31
- *
32
- * Story 4.2: Style Lookup Shorthand
33
- *
34
- * Finds @prop patterns in CSS value position and converts them to @(prop).
35
- * This runs BEFORE @(prop) resolution so all lookups are handled uniformly.
36
- *
37
- * Detection rules:
38
- * - @prop shorthand only works when identifier starts with a letter [a-zA-Z]
39
- * - NOT detected inside {{ }} script blocks
40
- * - NOT detected inside protected contexts: strings, comments, url()
41
- *
42
- * @param cssZone - The CSS zone content
43
- * @returns CSS zone with @prop normalized to @(prop)
44
- */
45
- export declare function normalizeStyleLookupShorthands(cssZone: string): string;
46
- /**
47
- * Step 3b: Resolve @(prop) accessors in CSS zone.
30
+ * Step 3: Resolve @(prop) accessors in CSS zone.
48
31
  *
49
32
  * Story 3.2: Basic Property Lookup
50
33
  * Story 3.3: Lookup in {{ }} Context
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../src/transpiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM7G;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CASpF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuBtE;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAsF5F;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,CA2B1G;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8BlE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,CAgF9E;AAoOD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,CA6C7H;AAMD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAgCrF"}
1
+ {"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../src/transpiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM7G;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CASpF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAsF5F;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,CA2B1G;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8BlE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,CAgF9E;AAoOD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,CA6C7H;AAMD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAgCrF"}