use-scroll-animate 2.1.0 → 2.2.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 +21 -0
- package/README.md +30 -2
- package/README_ja.md +18 -0
- package/README_zh.md +29 -0
- package/dist/chunks/base-BiTc85p_.cjs +232 -0
- package/dist/chunks/base-BiTc85p_.cjs.map +1 -0
- package/dist/chunks/base-CFtnmfli.js +219 -0
- package/dist/chunks/base-CFtnmfli.js.map +1 -0
- package/dist/components/background.cjs +395 -0
- package/dist/components/background.cjs.map +1 -0
- package/dist/components/background.css +7 -0
- package/dist/components/background.d.cts +132 -0
- package/dist/components/background.d.ts +132 -0
- package/dist/components/background.js +387 -0
- package/dist/components/background.js.map +1 -0
- package/dist/components/feedback.cjs +444 -0
- package/dist/components/feedback.cjs.map +1 -0
- package/dist/components/feedback.css +7 -0
- package/dist/components/feedback.d.cts +170 -0
- package/dist/components/feedback.d.ts +170 -0
- package/dist/components/feedback.js +434 -0
- package/dist/components/feedback.js.map +1 -0
- package/dist/components/interaction.cjs +426 -0
- package/dist/components/interaction.cjs.map +1 -0
- package/dist/components/interaction.css +8 -0
- package/dist/components/interaction.d.cts +142 -0
- package/dist/components/interaction.d.ts +142 -0
- package/dist/components/interaction.js +417 -0
- package/dist/components/interaction.js.map +1 -0
- package/dist/components/reveal.cjs +360 -0
- package/dist/components/reveal.cjs.map +1 -0
- package/dist/components/reveal.css +5 -0
- package/dist/components/reveal.d.cts +132 -0
- package/dist/components/reveal.d.ts +132 -0
- package/dist/components/reveal.js +350 -0
- package/dist/components/reveal.js.map +1 -0
- package/dist/components/text.cjs +528 -0
- package/dist/components/text.cjs.map +1 -0
- package/dist/components/text.css +7 -0
- package/dist/components/text.d.cts +164 -0
- package/dist/components/text.d.ts +164 -0
- package/dist/components/text.js +517 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/transitions.cjs +546 -0
- package/dist/components/transitions.cjs.map +1 -0
- package/dist/components/transitions.css +6 -0
- package/dist/components/transitions.d.cts +180 -0
- package/dist/components/transitions.d.ts +180 -0
- package/dist/components/transitions.js +536 -0
- package/dist/components/transitions.js.map +1 -0
- package/dist/components.cjs +106 -0
- package/dist/components.cjs.map +1 -0
- package/dist/components.css +30 -0
- package/dist/components.d.cts +741 -0
- package/dist/components.d.ts +741 -0
- package/dist/components.js +61 -0
- package/dist/components.js.map +1 -0
- package/dist/components.umd.js +22 -0
- package/dist/components.umd.js.map +1 -0
- package/docs/API.md +2 -0
- package/docs/components.md +155 -0
- package/docs/windows-apps.md +108 -0
- package/package.json +93 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background.js","sources":["../../src/components/background/aurora.ts","../../src/components/background/particles.ts","../../src/components/background/grain.ts","../../src/components/background/marquee.ts","../../src/components/background/acrylic.ts","../../src/components/background/index.ts"],"sourcesContent":["import { defineElement, type UsaElement } from '../base';\nimport css from './aurora.css?raw';\n\n/**\n * `<usa-aurora>` — a slow, drifting aurora / gradient-mesh backdrop behind\n * its content. Soft radial gradients moved with `transform` only (no\n * animated blur), paused while off-screen.\n *\n * Attributes: `colors` (comma-separated, default violet / cyan / pink),\n * `speed` (multiplier, 1), `intensity` (0–1 opacity, 0.7), `paused`.\n * Reduced motion: a still gradient.\n */\nexport type UsaAuroraElement = UsaElement;\n\nexport function defineAurora(tag = 'usa-aurora'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaAurora extends Base {\n static get observedAttributes(): string[] {\n return ['colors', 'speed', 'intensity'];\n }\n\n private _layer: HTMLElement | null = null;\n\n mount(): void {\n if (!this._layer) {\n this._layer = document.createElement('div');\n this._layer.className = 'usa-aurora-layer';\n this._layer.setAttribute('aria-hidden', 'true');\n this._layer.innerHTML = '<i></i><i></i><i></i><i></i>';\n this.prepend(this._layer);\n }\n const colors = this.str('colors', '#7c5cff,#22d3ee,#f472b6,#34d399').split(',').map((c) => c.trim()).filter(Boolean);\n Array.from(this._layer.children).forEach((blob, i) => {\n (blob as HTMLElement).style.setProperty('--c', colors[i % colors.length]);\n });\n const speed = this.num('speed', 1);\n this.style.setProperty('--usa-aurora-speed', `${(18 / Math.max(0.05, speed)).toFixed(2)}s`);\n this.style.setProperty('--usa-aurora-opacity', String(this.num('intensity', 0.7)));\n this.inView((v) => this.toggleAttribute('data-offscreen', !v));\n }\n },\n { id: 'aurora', text: css }\n );\n}\n","import { defineElement, raf, caf, type UsaElement } from '../base';\nimport css from './particles.css?raw';\n\n/**\n * `<usa-particles>` — a canvas of drifting particles, optionally linked by\n * lines when close (a \"constellation\"), that drift away from the pointer.\n * Fills its own box (place it as a background with\n * `position: absolute; inset: 0`, or give it a height).\n *\n * Attributes: `count` (60; scaled down on small boxes), `color`\n * (default `currentColor`), `size` (max radius px, 2.2), `speed` (0.35),\n * `links` (max link distance px, 110; `0` disables), `interactive`,\n * `paused`. Renders only while visible and the tab is shown, at device\n * pixel ratio ≤ 2. Reduced motion: one still frame.\n */\nexport interface UsaParticlesElement extends UsaElement {\n /** Re-seed the particles. */\n reset(): void;\n}\n\ninterface P {\n x: number;\n y: number;\n vx: number;\n vy: number;\n r: number;\n}\n\nexport function defineParticles(tag = 'usa-particles'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaParticles extends Base {\n static get observedAttributes(): string[] {\n return ['count', 'color', 'size', 'speed', 'links', 'interactive', 'paused'];\n }\n\n private _canvas: HTMLCanvasElement | null = null;\n private _ctx: CanvasRenderingContext2D | null = null;\n private _ps: P[] = [];\n private _frame = 0;\n private _w = 0;\n private _h = 0;\n private _visible = false;\n private _mx = -1e4;\n private _color = '#888';\n private _my = -1e4;\n\n mount(): void {\n if (!this._canvas) {\n this._canvas = document.createElement('canvas');\n this._canvas.setAttribute('aria-hidden', 'true');\n this.prepend(this._canvas);\n }\n this._ctx = this._canvas.getContext?.('2d') ?? null;\n if (!this._ctx) return;\n this.resize();\n if (typeof ResizeObserver !== 'undefined') {\n const ro = new ResizeObserver(() => {\n this.resize();\n if (!this._frame) this.draw();\n });\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n this.inView((v) => {\n this._visible = v;\n this.loop();\n });\n this.listen(document, 'visibilitychange', () => this.loop());\n if (this.flag('interactive')) {\n this.listen(window, 'pointermove', (e: PointerEvent) => {\n const r = this.getBoundingClientRect();\n this._mx = e.clientX - r.left;\n this._my = e.clientY - r.top;\n }, { passive: true });\n }\n this.draw();\n }\n\n unmount(): void {\n caf(this._frame);\n this._frame = 0;\n }\n\n reset(): void {\n this._ps = [];\n this.resize();\n this.draw();\n }\n\n private resize(): void {\n const c = this._canvas;\n if (!c || !this._ctx) return;\n const w = this.clientWidth || 300;\n const h = this.clientHeight || 150;\n const dpr = Math.min(2, (typeof devicePixelRatio === 'number' && devicePixelRatio) || 1);\n c.width = Math.round(w * dpr);\n c.height = Math.round(h * dpr);\n this._ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n this._w = w;\n this._h = h;\n this._color = this.getAttribute('color') || (typeof getComputedStyle === 'function' ? getComputedStyle(this).color : '') || '#888';\n const want = Math.round(Math.min(1, (w * h) / (900 * 500)) * Math.max(1, this.num('count', 60))) || 1;\n const speed = this.num('speed', 0.35);\n const size = this.num('size', 2.2);\n while (this._ps.length < want) {\n const a = Math.random() * Math.PI * 2;\n const s = speed * (0.3 + Math.random() * 0.7);\n this._ps.push({ x: Math.random() * w, y: Math.random() * h, vx: Math.cos(a) * s, vy: Math.sin(a) * s, r: 0.6 + Math.random() * (size - 0.6) });\n }\n this._ps.length = want;\n }\n\n private loop(): void {\n const run = this._visible && !this.reduced && !this.flag('paused') && !(typeof document !== 'undefined' && document.hidden);\n if (run && !this._frame) {\n const tick = () => {\n this.step();\n this.draw();\n this._frame = raf(tick);\n };\n this._frame = raf(tick);\n } else if (!run && this._frame) {\n caf(this._frame);\n this._frame = 0;\n }\n }\n\n private step(): void {\n const { _w: w, _h: h } = this;\n for (const p of this._ps) {\n const dx = p.x - this._mx;\n const dy = p.y - this._my;\n const d2 = dx * dx + dy * dy;\n if (d2 < 8100 && d2 > 0.01) {\n const f = (1 - Math.sqrt(d2) / 90) * 0.6;\n p.x += (dx / Math.sqrt(d2)) * f;\n p.y += (dy / Math.sqrt(d2)) * f;\n }\n p.x += p.vx;\n p.y += p.vy;\n if (p.x < -5) p.x = w + 5;\n else if (p.x > w + 5) p.x = -5;\n if (p.y < -5) p.y = h + 5;\n else if (p.y > h + 5) p.y = -5;\n }\n }\n\n private draw(): void {\n const ctx = this._ctx;\n if (!ctx) return;\n const color = this._color;\n ctx.clearRect(0, 0, this._w, this._h);\n ctx.fillStyle = color;\n ctx.strokeStyle = color;\n const ps = this._ps;\n const link = this.num('links', 110);\n if (link > 0) {\n const l2 = link * link;\n ctx.lineWidth = 0.6;\n for (let i = 0; i < ps.length; i++) {\n for (let j = i + 1; j < ps.length; j++) {\n const dx = ps[i].x - ps[j].x;\n const dy = ps[i].y - ps[j].y;\n const d2 = dx * dx + dy * dy;\n if (d2 < l2) {\n ctx.globalAlpha = (1 - d2 / l2) * 0.35;\n ctx.beginPath();\n ctx.moveTo(ps[i].x, ps[i].y);\n ctx.lineTo(ps[j].x, ps[j].y);\n ctx.stroke();\n }\n }\n }\n }\n ctx.globalAlpha = 0.85;\n for (const p of ps) {\n ctx.beginPath();\n ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.globalAlpha = 1;\n }\n },\n { id: 'particles', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './grain.css?raw';\n\n/**\n * `<usa-grain>` — a film-grain / noise overlay on top of its content\n * (SVG `feTurbulence` texture, no images to ship). With `animated`, the\n * grain jitters like film (stepped `transform`, ~12 fps).\n *\n * Attributes: `opacity` (0.12), `animated`, `blend` (`mix-blend-mode`,\n * default `overlay`), `scale` (texture size px, 180). Never intercepts\n * pointer events. Reduced motion: static grain.\n */\nexport type UsaGrainElement = UsaElement;\n\nconst noise = (freq: number) =>\n `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='${freq}' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 1.6 -0.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\")`;\n\nexport function defineGrain(tag = 'usa-grain'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaGrain extends Base {\n static get observedAttributes(): string[] {\n return ['opacity', 'blend', 'scale'];\n }\n\n private _layer: HTMLElement | null = null;\n\n mount(): void {\n if (!this._layer) {\n this._layer = document.createElement('div');\n this._layer.className = 'usa-grain-layer';\n this._layer.setAttribute('aria-hidden', 'true');\n this.append(this._layer);\n }\n const s = this._layer.style;\n s.backgroundImage = noise(0.8);\n s.backgroundSize = `${this.num('scale', 180)}px`;\n s.opacity = String(this.num('opacity', 0.12));\n s.mixBlendMode = this.str('blend', 'overlay');\n }\n },\n { id: 'grain', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './marquee.css?raw';\n\n/**\n * `<usa-marquee>` — an infinite, seamless ticker of its children (logos,\n * testimonials, tags). The content is cloned (clones are `aria-hidden` and\n * `inert`) and the track slides with one WAAPI `transform` animation whose\n * duration follows the measured width, so the speed is constant.\n *\n * Attributes: `speed` (px/s, 50), `direction` (`left` default | `right` |\n * `up` | `down`), `gap` (px, 32), `pause-on-hover`, `fade` (soft edges),\n * `paused`. Pauses off-screen. Reduced motion: no movement; the row\n * becomes scrollable instead.\n */\nexport interface UsaMarqueeElement extends UsaElement {\n pause(): void;\n resume(): void;\n}\n\nexport function defineMarquee(tag = 'usa-marquee'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaMarquee extends Base {\n static get observedAttributes(): string[] {\n return ['speed', 'direction', 'gap', 'paused'];\n }\n\n private _track: HTMLElement | null = null;\n private _anim: Animation | null = null;\n private _hover = false;\n private _visible = true;\n private _size = 0;\n\n private get vertical(): boolean {\n const d = this.str('direction', 'left');\n return d === 'up' || d === 'down';\n }\n\n mount(): void {\n if (!this._track) {\n const track = document.createElement('div');\n track.className = 'usa-marquee-track';\n const group = document.createElement('div');\n group.className = 'usa-marquee-group';\n group.append(...Array.from(this.childNodes));\n track.append(group);\n this.append(track);\n this._track = track;\n }\n this.toggleAttribute('data-vertical', this.vertical);\n this.style.setProperty('--usa-marquee-gap', `${this.num('gap', 32)}px`);\n if (this.reduced) {\n this.setAttribute('data-static', '');\n this.syncClones(1);\n return;\n }\n this.removeAttribute('data-static');\n this.build();\n if (typeof ResizeObserver !== 'undefined') {\n const ro = new ResizeObserver(() => this.build());\n ro.observe(this._track.firstElementChild as Element);\n this.onCleanup(() => ro.disconnect());\n }\n this.inView((v) => {\n this._visible = v;\n this.sync();\n });\n this.listen(this, 'pointerenter', () => ((this._hover = true), this.sync()));\n this.listen(this, 'pointerleave', () => ((this._hover = false), this.sync()));\n this.listen(this, 'focusin', () => ((this._hover = true), this.sync()));\n this.listen(this, 'focusout', () => ((this._hover = false), this.sync()));\n }\n\n unmount(): void {\n this._anim?.cancel();\n this._anim = null;\n this._size = 0;\n }\n\n private syncClones(n: number): void {\n const track = this._track!;\n const group = track.firstElementChild as HTMLElement;\n while (track.children.length > n) track.lastElementChild!.remove();\n while (track.children.length < n) {\n const clone = group.cloneNode(true) as HTMLElement;\n clone.setAttribute('aria-hidden', 'true');\n clone.setAttribute('inert', '');\n track.append(clone);\n }\n }\n\n private build(): void {\n const track = this._track!;\n const group = track.firstElementChild as HTMLElement;\n const vertical = this.vertical;\n const gap = this.num('gap', 32);\n const measured = vertical ? group.offsetHeight : group.offsetWidth;\n if (!measured) return; // not laid out yet: the ResizeObserver calls back\n const size = measured + gap;\n if (this._anim && this._size === size) return;\n this._size = size;\n const box = (vertical ? this.clientHeight : this.clientWidth) || size;\n // Enough copies to cover the box twice\n this.syncClones(Math.min(50, Math.max(2, Math.ceil(box / size) + 1)));\n const progress = this._anim?.effect?.getComputedTiming().progress ?? 0;\n this._anim?.cancel();\n const axis = vertical ? 'Y' : 'X';\n const reverse = ['right', 'down'].includes(this.str('direction', 'left'));\n const frames = [{ transform: `translate${axis}(0)` }, { transform: `translate${axis}(${-size}px)` }];\n this._anim = this.motion(track, reverse ? frames.reverse() : frames, {\n duration: (Math.max(1, size) / Math.max(1, this.num('speed', 50))) * 1000,\n iterations: Infinity,\n });\n if (this._anim && progress) this._anim.currentTime = progress * Number(this._anim.effect?.getTiming().duration || 0);\n this.sync();\n }\n\n private sync(): void {\n const a = this._anim;\n if (!a) return;\n const stop = this.flag('paused') || !this._visible || (this._hover && this.flag('pause-on-hover'));\n if (stop && a.playState === 'running') a.pause();\n else if (!stop && a.playState === 'paused') a.play();\n }\n\n pause(): void {\n this.setAttribute('paused', '');\n }\n resume(): void {\n this.removeAttribute('paused');\n }\n\n changed(name: string): void {\n if (name === 'paused') this.sync();\n else super.changed(name);\n }\n },\n { id: 'marquee', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './acrylic.css?raw';\n\n/**\n * `<usa-acrylic>` — Windows Fluent materials for the web: `acrylic`\n * (frosted glass: backdrop blur + saturation + tint + subtle noise) and\n * `mica` (an opaque, wallpaper-tinted base for app backgrounds; on the web it\n * tints from `--usa-mica-source`, a gradient you control). Optional\n * `shimmer` adds a light sweep when it appears or on hover.\n *\n * Attributes: `variant` (`acrylic` default | `mica`), `tint` (colour),\n * `tint-opacity` (0–1, 0.55), `blur` (px, 30), `shimmer`\n * (`hover` | `load` | `none`, default `none`). Falls back to a solid tint\n * without `backdrop-filter` and under `prefers-reduced-transparency` or\n * forced colours, like Windows does when transparency effects are off.\n */\nexport type UsaAcrylicElement = UsaElement;\n\nexport function defineAcrylic(tag = 'usa-acrylic'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaAcrylic extends Base {\n static get observedAttributes(): string[] {\n return ['tint', 'tint-opacity', 'blur', 'shimmer'];\n }\n\n mount(): void {\n const tint = this.getAttribute('tint');\n if (tint) this.style.setProperty('--usa-acrylic-tint', tint);\n else this.style.removeProperty('--usa-acrylic-tint');\n this.style.setProperty('--usa-acrylic-opacity', `${Math.round(this.num('tint-opacity', 0.55) * 100)}%`);\n this.style.setProperty('--usa-acrylic-blur', `${this.num('blur', 30)}px`);\n if (this.str('shimmer') === 'load' && !this.reduced) {\n this.removeAttribute('data-shine');\n void this.offsetWidth;\n this.setAttribute('data-shine', '');\n }\n }\n },\n { id: 'acrylic', text: css }\n );\n}\n","/**\n * use-scroll-animate/components/background — backgrounds & decoration.\n * `<usa-aurora>`, `<usa-particles>`, `<usa-grain>`, `<usa-marquee>`,\n * `<usa-acrylic>`.\n */\nimport { defineAurora, type UsaAuroraElement } from './aurora';\nimport { defineParticles, type UsaParticlesElement } from './particles';\nimport { defineGrain, type UsaGrainElement } from './grain';\nimport { defineMarquee, type UsaMarqueeElement } from './marquee';\nimport { defineAcrylic, type UsaAcrylicElement } from './acrylic';\n\nexport { defineAurora, defineParticles, defineGrain, defineMarquee, defineAcrylic };\nexport type { UsaAuroraElement, UsaParticlesElement, UsaGrainElement, UsaMarqueeElement, UsaAcrylicElement };\nexport { configureComponents, prefersReducedMotion } from '../base';\nexport type { ComponentsConfig, UsaElement } from '../base';\n\n/** Register every component of this category under its default tag. */\nexport function defineBackgroundComponents(): void {\n defineAurora();\n defineParticles();\n defineGrain();\n defineMarquee();\n defineAcrylic();\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-aurora': UsaAuroraElement;\n 'usa-particles': UsaParticlesElement;\n 'usa-grain': UsaGrainElement;\n 'usa-marquee': UsaMarqueeElement;\n 'usa-acrylic': UsaAcrylicElement;\n }\n}\n"],"names":["css"],"mappings":";;;;;AAcM,SAAU,YAAY,CAAC,GAAG,GAAG,YAAY,EAAA;AAC7C,IAAA,OAAO,aAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,SAAU,SAAQ,IAAI,CAAA;AAA5B,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,MAAM,GAAuB,IAAI;QAmB3C;AAvBE,QAAA,WAAW,kBAAkB,GAAA;AAC3B,YAAA,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC;QACzC;QAIA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,kBAAkB;gBAC1C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AAC/C,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,8BAA8B;AACtD,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B;AACA,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACpH,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;AAClD,gBAAA,IAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3E,YAAA,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAA,EAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;AAC3F,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE;KACD,EACH,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAEA,KAAG,EAAE,CAC5B;AACH;;;;ACjBM,SAAU,eAAe,CAAC,GAAG,GAAG,eAAe,EAAA;AACnD,IAAA,OAAO,aAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,YAAa,SAAQ,IAAI,CAAA;AAA/B,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,OAAO,GAA6B,IAAI;YACxC,IAAA,CAAA,IAAI,GAAoC,IAAI;YAC5C,IAAA,CAAA,GAAG,GAAQ,EAAE;YACb,IAAA,CAAA,MAAM,GAAG,CAAC;YACV,IAAA,CAAA,EAAE,GAAG,CAAC;YACN,IAAA,CAAA,EAAE,GAAG,CAAC;YACN,IAAA,CAAA,QAAQ,GAAG,KAAK;YAChB,IAAA,CAAA,GAAG,GAAG,IAAI;YACV,IAAA,CAAA,MAAM,GAAG,MAAM;YACf,IAAA,CAAA,GAAG,GAAG,IAAI;QA0IpB;AAvJE,QAAA,WAAW,kBAAkB,GAAA;AAC3B,YAAA,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC;QAC9E;QAaA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC/C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AAChD,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B;AACA,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI;YACnD,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE;YAChB,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AACzC,gBAAA,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,MAAK;oBACjC,IAAI,CAAC,MAAM,EAAE;oBACb,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,IAAI,CAAC,IAAI,EAAE;AAC/B,gBAAA,CAAC,CAAC;AACF,gBAAA,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;YACvC;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AAChB,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;gBACjB,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5D,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAe,KAAI;AACrD,oBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE;oBACtC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI;oBAC7B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG;AAC9B,gBAAA,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvB;YACA,IAAI,CAAC,IAAI,EAAE;QACb;QAEA,OAAO,GAAA;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACjB;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,IAAI,EAAE;QACb;QAEQ,MAAM,GAAA;AACZ,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO;AACtB,YAAA,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE;AACtB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG;AACjC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,GAAG;AAClC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,CAAC,CAAC;YACxF,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;YAC7B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;AAC9B,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,EAAE,GAAG,CAAC;AACX,YAAA,IAAI,CAAC,EAAE,GAAG,CAAC;AACX,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,OAAO,gBAAgB,KAAK,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,MAAM;AAClI,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACrG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;YAClC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE;AAC7B,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AACrC,gBAAA,MAAM,CAAC,GAAG,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;AAC7C,gBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YAChJ;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;QACxB;QAEQ,IAAI,GAAA;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;AAC3H,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACvB,MAAM,IAAI,GAAG,MAAK;oBAChB,IAAI,CAAC,IAAI,EAAE;oBACX,IAAI,CAAC,IAAI,EAAE;AACX,oBAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;AACzB,gBAAA,CAAC;AACD,gBAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;YACzB;AAAO,iBAAA,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,gBAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChB,gBAAA,IAAI,CAAC,MAAM,GAAG,CAAC;YACjB;QACF;QAEQ,IAAI,GAAA;YACV,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI;AAC7B,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;gBACxB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG;gBACzB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG;gBACzB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;gBAC5B,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE;AAC1B,oBAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG;AACxC,oBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/B,oBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;gBACjC;AACA,gBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACX,gBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AACX,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AAAE,oBAAA,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACpB,qBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,oBAAA,CAAC,CAAC,CAAC,GAAG,EAAE;AAC9B,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AAAE,oBAAA,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACpB,qBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,oBAAA,CAAC,CAAC,CAAC,GAAG,EAAE;YAChC;QACF;QAEQ,IAAI,GAAA;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AACrB,YAAA,IAAI,CAAC,GAAG;gBAAE;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM;AACzB,YAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;AACrC,YAAA,GAAG,CAAC,SAAS,GAAG,KAAK;AACrB,YAAA,GAAG,CAAC,WAAW,GAAG,KAAK;AACvB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AACnC,YAAA,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,gBAAA,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI;AACtB,gBAAA,GAAG,CAAC,SAAS,GAAG,GAAG;AACnB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,wBAAA,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,wBAAA,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,wBAAA,IAAI,EAAE,GAAG,EAAE,EAAE;AACX,4BAAA,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI;4BACtC,GAAG,CAAC,SAAS,EAAE;AACf,4BAAA,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,4BAAA,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC5B,GAAG,CAAC,MAAM,EAAE;wBACd;oBACF;gBACF;YACF;AACA,YAAA,GAAG,CAAC,WAAW,GAAG,IAAI;AACtB,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;gBAClB,GAAG,CAAC,SAAS,EAAE;gBACf,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtC,GAAG,CAAC,IAAI,EAAE;YACZ;AACA,YAAA,GAAG,CAAC,WAAW,GAAG,CAAC;QACrB;KACD,EACH,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAEA,KAAG,EAAE,CAC/B;AACH;;;;AC7KA,MAAM,KAAK,GAAG,CAAC,IAAY,KACzB,CAAA,mKAAA,EAAsK,IAAI,CAAA,+MAAA,CAAiN;AAEvX,SAAU,WAAW,CAAC,GAAG,GAAG,WAAW,EAAA;AAC3C,IAAA,OAAO,aAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,QAAS,SAAQ,IAAI,CAAA;AAA3B,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,MAAM,GAAuB,IAAI;QAe3C;AAnBE,QAAA,WAAW,kBAAkB,GAAA;AAC3B,YAAA,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;QACtC;QAIA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,gBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,iBAAiB;gBACzC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AAC/C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1B;AACA,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;AAC3B,YAAA,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC;AAC9B,YAAA,CAAC,CAAC,cAAc,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI;AAChD,YAAA,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;QAC/C;KACD,EACH,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAEA,KAAG,EAAE,CAC3B;AACH;;;;ACzBM,SAAU,aAAa,CAAC,GAAG,GAAG,aAAa,EAAA;AAC/C,IAAA,OAAO,aAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,UAAW,SAAQ,IAAI,CAAA;AAA7B,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,MAAM,GAAuB,IAAI;YACjC,IAAA,CAAA,KAAK,GAAqB,IAAI;YAC9B,IAAA,CAAA,MAAM,GAAG,KAAK;YACd,IAAA,CAAA,QAAQ,GAAG,IAAI;YACf,IAAA,CAAA,KAAK,GAAG,CAAC;QAyGnB;AAjHE,QAAA,WAAW,kBAAkB,GAAA;YAC3B,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC;QAChD;AAQA,QAAA,IAAY,QAAQ,GAAA;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACvC,YAAA,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM;QACnC;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,gBAAA,KAAK,CAAC,SAAS,GAAG,mBAAmB;gBACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,gBAAA,KAAK,CAAC,SAAS,GAAG,mBAAmB;AACrC,gBAAA,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,gBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAClB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YACrB;YACA,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC;AACpD,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;AACvE,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;AACpC,gBAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClB;YACF;AACA,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AACzC,gBAAA,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACjD,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,iBAA4B,CAAC;gBACpD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;YACvC;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AAChB,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;gBACjB,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E;QAEA,OAAO,GAAA;AACL,YAAA,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;QAChB;AAEQ,QAAA,UAAU,CAAC,CAAS,EAAA;AAC1B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAO;AAC1B,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAgC;AACpD,YAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AAAE,gBAAA,KAAK,CAAC,gBAAiB,CAAC,MAAM,EAAE;YAClE,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAgB;AAClD,gBAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACzC,gBAAA,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AAC/B,gBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB;QACF;QAEQ,KAAK,GAAA;AACX,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAO;AAC1B,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAgC;AACpD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,YAAA,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW;AAClE,YAAA,IAAI,CAAC,QAAQ;AAAE,gBAAA,OAAO;AACtB,YAAA,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG;YAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;gBAAE;AACvC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI;;AAErE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,QAAQ,IAAI,CAAC;AACtE,YAAA,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YACpB,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG;AACjC,YAAA,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,CAAC,EAAE,SAAS,EAAE,CAAA,SAAA,EAAY,IAAI,CAAA,GAAA,CAAK,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,IAAI,CAAA,CAAA,EAAI,CAAC,IAAI,CAAA,GAAA,CAAK,EAAE,CAAC;YACpG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE;AACnE,gBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI;AACzE,gBAAA,UAAU,EAAE,QAAQ;AACrB,aAAA,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpH,IAAI,CAAC,IAAI,EAAE;QACb;QAEQ,IAAI,GAAA;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK;AACpB,YAAA,IAAI,CAAC,CAAC;gBAAE;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAClG,YAAA,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;gBAAE,CAAC,CAAC,KAAK,EAAE;AAC3C,iBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ;gBAAE,CAAC,CAAC,IAAI,EAAE;QACtD;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QACjC;QACA,MAAM,GAAA;AACJ,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAChC;AAEA,QAAA,OAAO,CAAC,IAAY,EAAA;YAClB,IAAI,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,EAAE;;AAC7B,gBAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1B;KACD,EACH,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAEA,KAAG,EAAE,CAC7B;AACH;;;;AC1HM,SAAU,aAAa,CAAC,GAAG,GAAG,aAAa,EAAA;AAC/C,IAAA,OAAO,aAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,UAAW,SAAQ,IAAI,CAAA;AAC3B,QAAA,WAAW,kBAAkB,GAAA;YAC3B,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC;QACpD;QAEA,KAAK,GAAA;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACtC,YAAA,IAAI,IAAI;gBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC;;AACvD,gBAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AACvG,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;AACzE,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnD,gBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;gBAClC,KAAK,IAAI,CAAC,WAAW;AACrB,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC;YACrC;QACF;KACD,EACH,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAC7B;AACH;;AC1CA;;;;AAIG;AAYH;SACgB,0BAA0B,GAAA;AACxC,IAAA,YAAY,EAAE;AACd,IAAA,eAAe,EAAE;AACjB,IAAA,WAAW,EAAE;AACb,IAAA,aAAa,EAAE;AACf,IAAA,aAAa,EAAE;AACjB;;;;"}
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var base = require('../chunks/base-BiTc85p_.cjs');
|
|
4
|
+
|
|
5
|
+
var css$4 = "usa-spinner{--usa-spinner-size:32px;--usa-spinner-color:currentColor;position:relative;display:inline-block;vertical-align:middle;flex:none;width:var(--usa-spinner-size);height:var(--usa-spinner-size);color:var(--usa-spinner-color)}usa-spinner i{position:absolute;display:block}usa-spinner[paused] *,usa-spinner[paused] *::after{animation-play-state:paused !important}usa-spinner svg{width:100%;height:100%;animation:usa-spin 2s linear infinite;overflow:visible}usa-spinner svg circle{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:0.5 100;stroke-dashoffset:0;animation:usa-ring-arc 1.6s ease-in-out infinite}@keyframes usa-spin{to{transform:rotate(360deg)}}@keyframes usa-ring-arc{0%{stroke-dasharray:0.5 100;stroke-dashoffset:0}50%{stroke-dasharray:62 100;stroke-dashoffset:-20}100%{stroke-dasharray:0.5 100;stroke-dashoffset:-99}}usa-spinner[data-variant=\"windows\"] i{inset:0;opacity:0;animation:usa-orbit 5.5s infinite}usa-spinner[data-variant=\"windows\"] i::after{content:\"\";position:absolute;left:50%;top:0;width:12%;height:12%;margin-left:-6%;border-radius:50%;background:currentColor}usa-spinner[data-variant=\"windows\"] i:nth-child(2){animation-delay:240ms;--n:1}usa-spinner[data-variant=\"windows\"] i:nth-child(3){animation-delay:480ms;--n:2}usa-spinner[data-variant=\"windows\"] i:nth-child(4){animation-delay:720ms;--n:3}usa-spinner[data-variant=\"windows\"] i:nth-child(5){animation-delay:960ms;--n:4}@keyframes usa-orbit{0%{transform:rotate(225deg);opacity:1;animation-timing-function:ease-out}7%{transform:rotate(345deg);animation-timing-function:linear}30%{transform:rotate(455deg);animation-timing-function:ease-in-out}39%{transform:rotate(690deg);animation-timing-function:linear}70%{transform:rotate(815deg);opacity:1;animation-timing-function:ease-out}75%{transform:rotate(945deg);animation-timing-function:ease-out}76%,100%{transform:rotate(945deg);opacity:0}}usa-spinner[data-variant=\"ring\"] i{inset:0;border-radius:50%;border:calc(var(--usa-spinner-size) / 9) solid color-mix(in srgb,currentColor 20%,transparent);border-top-color:currentColor;animation:usa-spin 0.8s linear infinite}usa-spinner[data-variant=\"dots\"]{display:inline-flex;align-items:center;justify-content:space-between;height:calc(var(--usa-spinner-size) / 2.5)}usa-spinner[data-variant=\"dots\"] i{position:static;width:22%;aspect-ratio:1;border-radius:50%;background:currentColor;animation:usa-dot 1.2s ease-in-out infinite}usa-spinner[data-variant=\"dots\"] i:nth-child(2){animation-delay:0.15s}usa-spinner[data-variant=\"dots\"] i:nth-child(3){animation-delay:0.3s}@keyframes usa-dot{0%,60%,100%{transform:translateY(0);opacity:0.35}30%{transform:translateY(-70%);opacity:1}}usa-spinner[data-variant=\"pulse\"] i{inset:0;border-radius:50%;background:currentColor;opacity:0;animation:usa-pulse 1.6s cubic-bezier(0.22,1,0.36,1) infinite}usa-spinner[data-variant=\"pulse\"] i:nth-child(2){animation-delay:0.8s}@keyframes usa-pulse{from{transform:scale(0.1);opacity:0.8}to{transform:scale(1);opacity:0}}usa-spinner[data-variant=\"bars\"]{display:inline-flex;align-items:center;justify-content:space-between}usa-spinner[data-variant=\"bars\"] i{position:static;width:16%;height:100%;border-radius:2px;background:currentColor;transform:scaleY(0.35);animation:usa-bar 1s ease-in-out infinite}usa-spinner[data-variant=\"bars\"] i:nth-child(2){animation-delay:0.12s}usa-spinner[data-variant=\"bars\"] i:nth-child(3){animation-delay:0.24s}usa-spinner[data-variant=\"bars\"] i:nth-child(4){animation-delay:0.36s}@keyframes usa-bar{0%,100%{transform:scaleY(0.35)}40%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){usa-spinner svg,usa-spinner i,usa-spinner i::after{animation:usa-calm 2.4s ease-in-out infinite !important}usa-spinner[data-variant=\"windows\"] i{transform:rotate(calc(var(--n,0) * 72deg))}usa-spinner svg circle{animation:none;stroke-dasharray:30 100}}@keyframes usa-calm{0%,100%{opacity:1}50%{opacity:0.4}}";
|
|
6
|
+
|
|
7
|
+
const SPINNER_VARIANTS = ['fluent', 'windows', 'ring', 'dots', 'pulse', 'bars'];
|
|
8
|
+
function markup(variant) {
|
|
9
|
+
switch (variant) {
|
|
10
|
+
case 'windows':
|
|
11
|
+
return '<i></i><i></i><i></i><i></i><i></i>';
|
|
12
|
+
case 'dots':
|
|
13
|
+
return '<i></i><i></i><i></i>';
|
|
14
|
+
case 'bars':
|
|
15
|
+
return '<i></i><i></i><i></i><i></i>';
|
|
16
|
+
case 'pulse':
|
|
17
|
+
return '<i></i><i></i>';
|
|
18
|
+
case 'ring':
|
|
19
|
+
return '<i></i>';
|
|
20
|
+
default:
|
|
21
|
+
return '<svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="7" pathLength="100"/></svg>';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function defineSpinner(tag = 'usa-spinner') {
|
|
25
|
+
return base.defineElement(tag, (Base) => class UsaSpinner extends Base {
|
|
26
|
+
static get observedAttributes() {
|
|
27
|
+
return ['variant', 'size', 'label'];
|
|
28
|
+
}
|
|
29
|
+
get variant() {
|
|
30
|
+
const v = this.str('variant', 'fluent');
|
|
31
|
+
return SPINNER_VARIANTS.includes(v) ? v : 'fluent';
|
|
32
|
+
}
|
|
33
|
+
set variant(v) {
|
|
34
|
+
this.setAttribute('variant', v);
|
|
35
|
+
}
|
|
36
|
+
mount() {
|
|
37
|
+
const variant = this.variant;
|
|
38
|
+
if (this.getAttribute('data-variant') !== variant) {
|
|
39
|
+
this.innerHTML = markup(variant);
|
|
40
|
+
this.setAttribute('data-variant', variant);
|
|
41
|
+
}
|
|
42
|
+
const size = this.getAttribute('size');
|
|
43
|
+
if (size)
|
|
44
|
+
this.style.setProperty('--usa-spinner-size', `${Number(size)}px`);
|
|
45
|
+
else
|
|
46
|
+
this.style.removeProperty('--usa-spinner-size');
|
|
47
|
+
this.setAttribute('role', 'progressbar');
|
|
48
|
+
if (!this.hasAttribute('aria-label') || this.hasAttribute('label'))
|
|
49
|
+
this.setAttribute('aria-label', this.str('label', 'Loading'));
|
|
50
|
+
}
|
|
51
|
+
}, { id: 'spinner', text: css$4 });
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
var css$3 = "usa-skeleton{display:block;--usa-skeleton-base:color-mix(in srgb,currentColor 10%,transparent);--usa-skeleton-shine:color-mix(in srgb,currentColor 9%,transparent);--usa-skeleton-radius:8px}usa-skeleton[loading]>:not(.usa-skeleton-ph){display:none !important}usa-skeleton .usa-skeleton-ph{display:flex;gap:14px;align-items:flex-start}usa-skeleton .usa-bone-lines{flex:1;display:grid;gap:10px;min-width:0}usa-skeleton .usa-bone{position:relative;display:block;overflow:hidden;height:0.9em;border-radius:var(--usa-skeleton-radius);background:var(--usa-skeleton-base)}usa-skeleton .usa-bone-last{width:62%}usa-skeleton .usa-bone-block{height:120px}usa-skeleton .usa-bone-circle{border-radius:50%;flex:none}usa-skeleton .usa-bone-avatar{width:44px;height:44px}usa-skeleton .usa-bone::after{content:\"\";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--usa-skeleton-shine),transparent);animation:usa-skeleton 1.5s ease-in-out infinite}@keyframes usa-skeleton{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){usa-skeleton .usa-bone::after{animation:none}}";
|
|
55
|
+
|
|
56
|
+
function defineSkeleton(tag = 'usa-skeleton') {
|
|
57
|
+
return base.defineElement(tag, (Base) => class UsaSkeleton extends Base {
|
|
58
|
+
constructor() {
|
|
59
|
+
super(...arguments);
|
|
60
|
+
this._ph = null;
|
|
61
|
+
}
|
|
62
|
+
static get observedAttributes() {
|
|
63
|
+
return ['loading', 'lines', 'width', 'height', 'circle', 'avatar', 'radius'];
|
|
64
|
+
}
|
|
65
|
+
get loading() {
|
|
66
|
+
return this.hasAttribute('loading');
|
|
67
|
+
}
|
|
68
|
+
set loading(v) {
|
|
69
|
+
this.toggleAttribute('loading', !!v);
|
|
70
|
+
}
|
|
71
|
+
changed(name) {
|
|
72
|
+
if (name === 'loading')
|
|
73
|
+
this.sync(true);
|
|
74
|
+
else {
|
|
75
|
+
this._ph?.remove();
|
|
76
|
+
this._ph = null;
|
|
77
|
+
this.sync(false);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
mount() {
|
|
81
|
+
this.sync(false);
|
|
82
|
+
}
|
|
83
|
+
build() {
|
|
84
|
+
const ph = document.createElement('div');
|
|
85
|
+
ph.className = 'usa-skeleton-ph';
|
|
86
|
+
ph.setAttribute('aria-hidden', 'true');
|
|
87
|
+
const bone = (cls = '') => {
|
|
88
|
+
const b = document.createElement('span');
|
|
89
|
+
b.className = `usa-bone ${cls}`.trim();
|
|
90
|
+
return b;
|
|
91
|
+
};
|
|
92
|
+
const radius = this.getAttribute('radius');
|
|
93
|
+
if (radius)
|
|
94
|
+
this.style.setProperty('--usa-skeleton-radius', radius);
|
|
95
|
+
if (this.flag('circle') || this.hasAttribute('width') || this.hasAttribute('height')) {
|
|
96
|
+
const b = bone(this.flag('circle') ? 'usa-bone-circle' : 'usa-bone-block');
|
|
97
|
+
b.style.width = this.str('width', this.flag('circle') ? this.str('height', '48px') : '100%');
|
|
98
|
+
b.style.height = this.str('height', this.flag('circle') ? b.style.width : '120px');
|
|
99
|
+
ph.append(b);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
if (this.flag('avatar'))
|
|
103
|
+
ph.append(bone('usa-bone-circle usa-bone-avatar'));
|
|
104
|
+
const col = document.createElement('div');
|
|
105
|
+
col.className = 'usa-bone-lines';
|
|
106
|
+
const n = Math.max(1, Math.min(20, this.num('lines', 3)));
|
|
107
|
+
for (let i = 0; i < n; i++)
|
|
108
|
+
col.append(bone(i === n - 1 && n > 1 ? 'usa-bone-last' : ''));
|
|
109
|
+
ph.append(col);
|
|
110
|
+
}
|
|
111
|
+
return ph;
|
|
112
|
+
}
|
|
113
|
+
sync(animate) {
|
|
114
|
+
const loading = this.loading;
|
|
115
|
+
this.setAttribute('aria-busy', String(loading));
|
|
116
|
+
if (loading) {
|
|
117
|
+
if (!this._ph) {
|
|
118
|
+
this._ph = this.build();
|
|
119
|
+
this.prepend(this._ph);
|
|
120
|
+
}
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (this._ph) {
|
|
124
|
+
this._ph.remove();
|
|
125
|
+
this._ph = null;
|
|
126
|
+
}
|
|
127
|
+
if (animate && !this.reduced) {
|
|
128
|
+
for (const kid of Array.from(this.children)) {
|
|
129
|
+
this.motion(kid, [{ opacity: 0, transform: 'translateY(4px)' }, { opacity: 1, transform: 'none' }], { duration: 360, easing: base.EASE_OUT });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
this.emit('loaded');
|
|
133
|
+
}
|
|
134
|
+
}, { id: 'skeleton', text: css$3 });
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
var css$2 = "usa-progress{--usa-progress-color:#7c5cff;--usa-progress-track:color-mix(in srgb,currentColor 14%,transparent);position:relative;display:block;height:var(--usa-progress-height,4px);border-radius:999px;overflow:hidden;background:var(--usa-progress-track);contain:paint}usa-progress .usa-progress-bar{position:absolute;inset:0;border-radius:inherit;background:var(--usa-progress-color);transform:scaleX(0);transform-origin:0 50%;transition:transform 0.45s cubic-bezier(0.22,1,0.36,1)}usa-progress .usa-progress-bar2{display:none}usa-progress[data-indeterminate] .usa-progress-bar{right:auto;width:40%;transform:translateX(-100%);transition:none;animation:usa-indet 2s cubic-bezier(0.4,0,0.6,1) infinite}usa-progress[data-indeterminate] .usa-progress-bar2{display:block;width:60%;animation:usa-indet2 2s cubic-bezier(0.4,0,0.6,1) 1s infinite}usa-progress[state=\"paused\"]{--usa-progress-color:#c19c00}usa-progress[state=\"error\"]{--usa-progress-color:#d13438}usa-progress[state=\"paused\"] .usa-progress-bar,usa-progress[state=\"error\"] .usa-progress-bar{animation-play-state:paused}@keyframes usa-indet{from{transform:translateX(-100%)}to{transform:translateX(250%)}}@keyframes usa-indet2{from{transform:translateX(-100%)}to{transform:translateX(167%)}}@media (prefers-reduced-motion:reduce){usa-progress .usa-progress-bar{transition:none}usa-progress[data-indeterminate] .usa-progress-bar{width:100%;transform:none;animation:usa-calm-bar 2.4s ease-in-out infinite}usa-progress[data-indeterminate] .usa-progress-bar2{display:none}}@keyframes usa-calm-bar{0%,100%{opacity:1}50%{opacity:0.4}}";
|
|
138
|
+
|
|
139
|
+
function defineProgress(tag = 'usa-progress') {
|
|
140
|
+
return base.defineElement(tag, (Base) => class UsaProgress extends Base {
|
|
141
|
+
constructor() {
|
|
142
|
+
super(...arguments);
|
|
143
|
+
this._fill = null;
|
|
144
|
+
}
|
|
145
|
+
static get observedAttributes() {
|
|
146
|
+
return ['value', 'max', 'indeterminate', 'label'];
|
|
147
|
+
}
|
|
148
|
+
get value() {
|
|
149
|
+
const v = this.getAttribute('value');
|
|
150
|
+
return v === null || v === '' || Number.isNaN(Number(v)) ? null : Number(v);
|
|
151
|
+
}
|
|
152
|
+
set value(v) {
|
|
153
|
+
if (v === null || v === undefined)
|
|
154
|
+
this.removeAttribute('value');
|
|
155
|
+
else
|
|
156
|
+
this.setAttribute('value', String(v));
|
|
157
|
+
}
|
|
158
|
+
get max() {
|
|
159
|
+
const m = this.num('max', 100);
|
|
160
|
+
return m > 0 ? m : 100;
|
|
161
|
+
}
|
|
162
|
+
set max(v) {
|
|
163
|
+
this.setAttribute('max', String(v));
|
|
164
|
+
}
|
|
165
|
+
get ratio() {
|
|
166
|
+
const v = this.value;
|
|
167
|
+
return this.hasAttribute('indeterminate') || v === null ? null : base.clamp(v / this.max, 0, 1);
|
|
168
|
+
}
|
|
169
|
+
changed() {
|
|
170
|
+
this.sync();
|
|
171
|
+
}
|
|
172
|
+
mount() {
|
|
173
|
+
if (!this._fill) {
|
|
174
|
+
this.innerHTML = '<span class="usa-progress-bar"></span><span class="usa-progress-bar usa-progress-bar2"></span>';
|
|
175
|
+
this._fill = this.firstElementChild;
|
|
176
|
+
}
|
|
177
|
+
this.setAttribute('role', 'progressbar');
|
|
178
|
+
this.sync();
|
|
179
|
+
}
|
|
180
|
+
sync() {
|
|
181
|
+
const ratio = this.ratio;
|
|
182
|
+
const label = this.getAttribute('label');
|
|
183
|
+
if (label)
|
|
184
|
+
this.setAttribute('aria-label', label);
|
|
185
|
+
this.toggleAttribute('data-indeterminate', ratio === null);
|
|
186
|
+
if (ratio === null) {
|
|
187
|
+
this.removeAttribute('aria-valuenow');
|
|
188
|
+
if (this._fill)
|
|
189
|
+
this._fill.style.transform = '';
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
this.setAttribute('aria-valuemin', '0');
|
|
193
|
+
this.setAttribute('aria-valuemax', String(this.max));
|
|
194
|
+
this.setAttribute('aria-valuenow', String(this.value));
|
|
195
|
+
if (this._fill)
|
|
196
|
+
this._fill.style.transform = `scaleX(${ratio})`;
|
|
197
|
+
if (ratio === 1)
|
|
198
|
+
this.emit('complete');
|
|
199
|
+
}
|
|
200
|
+
}, { id: 'progress', text: css$2 });
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
var css$1 = "usa-toaster{position:fixed;z-index:2147483000;right:16px;bottom:16px;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 32px));pointer-events:none}usa-toaster[position^=\"top\"]{bottom:auto;top:16px}usa-toaster[position$=\"left\"]{right:auto;left:16px}usa-toaster[position$=\"center\"]{right:auto;left:50%;translate:-50% 0}usa-toaster .usa-toast{--usa-toast-accent:#0078d4;pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;border-radius:10px;background:var(--usa-toast-bg,color-mix(in srgb,Canvas 92%,transparent));color:var(--usa-toast-fg,CanvasText);border:1px solid color-mix(in srgb,CanvasText 12%,transparent);border-left:3px solid var(--usa-toast-accent);box-shadow:0 8px 28px -8px rgb(0 0 0 / 0.35);font:inherit;font-size:14px;line-height:1.4;-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4)}usa-toaster .usa-toast[data-type=\"success\"]{--usa-toast-accent:#0f9d58}usa-toaster .usa-toast[data-type=\"warning\"]{--usa-toast-accent:#c19c00}usa-toaster .usa-toast[data-type=\"error\"]{--usa-toast-accent:#d13438}usa-toaster .usa-toast-icon{flex:none;width:20px;height:20px;fill:none;stroke:var(--usa-toast-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}usa-toaster .usa-toast-msg{flex:1;min-width:0;padding-top:1px;overflow-wrap:anywhere}usa-toaster .usa-toast-action,usa-toaster .usa-toast-close{flex:none;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;border-radius:6px;padding:2px 6px}usa-toaster .usa-toast-action{color:var(--usa-toast-accent);font-weight:600}usa-toaster .usa-toast-close{opacity:0.6;line-height:0;padding:3px}usa-toaster .usa-toast-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}usa-toaster .usa-toast-action:hover,usa-toaster .usa-toast-close:hover{background:color-mix(in srgb,currentColor 10%,transparent);opacity:1}";
|
|
204
|
+
|
|
205
|
+
const ICONS = {
|
|
206
|
+
info: '<path d="M12 8h.01M11 12h1v5h1"/>',
|
|
207
|
+
success: '<path d="m8 12.5 3 3 5-6"/>',
|
|
208
|
+
warning: '<path d="M12 8v5M12 16.5h.01"/>',
|
|
209
|
+
error: '<path d="m9 9 6 6M15 9l-6 6"/>',
|
|
210
|
+
};
|
|
211
|
+
function defineToaster(tag = 'usa-toaster') {
|
|
212
|
+
return base.defineElement(tag, (Base) => class UsaToaster extends Base {
|
|
213
|
+
static get observedAttributes() {
|
|
214
|
+
return ['label'];
|
|
215
|
+
}
|
|
216
|
+
mount() {
|
|
217
|
+
this.setAttribute('role', 'region');
|
|
218
|
+
this.setAttribute('aria-label', this.str('label', 'Notifications'));
|
|
219
|
+
}
|
|
220
|
+
flip(mutate) {
|
|
221
|
+
const kids = Array.from(this.children);
|
|
222
|
+
const before = new Map(kids.map((k) => [k, k.getBoundingClientRect().top]));
|
|
223
|
+
mutate();
|
|
224
|
+
if (this.reduced)
|
|
225
|
+
return;
|
|
226
|
+
for (const k of Array.from(this.children)) {
|
|
227
|
+
const top = before.get(k);
|
|
228
|
+
if (top === undefined || k.hasAttribute('data-leaving'))
|
|
229
|
+
continue;
|
|
230
|
+
const dy = top - k.getBoundingClientRect().top;
|
|
231
|
+
if (Math.abs(dy) > 0.5)
|
|
232
|
+
this.motion(k, [{ transform: `translateY(${dy}px)` }, { transform: 'none' }], { duration: 320, easing: base.EASE_OUT, composite: 'add' });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
enterFrames() {
|
|
236
|
+
if (this.reduced)
|
|
237
|
+
return [{ opacity: 0 }, { opacity: 1 }];
|
|
238
|
+
const pos = this.str('position', 'bottom-right');
|
|
239
|
+
const x = pos.endsWith('right') ? '110%' : pos.endsWith('left') ? '-110%' : '0';
|
|
240
|
+
const y = pos.endsWith('center') ? (pos.startsWith('top') ? '-120%' : '120%') : '0';
|
|
241
|
+
return [{ opacity: 0, transform: `translate(${x}, ${y}) scale(0.96)` }, { opacity: 1, transform: 'none' }];
|
|
242
|
+
}
|
|
243
|
+
show(message, options = {}) {
|
|
244
|
+
const type = options.type || 'info';
|
|
245
|
+
const el = document.createElement('div');
|
|
246
|
+
el.className = 'usa-toast';
|
|
247
|
+
el.setAttribute('data-type', type);
|
|
248
|
+
el.setAttribute('role', type === 'error' ? 'alert' : 'status');
|
|
249
|
+
el.innerHTML = `<svg class="usa-toast-icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="9"/>${ICONS[type] || ICONS.info}</svg><div class="usa-toast-msg"></div>`;
|
|
250
|
+
el.querySelector('.usa-toast-msg').textContent = message;
|
|
251
|
+
let closed = null;
|
|
252
|
+
let timer = 0;
|
|
253
|
+
const close = () => {
|
|
254
|
+
if (closed)
|
|
255
|
+
return closed;
|
|
256
|
+
clearTimeout(timer);
|
|
257
|
+
el.setAttribute('data-leaving', '');
|
|
258
|
+
const frames = this.enterFrames().reverse();
|
|
259
|
+
const a = el.isConnected ? this.motion(el, frames, { duration: 220, easing: 'cubic-bezier(0.7, 0, 0.84, 0)', fill: 'forwards' }) : null;
|
|
260
|
+
closed = new Promise((resolve) => {
|
|
261
|
+
const done = () => {
|
|
262
|
+
this.flip(() => el.remove());
|
|
263
|
+
resolve();
|
|
264
|
+
};
|
|
265
|
+
if (a)
|
|
266
|
+
a.onfinish = done;
|
|
267
|
+
else
|
|
268
|
+
done();
|
|
269
|
+
});
|
|
270
|
+
return closed;
|
|
271
|
+
};
|
|
272
|
+
if (options.action) {
|
|
273
|
+
const btn = document.createElement('button');
|
|
274
|
+
btn.type = 'button';
|
|
275
|
+
btn.className = 'usa-toast-action';
|
|
276
|
+
btn.textContent = options.action.label;
|
|
277
|
+
btn.addEventListener('click', () => {
|
|
278
|
+
options.action.onClick();
|
|
279
|
+
close();
|
|
280
|
+
});
|
|
281
|
+
el.append(btn);
|
|
282
|
+
}
|
|
283
|
+
if (options.dismissible !== false) {
|
|
284
|
+
const x = document.createElement('button');
|
|
285
|
+
x.type = 'button';
|
|
286
|
+
x.className = 'usa-toast-close';
|
|
287
|
+
x.setAttribute('aria-label', 'Close');
|
|
288
|
+
x.innerHTML = '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="m7 7 10 10M17 7 7 17"/></svg>';
|
|
289
|
+
x.addEventListener('click', () => close());
|
|
290
|
+
el.append(x);
|
|
291
|
+
}
|
|
292
|
+
const duration = options.duration ?? 4000;
|
|
293
|
+
const arm = () => {
|
|
294
|
+
clearTimeout(timer);
|
|
295
|
+
if (duration > 0)
|
|
296
|
+
timer = setTimeout(close, duration);
|
|
297
|
+
};
|
|
298
|
+
const hold = () => clearTimeout(timer);
|
|
299
|
+
el.addEventListener('pointerenter', hold);
|
|
300
|
+
el.addEventListener('pointerleave', arm);
|
|
301
|
+
el.addEventListener('focusin', hold);
|
|
302
|
+
el.addEventListener('focusout', arm);
|
|
303
|
+
const top = this.str('position', 'bottom-right').startsWith('top');
|
|
304
|
+
this.flip(() => (top ? this.prepend(el) : this.append(el)));
|
|
305
|
+
this.motion(el, this.enterFrames(), { duration: 420, easing: base.FLUENT_DECELERATE });
|
|
306
|
+
arm();
|
|
307
|
+
const live = Array.from(this.querySelectorAll('.usa-toast:not([data-leaving])'));
|
|
308
|
+
const max = Math.max(1, this.num('max', 4));
|
|
309
|
+
const extra = live.length - max;
|
|
310
|
+
if (extra > 0)
|
|
311
|
+
(top ? live.slice(-extra) : live.slice(0, extra)).forEach((t) => t._close?.());
|
|
312
|
+
el._close = close;
|
|
313
|
+
this.emit('toast', { element: el, message, type });
|
|
314
|
+
return { element: el, close };
|
|
315
|
+
}
|
|
316
|
+
clear() {
|
|
317
|
+
this.querySelectorAll('.usa-toast').forEach((t) => t._close?.());
|
|
318
|
+
}
|
|
319
|
+
}, { id: 'toast', text: css$1 });
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Show a toast. Defines `<usa-toaster>` and adds one to `<body>` if the
|
|
323
|
+
* page has none. Returns a handle with `close()`. No-op on the server.
|
|
324
|
+
*
|
|
325
|
+
* ```js
|
|
326
|
+
* toast('Saved', { type: 'success' });
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
function toast(message, options = {}) {
|
|
330
|
+
if (typeof document === 'undefined' || !defineToaster())
|
|
331
|
+
return null;
|
|
332
|
+
let host = typeof options.toaster === 'string' ? document.querySelector(options.toaster) : options.toaster || document.querySelector('usa-toaster');
|
|
333
|
+
if (!host) {
|
|
334
|
+
host = document.createElement('usa-toaster');
|
|
335
|
+
document.body.append(host);
|
|
336
|
+
}
|
|
337
|
+
return host.show(message, options);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
var css = "usa-check{--usa-check-size:56px;--usa-check-color:#0f9d58;display:inline-block;width:var(--usa-check-size);height:var(--usa-check-size);vertical-align:middle}usa-check[data-variant=\"error\"]{--usa-check-color:#d13438}usa-check[data-variant=\"warning\"]{--usa-check-color:#c19c00}usa-check svg{width:100%;height:100%;overflow:visible}usa-check circle,usa-check path{fill:none;stroke:var(--usa-check-color);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1}usa-check[data-state=\"idle\"] circle,usa-check[data-state=\"idle\"] path{stroke-dashoffset:1}usa-check[data-state=\"done\"] circle,usa-check[data-state=\"done\"] path{stroke-dashoffset:0}";
|
|
341
|
+
|
|
342
|
+
const PATHS = {
|
|
343
|
+
success: 'M15 27 l7 7 l14 -15',
|
|
344
|
+
error: 'M18 18 L34 34 M34 18 L18 34',
|
|
345
|
+
warning: 'M26 15 V30 M26 37 V37.5',
|
|
346
|
+
};
|
|
347
|
+
function defineCheck(tag = 'usa-check') {
|
|
348
|
+
return base.defineElement(tag, (Base) => class UsaCheck extends Base {
|
|
349
|
+
constructor() {
|
|
350
|
+
super(...arguments);
|
|
351
|
+
this._anims = [];
|
|
352
|
+
}
|
|
353
|
+
static get observedAttributes() {
|
|
354
|
+
return ['variant', 'size', 'label'];
|
|
355
|
+
}
|
|
356
|
+
mount() {
|
|
357
|
+
const variant = PATHS[this.str('variant', 'success')] ? this.str('variant', 'success') : 'success';
|
|
358
|
+
this.innerHTML = `<svg viewBox="0 0 52 52" aria-hidden="true"><circle class="usa-check-circle" cx="26" cy="26" r="23" pathLength="1"/><path class="usa-check-mark" d="${PATHS[variant]}" pathLength="1"/></svg>`;
|
|
359
|
+
this.setAttribute('data-variant', variant);
|
|
360
|
+
const size = this.getAttribute('size');
|
|
361
|
+
if (size)
|
|
362
|
+
this.style.setProperty('--usa-check-size', `${Number(size)}px`);
|
|
363
|
+
const label = this.getAttribute('label');
|
|
364
|
+
if (label) {
|
|
365
|
+
this.setAttribute('role', 'img');
|
|
366
|
+
this.setAttribute('aria-label', label);
|
|
367
|
+
}
|
|
368
|
+
if (this.reduced) {
|
|
369
|
+
this.setAttribute('data-state', 'done');
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
this.setAttribute('data-state', 'idle');
|
|
373
|
+
const start = this.str('start', 'view');
|
|
374
|
+
if (start === 'load')
|
|
375
|
+
this.play();
|
|
376
|
+
else if (start === 'view') {
|
|
377
|
+
let done = false;
|
|
378
|
+
this.inView((v) => v && !done && ((done = true), this.play()), { threshold: 0.5 });
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
unmount() {
|
|
382
|
+
this._anims.splice(0).forEach((a) => a.cancel());
|
|
383
|
+
}
|
|
384
|
+
reset() {
|
|
385
|
+
this._anims.splice(0).forEach((a) => a.cancel());
|
|
386
|
+
this.setAttribute('data-state', this.reduced ? 'done' : 'idle');
|
|
387
|
+
}
|
|
388
|
+
play() {
|
|
389
|
+
this.reset();
|
|
390
|
+
this.setAttribute('data-state', 'done');
|
|
391
|
+
const circle = this.querySelector('.usa-check-circle');
|
|
392
|
+
const mark = this.querySelector('.usa-check-mark');
|
|
393
|
+
const svg = this.querySelector('svg');
|
|
394
|
+
if (this.reduced || !circle || !mark || !svg) {
|
|
395
|
+
this.emit('complete');
|
|
396
|
+
return Promise.resolve();
|
|
397
|
+
}
|
|
398
|
+
const draw = [{ strokeDashoffset: 1 }, { strokeDashoffset: 0 }];
|
|
399
|
+
const anims = [
|
|
400
|
+
this.motion(circle, draw, { duration: 520, easing: base.EASE_OUT, fill: 'backwards' }),
|
|
401
|
+
this.motion(mark, draw, { duration: 340, delay: 420, easing: base.EASE_OUT, fill: 'backwards' }),
|
|
402
|
+
this.motion(svg, [{ transform: 'scale(1)' }, { transform: 'scale(1.12)' }, { transform: 'scale(1)' }], { duration: 420, delay: 640, easing: base.EASE_SPRING }),
|
|
403
|
+
].filter((a) => !!a);
|
|
404
|
+
this._anims = anims;
|
|
405
|
+
return new Promise((resolve) => {
|
|
406
|
+
const last = anims[anims.length - 1];
|
|
407
|
+
const done = () => {
|
|
408
|
+
this.emit('complete');
|
|
409
|
+
resolve();
|
|
410
|
+
};
|
|
411
|
+
if (last)
|
|
412
|
+
last.onfinish = done;
|
|
413
|
+
else
|
|
414
|
+
done();
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
}, { id: 'check', text: css });
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* use-scroll-animate/components/feedback — loading & feedback.
|
|
422
|
+
* `<usa-spinner>`, `<usa-skeleton>`, `<usa-progress>`, `<usa-toaster>` +
|
|
423
|
+
* `toast()`, `<usa-check>`.
|
|
424
|
+
*/
|
|
425
|
+
/** Register every component of this category under its default tag. */
|
|
426
|
+
function defineFeedbackComponents() {
|
|
427
|
+
defineSpinner();
|
|
428
|
+
defineSkeleton();
|
|
429
|
+
defineProgress();
|
|
430
|
+
defineToaster();
|
|
431
|
+
defineCheck();
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
exports.configureComponents = base.configureComponents;
|
|
435
|
+
exports.prefersReducedMotion = base.prefersReducedMotion;
|
|
436
|
+
exports.SPINNER_VARIANTS = SPINNER_VARIANTS;
|
|
437
|
+
exports.defineCheck = defineCheck;
|
|
438
|
+
exports.defineFeedbackComponents = defineFeedbackComponents;
|
|
439
|
+
exports.defineProgress = defineProgress;
|
|
440
|
+
exports.defineSkeleton = defineSkeleton;
|
|
441
|
+
exports.defineSpinner = defineSpinner;
|
|
442
|
+
exports.defineToaster = defineToaster;
|
|
443
|
+
exports.toast = toast;
|
|
444
|
+
//# sourceMappingURL=feedback.cjs.map
|