Skip to content

Commit 8cbe8c1

Browse files
authored
fix: bundle CSS types (#11067)
* make Css a proper namespace * changeset
1 parent ae3d472 commit 8cbe8c1

File tree

6 files changed

+403
-206
lines changed

6 files changed

+403
-206
lines changed

.changeset/three-rice-tie.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: bundle CSS types

packages/svelte/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
"@rollup/plugin-terser": "^0.4.4",
117117
"@rollup/plugin-virtual": "^3.0.2",
118118
"@types/aria-query": "^5.0.4",
119-
"dts-buddy": "^0.4.4",
119+
"dts-buddy": "^0.4.6",
120120
"esbuild": "^0.19.11",
121121
"knip": "^4.2.1",
122122
"rollup": "^4.9.5",

packages/svelte/src/compiler/types/css.d.ts

Lines changed: 146 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -1,147 +1,149 @@
1-
export interface BaseNode {
2-
start: number;
3-
end: number;
4-
}
5-
6-
export interface StyleSheet extends BaseNode {
7-
type: 'StyleSheet';
8-
attributes: any[]; // TODO
9-
children: Array<Atrule | Rule>;
10-
content: {
1+
export namespace Css {
2+
export interface BaseNode {
113
start: number;
124
end: number;
13-
styles: string;
14-
};
15-
}
16-
17-
export interface Atrule extends BaseNode {
18-
type: 'Atrule';
19-
name: string;
20-
prelude: string;
21-
block: Block | null;
22-
}
23-
24-
export interface Rule extends BaseNode {
25-
type: 'Rule';
26-
prelude: SelectorList;
27-
block: Block;
28-
metadata: {
29-
parent_rule: null | Rule;
30-
has_local_selectors: boolean;
31-
};
32-
}
33-
34-
export interface SelectorList extends BaseNode {
35-
type: 'SelectorList';
36-
children: ComplexSelector[];
37-
}
38-
39-
export interface ComplexSelector extends BaseNode {
40-
type: 'ComplexSelector';
41-
children: RelativeSelector[];
42-
metadata: {
43-
rule: null | Rule;
44-
used: boolean;
45-
};
5+
}
6+
7+
export interface StyleSheet extends BaseNode {
8+
type: 'StyleSheet';
9+
attributes: any[]; // TODO
10+
children: Array<Atrule | Rule>;
11+
content: {
12+
start: number;
13+
end: number;
14+
styles: string;
15+
};
16+
}
17+
18+
export interface Atrule extends BaseNode {
19+
type: 'Atrule';
20+
name: string;
21+
prelude: string;
22+
block: Block | null;
23+
}
24+
25+
export interface Rule extends BaseNode {
26+
type: 'Rule';
27+
prelude: SelectorList;
28+
block: Block;
29+
metadata: {
30+
parent_rule: null | Rule;
31+
has_local_selectors: boolean;
32+
};
33+
}
34+
35+
export interface SelectorList extends BaseNode {
36+
type: 'SelectorList';
37+
children: ComplexSelector[];
38+
}
39+
40+
export interface ComplexSelector extends BaseNode {
41+
type: 'ComplexSelector';
42+
children: RelativeSelector[];
43+
metadata: {
44+
rule: null | Rule;
45+
used: boolean;
46+
};
47+
}
48+
49+
export interface RelativeSelector extends BaseNode {
50+
type: 'RelativeSelector';
51+
combinator: null | Combinator;
52+
selectors: SimpleSelector[];
53+
metadata: {
54+
is_global: boolean;
55+
is_host: boolean;
56+
is_root: boolean;
57+
scoped: boolean;
58+
};
59+
}
60+
61+
export interface TypeSelector extends BaseNode {
62+
type: 'TypeSelector';
63+
name: string;
64+
}
65+
66+
export interface IdSelector extends BaseNode {
67+
type: 'IdSelector';
68+
name: string;
69+
}
70+
71+
export interface ClassSelector extends BaseNode {
72+
type: 'ClassSelector';
73+
name: string;
74+
}
75+
76+
export interface AttributeSelector extends BaseNode {
77+
type: 'AttributeSelector';
78+
name: string;
79+
matcher: string | null;
80+
value: string | null;
81+
flags: string | null;
82+
}
83+
84+
export interface PseudoElementSelector extends BaseNode {
85+
type: 'PseudoElementSelector';
86+
name: string;
87+
}
88+
89+
export interface PseudoClassSelector extends BaseNode {
90+
type: 'PseudoClassSelector';
91+
name: string;
92+
args: SelectorList | null;
93+
}
94+
95+
export interface Percentage extends BaseNode {
96+
type: 'Percentage';
97+
value: string;
98+
}
99+
100+
export interface NestingSelector extends BaseNode {
101+
type: 'NestingSelector';
102+
name: '&';
103+
}
104+
105+
export interface Nth extends BaseNode {
106+
type: 'Nth';
107+
value: string;
108+
}
109+
110+
export type SimpleSelector =
111+
| TypeSelector
112+
| IdSelector
113+
| ClassSelector
114+
| AttributeSelector
115+
| PseudoElementSelector
116+
| PseudoClassSelector
117+
| Percentage
118+
| Nth
119+
| NestingSelector;
120+
121+
export interface Combinator extends BaseNode {
122+
type: 'Combinator';
123+
name: string;
124+
}
125+
126+
export interface Block extends BaseNode {
127+
type: 'Block';
128+
children: Array<Declaration | Rule | Atrule>;
129+
}
130+
131+
export interface Declaration extends BaseNode {
132+
type: 'Declaration';
133+
property: string;
134+
value: string;
135+
}
136+
137+
// for zimmerframe
138+
export type Node =
139+
| StyleSheet
140+
| Rule
141+
| Atrule
142+
| SelectorList
143+
| Block
144+
| ComplexSelector
145+
| RelativeSelector
146+
| Combinator
147+
| SimpleSelector
148+
| Declaration;
46149
}
47-
48-
export interface RelativeSelector extends BaseNode {
49-
type: 'RelativeSelector';
50-
combinator: null | Combinator;
51-
selectors: SimpleSelector[];
52-
metadata: {
53-
is_global: boolean;
54-
is_host: boolean;
55-
is_root: boolean;
56-
scoped: boolean;
57-
};
58-
}
59-
60-
export interface TypeSelector extends BaseNode {
61-
type: 'TypeSelector';
62-
name: string;
63-
}
64-
65-
export interface IdSelector extends BaseNode {
66-
type: 'IdSelector';
67-
name: string;
68-
}
69-
70-
export interface ClassSelector extends BaseNode {
71-
type: 'ClassSelector';
72-
name: string;
73-
}
74-
75-
export interface AttributeSelector extends BaseNode {
76-
type: 'AttributeSelector';
77-
name: string;
78-
matcher: string | null;
79-
value: string | null;
80-
flags: string | null;
81-
}
82-
83-
export interface PseudoElementSelector extends BaseNode {
84-
type: 'PseudoElementSelector';
85-
name: string;
86-
}
87-
88-
export interface PseudoClassSelector extends BaseNode {
89-
type: 'PseudoClassSelector';
90-
name: string;
91-
args: SelectorList | null;
92-
}
93-
94-
export interface Percentage extends BaseNode {
95-
type: 'Percentage';
96-
value: string;
97-
}
98-
99-
export interface NestingSelector extends BaseNode {
100-
type: 'NestingSelector';
101-
name: '&';
102-
}
103-
104-
export interface Nth extends BaseNode {
105-
type: 'Nth';
106-
value: string;
107-
}
108-
109-
export type SimpleSelector =
110-
| TypeSelector
111-
| IdSelector
112-
| ClassSelector
113-
| AttributeSelector
114-
| PseudoElementSelector
115-
| PseudoClassSelector
116-
| Percentage
117-
| Nth
118-
| NestingSelector;
119-
120-
export interface Combinator extends BaseNode {
121-
type: 'Combinator';
122-
name: string;
123-
}
124-
125-
export interface Block extends BaseNode {
126-
type: 'Block';
127-
children: Array<Declaration | Rule | Atrule>;
128-
}
129-
130-
export interface Declaration extends BaseNode {
131-
type: 'Declaration';
132-
property: string;
133-
value: string;
134-
}
135-
136-
// for zimmerframe
137-
export type Node =
138-
| StyleSheet
139-
| Rule
140-
| Atrule
141-
| SelectorList
142-
| Block
143-
| ComplexSelector
144-
| RelativeSelector
145-
| Combinator
146-
| SimpleSelector
147-
| Declaration;

packages/svelte/src/compiler/types/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import type { Location } from 'locate-character';
1010
import type { SourceMap } from 'magic-string';
1111
import type { Context } from 'zimmerframe';
1212
import type { Scope } from '../phases/scope.js';
13-
import * as Css from './css.js';
13+
import type { Css } from './css.js';
1414
import type { EachBlock, Namespace, SvelteNode, SvelteOptions } from './template.js';
1515

1616
/** The return value of `compile` from `svelte/compiler` */

0 commit comments

Comments
 (0)