@zerops/web-components 0.2.2 → 0.4.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.
@@ -0,0 +1,872 @@
1
+ var ce = (n) => {
2
+ throw TypeError(n);
3
+ };
4
+ var Q = (n, e, t) => e.has(n) || ce("Cannot " + t);
5
+ var y = (n, e, t) => (Q(n, e, "read from private field"), t ? t.call(n) : e.get(n)), v = (n, e, t) => e.has(n) ? ce("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(n) : e.set(n, t), w = (n, e, t, s) => (Q(n, e, "write to private field"), s ? s.call(n, t) : e.set(n, t), t), T = (n, e, t) => (Q(n, e, "access private method"), t);
6
+ import { a7 as m, r as ae, bh as Te, aW as xe, aQ as Ae, aX as ye, au as Ie, aw as Y, ax as Ye, az as l, l as k, aM as re, p as we, n as Me, F as oe, bD as U, ar as Fe, as as Ve, at as r, a2 as u, av as i, al as A, bE as Be, bF as $e, bq as Ne, br as qe } from "./chunks/app-CrO8M3t-.js";
7
+ import { i as je, r as Ce, b as Qe, f as z, c as K, s as Ue, d as Je, p as Ke, v as Xe, e as Ze, g as en, h as nn, w as tn, n as Re, j as sn, a as be } from "./chunks/index-RTjd7i0F.js";
8
+ function an(n) {
9
+ return je(n) && "offsetHeight" in n && !("ownerSVGElement" in n);
10
+ }
11
+ const F = /* @__PURE__ */ new WeakMap();
12
+ let V;
13
+ const Oe = (n, e, t) => (s, a) => a && a[0] ? a[0][n + "Size"] : Qe(s) && "getBBox" in s ? s.getBBox()[e] : s[t], rn = /* @__PURE__ */ Oe("inline", "width", "offsetWidth"), on = /* @__PURE__ */ Oe("block", "height", "offsetHeight");
14
+ function ln({ target: n, borderBoxSize: e }) {
15
+ F.get(n)?.forEach((t) => {
16
+ t(n, {
17
+ get width() {
18
+ return rn(n, e);
19
+ },
20
+ get height() {
21
+ return on(n, e);
22
+ }
23
+ });
24
+ });
25
+ }
26
+ function cn(n) {
27
+ n.forEach(ln);
28
+ }
29
+ function dn() {
30
+ typeof ResizeObserver > "u" || (V = new ResizeObserver(cn));
31
+ }
32
+ function pn(n, e) {
33
+ V || dn();
34
+ const t = Ce(n);
35
+ return t.forEach((s) => {
36
+ let a = F.get(s);
37
+ a || (a = /* @__PURE__ */ new Set(), F.set(s, a)), a.add(e), V?.observe(s);
38
+ }), () => {
39
+ t.forEach((s) => {
40
+ const a = F.get(s);
41
+ a?.delete(e), a?.size || V?.unobserve(s);
42
+ });
43
+ };
44
+ }
45
+ const B = /* @__PURE__ */ new Set();
46
+ let C;
47
+ function fn() {
48
+ C = () => {
49
+ const n = {
50
+ get width() {
51
+ return window.innerWidth;
52
+ },
53
+ get height() {
54
+ return window.innerHeight;
55
+ }
56
+ };
57
+ B.forEach((e) => e(n));
58
+ }, window.addEventListener("resize", C);
59
+ }
60
+ function gn(n) {
61
+ return B.add(n), C || fn(), () => {
62
+ B.delete(n), !B.size && typeof C == "function" && (window.removeEventListener("resize", C), C = void 0);
63
+ };
64
+ }
65
+ function un(n, e) {
66
+ return typeof n == "function" ? gn(n) : pn(n, e);
67
+ }
68
+ function Pe(n, e) {
69
+ let t;
70
+ const s = () => {
71
+ const { currentTime: a } = e, c = (a === null ? 0 : a.value) / 100;
72
+ t !== c && n(c), t = c;
73
+ };
74
+ return z.preUpdate(s, !0), () => K(s);
75
+ }
76
+ function $(n) {
77
+ return typeof window > "u" ? !1 : n ? Ue() : Je();
78
+ }
79
+ const _n = 50, de = () => ({
80
+ current: 0,
81
+ offset: [],
82
+ progress: 0,
83
+ scrollLength: 0,
84
+ targetOffset: 0,
85
+ targetLength: 0,
86
+ containerLength: 0,
87
+ velocity: 0
88
+ }), hn = () => ({
89
+ time: 0,
90
+ x: de(),
91
+ y: de()
92
+ }), mn = {
93
+ x: {
94
+ length: "Width",
95
+ position: "Left"
96
+ },
97
+ y: {
98
+ length: "Height",
99
+ position: "Top"
100
+ }
101
+ };
102
+ function pe(n, e, t, s) {
103
+ const a = t[e], { length: o, position: c } = mn[e], f = a.current, g = t.time;
104
+ a.current = Math.abs(n[`scroll${c}`]), a.scrollLength = n[`scroll${o}`] - n[`client${o}`], a.offset.length = 0, a.offset[0] = 0, a.offset[1] = a.scrollLength, a.progress = Ke(0, a.scrollLength, a.current);
105
+ const d = s - g;
106
+ a.velocity = d > _n ? 0 : Xe(a.current - f, d);
107
+ }
108
+ function vn(n, e, t) {
109
+ pe(n, "x", e, t), pe(n, "y", e, t), e.time = t;
110
+ }
111
+ function xn(n, e) {
112
+ const t = { x: 0, y: 0 };
113
+ let s = n;
114
+ for (; s && s !== e; )
115
+ if (an(s))
116
+ t.x += s.offsetLeft, t.y += s.offsetTop, s = s.offsetParent;
117
+ else if (s.tagName === "svg") {
118
+ const a = s.getBoundingClientRect();
119
+ s = s.parentElement;
120
+ const o = s.getBoundingClientRect();
121
+ t.x += a.left - o.left, t.y += a.top - o.top;
122
+ } else if (s instanceof SVGGraphicsElement) {
123
+ const { x: a, y: o } = s.getBBox();
124
+ t.x += a, t.y += o;
125
+ let c = null, f = s.parentNode;
126
+ for (; !c; )
127
+ f.tagName === "svg" && (c = f), f = s.parentNode;
128
+ s = c;
129
+ } else
130
+ break;
131
+ return t;
132
+ }
133
+ const X = {
134
+ start: 0,
135
+ center: 0.5,
136
+ end: 1
137
+ };
138
+ function fe(n, e, t = 0) {
139
+ let s = 0;
140
+ if (n in X && (n = X[n]), typeof n == "string") {
141
+ const a = parseFloat(n);
142
+ n.endsWith("px") ? s = a : n.endsWith("%") ? n = a / 100 : n.endsWith("vw") ? s = a / 100 * document.documentElement.clientWidth : n.endsWith("vh") ? s = a / 100 * document.documentElement.clientHeight : n = a;
143
+ }
144
+ return typeof n == "number" && (s = e * n), t + s;
145
+ }
146
+ const yn = [0, 0];
147
+ function wn(n, e, t, s) {
148
+ let a = Array.isArray(n) ? n : yn, o = 0, c = 0;
149
+ return typeof n == "number" ? a = [n, n] : typeof n == "string" && (n = n.trim(), n.includes(" ") ? a = n.split(" ") : a = [n, X[n] ? n : "0"]), o = fe(a[0], t, s), c = fe(a[1], e), o - c;
150
+ }
151
+ const E = {
152
+ Enter: [
153
+ [0, 1],
154
+ [1, 1]
155
+ ],
156
+ Exit: [
157
+ [0, 0],
158
+ [1, 0]
159
+ ],
160
+ Any: [
161
+ [1, 0],
162
+ [0, 1]
163
+ ],
164
+ All: [
165
+ [0, 0],
166
+ [1, 1]
167
+ ]
168
+ }, Mn = { x: 0, y: 0 };
169
+ function Cn(n) {
170
+ return "getBBox" in n && n.tagName !== "svg" ? n.getBBox() : { width: n.clientWidth, height: n.clientHeight };
171
+ }
172
+ function Rn(n, e, t) {
173
+ const { offset: s = E.All } = t, { target: a = n, axis: o = "y" } = t, c = o === "y" ? "height" : "width", f = a !== n ? xn(a, n) : Mn, g = a === n ? { width: n.scrollWidth, height: n.scrollHeight } : Cn(a), d = {
174
+ width: n.clientWidth,
175
+ height: n.clientHeight
176
+ };
177
+ e[o].offset.length = 0;
178
+ let p = !e[o].interpolate;
179
+ const h = s.length;
180
+ for (let _ = 0; _ < h; _++) {
181
+ const x = wn(s[_], d[c], g[c], f[o]);
182
+ !p && x !== e[o].interpolatorOffsets[_] && (p = !0), e[o].offset[_] = x;
183
+ }
184
+ p && (e[o].interpolate = Ze(e[o].offset, en(s), { clamp: !1 }), e[o].interpolatorOffsets = [...e[o].offset]), e[o].progress = nn(0, 1, e[o].interpolate(e[o].current));
185
+ }
186
+ function bn(n, e = n, t) {
187
+ if (t.x.targetOffset = 0, t.y.targetOffset = 0, e !== n) {
188
+ let s = e;
189
+ for (; s && s !== n; )
190
+ t.x.targetOffset += s.offsetLeft, t.y.targetOffset += s.offsetTop, s = s.offsetParent;
191
+ }
192
+ t.x.targetLength = e === n ? e.scrollWidth : e.clientWidth, t.y.targetLength = e === n ? e.scrollHeight : e.clientHeight, t.x.containerLength = n.clientWidth, t.y.containerLength = n.clientHeight, process.env.NODE_ENV !== "production" && n && e && e !== n && tn(getComputedStyle(n).position !== "static", "Please ensure that the container has a non-static position, like 'relative', 'fixed', or 'absolute' to ensure scroll offset is calculated correctly.");
193
+ }
194
+ function On(n, e, t, s = {}) {
195
+ return {
196
+ measure: (a) => {
197
+ bn(n, s.target, t), vn(n, t, a), (s.offset || s.target) && Rn(n, t, s);
198
+ },
199
+ notify: () => e(t)
200
+ };
201
+ }
202
+ const M = /* @__PURE__ */ new WeakMap(), ge = /* @__PURE__ */ new WeakMap(), J = /* @__PURE__ */ new WeakMap(), ue = /* @__PURE__ */ new WeakMap(), I = /* @__PURE__ */ new WeakMap(), _e = (n) => n === document.scrollingElement ? window : n;
203
+ function Se(n, { container: e = document.scrollingElement, trackContentSize: t = !1, ...s } = {}) {
204
+ if (!e)
205
+ return Re;
206
+ let a = J.get(e);
207
+ a || (a = /* @__PURE__ */ new Set(), J.set(e, a));
208
+ const o = hn(), c = On(e, n, o, s);
209
+ if (a.add(c), !M.has(e)) {
210
+ const g = () => {
211
+ for (const _ of a)
212
+ _.measure(sn.timestamp);
213
+ z.preUpdate(d);
214
+ }, d = () => {
215
+ for (const _ of a)
216
+ _.notify();
217
+ }, p = () => z.read(g);
218
+ M.set(e, p);
219
+ const h = _e(e);
220
+ window.addEventListener("resize", p), e !== document.documentElement && ge.set(e, un(e, p)), h.addEventListener("scroll", p), p();
221
+ }
222
+ if (t && !I.has(e)) {
223
+ const g = M.get(e), d = {
224
+ width: e.scrollWidth,
225
+ height: e.scrollHeight
226
+ };
227
+ ue.set(e, d);
228
+ const p = () => {
229
+ const _ = e.scrollWidth, x = e.scrollHeight;
230
+ (d.width !== _ || d.height !== x) && (g(), d.width = _, d.height = x);
231
+ }, h = z.read(p, !0);
232
+ I.set(e, h);
233
+ }
234
+ const f = M.get(e);
235
+ return z.read(f, !1, !0), () => {
236
+ K(f);
237
+ const g = J.get(e);
238
+ if (!g || (g.delete(c), g.size))
239
+ return;
240
+ const d = M.get(e);
241
+ M.delete(e), d && (_e(e).removeEventListener("scroll", d), ge.get(e)?.(), window.removeEventListener("resize", d));
242
+ const p = I.get(e);
243
+ p && (K(p), I.delete(e)), ue.delete(e);
244
+ };
245
+ }
246
+ const Pn = [
247
+ [E.Enter, "entry"],
248
+ [E.Exit, "exit"],
249
+ [E.Any, "cover"],
250
+ [E.All, "contain"]
251
+ ], he = {
252
+ start: 0,
253
+ end: 1
254
+ };
255
+ function Sn(n) {
256
+ const e = n.trim().split(/\s+/);
257
+ if (e.length !== 2)
258
+ return;
259
+ const t = he[e[0]], s = he[e[1]];
260
+ if (!(t === void 0 || s === void 0))
261
+ return [t, s];
262
+ }
263
+ function zn(n) {
264
+ if (n.length !== 2)
265
+ return;
266
+ const e = [];
267
+ for (const t of n)
268
+ if (Array.isArray(t))
269
+ e.push(t);
270
+ else if (typeof t == "string") {
271
+ const s = Sn(t);
272
+ if (!s)
273
+ return;
274
+ e.push(s);
275
+ } else
276
+ return;
277
+ return e;
278
+ }
279
+ function En(n, e) {
280
+ const t = zn(n);
281
+ if (!t)
282
+ return !1;
283
+ for (let s = 0; s < 2; s++) {
284
+ const a = t[s], o = e[s];
285
+ if (a[0] !== o[0] || a[1] !== o[1])
286
+ return !1;
287
+ }
288
+ return !0;
289
+ }
290
+ function ze(n) {
291
+ if (!n)
292
+ return { rangeStart: "contain 0%", rangeEnd: "contain 100%" };
293
+ for (const [e, t] of Pn)
294
+ if (En(n, e))
295
+ return { rangeStart: `${t} 0%`, rangeEnd: `${t} 100%` };
296
+ }
297
+ const me = /* @__PURE__ */ new Map();
298
+ function ve(n) {
299
+ const e = { value: 0 }, t = Se((s) => {
300
+ e.value = s[n.axis].progress * 100;
301
+ }, n);
302
+ return { currentTime: e, cancel: t };
303
+ }
304
+ function Ee({ source: n, container: e, ...t }) {
305
+ const { axis: s } = t;
306
+ n && (e = n);
307
+ let a = me.get(e);
308
+ a || (a = /* @__PURE__ */ new Map(), me.set(e, a));
309
+ const o = t.target ?? "self";
310
+ let c = a.get(o);
311
+ c || (c = {}, a.set(o, c));
312
+ const f = s + (t.offset ?? []).join(",");
313
+ return c[f] || (t.target && $(t.target) ? ze(t.offset) ? c[f] = new ViewTimeline({
314
+ subject: t.target,
315
+ axis: s
316
+ }) : c[f] = ve({
317
+ container: e,
318
+ ...t
319
+ }) : $() ? c[f] = new ScrollTimeline({
320
+ source: e,
321
+ axis: s
322
+ }) : c[f] = ve({
323
+ container: e,
324
+ ...t
325
+ })), c[f];
326
+ }
327
+ function kn(n, e) {
328
+ const t = Ee(e), s = e.target ? ze(e.offset) : void 0, a = e.target ? $(e.target) && !!s : $();
329
+ return n.attachTimeline({
330
+ timeline: a ? t : void 0,
331
+ ...s && a && {
332
+ rangeStart: s.rangeStart,
333
+ rangeEnd: s.rangeEnd
334
+ },
335
+ observe: (o) => (o.pause(), Pe((c) => {
336
+ o.time = o.iterationDuration * c;
337
+ }, t))
338
+ });
339
+ }
340
+ function Dn(n) {
341
+ return n.length === 2;
342
+ }
343
+ function Gn(n, e) {
344
+ return Dn(n) ? Se((t) => {
345
+ n(t[e.axis].progress, t);
346
+ }, e) : Pe(n, Ee(e));
347
+ }
348
+ function Hn(n, { axis: e = "y", container: t = document.scrollingElement, ...s } = {}) {
349
+ if (!t)
350
+ return Re;
351
+ const a = { axis: e, container: t, ...s };
352
+ return typeof n == "function" ? Gn(n, a) : kn(n, a);
353
+ }
354
+ const Ln = {
355
+ some: 0,
356
+ all: 1
357
+ };
358
+ function ke(n, e, { root: t, margin: s, amount: a = "some" } = {}) {
359
+ const o = Ce(n), c = /* @__PURE__ */ new WeakMap(), f = (d) => {
360
+ d.forEach((p) => {
361
+ const h = c.get(p.target);
362
+ if (p.isIntersecting !== !!h)
363
+ if (p.isIntersecting) {
364
+ const _ = e(p.target, p);
365
+ typeof _ == "function" ? c.set(p.target, _) : g.unobserve(p.target);
366
+ } else typeof h == "function" && (h(p), c.delete(p.target));
367
+ });
368
+ }, g = new IntersectionObserver(f, {
369
+ root: t,
370
+ rootMargin: s,
371
+ threshold: typeof a == "number" ? a : Ln[a]
372
+ });
373
+ return o.forEach((d) => g.observe(d)), () => g.disconnect();
374
+ }
375
+ function Wn(n, e) {
376
+ n & 1 && (xe(0, "span", 5), l(1, "zerops"), ye());
377
+ }
378
+ const R = class R {
379
+ constructor() {
380
+ this.mode = m("mark");
381
+ }
382
+ };
383
+ R.ɵfac = function(t) {
384
+ return new (t || R)();
385
+ }, R.ɵcmp = /* @__PURE__ */ ae({ type: R, selectors: [["zui-logo"]], inputs: { mode: [1, "mode"] }, decls: 6, vars: 1, consts: [["xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 42.27 50.48", 1, "__svg"], ["d", "M20.19.7L3 7.27A4 4 0 0 0 .46 11v16.54L8.36 23v-9.3L21.6 8.62V.44a4 4 0 0 0-1.41.26z", "transform", "translate(-.46 -.44)", 1, "__main"], ["d", "M8.5 37.74l13.1-7.55v-9.12L1.36 32.74a1.82 1.82 0 0 0-.9 1.56v6.11A4 4 0 0 0 3 44.1l17.19 6.57a4 4 0 0 0 1.41.26v-8.18z", "transform", "translate(-.46 -.44)", 1, "__main"], ["d", "M41.9 18.47a1.67 1.67 0 0 0 .84-1.47v-6a4 4 0 0 0-2.54-3.73L23 .7a4 4 0 0 0-1.4-.26v8.18l13 5-13 7.49v9.12z", "transform", "translate(-.46 -.44)", 1, "__secondary"], ["d", "M23 50.67l17.2-6.57a4 4 0 0 0 2.54-3.69V23.7l-7.9 4.56v9.43L21.6 42.75v8.18a4 4 0 0 0 1.4-.26z", "transform", "translate(-.46 -.44)", 1, "__secondary"], [1, "__wordmark"]], template: function(t, s) {
386
+ t & 1 && (Te(), xe(0, "svg", 0), Ae(1, "path", 1)(2, "path", 2)(3, "path", 3)(4, "path", 4), ye(), Ie(5, Wn, 2, 0, "span", 5)), t & 2 && (Y(5), Ye(s.mode() === "full" ? 5 : -1));
387
+ }, styles: [`[_nghost-%COMP%] {
388
+ display: inline-flex;
389
+ align-items: center;
390
+ gap: 4.27px;
391
+ }
392
+
393
+ .__svg[_ngcontent-%COMP%] {
394
+ width: 100%;
395
+ height: 100%;
396
+ }
397
+
398
+ [_nghost-%COMP%]:has(.__wordmark) .__svg[_ngcontent-%COMP%] {
399
+ width: auto;
400
+ }
401
+
402
+ .__main[_ngcontent-%COMP%] {
403
+ fill: var(--mat-sys-primary);
404
+ }
405
+
406
+ .__secondary[_ngcontent-%COMP%] {
407
+ fill: var(--mat-sys-primary);
408
+ }
409
+
410
+ .__wordmark[_ngcontent-%COMP%] {
411
+ font-family: var(--font-family-brand);
412
+ font-weight: 600;
413
+ font-size: 17.32px;
414
+ line-height: 22px;
415
+ color: var(--mat-sys-on-surface);
416
+ }`], changeDetection: 0 });
417
+ let Z = R;
418
+ var D, G, N, De;
419
+ const b = class b {
420
+ constructor() {
421
+ v(this, N);
422
+ v(this, D);
423
+ v(this, G);
424
+ this.scrollRevealY = m(0), this.scrollRevealDelay = m(0), this.scrollRevealDuration = m(0.4), this.scrollRevealMargin = m("-80px"), w(this, D, k(Me)), w(this, G, k(oe)), re(() => T(this, N, De).call(this));
425
+ }
426
+ };
427
+ D = new WeakMap(), G = new WeakMap(), N = new WeakSet(), De = function() {
428
+ const e = y(this, D).nativeElement, t = this.scrollRevealY();
429
+ t && (e.style.transform = `translateY(${t}px)`, e.style.willChange = "transform, opacity");
430
+ let s = !1;
431
+ const a = ke(e, () => {
432
+ if (s)
433
+ return;
434
+ s = !0;
435
+ const o = {
436
+ opacity: [0, 1]
437
+ };
438
+ t && (o.transform = [`translateY(${t}px)`, "translateY(0)"]), be(e, o, {
439
+ duration: this.scrollRevealDuration(),
440
+ delay: this.scrollRevealDelay(),
441
+ ease: [0.4, 0, 0.6, 1]
442
+ }).then(() => {
443
+ e.style.willChange = "auto";
444
+ }).catch(() => {
445
+ }), queueMicrotask(() => a());
446
+ }, { margin: this.scrollRevealMargin() });
447
+ y(this, G).onDestroy(() => a());
448
+ }, b.ɵfac = function(t) {
449
+ return new (t || b)();
450
+ }, b.ɵdir = /* @__PURE__ */ we({ type: b, selectors: [["", "zuiScrollReveal", ""]], hostAttrs: [2, "opacity", "0", "will-change", "opacity"], inputs: { scrollRevealY: [1, "scrollRevealY"], scrollRevealDelay: [1, "scrollRevealDelay"], scrollRevealDuration: [1, "scrollRevealDuration"], scrollRevealMargin: [1, "scrollRevealMargin"] } });
451
+ let ee = b;
452
+ var H, L, q, Ge;
453
+ const O = class O {
454
+ constructor() {
455
+ v(this, q);
456
+ v(this, H);
457
+ v(this, L);
458
+ this.scrollRevealGroupY = m(0), this.scrollRevealGroupStagger = m(0.025), this.scrollRevealGroupDelay = m(0), this.scrollRevealGroupDuration = m(0.3), this.scrollRevealGroupMargin = m("-64px"), this.scrollRevealGroupSelector = m(":scope > *"), w(this, H, k(Me)), w(this, L, k(oe)), re(() => T(this, q, Ge).call(this));
459
+ }
460
+ };
461
+ H = new WeakMap(), L = new WeakMap(), q = new WeakSet(), Ge = function() {
462
+ const e = y(this, H).nativeElement, t = this.scrollRevealGroupY(), s = this.scrollRevealGroupSelector();
463
+ let a = !1;
464
+ const o = (d) => {
465
+ d.dataset.srHidden || (d.style.opacity = "0", t && (d.style.transform = `translateY(${t}px)`), d.style.willChange = "opacity", d.dataset.srHidden = "1");
466
+ };
467
+ e.querySelectorAll(s).forEach((d) => o(d));
468
+ const c = new MutationObserver(() => {
469
+ if (a) {
470
+ c.disconnect();
471
+ return;
472
+ }
473
+ e.querySelectorAll(s).forEach((d) => o(d));
474
+ });
475
+ c.observe(e, { childList: !0 });
476
+ const f = () => {
477
+ if (a)
478
+ return;
479
+ const d = Array.from(e.querySelectorAll(s));
480
+ if (d.length === 0)
481
+ return;
482
+ a = !0, c.disconnect();
483
+ const p = this.scrollRevealGroupStagger(), h = this.scrollRevealGroupDelay(), _ = this.scrollRevealGroupDuration(), x = [0.4, 0, 0.6, 1];
484
+ d.forEach((ie, Le) => {
485
+ const We = h + Le * p, le = { opacity: [0, 1] };
486
+ t && (le.transform = [`translateY(${t}px)`, "translateY(0)"]), be(ie, le, { duration: _, delay: We, ease: x }).then(() => {
487
+ ie.style.willChange = "auto";
488
+ }).catch(() => {
489
+ });
490
+ }), queueMicrotask(() => g());
491
+ }, g = ke(e, () => (f(), () => {
492
+ }), { margin: this.scrollRevealGroupMargin() });
493
+ y(this, L).onDestroy(() => {
494
+ g(), c.disconnect();
495
+ });
496
+ }, O.ɵfac = function(t) {
497
+ return new (t || O)();
498
+ }, O.ɵdir = /* @__PURE__ */ we({ type: O, selectors: [["", "zuiScrollRevealGroup", ""]], inputs: { scrollRevealGroupY: [1, "scrollRevealGroupY"], scrollRevealGroupStagger: [1, "scrollRevealGroupStagger"], scrollRevealGroupDelay: [1, "scrollRevealGroupDelay"], scrollRevealGroupDuration: [1, "scrollRevealGroupDuration"], scrollRevealGroupMargin: [1, "scrollRevealGroupMargin"], scrollRevealGroupSelector: [1, "scrollRevealGroupSelector"] } });
499
+ let ne = O;
500
+ const Tn = ["cardsStage"], An = ["appCard"], In = ["vmCard"];
501
+ var W, j, He;
502
+ const P = class P {
503
+ constructor() {
504
+ v(this, j);
505
+ v(this, W);
506
+ w(this, W, k(oe)), this.cardsStage = U("cardsStage"), this.appCard = U("appCard"), this.vmCard = U("vmCard"), re(() => T(this, j, He).call(this));
507
+ }
508
+ };
509
+ W = new WeakMap(), j = new WeakSet(), He = function() {
510
+ const e = this.cardsStage()?.nativeElement, t = this.appCard()?.nativeElement, s = this.vmCard()?.nativeElement;
511
+ if (!e || !t || !s)
512
+ return;
513
+ const a = window.matchMedia("(min-width: 1100px)");
514
+ let o = null;
515
+ const c = () => {
516
+ o = Hn((d) => {
517
+ const p = (d - 0.5) * 2;
518
+ t.style.translate = `0 ${p * -14}px`, s.style.translate = `0 ${p * 14}px`;
519
+ }, { target: e, offset: ["start end", "end start"] });
520
+ }, f = () => {
521
+ o?.(), o = null, t.style.translate = "", s.style.translate = "";
522
+ }, g = () => a.matches ? c() : f();
523
+ g(), a.addEventListener("change", g), y(this, W).onDestroy(() => {
524
+ f(), a.removeEventListener("change", g);
525
+ });
526
+ }, P.ɵfac = function(t) {
527
+ return new (t || P)();
528
+ }, P.ɵcmp = /* @__PURE__ */ ae({ type: P, selectors: [["zw-containers-cards"]], viewQuery: function(t, s) {
529
+ t & 1 && Be(s.cardsStage, Tn, 5)(s.appCard, An, 5)(s.vmCard, In, 5), t & 2 && $e(3);
530
+ }, decls: 153, vars: 13, consts: [["cardsStage", ""], ["appCard", ""], ["vmCard", ""], ["zuiScrollRevealGroup", "", "scrollRevealGroupMargin", "-80px", "scrollRevealGroupSelector", ".__card", 1, "__cards-stage", 3, "scrollRevealGroupY", "scrollRevealGroupStagger", "scrollRevealGroupDelay", "scrollRevealGroupDuration"], [1, "__glow", "__glow--teal"], [1, "__glow", "__glow--orange"], ["zuiScrollReveal", "", "scrollRevealMargin", "-80px", 1, "__vline", "__vline--1", 3, "scrollRevealY", "scrollRevealDuration", "scrollRevealDelay"], [1, "__vline-rule"], ["zuiScrollReveal", "", "scrollRevealMargin", "-80px", 1, "__vline", "__vline--2", 3, "scrollRevealY", "scrollRevealDuration", "scrollRevealDelay"], ["zuiScrollReveal", "", "scrollRevealMargin", "-80px", 1, "__vline", "__vline--3", 3, "scrollRevealY", "scrollRevealDuration", "scrollRevealDelay"], [1, "__card", "__card--app"], [1, "__card-tech"], ["svgIcon", "docker", 1, "__card-tech-icon"], ["svgIcon", "oci", 1, "__card-tech-icon"], [1, "__card-title"], [1, "__features"], [1, "__feature", "__feature--yes"], [1, "__feature-dot"], [1, "__feature", "__feature--no"], [1, "__card", "__card--system"], [1, "__card-top"], [1, "__card-zerops"], [1, "__card-zerops-mark"], [1, "__card-zerops-name"], [1, "__card-subtitle"], [1, "__terminal"], [1, "__terminal-file"], [1, "__example"], [1, "__example-label"], [1, "__code"], [1, "__yk"], [1, "__ci"], [1, "__ci2"], [1, "__card", "__card--vm"], ["svgIcon", "proxmox", 1, "__card-tech-icon"], ["svgIcon", "linux", 1, "__card-tech-icon"]], template: function(t, s) {
531
+ t & 1 && (r(0, "div", 3, 0), u(2, "div", 4)(3, "div", 5), r(4, "div", 6), u(5, "div", 7), i(), r(6, "div", 8), u(7, "div", 7), i(), r(8, "div", 9), u(9, "div", 7), i(), r(10, "div", 10, 1)(12, "div", 11), u(13, "mat-icon", 12)(14, "mat-icon", 13), i(), r(15, "span", 14), l(16, "App Containers"), i(), r(17, "div", 15)(18, "div", 16), u(19, "span", 17), r(20, "span"), l(21, "Fast startup"), i()(), r(22, "div", 16), u(23, "span", 17), r(24, "span"), l(25, "High density"), i()(), r(26, "div", 18), u(27, "span", 17), r(28, "span"), l(29, "Install packages"), i()(), r(30, "div", 18), u(31, "span", 17), r(32, "span"), l(33, "Multiple processes"), i()(), r(34, "div", 18), u(35, "span", 17), r(36, "span"), l(37, "SSH access"), i()()()(), r(38, "div", 19)(39, "div", 20)(40, "div", 21), u(41, "zui-logo", 22), r(42, "span", 23), l(43, "Zerops"), i()(), r(44, "span", 14), l(45, "System Containers"), i(), r(46, "span", 24), l(47, "Powered by Incus"), i(), r(48, "div", 15)(49, "div", 16), u(50, "span", 17), r(51, "span"), l(52, "Fast startup"), i()(), r(53, "div", 16), u(54, "span", 17), r(55, "span"), l(56, "High density"), i()(), r(57, "div", 16), u(58, "span", 17), r(59, "span"), l(60, "Install packages"), i()(), r(61, "div", 16), u(62, "span", 17), r(63, "span"), l(64, "Multiple processes"), i()(), r(65, "div", 16), u(66, "span", 17), r(67, "span"), l(68, "SSH access"), i()()()(), r(69, "div", 25)(70, "span", 26), l(71, "zerops.yaml"), i(), r(72, "div", 27)(73, "span", 28), l(74, "Install any system package"), i(), r(75, "div", 29)(76, "div")(77, "span", 30), l(78, "prepareCommands"), i(), l(79, ":"), i(), r(80, "div", 31), l(81, "- sudo apt-get i -y ffmpeg"), i()()(), r(82, "div", 27)(83, "span", 28), l(84, "Run multiple processes"), i(), r(85, "div", 29)(86, "div")(87, "span", 30), l(88, "startCommands"), i(), l(89, ":"), i(), r(90, "div", 31), l(91, "- "), r(92, "span", 30), l(93, "name"), i(), l(94, ": api"), i(), r(95, "div", 32)(96, "span", 30), l(97, "command"), i(), l(98, ": npm start"), i(), r(99, "div", 31), l(100, "- "), r(101, "span", 30), l(102, "name"), i(), l(103, ": worker"), i(), r(104, "div", 32)(105, "span", 30), l(106, "command"), i(), l(107, ": npm run worker"), i()()(), r(108, "div", 27)(109, "span", 28), l(110, "Schedule recurring tasks"), i(), r(111, "div", 29)(112, "div")(113, "span", 30), l(114, "crontab"), i(), l(115, ":"), i(), r(116, "div", 31), l(117, "- "), r(118, "span", 30), l(119, "command"), i(), l(120, ": rm -rf /tmp/*"), i(), r(121, "div", 32)(122, "span", 30), l(123, "timing"), i(), l(124, ": 0 0 * * *"), i()()()()(), r(125, "div", 33, 2)(127, "div", 11), u(128, "mat-icon", 34)(129, "mat-icon", 35), i(), r(130, "span", 14), l(131, "Full VMs"), i(), r(132, "div", 15)(133, "div", 18), u(134, "span", 17), r(135, "span"), l(136, "Fast startup"), i()(), r(137, "div", 18), u(138, "span", 17), r(139, "span"), l(140, "High density"), i()(), r(141, "div", 16), u(142, "span", 17), r(143, "span"), l(144, "Install packages"), i()(), r(145, "div", 16), u(146, "span", 17), r(147, "span"), l(148, "Multiple processes"), i()(), r(149, "div", 16), u(150, "span", 17), r(151, "span"), l(152, "SSH access"), i()()()()()), t & 2 && (A("scrollRevealGroupY", 12)("scrollRevealGroupStagger", 0.06)("scrollRevealGroupDelay", 0.1)("scrollRevealGroupDuration", 0.45), Y(4), A("scrollRevealY", 0)("scrollRevealDuration", 0.6)("scrollRevealDelay", 0.15), Y(2), A("scrollRevealY", 0)("scrollRevealDuration", 0.6)("scrollRevealDelay", 0.25), Y(2), A("scrollRevealY", 0)("scrollRevealDuration", 0.6)("scrollRevealDelay", 0.35));
532
+ }, dependencies: [Fe, Ve, Z, ee, ne], styles: [`[_nghost-%COMP%] {
533
+ display: block;
534
+ width: 100%;
535
+ }
536
+
537
+ .__cards-stage[_ngcontent-%COMP%] {
538
+ position: relative;
539
+ min-height: 440px;
540
+ overflow: visible;
541
+ }
542
+ @media (max-width: 649px) {
543
+ .__cards-stage[_ngcontent-%COMP%] {
544
+ display: grid;
545
+ grid-template-columns: 1fr 1fr;
546
+ gap: 12px;
547
+ min-height: auto;
548
+ }
549
+ }
550
+ @media (min-width: 650px) {
551
+ .__cards-stage[_ngcontent-%COMP%] {
552
+ width: 580px;
553
+ margin-left: auto;
554
+ margin-right: auto;
555
+ }
556
+ }
557
+
558
+ .__card[_ngcontent-%COMP%] {
559
+ background: var(--alt-card-bg);
560
+ border-radius: 10px;
561
+ padding: 16px;
562
+ position: absolute;
563
+ display: flex;
564
+ flex-direction: column;
565
+ gap: 12px;
566
+ border: 1px solid light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.06));
567
+ }
568
+ @media (max-width: 649px) {
569
+ .__card[_ngcontent-%COMP%] {
570
+ position: static;
571
+ }
572
+ }
573
+
574
+ .__card--app[_ngcontent-%COMP%],
575
+ .__card--vm[_ngcontent-%COMP%] {
576
+ width: 185px;
577
+ background: color-mix(in srgb, var(--alt-card-bg) 88%, transparent);
578
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.02);
579
+ backdrop-filter: blur(12px);
580
+ will-change: transform;
581
+ }
582
+ @media (max-width: 649px) {
583
+ .__card--app[_ngcontent-%COMP%],
584
+ .__card--vm[_ngcontent-%COMP%] {
585
+ width: auto;
586
+ }
587
+ }
588
+
589
+ .__card--app[_ngcontent-%COMP%] {
590
+ left: 0;
591
+ top: 55px;
592
+ z-index: 1;
593
+ }
594
+ @media (max-width: 649px) {
595
+ .__card--app[_ngcontent-%COMP%] {
596
+ left: auto;
597
+ top: auto;
598
+ }
599
+ }
600
+
601
+ .__card--vm[_ngcontent-%COMP%] {
602
+ left: 395px;
603
+ top: 70px;
604
+ z-index: 1;
605
+ padding-left: 24px;
606
+ }
607
+ @media (max-width: 649px) {
608
+ .__card--vm[_ngcontent-%COMP%] {
609
+ left: auto;
610
+ top: auto;
611
+ }
612
+ }
613
+
614
+ .__card--system[_ngcontent-%COMP%] {
615
+ width: 240px;
616
+ left: 165px;
617
+ top: 0;
618
+ z-index: 3;
619
+ padding: 0;
620
+ overflow: hidden;
621
+ border: 1px solid light-dark(rgba(21, 215, 196, 0.15), rgba(21, 215, 196, 0.12));
622
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 4px 8px rgba(0, 0, 0, 0.04), 0 12px 28px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(21, 215, 196, 0.06);
623
+ }
624
+ @media (max-width: 649px) {
625
+ .__card--system[_ngcontent-%COMP%] {
626
+ width: auto;
627
+ left: auto;
628
+ top: auto;
629
+ grid-column: 1/-1;
630
+ order: -1;
631
+ }
632
+ }
633
+
634
+ .__card-title[_ngcontent-%COMP%] {
635
+ font-family: var(--font-family-brand);
636
+ font-weight: 500;
637
+ font-size: 10px;
638
+ line-height: 12px;
639
+ letter-spacing: 0.09em;
640
+ text-transform: uppercase;
641
+ color: var(--mat-sys-on-surface);
642
+ font-variation-settings: "CRSV" 0, "SHRP" 0, "slnt" 0;
643
+ margin: 0;
644
+ }
645
+
646
+ .__card--system[_ngcontent-%COMP%] .__card-title[_ngcontent-%COMP%] {
647
+ color: var(--alt-card-accent);
648
+ }
649
+
650
+ .__card-tech[_ngcontent-%COMP%] {
651
+ display: flex;
652
+ align-items: center;
653
+ gap: 5px;
654
+ margin-bottom: -4px;
655
+ }
656
+
657
+ .__card-tech-icon[_ngcontent-%COMP%] {
658
+ width: 18px !important;
659
+ height: 18px !important;
660
+ font-size: 18px !important;
661
+ line-height: 18px !important;
662
+ opacity: 0.35;
663
+ }
664
+
665
+ .__card-zerops[_ngcontent-%COMP%] {
666
+ display: flex;
667
+ align-items: center;
668
+ gap: 5px;
669
+ }
670
+
671
+ .__card-zerops-mark[_ngcontent-%COMP%] {
672
+ height: 16px;
673
+ width: auto;
674
+ }
675
+
676
+ .__card-zerops-name[_ngcontent-%COMP%] {
677
+ font-family: var(--font-family-brand);
678
+ font-size: 11px;
679
+ font-weight: 600;
680
+ color: var(--mat-sys-on-surface);
681
+ letter-spacing: 0.02em;
682
+ font-variation-settings: "CRSV" 0, "SHRP" 100;
683
+ }
684
+
685
+ .__card-subtitle[_ngcontent-%COMP%] {
686
+ font-family: var(--font-family-brand);
687
+ font-size: 8px;
688
+ font-weight: 420;
689
+ letter-spacing: 0.04em;
690
+ color: var(--mat-sys-on-surface);
691
+ opacity: 0.3;
692
+ font-variation-settings: "CRSV" 0, "SHRP" 0;
693
+ margin-top: -10px;
694
+ }
695
+
696
+ .__card-top[_ngcontent-%COMP%] {
697
+ padding: 16px 16px 12px;
698
+ display: flex;
699
+ flex-direction: column;
700
+ gap: 12px;
701
+ }
702
+
703
+ .__features[_ngcontent-%COMP%] {
704
+ display: flex;
705
+ flex-direction: column;
706
+ gap: 7px;
707
+ }
708
+
709
+ .__feature[_ngcontent-%COMP%] {
710
+ display: flex;
711
+ align-items: center;
712
+ gap: 8px;
713
+ font-family: var(--font-family-brand);
714
+ font-size: 11.5px;
715
+ font-weight: 380;
716
+ line-height: 1;
717
+ letter-spacing: 0.01em;
718
+ color: var(--mat-sys-on-surface);
719
+ font-variation-settings: "CRSV" 0, "SHRP" 0;
720
+ }
721
+
722
+ .__feature-dot[_ngcontent-%COMP%] {
723
+ width: 6px;
724
+ height: 6px;
725
+ border-radius: 50%;
726
+ flex-shrink: 0;
727
+ }
728
+
729
+ .__feature--yes[_ngcontent-%COMP%] .__feature-dot[_ngcontent-%COMP%] {
730
+ background: var(--alt-card-accent);
731
+ box-shadow: 0 0 6px rgba(21, 215, 196, 0.4);
732
+ }
733
+
734
+ .__feature--no[_ngcontent-%COMP%] {
735
+ opacity: 0.3;
736
+ }
737
+
738
+ .__feature--no[_ngcontent-%COMP%] .__feature-dot[_ngcontent-%COMP%] {
739
+ background: transparent;
740
+ border: 1px solid currentColor;
741
+ }
742
+
743
+ .__terminal[_ngcontent-%COMP%] {
744
+ background: var(--code-block-bg);
745
+ padding: 12px 16px 16px;
746
+ display: flex;
747
+ flex-direction: column;
748
+ gap: 10px;
749
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
750
+ }
751
+
752
+ .__terminal-file[_ngcontent-%COMP%] {
753
+ font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
754
+ font-size: 9px;
755
+ letter-spacing: 0.02em;
756
+ color: rgba(255, 255, 255, 0.25);
757
+ padding-bottom: 2px;
758
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
759
+ }
760
+
761
+ .__example[_ngcontent-%COMP%] {
762
+ display: flex;
763
+ flex-direction: column;
764
+ gap: 5px;
765
+ }
766
+
767
+ .__example-label[_ngcontent-%COMP%] {
768
+ font-family: var(--font-family-brand);
769
+ font-size: 9px;
770
+ font-weight: 500;
771
+ letter-spacing: 0.06em;
772
+ text-transform: uppercase;
773
+ color: rgba(255, 255, 255, 0.4);
774
+ line-height: 1.2;
775
+ font-variation-settings: "CRSV" 0, "SHRP" 100;
776
+ }
777
+
778
+ .__code[_ngcontent-%COMP%] {
779
+ font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
780
+ font-size: 10px;
781
+ line-height: 15px;
782
+ color: #c8c8cd;
783
+ }
784
+
785
+ .__ci[_ngcontent-%COMP%] {
786
+ padding-left: 12px;
787
+ }
788
+
789
+ .__ci2[_ngcontent-%COMP%] {
790
+ padding-left: 24px;
791
+ }
792
+
793
+ .__yk[_ngcontent-%COMP%] {
794
+ color: #6ecab8;
795
+ }
796
+
797
+ .__glow[_ngcontent-%COMP%] {
798
+ position: absolute;
799
+ border-radius: 50%;
800
+ pointer-events: none;
801
+ z-index: 2;
802
+ }
803
+ @media (max-width: 649px) {
804
+ .__glow[_ngcontent-%COMP%] {
805
+ display: none;
806
+ }
807
+ }
808
+
809
+ .__glow--teal[_ngcontent-%COMP%] {
810
+ width: 120px;
811
+ height: 120px;
812
+ background: var(--alt-card-accent);
813
+ filter: blur(120px);
814
+ opacity: 0.5;
815
+ left: 220px;
816
+ top: 180px;
817
+ }
818
+
819
+ .__glow--orange[_ngcontent-%COMP%] {
820
+ width: 80px;
821
+ height: 80px;
822
+ background: #FF8233;
823
+ filter: blur(100px);
824
+ opacity: 0.4;
825
+ left: 300px;
826
+ top: 30px;
827
+ }
828
+
829
+ .__vline[_ngcontent-%COMP%] {
830
+ position: absolute;
831
+ display: flex;
832
+ flex-direction: column;
833
+ align-items: center;
834
+ height: 100%;
835
+ top: 0;
836
+ z-index: 0;
837
+ }
838
+ @media (max-width: 649px) {
839
+ .__vline[_ngcontent-%COMP%] {
840
+ display: none;
841
+ }
842
+ }
843
+
844
+ .__vline--1[_ngcontent-%COMP%] {
845
+ left: 88px;
846
+ }
847
+
848
+ .__vline--2[_ngcontent-%COMP%] {
849
+ left: 285px;
850
+ }
851
+
852
+ .__vline--3[_ngcontent-%COMP%] {
853
+ left: 487px;
854
+ }
855
+
856
+ .__vline-rule[_ngcontent-%COMP%] {
857
+ flex: 1;
858
+ width: 0;
859
+ border-right: 1px solid rgba(0, 0, 0, 0.05);
860
+ }`], changeDetection: 0 });
861
+ let te = P;
862
+ const S = class S {
863
+ };
864
+ S.ɵfac = function(t) {
865
+ return new (t || S)();
866
+ }, S.ɵcmp = /* @__PURE__ */ ae({ type: S, selectors: [["zwe-containers-cards-element"]], decls: 2, vars: 0, consts: [[1, "zerops"]], template: function(t, s) {
867
+ t & 1 && (r(0, "div", 0), u(1, "zw-containers-cards"), i());
868
+ }, dependencies: [te], styles: ["[_nghost-%COMP%] { display: block; }"], changeDetection: 0 });
869
+ let se = S;
870
+ Ne().then((n) => {
871
+ customElements.get("zerops-containers-cards") || customElements.define("zerops-containers-cards", qe(se, { injector: n.injector }));
872
+ });