@projectwallace/css-parser 0.18.11 → 0.18.12

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
@@ -2,7 +2,7 @@ import { A as PARENTHESIS, B as STYLESHEET, C as MEDIA_QUERY, D as NTH_SELECTOR,
2
2
  import { NODE_TYPES } from "./constants.js";
3
3
  import { C as TOKEN_SEMICOLON, D as TOKEN_WHITESPACE, E as TOKEN_URL, O as Token, S as TOKEN_RIGHT_PAREN, T as TOKEN_UNICODE_RANGE, _ as TOKEN_LEFT_PAREN, a as TOKEN_CDO, b as TOKEN_RIGHT_BRACE, c as TOKEN_COMMENT, d as TOKEN_EOF, f as TOKEN_FUNCTION, g as TOKEN_LEFT_BRACKET, h as TOKEN_LEFT_BRACE, i as TOKEN_CDC, k as TokenType, l as TOKEN_DELIM, m as TOKEN_IDENT, n as TOKEN_BAD_STRING, o as TOKEN_COLON, p as TOKEN_HASH, r as TOKEN_BAD_URL, s as TOKEN_COMMA, t as TOKEN_AT_KEYWORD, u as TOKEN_DIMENSION, v as TOKEN_NUMBER, w as TOKEN_STRING, x as TOKEN_RIGHT_BRACKET, y as TOKEN_PERCENTAGE } from "./token-types-Bqsf5FX-.js";
4
4
  import { CommentInfo, LexerPosition, tokenize } from "./tokenize.js";
5
- import { $ as is_atrule, A as Operator, At as is_pseudo_element_selector, B as SelectorList, Bt as is_type_selector, C as MediaFeature, Ct as is_nth_selector, D as NthOfSelector, Dt as is_prelude_operator, E as NestingSelector, Et as is_parenthesis, F as PseudoElementSelector, Ft as is_selector_list, G as SupportsQuery, Gt as CloneOptions, H as String, Ht as is_universal_selector, I as Ratio, It as is_string, J as UnicodeRange, K as ToPlain, Kt as PlainCSSNode, L as Raw, Lt as is_stylesheet, M as PreludeOperator, Mt as is_raw, N as PreludeSelectorList, Nt as is_rule, O as NthSelector, Ot as is_prelude_selectorlist, P as PseudoClassSelector, Pt as is_selector, Q as WithChildren, R as Rule, Rt as is_supports_declaration, S as LayerName, St as is_nth_of_selector, T as MediaType, Tt as is_operator, U as StyleSheet, Ut as is_url, V as SelectorNode, Vt as is_unicode_range, W as SupportsDeclaration, Wt as is_value, X as Url, Y as UniversalSelector, Z as Value, _ as IdSelector, _t as is_layer_name, a as Block, at as is_comment, b as IfCondition, bt as is_media_type, c as ClassSelector, ct as is_dimension, d as ContainerQuery, dt as is_hash, et as is_atrule_prelude, f as Declaration, ft as is_id_selector, g as Hash, gt as is_lang_selector, h as Function, ht as is_if_condition, i as AttributeSelector, it as is_combinator, j as Parenthesis, jt as is_ratio, k as Number, kt as is_pseudo_class_selector, l as Combinator, lt as is_feature_range, m as FeatureRange, mt as is_if_branch, n as Atrule, nt as is_block, ot as is_container_query, p as Dimension, pt as is_identifier, q as TypeSelector, r as AtrulePrelude, rt as is_class_selector, s as CSSNode, st as is_declaration, t as AnyNode, tt as is_attribute_selector, u as Comment, ut as is_function, v as Identifier, vt as is_media_feature, w as MediaQuery, wt as is_number, x as LangSelector, xt as is_nesting_selector, y as IfBranch, yt as is_media_query, z as Selector, zt as is_supports_query } from "./node-types-DG8OKqPu.js";
5
+ import { $ as is_atrule, A as Operator, At as is_pseudo_element_selector, B as SelectorList, Bt as is_type_selector, C as MediaFeature, Ct as is_nth_selector, D as NthOfSelector, Dt as is_prelude_operator, E as NestingSelector, Et as is_parenthesis, F as PseudoElementSelector, Ft as is_selector_list, G as SupportsQuery, Gt as CloneOptions, H as String, Ht as is_universal_selector, I as Ratio, It as is_string, J as UnicodeRange, K as ToPlain, Kt as PlainCSSNode, L as Raw, Lt as is_stylesheet, M as PreludeOperator, Mt as is_raw, N as PreludeSelectorList, Nt as is_rule, O as NthSelector, Ot as is_prelude_selectorlist, P as PseudoClassSelector, Pt as is_selector, Q as WithChildren, R as Rule, Rt as is_supports_declaration, S as LayerName, St as is_nth_of_selector, T as MediaType, Tt as is_operator, U as StyleSheet, Ut as is_url, V as SelectorNode, Vt as is_unicode_range, W as SupportsDeclaration, Wt as is_value, X as Url, Y as UniversalSelector, Z as Value, _ as IdSelector, _t as is_layer_name, a as Block, at as is_comment, b as IfCondition, bt as is_media_type, c as ClassSelector, ct as is_dimension, d as ContainerQuery, dt as is_hash, et as is_atrule_prelude, f as Declaration, ft as is_id_selector, g as Hash, gt as is_lang_selector, h as Function, ht as is_if_condition, i as AttributeSelector, it as is_combinator, j as Parenthesis, jt as is_ratio, k as Number, kt as is_pseudo_class_selector, l as Combinator, lt as is_feature_range, m as FeatureRange, mt as is_if_branch, n as Atrule, nt as is_block, ot as is_container_query, p as Dimension, pt as is_identifier, q as TypeSelector, r as AtrulePrelude, rt as is_class_selector, s as CSSNode, st as is_declaration, t as AnyNode, tt as is_attribute_selector, u as Comment, ut as is_function, v as Identifier, vt as is_media_feature, w as MediaQuery, wt as is_number, x as LangSelector, xt as is_nesting_selector, y as IfBranch, yt as is_media_query, z as Selector, zt as is_supports_query } from "./node-types-CY0JK9_a.js";
6
6
  import { ParserOptions, parse } from "./parse.js";
7
7
  import { parse_selector, parse_selector_list } from "./parse-selector.js";
8
8
  import { parse_atrule_prelude } from "./parse-atrule-prelude.js";
@@ -348,7 +348,7 @@ type PreludeSelectorList = Leaf<typeof PRELUDE_SELECTORLIST, 'PreludeSelectorLis
348
348
  readonly value: string;
349
349
  }>;
