uxml-preview 0.5.1 → 0.6.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.
- package/CHANGELOG.md +126 -4
- package/README.ja.md +84 -0
- package/README.ko.md +84 -0
- package/README.md +46 -502
- package/README.zh-CN.md +84 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +1631 -1364
- package/dist/layout/yoga.d.ts +11 -0
- package/dist/model/types.d.ts +18 -4
- package/dist/render/css-map.d.ts +15 -0
- package/dist/render/fonts.d.ts +21 -0
- package/dist/render/measure.d.ts +9 -0
- package/dist/render/paint.d.ts +5 -0
- package/dist/render/values.d.ts +2 -0
- package/dist/render/visibility.d.ts +20 -0
- package/dist/style/registry.d.ts +5 -1
- package/dist/style/resolve.d.ts +9 -2
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { loadYoga as
|
|
2
|
-
const
|
|
1
|
+
import { loadYoga as pt, PositionType as ue, Direction as De, Edge as te, BoxSizing as ht, FlexDirection as ne, Wrap as oe, Justify as J, Align as P, Display as mt, Overflow as gt } from "yoga-layout/load";
|
|
2
|
+
const Pe = {
|
|
3
3
|
// VisualElement is the base class and carries no class of its own.
|
|
4
4
|
VisualElement: { hasText: !1, classes: [], parts: [] },
|
|
5
5
|
Label: { hasText: !0, classes: ["unity-label"], parts: [] },
|
|
@@ -37,175 +37,175 @@ const je = {
|
|
|
37
37
|
{ name: "unity-content-container", style: { "flex-shrink": "0" } }
|
|
38
38
|
]
|
|
39
39
|
}
|
|
40
|
-
},
|
|
41
|
-
function
|
|
42
|
-
return
|
|
40
|
+
}, de = { hasText: !1, classes: [], parts: [] }, yt = "UXML", bt = /* @__PURE__ */ new Set(["Style", "Template", "AttributeOverrides", "Bindings", "Columns"]);
|
|
41
|
+
function ye(e) {
|
|
42
|
+
return bt.has(e.name.local);
|
|
43
43
|
}
|
|
44
|
-
function
|
|
44
|
+
function X(e) {
|
|
45
45
|
var t;
|
|
46
|
-
if (((t = e.derived) == null ? void 0 : t.kind) === "template-container") return { spec:
|
|
47
|
-
const n =
|
|
48
|
-
return n !== void 0 ? { spec: n, fallback: !1 } :
|
|
46
|
+
if (((t = e.derived) == null ? void 0 : t.kind) === "template-container") return { spec: de, fallback: !1 };
|
|
47
|
+
const n = Pe[e.name.local];
|
|
48
|
+
return n !== void 0 ? { spec: n, fallback: !1 } : vt(e) ? { spec: de, fallback: !1 } : { spec: de, fallback: !0 };
|
|
49
49
|
}
|
|
50
|
-
function
|
|
51
|
-
return e.name.local ===
|
|
50
|
+
function vt(e) {
|
|
51
|
+
return e.name.local === yt;
|
|
52
52
|
}
|
|
53
|
-
function
|
|
54
|
-
return
|
|
53
|
+
function wt(e) {
|
|
54
|
+
return X(e).spec.classes;
|
|
55
55
|
}
|
|
56
|
-
function
|
|
57
|
-
return Object.keys(
|
|
56
|
+
function kt() {
|
|
57
|
+
return Object.keys(Pe);
|
|
58
58
|
}
|
|
59
|
-
function
|
|
59
|
+
function Z(e) {
|
|
60
60
|
const n = (t, s) => !Number.isInteger(t) || t < 0 || t > 1114111 || t >= 55296 && t <= 57343 ? s : String.fromCodePoint(t);
|
|
61
61
|
return e.replace(/&#x([0-9a-f]+);/gi, (t, s) => n(parseInt(s, 16), t)).replace(/&#(\d+);/g, (t, s) => n(Number(s), t)).replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&");
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function Me(e) {
|
|
64
64
|
return e !== void 0 && /[A-Za-z0-9_.:-]/.test(e);
|
|
65
65
|
}
|
|
66
|
-
function
|
|
66
|
+
function Ce(e) {
|
|
67
67
|
return e !== void 0 && /[A-Za-z_]/.test(e);
|
|
68
68
|
}
|
|
69
|
-
function
|
|
69
|
+
function xt(e) {
|
|
70
70
|
return e === " " || e === " " || e === `
|
|
71
71
|
` || e === "\r";
|
|
72
72
|
}
|
|
73
|
-
function
|
|
73
|
+
function We(e) {
|
|
74
74
|
const n = [];
|
|
75
75
|
let t = 0, s = 0;
|
|
76
|
-
const
|
|
77
|
-
function
|
|
76
|
+
const o = () => s++;
|
|
77
|
+
function i(d, m, a) {
|
|
78
78
|
n.push({
|
|
79
79
|
kind: "malformed",
|
|
80
|
-
message:
|
|
81
|
-
at: { in: "uxml", span: { start:
|
|
80
|
+
message: d,
|
|
81
|
+
at: { in: "uxml", span: { start: m, end: a } }
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
-
function
|
|
85
|
-
for (;
|
|
84
|
+
function c() {
|
|
85
|
+
for (; xt(e[t]); ) t++;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function u() {
|
|
88
88
|
for (; ; ) {
|
|
89
|
-
const
|
|
90
|
-
if (
|
|
89
|
+
const d = e.indexOf("<", t);
|
|
90
|
+
if (d < 0) {
|
|
91
91
|
t = e.length;
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
|
-
const
|
|
95
|
-
if (
|
|
96
|
-
if (e.startsWith("<!--",
|
|
97
|
-
const
|
|
98
|
-
t =
|
|
99
|
-
} else if (e.startsWith("<![CDATA[",
|
|
100
|
-
const
|
|
101
|
-
t =
|
|
94
|
+
const m = e[d + 1];
|
|
95
|
+
if (m === "!") {
|
|
96
|
+
if (e.startsWith("<!--", d)) {
|
|
97
|
+
const a = e.indexOf("-->", d + 4);
|
|
98
|
+
t = a < 0 ? e.length : a + 3;
|
|
99
|
+
} else if (e.startsWith("<![CDATA[", d)) {
|
|
100
|
+
const a = e.indexOf("]]>", d + 9);
|
|
101
|
+
t = a < 0 ? e.length : a + 3;
|
|
102
102
|
} else {
|
|
103
|
-
const
|
|
104
|
-
t =
|
|
103
|
+
const a = e.indexOf(">", d);
|
|
104
|
+
t = a < 0 ? e.length : a + 1;
|
|
105
105
|
}
|
|
106
106
|
continue;
|
|
107
107
|
}
|
|
108
|
-
if (
|
|
109
|
-
const
|
|
110
|
-
t =
|
|
108
|
+
if (m === "?") {
|
|
109
|
+
const a = e.indexOf("?>", d + 2);
|
|
110
|
+
t = a < 0 ? e.length : a + 2;
|
|
111
111
|
continue;
|
|
112
112
|
}
|
|
113
|
-
t =
|
|
113
|
+
t = d;
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
function
|
|
118
|
-
const
|
|
119
|
-
for (;
|
|
120
|
-
const
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
function
|
|
124
|
-
const
|
|
125
|
-
for (;
|
|
126
|
-
if (t ===
|
|
127
|
-
const
|
|
128
|
-
if (
|
|
129
|
-
return t =
|
|
130
|
-
t++,
|
|
131
|
-
const
|
|
132
|
-
if (
|
|
133
|
-
return
|
|
117
|
+
function g() {
|
|
118
|
+
const d = t;
|
|
119
|
+
for (; Me(e[t]); ) t++;
|
|
120
|
+
const m = e.slice(d, t), a = m.indexOf(":");
|
|
121
|
+
return a < 0 ? { prefix: null, local: m } : { prefix: m.slice(0, a), local: m.slice(a + 1) };
|
|
122
|
+
}
|
|
123
|
+
function p() {
|
|
124
|
+
const d = t;
|
|
125
|
+
for (; Me(e[t]); ) t++;
|
|
126
|
+
if (t === d) return null;
|
|
127
|
+
const m = e.slice(d, t), a = t;
|
|
128
|
+
if (c(), e[t] !== "=")
|
|
129
|
+
return t = a, i(`attribute "${m}" has no value`, d, a), { name: m, value: "", span: { start: d, end: a } };
|
|
130
|
+
t++, c();
|
|
131
|
+
const b = e[t];
|
|
132
|
+
if (b !== '"' && b !== "'")
|
|
133
|
+
return i(`attribute "${m}" has an unquoted value`, d, t), { name: m, value: "", span: { start: d, end: t } };
|
|
134
134
|
t++;
|
|
135
|
-
const
|
|
136
|
-
return
|
|
135
|
+
const r = t, w = e.indexOf(b, t);
|
|
136
|
+
return w < 0 ? (i(`attribute "${m}" has an unterminated value`, d, e.length), t = e.length, { name: m, value: e.slice(r), span: { start: d, end: t } }) : (t = w + 1, { name: m, value: e.slice(r, w), span: { start: d, end: t } });
|
|
137
137
|
}
|
|
138
138
|
function l() {
|
|
139
|
-
const
|
|
139
|
+
const d = t;
|
|
140
140
|
t++;
|
|
141
|
-
const
|
|
142
|
-
let
|
|
141
|
+
const m = g(), a = [];
|
|
142
|
+
let b = !1;
|
|
143
143
|
for (; ; ) {
|
|
144
|
-
|
|
145
|
-
const
|
|
146
|
-
if (
|
|
147
|
-
|
|
144
|
+
c();
|
|
145
|
+
const k = e[t];
|
|
146
|
+
if (k === void 0) {
|
|
147
|
+
i("unterminated open tag", d, e.length);
|
|
148
148
|
break;
|
|
149
149
|
}
|
|
150
|
-
if (
|
|
150
|
+
if (k === ">") {
|
|
151
151
|
t++;
|
|
152
152
|
break;
|
|
153
153
|
}
|
|
154
|
-
if (
|
|
155
|
-
t += 2,
|
|
154
|
+
if (k === "/" && e[t + 1] === ">") {
|
|
155
|
+
t += 2, b = !0;
|
|
156
156
|
break;
|
|
157
157
|
}
|
|
158
|
-
const
|
|
159
|
-
if (
|
|
158
|
+
const v = p();
|
|
159
|
+
if (v === null) {
|
|
160
160
|
t++;
|
|
161
161
|
continue;
|
|
162
162
|
}
|
|
163
|
-
|
|
163
|
+
a.push(v);
|
|
164
164
|
}
|
|
165
|
-
const
|
|
166
|
-
if (
|
|
165
|
+
const r = { start: d, end: t };
|
|
166
|
+
if (b)
|
|
167
167
|
return {
|
|
168
|
-
id:
|
|
169
|
-
name:
|
|
170
|
-
attributes:
|
|
168
|
+
id: o(),
|
|
169
|
+
name: m,
|
|
170
|
+
attributes: a,
|
|
171
171
|
children: [],
|
|
172
|
-
spans: { openTag:
|
|
172
|
+
spans: { openTag: r, inner: { start: t, end: t }, closeTag: null },
|
|
173
173
|
tagDirty: !1,
|
|
174
174
|
childrenDirty: !1
|
|
175
175
|
};
|
|
176
|
-
const
|
|
176
|
+
const w = t, y = [];
|
|
177
177
|
for (; ; ) {
|
|
178
|
-
if (
|
|
179
|
-
|
|
178
|
+
if (u(), t >= e.length) {
|
|
179
|
+
i(`unterminated element <${_e(m)}>`, d, e.length);
|
|
180
180
|
break;
|
|
181
181
|
}
|
|
182
|
-
const
|
|
183
|
-
if (
|
|
184
|
-
if (!
|
|
182
|
+
const k = e[t + 1];
|
|
183
|
+
if (k === "/") break;
|
|
184
|
+
if (!Ce(k)) {
|
|
185
185
|
t++;
|
|
186
186
|
continue;
|
|
187
187
|
}
|
|
188
|
-
|
|
188
|
+
y.push(l());
|
|
189
189
|
}
|
|
190
|
-
const
|
|
191
|
-
let
|
|
190
|
+
const h = t;
|
|
191
|
+
let f = null;
|
|
192
192
|
if (e.startsWith("</", t)) {
|
|
193
|
-
const
|
|
194
|
-
|
|
193
|
+
const k = e.indexOf(">", t), v = k < 0 ? e.length : k + 1;
|
|
194
|
+
k < 0 && i("unterminated end tag", t, v), f = { start: t, end: v }, t = v;
|
|
195
195
|
}
|
|
196
196
|
return {
|
|
197
|
-
id:
|
|
198
|
-
name:
|
|
199
|
-
attributes:
|
|
200
|
-
children:
|
|
201
|
-
spans: { openTag:
|
|
197
|
+
id: o(),
|
|
198
|
+
name: m,
|
|
199
|
+
attributes: a,
|
|
200
|
+
children: y,
|
|
201
|
+
spans: { openTag: r, inner: { start: w, end: h }, closeTag: f },
|
|
202
202
|
tagDirty: !1,
|
|
203
203
|
childrenDirty: !1
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
|
-
return
|
|
206
|
+
return u(), t < e.length && Ce(e[t + 1]) ? { root: l(), warnings: n } : (i("no root element", 0, 0), {
|
|
207
207
|
root: {
|
|
208
|
-
id:
|
|
208
|
+
id: o(),
|
|
209
209
|
name: { prefix: null, local: "" },
|
|
210
210
|
attributes: [],
|
|
211
211
|
children: [],
|
|
@@ -216,57 +216,57 @@ function ze(e) {
|
|
|
216
216
|
warnings: n
|
|
217
217
|
});
|
|
218
218
|
}
|
|
219
|
-
function
|
|
219
|
+
function _e(e) {
|
|
220
220
|
return e.prefix === null ? e.local : `${e.prefix}:${e.local}`;
|
|
221
221
|
}
|
|
222
|
-
let
|
|
223
|
-
function
|
|
224
|
-
|
|
222
|
+
let Be;
|
|
223
|
+
function St(e) {
|
|
224
|
+
Be = e;
|
|
225
225
|
}
|
|
226
|
-
const
|
|
227
|
-
function
|
|
228
|
-
|
|
226
|
+
const He = /* @__PURE__ */ new WeakMap();
|
|
227
|
+
function $t(e, n) {
|
|
228
|
+
He.set(e, n);
|
|
229
229
|
}
|
|
230
|
-
function
|
|
231
|
-
return
|
|
232
|
-
const s =
|
|
233
|
-
return s === void 0 || s.length === 0 ? [] : [
|
|
230
|
+
function Fn(e) {
|
|
231
|
+
return We(e).root.children.filter((t) => t.name.local === "Template").flatMap((t) => {
|
|
232
|
+
const s = Ve(t, "src");
|
|
233
|
+
return s === void 0 || s.length === 0 ? [] : [Z(s)];
|
|
234
234
|
});
|
|
235
235
|
}
|
|
236
|
-
const
|
|
237
|
-
function
|
|
236
|
+
const Re = 32;
|
|
237
|
+
function Ve(e, n) {
|
|
238
238
|
var t;
|
|
239
239
|
return (t = e.attributes.find((s) => s.name === n)) == null ? void 0 : t.value;
|
|
240
240
|
}
|
|
241
|
-
function
|
|
242
|
-
const t =
|
|
243
|
-
return t === void 0 ? void 0 :
|
|
241
|
+
function F(e, n) {
|
|
242
|
+
const t = Ve(e, n);
|
|
243
|
+
return t === void 0 ? void 0 : Z(t);
|
|
244
244
|
}
|
|
245
|
-
function
|
|
245
|
+
function qe(e) {
|
|
246
246
|
const n = /* @__PURE__ */ new Map();
|
|
247
247
|
for (const t of e.root.children) {
|
|
248
248
|
if (t.name.local !== "Template") continue;
|
|
249
|
-
const s =
|
|
250
|
-
s === void 0 || s.length === 0 ||
|
|
249
|
+
const s = F(t, "name"), o = F(t, "src");
|
|
250
|
+
s === void 0 || s.length === 0 || o === void 0 || o.length === 0 || n.set(s, { name: s, src: o, node: t });
|
|
251
251
|
}
|
|
252
252
|
return n;
|
|
253
253
|
}
|
|
254
|
-
function
|
|
254
|
+
function Ye(e, n) {
|
|
255
255
|
return JSON.stringify([e, n]);
|
|
256
256
|
}
|
|
257
|
-
function
|
|
257
|
+
function Tt(e) {
|
|
258
258
|
return /(?:^|\/)Packages\//i.test(e) || /PackageCache/i.test(e);
|
|
259
259
|
}
|
|
260
|
-
function
|
|
260
|
+
function V(e, n, t, s, o, i = {}) {
|
|
261
261
|
e.push({
|
|
262
262
|
kind: n,
|
|
263
263
|
message: t,
|
|
264
264
|
...s === void 0 ? {} : { node: s.id },
|
|
265
|
-
...
|
|
266
|
-
...
|
|
265
|
+
...o === void 0 ? {} : { sourceDocument: o },
|
|
266
|
+
...i
|
|
267
267
|
});
|
|
268
268
|
}
|
|
269
|
-
function
|
|
269
|
+
function le(e, n = 0, t = void 0) {
|
|
270
270
|
return {
|
|
271
271
|
...e,
|
|
272
272
|
span: {
|
|
@@ -276,146 +276,146 @@ function se(e, n = 0, t = void 0) {
|
|
|
276
276
|
...t === void 0 ? {} : { sourceDocument: t }
|
|
277
277
|
};
|
|
278
278
|
}
|
|
279
|
-
function
|
|
279
|
+
function Je(e) {
|
|
280
280
|
return { prefix: e.prefix, local: e.local };
|
|
281
281
|
}
|
|
282
|
-
function
|
|
282
|
+
function je() {
|
|
283
283
|
return { start: 0, end: 0 };
|
|
284
284
|
}
|
|
285
|
-
function
|
|
285
|
+
function fe(e, n) {
|
|
286
286
|
return { start: e.start + n, end: e.end + n };
|
|
287
287
|
}
|
|
288
|
-
function
|
|
288
|
+
function Et(e, n, t, s, o) {
|
|
289
289
|
return {
|
|
290
290
|
id: e,
|
|
291
291
|
name: n,
|
|
292
292
|
attributes: t,
|
|
293
293
|
children: s,
|
|
294
|
-
spans: { openTag:
|
|
294
|
+
spans: { openTag: je(), inner: je(), closeTag: null },
|
|
295
295
|
tagDirty: !1,
|
|
296
296
|
childrenDirty: !1,
|
|
297
|
-
...
|
|
297
|
+
...o === void 0 ? {} : { derived: { kind: "template-container", instance: o } }
|
|
298
298
|
};
|
|
299
299
|
}
|
|
300
|
-
function
|
|
301
|
-
const s = e.items.map((
|
|
302
|
-
...
|
|
300
|
+
function Ot(e, n, t) {
|
|
301
|
+
const s = e.items.map((o) => o.kind !== "import" || o.resolvedSheet === void 0 ? o.kind === "rule" ? {
|
|
302
|
+
...o,
|
|
303
303
|
rule: {
|
|
304
|
-
...
|
|
305
|
-
selectors:
|
|
306
|
-
...
|
|
307
|
-
parts:
|
|
304
|
+
...o.rule,
|
|
305
|
+
selectors: o.rule.selectors.map((i) => ({
|
|
306
|
+
...i,
|
|
307
|
+
parts: i.parts.map((c) => ({ ...c, simple: [...c.simple] }))
|
|
308
308
|
})),
|
|
309
|
-
declarations:
|
|
309
|
+
declarations: o.rule.declarations.map((i) => ({ ...i }))
|
|
310
310
|
}
|
|
311
|
-
} : { ...
|
|
311
|
+
} : { ...o } : { ...o, resolvedSheet: o.resolvedSheet + n });
|
|
312
312
|
return { ...e, items: s, sourceDocumentFrom: t };
|
|
313
313
|
}
|
|
314
|
-
function
|
|
314
|
+
function It(e, n) {
|
|
315
315
|
const t = n.sheetOffsets.get(e.document);
|
|
316
316
|
if (t !== void 0) return t;
|
|
317
|
-
const s = n.sheets.length,
|
|
318
|
-
return e.document.sheets.forEach((
|
|
319
|
-
for (const
|
|
320
|
-
|
|
321
|
-
}), n.sheetOffsets.set(e.document,
|
|
322
|
-
(
|
|
323
|
-
),
|
|
324
|
-
}
|
|
325
|
-
function
|
|
317
|
+
const s = n.sheets.length, o = e.document.sheets.map((c, u) => s + u), i = e.document.sheets.map(() => e.url);
|
|
318
|
+
return e.document.sheets.forEach((c, u) => {
|
|
319
|
+
for (const g of c.items)
|
|
320
|
+
g.kind === "import" && g.resolvedSheet !== void 0 && (i[g.resolvedSheet] = c.origin ?? e.url);
|
|
321
|
+
}), n.sheetOffsets.set(e.document, o), e.document.sheets.forEach(
|
|
322
|
+
(c, u) => n.sheets.push(Ot(c, s, i[u]))
|
|
323
|
+
), o;
|
|
324
|
+
}
|
|
325
|
+
function Ge(e, n) {
|
|
326
326
|
const t = n.sourceOffsets.get(e);
|
|
327
327
|
if (t !== void 0) return t;
|
|
328
328
|
const s = n.sourceLength + 1;
|
|
329
329
|
return n.sourceOffsets.set(e, s), n.sources.push(`
|
|
330
330
|
${e.source}`), n.sourceLength += e.source.length + 1, s;
|
|
331
331
|
}
|
|
332
|
-
function
|
|
333
|
-
for (const
|
|
334
|
-
const
|
|
335
|
-
if (
|
|
336
|
-
const
|
|
337
|
-
|
|
332
|
+
function Dt(e, n, t, s, o) {
|
|
333
|
+
for (const i of e.document.styleRoots ?? []) {
|
|
334
|
+
const c = n[i.sheet];
|
|
335
|
+
if (c === void 0) continue;
|
|
336
|
+
const u = t.nodes.get(i.scope) ?? s.id;
|
|
337
|
+
o.styleRoots.push({ sheet: c, scope: u });
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
|
-
function
|
|
340
|
+
function Mt(e) {
|
|
341
341
|
return e.map((n) => {
|
|
342
|
-
const t =
|
|
342
|
+
const t = F(n, "name"), s = F(n, "slot");
|
|
343
343
|
return `<${n.name.local}${t === void 0 ? "" : ` name="${t}"`}${s === void 0 ? "" : ` slot="${s}"`}>`;
|
|
344
344
|
});
|
|
345
345
|
}
|
|
346
|
-
function
|
|
347
|
-
const t =
|
|
346
|
+
function Ke(e, n) {
|
|
347
|
+
const t = F(e, "slot-name");
|
|
348
348
|
t !== void 0 && t.length > 0 && n.add(t);
|
|
349
|
-
for (const s of e.children)
|
|
349
|
+
for (const s of e.children) Ke(s, n);
|
|
350
350
|
}
|
|
351
|
-
function
|
|
352
|
-
const
|
|
353
|
-
t !== null &&
|
|
354
|
-
|
|
351
|
+
function ee(e, n, t, s, o) {
|
|
352
|
+
const i = /* @__PURE__ */ new Set();
|
|
353
|
+
t !== null && Ke(t.document.root, i), !(i.size === 0 && n.length === 0) && V(
|
|
354
|
+
o.warnings,
|
|
355
355
|
"template-slot-unsupported",
|
|
356
|
-
`Template slots are unsupported; defined slot names: ${t === null ? "(unavailable)" :
|
|
356
|
+
`Template slots are unsupported; defined slot names: ${t === null ? "(unavailable)" : i.size === 0 ? "(none)" : [...i].join(", ")}; children not placed: ${n.length === 0 ? "(none)" : Mt(n).join(", ")}`,
|
|
357
357
|
e,
|
|
358
358
|
s,
|
|
359
359
|
{ reason: "not-rendered" }
|
|
360
360
|
);
|
|
361
361
|
}
|
|
362
|
-
function
|
|
363
|
-
if (!
|
|
364
|
-
const t =
|
|
362
|
+
function $e(e, n) {
|
|
363
|
+
if (!ye(e)) {
|
|
364
|
+
const t = F(e, "name");
|
|
365
365
|
t !== void 0 && t.length > 0 && n.set(t, (n.get(t) ?? 0) + 1);
|
|
366
366
|
}
|
|
367
|
-
for (const t of e.children)
|
|
367
|
+
for (const t of e.children) $e(t, n);
|
|
368
368
|
}
|
|
369
|
-
function
|
|
370
|
-
|
|
371
|
-
for (const s of e.children)
|
|
369
|
+
function Xe(e, n, t) {
|
|
370
|
+
F(e, "name") === n && t.push(e);
|
|
371
|
+
for (const s of e.children) Xe(s, n, t);
|
|
372
372
|
}
|
|
373
|
-
function
|
|
373
|
+
function Ct(e, n, t, s, o) {
|
|
374
374
|
if (n.length === 0) return;
|
|
375
|
-
const
|
|
376
|
-
|
|
377
|
-
for (const
|
|
378
|
-
const
|
|
379
|
-
if (
|
|
380
|
-
|
|
375
|
+
const i = /* @__PURE__ */ new Map();
|
|
376
|
+
$e(e, i);
|
|
377
|
+
for (const c of n) {
|
|
378
|
+
const u = F(c, "element-name"), g = F(c, "style");
|
|
379
|
+
if (g !== void 0 && V(
|
|
380
|
+
o.warnings,
|
|
381
381
|
"override-style-ignored",
|
|
382
|
-
`AttributeOverrides style for element-name "${
|
|
383
|
-
|
|
382
|
+
`AttributeOverrides style for element-name "${u ?? "(missing)"}" was ignored with value "${g}"`,
|
|
383
|
+
c,
|
|
384
384
|
s ?? void 0,
|
|
385
385
|
{
|
|
386
386
|
reason: "matches-unity",
|
|
387
|
-
...
|
|
387
|
+
...u === void 0 ? {} : { subject: { kind: "name", name: u } }
|
|
388
388
|
}
|
|
389
|
-
),
|
|
390
|
-
const
|
|
391
|
-
if (
|
|
392
|
-
const l = [...
|
|
393
|
-
|
|
394
|
-
|
|
389
|
+
), u === void 0 || u.length === 0) continue;
|
|
390
|
+
const p = [];
|
|
391
|
+
if (Xe(e, u, p), p.length === 0) {
|
|
392
|
+
const l = [...i.keys()];
|
|
393
|
+
V(
|
|
394
|
+
o.warnings,
|
|
395
395
|
"override-target-missing",
|
|
396
|
-
`AttributeOverrides target "${
|
|
397
|
-
|
|
396
|
+
`AttributeOverrides target "${u}" matched no element; available names: ${l.length === 0 ? "(none)" : l.join(", ")}`,
|
|
397
|
+
c,
|
|
398
398
|
s ?? void 0,
|
|
399
|
-
{ reason: "invalid-value", subject: { kind: "name", name:
|
|
399
|
+
{ reason: "invalid-value", subject: { kind: "name", name: u } }
|
|
400
400
|
);
|
|
401
401
|
continue;
|
|
402
402
|
}
|
|
403
|
-
for (const l of
|
|
404
|
-
for (const
|
|
405
|
-
if (
|
|
406
|
-
const
|
|
407
|
-
|
|
403
|
+
for (const l of p)
|
|
404
|
+
for (const d of c.attributes) {
|
|
405
|
+
if (d.name === "element-name" || d.name === "style") continue;
|
|
406
|
+
const m = l.attributes.find((a) => a.name === d.name);
|
|
407
|
+
m === void 0 ? l.attributes.push(le(d, t, s)) : (m.value = d.value, m.sourceDocument = s);
|
|
408
408
|
}
|
|
409
409
|
}
|
|
410
410
|
}
|
|
411
|
-
function
|
|
412
|
-
return e.name.local === "Template" || e.name.local === "Instance" ? !0 : e.children.some(
|
|
411
|
+
function Ze(e) {
|
|
412
|
+
return e.name.local === "Template" || e.name.local === "Instance" ? !0 : e.children.some(Ze);
|
|
413
413
|
}
|
|
414
|
-
function
|
|
414
|
+
function Rt(e, n) {
|
|
415
415
|
let t = 0;
|
|
416
|
-
const s = (
|
|
417
|
-
t = Math.max(t, Number(
|
|
418
|
-
for (const
|
|
416
|
+
const s = (o) => {
|
|
417
|
+
t = Math.max(t, Number(o.id) + 1);
|
|
418
|
+
for (const i of o.children) s(i);
|
|
419
419
|
};
|
|
420
420
|
return s(e.root), {
|
|
421
421
|
resolver: n,
|
|
@@ -432,20 +432,20 @@ function Tt(e, n) {
|
|
|
432
432
|
stack: []
|
|
433
433
|
};
|
|
434
434
|
}
|
|
435
|
-
function
|
|
436
|
-
var
|
|
437
|
-
const s =
|
|
435
|
+
function jt(e, n, t) {
|
|
436
|
+
var g;
|
|
437
|
+
const s = Ye(e.src, n);
|
|
438
438
|
if (t.cache.has(s)) return t.cache.get(s) ?? null;
|
|
439
|
-
const
|
|
440
|
-
if (
|
|
441
|
-
return t.cache.set(s, null),
|
|
439
|
+
const o = ((g = t.resolver) == null ? void 0 : g.call(t, e.src, n)) ?? null;
|
|
440
|
+
if (o === null)
|
|
441
|
+
return t.cache.set(s, null), V(
|
|
442
442
|
t.warnings,
|
|
443
443
|
"template-src-unresolved",
|
|
444
444
|
`Template "${e.name}" src "${e.src}" could not be resolved from ${n === null ? "the entry UXML" : `"${n}"`}; attempted resolveImport("${e.src}", ${n === null ? "null" : `"${n}"`}); internal filesystem search paths: none`,
|
|
445
445
|
e.node,
|
|
446
446
|
n ?? void 0,
|
|
447
447
|
{ subject: { kind: "import", url: e.src, from: n } }
|
|
448
|
-
),
|
|
448
|
+
), Tt(e.src) && V(
|
|
449
449
|
t.warnings,
|
|
450
450
|
"package-path-not-searched",
|
|
451
451
|
`Template src "${e.src}" was unresolved; the resolver returned no source and the core does not independently search Unity Packages/Library/PackageCache paths`,
|
|
@@ -453,82 +453,87 @@ function It(e, n, t) {
|
|
|
453
453
|
n ?? void 0,
|
|
454
454
|
{ reason: "not-rendered", subject: { kind: "import", url: e.src, from: n } }
|
|
455
455
|
), null;
|
|
456
|
-
const
|
|
457
|
-
if (
|
|
456
|
+
const i = Be;
|
|
457
|
+
if (i === void 0)
|
|
458
458
|
throw new Error("template parser is not registered; import parse from src/index before expansion");
|
|
459
|
-
const
|
|
460
|
-
|
|
461
|
-
t.resolver === void 0 ? void 0 : (
|
|
462
|
-
),
|
|
459
|
+
const c = i(
|
|
460
|
+
o,
|
|
461
|
+
t.resolver === void 0 ? void 0 : (p, l) => t.resolver(p, l ?? e.src)
|
|
462
|
+
), u = {
|
|
463
463
|
url: e.src,
|
|
464
464
|
from: n,
|
|
465
|
-
document:
|
|
466
|
-
declarations:
|
|
465
|
+
document: c,
|
|
466
|
+
declarations: qe(c)
|
|
467
467
|
};
|
|
468
|
-
return t.cache.set(s,
|
|
468
|
+
return t.cache.set(s, u), u;
|
|
469
469
|
}
|
|
470
|
-
function
|
|
471
|
-
var s,
|
|
470
|
+
function Nt(e, n, t) {
|
|
471
|
+
var s, o, i, c;
|
|
472
472
|
if (!t.reportedWarnings.has(e.document)) {
|
|
473
473
|
t.reportedWarnings.add(e.document);
|
|
474
|
-
for (const
|
|
475
|
-
((s =
|
|
476
|
-
...
|
|
477
|
-
at: {
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
474
|
+
for (const u of e.document.warnings)
|
|
475
|
+
((s = u.at) == null ? void 0 : s.in) === "uss" ? t.warnings.push({
|
|
476
|
+
...u,
|
|
477
|
+
at: {
|
|
478
|
+
...u.at,
|
|
479
|
+
sheet: n[u.at.sheet] ?? u.at.sheet,
|
|
480
|
+
url: ((o = e.document.sheets[u.at.sheet]) == null ? void 0 : o.origin) ?? null,
|
|
481
|
+
from: ((i = t.sheets[n[u.at.sheet] ?? u.at.sheet]) == null ? void 0 : i.sourceDocumentFrom) ?? null
|
|
482
|
+
},
|
|
483
|
+
sourceDocument: ((c = e.document.sheets[u.at.sheet]) == null ? void 0 : c.origin) ?? e.url
|
|
484
|
+
}) : t.warnings.push({ ...u, sourceDocument: e.url });
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
function ce(e, n, t, s, o, i) {
|
|
488
|
+
const c = o ? e.id : n.nextId(), u = s === null ? 0 : n.sourceOffsets.get(s.document) ?? 0, g = u === 0 || s === null ? void 0 : s.url, p = {
|
|
489
|
+
id: c,
|
|
490
|
+
name: Je(e.name),
|
|
491
|
+
attributes: e.attributes.map((l) => le(l, u, g)),
|
|
487
492
|
children: [],
|
|
488
493
|
spans: {
|
|
489
|
-
openTag:
|
|
490
|
-
inner:
|
|
491
|
-
closeTag: e.spans.closeTag === null ? null :
|
|
494
|
+
openTag: fe(e.spans.openTag, u),
|
|
495
|
+
inner: fe(e.spans.inner, u),
|
|
496
|
+
closeTag: e.spans.closeTag === null ? null : fe(e.spans.closeTag, u)
|
|
492
497
|
},
|
|
493
498
|
tagDirty: e.tagDirty,
|
|
494
499
|
childrenDirty: e.childrenDirty,
|
|
495
|
-
...
|
|
500
|
+
...u === 0 || s === null ? {} : {
|
|
496
501
|
sourceDocument: s.url,
|
|
497
502
|
sourceDocumentFrom: s.from,
|
|
498
503
|
sourceNode: e.id
|
|
499
504
|
}
|
|
500
505
|
};
|
|
501
|
-
t.nodes.set(e.id,
|
|
506
|
+
t.nodes.set(e.id, p.id);
|
|
502
507
|
for (const l of e.children)
|
|
503
508
|
if (!(l.name.local === "Template" || l.name.local === "Style")) {
|
|
504
509
|
if (l.name.local === "Instance") {
|
|
505
|
-
|
|
510
|
+
p.children.push(Te(l, n, s, t, i + 1));
|
|
506
511
|
continue;
|
|
507
512
|
}
|
|
508
|
-
l.name.local !== "AttributeOverrides" &&
|
|
513
|
+
l.name.local !== "AttributeOverrides" && F(l, "slot") === void 0 && p.children.push(ce(l, n, t, s, o, i));
|
|
509
514
|
}
|
|
510
|
-
return
|
|
511
|
-
}
|
|
512
|
-
function
|
|
513
|
-
|
|
514
|
-
const
|
|
515
|
-
for (const
|
|
516
|
-
if (!(
|
|
517
|
-
if (
|
|
518
|
-
n.children.push(
|
|
515
|
+
return p;
|
|
516
|
+
}
|
|
517
|
+
function At(e, n, t, s) {
|
|
518
|
+
Ge(e.document, t);
|
|
519
|
+
const o = { nodes: /* @__PURE__ */ new Map([[e.document.root.id, n.id]]) };
|
|
520
|
+
for (const i of e.document.root.children)
|
|
521
|
+
if (!(i.name.local === "Template" || i.name.local === "Style")) {
|
|
522
|
+
if (i.name.local === "Instance") {
|
|
523
|
+
n.children.push(Te(i, t, e, o, s + 1));
|
|
519
524
|
continue;
|
|
520
525
|
}
|
|
521
|
-
|
|
526
|
+
i.name.local !== "AttributeOverrides" && F(i, "slot") === void 0 && n.children.push(ce(i, t, o, e, !1, s));
|
|
522
527
|
}
|
|
523
|
-
return
|
|
528
|
+
return o;
|
|
524
529
|
}
|
|
525
|
-
function
|
|
526
|
-
const
|
|
530
|
+
function Te(e, n, t, s, o) {
|
|
531
|
+
const i = Et(
|
|
527
532
|
n.nextId(),
|
|
528
533
|
{ prefix: e.name.prefix, local: "TemplateContainer" },
|
|
529
|
-
e.attributes.filter((
|
|
530
|
-
(
|
|
531
|
-
|
|
534
|
+
e.attributes.filter((y) => y.name !== "template").map(
|
|
535
|
+
(y) => le(
|
|
536
|
+
y,
|
|
532
537
|
t === null ? 0 : n.sourceOffsets.get(t.document) ?? 0,
|
|
533
538
|
t === null || t.url.length === 0 ? null : t.url
|
|
534
539
|
)
|
|
@@ -536,80 +541,80 @@ function ye(e, n, t, s, r) {
|
|
|
536
541
|
[],
|
|
537
542
|
e.id
|
|
538
543
|
);
|
|
539
|
-
t !== null && (
|
|
540
|
-
const
|
|
541
|
-
if (
|
|
542
|
-
return
|
|
544
|
+
t !== null && (i.sourceDocument = t.url.length > 0 ? t.url : null, i.sourceDocumentFrom = t.from), s.nodes.set(e.id, i.id);
|
|
545
|
+
const c = F(e, "template"), u = e.children.filter((y) => F(y, "slot") !== void 0), g = t === null || t.url.length === 0 ? void 0 : t.url, p = t == null ? void 0 : t.declarations.get(c ?? "");
|
|
546
|
+
if (p === void 0)
|
|
547
|
+
return ee(e, u, null, g, n), V(
|
|
543
548
|
n.warnings,
|
|
544
549
|
"template-not-declared",
|
|
545
|
-
`Instance${
|
|
550
|
+
`Instance${c === void 0 ? "" : ` template "${c}"`} has no matching Template declaration`,
|
|
546
551
|
e,
|
|
547
|
-
|
|
552
|
+
g,
|
|
548
553
|
{
|
|
549
554
|
reason: "invalid-value",
|
|
550
|
-
...
|
|
555
|
+
...c === void 0 ? {} : { subject: { kind: "name", name: c } }
|
|
551
556
|
}
|
|
552
|
-
),
|
|
553
|
-
const l = t === null || t.url.length === 0 ? null : t.url,
|
|
554
|
-
key: JSON.stringify([
|
|
555
|
-
label: `${
|
|
556
|
-
},
|
|
557
|
-
if (
|
|
558
|
-
const
|
|
559
|
-
|
|
560
|
-
const
|
|
561
|
-
return
|
|
557
|
+
), i;
|
|
558
|
+
const l = t === null || t.url.length === 0 ? null : t.url, d = {
|
|
559
|
+
key: JSON.stringify([p.name, p.src, l]),
|
|
560
|
+
label: `${p.name}@${p.src}`
|
|
561
|
+
}, m = n.stack.findIndex((y) => y.key === d.key);
|
|
562
|
+
if (m >= 0) {
|
|
563
|
+
const y = n.cache.get(Ye(p.src, l)) ?? null;
|
|
564
|
+
ee(e, u, y, g, n);
|
|
565
|
+
const h = [...n.stack.slice(m), d].map((f) => f.label).join(" -> ");
|
|
566
|
+
return V(
|
|
562
567
|
n.warnings,
|
|
563
568
|
"template-cycle",
|
|
564
|
-
`Template cycle detected: ${
|
|
569
|
+
`Template cycle detected: ${h}`,
|
|
565
570
|
e,
|
|
566
|
-
|
|
571
|
+
g,
|
|
567
572
|
{ reason: "invalid-value" }
|
|
568
|
-
),
|
|
573
|
+
), i;
|
|
569
574
|
}
|
|
570
|
-
if (
|
|
571
|
-
return
|
|
575
|
+
if (o >= Re)
|
|
576
|
+
return ee(e, u, null, g, n), V(
|
|
572
577
|
n.warnings,
|
|
573
578
|
"template-depth-exceeded",
|
|
574
|
-
`Template expansion exceeded the depth limit ${
|
|
579
|
+
`Template expansion exceeded the depth limit ${Re}: ${[
|
|
575
580
|
...n.stack,
|
|
576
|
-
|
|
577
|
-
].map((
|
|
581
|
+
d
|
|
582
|
+
].map((y) => y.label).join(" -> ")}`,
|
|
578
583
|
e,
|
|
579
|
-
|
|
584
|
+
g,
|
|
580
585
|
{ reason: "not-rendered" }
|
|
581
|
-
),
|
|
582
|
-
const
|
|
583
|
-
if (
|
|
584
|
-
return
|
|
585
|
-
|
|
586
|
-
const
|
|
586
|
+
), i;
|
|
587
|
+
const a = jt(p, l, n);
|
|
588
|
+
if (a === null)
|
|
589
|
+
return ee(e, u, null, g, n), i;
|
|
590
|
+
Ge(a.document, n), n.stack.push(d);
|
|
591
|
+
const b = At(a, i, n, o);
|
|
587
592
|
n.stack.pop();
|
|
588
|
-
const
|
|
589
|
-
|
|
590
|
-
const
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
593
|
+
const r = It(a, n);
|
|
594
|
+
Nt(a, r, n), Dt(a, r, b, i, n);
|
|
595
|
+
const w = e.children.filter((y) => y.name.local === "AttributeOverrides");
|
|
596
|
+
ee(e, u, a, g, n), Ct(
|
|
597
|
+
i,
|
|
598
|
+
w,
|
|
594
599
|
t === null ? 0 : n.sourceOffsets.get(t.document) ?? 0,
|
|
595
600
|
t === null || t.url.length === 0 ? null : t.url,
|
|
596
601
|
n
|
|
597
602
|
);
|
|
598
|
-
for (const
|
|
599
|
-
|
|
600
|
-
return
|
|
603
|
+
for (const y of e.children)
|
|
604
|
+
y.name.local === "AttributeOverrides" || y.name.local === "Style" || F(y, "slot") !== void 0 || i.children.push(ce(y, n, s, t, !1, o));
|
|
605
|
+
return i;
|
|
601
606
|
}
|
|
602
|
-
function
|
|
603
|
-
if (!
|
|
604
|
-
const n =
|
|
607
|
+
function Lt(e) {
|
|
608
|
+
if (!Ze(e.root)) return { document: e, warnings: [] };
|
|
609
|
+
const n = Rt(e, He.get(e)), t = n.styleRoots.length, s = {
|
|
605
610
|
url: "",
|
|
606
611
|
from: null,
|
|
607
612
|
document: e,
|
|
608
|
-
declarations:
|
|
609
|
-
},
|
|
613
|
+
declarations: qe(e)
|
|
614
|
+
}, o = { nodes: /* @__PURE__ */ new Map([[e.root.id, e.root.id]]) }, i = {
|
|
610
615
|
id: e.root.id,
|
|
611
|
-
name:
|
|
612
|
-
attributes: e.root.attributes.map((
|
|
616
|
+
name: Je(e.root.name),
|
|
617
|
+
attributes: e.root.attributes.map((u) => le(u)),
|
|
613
618
|
children: [],
|
|
614
619
|
spans: {
|
|
615
620
|
openTag: { ...e.root.spans.openTag },
|
|
@@ -619,33 +624,33 @@ function Dt(e) {
|
|
|
619
624
|
tagDirty: e.root.tagDirty,
|
|
620
625
|
childrenDirty: e.root.childrenDirty
|
|
621
626
|
};
|
|
622
|
-
for (const
|
|
623
|
-
if (!(
|
|
624
|
-
if (
|
|
625
|
-
|
|
627
|
+
for (const u of e.root.children)
|
|
628
|
+
if (!(u.name.local === "Template" || u.name.local === "Style")) {
|
|
629
|
+
if (u.name.local === "Instance") {
|
|
630
|
+
i.children.push(Te(u, n, s, o, 0));
|
|
626
631
|
continue;
|
|
627
632
|
}
|
|
628
|
-
|
|
633
|
+
u.name.local !== "AttributeOverrides" && F(u, "slot") === void 0 && i.children.push(ce(u, n, o, s, !0, 0));
|
|
629
634
|
}
|
|
630
|
-
for (let
|
|
631
|
-
const
|
|
632
|
-
|
|
633
|
-
}
|
|
634
|
-
const
|
|
635
|
-
|
|
636
|
-
for (const [
|
|
637
|
-
|
|
635
|
+
for (let u = 0; u < t; u++) {
|
|
636
|
+
const g = n.styleRoots[u], p = o.nodes.get(g.scope);
|
|
637
|
+
p !== void 0 && (n.styleRoots[u] = { ...g, scope: p });
|
|
638
|
+
}
|
|
639
|
+
const c = /* @__PURE__ */ new Map();
|
|
640
|
+
$e(i, c);
|
|
641
|
+
for (const [u, g] of c)
|
|
642
|
+
g > 1 && V(
|
|
638
643
|
n.warnings,
|
|
639
644
|
"duplicate-name-in-tree",
|
|
640
|
-
`name "${
|
|
645
|
+
`name "${u}" occurs ${g} times after template expansion`,
|
|
641
646
|
void 0,
|
|
642
647
|
void 0,
|
|
643
|
-
{ reason: "matches-unity", subject: { kind: "name", name:
|
|
648
|
+
{ reason: "matches-unity", subject: { kind: "name", name: u } }
|
|
644
649
|
);
|
|
645
650
|
return {
|
|
646
651
|
document: {
|
|
647
652
|
...e,
|
|
648
|
-
root:
|
|
653
|
+
root: i,
|
|
649
654
|
source: n.sources.join(""),
|
|
650
655
|
sheets: n.sheets,
|
|
651
656
|
styleRoots: n.styleRoots
|
|
@@ -653,7 +658,7 @@ function Dt(e) {
|
|
|
653
658
|
warnings: n.warnings
|
|
654
659
|
};
|
|
655
660
|
}
|
|
656
|
-
const
|
|
661
|
+
const ae = "6000.0.40f1", Qe = `:disabled {
|
|
657
662
|
opacity: 0.5;
|
|
658
663
|
}
|
|
659
664
|
|
|
@@ -661,11 +666,13 @@ const te = "6000.0.40f1", Je = `:disabled {
|
|
|
661
666
|
margin: 1px 3px;
|
|
662
667
|
-unity-text-align: middle-center;
|
|
663
668
|
}
|
|
664
|
-
`,
|
|
665
|
-
function
|
|
666
|
-
return e ?
|
|
669
|
+
`, Ut = 13;
|
|
670
|
+
function zt(e) {
|
|
671
|
+
return e ? Ut : 0;
|
|
667
672
|
}
|
|
668
|
-
const
|
|
673
|
+
const Ft = {
|
|
674
|
+
measuredTextLayout: "Measured layout effect in Unity probes, 2026-10-15/16 (tests/text-cohort/unity and tests/layout/unity); auto-size grew 32x15 to 99x49 on 6000.3.25f1",
|
|
675
|
+
measuredTextPaint: "Measured paint-only effect in Unity probes, 2026-10-15/16 (tests/layout/unity)",
|
|
669
676
|
yoga: "A flexbox style input of Yoga, which UI Toolkit lays out with (CLAUDE.md rule 1); many are compared in the golden set",
|
|
670
677
|
box: "Margin, padding and border widths are part of the box Yoga sizes and places",
|
|
671
678
|
aspectRatio: "Yoga sizes a box from aspect-ratio, which Unity passes through from 6.3",
|
|
@@ -686,16 +693,16 @@ const At = {
|
|
|
686
693
|
effectInferred: "Post-processes pixels that are already drawn",
|
|
687
694
|
cursor: "Pointer appearance only; nothing is drawn or laid out",
|
|
688
695
|
timeInferred: "Changes values over time; a settled frame, which is what this preview draws, is unaffected"
|
|
689
|
-
},
|
|
696
|
+
}, Pt = {
|
|
690
697
|
/** Row count of each table on the date above. A test holds the data to these. */
|
|
691
698
|
counts: { "6000.0": 95, "6000.3": 99, "6000.6": 102 }
|
|
692
|
-
},
|
|
699
|
+
}, Wt = [
|
|
693
700
|
["align-content", "6000.0", !1, "layout", "layout", "yoga"],
|
|
694
701
|
["align-items", "6000.0", !1, "layout", "layout", "yoga"],
|
|
695
702
|
["align-self", "6000.0", !1, "layout", "layout", "yoga"],
|
|
696
703
|
["all", "6000.0", !1, "none", "layout", "all"],
|
|
697
704
|
["animation-play-state", "6000.6", !1, "none", "none", "timeInferred"],
|
|
698
|
-
["aspect-ratio", "6000.3", !1, "
|
|
705
|
+
["aspect-ratio", "6000.3", !1, "layout", "layout", "aspectRatio"],
|
|
699
706
|
["backdrop-filter", "6000.6", !1, "none", "paint", "effectInferred"],
|
|
700
707
|
["background-color", "6000.0", !1, "paint", "paint", "colour"],
|
|
701
708
|
["background-image", "6000.0", !1, "paint", "paint", "background"],
|
|
@@ -723,7 +730,7 @@ const At = {
|
|
|
723
730
|
["color", "6000.0", !0, "paint", "paint", "colour"],
|
|
724
731
|
["cursor", "6000.0", !1, "paint", "none", "cursor"],
|
|
725
732
|
["display", "6000.0", !1, "layout", "layout", "yoga"],
|
|
726
|
-
["filter", "6000.3", !1, "none", "paint", "
|
|
733
|
+
["filter", "6000.3", !1, "none", "paint", "measuredTextPaint"],
|
|
727
734
|
["flex", "6000.0", !1, "layout", "layout", "yoga"],
|
|
728
735
|
["flex-basis", "6000.0", !1, "layout", "layout", "yoga"],
|
|
729
736
|
["flex-direction", "6000.0", !1, "layout", "layout", "yoga"],
|
|
@@ -734,7 +741,7 @@ const At = {
|
|
|
734
741
|
["height", "6000.0", !1, "layout", "layout", "yoga"],
|
|
735
742
|
["justify-content", "6000.0", !1, "layout", "layout", "yoga"],
|
|
736
743
|
["left", "6000.0", !1, "layout", "layout", "yoga"],
|
|
737
|
-
["letter-spacing", "6000.0", !0, "
|
|
744
|
+
["letter-spacing", "6000.0", !0, "layout", "layout", "measuredTextLayout"],
|
|
738
745
|
["margin", "6000.0", !1, "layout", "layout", "box"],
|
|
739
746
|
["margin-bottom", "6000.0", !1, "layout", "layout", "box"],
|
|
740
747
|
["margin-left", "6000.0", !1, "layout", "layout", "box"],
|
|
@@ -757,8 +764,8 @@ const At = {
|
|
|
757
764
|
["right", "6000.0", !1, "layout", "layout", "yoga"],
|
|
758
765
|
["rotate", "6000.0", !1, "paint", "paint", "transform"],
|
|
759
766
|
["scale", "6000.0", !1, "paint", "paint", "transform"],
|
|
760
|
-
["text-overflow", "6000.0", !1, "paint", "paint", "
|
|
761
|
-
["text-shadow", "6000.0", !0, "none", "paint", "
|
|
767
|
+
["text-overflow", "6000.0", !1, "paint", "paint", "measuredTextPaint"],
|
|
768
|
+
["text-shadow", "6000.0", !0, "none", "paint", "measuredTextPaint"],
|
|
762
769
|
["top", "6000.0", !1, "layout", "layout", "yoga"],
|
|
763
770
|
["transform-origin", "6000.0", !1, "paint", "paint", "transform"],
|
|
764
771
|
["transition", "6000.0", !1, "none", "none", "timeInferred"],
|
|
@@ -770,13 +777,13 @@ const At = {
|
|
|
770
777
|
["-unity-animation-clip", "6000.6", !1, "none", "none", "timeInferred"],
|
|
771
778
|
["-unity-background-image-tint-color", "6000.0", !1, "none", "paint", "background"],
|
|
772
779
|
["-unity-background-scale-mode", "6000.0", !1, "paint", "paint", "background"],
|
|
773
|
-
["-unity-editor-text-rendering-mode", "6000.0", !0, "none", "paint", "
|
|
780
|
+
["-unity-editor-text-rendering-mode", "6000.0", !0, "none", "paint", "measuredTextPaint"],
|
|
774
781
|
["-unity-font", "6000.0", !0, "none", "layout", "textMeasureInferred"],
|
|
775
|
-
["-unity-font-definition", "6000.0", !0, "none", "layout", "
|
|
776
|
-
["-unity-font-style", "6000.0", !0, "layout", "layout", "
|
|
782
|
+
["-unity-font-definition", "6000.0", !0, "none", "layout", "measuredTextLayout"],
|
|
783
|
+
["-unity-font-style", "6000.0", !0, "layout", "layout", "measuredTextLayout"],
|
|
777
784
|
["-unity-material", "6000.3", !0, "none", "paint", "effectInferred"],
|
|
778
|
-
["-unity-overflow-clip-box", "6000.0", !1, "none", "paint", "
|
|
779
|
-
["-unity-paragraph-spacing", "6000.0", !0, "
|
|
785
|
+
["-unity-overflow-clip-box", "6000.0", !1, "none", "paint", "measuredTextPaint"],
|
|
786
|
+
["-unity-paragraph-spacing", "6000.0", !0, "layout", "layout", "measuredTextLayout"],
|
|
780
787
|
["-unity-slice-bottom", "6000.0", !1, "none", "paint", "background"],
|
|
781
788
|
["-unity-slice-left", "6000.0", !1, "none", "paint", "background"],
|
|
782
789
|
["-unity-slice-right", "6000.0", !1, "none", "paint", "background"],
|
|
@@ -784,31 +791,31 @@ const At = {
|
|
|
784
791
|
["-unity-slice-top", "6000.0", !1, "none", "paint", "background"],
|
|
785
792
|
["-unity-slice-type", "6000.0", !1, "none", "paint", "background"],
|
|
786
793
|
["-unity-text-align", "6000.0", !0, "paint", "paint", "textAlign"],
|
|
787
|
-
["-unity-text-auto-size", "6000.3", !0, "none", "
|
|
788
|
-
["-unity-text-generator", "6000.0", !0, "
|
|
789
|
-
["-unity-text-outline", "6000.0", !1, "none", "paint", "
|
|
790
|
-
["-unity-text-outline-color", "6000.0", !0, "none", "paint", "
|
|
791
|
-
["-unity-text-outline-width", "6000.0", !0, "none", "paint", "
|
|
792
|
-
["-unity-text-overflow-position", "6000.0", !1, "none", "paint", "
|
|
794
|
+
["-unity-text-auto-size", "6000.3", !0, "none", "layout", "measuredTextLayout"],
|
|
795
|
+
["-unity-text-generator", "6000.0", !0, "layout", "layout", "measuredTextLayout"],
|
|
796
|
+
["-unity-text-outline", "6000.0", !1, "none", "paint", "measuredTextPaint"],
|
|
797
|
+
["-unity-text-outline-color", "6000.0", !0, "none", "paint", "measuredTextPaint"],
|
|
798
|
+
["-unity-text-outline-width", "6000.0", !0, "none", "paint", "measuredTextPaint"],
|
|
799
|
+
["-unity-text-overflow-position", "6000.0", !1, "none", "paint", "measuredTextPaint"],
|
|
793
800
|
["visibility", "6000.0", !0, "paint", "paint", "visibility"],
|
|
794
|
-
["white-space", "6000.0", !0, "layout", "layout", "
|
|
801
|
+
["white-space", "6000.0", !0, "layout", "layout", "measuredTextLayout"],
|
|
795
802
|
["width", "6000.0", !1, "layout", "layout", "yoga"],
|
|
796
|
-
["word-spacing", "6000.0", !0, "
|
|
797
|
-
],
|
|
798
|
-
([e, n, t, s,
|
|
803
|
+
["word-spacing", "6000.0", !0, "layout", "layout", "measuredTextLayout"]
|
|
804
|
+
], et = Wt.map(
|
|
805
|
+
([e, n, t, s, o, i]) => ({
|
|
799
806
|
name: e,
|
|
800
807
|
since: n,
|
|
801
808
|
inherited: t,
|
|
802
809
|
handling: s,
|
|
803
|
-
unity:
|
|
804
|
-
basis:
|
|
805
|
-
inferred:
|
|
810
|
+
unity: o,
|
|
811
|
+
basis: Ft[i],
|
|
812
|
+
inferred: i.endsWith("Inferred")
|
|
806
813
|
})
|
|
807
|
-
),
|
|
808
|
-
function
|
|
809
|
-
return
|
|
814
|
+
), _t = new Map(et.map((e) => [e.name, e]));
|
|
815
|
+
function Bt(e) {
|
|
816
|
+
return _t.get(e);
|
|
810
817
|
}
|
|
811
|
-
const
|
|
818
|
+
const Ht = {
|
|
812
819
|
"font-family": ["-unity-font-definition"],
|
|
813
820
|
"font-weight": ["-unity-font-style"],
|
|
814
821
|
"font-style": ["-unity-font-style"],
|
|
@@ -820,8 +827,7 @@ const Lt = {
|
|
|
820
827
|
inset: ["top", "right", "bottom", "left"],
|
|
821
828
|
"overflow-x": ["overflow"],
|
|
822
829
|
"overflow-y": ["overflow"]
|
|
823
|
-
},
|
|
824
|
-
"aspect-ratio": "not applied to layout by this preview",
|
|
830
|
+
}, Vt = {
|
|
825
831
|
"-unity-font": "font not loaded by this preview; the browser default is used",
|
|
826
832
|
"-unity-font-definition": "font not loaded by this preview; the browser default is used",
|
|
827
833
|
transition: "not animated by this preview",
|
|
@@ -831,50 +837,75 @@ const Lt = {
|
|
|
831
837
|
"transition-timing-function": "not animated by this preview",
|
|
832
838
|
"animation-play-state": "not animated by this preview",
|
|
833
839
|
"-unity-animation-clip": "not animated by this preview"
|
|
834
|
-
},
|
|
835
|
-
function
|
|
840
|
+
}, qt = `6.${Object.keys(Pt.counts).sort().at(-1).slice(5)}`;
|
|
841
|
+
function Yt(e) {
|
|
836
842
|
return `Unity 6.${e.slice(5)}+`;
|
|
837
843
|
}
|
|
838
|
-
function
|
|
844
|
+
function tt(e, n) {
|
|
839
845
|
if (e.startsWith("--")) return null;
|
|
840
|
-
const t =
|
|
846
|
+
const t = Bt(e);
|
|
841
847
|
if (t === void 0) {
|
|
842
|
-
const
|
|
848
|
+
const c = Ht[e];
|
|
843
849
|
return {
|
|
844
|
-
message: `${e}: not in the USS property reference up to Unity ${
|
|
850
|
+
message: `${e}: not in the USS property reference up to Unity ${qt}; ignored` + (c === void 0 ? "" : `; USS uses ${c.join(", ")}`),
|
|
845
851
|
reason: "not-uss",
|
|
846
|
-
subject: { kind: "property", property: e, value: n, ...
|
|
852
|
+
subject: { kind: "property", property: e, value: n, ...c === void 0 ? {} : { replacements: c } }
|
|
847
853
|
};
|
|
848
854
|
}
|
|
849
|
-
const s =
|
|
850
|
-
|
|
851
|
-
|
|
855
|
+
const s = { kind: "property", property: e, value: n };
|
|
856
|
+
if ((e.includes("color") || e === "text-shadow") && /hsla?\(/i.test(n))
|
|
857
|
+
return {
|
|
858
|
+
reason: "invalid-value",
|
|
859
|
+
message: `${e}: Unity 6000.3 stops styling from this element on at this value; 6000.0 draws it black`,
|
|
860
|
+
subject: { ...s, unityEffect: { kind: "unstyled-from-here", versions: ["6000.3"] } }
|
|
861
|
+
};
|
|
862
|
+
if ((e === "transition-timing-function" || e === "transition") && /cubic-bezier\(/i.test(n))
|
|
863
|
+
return {
|
|
864
|
+
reason: "invalid-value",
|
|
865
|
+
message: `${e}: Unity stops styling from this element on at cubic-bezier()`,
|
|
866
|
+
subject: { ...s, unityEffect: { kind: "unstyled-from-here", versions: ["6000.0", "6000.3"] } }
|
|
867
|
+
};
|
|
868
|
+
if (e === "opacity" && n.trim().endsWith("%"))
|
|
869
|
+
return { reason: "invalid-value", message: "opacity: Unity reads 50% as 50 (fully opaque), this preview draws it half-transparent", subject: s };
|
|
870
|
+
if (n.trim() === "inherit")
|
|
871
|
+
return { reason: "invalid-value", message: `${e}: USS has initial but not inherit; Unity resolved color: inherit to transparent`, subject: s };
|
|
872
|
+
const o = t.unity === "layout", i = t.since === "6000.0" ? "" : ` (${Yt(t.since)})`;
|
|
873
|
+
return t.handling === "paint" && o ? {
|
|
874
|
+
message: `${e}${i}: drawn, but left out of text measurement by this preview`,
|
|
852
875
|
reason: "not-rendered",
|
|
853
|
-
subject: { kind: "property", property: e, value: n, since: t.since, affectsLayout:
|
|
876
|
+
subject: { kind: "property", property: e, value: n, since: t.since, affectsLayout: o, applied: "paint" }
|
|
854
877
|
} : t.handling !== "none" ? null : {
|
|
855
|
-
message: `${e}${
|
|
878
|
+
message: `${e}${i}: ${Vt[e] ?? "not drawn by this preview"}` + (e === "filter" && /[\w-]+\(/.test(n) ? "; Unity 6000.0 stops styling from this element on" : ""),
|
|
856
879
|
reason: "not-rendered",
|
|
857
|
-
subject: {
|
|
880
|
+
subject: {
|
|
881
|
+
kind: "property",
|
|
882
|
+
property: e,
|
|
883
|
+
value: n,
|
|
884
|
+
since: t.since,
|
|
885
|
+
affectsLayout: o,
|
|
886
|
+
// Same probes/dumps, measured 2026-10-15: filter functions poison 6000.0 only.
|
|
887
|
+
...e === "filter" && /[\w-]+\(/.test(n) ? { unityEffect: { kind: "unstyled-from-here", versions: ["6000.0"] } } : {}
|
|
888
|
+
}
|
|
858
889
|
};
|
|
859
890
|
}
|
|
860
|
-
const
|
|
861
|
-
function
|
|
862
|
-
return e.startsWith("--") ||
|
|
891
|
+
const be = ["hover", "active", "inactive", "focus", "disabled", "enabled", "checked"], Jt = new Set(et.filter((e) => e.inherited).map((e) => e.name));
|
|
892
|
+
function Gt(e) {
|
|
893
|
+
return e.startsWith("--") || Jt.has(e);
|
|
863
894
|
}
|
|
864
|
-
function
|
|
895
|
+
function Ne(e) {
|
|
865
896
|
const n = [];
|
|
866
897
|
let t = 0, s = -1;
|
|
867
|
-
for (let
|
|
868
|
-
const
|
|
869
|
-
|
|
898
|
+
for (let o = 0; o < e.length; o++) {
|
|
899
|
+
const i = e[o];
|
|
900
|
+
i === "(" ? t++ : i === ")" && (t = Math.max(0, t - 1)), t === 0 && /\s/.test(i) ? s >= 0 && (n.push(e.slice(s, o)), s = -1) : s < 0 && (s = o);
|
|
870
901
|
}
|
|
871
902
|
return s >= 0 && n.push(e.slice(s)), n;
|
|
872
903
|
}
|
|
873
|
-
function
|
|
874
|
-
const [n, t, s,
|
|
875
|
-
return n === void 0 ? null : t === void 0 ? [n, n, n, n] : s === void 0 ? [n, t, n, t] :
|
|
904
|
+
function Kt(e) {
|
|
905
|
+
const [n, t, s, o] = e;
|
|
906
|
+
return n === void 0 ? null : t === void 0 ? [n, n, n, n] : s === void 0 ? [n, t, n, t] : o === void 0 ? [n, t, s, t] : [n, t, s, o];
|
|
876
907
|
}
|
|
877
|
-
const
|
|
908
|
+
const Xt = {
|
|
878
909
|
margin: ["margin-top", "margin-right", "margin-bottom", "margin-left"],
|
|
879
910
|
padding: ["padding-top", "padding-right", "padding-bottom", "padding-left"],
|
|
880
911
|
"border-width": [
|
|
@@ -897,24 +928,25 @@ const Vt = {
|
|
|
897
928
|
"border-bottom-left-radius"
|
|
898
929
|
]
|
|
899
930
|
};
|
|
900
|
-
function
|
|
931
|
+
function Ae(e) {
|
|
901
932
|
return /^-?(\d+\.?\d*|\.\d+)$/.test(e);
|
|
902
933
|
}
|
|
903
|
-
function
|
|
934
|
+
function Zt(e) {
|
|
904
935
|
const [n, t, s] = e;
|
|
905
|
-
return n === void 0 ? [] : n === "none" ? [["flex-grow", "0"], ["flex-shrink", "0"], ["flex-basis", "auto"]] : n === "auto" ? [["flex-grow", "1"], ["flex-shrink", "1"], ["flex-basis", "auto"]] : t === void 0 ?
|
|
936
|
+
return n === void 0 ? [] : n === "none" ? [["flex-grow", "0"], ["flex-shrink", "0"], ["flex-basis", "auto"]] : n === "auto" ? [["flex-grow", "1"], ["flex-shrink", "1"], ["flex-basis", "auto"]] : t === void 0 ? Ae(n) ? [["flex-grow", n], ["flex-shrink", "1"], ["flex-basis", "0"]] : [["flex-grow", "1"], ["flex-shrink", "1"], ["flex-basis", n]] : s === void 0 ? Ae(t) ? [["flex-grow", n], ["flex-shrink", t], ["flex-basis", "0"]] : [["flex-grow", n], ["flex-shrink", "1"], ["flex-basis", t]] : [["flex-grow", n], ["flex-shrink", t], ["flex-basis", s]];
|
|
906
937
|
}
|
|
907
|
-
function
|
|
908
|
-
if (e === "flex") return
|
|
909
|
-
const t =
|
|
938
|
+
function pe(e, n) {
|
|
939
|
+
if (e === "flex") return Zt(Ne(n));
|
|
940
|
+
const t = Xt[e];
|
|
910
941
|
if (t === void 0) return [[e, n]];
|
|
911
|
-
const s =
|
|
912
|
-
return s === null ? [[e, n]] : t.map((
|
|
942
|
+
const s = Kt(Ne(n));
|
|
943
|
+
return s === null ? [[e, n]] : t.map((o, i) => [o, s[i]]);
|
|
913
944
|
}
|
|
914
|
-
const
|
|
945
|
+
const ve = {
|
|
915
946
|
"align-content": "flex-start",
|
|
916
947
|
"align-items": "stretch",
|
|
917
948
|
"align-self": "auto",
|
|
949
|
+
"aspect-ratio": "auto",
|
|
918
950
|
"flex-basis": "auto",
|
|
919
951
|
"flex-direction": "column",
|
|
920
952
|
"flex-grow": "0",
|
|
@@ -947,8 +979,8 @@ const fe = {
|
|
|
947
979
|
"padding-right": "0",
|
|
948
980
|
"padding-top": "0",
|
|
949
981
|
"font-size": "12px"
|
|
950
|
-
},
|
|
951
|
-
function
|
|
982
|
+
}, Qt = ["em", "rem", "vh", "vw", "vmin", "vmax", "pt", "cm", "in"];
|
|
983
|
+
function B(e) {
|
|
952
984
|
const n = e.trim();
|
|
953
985
|
if (n === "") return { length: null, problem: "empty value", reason: "invalid-value" };
|
|
954
986
|
if (n === "auto") return { length: { kind: "auto" } };
|
|
@@ -959,354 +991,425 @@ function ne(e) {
|
|
|
959
991
|
const t = /^(-?(?:\d+\.?\d*|\.\d+))([a-z%]*)$/i.exec(n);
|
|
960
992
|
if (t === null)
|
|
961
993
|
return { length: null, problem: `cannot read "${n}" as a length`, reason: "invalid-value" };
|
|
962
|
-
const s = Number(t[1]),
|
|
963
|
-
return
|
|
994
|
+
const s = Number(t[1]), o = t[2].toLowerCase();
|
|
995
|
+
return o === "" || o === "px" ? { length: { kind: "px", value: s } } : o === "%" ? { length: { kind: "percent", value: s } } : Qt.includes(o) ? { length: null, problem: `unit "${o}" not recognised`, code: "unsupported-unit", reason: "not-uss" } : { length: null, problem: `unknown unit "${o}"`, reason: "invalid-value" };
|
|
964
996
|
}
|
|
965
|
-
function
|
|
997
|
+
function he(e) {
|
|
966
998
|
const n = e.trim();
|
|
967
999
|
return /^-?(\d+\.?\d*|\.\d+)$/.test(n) ? Number(n) : null;
|
|
968
1000
|
}
|
|
969
|
-
let
|
|
970
|
-
async function
|
|
971
|
-
|
|
972
|
-
}
|
|
973
|
-
function
|
|
974
|
-
return
|
|
975
|
-
}
|
|
976
|
-
let
|
|
977
|
-
function
|
|
978
|
-
return
|
|
979
|
-
}
|
|
980
|
-
const
|
|
981
|
-
auto:
|
|
982
|
-
"flex-start":
|
|
983
|
-
center:
|
|
984
|
-
"flex-end":
|
|
985
|
-
stretch:
|
|
986
|
-
baseline:
|
|
987
|
-
"space-between":
|
|
988
|
-
"space-around":
|
|
989
|
-
"space-evenly":
|
|
990
|
-
},
|
|
991
|
-
"flex-start":
|
|
992
|
-
center:
|
|
993
|
-
"flex-end":
|
|
994
|
-
"space-between":
|
|
995
|
-
"space-around":
|
|
996
|
-
"space-evenly":
|
|
997
|
-
},
|
|
998
|
-
column:
|
|
999
|
-
"column-reverse":
|
|
1000
|
-
row:
|
|
1001
|
-
"row-reverse":
|
|
1002
|
-
},
|
|
1003
|
-
nowrap:
|
|
1004
|
-
wrap:
|
|
1005
|
-
"wrap-reverse":
|
|
1006
|
-
},
|
|
1007
|
-
["left",
|
|
1008
|
-
["top",
|
|
1009
|
-
["right",
|
|
1010
|
-
["bottom",
|
|
1001
|
+
let Ee = null;
|
|
1002
|
+
async function Pn() {
|
|
1003
|
+
Ee ?? (Ee = await pt());
|
|
1004
|
+
}
|
|
1005
|
+
function Wn() {
|
|
1006
|
+
return Ee !== null;
|
|
1007
|
+
}
|
|
1008
|
+
let ie = 0;
|
|
1009
|
+
function _n() {
|
|
1010
|
+
return ie;
|
|
1011
|
+
}
|
|
1012
|
+
const me = {
|
|
1013
|
+
auto: P.Auto,
|
|
1014
|
+
"flex-start": P.FlexStart,
|
|
1015
|
+
center: P.Center,
|
|
1016
|
+
"flex-end": P.FlexEnd,
|
|
1017
|
+
stretch: P.Stretch,
|
|
1018
|
+
baseline: P.Baseline,
|
|
1019
|
+
"space-between": P.SpaceBetween,
|
|
1020
|
+
"space-around": P.SpaceAround,
|
|
1021
|
+
"space-evenly": P.SpaceEvenly
|
|
1022
|
+
}, en = {
|
|
1023
|
+
"flex-start": J.FlexStart,
|
|
1024
|
+
center: J.Center,
|
|
1025
|
+
"flex-end": J.FlexEnd,
|
|
1026
|
+
"space-between": J.SpaceBetween,
|
|
1027
|
+
"space-around": J.SpaceAround,
|
|
1028
|
+
"space-evenly": J.SpaceEvenly
|
|
1029
|
+
}, tn = {
|
|
1030
|
+
column: ne.Column,
|
|
1031
|
+
"column-reverse": ne.ColumnReverse,
|
|
1032
|
+
row: ne.Row,
|
|
1033
|
+
"row-reverse": ne.RowReverse
|
|
1034
|
+
}, nn = {
|
|
1035
|
+
nowrap: oe.NoWrap,
|
|
1036
|
+
wrap: oe.Wrap,
|
|
1037
|
+
"wrap-reverse": oe.WrapReverse
|
|
1038
|
+
}, sn = [
|
|
1039
|
+
["left", te.Left],
|
|
1040
|
+
["top", te.Top],
|
|
1041
|
+
["right", te.Right],
|
|
1042
|
+
["bottom", te.Bottom]
|
|
1011
1043
|
];
|
|
1012
|
-
function
|
|
1013
|
-
const
|
|
1014
|
-
if (
|
|
1044
|
+
function on(e, n, t, s) {
|
|
1045
|
+
const o = Ee;
|
|
1046
|
+
if (o === null)
|
|
1015
1047
|
throw new Error("loadLayoutEngine() must be awaited before rendering");
|
|
1016
|
-
const
|
|
1017
|
-
let
|
|
1018
|
-
const
|
|
1019
|
-
var
|
|
1020
|
-
return ((
|
|
1048
|
+
const i = [], c = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), g = [], p = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
|
|
1049
|
+
let d = 0, m = !1, a = !1;
|
|
1050
|
+
const b = (x, $) => {
|
|
1051
|
+
var T;
|
|
1052
|
+
return ((T = x.get($)) == null ? void 0 : T.value) ?? ve[$] ?? "";
|
|
1021
1053
|
};
|
|
1022
|
-
function
|
|
1023
|
-
var
|
|
1024
|
-
(
|
|
1054
|
+
function r(x, $, T, I) {
|
|
1055
|
+
var O;
|
|
1056
|
+
(I == null ? void 0 : I.origin.kind) !== "inherited" && i.push({
|
|
1025
1057
|
kind: "unsupported-property",
|
|
1026
|
-
message:
|
|
1027
|
-
node:
|
|
1028
|
-
...
|
|
1029
|
-
...
|
|
1058
|
+
message: x,
|
|
1059
|
+
node: $.id,
|
|
1060
|
+
...T,
|
|
1061
|
+
...I === void 0 ? {} : ((O = s.locate) == null ? void 0 : O.call(s, I.origin)) ?? {}
|
|
1030
1062
|
});
|
|
1031
1063
|
}
|
|
1032
|
-
function
|
|
1033
|
-
const
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
`${S}: ${M}`,
|
|
1038
|
-
I,
|
|
1064
|
+
function w(x, $, T, I, O, D) {
|
|
1065
|
+
const C = x.get($), R = D && (C == null ? void 0 : C.origin.kind) === "inline";
|
|
1066
|
+
r(
|
|
1067
|
+
`${$}: ${I}${R ? "; Unity drops every inline style in that UXML file" : ""}`,
|
|
1068
|
+
T,
|
|
1039
1069
|
{
|
|
1040
|
-
...
|
|
1041
|
-
subject: {
|
|
1070
|
+
...O === void 0 ? {} : { reason: R ? "invalid-value" : O },
|
|
1071
|
+
subject: {
|
|
1072
|
+
kind: "property",
|
|
1073
|
+
property: $,
|
|
1074
|
+
value: b(x, $),
|
|
1075
|
+
...R ? { unityEffect: { kind: "file-inline-dropped", versions: ["6000.0", "6000.3"] } } : {}
|
|
1076
|
+
}
|
|
1042
1077
|
},
|
|
1043
|
-
|
|
1044
|
-
)
|
|
1078
|
+
C
|
|
1079
|
+
);
|
|
1080
|
+
}
|
|
1081
|
+
function y(x, $, T) {
|
|
1082
|
+
const I = b(x, $);
|
|
1083
|
+
if (I === "") return null;
|
|
1084
|
+
const { length: O, problem: D, reason: C, code: R } = B(I);
|
|
1085
|
+
return D !== void 0 && w(x, $, T, D, C, R === "unsupported-unit"), O;
|
|
1045
1086
|
}
|
|
1046
|
-
function
|
|
1047
|
-
if (
|
|
1048
|
-
switch (
|
|
1087
|
+
function h(x) {
|
|
1088
|
+
if (x !== null)
|
|
1089
|
+
switch (x.kind) {
|
|
1049
1090
|
case "px":
|
|
1050
|
-
return
|
|
1091
|
+
return x.value;
|
|
1051
1092
|
case "percent":
|
|
1052
|
-
return `${
|
|
1093
|
+
return `${x.value}%`;
|
|
1053
1094
|
case "auto":
|
|
1054
1095
|
return "auto";
|
|
1055
1096
|
case "none":
|
|
1056
1097
|
return;
|
|
1057
1098
|
}
|
|
1058
1099
|
}
|
|
1059
|
-
function
|
|
1060
|
-
if (
|
|
1061
|
-
if (
|
|
1062
|
-
if (
|
|
1100
|
+
function f(x) {
|
|
1101
|
+
if (x !== null) {
|
|
1102
|
+
if (x.kind === "px") return x.value;
|
|
1103
|
+
if (x.kind === "percent") return `${x.value}%`;
|
|
1063
1104
|
}
|
|
1064
1105
|
}
|
|
1065
|
-
function
|
|
1066
|
-
|
|
1067
|
-
const
|
|
1068
|
-
(
|
|
1106
|
+
function k(x, $, T) {
|
|
1107
|
+
x.setBoxSizing(ht.BorderBox), x.setFlexDirection(tn[b($, "flex-direction")] ?? ne.Column), x.setFlexWrap(nn[b($, "flex-wrap")] ?? oe.NoWrap), x.setJustifyContent(en[b($, "justify-content")] ?? J.FlexStart), x.setAlignItems(me[b($, "align-items")] ?? P.Stretch), x.setAlignSelf(me[b($, "align-self")] ?? P.Auto), x.setAlignContent(me[b($, "align-content")] ?? P.FlexStart), x.setFlexGrow(he(b($, "flex-grow")) ?? 0), x.setFlexShrink(he(b($, "flex-shrink")) ?? 1), x.setFlexBasis(h(y($, "flex-basis", T)));
|
|
1108
|
+
const I = b($, "position");
|
|
1109
|
+
(I === "fixed" || I === "sticky") && r(`position: ${I} treated as relative`, T, {
|
|
1069
1110
|
reason: "not-uss",
|
|
1070
|
-
subject: { kind: "property", property: "position", value:
|
|
1071
|
-
},
|
|
1072
|
-
|
|
1111
|
+
subject: { kind: "property", property: "position", value: I }
|
|
1112
|
+
}, $.get("position")), x.setPositionType(
|
|
1113
|
+
I === "absolute" ? ue.Absolute : ue.Relative
|
|
1073
1114
|
);
|
|
1074
|
-
const
|
|
1075
|
-
|
|
1115
|
+
const O = b($, "display");
|
|
1116
|
+
O === "none" ? x.setDisplay(mt.None) : O !== "flex" && O !== "initial" && r(`display: ${O} laid out as flex`, T, {
|
|
1076
1117
|
reason: "invalid-value",
|
|
1077
|
-
subject: { kind: "property", property: "display", value:
|
|
1078
|
-
},
|
|
1079
|
-
const
|
|
1080
|
-
|
|
1118
|
+
subject: { kind: "property", property: "display", value: O }
|
|
1119
|
+
}, $.get("display"));
|
|
1120
|
+
const D = b($, "overflow");
|
|
1121
|
+
D === "hidden" ? x.setOverflow(gt.Hidden) : (D === "auto" || D === "scroll") && r(`overflow: ${D} ignored; nothing scrolls`, T, {
|
|
1081
1122
|
reason: "not-uss",
|
|
1082
|
-
subject: { kind: "property", property: "overflow", value:
|
|
1083
|
-
},
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
const
|
|
1087
|
-
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1123
|
+
subject: { kind: "property", property: "overflow", value: D }
|
|
1124
|
+
}, $.get("overflow")), x.setWidth(h(y($, "width", T))), x.setHeight(h(y($, "height", T)));
|
|
1125
|
+
const C = b($, "aspect-ratio").trim();
|
|
1126
|
+
if (C !== "auto" && C !== "initial") {
|
|
1127
|
+
const R = he(C);
|
|
1128
|
+
R !== null && Number.isFinite(R) ? x.setAspectRatio(R) : w($, "aspect-ratio", T, `cannot read "${C}" as a number`, "invalid-value", !0);
|
|
1129
|
+
}
|
|
1130
|
+
x.setMinWidth(f(y($, "min-width", T))), x.setMinHeight(f(y($, "min-height", T))), x.setMaxWidth(f(y($, "max-width", T))), x.setMaxHeight(f(y($, "max-height", T)));
|
|
1131
|
+
for (const [R, L] of sn) {
|
|
1132
|
+
x.setMargin(L, f(y($, `margin-${R}`, T))), x.setPadding(L, f(y($, `padding-${R}`, T)));
|
|
1133
|
+
const U = f(y($, `border-${R}-width`, T));
|
|
1134
|
+
x.setBorder(L, typeof U == "number" ? U : void 0), x.setPosition(L, f(y($, R, T)));
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
function v(x) {
|
|
1138
|
+
var T;
|
|
1139
|
+
const $ = (T = x.attributes.find((I) => I.name === "text")) == null ? void 0 : T.value;
|
|
1140
|
+
return $ === void 0 ? void 0 : Z($);
|
|
1141
|
+
}
|
|
1142
|
+
const S = ["text", "label"];
|
|
1143
|
+
function E(x) {
|
|
1144
|
+
return S.filter(
|
|
1145
|
+
($) => x.attributes.some((T) => T.name === $ && T.value.length > 0)
|
|
1098
1146
|
);
|
|
1099
1147
|
}
|
|
1100
|
-
let
|
|
1101
|
-
function
|
|
1102
|
-
|
|
1103
|
-
|
|
1148
|
+
let M = !1;
|
|
1149
|
+
function A(x, $) {
|
|
1150
|
+
var U;
|
|
1151
|
+
if (ye(x)) {
|
|
1152
|
+
x.name.local === "Bindings" && !M && (M = !0, i.push({
|
|
1104
1153
|
kind: "unsupported-control",
|
|
1105
1154
|
message: "Data bindings are not evaluated in this preview; bound values show as written",
|
|
1106
|
-
node:
|
|
1155
|
+
node: x.id,
|
|
1107
1156
|
reason: "not-rendered",
|
|
1108
1157
|
subject: { kind: "control", type: "Bindings" }
|
|
1109
1158
|
}));
|
|
1110
1159
|
return;
|
|
1111
1160
|
}
|
|
1112
|
-
const
|
|
1113
|
-
|
|
1114
|
-
const { spec:
|
|
1115
|
-
if (
|
|
1116
|
-
const
|
|
1117
|
-
|
|
1161
|
+
const T = n.get(x.id) ?? /* @__PURE__ */ new Map(), I = o.Node.create();
|
|
1162
|
+
d++, ie++, p.set(x, I), g.push(x), k(I, T, x), $ !== null && $.insertChild(I, $.getChildCount());
|
|
1163
|
+
const { spec: O, fallback: D } = X(x), C = v(x), R = O.hasText && C !== void 0 && C.length > 0;
|
|
1164
|
+
if (D) {
|
|
1165
|
+
const N = E(x);
|
|
1166
|
+
i.push({
|
|
1118
1167
|
kind: "unsupported-control",
|
|
1119
|
-
message: `<${
|
|
1120
|
-
node:
|
|
1168
|
+
message: `<${x.name.local}> has no renderer in this version and is drawn as a plain VisualElement` + (N.length === 0 ? "" : `; its ${N.join(" and ")} attribute${N.length > 1 ? "s are" : " is"} not drawn`),
|
|
1169
|
+
node: x.id,
|
|
1121
1170
|
reason: "not-rendered",
|
|
1122
|
-
subject: { kind: "control", type:
|
|
1171
|
+
subject: { kind: "control", type: x.name.local }
|
|
1123
1172
|
});
|
|
1124
1173
|
}
|
|
1125
|
-
if (
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
{
|
|
1174
|
+
if (R && !T.has("-unity-font-definition") && !T.has("-unity-font")) {
|
|
1175
|
+
const N = /[\u1100-\u11ff\u3130-\u318f\uac00-\ud7af\u3400-\u4dbf\u4e00-\u9fff\u3040-\u30ff]/u.exec(C);
|
|
1176
|
+
if (N !== null) {
|
|
1177
|
+
const j = N[0].codePointAt(0), W = j >= 12352 && j <= 12543 ? "kana" : j >= 13312 && j <= 19903 || j >= 19968 && j <= 40959 ? "han" : "hangul", _ = { hangul: "Hangul", han: "Han (CJK ideographs)", kana: "Kana" }[W];
|
|
1178
|
+
i.push({
|
|
1179
|
+
kind: "unsupported-property",
|
|
1180
|
+
reason: "font-fallback",
|
|
1181
|
+
node: x.id,
|
|
1182
|
+
message: `The editor default font (Inter-Regular SDF) has no glyphs for ${_}; Unity draws it with a fallback font whose height can differ (measured 1–4px taller).`,
|
|
1183
|
+
subject: { kind: "property", property: "-unity-font-definition", value: "", affectsLayout: !0, missingGlyphs: W }
|
|
1184
|
+
});
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
if (R) {
|
|
1188
|
+
x.children.some((_) => !ye(_)) && r(
|
|
1189
|
+
`<${x.name.local}> has both a text attribute and children; children are not drawn`,
|
|
1190
|
+
x,
|
|
1191
|
+
{ reason: "not-rendered", subject: { kind: "control", type: x.name.local } }
|
|
1130
1192
|
);
|
|
1131
|
-
const
|
|
1132
|
-
fontSize:
|
|
1133
|
-
fontStyle:
|
|
1134
|
-
whiteSpace:
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1193
|
+
const N = y(T, "font-size", x), j = {
|
|
1194
|
+
fontSize: N !== null && N.kind === "px" ? N.value : 12,
|
|
1195
|
+
fontStyle: b(T, "-unity-font-style") || "normal",
|
|
1196
|
+
whiteSpace: b(T, "white-space") || "normal",
|
|
1197
|
+
textGenerator: b(T, "-unity-text-generator") === "standard" ? "standard" : "advanced"
|
|
1198
|
+
}, W = (U = s.fonts) == null ? void 0 : U.get(T);
|
|
1199
|
+
W !== void 0 && (j.fontFamily = W.family, W.faceInfo !== void 0 && (j.faceInfo = W.faceInfo));
|
|
1200
|
+
for (const [_, se] of [
|
|
1201
|
+
["letter-spacing", "letterSpacing"],
|
|
1202
|
+
["word-spacing", "wordSpacing"],
|
|
1203
|
+
["-unity-paragraph-spacing", "paragraphSpacing"]
|
|
1204
|
+
]) {
|
|
1205
|
+
const H = y(T, _, x);
|
|
1206
|
+
(H == null ? void 0 : H.kind) === "px" && (j[se] = H.value);
|
|
1207
|
+
}
|
|
1208
|
+
I.setMeasureFunc(
|
|
1209
|
+
(_) => s.measureText(
|
|
1210
|
+
C,
|
|
1211
|
+
j,
|
|
1212
|
+
Number.isFinite(_) ? _ : 0
|
|
1141
1213
|
)
|
|
1142
1214
|
);
|
|
1143
1215
|
return;
|
|
1144
1216
|
}
|
|
1145
|
-
let
|
|
1146
|
-
if (
|
|
1147
|
-
|
|
1217
|
+
let L = I;
|
|
1218
|
+
if (O.parts.length > 0) {
|
|
1219
|
+
a || (a = !0, i.push({
|
|
1148
1220
|
kind: "version-dependent",
|
|
1149
|
-
message: `<${
|
|
1150
|
-
node:
|
|
1221
|
+
message: `<${x.name.local}> drawn with built-in child elements measured on Unity ${ae}`,
|
|
1222
|
+
node: x.id,
|
|
1151
1223
|
reason: "version-dependent",
|
|
1152
|
-
subject: { kind: "control", type:
|
|
1224
|
+
subject: { kind: "control", type: x.name.local }
|
|
1153
1225
|
}));
|
|
1154
|
-
const
|
|
1155
|
-
for (const
|
|
1156
|
-
const
|
|
1157
|
-
|
|
1158
|
-
name:
|
|
1159
|
-
owner:
|
|
1226
|
+
const N = [], j = [], W = t.get(x.id);
|
|
1227
|
+
for (const _ of O.parts) {
|
|
1228
|
+
const se = (W == null ? void 0 : W.get(_.name)) ?? /* @__PURE__ */ new Map(), H = o.Node.create();
|
|
1229
|
+
d++, ie++, k(H, se, x), L.insertChild(H, L.getChildCount()), L = H, j.push(H), N.push({
|
|
1230
|
+
name: _.name,
|
|
1231
|
+
owner: x.id,
|
|
1160
1232
|
box: { left: 0, top: 0, width: 0, height: 0 },
|
|
1161
|
-
style:
|
|
1233
|
+
style: se
|
|
1162
1234
|
});
|
|
1163
1235
|
}
|
|
1164
|
-
|
|
1165
|
-
}
|
|
1166
|
-
for (const
|
|
1167
|
-
}
|
|
1168
|
-
|
|
1169
|
-
const
|
|
1170
|
-
|
|
1171
|
-
const
|
|
1172
|
-
for (let
|
|
1173
|
-
let
|
|
1174
|
-
for (const [
|
|
1175
|
-
const
|
|
1176
|
-
if (
|
|
1177
|
-
const
|
|
1178
|
-
if (
|
|
1179
|
-
const
|
|
1180
|
-
(
|
|
1181
|
-
}
|
|
1182
|
-
if (
|
|
1183
|
-
|
|
1184
|
-
}
|
|
1185
|
-
function
|
|
1186
|
-
const
|
|
1187
|
-
if (
|
|
1188
|
-
const
|
|
1189
|
-
let
|
|
1190
|
-
|
|
1191
|
-
const
|
|
1192
|
-
|
|
1193
|
-
const
|
|
1194
|
-
|
|
1236
|
+
u.set(x.id, N), l.set(x.id, j);
|
|
1237
|
+
}
|
|
1238
|
+
for (const N of x.children) A(N, L);
|
|
1239
|
+
}
|
|
1240
|
+
A(e, null);
|
|
1241
|
+
const z = p.get(e);
|
|
1242
|
+
z.setWidth(s.size.width), z.setHeight(s.size.height), z.setPositionType(ue.Relative), z.calculateLayout(s.size.width, s.size.height, De.LTR);
|
|
1243
|
+
const q = /* @__PURE__ */ new Map();
|
|
1244
|
+
for (let x = 0; x < 3; x++) {
|
|
1245
|
+
let $ = !1;
|
|
1246
|
+
for (const [T, I] of u) {
|
|
1247
|
+
const O = l.get(T);
|
|
1248
|
+
if (O === void 0) continue;
|
|
1249
|
+
const D = I.findIndex((j) => j.name === "unity-content-viewport"), C = I.findIndex((j) => j.name === "unity-content-container");
|
|
1250
|
+
if (D === -1 || C === -1) continue;
|
|
1251
|
+
const R = O[D].getComputedLayout(), U = O[C].getComputedLayout().height > R.height + 0.01, N = zt(U);
|
|
1252
|
+
(q.get(T) ?? 0) !== N && (q.set(T, N), O[D].setMargin(te.Right, N), $ = !0);
|
|
1253
|
+
}
|
|
1254
|
+
if (!$) break;
|
|
1255
|
+
z.calculateLayout(s.size.width, s.size.height, De.LTR);
|
|
1256
|
+
}
|
|
1257
|
+
function Q(x, $, T) {
|
|
1258
|
+
const I = p.get(x);
|
|
1259
|
+
if (I === void 0) return;
|
|
1260
|
+
const O = I.getComputedLayout();
|
|
1261
|
+
let D = $ + O.left, C = T + O.top;
|
|
1262
|
+
c.set(x.id, { left: D, top: C, width: O.width, height: O.height });
|
|
1263
|
+
const R = u.get(x.id), L = l.get(x.id);
|
|
1264
|
+
R !== void 0 && L !== void 0 && R.forEach((U, N) => {
|
|
1265
|
+
const j = L[N].getComputedLayout();
|
|
1266
|
+
D += j.left, C += j.top, U.box = { left: D, top: C, width: j.width, height: j.height };
|
|
1195
1267
|
});
|
|
1196
|
-
for (const
|
|
1268
|
+
for (const U of x.children) Q(U, D, C);
|
|
1197
1269
|
}
|
|
1198
|
-
return
|
|
1199
|
-
boxes:
|
|
1200
|
-
parts:
|
|
1201
|
-
painted:
|
|
1202
|
-
warnings:
|
|
1270
|
+
return Q(e, 0, 0), {
|
|
1271
|
+
boxes: c,
|
|
1272
|
+
parts: u,
|
|
1273
|
+
painted: g,
|
|
1274
|
+
warnings: i,
|
|
1203
1275
|
dispose() {
|
|
1204
|
-
|
|
1276
|
+
m || (m = !0, z.freeRecursive(), ie -= d, p.clear(), l.clear());
|
|
1205
1277
|
}
|
|
1206
1278
|
};
|
|
1207
1279
|
}
|
|
1208
|
-
const
|
|
1209
|
-
|
|
1280
|
+
const rn = {
|
|
1281
|
+
pointSize: 90,
|
|
1282
|
+
ascentLine: 87.1875,
|
|
1283
|
+
descentLine: -21.73295,
|
|
1284
|
+
lineHeight: 108.9205
|
|
1285
|
+
};
|
|
1286
|
+
function an(e, n, t, s = 0, o = 0) {
|
|
1287
|
+
return Math.ceil(e * n * (t.ascentLine - t.descentLine) / t.pointSize + s * o * n / 100);
|
|
1288
|
+
}
|
|
1289
|
+
function nt(e) {
|
|
1290
|
+
return e === void 0 ? "sans-serif" : `${JSON.stringify(e)}, sans-serif`;
|
|
1291
|
+
}
|
|
1292
|
+
function ln(e) {
|
|
1210
1293
|
var t;
|
|
1211
1294
|
let n = null;
|
|
1212
1295
|
if (e !== void 0) {
|
|
1213
1296
|
const s = e.createElement("canvas");
|
|
1214
1297
|
n = ((t = s.getContext) == null ? void 0 : t.call(s, "2d")) ?? null;
|
|
1215
1298
|
}
|
|
1216
|
-
return (s,
|
|
1217
|
-
const
|
|
1218
|
-
|
|
1219
|
-
return p.length * r.fontSize * 0.5;
|
|
1220
|
-
const i = r.fontStyle.includes("bold") ? "bold" : "normal", y = r.fontStyle.includes("italic") ? "italic" : "normal";
|
|
1221
|
-
return n.font = `${y} ${i} ${r.fontSize}px sans-serif`, n.measureText(p).width;
|
|
1299
|
+
return (s, o, i) => {
|
|
1300
|
+
const c = o.fontStyle.includes("bold") ? "bold" : "normal", u = o.fontStyle.includes("italic") ? "italic" : "normal", g = (r) => {
|
|
1301
|
+
n !== null && (n.font = `${u} ${c} ${r}px ${nt(o.fontFamily)}`);
|
|
1222
1302
|
};
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
const
|
|
1232
|
-
|
|
1233
|
-
}
|
|
1234
|
-
|
|
1303
|
+
let p = o.faceInfo;
|
|
1304
|
+
if (p === void 0 && o.fontFamily !== void 0 && n !== null) {
|
|
1305
|
+
g(90);
|
|
1306
|
+
const r = n.measureText("Mg");
|
|
1307
|
+
Number.isFinite(r.fontBoundingBoxAscent) && Number.isFinite(r.fontBoundingBoxDescent) && (p = { pointSize: 90, ascentLine: r.fontBoundingBoxAscent, descentLine: -r.fontBoundingBoxDescent });
|
|
1308
|
+
}
|
|
1309
|
+
g(o.fontSize);
|
|
1310
|
+
const l = (r) => {
|
|
1311
|
+
const w = [...r].length, y = [...r].filter((k) => k === " ").length, h = Math.max(0, w - 1 - (o.textGenerator === "standard" ? 0 : y));
|
|
1312
|
+
return (n === null ? w * o.fontSize * 0.5 : n.measureText(r).width) + (h * (o.letterSpacing ?? 0) + y * (o.wordSpacing ?? 0)) * o.fontSize / 100;
|
|
1313
|
+
}, d = s.split(`
|
|
1314
|
+
`).map((r) => o.whiteSpace === "pre" || o.whiteSpace === "pre-wrap" ? r : r.replace(/ +/g, " ").trim()), m = o.whiteSpace !== "nowrap" && o.whiteSpace !== "pre" && i > 0;
|
|
1315
|
+
let a = 0, b = 0;
|
|
1316
|
+
for (const r of d) {
|
|
1317
|
+
let w = "";
|
|
1318
|
+
if (a++, !m) {
|
|
1319
|
+
b = Math.max(b, l(r));
|
|
1320
|
+
continue;
|
|
1321
|
+
}
|
|
1322
|
+
for (const y of r.split(/\s+/).filter((h) => h.length > 0)) {
|
|
1323
|
+
const h = w === "" ? y : `${w} ${y}`;
|
|
1324
|
+
w !== "" && l(h) > i ? (b = Math.max(b, l(w)), a++, w = y) : w = h;
|
|
1325
|
+
}
|
|
1326
|
+
b = Math.max(b, l(w));
|
|
1327
|
+
}
|
|
1328
|
+
return { width: b, height: an(
|
|
1329
|
+
a,
|
|
1330
|
+
o.fontSize,
|
|
1331
|
+
p ?? rn,
|
|
1332
|
+
d.length - 1,
|
|
1333
|
+
o.paragraphSpacing ?? 0
|
|
1334
|
+
) };
|
|
1235
1335
|
};
|
|
1236
1336
|
}
|
|
1237
|
-
const
|
|
1337
|
+
const cn = ["top", "right", "bottom", "left"], un = {
|
|
1238
1338
|
normal: { weight: "normal", style: "normal" },
|
|
1239
1339
|
bold: { weight: "bold", style: "normal" },
|
|
1240
1340
|
italic: { weight: "normal", style: "italic" },
|
|
1241
1341
|
"bold-and-italic": { weight: "bold", style: "italic" }
|
|
1242
|
-
},
|
|
1342
|
+
}, dn = {
|
|
1243
1343
|
upper: "flex-start",
|
|
1244
1344
|
middle: "center",
|
|
1245
1345
|
lower: "flex-end"
|
|
1246
|
-
},
|
|
1346
|
+
}, fn = {
|
|
1247
1347
|
left: "flex-start",
|
|
1248
1348
|
center: "center",
|
|
1249
1349
|
right: "flex-end"
|
|
1250
|
-
},
|
|
1350
|
+
}, ge = {
|
|
1251
1351
|
"stretch-to-fill": "100% 100%",
|
|
1252
1352
|
"scale-and-crop": "cover",
|
|
1253
1353
|
"scale-to-fit": "contain"
|
|
1254
|
-
},
|
|
1255
|
-
function
|
|
1256
|
-
const n = /^(url|resource)\(\s*(["']?)(.*?)\2\s*\)$/.exec(
|
|
1354
|
+
}, Le = "stretch-to-fill";
|
|
1355
|
+
function st(e) {
|
|
1356
|
+
const n = /^(url|resource)\(\s*(["']?)(.*?)\2\s*\)$/.exec(Z(e).trim());
|
|
1257
1357
|
return n === null ? null : { form: n[1], path: n[3] };
|
|
1258
1358
|
}
|
|
1259
|
-
function
|
|
1260
|
-
var
|
|
1261
|
-
const s = {},
|
|
1262
|
-
var
|
|
1263
|
-
return (
|
|
1264
|
-
},
|
|
1265
|
-
var
|
|
1266
|
-
const
|
|
1267
|
-
(
|
|
1359
|
+
function Ue(e, n, t = {}) {
|
|
1360
|
+
var h;
|
|
1361
|
+
const s = {}, o = [], i = (f) => {
|
|
1362
|
+
var k;
|
|
1363
|
+
return (k = e.get(f)) == null ? void 0 : k.value;
|
|
1364
|
+
}, c = (f, k, v = {}) => {
|
|
1365
|
+
var M, A, z;
|
|
1366
|
+
const S = ((M = v.subject) == null ? void 0 : M.kind) === "property" ? v.subject.property : ((A = v.subject) == null ? void 0 : A.kind) === "asset" ? "background-image" : void 0, E = S === void 0 ? void 0 : e.get(S);
|
|
1367
|
+
(E == null ? void 0 : E.origin.kind) !== "inherited" && o.push({
|
|
1268
1368
|
kind: f,
|
|
1269
|
-
message:
|
|
1369
|
+
message: k,
|
|
1270
1370
|
node: n,
|
|
1271
1371
|
...v,
|
|
1272
|
-
...
|
|
1372
|
+
...E === void 0 ? {} : ((z = t.locate) == null ? void 0 : z.call(t, E.origin)) ?? {}
|
|
1273
1373
|
});
|
|
1274
|
-
},
|
|
1275
|
-
subject: { kind: "property", property: f, ...
|
|
1374
|
+
}, u = (f, k = i(f)) => ({
|
|
1375
|
+
subject: { kind: "property", property: f, ...k === void 0 ? {} : { value: k } }
|
|
1276
1376
|
});
|
|
1277
1377
|
s["box-sizing"] = "border-box";
|
|
1278
|
-
const
|
|
1378
|
+
const g = [
|
|
1279
1379
|
"background-color",
|
|
1280
1380
|
"color",
|
|
1281
1381
|
"opacity",
|
|
1282
1382
|
"visibility",
|
|
1283
|
-
"letter-spacing",
|
|
1284
|
-
"word-spacing",
|
|
1285
1383
|
"white-space",
|
|
1286
1384
|
"text-overflow",
|
|
1287
1385
|
"cursor",
|
|
1288
1386
|
"font-size",
|
|
1289
1387
|
"transform-origin"
|
|
1290
1388
|
];
|
|
1291
|
-
for (const f of
|
|
1292
|
-
const
|
|
1293
|
-
|
|
1294
|
-
}
|
|
1295
|
-
|
|
1296
|
-
for (const f of
|
|
1297
|
-
const
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1389
|
+
for (const f of g) {
|
|
1390
|
+
const k = i(f);
|
|
1391
|
+
k !== void 0 && (s[f] = k);
|
|
1392
|
+
}
|
|
1393
|
+
const p = B(i("font-size") ?? "12px").length, l = (p == null ? void 0 : p.kind) === "px" ? p.value : 12;
|
|
1394
|
+
for (const f of ["letter-spacing", "word-spacing"]) {
|
|
1395
|
+
const k = B(i(f) ?? "").length;
|
|
1396
|
+
(k == null ? void 0 : k.kind) === "px" && (s[f] = `${k.value * l / 100}px`);
|
|
1397
|
+
}
|
|
1398
|
+
i("display") === "none" && (s.display = "none"), i("overflow") === "hidden" && (s.overflow = "hidden");
|
|
1399
|
+
for (const f of cn) {
|
|
1400
|
+
const k = i(`border-${f}-width`);
|
|
1401
|
+
if (k !== void 0 && k !== "0") {
|
|
1402
|
+
const { length: E, problem: M } = B(k);
|
|
1403
|
+
E === null || E.kind !== "px" ? M === void 0 && c(
|
|
1301
1404
|
"unsupported-property",
|
|
1302
|
-
`border-${f}-width:
|
|
1303
|
-
{ reason: "invalid-value", ...
|
|
1304
|
-
) : (s[`border-${f}-width`] = `${
|
|
1405
|
+
`border-${f}-width: "${k}" is not a pixel length; ignored`,
|
|
1406
|
+
{ reason: "invalid-value", ...u(`border-${f}-width`) }
|
|
1407
|
+
) : (s[`border-${f}-width`] = `${E.value}px`, s[`border-${f}-style`] = "solid");
|
|
1305
1408
|
}
|
|
1306
|
-
const v =
|
|
1409
|
+
const v = i(`border-${f}-color`);
|
|
1307
1410
|
v !== void 0 && (s[`border-${f}-color`] = v);
|
|
1308
|
-
const
|
|
1309
|
-
|
|
1411
|
+
const S = i(`padding-${f}`);
|
|
1412
|
+
S !== void 0 && S !== "0" && (s[`padding-${f}`] = S);
|
|
1310
1413
|
}
|
|
1311
1414
|
for (const f of [
|
|
1312
1415
|
"top-left",
|
|
@@ -1314,369 +1417,406 @@ function Ae(e, n, t = {}) {
|
|
|
1314
1417
|
"bottom-right",
|
|
1315
1418
|
"bottom-left"
|
|
1316
1419
|
]) {
|
|
1317
|
-
const
|
|
1318
|
-
|
|
1420
|
+
const k = i(`border-${f}-radius`);
|
|
1421
|
+
k !== void 0 && (s[`border-${f}-radius`] = k);
|
|
1319
1422
|
}
|
|
1320
|
-
const
|
|
1321
|
-
if (
|
|
1322
|
-
const f =
|
|
1323
|
-
f === void 0 ?
|
|
1423
|
+
const d = i("-unity-font-style");
|
|
1424
|
+
if (d !== void 0) {
|
|
1425
|
+
const f = un[d];
|
|
1426
|
+
f === void 0 ? c("unsupported-property", `-unity-font-style: "${d}" ignored`, {
|
|
1324
1427
|
reason: "invalid-value",
|
|
1325
|
-
...
|
|
1428
|
+
...u("-unity-font-style")
|
|
1326
1429
|
}) : (s["font-weight"] = f.weight, s["font-style"] = f.style);
|
|
1327
1430
|
}
|
|
1328
|
-
const
|
|
1329
|
-
if (
|
|
1330
|
-
const [f,
|
|
1331
|
-
v === void 0 ||
|
|
1431
|
+
const m = i("-unity-text-align");
|
|
1432
|
+
if (m !== void 0) {
|
|
1433
|
+
const [f, k] = m.split("-"), v = dn[f ?? ""], S = fn[k ?? ""];
|
|
1434
|
+
v === void 0 || S === void 0 ? c("unsupported-property", `-unity-text-align: "${m}" ignored`, {
|
|
1332
1435
|
reason: "invalid-value",
|
|
1333
|
-
...
|
|
1334
|
-
}) : (s["align-items"] = v, s["justify-content"] =
|
|
1335
|
-
}
|
|
1336
|
-
const
|
|
1337
|
-
|
|
1338
|
-
const
|
|
1339
|
-
|
|
1340
|
-
const
|
|
1341
|
-
|
|
1342
|
-
const y =
|
|
1436
|
+
...u("-unity-text-align")
|
|
1437
|
+
}) : (s["align-items"] = v, s["justify-content"] = S);
|
|
1438
|
+
}
|
|
1439
|
+
const a = [], b = i("translate");
|
|
1440
|
+
b !== void 0 && a.push(`translate(${b.replace(/\s+/, ", ")})`);
|
|
1441
|
+
const r = i("rotate");
|
|
1442
|
+
r !== void 0 && a.push(`rotate(${r})`);
|
|
1443
|
+
const w = i("scale");
|
|
1444
|
+
w !== void 0 && a.push(`scale(${w.replace(/\s+/, ", ")})`), a.length > 0 && (s.transform = a.join(" "));
|
|
1445
|
+
const y = i("background-image");
|
|
1343
1446
|
if (y !== void 0 && y !== "none") {
|
|
1344
|
-
const f =
|
|
1447
|
+
const f = st(y);
|
|
1345
1448
|
if (f === null)
|
|
1346
|
-
|
|
1449
|
+
c("unsupported-property", `background-image: "${y}" is not an asset reference; Unity shows its warning icon instead`, {
|
|
1347
1450
|
reason: "not-uss",
|
|
1348
|
-
...
|
|
1451
|
+
...u("background-image")
|
|
1349
1452
|
});
|
|
1350
1453
|
else {
|
|
1351
|
-
const { form:
|
|
1352
|
-
if (
|
|
1353
|
-
s["background-image"] = "repeating-linear-gradient(45deg, rgba(255,0,255,0.35) 0 6px, rgba(0,0,0,0) 6px 12px)",
|
|
1354
|
-
subject: { kind: "asset", path: v, form:
|
|
1454
|
+
const { form: k, path: v } = f, S = ((h = t.resolveAsset) == null ? void 0 : h.call(t, v, k)) ?? null;
|
|
1455
|
+
if (S === null)
|
|
1456
|
+
s["background-image"] = "repeating-linear-gradient(45deg, rgba(255,0,255,0.35) 0 6px, rgba(0,0,0,0) 6px 12px)", c("asset-unresolved", `background-image: "${v}" was not resolved`, {
|
|
1457
|
+
subject: { kind: "asset", path: v, form: k }
|
|
1355
1458
|
});
|
|
1356
1459
|
else {
|
|
1357
|
-
s["background-image"] = `url("${
|
|
1358
|
-
const
|
|
1359
|
-
|
|
1460
|
+
s["background-image"] = `url("${S}")`, s["background-repeat"] = i("background-repeat") ?? "no-repeat", s["background-position"] = i("background-position") ?? "center";
|
|
1461
|
+
const E = i("background-size"), M = i("-unity-background-scale-mode") ?? Le, A = ge[M];
|
|
1462
|
+
A === void 0 && c(
|
|
1360
1463
|
"unsupported-property",
|
|
1361
|
-
`-unity-background-scale-mode: "${
|
|
1362
|
-
{ reason: "invalid-value", ...
|
|
1363
|
-
), s["background-size"] =
|
|
1464
|
+
`-unity-background-scale-mode: "${M}" ignored; expected one of ${Object.keys(ge).join(", ")}`,
|
|
1465
|
+
{ reason: "invalid-value", ...u("-unity-background-scale-mode", M) }
|
|
1466
|
+
), s["background-size"] = E ?? A ?? ge[Le];
|
|
1364
1467
|
}
|
|
1365
1468
|
}
|
|
1366
1469
|
}
|
|
1367
|
-
return { declarations: s, warnings:
|
|
1470
|
+
return { declarations: s, warnings: o };
|
|
1368
1471
|
}
|
|
1369
|
-
const
|
|
1370
|
-
function
|
|
1371
|
-
const
|
|
1372
|
-
function
|
|
1373
|
-
const
|
|
1374
|
-
var
|
|
1375
|
-
const
|
|
1376
|
-
return
|
|
1472
|
+
const pn = "data-uxml-node", hn = "data-uxml-part", mn = "data-uxml-part-owner";
|
|
1473
|
+
function gn(e, n, t, s, o, i) {
|
|
1474
|
+
const c = [], u = /* @__PURE__ */ new Map();
|
|
1475
|
+
function g(a) {
|
|
1476
|
+
const b = s.get(a.id), r = (w) => {
|
|
1477
|
+
var f;
|
|
1478
|
+
const y = ((f = b == null ? void 0 : b.get(w)) == null ? void 0 : f.value) ?? ve[w] ?? "0", { length: h } = B(y);
|
|
1479
|
+
return h !== null && h.kind === "px" ? h.value : 0;
|
|
1377
1480
|
};
|
|
1378
|
-
return { left:
|
|
1481
|
+
return { left: r("border-left-width"), top: r("border-top-width") };
|
|
1379
1482
|
}
|
|
1380
|
-
function
|
|
1381
|
-
const
|
|
1382
|
-
var
|
|
1383
|
-
const
|
|
1384
|
-
return
|
|
1483
|
+
function p(a) {
|
|
1484
|
+
const b = (r) => {
|
|
1485
|
+
var h;
|
|
1486
|
+
const w = ((h = a.style.get(r)) == null ? void 0 : h.value) ?? ve[r] ?? "0", { length: y } = B(w);
|
|
1487
|
+
return y !== null && y.kind === "px" ? y.value : 0;
|
|
1385
1488
|
};
|
|
1386
|
-
return { left:
|
|
1489
|
+
return { left: b("border-left-width"), top: b("border-top-width") };
|
|
1387
1490
|
}
|
|
1388
|
-
function l(
|
|
1389
|
-
var
|
|
1390
|
-
const
|
|
1391
|
-
if (
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
const
|
|
1491
|
+
function l(a, b, r) {
|
|
1492
|
+
var k, v;
|
|
1493
|
+
const w = B(((k = r.get("letter-spacing")) == null ? void 0 : k.value) ?? "").length;
|
|
1494
|
+
if ((w == null ? void 0 : w.kind) !== "px" || w.value === 0) {
|
|
1495
|
+
a.textContent = b;
|
|
1496
|
+
return;
|
|
1497
|
+
}
|
|
1498
|
+
const y = ((v = r.get("-unity-text-generator")) == null ? void 0 : v.value) === "standard", h = [...b], f = h.pop();
|
|
1499
|
+
for (const S of h.join("").match(/ +|[^ ]+/g) ?? []) {
|
|
1500
|
+
const E = i.document.createElement("span");
|
|
1501
|
+
E.textContent = S, !y && S[0] === " " && (E.style.letterSpacing = "0px"), a.appendChild(E);
|
|
1502
|
+
}
|
|
1503
|
+
if (f !== void 0) {
|
|
1504
|
+
const S = i.document.createElement("span");
|
|
1505
|
+
S.textContent = f, S.style.letterSpacing = "0px", a.appendChild(S);
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
function d(a, b, r) {
|
|
1509
|
+
var A, z, q, Q, x;
|
|
1510
|
+
const w = n.get(a.id);
|
|
1511
|
+
if (w === void 0) return null;
|
|
1512
|
+
const y = i.document.createElement("div");
|
|
1513
|
+
y.setAttribute(pn, String(a.id));
|
|
1514
|
+
const h = s.get(a.id) ?? /* @__PURE__ */ new Map(), f = Ue(h, a.id, i);
|
|
1515
|
+
c.push(...f.warnings);
|
|
1516
|
+
const k = b === null ? 0 : w.left - b.left - r.left, v = b === null ? 0 : w.top - b.top - r.top, S = {
|
|
1397
1517
|
position: "absolute",
|
|
1398
|
-
left: `${
|
|
1399
|
-
top: `${
|
|
1400
|
-
width: `${
|
|
1401
|
-
height: `${
|
|
1518
|
+
left: `${k}px`,
|
|
1519
|
+
top: `${v}px`,
|
|
1520
|
+
width: `${w.width}px`,
|
|
1521
|
+
height: `${w.height}px`,
|
|
1402
1522
|
margin: "0",
|
|
1403
|
-
...
|
|
1523
|
+
...f.declarations
|
|
1404
1524
|
};
|
|
1405
|
-
for (const [
|
|
1406
|
-
|
|
1407
|
-
const { spec:
|
|
1408
|
-
if (
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
const
|
|
1416
|
-
|
|
1417
|
-
|
|
1525
|
+
for (const [$, T] of Object.entries(S))
|
|
1526
|
+
y.style.setProperty($, T);
|
|
1527
|
+
const { spec: E } = X(a), M = (A = a.attributes.find(($) => $.name === "text")) == null ? void 0 : A.value;
|
|
1528
|
+
if (E.hasText && M !== void 0 && M.length > 0) {
|
|
1529
|
+
y.style.setProperty("display", f.declarations.display ?? "flex"), f.declarations["align-items"] === void 0 && y.style.setProperty("align-items", "flex-start"), f.declarations["justify-content"] === void 0 && y.style.setProperty("justify-content", "flex-start");
|
|
1530
|
+
const $ = (z = i.fonts) == null ? void 0 : z.get(h);
|
|
1531
|
+
$ !== void 0 && (y.style.fontFamily = nt($.family));
|
|
1532
|
+
const T = B(((q = h.get("-unity-paragraph-spacing")) == null ? void 0 : q.value) ?? "").length, I = Z(M), O = B(((Q = h.get("letter-spacing")) == null ? void 0 : Q.value) ?? "").length;
|
|
1533
|
+
if ((T == null ? void 0 : T.kind) === "px" && I.includes(`
|
|
1534
|
+
`)) {
|
|
1535
|
+
const D = B(((x = h.get("font-size")) == null ? void 0 : x.value) ?? "12px").length, C = I.split(`
|
|
1536
|
+
`), R = i.document.createElement("div");
|
|
1537
|
+
R.style.width = "100%", C.forEach((L, U) => {
|
|
1538
|
+
const N = i.document.createElement("div");
|
|
1539
|
+
if (l(N, L, h), N.style.minHeight = "1em", U < C.length - 1 && (N.style.marginBottom = `${T.value * ((D == null ? void 0 : D.kind) === "px" ? D.value : 12) / 100}px`), R.appendChild(N), U < C.length - 1) {
|
|
1540
|
+
const j = i.document.createElement("span");
|
|
1541
|
+
j.textContent = `
|
|
1542
|
+
`, j.style.display = "none", R.appendChild(j);
|
|
1543
|
+
}
|
|
1544
|
+
}), y.appendChild(R);
|
|
1545
|
+
} else if ((O == null ? void 0 : O.kind) === "px" && O.value !== 0) {
|
|
1546
|
+
const D = i.document.createElement("span");
|
|
1547
|
+
D.style.minWidth = "0", l(D, I, h), y.appendChild(D);
|
|
1548
|
+
} else
|
|
1549
|
+
y.textContent = I;
|
|
1550
|
+
} else {
|
|
1551
|
+
let $ = y, T = w, I = g(a);
|
|
1552
|
+
for (const O of t.get(a.id) ?? []) {
|
|
1553
|
+
const D = i.document.createElement("div");
|
|
1554
|
+
D.setAttribute(hn, O.name), D.setAttribute(mn, String(a.id));
|
|
1555
|
+
const C = Ue(O.style, a.id, i);
|
|
1556
|
+
c.push(...C.warnings);
|
|
1557
|
+
const R = {
|
|
1418
1558
|
position: "absolute",
|
|
1419
|
-
left: `${
|
|
1420
|
-
top: `${
|
|
1421
|
-
width: `${
|
|
1422
|
-
height: `${
|
|
1559
|
+
left: `${O.box.left - T.left - I.left}px`,
|
|
1560
|
+
top: `${O.box.top - T.top - I.top}px`,
|
|
1561
|
+
width: `${O.box.width}px`,
|
|
1562
|
+
height: `${O.box.height}px`,
|
|
1423
1563
|
margin: "0",
|
|
1424
|
-
...
|
|
1564
|
+
...C.declarations
|
|
1425
1565
|
};
|
|
1426
|
-
for (const [
|
|
1427
|
-
|
|
1428
|
-
|
|
1566
|
+
for (const [L, U] of Object.entries(R))
|
|
1567
|
+
D.style.setProperty(L, U);
|
|
1568
|
+
$.appendChild(D), $ = D, T = O.box, I = p(O);
|
|
1429
1569
|
}
|
|
1430
|
-
for (const
|
|
1431
|
-
const
|
|
1432
|
-
|
|
1570
|
+
for (const O of a.children) {
|
|
1571
|
+
const D = d(O, T, I);
|
|
1572
|
+
D !== null && $.appendChild(D);
|
|
1433
1573
|
}
|
|
1434
1574
|
}
|
|
1435
|
-
return
|
|
1575
|
+
return u.set(a.id, y), y;
|
|
1436
1576
|
}
|
|
1437
|
-
|
|
1438
|
-
const
|
|
1439
|
-
return
|
|
1577
|
+
o.replaceChildren();
|
|
1578
|
+
const m = d(e, null, { left: 0, top: 0 });
|
|
1579
|
+
return m !== null && (m.style.setProperty("position", "relative"), o.appendChild(m)), { warnings: c, elements: u };
|
|
1440
1580
|
}
|
|
1441
|
-
const
|
|
1442
|
-
function
|
|
1581
|
+
const ze = /[A-Za-z0-9_-]/;
|
|
1582
|
+
function K(e) {
|
|
1443
1583
|
return e === " " || e === " " || e === `
|
|
1444
1584
|
` || e === "\r" || e === "\f";
|
|
1445
1585
|
}
|
|
1446
|
-
function
|
|
1447
|
-
let s = n,
|
|
1586
|
+
function we(e, n, t) {
|
|
1587
|
+
let s = n, o = 0;
|
|
1448
1588
|
for (; s < e.length; ) {
|
|
1449
|
-
const
|
|
1450
|
-
if (
|
|
1451
|
-
const
|
|
1452
|
-
s =
|
|
1589
|
+
const i = e[s];
|
|
1590
|
+
if (i === '"' || i === "'") {
|
|
1591
|
+
const c = e.indexOf(i, s + 1);
|
|
1592
|
+
s = c < 0 ? e.length : c + 1;
|
|
1453
1593
|
continue;
|
|
1454
1594
|
}
|
|
1455
|
-
if (
|
|
1456
|
-
const
|
|
1457
|
-
s =
|
|
1595
|
+
if (i === "/" && e[s + 1] === "*") {
|
|
1596
|
+
const c = e.indexOf("*/", s + 2);
|
|
1597
|
+
s = c < 0 ? e.length : c + 2;
|
|
1458
1598
|
continue;
|
|
1459
1599
|
}
|
|
1460
|
-
if (
|
|
1461
|
-
|
|
1462
|
-
else if (
|
|
1463
|
-
|
|
1464
|
-
else if (
|
|
1600
|
+
if (i === "(" || i === "[")
|
|
1601
|
+
o++;
|
|
1602
|
+
else if (i === ")" || i === "]")
|
|
1603
|
+
o > 0 && o--;
|
|
1604
|
+
else if (o === 0 && t.includes(i))
|
|
1465
1605
|
return s;
|
|
1466
1606
|
s++;
|
|
1467
1607
|
}
|
|
1468
1608
|
return e.length;
|
|
1469
1609
|
}
|
|
1470
|
-
function
|
|
1471
|
-
let s = n,
|
|
1472
|
-
for (; s <
|
|
1473
|
-
for (;
|
|
1474
|
-
return { start: s, end:
|
|
1475
|
-
}
|
|
1476
|
-
function
|
|
1477
|
-
const
|
|
1478
|
-
let
|
|
1479
|
-
for (;
|
|
1480
|
-
for (;
|
|
1481
|
-
if (e.startsWith("/*",
|
|
1482
|
-
const l = e.indexOf("*/",
|
|
1483
|
-
|
|
1610
|
+
function ot(e, n, t) {
|
|
1611
|
+
let s = n, o = t;
|
|
1612
|
+
for (; s < o && K(e[s]); ) s++;
|
|
1613
|
+
for (; o > s && K(e[o - 1]); ) o--;
|
|
1614
|
+
return { start: s, end: o };
|
|
1615
|
+
}
|
|
1616
|
+
function it(e, n, t, s) {
|
|
1617
|
+
const o = [];
|
|
1618
|
+
let i = n;
|
|
1619
|
+
for (; i < t; ) {
|
|
1620
|
+
for (; i < t && (K(e[i]) || e.startsWith("/*", i)); )
|
|
1621
|
+
if (e.startsWith("/*", i)) {
|
|
1622
|
+
const l = e.indexOf("*/", i + 2);
|
|
1623
|
+
i = l < 0 ? t : l + 2;
|
|
1484
1624
|
} else
|
|
1485
|
-
|
|
1486
|
-
if (
|
|
1487
|
-
if (e[
|
|
1488
|
-
|
|
1625
|
+
i++;
|
|
1626
|
+
if (i >= t) break;
|
|
1627
|
+
if (e[i] === ";") {
|
|
1628
|
+
i++;
|
|
1489
1629
|
continue;
|
|
1490
1630
|
}
|
|
1491
|
-
const
|
|
1492
|
-
if (
|
|
1493
|
-
const l = Math.min(
|
|
1494
|
-
s == null || s("declaration without a value",
|
|
1631
|
+
const c = i, u = we(e, c, ":;}");
|
|
1632
|
+
if (u >= t || e[u] !== ":") {
|
|
1633
|
+
const l = Math.min(u, t);
|
|
1634
|
+
s == null || s("declaration without a value", c, l), i = l + 1;
|
|
1495
1635
|
continue;
|
|
1496
1636
|
}
|
|
1497
|
-
const
|
|
1498
|
-
|
|
1499
|
-
property: e.slice(
|
|
1500
|
-
value: e.slice(
|
|
1501
|
-
span: { start:
|
|
1637
|
+
const g = Math.min(we(e, u + 1, ";}"), t), p = ot(e, u + 1, g);
|
|
1638
|
+
o.push({
|
|
1639
|
+
property: e.slice(c, u).trim(),
|
|
1640
|
+
value: e.slice(p.start, p.end),
|
|
1641
|
+
span: { start: c, end: p.end },
|
|
1502
1642
|
dirty: !1
|
|
1503
|
-
}),
|
|
1643
|
+
}), i = g + 1;
|
|
1504
1644
|
}
|
|
1505
|
-
return
|
|
1645
|
+
return o;
|
|
1506
1646
|
}
|
|
1507
|
-
function
|
|
1647
|
+
function yn(e) {
|
|
1508
1648
|
const n = e.span.end - 1 - e.value.length;
|
|
1509
1649
|
return n < e.span.start ? null : n;
|
|
1510
1650
|
}
|
|
1511
|
-
function
|
|
1512
|
-
const s = [],
|
|
1513
|
-
let
|
|
1514
|
-
function
|
|
1651
|
+
function Oe(e, n = null, t = 0) {
|
|
1652
|
+
const s = [], o = [];
|
|
1653
|
+
let i = 0;
|
|
1654
|
+
function c(h, f, k) {
|
|
1515
1655
|
s.push({
|
|
1516
1656
|
kind: "malformed",
|
|
1517
|
-
message:
|
|
1518
|
-
at: { in: "uss", sheet: t, span: { start:
|
|
1657
|
+
message: h,
|
|
1658
|
+
at: { in: "uss", sheet: t, span: { start: f, end: k } }
|
|
1519
1659
|
});
|
|
1520
1660
|
}
|
|
1521
|
-
function
|
|
1661
|
+
function u() {
|
|
1522
1662
|
for (; ; ) {
|
|
1523
|
-
for (;
|
|
1524
|
-
if (e.startsWith("/*",
|
|
1525
|
-
const
|
|
1526
|
-
|
|
1663
|
+
for (; K(e[i]); ) i++;
|
|
1664
|
+
if (e.startsWith("/*", i)) {
|
|
1665
|
+
const h = e.indexOf("*/", i + 2);
|
|
1666
|
+
i = h < 0 ? e.length : h + 2;
|
|
1527
1667
|
continue;
|
|
1528
1668
|
}
|
|
1529
1669
|
return;
|
|
1530
1670
|
}
|
|
1531
1671
|
}
|
|
1532
|
-
const
|
|
1533
|
-
function l(
|
|
1534
|
-
let
|
|
1535
|
-
for (;
|
|
1536
|
-
const
|
|
1537
|
-
if (
|
|
1538
|
-
const
|
|
1539
|
-
|
|
1672
|
+
const g = (h, f) => we(e, h, f), p = (h, f) => ot(e, h, f);
|
|
1673
|
+
function l(h) {
|
|
1674
|
+
let f = h + 1, k = 1;
|
|
1675
|
+
for (; f < e.length; ) {
|
|
1676
|
+
const v = e[f];
|
|
1677
|
+
if (v === '"' || v === "'") {
|
|
1678
|
+
const S = e.indexOf(v, f + 1);
|
|
1679
|
+
f = S < 0 ? e.length : S + 1;
|
|
1540
1680
|
continue;
|
|
1541
1681
|
}
|
|
1542
|
-
if (
|
|
1543
|
-
const
|
|
1544
|
-
|
|
1682
|
+
if (v === "/" && e[f + 1] === "*") {
|
|
1683
|
+
const S = e.indexOf("*/", f + 2);
|
|
1684
|
+
f = S < 0 ? e.length : S + 2;
|
|
1545
1685
|
continue;
|
|
1546
1686
|
}
|
|
1547
|
-
if (
|
|
1548
|
-
else if (
|
|
1549
|
-
|
|
1687
|
+
if (v === "{") k++;
|
|
1688
|
+
else if (v === "}" && --k === 0) return f + 1;
|
|
1689
|
+
f++;
|
|
1550
1690
|
}
|
|
1551
1691
|
return e.length;
|
|
1552
1692
|
}
|
|
1553
|
-
function
|
|
1554
|
-
let
|
|
1555
|
-
for (;
|
|
1556
|
-
return
|
|
1557
|
-
}
|
|
1558
|
-
function
|
|
1559
|
-
const
|
|
1560
|
-
let
|
|
1561
|
-
for (;
|
|
1562
|
-
const
|
|
1563
|
-
if (
|
|
1564
|
-
const
|
|
1565
|
-
|
|
1693
|
+
function d(h) {
|
|
1694
|
+
let f = h;
|
|
1695
|
+
for (; f < e.length && ze.test(e[f]); ) f++;
|
|
1696
|
+
return f;
|
|
1697
|
+
}
|
|
1698
|
+
function m(h) {
|
|
1699
|
+
const f = e[h], k = f === "(" ? ")" : "]";
|
|
1700
|
+
let v = h + 1, S = 1;
|
|
1701
|
+
for (; v < e.length; ) {
|
|
1702
|
+
const E = e[v];
|
|
1703
|
+
if (E === '"' || E === "'") {
|
|
1704
|
+
const M = e.indexOf(E, v + 1);
|
|
1705
|
+
v = M < 0 ? e.length : M + 1;
|
|
1566
1706
|
continue;
|
|
1567
1707
|
}
|
|
1568
|
-
if (
|
|
1569
|
-
else if (
|
|
1570
|
-
|
|
1708
|
+
if (E === f) S++;
|
|
1709
|
+
else if (E === k && --S === 0) return v + 1;
|
|
1710
|
+
v++;
|
|
1571
1711
|
}
|
|
1572
1712
|
return e.length;
|
|
1573
1713
|
}
|
|
1574
|
-
function
|
|
1575
|
-
const
|
|
1576
|
-
let
|
|
1577
|
-
for (;
|
|
1578
|
-
const
|
|
1579
|
-
if (
|
|
1580
|
-
if (
|
|
1581
|
-
|
|
1582
|
-
else if (
|
|
1583
|
-
const
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
),
|
|
1587
|
-
} else if (
|
|
1588
|
-
const
|
|
1589
|
-
|
|
1590
|
-
} else if (
|
|
1591
|
-
if (e[
|
|
1592
|
-
const
|
|
1593
|
-
|
|
1714
|
+
function a(h, f) {
|
|
1715
|
+
const k = [];
|
|
1716
|
+
let v = h;
|
|
1717
|
+
for (; v < f; ) {
|
|
1718
|
+
const S = e[v];
|
|
1719
|
+
if (K(S) || S === ">" || S === "+" || S === "~" || S === ",") break;
|
|
1720
|
+
if (S === "*")
|
|
1721
|
+
k.push({ kind: "universal" }), v++;
|
|
1722
|
+
else if (S === "." || S === "#") {
|
|
1723
|
+
const E = d(v + 1);
|
|
1724
|
+
k.push(
|
|
1725
|
+
S === "." ? { kind: "class", name: e.slice(v + 1, E) } : { kind: "name", name: e.slice(v + 1, E) }
|
|
1726
|
+
), v = E;
|
|
1727
|
+
} else if (S === "[") {
|
|
1728
|
+
const E = Math.min(m(v), f);
|
|
1729
|
+
k.push({ kind: "unknown", text: e.slice(v, E) }), v = E;
|
|
1730
|
+
} else if (S === ":")
|
|
1731
|
+
if (e[v + 1] === ":") {
|
|
1732
|
+
const E = d(v + 2);
|
|
1733
|
+
k.push({ kind: "unknown", text: e.slice(v, E) }), v = E;
|
|
1594
1734
|
} else {
|
|
1595
|
-
const
|
|
1596
|
-
if (e[
|
|
1597
|
-
const
|
|
1598
|
-
|
|
1735
|
+
const E = d(v + 1);
|
|
1736
|
+
if (e[E] === "(") {
|
|
1737
|
+
const M = Math.min(m(E), f);
|
|
1738
|
+
k.push({ kind: "unknown", text: e.slice(v, M) }), v = M;
|
|
1599
1739
|
} else
|
|
1600
|
-
|
|
1740
|
+
k.push({ kind: "pseudo", name: e.slice(v + 1, E) }), v = E;
|
|
1601
1741
|
}
|
|
1602
|
-
else if (
|
|
1603
|
-
const
|
|
1604
|
-
|
|
1742
|
+
else if (ze.test(S)) {
|
|
1743
|
+
const E = d(v);
|
|
1744
|
+
k.push({ kind: "type", name: e.slice(v, E) }), v = E;
|
|
1605
1745
|
} else
|
|
1606
|
-
|
|
1746
|
+
k.push({ kind: "unknown", text: S }), v++;
|
|
1607
1747
|
}
|
|
1608
|
-
return { simple:
|
|
1609
|
-
}
|
|
1610
|
-
function
|
|
1611
|
-
const
|
|
1612
|
-
let
|
|
1613
|
-
for (;
|
|
1614
|
-
const
|
|
1615
|
-
if (
|
|
1616
|
-
|
|
1748
|
+
return { simple: k, next: v };
|
|
1749
|
+
}
|
|
1750
|
+
function b(h, f) {
|
|
1751
|
+
const k = p(h, f), v = [];
|
|
1752
|
+
let S = "descendant", E = null, M = k.start;
|
|
1753
|
+
for (; M < k.end; ) {
|
|
1754
|
+
const A = e[M];
|
|
1755
|
+
if (K(A)) {
|
|
1756
|
+
M++;
|
|
1617
1757
|
continue;
|
|
1618
1758
|
}
|
|
1619
|
-
if (
|
|
1620
|
-
|
|
1759
|
+
if (A === ">") {
|
|
1760
|
+
S = "child", M++;
|
|
1621
1761
|
continue;
|
|
1622
1762
|
}
|
|
1623
|
-
if (
|
|
1624
|
-
|
|
1763
|
+
if (A === "+" || A === "~") {
|
|
1764
|
+
E = A, M++;
|
|
1625
1765
|
continue;
|
|
1626
1766
|
}
|
|
1627
|
-
const { simple: z, next:
|
|
1628
|
-
if (
|
|
1629
|
-
|
|
1767
|
+
const { simple: z, next: q } = a(M, k.end);
|
|
1768
|
+
if (q === M) {
|
|
1769
|
+
M++;
|
|
1630
1770
|
continue;
|
|
1631
1771
|
}
|
|
1632
|
-
|
|
1772
|
+
E !== null && (z.unshift({ kind: "unknown", text: E }), E = null), v.push({ combinator: S, simple: z }), S = "descendant", M = q;
|
|
1633
1773
|
}
|
|
1634
|
-
return { parts:
|
|
1774
|
+
return { parts: v, span: k };
|
|
1635
1775
|
}
|
|
1636
|
-
function
|
|
1637
|
-
const
|
|
1638
|
-
let
|
|
1776
|
+
function r(h, f) {
|
|
1777
|
+
const k = [];
|
|
1778
|
+
let v = h;
|
|
1639
1779
|
for (; ; ) {
|
|
1640
|
-
const
|
|
1641
|
-
if (
|
|
1642
|
-
|
|
1643
|
-
}
|
|
1644
|
-
return
|
|
1645
|
-
}
|
|
1646
|
-
function
|
|
1647
|
-
const
|
|
1648
|
-
if (
|
|
1649
|
-
const
|
|
1650
|
-
return
|
|
1651
|
-
}
|
|
1652
|
-
const
|
|
1653
|
-
if (
|
|
1654
|
-
const
|
|
1655
|
-
return
|
|
1656
|
-
}
|
|
1657
|
-
return { kind: "unknown", span: { start:
|
|
1658
|
-
}
|
|
1659
|
-
function
|
|
1660
|
-
const
|
|
1661
|
-
if (
|
|
1662
|
-
return
|
|
1663
|
-
const
|
|
1664
|
-
(
|
|
1665
|
-
const
|
|
1666
|
-
selectors:
|
|
1667
|
-
declarations:
|
|
1668
|
-
span: { start:
|
|
1669
|
-
selectorSpan:
|
|
1780
|
+
const S = Math.min(g(v, ","), f);
|
|
1781
|
+
if (k.push(b(v, S)), S >= f) break;
|
|
1782
|
+
v = S + 1;
|
|
1783
|
+
}
|
|
1784
|
+
return k;
|
|
1785
|
+
}
|
|
1786
|
+
function w() {
|
|
1787
|
+
const h = i, f = d(i + 1), k = e.slice(i + 1, f), v = g(f, "{;");
|
|
1788
|
+
if (v < e.length && e[v] === "{") {
|
|
1789
|
+
const E = l(v);
|
|
1790
|
+
return i = E, { kind: "unknown", span: { start: h, end: E } };
|
|
1791
|
+
}
|
|
1792
|
+
const S = v < e.length ? v + 1 : e.length;
|
|
1793
|
+
if (i = S, k === "import") {
|
|
1794
|
+
const E = e.slice(f, S), M = /["']([^"']*)["']/.exec(E);
|
|
1795
|
+
return M === null ? (c("@import without a quoted path", h, S), { kind: "unknown", span: { start: h, end: S } }) : { kind: "import", url: M[1], span: { start: h, end: S } };
|
|
1796
|
+
}
|
|
1797
|
+
return { kind: "unknown", span: { start: h, end: S } };
|
|
1798
|
+
}
|
|
1799
|
+
function y() {
|
|
1800
|
+
const h = i, f = g(h, "{");
|
|
1801
|
+
if (f >= e.length)
|
|
1802
|
+
return c("rule without a block", h, e.length), i = e.length, { kind: "unknown", span: { start: h, end: e.length } };
|
|
1803
|
+
const k = p(h, f), v = l(f);
|
|
1804
|
+
(v > e.length || e[v - 1] !== "}") && c("unterminated rule block", h, v);
|
|
1805
|
+
const S = {
|
|
1806
|
+
selectors: r(k.start, k.end),
|
|
1807
|
+
declarations: it(e, f + 1, v - 1, c),
|
|
1808
|
+
span: { start: k.start, end: v },
|
|
1809
|
+
selectorSpan: k,
|
|
1670
1810
|
selectorDirty: !1,
|
|
1671
1811
|
declarationsDirty: !1
|
|
1672
1812
|
};
|
|
1673
|
-
return
|
|
1813
|
+
return i = v, { kind: "rule", rule: S };
|
|
1674
1814
|
}
|
|
1675
|
-
for (;
|
|
1676
|
-
|
|
1677
|
-
return { sheet: { source: e, origin: n, items:
|
|
1815
|
+
for (; u(), !(i >= e.length); )
|
|
1816
|
+
o.push(e[i] === "@" ? w() : y());
|
|
1817
|
+
return { sheet: { source: e, origin: n, items: o }, warnings: s };
|
|
1678
1818
|
}
|
|
1679
|
-
function
|
|
1819
|
+
function bn(e, n, t) {
|
|
1680
1820
|
switch (e.kind) {
|
|
1681
1821
|
case "universal":
|
|
1682
1822
|
return !0;
|
|
@@ -1692,61 +1832,61 @@ function fn(e, n, t) {
|
|
|
1692
1832
|
return !1;
|
|
1693
1833
|
}
|
|
1694
1834
|
}
|
|
1695
|
-
function
|
|
1696
|
-
return e.simple.every((s) =>
|
|
1835
|
+
function vn(e, n, t) {
|
|
1836
|
+
return e.simple.every((s) => bn(s, n, t));
|
|
1697
1837
|
}
|
|
1698
|
-
function
|
|
1699
|
-
if (!
|
|
1838
|
+
function ke(e, n, t, s) {
|
|
1839
|
+
if (!vn(e[n], t, s)) return !1;
|
|
1700
1840
|
if (n === 0) return !0;
|
|
1701
|
-
const
|
|
1841
|
+
const o = s.parentOf(t);
|
|
1702
1842
|
if (e[n].combinator === "child")
|
|
1703
|
-
return
|
|
1704
|
-
for (let
|
|
1705
|
-
if (
|
|
1843
|
+
return o !== null && ke(e, n - 1, o, s);
|
|
1844
|
+
for (let i = o; i !== null; i = s.parentOf(i))
|
|
1845
|
+
if (ke(e, n - 1, i, s)) return !0;
|
|
1706
1846
|
return !1;
|
|
1707
1847
|
}
|
|
1708
|
-
function
|
|
1709
|
-
return e.parts.length === 0 ? !1 :
|
|
1848
|
+
function xe(e, n, t) {
|
|
1849
|
+
return e.parts.length === 0 ? !1 : ke(e.parts, e.parts.length - 1, n, t);
|
|
1710
1850
|
}
|
|
1711
|
-
function
|
|
1851
|
+
function rt(e) {
|
|
1712
1852
|
const n = [];
|
|
1713
1853
|
for (const t of e.parts)
|
|
1714
1854
|
for (const s of t.simple)
|
|
1715
1855
|
s.kind === "pseudo" && s.name !== "root" && !n.includes(s.name) && n.push(s.name);
|
|
1716
1856
|
return n;
|
|
1717
1857
|
}
|
|
1718
|
-
function
|
|
1858
|
+
function wn(e) {
|
|
1719
1859
|
const n = [];
|
|
1720
1860
|
for (const t of e)
|
|
1721
1861
|
for (const s of t.parts)
|
|
1722
|
-
for (const
|
|
1723
|
-
if (
|
|
1724
|
-
const
|
|
1725
|
-
n.includes(
|
|
1862
|
+
for (const o of s.simple) {
|
|
1863
|
+
if (o.kind !== "name" && o.kind !== "class" || !o.name.startsWith("unity-")) continue;
|
|
1864
|
+
const i = o.kind === "name" ? `#${o.name}` : `.${o.name}`;
|
|
1865
|
+
n.includes(i) || n.push(i);
|
|
1726
1866
|
}
|
|
1727
1867
|
return n;
|
|
1728
1868
|
}
|
|
1729
|
-
function
|
|
1869
|
+
function at(e) {
|
|
1730
1870
|
for (const n of e)
|
|
1731
1871
|
for (const t of n.parts)
|
|
1732
1872
|
for (const s of t.simple)
|
|
1733
1873
|
if (s.kind === "unknown") return s.text;
|
|
1734
1874
|
return null;
|
|
1735
1875
|
}
|
|
1736
|
-
function
|
|
1876
|
+
function kn(e) {
|
|
1737
1877
|
const n = /* @__PURE__ */ new Map([[e, null]]), t = [e];
|
|
1738
1878
|
for (; t.length > 0; ) {
|
|
1739
1879
|
const s = t.pop();
|
|
1740
|
-
for (const
|
|
1741
|
-
n.set(
|
|
1880
|
+
for (const o of s.children)
|
|
1881
|
+
n.set(o, s), t.push(o);
|
|
1742
1882
|
}
|
|
1743
1883
|
return n;
|
|
1744
1884
|
}
|
|
1745
|
-
function
|
|
1885
|
+
function xn(e) {
|
|
1746
1886
|
let n = 0, t = 0, s = 0;
|
|
1747
|
-
for (const
|
|
1748
|
-
for (const
|
|
1749
|
-
switch (
|
|
1887
|
+
for (const o of e.parts)
|
|
1888
|
+
for (const i of o.simple)
|
|
1889
|
+
switch (i.kind) {
|
|
1750
1890
|
case "name":
|
|
1751
1891
|
n++;
|
|
1752
1892
|
break;
|
|
@@ -1760,20 +1900,20 @@ function yn(e) {
|
|
|
1760
1900
|
}
|
|
1761
1901
|
return [n, t, s];
|
|
1762
1902
|
}
|
|
1763
|
-
function
|
|
1903
|
+
function lt(e, n) {
|
|
1764
1904
|
return e[0] - n[0] || e[1] - n[1] || e[2] - n[2];
|
|
1765
1905
|
}
|
|
1766
|
-
const
|
|
1906
|
+
const Sn = [Number.MAX_SAFE_INTEGER, 0, 0], $n = Oe(Qe, null, -1).sheet.items.flatMap(
|
|
1767
1907
|
(e, n) => e.kind === "rule" ? [{ rule: e.rule, sheet: -1, item: n, builtin: !0 }] : []
|
|
1768
1908
|
);
|
|
1769
|
-
function
|
|
1770
|
-
return
|
|
1909
|
+
function Tn(e) {
|
|
1910
|
+
return Qe.slice(e.selectorSpan.start, e.selectorSpan.end).trim();
|
|
1771
1911
|
}
|
|
1772
|
-
function
|
|
1773
|
-
const
|
|
1774
|
-
for (const [l,
|
|
1775
|
-
const
|
|
1776
|
-
if (
|
|
1912
|
+
function En(e, n, t, s) {
|
|
1913
|
+
const o = (t == null ? void 0 : t.activeStates) ?? /* @__PURE__ */ new Set(), i = Object.entries((t == null ? void 0 : t.states) ?? {}), c = [];
|
|
1914
|
+
for (const [l, d] of i) {
|
|
1915
|
+
const m = Oe(`${l} {}`, null, -1).sheet.items.find((w) => w.kind === "rule"), a = m === void 0 ? l : at(m.rule.selectors);
|
|
1916
|
+
if (m === void 0 || a !== null) {
|
|
1777
1917
|
s.push({
|
|
1778
1918
|
kind: "unsupported-selector",
|
|
1779
1919
|
message: `states key "${l}" is not a usable USS selector; it is ignored`,
|
|
@@ -1782,42 +1922,59 @@ function xn(e, n, t, s) {
|
|
|
1782
1922
|
});
|
|
1783
1923
|
continue;
|
|
1784
1924
|
}
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1925
|
+
const b = m.rule.selectors, r = (w) => b.some((y) => xe(y, { kind: "element", node: w }, n)) || w.children.some(r);
|
|
1926
|
+
if (!r(e.root)) {
|
|
1927
|
+
const w = b.some((y) => rt(y).some((h) => be.includes(h)));
|
|
1928
|
+
s.push({
|
|
1929
|
+
kind: "unsupported-selector",
|
|
1930
|
+
reason: "invalid-value",
|
|
1931
|
+
message: `states key "${l}" matches no element` + (w ? ": keys are matched before any state is applied, so a state in the key never matches" : ""),
|
|
1932
|
+
subject: { kind: "states-key", key: l, problem: w ? "state-in-key" : "matches-nothing" }
|
|
1933
|
+
});
|
|
1934
|
+
}
|
|
1935
|
+
for (const w of new Set(d))
|
|
1936
|
+
be.includes(w) || s.push({
|
|
1937
|
+
kind: "unsupported-selector",
|
|
1938
|
+
reason: "invalid-value",
|
|
1939
|
+
message: `states key "${l}" lists unknown state "${w}"; Unity sets no such state`,
|
|
1940
|
+
subject: { kind: "states-key", key: l, problem: "unknown-state", state: w }
|
|
1941
|
+
});
|
|
1942
|
+
c.push({ selectors: b, states: d });
|
|
1943
|
+
}
|
|
1944
|
+
const u = /* @__PURE__ */ new Map(), g = (l) => l.attributes.some((d) => d.name === "enabled" && d.value === "false"), p = (l, d) => {
|
|
1945
|
+
const m = d || g(l), a = new Set(o);
|
|
1946
|
+
m ? a.add("disabled") : a.add("enabled");
|
|
1947
|
+
for (const b of c)
|
|
1948
|
+
if (b.selectors.some((r) => xe(r, { kind: "element", node: l }, n)))
|
|
1949
|
+
for (const r of b.states) a.add(r);
|
|
1950
|
+
u.set(l, a);
|
|
1951
|
+
for (const b of l.children) p(b, m);
|
|
1795
1952
|
};
|
|
1796
|
-
return
|
|
1953
|
+
return p(e.root, !1), u;
|
|
1797
1954
|
}
|
|
1798
|
-
function
|
|
1955
|
+
function On(e) {
|
|
1799
1956
|
const n = [], t = /* @__PURE__ */ new Map();
|
|
1800
|
-
e.sheets.forEach((
|
|
1801
|
-
|
|
1802
|
-
}), n.push(
|
|
1803
|
-
const s = /* @__PURE__ */ new Map(),
|
|
1804
|
-
const
|
|
1805
|
-
if (
|
|
1806
|
-
|
|
1807
|
-
const
|
|
1808
|
-
|
|
1957
|
+
e.sheets.forEach((c, u) => {
|
|
1958
|
+
c.origin !== null && !t.has(c.origin) && t.set(c.origin, u);
|
|
1959
|
+
}), n.push(...$n);
|
|
1960
|
+
const s = /* @__PURE__ */ new Map(), o = (c, u) => {
|
|
1961
|
+
const g = s.get(u) ?? /* @__PURE__ */ new Set();
|
|
1962
|
+
if (g.has(c)) return;
|
|
1963
|
+
g.add(c), s.set(u, g);
|
|
1964
|
+
const p = e.sheets[c];
|
|
1965
|
+
p !== void 0 && p.items.forEach((l, d) => {
|
|
1809
1966
|
if (l.kind === "rule")
|
|
1810
|
-
n.push({ rule: l.rule, sheet:
|
|
1967
|
+
n.push({ rule: l.rule, sheet: c, item: d, scope: u });
|
|
1811
1968
|
else if (l.kind === "import") {
|
|
1812
|
-
const
|
|
1813
|
-
|
|
1969
|
+
const m = l.resolvedSheet ?? t.get(l.url);
|
|
1970
|
+
m !== void 0 && o(m, u);
|
|
1814
1971
|
}
|
|
1815
1972
|
});
|
|
1816
|
-
},
|
|
1817
|
-
for (const
|
|
1973
|
+
}, i = e.styleRoots ?? (e.sheets.length === 0 ? [] : [{ sheet: 0, scope: e.root.id }]);
|
|
1974
|
+
for (const c of i) o(c.sheet, c.scope);
|
|
1818
1975
|
return n;
|
|
1819
1976
|
}
|
|
1820
|
-
function
|
|
1977
|
+
function In(e, n, t) {
|
|
1821
1978
|
let s = e;
|
|
1822
1979
|
for (; s !== null; ) {
|
|
1823
1980
|
if (s.kind === "element" && s.node.id === n) return !0;
|
|
@@ -1825,30 +1982,34 @@ function Sn(e, n, t) {
|
|
|
1825
1982
|
}
|
|
1826
1983
|
return !1;
|
|
1827
1984
|
}
|
|
1828
|
-
function
|
|
1985
|
+
function Dn(e) {
|
|
1829
1986
|
return e.selectors.some(
|
|
1830
1987
|
(n) => n.parts.some((t) => t.simple.some((s) => s.kind === "pseudo" && s.name === "root"))
|
|
1831
1988
|
);
|
|
1832
1989
|
}
|
|
1833
|
-
function
|
|
1990
|
+
function re(e, n) {
|
|
1834
1991
|
var s;
|
|
1835
1992
|
const t = n.rule.selectorSpan;
|
|
1836
1993
|
return ((s = e.sheets[n.sheet]) == null ? void 0 : s.source.slice(t.start, t.end)) ?? "";
|
|
1837
1994
|
}
|
|
1838
|
-
function
|
|
1995
|
+
function Y(e, n) {
|
|
1996
|
+
const t = e.sheets[n], s = e.sheets.find((o) => o.items.some((i) => i.kind === "import" && i.resolvedSheet === n));
|
|
1997
|
+
return { url: (t == null ? void 0 : t.origin) ?? null, from: (t == null ? void 0 : t.sourceDocumentFrom) ?? (s == null ? void 0 : s.origin) ?? null };
|
|
1998
|
+
}
|
|
1999
|
+
function G(e, n) {
|
|
1839
2000
|
var s;
|
|
1840
2001
|
const t = (s = e.sheets[n]) == null ? void 0 : s.origin;
|
|
1841
2002
|
return typeof t == "string" ? { sourceDocument: t } : {};
|
|
1842
2003
|
}
|
|
1843
|
-
function
|
|
1844
|
-
const t =
|
|
1845
|
-
var
|
|
1846
|
-
const
|
|
1847
|
-
return
|
|
1848
|
-
},
|
|
1849
|
-
var
|
|
1850
|
-
return (
|
|
1851
|
-
},
|
|
2004
|
+
function ct(e, n) {
|
|
2005
|
+
const t = kn(e.root), s = [], o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), c = (r) => {
|
|
2006
|
+
var y;
|
|
2007
|
+
const w = (y = r.attributes.find((h) => h.name === "class")) == null ? void 0 : y.value;
|
|
2008
|
+
return w === void 0 ? [] : w.split(/\s+/).filter((h) => h.length > 0);
|
|
2009
|
+
}, u = (r, w) => {
|
|
2010
|
+
var y;
|
|
2011
|
+
return (y = r.attributes.find((h) => h.name === w)) == null ? void 0 : y.value;
|
|
2012
|
+
}, g = {
|
|
1852
2013
|
/**
|
|
1853
2014
|
* The rule the measurement forced.
|
|
1854
2015
|
*
|
|
@@ -1859,220 +2020,228 @@ function nt(e, n) {
|
|
|
1859
2020
|
* owner. That is the hierarchy the dumps show, so descendant selectors like
|
|
1860
2021
|
* `.panel #unity-content-viewport` behave as they do in Unity.
|
|
1861
2022
|
*/
|
|
1862
|
-
parentOf: (
|
|
1863
|
-
if (
|
|
1864
|
-
const
|
|
1865
|
-
return
|
|
2023
|
+
parentOf: (r) => {
|
|
2024
|
+
if (r.kind === "element") {
|
|
2025
|
+
const h = t.get(r.node) ?? null;
|
|
2026
|
+
return h === null ? null : { kind: "element", node: h };
|
|
1866
2027
|
}
|
|
1867
|
-
if (
|
|
1868
|
-
const
|
|
1869
|
-
return { kind: "part", owner:
|
|
2028
|
+
if (r.depth === 0) return { kind: "element", node: r.owner };
|
|
2029
|
+
const y = X(r.owner).spec.parts[r.depth - 1];
|
|
2030
|
+
return { kind: "part", owner: r.owner, name: y.name, depth: r.depth - 1 };
|
|
1870
2031
|
},
|
|
1871
|
-
isRoot: (
|
|
2032
|
+
isRoot: (r) => r.kind === "element" && r.node === e.root,
|
|
1872
2033
|
// Unity's parts are VisualElements, so a `VisualElement` rule reaches them.
|
|
1873
2034
|
// Not measured — `part-type-selector` is the case that will settle it.
|
|
1874
|
-
typeNameOf: (
|
|
1875
|
-
idOf: (
|
|
2035
|
+
typeNameOf: (r) => r.kind === "element" ? r.node.name.local : "VisualElement",
|
|
2036
|
+
idOf: (r) => r.kind === "element" ? u(r.node, "name") : r.name,
|
|
1876
2037
|
// Implicit classes are as real as written ones for matching: in Unity the
|
|
1877
2038
|
// element genuinely carries them, which is why `.unity-button` in author USS
|
|
1878
2039
|
// hits a plain `<ui:Button />`. Parts carry classes too in Unity, but which
|
|
1879
2040
|
// ones is unmeasured, so none are claimed here.
|
|
1880
|
-
classesOf: (
|
|
1881
|
-
},
|
|
1882
|
-
...
|
|
2041
|
+
classesOf: (r) => r.kind === "element" ? [...c(r.node), ...wt(r.node)] : []
|
|
2042
|
+
}, p = { ...g, statesOf: () => i }, l = En(e, p, n, s), d = {
|
|
2043
|
+
...g,
|
|
1883
2044
|
// A part inherits its owner's states: `SetEnabled(false)` disables the whole
|
|
1884
2045
|
// subtree, and a part is inside it.
|
|
1885
|
-
statesOf: (
|
|
1886
|
-
},
|
|
1887
|
-
let
|
|
1888
|
-
for (const
|
|
1889
|
-
if (
|
|
1890
|
-
|
|
2046
|
+
statesOf: (r) => l.get(r.kind === "element" ? r.node : r.owner) ?? i
|
|
2047
|
+
}, m = [];
|
|
2048
|
+
let a = !1;
|
|
2049
|
+
for (const r of On(e)) {
|
|
2050
|
+
if (r.builtin === !0) {
|
|
2051
|
+
m.push(r);
|
|
1891
2052
|
continue;
|
|
1892
2053
|
}
|
|
1893
|
-
const
|
|
1894
|
-
if (
|
|
2054
|
+
const w = at(r.rule.selectors);
|
|
2055
|
+
if (w !== null) {
|
|
1895
2056
|
s.push({
|
|
1896
2057
|
kind: "unsupported-selector",
|
|
1897
|
-
message: `"${
|
|
1898
|
-
at: { in: "uss", sheet:
|
|
2058
|
+
message: `"${w}": the whole rule is ignored`,
|
|
2059
|
+
at: { in: "uss", sheet: r.sheet, ...Y(e, r.sheet), span: r.rule.selectorSpan },
|
|
1899
2060
|
reason: "not-uss",
|
|
1900
|
-
subject: { kind: "selector", selector:
|
|
1901
|
-
...
|
|
2061
|
+
subject: { kind: "selector", selector: re(e, r), fragment: w },
|
|
2062
|
+
...G(e, r.sheet)
|
|
1902
2063
|
});
|
|
1903
2064
|
continue;
|
|
1904
2065
|
}
|
|
1905
|
-
!
|
|
2066
|
+
!a && Dn(r.rule) && (a = !0, s.push({
|
|
1906
2067
|
kind: "version-dependent",
|
|
1907
2068
|
// Not a version difference: USS :root means something else than CSS
|
|
1908
2069
|
// :root, and this preview does what Unity does. Kept as a warning so
|
|
1909
2070
|
// an author porting CSS is told; the kind stays for compatibility.
|
|
1910
2071
|
message: ":root matched the element this stylesheet is attached to — the document root, or the TemplateContainer of a template",
|
|
1911
|
-
at: { in: "uss", sheet:
|
|
2072
|
+
at: { in: "uss", sheet: r.sheet, ...Y(e, r.sheet), span: r.rule.selectorSpan },
|
|
1912
2073
|
reason: "matches-unity",
|
|
1913
|
-
subject: { kind: "selector", selector:
|
|
1914
|
-
...
|
|
1915
|
-
})),
|
|
1916
|
-
}
|
|
1917
|
-
const
|
|
1918
|
-
for (const
|
|
1919
|
-
if (
|
|
1920
|
-
const
|
|
1921
|
-
if (
|
|
1922
|
-
|
|
1923
|
-
const
|
|
1924
|
-
for (const
|
|
1925
|
-
for (const
|
|
1926
|
-
for (const
|
|
1927
|
-
|
|
1928
|
-
for (const
|
|
2074
|
+
subject: { kind: "selector", selector: re(e, r), fragment: ":root" },
|
|
2075
|
+
...G(e, r.sheet)
|
|
2076
|
+
})), m.push(r);
|
|
2077
|
+
}
|
|
2078
|
+
const b = /* @__PURE__ */ new Set();
|
|
2079
|
+
for (const r of m) {
|
|
2080
|
+
if (r.builtin === !0) continue;
|
|
2081
|
+
const w = `${r.sheet}:${r.item}`;
|
|
2082
|
+
if (b.has(w)) continue;
|
|
2083
|
+
b.add(w);
|
|
2084
|
+
const y = /* @__PURE__ */ new Set();
|
|
2085
|
+
for (const h of r.rule.selectors)
|
|
2086
|
+
for (const f of h.parts)
|
|
2087
|
+
for (const k of f.simple)
|
|
2088
|
+
k.kind !== "pseudo" || k.name === "root" || be.includes(k.name) || y.add(k.name);
|
|
2089
|
+
for (const h of y)
|
|
1929
2090
|
s.push({
|
|
1930
2091
|
kind: "unsupported-selector",
|
|
1931
|
-
message: `":${
|
|
1932
|
-
at: { in: "uss", sheet:
|
|
1933
|
-
...
|
|
2092
|
+
message: `":${h}": never matches; Unity sets no such state`,
|
|
2093
|
+
at: { in: "uss", sheet: r.sheet, ...Y(e, r.sheet), span: r.rule.selectorSpan },
|
|
2094
|
+
...G(e, r.sheet),
|
|
1934
2095
|
reason: "not-uss",
|
|
1935
|
-
subject: { kind: "selector", selector:
|
|
2096
|
+
subject: { kind: "selector", selector: re(e, r), fragment: `:${h}` }
|
|
1936
2097
|
});
|
|
1937
|
-
for (const
|
|
1938
|
-
const
|
|
1939
|
-
|
|
2098
|
+
for (const h of r.rule.declarations) {
|
|
2099
|
+
const f = tt(h.property, h.value);
|
|
2100
|
+
if (f === null) continue;
|
|
2101
|
+
const k = {
|
|
1940
2102
|
kind: "unsupported-property",
|
|
1941
|
-
...
|
|
1942
|
-
at: { in: "uss", sheet:
|
|
1943
|
-
...
|
|
1944
|
-
}
|
|
2103
|
+
...f,
|
|
2104
|
+
at: { in: "uss", sheet: r.sheet, ...Y(e, r.sheet), span: h.span },
|
|
2105
|
+
...G(e, r.sheet)
|
|
2106
|
+
};
|
|
2107
|
+
s.push(k), o.set(k, `${r.sheet}:${r.item}`);
|
|
1945
2108
|
}
|
|
1946
2109
|
}
|
|
1947
|
-
return e.sheets.forEach((
|
|
1948
|
-
var
|
|
1949
|
-
for (const
|
|
1950
|
-
if (
|
|
1951
|
-
const
|
|
1952
|
-
|
|
2110
|
+
return e.sheets.forEach((r, w) => {
|
|
2111
|
+
var y;
|
|
2112
|
+
for (const h of r.items) {
|
|
2113
|
+
if (h.kind !== "unknown") continue;
|
|
2114
|
+
const f = (y = /^@([A-Za-z][\w-]*)/.exec(r.source.slice(h.span.start, h.span.end))) == null ? void 0 : y[1];
|
|
2115
|
+
f === void 0 || f === "import" || s.push({
|
|
1953
2116
|
kind: "unsupported-selector",
|
|
1954
|
-
message: `@${
|
|
1955
|
-
at: { in: "uss", sheet:
|
|
1956
|
-
...
|
|
2117
|
+
message: `@${f}: block ignored`,
|
|
2118
|
+
at: { in: "uss", sheet: w, ...Y(e, w), span: h.span },
|
|
2119
|
+
...G(e, w),
|
|
1957
2120
|
reason: "not-uss",
|
|
1958
|
-
subject: { kind: "at-rule", name:
|
|
2121
|
+
subject: { kind: "at-rule", name: f }
|
|
1959
2122
|
});
|
|
1960
2123
|
}
|
|
1961
|
-
}), { ctx:
|
|
2124
|
+
}), { ctx: d, usable: m, warnings: s, declarationWarnings: o };
|
|
1962
2125
|
}
|
|
1963
|
-
function
|
|
1964
|
-
const t = n.attributes.find((
|
|
2126
|
+
function Ie(e, n) {
|
|
2127
|
+
const t = n.attributes.find((o) => o.name === "style");
|
|
1965
2128
|
if (t === void 0) return [];
|
|
1966
|
-
const s =
|
|
1967
|
-
return s === null ? [] :
|
|
1968
|
-
}
|
|
1969
|
-
function
|
|
1970
|
-
let
|
|
1971
|
-
const
|
|
1972
|
-
var
|
|
1973
|
-
typeof
|
|
1974
|
-
for (const
|
|
1975
|
-
return
|
|
2129
|
+
const s = yn(t);
|
|
2130
|
+
return s === null ? [] : it(e.source, s, s + t.value.length);
|
|
2131
|
+
}
|
|
2132
|
+
function Mn(e, n) {
|
|
2133
|
+
let t = null;
|
|
2134
|
+
const s = (o, i) => {
|
|
2135
|
+
var c;
|
|
2136
|
+
typeof o.sourceDocument != "string" && i.set(((c = o.derived) == null ? void 0 : c.instance) ?? o.id, o);
|
|
2137
|
+
for (const u of o.children) s(u, i);
|
|
2138
|
+
return i;
|
|
1976
2139
|
};
|
|
1977
|
-
return (
|
|
1978
|
-
var
|
|
1979
|
-
if (
|
|
1980
|
-
const
|
|
1981
|
-
return
|
|
1982
|
-
}
|
|
1983
|
-
if (
|
|
1984
|
-
if (typeof
|
|
1985
|
-
|
|
1986
|
-
const
|
|
1987
|
-
return
|
|
2140
|
+
return (o) => {
|
|
2141
|
+
var i;
|
|
2142
|
+
if (o.kind === "rule") {
|
|
2143
|
+
const c = (i = e.sheets[o.sheet]) == null ? void 0 : i.items[o.item], u = (c == null ? void 0 : c.kind) === "rule" ? c.rule.declarations[o.declIndex] : void 0;
|
|
2144
|
+
return u === void 0 ? {} : { nodes: [...n.get(`${o.sheet}:${o.item}`) ?? []], at: { in: "uss", sheet: o.sheet, ...Y(e, o.sheet), span: u.span }, ...G(e, o.sheet) };
|
|
2145
|
+
}
|
|
2146
|
+
if (o.kind === "inline") {
|
|
2147
|
+
if (typeof o.sourceDocument == "string") return { sourceDocument: o.sourceDocument };
|
|
2148
|
+
t ?? (t = s(e.root, /* @__PURE__ */ new Map()));
|
|
2149
|
+
const c = t.get(o.node), u = c === void 0 ? void 0 : Ie(e, c)[o.declIndex];
|
|
2150
|
+
return u === void 0 ? {} : { at: { in: "uxml", span: u.span } };
|
|
1988
2151
|
}
|
|
1989
2152
|
return {};
|
|
1990
2153
|
};
|
|
1991
2154
|
}
|
|
1992
|
-
function
|
|
1993
|
-
const
|
|
1994
|
-
let
|
|
1995
|
-
const
|
|
1996
|
-
|
|
2155
|
+
function ut(e, n, t, s, o) {
|
|
2156
|
+
const i = [];
|
|
2157
|
+
let c = 0;
|
|
2158
|
+
const u = (g, p, l, d, m) => {
|
|
2159
|
+
i.push({ property: g, value: p, origin: l, rank: d, specificity: m, order: c++, winner: !1 });
|
|
1997
2160
|
};
|
|
1998
2161
|
if (n.kind === "part") {
|
|
1999
|
-
const
|
|
2000
|
-
for (const [
|
|
2001
|
-
for (const [
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2162
|
+
const g = X(n.owner).spec.parts[n.depth];
|
|
2163
|
+
for (const [p, l] of Object.entries((g == null ? void 0 : g.style) ?? {}))
|
|
2164
|
+
for (const [d, m] of pe(p, l))
|
|
2165
|
+
u(
|
|
2166
|
+
d,
|
|
2167
|
+
m,
|
|
2005
2168
|
{
|
|
2006
2169
|
kind: "builtin-theme",
|
|
2007
2170
|
selector: `#${n.name}`,
|
|
2008
|
-
property:
|
|
2009
|
-
unityVersion:
|
|
2171
|
+
property: d,
|
|
2172
|
+
unityVersion: ae
|
|
2010
2173
|
},
|
|
2011
2174
|
0,
|
|
2012
2175
|
[0, 0, 0]
|
|
2013
2176
|
);
|
|
2014
2177
|
}
|
|
2015
|
-
for (const
|
|
2016
|
-
if (
|
|
2017
|
-
const
|
|
2178
|
+
for (const g of t.usable) {
|
|
2179
|
+
if (g.scope !== void 0 && !In(n, g.scope, t.ctx)) continue;
|
|
2180
|
+
const p = g.scope === void 0 ? t.ctx : {
|
|
2018
2181
|
...t.ctx,
|
|
2019
2182
|
// Unity USS :root names the element this particular stylesheet is
|
|
2020
2183
|
// attached to. Template sheets are attached to each generated
|
|
2021
2184
|
// TemplateContainer, not to the entry document root.
|
|
2022
|
-
isRoot: (
|
|
2185
|
+
isRoot: (m) => m.kind === "element" && m.node.id === g.scope
|
|
2023
2186
|
};
|
|
2024
|
-
let
|
|
2025
|
-
for (const
|
|
2026
|
-
if (!
|
|
2027
|
-
const
|
|
2028
|
-
(
|
|
2029
|
-
}
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
kind: "builtin-theme",
|
|
2035
|
-
selector: wn(a.rule),
|
|
2036
|
-
property: k,
|
|
2037
|
-
unityVersion: te
|
|
2038
|
-
} : {
|
|
2039
|
-
kind: "rule",
|
|
2040
|
-
sheet: a.sheet,
|
|
2041
|
-
item: a.item,
|
|
2042
|
-
declIndex: u,
|
|
2043
|
-
...((p = e.sheets[a.sheet]) == null ? void 0 : p.origin) === null || ((i = e.sheets[a.sheet]) == null ? void 0 : i.origin) === void 0 ? {} : { sourceDocument: e.sheets[a.sheet].origin },
|
|
2044
|
-
...((y = e.sheets[a.sheet]) == null ? void 0 : y.sourceDocumentFrom) === void 0 ? {} : { sourceDocumentFrom: e.sheets[a.sheet].sourceDocumentFrom },
|
|
2045
|
-
// Omitted rather than set to [] when unconditional, so the
|
|
2046
|
-
// common case stays the shape it has always been.
|
|
2047
|
-
...l.length > 0 ? { states: l } : {}
|
|
2048
|
-
};
|
|
2049
|
-
d(k, f, m, a.builtin === !0 ? 0 : 1, h);
|
|
2187
|
+
let l = null, d = [];
|
|
2188
|
+
for (const m of g.rule.selectors) {
|
|
2189
|
+
if (!xe(m, n, p)) continue;
|
|
2190
|
+
const a = xn(m);
|
|
2191
|
+
(l === null || lt(a, l) > 0) && (l = a, d = rt(m));
|
|
2192
|
+
}
|
|
2193
|
+
if (l !== null) {
|
|
2194
|
+
if (s == null || s.add(g), o !== void 0 && n.kind === "element" && g.builtin !== !0) {
|
|
2195
|
+
const m = `${g.sheet}:${g.item}`, a = o.get(m) ?? [];
|
|
2196
|
+
a.includes(n.node.id) || a.push(n.node.id), o.set(m, a);
|
|
2050
2197
|
}
|
|
2051
|
-
|
|
2198
|
+
g.rule.declarations.forEach((m, a) => {
|
|
2199
|
+
var b, r, w;
|
|
2200
|
+
for (const [y, h] of pe(m.property, m.value)) {
|
|
2201
|
+
const f = g.builtin === !0 ? {
|
|
2202
|
+
kind: "builtin-theme",
|
|
2203
|
+
selector: Tn(g.rule),
|
|
2204
|
+
property: y,
|
|
2205
|
+
unityVersion: ae
|
|
2206
|
+
} : {
|
|
2207
|
+
kind: "rule",
|
|
2208
|
+
sheet: g.sheet,
|
|
2209
|
+
item: g.item,
|
|
2210
|
+
declIndex: a,
|
|
2211
|
+
...((b = e.sheets[g.sheet]) == null ? void 0 : b.origin) === null || ((r = e.sheets[g.sheet]) == null ? void 0 : r.origin) === void 0 ? {} : { sourceDocument: e.sheets[g.sheet].origin },
|
|
2212
|
+
...((w = e.sheets[g.sheet]) == null ? void 0 : w.sourceDocumentFrom) === void 0 ? {} : { sourceDocumentFrom: e.sheets[g.sheet].sourceDocumentFrom },
|
|
2213
|
+
// Omitted rather than set to [] when unconditional, so the
|
|
2214
|
+
// common case stays the shape it has always been.
|
|
2215
|
+
...d.length > 0 ? { states: d } : {}
|
|
2216
|
+
};
|
|
2217
|
+
u(y, h, f, g.builtin === !0 ? 0 : 1, l);
|
|
2218
|
+
}
|
|
2219
|
+
});
|
|
2220
|
+
}
|
|
2052
2221
|
}
|
|
2053
2222
|
if (n.kind === "element") {
|
|
2054
|
-
const
|
|
2055
|
-
|
|
2056
|
-
var
|
|
2057
|
-
for (const [
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2223
|
+
const g = n.node;
|
|
2224
|
+
Ie(e, g).forEach((p, l) => {
|
|
2225
|
+
var d;
|
|
2226
|
+
for (const [m, a] of pe(p.property, p.value))
|
|
2227
|
+
u(
|
|
2228
|
+
m,
|
|
2229
|
+
a,
|
|
2061
2230
|
{
|
|
2062
2231
|
kind: "inline",
|
|
2063
|
-
node: ((
|
|
2064
|
-
declIndex:
|
|
2065
|
-
...typeof
|
|
2066
|
-
...
|
|
2232
|
+
node: ((d = g.derived) == null ? void 0 : d.instance) ?? g.sourceNode ?? g.id,
|
|
2233
|
+
declIndex: l,
|
|
2234
|
+
...typeof g.sourceDocument == "string" ? { sourceDocument: g.sourceDocument } : {},
|
|
2235
|
+
...g.sourceDocumentFrom === void 0 ? {} : { sourceDocumentFrom: g.sourceDocumentFrom }
|
|
2067
2236
|
},
|
|
2068
2237
|
1,
|
|
2069
|
-
|
|
2238
|
+
Sn
|
|
2070
2239
|
);
|
|
2071
2240
|
});
|
|
2072
2241
|
}
|
|
2073
|
-
return
|
|
2242
|
+
return i;
|
|
2074
2243
|
}
|
|
2075
|
-
function
|
|
2244
|
+
function dt(e) {
|
|
2076
2245
|
const n = /* @__PURE__ */ new Map();
|
|
2077
2246
|
for (const t of e) {
|
|
2078
2247
|
const s = n.get(t.property);
|
|
@@ -2084,122 +2253,124 @@ function ot(e) {
|
|
|
2084
2253
|
t.rank > s.rank && n.set(t.property, t);
|
|
2085
2254
|
continue;
|
|
2086
2255
|
}
|
|
2087
|
-
const
|
|
2088
|
-
(
|
|
2256
|
+
const o = lt(t.specificity, s.specificity);
|
|
2257
|
+
(o > 0 || o === 0 && t.order > s.order) && n.set(t.property, t);
|
|
2089
2258
|
}
|
|
2090
2259
|
for (const t of n.values()) t.winner = !0;
|
|
2091
2260
|
return n;
|
|
2092
2261
|
}
|
|
2093
|
-
const
|
|
2094
|
-
function
|
|
2095
|
-
var
|
|
2262
|
+
const Cn = /var\(\s*(--[^,)\s]+)\s*(?:,([^)]*))?\)/;
|
|
2263
|
+
function Se(e, n, t = /* @__PURE__ */ new Set()) {
|
|
2264
|
+
var o;
|
|
2096
2265
|
let s = e;
|
|
2097
|
-
for (let
|
|
2098
|
-
const
|
|
2099
|
-
if (
|
|
2100
|
-
const
|
|
2101
|
-
if (t.has(
|
|
2102
|
-
const
|
|
2103
|
-
if (
|
|
2104
|
-
s = s.slice(0,
|
|
2266
|
+
for (let i = 0; i < 32; i++) {
|
|
2267
|
+
const c = Cn.exec(s);
|
|
2268
|
+
if (c === null) return s;
|
|
2269
|
+
const u = c[1], g = (o = c[2]) == null ? void 0 : o.trim();
|
|
2270
|
+
if (t.has(u)) return null;
|
|
2271
|
+
const p = /* @__PURE__ */ new Set([...t, u]), l = n.get(u), d = l !== void 0 ? Se(l, n, p) : g !== void 0 && g.length > 0 ? Se(g, n, p) : null;
|
|
2272
|
+
if (d === null) return null;
|
|
2273
|
+
s = s.slice(0, c.index) + d + s.slice(c.index + c[0].length);
|
|
2105
2274
|
}
|
|
2106
2275
|
return null;
|
|
2107
2276
|
}
|
|
2108
|
-
function
|
|
2109
|
-
const t =
|
|
2110
|
-
let
|
|
2111
|
-
const
|
|
2112
|
-
const
|
|
2113
|
-
!
|
|
2114
|
-
const
|
|
2115
|
-
for (const [
|
|
2116
|
-
|
|
2117
|
-
for (const [
|
|
2118
|
-
|
|
2119
|
-
const
|
|
2120
|
-
for (const [
|
|
2121
|
-
for (const [
|
|
2122
|
-
const
|
|
2123
|
-
if (
|
|
2277
|
+
function Rn(e, n) {
|
|
2278
|
+
const t = ct(e, n), s = [...t.warnings], o = /* @__PURE__ */ new Map();
|
|
2279
|
+
let i = !1;
|
|
2280
|
+
const c = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Map(), p = (a, b, r) => {
|
|
2281
|
+
const w = ut(e, a, t, u, g);
|
|
2282
|
+
!i && w.some((v) => v.origin.kind === "builtin-theme") && (i = !0);
|
|
2283
|
+
const y = dt(w), h = /* @__PURE__ */ new Map();
|
|
2284
|
+
for (const [v, S] of b)
|
|
2285
|
+
v.startsWith("--") && h.set(v, S.value);
|
|
2286
|
+
for (const [v, S] of y)
|
|
2287
|
+
v.startsWith("--") && h.set(v, S.value);
|
|
2288
|
+
const f = /* @__PURE__ */ new Map();
|
|
2289
|
+
for (const [v, S] of b) f.set(v, S);
|
|
2290
|
+
for (const [v, S] of y) {
|
|
2291
|
+
const E = Se(S.value, h);
|
|
2292
|
+
if (E === null) {
|
|
2124
2293
|
s.push({
|
|
2125
2294
|
kind: "unsupported-property",
|
|
2126
|
-
message: `${
|
|
2127
|
-
node:
|
|
2295
|
+
message: `${v}: var() reference could not be resolved; declaration dropped`,
|
|
2296
|
+
node: r,
|
|
2128
2297
|
reason: "invalid-value",
|
|
2129
|
-
subject: { kind: "property", property:
|
|
2298
|
+
subject: { kind: "property", property: v, value: S.value }
|
|
2130
2299
|
});
|
|
2131
2300
|
continue;
|
|
2132
2301
|
}
|
|
2133
|
-
|
|
2302
|
+
f.set(v, { value: E, origin: S.origin });
|
|
2134
2303
|
}
|
|
2135
|
-
const
|
|
2136
|
-
for (const [
|
|
2137
|
-
|
|
2138
|
-
value:
|
|
2139
|
-
origin: { kind: "inherited", from:
|
|
2304
|
+
const k = /* @__PURE__ */ new Map();
|
|
2305
|
+
for (const [v, S] of f)
|
|
2306
|
+
Gt(v) && k.set(v, {
|
|
2307
|
+
value: S.value,
|
|
2308
|
+
origin: { kind: "inherited", from: r, origin: S.origin }
|
|
2140
2309
|
});
|
|
2141
|
-
return { computed:
|
|
2142
|
-
},
|
|
2143
|
-
var
|
|
2144
|
-
const
|
|
2145
|
-
|
|
2146
|
-
const
|
|
2147
|
-
if (
|
|
2148
|
-
const
|
|
2149
|
-
|
|
2310
|
+
return { computed: f, forChildren: k };
|
|
2311
|
+
}, l = /* @__PURE__ */ new Set(), d = (a) => {
|
|
2312
|
+
var w;
|
|
2313
|
+
const b = ((w = a.derived) == null ? void 0 : w.instance) ?? a.sourceNode ?? a.id, r = typeof a.sourceDocument == "string" ? a.sourceDocument : null;
|
|
2314
|
+
Ie(e, a).forEach((y, h) => {
|
|
2315
|
+
const f = tt(y.property, y.value);
|
|
2316
|
+
if (f === null) return;
|
|
2317
|
+
const k = `${a.sourceDocument ?? ""}#${b}#${h}`;
|
|
2318
|
+
l.has(k) || (l.add(k), s.push({
|
|
2150
2319
|
kind: "unsupported-property",
|
|
2151
|
-
...
|
|
2152
|
-
node:
|
|
2320
|
+
...f,
|
|
2321
|
+
node: a.id,
|
|
2153
2322
|
// A span is only meaningful in the entry document's own text; a
|
|
2154
2323
|
// template's declaration names its file instead.
|
|
2155
|
-
...
|
|
2324
|
+
...r !== null ? { sourceDocument: r } : { at: { in: "uxml", span: y.span } }
|
|
2156
2325
|
}));
|
|
2157
2326
|
});
|
|
2158
|
-
},
|
|
2159
|
-
|
|
2160
|
-
const
|
|
2161
|
-
|
|
2162
|
-
let
|
|
2163
|
-
const
|
|
2164
|
-
if (
|
|
2165
|
-
const
|
|
2166
|
-
|
|
2167
|
-
const
|
|
2168
|
-
{ kind: "part", owner:
|
|
2169
|
-
|
|
2170
|
-
|
|
2327
|
+
}, m = (a, b) => {
|
|
2328
|
+
d(a);
|
|
2329
|
+
const r = p({ kind: "element", node: a }, b, a.id);
|
|
2330
|
+
o.set(a.id, r.computed);
|
|
2331
|
+
let w = r.forChildren;
|
|
2332
|
+
const y = X(a).spec.parts;
|
|
2333
|
+
if (y.length > 0) {
|
|
2334
|
+
const h = /* @__PURE__ */ new Map();
|
|
2335
|
+
y.forEach((f, k) => {
|
|
2336
|
+
const v = p(
|
|
2337
|
+
{ kind: "part", owner: a, name: f.name, depth: k },
|
|
2338
|
+
w,
|
|
2339
|
+
a.id
|
|
2171
2340
|
);
|
|
2172
|
-
|
|
2173
|
-
}),
|
|
2341
|
+
h.set(f.name, v.computed), w = v.forChildren;
|
|
2342
|
+
}), c.set(a.id, h);
|
|
2174
2343
|
}
|
|
2175
|
-
for (const
|
|
2344
|
+
for (const h of a.children) m(h, w);
|
|
2176
2345
|
};
|
|
2177
|
-
|
|
2346
|
+
m(e.root, /* @__PURE__ */ new Map()), i && s.push({
|
|
2178
2347
|
kind: "version-dependent",
|
|
2179
|
-
message: `Built-in control defaults applied, as measured on Unity ${
|
|
2348
|
+
message: `Built-in control defaults applied, as measured on Unity ${ae}`,
|
|
2180
2349
|
reason: "version-dependent"
|
|
2181
2350
|
});
|
|
2182
|
-
for (const
|
|
2183
|
-
if (
|
|
2184
|
-
const
|
|
2185
|
-
|
|
2351
|
+
for (const a of t.usable) {
|
|
2352
|
+
if (a.builtin === !0 || u.has(a)) continue;
|
|
2353
|
+
const b = wn(a.rule.selectors);
|
|
2354
|
+
b.length !== 0 && s.push({
|
|
2186
2355
|
kind: "unsupported-selector",
|
|
2187
|
-
message: `${
|
|
2188
|
-
at: { in: "uss", sheet:
|
|
2356
|
+
message: `${b.join(", ")} matched nothing; only ${kt().join(", ")} are drawn with the parts these names refer to`,
|
|
2357
|
+
at: { in: "uss", sheet: a.sheet, ...Y(e, a.sheet), span: a.rule.selectorSpan },
|
|
2189
2358
|
reason: "not-rendered",
|
|
2190
|
-
subject: { kind: "selector", selector:
|
|
2191
|
-
...
|
|
2359
|
+
subject: { kind: "selector", selector: re(e, a), fragment: b.join(", ") },
|
|
2360
|
+
...G(e, a.sheet)
|
|
2192
2361
|
});
|
|
2193
2362
|
}
|
|
2194
|
-
|
|
2363
|
+
for (const [a, b] of t.declarationWarnings)
|
|
2364
|
+
a.nodes = g.get(b) ?? [];
|
|
2365
|
+
return { styles: o, partStyles: c, warnings: s, matchedNodes: g };
|
|
2195
2366
|
}
|
|
2196
|
-
function
|
|
2197
|
-
const
|
|
2198
|
-
(
|
|
2367
|
+
function Bn(e, n, t, s) {
|
|
2368
|
+
const o = ct(e, s), i = ut(e, { kind: "element", node: n }, o).filter(
|
|
2369
|
+
(c) => c.property === t
|
|
2199
2370
|
);
|
|
2200
|
-
return
|
|
2371
|
+
return dt(i), i;
|
|
2201
2372
|
}
|
|
2202
|
-
const
|
|
2373
|
+
const Hn = [
|
|
2203
2374
|
{
|
|
2204
2375
|
id: "text-metrics",
|
|
2205
2376
|
kind: "unreproducible",
|
|
@@ -2219,245 +2390,341 @@ const Un = [
|
|
|
2219
2390
|
detail: "The yoga-layout version this package depends on resolves a main-axis percentage against an indefinite parent differently from the Yoga vendored inside Unity 6000.0.40f1. Not configurable: no available setting reproduces Unity's answer without breaking cases that currently match. Fully deterministic and pinned to a case in docs/accuracy.md — this always reproduces the same way, it just cannot be fixed from inside this repository."
|
|
2220
2391
|
}
|
|
2221
2392
|
];
|
|
2222
|
-
function
|
|
2223
|
-
const t = (
|
|
2224
|
-
function s(
|
|
2225
|
-
return
|
|
2226
|
-
}
|
|
2227
|
-
function
|
|
2228
|
-
return
|
|
2229
|
-
}
|
|
2230
|
-
function
|
|
2231
|
-
const l =
|
|
2232
|
-
return
|
|
2233
|
-
}
|
|
2234
|
-
function
|
|
2235
|
-
var
|
|
2236
|
-
const l = t(
|
|
2237
|
-
return { between:
|
|
2238
|
-
}
|
|
2239
|
-
function
|
|
2240
|
-
const { inner: l } =
|
|
2241
|
-
if (
|
|
2242
|
-
if (
|
|
2243
|
-
const { between:
|
|
2244
|
-
return
|
|
2393
|
+
function jn(e, n) {
|
|
2394
|
+
const t = (p) => e.slice(p.start, p.end);
|
|
2395
|
+
function s(p) {
|
|
2396
|
+
return p.spans.closeTag !== null ? p.spans.closeTag.end : Math.max(p.spans.openTag.end, p.spans.inner.end);
|
|
2397
|
+
}
|
|
2398
|
+
function o(p) {
|
|
2399
|
+
return p.includes('"') ? p.includes("'") ? `"${p.replace(/"/g, """)}"` : `'${p}'` : `"${p}"`;
|
|
2400
|
+
}
|
|
2401
|
+
function i(p) {
|
|
2402
|
+
const l = p.attributes.map((m) => ` ${m.name}=${o(m.value)}`).join(""), d = _e(p.name);
|
|
2403
|
+
return p.spans.closeTag === null ? `<${d}${l} />` : `<${d}${l}>`;
|
|
2404
|
+
}
|
|
2405
|
+
function c(p) {
|
|
2406
|
+
var a, b;
|
|
2407
|
+
const l = t(p.spans.inner), d = ((a = /^[ \t]*\r?\n[ \t]*/.exec(l)) == null ? void 0 : a[0]) ?? "", m = ((b = /\r?\n[ \t]*$/.exec(l)) == null ? void 0 : b[0]) ?? "";
|
|
2408
|
+
return { between: d, before: d, after: m };
|
|
2409
|
+
}
|
|
2410
|
+
function u(p) {
|
|
2411
|
+
const { inner: l } = p.spans;
|
|
2412
|
+
if (p.children.length === 0) return t(l);
|
|
2413
|
+
if (p.childrenDirty) {
|
|
2414
|
+
const { between: a, before: b, after: r } = c(p);
|
|
2415
|
+
return b + p.children.map(g).join(a) + r;
|
|
2245
2416
|
}
|
|
2246
|
-
let
|
|
2247
|
-
for (const
|
|
2248
|
-
|
|
2249
|
-
return
|
|
2417
|
+
let d = "", m = l.start;
|
|
2418
|
+
for (const a of p.children)
|
|
2419
|
+
d += e.slice(m, a.spans.openTag.start), d += g(a), m = s(a);
|
|
2420
|
+
return d + e.slice(m, l.end);
|
|
2250
2421
|
}
|
|
2251
|
-
function
|
|
2252
|
-
const l =
|
|
2253
|
-
return l +
|
|
2422
|
+
function g(p) {
|
|
2423
|
+
const l = p.tagDirty ? i(p) : t(p.spans.openTag), d = p.spans.closeTag === null ? "" : t(p.spans.closeTag);
|
|
2424
|
+
return l + u(p) + d;
|
|
2254
2425
|
}
|
|
2255
|
-
return e.slice(0, n.spans.openTag.start) +
|
|
2426
|
+
return e.slice(0, n.spans.openTag.start) + g(n) + e.slice(s(n));
|
|
2256
2427
|
}
|
|
2257
|
-
function
|
|
2428
|
+
function Nn(e) {
|
|
2258
2429
|
const n = e.source, t = (l) => n.slice(l.start, l.end);
|
|
2259
2430
|
function s(l) {
|
|
2260
|
-
return l.parts.map((
|
|
2261
|
-
const
|
|
2262
|
-
switch (
|
|
2431
|
+
return l.parts.map((d, m) => {
|
|
2432
|
+
const a = m === 0 ? "" : d.combinator === "child" ? " > " : " ", b = d.simple.map((r) => {
|
|
2433
|
+
switch (r.kind) {
|
|
2263
2434
|
case "universal":
|
|
2264
2435
|
return "*";
|
|
2265
2436
|
case "type":
|
|
2266
|
-
return
|
|
2437
|
+
return r.name;
|
|
2267
2438
|
case "class":
|
|
2268
|
-
return `.${
|
|
2439
|
+
return `.${r.name}`;
|
|
2269
2440
|
case "name":
|
|
2270
|
-
return `#${
|
|
2441
|
+
return `#${r.name}`;
|
|
2271
2442
|
case "pseudo":
|
|
2272
|
-
return `:${
|
|
2443
|
+
return `:${r.name}`;
|
|
2273
2444
|
case "unknown":
|
|
2274
|
-
return
|
|
2445
|
+
return r.text;
|
|
2275
2446
|
}
|
|
2276
2447
|
}).join("");
|
|
2277
|
-
return
|
|
2448
|
+
return a + b;
|
|
2278
2449
|
}).join("");
|
|
2279
2450
|
}
|
|
2280
|
-
function r(l) {
|
|
2281
|
-
var k, f;
|
|
2282
|
-
const c = l.declarations[0];
|
|
2283
|
-
if (c === void 0) return { between: "", before: "", after: "" };
|
|
2284
|
-
const u = n.lastIndexOf(`
|
|
2285
|
-
`, c.span.start), p = u < 0 ? "" : n.slice(u, c.span.start), i = n.slice(l.selectorSpan.end, l.span.end), y = ((f = (k = /\r?\n[ \t]*\}$/.exec(i)) == null ? void 0 : k[0]) == null ? void 0 : f.replace(/\}$/, "")) ?? "";
|
|
2286
|
-
return { between: `;${p}`, before: p, after: `;${y}` };
|
|
2287
|
-
}
|
|
2288
2451
|
function o(l) {
|
|
2289
|
-
|
|
2452
|
+
var w, y;
|
|
2453
|
+
const d = l.declarations[0];
|
|
2454
|
+
if (d === void 0) return { between: "", before: "", after: "" };
|
|
2455
|
+
const m = n.lastIndexOf(`
|
|
2456
|
+
`, d.span.start), a = m < 0 ? "" : n.slice(m, d.span.start), b = n.slice(l.selectorSpan.end, l.span.end), r = ((y = (w = /\r?\n[ \t]*\}$/.exec(b)) == null ? void 0 : w[0]) == null ? void 0 : y.replace(/\}$/, "")) ?? "";
|
|
2457
|
+
return { between: `;${a}`, before: a, after: `;${r}` };
|
|
2458
|
+
}
|
|
2459
|
+
function i(l) {
|
|
2460
|
+
const d = l.selectorDirty ? l.selectors.map(s).join(", ") : t(l.selectorSpan);
|
|
2290
2461
|
if (l.declarations.length === 0)
|
|
2291
|
-
return
|
|
2292
|
-
const
|
|
2462
|
+
return d + n.slice(l.selectorSpan.end, l.span.end);
|
|
2463
|
+
const m = n.slice(l.selectorSpan.end, l.declarations[0].span.start);
|
|
2293
2464
|
if (l.declarationsDirty) {
|
|
2294
|
-
const { between:
|
|
2295
|
-
return `${
|
|
2465
|
+
const { between: r, before: w, after: y } = o(l), h = m.slice(0, m.indexOf("{") + 1), f = l.declarations.map(c).join(r);
|
|
2466
|
+
return `${d}${h}${w}${f}${y}}`;
|
|
2296
2467
|
}
|
|
2297
|
-
let
|
|
2298
|
-
for (const
|
|
2299
|
-
|
|
2300
|
-
return
|
|
2468
|
+
let a = d, b = l.selectorSpan.end;
|
|
2469
|
+
for (const r of l.declarations)
|
|
2470
|
+
a += n.slice(b, r.span.start), a += c(r), b = r.span.end;
|
|
2471
|
+
return a + n.slice(b, l.span.end);
|
|
2301
2472
|
}
|
|
2302
|
-
function
|
|
2473
|
+
function c(l) {
|
|
2303
2474
|
return l.dirty ? `${l.property}: ${l.value}` : t(l.span);
|
|
2304
2475
|
}
|
|
2305
|
-
function
|
|
2306
|
-
return l.kind === "rule" ?
|
|
2476
|
+
function u(l) {
|
|
2477
|
+
return l.kind === "rule" ? i(l.rule) : t(l.span);
|
|
2307
2478
|
}
|
|
2308
|
-
let
|
|
2479
|
+
let g = "", p = 0;
|
|
2309
2480
|
for (const l of e.items) {
|
|
2310
|
-
const
|
|
2311
|
-
|
|
2481
|
+
const d = l.kind === "rule" ? l.rule.span : l.span;
|
|
2482
|
+
g += n.slice(p, d.start), g += u(l), p = d.end;
|
|
2312
2483
|
}
|
|
2313
|
-
return
|
|
2484
|
+
return g + n.slice(p);
|
|
2314
2485
|
}
|
|
2315
|
-
|
|
2316
|
-
|
|
2486
|
+
function An(e, n, t, s) {
|
|
2487
|
+
const o = /* @__PURE__ */ new Map();
|
|
2488
|
+
if (s === void 0) return { fonts: o, warnings: [...n] };
|
|
2489
|
+
const i = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), u = (p, l, d) => {
|
|
2490
|
+
for (; l.kind === "inherited"; ) l = l.origin;
|
|
2491
|
+
const m = t(l);
|
|
2492
|
+
return JSON.stringify([
|
|
2493
|
+
p,
|
|
2494
|
+
m.sourceDocument,
|
|
2495
|
+
m.at,
|
|
2496
|
+
m.at === void 0 ? l.kind === "inline" ? l.node : d : null
|
|
2497
|
+
]);
|
|
2498
|
+
};
|
|
2499
|
+
for (const [p, l] of e)
|
|
2500
|
+
for (const d of ["-unity-font", "-unity-font-definition"]) {
|
|
2501
|
+
const m = l.get(d);
|
|
2502
|
+
if (m === void 0) continue;
|
|
2503
|
+
const a = st(m.value);
|
|
2504
|
+
if (a === null) continue;
|
|
2505
|
+
const b = JSON.stringify([a.path, a.form]);
|
|
2506
|
+
if (!i.has(b)) {
|
|
2507
|
+
const h = s(a.path, a.form);
|
|
2508
|
+
i.set(b, typeof h == "string" ? { family: h } : h);
|
|
2509
|
+
}
|
|
2510
|
+
const r = i.get(b);
|
|
2511
|
+
let w = m.origin;
|
|
2512
|
+
for (; w.kind === "inherited"; ) w = w.origin;
|
|
2513
|
+
const y = u(d, w, p);
|
|
2514
|
+
c.has(y) || c.set(y, r === null ? {
|
|
2515
|
+
kind: "asset-unresolved",
|
|
2516
|
+
message: `${d}: "${a.path}" was not resolved`,
|
|
2517
|
+
node: w.kind === "inline" ? w.node : p,
|
|
2518
|
+
subject: { kind: "asset", ...a, role: "font" },
|
|
2519
|
+
...t(w)
|
|
2520
|
+
} : null), d === "-unity-font-definition" && o.delete(l), r !== null && o.set(l, r);
|
|
2521
|
+
}
|
|
2522
|
+
const g = n.filter((p) => {
|
|
2523
|
+
var d;
|
|
2524
|
+
if (p.reason !== "not-rendered" || ((d = p.subject) == null ? void 0 : d.kind) !== "property") return !0;
|
|
2525
|
+
const l = JSON.stringify([
|
|
2526
|
+
p.subject.property,
|
|
2527
|
+
p.sourceDocument,
|
|
2528
|
+
p.at,
|
|
2529
|
+
p.at === void 0 ? p.node : null
|
|
2530
|
+
]);
|
|
2531
|
+
return !c.has(l);
|
|
2532
|
+
});
|
|
2533
|
+
return { fonts: o, warnings: [...g, ...[...c.values()].filter((p) => p !== null)] };
|
|
2534
|
+
}
|
|
2535
|
+
function Vn(e) {
|
|
2536
|
+
const n = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), s = (c) => {
|
|
2537
|
+
n.set(c.id, c);
|
|
2538
|
+
for (const u of c.children)
|
|
2539
|
+
t.set(u.id, c.id), s(u);
|
|
2540
|
+
};
|
|
2541
|
+
e.document !== void 0 && s(e.document.root);
|
|
2542
|
+
const o = /* @__PURE__ */ new Map(), i = (c) => {
|
|
2543
|
+
var p, l, d, m;
|
|
2544
|
+
const u = o.get(c);
|
|
2545
|
+
if (u !== void 0) return u;
|
|
2546
|
+
let g;
|
|
2547
|
+
for (let a = c; a !== void 0; a = t.get(a)) {
|
|
2548
|
+
const b = (l = (p = e.styles) == null ? void 0 : p.get(a)) == null ? void 0 : l.get("display");
|
|
2549
|
+
if ((b == null ? void 0 : b.value) === "none") {
|
|
2550
|
+
g = { kind: "hidden", by: a, origin: b.origin };
|
|
2551
|
+
break;
|
|
2552
|
+
}
|
|
2553
|
+
}
|
|
2554
|
+
if (g === void 0) {
|
|
2555
|
+
const a = e.boxes.get(c);
|
|
2556
|
+
if (a.width === 0 || a.height === 0) {
|
|
2557
|
+
const b = (d = e.styles) == null ? void 0 : d.get(c), r = ["width", "height"].some((y) => {
|
|
2558
|
+
var h;
|
|
2559
|
+
return /^-?0+(\.0+)?(px|%)?$/.test(((h = b == null ? void 0 : b.get(y)) == null ? void 0 : h.value) ?? "");
|
|
2560
|
+
}), w = ((m = n.get(c)) == null ? void 0 : m.children.filter((y) => e.boxes.has(y.id))) ?? [];
|
|
2561
|
+
g = !r && w.length > 0 && w.every((y) => {
|
|
2562
|
+
const h = i(y.id).kind;
|
|
2563
|
+
return h === "hidden" || h === "emptied";
|
|
2564
|
+
}) ? { kind: "emptied" } : { kind: "collapsed", explicitZero: r };
|
|
2565
|
+
} else g = { kind: "shown" };
|
|
2566
|
+
}
|
|
2567
|
+
return o.set(c, g), g;
|
|
2568
|
+
};
|
|
2569
|
+
for (const c of e.boxes.keys()) i(c);
|
|
2570
|
+
return o;
|
|
2571
|
+
}
|
|
2572
|
+
St(
|
|
2573
|
+
(e, n) => n === void 0 ? Fe(e) : Fe(e, void 0, { resolveImport: n })
|
|
2317
2574
|
);
|
|
2318
|
-
function
|
|
2575
|
+
function ft(e, n = []) {
|
|
2319
2576
|
var t;
|
|
2320
2577
|
for (const s of e.children) {
|
|
2321
2578
|
if (s.name.local === "Style") {
|
|
2322
|
-
const
|
|
2323
|
-
|
|
2579
|
+
const o = (t = s.attributes.find((i) => i.name === "src")) == null ? void 0 : t.value;
|
|
2580
|
+
o !== void 0 && o.length > 0 && n.push({ url: Z(o), scope: e.id });
|
|
2324
2581
|
}
|
|
2325
|
-
|
|
2582
|
+
ft(s, n);
|
|
2326
2583
|
}
|
|
2327
2584
|
return n;
|
|
2328
2585
|
}
|
|
2329
|
-
function
|
|
2586
|
+
function Ln(e) {
|
|
2330
2587
|
return e.startsWith("project://") || e.startsWith("/");
|
|
2331
2588
|
}
|
|
2332
|
-
function
|
|
2333
|
-
var
|
|
2334
|
-
const s =
|
|
2335
|
-
for (const { url:
|
|
2336
|
-
const
|
|
2337
|
-
if (
|
|
2338
|
-
|
|
2589
|
+
function Fe(e, n, t) {
|
|
2590
|
+
var p, l, d;
|
|
2591
|
+
const s = We(e), o = [...s.warnings], i = [], c = [], u = [];
|
|
2592
|
+
for (const { url: m, scope: a } of ft(s.root)) {
|
|
2593
|
+
const b = ((p = t == null ? void 0 : t.resolveImport) == null ? void 0 : p.call(t, m, null)) ?? null;
|
|
2594
|
+
if (b === null) {
|
|
2595
|
+
o.push({
|
|
2339
2596
|
kind: "import-unresolved",
|
|
2340
|
-
message: (t == null ? void 0 : t.resolveImport) === void 0 ? `<Style src="${
|
|
2597
|
+
message: (t == null ? void 0 : t.resolveImport) === void 0 ? `<Style src="${m}"> was not loaded: pass resolveImport to read it, or pass the stylesheet text directly. Until then this document renders unstyled.` : `<Style src="${m}"> could not be resolved`,
|
|
2341
2598
|
node: s.root.id,
|
|
2342
|
-
subject: { kind: "import", url:
|
|
2599
|
+
subject: { kind: "import", url: m, from: null }
|
|
2343
2600
|
});
|
|
2344
2601
|
continue;
|
|
2345
2602
|
}
|
|
2346
|
-
|
|
2347
|
-
}
|
|
2348
|
-
if (n !== void 0 ||
|
|
2349
|
-
const
|
|
2350
|
-
let
|
|
2351
|
-
for (const
|
|
2352
|
-
const
|
|
2353
|
-
|
|
2603
|
+
u.push({ text: b, origin: m, scope: a });
|
|
2604
|
+
}
|
|
2605
|
+
if (n !== void 0 || u.length > 0) {
|
|
2606
|
+
const m = /* @__PURE__ */ new Map(), a = [];
|
|
2607
|
+
let b = 0;
|
|
2608
|
+
for (const r of u) {
|
|
2609
|
+
const w = b++;
|
|
2610
|
+
a.push({ text: r.text, origin: r.origin, sheet: w }), c.push({ sheet: w, scope: r.scope });
|
|
2354
2611
|
}
|
|
2355
2612
|
if (n !== void 0) {
|
|
2356
|
-
const
|
|
2357
|
-
|
|
2358
|
-
}
|
|
2359
|
-
for (;
|
|
2360
|
-
const
|
|
2361
|
-
|
|
2362
|
-
for (const
|
|
2363
|
-
if (
|
|
2364
|
-
const
|
|
2365
|
-
if (
|
|
2366
|
-
const
|
|
2367
|
-
|
|
2613
|
+
const r = b++;
|
|
2614
|
+
a.push({ text: n, origin: null, sheet: r }), c.push({ sheet: r, scope: s.root.id });
|
|
2615
|
+
}
|
|
2616
|
+
for (; a.length > 0; ) {
|
|
2617
|
+
const r = a.shift(), w = r.sheet, y = Oe(r.text, r.origin, w);
|
|
2618
|
+
i.push(y.sheet), o.push(...y.warnings);
|
|
2619
|
+
for (const h of y.sheet.items) {
|
|
2620
|
+
if (h.kind !== "import") continue;
|
|
2621
|
+
const f = Ln(h.url) ? h.url : JSON.stringify([h.url, r.origin]);
|
|
2622
|
+
if (m.has(f)) {
|
|
2623
|
+
const S = m.get(f);
|
|
2624
|
+
S != null && (h.resolvedSheet = S);
|
|
2368
2625
|
continue;
|
|
2369
2626
|
}
|
|
2370
|
-
|
|
2371
|
-
const
|
|
2372
|
-
if (
|
|
2373
|
-
|
|
2627
|
+
m.set(f, null);
|
|
2628
|
+
const k = ((l = t == null ? void 0 : t.resolveImport) == null ? void 0 : l.call(t, h.url, r.origin)) ?? null;
|
|
2629
|
+
if (k === null) {
|
|
2630
|
+
o.push({
|
|
2374
2631
|
kind: "import-unresolved",
|
|
2375
|
-
message: (t == null ? void 0 : t.resolveImport) === void 0 ? `@import "${
|
|
2376
|
-
at: { in: "uss", sheet:
|
|
2377
|
-
subject: { kind: "import", url:
|
|
2632
|
+
message: (t == null ? void 0 : t.resolveImport) === void 0 ? `@import "${h.url}" was not loaded: pass resolveImport to read it` : `@import "${h.url}" could not be resolved`,
|
|
2633
|
+
at: { in: "uss", sheet: w, span: h.span },
|
|
2634
|
+
subject: { kind: "import", url: h.url, from: r.origin }
|
|
2378
2635
|
});
|
|
2379
2636
|
continue;
|
|
2380
2637
|
}
|
|
2381
|
-
const
|
|
2382
|
-
|
|
2638
|
+
const v = b++;
|
|
2639
|
+
m.set(f, v), h.resolvedSheet = v, a.push({ text: k, origin: h.url, sheet: v });
|
|
2383
2640
|
}
|
|
2384
2641
|
}
|
|
2385
2642
|
}
|
|
2386
|
-
const
|
|
2387
|
-
|
|
2643
|
+
const g = { source: e, root: s.root, sheets: i, styleRoots: c, warnings: o };
|
|
2644
|
+
for (const m of o)
|
|
2645
|
+
((d = m.at) == null ? void 0 : d.in) === "uss" && Object.assign(m.at, Y(g, m.at.sheet));
|
|
2646
|
+
return $t(g, t == null ? void 0 : t.resolveImport), g;
|
|
2388
2647
|
}
|
|
2389
|
-
function
|
|
2648
|
+
function qn(e) {
|
|
2390
2649
|
const n = e.sheets[0];
|
|
2391
2650
|
return {
|
|
2392
|
-
uxml:
|
|
2651
|
+
uxml: jn(e.source, e.root),
|
|
2393
2652
|
// Only the sheet passed to `parse` round-trips. `@import`ed sheets (Phase 3)
|
|
2394
2653
|
// are separate files and are not this function's to write.
|
|
2395
|
-
uss: n === void 0 ? "" :
|
|
2654
|
+
uss: n === void 0 ? "" : Nn(n)
|
|
2396
2655
|
};
|
|
2397
2656
|
}
|
|
2398
|
-
function
|
|
2399
|
-
const n = /* @__PURE__ */ new
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2657
|
+
function Un(e) {
|
|
2658
|
+
const n = /* @__PURE__ */ new Map(), t = [];
|
|
2659
|
+
for (const s of e) {
|
|
2660
|
+
const o = { ...s }, i = o.at === void 0 ? void 0 : JSON.stringify([o.kind, o.message, o.sourceDocument ?? null, o.at]);
|
|
2661
|
+
(i === void 0 ? void 0 : n.get(i)) === void 0 && (i !== void 0 && n.set(i, o), t.push(o));
|
|
2662
|
+
}
|
|
2663
|
+
return t;
|
|
2405
2664
|
}
|
|
2406
|
-
function
|
|
2407
|
-
const s = n.ownerDocument,
|
|
2665
|
+
function Yn(e, n, t) {
|
|
2666
|
+
const s = n.ownerDocument, o = (t == null ? void 0 : t.size) ?? {
|
|
2408
2667
|
width: n.clientWidth,
|
|
2409
2668
|
height: n.clientHeight
|
|
2410
|
-
},
|
|
2669
|
+
}, i = Lt(e), c = i.document, u = Rn(c, {
|
|
2411
2670
|
...(t == null ? void 0 : t.activeStates) === void 0 ? {} : { activeStates: t.activeStates },
|
|
2412
2671
|
...(t == null ? void 0 : t.states) === void 0 ? {} : { states: t.states }
|
|
2413
|
-
}),
|
|
2414
|
-
size:
|
|
2415
|
-
measureText:
|
|
2416
|
-
|
|
2672
|
+
}), g = (t == null ? void 0 : t.measureText) ?? ln(s), p = Mn(c, u.matchedNodes), l = An(u.styles, u.warnings, p, t == null ? void 0 : t.resolveFont), d = on(c.root, u.styles, u.partStyles, {
|
|
2673
|
+
size: o,
|
|
2674
|
+
measureText: g,
|
|
2675
|
+
fonts: l.fonts,
|
|
2676
|
+
locate: p
|
|
2417
2677
|
});
|
|
2418
|
-
let
|
|
2678
|
+
let m;
|
|
2419
2679
|
try {
|
|
2420
|
-
|
|
2680
|
+
m = gn(c.root, d.boxes, d.parts, u.styles, n, {
|
|
2421
2681
|
document: s,
|
|
2682
|
+
fonts: l.fonts,
|
|
2422
2683
|
resolveAsset: t == null ? void 0 : t.resolveAsset,
|
|
2423
|
-
locate:
|
|
2684
|
+
locate: p
|
|
2424
2685
|
});
|
|
2425
|
-
} catch (
|
|
2426
|
-
throw
|
|
2686
|
+
} catch (b) {
|
|
2687
|
+
throw d.dispose(), b;
|
|
2427
2688
|
}
|
|
2428
|
-
let
|
|
2689
|
+
let a = !1;
|
|
2429
2690
|
return {
|
|
2430
|
-
warnings:
|
|
2431
|
-
...
|
|
2432
|
-
...a.warnings,
|
|
2691
|
+
warnings: Un([
|
|
2692
|
+
...i.warnings,
|
|
2433
2693
|
...l.warnings,
|
|
2434
|
-
...
|
|
2694
|
+
...d.warnings,
|
|
2695
|
+
...m.warnings
|
|
2435
2696
|
]),
|
|
2436
|
-
elements:
|
|
2437
|
-
boxes:
|
|
2697
|
+
elements: m.elements,
|
|
2698
|
+
boxes: d.boxes,
|
|
2699
|
+
document: c,
|
|
2700
|
+
styles: u.styles,
|
|
2701
|
+
partStyles: u.partStyles,
|
|
2438
2702
|
dispose() {
|
|
2439
|
-
|
|
2703
|
+
a || (a = !0, d.dispose(), n.replaceChildren());
|
|
2440
2704
|
}
|
|
2441
2705
|
};
|
|
2442
2706
|
}
|
|
2443
2707
|
export {
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2708
|
+
rn as EDITOR_DEFAULT_FACE_INFO,
|
|
2709
|
+
Hn as KNOWN_DIVERGENCES,
|
|
2710
|
+
pn as NODE_ATTRIBUTE,
|
|
2711
|
+
hn as PART_ATTRIBUTE,
|
|
2712
|
+
mn as PART_OWNER_ATTRIBUTE,
|
|
2713
|
+
Re as TEMPLATE_DEPTH_LIMIT,
|
|
2714
|
+
be as USS_STATES,
|
|
2715
|
+
Vn as classifyVisibility,
|
|
2716
|
+
Fn as collectDependencies,
|
|
2717
|
+
ln as createDefaultMeasureText,
|
|
2718
|
+
Lt as expandTemplates,
|
|
2719
|
+
Bn as explainProperty,
|
|
2720
|
+
Gt as isInherited,
|
|
2721
|
+
Wn as isLayoutEngineReady,
|
|
2722
|
+
_n as liveNodeCount,
|
|
2723
|
+
Pn as loadLayoutEngine,
|
|
2724
|
+
Fe as parse,
|
|
2725
|
+
Yn as render,
|
|
2726
|
+
Rn as resolveStyles,
|
|
2727
|
+
qn as serialize,
|
|
2728
|
+
kt as supportedControlNames,
|
|
2729
|
+
an as textHeight
|
|
2463
2730
|
};
|