Home / Function/ css_visitors.NestingSelector() — svelte Function Reference

css_visitors.NestingSelector() — svelte Function Reference

Architecture documentation for the css_visitors.NestingSelector() function in css-analyze.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  e4ee3a71_02f5_6194_1231_b157ebbed4c9["css_visitors.NestingSelector()"]
  ca006f7f_f554_f529_8a19_abaaa45dda8d["css-analyze.js"]
  e4ee3a71_02f5_6194_1231_b157ebbed4c9 -->|defined in| ca006f7f_f554_f529_8a19_abaaa45dda8d
  57aa9765_0fe8_7df3_d176_f4753f7d7c97["css_nesting_selector_invalid_placement()"]
  e4ee3a71_02f5_6194_1231_b157ebbed4c9 -->|calls| 57aa9765_0fe8_7df3_d176_f4753f7d7c97
  f2097f76_79f5_e830_d0c1_53a0e3cec450["css_global_block_invalid_modifier_start()"]
  e4ee3a71_02f5_6194_1231_b157ebbed4c9 -->|calls| f2097f76_79f5_e830_d0c1_53a0e3cec450
  style e4ee3a71_02f5_6194_1231_b157ebbed4c9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/2-analyze/css/css-analyze.js lines 287–315

	NestingSelector(node, context) {
		const rule = /** @type {AST.CSS.Rule} */ (context.state.rule);
		const parent_rule = rule.metadata.parent_rule;

		if (!parent_rule) {
			// https://developer.mozilla.org/en-US/docs/Web/CSS/Nesting_selector#using_outside_nested_rule
			const children = rule.prelude.children;
			const selectors = children[0].children[0].selectors;
			if (
				children.length > 1 ||
				selectors.length > 1 ||
				selectors[0].type !== 'PseudoClassSelector' ||
				selectors[0].name !== 'global' ||
				selectors[0].args?.children[0]?.children[0].selectors[0] !== node
			) {
				e.css_nesting_selector_invalid_placement(node);
			}
		} else if (
			// :global { &.foo { ... } } is invalid
			parent_rule.metadata.is_global_block &&
			!parent_rule.metadata.parent_rule &&
			parent_rule.prelude.children[0].children.length === 1 &&
			parent_rule.prelude.children[0].children[0].selectors.length === 1
		) {
			e.css_global_block_invalid_modifier_start(node);
		}

		context.next();
	}

Domain

Subdomains

Frequently Asked Questions

What does css_visitors.NestingSelector() do?
css_visitors.NestingSelector() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/2-analyze/css/css-analyze.js.
Where is css_visitors.NestingSelector() defined?
css_visitors.NestingSelector() is defined in packages/svelte/src/compiler/phases/2-analyze/css/css-analyze.js at line 287.
What does css_visitors.NestingSelector() call?
css_visitors.NestingSelector() calls 2 function(s): css_global_block_invalid_modifier_start, css_nesting_selector_invalid_placement.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free