350
350
  type PreludeOperator = Leaf<typeof PRELUDE_OPERATOR, 'Operator'>;
351
- type FeatureRange = WithClone<CSSNode & WithChildren<Dimension | PreludeOperator> & {
351
+ type FeatureRange = WithClone<CSSNode & WithChildren<Dimension | Function | PreludeOperator> & {
352
352
  readonly type: typeof FEATURE_RANGE;
353
353
  readonly type_name: 'MediaFeatureRange';
354
354
  /** The feature name in a range comparison, e.g. "width" from "(width >= 400px)" */
@@ -1,2 +1,2 @@
1
- import { $ as is_atrule, A as Operator, At as is_pseudo_element_selector, B as SelectorList, Bt as is_type_selector, C as MediaFeature, Ct as is_nth_selector, D as NthOfSelector, Dt as is_prelude_operator, E as NestingSelector, Et as is_parenthesis, F as PseudoElementSelector, Ft as is_selector_list, G as SupportsQuery, Gt as CloneOptions, H as String, Ht as is_universal_selector, I as Ratio, It as is_string, J as UnicodeRange, K as ToPlain, Kt as PlainCSSNode, L as Raw, Lt as is_stylesheet, M as PreludeOperator, Mt as is_raw, N as PreludeSelectorList, Nt as is_rule, O as NthSelector, Ot as is_prelude_selectorlist, P as PseudoClassSelector, Pt as is_selector, Q as WithChildren, R as Rule, Rt as is_supports_declaration, S as LayerName, St as is_nth_of_selector, T as MediaType, Tt as is_operator, U as StyleSheet, Ut as is_url, V as SelectorNode, Vt as is_unicode_range, W as SupportsDeclaration, Wt as is_value, X as Url, Y as UniversalSelector, Z as Value, _ as IdSelector, _t as is_layer_name, a as Block, at as is_comment, b as IfCondition, bt as is_media_type, c as ClassSelector, ct as is_dimension, d as ContainerQuery, dt as is_hash, et as is_atrule_prelude, f as Declaration, ft as is_id_selector, g as Hash, gt as is_lang_selector, h as Function, ht as is_if_condition, i as AttributeSelector, it as is_combinator, j as Parenthesis, jt as is_ratio, k as Number, kt as is_pseudo_class_selector, l as Combinator, lt as is_feature_range, m as FeatureRange, mt as is_if_branch, n as Atrule, nt as is_block, o as BlockChild, ot as is_container_query, p as Dimension, pt as is_identifier, q as TypeSelector, r as AtrulePrelude, rt as is_class_selector, s as CSSNode, st as is_declaration, t as AnyNode, tt as is_attribute_selector, u as Comment, ut as is_function, v as Identifier, vt as is_media_feature, w as MediaQuery, wt as is_number, x as LangSelector, xt as is_nesting_selector, y as IfBranch, yt as is_media_query, z as Selector, zt as is_supports_query } from "./node-types-DG8OKqPu.js";
1
+ import { $ as is_atrule, A as Operator, At as is_pseudo_element_selector, B as SelectorList, Bt as is_type_selector, C as MediaFeature, Ct as is_nth_selector, D as NthOfSelector, Dt as is_prelude_operator, E as NestingSelector, Et as is_parenthesis, F as PseudoElementSelector, Ft as is_selector_list, G as SupportsQuery, Gt as CloneOptions, H as String, Ht as is_universal_selector, I as Ratio, It as is_string, J as UnicodeRange, K as ToPlain, Kt as PlainCSSNode, L as Raw, Lt as is_stylesheet, M as PreludeOperator, Mt as is_raw, N as PreludeSelectorList, Nt as is_rule, O as NthSelector, Ot as is_prelude_selectorlist, P as PseudoClassSelector, Pt as is_selector, Q as WithChildren, R as Rule, Rt as is_supports_declaration, S as LayerName, St as is_nth_of_selector, T as MediaType, Tt as is_operator, U as StyleSheet, Ut as is_url, V as SelectorNode, Vt as is_unicode_range, W as SupportsDeclaration, Wt as is_value, X as Url, Y as UniversalSelector, Z as Value, _ as IdSelector, _t as is_layer_name, a as Block, at as is_comment, b as IfCondition, bt as is_media_type, c as ClassSelector, ct as is_dimension, d as ContainerQuery, dt as is_hash, et as is_atrule_prelude, f as Declaration, ft as is_id_selector, g as Hash, gt as is_lang_selector, h as Function, ht as is_if_condition, i as AttributeSelector, it as is_combinator, j as Parenthesis, jt as is_ratio, k as Number, kt as is_pseudo_class_selector, l as Combinator, lt as is_feature_range, m as FeatureRange, mt as is_if_branch, n as Atrule, nt as is_block, o as BlockChild, ot as is_container_query, p as Dimension, pt as is_identifier, q as TypeSelector, r as AtrulePrelude, rt as is_class_selector, s as CSSNode, st as is_declaration, t as AnyNode, tt as is_attribute_selector, u as Comment, ut as is_function, v as Identifier, vt as is_media_feature, w as MediaQuery, wt as is_number, x as LangSelector, xt as is_nesting_selector, y as IfBranch, yt as is_media_query, z as Selector, zt as is_supports_query } from "./node-types-CY0JK9_a.js";
2
2
  export { AnyNode, Atrule, AtrulePrelude, AttributeSelector, Block, BlockChild, CSSNode, ClassSelector, type CloneOptions, Combinator, Comment, ContainerQuery, Declaration, Dimension, FeatureRange, Function, Hash, IdSelector, Identifier, IfBranch, IfCondition, LangSelector, LayerName, MediaFeature, MediaQuery, MediaType, NestingSelector, NthOfSelector, NthSelector, Number, Operator, Parenthesis, type PlainCSSNode, PreludeOperator, PreludeSelectorList, PseudoClassSelector, PseudoElementSelector, Ratio, Raw, Rule, Selector, SelectorList, SelectorNode, String, StyleSheet, SupportsDeclaration, SupportsQuery, ToPlain, TypeSelector, UnicodeRange, UniversalSelector, Url, Value, WithChildren, is_atrule, is_atrule_prelude, is_attribute_selector, is_block, is_class_selector, is_combinator, is_comment, is_container_query, is_declaration, is_dimension, is_feature_range, is_function, is_hash, is_id_selector, is_identifier, is_if_branch, is_if_condition, is_lang_selector, is_layer_name, is_media_feature, is_media_query, is_media_type, is_nesting_selector, is_nth_of_selector, is_nth_selector, is_number, is_operator, is_parenthesis, is_prelude_operator, is_prelude_selectorlist, is_pseudo_class_selector, is_pseudo_element_selector, is_ratio, is_raw, is_rule, is_selector, is_selector_list, is_string, is_stylesheet, is_supports_declaration, is_supports_query, is_type_selector, is_unicode_range, is_universal_selector, is_url, is_value };
@@ -1,5 +1,5 @@
1
1
  import { l as CSSDataArena } from "./arena-DvT75bvK.js";
2
- import { O as NthSelector } from "./node-types-DG8OKqPu.js";
2
+ import { O as NthSelector } from "./node-types-CY0JK9_a.js";
3
3
  //#region src/parse-anplusb.d.ts
4
4
  /** @internal */
5
5
  export declare class ANplusBParser {
@@ -1,5 +1,5 @@
1
1
  import { l as CSSDataArena } from "./arena-DvT75bvK.js";
2
- import { t as AnyNode } from "./node-types-DG8OKqPu.js";
2
+ import { t as AnyNode } from "./node-types-CY0JK9_a.js";
3
3
  //#region src/parse-atrule-prelude.d.ts
4
4
  /** @internal */
5
5
  export declare class AtRulePreludeParser {
@@ -4,7 +4,7 @@ import { l as CSSDataArena } from "./arena-Bsf96CQK.js";
4
4
  import { c as str_equals_range, d as strip_vendor_prefix, t as is_and_or_not_range } from "./string-utils-DiRRd28d.js";
5
5
  import { t as CSSNode } from "./css-node-yoUdFtNg.js";
6
6
  import { s as trim_boundaries } from "./parse-selector-CqIpnBrQ.js";
7
- import { n as ConditionParser, t as ValueNodeParser } from "./value-node-parser-D0qnA_bD.js";
7
+ import { n as ConditionParser, t as ValueNodeParser } from "./value-node-parser-BBwBxFR_.js";
8
8
  //#region src/parse-atrule-prelude.ts
9
9
  /** @internal */
10
10
  var AtRulePreludeParser = class {
@@ -1,6 +1,6 @@
1
1
  import { l as CSSDataArena } from "./arena-DvT75bvK.js";
2
2
  import { Lexer } from "./tokenize.js";
3
- import { f as Declaration } from "./node-types-DG8OKqPu.js";
3
+ import { f as Declaration } from "./node-types-CY0JK9_a.js";
4
4
  //#region src/parse-declaration.d.ts
5
5
  /** @internal */
6
6
  export declare class DeclarationParser {
@@ -1,5 +1,5 @@
1
1
  import { l as CSSDataArena } from "./arena-DvT75bvK.js";
2
- import { B as SelectorList, z as Selector } from "./node-types-DG8OKqPu.js";
2
+ import { B as SelectorList, z as Selector } from "./node-types-CY0JK9_a.js";
3
3
  //#region src/parse-selector.d.ts
4
4
  /** @internal */
5
5
  export declare class SelectorParser {
@@ -1,5 +1,5 @@
1
1
  import { l as CSSDataArena } from "./arena-DvT75bvK.js";
2
- import { Z as Value } from "./node-types-DG8OKqPu.js";
2
+ import { Z as Value } from "./node-types-CY0JK9_a.js";
3
3
  //#region src/parse-value.d.ts
4
4
  /** @internal */
5
5
  export declare class ValueParser {
@@ -1,6 +1,6 @@
1
1
  import { l as CSSDataArena } from "./arena-Bsf96CQK.js";
2
2
  import { t as CSSNode } from "./css-node-yoUdFtNg.js";
3
- import { t as ValueNodeParser } from "./value-node-parser-D0qnA_bD.js";
3
+ import { t as ValueNodeParser } from "./value-node-parser-BBwBxFR_.js";
4
4
  //#region src/parse-value.ts
5
5
  /** @internal */
6
6
  var ValueParser = class {
package/dist/parse.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { l as CSSDataArena } from "./arena-DvT75bvK.js";
2
2
  import { CommentInfo } from "./tokenize.js";
3
- import { U as StyleSheet } from "./node-types-DG8OKqPu.js";
3
+ import { U as StyleSheet } from "./node-types-CY0JK9_a.js";
4
4
  //#region src/parse.d.ts
5
5
  export interface ParserOptions {
6
6
  parse_values?: boolean;
package/dist/parse.js CHANGED
@@ -8,8 +8,28 @@ import { DeclarationParser } from "./parse-declaration.js";
8
8
  //#region src/parse.ts
9
9
  const DECLARATION_AT_RULES = /* @__PURE__ */ new Set([
10
10
  "font-face",
11
- "font-feature-values",
12
- "page",
11
+ "styleset",
12
+ "stylistic",
13
+ "character-variant",
14
+ "swash",
15
+ "ornaments",
16
+ "annotation",
17
+ "top-left-corner",
18
+ "top-left",
19
+ "top-center",
20
+ "top-right",
21
+ "top-right-corner",
22
+ "bottom-left-corner",
23
+ "bottom-left",
24
+ "bottom-center",
25
+ "bottom-right",
26
+ "bottom-right-corner",
27
+ "left-top",
28
+ "left-middle",
29
+ "left-bottom",
30
+ "right-top",
31
+ "right-middle",
32
+ "right-bottom",
13
33
  "property",
14
34
  "counter-style",
15
35
  "color-profile",
@@ -109,7 +109,7 @@ var ConditionParser = class {
109
109
  const ch = this.source.charCodeAt(pos);
110
110
  if (ch === 60 || ch === 62 || ch === 61) {
111
111
  const op_start = pos++;
112
- if (pos < content_end && this.source.charCodeAt(pos) === 61) pos++;
112
+ if (ch !== 61 && pos < content_end && this.source.charCodeAt(pos) === 61) pos++;
113
113
  const op = this.create_node(38, op_start, pos);
114
114
  if (first_child === 0) first_child = op;
115
115
  else this.arena.set_next_sibling(last_child, op);
@@ -122,7 +122,10 @@ var ConditionParser = class {
122
122
  feature_name_start = this.lexer.token_start;
123
123
  feature_name_end = this.lexer.token_end;
124
124
  } else {
125
- const value_first = this.parse_feature_value(this.lexer.token_start, this.lexer.token_end);
125
+ const value_start = this.lexer.token_start;
126
+ let value_end = this.lexer.token_end;
127
+ if (this.lexer.token_type === 2 && this.scan_matching_paren()) value_end = this.paren_close_end;
128
+ const value_first = this.parse_feature_value(value_start, value_end);
126
129
  if (value_first !== 0) {
127
130
  if (first_child === 0) first_child = value_first;
128
131
  else this.arena.set_next_sibling(last_child, value_first);
package/dist/walk.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { s as CSSNode, t as AnyNode } from "./node-types-DG8OKqPu.js";
1
+ import { s as CSSNode, t as AnyNode } from "./node-types-CY0JK9_a.js";
2
2
  //#region src/walk.d.ts
3
3
  export declare const SKIP: unique symbol;
4
4
  export declare const BREAK: unique symbol;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectwallace/css-parser",
3
- "version": "0.18.11",
3
+ "version": "0.18.12",
4
4
  "description": "High-performance CSS lexer and parser, optimized for CSS inspection and analysis",
5
5
  "keywords": [
6
6
  "ast",