vintage-frames 0.12.8 → 0.14.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/custom-elements.json +26 -26
- package/dist/chrome.d.ts +1 -1
- package/dist/components/vf-checkbox.d.ts +6 -5
- package/dist/components/vf-checkbox.js +41 -37
- package/dist/components/vf-container.d.ts +16 -20
- package/dist/components/vf-container.js +25 -17
- package/dist/components/vf-desktop.d.ts +4 -5
- package/dist/components/vf-desktop.js +13 -18
- package/dist/components/vf-fieldset.js +30 -22
- package/dist/components/vf-icon.js +55 -55
- package/dist/components/vf-list.js +30 -29
- package/dist/components/vf-menu.js +24 -22
- package/dist/components/vf-number-field.js +32 -30
- package/dist/components/vf-progress-bar.d.ts +2 -2
- package/dist/components/vf-progress-bar.js +65 -52
- package/dist/components/vf-radio.js +3 -4
- package/dist/components/vf-scroll-area.js +27 -26
- package/dist/components/vf-select.js +108 -90
- package/dist/components/vf-separator.d.ts +5 -5
- package/dist/components/vf-separator.js +36 -10
- package/dist/components/vf-slider.js +11 -11
- package/dist/components/vf-swatch.d.ts +2 -2
- package/dist/components/vf-swatch.js +73 -72
- package/dist/components/vf-text-area.js +37 -35
- package/dist/components/vf-text-field.js +20 -18
- package/dist/components/vf-window.d.ts +6 -9
- package/dist/components/vf-window.js +106 -87
- package/dist/index.d.ts +20 -10
- package/dist/index.js +63 -62
- package/dist/pattern-fill.d.ts +21 -50
- package/dist/pattern-fill.js +19 -54
- package/dist/scroll-rail.d.ts +6 -6
- package/dist/scroll-rail.js +24 -29
- package/dist/styles/base.d.ts +3 -1
- package/dist/styles/recipes/field.d.ts +10 -6
- package/dist/styles/recipes/field.js +8 -7
- package/dist/styles/recipes/focus.d.ts +7 -3
- package/dist/styles/recipes/pattern.d.ts +19 -10
- package/dist/styles/recipes/pattern.js +27 -18
- package/dist/styles/recipes/rule.d.ts +11 -8
- package/dist/styles/recipes/rule.js +31 -13
- package/dist/styles/recipes/scroll-rail.d.ts +21 -13
- package/dist/styles/recipes/scroll-rail.js +27 -37
- package/dist/styles/recipes/shadow.d.ts +10 -6
- package/dist/styles/recipes/shadow.js +4 -2
- package/dist/styles/recipes/stroke.d.ts +85 -0
- package/dist/styles/recipes/stroke.js +53 -0
- package/dist/styles/recipes/surface.d.ts +8 -4
- package/dist/styles/recipes/surface.js +23 -17
- package/dist/styles/recipes/tile.d.ts +11 -3
- package/dist/styles/recipes/tile.js +12 -12
- package/dist/styles/recipes/title-bar.d.ts +7 -0
- package/dist/styles/recipes/title-bar.js +25 -22
- package/dist/styles/recipes/toggle.js +3 -3
- package/dist/tile-grid.d.ts +98 -64
- package/dist/tile-grid.js +63 -30
- package/dist/track-width.d.ts +1 -2
- package/dist/zoom.d.ts +9 -9
- package/docs/SPEC.md +33 -32
- package/editor/vscode.html-custom-data.json +5 -5
- package/editor/web-types.json +8 -8
- package/package.json +1 -1
|
@@ -4,37 +4,42 @@ import { ScaleController as n, effectiveScale as r, snapSys as i, sysLength as a
|
|
|
4
4
|
import s from "../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.js";
|
|
5
5
|
import { PlacementController as c, VfPositioned as l, placementIn as u, warnMovableContract as d } from "../position.js";
|
|
6
6
|
import { vfBase as f } from "../styles/recipes/host.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
7
|
+
import { RepeatTileController as p, patternOverride as m, tileGrid as h, vfTileGrid as g } from "../tile-grid.js";
|
|
8
|
+
import { DOTS as _, DOT_SPAN as v, vfDots as y, vfStripes as b } from "../styles/recipes/pattern.js";
|
|
9
|
+
import { vfStrokeDecls as x, vfStrokeInset as S } from "../styles/recipes/stroke.js";
|
|
10
|
+
import { vfChromeFrame as C } from "../styles/recipes/surface.js";
|
|
11
|
+
import { vfRule as w } from "../styles/recipes/rule.js";
|
|
12
|
+
import { vfTitleBar as T, vfWindowWidgets as E } from "../styles/recipes/title-bar.js";
|
|
13
|
+
import { vfFocus as D } from "../styles/recipes/focus.js";
|
|
14
|
+
import { GridSnapController as O } from "../grid-snap.js";
|
|
15
|
+
import { DocumentListenersController as k } from "../document-listeners.js";
|
|
16
|
+
import { VfSized as A } from "../size.js";
|
|
17
|
+
import { DragController as j } from "../drag.js";
|
|
18
|
+
import { TitleCenterController as M, chromeTitleBar as N, closeBox as P, widgetLabel as F, zoomBox as I } from "../chrome.js";
|
|
19
|
+
import { prefersReducedMotion as L, windowRectFraction as R } from "../motion.js";
|
|
20
|
+
import { paintSelectionRect as z, penPhase as B, xorPenCanvas as V } from "../open-art.js";
|
|
20
21
|
import "./vf-scroll-area.js";
|
|
21
|
-
import { LitElement as
|
|
22
|
-
import { property as
|
|
22
|
+
import { LitElement as H, css as U, html as W, nothing as G } from "lit";
|
|
23
|
+
import { property as K, query as q, state as J } from "lit/decorators.js";
|
|
23
24
|
//#region src/components/vf-window.ts
|
|
24
|
-
var
|
|
25
|
-
function
|
|
25
|
+
var Y = 80, X = 54;
|
|
26
|
+
function Z(e, t, n) {
|
|
26
27
|
let r = Math.max(t, e);
|
|
27
28
|
return n == null ? r : Math.min(n, r);
|
|
28
29
|
}
|
|
29
|
-
var
|
|
30
|
+
var Q = 24, $ = class extends A(l(H)) {
|
|
30
31
|
constructor(...e) {
|
|
31
|
-
super(...e), this.heading = "", this.active = !0, this.closable = !0, this.zoomable = !1, this.movable = !1, this.outlineDrag = !1, this.resizable = !1, this._hasHeader = !1, this._hasStatus = !1, this.scale = new n(this), this.gridSnap = new
|
|
32
|
+
super(...e), this.heading = "", this.active = !0, this.closable = !0, this.zoomable = !1, this.movable = !1, this.outlineDrag = !1, this.resizable = !1, this._hasHeader = !1, this._hasStatus = !1, this.scale = new n(this), this.gridSnap = new O(this), this.titleCenter = new M(this), this._dotsPattern = "", this.#e = new p(this, {
|
|
33
|
+
getBox: () => this.renderRoot?.querySelector(".vf-dots"),
|
|
34
|
+
getArt: () => this.variant === "utility" && !this._dotsPattern ? _ : null,
|
|
35
|
+
property: "--_vf-dots-tile"
|
|
36
|
+
}), this.#t = (e, t, n) => {
|
|
32
37
|
let r = o(this.offsetWidth, this);
|
|
33
38
|
return {
|
|
34
|
-
x: Math.min(Math.max(e,
|
|
35
|
-
y: Math.min(Math.max(t, 0), Math.max(0, n.height -
|
|
39
|
+
x: Math.min(Math.max(e, Q - r), n.width - Q),
|
|
40
|
+
y: Math.min(Math.max(t, 0), Math.max(0, n.height - Q))
|
|
36
41
|
};
|
|
37
|
-
}, this._placement = new c(this, (e, t, n) => this.#t(e, t, n)), this._drag = new
|
|
42
|
+
}, this._placement = new c(this, (e, t, n) => this.#t(e, t, n)), this._drag = new j(this, {
|
|
38
43
|
onDragStart: (e) => {
|
|
39
44
|
if (!this.movable || e.button !== 0 || e.composedPath().some((e) => e instanceof HTMLElement && e.classList.contains("box"))) return null;
|
|
40
45
|
this.#S();
|
|
@@ -47,7 +52,7 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
47
52
|
onDragEnd: (e, t) => {
|
|
48
53
|
this.#y(t);
|
|
49
54
|
}
|
|
50
|
-
}), this._resizeState = null, this.#n = this.attachInternals(), this.#r = null, this.#i = new
|
|
55
|
+
}), this._resizeState = null, this.#n = this.attachInternals(), this.#r = null, this.#i = new k(this, () => [[
|
|
51
56
|
document,
|
|
52
57
|
"pointerdown",
|
|
53
58
|
this.#a,
|
|
@@ -61,7 +66,7 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
61
66
|
this.#s("finish");
|
|
62
67
|
}, this.#o = (e) => {
|
|
63
68
|
e.key !== "Escape" || !this.#r || (e.preventDefault(), e.stopPropagation(), this.#s("finish"));
|
|
64
|
-
}, this.#f = null, this.#p = new
|
|
69
|
+
}, this.#f = null, this.#p = new k(this, () => [[
|
|
65
70
|
document,
|
|
66
71
|
"keydown",
|
|
67
72
|
this.#m,
|
|
@@ -73,15 +78,15 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
73
78
|
static {
|
|
74
79
|
this.styles = [
|
|
75
80
|
f,
|
|
76
|
-
|
|
81
|
+
b,
|
|
82
|
+
y,
|
|
77
83
|
g,
|
|
84
|
+
D,
|
|
85
|
+
C,
|
|
86
|
+
w,
|
|
87
|
+
T,
|
|
78
88
|
E,
|
|
79
|
-
|
|
80
|
-
v,
|
|
81
|
-
y,
|
|
82
|
-
b,
|
|
83
|
-
x,
|
|
84
|
-
H`
|
|
89
|
+
U`
|
|
85
90
|
:host {
|
|
86
91
|
display: block;
|
|
87
92
|
position: relative;
|
|
@@ -143,12 +148,12 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
143
148
|
a focused widget out of the tree, so focus can't be dropped to
|
|
144
149
|
<body> by a click on another window. */
|
|
145
150
|
:host(:not([active])) .box {
|
|
146
|
-
|
|
151
|
+
--_vf-stroke-ink: transparent;
|
|
147
152
|
background-color: transparent;
|
|
148
153
|
box-shadow: none;
|
|
149
154
|
}
|
|
150
155
|
:host(:not([active])) .zoom::after {
|
|
151
|
-
|
|
156
|
+
--_vf-stroke-ink: transparent;
|
|
152
157
|
}
|
|
153
158
|
|
|
154
159
|
/* --- Utility (windoid) variant --------------------------------- */
|
|
@@ -191,7 +196,7 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
191
196
|
a white (invisible, over the patch ring) borderline — rather than the
|
|
192
197
|
big bar's 9×9 sunburst, which cannot land whole on a 5×5 interior. */
|
|
193
198
|
:host([variant='utility']) .box:active {
|
|
194
|
-
|
|
199
|
+
--_vf-stroke-ink: var(--vf-white, #ffffff);
|
|
195
200
|
background-color: var(--vf-black, #000000);
|
|
196
201
|
background-image: none;
|
|
197
202
|
}
|
|
@@ -268,11 +273,19 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
268
273
|
vertical rail's arrows begin under it. Takes no space until the slot
|
|
269
274
|
is populated. Clipped like the body; a drop-open panel still escapes
|
|
270
275
|
(see the body's note). A div with a class, never a <header>: that
|
|
271
|
-
element maps to a banner landmark (see render()).
|
|
276
|
+
element maps to a banner landmark (see render()).
|
|
277
|
+
|
|
278
|
+
The rule is a stroke, so the header's own box runs under it: the
|
|
279
|
+
slot is the box content lays out, places and clips in, above the
|
|
280
|
+
rule. */
|
|
272
281
|
.header {
|
|
273
|
-
position: relative;
|
|
274
282
|
flex: none;
|
|
275
283
|
background: var(--vf-white, #ffffff);
|
|
284
|
+
}
|
|
285
|
+
.header > slot {
|
|
286
|
+
display: block;
|
|
287
|
+
position: relative;
|
|
288
|
+
height: 100%;
|
|
276
289
|
overflow: hidden;
|
|
277
290
|
}
|
|
278
291
|
.header.empty {
|
|
@@ -292,7 +305,6 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
292
305
|
.status {
|
|
293
306
|
flex: none;
|
|
294
307
|
display: flex;
|
|
295
|
-
align-items: center;
|
|
296
308
|
height: calc(var(--vf-scale, 1) * var(--vf-status-bar-height, 15px));
|
|
297
309
|
/* The rule is vfRule's vf-rule-top on the element. */
|
|
298
310
|
background: var(--vf-white, #ffffff);
|
|
@@ -301,6 +313,16 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
301
313
|
white-space: nowrap;
|
|
302
314
|
overflow: hidden;
|
|
303
315
|
}
|
|
316
|
+
/* The rule is a stroke, so the strip's own box runs under it: the slot
|
|
317
|
+
centers the content in the 14px below the rule and clips it there.
|
|
318
|
+
Sideways it still runs to the strip's edges, as before. */
|
|
319
|
+
.status > slot {
|
|
320
|
+
display: flex;
|
|
321
|
+
align-items: center;
|
|
322
|
+
flex: 1 1 auto;
|
|
323
|
+
min-width: 0;
|
|
324
|
+
overflow-y: clip;
|
|
325
|
+
}
|
|
304
326
|
/* Clear the grow box: its 15px cell plus the strip's own 6px inset. */
|
|
305
327
|
:host([resizable]) .status {
|
|
306
328
|
padding-inline-end: calc(var(--vf-scale, 1) * 21px);
|
|
@@ -310,18 +332,20 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
310
332
|
}
|
|
311
333
|
|
|
312
334
|
/* --- Grow box --------------------------------------------------- */
|
|
335
|
+
/* Flush inside the frame's stroke, which is padding (vfChromeFrame);
|
|
336
|
+
the two nested squares place against the box the same way, the
|
|
337
|
+
lower-right one clear of its top/left stroke. */
|
|
313
338
|
.grow {
|
|
314
339
|
position: absolute;
|
|
315
|
-
right: 0;
|
|
316
|
-
bottom: 0;
|
|
340
|
+
right: ${S(0)};
|
|
341
|
+
bottom: ${S(0)};
|
|
317
342
|
z-index: 1;
|
|
318
343
|
width: calc(var(--vf-scale, 1) * 15px);
|
|
319
344
|
height: calc(var(--vf-scale, 1) * 15px);
|
|
320
|
-
border-top: calc(var(--vf-scale, 1) * 1px) solid var(--vf-black, #000000);
|
|
321
|
-
border-left: calc(var(--vf-scale, 1) * 1px) solid var(--vf-black, #000000);
|
|
322
345
|
background: var(--vf-white, #ffffff);
|
|
323
346
|
touch-action: none;
|
|
324
347
|
cursor: var(--vf-cursor, default);
|
|
348
|
+
${x({ edges: ["top", "left"] })}
|
|
325
349
|
}
|
|
326
350
|
.grow::before {
|
|
327
351
|
content: '';
|
|
@@ -330,17 +354,17 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
330
354
|
bottom: calc(var(--vf-scale, 1) * 1px);
|
|
331
355
|
width: calc(var(--vf-scale, 1) * 9px);
|
|
332
356
|
height: calc(var(--vf-scale, 1) * 9px);
|
|
333
|
-
|
|
357
|
+
${x()}
|
|
334
358
|
}
|
|
335
359
|
.grow::after {
|
|
336
360
|
content: '';
|
|
337
361
|
position: absolute;
|
|
338
|
-
top:
|
|
339
|
-
left:
|
|
362
|
+
top: ${S(2)};
|
|
363
|
+
left: ${S(2)};
|
|
340
364
|
width: calc(var(--vf-scale, 1) * 7px);
|
|
341
365
|
height: calc(var(--vf-scale, 1) * 7px);
|
|
342
|
-
border: calc(var(--vf-scale, 1) * 1px) solid var(--vf-black, #000000);
|
|
343
366
|
background: var(--vf-white, #ffffff);
|
|
367
|
+
${x()}
|
|
344
368
|
}
|
|
345
369
|
/* Inactive window: the size box empties with the scroll rails (the same
|
|
346
370
|
HIG no-interactive-UX treatment ScrollStateController drives for the
|
|
@@ -354,21 +378,16 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
354
378
|
}
|
|
355
379
|
#e;
|
|
356
380
|
willUpdate(e) {
|
|
357
|
-
super.willUpdate(e), this.variant === "utility" && (this._dotsPattern =
|
|
381
|
+
super.willUpdate(e), this.variant === "utility" && (this._dotsPattern = m(this, "--vf-dots-pattern"));
|
|
358
382
|
}
|
|
359
383
|
_dotsTexture() {
|
|
360
|
-
if (this.width == null) return;
|
|
384
|
+
if (!this._dotsPattern || this.width == null) return;
|
|
361
385
|
let e = Math.max(1, this.width - 2);
|
|
362
|
-
|
|
363
|
-
cols: Math.ceil(e /
|
|
386
|
+
return h({
|
|
387
|
+
cols: Math.ceil(e / v),
|
|
364
388
|
rows: 1,
|
|
365
|
-
tile:
|
|
389
|
+
tile: v
|
|
366
390
|
});
|
|
367
|
-
let t = Math.ceil((e + p) / h) * h, n = Q + p;
|
|
368
|
-
return U`<div
|
|
369
|
-
class="vf-tile-raster"
|
|
370
|
-
style="width:${a(t)};height:${a(n)};background-image:${this.#e.for(p, p, m, t, n)}"
|
|
371
|
-
></div>`;
|
|
372
391
|
}
|
|
373
392
|
#t;
|
|
374
393
|
placementAt(e, t, n) {
|
|
@@ -381,7 +400,7 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
381
400
|
async show(e = {}) {
|
|
382
401
|
this.#s("finish"), this.hidden = !1;
|
|
383
402
|
let t = e.from;
|
|
384
|
-
if (!t ||
|
|
403
|
+
if (!t || L()) return !1;
|
|
385
404
|
let n = {
|
|
386
405
|
closing: !1,
|
|
387
406
|
animations: []
|
|
@@ -397,7 +416,7 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
397
416
|
async hide(e = {}) {
|
|
398
417
|
let t = this.#r?.closing === !1, n = !this.hidden && !t;
|
|
399
418
|
this.#s(t ? "cancel" : "finish");
|
|
400
|
-
let r = e.to, i = r && n && this.isConnected && !
|
|
419
|
+
let r = e.to, i = r && n && this.isConnected && !L() ? this.#u(r, this.getBoundingClientRect(), !0) : null;
|
|
401
420
|
if (this.hidden = !0, !i) return !1;
|
|
402
421
|
let a = {
|
|
403
422
|
closing: !0,
|
|
@@ -440,8 +459,8 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
440
459
|
animations: []
|
|
441
460
|
};
|
|
442
461
|
for (let e = 0; e < 14; e++) {
|
|
443
|
-
let t =
|
|
444
|
-
m.position = "absolute", m.left = a(o), m.top = a(s), m.width = a(c), m.height = a(f), m.visibility = "hidden",
|
|
462
|
+
let t = R(e), r = (e, n) => e + Math.trunc((n - e) * t), o = r(l.left, u.left), s = r(l.top, u.top), c = Math.max(1, r(l.right, u.right) - o), f = Math.max(1, r(l.bottom, u.bottom) - s), p = V("window-rect"), m = p.style;
|
|
463
|
+
m.position = "absolute", m.left = a(o), m.top = a(s), m.width = a(c), m.height = a(f), m.visibility = "hidden", z(p, c, f, B(o, s)), i.append(p), d.canvases.push(p);
|
|
445
464
|
let h = n ? 13 - e : e;
|
|
446
465
|
d.animations.push(p.animate([{ visibility: "visible" }, { visibility: "visible" }], {
|
|
447
466
|
delay: h * 17,
|
|
@@ -476,13 +495,13 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
476
495
|
#_(e, t, n) {
|
|
477
496
|
let r = e.base.x + t, i = e.base.y + n;
|
|
478
497
|
e.canvas.style.left = a(r), e.canvas.style.top = a(i);
|
|
479
|
-
let o =
|
|
480
|
-
o !== e.phase && (e.phase = o,
|
|
498
|
+
let o = B(r, i);
|
|
499
|
+
o !== e.phase && (e.phase = o, z(e.canvas, e.width, e.height, o));
|
|
481
500
|
}
|
|
482
501
|
#v(e) {
|
|
483
502
|
let t = this.#d();
|
|
484
503
|
if (!t) return null;
|
|
485
|
-
let n = r(this), i = t.getBoundingClientRect(), o = Math.max(1, Math.round(e.width / n)), s = Math.max(1, Math.round(e.height / n)), c =
|
|
504
|
+
let n = r(this), i = t.getBoundingClientRect(), o = Math.max(1, Math.round(e.width / n)), s = Math.max(1, Math.round(e.height / n)), c = V("drag-outline"), l = c.style;
|
|
486
505
|
return l.position = "absolute", l.width = a(o), l.height = a(s), t.append(c), {
|
|
487
506
|
canvas: c,
|
|
488
507
|
base: {
|
|
@@ -555,7 +574,7 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
555
574
|
_onGrowPointerMove(e) {
|
|
556
575
|
let t = this._resizeState;
|
|
557
576
|
if (!t || e.pointerId !== t.pointerId) return;
|
|
558
|
-
let n =
|
|
577
|
+
let n = Z(i(t.baseWidth + o(e.clientX - t.startX, this), this), this.minWidth ?? Y, this.maxWidth), r = Z(i(t.baseHeight + o(e.clientY - t.startY, this), this), this.minHeight ?? X, this.maxHeight);
|
|
559
578
|
(n !== this.width || r !== this.height) && (t.emitPending = !0, t.resized = !0), this.width = n, this.height = r;
|
|
560
579
|
}
|
|
561
580
|
_onGrowPointerEnd(t) {
|
|
@@ -570,42 +589,42 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
570
589
|
});
|
|
571
590
|
}
|
|
572
591
|
render() {
|
|
573
|
-
return
|
|
592
|
+
return W`
|
|
574
593
|
<div
|
|
575
594
|
class="vf-frame vf-snap"
|
|
576
595
|
part="frame"
|
|
577
596
|
role="group"
|
|
578
|
-
aria-labelledby=${this.heading ? "title" :
|
|
597
|
+
aria-labelledby=${this.heading ? "title" : G}
|
|
579
598
|
>
|
|
580
|
-
${
|
|
581
|
-
${this.closable ?
|
|
599
|
+
${N(this._drag, W`
|
|
600
|
+
${this.closable ? P(F("Close", this.heading), this._onCloseClick) : G}
|
|
582
601
|
<span class="vf-title" part="title" id="title">${this.heading}</span>
|
|
583
|
-
${this.zoomable ? F(
|
|
584
|
-
`, this.variant === "utility" ? "vf-dots" : "vf-stripes", this.variant === "utility" ? this._dotsTexture() : void 0)}
|
|
602
|
+
${this.zoomable ? I(F("Zoom", this.heading), this._onZoomClick) : G}
|
|
603
|
+
`, this.variant === "utility" ? this._dotsPattern ? "vf-dots vf-dots-token" : "vf-dots" : "vf-stripes", this.variant === "utility" ? this._dotsTexture() : void 0)}
|
|
585
604
|
<div
|
|
586
605
|
class="header vf-rule-bottom ${this._hasHeader ? "" : "empty"}"
|
|
587
606
|
part="header"
|
|
588
|
-
style=${this.headerHeight == null ?
|
|
607
|
+
style=${this.headerHeight == null ? G : `height:${a(this.headerHeight)}`}
|
|
589
608
|
>
|
|
590
609
|
<slot name="header" @slotchange=${this._onHeaderSlotChange}></slot>
|
|
591
610
|
</div>
|
|
592
611
|
<div class="body" part="body">
|
|
593
|
-
${this.scrollbars ?
|
|
612
|
+
${this.scrollbars ? W`
|
|
594
613
|
<vf-scroll-area
|
|
595
614
|
class="edge-scroll"
|
|
596
615
|
axis=${this.scrollbars}
|
|
597
616
|
?corner=${this.resizable && !this._hasStatus}
|
|
598
|
-
label=${this.heading ||
|
|
617
|
+
label=${this.heading || G}
|
|
599
618
|
exportparts="viewport"
|
|
600
619
|
>
|
|
601
620
|
<slot></slot>
|
|
602
621
|
</vf-scroll-area>
|
|
603
|
-
` :
|
|
622
|
+
` : W`<slot></slot>`}
|
|
604
623
|
</div>
|
|
605
624
|
<div class="status vf-rule-top ${this._hasStatus ? "" : "empty"}" part="status-bar">
|
|
606
625
|
<slot name="status" @slotchange=${this._onStatusSlotChange}></slot>
|
|
607
626
|
</div>
|
|
608
|
-
${this.resizable ?
|
|
627
|
+
${this.resizable ? W`
|
|
609
628
|
<div
|
|
610
629
|
class="grow"
|
|
611
630
|
part="grow-box"
|
|
@@ -615,45 +634,45 @@ var Z = 24, Q = 8, $ = class extends k(l(V)) {
|
|
|
615
634
|
@pointercancel=${this._onGrowPointerEnd}
|
|
616
635
|
@lostpointercapture=${this._onGrowPointerEnd}
|
|
617
636
|
></div>
|
|
618
|
-
` :
|
|
637
|
+
` : G}
|
|
619
638
|
</div>
|
|
620
639
|
`;
|
|
621
640
|
}
|
|
622
641
|
};
|
|
623
|
-
s([
|
|
642
|
+
s([K({ reflect: !0 })], $.prototype, "variant", void 0), s([K()], $.prototype, "heading", void 0), s([K({
|
|
624
643
|
type: Boolean,
|
|
625
644
|
reflect: !0
|
|
626
|
-
})], $.prototype, "active", void 0), s([
|
|
645
|
+
})], $.prototype, "active", void 0), s([K({
|
|
627
646
|
type: Boolean,
|
|
628
647
|
reflect: !0
|
|
629
|
-
})], $.prototype, "closable", void 0), s([
|
|
648
|
+
})], $.prototype, "closable", void 0), s([K({
|
|
630
649
|
type: Boolean,
|
|
631
650
|
reflect: !0
|
|
632
|
-
})], $.prototype, "zoomable", void 0), s([
|
|
651
|
+
})], $.prototype, "zoomable", void 0), s([K({
|
|
633
652
|
type: Boolean,
|
|
634
653
|
reflect: !0
|
|
635
|
-
})], $.prototype, "movable", void 0), s([
|
|
654
|
+
})], $.prototype, "movable", void 0), s([K({
|
|
636
655
|
type: Boolean,
|
|
637
656
|
reflect: !0,
|
|
638
657
|
attribute: "outline-drag"
|
|
639
|
-
})], $.prototype, "outlineDrag", void 0), s([
|
|
658
|
+
})], $.prototype, "outlineDrag", void 0), s([K({
|
|
640
659
|
type: Boolean,
|
|
641
660
|
reflect: !0
|
|
642
|
-
})], $.prototype, "resizable", void 0), s([
|
|
661
|
+
})], $.prototype, "resizable", void 0), s([K({
|
|
643
662
|
type: Number,
|
|
644
663
|
attribute: "min-width"
|
|
645
|
-
})], $.prototype, "minWidth", void 0), s([
|
|
664
|
+
})], $.prototype, "minWidth", void 0), s([K({
|
|
646
665
|
type: Number,
|
|
647
666
|
attribute: "min-height"
|
|
648
|
-
})], $.prototype, "minHeight", void 0), s([
|
|
667
|
+
})], $.prototype, "minHeight", void 0), s([K({
|
|
649
668
|
type: Number,
|
|
650
669
|
attribute: "max-width"
|
|
651
|
-
})], $.prototype, "maxWidth", void 0), s([
|
|
670
|
+
})], $.prototype, "maxWidth", void 0), s([K({
|
|
652
671
|
type: Number,
|
|
653
672
|
attribute: "max-height"
|
|
654
|
-
})], $.prototype, "maxHeight", void 0), s([
|
|
673
|
+
})], $.prototype, "maxHeight", void 0), s([K({ reflect: !0 })], $.prototype, "scrollbars", void 0), s([K({
|
|
655
674
|
type: Number,
|
|
656
675
|
attribute: "header-height"
|
|
657
|
-
})], $.prototype, "headerHeight", void 0), s([
|
|
676
|
+
})], $.prototype, "headerHeight", void 0), s([J()], $.prototype, "_hasHeader", void 0), s([J()], $.prototype, "_hasStatus", void 0), s([q(".body")], $.prototype, "body", void 0), s([q("vf-scroll-area")], $.prototype, "scrollArea", void 0), $ = s([t("vf-window")], $);
|
|
658
677
|
//#endregion
|
|
659
678
|
export { $ as VfWindow };
|
package/dist/index.d.ts
CHANGED
|
@@ -92,7 +92,7 @@ export { CURSOR_ARROW, CURSOR_I_BEAM, CURSOR_CROSSHAIR, CURSOR_WAIT, } from './c
|
|
|
92
92
|
* `static styles` to inherit the kit's type, panel frame, window chrome, focus
|
|
93
93
|
* ring, field well and System 7 scroll-rail skin.
|
|
94
94
|
*/
|
|
95
|
-
export { vfBase, vfBodyDecls, vfDisplay, vfDisplayDecls, vfStaticText, vfPanel, vfChromeFrame, vfModalFrame, vfRule, vfTitleBar, vfWindowWidgets, vfHardShadowDecls, vfStripes, vfDots, vfFocus, vfFocusRing, vfFocusUnderline, vfToggle, vfField, vfScrollRail, vfTileSize, vfTileMaskSize, tileImage, tileRaster, tileRects, tileSpan, TILE_LATTICE, } from './styles/base.js';
|
|
95
|
+
export { vfBase, vfBodyDecls, vfDisplay, vfDisplayDecls, vfStaticText, vfPanel, vfChromeFrame, vfModalFrame, vfRule, vfTitleBar, vfWindowWidgets, vfHardShadow, vfHardShadowDecls, vfStripes, vfDots, vfFocus, vfFocusRing, vfFocusUnderline, vfToggle, vfField, vfScrollRail, vfTileSize, vfTileMaskSize, tileImage, tileRaster, tileRects, tileSpan, TILE_LATTICE, } from './styles/base.js';
|
|
96
96
|
export type { TileRect } from './styles/base.js';
|
|
97
97
|
/**
|
|
98
98
|
* The 1px rule's attribute grammar (`vf-container rule="top bottom"`): the
|
|
@@ -102,16 +102,26 @@ export type { TileRect } from './styles/base.js';
|
|
|
102
102
|
export { RULE_EDGES, parseRule, ruleClasses } from './styles/base.js';
|
|
103
103
|
export type { RuleEdge } from './styles/base.js';
|
|
104
104
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* length cannot hold. `vfTileGrid` carries the container and tile rules;
|
|
111
|
-
* `patternOverride` reads whether a token is in play; `TileRasterCache`
|
|
112
|
-
* memoizes the encoded raster against its size.
|
|
105
|
+
* A 1-bit stroke for a box of your own: `vfStrokeDecls()` draws the line as
|
|
106
|
+
* padding plus an inset shadow, the way every kit frame is drawn, because a
|
|
107
|
+
* CSS `border` of `calc(var(--vf-scale, 1) * 1px)` renders thin under Safari's
|
|
108
|
+
* page zoom. `vfStrokeInset()` offsets a child placed against the box, and
|
|
109
|
+
* `vfStrokeShadow()` restates the painted width alone.
|
|
113
110
|
*/
|
|
114
|
-
export {
|
|
111
|
+
export { vfStrokeDecls, vfStrokeInset, vfStrokeShadow } from './styles/base.js';
|
|
112
|
+
export type { VfStrokeOptions } from './styles/base.js';
|
|
113
|
+
/**
|
|
114
|
+
* The exact tiled fill (src/tile-grid.ts): a surface's own art as a CSS
|
|
115
|
+
* repeat of one tile drawn at the display's resolution — `repeatTile()` for
|
|
116
|
+
* the image at `devicePxAt()` a box, `vfRepeatTileSize` for its
|
|
117
|
+
* `background-size`, `RepeatTileController` to keep a box's tile current —
|
|
118
|
+
* and a consumer pattern token as a flat grid of absolutely placed tiles
|
|
119
|
+
* (`tileGrid()`, with `vfTileGrid`'s container and tile rules), each box
|
|
120
|
+
* paint-snapped to the device grid on its own. `patternOverride` reads
|
|
121
|
+
* whether a token is in play.
|
|
122
|
+
*/
|
|
123
|
+
export { vfTileGrid, tileGrid, patternOverride, REPEAT_TILE, vfRepeatTileSize, repeatTile, devicePxAt, RepeatTileController, } from './tile-grid.js';
|
|
124
|
+
export type { TileMotif, RepeatTileOptions } from './tile-grid.js';
|
|
115
125
|
/**
|
|
116
126
|
* The standard pattern set — the 38 MacPaint fills as 8-byte QuickDraw
|
|
117
127
|
* patterns (`PATTERNS`, named; `PATTERN_NAMES` in palette order), the
|
package/dist/index.js
CHANGED
|
@@ -11,65 +11,66 @@ import { vfDisplay as P, vfDisplayDecls as F } from "./styles/recipes/display-fa
|
|
|
11
11
|
import { vfBase as I } from "./styles/recipes/host.js";
|
|
12
12
|
import { vfStaticText as L } from "./styles/recipes/static-text.js";
|
|
13
13
|
import { TILE_LATTICE as R, tileImage as z, tileRaster as B, tileRects as V, tileSpan as H, vfTileMaskSize as U, vfTileSize as W } from "./styles/recipes/tile.js";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import { PatternFillController as
|
|
27
|
-
import { GridSnapController as
|
|
28
|
-
import { DocumentListenersController as
|
|
29
|
-
import { BUTTON_FACE as
|
|
30
|
-
import { VfDesktop as
|
|
31
|
-
import { VfSized as
|
|
32
|
-
import { DragController as
|
|
33
|
-
import { BLINK_FLIPS as
|
|
34
|
-
import { ScrollStateController as
|
|
35
|
-
import { CARET_DOWN as
|
|
36
|
-
import { ScrollRailController as
|
|
37
|
-
import { VfScrollArea as
|
|
38
|
-
import { VfWindow as
|
|
39
|
-
import { VfModalDialog as
|
|
40
|
-
import { VfDialog as
|
|
41
|
-
import { VfSeparator as
|
|
42
|
-
import { VfFormControl as
|
|
43
|
-
import { VfButton as
|
|
44
|
-
import { VfButtonGroup as
|
|
45
|
-
import { VfSwatch as
|
|
46
|
-
import { VfToggleControl as
|
|
47
|
-
import { VfCheckbox as
|
|
48
|
-
import { VfRadio as
|
|
49
|
-
import { VfRadioGroup as
|
|
50
|
-
import { FocusRuleController as
|
|
51
|
-
import { VfTextControlBase as
|
|
52
|
-
import { VfTextField as
|
|
53
|
-
import { VfTextArea as
|
|
54
|
-
import { VfNumberField as
|
|
55
|
-
import { VfOption as
|
|
56
|
-
import { VfSelect as
|
|
57
|
-
import {
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
72
|
-
import {
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
75
|
-
|
|
14
|
+
import { REPEAT_TILE as G, RepeatTileController as K, devicePxAt as q, patternOverride as J, repeatTile as Y, tileGrid as X, vfRepeatTileSize as Z, vfTileGrid as Q } from "./tile-grid.js";
|
|
15
|
+
import { PATTERNS as $, PATTERN_NAMES as ee, PATTERN_SIZE as te, parsePattern as ne, patternHex as re, patternMotif as ie, patternRects as ae } from "./patterns.js";
|
|
16
|
+
import { vfDots as oe, vfStripes as se } from "./styles/recipes/pattern.js";
|
|
17
|
+
import { vfHardShadow as ce, vfHardShadowDecls as le } from "./styles/recipes/shadow.js";
|
|
18
|
+
import { vfStrokeDecls as ue, vfStrokeInset as de, vfStrokeShadow as fe } from "./styles/recipes/stroke.js";
|
|
19
|
+
import { vfChromeFrame as pe, vfModalFrame as me, vfPanel as he } from "./styles/recipes/surface.js";
|
|
20
|
+
import { RULE_EDGES as ge, parseRule as _e, ruleClasses as ve, vfRule as ye } from "./styles/recipes/rule.js";
|
|
21
|
+
import { vfTitleBar as be, vfWindowWidgets as xe } from "./styles/recipes/title-bar.js";
|
|
22
|
+
import { vfFocus as Se, vfFocusRing as Ce, vfFocusUnderline as we } from "./styles/recipes/focus.js";
|
|
23
|
+
import { vfToggle as Te } from "./styles/recipes/toggle.js";
|
|
24
|
+
import { vfField as Ee } from "./styles/recipes/field.js";
|
|
25
|
+
import { vfScrollRail as De } from "./styles/recipes/scroll-rail.js";
|
|
26
|
+
import { PatternFillController as Oe, vfPatternFill as ke } from "./pattern-fill.js";
|
|
27
|
+
import { GridSnapController as Ae, requestGridSnap as je } from "./grid-snap.js";
|
|
28
|
+
import { DocumentListenersController as Me } from "./document-listeners.js";
|
|
29
|
+
import { BUTTON_FACE as Ne, BUTTON_FRAME as Pe, RING_FRAME as Fe, RING_HOLE as Ie, RING_INSET as Le, SCREEN_CORNER as Re, steppedCornerClip as ze, steppedRectClip as Be, steppedRingClip as Ve } from "./pixel-frame.js";
|
|
30
|
+
import { VfDesktop as He } from "./components/vf-desktop.js";
|
|
31
|
+
import { VfSized as Ue } from "./size.js";
|
|
32
|
+
import { DragController as We } from "./drag.js";
|
|
33
|
+
import { BLINK_FLIPS as Ge, BLINK_INTERVAL_MS as Ke, DRAG_SLOP_COARSE_PX as qe, DRAG_SLOP_PX as Je, PRESS_HOLD_MS as Ye, RENAME_DELAY_MS as Xe, TAP_PAIR_MS as Ze, TAP_PAIR_SLOP_PX as Qe, WALK_BEAT_MS as $e, WALK_STEP_MS as et, WALK_STEP_PX as tt, WINDOW_RECTS_VISIBLE as nt, WINDOW_RECT_RATIO as rt, WINDOW_RECT_STEPS as it, WINDOW_RECT_STEP_MS as at, dragSlop as ot, prefersReducedMotion as st, runOutlineTravel as ct, runSelectionBlink as lt, windowRectFraction as ut } from "./motion.js";
|
|
34
|
+
import { ScrollStateController as dt } from "./scroll-state.js";
|
|
35
|
+
import { CARET_DOWN as ft, CARET_DOWN_SMALL as pt, CHECKBOX_X as mt, CHECKMARK as ht, RADIO_DOT as gt, RADIO_FACE as _t, RADIO_RING as vt, RADIO_RING_PRESSED as yt, SLIDER_THUMB as bt, SLIDER_THUMB_FACE as xt, STEPPER as St, STEPPER_DOWN_FILL as Ct, STEPPER_UP_FILL as wt, glyphSvg as Tt } from "./glyphs.js";
|
|
36
|
+
import { ScrollRailController as Et, renderScrollRail as Dt } from "./scroll-rail.js";
|
|
37
|
+
import { VfScrollArea as Ot } from "./components/vf-scroll-area.js";
|
|
38
|
+
import { VfWindow as kt } from "./components/vf-window.js";
|
|
39
|
+
import { VfModalDialog as At, modalDialogStyles as jt } from "./modal-dialog.js";
|
|
40
|
+
import { VfDialog as Mt } from "./components/vf-dialog.js";
|
|
41
|
+
import { VfSeparator as Nt } from "./components/vf-separator.js";
|
|
42
|
+
import { VfFormControl as Pt } from "./form-control.js";
|
|
43
|
+
import { VfButton as Ft } from "./components/vf-button.js";
|
|
44
|
+
import { VfButtonGroup as It } from "./components/vf-button-group.js";
|
|
45
|
+
import { VfSwatch as Lt } from "./components/vf-swatch.js";
|
|
46
|
+
import { VfToggleControl as Rt } from "./toggle-control.js";
|
|
47
|
+
import { VfCheckbox as zt } from "./components/vf-checkbox.js";
|
|
48
|
+
import { VfRadio as Bt } from "./components/vf-radio.js";
|
|
49
|
+
import { VfRadioGroup as Vt } from "./components/vf-radio-group.js";
|
|
50
|
+
import { FocusRuleController as Ht, focusModality as Ut, trackFocusModality as Wt } from "./focus-modality.js";
|
|
51
|
+
import { VfTextControlBase as Gt } from "./text-control.js";
|
|
52
|
+
import { VfTextField as Kt } from "./components/vf-text-field.js";
|
|
53
|
+
import { VfTextArea as qt } from "./components/vf-text-area.js";
|
|
54
|
+
import { VfNumberField as Jt } from "./components/vf-number-field.js";
|
|
55
|
+
import { VfOption as Yt } from "./components/vf-option.js";
|
|
56
|
+
import { VfSelect as Xt } from "./components/vf-select.js";
|
|
57
|
+
import { TrackWidthController as Zt } from "./track-width.js";
|
|
58
|
+
import { VfProgressBar as Qt } from "./components/vf-progress-bar.js";
|
|
59
|
+
import { VfSlider as $t } from "./components/vf-slider.js";
|
|
60
|
+
import { VfLabel as en } from "./components/vf-label.js";
|
|
61
|
+
import { VfParagraph as tn } from "./components/vf-paragraph.js";
|
|
62
|
+
import { VfImg as nn } from "./components/vf-img.js";
|
|
63
|
+
import { VfIcon as rn } from "./components/vf-icon.js";
|
|
64
|
+
import { VfIconField as an } from "./components/vf-icon-field.js";
|
|
65
|
+
import { VfMenuBar as on } from "./components/vf-menu-bar.js";
|
|
66
|
+
import { VfMenu as sn } from "./components/vf-menu.js";
|
|
67
|
+
import { VfMenuItem as cn } from "./components/vf-menu-item.js";
|
|
68
|
+
import { VfList as ln } from "./components/vf-list.js";
|
|
69
|
+
import { VfListItem as un } from "./components/vf-list-item.js";
|
|
70
|
+
import { VfFieldset as dn } from "./components/vf-fieldset.js";
|
|
71
|
+
import { VfGrid as fn } from "./components/vf-grid.js";
|
|
72
|
+
import { VfStack as pn } from "./components/vf-stack.js";
|
|
73
|
+
import { VfContainer as mn } from "./components/vf-container.js";
|
|
74
|
+
import { CURSOR_ARROW as hn, CURSOR_CROSSHAIR as gn, CURSOR_I_BEAM as _n, CURSOR_WAIT as vn } from "./cursor-art.js";
|
|
75
|
+
import { applyCursor as yn } from "./cursor.js";
|
|
76
|
+
export { Ge as BLINK_FLIPS, Ke as BLINK_INTERVAL_MS, Ne as BUTTON_FACE, Pe as BUTTON_FRAME, ft as CARET_DOWN, pt as CARET_DOWN_SMALL, mt as CHECKBOX_X, ht as CHECKMARK, r as CLASSIC_DPI, i as CSS_REFERENCE_DPI, hn as CURSOR_ARROW, gn as CURSOR_CROSSHAIR, _n as CURSOR_I_BEAM, vn as CURSOR_WAIT, qe as DRAG_SLOP_COARSE_PX, Je as DRAG_SLOP_PX, Me as DocumentListenersController, We as DragController, Ht as FocusRuleController, Ae as GridSnapController, $ as PATTERNS, ee as PATTERN_NAMES, te as PATTERN_SIZE, D as PIXEL_GRID_METRICS, Ye as PRESS_HOLD_MS, Oe as PatternFillController, T as PlacementController, gt as RADIO_DOT, _t as RADIO_FACE, vt as RADIO_RING, yt as RADIO_RING_PRESSED, Xe as RENAME_DELAY_MS, G as REPEAT_TILE, Fe as RING_FRAME, Ie as RING_HOLE, Le as RING_INSET, ge as RULE_EDGES, K as RepeatTileController, Re as SCREEN_CORNER, bt as SLIDER_THUMB, xt as SLIDER_THUMB_FACE, St as STEPPER, Ct as STEPPER_DOWN_FILL, wt as STEPPER_UP_FILL, a as SYSTEM_PX_IN_CSS_PX, d as ScaleController, Et as ScrollRailController, dt as ScrollStateController, Ze as TAP_PAIR_MS, Qe as TAP_PAIR_SLOP_PX, R as TILE_LATTICE, Zt as TrackWidthController, k as VF_BODY_FAMILY, M as VF_DISPLAY_FAMILY, Ft as VfButton, It as VfButtonGroup, zt as VfCheckbox, mn as VfContainer, He as VfDesktop, Mt as VfDialog, dn as VfFieldset, Pt as VfFormControl, fn as VfGrid, rn as VfIcon, an as VfIconField, nn as VfImg, en as VfLabel, ln as VfList, un as VfListItem, sn as VfMenu, on as VfMenuBar, cn as VfMenuItem, At as VfModalDialog, Jt as VfNumberField, Yt as VfOption, tn as VfParagraph, E as VfPositioned, Qt as VfProgressBar, Bt as VfRadio, Vt as VfRadioGroup, Ot as VfScrollArea, Xt as VfSelect, Nt as VfSeparator, Ue as VfSized, $t as VfSlider, pn as VfStack, Lt as VfSwatch, qt as VfTextArea, Gt as VfTextControlBase, Kt as VfTextField, Rt as VfToggleControl, kt as VfWindow, $e as WALK_BEAT_MS, et as WALK_STEP_MS, tt as WALK_STEP_PX, nt as WINDOW_RECTS_VISIBLE, rt as WINDOW_RECT_RATIO, it as WINDOW_RECT_STEPS, at as WINDOW_RECT_STEP_MS, yn as applyCursor, f as applyScale, t as defineElement, q as devicePxAt, o as devicePxPerSystemPx, ot as dragSlop, p as effectiveScale, e as emit, Ut as focusModality, m as getScale, s as getZoom, Tt as glyphSvg, jt as modalDialogStyles, h as onScaleChange, c as onZoomChange, ne as parsePattern, _e as parseRule, re as patternHex, ie as patternMotif, J as patternOverride, ae as patternRects, st as prefersReducedMotion, A as registerBodyFace, N as registerDisplayFace, O as registerEmbeddedFont, Dt as renderScrollRail, Y as repeatTile, je as requestGridSnap, l as resetZoomBaseline, ve as ruleClasses, ct as runOutlineTravel, lt as runSelectionBlink, g as snapSys, _ as snapToDevicePx, v as snapToSystemPx, ze as steppedCornerClip, Be as steppedRectClip, Ve as steppedRingClip, y as sys, b as sysLength, x as sysLengths, S as systemPxQuantum, X as tileGrid, z as tileImage, B as tileRaster, V as tileRects, H as tileSpan, C as toSys, w as toSysExact, Wt as trackFocusModality, u as truePixelRatio, I as vfBase, j as vfBodyDecls, pe as vfChromeFrame, P as vfDisplay, F as vfDisplayDecls, oe as vfDots, n as vfElement, Ee as vfField, Se as vfFocus, Ce as vfFocusRing, we as vfFocusUnderline, ce as vfHardShadow, le as vfHardShadowDecls, me as vfModalFrame, he as vfPanel, ke as vfPatternFill, Z as vfRepeatTileSize, ye as vfRule, De as vfScrollRail, L as vfStaticText, se as vfStripes, ue as vfStrokeDecls, de as vfStrokeInset, fe as vfStrokeShadow, Q as vfTileGrid, U as vfTileMaskSize, W as vfTileSize, be as vfTitleBar, Te as vfToggle, xe as vfWindowWidgets, ut as windowRectFraction };
|