@projectwallace/css-parser 0.18.6 → 0.18.7

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.
@@ -1,5 +1,5 @@
1
1
  import "./arena-e9O_g2AN.js";
2
- import { a as is_whitespace, c as str_starts_with, i as is_vendor_prefixed, o as str_equals, t as parse_dimension } from "./parse-dimension-ouWXNHdx.js";
2
+ import { a as is_vendor_prefixed, o as is_whitespace, s as str_equals, t as dimension_number_end, u as str_starts_with } from "./parse-dimension-CQELWb5z.js";
3
3
  //#region src/css-node.ts
4
4
  const TYPE_NAMES = {
5
5
  [1]: "StyleSheet",
@@ -185,7 +185,10 @@ var CSSNode = class CSSNode {
185
185
  if (type === 33) return first_child ?? null;
186
186
  if (type === 57) return first_child?.first_child ?? null;
187
187
  if (type === 59) return first_child?.next_sibling ?? null;
188
- if (type === 12) return parse_dimension(text).value;
188
+ if (type === 12) {
189
+ let num_str = text.substring(0, dimension_number_end(text));
190
+ return num_str ? Number.parseFloat(num_str) : 0;
191
+ }
189
192
  if (type === 11) return Number(text);
190
193
  if (type === 18) {
191
194
  if (first_child?.type === 13) return first_child.text;
@@ -246,7 +249,8 @@ var CSSNode = class CSSNode {
246
249
  /** Get the unit for dimension nodes (e.g., "px" from "100px", "%" from "50%") */
247
250
  get unit() {
248
251
  if (this.type !== 12) return void 0;
249
- return parse_dimension(this.text).unit;
252
+ let text = this.text;
253
+ return text.substring(dimension_number_end(text));
250
254
  }
251
255
  /** Numerator for ratio values, e.g. the Number "16" in `aspect-ratio: 16/9` */
252
256
  get left() {
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { C as TOKEN_RIGHT_BRACKET, D as TOKEN_UNICODE_RANGE, E as TOKEN_STRING, O as TOKEN_URL, S as TOKEN_RIGHT_BRACE, T as TOKEN_SEMICOLON, _ as TOKEN_LEFT_BRACE, a as TOKEN_BAD_URL, b as TOKEN_NUMBER, c as TOKEN_COLON, d as TOKEN_DELIM, f as TOKEN_DIMENSION, g as TOKEN_IDENT, h as TOKEN_HASH, i as TOKEN_BAD_STRING, k as TOKEN_WHITESPACE, l as TOKEN_COMMA, m as TOKEN_FUNCTION, n as tokenize, o as TOKEN_CDC, p as TOKEN_EOF, r as TOKEN_AT_KEYWORD, s as TOKEN_CDO, u as TOKEN_COMMENT, v as TOKEN_LEFT_BRACKET, w as TOKEN_RIGHT_PAREN, x as TOKEN_PERCENTAGE, y as TOKEN_LEFT_PAREN } from "./tokenize-DK24ACbY.js";
2
2
  import { A as PARENTHESIS, B as STYLE_RULE, C as MEDIA_QUERY, D as NTH_SELECTOR, E as NTH_OF_SELECTOR, F as RAW, G as UNIVERSAL_SELECTOR, H as SUPPORTS_QUERY, I as SELECTOR, K as URL, L as SELECTOR_LIST, M as PSEUDO_CLASS_SELECTOR, N as PSEUDO_ELEMENT_SELECTOR, O as NUMBER, P as RATIO, R as STRING, S as MEDIA_FEATURE, T as NESTING_SELECTOR, U as TYPE_SELECTOR, V as SUPPORTS_DECLARATION, W as UNICODE_RANGE, _ as ID_SELECTOR, a as CLASS_SELECTOR, b as LANG_SELECTOR, c as CONTAINER_QUERY, d as DIMENSION, f as FEATURE_RANGE, g as IDENTIFIER, h as HASH, i as BLOCK, j as PRELUDE_OPERATOR, k as OPERATOR, m as FUNCTION, n as AT_RULE, o as COMBINATOR, p as FLAG_IMPORTANT, q as VALUE, r as AT_RULE_PRELUDE, s as COMMENT, t as ATTRIBUTE_SELECTOR, u as DECLARATION, v as IF_BRANCH, w as MEDIA_TYPE, x as LAYER_NAME, y as IF_CONDITION, z as STYLESHEET } from "./arena-e9O_g2AN.js";
3
- import { c as str_starts_with, i as is_vendor_prefixed, o as str_equals, r as is_custom, s as str_index_of, t as parse_dimension } from "./parse-dimension-ouWXNHdx.js";
4
- import { n as TYPE_NAMES } from "./css-node-BmD2JJLr.js";
5
- import { n as parse_selector, r as parse_selector_list } from "./parse-selector-DMduLN4o.js";
3
+ import { a as is_vendor_prefixed, i as is_custom, l as str_index_of, n as parse_dimension, s as str_equals, u as str_starts_with } from "./parse-dimension-CQELWb5z.js";
4
+ import { n as TYPE_NAMES } from "./css-node-C6TLE3qd.js";
5
+ import { n as parse_selector, r as parse_selector_list } from "./parse-selector-Ce5HUZJ5.js";
6
6
  import { parse_atrule_prelude } from "./parse-atrule-prelude.js";
7
7
  import { parse_value } from "./parse-value.js";
8
8
  import { parse_declaration } from "./parse-declaration.js";
@@ -1,7 +1,7 @@
1
1
  import { t as Lexer } from "./tokenize-DK24ACbY.js";
2
2
  import { l as CSSDataArena } from "./arena-e9O_g2AN.js";
3
- import { o as str_equals, s as str_index_of } from "./parse-dimension-ouWXNHdx.js";
4
- import { t as CSSNode } from "./css-node-BmD2JJLr.js";
3
+ import { l as str_index_of, s as str_equals } from "./parse-dimension-CQELWb5z.js";
4
+ import { t as CSSNode } from "./css-node-C6TLE3qd.js";
5
5
  //#region src/parse-anplusb.ts
6
6
  /** @internal */
7
7
  var ANplusBParser = class {
@@ -1,9 +1,9 @@
1
1
  import { t as Lexer } from "./tokenize-DK24ACbY.js";
2
2
  import { l as CSSDataArena } from "./arena-e9O_g2AN.js";
3
- import { l as strip_vendor_prefix, o as str_equals } from "./parse-dimension-ouWXNHdx.js";
4
- import { t as CSSNode } from "./css-node-BmD2JJLr.js";
5
- import { s as trim_boundaries } from "./parse-selector-DMduLN4o.js";
6
- import { n as ConditionParser, t as ValueNodeParser } from "./value-node-parser-3ET5Z4Rf.js";
3
+ import { d as strip_vendor_prefix, s as str_equals } from "./parse-dimension-CQELWb5z.js";
4
+ import { t as CSSNode } from "./css-node-C6TLE3qd.js";
5
+ import { s as trim_boundaries } from "./parse-selector-Ce5HUZJ5.js";
6
+ import { n as ConditionParser, t as ValueNodeParser } from "./value-node-parser-DfkneBdM.js";
7
7
  //#region src/parse-atrule-prelude.ts
8
8
  /** @internal */
9
9
  var AtRulePreludeParser = class {
@@ -1,8 +1,8 @@
1
1
  import { t as Lexer } from "./tokenize-DK24ACbY.js";
2
2
  import { l as CSSDataArena } from "./arena-e9O_g2AN.js";
3
- import { i as is_vendor_prefixed } from "./parse-dimension-ouWXNHdx.js";
4
- import { t as CSSNode } from "./css-node-BmD2JJLr.js";
5
- import { a as skip_whitespace_and_comments_backward, s as trim_boundaries } from "./parse-selector-DMduLN4o.js";
3
+ import { a as is_vendor_prefixed } from "./parse-dimension-CQELWb5z.js";
4
+ import { t as CSSNode } from "./css-node-C6TLE3qd.js";
5
+ import { a as skip_whitespace_and_comments_backward, s as trim_boundaries } from "./parse-selector-Ce5HUZJ5.js";
6
6
  import { ValueParser } from "./parse-value.js";
7
7
  //#region src/parse-declaration.ts
8
8
  /** @internal */
@@ -27,6 +27,20 @@ function str_equals(a, b) {
27
27
  }
28
28
  return true;
29
29
  }
30
+ /**
31
+ * Case-insensitive equality between `source[start, end)` and `literal`, without allocating
32
+ * a substring first. Same semantics as `str_equals(literal, source.substring(start, end))`.
33
+ * `literal` MUST be lowercase.
34
+ */
35
+ function str_equals_range(source, start, end, literal) {
36
+ if (end - start !== literal.length) return false;
37
+ for (let i = 0; i < literal.length; i++) {
38
+ let ch = source.charCodeAt(start + i);
39
+ ch |= 32;
40
+ if (ch !== literal.charCodeAt(i)) return false;
41
+ }
42
+ return true;
43
+ }
30
44
  /** Case-insensitive ASCII prefix check without allocations. `prefix` MUST be lowercase. */
31
45
  function str_starts_with(str, prefix) {
32
46
  if (str.length < prefix.length) return false;
@@ -89,8 +103,14 @@ function strip_vendor_prefix(str) {
89
103
  }
90
104
  //#endregion
91
105
  //#region src/parse-dimension.ts
92
- /** Parse a dimension string into value and unit, e.g. "100px" → { value: 100, unit: "px" } or "2%" → { value: 2, unit: "%" } */
93
- function parse_dimension(text) {
106
+ /**
107
+ * Find where a dimension's numeric part ends, e.g. 3 for "100px" or 2 for "2%".
108
+ * No allocation — callers that only need `value` or only `unit` can slice just
109
+ * the part they want instead of going through `parse_dimension`'s object + two
110
+ * substrings for both.
111
+ * @internal
112
+ */
113
+ function dimension_number_end(text) {
94
114
  let num_end = 0;
95
115
  for (let i = 0; i < text.length; i++) {
96
116
  let ch = text.charCodeAt(i);
@@ -113,6 +133,11 @@ function parse_dimension(text) {
113
133
  if (is_digit(ch) || ch === 46 || ch === 45 || ch === 43) num_end = i + 1;
114
134
  else break;
115
135
  }
136
+ return num_end;
137
+ }
138
+ /** Parse a dimension string into value and unit, e.g. "100px" → { value: 100, unit: "px" } or "2%" → { value: 2, unit: "%" } */
139
+ function parse_dimension(text) {
140
+ let num_end = dimension_number_end(text);
116
141
  let num_str = text.substring(0, num_end);
117
142
  let unit = text.substring(num_end);
118
143
  return {
@@ -121,4 +146,4 @@ function parse_dimension(text) {
121
146
  };
122
147
  }
123
148
  //#endregion
124
- export { is_whitespace as a, str_starts_with as c, is_vendor_prefixed as i, strip_vendor_prefix as l, is_combinator as n, str_equals as o, is_custom as r, str_index_of as s, parse_dimension as t };
149
+ export { is_vendor_prefixed as a, str_equals_range as c, strip_vendor_prefix as d, is_custom as i, str_index_of as l, parse_dimension as n, is_whitespace as o, is_combinator as r, str_equals as s, dimension_number_end as t, str_starts_with as u };
@@ -1,8 +1,16 @@
1
1
  //#region src/parse-dimension.d.ts
2
+ /**
3
+ * Find where a dimension's numeric part ends, e.g. 3 for "100px" or 2 for "2%".
4
+ * No allocation — callers that only need `value` or only `unit` can slice just
5
+ * the part they want instead of going through `parse_dimension`'s object + two
6
+ * substrings for both.
7
+ * @internal
8
+ */
9
+ declare function dimension_number_end(text: string): number;
2
10
  /** Parse a dimension string into value and unit, e.g. "100px" → { value: 100, unit: "px" } or "2%" → { value: 2, unit: "%" } */
3
11
  declare function parse_dimension(text: string): {
4
12
  value: number;
5
13
  unit: string;
6
14
  };
7
15
  //#endregion
8
- export { parse_dimension };
16
+ export { dimension_number_end, parse_dimension };
@@ -1,2 +1,2 @@
1
- import { t as parse_dimension } from "./parse-dimension-ouWXNHdx.js";
2
- export { parse_dimension };
1
+ import { n as parse_dimension, t as dimension_number_end } from "./parse-dimension-CQELWb5z.js";
2
+ export { dimension_number_end, parse_dimension };
@@ -1,7 +1,7 @@
1
1
  import { t as Lexer } from "./tokenize-DK24ACbY.js";
2
2
  import { l as CSSDataArena } from "./arena-e9O_g2AN.js";
3
- import { a as is_whitespace, n as is_combinator, o as str_equals } from "./parse-dimension-ouWXNHdx.js";
4
- import { t as CSSNode } from "./css-node-BmD2JJLr.js";
3
+ import { c as str_equals_range, o as is_whitespace, r as is_combinator } from "./parse-dimension-CQELWb5z.js";
4
+ import { t as CSSNode } from "./css-node-C6TLE3qd.js";
5
5
  import { ANplusBParser } from "./parse-anplusb.js";
6
6
  //#region src/parse-utils.ts
7
7
  /** @internal */
@@ -424,26 +424,23 @@ var SelectorParser = class {
424
424
  this.arena.set_content_start_delta(node, func_name_start - start);
425
425
  this.arena.set_content_length(node, func_name_end - func_name_start);
426
426
  this.arena.set_flag(node, 64);
427
- if (content_end > content_start) {
428
- let func_name_substr = this.source.substring(func_name_start, func_name_end);
429
- if (this.is_nth_pseudo(func_name_substr)) {
430
- let child = this.parse_nth_expression(content_start, content_end);
431
- if (child !== null) this.arena.set_first_child(node, child);
432
- } else if (str_equals("lang", func_name_substr)) this.parse_lang_identifiers(content_start, content_end, node);
433
- else {
434
- let saved_selector_end = this.selector_end;
435
- const saved = this.lexer.save_position();
436
- let allow_relative = str_equals("has", func_name_substr);
437
- let child_selector = this.parse_selector(content_start, content_end, this.lexer.line, this.lexer.column, allow_relative);
438
- this.selector_end = saved_selector_end;
439
- this.lexer.restore_position(saved);
440
- if (child_selector !== null) this.arena.set_first_child(node, child_selector);
441
- }
427
+ if (content_end > content_start) if (this.is_nth_pseudo(func_name_start, func_name_end)) {
428
+ let child = this.parse_nth_expression(content_start, content_end);
429
+ if (child !== null) this.arena.set_first_child(node, child);
430
+ } else if (str_equals_range(this.source, func_name_start, func_name_end, "lang")) this.parse_lang_identifiers(content_start, content_end, node);
431
+ else {
432
+ let saved_selector_end = this.selector_end;
433
+ const saved = this.lexer.save_position();
434
+ let allow_relative = str_equals_range(this.source, func_name_start, func_name_end, "has");
435
+ let child_selector = this.parse_selector(content_start, content_end, this.lexer.line, this.lexer.column, allow_relative);
436
+ this.selector_end = saved_selector_end;
437
+ this.lexer.restore_position(saved);
438
+ if (child_selector !== null) this.arena.set_first_child(node, child_selector);
442
439
  }
443
440
  return node;
444
441
  }
445
- is_nth_pseudo(name) {
446
- return str_equals("nth-child", name) || str_equals("nth-last-child", name) || str_equals("nth-of-type", name) || str_equals("nth-last-of-type", name) || str_equals("nth-col", name) || str_equals("nth-last-col", name);
442
+ is_nth_pseudo(start, end) {
443
+ return str_equals_range(this.source, start, end, "nth-child") || str_equals_range(this.source, start, end, "nth-last-child") || str_equals_range(this.source, start, end, "nth-of-type") || str_equals_range(this.source, start, end, "nth-last-of-type") || str_equals_range(this.source, start, end, "nth-col") || str_equals_range(this.source, start, end, "nth-last-col");
447
444
  }
448
445
  parse_lang_identifiers(start, end, parent_node) {
449
446
  const saved_position = this.lexer.save_position();
@@ -1,2 +1,2 @@
1
- import { n as parse_selector, r as parse_selector_list, t as SelectorParser } from "./parse-selector-DMduLN4o.js";
1
+ import { n as parse_selector, r as parse_selector_list, t as SelectorParser } from "./parse-selector-Ce5HUZJ5.js";
2
2
  export { SelectorParser, parse_selector, parse_selector_list };
@@ -1,6 +1,6 @@
1
1
  import { l as CSSDataArena } from "./arena-e9O_g2AN.js";
2
- import { t as CSSNode } from "./css-node-BmD2JJLr.js";
3
- import { t as ValueNodeParser } from "./value-node-parser-3ET5Z4Rf.js";
2
+ import { t as CSSNode } from "./css-node-C6TLE3qd.js";
3
+ import { t as ValueNodeParser } from "./value-node-parser-DfkneBdM.js";
4
4
  //#region src/parse-value.ts
5
5
  /** @internal */
6
6
  var ValueParser = class {
package/dist/parse.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as Lexer } from "./tokenize-DK24ACbY.js";
2
2
  import { l as CSSDataArena } from "./arena-e9O_g2AN.js";
3
- import { t as CSSNode } from "./css-node-BmD2JJLr.js";
4
- import { a as skip_whitespace_and_comments_backward, s as trim_boundaries, t as SelectorParser } from "./parse-selector-DMduLN4o.js";
3
+ import { t as CSSNode } from "./css-node-C6TLE3qd.js";
4
+ import { a as skip_whitespace_and_comments_backward, s as trim_boundaries, t as SelectorParser } from "./parse-selector-Ce5HUZJ5.js";
5
5
  import { AtRulePreludeParser } from "./parse-atrule-prelude.js";
6
6
  import { DeclarationParser } from "./parse-declaration.js";
7
7
  //#region src/parse.ts
@@ -1,7 +1,7 @@
1
1
  import { t as Lexer } from "./tokenize-DK24ACbY.js";
2
2
  import "./arena-e9O_g2AN.js";
3
- import { a as is_whitespace, o as str_equals } from "./parse-dimension-ouWXNHdx.js";
4
- import { i as find_colon_at_depth_zero, o as skip_whitespace_and_comments_forward, s as trim_boundaries, t as SelectorParser } from "./parse-selector-DMduLN4o.js";
3
+ import { c as str_equals_range, s as str_equals } from "./parse-dimension-CQELWb5z.js";
4
+ import { i as find_colon_at_depth_zero, o as skip_whitespace_and_comments_forward, s as trim_boundaries, t as SelectorParser } from "./parse-selector-Ce5HUZJ5.js";
5
5
  //#region src/parse-condition.ts
6
6
  /** @internal */
7
7
  var ConditionParser = class {
@@ -316,8 +316,9 @@ var ValueNodeParser = class ValueNodeParser {
316
316
  while (this.lexer.pos < this.end) {
317
317
  this.lexer.next_token_fast(false);
318
318
  if (this.lexer.token_start >= this.end) break;
319
- if (this.lexer.token_type === 26) break;
320
- if (this.is_whitespace_inline()) continue;
319
+ let token_type = this.lexer.token_type;
320
+ if (token_type === 26) break;
321
+ if (token_type === 13) continue;
321
322
  let node = this.parse_value_node();
322
323
  if (node !== null) {
323
324
  if (first_node === 0) first_node = node;
@@ -328,11 +329,6 @@ var ValueNodeParser = class ValueNodeParser {
328
329
  this.last_chain_node = last_node;
329
330
  return first_node;
330
331
  }
331
- is_whitespace_inline() {
332
- if (this.lexer.token_start >= this.lexer.token_end) return false;
333
- for (let i = this.lexer.token_start; i < this.lexer.token_end; i++) if (!is_whitespace(this.source.charCodeAt(i))) return false;
334
- return true;
335
- }
336
332
  parse_value_node() {
337
333
  let token_type = this.lexer.token_type;
338
334
  let start = this.lexer.token_start;
@@ -390,15 +386,15 @@ var ValueNodeParser = class ValueNodeParser {
390
386
  }
391
387
  parse_function_node(start, end) {
392
388
  let name_end = end - 1;
393
- let func_name_substr = this.source.substring(start, name_end);
394
- if (str_equals("if", func_name_substr)) return this.parse_if_function_node(start, end);
395
- let node = this.arena.create_node(str_equals("url", func_name_substr) ? 18 : 15, start, 0, this.lexer.token_line, this.lexer.token_column);
389
+ if (str_equals_range(this.source, start, name_end, "if")) return this.parse_if_function_node(start, end);
390
+ let is_url = str_equals_range(this.source, start, name_end, "url");
391
+ let node = this.arena.create_node(is_url ? 18 : 15, start, 0, this.lexer.token_line, this.lexer.token_column);
396
392
  this.arena.set_content_start_delta(node, 0);
397
393
  this.arena.set_content_length(node, name_end - start);
398
- if (str_equals("url", func_name_substr) || str_equals("src", func_name_substr)) {
394
+ if (is_url || str_equals_range(this.source, start, name_end, "src")) {
399
395
  let save_pos = this.lexer.save_position();
400
396
  this.lexer.next_token_fast(false);
401
- while (this.is_whitespace_inline() && this.lexer.pos < this.end) this.lexer.next_token_fast(false);
397
+ while (this.lexer.token_type === 13 && this.lexer.pos < this.end) this.lexer.next_token_fast(false);
402
398
  let first_token_type = this.lexer.token_type;
403
399
  this.lexer.restore_position(save_pos);
404
400
  if (first_token_type === 5) {} else {
@@ -435,7 +431,7 @@ var ValueNodeParser = class ValueNodeParser {
435
431
  break;
436
432
  }
437
433
  }
438
- if (this.is_whitespace_inline()) continue;
434
+ if (token_type === 13) continue;
439
435
  let arg_node = this.parse_value_node();
440
436
  if (arg_node !== null) {
441
437
  if (first_arg === 0) first_arg = arg_node;
@@ -482,7 +478,7 @@ var ValueNodeParser = class ValueNodeParser {
482
478
  func_end = this.lexer.token_end;
483
479
  break;
484
480
  }
485
- if (this.is_whitespace_inline() || tt === 17 || tt === 16) continue;
481
+ if (tt === 13 || tt === 17 || tt === 16) continue;
486
482
  let branch_start = this.lexer.token_start;
487
483
  let branch_line = this.lexer.token_line;
488
484
  let branch_col = this.lexer.token_column;
@@ -495,7 +491,7 @@ var ValueNodeParser = class ValueNodeParser {
495
491
  let t = this.lexer.token_type;
496
492
  if (t === 26) break;
497
493
  if (this.lexer.token_start >= this.end) break;
498
- if (this.is_whitespace_inline()) continue;
494
+ if (t === 13) continue;
499
495
  if (t === 16) {
500
496
  colon_found = true;
501
497
  break;
@@ -517,7 +513,7 @@ var ValueNodeParser = class ValueNodeParser {
517
513
  let t = this.lexer.token_type;
518
514
  if (t === 26) break;
519
515
  if (this.lexer.token_start >= this.end) break;
520
- if (this.is_whitespace_inline()) continue;
516
+ if (t === 13) continue;
521
517
  if (t === 17) break;
522
518
  if (t === 22) {
523
519
  content_end = this.lexer.token_start;
@@ -568,7 +564,7 @@ var ValueNodeParser = class ValueNodeParser {
568
564
  while (this.lexer.pos < this.end) {
569
565
  this.lexer.next_token_fast(false);
570
566
  if (this.lexer.token_start >= this.end) return 26;
571
- if (this.is_whitespace_inline()) continue;
567
+ if (this.lexer.token_type === 13) continue;
572
568
  return this.lexer.token_type;
573
569
  }
574
570
  return 26;
@@ -693,8 +689,9 @@ var ValueNodeParser = class ValueNodeParser {
693
689
  while (this.lexer.pos < this.end) {
694
690
  this.lexer.next_token_fast(false);
695
691
  if (this.lexer.token_start >= this.end) break;
696
- if (this.lexer.token_type === 26) break;
697
- if (this.is_whitespace_inline()) continue;
692
+ let token_type = this.lexer.token_type;
693
+ if (token_type === 26) break;
694
+ if (token_type === 13) continue;
698
695
  let node = this.parse_value_node();
699
696
  if (node !== null) nodes.push(node);
700
697
  }
@@ -720,7 +717,7 @@ var ValueNodeParser = class ValueNodeParser {
720
717
  break;
721
718
  }
722
719
  }
723
- if (this.is_whitespace_inline()) continue;
720
+ if (token_type === 13) continue;
724
721
  let child_node = this.parse_value_node();
725
722
  if (child_node !== null) {
726
723
  if (first_child === 0) first_child = child_node;
package/dist/walk.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./arena-e9O_g2AN.js";
2
- import { t as CSSNode } from "./css-node-BmD2JJLr.js";
2
+ import { t as CSSNode } from "./css-node-C6TLE3qd.js";
3
3
  import "./constants.js";
4
4
  //#region src/walk.ts
5
5
  const SKIP = Symbol("SKIP");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectwallace/css-parser",
3
- "version": "0.18.6",
3
+ "version": "0.18.7",
4
4
  "description": "High-performance CSS lexer and parser, optimized for CSS inspection and analysis",
5
5
  "keywords": [
6
6
  "ast",