pixel-mirror 2.0.0 → 2.1.1
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/README.md +70 -27
- package/THIRD_PARTY_NOTICES.md +49 -0
- package/dist/index.js +4 -4
- package/index.d.ts +1 -0
- package/package.json +53 -44
- package/plugins/astro.js +16 -10
- package/plugins/script-url.js +4 -0
- package/plugins/vite.js +26 -5
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Pixel Mirror
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|
|
|
5
5
|
Overlay design mockups on web pages for pixel-perfect UI implementation. Features adjustable transparency, scaling, alignment, and grid guides.
|
|
6
6
|
|
|
@@ -19,40 +19,47 @@ The mockup overlay has 5 modes:
|
|
|
19
19
|
| Mode | Description |
|
|
20
20
|
| ------------ | ----------------------------------------------------------------------------- |
|
|
21
21
|
| **Visible** | Default. Drag, adjust opacity/scale/alignment. |
|
|
22
|
-
| **Locked** | Position frozen,
|
|
22
|
+
| **Locked** | Position frozen; clicks, hovers and scrolling pass through to the page. |
|
|
23
23
|
| **Dragging** | Active during drag, returns to visible on release. |
|
|
24
24
|
| **Solid** | 100% opacity for pixel comparison. Desktop: hold `Space`; Mobile: double-tap. |
|
|
25
|
-
| **Zoomed** | 2x zoom with mouse pan
|
|
25
|
+
| **Zoomed** | 2x zoom with mouse pan. Click in solid mode to enter, click again to leave. |
|
|
26
26
|
|
|
27
27
|
## Usage
|
|
28
28
|
|
|
29
29
|
### Desktop
|
|
30
30
|
|
|
31
|
-
| Action | Shortcut
|
|
32
|
-
| ------------------------------- |
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
31
|
+
| Action | Shortcut |
|
|
32
|
+
| ------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
33
|
+
| Add mockups | Drop images on the page, or Mockup Studio |
|
|
34
|
+
| Show / Hide mockup | Toolbar button |
|
|
35
|
+
| Lock / Unlock position | `Escape` or toolbar button |
|
|
36
|
+
| Snap to an edge or center | Hover the alignment button; click it for top center |
|
|
37
|
+
| Adjust opacity | Hover the opacity button, or focus it and press `Enter`, or `Ctrl + Scroll` (click to reset) |
|
|
38
|
+
| Drag mockup | Mouse drag on overlay |
|
|
39
|
+
| Nudge mockup (1px) | Arrow keys |
|
|
40
|
+
| Nudge mockup (10px) | `Shift` + Arrow keys |
|
|
41
|
+
| Enter solid mode (100% opacity) | Hold `Space` |
|
|
42
|
+
| Zoom (2x) in solid mode | Click |
|
|
43
|
+
| Pan in zoomed mode | Move mouse |
|
|
44
|
+
| Cycle scale (1x / 0.5x) | Toolbar button |
|
|
45
|
+
| Grid color opacity | Scroll over the color field in Grid Studio |
|
|
46
|
+
|
|
47
|
+
Moving the mockup only releases the alignment of the axis you move it along: center it horizontally, then nudge it down with the arrow keys to check a section further down the page.
|
|
43
48
|
|
|
44
49
|
### Mobile / Touch
|
|
45
50
|
|
|
46
|
-
| Action
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
51
|
+
| Action | Gesture |
|
|
52
|
+
| ------------------------- | -------------------------------------------------- |
|
|
53
|
+
| Add mockups | Mockup Studio |
|
|
54
|
+
| Show / Hide mockup | Toolbar button |
|
|
55
|
+
| Lock / Unlock position | Toolbar button |
|
|
56
|
+
| Snap to an edge or center | Tap the alignment button; tap again for top center |
|
|
57
|
+
| Adjust opacity | Tap for controls, or slide on the opacity button |
|
|
58
|
+
| Drag mockup | Touch drag on overlay |
|
|
59
|
+
| Toggle solid mode | Double-tap outside controls |
|
|
60
|
+
| Pinch zoom in solid mode | Two-finger pinch (0.25x–4x) |
|
|
61
|
+
| Pan in solid mode | Single finger drag |
|
|
62
|
+
| Cycle scale (1x / 0.5x) | Toolbar button |
|
|
56
63
|
|
|
57
64
|
## Installation
|
|
58
65
|
|
|
@@ -71,6 +78,16 @@ export default defineConfig({
|
|
|
71
78
|
});
|
|
72
79
|
```
|
|
73
80
|
|
|
81
|
+
The plugin only runs in dev (`vite serve`) and injects the tool into `index.html`.
|
|
82
|
+
|
|
83
|
+
### Any bundler / SSR frameworks (SvelteKit, Nuxt, Remix, ...)
|
|
84
|
+
|
|
85
|
+
Frameworks that render HTML themselves don't go through Vite's `index.html` transform. Import the package from your client entry instead; it is dropped from production builds:
|
|
86
|
+
|
|
87
|
+
```js
|
|
88
|
+
if (import.meta.env.DEV) import("pixel-mirror");
|
|
89
|
+
```
|
|
90
|
+
|
|
74
91
|
### Astro
|
|
75
92
|
|
|
76
93
|
```js
|
|
@@ -103,10 +120,36 @@ Remove in production.
|
|
|
103
120
|
|
|
104
121
|
## Note
|
|
105
122
|
|
|
106
|
-
|
|
123
|
+
Pixel Mirror leaves the host `<html>` element's `position` unchanged. The mockup uses a fixed viewport clip, with a separate scroll translation to keep it aligned with its document coordinates. Scrolling is separate from the image's move and scale transitions.
|
|
124
|
+
|
|
125
|
+
Scroll compensation runs in JavaScript and can [lag behind asynchronous scrolling](https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html) while the main thread is busy.
|
|
126
|
+
|
|
127
|
+
Avoid `transform` or `contain: layout` on `<html>`, which can affect the positioning of the mockup, toolbar and grids.
|
|
128
|
+
|
|
129
|
+
Spacing grids use alternating horizontal stripes with a default height of `8px`. Height accepts `px` and `rem`, with `4px`, `8px` and `16px` presets. Saved heights are retained.
|
|
107
130
|
|
|
108
131
|
On touch devices, browser pinch-to-zoom is temporarily disabled while the mockup overlay is visible to avoid conflicts with the tool's gesture handling. It reverts to normal when the overlay is hidden.
|
|
109
132
|
|
|
133
|
+
If your page enforces [Trusted Types](https://developer.mozilla.org/docs/Web/API/Trusted_Types_API) (`require-trusted-types-for 'script'`), allow the `svelte-trusted-html` policy in your dev CSP, e.g. `trusted-types your-policies svelte-trusted-html 'allow-duplicates'` (`'allow-duplicates'` is only needed if your app also uses Svelte).
|
|
134
|
+
|
|
135
|
+
## Development
|
|
136
|
+
|
|
137
|
+
Use Node.js 24 and pnpm 12.11.2:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
pnpm install --frozen-lockfile
|
|
141
|
+
pnpm check
|
|
142
|
+
pnpm lint
|
|
143
|
+
pnpm build
|
|
144
|
+
pnpm test:run
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
CI runs these checks on pushes and pull requests. The build runs before tests so the Vite plugin tests can serve the bundle.
|
|
148
|
+
|
|
149
|
+
Settings updates merge only changed fields in an IndexedDB transaction. Failed settings and resource loads retry when the window regains focus; failed writes retry on the next edit. Loading settings preserves edits whose writes are still in flight.
|
|
150
|
+
|
|
151
|
+
Layout and spacing grids use a 1%–99% opacity range and default to 10%. Grid colors entered as text, picked natively or loaded from stored settings are clamped to this range. Mockup opacity ranges from 10% to 90%, with a default of 50%. Solid mode uses 100% opacity for comparison.
|
|
152
|
+
|
|
110
153
|
## Credits
|
|
111
154
|
|
|
112
|
-
Icons
|
|
155
|
+
Icons from [Lucide](https://lucide.dev) (ISC License); see [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md).
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Third-Party Notices
|
|
2
|
+
|
|
3
|
+
The toolbar and panel icons are outlines from [Lucide](https://lucide.dev) (`src/components/icons/paths.ts`, the alignment dots adapted from `grip-horizontal` in `src/components/icons/AlignmentIcon.svelte`, and the select arrow `chevron-down` in `src/App.svelte`), bundled into `dist/index.js`. Of those, `chevron-down`, `circle-alert`, `columns-3`, `lock`, `moon`, `plus` and `trash-2` are derived from the Feather project.
|
|
4
|
+
|
|
5
|
+
## Lucide
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
ISC License
|
|
9
|
+
|
|
10
|
+
Copyright (c) 2026 Lucide Icons and Contributors
|
|
11
|
+
|
|
12
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
13
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
14
|
+
copyright notice and this permission notice appear in all copies.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
17
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
19
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
20
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
21
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
22
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Feather (for the icons derived from it)
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
The MIT License (MIT)
|
|
29
|
+
|
|
30
|
+
Copyright (c) 2013-present Cole Bemis
|
|
31
|
+
|
|
32
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
33
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
34
|
+
in the Software without restriction, including without limitation the rights
|
|
35
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
36
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
37
|
+
furnished to do so, subject to the following conditions:
|
|
38
|
+
|
|
39
|
+
The above copyright notice and this permission notice shall be included in all
|
|
40
|
+
copies or substantial portions of the Software.
|
|
41
|
+
|
|
42
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
43
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
44
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
45
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
46
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
47
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
48
|
+
SOFTWARE.
|
|
49
|
+
```
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){"use strict";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add("5");const $s=1,Es=2,yi=4,Ss=8,Ms=16,As=1,Ls=2,wi=4,Cs=8,Ts=1,Os=2,mi="[",Vr="[!",En="]",Lt={},ge=Symbol(),Gs="http://www.w3.org/1999/xhtml",Ps="@attach",Sn=!1;var Mn=Array.isArray,Ds=Array.prototype.indexOf,Wt=Array.prototype.includes,Xr=Array.from,Wr=Object.keys,qr=Object.defineProperty,qt=Object.getOwnPropertyDescriptor,ki=Object.getOwnPropertyDescriptors,Is=Object.prototype,js=Array.prototype,An=Object.getPrototypeOf,xi=Object.isExtensible;function Rs(e){for(var t=0;t<e.length;t++)e[t]()}function $i(){var e,t,r=new Promise((n,i)=>{e=n,t=i});return{promise:r,resolve:e,reject:t}}const me=2,Zr=4,Kr=8,Ln=1<<24,st=16,We=32,pt=64,Cn=128,Ne=512,_e=1024,xe=2048,at=4096,Oe=8192,lt=16384,Jr=32768,Zt=65536,Ei=1<<17,Si=1<<18,Ct=1<<19,zs=1<<20,ct=1<<25,Tt=32768,Tn=1<<21,On=1<<22,gt=1<<23,_t=Symbol("$state"),Ns=Symbol("legacy props"),Fs=Symbol(""),Kt=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Qr=3,Ot=8;function Mi(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Bs(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Us(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Hs(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Ys(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Vs(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Xs(){throw new Error("https://svelte.dev/e/hydration_failed")}function Ws(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function qs(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Zs(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Ks(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function gr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Js(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Qs(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let R=!1;function qe(e){R=e}let F;function $e(e){if(e===null)throw gr(),Lt;return F=e}function Jt(){return $e(Je(F))}function y(e){if(R){if(Je(F)!==null)throw gr(),Lt;F=e}}function ea(e=1){if(R){for(var t=e,r=F;t--;)r=Je(r);F=r}}function en(e=!0){for(var t=0,r=F;;){if(r.nodeType===Ot){var n=r.data;if(n===En){if(t===0)return r;t-=1}else(n===mi||n===Vr)&&(t+=1)}var i=Je(r);e&&r.remove(),r=i}}function Ai(e){if(!e||e.nodeType!==Ot)throw gr(),Lt;return e.data}function Li(e){return e===this.v}function Ci(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Ti(e){return!Ci(e,this.v)}let Qt=!1,ta=!1;function ra(){Qt=!0}let le=null;function er(e){le=e}function bt(e,t=!1,r){le={p:le,i:!1,c:null,e:null,s:e,x:null,l:Qt&&!t?{s:null,u:null,$:[]}:null}}function yt(e){var t=le,r=t.e;if(r!==null){t.e=null;for(var n of r)oo(n)}return t.i=!0,le=t.p,{}}function _r(){return!Qt||le!==null&&le.l===null}let Gt=[];function Oi(){var e=Gt;Gt=[],Rs(e)}function Ze(e){if(Gt.length===0&&!br){var t=Gt;queueMicrotask(()=>{t===Gt&&Oi()})}Gt.push(e)}function na(){for(;Gt.length>0;)Oi()}function Gi(e){var t=B;if(t===null)return U.f|=gt,e;if((t.f&Jr)===0){if((t.f&Cn)===0)throw e;t.b.error(e)}else tr(e,t)}function tr(e,t){for(;t!==null;){if((t.f&Cn)!==0)try{t.b.error(e);return}catch(r){e=r}t=t.parent}throw e}const ia=-7169;function he(e,t){e.f=e.f&ia|t}function Gn(e){(e.f&Ne)!==0||e.deps===null?he(e,_e):he(e,at)}function Pi(e){if(e!==null)for(const t of e)(t.f&me)===0||(t.f&Tt)===0||(t.f^=Tt,Pi(t.deps))}function Di(e,t,r){(e.f&xe)!==0?t.add(e):(e.f&at)!==0&&r.add(e),Pi(e.deps),he(e,_e)}const tn=new Set;let V=null,rn=null,Ke=null,Ge=[],nn=null,Pn=!1,br=!1;class ut{committed=!1;current=new Map;previous=new Map;#e=new Set;#t=new Set;#r=0;#o=0;#s=null;#i=new Set;#n=new Set;skipped_effects=new Set;is_fork=!1;#a=!1;is_deferred(){return this.is_fork||this.#o>0}process(t){Ge=[],this.apply();var r=[],n=[];for(const i of t)this.#l(i,r,n);if(this.is_deferred()){this.#c(n),this.#c(r);for(const i of this.skipped_effects)Fi(i)}else{for(const i of this.#e)i();this.#e.clear(),this.#r===0&&this.#u(),rn=this,V=null,Ri(n),Ri(r),rn=null,this.#s?.resolve()}Ke=null}#l(t,r,n){t.f^=_e;for(var i=t.first,o=null;i!==null;){var a=i.f,c=(a&(We|pt))!==0,l=c&&(a&_e)!==0,d=l||(a&Oe)!==0||this.skipped_effects.has(i);if(!d&&i.fn!==null){c?i.f^=_e:o!==null&&(a&(Zr|Kr|Ln))!==0?o.b.defer_effect(i):(a&Zr)!==0?r.push(i):mr(i)&&((a&st)!==0&&this.#n.add(i),kr(i));var v=i.first;if(v!==null){i=v;continue}}var h=i.parent;for(i=i.next;i===null&&h!==null;)h===o&&(o=null),i=h.next,h=h.parent}}#c(t){for(var r=0;r<t.length;r+=1)Di(t[r],this.#i,this.#n)}capture(t,r){r!==ge&&!this.previous.has(t)&&this.previous.set(t,r),(t.f>)===0&&(this.current.set(t,t.v),Ke?.set(t,t.v))}activate(){V=this,this.apply()}deactivate(){V===this&&(V=null,Ke=null)}flush(){if(this.activate(),Ge.length>0){if(ji(),V!==null&&V!==this)return}else this.#r===0&&this.process([]);this.deactivate()}discard(){for(const t of this.#t)t(this);this.#t.clear()}#u(){if(tn.size>1){this.previous.clear();var t=Ke,r=!0;for(const i of tn){if(i===this){r=!1;continue}const o=[];for(const[c,l]of this.current){if(i.current.has(c))if(r&&l!==i.current.get(c))i.current.set(c,l);else continue;o.push(c)}if(o.length===0)continue;const a=[...i.current.keys()].filter(c=>!this.current.has(c));if(a.length>0){var n=Ge;Ge=[];const c=new Set,l=new Map;for(const d of o)zi(d,a,c,l);if(Ge.length>0){V=i,i.apply();for(const d of Ge)i.#l(d,[],[]);i.deactivate()}Ge=n}}V=null,Ke=t}this.committed=!0,tn.delete(this)}increment(t){this.#r+=1,t&&(this.#o+=1)}decrement(t){this.#r-=1,t&&(this.#o-=1),!this.#a&&(this.#a=!0,Ze(()=>{this.#a=!1,this.is_deferred()?Ge.length>0&&this.flush():this.revive()}))}revive(){for(const t of this.#i)this.#n.delete(t),he(t,xe),ft(t);for(const t of this.#n)he(t,at),ft(t);this.flush()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}settled(){return(this.#s??=$i()).promise}static ensure(){if(V===null){const t=V=new ut;tn.add(V),br||Ze(()=>{V===t&&t.flush()})}return V}apply(){}}function Ii(e){var t=br;br=!0;try{for(var r;;){if(na(),Ge.length===0&&(V?.flush(),Ge.length===0))return nn=null,r;ji()}}finally{br=t}}function ji(){Pn=!0;var e=null;try{for(var t=0;Ge.length>0;){var r=ut.ensure();if(t++>1e3){var n,i;oa()}r.process(Ge),wt.clear()}}finally{Pn=!1,nn=null}}function oa(){try{Vs()}catch(e){tr(e,nn)}}let dt=null;function Ri(e){var t=e.length;if(t!==0){for(var r=0;r<t;){var n=e[r++];if((n.f&(lt|Oe))===0&&mr(n)&&(dt=new Set,kr(n),n.deps===null&&n.first===null&&n.nodes===null&&(n.teardown===null&&n.ac===null?uo(n):n.fn=null),dt?.size>0)){wt.clear();for(const i of dt){if((i.f&(lt|Oe))!==0)continue;const o=[i];let a=i.parent;for(;a!==null;)dt.has(a)&&(dt.delete(a),o.push(a)),a=a.parent;for(let c=o.length-1;c>=0;c--){const l=o[c];(l.f&(lt|Oe))===0&&kr(l)}}dt.clear()}}dt=null}}function zi(e,t,r,n){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const i of e.reactions){const o=i.f;(o&me)!==0?zi(i,t,r,n):(o&(On|st))!==0&&(o&xe)===0&&Ni(i,t,n)&&(he(i,xe),ft(i))}}function Ni(e,t,r){const n=r.get(e);if(n!==void 0)return n;if(e.deps!==null)for(const i of e.deps){if(Wt.call(t,i))return!0;if((i.f&me)!==0&&Ni(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function ft(e){for(var t=nn=e;t.parent!==null;){t=t.parent;var r=t.f;if(Pn&&t===B&&(r&st)!==0&&(r&Si)===0)return;if((r&(pt|We))!==0){if((r&_e)===0)return;t.f^=_e}}Ge.push(t)}function Fi(e){if(!((e.f&We)!==0&&(e.f&_e)!==0)){he(e,_e);for(var t=e.first;t!==null;)Fi(t),t=t.next}}function sa(e){let t=0,r=mt(0),n;return()=>{Fn()&&(s(r),wr(()=>(t===0&&(n=ir(()=>e(()=>yr(r)))),t+=1,()=>{Ze(()=>{t-=1,t===0&&(n?.(),n=void 0,yr(r))})})))}}var aa=Zt|Ct|Cn;function la(e,t,r){new ca(e,t,r)}class ca{parent;is_pending=!1;#e;#t=R?F:null;#r;#o;#s;#i=null;#n=null;#a=null;#l=null;#c=null;#u=0;#d=0;#h=!1;#v=!1;#p=new Set;#g=new Set;#f=null;#m=sa(()=>(this.#f=mt(this.#u),()=>{this.#f=null}));constructor(t,r,n){this.#e=t,this.#r=r,this.#o=n,this.parent=B.b,this.is_pending=!!this.#r.pending,this.#s=Un(()=>{if(B.b=this,R){const o=this.#t;Jt(),o.nodeType===Ot&&o.data===Vr?this.#x():(this.#k(),this.#d===0&&(this.is_pending=!1))}else{var i=this.#y();try{this.#i=Le(()=>n(i))}catch(o){this.error(o)}this.#d>0?this.#b():this.is_pending=!1}return()=>{this.#c?.remove()}},aa),R&&(this.#e=F)}#k(){try{this.#i=Le(()=>this.#o(this.#e))}catch(t){this.error(t)}}#x(){const t=this.#r.pending;t&&(this.#n=Le(()=>t(this.#e)),Ze(()=>{var r=this.#y();this.#i=this.#_(()=>(ut.ensure(),Le(()=>this.#o(r)))),this.#d>0?this.#b():(Dt(this.#n,()=>{this.#n=null}),this.is_pending=!1)}))}#y(){var t=this.#e;return this.is_pending&&(this.#c=Fe(),this.#e.before(this.#c),t=this.#c),t}defer_effect(t){Di(t,this.#p,this.#g)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#r.pending}#_(t){var r=B,n=U,i=le;Ue(this.#s),Be(this.#s),er(this.#s.ctx);try{return t()}catch(o){return Gi(o),null}finally{Ue(r),Be(n),er(i)}}#b(){const t=this.#r.pending;this.#i!==null&&(this.#l=document.createDocumentFragment(),this.#l.append(this.#c),ho(this.#i,this.#l)),this.#n===null&&(this.#n=Le(()=>t(this.#e)))}#w(t){if(!this.has_pending_snippet()){this.parent&&this.parent.#w(t);return}if(this.#d+=t,this.#d===0){this.is_pending=!1;for(const r of this.#p)he(r,xe),ft(r);for(const r of this.#g)he(r,at),ft(r);this.#p.clear(),this.#g.clear(),this.#n&&Dt(this.#n,()=>{this.#n=null}),this.#l&&(this.#e.before(this.#l),this.#l=null)}}update_pending_count(t){this.#w(t),this.#u+=t,!(!this.#f||this.#h)&&(this.#h=!0,Ze(()=>{this.#h=!1,this.#f&&rr(this.#f,this.#u)}))}get_effect_pending(){return this.#m(),s(this.#f)}error(t){var r=this.#r.onerror;let n=this.#r.failed;if(this.#v||!r&&!n)throw t;this.#i&&(be(this.#i),this.#i=null),this.#n&&(be(this.#n),this.#n=null),this.#a&&(be(this.#a),this.#a=null),R&&($e(this.#t),ea(),$e(en()));var i=!1,o=!1;const a=()=>{if(i){Qs();return}i=!0,o&&Ks(),ut.ensure(),this.#u=0,this.#a!==null&&Dt(this.#a,()=>{this.#a=null}),this.is_pending=this.has_pending_snippet(),this.#i=this.#_(()=>(this.#v=!1,Le(()=>this.#o(this.#e)))),this.#d>0?this.#b():this.is_pending=!1};Ze(()=>{try{o=!0,r?.(t,a),o=!1}catch(c){tr(c,this.#s&&this.#s.parent)}n&&(this.#a=this.#_(()=>{ut.ensure(),this.#v=!0;try{return Le(()=>{n(this.#e,()=>t,()=>a)})}catch(c){return tr(c,this.#s.parent),null}finally{this.#v=!1}}))})}}function Bi(e,t,r,n){const i=_r()?on:In;var o=e.filter(u=>!u.settled);if(r.length===0&&o.length===0){n(t.map(i));return}var a=V,c=B,l=ua(),d=o.length===1?o[0].promise:o.length>1?Promise.all(o.map(u=>u.promise)):null;function v(u){l();try{n(u)}catch(g){(c.f<)===0&&tr(g,c)}a?.deactivate(),Dn()}if(r.length===0){d.then(()=>v(t.map(i)));return}function h(){l(),Promise.all(r.map(u=>da(u))).then(u=>v([...t.map(i),...u])).catch(u=>tr(u,c))}d?d.then(h):h()}function ua(){var e=B,t=U,r=le,n=V;return function(o=!0){Ue(e),Be(t),er(r),o&&n?.activate()}}function Dn(){Ue(null),Be(null),er(null)}function on(e){var t=me|xe,r=U!==null&&(U.f&me)!==0?U:null;return B!==null&&(B.f|=Ct),{ctx:le,deps:null,effects:null,equals:Li,f:t,fn:e,reactions:null,rv:0,v:ge,wv:0,parent:r??B,ac:null}}function da(e,t,r){let n=B;n===null&&Bs();var i=n.b,o=void 0,a=mt(ge),c=!U,l=new Map;return wa(()=>{var d=$i();o=d.promise;try{Promise.resolve(e()).then(d.resolve,d.reject).then(()=>{v===V&&v.committed&&v.deactivate(),Dn()})}catch(g){d.reject(g),Dn()}var v=V;if(c){var h=i.is_rendered();i.update_pending_count(1),v.increment(h),l.get(v)?.reject(Kt),l.delete(v),l.set(v,d)}const u=(g,_=void 0)=>{if(v.activate(),_)_!==Kt&&(a.f|=gt,rr(a,_));else{(a.f>)!==0&&(a.f^=gt),rr(a,g);for(const[k,b]of l){if(l.delete(k),k===v)break;b.reject(Kt)}}c&&(i.update_pending_count(-1),v.decrement(h))};d.promise.then(u,g=>u(null,g||"unknown"))}),Bn(()=>{for(const d of l.values())d.reject(Kt)}),new Promise(d=>{function v(h){function u(){h===o?d(a):v(o)}h.then(u,u)}v(o)})}function se(e){const t=on(e);return go(t),t}function In(e){const t=on(e);return t.equals=Ti,t}function Ui(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r<t.length;r+=1)be(t[r])}}function fa(e){for(var t=e.parent;t!==null;){if((t.f&me)===0)return(t.f<)===0?t:null;t=t.parent}return null}function jn(e){var t,r=B;Ue(fa(e));try{e.f&=~Tt,Ui(e),t=mo(e)}finally{Ue(r)}return t}function Hi(e){var t=jn(e);if(!e.equals(t)&&(e.wv=yo(),(!V?.is_fork||e.deps===null)&&(e.v=t,e.deps===null))){he(e,_e);return}xt||(Ke!==null?(Fn()||V?.is_fork)&&Ke.set(e,t):Gn(e))}let Rn=new Set;const wt=new Map;let Yi=!1;function mt(e,t){var r={f:0,v:e,reactions:null,equals:Li,rv:0,wv:0};return r}function M(e,t){const r=mt(e);return go(r),r}function Vi(e,t=!1,r=!0){const n=mt(e);return t||(n.equals=Ti),Qt&&r&&le!==null&&le.l!==null&&(le.l.s??=[]).push(n),n}function f(e,t,r=!1){U!==null&&(!et||(U.f&Ei)!==0)&&_r()&&(U.f&(me|st|On|Ei))!==0&&(He===null||!Wt.call(He,e))&&Zs();let n=r?ce(t):t;return rr(e,n)}function rr(e,t){if(!e.equals(t)){var r=e.v;xt?wt.set(e,t):wt.set(e,r),e.v=t;var n=ut.ensure();if(n.capture(e,r),(e.f&me)!==0){const i=e;(e.f&xe)!==0&&jn(i),Gn(i)}e.wv=yo(),Wi(e,xe),_r()&&B!==null&&(B.f&_e)!==0&&(B.f&(We|pt))===0&&(Ye===null?ka([e]):Ye.push(e)),!n.is_fork&&Rn.size>0&&!Yi&&va()}return t}function va(){Yi=!1;for(const e of Rn)(e.f&_e)!==0&&he(e,at),mr(e)&&kr(e);Rn.clear()}function Xi(e,t=1){var r=s(e),n=t===1?r++:r--;return f(e,r),n}function yr(e){f(e,e.v+1)}function Wi(e,t){var r=e.reactions;if(r!==null)for(var n=_r(),i=r.length,o=0;o<i;o++){var a=r[o],c=a.f;if(!(!n&&a===B)){var l=(c&xe)===0;if(l&&he(a,t),(c&me)!==0){var d=a;Ke?.delete(d),(c&Tt)===0&&(c&Ne&&(a.f|=Tt),Wi(d,at))}else l&&((c&st)!==0&&dt!==null&&dt.add(a),ft(a))}}}function ce(e){if(typeof e!="object"||e===null||_t in e)return e;const t=An(e);if(t!==Is&&t!==js)return e;var r=new Map,n=Mn(e),i=M(0),o=jt,a=c=>{if(jt===o)return c();var l=U,d=jt;Be(null),bo(o);var v=c();return Be(l),bo(d),v};return n&&r.set("length",M(e.length)),new Proxy(e,{defineProperty(c,l,d){(!("value"in d)||d.configurable===!1||d.enumerable===!1||d.writable===!1)&&Ws();var v=r.get(l);return v===void 0?v=a(()=>{var h=M(d.value);return r.set(l,h),h}):f(v,d.value,!0),!0},deleteProperty(c,l){var d=r.get(l);if(d===void 0){if(l in c){const v=a(()=>M(ge));r.set(l,v),yr(i)}}else f(d,ge),yr(i);return!0},get(c,l,d){if(l===_t)return e;var v=r.get(l),h=l in c;if(v===void 0&&(!h||qt(c,l)?.writable)&&(v=a(()=>{var g=ce(h?c[l]:ge),_=M(g);return _}),r.set(l,v)),v!==void 0){var u=s(v);return u===ge?void 0:u}return Reflect.get(c,l,d)},getOwnPropertyDescriptor(c,l){var d=Reflect.getOwnPropertyDescriptor(c,l);if(d&&"value"in d){var v=r.get(l);v&&(d.value=s(v))}else if(d===void 0){var h=r.get(l),u=h?.v;if(h!==void 0&&u!==ge)return{enumerable:!0,configurable:!0,value:u,writable:!0}}return d},has(c,l){if(l===_t)return!0;var d=r.get(l),v=d!==void 0&&d.v!==ge||Reflect.has(c,l);if(d!==void 0||B!==null&&(!v||qt(c,l)?.writable)){d===void 0&&(d=a(()=>{var u=v?ce(c[l]):ge,g=M(u);return g}),r.set(l,d));var h=s(d);if(h===ge)return!1}return v},set(c,l,d,v){var h=r.get(l),u=l in c;if(n&&l==="length")for(var g=d;g<h.v;g+=1){var _=r.get(g+"");_!==void 0?f(_,ge):g in c&&(_=a(()=>M(ge)),r.set(g+"",_))}if(h===void 0)(!u||qt(c,l)?.writable)&&(h=a(()=>M(void 0)),f(h,ce(d)),r.set(l,h));else{u=h.v!==ge;var k=a(()=>ce(d));f(h,k)}var b=Reflect.getOwnPropertyDescriptor(c,l);if(b?.set&&b.set.call(v,d),!u){if(n&&typeof l=="string"){var $=r.get("length"),X=Number(l);Number.isInteger(X)&&X>=$.v&&f($,X+1)}yr(i)}return!0},ownKeys(c){s(i);var l=Reflect.ownKeys(c).filter(h=>{var u=r.get(h);return u===void 0||u.v!==ge});for(var[d,v]of r)v.v!==ge&&!(d in c)&&l.push(d);return l},setPrototypeOf(){qs()}})}function qi(e){try{if(e!==null&&typeof e=="object"&&_t in e)return e[_t]}catch{}return e}function ha(e,t){return Object.is(qi(e),qi(t))}var Zi,Ki,Ji,Qi;function zn(){if(Zi===void 0){Zi=window,Ki=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;Ji=qt(t,"firstChild").get,Qi=qt(t,"nextSibling").get,xi(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),xi(r)&&(r.__t=void 0)}}function Fe(e=""){return document.createTextNode(e)}function Pe(e){return Ji.call(e)}function Je(e){return Qi.call(e)}function w(e,t){if(!R)return Pe(e);var r=Pe(F);if(r===null)r=F.appendChild(Fe());else if(t&&r.nodeType!==Qr){var n=Fe();return r?.before(n),$e(n),n}return t&&Nn(r),$e(r),r}function kt(e,t=!1){if(!R){var r=Pe(e);return r instanceof Comment&&r.data===""?Je(r):r}if(t){if(F?.nodeType!==Qr){var n=Fe();return F?.before(n),$e(n),n}Nn(F)}return F}function A(e,t=1,r=!1){let n=R?F:e;for(var i;t--;)i=n,n=Je(n);if(!R)return n;if(r){if(n?.nodeType!==Qr){var o=Fe();return n===null?i?.after(o):n.before(o),$e(o),o}Nn(n)}return $e(n),n}function eo(e){e.textContent=""}function to(){return!1}function Nn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Qr;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function pa(e,t){if(t){const r=document.body;e.autofocus=!0,Ze(()=>{document.activeElement===r&&e.focus()})}}let ro=!1;function no(){ro||(ro=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function sn(e){var t=U,r=B;Be(null),Ue(null);try{return e()}finally{Be(t),Ue(r)}}function io(e,t,r,n=r){e.addEventListener(t,()=>sn(r));const i=e.__on_r;i?e.__on_r=()=>{i(),n(!0)}:e.__on_r=()=>n(!0),no()}function ga(e){B===null&&(U===null&&Ys(),Hs()),xt&&Us()}function _a(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function Qe(e,t,r){var n=B;n!==null&&(n.f&Oe)!==0&&(e|=Oe);var i={ctx:le,deps:null,nodes:null,f:e|xe|Ne,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};if(r)try{kr(i),i.f|=Jr}catch(c){throw be(i),c}else t!==null&&ft(i);var o=i;if(r&&o.deps===null&&o.teardown===null&&o.nodes===null&&o.first===o.last&&(o.f&Ct)===0&&(o=o.first,(e&st)!==0&&(e&Zt)!==0&&o!==null&&(o.f|=Zt)),o!==null&&(o.parent=n,n!==null&&_a(o,n),U!==null&&(U.f&me)!==0&&(e&pt)===0)){var a=U;(a.effects??=[]).push(o)}return i}function Fn(){return U!==null&&!et}function Bn(e){const t=Qe(Kr,null,!1);return he(t,_e),t.teardown=e,t}function Pt(e){ga();var t=B.f,r=!U&&(t&We)!==0&&(t&Jr)===0;if(r){var n=le;(n.e??=[]).push(e)}else return oo(e)}function oo(e){return Qe(Zr|zs,e,!1)}function ba(e){ut.ensure();const t=Qe(pt|Ct,e,!0);return()=>{be(t)}}function ya(e){ut.ensure();const t=Qe(pt|Ct,e,!0);return(r={})=>new Promise(n=>{r.outro?Dt(t,()=>{be(t),n(void 0)}):(be(t),n(void 0))})}function nr(e){return Qe(Zr,e,!1)}function wa(e){return Qe(On|Ct,e,!0)}function wr(e,t=0){return Qe(Kr|t,e,!0)}function Ee(e,t=[],r=[],n=[]){Bi(n,t,r,i=>{Qe(Kr,()=>e(...i.map(s)),!0)})}function Un(e,t=0){var r=Qe(st|t,e,!0);return r}function so(e,t=0){var r=Qe(Ln|t,e,!0);return r}function Le(e){return Qe(We|Ct,e,!0)}function ao(e){var t=e.teardown;if(t!==null){const r=xt,n=U;po(!0),Be(null);try{t.call(null)}finally{po(r),Be(n)}}}function lo(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const i=r.ac;i!==null&&sn(()=>{i.abort(Kt)});var n=r.next;(r.f&pt)!==0?r.parent=null:be(r,t),r=n}}function ma(e){for(var t=e.first;t!==null;){var r=t.next;(t.f&We)===0&&be(t),t=r}}function be(e,t=!0){var r=!1;(t||(e.f&Si)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(co(e.nodes.start,e.nodes.end),r=!0),lo(e,t&&!r),ln(e,0),he(e,lt);var n=e.nodes&&e.nodes.t;if(n!==null)for(const o of n)o.stop();ao(e);var i=e.parent;i!==null&&i.first!==null&&uo(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function co(e,t){for(;e!==null;){var r=e===t?null:Je(e);e.remove(),e=r}}function uo(e){var t=e.parent,r=e.prev,n=e.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),t!==null&&(t.first===e&&(t.first=n),t.last===e&&(t.last=r))}function Dt(e,t,r=!0){var n=[];fo(e,n,!0);var i=()=>{r&&be(e),t&&t()},o=n.length;if(o>0){var a=()=>--o||i();for(var c of n)c.out(a)}else i()}function fo(e,t,r){if((e.f&Oe)===0){e.f^=Oe;var n=e.nodes&&e.nodes.t;if(n!==null)for(const c of n)(c.is_global||r)&&t.push(c);for(var i=e.first;i!==null;){var o=i.next,a=(i.f&Zt)!==0||(i.f&We)!==0&&(e.f&st)!==0;fo(i,t,a?r:!1),i=o}}}function Hn(e){vo(e,!0)}function vo(e,t){if((e.f&Oe)!==0){e.f^=Oe,(e.f&_e)===0&&(he(e,xe),ft(e));for(var r=e.first;r!==null;){var n=r.next,i=(r.f&Zt)!==0||(r.f&We)!==0;vo(r,i?t:!1),r=n}var o=e.nodes&&e.nodes.t;if(o!==null)for(const a of o)(a.is_global||t)&&a.in()}}function ho(e,t){if(e.nodes)for(var r=e.nodes.start,n=e.nodes.end;r!==null;){var i=r===n?null:Je(r);t.append(r),r=i}}let an=!1,xt=!1;function po(e){xt=e}let U=null,et=!1;function Be(e){U=e}let B=null;function Ue(e){B=e}let He=null;function go(e){U!==null&&(He===null?He=[e]:He.push(e))}let Ce=null,De=0,Ye=null;function ka(e){Ye=e}let _o=1,It=0,jt=It;function bo(e){jt=e}function yo(){return++_o}function mr(e){var t=e.f;if((t&xe)!==0)return!0;if(t&me&&(e.f&=~Tt),(t&at)!==0){for(var r=e.deps,n=r.length,i=0;i<n;i++){var o=r[i];if(mr(o)&&Hi(o),o.wv>e.wv)return!0}(t&Ne)!==0&&Ke===null&&he(e,_e)}return!1}function wo(e,t,r=!0){var n=e.reactions;if(n!==null&&!(He!==null&&Wt.call(He,e)))for(var i=0;i<n.length;i++){var o=n[i];(o.f&me)!==0?wo(o,t,!1):t===o&&(r?he(o,xe):(o.f&_e)!==0&&he(o,at),ft(o))}}function mo(e){var t=Ce,r=De,n=Ye,i=U,o=He,a=le,c=et,l=jt,d=e.f;Ce=null,De=0,Ye=null,U=(d&(We|pt))===0?e:null,He=null,er(e.ctx),et=!1,jt=++It,e.ac!==null&&(sn(()=>{e.ac.abort(Kt)}),e.ac=null);try{e.f|=Tn;var v=e.fn,h=v(),u=e.deps,g=V?.is_fork;if(Ce!==null){var _;if(g||ln(e,De),u!==null&&De>0)for(u.length=De+Ce.length,_=0;_<Ce.length;_++)u[De+_]=Ce[_];else e.deps=u=Ce;if(Fn()&&(e.f&Ne)!==0)for(_=De;_<u.length;_++)(u[_].reactions??=[]).push(e)}else!g&&u!==null&&De<u.length&&(ln(e,De),u.length=De);if(_r()&&Ye!==null&&!et&&u!==null&&(e.f&(me|at|xe))===0)for(_=0;_<Ye.length;_++)wo(Ye[_],e);if(i!==null&&i!==e){if(It++,i.deps!==null)for(let k=0;k<r;k+=1)i.deps[k].rv=It;if(t!==null)for(const k of t)k.rv=It;Ye!==null&&(n===null?n=Ye:n.push(...Ye))}return(e.f>)!==0&&(e.f^=gt),h}catch(k){return Gi(k)}finally{e.f^=Tn,Ce=t,De=r,Ye=n,U=i,He=o,er(a),et=c,jt=l}}function xa(e,t){let r=t.reactions;if(r!==null){var n=Ds.call(r,e);if(n!==-1){var i=r.length-1;i===0?r=t.reactions=null:(r[n]=r[i],r.pop())}}if(r===null&&(t.f&me)!==0&&(Ce===null||!Wt.call(Ce,t))){var o=t;(o.f&Ne)!==0&&(o.f^=Ne,o.f&=~Tt),Gn(o),Ui(o),ln(o,0)}}function ln(e,t){var r=e.deps;if(r!==null)for(var n=t;n<r.length;n++)xa(e,r[n])}function kr(e){var t=e.f;if((t<)===0){he(e,_e);var r=B,n=an;B=e,an=!0;try{(t&(st|Ln))!==0?ma(e):lo(e),ao(e);var i=mo(e);e.teardown=typeof i=="function"?i:null,e.wv=_o;var o;Sn&&ta&&(e.f&xe)!==0&&e.deps}finally{an=n,B=r}}}async function $a(){await Promise.resolve(),Ii()}function s(e){var t=e.f,r=(t&me)!==0;if(U!==null&&!et){var n=B!==null&&(B.f<)!==0;if(!n&&(He===null||!Wt.call(He,e))){var i=U.deps;if((U.f&Tn)!==0)e.rv<It&&(e.rv=It,Ce===null&&i!==null&&i[De]===e?De++:Ce===null?Ce=[e]:Ce.push(e));else{(U.deps??=[]).push(e);var o=e.reactions;o===null?e.reactions=[U]:Wt.call(o,U)||o.push(U)}}}if(xt&&wt.has(e))return wt.get(e);if(r){var a=e;if(xt){var c=a.v;return((a.f&_e)===0&&a.reactions!==null||xo(a))&&(c=jn(a)),wt.set(a,c),c}var l=(a.f&Ne)===0&&!et&&U!==null&&(an||(U.f&Ne)!==0),d=a.deps===null;mr(a)&&(l&&(a.f|=Ne),Hi(a)),l&&!d&&ko(a)}if(Ke?.has(e))return Ke.get(e);if((e.f>)!==0)throw e.v;return e.v}function ko(e){if(e.deps!==null){e.f|=Ne;for(const t of e.deps)(t.reactions??=[]).push(e),(t.f&me)!==0&&(t.f&Ne)===0&&ko(t)}}function xo(e){if(e.v===ge)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(wt.has(t)||(t.f&me)!==0&&xo(t))return!0;return!1}function ir(e){var t=et;try{return et=!0,e()}finally{et=t}}function Ea(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(_t in e)Yn(e);else if(!Array.isArray(e))for(let t in e){const r=e[t];typeof r=="object"&&r&&_t in r&&Yn(r)}}}function Yn(e,t=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let n in e)try{Yn(e[n],t)}catch{}const r=An(e);if(r!==Object.prototype&&r!==Array.prototype&&r!==Map.prototype&&r!==Set.prototype&&r!==Date.prototype){const n=ki(r);for(let i in n){const o=n[i].get;if(o)try{o.call(e)}catch{}}}}}const $o=new Set,Vn=new Set;function Eo(e){if(!R)return;e.removeAttribute("onload"),e.removeAttribute("onerror");const t=e.__e;t!==void 0&&(e.__e=void 0,queueMicrotask(()=>{e.isConnected&&e.dispatchEvent(t)}))}function So(e,t,r,n={}){function i(o){if(n.capture||$r.call(t,o),!o.cancelBubble)return sn(()=>r?.call(this,o))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Ze(()=>{t.addEventListener(e,i,n)}):t.addEventListener(e,i,n),i}function or(e,t,r,n,i){var o={capture:n,passive:i},a=So(e,t,r,o);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Bn(()=>{t.removeEventListener(e,a,o)})}function xr(e){for(var t=0;t<e.length;t++)$o.add(e[t]);for(var r of Vn)r(e)}let Mo=null;function $r(e){var t=this,r=t.ownerDocument,n=e.type,i=e.composedPath?.()||[],o=i[0]||e.target;Mo=e;var a=0,c=Mo===e&&e.__root;if(c){var l=i.indexOf(c);if(l!==-1&&(t===document||t===window)){e.__root=t;return}var d=i.indexOf(t);if(d===-1)return;l<=d&&(a=l)}if(o=i[a]||e.target,o!==t){qr(e,"currentTarget",{configurable:!0,get(){return o||r}});var v=U,h=B;Be(null),Ue(null);try{for(var u,g=[];o!==null;){var _=o.assignedSlot||o.parentNode||o.host||null;try{var k=o["__"+n];k!=null&&(!o.disabled||e.target===o)&&k.call(o,e)}catch(b){u?g.push(b):u=b}if(e.cancelBubble||_===t||_===null)break;o=_}if(u){for(let b of g)queueMicrotask(()=>{throw b});throw u}}finally{e.__root=t,delete e.currentTarget,Be(v),Ue(h)}}}function Xn(e){var t=document.createElement("template");return t.innerHTML=e.replaceAll("<!>","<!---->"),t.content}function rt(e,t){var r=B;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function ye(e,t){var r=(t&Ts)!==0,n=(t&Os)!==0,i,o=!e.startsWith("<!>");return()=>{if(R)return rt(F,null),F;i===void 0&&(i=Xn(o?e:"<!>"+e),r||(i=Pe(i)));var a=n||Ki?document.importNode(i,!0):i.cloneNode(!0);if(r){var c=Pe(a),l=a.lastChild;rt(c,l)}else rt(a,a);return a}}function Sa(e,t,r="svg"){var n=!e.startsWith("<!>"),i=`<${r}>${n?e:"<!>"+e}</${r}>`,o;return()=>{if(R)return rt(F,null),F;if(!o){var a=Xn(i),c=Pe(a);o=Pe(c)}var l=o.cloneNode(!0);return rt(l,l),l}}function ue(e,t){return Sa(e,t,"svg")}function sr(){if(R)return rt(F,null),F;var e=document.createDocumentFragment(),t=document.createComment(""),r=Fe();return e.append(t,r),rt(t,r),e}function G(e,t){if(R){var r=B;((r.f&Jr)===0||r.nodes.end===null)&&(r.nodes.end=F),Jt();return}e!==null&&e.before(t)}function Ma(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Aa=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function La(e){return Aa.includes(e)}const Ca={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function Ta(e){return e=e.toLowerCase(),Ca[e]??e}const Oa=["touchstart","touchmove"];function Ga(e){return Oa.includes(e)}function vt(e,t){var r=t==null?"":typeof t=="object"?t+"":t;r!==(e.__t??=e.nodeValue)&&(e.__t=r,e.nodeValue=r+"")}function Ao(e,t){return Lo(e,t)}function Pa(e,t){zn(),t.intro=t.intro??!1;const r=t.target,n=R,i=F;try{for(var o=Pe(r);o&&(o.nodeType!==Ot||o.data!==mi);)o=Je(o);if(!o)throw Lt;qe(!0),$e(o);const a=Lo(e,{...t,anchor:o});return qe(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
|
|
2
|
-
`).some(
|
|
3
|
-
\r\f \v\uFEFF`];function Ya(e,t,r){var n=e==null?"":""+e;if(t&&(n=n?n+" "+t:t),r){for(var i in r)if(r[i])n=n?n+" "+i:i;else if(n.length)for(var o=i.length,a=0;(a=n.indexOf(i,a))>=0;){var c=a+o;(a===0||Go.includes(n[a-1]))&&(c===n.length||Go.includes(n[c]))?n=(a===0?"":n.substring(0,a))+n.substring(c+1):a=c}}return n===""?null:n}function Po(e,t=!1){var r=t?" !important;":";",n="";for(var i in e){var o=e[i];o!=null&&o!==""&&(n+=" "+i+": "+o+r)}return n}function Kn(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Va(e,t){if(t){var r="",n,i;if(Array.isArray(t)?(n=t[0],i=t[1]):n=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var o=!1,a=0,c=!1,l=[];n&&l.push(...Object.keys(n).map(Kn)),i&&l.push(...Object.keys(i).map(Kn));var d=0,v=-1;const k=e.length;for(var h=0;h<k;h++){var u=e[h];if(c?u==="/"&&e[h-1]==="*"&&(c=!1):o?o===u&&(o=!1):u==="/"&&e[h+1]==="*"?c=!0:u==='"'||u==="'"?o=u:u==="("?a++:u===")"&&a--,!c&&o===!1&&a===0){if(u===":"&&v===-1)v=h;else if(u===";"||h===k-1){if(v!==-1){var g=Kn(e.substring(d,v).trim());if(!l.includes(g)){u!==";"&&h++;var _=e.substring(d,h).trim();r+=" "+_+";"}}d=h+1,v=-1}}}}return n&&(r+=Po(n)),i&&(r+=Po(i,!0)),r=r.trim(),r===""?null:r}return e==null?null:String(e)}function ke(e,t,r,n,i,o){var a=e.__className;if(R||a!==r||a===void 0){var c=Ya(r,n,o);(!R||c!==e.getAttribute("class"))&&(c==null?e.removeAttribute("class"):t?e.className=c:e.setAttribute("class",c)),e.__className=r}else if(o&&i!==o)for(var l in o){var d=!!o[l];(i==null||d!==!!i[l])&&e.classList.toggle(l,d)}return o}function Jn(e,t={},r,n){for(var i in r){var o=r[i];t[i]!==o&&(r[i]==null?e.style.removeProperty(i):e.style.setProperty(i,o,n))}}function Et(e,t,r,n){var i=e.__style;if(R||i!==t){var o=Va(t,n);(!R||o!==e.getAttribute("style"))&&(o==null?e.removeAttribute("style"):e.style.cssText=o),e.__style=t}else n&&(Array.isArray(n)?(Jn(e,r?.[0],n[0]),Jn(e,r?.[1],n[1],"important")):Jn(e,r,n));return n}function un(e,t,r=!1){if(e.multiple){if(t==null)return;if(!Mn(t))return Js();for(var n of e.options)n.selected=t.includes(Mr(n));return}for(n of e.options){var i=Mr(n);if(ha(i,t)){n.selected=!0;return}}(!r||t!==void 0)&&(e.selectedIndex=-1)}function Do(e){var t=new MutationObserver(()=>{un(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Bn(()=>{t.disconnect()})}function Io(e,t,r=t){var n=new WeakSet,i=!0;io(e,"change",o=>{var a=o?"[selected]":":checked",c;if(e.multiple)c=[].map.call(e.querySelectorAll(a),Mr);else{var l=e.querySelector(a)??e.querySelector("option:not([disabled])");c=l&&Mr(l)}r(c),V!==null&&n.add(V)}),nr(()=>{var o=t();if(e===document.activeElement){var a=rn??V;if(n.has(a))return}if(un(e,o,i),i&&o===void 0){var c=e.querySelector(":checked");c!==null&&(o=Mr(c),r(o))}e.__value=o,i=!1}),Do(e)}function Mr(e){return"__value"in e?e.__value:e.value}const Ar=Symbol("class"),Lr=Symbol("style"),jo=Symbol("is custom element"),Ro=Symbol("is html");function zt(e){if(R){var t=!1,r=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var n=e.value;tt(e,"value",null),e.value=n}if(e.hasAttribute("checked")){var i=e.checked;tt(e,"checked",null),e.checked=i}}};e.__on_r=r,Ze(r),no()}}function Xa(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function tt(e,t,r,n){var i=zo(e);R&&(i[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName==="LINK")||i[t]!==(i[t]=r)&&(t==="loading"&&(e[Fs]=r),r==null?e.removeAttribute(t):typeof r!="string"&&Fo(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function Wa(e,t,r,n,i=!1,o=!1){if(R&&i&&e.tagName==="INPUT"){var a=e,c=a.type==="checkbox"?"defaultChecked":"defaultValue";c in r||zt(a)}var l=zo(e),d=l[jo],v=!l[Ro];let h=R&&d;h&&qe(!1);var u=t||{},g=e.tagName==="OPTION";for(var _ in t)_ in r||(r[_]=null);r.class?r.class=Ha(r.class):r[Ar]&&(r.class=null),r[Lr]&&(r.style??=null);var k=Fo(e);for(const C in r){let S=r[C];if(g&&C==="value"&&S==null){e.value=e.__value="",u[C]=S;continue}if(C==="class"){var b=e.namespaceURI==="http://www.w3.org/1999/xhtml";ke(e,b,S,n,t?.[Ar],r[Ar]),u[C]=S,u[Ar]=r[Ar];continue}if(C==="style"){Et(e,S,t?.[Lr],r[Lr]),u[C]=S,u[Lr]=r[Lr];continue}var $=u[C];if(!(S===$&&!(S===void 0&&e.hasAttribute(C)))){u[C]=S;var X=C[0]+C[1];if(X!=="$$")if(X==="on"){const I={},H="$$"+C;let L=C.slice(2);var ne=La(L);if(Ma(L)&&(L=L.slice(0,-7),I.capture=!0),!ne&&$){if(S!=null)continue;e.removeEventListener(L,u[H],I),u[H]=null}if(S!=null)if(ne)e[`__${L}`]=S,xr([L]);else{let Q=function(oe){u[C].call(this,oe)};u[H]=So(L,e,Q,I)}else ne&&(e[`__${L}`]=void 0)}else if(C==="style")tt(e,C,S);else if(C==="autofocus")pa(e,!!S);else if(!d&&(C==="__value"||C==="value"&&S!=null))e.value=e.__value=S;else if(C==="selected"&&g)Xa(e,S);else{var D=C;v||(D=Ta(D));var Z=D==="defaultValue"||D==="defaultChecked";if(S==null&&!d&&!Z)if(l[C]=null,D==="value"||D==="checked"){let I=e;const H=t===void 0;if(D==="value"){let L=I.defaultValue;I.removeAttribute(D),I.defaultValue=L,I.value=I.__value=H?L:null}else{let L=I.defaultChecked;I.removeAttribute(D),I.defaultChecked=L,I.checked=H?L:!1}}else e.removeAttribute(C);else Z||k.includes(D)&&(d||typeof S!="string")?(e[D]=S,D in l&&(l[D]=ge)):typeof S!="function"&&tt(e,D,S)}}}return h&&qe(!0),u}function fe(e,t,r=[],n=[],i=[],o,a=!1,c=!1){Bi(i,r,n,l=>{var d=void 0,v={},h=e.nodeName==="SELECT",u=!1;if(so(()=>{var _=t(...l.map(s)),k=Wa(e,d,_,o,a,c);u&&h&&"value"in _&&un(e,_.value);for(let $ of Object.getOwnPropertySymbols(v))_[$]||be(v[$]);for(let $ of Object.getOwnPropertySymbols(_)){var b=_[$];$.description===Ps&&(!d||b!==d[$])&&(v[$]&&be(v[$]),v[$]=Le(()=>Ba(e,()=>b))),k[$]=b}d=k}),h){var g=e;nr(()=>{un(g,d.value,!0),Do(g)})}u=!0})}function zo(e){return e.__attributes??={[jo]:e.nodeName.includes("-"),[Ro]:e.namespaceURI===Gs}}var No=new Map;function Fo(e){var t=e.getAttribute("is")||e.nodeName,r=No.get(t);if(r)return r;No.set(t,r=[]);for(var n,i=e,o=Element.prototype;o!==i;){n=ki(i);for(var a in n)n[a].set&&r.push(a);i=An(i)}return r}function cr(e,t,r=t){var n=new WeakSet;io(e,"input",async i=>{var o=i?e.defaultValue:e.value;if(o=Qn(e)?ei(o):o,r(o),V!==null&&n.add(V),await $a(),o!==(o=t())){var a=e.selectionStart,c=e.selectionEnd,l=e.value.length;if(e.value=o??"",c!==null){var d=e.value.length;a===c&&c===l&&d>l?(e.selectionStart=d,e.selectionEnd=d):(e.selectionStart=a,e.selectionEnd=Math.min(c,d))}}}),(R&&e.defaultValue!==e.value||ir(t)==null&&e.value)&&(r(Qn(e)?ei(e.value):e.value),V!==null&&n.add(V)),wr(()=>{var i=t();if(e===document.activeElement){var o=rn??V;if(n.has(o))return}Qn(e)&&i===ei(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}function Qn(e){var t=e.type;return t==="number"||t==="range"}function ei(e){return e===""?null:+e}function Bo(e,t){return e===t||e?.[_t]===t}function qa(e={},t,r,n){return nr(()=>{var i,o;return wr(()=>{i=o,o=[],ir(()=>{e!==r(...o)&&(t(e,...o),i&&Bo(r(...i),e)&&t(null,...i))})}),()=>{Ze(()=>{o&&Bo(r(...o),e)&&t(null,...o)})}}),e}const Za={get(e,t){if(!e.exclude.includes(t))return s(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,r){if(!(t in e.special)){var n=B;try{Ue(e.parent_effect),e.special[t]=Ka({get[t](){return e.props[t]}},t,wi)}finally{Ue(n)}}return e.special[t](r),Xi(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),Xi(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function ve(e,t){return new Proxy({props:e,exclude:t,special:{},version:mt(0),parent_effect:B},Za)}function Ka(e,t,r,n){var i=!Qt||(r&Ls)!==0,o=(r&Cs)!==0,a=n,c=!0,l=()=>(c&&(c=!1,a=n),a);e[t];var d;if(i?d=()=>{var g=e[t];return g===void 0?l():(c=!0,g)}:d=()=>{var g=e[t];return g!==void 0&&(a=void 0),g===void 0?a:g},i&&(r&wi)===0)return d;var v=!1,h=((r&As)!==0?on:In)(()=>(v=!1,d())),u=B;return(function(g,_){if(arguments.length>0){const k=_?s(h):i&&o?ce(g):g;return f(h,k),v=!0,a!==void 0&&(a=k),g}return xt&&v||(u.f<)!==0?h.v:s(h)})}function Ja(e){return new Qa(e)}class Qa{#e;#t;constructor(t){var r=new Map,n=(o,a)=>{var c=Vi(a,!1,!1);return r.set(o,c),c};const i=new Proxy({...t.props||{},$$events:{}},{get(o,a){return s(r.get(a)??n(a,Reflect.get(o,a)))},has(o,a){return a===Ns?!0:(s(r.get(a)??n(a,Reflect.get(o,a))),Reflect.has(o,a))},set(o,a,c){return f(r.get(a)??n(a,c),c),Reflect.set(o,a,c)}});this.#t=(t.hydrate?Pa:Ao)(t.component,{target:t.target,anchor:t.anchor,props:i,context:t.context,intro:t.intro??!1,recover:t.recover}),(!t?.props?.$$host||t.sync===!1)&&Ii(),this.#e=i.$$events;for(const o of Object.keys(this.#t))o==="$set"||o==="$destroy"||o==="$on"||qr(this,o,{get(){return this.#t[o]},set(a){this.#t[o]=a},enumerable:!0});this.#t.$set=o=>{Object.assign(i,o)},this.#t.$destroy=()=>{Da(this.#t)}}$set(t){this.#t.$set(t)}$on(t,r){this.#e[t]=this.#e[t]||[];const n=(...i)=>r.call(this,...i);return this.#e[t].push(n),()=>{this.#e[t]=this.#e[t].filter(i=>i!==n)}}$destroy(){this.#t.$destroy()}}let Uo;typeof HTMLElement=="function"&&(Uo=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,r){super(),this.$$ctor=e,this.$$s=t,r&&(this.$$shadowRoot=this.attachShadow(r))}addEventListener(e,t,r){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const n=this.$$c.$on(e,t);this.$$l_u.set(t,n)}super.addEventListener(e,t,r)}removeEventListener(e,t,r){if(super.removeEventListener(e,t,r),this.$$c){const n=this.$$l_u.get(t);n&&(n(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(n){return i=>{const o=document.createElement("slot");n!=="default"&&(o.name=n),G(i,o)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},r=el(this);for(const n of this.$$s)n in r&&(n==="default"&&!this.$$d.children?(this.$$d.children=e(n),t.default=!0):t[n]=e(n));for(const n of this.attributes){const i=this.$$g_p(n.name);i in this.$$d||(this.$$d[i]=dn(i,n.value,this.$$p_d,"toProp"))}for(const n in this.$$p_d)!(n in this.$$d)&&this[n]!==void 0&&(this.$$d[n]=this[n],delete this[n]);this.$$c=Ja({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ba(()=>{wr(()=>{this.$$r=!0;for(const n of Wr(this.$$c)){if(!this.$$p_d[n]?.reflect)continue;this.$$d[n]=this.$$c[n];const i=dn(n,this.$$d[n],this.$$p_d,"toAttribute");i==null?this.removeAttribute(this.$$p_d[n].attribute||n):this.setAttribute(this.$$p_d[n].attribute||n,i)}this.$$r=!1})});for(const n in this.$$l)for(const i of this.$$l[n]){const o=this.$$c.$on(n,i);this.$$l_u.set(i,o)}this.$$l={}}}attributeChangedCallback(e,t,r){this.$$r||(e=this.$$g_p(e),this.$$d[e]=dn(e,r,this.$$p_d,"toProp"),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return Wr(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function dn(e,t,r,n){const i=r[e]?.type;if(t=i==="Boolean"&&typeof t!="boolean"?t!=null:t,!n||!r[e])return t;if(n==="toAttribute")switch(i){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t??null;default:return t}else switch(i){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function el(e){const t={};return e.childNodes.forEach(r=>{t[r.slot||"default"]=!0}),t}function Nt(e,t,r,n,i,o){let a=class extends Uo{constructor(){super(e,r,i),this.$$p_d=t}static get observedAttributes(){return Wr(t).map(c=>(t[c].attribute||c).toLowerCase())}};return Wr(t).forEach(c=>{qr(a.prototype,c,{get(){return this.$$c&&c in this.$$c?this.$$c[c]:this.$$d[c]},set(l){l=dn(c,l,t),this.$$d[c]=l;var d=this.$$c;if(d){var v=qt(d,c)?.get;v?d[c]=l:d.$set({[c]:l})}}})}),n.forEach(c=>{qr(a.prototype,c,{get(){return this.$$c?.[c]}})}),e.element=a,a}let ti=null;function Cr(){return ti===null&&(ti="ontouchstart"in window||navigator.maxTouchPoints>0),ti}let ri=null,Ho=!1;function Yo(){return ri==="touch"}function tl(e){ri=e.pointerType}function rl(){Ho||(document.addEventListener("pointerdown",e=>{ri=e.pointerType},{capture:!0,passive:!0}),Ho=!0)}ra();var nl=ue("<svg><!></svg>");function il(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=nl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M16.502 10.002c.844 0 1.818-.083 2.299.75.201.348.201.816.201 1.75v1c0 .935 0 1.402-.201 1.75-.481.834-1.455.75-2.299.75s-1.818.084-2.3-.75c-.2-.348-.2-.815-.2-1.75v-1c0-.934 0-1.402.2-1.75.482-.833 1.456-.75 2.3-.75M7.502 4.002c.844 0 1.818-.083 2.299.75.201.348.201.816.201 1.75v7c0 .935 0 1.402-.201 1.75-.481.834-1.455.75-2.3.75-.843 0-1.817.084-2.298-.75-.201-.348-.201-.815-.201-1.75v-7c0-.934 0-1.402.2-1.75.482-.833 1.456-.75 2.3-.75M22 20H2"/>',!0),y(n),G(e,n)}var ol=ue("<svg><!></svg>");function sl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=ol();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 19v3M12 10v4M12 2v3M8 7.5c0-.844-.083-1.818.75-2.299C9.098 5 9.566 5 10.5 5h3c.935 0 1.402 0 1.75.201.834.481.75 1.455.75 2.299s.084 1.818-.75 2.299c-.348.201-.815.201-1.75.201h-3c-.934 0-1.402 0-1.75-.201C7.917 9.318 8 8.344 8 7.5M4 16.5c0-.844-.083-1.818.75-2.299C5.098 14 5.566 14 6.5 14h11c.935 0 1.402 0 1.75.201.834.481.75 1.455.75 2.299s.084 1.818-.75 2.299c-.348.201-.815.201-1.75.201h-11c-.934 0-1.402 0-1.75-.201C3.917 18.318 4 17.344 4 16.5"/>',!0),y(n),G(e,n)}var al=ue("<svg><!></svg>");function ll(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=al();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8.002 7.5c0-.844-.083-1.818.75-2.299C9.1 5 9.568 5 10.502 5h1c.935 0 1.402 0 1.75.201.834.481.75 1.455.75 2.299s.084 1.818-.75 2.299c-.348.201-.815.201-1.75.201h-1c-.934 0-1.402 0-1.75-.201-.833-.481-.75-1.455-.75-2.299M8.002 16.5c0-.844-.083-1.818.75-2.299C9.1 14 9.568 14 10.502 14h7c.935 0 1.402 0 1.75.201.834.481.75 1.455.75 2.299s.084 1.818-.75 2.299c-.348.201-.815.201-1.75.201h-7c-.934 0-1.402 0-1.75-.201-.833-.481-.75-1.455-.75-2.299M4 2v20"/>',!0),y(n),G(e,n)}var cl=ue("<svg><!></svg>");function ul(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=cl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M10 7.5c0-.844-.083-1.818.75-2.299C11.098 5 11.566 5 12.5 5h1c.935 0 1.402 0 1.75.201.834.481.75 1.455.75 2.299s.084 1.818-.75 2.299c-.348.201-.815.201-1.75.201h-1c-.934 0-1.402 0-1.75-.201C9.917 9.318 10 8.344 10 7.5M4 16.5c0-.844-.083-1.818.75-2.299C5.098 14 5.566 14 6.5 14h7c.935 0 1.402 0 1.75.201.834.481.75 1.455.75 2.299s.084 1.818-.75 2.299c-.348.201-.815.201-1.75.201h-7c-.934 0-1.402 0-1.75-.201C3.917 18.318 4 17.344 4 16.5M20 2v20"/>',!0),y(n),G(e,n)}var dl=ue("<svg><!></svg>");function fl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=dl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M16.502 8c.844 0 1.818-.083 2.299.75.201.348.201.815.201 1.75v1c0 .934 0 1.402-.201 1.75-.481.833-1.455.75-2.299.75s-1.818.083-2.3-.75c-.2-.348-.2-.816-.2-1.75v-1c0-.935 0-1.402.2-1.75.482-.833 1.456-.75 2.3-.75M7.502 8c.844 0 1.818-.083 2.299.75.201.348.201.815.201 1.75v7c0 .934 0 1.402-.201 1.75-.481.833-1.455.75-2.3.75-.843 0-1.817.083-2.298-.75-.201-.348-.201-.816-.201-1.75v-7c0-.935 0-1.402.2-1.75.482-.833 1.456-.75 2.3-.75M22 4H2"/>',!0),y(n),G(e,n)}var vl=ue("<svg><!></svg>");function hl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=vl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3.891 3.891C5.282 2.5 7.521 2.5 12 2.5c4.478 0 6.718 0 8.109 1.391S21.5 7.521 21.5 12c0 4.478 0 6.718-1.391 8.109S16.479 21.5 12 21.5c-4.478 0-6.718 0-8.109-1.391S2.5 16.479 2.5 12c0-4.478 0-6.718 1.391-8.109"/>',!0),y(n),G(e,n)}var pl=ue("<svg><!></svg>");function gl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=pl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4.008 5c.59-.607 2.159-3 2.999-3s2.409 2.393 2.999 3m-3-2.15V22M19.002 13.995c.607.59 3 2.159 3 2.999s-2.393 2.409-3 2.998m2.189-2.998H1.998"/>',!0),y(n),G(e,n)}var _l=ue("<svg><!></svg>");function bl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=_l();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M9.667 22h4.666M3.015 16.5c-.017-.5-.018-1-.016-1.5m17.986 1.5c.017-.5.018-1 .017-1.5M3.537 19.255a5 5 0 0 0 2.226 2.217m12.417.028a5 5 0 0 0 2.283-2.245"/><path stroke="currentColor" stroke-width="1.5" d="M5.505 12c-1.86 0-2.498-.54-2.498-2.5 0-2.532-.25-5.454 2.248-6.897C6.3 2 7.7 2 10.501 2H13.5c2.801 0 4.202 0 5.246.603 2.498 1.443 2.248 4.365 2.248 6.897 0 1.862-.54 2.5-2.498 2.5z"/>',!0),y(n),G(e,n)}var yl=ue("<svg><!></svg>");function wl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=yl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3.891 20.109C2.5 18.717 2.5 16.479 2.5 12c0-4.478 0-6.718 1.391-8.109S7.521 2.5 12 2.5c4.478 0 6.718 0 8.109 1.391S21.5 7.521 21.5 12c0 4.478 0 6.718-1.391 8.109S16.479 21.5 12 21.5c-4.478 0-6.718 0-8.109-1.391"/><path stroke="currentColor" stroke-width="1.5" d="M2.5 9h19M2.5 15h19M16 21.5v-19M8 21.5v-19"/>',!0),y(n),G(e,n)}var ml=ue("<svg><!></svg>");function kl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=ml();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M6.09 15a6.9 6.9 0 0 1-.59-2.795C5.5 8.502 8.41 5.5 12 5.5s6.5 3.003 6.5 6.706A6.9 6.9 0 0 1 17.91 15"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 2v1M22 12h-1M3 12H2M19.07 4.928l-.707.707M5.637 5.636l-.707-.707M14.517 19.306c1.01-.327 1.416-1.252 1.53-2.182.034-.278-.195-.509-.475-.509H8.477a.483.483 0 0 0-.488.534c.112.928.394 1.607 1.464 2.157m5.064 0H9.453m5.064 0c-.121 1.945-.683 2.715-2.51 2.693-1.954.036-2.404-.916-2.554-2.693"/>',!0),y(n),G(e,n)}var xl=ue("<svg><!></svg>");function $l(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=xl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-width="1.5" d="M2.5 12c0-4.478 0-6.718 1.391-8.109S7.521 2.5 12 2.5c4.478 0 6.718 0 8.109 1.391S21.5 7.521 21.5 12c0 4.478 0 6.718-1.391 8.109S16.479 21.5 12 21.5c-4.478 0-6.718 0-8.109-1.391S2.5 16.479 2.5 12Z"/><circle cx="16.5" cy="7.5" r="1.5" stroke="currentColor" stroke-width="1.5"/><path stroke="currentColor" stroke-linejoin="round" stroke-width="1.5" d="M16 22c-.62-2.225-2.065-4.218-4.123-5.666-2.22-1.561-5.005-2.387-7.861-2.331q-.51-.001-1.016.032"/><path stroke="currentColor" stroke-linejoin="round" stroke-width="1.5" d="M13 18c1.701-1.327 3.535-2.007 5.386-2a7.8 7.8 0 0 1 3.114.662"/>',!0),y(n),G(e,n)}var El=ue("<svg><!></svg>");function Sl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=El();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<circle cx="16.5" cy="7.5" r="1.5" stroke="currentColor" stroke-width="1.5"/><path stroke="currentColor" stroke-linejoin="round" stroke-width="1.5" d="M2 14.135q1.001-.135 2.016-.132c2.856-.056 5.642.77 7.86 2.331C13.936 17.782 15.381 19.774 16 22"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M13.5 17.5c1-1 1.677-1.223 2.5-1.5"/><path stroke="currentColor" stroke-width="1.5" d="M20 20.213C18.601 21.5 16.363 21.5 12 21.5c-4.478 0-6.718 0-8.109-1.391S2.5 16.479 2.5 12c0-4.364 0-6.601 1.287-8"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M20 16c.543 0 1.048.294 1.397.564.103-1.195.103-2.681.103-4.564 0-4.478 0-6.718-1.391-8.109S16.479 2.5 12 2.5c-2.41 0-4.17 0-5.5.217M2 2l20 20"/>',!0),y(n),G(e,n)}var Ml=ue("<svg><!></svg>");function Vo(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=Ml();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M13 3.002Q12.295 3 11.5 3C7.022 3 4.782 3 3.391 4.391S2 8.021 2 12.5c0 4.478 0 6.718 1.391 8.109S7.021 22 11.5 22c4.478 0 6.718 0 8.109-1.391 1.338-1.339 1.389-3.462 1.39-7.609"/><path stroke="currentColor" stroke-linejoin="round" stroke-width="1.5" d="M2 14.135q.93-.135 1.872-.132c2.652-.056 5.239.77 7.3 2.331 1.91 1.448 3.253 3.44 3.828 5.666"/><path stroke="currentColor" stroke-linejoin="round" stroke-width="1.5" d="M21 16.896c-1.175-.595-2.391-.897-3.614-.896-1.851-.007-3.684.673-5.386 2"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M17 4.5c.491-.506 1.8-2.5 2.5-2.5M22 4.5c-.491-.506-1.8-2.5-2.5-2.5m0 0v8"/>',!0),y(n),G(e,n)}var Al=ue("<svg><!></svg>");function Ll(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=Al();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path d="M21.5 14.078A8.557 8.557 0 0 1 9.922 2.5C5.668 3.497 2.5 7.315 2.5 11.873a9.627 9.627 0 0 0 9.627 9.627c4.558 0 8.376-3.168 9.373-7.422"/>',!0),y(n),G(e,n)}var Cl=ue("<svg><!></svg>");function Tl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=Cl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 16.5v-2"/><path stroke="currentColor" stroke-width="1.5" d="M4.268 18.845c.225 1.67 1.608 2.979 3.292 3.056 1.416.065 2.855.099 4.44.099s3.024-.034 4.44-.1c1.684-.076 3.067-1.385 3.292-3.055.147-1.09.268-2.207.268-3.345s-.121-2.255-.268-3.345c-.225-1.67-1.608-2.979-3.292-3.056A95 95 0 0 0 12 9c-1.585 0-3.024.034-4.44.1-1.684.076-3.067 1.385-3.292 3.055C4.12 13.245 4 14.362 4 15.5s.121 2.255.268 3.345Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M7.5 9V6.5a4.5 4.5 0 0 1 9 0V9"/>',!0),y(n),G(e,n)}var Ol=ue("<svg><!></svg>");function Gl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=Ol();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="M12 16.5v-2"/><path stroke="currentColor" stroke-width="1.5" d="M4.268 18.845c.225 1.67 1.608 2.979 3.292 3.056 1.416.065 2.855.099 4.44.099s3.024-.034 4.44-.1c1.684-.076 3.067-1.385 3.292-3.055.147-1.09.268-2.207.268-3.345s-.121-2.255-.268-3.345c-.225-1.67-1.608-2.979-3.292-3.056A95 95 0 0 0 12 9c-1.585 0-3.024.034-4.44.1-1.684.076-3.067 1.385-3.292 3.055C4.12 13.245 4 14.362 4 15.5s.121 2.255.268 3.345Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M7.5 9V6.5A4.5 4.5 0 0 1 12 2c1.96 0 3.5 1.5 4 3"/>',!0),y(n),G(e,n)}var Pl=ue("<svg><!></svg>");function Dl(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=Pl();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",stroke:"currentColor","stroke-width":"1.5",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path d="M17 12a5 5 0 1 1-10 0 5 5 0 0 1 10 0ZM12 2v1.5m0 17V22m7.07-2.929-1.06-1.06M5.99 5.989 4.928 4.93M22 12h-1.5m-17 0H2m17.071-7.071-1.06 1.06M5.99 18.011l-1.06 1.06"/>',!0),y(n),G(e,n)}const ni=(e,t)=>t.some(r=>e instanceof r);let Xo,Wo;function Il(){return Xo||(Xo=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function jl(){return Wo||(Wo=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const ii=new WeakMap,oi=new WeakMap,fn=new WeakMap;function Rl(e){const t=new Promise((r,n)=>{const i=()=>{e.removeEventListener("success",o),e.removeEventListener("error",a)},o=()=>{r(Ft(e.result)),i()},a=()=>{n(e.error),i()};e.addEventListener("success",o),e.addEventListener("error",a)});return fn.set(t,e),t}function zl(e){if(ii.has(e))return;const t=new Promise((r,n)=>{const i=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",a),e.removeEventListener("abort",a)},o=()=>{r(),i()},a=()=>{n(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",o),e.addEventListener("error",a),e.addEventListener("abort",a)});ii.set(e,t)}let si={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return ii.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Ft(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function qo(e){si=e(si)}function Nl(e){return jl().includes(e)?function(...t){return e.apply(ai(this),t),Ft(this.request)}:function(...t){return Ft(e.apply(ai(this),t))}}function Fl(e){return typeof e=="function"?Nl(e):(e instanceof IDBTransaction&&zl(e),ni(e,Il())?new Proxy(e,si):e)}function Ft(e){if(e instanceof IDBRequest)return Rl(e);if(oi.has(e))return oi.get(e);const t=Fl(e);return t!==e&&(oi.set(e,t),fn.set(t,e)),t}const ai=e=>fn.get(e);function Bl(e,t,{blocked:r,upgrade:n,blocking:i,terminated:o}={}){const a=indexedDB.open(e,t),c=Ft(a);return n&&a.addEventListener("upgradeneeded",l=>{n(Ft(a.result),l.oldVersion,l.newVersion,Ft(a.transaction),l)}),r&&a.addEventListener("blocked",l=>r(l.oldVersion,l.newVersion,l)),c.then(l=>{o&&l.addEventListener("close",()=>o()),i&&l.addEventListener("versionchange",d=>i(d.oldVersion,d.newVersion,d))}).catch(()=>{}),c}const Ul=["get","getKey","getAll","getAllKeys","count"],Hl=["put","add","delete","clear"],li=new Map;function Zo(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(li.get(t))return li.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,i=Hl.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(i||Ul.includes(r)))return;const o=async function(a,...c){const l=this.transaction(a,i?"readwrite":"readonly");let d=l.store;return n&&(d=d.index(c.shift())),(await Promise.all([d[r](...c),i&&l.done]))[0]};return li.set(t,o),o}qo(e=>({...e,get:(t,r,n)=>Zo(t,r)||e.get(t,r,n),has:(t,r)=>!!Zo(t,r)||e.has(t,r)}));const Yl=["continue","continuePrimaryKey","advance"],Ko={},ci=new WeakMap,Jo=new WeakMap,Vl={get(e,t){if(!Yl.includes(t))return e[t];let r=Ko[t];return r||(r=Ko[t]=function(...n){ci.set(this,Jo.get(this)[t](...n))}),r}};async function*Xl(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;const r=new Proxy(t,Vl);for(Jo.set(r,t),fn.set(r,ai(t));t;)yield r,t=await(ci.get(r)||t.continue()),ci.delete(r)}function Qo(e,t){return t===Symbol.asyncIterator&&ni(e,[IDBIndex,IDBObjectStore,IDBCursor])||t==="iterate"&&ni(e,[IDBIndex,IDBObjectStore])}qo(e=>({...e,get(t,r,n){return Qo(t,r)?Xl:e.get(t,r,n)},has(t,r){return Qo(t,r)||e.has(t,r)}}));class ui extends Error{details;constructor(t,r){super(t),this.name="ValidationError",this.details=r}}const ur=ui;class Ie extends Error{constructor(t,r){super(t),this.originalError=r,this.name="DatabaseError"}}function Wl(e,t){const r=t?`${t}: `:"";return e instanceof ui?{message:r+e.message,details:e.details}:e instanceof Error?{message:r+e.message}:{message:r+"An unknown error occurred"}}const Tr=new Map,es={emit(e,t){Tr.get(e)?.forEach(r=>{try{r(t)}catch(n){console.error("[EventBus]",n)}})},on(e,t){return Tr.has(e)||Tr.set(e,new Set),Tr.get(e).add(t),()=>Tr.get(e)?.delete(t)}},ql="PixelMirrorDB",Zl=2;function ts(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=Array.from(e,r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}let di;async function je(){return di||(di=Bl(ql,Zl,{upgrade(e){e.objectStoreNames.contains("mockups")||e.createObjectStore("mockups",{keyPath:"id"}),e.objectStoreNames.contains("mockup_blobs")||e.createObjectStore("mockup_blobs"),e.objectStoreNames.contains("grids")||e.createObjectStore("grids",{keyPath:"id"}),e.objectStoreNames.contains("settings")||e.createObjectStore("settings")}})),di}async function rs(){try{return(await(await je()).getAll("mockups")).sort((r,n)=>n.createdAt-r.createdAt)}catch(e){throw new Ie("Failed to load mockups",e)}}async function Kl(e){try{const r=(await je()).transaction(["mockups","mockup_blobs"],"readonly"),[n,i]=await Promise.all([r.objectStore("mockups").get(e),r.objectStore("mockup_blobs").get(e)]);return await r.done,!n||!i?void 0:{...n,originalBuffer:i}}catch(t){throw new Ie("Failed to get mockup",t)}}async function Jl(e){try{const t=Array.isArray(e)?e:[e],n=(await je()).transaction(["mockups","mockup_blobs"],"readwrite"),i=n.objectStore("mockups"),o=n.objectStore("mockup_blobs"),a=Date.now(),c=t.map((l,d)=>{const v=ts(),{originalBuffer:h,...u}=l,g={...u,id:v,createdAt:a+d};return Promise.all([i.put(g),o.put(h,v)])});await Promise.all(c),await n.done}catch(t){throw new Ie("Failed to add mockups",t)}}async function Ql(e){try{const r=(await je()).transaction(["mockups","mockup_blobs"],"readwrite");await Promise.all([r.objectStore("mockups").delete(e),r.objectStore("mockup_blobs").delete(e)]),await r.done}catch(t){throw new Ie("Failed to delete mockup",t)}}async function ec(){try{const t=(await je()).transaction(["mockups","mockup_blobs"],"readwrite");await Promise.all([t.objectStore("mockups").clear(),t.objectStore("mockup_blobs").clear()]),await t.done}catch(e){throw new Ie("Failed to reset mockups",e)}}async function fi(){try{return(await(await je()).getAll("grids")).sort((r,n)=>r.createdAt-n.createdAt)}catch(e){throw new Ie("Failed to load grids",e)}}async function tc(e){try{return await(await je()).get("grids",e)}catch(t){throw new Ie("Failed to get grid",t)}}async function vn(e){try{const t=await je(),r={...e,id:ts(),createdAt:Date.now()};return await t.put("grids",r),r.id}catch(t){throw new Ie("Failed to add grid",t)}}async function rc(e){try{await(await je()).delete("grids",e)}catch(t){throw new Ie("Failed to delete grid",t)}}async function nc(){try{await(await je()).clear("grids")}catch(e){throw new Ie("Failed to reset grids",e)}}async function hn(e){try{return await(await je()).get("settings",e)||{}}catch(t){throw new Ie("Failed to load settings",t)}}async function J(e,t,r){try{const i=(await je()).transaction("settings","readwrite"),o=i.objectStore("settings"),a=await o.get(e)||{};await o.put({...a,[t]:r},e),await i.done;const c={[t]:r};es.emit(e,c)}catch(n){throw new Ie("Failed to update setting",n)}}async function ic(){try{await(await je()).delete("settings","gridOverlay")}catch(e){throw new Ie("Failed to reset grid overlay settings",e)}}const Or={width:"1140px",columns:12,gutterWidth:"24px",isGutterOnOutside:!0,position:"center"},dr={showLayoutGrid:!1,layoutGridColor:"rgba(0, 0, 255, 0.05)",showSpacingGrid:!1,spacingGridColor:"rgba(255, 0, 0, 0.05)",spacingGridHeight:"8px"},pn=352,ns=.05,is=.1,os=.9,ss=.5,vi=[.5,1],oc=2,as=10*1024*1024,gn=["image/png","image/jpeg","image/webp","image/gif"],sc=300,ls=5,cs=10,us=150;let ds=!1;function ac(){let e=M(void 0);const t=(r,n)=>{const i=Wl(r,n);f(e,i.message,!0),console.error("[PixelMirror]",i.message,i.details??"")};return typeof window<"u"&&!ds&&(ds=!0,window.addEventListener("unhandledrejection",r=>{r.preventDefault(),t(r.reason)})),{get errorMessage(){return s(e)},showError:t,clear:()=>{f(e,void 0)}}}const O=ac();function _n(e,t,r){return Math.min(Math.max(e,t),r)}function fs(e,t){const r=Math.pow(10,t);return Math.round(e*r)/r}function lc(){let e=M(null),t=M(!1),r=M(!1),n=M(ce(ss)),i=M(ce({x:0,y:0})),o=M("center"),a=M("top"),c=M(1),l=M("visible"),d=M(null),v=M(void 0),h=M(ce({width:0,height:0})),u=M(ce({x:0,y:0})),g=M(!1),_=M("visible"),k=se(()=>{if(s(o)===null&&s(a)===null)return`x:${Math.round(s(u).x)}, y:${Math.round(s(u).y)}`;const p=[];return s(a)&&p.push(s(a)),s(o)&&p.push(s(o)),p.join("·")}),b=M(!1),$=null,X={x:0,y:0},ne={x:0,y:0},D={x:0,y:0},Z={x:0,y:0},C=1,S={x:0,y:0},I={x:0,y:0},H=0,L=1,Q={x:0,y:0},oe={x:0,y:0},j={x:0,y:0},Y={x:0,y:0},ie=1;async function ee(p){if(!p){s(d)&&URL.revokeObjectURL(s(d)),f(d,null),f(v,void 0),f(h,{width:0,height:0},!0);return}if(!(s(v)?.id===p&&s(d)))try{const E=await Kl(p);if(E){s(d)&&URL.revokeObjectURL(s(d));const T=new Blob([E.originalBuffer],{type:E.mimeType}),q=URL.createObjectURL(T);f(d,q,!0),f(v,E,!0);const re=new Image;re.onload=()=>{f(h,{width:re.naturalWidth,height:re.naturalHeight},!0)},re.onerror=()=>{O.showError(new Error("Failed to load mockup image.")),f(h,{width:0,height:0},!0)},re.src=q}else O.showError(new Error("Mockup not found.")),f(d,null),f(v,void 0),f(h,{width:0,height:0},!0)}catch(E){O.showError(E,"Failed to load mockup"),f(d,null),f(v,void 0),f(h,{width:0,height:0},!0)}}function pe(){if(s(o)===null&&s(a)===null)return;const{clientWidth:p,scrollHeight:E}=document.documentElement,T=s(h).width*s(c),q=s(h).height*s(c);let re=s(u).x,Me=s(u).y;if(s(o)!==null)switch(s(o)){case"left":re=0;break;case"center":re=(p-T)/2|0;break;case"right":re=p-T;break}if(s(a)!==null)switch(s(a)){case"top":Me=0;break;case"bottom":Me=E-q;break}(re!==s(u).x||Me!==s(u).y)&&(f(u,{x:re,y:Me},!0),f(i,{x:re,y:Me},!0),J("mockupOverlay","position",{...s(i)}).catch(O.showError))}function te(){(s(o)!==null||s(a)!==null)&&(f(o,null),f(a,null),Promise.all([J("mockupOverlay","alignmentX",null),J("mockupOverlay","alignmentY",null)]).catch(O.showError))}function ae(p){if(s(l)!=="dragging")return;const E=p.clientX-X.x,T=p.clientY-X.y;f(u,{x:ne.x+E,y:ne.y+T},!0)}function x(){s(l)==="dragging"&&(window.removeEventListener("mousemove",ae),window.removeEventListener("mouseup",x),f(l,"visible"),te(),f(i,{...s(u)},!0),J("mockupOverlay","position",{...s(i)}).catch(O.showError))}function N(p){if(s(l)!=="zoomed")return;s(g)||f(g,!0);const E=p.clientX-Z.x,T=p.clientY-Z.y;f(u,{x:D.x-E,y:D.y-T},!0)}return{get initialized(){return s(b)},get activeMockupId(){return s(e)},get activeMockupUrl(){return s(d)},get mockupSize(){return s(h)},get isHidden(){return s(t)},get isLocked(){return s(r)},get opacity(){return s(n)},get position(){return s(u)},get alignmentX(){return s(o)},get alignmentY(){return s(a)},get isAligned(){return s(o)!==null||s(a)!==null},get scale(){return s(c)},get mode(){return s(l)},get isZoomPanning(){return s(g)},get isDragging(){return s(l)==="dragging"},get isSolidOrZoomed(){return s(l)==="solid"||s(l)==="zoomed"},get isVisibleOrLocked(){return s(l)==="visible"||s(l)==="locked"},get effectiveOpacity(){return s(l)==="solid"||s(l)==="zoomed"?1:s(n)},get positionDisplay(){return s(k)},init:async()=>(s(b)||$||($=(async()=>{try{const p=await hn("mockupOverlay");p.activeMockupId!==void 0&&f(e,p.activeMockupId,!0),p.isHidden!==void 0&&f(t,p.isHidden,!0),p.isLocked!==void 0&&f(r,p.isLocked,!0),p.opacity!==void 0&&f(n,p.opacity,!0),p.position!==void 0&&(f(i,p.position,!0),f(u,{...p.position},!0)),p.alignmentX!==void 0&&f(o,p.alignmentX,!0),p.alignmentY!==void 0&&f(a,p.alignmentY,!0),p.scale!==void 0&&f(c,p.scale,!0),await ee(s(e)),f(l,s(r)?"locked":"visible",!0),f(_,s(l),!0)}catch(p){O.showError(p,"Failed to load mockup overlay settings")}finally{f(b,!0),$=null}})()),$),setActiveMockup:p=>{f(e,p,!0),ee(p);const E=[J("mockupOverlay","activeMockupId",p)];p&&(s(t)&&(f(t,!1),E.push(J("mockupOverlay","isHidden",!1))),s(r)&&(f(r,!1),f(l,"visible"),f(_,"visible"),E.push(J("mockupOverlay","isLocked",!1)))),Promise.all(E).catch(O.showError)},toggleVisibility:()=>{(s(l)==="solid"||s(l)==="zoomed")&&(window.removeEventListener("mousemove",N),f(c,C||s(c),!0),f(u,{...s(i)},!0),f(g,!1),f(l,s(r)?"locked":"visible",!0)),f(t,!s(t)),J("mockupOverlay","isHidden",s(t)).catch(O.showError)},toggleLock:()=>{s(l)!=="visible"&&s(l)!=="locked"||(f(r,!s(r)),f(l,s(r)?"locked":"visible",!0),f(_,s(l),!0),J("mockupOverlay","isLocked",s(r)).catch(O.showError))},adjustOpacity:p=>{if(s(l)!=="visible"&&s(l)!=="locked")return;const E=p>0?-ns:ns,T=fs(s(n)+E,2);f(n,_n(T,is,os),!0),J("mockupOverlay","opacity",s(n)).catch(O.showError)},resetOpacity:()=>{s(l)!=="visible"&&s(l)!=="locked"||(f(n,ss,!0),J("mockupOverlay","opacity",s(n)).catch(O.showError))},cycleScale:()=>{if(s(l)!=="visible")return;const p=s(c),T=(vi.indexOf(p)+1)%vi.length,q=vi[T>=0?T:0],{clientWidth:re,clientHeight:Me}=document.documentElement,Te=window.scrollX+re/2,ze=window.scrollY+Me/2,{x:we,y:it}=s(u),Ae=Te-(Te-we)/p*q,ot=ze-(ze-it)/p*q;f(c,q,!0),f(u,{x:Ae,y:ot},!0),f(i,{x:Ae,y:ot},!0),te(),Promise.all([J("mockupOverlay","scale",s(c)),J("mockupOverlay","position",{...s(i)})]).catch(O.showError)},setAlignmentX:p=>{s(l)==="visible"&&(f(o,p,!0),J("mockupOverlay","alignmentX",p).catch(O.showError),pe())},setAlignmentY:p=>{s(l)==="visible"&&(f(a,p,!0),J("mockupOverlay","alignmentY",p).catch(O.showError),pe())},setAlignment:(p,E)=>{s(l)==="visible"&&(f(a,p,!0),f(o,E,!0),Promise.all([J("mockupOverlay","alignmentY",p),J("mockupOverlay","alignmentX",E)]).catch(O.showError),pe())},clearAlignment:()=>{s(l)==="visible"&&te()},updateAlignedPosition:pe,move:(p,E)=>{s(l)==="visible"&&(te(),f(u,{x:s(u).x+p,y:s(u).y+E},!0))},persistPosition:()=>{f(i,{...s(u)},!0),J("mockupOverlay","position",{...s(i)}).catch(O.showError)},startDrag:p=>{s(l)==="visible"&&(f(l,"dragging"),X={x:p.clientX,y:p.clientY},ne={...s(u)},window.addEventListener("mousemove",ae),window.addEventListener("mouseup",x))},enterSolidMode:()=>{s(l)!=="visible"&&s(l)!=="locked"||(f(_,s(l),!0),f(l,"solid"))},exitSolidMode:()=>{s(l)==="zoomed"&&(window.removeEventListener("mousemove",N),f(c,C,!0),f(u,{...s(i)},!0),f(g,!1)),(s(l)==="solid"||s(l)==="zoomed")&&f(l,s(_),!0)},enterZoomMode:p=>{if(s(l)!=="solid")return;f(l,"zoomed"),C=s(c);const E=s(c)*oc;f(c,E);const{clientX:T,clientY:q}=p,{x:re,y:Me}=s(u),Te=T+window.scrollX,ze=q+window.scrollY,we=(Te-re)/C,it=(ze-Me)/C,{clientWidth:Ae,clientHeight:ot}=document.documentElement,Bt=window.scrollX+Ae/2,fr=window.scrollY+ot/2;D={x:Bt-we*E,y:fr-it*E},Z={x:T,y:q},f(u,{...D},!0),window.addEventListener("mousemove",N)},exitZoomMode:()=>{s(l)==="zoomed"&&(window.removeEventListener("mousemove",N),f(l,"solid"),f(c,C,!0),f(u,{...s(i)},!0),f(g,!1))},cleanup:()=>{window.removeEventListener("mousemove",ae),window.removeEventListener("mouseup",x),window.removeEventListener("mousemove",N),s(d)&&URL.revokeObjectURL(s(d))},setOpacity:p=>{s(l)!=="visible"&&s(l)!=="locked"||(f(n,_n(fs(p,2),is,os),!0),J("mockupOverlay","opacity",s(n)).catch(O.showError))},startTouchDrag:p=>{if(s(l)!=="visible")return;const E=p.touches[0];f(l,"dragging"),S={x:E.clientX,y:E.clientY},I={...s(u)}},handleTouchDrag:p=>{if(s(l)!=="dragging")return;const E=p.touches[0],T=E.clientX-S.x,q=E.clientY-S.y;f(u,{x:I.x+T,y:I.y+q},!0)},endTouchDrag:()=>{s(l)==="dragging"&&(f(l,"visible"),te(),f(i,{...s(u)},!0),J("mockupOverlay","position",{...s(i)}).catch(O.showError))},toggleMobileSolidMode:()=>{s(l)==="solid"?(f(c,ie,!0),f(u,{...s(i)},!0),f(l,s(_),!0)):(s(l)==="visible"||s(l)==="locked")&&(f(_,s(l),!0),ie=s(c),f(l,"solid"))},startPinch:p=>{if(s(l)!=="solid"||p.touches.length<2)return;const E=p.touches[0],T=p.touches[1],q=T.clientX-E.clientX,re=T.clientY-E.clientY;H=Math.sqrt(q*q+re*re),L=s(c),oe={...s(u)},Q={x:(E.clientX+T.clientX)/2+window.scrollX,y:(E.clientY+T.clientY)/2+window.scrollY}},handlePinch:p=>{if(s(l)!=="solid"||p.touches.length<2||H===0)return;const E=p.touches[0],T=p.touches[1],q=T.clientX-E.clientX,re=T.clientY-E.clientY,Te=Math.sqrt(q*q+re*re)/H,ze=_n(L*Te,.25,4),we=(Q.x-oe.x)/L,it=(Q.y-oe.y)/L;f(u,{x:Q.x-we*ze,y:Q.y-it*ze},!0),f(c,ze,!0)},endPinch:()=>{H=0,L=s(c)},startGesturePinch:(p,E)=>{s(l)==="solid"&&(L=s(c),oe={...s(u)},Q={x:p,y:E})},handleGesturePinch:p=>{if(s(l)!=="solid")return;const E=_n(L*p,.25,4),T=(Q.x-oe.x)/L,q=(Q.y-oe.y)/L;f(u,{x:Q.x-T*E,y:Q.y-q*E},!0),f(c,E,!0)},startSolidPan:p=>{if(s(l)!=="solid")return;const E=p.touches[0];j={x:E.clientX,y:E.clientY},Y={...s(u)}},handleSolidPan:p=>{if(s(l)!=="solid")return;const E=p.touches[0],T=E.clientX-j.x,q=E.clientY-j.y;f(u,{x:Y.x+T,y:Y.y+q},!0)}}}const m=lc(),cc=new Set(["INPUT","SELECT","TEXTAREA"]),uc={ArrowUp:[0,-1],ArrowDown:[0,1],ArrowLeft:[-1,0],ArrowRight:[1,0]};function dc(){let e=M(!1),t=M(!1),r=M(!1),n=M(!1),i=null;function o(){return K.mode==="toolbar"&&!m.isHidden}function a(){let _=document.activeElement;for(;_?.shadowRoot?.activeElement;)_=_.shadowRoot.activeElement;if(!_)return!1;const k=_;return cc.has(k.tagName)||k.isContentEditable}function c(_){if(!o())return;const{mode:k}=m;k!=="visible"&&k!=="locked"||(_.preventDefault(),m.adjustOpacity(_.deltaY>0?-1:1))}function l(){i||(i=c,window.addEventListener("wheel",i,{passive:!1}))}function d(){i&&(window.removeEventListener("wheel",i),i=null)}function v(){s(e)&&(f(e,!1),d()),s(r)&&(f(r,!1),m.exitSolidMode()),f(t,!1)}function h(_){if(a())return;switch(_.key){case"Control":s(e)||(f(e,!0),l());return;case"Shift":f(t,!0);return}if(!o())return;const{mode:k}=m;switch(_.key){case" ":_.preventDefault(),!s(r)&&(k==="visible"||k==="locked")&&(f(r,!0),m.enterSolidMode());break;case"Escape":(k==="visible"||k==="locked")&&m.toggleLock();break;case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":{if(k!=="visible")return;_.preventDefault();const b=_.shiftKey?10:1,[$,X]=uc[_.key];m.move($*b,X*b);break}}}function u(_){switch(_.key){case" ":s(r)&&(f(r,!1),m.exitSolidMode());break;case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":m.mode==="visible"&&m.persistPosition();break;case"Control":s(e)&&(f(e,!1),d());break;case"Shift":f(t,!1);break}}function g(){document.hidden&&v()}return{get isControlPressed(){return s(e)},get isShiftPressed(){return s(t)},get isSpacePressed(){return s(r)},init:()=>{s(n)||(f(n,!0),window.addEventListener("keydown",h),window.addEventListener("keyup",u),window.addEventListener("blur",v),document.addEventListener("visibilitychange",g))},cleanup:()=>{s(n)&&(f(n,!1),window.removeEventListener("keydown",h),window.removeEventListener("keyup",u),window.removeEventListener("blur",v),document.removeEventListener("visibilitychange",g),d(),v())},resetModifierStates:v}}const Gr=dc(),hi=250,fc={toolbar:{width:380,height:44},mockups:{width:820,height:480},grids:{width:640,height:580}};function vc(){let e=M("toolbar"),t=M("bottom"),r=M("light"),n=M(!1),i=M(!0),o=M(!1),a=null;return{get initialized(){return s(o)},get mode(){return s(e)},get position(){return s(t)},get theme(){return s(r)},get managerVisible(){return s(n)},set managerVisible(c){f(n,c,!0)},get toolbarVisible(){return s(i)},set toolbarVisible(c){f(i,c,!0)},get size(){return fc[s(e)]},get isManagerMode(){return s(e)==="mockups"||s(e)==="grids"},init:async()=>(s(o)||a||(a=(async()=>{try{const c=await hn("dock");c.position&&f(t,c.position,!0),c.theme&&f(r,c.theme,!0)}catch(c){O.showError(c,"Failed to load dock settings")}finally{f(o,!0),a=null}})()),a),enterToolbar:()=>{f(n,!1),f(e,"toolbar"),f(i,!0),Gr.resetModifierStates()},enterMockups:()=>{Gr.resetModifierStates(),f(i,!1),f(e,"mockups"),f(n,!1)},enterGrids:()=>{Gr.resetModifierStates(),f(i,!1),f(e,"grids"),f(n,!1)},togglePosition:()=>{const c=s(t)==="bottom"?"top":"bottom";J("dock","position",c).catch(O.showError),f(t,c,!0)},toggleTheme:()=>{const c=s(r)==="light"?"dark":"light";J("dock","theme",c).catch(O.showError),f(r,c,!0)}}}const K=vc();var hc=ue("<svg><!></svg>");function vs(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=hc();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="m19.5 5.5-.62 10.025c-.158 2.561-.237 3.842-.88 4.763a4 4 0 0 1-1.2 1.128C15.843 22 14.56 22 11.994 22c-2.57 0-3.855 0-4.814-.585a4 4 0 0 1-1.2-1.13c-.642-.922-.72-2.205-.874-4.77L4.5 5.5M3 5.5h18m-4.944 0-.683-1.408c-.453-.936-.68-1.403-1.071-1.695a2 2 0 0 0-.275-.172C13.594 2 13.074 2 12.035 2c-1.066 0-1.599 0-2.04.234a2 2 0 0 0-.278.18c-.395.303-.616.788-1.058 1.757L8.053 5.5M9.5 16.5v-6M14.5 16.5v-6"/>',!0),y(n),G(e,n)}var pc=ue("<svg><!></svg>");function hs(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=pc();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path id="toggle-trigger" stroke="currentColor" stroke-width="1.5" d="M18 12c1 1.657-.343 3-2 3a3 3 0 1 1 3-3Z"/><path stroke="currentColor" stroke-width="1.5" d="M16 6H8a6 6 0 1 0 0 12h8a6 6 0 0 0 0-12Z"/>',!0),y(n),G(e,n)}function gc(){let e=M(ce(dr.showLayoutGrid)),t=M(""),r=M(void 0),n=M(ce(dr.layoutGridColor)),i=M(ce(dr.showSpacingGrid)),o=M(ce(dr.spacingGridColor)),a=M(ce(dr.spacingGridHeight)),c=M(!1),l=null;async function d(u){if(!u){f(r,void 0);return}try{const g=await tc(u);f(r,g,!0),g||O.showError(new Error("Grid not found."))}catch(g){f(r,void 0),O.showError(g,"Failed to load grid")}}function v(u){u.showLayoutGrid!==void 0&&f(e,u.showLayoutGrid,!0),u.layoutGridColor!==void 0&&f(n,u.layoutGridColor,!0),u.showSpacingGrid!==void 0&&f(i,u.showSpacingGrid,!0),u.spacingGridColor!==void 0&&f(o,u.spacingGridColor,!0),u.spacingGridHeight!==void 0&&f(a,u.spacingGridHeight,!0),u.activeLayoutGridId!==void 0&&(f(t,u.activeLayoutGridId,!0),d(s(t)))}const h=es.on("gridOverlay",v);return{get activeLayoutGridId(){return s(t)},get activeLayoutGrid(){return s(r)},get showLayoutGrid(){return s(e)},get layoutGridColor(){return s(n)},get showSpacingGrid(){return s(i)},get spacingGridColor(){return s(o)},get spacingGridHeight(){return s(a)},get initialized(){return s(c)},init:async()=>(s(c)||l||(l=(async()=>{try{const u=await hn("gridOverlay");u.activeLayoutGridId!==void 0&&f(t,u.activeLayoutGridId,!0),u.showLayoutGrid!==void 0&&f(e,u.showLayoutGrid,!0),u.layoutGridColor!==void 0&&f(n,u.layoutGridColor,!0),u.showSpacingGrid!==void 0&&f(i,u.showSpacingGrid,!0),u.spacingGridColor!==void 0&&f(o,u.spacingGridColor,!0),u.spacingGridHeight!==void 0&&f(a,u.spacingGridHeight,!0),await d(s(t))}catch(u){O.showError(u,"Failed to load grid overlay settings")}finally{f(c,!0),l=null}})()),l),syncSettings:v,cleanup:h}}const W=gc(),_c=/^\d+(\.\d+)?(px|%|em|rem|vw|vh)$/;function bn(e){return{success:!0,data:e}}function St(e,t){return{success:!1,error:new ui(e,t)}}function ps(e,t){const r=e.trim();return r?_c.test(r)?bn(r):St(`Invalid ${t} format`,`Expected format like "100px", "50%", or "1.5rem", got "${e}"`):St(`${t} is required`)}function bc(e,t,r=1,n=Number.MAX_SAFE_INTEGER){return Number.isInteger(e)?e<r||e>n?St(`${t} must be between ${r} and ${n}`,`Got ${e}`):bn(e):St(`${t} must be an integer`,`Got ${e}`)}function yc(e){const t=ps(e.width,"Width");if(!t.success)return t;const r=bc(e.columns,"Columns",1,100);if(!r.success)return r;const n=ps(e.gutterWidth,"Gutter width");if(!n.success)return n;const i=["left","center","right"];return i.includes(e.position)?bn({...e,width:t.data,columns:r.data,gutterWidth:n.data}):St("Invalid position",`Expected one of: ${i.join(", ")}`)}function wc(e){if(!e)return St("No file provided");if(!gn.includes(e.type))return St("Unsupported file type",`Allowed types: ${gn.map(t=>t.split("/")[1]).join(", ")}`);if(e.size>as){const t=as/1048576,r=(e.size/(1024*1024)).toFixed(2);return St("File too large",`Maximum size is ${t}MB, got ${r}MB`)}return bn(e)}function mc(e){const t=[],r=[];for(const n of e){const i=wc(n);i.success?t.push(i.data):r.push(new ur(`${n.name}: ${i.error.message}`,i.error.details))}return{validFiles:t,errors:r}}function kc(){let e=M(ce([])),t=M(!1),r=null;const n=async i=>{try{await J("gridOverlay","activeLayoutGridId",i)}catch(o){throw O.showError(o,"Failed to set active grid"),o}};return{get initialized(){return s(t)},get layoutGrids(){return s(e)},init:async()=>(s(t)||r||(r=(async()=>{try{const i=await fi();if(i.length===0){const o=await vn(Or);f(e,[{...Or,id:o,createdAt:Date.now()}],!0),await n(o)}else{f(e,i,!0);const o=await hn("gridOverlay");o.activeLayoutGridId?i.some(c=>c.id===o.activeLayoutGridId)||await n(i[0].id):await n(i[0].id)}}catch(i){O.showError(i,"Failed to load grids")}finally{f(t,!0),r=null}})()),r),toggleSpacingGrid:()=>{const i=!W.showSpacingGrid;J("gridOverlay","showSpacingGrid",i).catch(O.showError)},updateSpacingGridHeight:i=>{J("gridOverlay","spacingGridHeight",i).catch(O.showError)},updateSpacingGridColor:i=>{J("gridOverlay","spacingGridColor",i).catch(O.showError)},toggleLayoutGrid:()=>{const i=!W.showLayoutGrid;J("gridOverlay","showLayoutGrid",i).catch(O.showError)},updateLayoutGridColor:i=>{J("gridOverlay","layoutGridColor",i).catch(O.showError)},setActiveLayoutGrid:n,add:async i=>{const o=yc(i);if(!o.success){O.showError(o.error);return}try{const a=await vn(o.data);return f(e,await fi(),!0),await n(a),a}catch(a){O.showError(a,"Failed to add grid");return}},delete:async i=>{try{if(await rc(i),f(e,s(e).filter(o=>o.id!==i),!0),W.activeLayoutGridId===i){const o=s(e)[0];if(o)await n(o.id);else{const a=await vn(Or);f(e,await fi(),!0),await n(a)}}}catch(o){O.showError(o,"Failed to delete grid")}},reset:async()=>{try{await nc(),await ic();const i=await vn(Or);f(e,[{...Or,id:i,createdAt:Date.now()}],!0),await n(i),W.syncSettings(dr)}catch(i){O.showError(i,"Failed to reset grids")}}}}const Re=kc();var xc=ye('<tr role="button" tabindex="0"><td class="svelte-s2yrtn"> </td><td class="svelte-s2yrtn"> </td><td class="svelte-s2yrtn"> </td><td class="svelte-s2yrtn"> </td><td style="text-transform: capitalize;" class="svelte-s2yrtn"> </td><td class="table__actions svelte-s2yrtn"><button class="table__button table__button--delete svelte-s2yrtn" aria-label="Delete grid"><!></button></td></tr>'),$c=ye('<div class="container svelte-s2yrtn"><div class="inner svelte-s2yrtn"><section class="section svelte-s2yrtn"><header class="header svelte-s2yrtn"><h3 class="header__title svelte-s2yrtn">Spacing Grids</h3> <button><!></button></header> <div><fieldset class="fieldset svelte-s2yrtn"><legend class="fieldset__legend svelte-s2yrtn">Spacing Grid Height</legend> <input class="fieldset__input svelte-s2yrtn" type="text" spellcheck="false"/> <button class="fieldset__button svelte-s2yrtn">Update</button></fieldset> <fieldset class="fieldset svelte-s2yrtn"><legend class="fieldset__legend svelte-s2yrtn">Spacing Grid Color</legend> <input class="fieldset__input svelte-s2yrtn" type="text" spellcheck="false"/> <button class="fieldset__button svelte-s2yrtn">Update</button></fieldset></div></section> <section class="section svelte-s2yrtn"><div class="header svelte-s2yrtn"><h3 class="header__title svelte-s2yrtn">Layout Grids</h3> <button><!></button></div> <div><fieldset class="fieldset svelte-s2yrtn"><legend class="fieldset__legend svelte-s2yrtn">Layout Grid Color</legend> <input class="fieldset__input svelte-s2yrtn" type="text" spellcheck="false"/> <button class="fieldset__button svelte-s2yrtn">Update</button></fieldset> <div class="table-wrapper svelte-s2yrtn"><table class="table svelte-s2yrtn"><thead class="svelte-s2yrtn"><tr class="svelte-s2yrtn"><th class="svelte-s2yrtn">Width</th><th class="svelte-s2yrtn">Columns</th><th class="svelte-s2yrtn">Gutter Width</th><th class="svelte-s2yrtn">Outer Gutter</th><th class="svelte-s2yrtn">Position</th><th class="svelte-s2yrtn"></th></tr></thead><tbody class="svelte-s2yrtn"></tbody><tfoot class="svelte-s2yrtn"><tr class="svelte-s2yrtn"><td class="svelte-s2yrtn"><input type="text" placeholder="1140px" spellcheck="false" class="svelte-s2yrtn"/></td><td class="svelte-s2yrtn"><input type="text" inputmode="numeric" placeholder="12" spellcheck="false" class="svelte-s2yrtn"/></td><td class="svelte-s2yrtn"><input type="text" placeholder="24px" spellcheck="false" class="svelte-s2yrtn"/></td><td class="svelte-s2yrtn"><select class="svelte-s2yrtn"><option class="svelte-s2yrtn">Yes</option><option class="svelte-s2yrtn">No</option></select></td><td class="svelte-s2yrtn"><select class="svelte-s2yrtn"><option class="svelte-s2yrtn">Center</option><option class="svelte-s2yrtn">Left</option><option class="svelte-s2yrtn">Right</option></select></td><td class="svelte-s2yrtn"><button class="table__add-button svelte-s2yrtn">Add</button></td></tr></tfoot></table></div></div></section></div> <footer class="footer svelte-s2yrtn"><button class="footer__button svelte-s2yrtn">Reset All Settings</button> <button class="footer__button svelte-s2yrtn">Close</button></footer></div>');const Ec={hash:"svelte-s2yrtn",code:'.container.svelte-s2yrtn{height:100%;overflow:hidden}.inner.svelte-s2yrtn{height:100%;overflow:auto;overscroll-behavior:contain;padding:24px 24px 40px}@media (max-width:680px){.inner.svelte-s2yrtn{padding:16px 16px 32px}}.footer.svelte-s2yrtn{align-items:center;bottom:-18px;display:flex;gap:8px;left:0;margin:auto;position:absolute;right:0;width:max-content;z-index:1}.footer__button.svelte-s2yrtn{background:var(--btn-bg);border-radius:16px;color:var(--btn-fg)}.footer__button.svelte-s2yrtn:hover:not(:disabled){background:var(--btn-hover-bg)}.footer__button.svelte-s2yrtn:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.footer__button.svelte-s2yrtn:disabled{background:var(--btn-disabled-bg);cursor:not-allowed}.footer__button.svelte-s2yrtn{font-size:15px;line-height:32px;width:160px}@media (max-width:420px){.footer__button.svelte-s2yrtn{font-size:14px;width:132px}}.section.svelte-s2yrtn:not(:last-child){margin-bottom:32px}.section__content.svelte-s2yrtn{transition:opacity .2s ease}.section__content.disabled.svelte-s2yrtn{opacity:.5;pointer-events:none}.header.svelte-s2yrtn{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.header__title.svelte-s2yrtn{font-size:18px;line-height:24px;margin:0}.header__toggle-button.svelte-s2yrtn{background:var(--btn-bg);border-radius:16px;color:var(--btn-fg)}.header__toggle-button.svelte-s2yrtn:hover:not(:disabled){background:var(--btn-hover-bg)}.header__toggle-button.svelte-s2yrtn:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.header__toggle-button.svelte-s2yrtn:disabled{background:var(--btn-disabled-bg);cursor:not-allowed}.header__toggle-button.svelte-s2yrtn{align-items:center;display:flex;font-size:15px;gap:4px;line-height:32px;padding:0 10px;width:116px}.header__toggle-button.svelte-s2yrtn:after{content:"Disabled";flex:1;text-align:center}.header__toggle-button.enabled.svelte-s2yrtn:after{content:"Enabled"}.header__toggle-button.svelte-s2yrtn >svg{flex:none}.header__toggle-button.svelte-s2yrtn #toggle-trigger{transform:translateX(-8px);transition:transform .25s cubic-bezier(.4,0,.2,1)}.header__toggle-button.enabled.svelte-s2yrtn #toggle-trigger{transform:translateX(0)}.fieldset.svelte-s2yrtn{align-items:center;border:2px solid var(--border-medium);border-radius:12px;display:flex;margin:0 0 16px;padding:8px 16px}.fieldset.svelte-s2yrtn:has(:where(.svelte-s2yrtn):focus-visible){box-shadow:0 0 0 2px var(--focus-ring)}.fieldset.svelte-s2yrtn:has(:where(.svelte-s2yrtn):focus-visible)>.fieldset__legend:where(.svelte-s2yrtn){box-shadow:0 0 0 2px var(--focus-ring)}.fieldset__legend.svelte-s2yrtn{background:var(--btn-bg);border-radius:6px;color:var(--btn-fg);font-size:15px;line-height:24px;margin-left:-4px;padding:0 8px}.fieldset__input.svelte-s2yrtn{background:transparent;border:none;color:var(--input-text);display:block;flex:1;font-family:monospace;font-size:16px;line-height:24px;outline:none;padding:8px 8px 8px 0;width:100%}.fieldset__input.svelte-s2yrtn::placeholder{color:var(--input-placeholder)}.fieldset__button.svelte-s2yrtn{background:var(--btn-bg);border-radius:16px;color:var(--btn-fg)}.fieldset__button.svelte-s2yrtn:hover:not(:disabled){background:var(--btn-hover-bg)}.fieldset__button.svelte-s2yrtn:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.fieldset__button.svelte-s2yrtn:disabled{background:var(--btn-disabled-bg);cursor:not-allowed}.fieldset__button.svelte-s2yrtn{font-size:14px;line-height:24px;padding:0 12px}.table-wrapper.svelte-s2yrtn{border:2px solid var(--border-medium);border-radius:12px;margin-top:20px;overflow:auto}.table.svelte-s2yrtn{border-collapse:collapse;border-spacing:0;font-size:15px;line-height:16px;min-width:100%;text-align:left;white-space:nowrap;width:max-content}.table__actions.svelte-s2yrtn{text-align:center}.table__button--delete.svelte-s2yrtn{border-radius:8px;color:var(--text-secondary);transition:color .2s ease}.table__button--delete.svelte-s2yrtn >svg{height:16px;margin-top:2px;width:16px}.table__button--delete.svelte-s2yrtn:hover:not(:disabled){color:var(--color-danger)}.table__button--delete.svelte-s2yrtn:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.table__button--delete.svelte-s2yrtn:disabled{cursor:not-allowed;opacity:.5}.table.svelte-s2yrtn>thead:where(.svelte-s2yrtn){border-bottom:1px solid var(--border-light);color:var(--text-primary)}.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn){color:var(--text-secondary);text-transform:capitalize}.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn)>tr:where(.svelte-s2yrtn){border-bottom:1px solid var(--border-light);cursor:pointer;outline:none;transition:background .2s ease,color .2s ease}.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn)>tr:where(.svelte-s2yrtn):hover{background:var(--color-success-bg)}.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn)>tr:where(.svelte-s2yrtn):focus-visible{box-shadow:inset 0 0 0 2px var(--focus-ring)}.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn)>tr.active:where(.svelte-s2yrtn){color:var(--color-success);cursor:default}.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn)>tr.active:where(.svelte-s2yrtn),.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn)>tr.active:where(.svelte-s2yrtn):hover{background:var(--color-success-bg)}.table.svelte-s2yrtn>tbody:where(.svelte-s2yrtn)>tr.active:where(.svelte-s2yrtn):focus-visible{box-shadow:inset 0 0 0 2px var(--focus-ring)}.table.svelte-s2yrtn th:where(.svelte-s2yrtn){height:40px;padding:0 8px}.table.svelte-s2yrtn th:where(.svelte-s2yrtn):not(:last-child){border-right:1px solid var(--border-light)}.table.svelte-s2yrtn td:where(.svelte-s2yrtn){height:32px;padding:0 8px}.table.svelte-s2yrtn td:where(.svelte-s2yrtn):not(:last-child){border-right:1px solid var(--border-light)}.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) td:where(.svelte-s2yrtn){height:40px;padding:0 8px}.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) input:where(.svelte-s2yrtn),.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) select:where(.svelte-s2yrtn){background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--input-text);font-size:15px;height:24px;outline:none;padding:0 4px}@media (max-width:680px){.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) input:where(.svelte-s2yrtn),.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) select:where(.svelte-s2yrtn){font-size:16px}}.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) input:where(.svelte-s2yrtn):focus-visible,.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) select:where(.svelte-s2yrtn):focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) input:where(.svelte-s2yrtn){width:72px}.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) input:where(.svelte-s2yrtn)::placeholder{color:var(--input-placeholder)}.table.svelte-s2yrtn>tfoot:where(.svelte-s2yrtn) select:where(.svelte-s2yrtn){cursor:pointer}.table__add-button.svelte-s2yrtn{background:var(--btn-bg);border-radius:16px;color:var(--btn-fg)}.table__add-button.svelte-s2yrtn:hover:not(:disabled){background:var(--btn-hover-bg)}.table__add-button.svelte-s2yrtn:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.table__add-button.svelte-s2yrtn:disabled{background:var(--btn-disabled-bg);cursor:not-allowed}.table__add-button.svelte-s2yrtn{font-size:14px;height:24px;padding:0 12px}'};function gs(e,t){bt(t,!0),Rt(e,Ec),lr(()=>{Re.init()});let r=M(ce(W.spacingGridHeight)),n=M(ce(W.spacingGridColor)),i=M(ce(W.layoutGridColor)),o=se(()=>s(r).trim()!==""&&s(r)!==W.spacingGridHeight),a=se(()=>s(n).trim()!==""&&s(n)!==W.spacingGridColor),c=se(()=>s(i).trim()!==""&&s(i)!==W.layoutGridColor);Pt(()=>{f(r,W.spacingGridHeight,!0),f(n,W.spacingGridColor,!0),f(i,W.layoutGridColor,!0)});let l=M(""),d=M(""),v=M(""),h=M(!0),u=M("center"),g=se(()=>s(l).trim()&&s(v).trim()&&/^\d+$/.test(s(d))&&Number(s(d))>0);function _(C,S,I){C.key==="Enter"&&I&&S()}function k(){Re.updateSpacingGridHeight(s(r).trim())}function b(){Re.updateSpacingGridColor(s(n).trim())}function $(){Re.updateLayoutGridColor(s(i).trim())}async function X(){await Re.add({width:/^\d+$/.test(s(l))?`${s(l)}px`:s(l),columns:Number(s(d)),gutterWidth:/^\d+$/.test(s(v))?`${s(v)}px`:s(v),isGutterOnOutside:s(h),position:s(u)}),f(l,""),f(d,""),f(v,""),f(h,!0),f(u,"center")}var ne=sr(),D=kt(ne);{var Z=C=>{var S=$c(),I=w(S),H=w(I),L=w(H),Q=A(w(L),2);let oe;Q.__click=function(...z){Re.toggleSpacingGrid?.apply(this,z)};var j=w(Q);hs(j,{}),y(Q),y(L);var Y=A(L,2);let ie;var ee=w(Y),pe=A(w(ee),2);zt(pe),pe.__keydown=z=>_(z,k,s(o));var te=A(pe,2);te.__click=k,y(ee);var ae=A(ee,2);let x;var N=A(w(ae),2);zt(N),N.__keydown=z=>_(z,b,s(a));var p=A(N,2);p.__click=b,y(ae),y(Y),y(H);var E=A(H,2),T=w(E),q=A(w(T),2);let re;q.__click=function(...z){Re.toggleLayoutGrid?.apply(this,z)};var Me=w(q);hs(Me,{}),y(q),y(T);var Te=A(T,2);let ze;var we=w(Te);let it;var Ae=A(w(we),2);zt(Ae),Ae.__keydown=z=>_(z,$,s(c));var ot=A(Ae,2);ot.__click=$,y(we);var Bt=A(we,2),fr=w(Bt),Mt=A(w(fr));Zn(Mt,21,()=>Re.layoutGrids,z=>z.id,(z,Ve)=>{const Fr=se(()=>W.activeLayoutGridId===s(Ve).id);var Xe=xc();Xe.__click=()=>Re.setActiveLayoutGrid(s(Ve).id),Xe.__keydown=Yr=>{(Yr.key==="Enter"||Yr.key===" ")&&(Yr.preventDefault(),Re.setActiveLayoutGrid(s(Ve).id))};let Br;var Ur=w(Xe),hr=w(Ur,!0);y(Ur);var pr=A(Ur),pi=w(pr,!0);y(pr);var gi=A(pr),eu=w(gi,!0);y(gi);var _i=A(gi),tu=w(_i,!0);y(_i);var bi=A(_i),ru=w(bi,!0);y(bi);var xs=A(bi),Hr=w(xs);Hr.__click=Yr=>{Yr.stopPropagation(),Re.delete(s(Ve).id)};var nu=w(Hr);vs(nu,{}),y(Hr),y(xs),y(Xe),Ee(()=>{Br=ke(Xe,1,"svelte-s2yrtn",null,Br,{active:s(Fr)}),vt(hr,s(Ve).width),vt(pi,s(Ve).columns),vt(eu,s(Ve).gutterWidth),vt(tu,s(Ve).isGutterOnOutside?"Yes":"No"),vt(ru,s(Ve).position),Hr.disabled=s(Fr),tt(Hr,"title",s(Fr)?"Cannot delete active grid":"Delete this grid")}),G(z,Xe)}),y(Mt);var yn=A(Mt),Ut=w(yn),Pr=w(Ut),Ht=w(Pr);zt(Ht),y(Pr);var Dr=A(Pr),wn=w(Dr);zt(wn),y(Dr);var Ir=A(Dr),Yt=w(Ir);zt(Yt),y(Ir);var vr=A(Ir),jr=w(vr),Rr=w(jr);Rr.value=Rr.__value=!0;var mn=A(Rr);mn.value=mn.__value=!1,y(jr),y(vr);var P=A(vr),At=w(P),Vt=w(At);Vt.value=Vt.__value="center";var ht=A(Vt);ht.value=ht.__value="left";var zr=A(ht);zr.value=zr.__value="right",y(At),y(P);var kn=A(P),Xt=w(kn);Xt.__click=X,y(kn),y(Ut),y(yn),y(fr),y(Bt),y(Te),y(E),y(I);var Nr=A(I,2),xn=w(Nr);xn.__click=function(...z){Re.reset?.apply(this,z)};var $n=A(xn,2);$n.__click=function(...z){K.enterToolbar?.apply(this,z)},y(Nr),y(S),Ee(()=>{oe=ke(Q,1,"header__toggle-button svelte-s2yrtn",null,oe,{enabled:W.showSpacingGrid}),ie=ke(Y,1,"section__content svelte-s2yrtn",null,ie,{disabled:!W.showSpacingGrid}),Y.inert=!W.showSpacingGrid,te.disabled=!s(o),x=Et(ae,"",x,{"background-color":s(n)}),p.disabled=!s(a),re=ke(q,1,"header__toggle-button svelte-s2yrtn",null,re,{enabled:W.showLayoutGrid}),ze=ke(Te,1,"section__content svelte-s2yrtn",null,ze,{disabled:!W.showLayoutGrid}),Te.inert=!W.showLayoutGrid,it=Et(we,"",it,{"background-color":s(i)}),ot.disabled=!s(c),Xt.disabled=!s(g)}),cr(pe,()=>s(r),z=>f(r,z)),cr(N,()=>s(n),z=>f(n,z)),cr(Ae,()=>s(i),z=>f(i,z)),cr(Ht,()=>s(l),z=>f(l,z)),cr(wn,()=>s(d),z=>f(d,z)),cr(Yt,()=>s(v),z=>f(v,z)),Io(jr,()=>s(h),z=>f(h,z)),Io(At,()=>s(u),z=>f(u,z)),G(C,S)};Se(D,C=>{Re.initialized&&C(Z)})}G(e,ne),yt()}xr(["click","keydown"]),Nt(gs,{},[],[],{mode:"open"});async function Sc(e){const t=await e.arrayBuffer(),r=await new Promise((n,i)=>{const o=new Image,a=URL.createObjectURL(e);o.onload=()=>{const c=Math.min(o.width,o.height),l=(o.width-c)/2,d=(o.height-c)/2,v=document.createElement("canvas");v.width=pn,v.height=pn;const h=v.getContext("2d");if(!h){URL.revokeObjectURL(a),i(new ur("Failed to get canvas context"));return}h.drawImage(o,l,d,c,c,0,0,pn,pn),v.toBlob(async u=>{URL.revokeObjectURL(a),u?n(await u.arrayBuffer()):i(new ur("Failed to create thumbnail"))},e.type,.8)},o.onerror=()=>{URL.revokeObjectURL(a),i(new ur(`Failed to load image: ${e.name}`))},o.src=a});return{originalBuffer:t,thumbnailBuffer:r,filename:e.name,mimeType:e.type}}async function Mc(e){const{validFiles:t,errors:r}=mc(e);if(t.length===0)return{data:[],errors:r};const n=await Promise.allSettled(t.map(Sc)),i=[],o=[...r];return n.forEach((a,c)=>{if(a.status==="fulfilled")i.push(a.value);else{const l=t[c],d=a.reason instanceof ur?a.reason:new ur(`Failed to process ${l.name}`,String(a.reason));o.push(d)}}),{data:i,errors:o}}function Ac(){let e=M(ce([])),t=M(!1),r=null;return{get initialized(){return s(t)},get mockups(){return s(e)},get activeMockupId(){return m.activeMockupId},init:async()=>(s(t)||r||(r=(async()=>{try{f(e,await rs(),!0)}catch(n){O.showError(n,"Failed to load mockups")}finally{f(t,!0),r=null}})()),r),upload:async n=>{if(n.length!==0)try{const{data:i,errors:o}=await Mc(n);o.length>0&&o.forEach(a=>O.showError(a)),i.length>0&&(await Jl(i),f(e,await rs(),!0))}catch(i){O.showError(i,"Failed to upload mockups")}},select:n=>{m.setActiveMockup(n)},delete:async n=>{try{await Ql(n),f(e,s(e).filter(i=>i.id!==n),!0),m.activeMockupId===n&&m.setActiveMockup(null)}catch(i){O.showError(i,"Failed to delete mockup")}},clear:async()=>{try{await ec(),f(e,[],!0),m.setActiveMockup(null)}catch(n){O.showError(n,"Failed to clear mockups")}}}}const nt=Ac();var Lc=ye('<div class="mockup__indicator svelte-12ri4gy"></div>'),Cc=ye('<div><button class="mockup__preview svelte-12ri4gy" type="button"><img class="mockup__image svelte-12ri4gy" draggable="false"/></button> <!> <button class="mockup__delete svelte-12ri4gy" title="Delete mockup"><!></button></div>'),Tc=ye('<div class="container svelte-12ri4gy" role="region" aria-label="Mockup Manager"><div class="inner svelte-12ri4gy"><div class="grid svelte-12ri4gy"><label class="upload-button svelte-12ri4gy"><span class="upload-button__icon svelte-12ri4gy"><!></span> <span class="upload-button__text svelte-12ri4gy">Upload Mockups</span> <input type="file" multiple class="svelte-12ri4gy"/></label> <!></div></div> <footer class="footer svelte-12ri4gy"><button class="footer__button svelte-12ri4gy">Clear Mockups</button> <button class="footer__button svelte-12ri4gy">Close</button></footer></div>');const Oc={hash:"svelte-12ri4gy",code:".container.svelte-12ri4gy{height:100%;overflow:hidden}.inner.svelte-12ri4gy{height:100%;overflow:auto;overscroll-behavior:contain;padding:24px 24px 40px}@media (max-width:680px){.inner.svelte-12ri4gy{padding:16px 16px 32px}}.footer.svelte-12ri4gy{align-items:center;bottom:-18px;display:flex;gap:8px;left:0;margin:auto;position:absolute;right:0;width:max-content;z-index:1}.footer__button.svelte-12ri4gy{background:var(--btn-bg);border-radius:16px;color:var(--btn-fg)}.footer__button.svelte-12ri4gy:hover:not(:disabled){background:var(--btn-hover-bg)}.footer__button.svelte-12ri4gy:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.footer__button.svelte-12ri4gy:disabled{background:var(--btn-disabled-bg);cursor:not-allowed}.footer__button.svelte-12ri4gy{font-size:15px;line-height:32px;width:160px}@media (max-width:420px){.footer__button.svelte-12ri4gy{font-size:14px;width:132px}}.grid.svelte-12ri4gy{display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.upload-button.svelte-12ri4gy{align-items:center;aspect-ratio:1/1;background:transparent;border:2px solid var(--mockup-border);border-radius:16px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;outline:none;transition:background .2s ease}.upload-button.svelte-12ri4gy:focus-visible,.upload-button.svelte-12ri4gy:has(:where(.svelte-12ri4gy):focus-visible),.upload-button.svelte-12ri4gy:hover{background:var(--focus-bg);border-color:var(--mockup-border-hover);box-shadow:0 0 0 2px var(--focus-ring)}.upload-button__icon.svelte-12ri4gy{height:32px;margin-bottom:12px;width:32px}.upload-button__icon.svelte-12ri4gy >svg{height:100%;width:100%}.upload-button__text.svelte-12ri4gy{font-size:15px;font-weight:500;line-height:24px}input[type=file].svelte-12ri4gy{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.mockup.svelte-12ri4gy{aspect-ratio:1/1;position:relative}@media (hover:hover){.mockup.svelte-12ri4gy:hover .mockup__delete:where(.svelte-12ri4gy){opacity:1}}.mockup.active.svelte-12ri4gy .mockup__preview:where(.svelte-12ri4gy){border-color:var(--mockup-border-hover)}.mockup__preview.svelte-12ri4gy{border:2px solid var(--mockup-border);border-radius:16px;display:block;height:100%;overflow:hidden;width:100%}.mockup__preview.svelte-12ri4gy:focus,.mockup__preview.svelte-12ri4gy:hover{border-color:var(--mockup-border-hover);box-shadow:0 0 0 2px var(--focus-ring)}.mockup__image.svelte-12ri4gy{height:100%;object-fit:cover;width:100%}.mockup__indicator.svelte-12ri4gy{background:var(--color-success);border-radius:50%;box-shadow:0 0 0 2px var(--dock-bg);height:12px;left:12px;pointer-events:none;position:absolute;top:12px;width:12px}.mockup__delete.svelte-12ri4gy{align-items:center;background:var(--btn-bg);border-radius:16px;bottom:12px;color:var(--btn-fg);display:flex;height:32px;justify-content:center;padding:4px;position:absolute;right:12px;transition:background .2s ease,opacity .2s ease;width:32px;z-index:1}@media (hover:hover){.mockup__delete.svelte-12ri4gy{opacity:0}}.mockup__delete.svelte-12ri4gy >svg{height:20px;width:20px}.mockup__delete.svelte-12ri4gy:focus-visible,.mockup__delete.svelte-12ri4gy:hover{background:var(--btn-hover-bg);box-shadow:0 0 0 2px var(--focus-ring);opacity:1}@media (max-width:680px){.grid.svelte-12ri4gy{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.grid.svelte-12ri4gy{grid-template-columns:repeat(2,1fr)}}"};function _s(e,t){bt(t,!0),Rt(e,Oc),lr(()=>{nt.init()});function r(h){const u=h.target;u.files&&nt.upload(Array.from(u.files)),u.value=""}function n(h){h.preventDefault(),h.stopPropagation()}function i(h){h.preventDefault(),h.stopPropagation();const u=Array.from(h.dataTransfer?.files||[]).filter(g=>gn.includes(g.type));nt.upload(u)}function o(h,u){h.stopPropagation(),nt.delete(u)}function a(h){K.enterToolbar(),setTimeout(()=>nt.select(h),hi)}function c(h,{buffer:u,mimeType:g}){let _;function k(b,$){_&&URL.revokeObjectURL(_);const X=new Blob([b],{type:$});_=URL.createObjectURL(X),h.src=_}return k(u,g),{update({buffer:b,mimeType:$}){k(b,$)},destroy(){_&&URL.revokeObjectURL(_)}}}var l=sr(),d=kt(l);{var v=h=>{var u=Tc(),g=w(u),_=w(g),k=w(_),b=w(k),$=w(b);Vo($,{}),y(b);var X=A(b,4);X.__change=r,y(k);var ne=A(k,2);Zn(ne,17,()=>nt.mockups,S=>S.id,(S,I)=>{const H=se(()=>nt.activeMockupId===s(I).id);var L=Cc();let Q;var oe=w(L);oe.__click=()=>a(s(I).id);var j=w(oe);To(j,(te,ae)=>c?.(te,ae),()=>({buffer:s(I).thumbnailBuffer,mimeType:s(I).mimeType})),y(oe);var Y=A(oe,2);{var ie=te=>{var ae=Lc();G(te,ae)};Se(Y,te=>{s(H)&&te(ie)})}var ee=A(Y,2);ee.__click=te=>o(te,s(I).id);var pe=w(ee);vs(pe,{}),y(ee),y(L),Ee(()=>{Q=ke(L,1,"mockup svelte-12ri4gy",null,Q,{active:s(H)}),oe.disabled=s(H),tt(j,"alt",s(I).filename)}),Eo(j),G(S,L)}),y(_),y(g);var D=A(g,2),Z=w(D);Z.__click=function(...S){nt.clear?.apply(this,S)};var C=A(Z,2);C.__click=function(...S){K.enterToolbar?.apply(this,S)},y(D),y(u),Ee(S=>{tt(X,"accept",S),Z.disabled=nt.mockups.length===0},[()=>gn.join(",")]),or("drop",u,i),or("dragover",u,n),G(h,u)};Se(d,h=>{nt.initialized&&h(v)})}G(e,l),yt()}xr(["change","click"]),Nt(_s,{},[],[],{mode:"open"});var Gc=ye('<div class="dock__popover svelte-19cxvb5"><div class="alignment-group alignment-group--vertical svelte-19cxvb5"><button title="Align top"><!></button> <button title="Align bottom"><!></button></div> <div class="alignment-group alignment-group--horizontal svelte-19cxvb5"><button title="Align left"><!></button> <button title="Align center horizontally"><!></button> <button title="Align right"><!></button></div></div>'),Pc=ye('<div class="toolbar svelte-19cxvb5"><button class="icon-button svelte-19cxvb5"><!></button> <button class="icon-button svelte-19cxvb5"><!></button> <button title="Opacity (Click to reset, Ctrl+Scroll to adjust)"><!> <span class="opacity-button__value svelte-19cxvb5"> </span></button> <button class="icon-button alignment-trigger-btn svelte-19cxvb5" title="Alignment (Click for top-center)"><!></button> <button class="icon-button scale-button svelte-19cxvb5" title="Scale (1x ↔ 0.5x)"><!> <span class="scale-button__value svelte-19cxvb5"> </span></button> <button class="icon-button svelte-19cxvb5" title="Mockup Manager"><!></button> <button class="icon-button svelte-19cxvb5" title="Grid Manager"><!></button> <button class="icon-button svelte-19cxvb5" title="Toggle theme"><!></button> <button title="Toggle dock position"><!></button></div> <!>',1),Dc=ye('<div class="manager-wrapper svelte-19cxvb5"><!></div>'),Ic=ye('<div class="manager-wrapper svelte-19cxvb5"><!></div>'),jc=ye('<div class="dock__coordinates svelte-19cxvb5"> </div>'),Rc=ye("<div><!> <!></div>");const zc={hash:"svelte-19cxvb5",code:".dock.svelte-19cxvb5{align-items:center;background:var(--dock-bg);border:2px solid var(--dock-border);border-radius:32px;bottom:24px;color:var(--dock-fg);display:flex;font-family:Arial,sans-serif;justify-content:center;left:8px;margin-left:auto;margin-right:auto;max-height:75vh;max-width:calc(100vw - 16px);outline:2px solid var(--dock-outline);position:fixed;right:8px;transform:translateZ(0);transition:width var(--transition-duration) cubic-bezier(.4,0,.2,1),height var(--transition-duration) cubic-bezier(.4,0,.2,1),border-radius var(--transition-duration) cubic-bezier(.4,0,.2,1);will-change:width,height,border-radius;z-index:2147483647}.dock[hidden].svelte-19cxvb5{display:none!important}.dock.svelte-19cxvb5,.dock.svelte-19cxvb5 :where(.svelte-19cxvb5){touch-action:pan-x pan-y;user-select:none}.dock.at-top.svelte-19cxvb5{bottom:auto;top:40px}.dock.is-dragging.svelte-19cxvb5{pointer-events:none}.dock__coordinates.svelte-19cxvb5{background:var(--btn-bg);border-radius:16px;bottom:calc(100% + 8px);color:var(--btn-fg);font-family:monospace;font-size:12px;left:0;line-height:20px;margin:auto;padding:0 8px;position:absolute;right:0;white-space:nowrap;width:max-content;z-index:1}.dock__popover.svelte-19cxvb5{align-items:center;background:var(--dock-bg);border:2px solid var(--dock-border);border-bottom:none;border-radius:12px 12px 0 0;bottom:100%;display:flex;left:74px;overflow:hidden;padding:4px 4px 0;position:absolute;z-index:2}.dock__popover.svelte-19cxvb5 button:focus,.toolbar.svelte-19cxvb5 button:focus{outline:none}.toolbar.svelte-19cxvb5{align-items:center;display:flex;flex-shrink:0;max-width:100%;overflow-x:auto;padding:0 8px;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none}.toolbar.svelte-19cxvb5::-webkit-scrollbar{display:none}.icon-button.svelte-19cxvb5{padding:6px}.icon-button.svelte-19cxvb5:focus-visible{background:var(--focus-bg)}.icon-button.svelte-19cxvb5:disabled{cursor:not-allowed;opacity:.5}.icon-button.flip.svelte-19cxvb5{transform:rotate(180deg)}.icon-button.flip.svelte-19cxvb5:active{transform:scale(.95) rotate(180deg)}.opacity-button.svelte-19cxvb5{position:relative}.opacity-button.sliding.svelte-19cxvb5{background:var(--btn-hover);opacity:1}.opacity-button__value.svelte-19cxvb5{font-size:8px;font-weight:700;left:0;line-height:12px;position:absolute;right:0;text-align:center;top:14px;z-index:1}.scale-button.svelte-19cxvb5{position:relative}.scale-button__value.svelte-19cxvb5{font-size:11.5px;font-weight:700;height:16px;inset:0;line-height:16px;margin:auto;position:absolute;text-align:center;z-index:1}.alignment-group.svelte-19cxvb5{align-items:center;border-radius:6px;display:flex;padding:2px}.alignment-group.svelte-19cxvb5+.alignment-group:where(.svelte-19cxvb5){margin-left:4px}.alignment-group--vertical.svelte-19cxvb5{background:var(--align-y-bg)}.alignment-group--vertical.svelte-19cxvb5 .alignment-button:where(.svelte-19cxvb5):hover{background:var(--align-y-hover)}.alignment-group--vertical.svelte-19cxvb5 .alignment-button.active:where(.svelte-19cxvb5),.alignment-group--vertical.svelte-19cxvb5 .alignment-button:where(.svelte-19cxvb5):active{background:var(--align-y-active)}.alignment-group--horizontal.svelte-19cxvb5{background:var(--align-x-bg)}.alignment-group--horizontal.svelte-19cxvb5 .alignment-button:where(.svelte-19cxvb5):hover{background:var(--align-x-hover)}.alignment-group--horizontal.svelte-19cxvb5 .alignment-button.active:where(.svelte-19cxvb5),.alignment-group--horizontal.svelte-19cxvb5 .alignment-button:where(.svelte-19cxvb5):active{background:var(--align-x-active)}.alignment-button.svelte-19cxvb5{border-radius:6px;padding:2px}.alignment-button.svelte-19cxvb5:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}.alignment-button.svelte-19cxvb5 >svg{height:24px;width:24px}.manager-wrapper.svelte-19cxvb5{height:100%;width:100%}.manager-wrapper.svelte-19cxvb5 .inner{animation:svelte-19cxvb5-a .2s cubic-bezier(.4,0,.2,1)}@keyframes svelte-19cxvb5-a{0%{opacity:0}to{opacity:1}}@media (max-width:680px){.dock.is-manager.svelte-19cxvb5{border-radius:24px}}"};function bs(e,t){bt(t,!0),Rt(e,zc);let r=M(!1),n,i=M(!1),o=0,a=0,c=se(()=>Math.round(m.opacity*100)),l=se(()=>m.scale===.5?".5x":`${m.scale}x`),d=se(()=>!m.activeMockupId),v=se(()=>m.isHidden),h=se(()=>m.isLocked),u=se(()=>m.isDragging),g=se(()=>s(d)||s(v)),_=se(()=>K.mode==="toolbar"&&!s(r)&&!s(g));function k(){Yo()||s(u)||f(r,!0)}function b(j){if(Yo())return;const Y=j.relatedTarget;Y?.closest(".dock__popover")||Y?.closest(".alignment-trigger-btn")||f(r,!1)}function $(){const j=m.alignmentY==="top"&&m.alignmentX==="center";s(r)?j?f(r,!1):m.setAlignment("top","center"):f(r,!0)}function X(j){Cr()&&(j.preventDefault(),f(i,!0),o=j.touches[0].clientX,a=m.opacity,window.addEventListener("touchmove",ne,{passive:!1}),window.addEventListener("touchend",D))}function ne(j){if(!s(i))return;j.preventDefault();const ie=(j.touches[0].clientX-o)/200,ee=a+ie;m.setOpacity(ee)}function D(){f(i,!1),window.removeEventListener("touchmove",ne),window.removeEventListener("touchend",D)}Pt(()=>{if(!Cr()||!s(r))return;const j=ie=>{ie.composedPath().includes(n)||f(r,!1)},Y=setTimeout(()=>{window.addEventListener("touchend",j)},0);return()=>{clearTimeout(Y),window.removeEventListener("touchend",j)}}),Pt(()=>{if(!K.isManagerMode)return;const j=setTimeout(()=>{K.managerVisible=!0},hi),Y=ee=>{ee.composedPath().includes(n)||K.enterToolbar()},ie=setTimeout(()=>{window.addEventListener("click",Y)},0);return()=>{clearTimeout(j),clearTimeout(ie),window.removeEventListener("click",Y)}}),lr(()=>{K.init()});var Z=Rc();let C,S;var I=w(Z);{var H=j=>{var Y=Pc(),ie=kt(Y),ee=w(ie);ee.__click=function(...P){m.toggleVisibility?.apply(this,P)};var pe=w(ee);{var te=P=>{Sl(P,{})},ae=P=>{$l(P,{})};Se(pe,P=>{s(v)?P(te):P(ae,!1)})}y(ee);var x=A(ee,2);x.__click=()=>m.toggleLock();var N=w(x);{var p=P=>{Tl(P,{})},E=P=>{Gl(P,{})};Se(N,P=>{s(h)?P(p):P(E,!1)})}y(x);var T=A(x,2);let q;T.__click=function(...P){m.resetOpacity?.apply(this,P)};var re=se(()=>Cr()?X:void 0);T.__touchstart=function(...P){s(re)?.apply(this,P)};var Me=w(T);kl(Me,{});var Te=A(Me,2),ze=w(Te,!0);y(Te),y(T);var we=A(T,2);we.__click=$;var it=w(we);gl(it,{}),y(we);var Ae=A(we,2);Ae.__click=function(...P){m.cycleScale?.apply(this,P)};var ot=w(Ae);hl(ot,{});var Bt=A(ot,2),fr=w(Bt,!0);y(Bt),y(Ae);var Mt=A(Ae,2);Mt.__click=function(...P){K.enterMockups?.apply(this,P)};var yn=w(Mt);Vo(yn,{}),y(Mt);var Ut=A(Mt,2);Ut.__click=function(...P){K.enterGrids?.apply(this,P)};var Pr=w(Ut);wl(Pr,{}),y(Ut);var Ht=A(Ut,2);Ht.__click=function(...P){K.toggleTheme?.apply(this,P)};var Dr=w(Ht);{var wn=P=>{Dl(P,{})},Ir=P=>{Ll(P,{})};Se(Dr,P=>{K.theme==="dark"?P(wn):P(Ir,!1)})}y(Ht);var Yt=A(Ht,2);let vr;Yt.__click=function(...P){K.togglePosition?.apply(this,P)};var jr=w(Yt);bl(jr,{}),y(Yt),y(ie);var Rr=A(ie,2);{var mn=P=>{var At=Gc(),Vt=w(At),ht=w(Vt);let zr;ht.__click=()=>m.setAlignmentY("top");var kn=w(ht);fl(kn,{}),y(ht);var Xt=A(ht,2);let Nr;Xt.__click=()=>m.setAlignmentY("bottom");var xn=w(Xt);il(xn,{}),y(Xt),y(Vt);var $n=A(Vt,2),z=w($n);let Ve;z.__click=()=>m.setAlignmentX("left");var Fr=w(z);ll(Fr,{}),y(z);var Xe=A(z,2);let Br;Xe.__click=()=>m.setAlignmentX("center");var Ur=w(Xe);sl(Ur,{}),y(Xe);var hr=A(Xe,2);let pr;hr.__click=()=>m.setAlignmentX("right");var pi=w(hr);ul(pi,{}),y(hr),y($n),y(At),Ee(()=>{zr=ke(ht,1,"alignment-button svelte-19cxvb5",null,zr,{active:m.alignmentY==="top"}),Nr=ke(Xt,1,"alignment-button svelte-19cxvb5",null,Nr,{active:m.alignmentY==="bottom"}),Ve=ke(z,1,"alignment-button svelte-19cxvb5",null,Ve,{active:m.alignmentX==="left"}),Br=ke(Xe,1,"alignment-button svelte-19cxvb5",null,Br,{active:m.alignmentX==="center"}),pr=ke(hr,1,"alignment-button svelte-19cxvb5",null,pr,{active:m.alignmentX==="right"})}),or("mouseleave",At,b),G(P,At)};Se(Rr,P=>{s(r)&&!s(g)&&!s(h)&&P(mn)})}Ee(()=>{ee.disabled=s(d),tt(ee,"title",s(v)?"Show mockup":"Hide mockup"),x.disabled=s(g),tt(x,"title",s(h)?"Unlock mockup position":"Lock mockup position"),q=ke(T,1,"icon-button opacity-button svelte-19cxvb5",null,q,{sliding:s(i)}),T.disabled=s(g),vt(ze,s(c)),we.disabled=s(g)||s(h),Ae.disabled=s(g)||s(h),vt(fr,s(l)),vr=ke(Yt,1,"icon-button svelte-19cxvb5",null,vr,{flip:K.position==="top"})}),or("mouseenter",we,k),or("mouseleave",we,b),G(j,Y)},L=j=>{var Y=sr(),ie=kt(Y);{var ee=te=>{var ae=Dc(),x=w(ae);_s(x,{}),y(ae),G(te,ae)},pe=te=>{var ae=sr(),x=kt(ae);{var N=p=>{var E=Ic(),T=w(E);gs(T,{}),y(E),G(p,E)};Se(x,p=>{K.mode==="grids"&&K.managerVisible&&p(N)},!0)}G(te,ae)};Se(ie,te=>{K.mode==="mockups"&&K.managerVisible?te(ee):te(pe,!1)},!0)}G(j,Y)};Se(I,j=>{K.mode==="toolbar"&&K.toolbarVisible?j(H):j(L,!1)})}var Q=A(I,2);{var oe=j=>{var Y=jc(),ie=w(Y,!0);y(Y),Ee(()=>vt(ie,m.positionDisplay)),G(j,Y)};Se(Q,j=>{s(_)&&j(oe)})}y(Z),qa(Z,j=>n=j,()=>n),Ee(()=>{C=ke(Z,1,"dock svelte-19cxvb5",null,C,{"at-top":K.position==="top","is-manager":K.isManagerMode,"is-dragging":s(u)}),tt(Z,"hidden",!K.initialized||m.isSolidOrZoomed),S=Et(Z,"",S,{"--transition-duration":`${hi}ms`,width:`${K.size.width??""}px`,height:`${K.size.height??""}px`})}),G(e,Z),yt()}xr(["click","touchstart"]),Nt(bs,{},[],[],{mode:"open"});var Nc=ye('<div class="spacing-grid svelte-hxwjdk"></div>'),Fc=ye('<div class="layout-grid__column svelte-hxwjdk"></div>'),Bc=ye('<div><div class="layout-grid__inner svelte-hxwjdk"></div></div>'),Uc=ye("<!> <!>",1);const Hc={hash:"svelte-hxwjdk",code:".spacing-grid.svelte-hxwjdk{position:absolute;z-index:2147483646}.layout-grid.svelte-hxwjdk,.spacing-grid.svelte-hxwjdk{inset:0;pointer-events:none}.layout-grid.svelte-hxwjdk{display:flex;position:fixed;z-index:2147483645}.layout-grid--center.svelte-hxwjdk{justify-content:center}.layout-grid--left.svelte-hxwjdk{justify-content:flex-start}.layout-grid--right.svelte-hxwjdk{justify-content:flex-end}.layout-grid__inner.svelte-hxwjdk{display:flex;height:100%}.layout-grid__column.svelte-hxwjdk{flex:1;height:100%}"};function ys(e,t){bt(t,!0),Rt(e,Hc),lr(()=>{W.init()}),cn(()=>{W.cleanup()});let r=se(()=>!m.isSolidOrZoomed);function n(d,v){return d.replace(/[\d.]+/,h=>String(+h*v))}var i=Uc(),o=kt(i);{var a=d=>{var v=Nc();let h;Ee(u=>h=Et(v,"",h,u),[()=>({"background-image":`linear-gradient(to bottom, ${W.spacingGridColor??""}
|
|
4
|
-
${W.spacingGridHeight??""}, transparent ${W.spacingGridHeight??""})`,"background-size":`100% ${n(W.spacingGridHeight,2)??""}`})]),G(d,v)};Se(o,d=>{W.showSpacingGrid&&s(r)&&d(a)})}var c=A(o,2);{var l=d=>{const v=se(()=>W.activeLayoutGrid);var h=Bc(),u=w(h);let g;Zn(u,21,()=>({length:s(v).columns}),Ra,(_,k)=>{var b=Fc();let $;Ee(()=>$=Et(b,"",$,{background:W.layoutGridColor})),G(_,b)}),y(u),y(h),Ee(_=>{ke(h,1,`layout-grid layout-grid--${s(v).position??""}`,"svelte-hxwjdk"),g=Et(u,"",g,_)},[()=>({width:s(v).width,"padding-left":s(v).isGutterOnOutside?n(s(v).gutterWidth,.5):void 0,"padding-right":s(v).isGutterOnOutside?n(s(v).gutterWidth,.5):void 0,gap:s(v).gutterWidth})]),G(d,h)};Se(c,d=>{W.showLayoutGrid&&W.activeLayoutGrid&&s(r)&&d(l)})}G(e,i),yt()}Nt(ys,{},[],[],{mode:"open"});var Yc=ye('<div class="mockup-container svelte-ya3gmp"><img draggable="false" class="mockup-overlay svelte-ya3gmp" alt="Mockup Overlay"/></div>');const Vc={hash:"svelte-ya3gmp",code:".mockup-container.svelte-ya3gmp{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:2147483644}.mockup-overlay.svelte-ya3gmp{backface-visibility:hidden;left:0;max-width:none;position:absolute;top:0;transform-origin:top left;-webkit-user-select:none;user-select:none;will-change:transform;-webkit-touch-callout:none}"};function ws(e,t){bt(t,!0),Rt(e,Vc);let r=null,n=null,i=0,o=null,a=!1,c=!1,l=!1;function d(){n=null,i=0,c=!1,m.mode==="dragging"&&m.endTouchDrag(),m.endPinch()}function v(){!o||!l||(a&&(o.removeEventListener("gesturestart",Y),o.removeEventListener("gesturechange",ie),o.removeEventListener("gestureend",ee)),o.removeEventListener("touchstart",L),o.removeEventListener("touchmove",Q),o.removeEventListener("touchend",oe),o.removeEventListener("touchcancel",j),l=!1)}function h(){!o||l||("ongesturestart"in window&&(a=!0,o.addEventListener("gesturestart",Y,{passive:!1}),o.addEventListener("gesturechange",ie,{passive:!1}),o.addEventListener("gestureend",ee,{passive:!1})),o.addEventListener("touchstart",L,{passive:!1}),o.addEventListener("touchmove",Q,{passive:!1}),o.addEventListener("touchend",oe,{passive:!1}),o.addEventListener("touchcancel",j,{passive:!1}),l=!0)}function u(){document.hidden&&d()}lr(()=>{rl(),m.init(),Gr.init(),window.addEventListener("resize",_),document.addEventListener("visibilitychange",u)}),cn(()=>{window.removeEventListener("resize",_),document.removeEventListener("visibilitychange",u),r&&clearTimeout(r),v(),d(),o=null,Gr.cleanup(),m.cleanup()}),Pt(()=>{const x=!m.isHidden&&!!m.activeMockupUrl;o&&(x?h():(v(),d()))});function g(x){return o=x,m.isHidden||h(),{destroy(){v(),o=null}}}function _(){m.isAligned&&(r&&clearTimeout(r),r=setTimeout(()=>{m.updateAlignedPosition()},100))}let k=se(()=>K.mode==="toolbar");const b={dragging:"grabbing",solid:"zoom-in",zoomed:"zoom-out",visible:"grab"};let $=se(()=>{const{mode:x}=m;return s(k)?x==="solid"?{cursor:"zoom-in",pointerEvents:"auto"}:x==="locked"?{cursor:"default",pointerEvents:"auto"}:{cursor:b[x]||"grab",pointerEvents:"auto"}:{cursor:"default",pointerEvents:"none"}}),X=se(()=>`translate3d(${m.position.x}px, ${m.position.y}px, 0) scale(${m.scale})`),ne=se(()=>m.mode==="locked"?"pan-x pan-y":"none"),D=se(()=>m.isDragging||m.isZoomPanning||m.mode==="solid"?"none":"transform 0.2s ease-out");function Z(x){if(!s(k))return;tl(x);const{mode:N}=m;if(N!=="locked"&&x.pointerType!=="touch")switch(N){case"visible":n=x.pointerId,m.startDrag(x),x.target.setPointerCapture?.(x.pointerId);break;case"solid":m.enterZoomMode(x);break;case"zoomed":m.exitZoomMode();break}}function C(x){s(k)&&x.pointerId===n&&x.pointerType}function S(x){s(k)&&x.pointerId===n&&x.pointerType!=="touch"&&(n=null,x.target.releasePointerCapture?.(x.pointerId))}function I(x){x.pointerId===n&&(n=null,d())}let H={x:0,y:0};function L(x){if(!s(k))return;const{mode:N}=m;if(N==="locked"){if(i=x.touches.length,i===1){const p=x.touches[0];H={x:p.clientX,y:p.clientY}}return}if(x.preventDefault(),N==="solid"&&i===0&&(c=!1),i=x.touches.length,i===1){const p=x.touches[0];H={x:p.clientX,y:p.clientY},N==="solid"&&m.startSolidPan(x)}else i===2&&N==="solid"&&!a&&m.startPinch(x)}function Q(x){if(!s(k))return;const{mode:N}=m;if(N!=="locked")if(x.preventDefault(),x.touches.length===1){const p=x.touches[0],E=Math.abs(p.clientX-H.x),T=Math.abs(p.clientY-H.y);(E>ls||T>ls)&&N==="visible"&&m.startTouchDrag(x),N==="dragging"?m.handleTouchDrag(x):N==="solid"&&!c&&m.handleSolidPan(x)}else x.touches.length===2&&N==="solid"&&!a&&m.handlePinch(x)}function oe(x){if(!s(k))return;const{mode:N}=m,p=i;i=x.touches.length,N!=="locked"&&(!a&&p===2&&i<2&&m.endPinch(),i===0&&(N==="dragging"&&m.endTouchDrag(),c=!1))}function j(x){d()}function Y(x){if(!s(k)||m.mode!=="solid")return;x.preventDefault(),c=!0;const N=x.clientX+window.scrollX,p=x.clientY+window.scrollY;m.startGesturePinch(N,p)}function ie(x){s(k)&&m.mode==="solid"&&(x.preventDefault(),m.handleGesturePinch(x.scale))}function ee(x){s(k)&&(x.preventDefault(),m.endPinch())}var pe=sr(),te=kt(pe);{var ae=x=>{var N=Yc(),p=w(N);p.__pointerdown=Z,p.__pointermove=C,p.__pointerup=S;let E;To(p,T=>g?.(T)),y(N),Ee(()=>{tt(p,"src",m.activeMockupUrl),E=Et(p,"",E,{transform:s(X),transition:s(D),cursor:s($).cursor,"pointer-events":s($).pointerEvents,opacity:m.effectiveOpacity,"touch-action":s(ne)})}),or("pointercancel",p,I),Eo(p),G(x,N)};Se(te,x=>{!m.isHidden&&m.activeMockupUrl&&x(ae)})}G(e,pe),yt()}xr(["pointerdown","pointermove","pointerup"]),Nt(ws,{},[],[],{mode:"open"});var Xc=ue("<svg><!></svg>");function Wc(e,t){const r=ve(t,["children","$$slots","$$events","$$legacy"]);var n=Xc();fe(n,()=>({xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"none",color:"#000",viewBox:"0 0 24 24",...r}));var i=w(n);de(i,()=>'<path stroke="currentColor" stroke-width="2" d="M5.322 9.683c2.413-4.271 3.62-6.407 5.276-6.956a4.45 4.45 0 0 1 2.804 0c1.656.55 2.863 2.685 5.276 6.956 2.414 4.27 3.62 6.406 3.259 8.146-.2.958-.69 1.826-1.402 2.48C19.241 21.5 16.827 21.5 12 21.5s-7.241 0-8.535-1.19a4.66 4.66 0 0 1-1.402-2.48c-.362-1.74.845-3.876 3.259-8.147Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11.992 16h.009M12 13V9"/>',!0),y(n),G(e,n)}var qc=ye('<div class="toast svelte-1ig2a9j"><!> <span class="toast__message svelte-1ig2a9j"> </span></div>');const Zc={hash:"svelte-1ig2a9j",code:".toast.svelte-1ig2a9j{animation:svelte-1ig2a9j-b .25s cubic-bezier(.4,0,.2,1);background:var(--color-danger);border-radius:16px;color:#fff;display:flex;font-family:Arial,sans-serif;gap:8px;left:50%;max-width:min(90vw,400px);outline:2px solid hsla(0,0%,100%,.5);padding:8px 16px;position:fixed;top:16px;transform:translateX(-50%);z-index:2147483647}.toast.svelte-1ig2a9j >svg{flex-shrink:0;height:20px;width:20px}.toast__message.svelte-1ig2a9j{font-size:15px;font-weight:500;line-height:18px;padding:1px 0}@keyframes svelte-1ig2a9j-b{0%{opacity:0;transform:translateX(-50%) translateY(-12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}"};function ms(e,t){bt(t,!0),Rt(e,Zc);let r=!1;Pt(()=>{if(O.errorMessage)return window.addEventListener("mousedown",O.clear),r=!0,()=>{window.removeEventListener("mousedown",O.clear),r=!1}}),cn(()=>{r&&window.removeEventListener("mousedown",O.clear)});var n=sr(),i=kt(n);{var o=a=>{var c=qc(),l=w(c);Wc(l,{});var d=A(l,2),v=w(d,!0);y(d),y(c),Ee(()=>vt(v,O.errorMessage)),G(a,c)};Se(i,a=>{O.errorMessage&&a(o)})}G(e,n),yt()}Nt(ms,{},[],[],{mode:"open"});var Kc=ye("<div><!> <!> <!> <!></div>");const Jc={hash:"svelte-1n46o8q",code:".theme-root.svelte-1n46o8q{--dock-bg:#fff;--dock-fg:#000;--dock-border:#000;--dock-outline:hsla(0,0%,100%,.5);--text-primary:#000;--text-secondary:#333;--border-light:#eee;--border-medium:#d4d4d4;--input-bg:#fff;--input-text:#000;--input-placeholder:#999;--input-border:#d4d4d4;--btn-bg:#000;--btn-fg:#fff;--btn-hover-bg:#333;--btn-disabled-bg:#555;--focus-ring:#d9daff;--focus-bg:rgba(217,218,255,.2);--color-success:#10b981;--color-success-bg:#ecfdf5;--color-danger:#fe0200;--mockup-border:#999;--mockup-border-hover:#000;--align-x-bg:rgba(0,0,255,.05);--align-x-hover:rgba(0,0,255,.1);--align-x-active:rgba(0,0,255,.2);--align-y-bg:rgba(255,0,0,.05);--align-y-hover:rgba(255,0,0,.1);--align-y-active:rgba(255,0,0,.2)}.theme-root.dark.svelte-1n46o8q{--dock-bg:#1a1a1a;--dock-fg:#e8e8e8;--dock-border:#4d4d4d;--dock-outline:hsla(0,0%,100%,.1);--text-primary:#e8e8e8;--text-secondary:#999;--border-light:#3a3a3a;--border-medium:#4a4a4a;--input-bg:#2a2a2a;--input-text:#e8e8e8;--input-placeholder:#666;--input-border:#4a4a4a;--btn-bg:#3a3a3a;--btn-fg:#e8e8e8;--btn-hover-bg:#5a5a5a;--btn-disabled-bg:#6a6a6a;--focus-ring:#7a7cb8;--focus-bg:rgba(122,124,184,.2);--color-success-bg:rgba(16,185,129,.15);--mockup-border:#5a5a5a;--mockup-border-hover:#e8e8e8;--align-x-bg:rgba(120,170,240,.2);--align-x-hover:rgba(120,170,240,.3);--align-x-active:rgba(120,170,240,.4);--align-y-bg:rgba(240,130,150,.2);--align-y-hover:rgba(240,130,150,.3);--align-y-active:rgba(240,130,150,.4)} *{box-sizing:border-box} button{background:none;border:none;color:inherit;cursor:pointer;font:inherit;margin:0;outline:none;padding:0;-webkit-tap-highlight-color:transparent} button:disabled{cursor:default} button:not(:disabled):active{transform:scale(.95)} svg{color:currentColor;display:block;fill:none}"};function Qc(e,t){bt(t,!0),Rt(e,Jc);let r=0,n={x:0,y:0},i=0,o=!1,a=null;function c(){i=Date.now(),o=!0,a&&clearTimeout(a),a=setTimeout(()=>{o=!1},us)}function l(k){if(K.isManagerMode||k.touches.length!==0)return;if(o||Date.now()-i<us){r=0;return}const b=k.changedTouches[0],$=Date.now(),X=$-r,ne=Math.abs(b.clientX-n.x),D=Math.abs(b.clientY-n.y);X<sc&&ne<cs&&D<cs?(k.preventDefault(),m.toggleMobileSolidMode(),r=0):(r=$,n={x:b.clientX,y:b.clientY})}Pt(()=>Cr()?(!m.isHidden&&!!m.activeMockupUrl?(document.documentElement.style.touchAction="pan-x pan-y",document.addEventListener("touchend",l,{passive:!1}),window.addEventListener("scroll",c,{passive:!0})):(document.documentElement.style.touchAction="",document.removeEventListener("touchend",l),window.removeEventListener("scroll",c)),()=>{document.removeEventListener("touchend",l),window.removeEventListener("scroll",c),a&&clearTimeout(a)}):void 0),cn(()=>{Cr()&&(document.documentElement.style.touchAction="",document.removeEventListener("touchend",l),window.removeEventListener("scroll",c),a&&clearTimeout(a))});var d=Kc();let v;var h=w(d);ys(h,{});var u=A(h,2);ws(u,{});var g=A(u,2);bs(g,{});var _=A(g,2);ms(_,{}),y(d),Ee(()=>v=ke(d,1,"theme-root svelte-1n46o8q",null,v,{dark:K.theme==="dark"})),G(e,d),yt()}customElements.define("pixel-mirror",Nt(Qc,{},[],[],{mode:"open"}));const ks="pixel-mirror";document.querySelector(ks)||document.body.appendChild(document.createElement(ks)),document.documentElement.style.position="relative"})();
|
|
1
|
+
(function(){typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var e={},t=Symbol(`uninitialized`),n=`http://www.w3.org/1999/xhtml`,r=Array.isArray,i=Array.prototype.indexOf,a=Array.prototype.includes,o=Array.from,s=Object.keys,c=Object.defineProperty,l=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyDescriptors,d=Object.prototype,f=Array.prototype,p=Object.getPrototypeOf,m=Object.isExtensible,h=()=>{};function g(e){for(var t=0;t<e.length;t++)e[t]()}function _(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var v=1<<24,y=1024,b=2048,x=4096,S=8192,C=16384,w=32768,T=1<<25,E=65536,ee=1<<19,te=1<<20,D=1<<25,ne=1<<21,re=1<<22,ie=1<<23,ae=Symbol(`$state`),oe=Symbol(`component`),se=Symbol(`legacy props`),ce=Symbol(``),le=Symbol(`attributes`),ue=Symbol(`class`),de=Symbol(`style`),fe=Symbol(`text`),pe=Symbol(`form reset`),me=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},he=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ge(){console.warn(`https://svelte.dev/e/derived_inert`)}function _e(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ve(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function ye(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var O=!1;function be(e){O=e}var k;function A(t){if(t===null)throw _e(),e;return k=t}function xe(){return A(an(k))}function j(t){if(O){if(an(k)!==null)throw _e(),e;k=t}}function Se(e=1){if(O){for(var t=e,n=k;t--;)n=an(n);k=n}}function Ce(e=!0){for(var t=0,n=k;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=an(n);e&&n.remove(),n=i}}function we(t){if(!t||t.nodeType!==8)throw _e(),e;return t.data}function M(e){return e===this.v}function Te(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ee(e){return!Te(e,this.v)}function De(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Oe(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function ke(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function Ae(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function je(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Me(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Ne(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Pe(){throw Error(`https://svelte.dev/e/hydration_failed`)}function Fe(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Ie(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Le(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Re(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function ze(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Be=[];function Ve(e,t=!1,n=!1){return He(e,new Map,``,Be,null,n)}function He(e,t,n,i,a=null,o=!1){if(typeof e==`object`&&e){var s=t.get(e);if(s!==void 0)return s;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(r(e)){var c=Array(e.length);t.set(e,c),a!==null&&t.set(a,c);for(var l=0;l<e.length;l+=1){var u=e[l];l in e&&(c[l]=He(u,t,n,i,null,o))}return c}if(p(e)===d){c={},t.set(e,c),a!==null&&t.set(a,c);for(var f of Object.keys(e))c[f]=He(e[f],t,n,i,null,o);return c}if(e instanceof Date)return e.getTime(),structuredClone(e);if(typeof e.toJSON==`function`&&!o)return He(e.toJSON(),t,n,i,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}var Ue=null;function We(e){Ue=e}function Ge(e,t=!1,n){Ue={p:Ue,i:!1,c:null,e:null,s:e,x:null,r:H,l:null}}function Ke(e){var t=Ue,n=t.e;if(n!==null){t.e=null;for(var r of n)bn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ue=t.p,qe(e)}function qe(e={}){return c(e,oe,{value:!0}),e}function Je(){return!0}var Ye=[];function Xe(){var e=Ye;Ye=[],g(e)}function Ze(e){if(Ye.length===0&&!Ct){var t=Ye;queueMicrotask(()=>{t===Ye&&Xe()})}Ye.push(e)}function Qe(){for(;Ye.length>0;)Xe()}var $e=~(b|x|y);function N(e,t){e.f=e.f&$e|t}function et(e){e.f&512||e.deps===null?N(e,y):N(e,x)}function tt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),N(e,y)}var nt=!1;function rt(){nt||(nt=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[pe]?.()})},{capture:!0}))}function it(e){var t=V,n=H;Wn(null),Gn(null);try{return e()}finally{Wn(t),Gn(n)}}function at(e,t,n,r=n){e.addEventListener(t,()=>it(n));let i=e[pe];e[pe]=i?()=>{i(),r(!0)}:()=>r(!0),rt()}function ot(e,t,n,r){let i=Je()?ut:pt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=H,c=st(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){pn(e,s)}ct()}}var d=lt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>ft(e))).then(u).catch(e=>pn(e,s)).finally(d)}l?l.then(()=>{s.f&16384?d():(c(),f(),ct())}):f()}function st(){var e=H,t=V,n=Ue,r=F;return function(i=!0){Gn(e),Wn(t),We(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function ct(e=!0){Gn(null),Wn(null),We(null),e&&F?.deactivate()}function lt(){var e=H,t=e.b,n=F,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function ut(e){var n=2|b;return H!==null&&(H.f|=ee),{ctx:Ue,deps:null,effects:null,equals:M,f:n,fn:e,reactions:null,rv:0,v:t,wv:0,parent:H,ac:null}}var dt=Symbol(`obsolete`);function ft(e,n,r){let i=H;i===null&&Oe();var a=void 0,o=Bt(t),s=!V,c=new Set;return wn(()=>{var t=H,n=_();a=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==me&&n.reject(e)}).finally(ct)}catch(e){n.reject(e),ct()}var r=F;if(s){if(t.f&32768)var l=lt();if(i.b?.is_rendered())r.async_deriveds.get(t)?.reject(dt);else for(let e of c.values())e.reject(dt);c.add(n),r.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),c.delete(n),t!==dt&&(r.activate(),t?(o.f|=ie,Wt(o,t)):(o.f&8388608&&(o.f^=ie),Wt(o,e)),r.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),vn(()=>{for(let e of c)e.reject(dt)}),new Promise(e=>{function t(n){function r(){n===a?e(o):t(a)}n.then(r,r)}t(a)})}function P(e){let t=ut(e);return qn(t),t}function pt(e){let t=ut(e);return t.equals=Ee,t}function mt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Mn(t[n])}}function ht(e){var n,r=H,i=e.parent;if(!Vn&&i!==null&&e.v!==t&&i.f&24576)return ge(),e.v;Gn(i);try{mt(e),n=ar(e)}finally{Gn(r)}return n}function gt(e){var t=ht(e);!e.equals(t)&&(e.wv=nr(),(!F?.is_fork||e.deps===null)&&(F===null?e.v=t:(F.capture(e,t,!0),bt?.capture(e,t,!0)),e.deps===null))?N(e,y):Vn||(xt===null?et(e):(_n()||F?.is_fork)&&xt.set(e,t))}function _t(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&it(()=>{t.ac.abort(me),t.ac=null}),t.fn!==null&&(t.teardown=h),cr(t,0),An(t))}function vt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&lr(t)}var yt=null,F=null,bt=null,xt=null,St=null,Ct=!1,wt=!1,Tt=null,Et=null,Dt=0,Ot=1,kt=class e{id=Ot++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){yt===null?yt=this:(yt.#n=this,this.#t=yt),yt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)N(r,b),t(r);for(r of n.m)N(r,x),t(r)}this.#p.add(e)}#g(){var e=[];for(let i of this.#c)if(!(i.f&16384||!(i.f&6144))){for(var t=i,n=!1;t.parent!==null;){t=t.parent;var r=t.f;if(r&96){if(!(r&1024)){n=!0;break}t.f^=y}}n||e.push(t)}return this.#c=[],e}#_(){this.#e=!0;for(let e of this.#u)this.#d.delete(e),N(e,b),this.schedule(e);for(let e of this.#d)N(e,x),this.schedule(e);this.apply();for(var t=Tt=[],n=[],r=Et=[];this.#c.length>0;){Dt++>1e3&&(this.#S(),jt());for(let e of this.#g())try{this.#v(e,t,n)}catch(t){throw It(e),this.#h()||this.discard(),t}}if(F=null,r.length>0){var i=e.ensure();for(let e of r)i.schedule(e)}if(Tt=null,Et=null,this.#h()){this.#x(n),this.#x(t);for(let[e,t]of this.#f)Ft(e,t);r.length>0&&F.#_();return}let a=this.#y();if(a)this.#x(n),this.#x(t),a.#b(this);else{this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),bt=this,Nt(n),Nt(t),bt=null,this.#s?.resolve();var o=F;if(this.#a===0&&(this.#c.length===0||o!==null)&&this.#S(),this.#c.length>0){if(o!==null){for(let e of this.#c)o.#c.push(e);this.#c=[]}else o=this}o!==null&&(Rt.clear(),o.#_())}}#v(e,t,n){e.f^=y;for(var r=e.first;r!==null;){var i=r.f,a=!!(i&96);if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=y:i&4?t.push(r):rr(r)&&(i&16&&this.#d.add(r),lr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),N(i,b),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#S(),F=this,this.#_()}#x(e){for(var t=0;t<e.length;t+=1)tt(e[t],this.#u,this.#d)}capture(e,n,r=!1){e.v!==t&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[n,r]),xt?.set(e,n)),this.is_fork||(e.v=n)}activate(){F=this}deactivate(){F=null,xt=null}flush(){try{wt=!0,F=this,this.#_()}finally{Dt=0,St=null,Tt=null,Et=null,wt=!1,F=null,xt=null,Rt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(dt);this.#S(),this.#s?.resolve()}register_created_effect(e){this.#l.push(e)}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,Ze(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=_()).promise}static ensure(){if(F===null){let t=F=new e;!wt&&!Ct&&Ze(()=>{t.#e||t.flush()})}return F}apply(){xt=null}schedule(e){St=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)?e.b.defer_effect(e):this.#c.push(e)}#S(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?yt=e:t.#t=e,this.linked=!1}}};function At(e){var t=Ct,n=bt;bt=null,Ct=!0;try{var r;for(e&&(At(),r=e());;){if(Qe(),F===null)return r;F.flush()}}finally{Ct=t,bt=n}}function jt(){try{Ne()}catch(e){pn(e,St)}}var Mt=null;function Nt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&rr(r)&&(Mt=new Set,lr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Pn(r),Mt?.size>0)){Rt.clear();for(let e of Mt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Mt.has(n)&&(Mt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||lr(n)}}Mt.clear()}}Mt=null}}function Pt(e){F.schedule(e)}function Ft(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),N(e,y);for(var n=e.first;n!==null;)Ft(n,t),n=n.next}}function It(e){N(e,y);for(var t=e.first;t!==null;)It(t),t=t.next}var Lt=new Set,Rt=new Map,zt=!1;function Bt(e,t){return{f:0,v:e,reactions:null,equals:M,rv:0,wv:0}}function I(e,t){let n=Bt(e,t);return qn(n),n}function Vt(e,t=!1,n=!0){let r=Bt(e);return t||(r.equals=Ee),r}function L(e,t,n=!1){return V!==null&&(!Un||V.f&131072)&&Je()&&V.f&4325394&&(Kn===null||!Kn.has(e))&&Re(),Wt(e,n?Jt(t):t,Et)}var Ht=null,Ut=0;function Wt(e,t,n=null){if(!e.equals(t)){Vn?Rt.set(e,t):Rt.has(e)||Rt.set(e,e.v);var r=kt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&ht(t),xt===null&&et(t)}e.wv=nr(),Ht=null,Ut=0,qt(e,b,n),Ht=null,Je()&&H!==null&&H.f&1024&&!(H.f&96)&&(Xn===null?Zn([e]):Xn.push(e)),!r.is_fork&&Lt.size>0&&!zt&&Gt()}return t}function Gt(){zt=!1;for(let e of Lt){e.f&1024&&N(e,x);let t;try{t=rr(e)}catch{t=!0}t&&lr(e)}Lt.clear()}function Kt(e){L(e,e.v+1)}function qt(e,t,n){var r=e.reactions;if(r!==null){var i=Je(),a=r.length;if(Ut+=a,Ut>1e5&&Ht===null&&(Ht=new Set),Ht!==null){if(Ht.has(e))return;Ht.add(e)}for(var o=0;o<a;o++){var s=r[o],c=s.f;if(i||s!==H){var l=(c&b)===0;if(l&&N(s,t),c&131072)Lt.add(s);else if(c&2){var u=s;xt?.delete(u),qt(u,x,n)}else if(l){var d=s;c&16&&Mt!==null&&Mt.add(d),n===null?Pt(d):n.push(d)}}}}}function Jt(e){if(typeof e!=`object`||!e||ae in e||oe in e)return e;let n=p(e);if(n!==d&&n!==f)return e;var i=new Map,a=r(e),o=I(0),s=null,c=er,u=e=>{if(er===c)return e();var t=V,n=er;Wn(null),tr(c);var r=e();return Wn(t),tr(n),r};return a&&i.set(`length`,I(e.length,s)),new Proxy(e,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&Ie();var r=i.get(t);return r===void 0?u(()=>{var e=I(n.value,s);return i.set(t,e),e}):L(r,n.value,!0),!0},deleteProperty(e,n){var r=i.get(n);if(r===void 0){if(n in e){let e=u(()=>I(t,s));i.set(n,e),Kt(o)}}else L(r,t),Kt(o);return!0},get(n,r,a){if(r===ae)return e;var o=i.get(r),c=r in n;if(o===void 0&&(!c||l(n,r)?.writable)&&(o=u(()=>I(Jt(c?n[r]:t),s)),i.set(r,o)),o!==void 0){var d=U(o);return d===t?void 0:d}return Reflect.get(n,r,a)},getOwnPropertyDescriptor(e,n){this.has?.(e,n);var r=Reflect.getOwnPropertyDescriptor(e,n),a=i.get(n);if(a!==void 0){var o=U(a);if(o===t)return;if(r&&`value`in r)r.value=o;else return{enumerable:!0,configurable:!0,value:o,writable:!0}}return r},has(e,n){if(n===ae)return!0;var r=i.get(n),a=r!==void 0&&r.v!==t||Reflect.has(e,n);return(r!==void 0||H!==null&&(!a||l(e,n)?.writable))&&(r===void 0&&(r=u(()=>I(a?Jt(e[n]):t,s)),i.set(n,r)),U(r)===t)?!1:a},set(e,n,r,c){var d=i.get(n),f=n in e;if(a&&n===`length`)for(var p=r;p<d.v;p+=1){var m=i.get(p+``);m===void 0?p in e&&(m=u(()=>I(t,s)),i.set(p+``,m)):L(m,t)}if(d===void 0)(!f||l(e,n)?.writable)&&(d=u(()=>I(void 0,s)),L(d,Jt(r)),i.set(n,d));else{f=d.v!==t;var h=u(()=>Jt(r));L(d,h)}var g=Reflect.getOwnPropertyDescriptor(e,n);if(g?.set&&g.set.call(c,r),!f){if(a&&typeof n==`string`){var _=i.get(`length`),v=Number(n);Number.isInteger(v)&&v>=_.v&&L(_,v+1)}Kt(o)}return!0},ownKeys(e){U(o);var n=Reflect.ownKeys(e).filter(e=>{var n=i.get(e);return n===void 0||n.v!==t});for(var[r,a]of i)a.v!==t&&!(r in e)&&n.push(r);return n},setPrototypeOf(){Le()}})}function Yt(e){try{if(typeof e==`object`&&e&&ae in e)return e[ae]}catch{}return e}function Xt(e,t){return Object.is(Yt(e),Yt(t))}var Zt,Qt,$t,en;function tn(){if(Zt===void 0){Zt=window,Qt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;$t=l(t,`firstChild`).get,en=l(t,`nextSibling`).get,m(e)&&(e[ue]=void 0,e[le]=null,e[de]=void 0,e.__e=void 0),m(n)&&(n[fe]=void 0)}}function nn(e=``){return document.createTextNode(e)}function rn(e){return $t.call(e)}function an(e){return en.call(e)}function R(e,t){if(!O)return rn(e);var n=rn(k);if(n===null)n=k.appendChild(nn());else if(t&&n.nodeType!==3){var r=nn();return n?.before(r),A(r),r}return t&&dn(n),A(n),n}function on(e,t=!1){if(!O){var n=rn(e);return n instanceof Comment&&n.data===``?an(n):n}if(t){if(k?.nodeType!==3){var r=nn();return k?.before(r),A(r),r}dn(k)}return k}function sn(e,t=!1){if(!O)return rn(e);var n=R(e,t);return j(e),n}function z(e,t=1,n=!1){let r=O?k:e;for(var i;t--;)i=r,r=an(r);if(!O)return r;if(n){if(r?.nodeType!==3){var a=nn();return r===null?i?.after(a):r.before(a),A(a),a}dn(r)}return A(r),r}function cn(e){e.textContent=``}function ln(){return!1}function un(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function dn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function fn(e){var t=H;if(t===null)return V.f|=ie,e;if(!(t.f&32768)&&!(t.f&4))throw e;pn(e,t)}function pn(t,n){if(t===e)throw t;if(!(n!==null&&n.f&16384)){for(;n!==null;){if(n.f&128&&!(n.f&33570816)){if(!(n.f&32768))throw t;try{n.b.error(t);return}catch(e){t=e}}n=n.parent}throw t}}function mn(e){H===null&&(V===null&&Me(e),je()),Vn&&Ae(e)}function hn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function gn(e,t){var n=H;n!==null&&n.f&8192&&(e|=S);var r={ctx:Ue,deps:null,nodes:null,f:e|b|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};F?.register_created_effect(r);var i=r;if(e&4)Tt===null?kt.ensure().schedule(r):Tt.push(r);else if(t!==null){try{lr(r)}catch(e){throw Mn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=E))}if(i!==null&&(i.parent=n,n!==null&&hn(i,n),V!==null&&V.f&2&&!(e&64))){var a=V;(a.effects??=[]).push(i)}return r}function _n(){return V!==null&&!Un}function vn(e){let t=gn(8,null);return N(t,y),t.teardown=e,t}function yn(e){mn(`$effect`);var t=H.f;if(!V&&t&32&&Ue!==null&&!Ue.i){var n=Ue;(n.e??=[]).push(e)}else return bn(e)}function bn(e){return gn(4|te,e)}function xn(e){kt.ensure();let t=gn(64|ee,e);return()=>{Mn(t)}}function Sn(e){kt.ensure();let t=gn(64|ee,e);return(e={})=>new Promise(n=>{e.outro?Fn(t,()=>{Mn(t),n(void 0)}):(Mn(t),n(void 0))})}function Cn(e){return gn(4,e)}function wn(e){return gn(re|ee,e)}function Tn(e,t=0){return gn(8|t,e)}function B(e,t=[],n=[],r=[]){ot(r,t,n,t=>{gn(8,()=>{e(...t.map(U))})})}function En(e,t=0){return gn(16|t,e)}function Dn(e,t=0){return gn(v|t,e)}function On(e){return gn(32|ee,e)}function kn(e){var t=e.teardown;if(t!==null){let n=Vn,r=V;Hn(!0),Wn(null);try{t.call(null)}catch(t){pn(t,e.parent)}finally{Hn(n),Wn(r)}}}function An(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&it(()=>{e.abort(me)});var r=n.next;n.f&64?n.parent=null:Mn(n,t),n=r}}function jn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Mn(t),t=n}}function Mn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Nn(e.nodes.start,e.nodes.end),n=!0),e.f|=T,An(e,t&&!n),cr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();kn(e),e.f^=T,e.f|=C;var i=e.parent;i!==null&&i.first!==null&&Pn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Nn(e,t){for(;e!==null;){var n=e===t?null:an(e);e.remove(),e=n}}function Pn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Fn(e,t,n=!0){var r=[];e.f|=256,In(e,r,!0);var i=()=>{n&&Mn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function In(e,t,n){if(!(e.f&8192)){e.f^=S;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=!!(i.f&65536)||!!(i.f&32)&&!!(e.f&16);In(i,t,o?n:!1)}i=a}}}function Ln(e){e.f&=-257,Rn(e,!0)}function Rn(e,t){if(!(e.f&256)&&e.f&8192){e.f^=S,e.f&1024||(N(e,b),kt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=!!(n.f&65536)||!!(n.f&32);Rn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function zn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:an(n);t.append(n),n=i}}var Bn=null,Vn=!1;function Hn(e){Vn=e}var V=null,Un=!1;function Wn(e){V=e}var H=null;function Gn(e){H=e}var Kn=null;function qn(e){V!==null&&(V.f&2097152||V.f&2)&&(Kn??=new Set).add(e)}var Jn=null,Yn=0,Xn=null;function Zn(e){Xn=e}var Qn=1,$n=0,er=$n;function tr(e){er=e}function nr(){return++Qn}function rr(e){var t=e.f;if(t&2048)return!0;if(t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(rr(a)&>(a),a.wv>e.wv)return!0}t&512&&xt===null&&N(e,y)}return!1}function ir(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Kn!==null&&Kn.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?ir(a,t,!1):t===a&&(n?N(a,b):a.f&1024&&N(a,x),Pt(a))}}function ar(e){var t=Jn,n=Yn,r=Xn,i=V,a=Kn,o=Ue,s=Un,c=er,l=e.f;Jn=null,Yn=0,Xn=null,V=l&96?null:e,Kn=null,We(e.ctx),Un=!1,er=++$n,e.ac!==null&&(it(()=>{e.ac.abort(me)}),e.ac=null);try{e.f|=ne;var u=e.fn,d=u();e.f|=w;var f=or(e);if(Je()&&Xn!==null&&!Un&&f!==null&&!(e.f&6146))for(var p=0;p<Xn.length;p++)ir(Xn[p],e);if(i!==null&&i!==e){if($n++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=$n;if(t!==null)for(let e of t)e.rv=$n;Xn!==null&&(r===null?r=Xn:r.push(...Xn))}return e.f&8388608&&(e.f^=ie),d}catch(t){return or(e),fn(t)}finally{e.f^=ne,Jn=t,Yn=n,Xn=r,V=i,Kn=a,We(o),Un=s,er=c}}function or(e){var t=e.deps,n=F?.is_fork;if(Jn!==null){var r;if(n||cr(e,Yn),t!==null&&Yn>0)for(t.length=Yn+Jn.length,r=0;r<Jn.length;r++)t[Yn+r]=Jn[r];else e.deps=t=Jn;if(_n()&&e.f&512)for(r=Yn;r<t.length;r++)(t[r].reactions??=[]).push(e)}else!n&&t!==null&&Yn<t.length&&(cr(e,Yn),t.length=Yn);return t}function sr(e,n){let r=n.reactions;if(r!==null){var o=i.call(r,e);if(o!==-1){var s=r.length-1;s===0?r=n.reactions=null:(r[o]=r[s],r.pop())}}if(r===null&&n.f&2&&(Jn===null||!a.call(Jn,n))){var c=n;c.f&512&&(c.f^=512),c.v!==t&&et(c),c.ac!==null&&it(()=>{c.ac.abort(me),c.ac=null,N(c,b)}),_t(c),cr(c,0)}}function cr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)sr(e,n[r])}function lr(e){var t=e.f;if(!(t&16384)){N(e,y);var n=H;H=e;try{t&16777232?jn(e):An(e),kn(e);var r=ar(e);e.teardown=typeof r==`function`?r:null,e.wv=Qn}finally{H=n}}}async function ur(){await Promise.resolve(),At()}function U(e){var t=!!(e.f&2);if(Bn?.add(e),V!==null&&!Un&&!(H!==null&&H.f&16384)&&(Kn===null||!Kn.has(e))){var n=V.deps;if(V.f&2097152)e.rv<$n&&(e.rv=$n,Jn===null&&n!==null&&n[Yn]===e?Yn++:Jn===null?Jn=[e]:Jn.push(e));else{V.deps??=[],a.call(V.deps,e)||V.deps.push(e);var r=e.reactions;r===null?e.reactions=[V]:a.call(r,V)||r.push(V)}}if(Vn&&Rt.has(e))return Rt.get(e);if(t){var i=e;if(Vn){var o=i.v;return(!(i.f&1024)&&i.reactions!==null||fr(i))&&(o=ht(i)),Rt.set(i,o),o}var s=!(i.f&512)&&!Un&&V!==null&&!!(V.f&512),c=(i.f&w)===0;rr(i)&&(s&&(i.f|=512),gt(i)),s&&!c&&(vt(i),dr(i))}if(xt?.has(e))return xt.get(e);if(e.f&8388608)throw e.v;return e.v}function dr(e){if(e.f|=512,e.deps!==null)for(let n of e.deps){var t=n.reactions;t===null?n.reactions=[e]:a.call(t,e)||t.push(e),n.f&2&&!(n.f&512)&&(vt(n),dr(n))}}function fr(e){if(e.v===t)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(Rt.has(t)||t.f&2&&fr(t))return!0;return!1}function pr(e){var t=Un;try{return Un=!0,e()}finally{Un=t}}var mr=Symbol(`events`),hr=new Set,gr=new Set;function _r(e,t,n,r={}){function i(e){if(r.capture||Sr.call(t,e),!e.cancelBubble)return it(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?(i.__removed=!1,Ze(()=>{i.__removed||t.addEventListener(e,i,r)})):t.addEventListener(e,i,r),i}function W(e,t,n,r={}){var i=_r(t,e,n,r);return()=>{i.__removed=!0,e.removeEventListener(t,i,r)}}function vr(e,t,n,r,i){var a={capture:r,passive:i},o=_r(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&vn(()=>{o.__removed=!0,t.removeEventListener(e,o,a)})}function G(e,t,n){(t[mr]??={})[e]=n}function yr(e){for(var t=0;t<e.length;t++)hr.add(e[t]);for(var n of gr)n(e)}var br=null,xr=!1;function Sr(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;br=e,xr||(xr=!0,setTimeout(()=>{xr=!1,br=null}));var o=0,s=br===e&&e[mr];if(s){var l=i.indexOf(s);if(l!==-1&&(t===document||t===window)){e[mr]=t;return}var u=i.indexOf(t);if(u===-1)return;l<=u&&(o=l)}if(a=i[o]||e.target,a!==t){c(e,`currentTarget`,{configurable:!0,get(){return a||n}});var d=V,f=H;Wn(null),Gn(null);try{for(var p,m=[];a!==null&&a!==t;){try{var h=a[mr]?.[r];h!=null&&(!a.disabled||e.target===a)&&h.call(a,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;o++,a=o<i.length?i[o]:null}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[mr]=t,delete e.currentTarget,Wn(d),Gn(f)}}}var Cr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function wr(e){return Cr?.createHTML(e)??e}function Tr(e){var t=un(`template`);return t.innerHTML=wr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Er(e,t){var n=H;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function K(e,t){var n=!!(t&1),r=!!(t&2),i,a=!e.startsWith(`<!>`);return()=>{if(O)return Er(k,null),k;i===void 0&&(i=Tr(a?e:`<!>`+e),n||(i=rn(i)));var t=r||Qt?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=rn(t),s=t.lastChild;Er(o,s)}else Er(t,t);return t}}function Dr(e,t,n=`svg`){var r=!e.startsWith(`<!>`),i=!!(t&1),a=`<${n}>${r?e:`<!>`+e}</${n}>`,o;return()=>{if(O)return Er(k,null),k;if(!o){var e=rn(Tr(a));if(i)for(o=document.createDocumentFragment();rn(e);)o.appendChild(rn(e));else o=rn(e)}var t=o.cloneNode(!0);if(i){var n=rn(t),r=t.lastChild;Er(n,r)}else Er(t,t);return t}}function Or(e,t){return Dr(e,t,`svg`)}function kr(){if(O)return Er(k,null),k;var e=document.createDocumentFragment(),t=document.createComment(``),n=nn();return e.append(t,n),Er(t,n),e}function q(e,t){if(O){var n=H;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=k),xe()}else e!==null&&e.before(t)}function Ar(){if(O&&k&&k.nodeType===8&&k.textContent?.startsWith(`$`)){let e=k.textContent.substring(1);return xe(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var jr=[`touchstart`,`touchmove`];function Mr(e){return jr.includes(e)}function Nr(e){let t=0,n=Bt(0),r;return()=>{_n()&&(U(n),Tn(()=>(t===0&&(r=pr(()=>e(()=>Kt(n)))),t+=1,()=>{Ze(()=>{--t,t===0&&(r?.(),r=void 0,Kt(n))})})))}}var Pr=E|ee;function Fr(e,t,n,r){new Ir(e,t,n,r)}var Ir=class{parent;is_pending=!1;transform_error;#e;#t=O?k:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Nr(()=>(this.#m=Bt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=H;t.b=this,t.f|=128,n(e)},this.parent=H.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=En(()=>{if(O){let e=we(this.#t);xe();let t=e===`[!`;if(e.startsWith(`[?`)){let t=JSON.parse(e.slice(2));this.#_(t)}else t?this.#b():this.#g()}else this.#x()},Pr),O&&(this.#e=k)}#g(){try{this.#a=On(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed,{reset:n,invoke_onerror:r}=this.#v(e);Ze(r),t&&(this.#s=On(()=>{t(this.#e,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;let r=()=>{this.#y()||(t?ye():(t=!0,n&&ze(),this.#s!==null&&Fn(this.#s,()=>{this.#s=null}),this.#C(()=>{this.#x()})))};return{reset:r,invoke_onerror:()=>{if(!this.#y())try{n=!0,this.#n.onerror?.(e,r),n=!1}catch(e){pn(e,this.#i&&this.#i.parent)}}}}#y(){return(this.#i.f&(C|T))!==0}#b(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=On(()=>e(this.#e)),Ze(()=>{if(!this.#y()){var e=this.#c=document.createDocumentFragment(),t=nn(),n=!1;e.append(t),this.#a=this.#C(()=>{try{return On(()=>this.#r(t))}catch(e){try{this.error(e),n=!0}catch(e){pn(e,this.#i.parent)}return null}}),this.#a===null?(this.#c=null,n&&this.#S(F)):this.#u===0&&(this.#e.before(e),this.#c=null,Fn(this.#o,()=>{this.#o=null}),this.#S(F))}}))}#x(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=On(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();zn(this.#a,e);let t=this.#n.pending;this.#o=On(()=>t(this.#e))}else this.#S(F)}catch(e){this.error(e)}}#S(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){tt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#C(e){var t=H,n=V,r=Ue;Gn(this.#i),Wn(this.#i),We(this.#i.ctx);try{return kt.ensure(),e()}finally{Gn(t),Wn(n),We(r)}}#w(e,t){this.has_pending_snippet()?(this.#u+=e,this.#u===0&&(this.#S(t),this.#o&&Fn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))):this.parent&&this.parent.#w(e,t)}update_pending_count(e,t){this.#w(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Ze(()=>{this.#d=!1,this.#m&&Wt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),U(this.#m)}error(t){if(t===e||!this.#n.onerror&&!this.#n.failed)throw t;F?.is_fork?(this.#a&&F.skip_effect(this.#a),this.#o&&F.skip_effect(this.#o),this.#s&&F.skip_effect(this.#s),F.oncommit(()=>{this.#y()||this.#T(t)})):this.#T(t)}#T(e){this.#a&&=(Mn(this.#a),null),this.#o&&=(Mn(this.#o),null),this.#s&&=(Mn(this.#s),null),O&&(A(this.#t),Se(),A(Ce()));let t=this.#n.failed,n=e=>{if(this.#y())return;let{reset:n,invoke_onerror:r}=this.#v(e);r(),t&&!this.#y()&&(this.#s=this.#C(()=>{try{return On(()=>{var r=H;r.b=this,r.f|=128,t(this.#e,()=>e,()=>n)})}catch(e){return pn(e,this.#i.parent),null}}))};Ze(()=>{if(!this.#y()){var t;try{t=this.transform_error(e)}catch(e){pn(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(n,e=>pn(e,this.#i&&this.#i.parent)):n(t)}})}};function Lr(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[fe]??=e.nodeValue)&&(e[fe]=n,e.nodeValue=`${n}`)}function Rr(e,t){return Vr(e,t)}function zr(t,n){tn(),n.intro=n.intro??!1;let r=n.target,i=O,a=k;try{for(var o=rn(r);o&&(o.nodeType!==8||o.data!==`[`);)o=an(o);if(!o)throw e;be(!0),A(o);let i=Vr(t,{...n,anchor:o});return be(!1),i}catch(i){if(i instanceof Error&&i.message.split(`
|
|
2
|
+
`).some(e=>e.startsWith(`https://svelte.dev/e/`)))throw i;return i!==e&&console.warn(`Failed to hydrate: `,i),n.recover===!1&&Pe(),tn(),cn(r),be(!1),Rr(t,n)}finally{be(i),A(a)}}var Br=new Map;function Vr(t,{target:n,anchor:r,props:i={},events:a,context:s,intro:c=!0,transformError:l}){tn();var u=void 0,d=Sn(()=>{var c=r??n.appendChild(nn());Fr(c,{pending:()=>{}},n=>{Ge({});var r=Ue;if(s&&(r.c=s),a&&(i.$$events=a),O&&Er(n,null),u=t(n,i)||qe(),O&&(H.nodes.end=k,k===null||k.nodeType!==8||k.data!==`]`))throw _e(),e;Ke()},l);var d=new Set,f=e=>{for(var t=0;t<e.length;t++){var r=e[t];if(!d.has(r)){d.add(r);var i=Mr(r);for(let e of[n,document]){var a=Br.get(e);a===void 0&&(a=new Map,Br.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Sr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return f(o(hr)),gr.add(f),()=>{for(var e of d)for(let r of[n,document]){var t=Br.get(r),i=t.get(e);--i==0?(r.removeEventListener(e,Sr),t.delete(e),t.size===0&&Br.delete(r)):t.set(e,i)}gr.delete(f),c!==r&&c.parentNode?.removeChild(c)}});return Hr.set(u,d),u}var Hr=new WeakMap;function Ur(e,t){let n=Hr.get(e);return n?(Hr.delete(e),n(t)):Promise.resolve()}var Wr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)Ln(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Ln(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Mn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();zn(r,t),t.append(nn()),this.#n.set(e,{effect:r,fragment:t})}else Mn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Fn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Mn(n.effect),this.#n.delete(e))};ensure(e,t){var n=F,r=ln();if(t&&!this.#t.has(e)&&!this.#n.has(e)){if(r){var i=document.createDocumentFragment(),a=nn();i.append(a),this.#n.set(e,{effect:On(()=>t(a)),fragment:i})}else this.#t.set(e,On(()=>t(this.anchor)))}if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else O&&(this.anchor=k),this.#a(n)}};function Gr(e){Ue===null&&De(`onMount`),yn(()=>{let t=pr(e);if(typeof t==`function`)return t})}function J(e,t,n=!1){var r;O&&(r=k,xe());var i=new Wr(e),a=n?E:0;function o(e,t){if(O){var n=we(r);if(e!==parseInt(n.substring(1))){var a=Ce();A(a),i.anchor=a,be(!1),i.ensure(e,t),be(!0);return}}i.ensure(e,t)}En(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Kr(e,t){return t}function qr(e,t,n){for(var r=[],i=t.length,a,s=t.length,c=0;c<i;c++){let n=t[c];Fn(n,()=>{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;Jr(e,o(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=r.length===0&&n!==null&&e.pending.size===0;if(l){var u=n,d=u.parentNode;cn(d),d.append(u),e.items.clear()}Jr(e,t,!l)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Jr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=D,zn(a,document.createDocumentFragment())):Mn(t[i],n)}}var Yr;function Xr(e,t,n,i,a,s=null){var c=e,l=new Map;if(t&4){var u=e;c=O?A(rn(u)):u.appendChild(nn())}O&&xe();var d=null,f=pt(()=>{var e=n();return r(e)?e:e==null?[]:o(e)}),p=new Map,m=!0;function h(e){if(!(_.effect.f&16384)){_.pending.delete(e);var n=U(f);_.fallback=d,Qr(_,n,c,t,i),d!==null&&(n.length===0?d.f&33554432?(d.f^=D,ei(d,null,c)):Ln(d):Fn(d,()=>{d=null}))}}function g(e){_.pending.delete(e)}var _={effect:En(()=>{var e=U(f),r=e.length;let o=!1;O&&we(c)===`[!`!=(r===0)&&(c=Ce(),A(c),be(!1),o=!0);for(var u=new Set,_=F,v=ln(),y=0;y<r;y+=1){O&&k.nodeType===8&&k.data===`]`&&(c=k,o=!0,be(!1));var b=e[y],x=i(b,y),S=m?null:l.get(x);S?(S.v&&Wt(S.v,b),S.i&&Wt(S.i,y),v&&_.unskip_effect(S.e)):(S=$r(l,m?c:Yr??=nn(),b,x,y,a,t,n),m||(S.e.f|=D),l.set(x,S)),u.add(x)}if(r===0&&s&&!d&&(m?d=On(()=>s(c)):(d=On(()=>s(Yr??=nn())),d.f|=D)),r>u.size&&ke(``,``,``),O&&r>0&&A(Ce()),!m){if(p.set(_,u),v){for(let[e,t]of l)u.has(e)||_.skip_effect(t.e);_.oncommit(h),_.ondiscard(g)}else h(_)}o&&be(!0),U(f)}),flags:t,items:l,pending:p,outrogroups:null,fallback:d};m=!1,O&&(c=k)}function Zr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Qr(e,t,n,r,i){var a=!!(r&8),s=t.length,c=e.items,l=Zr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(a)for(v=0;v<s;v+=1)h=t[v],g=i(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=i(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(Ln(_),a&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432){if(_.f^=D,_===l)ei(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),ti(e,d,_),ti(e,_,y),ei(_,y,n),d=_,p=[],m=[],l=Zr(d.next);continue}}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)ei(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);ti(e,S.prev,C.next),ti(e,d,S),ti(e,C,b),l=b,d=C,--v,p=[],m=[]}else u.delete(_),ei(_,l,n),ti(e,_.prev,_.next),ti(e,_,d===null?e.effect.first:d.next),ti(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=Zr(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=Zr(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(Jr(e,o(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var w=[];if(u!==void 0)for(_ of u)_.f&8192||w.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&w.push(l),l=Zr(l.next);var T=w.length;if(T>0){var E=r&4&&s===0?n:null;if(a){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}qr(e,w,E)}}a&&Ze(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function $r(e,t,n,r,i,a,o,s){var c=o&1?o&16?Bt(n):Vt(n,!1,!1):null,l=o&2?Bt(i):null;return{v:c,i:l,e:On(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ei(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=an(r);if(a.before(r),r===i)return;r=o}}function ti(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ni(e,t){Cn(()=>{e=H?.parent?.nodes?.start??e;var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector(`#`+t.hash)){let e=un(`style`);e.id=t.hash,e.textContent=t.code,r.appendChild(e)}})}function ri(e,t){var n=void 0,r;Dn(()=>{n!==(n=t())&&(r&&=(Mn(r),null),n&&(r=On(()=>{Cn(()=>n(e))})))})}var ii=[...`
|
|
3
|
+
\r\f\u00A0\v\uFEFF`];function ai(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||ii.includes(r[o-1]))&&(s===r.length||ii.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function oi(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function si(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function ci(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\/\*.*?\*\//g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(si)),i&&c.push(...Object.keys(i).map(si));var l=0,u=-1;let t=e.length;for(var d=0;d<t;d++){var f=e[d];if(s?f===`/`&&e[d-1]===`*`&&(s=!1):a?a===f&&(a=!1):f===`/`&&e[d+1]===`*`?s=!0:f===`"`||f===`'`?a=f:f===`(`?o++:f===`)`&&o--,!s&&a===!1&&o===0){if(f===`:`&&u===-1)u=d;else if(f===`;`||d===t-1){if(u!==-1){var p=si(e.substring(l,u).trim());if(!c.includes(p)){f!==`;`&&d++;var m=e.substring(l,d).trim();n+=` `+m+`;`}}l=d+1,u=-1}}}}return r&&(n+=oi(r)),i&&(n+=oi(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function li(e,t,n,r,i,a){var o=e[ue];if(O||o!==n||o===void 0){var s=ai(n,r,a);(!O||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[ue]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function ui(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function di(e,t,n,r){var i=e[de];if(O||i!==t){var a=ci(t,r);(!O||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[de]=t}else r&&(Array.isArray(r)?(ui(e,n?.[0],r[0]),ui(e,n?.[1],r[1],`important`)):ui(e,n,r));return r}function fi(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function pi(e,t){var n=e.__defaultValue,i=e.multiple,a=i?n??[]:null;if(!i||r(a)){var o=e.selectedIndex,s=t&&i?new Set(e.selectedOptions):null;for(var c of e.options){var l=_i(c);fi(c,i?a.includes(l):Xt(l,n))}if(t){if(s!==null)for(c of e.options){var u=s.has(c);c.selected!==u&&(c.selected=u)}else e.selectedIndex!==o&&(e.selectedIndex=o)}}}function mi(e,t,n=!1){if(e.multiple){if(t==null)return;if(!r(t))return ve();for(var i of e.options)i.selected=t.includes(_i(i))}else{for(i of e.options)if(Xt(_i(i),t)){i.selected=!0;return}(!n||t!==void 0)&&(e.selectedIndex=-1)}}function hi(e){var t=new MutationObserver(t=>{t.every(vi)||(`__defaultValue`in e&&pi(e,!1),`__value`in e&&mi(e,e.__value))});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),vn(()=>{t.disconnect()})}function gi(e,t,n=t){var r=new WeakSet,i=!0;at(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),_i);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&_i(o)}n(a),e.__value=a,F!==null&&r.add(F)}),Cn(()=>{var a=t();if(e===document.activeElement){var o=F;if(r.has(o))return}if(mi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=_i(s),n(a))}e.__value=a,i=!1})}function _i(e){return`__value`in e?e.__value:e.value}function vi(e){if(e.target.closest(`selectedcontent`)!==null)return!0;if(e.type===`childList`){var t=[...e.addedNodes,...e.removedNodes];return t.length>0&&t.every(e=>e.nodeName===`SELECTEDCONTENT`)}return!1}var yi=Symbol(`is custom element`),bi=Symbol(`is html`),xi=he?`link`:`LINK`,Si=he?`progress`:`PROGRESS`;function Ci(e){if(O){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;Y(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;Y(e,`checked`,null),e.checked=r}}};e[pe]=n,Ze(n),rt()}}function wi(e,t){var n=Ei(e);n.value!==(n.value=t??void 0)&&(e.value!==t||t===0&&e.nodeName===Si)&&(e.value=t??``)}function Ti(e,t){var n=Ei(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Y(e,t,n,r){var i=Ei(e);O&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===xi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ce]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Oi(e).has(t)?e[t]=n:e.setAttribute(t,n))}function Ei(e){return e[le]??={[yi]:e.nodeName.includes(`-`),[bi]:e.namespaceURI===n}}var Di=new Map;function Oi(e){var t=e.getAttribute(`is`)||e.nodeName,n=Di.get(t);if(n)return n;Di.set(t,n=new Set);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=u(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.add(o);i=p(i)}return n}function ki(e,t,n=t){var r=new WeakSet;at(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Ai(e)?ji(a):a,n(a),F!==null&&r.add(F),await ur(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(O&&e.defaultValue!==e.value||pr(t)==null&&e.value)&&(n(Ai(e)?ji(e.value):e.value),F!==null&&r.add(F)),Tn(()=>{var n=t();if(e===document.activeElement){var i=F;if(r.has(i))return}Ai(e)&&n===ji(e.value)||(e.type!==`date`||n||e.value)&&n!==e.value&&(e.value=n??``)})}function Ai(e){var t=e.type;return t===`number`||t===`range`}function ji(e){return e===``?null:+e}function Mi(e,t){return e===t||e?.[ae]===t}function Ni(e=qe(),t,n,r){var i=Ue.r,a=H;return Cn(()=>{var o,s;return Tn(()=>{o=s,s=r?.()||[],pr(()=>{Mi(n(...s),e)||(t(e,...s),o&&Mi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Mi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var Pi=!1;function Fi(e){var t=Pi;try{return Pi=!1,[e(),Pi]}finally{Pi=t}}function Ii(e,t,n,r){var i=!0,a=!!(n&8),o=!!(n&16),s=r,c=!0,u=void 0,d=()=>o&&i?(u??=ut(r),U(u)):(c&&(c=!1,s=o?pr(r):r),s);let f;if(a){var p=ae in e||se in e;f=l(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;a?[m,h]=Fi(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Fe(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(c=!0,n)}:()=>{var n=e[t];return n!==void 0&&(s=void 0),n===void 0?s:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?ut:pt)(()=>(v=!1,g()));a&&U(y);var b=H;return(function(e,t){if(arguments.length>0){let n=t?U(y):i&&a?Jt(e):e;return L(y,n),v=!0,s!==void 0&&(s=n),e}return Vn&&v||b.f&16384?y.v:U(y)})}function Li(e){return new Ri(e)}var Ri=class{#e;#t;constructor(e){var t=new Map,n=(e,n)=>{var r=Vt(n,!1,!1);return t.set(e,r),r};let r=new Proxy({...e.props||{},$$events:{}},{get(e,r){return U(t.get(r)??n(r,Reflect.get(e,r)))},has(e,r){return r===se||(U(t.get(r)??n(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,i){return L(t.get(r)??n(r,i),i),Reflect.set(e,r,i)}});this.#t=(e.hydrate?zr:Rr)(e.component,{target:e.target,anchor:e.anchor,props:r,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError}),(!e?.props?.$$host||e.sync===!1)&&At(),this.#e=r.$$events;for(let e of Object.keys(this.#t))e!==`$set`&&e!==`$destroy`&&e!==`$on`&&c(this,e,{get(){return this.#t[e]},set(t){this.#t[e]=t},enumerable:!0});this.#t.$set=e=>{Object.assign(r,e)},this.#t.$destroy=()=>{Ur(this.#t)}}$set(e){this.#t.$set(e)}$on(e,t){this.#e[e]=this.#e[e]||[];let n=(...e)=>t.call(this,...e);return this.#e[e].push(n),()=>{this.#e[e]=this.#e[e].filter(e=>e!==n)}}$destroy(){this.#t.$destroy()}},zi;typeof HTMLElement==`function`&&(zi=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){let n=this.$$c.$on(e,t);this.$$l_u.set(t,n)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){let e=this.$$l_u.get(t);e&&(e(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){if(await Promise.resolve(),!this.$$cn||this.$$c)return;function e(e){return t=>{let n=un(`slot`);e!=="default"&&(n.name=e),q(t,n)}}let t={},n=Vi(this);for(let r of this.$$s)r in n&&(r==="default"&&!this.$$d.children?(this.$$d.children=e(r),t.default=!0):t[r]=e(r));for(let e of this.attributes){let t=this.$$g_p(e.name);t in this.$$d||(this.$$d[t]=Bi(t,e.value,this.$$p_d,`toProp`))}for(let e in this.$$p_d)!(e in this.$$d)&&this[e]!==void 0&&(this.$$d[e]=this[e],delete this[e]);this.$$c=Li({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=xn(()=>{Tn(()=>{this.$$r=!0;for(let e of s(this.$$c)){if(!this.$$p_d[e]?.reflect)continue;this.$$d[e]=this.$$c[e];let t=Bi(e,this.$$d[e],this.$$p_d,`toAttribute`);t==null?this.removeAttribute(this.$$p_d[e].attribute||e):this.setAttribute(this.$$p_d[e].attribute||e,t)}this.$$r=!1})});for(let e in this.$$l)for(let t of this.$$l[e]){let n=this.$$c.$on(e,t);this.$$l_u.set(t,n)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=Bi(e,n,this.$$p_d,`toProp`),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return s(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Bi(e,t,n,r){let i=n[e]?.type;if(t=i===`Boolean`&&typeof t!=`boolean`?t!=null:t,!r||!n[e])return t;if(r===`toAttribute`)switch(i){case`Object`:case`Array`:return t==null?null:JSON.stringify(t);case`Boolean`:return t?``:null;case`Number`:return t??null;default:return t}else switch(i){case`Object`:case`Array`:return t&&JSON.parse(t);case`Boolean`:return t;case`Number`:return t==null?t:+t;default:return t}}function Vi(e){let t={};return e.childNodes.forEach(e=>{t[e.slot||`default`]=!0}),t}function Hi(e,t,n,r,i,a){let o=class extends zi{constructor(){super(e,n,i),this.$$p_d=t}static get observedAttributes(){return s(t).map(e=>(t[e].attribute||e).toLowerCase())}};return s(t).forEach(e=>{c(o.prototype,e,{get(){return this.$$c&&e in this.$$c?this.$$c[e]:this.$$d[e]},set(n){n=Bi(e,n,t),this.$$d[e]=n;var r=this.$$c;r&&(l(r,e)?.get?r[e]=n:r.$set({[e]:n}))}})}),r.forEach(e=>{c(o.prototype,e,{get(){return this.$$c?.[e]}})}),a&&(o=a(o)),e.element=o,o}var Ui=.05,Wi=.1,Gi=.9,Ki=.5,qi=.01,Ji=.99,Yi=.1,Xi={width:`1044px`,columns:12,gutterWidth:`24px`,isGutterOnOutside:!1,position:`center`},Zi={showLayoutGrid:!1,layoutGridColor:`rgba(0, 0, 255, ${Yi})`,showSpacingGrid:!1,spacingGridColor:`rgba(255, 0, 0, ${Yi})`,spacingGridHeight:`8px`},Qi=[.5,1],$i=.25,ea=10485760,ta=[`image/png`,`image/jpeg`,`image/webp`,`image/gif`];function na(e,t,n){if(`offset`in e)return e.offset;switch(e.align){case`left`:return 0;case`center`:return Math.trunc((n-t)/2)||0;case`right`:return n-t}}function ra(e,t,n){if(`offset`in e)return e.offset;switch(e.align){case`top`:return 0;case`bottom`:return n-t}}function ia(e,t,n,r){return{x:na(e.x,t.width*n,r.width),y:ra(e.y,t.height*n,r.height)}}function aa(e,t,n,r,i=r){return{x:i.x-(r.x-e.x)/t*n,y:i.y-(r.y-e.y)/t*n}}function oa(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function sa(e,t){return{x:(e.x+t.x)/2,y:(e.y+t.y)/2}}var ca={kind:`idle`},la={x:{align:`center`},y:{align:`top`}};function ua(e,t){switch(e.kind){case`dragging`:return`dragging`;case`inspecting`:return e.zoom?`zoomed`:`solid`;case`idle`:return t?`locked`:`visible`}}var da={adjustAppearance:e=>e===`visible`||e===`locked`,reposition:e=>e===`visible`,zoom:e=>e===`solid`};function fa(e){return`align`in e.x?e.x.align:null}function pa(e){return`align`in e.y?e.y.align:null}function ma(e){return fa(e)!==null||pa(e)!==null}function ha(e){return{x:{offset:e.x},y:{offset:e.y}}}function ga(e,t,n){return{x:n.x===t.x?e.x:{offset:n.x},y:n.y===t.y?e.y:{offset:n.y}}}function _a(e,t,n){return{x:e===null?{offset:n.x}:{align:e},y:t===null?{offset:n.y}:{align:t}}}function va(e,t){let n=fa(e),r=pa(e);return n&&r?`${r}\u00B7${n}`:`${n??`x:${Math.round(t.x)}`}, ${r??`y:${Math.round(t.y)}`}`}var ya=(e,t)=>t.some(t=>e instanceof t),ba,xa;function Sa(){return ba||=[IDBIndex,IDBObjectStore,IDBCursor,IDBDatabase,IDBTransaction]}function Ca(){return xa||=[`advance`,`continue`,`continuePrimaryKey`].map(e=>IDBCursor.prototype[e])}var wa=new WeakMap,Ta=new WeakMap,Ea=new WeakMap;function Da(e){let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`success`,i),e.removeEventListener(`error`,a)},i=()=>{t(Na(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener(`success`,i),e.addEventListener(`error`,a)});return Ea.set(t,e),t}function Oa(e){if(wa.has(e))return;let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`complete`,i),e.removeEventListener(`error`,a),e.removeEventListener(`abort`,a)},i=()=>{t(),r()},a=()=>{n(e.error||new DOMException(`AbortError`,`AbortError`)),r()};e.addEventListener(`complete`,i),e.addEventListener(`error`,a),e.addEventListener(`abort`,a)});wa.set(e,t)}var ka={get(e,t,n){if(e instanceof IDBTransaction){if(t===`done`)return wa.get(e);if(t===`store`)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Na(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&(t===`done`||t===`store`)||t in e}};function Aa(e){ka=e(ka)}function ja(e){return Ca().includes(e)?function(...t){return e.apply(Pa(this),t),Na(this.request)}:function(...t){return Na(e.apply(Pa(this),t))}}function Ma(e){return typeof e==`function`?ja(e):(e instanceof IDBTransaction&&Oa(e),ya(e,Sa())?new Proxy(e,ka):e)}function Na(e){if(e instanceof IDBRequest)return Da(e);if(Ta.has(e))return Ta.get(e);let t=Ma(e);return Object.is(t,e)||(Ta.set(e,t),Ea.set(t,e)),t}var Pa=e=>Ea.get(e);function Fa(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){let o=indexedDB.open(e,t),s=Na(o);return r&&o.addEventListener(`upgradeneeded`,e=>{r(Na(o.result),e.oldVersion,e.newVersion,Na(o.transaction),e)}),n&&o.addEventListener(`blocked`,e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{a&&e.addEventListener(`close`,()=>a()),i&&e.addEventListener(`versionchange`,e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}var Ia=[`get`,`getKey`,`getAll`,`getAllKeys`,`count`],La=[`put`,`add`,`delete`,`clear`],Ra={};function za(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t==`string`))return;if(Ra[t])return Ra[t];let n=t.replace(/FromIndex$/,``),r=t!==n,i=La.includes(n);return!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||Ia.includes(n))?void 0:Ra[t]=async function(e,...t){let a=this.transaction(e,i?`readwrite`:`readonly`),o=a.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&a.done]))[0]}}Aa(e=>({...e,get:(t,n,r)=>za(t,n)||e.get(t,n,r),has:(t,n)=>!!za(t,n)||e.has(t,n)}));var Ba=[`advance`,`continue`,`continuePrimaryKey`],Va={},Ha=new WeakMap,Ua=new WeakMap,Wa={get(e,t){if(!Ba.includes(t))return e[t];let n=Va[t];return n||=Va[t]=function(...e){Ha.set(this,Ua.get(this)[t](...e))},n}};async function*Ga(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let n=new Proxy(t,Wa);for(Ua.set(n,t),Ea.set(n,Pa(t));t;)yield n,t=await(Ha.get(n)||t.continue()),Ha.delete(n)}function Ka(e,t){return t===Symbol.asyncIterator&&ya(e,[IDBIndex,IDBObjectStore,IDBCursor])||t===`iterate`&&ya(e,[IDBIndex,IDBObjectStore])}Aa(e=>({...e,get(t,n,r){return Ka(t,n)?Ga:e.get(t,n,r)},has(t,n){return Ka(t,n)||e.has(t,n)}}));var qa=class extends Error{details;constructor(e,t){super(e),this.name=`ValidationError`,this.details=t}},Ja=class extends Error{constructor(){super(`Pixel Mirror was updated: close other tabs that use the old version, then reload this page`),this.name=`DatabaseBlockedError`}},Ya=class extends Error{constructor(e,t){super(e,{cause:t}),this.name=`DatabaseError`}};function Xa(e,t){if(e instanceof Error&&e.cause instanceof Ja)return{message:e.cause.message};let n=t?`${t}: `:``;return e instanceof qa?{message:n+e.message,details:e.details}:e instanceof Error?{message:n+e.message}:{message:n+`An unknown error occurred`}}var Za=`PixelMirrorDB`,Qa=3;function $a(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function eo(e){return{bytes:await e.arrayBuffer(),type:e.type}}function to(e){return e instanceof Blob?e:new Blob([e.bytes],{type:e.type})}function no({thumbnail:e,...t}){return{...t,thumbnail:to(e)}}async function ro(e){let t=new Map,n=await e.objectStore(`mockups`).openCursor();for(;n;){let{thumbnailBuffer:e,...r}=n.value;t.set(r.id,r.mimeType),e&&await n.update({...r,thumbnail:{bytes:e,type:r.mimeType}}),n=await n.continue()}let r=await e.objectStore(`mockup_blobs`).openCursor();for(;r;){let e=r.value;e instanceof ArrayBuffer&&await r.update({bytes:e,type:t.get(r.key)??``}),r=await r.continue()}}async function io(e,t){await Promise.all([...e,t])}var ao,oo=3e3,so=!1;function co(){return new Promise((e,t)=>{let n=!1,r=()=>{clearTimeout(i),!n&&(n=!0,so=!0,t(new Ja))},i=setTimeout(r,oo);Fa(Za,Qa,{upgrade(e,n,r,a){clearTimeout(i),io([(async()=>{n<2&&(e.objectStoreNames.contains(`mockups`)||e.createObjectStore(`mockups`,{keyPath:`id`}),e.objectStoreNames.contains(`mockup_blobs`)||e.createObjectStore(`mockup_blobs`),e.objectStoreNames.contains(`grids`)||e.createObjectStore(`grids`,{keyPath:`id`}),e.objectStoreNames.contains(`settings`)||e.createObjectStore(`settings`)),n<3&&await ro(a)})()],a.done).catch(e=>{try{a.abort()}catch{}t(e)})},blocking(e,t,n){n.target.close(),ao=void 0},terminated(){ao=void 0},blocked:r}).then(t=>{if(clearTimeout(i),!n)return e(t);so=!1,ao=Promise.resolve(t)},e=>{clearTimeout(i),n?so=!1:t(e)})})}async function lo(){if(so)throw new Ja;return ao||=co().catch(e=>{throw ao=void 0,e}),ao}async function uo(e,t,n){let r;try{r=(await lo()).transaction(e,`readwrite`);let[t]=await Promise.all([n(r),r.done]);return t}catch(e){if(r){try{r.abort()}catch{}await r.done.catch(()=>{})}throw new Ya(t,e)}}function fo(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}async function po(e,t,n){let r={...fo(await e.objectStore(`settings`).get(t)),...n};return await e.objectStore(`settings`).put(r,t),r}async function mo(e,t){let n=e.objectStore(`grids`),r=(await n.getAll()).sort((e,t)=>e.createdAt-t.createdAt);if(!r.length){let e={...Xi,id:$a(),createdAt:Date.now()};await n.put(e),r.push(e)}let i=fo(await e.objectStore(`settings`).get(`gridOverlay`));return r.some(e=>e.id===i.activeLayoutGridId)||(i=await po(e,`gridOverlay`,{activeLayoutGridId:r[0].id})),{items:r,activeId:r.some(e=>e.id===t)?t:i.activeLayoutGridId,stored:i}}function ho(e){return uo([`grids`,`settings`],`Failed to load grids`,t=>mo(t,e))}function go(e){return uo([`grids`,`settings`],`Failed to add grid`,async t=>{let n={...e,id:$a(),createdAt:Date.now()};return await t.objectStore(`grids`).put(n),await po(t,`gridOverlay`,{activeLayoutGridId:n.id}),mo(t,n.id)})}function _o(e){return uo([`grids`,`settings`],`Failed to select grid`,async t=>{if(!await t.objectStore(`grids`).get(e))throw Error(`Grid not found.`);return await po(t,`gridOverlay`,{activeLayoutGridId:e}),mo(t,e)})}function vo(e,t){return uo([`grids`,`settings`],`Failed to delete grid`,async n=>(await n.objectStore(`grids`).delete(e),mo(n,t)))}function yo(){return uo([`grids`,`settings`],`Failed to reset grids`,async e=>(await e.objectStore(`grids`).clear(),await e.objectStore(`settings`).put(Zi,`gridOverlay`),mo(e)))}function bo(e){return uo([`mockups`,`settings`],`Failed to load mockups`,async t=>{let n=(await t.objectStore(`mockups`).getAll()).map(no).sort((e,t)=>t.createdAt-e.createdAt),r=fo(await t.objectStore(`settings`).get(`mockupOverlay`));return r.activeMockupId!==null&&!n.some(e=>e.id===r.activeMockupId)&&(r=await po(t,`mockupOverlay`,{activeMockupId:null})),{items:n,activeId:e===void 0?r.activeMockupId:n.some(t=>t.id===e)?e:null,stored:r}})}async function xo(e){try{let t=await(await lo()).get(`mockup_blobs`,e);return t&&to(t)}catch(e){throw new Ya(`Failed to get mockup`,e)}}var So={isHidden:!1,isLocked:!1};async function Co(e,t=!1,n){let r;try{r=await Promise.all((Array.isArray(e)?e:[e]).map(async({image:e,thumbnail:t,...n})=>({metadata:n,image:await eo(e),thumbnail:await eo(t)})))}catch(e){throw new Ya(`Failed to read mockup files`,e)}return uo([`mockups`,`mockup_blobs`,`settings`],`Failed to add mockups`,async e=>{let i=Date.now(),a=[];for(let{metadata:t,image:n,thumbnail:o}of r){let r={...t,thumbnail:o,id:$a(),createdAt:i+a.length};await e.objectStore(`mockups`).put(r),await e.objectStore(`mockup_blobs`).put(n,r.id),a.push(no(r))}return t&&a.length?(await po(e,`mockupOverlay`,{activeMockupId:a[0].id,...So}),{added:a,activeId:a[0].id,appearance:So}):{added:a,activeId:await wo(e,n),appearance:{}}})}async function wo(e,t){let n=fo(await e.objectStore(`settings`).get(`mockupOverlay`)),r=typeof n.activeMockupId==`string`?n.activeMockupId:null;return r!==null&&!await e.objectStore(`mockups`).getKey(r)&&(r=null),r!==n.activeMockupId&&await po(e,`mockupOverlay`,{activeMockupId:r}),t===null?null:t===void 0?r:await e.objectStore(`mockups`).getKey(t)?t:null}function To(e){return uo([`mockups`,`settings`],`Failed to select mockup`,async t=>{if(e!==null&&!await t.objectStore(`mockups`).getKey(e))throw Error(`Mockup not found.`);let n=e===null?{}:So;return await po(t,`mockupOverlay`,{activeMockupId:e,...n}),{added:[],activeId:e,appearance:n}})}function Eo(e,t){return uo([`mockups`,`mockup_blobs`,`settings`],`Failed to delete mockup`,async n=>(await n.objectStore(`mockups`).delete(e),await n.objectStore(`mockup_blobs`).delete(e),{added:[],activeId:await wo(n,t===e?null:t),appearance:{}}))}function Do(){return uo([`mockups`,`mockup_blobs`,`settings`],`Failed to clear mockups`,async e=>(await e.objectStore(`mockups`).clear(),await e.objectStore(`mockup_blobs`).clear(),await po(e,`mockupOverlay`,{activeMockupId:null}),{added:[],activeId:null,appearance:{}}))}async function Oo(e){try{return await(await lo()).get(`settings`,e)}catch(e){throw new Ya(`Failed to load settings`,e)}}function ko(e,t){return uo([`settings`],`Failed to save settings`,async n=>{if(`activeLayoutGridId`in t||`activeMockupId`in t)throw Error(`Selections must be changed through library commands.`);await po(n,e,t)})}function Ao(){let e=I(void 0);return{get errorMessage(){return U(e)},showError:(t,n)=>{let r=Xa(t,n);L(e,r.message,!0),console.error(`[PixelMirror]`,r.message,r.details??``,t)},clear:()=>{L(e,void 0)}}}var jo=Ao(),Mo=new Set,No=new Map;function Po(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return{};let n={};for(let r of Object.keys(t)){let i=e[r];i!==void 0&&t[r](i)&&(n[r]=i)}return n}function Fo(e,t,n){let r=Jt({...t}),i=null,a=null;function o(e){No.get(s)?.promise===e&&(No.delete(s),Mo.has(s)&&queueMicrotask(()=>void s()))}function s(){let t=No.get(s);if(t)return t.promise;if(!Mo.delete(s)||i===null)return Promise.resolve();let n=Ve(i),a=Object.keys(n);i=null;let c=ko(e,n).catch(e=>{for(let e of a)n[e]=r[e];i={...n,...i},jo.showError(e,`Failed to save settings`)}).finally(()=>o(c));return No.set(s,{promise:c,keys:a}),c}function c(e){Object.assign(r,e),a!==null&&Object.assign(a,e),i={...i,...e},Mo.add(s),queueMicrotask(()=>void s())}return{get current(){return r},async load(o=async()=>({stored:await Oo(e),result:void 0}),c=()=>{}){a={...i};for(let e of No.get(s)?.keys??[])a[e]=r[e];try{let{stored:e,result:i}=await o();Object.assign(r,{...t,...Po(e,n),...a}),c(i)}finally{a=null}},async commit(e,t,n){let c=No.get(s)?.promise;a={};let l=(async()=>{await c;let{appearance:o,result:l}=await t();for(let t of e)i&&delete i[t];return i={...i,...a},Object.keys(i).length||(i=null,Mo.delete(s)),Object.assign(r,{...o,...a}),n(l),l})().finally(()=>{a=null,o(l)});return No.set(s,{promise:l,keys:e}),l},update:c,reset:()=>c({...t})}}var Io=/^\d+(\.\d+)?(px|%|em|rem|vw|vh)$/,Lo=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/,Ro=/^rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*[\d.]+\s*)?\)$/;function zo(e){return{success:!0,data:e}}function Bo(e,t){return{success:!1,error:new qa(e,t)}}function Vo(e){let t=e.trim();return/^\d+(\.\d+)?$/.test(t)?`${t}px`:t}function Ho(e,t){let n=e.trim();return n?Io.test(n)?zo(n):Bo(`Invalid ${t} format`,`Expected format like "100px", "50%", or "1.5rem", got "${e}"`):Bo(`${t} is required`)}function Uo(e){let t=Ho(e,`Spacing grid height`);return t.success?/(?:px|rem)$/.test(t.data)?t:Bo(`Spacing grid height must use px or rem`):t}function Wo(e,t){let n=e.trim();return n?(typeof CSS<`u`&&typeof CSS.supports==`function`?CSS.supports(`color`,n):Lo.test(n)||Ro.test(n))?zo(n):Bo(`Invalid ${t} format`,`Expected a CSS color such as #fff, rgba(0, 0, 255, 0.1) or hsl(0 100% 50%), got "${e}"`):Bo(`${t} is required`)}function Go(e,t,n=1,r=2**53-1){return Number.isInteger(e)?e<n||e>r?Bo(`${t} must be between ${n} and ${r}`,`Got ${e}`):zo(e):Bo(`${t} must be an integer`,`Got ${e}`)}function Ko(e){let t=Ho(e.width,`Width`);if(!t.success)return t;let n=Go(e.columns,`Columns`,1,100);if(!n.success)return n;let r=Ho(e.gutterWidth,`Gutter width`);if(!r.success)return r;let i=[`left`,`center`,`right`];return i.includes(e.position)?zo({...e,width:t.data,columns:n.data,gutterWidth:r.data}):Bo(`Invalid position`,`Expected one of: ${i.join(`, `)}`)}function qo(e){return e?ta.includes(e.type)?e.size>10485760?Bo(`File too large`,`Maximum size is ${ea/1048576}MB, got ${(e.size/1048576).toFixed(2)}MB`):zo(e):Bo(`Unsupported file type`,`Allowed types: ${ta.map(e=>e.split(`/`)[1]).join(`, `)}`):Bo(`No file provided`)}function Jo(e){let t=[],n=[];for(let r of e){let e=qo(r);e.success?t.push(e.data):n.push(new qa(`${r.name}: ${e.error.message}`,e.error.details))}return{validFiles:t,errors:n}}async function Yo(e){let{thumbnail:t,width:n,height:r}=await new Promise((t,n)=>{let r=new Image,i=URL.createObjectURL(e);r.onload=()=>{let a=Math.min(r.width,r.height),o=(r.width-a)/2,s=document.createElement(`canvas`);s.width=352,s.height=352;let c=s.getContext(`2d`);c?(c.drawImage(r,o,0,a,a,0,0,352,352),s.toBlob(e=>{URL.revokeObjectURL(i),e?t({thumbnail:e,width:r.naturalWidth,height:r.naturalHeight}):n(new qa(`Failed to create thumbnail`))},e.type,.8)):(URL.revokeObjectURL(i),n(new qa(`Failed to get canvas context`)))},r.onerror=()=>{URL.revokeObjectURL(i),n(new qa(`Failed to load image: ${e.name}`))},r.src=i});return{image:e,thumbnail:t,filename:e.name,mimeType:e.type,width:n,height:r,fileSize:e.size}}async function Xo(e){let{validFiles:t,errors:n}=Jo(e);if(t.length===0)return{data:[],errors:n};let r=await Promise.allSettled(t.map(Yo)),i=[],a=[...n];return r.forEach((e,n)=>{if(e.status===`fulfilled`)i.push(e.value);else{let r=t[n],i=e.reason instanceof qa?e.reason:new qa(`Failed to process ${r.name}`,String(e.reason));a.push(i)}}),{data:i,errors:a}}var Zo={isHidden:!1,isLocked:!1,opacity:Ki,position:{x:0,y:0},alignmentX:fa(la),alignmentY:pa(la),scale:1},Qo=e=>typeof e==`number`&&Number.isFinite(e);function $o(){let e=Fo(`mockupOverlay`,Zo,{isHidden:e=>typeof e==`boolean`,isLocked:e=>typeof e==`boolean`,opacity:e=>Qo(e)&&e>=.1&&e<=.9,position:e=>Qo(e?.x)&&Qo(e?.y),alignmentX:e=>e===null||e===`left`||e===`center`||e===`right`,alignmentY:e=>e===null||e===`top`||e===`bottom`,scale:e=>Qi.includes(e)}),t=I(Jt([])),n=I(null),r=P(()=>U(t).find(e=>e.id===U(n))),i=I(`pending`),a=!1,o=Promise.resolve(),s=null,c=new Set;function l(e,t){let n=o.then(e).catch(e=>{jo.showError(e,t)});return o=n.then(()=>{}),n}function u(e){for(let t of c)t(e)}function d(){return s||(s=l(async()=>{try{await e.load(async()=>{let t=await bo(a?U(n):void 0);return{stored:a?e.current:t.stored,result:t}},e=>{L(t,e.items,!0),L(n,e.activeId,!0),u(`refresh`)}),a=!0,L(i,`ready`)}catch(e){throw L(i,`failed`),e}},`Failed to load mockups`).then(()=>{}).finally(()=>{s=null}),s)}function f(r,i,a=!1){return e.commit(a?[`isHidden`,`isLocked`]:[],async()=>{let e=await r();return{appearance:e.appearance,result:e}},e=>{L(t,i===`all`?[]:[...e.added,...U(t).filter(e=>e.id!==i)].sort((e,t)=>t.createdAt-e.createdAt),!0),L(n,e.activeId,!0),u(`commit`)})}function p(e,t){return e.length?l(async()=>{let{data:r,errors:i}=await Xo(e);i.length===1?jo.showError(i[0]):i.length>1&&jo.showError(new qa(`${i.length} files could not be added: ${i.map(e=>e.message).join(`; `)}`)),r.length&&await f(()=>Co(r,t,U(n)),void 0,t)},`Failed to upload mockups`):Promise.resolve()}return{get initialized(){return U(i)!==`pending`},get mockups(){return U(t)},get activeMockupId(){return U(n)},get activeMockup(){return U(r)},get appearance(){return e.current},updateAppearance:e.update,init:()=>U(i)===`ready`?Promise.resolve():d(),refresh:d,subscribe(e){return c.add(e),()=>c.delete(e)},upload:e=>p(e,!1),uploadAndActivate:e=>p(e,!0),select:e=>l(()=>f(()=>To(e),void 0,e!==null),`Failed to select mockup`),delete:e=>l(()=>f(()=>Eo(e,U(n)),e),`Failed to delete mockup`),clear:()=>l(()=>f(Do,`all`),`Failed to clear mockups`)}}var X=$o();function es(){let{clientWidth:e,clientHeight:t}=document.documentElement;return{x:window.scrollX+e/2,y:window.scrollY+t/2}}function ts(e,t){return{x:e+window.scrollX,y:t+window.scrollY}}function ns(){let{clientWidth:e,scrollHeight:t}=document.documentElement;return{width:e,height:t}}var rs=150;function is(e){let t=()=>e(ns());t();let n=null,r=()=>{n??=setTimeout(()=>{n=null,t()},rs)},i=[W(window,`resize`,t),W(document,`load`,r,{capture:!0}),W(document,`transitionend`,r,{capture:!0}),W(document,`animationend`,r,{capture:!0})],a=typeof ResizeObserver>`u`?null:new ResizeObserver(t);a?.observe(document.documentElement),document.body&&a?.observe(document.body);let o=typeof MutationObserver>`u`?null:new MutationObserver(r);return o?.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),()=>{i.forEach(e=>e()),a?.disconnect(),o?.disconnect(),n!==null&&clearTimeout(n)}}function as(e,t,n){return Math.min(Math.max(e,t),n)}function os(e,t){let n=10**t;return Math.round(e*n)/n}function ss(){let e={get current(){return X.appearance},update:X.updateAppearance},t=P(()=>e.current.isHidden),n=P(()=>e.current.isLocked),r=P(()=>e.current.opacity),i=P(()=>e.current.scale),a=P(()=>_a(e.current.alignmentX,e.current.alignmentY,e.current.position)),o=I(Jt(ca)),s=I(null),c=null,l=I(Jt({width:0,height:0})),u=I(Jt({width:0,height:0})),d=P(()=>ua(U(o),U(n))),f=P(()=>ia(U(a),U(l),U(i),U(u))),p=P(()=>U(o).kind===`dragging`?{...U(o).current,scale:U(i)}:U(o).kind===`inspecting`&&U(o).view?U(o).view:{...U(f),scale:U(i)}),m=P(()=>({x:U(p).x,y:U(p).y})),h=P(()=>va(U(a),U(m))),g=0,_={x:0,y:0,scale:1},v={x:0,y:0},y={x:0,y:0},b={x:0,y:0,scale:1};function x(){U(s)&&URL.revokeObjectURL(U(s)),L(s,null),c=null,L(l,{width:0,height:0},!0),L(o,ca,!0)}async function S(e){let t=++g;if(!e)return x(),!0;if(c===e&&U(s))return!0;try{let n=await xo(e);if(t!==g)return c===X.activeMockupId;if(!n)return jo.showError(Error(`Mockup not found.`)),x(),!0;x();let r=URL.createObjectURL(n);L(s,r,!0);let i=await new Promise((e,t)=>{let n=new Image;n.onload=()=>e({width:n.naturalWidth,height:n.naturalHeight}),n.onerror=()=>t(Error(`Failed to load mockup image.`)),n.src=r});return t===g?(L(l,i,!0),c=e,!0):c===X.activeMockupId}catch(e){return t===g?(jo.showError(e,`Failed to load mockup`),x(),!1):c===X.activeMockupId}}function C(t){e.update({alignmentX:fa(t),alignmentY:pa(t),position:{x:`offset`in t.x?t.x.offset:U(f).x,y:`offset`in t.y?t.y.offset:U(f).y}})}function w(e){C(ha(e))}function T(){return{...U(p)}}function E(e){U(o).kind===`inspecting`&&L(o,{...U(o),view:e},!0)}function ee(){L(o,{kind:`inspecting`,view:null,zoom:null},!0)}function te(){U(o).kind===`inspecting`&&L(o,ca,!0)}function D(){if(U(o).kind!==`dragging`)return;let{origin:e,current:t}=U(o);L(o,ca,!0),(t.x!==e.x||t.y!==e.y)&&C(ga(U(a),e,t))}function ne(e){let t=as(_.scale*e,$i,4);E({...aa(_,_.scale,t,v),scale:t})}return{get activeMockupId(){return X.activeMockupId},get activeMockupUrl(){return U(s)},get mockupSize(){return U(l)},get pageSize(){return U(u)},get isHidden(){return U(t)},get isLocked(){return U(n)},get opacity(){return U(r)},get position(){return U(m)},get alignmentX(){return fa(U(a))},get alignmentY(){return pa(U(a))},get isAligned(){return ma(U(a))},get scale(){return U(p).scale},get mode(){return U(d)},get isZoomPanning(){return U(o).kind===`inspecting`&&!!U(o).zoom?.isPanning},get isDragging(){return U(d)===`dragging`},get isSolidOrZoomed(){return U(d)===`solid`||U(d)===`zoomed`},get effectiveOpacity(){return U(d)===`solid`||U(d)===`zoomed`?1:U(r)},get positionDisplay(){return U(h)},setPageSize:e=>{(e.width!==U(u).width||e.height!==U(u).height)&&L(u,e,!0)},sync:()=>S(X.activeMockupId),cleanup:()=>{++g,x()},toggleVisibility:()=>{te(),e.update({isHidden:!U(t)})},toggleLock:()=>{da.adjustAppearance(U(d))&&e.update({isLocked:!U(n)})},stepOpacity:t=>{da.adjustAppearance(U(d))&&e.update({opacity:as(os(U(r)+t*Ui,2),Wi,Gi)})},resetOpacity:()=>{da.adjustAppearance(U(d))&&e.update({opacity:Ki})},setOpacity:t=>{da.adjustAppearance(U(d))&&e.update({opacity:as(os(t,2),Wi,Gi)})},cycleScale:()=>{if(!da.reposition(U(d)))return;let t=Qi[(Qi.indexOf(U(i))+1)%Qi.length],n=es(),r=aa(U(f),U(i),t,n);e.update({scale:t}),w(r)},setAlignment:(e,t)=>{da.reposition(U(d))&&C({x:{align:t},y:{align:e}})},move:(e,t)=>{if(!da.reposition(U(d)))return;let n={x:U(f).x+e,y:U(f).y+t};C(ga(U(a),U(f),n))},beginDrag:e=>{da.reposition(U(d))&&L(o,{kind:`dragging`,pointerStart:e,origin:{...U(f)},current:{...U(f)}},!0)},dragTo:e=>{if(U(o).kind!==`dragging`)return;let{pointerStart:t,origin:n}=U(o);L(o,{...U(o),current:{x:n.x+e.x-t.x,y:n.y+e.y-t.y}},!0)},endDrag:D,beginPan:e=>{U(d)===`solid`&&(y=e,b=T())},panTo:e=>{U(d)===`solid`&&E({...b,x:b.x+e.x-y.x,y:b.y+e.y-y.y})},beginPinch:e=>{U(d)===`solid`&&(_=T(),v=ts(e.x,e.y))},pinchTo:e=>{U(d)===`solid`&&ne(e)},enterSolidMode:()=>{da.adjustAppearance(U(d))&&ee()},exitSolidMode:te,toggleMobileSolidMode:()=>{U(o).kind===`inspecting`?te():da.adjustAppearance(U(d))&&ee()},enterZoomMode:e=>{if(U(o).kind!==`inspecting`||!da.zoom(U(d)))return;let t=T(),n=t.scale*2,r=aa(t,t.scale,n,ts(e.x,e.y),es());L(o,{kind:`inspecting`,view:{...r,scale:n},zoom:{returnTo:U(o).view,pointerStart:e,origin:r,isPanning:!1}},!0)},exitZoomMode:()=>{U(o).kind===`inspecting`&&U(o).zoom&&L(o,{kind:`inspecting`,view:U(o).zoom.returnTo,zoom:null},!0)},zoomPanTo:e=>{if(U(o).kind!==`inspecting`||!U(o).zoom||!U(o).view)return;let{zoom:t,view:n}=U(o);L(o,{...U(o),zoom:{...t,isPanning:!0},view:{...n,x:t.origin.x-(e.x-t.pointerStart.x),y:t.origin.y-(e.y-t.pointerStart.y)}},!0)}}}var Z=ss();function cs(){return typeof window<`u`&&typeof window.matchMedia==`function`?window.matchMedia(`(prefers-color-scheme: dark)`):null}var ls={position:`bottom`,theme:null};function us(){let e=Fo(`dock`,ls,{position:e=>e===`top`||e===`bottom`,theme:e=>e===null||e===`light`||e===`dark`}),t=cs(),n=I(Jt(t?.matches?`dark`:`light`));t&&typeof t.addEventListener==`function`&&t.addEventListener(`change`,t=>{L(n,t.matches?`dark`:`light`,!0),e.current.theme!==null&&e.update({theme:null})});let r=I(`toolbar`),i=I(`pending`),a=null,o=P(()=>e.current.theme??U(n));return{get initialized(){return U(i)!==`pending`},get mode(){return U(r)},get position(){return e.current.position},get theme(){return U(o)},get isManagerMode(){return U(r)===`mockups`||U(r)===`grids`},init:async()=>(U(i)===`ready`||a||(a=(async()=>{try{await e.load(),L(i,`ready`)}catch(e){L(i,`failed`),jo.showError(e,`Failed to load dock settings`)}finally{a=null}})()),a),enterToolbar:()=>{L(r,`toolbar`)},enterMockups:()=>{L(r,`mockups`)},enterGrids:()=>{L(r,`grids`)},togglePosition:()=>{e.update({position:e.current.position===`bottom`?`top`:`bottom`})},toggleTheme:()=>{e.update({theme:U(o)===`light`?`dark`:`light`})}}}var Q=us(),ds=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,fs=/^color\(\s*srgb\s+(\d*\.?\d+)\s+(\d*\.?\d+)\s+(\d*\.?\d+)\s*(?:\/\s*(\d*\.?\d+)\s*)?\)$/i,ps=/^rgba?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\s*(?:,\s*(\d*\.?\d+)\s*)?\)$/i,ms=/(?:\s*\/\s*(none|[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?))?\s*\)$/i;function hs(e){let t=e.trim(),n=t.match(ds);if(n){let e=n[1].length<=4?[...n[1]].map(e=>e+e).join(``):n[1],t=t=>parseInt(e.slice(t*2,t*2+2),16);return{r:t(0),g:t(1),b:t(2),a:e.length===8?t(3)/255:1}}let r=t.match(ps);if(r){let e=e=>Math.min(255,Math.round(Number(e)));return{r:e(r[1]),g:e(r[2]),b:e(r[3]),a:r[4]===void 0?1:Math.min(1,Number(r[4]))}}let i=t.match(fs);if(i){let e=e=>Math.round(Math.min(1,Number(e))*255),t=i[4]===void 0?1:Math.min(1,Number(i[4]));return{r:e(i[1]),g:e(i[2]),b:e(i[3]),a:t}}return null}function gs(e){let t=e.trim(),n=hs(t);if(!n){if(typeof document>`u`)return null;let e=document.createElement(`span`);if(e.style.setProperty(`color`,t,`important`),!e.style.color)return null;e.style.setProperty(`display`,`none`,`important`),(document.body??document.documentElement).appendChild(e);try{t=getComputedStyle(e).color}finally{e.remove()}if(n=hs(t),!n&&!/^(?:color|oklch|oklab|lch|lab)\(/.test(t))return null}let r=t.match(ms)?.[1],i=n?.a??(r===`none`?0:Number(r??1));return{css:t,rgba:n,alpha:i}}function _s(e,t){return e.rgba?bs({...e.rgba,a:t}):e.css.replace(ms,` / ${os(t,2)})`)}function vs(e){let t=gs(e);if(!t)return e;let n=as(t.alpha,qi,Ji);return n===t.alpha?t.css:_s(t,n)}function ys({r:e,g:t,b:n}){return`#${[e,t,n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function bs({r:e,g:t,b:n,a:r}){return`rgba(${e}, ${t}, ${n}, ${os(r,2)})`}function xs(e,t,n,r){return r?bs(e??{...hs(t)??{r:0,g:0,b:0,a:1},a:n}):e?ys(e):t}function Ss(e,t,n,r){return r?e:{...e,a:t?.a??n}}var Cs=e=>typeof e==`string`&&Wo(e,`color`).success;function ws(){let e=Fo(`gridOverlay`,Zi,{showLayoutGrid:e=>typeof e==`boolean`,layoutGridColor:Cs,showSpacingGrid:e=>typeof e==`boolean`,spacingGridColor:Cs,spacingGridHeight:e=>typeof e==`string`&&Uo(e).success}),t=I(Jt([])),n=I(``),r=P(()=>U(t).find(e=>e.id===U(n))),i=I(`pending`),a=I(!1),o=!1,s=Promise.resolve(),c=null,l=null,u=new Set;function d(e,t){let n=s.then(e).catch(e=>{jo.showError(e,t)});return s=n.then(()=>{}),n}function f(e,r){L(t,e.items,!0),L(n,e.activeId,!0);for(let e of u)e(r)}function p(){return c||(c=d(async()=>{try{await e.load(async()=>{let t=await ho(o?U(n):void 0);return{stored:o?e.current:t.stored,result:t}},e=>f(e,`refresh`));let t={};for(let n of[`layoutGridColor`,`spacingGridColor`]){let r=vs(e.current[n]);r!==e.current[n]&&(t[n]=r)}Object.keys(t).length&&e.update(t),o=!0,L(i,`ready`)}catch(e){throw L(i,`failed`),e}},`Failed to load grids`).then(()=>{}).finally(()=>{c=null}),c)}function m(t,n=!1){return e.commit(n?Object.keys(Zi):[],async()=>({appearance:n?Zi:{},result:await t()}),e=>f(e,`commit`))}function h(t,n){let r=Wo(n,t===`layoutGridColor`?`Layout grid color`:`Spacing grid color`);if(!r.success)return jo.showError(r.error);e.update({[t]:vs(r.data)})}return{get initialized(){return U(i)!==`pending`},get layoutGrids(){return U(t)},get activeLayoutGridId(){return U(n)},get activeLayoutGrid(){return U(r)},get showLayoutGrid(){return e.current.showLayoutGrid},get layoutGridColor(){return e.current.layoutGridColor},get showSpacingGrid(){return e.current.showSpacingGrid},get spacingGridColor(){return e.current.spacingGridColor},get spacingGridHeight(){return e.current.spacingGridHeight},get isResetting(){return U(a)},init:()=>U(i)===`ready`?Promise.resolve():p(),refresh:p,subscribe(e){return u.add(e),()=>u.delete(e)},toggleLayoutGrid:()=>e.update({showLayoutGrid:!e.current.showLayoutGrid}),toggleSpacingGrid:()=>e.update({showSpacingGrid:!e.current.showSpacingGrid}),updateLayoutGridColor:e=>h(`layoutGridColor`,e),updateSpacingGridColor:e=>h(`spacingGridColor`,e),updateSpacingGridHeight(t){let n=Uo(Vo(t));if(!n.success)return jo.showError(n.error);e.update({spacingGridHeight:n.data})},setActiveLayoutGrid:e=>d(()=>m(()=>_o(e)),`Failed to select grid`),add(e){let t=Ko(e);return t.success?d(async()=>(await m(()=>go(t.data))).activeId,`Failed to add grid`):(jo.showError(t.error),Promise.resolve(void 0))},delete:e=>d(()=>m(()=>vo(e,U(n))),`Failed to delete grid`),reset(){return l||(L(a,!0),l=d(async()=>(await m(yo,!0),!0),`Failed to reset grids`).finally(()=>{L(a,!1),l=null}),l)}}}var $=ws(),Ts=new Set([`INPUT`,`SELECT`,`TEXTAREA`]);function Es(e){return e instanceof HTMLElement?Ts.has(e.tagName)||e.isContentEditable:!1}function Ds(e){if(Es(e.composedPath()[0]))return!0;let t=document.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return Es(t)}var Os={ArrowUp:[0,-1],ArrowDown:[0,1],ArrowLeft:[-1,0],ArrowRight:[1,0]};function ks(){let e=I(!1),t=I(!1),n=I(!1),r=null;function i(){return Q.mode===`toolbar`&&!Z.isHidden&&!!Z.activeMockupUrl}function a(e){return e.defaultPrevented||e.isComposing||e.ctrlKey||e.metaKey||e.altKey}function o(e){if(e.defaultPrevented||!i())return;let{mode:t}=Z;(t===`visible`||t===`locked`)&&(e.preventDefault(),Z.stepOpacity(e.deltaY>0?1:-1))}function s(){r||(r=o,window.addEventListener(`wheel`,r,{passive:!1}))}function c(){r&&=(window.removeEventListener(`wheel`,r),null)}function l(){U(e)&&(L(e,!1),c()),U(t)&&(L(t,!1),Z.exitSolidMode())}function u(n){if(Ds(n))return;if(n.key===`Control`){U(e)||(L(e,!0),s());return}if(Q.mode!==`toolbar`){n.key===`Escape`&&!a(n)&&Q.enterToolbar();return}if(!i()||a(n))return;let{mode:r}=Z;switch(n.key){case` `:if(n.shiftKey)return;n.preventDefault(),!U(t)&&(r===`visible`||r===`locked`)&&(L(t,!0),Z.enterSolidMode());break;case`Escape`:!n.repeat&&(r===`visible`||r===`locked`)&&Z.toggleLock();break;case`ArrowUp`:case`ArrowDown`:case`ArrowLeft`:case`ArrowRight`:{if(r!==`visible`)return;n.preventDefault();let e=n.shiftKey?10:1,[t,i]=Os[n.key];Z.move(t*e,i*e);break}}}function d(n){switch(n.key){case` `:U(t)&&(L(t,!1),Z.exitSolidMode());break;case`Control`:U(e)&&(L(e,!1),c())}}function f(){document.hidden&&l()}return{get isControlPressed(){return U(e)},get isSpacePressed(){return U(t)},init:()=>{U(n)||(L(n,!0),window.addEventListener(`keydown`,u),window.addEventListener(`keyup`,d),window.addEventListener(`blur`,l),document.addEventListener(`visibilitychange`,f))},cleanup:()=>{U(n)&&(L(n,!1),window.removeEventListener(`keydown`,u),window.removeEventListener(`keyup`,d),window.removeEventListener(`blur`,l),document.removeEventListener(`visibilitychange`,f),c(),l())}}}var As=ks(),js=null;function Ms(){return js===null&&(js=`ontouchstart`in window||navigator.maxTouchPoints>0),js}var Ns=null,Ps=!1;function Fs(){return Ns===`touch`}function Is(){if(Ps)return;let e=e=>{Ns=e.pointerType};document.addEventListener(`pointerover`,e,{capture:!0,passive:!0}),document.addEventListener(`pointerdown`,e,{capture:!0,passive:!0}),Ps=!0}function Ls(){Is(),As.init();let e=!1,t=!1,n=new Set,r=null;try{typeof BroadcastChannel<`u`&&(r=new BroadcastChannel(`pixel-mirror-libraries`))}catch{}async function i(r){for(let e of r)n.add(e);if(!t){t=!0;try{for(;!e&&n.size;){let t=n.delete(`grids`),r=n.delete(`mockups`);await Promise.all([t?$.refresh():void 0,r?X.refresh():void 0]),!e&&r&&await Z.sync()}}finally{t=!1}}}function a(e,t){if(t===`commit`)try{r?.postMessage(e)}catch{}}let o=[$.subscribe(e=>a(`grids`,e)),X.subscribe(e=>{a(`mockups`,e),e===`commit`&&Z.sync()}),W(window,`focus`,()=>{Q.init(),i([`grids`,`mockups`])})];return r&&(r.onmessage=({data:e})=>{(e===`grids`||e===`mockups`)&&i([e])}),Q.init(),i([`grids`,`mockups`]),()=>{e=!0,n.clear(),o.forEach(e=>e()),r?.close(),Z.cleanup(),As.cleanup()}}var Rs=Or(`<circle class="mark" r="3.75" fill="currentColor"></circle>`),zs=Or(`<circle r="2.25" fill="currentColor"></circle>`),Bs=Or(`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"></svg>`);function Vs(e,t){Ge(t,!0);let n=Ii(t,`x`,7),r=Ii(t,`y`,7),i=Ii(t,`size`,7,20),a={left:4,center:12,right:20},o={top:8,bottom:16},s=[`top`,`bottom`].flatMap(e=>[`left`,`center`,`right`].map(t=>({row:e,column:t,cx:a[t],cy:o[e]}))),c=P(()=>n()!==null&&r()!==null);var l={get x(){return n()},set x(e){n(e),At()},get y(){return r()},set y(e){r(e),At()},get size(){return i()},set size(e=20){i(e),At()}},u=Bs();return Xr(u,21,()=>s,e=>`${e.row}-${e.column}`,(e,t)=>{var i=kr(),a=on(i),o=e=>{var n=Rs();B(()=>{Y(n,`cx`,U(t).cx),Y(n,`cy`,U(t).cy)}),q(e,n)},s=e=>{var n=zs();B(()=>{Y(n,`cx`,U(t).cx),Y(n,`cy`,U(t).cy),Y(n,`opacity`,U(c)?.45:1)}),q(e,n)};J(a,e=>{U(t).row===r()&&U(t).column===n()?e(o):e(s,-1)}),q(e,i)}),j(u),B(()=>{Y(u,`width`,i()),Y(u,`height`,i())}),q(e,u),Ke(l)}Hi(Vs,{x:{},y:{},size:{}},[],[],{mode:`open`});var Hs={show:[`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,`M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0`],hide:[`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,`M14.084 14.158a3 3 0 0 1-4.242-4.242`,`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,`m2 2 20 20`],lock:[`M5 11h14a2 2 0 0 1 2 2v7a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-7a2 2 0 0 1 2 -2Z`,`M7 11V7a5 5 0 0 1 10 0v4`],unlock:[`M5 11h14a2 2 0 0 1 2 2v7a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-7a2 2 0 0 1 2 -2Z`,`M7 11V7a5 5 0 0 1 9.9-1`],mockups:[`m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16`,`M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2`,`M12 7a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,`M10 2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2Z`],grids:[`M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2Z`,`M9 3v18`,`M15 3v18`],sun:[`M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0`,`M12 2v2`,`M12 20v2`,`m4.93 4.93 1.41 1.41`,`m17.66 17.66 1.41 1.41`,`M2 12h2`,`M20 12h2`,`m6.34 17.66-1.41 1.41`,`m19.07 4.93-1.41 1.41`],moon:[`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`],dockTop:[`M5 3h14`,`m18 13-6-6-6 6`,`M12 7v14`],dockBottom:[`M12 17V3`,`m6 11 6 6 6-6`,`M19 21H5`],delete:[`M10 11v6`,`M14 11v6`,`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,`M3 6h18`,`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`],upload:[`M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21`,`m14 19.5 3-3 3 3`,`M17 22v-5.5`,`M7 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0`],alert:[`M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0`,`M12 8L12 12`,`M12 16L12.01 16`],plus:[`M5 12h14`,`M12 5v14`]},Us=Or(`<path></path>`),Ws=Or(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"></svg>`);function Gs(e,t){Ge(t,!0);let n=Ii(t,`name`,7),r=Ii(t,`size`,7,20);var i={get name(){return n()},set name(e){n(e),At()},get size(){return r()},set size(e=20){r(e),At()}},a=Ws();return Xr(a,21,()=>Hs[n()],Kr,(e,t)=>{var n=Us();B(()=>Y(n,`d`,U(t))),q(e,n)}),j(a),B(()=>{Y(a,`width`,r()),Y(a,`height`,r())}),q(e,a),Ke(i)}Hi(Gs,{name:{},size:{}},[],[],{mode:`open`});var Ks=Or(`<path fill="currentColor" stroke="none"></path>`),qs=Or(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="9"></circle><!></svg>`);function Js(e,t){Ge(t,!0);let n=Ii(t,`level`,7),r=Ii(t,`size`,7,20),i=P(()=>{let e=Math.min(Math.max(n(),0),1);if(e===0)return``;if(e===1)return`M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0`;let t=21-18*e,r=Math.sqrt(81-(t-12)**2),i=+(e>.5);return`M${12-r} ${t}A9 9 0 ${i} 0 ${12+r} ${t}Z`});var a={get level(){return n()},set level(e){n(e),At()},get size(){return r()},set size(e=20){r(e),At()}},o=qs(),s=z(R(o)),c=e=>{var t=Ks();B(()=>Y(t,`d`,U(i))),q(e,t)};return J(s,e=>{U(i)&&e(c)}),j(o),B(()=>{Y(o,`width`,r()),Y(o,`height`,r())}),q(e,o),Ke(a)}Hi(Js,{level:{},size:{}},[],[],{mode:`open`});var Ys=K(`<span class="color-field__opacity svelte-1ttqu47" role="spinbutton" tabindex="0"> </span>`),Xs=K(`<div class="color-field svelte-1ttqu47"><label class="color-field__label svelte-1ttqu47">Color</label> <div class="color-field__control svelte-1ttqu47" title="Scroll to change the opacity"><span class="swatch svelte-1ttqu47"><span class="swatch__preview svelte-1ttqu47"></span> <input type="color" class="swatch__picker svelte-1ttqu47"/></span> <input class="color-field__text svelte-1ttqu47" type="text" spellcheck="false"/> <!></div></div>`),Zs={hash:`svelte-1ttqu47`,code:`.color-field.svelte-1ttqu47{display:flex;flex-direction:column;gap:6px;min-width:0}.color-field__label.svelte-1ttqu47{color:var(--pm-text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;line-height:16px;text-transform:uppercase}.color-field__control.svelte-1ttqu47{align-items:center;background:var(--pm-surface-elevated);border:1px solid var(--pm-border-control);border-radius:var(--pm-radius-control);color:var(--pm-text-primary);display:flex;font-family:var(--pm-font-mono);font-size:13px;gap:8px;height:32px;outline:none;padding:0 4px 0 6px;transition:border-color .2s,box-shadow .2s}@media(max-width:680px){.color-field__control.svelte-1ttqu47{font-size:16px}}.color-field__control.svelte-1ttqu47:has(:where(.svelte-1ttqu47):focus-visible){border-color:var(--pm-focus-ring);box-shadow:0 0 0 1px var(--pm-focus-ring)}.color-field__text.svelte-1ttqu47{align-self:stretch;background:transparent;border:none;color:inherit;flex:1;font:inherit;min-width:0;outline:none;padding:0}.color-field__opacity.svelte-1ttqu47{background:var(--pm-surface-subtle);border-radius:5px;color:var(--pm-text-secondary);cursor:ns-resize;flex:none;font-size:12px;font-variant-numeric:tabular-nums;line-height:18px;min-width:44px;padding:2px 6px;text-align:right}.color-field__opacity.svelte-1ttqu47:focus-visible{color:var(--pm-text-primary);outline:2px solid var(--pm-focus-ring);outline-offset:-2px}.swatch.svelte-1ttqu47{background:linear-gradient(45deg,#ccc 25%,transparent 0),linear-gradient(-45deg,#ccc 25%,transparent 0),linear-gradient(45deg,transparent 75%,#ccc 0),linear-gradient(-45deg,transparent 75%,#ccc 0);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;border-radius:5px;box-shadow:inset 0 0 0 1px var(--pm-border-strong);flex:none;height:20px;overflow:hidden;position:relative;width:20px}.swatch.svelte-1ttqu47:has(.swatch__picker:where(.svelte-1ttqu47):focus-visible){outline:2px solid var(--pm-focus-ring);outline-offset:1px}.swatch__picker.svelte-1ttqu47,.swatch__preview.svelte-1ttqu47{inset:0;position:absolute}.swatch__picker.svelte-1ttqu47{border:none;cursor:pointer;height:100%;opacity:0;padding:0;width:100%}`};function Qs(e,t){let n=Ar();Ge(t,!0),ni(e,Zs);let r=Ii(t,`value`,7),i=Ii(t,`fallback`,7),a=Ii(t,`pickerLabel`,7),o=Ii(t,`opacityLabel`,7),s=Ii(t,`pickerTestId`,7),c=Ii(t,`onchange`,7),l=Yi,u=typeof HTMLInputElement<`u`&&`alpha`in HTMLInputElement.prototype,d=P(r),f=P(()=>gs(U(d))),p=P(()=>Math.round(as(U(f)?.alpha??.99,qi,Ji)*100)),m=P(()=>xs(U(f)?.rgba??null,i(),l,u)),h=e=>{e.setAttribute(`alpha`,``),e.value=U(m)};function g(){let e=U(d).trim();e?e!==r()&&_(e):L(d,r())}function _(e){L(d,vs(e)),c()(U(d))}function v(e){if(!U(f))return;let t=as(Math.round(e)/100,qi,Ji);t!==U(f).alpha&&_(_s(U(f),t))}function y(e){let t=hs(e.currentTarget.value);t&&_(bs(Ss(t,U(f)?{a:U(f).alpha}:null,l,u)))}function b(e){e.key===`Enter`&&(e.preventDefault(),g())}function x(e){let t=e.shiftKey?10:1,n={ArrowUp:U(p)+t,ArrowRight:U(p)+t,ArrowDown:U(p)-t,ArrowLeft:U(p)-t,PageUp:U(p)+10,PageDown:U(p)-10,Home:qi*100,End:Ji*100};e.key in n&&(e.preventDefault(),v(n[e.key]))}let S=e=>{let t=0;return W(e,`wheel`,e=>{if(!U(f))return;e.preventDefault();let n=e.deltaY*(e.deltaMode===WheelEvent.DOM_DELTA_LINE?16:e.deltaMode===WheelEvent.DOM_DELTA_PAGE?400:1);t+=n/20;let r=Math.trunc(t);r!==0&&(t-=r,v(U(p)+r))},{passive:!1})};var C={get value(){return r()},set value(e){r(e),At()},get fallback(){return i()},set fallback(e){i(e),At()},get pickerLabel(){return a()},set pickerLabel(e){a(e),At()},get opacityLabel(){return o()},set opacityLabel(e){o(e),At()},get pickerTestId(){return s()},set pickerTestId(e){s(e),At()},get onchange(){return c()},set onchange(e){c(e),At()}},w=Xs(),T=R(w),E=z(T,2),ee=R(E),te=R(ee);let D;var ne=z(te,2);Ci(ne),ri(ne,()=>h),j(ee);var re=z(ee,2);Ci(re);var ie=z(re,2),ae=e=>{var t=Ys(),n=sn(t);B(()=>{Y(t,`aria-label`,o()),Y(t,`aria-valuemin`,qi*100),Y(t,`aria-valuemax`,Ji*100),Y(t,`aria-valuenow`,U(p)),Y(t,`aria-valuetext`,`${U(p)??``}%`),Lr(n,`${U(p)??``}%`)}),G(`keydown`,t,x),q(e,t)};return J(ie,e=>{U(f)&&e(ae)}),j(E),ri(E,()=>S),j(w),B(()=>{Y(T,`for`,`${n}-text`),D=di(te,``,D,{"background-color":U(d)}),wi(ne,U(m)),Y(ne,`data-testid`,s()),Y(ne,`aria-label`,a()),Y(re,`id`,`${n}-text`)}),G(`input`,ne,y),G(`change`,re,g),G(`keydown`,re,b),ki(re,()=>U(d),e=>L(d,e)),q(e,w),Ke(C)}yr([`input`,`change`,`keydown`]),Hi(Qs,{value:{},fallback:{},pickerLabel:{},opacityLabel:{},pickerTestId:{},onchange:{}},[],[],{mode:`open`});var $s=K(`<button type="button" class="preset svelte-s2yrtn"> </button>`),ec=K(`<button type="button" class="text-button svelte-s2yrtn"><!> New grid</button>`),tc=K(`<div><label class="grid-option__choice svelte-s2yrtn"><input type="radio" class="grid-option__radio svelte-s2yrtn"/> <span class="grid-option__mark svelte-s2yrtn" aria-hidden="true"></span> <span class="grid-option__text svelte-s2yrtn"><span class="grid-option__summary svelte-s2yrtn"> </span> <span class="grid-option__details svelte-s2yrtn"> </span></span></label> <button type="button" class="grid-option__delete svelte-s2yrtn"><!></button></div>`),nc=K(`<form class="new-grid svelte-s2yrtn" aria-label="New grid"><div class="field svelte-s2yrtn"><label class="field__label svelte-s2yrtn">Width</label> <input class="control svelte-s2yrtn" type="text" placeholder="1044px" spellcheck="false"/></div> <div class="field svelte-s2yrtn"><label class="field__label svelte-s2yrtn">Columns</label> <input class="control svelte-s2yrtn" type="text" inputmode="numeric" placeholder="12" spellcheck="false"/></div> <div class="field svelte-s2yrtn"><label class="field__label svelte-s2yrtn">Gutter</label> <input class="control svelte-s2yrtn" type="text" placeholder="24px" spellcheck="false"/></div> <div class="field svelte-s2yrtn"><label class="field__label svelte-s2yrtn">Outer gutters</label> <select class="control svelte-s2yrtn"><option>Yes</option><option>No</option></select></div> <div class="field svelte-s2yrtn"><label class="field__label svelte-s2yrtn">Position</label> <select class="control svelte-s2yrtn"><option>Center</option><option>Left</option><option>Right</option></select></div> <div class="new-grid__actions svelte-s2yrtn"><button type="button" class="button button--ghost svelte-s2yrtn">Cancel</button> <button type="submit" class="button svelte-s2yrtn">Add grid</button></div></form>`),rc=K(`<button type="button" class="footer__button footer__button--ghost svelte-s2yrtn">Cancel</button>`),ic=K(`<div class="container svelte-s2yrtn" role="region" aria-label="Grid Manager"><div class="inner svelte-s2yrtn"><section class="section svelte-s2yrtn"><header class="section__header svelte-s2yrtn"><div class="section__heading svelte-s2yrtn"><h3 class="section__title svelte-s2yrtn">Spacing Grids</h3> <span class="section__hint svelte-s2yrtn">Vertical rhythm</span></div> <button type="button" role="switch" class="switch svelte-s2yrtn"><span class="switch__thumb svelte-s2yrtn"></span></button></header> <div><div class="field svelte-s2yrtn"><label class="field__label svelte-s2yrtn">Height</label> <div class="field__row svelte-s2yrtn"><input class="control control--short svelte-s2yrtn" type="text" placeholder="8px" title="Stripe height in px or rem" spellcheck="false"/> <div class="presets svelte-s2yrtn" role="group" aria-label="Height presets"></div></div></div> <!></div></section> <section class="section svelte-s2yrtn"><header class="section__header svelte-s2yrtn"><div class="section__heading svelte-s2yrtn"><h3 class="section__title svelte-s2yrtn">Layout Grids</h3> <span class="section__hint svelte-s2yrtn">Columns and gutters</span></div> <button type="button" role="switch" class="switch svelte-s2yrtn"><span class="switch__thumb svelte-s2yrtn"></span></button></header> <div><div class="fields svelte-s2yrtn"><!></div> <div class="field svelte-s2yrtn"><div class="grids-header svelte-s2yrtn"><span class="field__label svelte-s2yrtn">Grids</span> <!></div> <div class="grid-list svelte-s2yrtn" role="radiogroup"></div></div> <!></div></section></div> <footer class="footer svelte-s2yrtn"><!> <button type="button"> </button> <button type="button" class="footer__button svelte-s2yrtn">Close</button></footer></div>`),ac={hash:`svelte-s2yrtn`,code:`.container.svelte-s2yrtn{height:100%;max-height:inherit;overflow:hidden;width:100%}.container.svelte-s2yrtn,.inner.svelte-s2yrtn{display:flex;flex-direction:column}.inner.svelte-s2yrtn{flex:1;gap:20px;min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 24px}@media(max-width:680px){.inner.svelte-s2yrtn{padding:16px}}.footer.svelte-s2yrtn{align-items:center;background:var(--pm-surface-subtle);border-top:1px solid var(--pm-border-subtle);display:flex;flex-shrink:0;gap:8px;justify-content:flex-end;padding:12px 24px}@media(max-width:680px){.footer.svelte-s2yrtn{padding:12px 16px}}.footer__button.svelte-s2yrtn{align-items:center;background:var(--pm-button-bg);border:1px solid transparent;border-radius:var(--pm-radius-control);color:var(--pm-button-fg);display:inline-flex;font-size:13px;font-weight:600;height:32px;justify-content:center;line-height:1;min-width:96px;padding:0 16px;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}.footer__button.svelte-s2yrtn:hover:not(:disabled){background:var(--pm-button-hover-bg)}.footer__button.svelte-s2yrtn:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.footer__button.svelte-s2yrtn:disabled{background:var(--pm-button-disabled-bg);cursor:not-allowed;opacity:.55}@media(max-width:420px){.footer__button.svelte-s2yrtn{padding:0 12px}}.footer__button--ghost.svelte-s2yrtn{background:transparent;border-color:var(--pm-border-strong);color:var(--pm-text-primary)}.footer__button--ghost.svelte-s2yrtn:hover:not(:disabled){background:var(--pm-surface-hover)}.footer__button--danger.svelte-s2yrtn{background:var(--pm-danger);border-color:transparent;color:#fff}.footer__button--danger.svelte-s2yrtn:hover:not(:disabled){background:var(--pm-danger-hover)}.section.svelte-s2yrtn{display:flex;flex-direction:column;gap:12px}.section.svelte-s2yrtn+.section:where(.svelte-s2yrtn){border-top:1px solid var(--pm-border-subtle);padding-top:20px}.section__header.svelte-s2yrtn{align-items:center;display:flex;gap:16px;justify-content:space-between}.section__heading.svelte-s2yrtn{align-items:baseline;column-gap:8px;display:flex;flex-wrap:wrap;min-width:0}.section__title.svelte-s2yrtn{color:var(--pm-text-primary);font-size:14px;font-weight:600;line-height:20px;margin:0}.section__hint.svelte-s2yrtn{color:var(--pm-text-secondary);font-size:12px}.section__body.svelte-s2yrtn{display:flex;flex-direction:column;gap:12px;transition:opacity .2s}.section__body.disabled.svelte-s2yrtn{opacity:.45;pointer-events:none}.fields.svelte-s2yrtn{align-items:end;display:grid;gap:12px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:560px){.fields.svelte-s2yrtn{grid-template-columns:minmax(0,1fr)}}.field.svelte-s2yrtn{display:flex;flex-direction:column;gap:6px;min-width:0}.field__label.svelte-s2yrtn{color:var(--pm-text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;line-height:16px;text-transform:uppercase}.field__row.svelte-s2yrtn{align-items:center;display:flex;gap:8px}.control.svelte-s2yrtn{background:var(--pm-surface-elevated);border:1px solid var(--pm-border-control);border-radius:var(--pm-radius-control);color:var(--pm-text-primary);font-family:var(--pm-font-mono);font-size:13px;height:32px;min-width:0;outline:none;padding:0 10px;transition:border-color .2s,box-shadow .2s;width:100%}@media(max-width:680px){.control.svelte-s2yrtn{font-size:16px}}.control.svelte-s2yrtn::placeholder{color:var(--pm-text-muted)}.control.svelte-s2yrtn:focus-visible{border-color:var(--pm-focus-ring);box-shadow:0 0 0 1px var(--pm-focus-ring)}.control--short.svelte-s2yrtn{flex:0 1 auto;width:112px}select.control.svelte-s2yrtn{appearance:none;background-image:var(--pm-select-arrow);background-position:right 10px center;background-repeat:no-repeat;background-size:16px;cursor:pointer;font-family:var(--pm-font-sans);padding-right:36px}.presets.svelte-s2yrtn{display:flex;gap:4px}.preset.svelte-s2yrtn{border:1px solid var(--pm-border-subtle);border-radius:6px;color:var(--pm-text-secondary);font-family:var(--pm-font-mono);font-size:11px;font-weight:600;height:28px;padding:0 8px;transition:background .2s,color .2s,border-color .2s}.preset.svelte-s2yrtn:hover{background:var(--pm-surface-hover);color:var(--pm-text-primary)}.preset.svelte-s2yrtn:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.preset[aria-pressed=true].svelte-s2yrtn{background:var(--pm-accent-subtle);border-color:transparent;color:var(--pm-accent-text)}.switch.svelte-s2yrtn{background:var(--pm-switch-off);border-radius:var(--pm-radius-pill);box-shadow:inset 0 0 0 1px var(--pm-border-control);flex:none;height:20px;position:relative;transition:background .2s;width:34px}.switch.svelte-s2yrtn:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.switch__thumb.svelte-s2yrtn{background:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.2);height:16px;left:2px;position:absolute;top:2px;transition:transform .2s cubic-bezier(.4,0,.2,1);width:16px}.switch[aria-checked=true].svelte-s2yrtn{background:var(--pm-accent);box-shadow:none}.switch[aria-checked=true].svelte-s2yrtn .switch__thumb:where(.svelte-s2yrtn){background:var(--pm-accent-fg);transform:translateX(14px)}.grids-header.svelte-s2yrtn{align-items:center;display:flex;justify-content:space-between;min-height:24px}.text-button.svelte-s2yrtn{align-items:center;border-radius:6px;color:var(--pm-accent-text);display:inline-flex;font-size:12px;font-weight:600;gap:4px;height:24px;padding:0 8px;transition:background .2s}.text-button.svelte-s2yrtn:hover{background:var(--pm-accent-subtle)}.text-button.svelte-s2yrtn:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.grid-list.svelte-s2yrtn{border:1px solid var(--pm-border-strong);border-radius:var(--pm-radius-card);overflow:hidden}.grid-option.svelte-s2yrtn{align-items:center;display:flex;position:relative;transition:background .2s}.grid-option.svelte-s2yrtn+.grid-option:where(.svelte-s2yrtn){border-top:1px solid var(--pm-border-subtle)}.grid-option.svelte-s2yrtn:hover{background:var(--pm-surface-hover)}.grid-option.active.svelte-s2yrtn{background:var(--pm-surface-active)}.grid-option__choice.svelte-s2yrtn{align-items:center;cursor:pointer;display:flex;flex:1;gap:10px;min-width:0;padding:8px 12px}.grid-option__choice.svelte-s2yrtn:has(:where(.svelte-s2yrtn):focus-visible){box-shadow:inset 0 0 0 2px var(--pm-focus-ring)}.grid-option.active.svelte-s2yrtn .grid-option__choice:where(.svelte-s2yrtn){cursor:default}.grid-option__radio.svelte-s2yrtn{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.grid-option__mark.svelte-s2yrtn{border:1.5px solid var(--pm-border-control);border-radius:50%;display:grid;flex:none;height:16px;place-items:center;width:16px}.grid-option__mark.svelte-s2yrtn:after{border-radius:50%;content:"";height:8px;width:8px}.grid-option__radio.svelte-s2yrtn:checked+.grid-option__mark:where(.svelte-s2yrtn){border-color:var(--pm-accent)}.grid-option__radio.svelte-s2yrtn:checked+.grid-option__mark:where(.svelte-s2yrtn):after{background:var(--pm-accent)}.grid-option__text.svelte-s2yrtn{align-items:baseline;display:flex;flex-wrap:wrap;font-size:13px;gap:2px 8px;line-height:18px;min-width:0}.grid-option__summary.svelte-s2yrtn{color:var(--pm-text-primary);font-variant-numeric:tabular-nums;font-weight:500}.grid-option__details.svelte-s2yrtn{color:var(--pm-text-secondary);font-size:12px}.grid-option__delete.svelte-s2yrtn{border-radius:6px;color:var(--pm-text-secondary);display:grid;flex:none;height:32px;margin-right:6px;place-items:center;transition:color .2s;width:32px}.grid-option__delete.svelte-s2yrtn:hover:not(:disabled){color:var(--pm-danger-text)}.grid-option__delete.svelte-s2yrtn:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.grid-option__delete.svelte-s2yrtn:disabled{cursor:not-allowed;opacity:.35}.new-grid.svelte-s2yrtn{align-items:end;background:var(--pm-surface-subtle);border:1px solid var(--pm-border-subtle);border-radius:var(--pm-radius-card);display:grid;gap:10px 8px;grid-template-columns:minmax(0,1fr) minmax(0,0.7fr) minmax(0,0.8fr) minmax(0,1.2fr) minmax(0,1fr);padding:12px}@media(max-width:560px){.new-grid.svelte-s2yrtn{grid-template-columns:repeat(2,minmax(0,1fr))}}.new-grid__actions.svelte-s2yrtn{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}.button.svelte-s2yrtn{background:var(--pm-button-bg);border:1px solid transparent;border-radius:var(--pm-radius-control);color:var(--pm-button-fg);font-size:12px;font-weight:600;height:30px;padding:0 12px;transition:background .2s,color .2s,border-color .2s}.button.svelte-s2yrtn:hover:not(:disabled){background:var(--pm-button-hover-bg)}.button.svelte-s2yrtn:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.button.svelte-s2yrtn:disabled{background:var(--pm-button-disabled-bg);cursor:not-allowed;opacity:.55}.button--ghost.svelte-s2yrtn{background:transparent;border-color:var(--pm-border-strong);color:var(--pm-text-primary)}.button--ghost.svelte-s2yrtn:hover:not(:disabled){background:var(--pm-surface-hover)}`};function oc(e,t){let n=Ar();Ge(t,!0),ni(e,ac);let r=[`4px`,`8px`,`16px`],i=P(()=>$.spacingGridHeight),a=I(!1),o=I(void 0),s=I(void 0),c=I(``),l=I(``),u=I(``),d=I(!0),f=I(`center`),p=I(!1),m=I(void 0),h=P(()=>U(c).trim()&&U(u).trim()&&/^\d+$/.test(U(l))&&Number(U(l))>0);function g(e){return{summary:`${e.width} \u00B7 ${e.columns} columns \u00B7 ${e.gutterWidth} gutters`,details:`${e.position[0].toUpperCase()}${e.position.slice(1)} \u00B7 ${e.isGutterOnOutside?`outer gutters`:`no outer gutters`}`}}function _(e,t){e.key===`Enter`&&(e.preventDefault(),t())}function v(){let e=U(i).trim();e?e!==$.spacingGridHeight&&$.updateSpacingGridHeight(e):L(i,$.spacingGridHeight)}async function y(){L(a,!0),await ur(),U(s)?.focus()}async function b(){L(a,!1),L(c,``),L(l,``),L(u,``),L(d,!0),L(f,`center`),await ur(),U(o)?.focus()}async function x(e){e.preventDefault(),U(h)&&await $.add({width:Vo(U(c)),columns:Number(U(l)),gutterWidth:Vo(U(u)),isGutterOnOutside:U(d),position:U(f)})&&await b()}async function S(){if($.isResetting)return;if(!U(p)){L(p,!0);return}let e=U(m)?.getRootNode()?.activeElement===U(m);await $.reset()&&(L(p,!1),L(a,!1),L(c,``),L(l,``),L(u,``)),await ur(),e&&U(m)?.isConnected&&U(m).focus()}var C=kr(),w=on(C),T=e=>{var t=ic(),C=R(t),w=R(C),T=R(w),E=R(T),ee=R(E);Se(2),j(E);var te=z(E,2);j(T);var D=z(T,2);let ne;var re=R(D),ie=R(re),ae=z(ie,2),oe=R(ae);Ci(oe);var se=z(oe,2);Xr(se,20,()=>r,e=>e,(e,t)=>{var n=$s(),r=sn(n,!0);B(()=>{Y(n,`aria-pressed`,$.spacingGridHeight===t),Lr(r,t)}),G(`click`,n,()=>$.updateSpacingGridHeight(t)),q(e,n)}),j(se),j(ae),j(re),Qs(z(re,2),{get value(){return $.spacingGridColor},fallback:`#ff0000`,pickerLabel:`Pick spacing grid color`,opacityLabel:`Spacing grid opacity`,pickerTestId:`picker-spacing-color`,get onchange(){return $.updateSpacingGridColor}}),j(D),j(w);var ce=z(w,2),le=R(ce),ue=R(le),de=R(ue);Se(2),j(ue);var fe=z(ue,2);j(le);var pe=z(le,2);let me;var he=R(pe);Qs(R(he),{get value(){return $.layoutGridColor},fallback:`#0000ff`,pickerLabel:`Pick layout grid color`,opacityLabel:`Layout grid opacity`,pickerTestId:`picker-layout-color`,get onchange(){return $.updateLayoutGridColor}}),j(he);var ge=z(he,2),_e=R(ge),ve=R(_e),ye=z(ve,2),O=e=>{var t=ec();Gs(R(t),{name:`plus`,size:14}),Se(),j(t),Ni(t,e=>L(o,e),()=>U(o)),G(`click`,t,y),q(e,t)};J(ye,e=>{U(a)||e(O)}),j(_e);var be=z(_e,2);Xr(be,21,()=>$.layoutGrids,e=>e.id,(e,t)=>{let r=P(()=>$.activeLayoutGridId===U(t).id),i=P(()=>g(U(t)));var a=tc();let o;var s=R(a),c=R(s);Ci(c);var l=z(c,4),u=R(l),d=sn(u,!0),f=sn(z(u,2),!0);j(l),j(s);var p=z(s,2);Gs(R(p),{name:`delete`,size:16}),j(p),j(a),B(()=>{o=li(a,1,`grid-option svelte-s2yrtn`,null,o,{active:U(r)}),Y(c,`name`,`${n}-active-grid`),Ti(c,U(r)),Lr(d,U(i).summary),Lr(f,U(i).details),p.disabled=U(r),Y(p,`title`,U(r)?`The grid in use can't be deleted`:`Delete this grid`),Y(p,`aria-label`,`Delete grid ${U(i).summary??``}`)}),G(`change`,c,()=>$.setActiveLayoutGrid(U(t).id)),G(`click`,p,()=>$.delete(U(t).id)),q(e,a)}),j(be),j(ge);var k=z(ge,2),A=e=>{var t=nc(),r=R(t),i=R(r),a=z(i,2);Ci(a),Ni(a,e=>L(s,e),()=>U(s)),j(r);var o=z(r,2),p=R(o),m=z(p,2);Ci(m),j(o);var g=z(o,2),_=R(g),v=z(_,2);Ci(v),j(g);var y=z(g,2),S=R(y),C=z(S,2),w=R(C);w.value=w.__value=!0;var T=z(w);T.value=T.__value=!1,j(C),hi(C),j(y);var E=z(y,2),ee=R(E),te=z(ee,2),D=R(te);D.value=D.__value=`center`;var ne=z(D);ne.value=ne.__value=`left`;var re=z(ne);re.value=re.__value=`right`,j(te),hi(te),j(E);var ie=z(E,2),ae=R(ie),oe=z(ae,2);j(ie),j(t),B(()=>{Y(i,`for`,`${n}-new-width`),Y(a,`id`,`${n}-new-width`),Y(p,`for`,`${n}-new-columns`),Y(m,`id`,`${n}-new-columns`),Y(_,`for`,`${n}-new-gutter`),Y(v,`id`,`${n}-new-gutter`),Y(S,`for`,`${n}-new-outer`),Y(C,`id`,`${n}-new-outer`),Y(ee,`for`,`${n}-new-position`),Y(te,`id`,`${n}-new-position`),oe.disabled=!U(h)}),vr(`submit`,t,x),ki(a,()=>U(c),e=>L(c,e)),ki(m,()=>U(l),e=>L(l,e)),ki(v,()=>U(u),e=>L(u,e)),gi(C,()=>U(d),e=>L(d,e)),gi(te,()=>U(f),e=>L(f,e)),G(`click`,ae,b),q(e,t)};J(k,e=>{U(a)&&e(A)}),j(pe),j(ce),j(C);var xe=z(C,2),Ce=R(xe),we=e=>{var t=rc();G(`click`,t,()=>L(p,!1)),q(e,t)};J(Ce,e=>{U(p)&&e(we)});var M=z(Ce,2);let Te;var Ee=sn(M,!0);Ni(M,e=>L(m,e),()=>U(m));var De=z(M,2);j(xe),j(t),B(()=>{C.inert=$.isResetting,Y(ee,`id`,`${n}-spacing-title`),Y(te,`aria-checked`,$.showSpacingGrid),Y(te,`aria-labelledby`,`${n}-spacing-title`),ne=li(D,1,`section__body fields svelte-s2yrtn`,null,ne,{disabled:!$.showSpacingGrid}),D.inert=!$.showSpacingGrid,Y(ie,`for`,`${n}-spacing-height`),Y(oe,`id`,`${n}-spacing-height`),Y(de,`id`,`${n}-layout-title`),Y(fe,`aria-checked`,$.showLayoutGrid),Y(fe,`aria-labelledby`,`${n}-layout-title`),me=li(pe,1,`section__body svelte-s2yrtn`,null,me,{disabled:!$.showLayoutGrid}),pe.inert=!$.showLayoutGrid,Y(ve,`id`,`${n}-grids-label`),Y(be,`aria-labelledby`,`${n}-grids-label`),Te=li(M,1,`footer__button svelte-s2yrtn`,null,Te,{"footer__button--ghost":!U(p),"footer__button--danger":U(p)}),M.disabled=$.isResetting,Lr(Ee,U(p)?`Confirm Reset?`:`Reset All Settings`)}),G(`click`,te,function(...e){$.toggleSpacingGrid?.apply(this,e)}),G(`change`,oe,v),G(`keydown`,oe,e=>_(e,v)),ki(oe,()=>U(i),e=>L(i,e)),G(`click`,fe,function(...e){$.toggleLayoutGrid?.apply(this,e)}),G(`click`,M,S),G(`click`,De,function(...e){Q.enterToolbar?.apply(this,e)}),q(e,t)};J(w,e=>{$.initialized&&e(T)}),q(e,C),Ke()}yr([`click`,`change`,`keydown`]),Hi(oc,{},[],[],{mode:`open`});function sc(e){return t=>{let n=URL.createObjectURL(e);return t.src=n,()=>URL.revokeObjectURL(n)}}var cc=K(`<span class="mockup__details svelte-12ri4gy"> </span>`),lc=K(`<div class="mockup__indicator svelte-12ri4gy" title="Active mockup">Active</div>`),uc=K(`<div><button class="mockup__preview svelte-12ri4gy" type="button"><img class="mockup__image svelte-12ri4gy" draggable="false"/> <div class="mockup__meta svelte-12ri4gy"><span class="mockup__filename svelte-12ri4gy"> </span> <!></div></button> <!> <button class="mockup__delete svelte-12ri4gy" type="button" title="Delete mockup"><!></button></div>`),dc=K(`<button class="footer__button footer__button--ghost svelte-12ri4gy" type="button">Cancel</button>`),fc=K(`<div class="container svelte-12ri4gy" role="region" aria-label="Mockup Manager"><header class="studio-header svelte-12ri4gy"><div class="studio-header__title-group svelte-12ri4gy"><h3 class="studio-header__title svelte-12ri4gy">Mockup Studio</h3> <span class="studio-header__badge svelte-12ri4gy"> </span></div> <span class="studio-header__hint svelte-12ri4gy">Drop PNG, JPG, WebP, or GIF anywhere on the page</span></header> <div class="inner svelte-12ri4gy"><div class="grid svelte-12ri4gy"><label class="upload-button svelte-12ri4gy"><span class="upload-button__icon svelte-12ri4gy"><!></span> <span class="upload-button__text svelte-12ri4gy">Upload Mockups</span> <span class="upload-button__subtext svelte-12ri4gy">Click or drag files</span> <input type="file" multiple="" class="svelte-12ri4gy"/></label> <!></div></div> <footer class="footer svelte-12ri4gy"><!> <button type="button"> </button> <button class="footer__button svelte-12ri4gy" type="button">Close</button></footer></div>`),pc={hash:`svelte-12ri4gy`,code:`.container.svelte-12ri4gy{display:flex;flex-direction:column;height:100%;max-height:inherit;overflow:hidden;width:100%}.studio-header.svelte-12ri4gy{align-items:center;border-bottom:1px solid var(--pm-border-subtle);display:flex;flex-shrink:0;gap:12px;justify-content:space-between;padding:16px 24px}.studio-header__title-group.svelte-12ri4gy{align-items:center;display:flex;gap:8px}.studio-header__title.svelte-12ri4gy{color:var(--pm-text-primary);font-size:15px;font-weight:700;margin:0}.studio-header__badge.svelte-12ri4gy{background:var(--pm-accent-subtle);border-radius:var(--pm-radius-pill);color:var(--pm-accent-text);font-family:var(--pm-font-mono);font-size:11px;font-weight:600;padding:2px 8px}.studio-header__hint.svelte-12ri4gy{color:var(--pm-text-secondary);font-size:12px}@media(max-width:560px){.studio-header__hint.svelte-12ri4gy{display:none}}.inner.svelte-12ri4gy{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 24px}@media(max-width:680px){.inner.svelte-12ri4gy{padding:16px}}.footer.svelte-12ri4gy{align-items:center;background:var(--pm-surface-subtle);border-top:1px solid var(--pm-border-subtle);display:flex;flex-shrink:0;gap:8px;justify-content:flex-end;padding:12px 24px}@media(max-width:680px){.footer.svelte-12ri4gy{padding:12px 16px}}.footer__button.svelte-12ri4gy{align-items:center;background:var(--pm-button-bg);border:1px solid transparent;border-radius:var(--pm-radius-control);color:var(--pm-button-fg);display:inline-flex;font-size:13px;font-weight:600;height:32px;justify-content:center;line-height:1;min-width:96px;padding:0 16px;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}.footer__button.svelte-12ri4gy:hover:not(:disabled){background:var(--pm-button-hover-bg)}.footer__button.svelte-12ri4gy:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.footer__button.svelte-12ri4gy:disabled{background:var(--pm-button-disabled-bg);cursor:not-allowed;opacity:.55}@media(max-width:420px){.footer__button.svelte-12ri4gy{padding:0 12px}}.footer__button--ghost.svelte-12ri4gy{background:transparent;border-color:var(--pm-border-strong);color:var(--pm-text-primary)}.footer__button--ghost.svelte-12ri4gy:hover:not(:disabled){background:var(--pm-surface-hover)}.footer__button--danger.svelte-12ri4gy{background:var(--pm-danger);border-color:transparent;color:#fff}.footer__button--danger.svelte-12ri4gy:hover:not(:disabled){background:var(--pm-danger-hover)}.grid.svelte-12ri4gy{display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.upload-button.svelte-12ri4gy{align-items:center;aspect-ratio:1;background:var(--pm-surface-subtle);border:2px dashed var(--pm-border-strong);border-radius:var(--pm-radius-card);cursor:pointer;display:flex;flex-direction:column;justify-content:center;outline:none;padding:16px;text-align:center;transition:background .2s,border-color .2s}.upload-button.svelte-12ri4gy:has(:where(.svelte-12ri4gy):focus-visible),.upload-button.svelte-12ri4gy:hover{background:var(--pm-accent-subtle);border-color:var(--pm-accent)}.upload-button.svelte-12ri4gy:has(:where(.svelte-12ri4gy):focus-visible){outline:2px solid var(--pm-focus-ring);outline-offset:2px}.upload-button__icon.svelte-12ri4gy{color:var(--pm-accent-text);height:28px;margin-bottom:8px;width:28px}.upload-button__text.svelte-12ri4gy{color:var(--pm-text-primary);font-size:13px;font-weight:600;line-height:18px}.upload-button__subtext.svelte-12ri4gy{color:var(--pm-text-secondary);font-size:11px;margin-top:2px}input[type=file].svelte-12ri4gy{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.mockup.svelte-12ri4gy{aspect-ratio:1;position:relative}@media(hover:hover){.mockup.svelte-12ri4gy:hover .mockup__delete:where(.svelte-12ri4gy){opacity:1}.mockup__delete.svelte-12ri4gy{opacity:0}}.mockup.active.svelte-12ri4gy .mockup__preview:where(.svelte-12ri4gy){border-color:var(--pm-accent);box-shadow:0 0 0 2px var(--pm-accent-subtle)}.mockup__preview.svelte-12ri4gy{background:var(--pm-surface-subtle);border:2px solid var(--pm-mockup-border);border-radius:var(--pm-radius-card);display:block;height:100%;overflow:hidden;position:relative;transition:border-color .2s;width:100%}.mockup__preview.svelte-12ri4gy:focus-visible,.mockup__preview.svelte-12ri4gy:hover:not(:disabled){border-color:var(--pm-mockup-border-hover)}.mockup__preview.svelte-12ri4gy:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.mockup__image.svelte-12ri4gy{height:100%;object-fit:cover;object-position:top center;width:100%}.mockup__meta.svelte-12ri4gy{background:linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,.42) 65%,transparent);bottom:0;display:flex;flex-direction:column;gap:1px;left:0;padding:16px 10px 8px;position:absolute;right:0;text-align:left}.mockup__filename.svelte-12ri4gy{color:#fff;font-size:11px;font-weight:600;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mockup__details.svelte-12ri4gy{color:hsla(0,0%,100%,.8);font-family:var(--pm-font-mono);font-size:10px;line-height:13px}.mockup__indicator.svelte-12ri4gy{background:var(--pm-accent);border-radius:var(--pm-radius-pill);box-shadow:0 2px 6px rgba(0,0,0,.2);color:var(--pm-accent-fg);font-size:10px;font-weight:700;left:8px;letter-spacing:.04em;line-height:14px;padding:2px 7px;pointer-events:none;position:absolute;text-transform:uppercase;top:8px}.mockup__delete.svelte-12ri4gy{align-items:center;backdrop-filter:blur(4px);background:rgba(24,24,27,.72);border-radius:var(--pm-radius-control);color:#fff;display:flex;height:28px;justify-content:center;padding:4px;position:absolute;right:8px;top:8px;transition:background .2s,opacity .2s;width:28px;z-index:1}.mockup__delete.svelte-12ri4gy:focus-visible,.mockup__delete.svelte-12ri4gy:hover{background:var(--pm-danger);opacity:1}.mockup__delete.svelte-12ri4gy:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}@media(max-width:680px){.grid.svelte-12ri4gy{grid-template-columns:repeat(3,1fr)}}@media(max-width:480px){.grid.svelte-12ri4gy{grid-template-columns:repeat(2,1fr)}}`};function mc(e,t){Ge(t,!0),ni(e,pc);let n=I(!1);function r(e){return!e||e<=0?``:e<1024?`${e} B`:e<1048576?`${Math.round(e/1024)} KB`:`${(e/1048576).toFixed(1)} MB`}function i(e){let t=[];e.width&&e.height&&t.push(`${e.width}\u00D7${e.height}`);let n=r(e.fileSize);return n&&t.push(n),t.join(` \u00B7 `)}function a(e){let t=e.target;t.files&&X.upload(Array.from(t.files)),t.value=``}function o(e,t){e.stopPropagation(),X.mockups.length<=1&&L(n,!1),X.delete(t)}function s(e){X.select(e),Q.enterToolbar()}function c(){U(n)?(L(n,!1),X.clear()):L(n,!0)}var l=kr(),u=on(l),d=e=>{var t=fc(),r=R(t),l=R(r),u=sn(z(R(l),2),!0);j(l),Se(2),j(r);var d=z(r,2),f=R(d),p=R(f),m=R(p);Gs(R(m),{name:`upload`,size:28}),j(m);var h=z(m,6);j(p),Xr(z(p,2),17,()=>X.mockups,e=>e.id,(e,t)=>{let n=P(()=>X.activeMockupId===U(t).id),r=P(()=>i(U(t)));var a=uc();let c;var l=R(a),u=R(l);ri(u,()=>sc(U(t).thumbnail));var d=z(u,2),f=R(d),p=sn(f,!0),m=z(f,2),h=e=>{var t=cc(),n=sn(t,!0);B(()=>Lr(n,U(r))),q(e,t)};J(m,e=>{U(r)&&e(h)}),j(d),j(l);var g=z(l,2),_=e=>{q(e,lc())};J(g,e=>{U(n)&&e(_)});var v=z(g,2);Gs(R(v),{name:`delete`,size:16}),j(v),j(a),B(()=>{c=li(a,1,`mockup svelte-12ri4gy`,null,c,{active:U(n)}),l.disabled=U(n),Y(u,`alt`,U(t).filename),Y(f,`title`,U(t).filename),Lr(p,U(t).filename)}),G(`click`,l,()=>s(U(t).id)),G(`click`,v,e=>o(e,U(t).id)),q(e,a)}),j(f),j(d);var g=z(d,2),_=R(g),v=e=>{var t=dc();G(`click`,t,()=>L(n,!1)),q(e,t)};J(_,e=>{U(n)&&X.mockups.length>0&&e(v)});var y=z(_,2);let b;var x=sn(y,!0),S=z(y,2);j(g),j(t),B(e=>{Lr(u,X.mockups.length),Y(h,`accept`,e),b=li(y,1,`footer__button svelte-12ri4gy`,null,b,{"footer__button--ghost":!(U(n)&&X.mockups.length>0),"footer__button--danger":U(n)&&X.mockups.length>0}),y.disabled=X.mockups.length===0,Lr(x,U(n)&&X.mockups.length>0?`Confirm Clear?`:`Clear Mockups`)},[()=>ta.join(`,`)]),G(`change`,h,a),G(`click`,y,c),G(`click`,S,function(...e){Q.enterToolbar?.apply(this,e)}),q(e,t)};J(u,e=>{X.initialized&&e(d)}),q(e,l),Ke()}yr([`change`,`click`]),Hi(mc,{},[],[],{mode:`open`});var hc=K(`<button type="button"> </button>`),gc=K(`<div class="dock__popover dock__popover--opacity svelte-19cxvb5"><div class="popover-section svelte-19cxvb5"><div class="popover-section__header svelte-19cxvb5"><span class="popover-section__label svelte-19cxvb5">Opacity</span> <button type="button" class="popover-section__reset svelte-19cxvb5" title="Reset opacity to 50%"> </button></div> <input type="range" class="opacity-slider svelte-19cxvb5" aria-label="Mockup opacity" step="5"/> <div class="chip-row svelte-19cxvb5"></div></div></div>`),_c=K(`<button type="button"><span class="svelte-19cxvb5"></span></button>`),vc=K(`<div class="dock__popover dock__popover--placement svelte-19cxvb5"><div class="alignment-matrix svelte-19cxvb5" role="group" aria-label="2x3 alignment matrix"></div></div>`),yc=K(`<div class="manager-wrapper dock__panel dock__panel--mockups svelte-19cxvb5"><!></div>`),bc=K(`<div class="manager-wrapper dock__panel dock__panel--grids svelte-19cxvb5"><!></div>`),xc=K(`<div class="dock__coordinates svelte-19cxvb5"> </div>`),Sc=K(`<div><span class="inspect-hud__badge svelte-19cxvb5"> </span> <span class="inspect-hud__coords svelte-19cxvb5"> </span></div>`),Cc=K(`<div><div class="toolbar svelte-19cxvb5" role="toolbar" aria-label="Pixel Mirror controls"><button class="icon-button svelte-19cxvb5"><!></button> <button aria-label="Lock mockup position"><!></button> <span class="toolbar__divider svelte-19cxvb5" aria-hidden="true"></span> <button title="Opacity (tap or Enter to adjust, touch-slide to change, click to reset, hover or Ctrl+Scroll)"><!></button> <span class="toolbar__divider svelte-19cxvb5" aria-hidden="true"></span> <button aria-label="Alignment" title="Alignment (click for top center)"><!></button> <button class="icon-button scale-button svelte-19cxvb5" title="Scale (1\u00D7 \u2194 \u00BD\u00D7)"><span class="scale-button__value svelte-19cxvb5"> </span></button> <span class="toolbar__divider svelte-19cxvb5" aria-hidden="true"></span> <button title="Mockup Studio"><!></button> <button title="Grid Studio"><!></button> <span class="toolbar__divider svelte-19cxvb5" aria-hidden="true"></span> <button class="icon-button svelte-19cxvb5" title="Toggle theme"><!></button> <button class="icon-button svelte-19cxvb5"><!></button></div> <!> <!> <!> <!></div> <!>`,1),wc={hash:`svelte-19cxvb5`,code:`.dock.svelte-19cxvb5{align-items:center;backdrop-filter:var(--pm-backdrop-blur);background:var(--pm-surface-primary);border:1px solid var(--pm-border-strong);border-radius:var(--pm-radius-pill);bottom:24px;box-shadow:var(--pm-shadow-hud);color:var(--pm-text-primary);display:flex;font-family:var(--pm-font-sans);justify-content:center;left:12px;margin-left:auto;margin-right:auto;max-width:calc(100vw - 24px);position:fixed;right:12px;transform:translateZ(0);width:max-content;z-index:2147483647}.dock[hidden].svelte-19cxvb5{display:none!important}.dock.svelte-19cxvb5,.dock.svelte-19cxvb5 :where(.svelte-19cxvb5){touch-action:pan-x pan-y;user-select:none}.dock.at-top.svelte-19cxvb5{bottom:auto;top:24px}.dock.is-dragging.svelte-19cxvb5,.dock__coordinates.svelte-19cxvb5,.inspect-hud.svelte-19cxvb5{pointer-events:none}.dock__coordinates.svelte-19cxvb5{backdrop-filter:var(--pm-backdrop-blur);background:var(--pm-surface-primary);border:1px solid var(--pm-border-subtle);border-radius:var(--pm-radius-pill);bottom:calc(100% + 8px);box-shadow:var(--pm-shadow-hud);color:var(--pm-text-secondary);font-family:var(--pm-font-mono);font-size:11px;font-variant-numeric:tabular-nums;font-weight:500;left:0;line-height:16px;margin:auto;padding:3px 10px;position:absolute;right:0;white-space:nowrap;width:max-content;z-index:1}.dock.at-top.svelte-19cxvb5 .dock__coordinates:where(.svelte-19cxvb5){bottom:auto;top:calc(100% + 8px)}.dock__popover.svelte-19cxvb5{animation:svelte-19cxvb5-c .16s cubic-bezier(.4,0,.2,1);background:var(--pm-surface-elevated);border:1px solid var(--pm-border-strong);border-radius:var(--pm-radius-card);bottom:calc(100% + 10px);box-shadow:var(--pm-shadow-panel);display:flex;flex-direction:column;gap:8px;left:50%;padding:12px;position:absolute;transform:translateX(-50%);width:max-content;z-index:3}.dock__popover--opacity.svelte-19cxvb5{--opacity-popover-width:min(232px, 100%);left:clamp(var(--opacity-popover-width) / 2,var(--popover-anchor,50%),100% - var(--opacity-popover-width) / 2);min-width:0;width:var(--opacity-popover-width)}.dock__popover--placement.svelte-19cxvb5{padding:8px}.dock__popover.svelte-19cxvb5:after{bottom:-18px;content:"";height:18px;left:0;position:absolute;right:0}.dock.at-top.svelte-19cxvb5 .dock__popover:where(.svelte-19cxvb5){bottom:auto;top:calc(100% + 10px)}.dock.at-top.svelte-19cxvb5 .dock__popover:where(.svelte-19cxvb5):after{bottom:auto;top:-18px}.dock__panel.svelte-19cxvb5{animation:svelte-19cxvb5-c .18s cubic-bezier(.4,0,.2,1);background:var(--pm-surface-elevated);border:1px solid var(--pm-border-strong);border-radius:var(--pm-radius-panel);bottom:calc(100% + 12px);box-shadow:var(--pm-shadow-panel);left:50%;max-height:calc(min(68vh,560px));max-width:calc(100vw - 24px);overflow:hidden;position:absolute;transform:translateX(-50%);z-index:4}.dock__panel--mockups.svelte-19cxvb5{width:calc(min(820px,100vw - 24px))}.dock__panel--grids.svelte-19cxvb5{width:calc(min(648px,100vw - 24px))}.dock.at-top.svelte-19cxvb5 .dock__panel:where(.svelte-19cxvb5){bottom:auto;top:calc(100% + 12px)}.toolbar.svelte-19cxvb5{align-items:center;display:flex;flex-shrink:0;gap:2px;max-width:100%;overflow-x:auto;padding:4px;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none}.toolbar.svelte-19cxvb5::-webkit-scrollbar{display:none}.toolbar__divider.svelte-19cxvb5{background:var(--pm-border-strong);flex:none;height:20px;margin:0 4px;width:1px}@media(max-width:420px){.toolbar.svelte-19cxvb5{gap:0}.toolbar__divider.svelte-19cxvb5{display:none}}.icon-button.svelte-19cxvb5{border-radius:var(--pm-radius-pill);color:var(--pm-text-secondary);display:inline-grid;flex:none;height:36px;place-items:center;transition:background .2s,color .2s;width:36px}@media(hover:hover){.icon-button.svelte-19cxvb5:hover:not(:disabled){background:var(--pm-surface-hover);color:var(--pm-text-primary)}}.icon-button.svelte-19cxvb5:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.icon-button.active.svelte-19cxvb5,.icon-button.active.svelte-19cxvb5:hover:not(:disabled),.opacity-button.sliding.svelte-19cxvb5{background:var(--pm-accent-subtle);color:var(--pm-accent-text)}.icon-button.svelte-19cxvb5:disabled{cursor:not-allowed;opacity:.35}.scale-button__value.svelte-19cxvb5{font-size:13px;font-variant-numeric:tabular-nums;font-weight:600;line-height:20px}.popover-section.svelte-19cxvb5{display:flex;flex-direction:column;gap:10px}.popover-section__header.svelte-19cxvb5{align-items:center;display:flex;justify-content:space-between}.popover-section__label.svelte-19cxvb5{color:var(--pm-text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.popover-section__reset.svelte-19cxvb5{border-radius:6px;color:var(--pm-accent-text);font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;padding:2px 6px;transition:background .2s}.popover-section__reset.svelte-19cxvb5:hover{background:var(--pm-accent-subtle)}.popover-section__reset.svelte-19cxvb5:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.opacity-slider.svelte-19cxvb5{accent-color:var(--pm-accent);cursor:pointer;margin:0;width:100%}.opacity-slider.svelte-19cxvb5:focus-visible{border-radius:var(--pm-radius-pill);outline:2px solid var(--pm-focus-ring);outline-offset:2px}.chip-row.svelte-19cxvb5{display:grid;gap:4px;grid-template-columns:repeat(4,minmax(0,1fr))}.chip.svelte-19cxvb5{border:1px solid var(--pm-border-strong);border-radius:6px;color:var(--pm-text-secondary);font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;height:28px;transition:background .2s,color .2s,border-color .2s}.chip.svelte-19cxvb5:hover{background:var(--pm-surface-hover);color:var(--pm-text-primary)}.chip.svelte-19cxvb5:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.chip.active.svelte-19cxvb5{background:var(--pm-accent-subtle);border-color:transparent;color:var(--pm-accent-text)}.alignment-matrix.svelte-19cxvb5{display:grid;gap:4px;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,28px)}.alignment-matrix__dot.svelte-19cxvb5{background:var(--pm-surface-subtle);border-radius:6px;display:grid;height:100%;place-items:center;transition:background .2s;width:100%}.alignment-matrix__dot.svelte-19cxvb5 span:where(.svelte-19cxvb5){background:var(--pm-text-muted);border-radius:50%;height:6px;transition:transform .2s,background .2s;width:6px}.alignment-matrix__dot.svelte-19cxvb5:hover{background:var(--pm-surface-active)}.alignment-matrix__dot.svelte-19cxvb5:hover span:where(.svelte-19cxvb5){background:var(--pm-text-primary);transform:scale(1.3)}.alignment-matrix__dot.svelte-19cxvb5:focus-visible{outline:2px solid var(--pm-focus-ring);outline-offset:2px}.alignment-matrix__dot.active.svelte-19cxvb5{background:var(--pm-accent-subtle)}.alignment-matrix__dot.active.svelte-19cxvb5 span:where(.svelte-19cxvb5){background:var(--pm-accent);transform:scale(1.5)}.inspect-hud.svelte-19cxvb5{align-items:center;backdrop-filter:var(--pm-backdrop-blur);background:var(--pm-surface-primary);border:1px solid var(--pm-border-strong);border-radius:var(--pm-radius-pill);bottom:24px;box-shadow:var(--pm-shadow-hud);color:var(--pm-text-primary);display:flex;font-family:var(--pm-font-sans);font-size:12px;gap:10px;height:40px;left:0;margin:auto;padding:0 14px 0 6px;position:fixed;right:0;width:max-content;z-index:2147483647}.inspect-hud.at-top.svelte-19cxvb5{bottom:auto;top:24px}.inspect-hud__badge.svelte-19cxvb5{background:var(--pm-accent);border-radius:var(--pm-radius-pill);color:var(--pm-accent-fg);font-weight:600;line-height:16px;padding:4px 10px}.inspect-hud__coords.svelte-19cxvb5{color:var(--pm-text-secondary);font-family:var(--pm-font-mono);font-size:11px;font-variant-numeric:tabular-nums}@keyframes svelte-19cxvb5-c{0%{opacity:0;transform:translateX(-50%) translateY(4px) scale(.98)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}`};function Tc(e,t){Ge(t,!0),ni(e,wc);let n=[`top`,`bottom`],r=[`left`,`center`,`right`],i=[.25,.5,.75,Gi],a=I(null),o=I(null),s=null,c,l,u,d=I(!1),f=null,p=``,m=!1,h=P(()=>Math.round(Z.opacity*100)),g=P(()=>Z.scale===.5?`\u00BD\u00D7`:`${Z.scale}\u00D7`),_=P(()=>Q.position===`top`?`bottom`:`top`),v=P(()=>!Z.activeMockupId),y=P(()=>Z.isHidden),b=P(()=>Z.isLocked),x=P(()=>Z.isDragging),S=P(()=>U(v)||U(y)),C=P(()=>Q.mode===`mockups`),w=P(()=>Q.mode===`grids`),T=P(()=>U(C)||U(w)),E=P(()=>U(a)===`opacity`&&!U(S)&&!U(T)),ee=P(()=>U(a)===`alignment`&&!U(S)&&!U(b)&&!U(T)),te=P(()=>Q.mode===`toolbar`&&!U(ee)&&!U(E)&&!U(S));function D(){s!==null&&(clearTimeout(s),s=null)}function ne(e){let t=e===`opacity`?l:u;if(!t||!c){L(o,null);return}let n=c.getBoundingClientRect(),r=t.getBoundingClientRect();n.width>0&&r.width>0?L(o,r.left-n.left+r.width/2):t.offsetWidth>0?L(o,t.offsetLeft+t.offsetWidth/2):L(o,null)}function re(e){D(),ne(e),L(a,e,!0)}function ie(){D(),L(a,null)}function ae(){return!!c.getRootNode().activeElement?.closest(`.dock__popover`)}function oe(e,t){if(Fs()||U(a)!==e)return;let n=e===`opacity`?`.opacity-button`:`.alignment-trigger-btn`,r=e===`opacity`?`.dock__popover--opacity`:`.dock__popover--placement`,i=t.relatedTarget;ae()||i?.closest(r)||i?.closest(n)?D():i&&c?.contains(i)?(D(),s=setTimeout(()=>{s=null,U(a)===e&&!ae()&&L(a,null)},140)):ie()}function se(){Fs()||U(x)||U(T)||ae()||re(`alignment`)}function ce(e){oe(`alignment`,e)}async function le(e){if(e.detail===0){re(`alignment`),await ur();let e=c.querySelectorAll(`.alignment-matrix__dot`);(Array.from(e).find(e=>e.classList.contains(`active`))??e[0])?.focus()}else Fs()&&U(a)!==`alignment`?re(`alignment`):Z.setAlignment(`top`,`center`)}function ue(){Fs()||U(x)||U(T)||ae()||re(`opacity`)}function de(e){oe(`opacity`,e)}function fe(e){f||(p=e.pointerType,m=!1,e.pointerType===`touch`&&(D(),f={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,startValue:Z.opacity},e.currentTarget.setPointerCapture?.(e.pointerId)))}function pe(e){if(!f||e.pointerId!==f.pointerId)return;let t=e.clientX-f.startX,n=e.clientY-f.startY;!U(d)&&Math.abs(t)<=5&&Math.abs(n)<=5||(L(d,!0),m=!0,Z.setOpacity(f.startValue+t/200))}function me(e){if(!f)return;let{pointerId:t}=f;f=null,L(d,!1),e&&(m=!0,l.hasPointerCapture?.(t)&&l.releasePointerCapture(t))}function he(e){f&&e.pointerId===f.pointerId&&(e.type===`pointerup`&&pe(e),me(e.type!==`pointerup`))}async function ge(e){U(T)||(e.detail===0?(re(`opacity`),await ur(),c.querySelector(`.opacity-slider`)?.focus()):p===`touch`?!f&&!m&&re(`opacity`):Z.resetOpacity())}function _e(){U(w)||(ie(),Q.mode===`mockups`?Q.enterToolbar():Q.enterMockups())}function ve(){U(C)||(ie(),Q.mode===`grids`?Q.enterToolbar():Q.enterGrids())}yn(()=>{(U(S)||U(T)||Z.isSolidOrZoomed)&&me(!0),(U(S)||U(T)||U(a)===`alignment`&&U(b))&&ie()}),yn(()=>{if(!U(ee)&&!U(E))return;let e=[W(window,`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=c.getRootNode().activeElement;if(!(t&&c.contains(t))&&Ds(e))return;e.preventDefault();let n=U(a)===`opacity`?l:u;ie(),t?.closest(`.dock__popover`)&&n.focus()},{capture:!0}),W(window,`pointerdown`,e=>{e.composedPath().includes(c)||ie()})];return()=>e.forEach(e=>e())}),yn(()=>{if(!Q.isManagerMode)return;let e=e=>{e.composedPath().includes(c)||Q.enterToolbar()},t=null,n=setTimeout(()=>{t=W(window,`click`,e)},0);return()=>{clearTimeout(n),t?.()}}),yn(()=>()=>D());var ye=Cc(),O=on(ye);let be;var k=R(O),A=R(k),xe=R(A);{let e=P(()=>U(y)?`hide`:`show`);Gs(xe,{get name(){return U(e)}})}j(A);var Se=z(A,2);let Ce;var we=R(Se);{let e=P(()=>U(b)?`lock`:`unlock`);Gs(we,{get name(){return U(e)}})}j(Se);var M=z(Se,4);let Te;di(M,``,{},{"touch-action":`none`}),Js(R(M),{get level(){return Z.opacity}}),j(M),Ni(M,e=>l=e,()=>l);var Ee=z(M,4);let De;Vs(R(Ee),{get x(){return Z.alignmentX},get y(){return Z.alignmentY}}),j(Ee),Ni(Ee,e=>u=e,()=>u);var Oe=z(Ee,2),ke=sn(R(Oe),!0);j(Oe);var Ae=z(Oe,4);let je;Gs(R(Ae),{name:`mockups`}),j(Ae);var Me=z(Ae,2);let Ne;Gs(R(Me),{name:`grids`}),j(Me);var Pe=z(Me,4),Fe=R(Pe);{let e=P(()=>Q.theme===`dark`?`sun`:`moon`);Gs(Fe,{get name(){return U(e)}})}j(Pe);var Ie=z(Pe,2),Le=R(Ie);{let e=P(()=>U(_)===`top`?`dockTop`:`dockBottom`);Gs(Le,{get name(){return U(e)}})}j(Ie),j(k);var Re=z(k,2),ze=e=>{var t=gc();let n;var r=R(t),a=R(r),s=z(R(a),2),c=sn(s);j(a);var l=z(a,2);Ci(l);var u=z(l,2);Xr(u,20,()=>i,e=>e,(e,t)=>{var n=hc();let r;var i=sn(n);B((e,t)=>{r=li(n,1,`chip svelte-19cxvb5`,null,r,{active:e}),Lr(i,`${t??``}%`)},[()=>Math.abs(Z.opacity-t)<.03,()=>Math.round(t*100)]),G(`click`,n,()=>Z.setOpacity(t)),q(e,n)}),j(u),j(r),j(t),B(()=>{n=di(t,``,n,{"--popover-anchor":U(o)===null?void 0:`${U(o)}px`}),Lr(c,`${U(h)??``}% \u00B7 Reset`),Y(l,`min`,Wi*100),Y(l,`max`,Gi*100),wi(l,U(h))}),vr(`mouseenter`,t,D),vr(`mouseleave`,t,de),G(`click`,s,()=>Z.resetOpacity()),G(`input`,l,e=>Z.setOpacity(Number(e.currentTarget.value)/100)),q(e,t)};J(Re,e=>{U(E)&&e(ze)});var Be=z(Re,2),Ve=e=>{var t=vc();let i;var a=R(t);Xr(a,20,()=>n,e=>e,(e,t)=>{var n=kr();Xr(on(n),17,()=>r,e=>`${t}-${e}`,(e,n)=>{var r=_c();let i;B(()=>{i=li(r,1,`alignment-matrix__dot svelte-19cxvb5`,null,i,{active:Z.alignmentY===t&&Z.alignmentX===U(n)}),Y(r,`title`,`Snap ${t??``} ${U(n)??``}`),Y(r,`aria-label`,`Snap ${t??``} ${U(n)??``}`)}),G(`click`,r,()=>Z.setAlignment(t,U(n))),q(e,r)}),q(e,n)}),j(a),j(t),B(()=>i=di(t,``,i,{left:U(o)===null?void 0:`${U(o)}px`})),vr(`mouseenter`,t,D),vr(`mouseleave`,t,ce),q(e,t)};J(Be,e=>{U(ee)&&e(Ve)});var He=z(Be,2),Ue=e=>{var t=yc();mc(R(t),{}),j(t),q(e,t)},We=e=>{var t=bc();oc(R(t),{}),j(t),q(e,t)};J(He,e=>{Q.mode===`mockups`?e(Ue):Q.mode===`grids`&&e(We,1)});var qe=z(He,2),Je=e=>{var t=xc(),n=sn(t,!0);B(()=>Lr(n,Z.positionDisplay)),q(e,t)};J(qe,e=>{U(te)&&e(Je)}),j(O),Ni(O,e=>c=e,()=>c);var Ye=z(O,2),Xe=e=>{var t=Sc();let n;var r=R(t),i=sn(r,!0),a=sn(z(r,2),!0);j(t),B(()=>{n=li(t,1,`inspect-hud svelte-19cxvb5`,null,n,{"at-top":Q.position===`top`}),Lr(i,Z.mode===`zoomed`?`200% Zoom`:`100% Solid`),Lr(a,Z.positionDisplay)}),q(e,t)};J(Ye,e=>{Q.initialized&&Z.isSolidOrZoomed&&e(Xe)}),B(()=>{be=li(O,1,`dock svelte-19cxvb5`,null,be,{"at-top":Q.position===`top`,"is-dragging":U(x)}),Y(O,`hidden`,!Q.initialized||Z.isSolidOrZoomed),A.disabled=U(v)||U(T),Y(A,`title`,U(y)?`Show mockup`:`Hide mockup`),Ce=li(Se,1,`icon-button svelte-19cxvb5`,null,Ce,{active:U(b)&&!U(S)}),Se.disabled=U(S)||U(T),Y(Se,`aria-pressed`,U(b)),Y(Se,`title`,U(b)?`Unlock mockup position (Click-through active)`:`Lock mockup position (Enable click-through)`),Te=li(M,1,`icon-button opacity-button svelte-19cxvb5`,null,Te,{sliding:U(d),active:U(E)}),M.disabled=U(S)||U(T),Y(M,`aria-expanded`,U(E)),Y(M,`aria-label`,`Opacity ${U(h)??``}%`),De=li(Ee,1,`icon-button alignment-trigger-btn svelte-19cxvb5`,null,De,{active:U(ee)}),Ee.disabled=U(S)||U(b)||U(T),Y(Ee,`aria-expanded`,U(ee)),Oe.disabled=U(S)||U(b)||U(T),Y(Oe,`aria-label`,`Scale ${Z.scale??``}x`),Lr(ke,U(g)),je=li(Ae,1,`icon-button svelte-19cxvb5`,null,je,{active:U(C)}),Y(Ae,`aria-pressed`,U(C)),Ae.disabled=U(w),Ne=li(Me,1,`icon-button svelte-19cxvb5`,null,Ne,{active:U(w)}),Y(Me,`aria-pressed`,U(w)),Me.disabled=U(C),Y(Ie,`title`,`Move toolbar to the ${U(_)??``}`)}),G(`click`,A,function(...e){Z.toggleVisibility?.apply(this,e)}),G(`click`,Se,()=>Z.toggleLock()),G(`click`,M,ge),G(`pointerdown`,M,fe),G(`pointermove`,M,pe),G(`pointerup`,M,he),vr(`pointercancel`,M,he),vr(`lostpointercapture`,M,he),vr(`mouseenter`,M,ue),vr(`mouseleave`,M,de),G(`click`,Ee,le),vr(`mouseenter`,Ee,se),vr(`mouseleave`,Ee,ce),G(`click`,Oe,function(...e){Z.cycleScale?.apply(this,e)}),G(`click`,Ae,_e),G(`click`,Me,ve),G(`click`,Pe,function(...e){Q.toggleTheme?.apply(this,e)}),G(`click`,Ie,function(...e){Q.togglePosition?.apply(this,e)}),q(e,ye),Ke()}yr([`click`,`pointerdown`,`pointermove`,`pointerup`,`input`]),Hi(Tc,{},[],[],{mode:`open`});var Ec=K(`<div class="drop-zone svelte-1b5cnjl" role="region" aria-label="Drop zone for mockup upload"><div class="drop-zone__card svelte-1b5cnjl"><div class="drop-zone__icon svelte-1b5cnjl"><!></div> <p class="drop-zone__text svelte-1b5cnjl">Drop image to set as mockup</p> <span class="drop-zone__subtext svelte-1b5cnjl">PNG, JPG, WebP, or GIF up to 10 MB</span></div></div>`),Dc={hash:`svelte-1b5cnjl`,code:`.drop-zone.svelte-1b5cnjl{animation:svelte-1b5cnjl-a .2s cubic-bezier(.4,0,.2,1);background:rgba(0,0,0,.32);inset:0;justify-content:center;pointer-events:none;position:fixed;z-index:2147483647}.drop-zone.svelte-1b5cnjl,.drop-zone__card.svelte-1b5cnjl{align-items:center;display:flex}.drop-zone__card.svelte-1b5cnjl{animation:svelte-1b5cnjl-b .2s cubic-bezier(.4,0,.2,1);background:var(--pm-surface-elevated);border:2px dashed var(--pm-accent);border-radius:var(--pm-radius-panel);box-shadow:var(--pm-shadow-panel);flex-direction:column;padding:32px 48px}.drop-zone__icon.svelte-1b5cnjl{color:var(--pm-accent-text);margin-bottom:12px}.drop-zone__text.svelte-1b5cnjl{color:var(--pm-text-primary);font-family:var(--pm-font-sans);font-size:15px;font-weight:600;margin:0}.drop-zone__subtext.svelte-1b5cnjl{color:var(--pm-text-secondary);font-family:var(--pm-font-sans);font-size:12px;margin-top:4px}@keyframes svelte-1b5cnjl-a{0%{opacity:0}to{opacity:1}}@keyframes svelte-1b5cnjl-b{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}`};function Oc(e,t){Ge(t,!0),ni(e,Dc);let n=Ii(t,`visible`,7);var r={get visible(){return n()},set visible(e){n(e),At()}},i=kr(),a=on(i),o=e=>{var t=Ec(),n=R(t),r=R(n);Gs(R(r),{name:`upload`,size:40}),j(r),Se(4),j(n),j(t),q(e,t)};return J(a,e=>{n()&&e(o)}),q(e,i),Ke(r)}Hi(Oc,{visible:{}},[],[],{mode:`open`});var kc=K(`<div class="spacing-grid svelte-hxwjdk"></div>`),Ac=K(`<div class="layout-grid__column svelte-hxwjdk"></div>`),jc=K(`<div><div class="layout-grid__inner svelte-hxwjdk"></div></div>`),Mc=K(`<!> <!>`,1),Nc={hash:`svelte-hxwjdk`,code:`.spacing-grid.svelte-hxwjdk{z-index:2147483646}.layout-grid.svelte-hxwjdk,.spacing-grid.svelte-hxwjdk{inset:0;pointer-events:none;position:fixed}.layout-grid.svelte-hxwjdk{display:flex;overflow:hidden;overflow:clip;z-index:2147483645}.layout-grid--center.svelte-hxwjdk{justify-content:center}.layout-grid--left.svelte-hxwjdk{justify-content:flex-start}.layout-grid--right.svelte-hxwjdk{justify-content:flex-end}.layout-grid__inner.svelte-hxwjdk{display:flex;flex-shrink:0;height:100%}.layout-grid__column.svelte-hxwjdk{flex:1;height:100%}`};function Pc(e,t){Ge(t,!0),ni(e,Nc);let n=P(()=>!Z.isSolidOrZoomed),r=I(0);yn(()=>{if(!$.showSpacingGrid||!U(n))return;let e=()=>{L(r,window.scrollY,!0)};return e(),W(window,`scroll`,e,{passive:!0})});function i(e,t){return e.replace(/[\d.]+/,e=>String(+e*t))}function a(e){return e.gutterWidth.endsWith(`%`)?i(e.width,.5/(1+100/parseFloat(e.gutterWidth))):i(e.gutterWidth,.5)}var o=Mc(),s=on(o),c=e=>{var t=kc();let n;B(e=>n=di(t,``,n,{"background-position-y":`${-U(r)}px`,"background-image":`linear-gradient(to bottom, ${$.spacingGridColor??``}
|
|
4
|
+
${$.spacingGridHeight??``}, transparent ${$.spacingGridHeight??``})`,"background-size":e}),[()=>`100% ${i($.spacingGridHeight,2)??``}`]),q(e,t)};J(s,e=>{$.showSpacingGrid&&U(n)&&e(c)});var l=z(s,2),u=e=>{let t=P(()=>$.activeLayoutGrid);var n=jc(),r=R(n);let i;Xr(r,21,()=>({length:U(t).columns}),Kr,(e,t)=>{var n=Ac();let r;B(()=>r=di(n,``,r,{background:$.layoutGridColor})),q(e,n)}),j(r),j(n),B((e,a)=>{li(n,1,`layout-grid layout-grid--${U(t).position??``}`,`svelte-hxwjdk`),i=di(r,``,i,{width:U(t).width,"padding-left":e,"padding-right":a,gap:U(t).gutterWidth})},[()=>U(t).isGutterOnOutside?a(U(t)):void 0,()=>U(t).isGutterOnOutside?a(U(t)):void 0]),q(e,n)};J(l,e=>{$.showLayoutGrid&&$.activeLayoutGrid&&U(n)&&e(u)}),q(e,o),Ke()}Hi(Pc,{},[],[],{mode:`open`});var Fc=e=>({x:e.clientX,y:e.clientY}),Ic=(e,t)=>Math.abs(t.x-e.x)>5||Math.abs(t.y-e.y)>5;function Lc(e,t){return n=>{let r=new Map,i=null,a=0,o=!1,s=null;function c(){r.clear(),i=null,a=0,o=!1,s=null,e.mode===`dragging`&&e.endDrag()}function l(c){if(t()&&e.mode!==`locked`){if(c.pointerType!==`touch`){if(c.button!==0)return;switch(e.mode){case`visible`:s=c.pointerId,n.setPointerCapture?.(c.pointerId),e.beginDrag(Fc(c));break;case`solid`:e.enterZoomMode(Fc(c));break;case`zoomed`:e.exitZoomMode()}}else if(r.set(c.pointerId,Fc(c)),r.size===1)i=Fc(c),o=!1,e.mode===`solid`&&e.beginPan(Fc(c));else if(r.size===2&&e.mode===`solid`){let[t,n]=r.values();o=!0,a=oa(t,n),e.beginPinch(sa(t,n))}}}function u(t){if(t.pointerId===s){e.dragTo(Fc(t));return}if(!r.has(t.pointerId))return;if(r.set(t.pointerId,Fc(t)),r.size>=2){if(a>0&&e.mode===`solid`){let[t,n]=r.values();e.pinchTo(oa(t,n)/a)}return}let n=Fc(t);switch(e.mode){case`visible`:i&&Ic(i,n)&&(i=null,e.beginDrag(n));break;case`dragging`:e.dragTo(n);break;case`solid`:o||e.panTo(n)}}function d(t){t.pointerId===s?(s=null,n.releasePointerCapture?.(t.pointerId),e.endDrag()):r.delete(t.pointerId)&&(r.size<2&&(a=0),r.size===0&&c())}function f(t){t.pointerType!==`touch`&&e.mode===`zoomed`&&e.zoomPanTo(Fc(t))}let p=[W(n,`pointerdown`,l),W(n,`pointermove`,u),W(n,`pointerup`,d),W(n,`pointercancel`,c),W(window,`pointermove`,f),W(n,`gesturestart`,t=>e.mode!==`locked`&&t.preventDefault(),{passive:!1}),W(document,`visibilitychange`,()=>document.hidden&&c())];return()=>{p.forEach(e=>e()),c()}}}var Rc=K(`<div class="mockup-viewport svelte-ya3gmp"><div class="mockup-document svelte-ya3gmp"><img draggable="false" class="mockup-overlay svelte-ya3gmp" alt="Mockup Overlay"/></div></div>`),zc={hash:`svelte-ya3gmp`,code:`.mockup-viewport.svelte-ya3gmp{inset:0;position:fixed;z-index:2147483644}.mockup-document.svelte-ya3gmp,.mockup-viewport.svelte-ya3gmp{overflow:hidden;overflow:clip;pointer-events:none}.mockup-document.svelte-ya3gmp,.mockup-overlay.svelte-ya3gmp{left:0;position:absolute;top:0}.mockup-overlay.svelte-ya3gmp{backface-visibility:hidden;max-width:none;transform-origin:top left;-webkit-user-select:none;user-select:none;will-change:transform;-webkit-touch-callout:none}`};function Bc(e,t){Ge(t,!0),ni(e,zc);let n=I(Jt({x:window.scrollX,y:window.scrollY}));Gr(()=>{let e=is(e=>Z.setPageSize(e)),t=()=>{L(n,{x:window.scrollX,y:window.scrollY},!0)};t();let r=W(window,`scroll`,t,{passive:!0});return()=>{e(),r()}});let r=P(()=>Q.mode===`toolbar`),i={dragging:`grabbing`,solid:`zoom-in`,zoomed:`zoom-out`,visible:`grab`,locked:`default`},a=P(()=>U(r)?i[Z.mode]:`default`),o=P(()=>U(r)&&Z.mode!==`locked`?`auto`:`none`),s=P(()=>`translate3d(${Z.position.x}px, ${Z.position.y}px, 0) scale(${Z.scale})`),c=P(()=>Z.mode===`locked`?`pan-x pan-y`:`none`),l=P(()=>Z.isDragging||Z.isZoomPanning||Z.mode===`solid`?`none`:`transform 0.2s ease-out`);var u=kr(),d=on(u),f=e=>{var t=Rc(),i=R(t);let u;var d=R(i);let f;ri(d,()=>Lc(Z,()=>U(r))),j(i),j(t),B(()=>{u=di(i,``,u,{width:`${Z.pageSize.width}px`,height:`${Z.pageSize.height}px`,transform:`translate3d(${-U(n).x}px, ${-U(n).y}px, 0)`}),Y(d,`src`,Z.activeMockupUrl),f=di(d,``,f,{transform:U(s),transition:U(l),cursor:U(a),"pointer-events":U(o),opacity:Z.effectiveOpacity,visibility:Z.mockupSize.width?void 0:`hidden`,"touch-action":U(c)})}),q(e,t)};J(d,e=>{!Z.isHidden&&Z.activeMockupUrl&&e(f)}),q(e,u),Ke()}Hi(Bc,{},[],[],{mode:`open`});var Vc=K(`<div class="toast svelte-1ig2a9j" role="alert" aria-live="assertive"><span class="toast__icon svelte-1ig2a9j"><!></span> <span class="toast__message svelte-1ig2a9j"> </span></div>`),Hc={hash:`svelte-1ig2a9j`,code:`.toast.svelte-1ig2a9j{align-items:flex-start;animation:svelte-1ig2a9j-d .22s cubic-bezier(.4,0,.2,1);background:var(--pm-surface-elevated);border:1px solid var(--pm-border-strong);border-radius:var(--pm-radius-card);box-shadow:var(--pm-shadow-panel);color:var(--pm-text-primary);display:flex;font-family:var(--pm-font-sans);gap:10px;left:50%;max-width:calc(min(100vw - 24px,440px));padding:10px 16px 10px 12px;position:fixed;top:20px;transform:translateX(-50%);width:max-content;z-index:2147483647}.toast__icon.svelte-1ig2a9j{color:var(--pm-danger-text);flex:none;margin-top:1px}.toast__message.svelte-1ig2a9j{font-size:13px;font-weight:500;line-height:20px}@keyframes svelte-1ig2a9j-d{0%{opacity:0;transform:translateX(-50%) translateY(-10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}`};function Uc(e,t){Ge(t,!0),ni(e,Hc);let n=I(!1);function r(){L(n,!1),jo.clear()}yn(()=>{if(jo.errorMessage)return W(window,`mousedown`,r)}),yn(()=>{if(!jo.errorMessage||U(n))return;let e=setTimeout(r,4500);return()=>clearTimeout(e)});var i=kr(),a=on(i),o=e=>{var t=Vc(),r=R(t);Gs(R(r),{name:`alert`,size:18}),j(r);var i=sn(z(r,2),!0);j(t),B(()=>Lr(i,jo.errorMessage)),vr(`mouseenter`,t,()=>L(n,!0)),vr(`mouseleave`,t,()=>L(n,!1)),q(e,t)};J(a,e=>{jo.errorMessage&&e(o)}),q(e,i),Ke()}Hi(Uc,{},[],[],{mode:`open`});function Wc({delay:e=300,tolerance:t=10,scrollCooldown:n=150}={}){let r=-1/0,i={x:0,y:0},a=-1/0,o=null;function s(){o=null,r=-1/0}let c=(e,t)=>Math.abs(t.x-e.x)>5||Math.abs(t.y-e.y)>5;return{start(e,t){o={position:e,time:t}},move(e){o&&c(o.position,e)&&s()},end(l,u){let d=o;if(o=null,!d||u-d.time>=e||c(d.position,l))return s(),!1;if(u-a<n)return r=-1/0,!1;let f=u-r<e&&Math.abs(l.x-i.x)<t&&Math.abs(l.y-i.y)<t;return r=f?-1/0:u,i=l,f},cancel:s,scrolled(e){a=e,s()}}}var Gc=K(`<div><!> <!> <!> <!> <!></div>`),Kc={hash:`svelte-1n46o8q`,code:`:host{all:initial!important;direction:ltr!important;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.theme-root.svelte-1n46o8q{--pm-font-sans:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--pm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--pm-surface-primary:hsla(0,0%,100%,.9);--pm-surface-elevated:#fff;--pm-surface-subtle:#f5f5f7;--pm-surface-hover:rgba(24,24,27,.05);--pm-surface-active:rgba(24,24,27,.08);--pm-backdrop-blur:blur(20px) saturate(180%);--pm-border-subtle:rgba(24,24,27,.06);--pm-border-strong:rgba(24,24,27,.12);--pm-border-control:#8a8a92;--pm-text-primary:#18181b;--pm-text-secondary:#52525b;--pm-text-muted:#71717a;--pm-accent:#18181b;--pm-accent-hover:#3f3f46;--pm-accent-fg:#fff;--pm-accent-subtle:rgba(24,24,27,.1);--pm-accent-text:#18181b;--pm-focus-ring:#18181b;--pm-danger:#dc2626;--pm-danger-hover:#b91c1c;--pm-select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--pm-danger-text:#b91c1c;--pm-switch-off:#d4d4d8;--pm-shadow-hud:0 1px 2px rgba(0,0,0,.06), 0 8px 24px -4px rgba(0,0,0,.14);--pm-shadow-panel:0 2px 6px rgba(0,0,0,.05), 0 20px 48px -8px rgba(0,0,0,.2);--pm-radius-pill:9999px;--pm-radius-panel:16px;--pm-radius-card:12px;--pm-radius-control:8px;--pm-button-bg:var(--pm-accent);--pm-button-fg:var(--pm-accent-fg);--pm-button-hover-bg:var(--pm-accent-hover);--pm-button-disabled-bg:#a1a1aa;--pm-mockup-border:rgba(24,24,27,.1);--pm-mockup-border-hover:rgba(24,24,27,.24);color-scheme:light}.theme-root.dark.svelte-1n46o8q{--pm-surface-primary:rgba(28,28,32,.9);--pm-surface-elevated:#1c1c20;--pm-surface-subtle:#232328;--pm-surface-hover:hsla(0,0%,100%,.06);--pm-surface-active:hsla(0,0%,100%,.1);--pm-border-subtle:hsla(0,0%,100%,.06);--pm-border-strong:hsla(0,0%,100%,.12);--pm-border-control:#71717a;--pm-text-primary:#f4f4f5;--pm-text-secondary:#a1a1aa;--pm-text-muted:#93939b;--pm-accent:#f4f4f5;--pm-accent-hover:#d4d4d8;--pm-accent-fg:#18181b;--pm-accent-subtle:hsla(0,0%,100%,.12);--pm-accent-text:#fafafa;--pm-focus-ring:#f4f4f5;--pm-danger-text:#f87171;--pm-select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--pm-switch-off:#3f3f46;--pm-shadow-hud:0 1px 2px rgba(0,0,0,.3), 0 10px 30px -4px rgba(0,0,0,.5);--pm-shadow-panel:0 2px 8px rgba(0,0,0,.3), 0 24px 56px -8px rgba(0,0,0,.6);--pm-button-disabled-bg:#3f3f46;--pm-mockup-border:hsla(0,0%,100%,.1);--pm-mockup-border-hover:hsla(0,0%,100%,.24);color-scheme:dark} *{box-sizing:border-box} button{background:none;border:none;color:inherit;cursor:pointer;font:inherit;margin:0;outline:none;padding:0;-webkit-tap-highlight-color:transparent} button:disabled{cursor:default} button:not(:disabled):active{transform:scale(.96)} svg{color:currentColor;display:block;fill:none}@media(prefers-reduced-motion:reduce){ *, :after, :before{animation:none!important;transition:none!important}}`};function qc(e,t){Ge(t,!0),ni(e,Kc),Gr(Ls);let n=Wc();function r(e){if(e.composedPath().some(e=>e instanceof Element&&e.matches(`button, input, select, textarea, a[href], [contenteditable], [role='button']`))||Q.isManagerMode||e.touches.length!==1)return n.cancel();let t=e.touches[0];n.start({x:t.clientX,y:t.clientY},Date.now())}function i(e){if(e.touches.length!==1)return n.cancel();let t=e.touches[0];n.move({x:t.clientX,y:t.clientY})}function a(e){if(Q.isManagerMode||e.touches.length!==0)return n.cancel();let t=e.changedTouches[0];n.end({x:t.clientX,y:t.clientY},Date.now())&&(e.preventDefault(),Z.toggleMobileSolidMode())}let o=0,s=I(!1);function c(e){if(!e.dataTransfer?.types.includes(`Files`))return!1;let t=e.composedPath()[0];return!(t instanceof HTMLInputElement&&t.type===`file`)}function l(e){c(e)&&(o++,o===1&&L(s,!0))}function u(e){c(e)&&(o--,o===0&&L(s,!1))}function d(e){c(e)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`))}function f(e){if(L(s,!1),o=0,!c(e)||e.defaultPrevented)return;e.preventDefault();let t=Array.from(e.dataTransfer?.files||[]).filter(e=>ta.includes(e.type));t.length>0&&X.uploadAndActivate(t)}yn(()=>{let e=[W(document,`dragenter`,l),W(document,`dragleave`,u),W(document,`dragover`,d),W(document,`drop`,f)];return()=>e.forEach(e=>e())}),yn(()=>{if(!Ms()||Z.isHidden||!Z.activeMockupUrl)return;let e=document.documentElement.style,t=e.getPropertyValue(`touch-action`),o=e.getPropertyPriority(`touch-action`);e.setProperty(`touch-action`,`pan-x pan-y`);let s=[W(document,`touchstart`,r,{passive:!0}),W(document,`touchmove`,i,{passive:!0}),W(document,`touchend`,a,{passive:!1}),W(document,`touchcancel`,n.cancel,{passive:!0}),W(window,`scroll`,()=>n.scrolled(Date.now()),{passive:!0})];return()=>{e.getPropertyValue(`touch-action`)===`pan-x pan-y`&&!e.getPropertyPriority(`touch-action`)&&e.setProperty(`touch-action`,t,o),n.cancel(),s.forEach(e=>e())}});var p=Gc();let m;var h=R(p);Pc(h,{});var g=z(h,2);Bc(g,{});var _=z(g,2);Tc(_,{});var v=z(_,2);Uc(v,{}),Oc(z(v,2),{get visible(){return U(s)}}),j(p),B(()=>m=li(p,1,`theme-root svelte-1n46o8q`,null,m,{dark:Q.theme===`dark`})),q(e,p),Ke()}Hi(qc,{},[],[],{mode:`open`});var Jc=`pixel-mirror`;function Yc(){customElements.get(Jc)||customElements.define(Jc,qc.element),document.querySelector(Jc)||document.body.appendChild(document.createElement(Jc))}document.body?Yc():document.addEventListener(`DOMContentLoaded`,Yc,{once:!0}),document.addEventListener(`astro:after-swap`,Yc)})();
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pixel-mirror",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Pixel Mirror helps developers achieve pixel-perfect UIs by easily overlaying design mockups.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Peiwen Lu",
|
|
7
7
|
"type": "module",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"dev": "vite",
|
|
10
|
+
"build": "vite build",
|
|
11
|
+
"preview": "vite preview",
|
|
12
|
+
"check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json",
|
|
13
|
+
"lint": "eslint . && stylelint './src/**/*.svelte' && prettier --check .",
|
|
14
|
+
"lint:fix": "eslint --fix . && stylelint --fix './src/**/*.svelte' && prettier --write .",
|
|
15
|
+
"test": "vitest",
|
|
16
|
+
"test:run": "vitest run",
|
|
17
|
+
"test:coverage": "vitest run --coverage",
|
|
18
|
+
"prepublishOnly": "pnpm run build",
|
|
19
|
+
"prepare": "husky"
|
|
20
|
+
},
|
|
8
21
|
"exports": {
|
|
9
|
-
".":
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./index.d.ts",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
|
+
},
|
|
10
26
|
"./vite": {
|
|
11
27
|
"types": "./plugins/vite.d.ts",
|
|
12
28
|
"default": "./plugins/vite.js"
|
|
@@ -17,39 +33,39 @@
|
|
|
17
33
|
}
|
|
18
34
|
},
|
|
19
35
|
"devDependencies": {
|
|
20
|
-
"@eslint/
|
|
21
|
-
"@
|
|
22
|
-
"@
|
|
23
|
-
"@
|
|
24
|
-
"@testing-library/
|
|
25
|
-
"@
|
|
26
|
-
"@
|
|
27
|
-
"@
|
|
28
|
-
"
|
|
29
|
-
"cssnano": "^7.
|
|
30
|
-
"
|
|
36
|
+
"@eslint/js": "^10.0.1",
|
|
37
|
+
"@sveltejs/vite-plugin-svelte": "^7.3.1",
|
|
38
|
+
"@testing-library/dom": "^10.4.2",
|
|
39
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
40
|
+
"@testing-library/svelte": "^5.4.2",
|
|
41
|
+
"@tsconfig/svelte": "^5.0.8",
|
|
42
|
+
"@types/node": "^26.6.5",
|
|
43
|
+
"@vitest/coverage-v8": "^5.0.4",
|
|
44
|
+
"cssnano": "^9.8.0",
|
|
45
|
+
"cssnano-preset-advanced": "^9.7.0",
|
|
46
|
+
"eslint": "^10.12.0",
|
|
31
47
|
"eslint-config-prettier": "^10.1.8",
|
|
32
|
-
"eslint-plugin-svelte": "^3.
|
|
33
|
-
"
|
|
34
|
-
"
|
|
48
|
+
"eslint-plugin-svelte": "^3.23.1",
|
|
49
|
+
"fake-indexeddb": "^6.2.5",
|
|
50
|
+
"globals": "^17.13.0",
|
|
35
51
|
"husky": "^9.1.7",
|
|
36
|
-
"idb": "^8.0.
|
|
37
|
-
"jsdom": "^
|
|
38
|
-
"lint-staged": "^
|
|
39
|
-
"postcss-html": "^
|
|
40
|
-
"prettier": "^3.
|
|
41
|
-
"prettier-plugin-svelte": "^
|
|
42
|
-
"sass": "^1.
|
|
43
|
-
"stylelint": "^17.
|
|
44
|
-
"stylelint-config-html": "^
|
|
45
|
-
"stylelint-config-recess-order": "^7.
|
|
52
|
+
"idb": "^8.0.4",
|
|
53
|
+
"jsdom": "^30.1.2",
|
|
54
|
+
"lint-staged": "^17.6.0",
|
|
55
|
+
"postcss-html": "^2.0.0",
|
|
56
|
+
"prettier": "^3.9.10",
|
|
57
|
+
"prettier-plugin-svelte": "^4.1.1",
|
|
58
|
+
"sass": "^1.105.1",
|
|
59
|
+
"stylelint": "^17.16.0",
|
|
60
|
+
"stylelint-config-html": "^2.0.0",
|
|
61
|
+
"stylelint-config-recess-order": "^7.8.0",
|
|
46
62
|
"stylelint-prettier": "^5.0.3",
|
|
47
|
-
"svelte": "^5.
|
|
48
|
-
"svelte-check": "^4.
|
|
49
|
-
"typescript": "~
|
|
50
|
-
"typescript-eslint": "^8.
|
|
51
|
-
"vite": "^
|
|
52
|
-
"vitest": "^
|
|
63
|
+
"svelte": "^5.57.2",
|
|
64
|
+
"svelte-check": "^4.7.6",
|
|
65
|
+
"typescript": "~6.0.3",
|
|
66
|
+
"typescript-eslint": "^8.71.2",
|
|
67
|
+
"vite": "^8.3.4",
|
|
68
|
+
"vitest": "^5.0.4"
|
|
53
69
|
},
|
|
54
70
|
"lint-staged": {
|
|
55
71
|
"*.{js,ts,svelte}": [
|
|
@@ -61,8 +77,10 @@
|
|
|
61
77
|
]
|
|
62
78
|
},
|
|
63
79
|
"files": [
|
|
80
|
+
"index.d.ts",
|
|
64
81
|
"dist",
|
|
65
|
-
"plugins"
|
|
82
|
+
"plugins",
|
|
83
|
+
"THIRD_PARTY_NOTICES.md"
|
|
66
84
|
],
|
|
67
85
|
"keywords": [
|
|
68
86
|
"vite",
|
|
@@ -82,14 +100,5 @@
|
|
|
82
100
|
"bugs": {
|
|
83
101
|
"url": "https://github.com/p233-studio/pixel-mirror/issues"
|
|
84
102
|
},
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
"build": "vite build",
|
|
88
|
-
"preview": "vite preview",
|
|
89
|
-
"check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json",
|
|
90
|
-
"lint": "eslint . && stylelint --fix './src/**/*.svelte'",
|
|
91
|
-
"test": "vitest",
|
|
92
|
-
"test:run": "vitest run",
|
|
93
|
-
"test:coverage": "vitest run --coverage"
|
|
94
|
-
}
|
|
95
|
-
}
|
|
103
|
+
"types": "./index.d.ts"
|
|
104
|
+
}
|
package/plugins/astro.js
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
|
+
import vitePlugin from "./vite.js";
|
|
2
|
+
import { scriptUrl } from "./script-url.js";
|
|
3
|
+
|
|
1
4
|
export default function pixelMirror() {
|
|
2
5
|
return {
|
|
3
6
|
name: "pixel-mirror",
|
|
4
7
|
hooks: {
|
|
5
|
-
"astro:config:setup": ({ command, injectScript }) => {
|
|
6
|
-
if (command
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
"astro:config:setup": ({ config, command, injectScript, updateConfig }) => {
|
|
9
|
+
if (command !== "dev") return;
|
|
10
|
+
|
|
11
|
+
// Reuse the Vite plugin's middleware to serve the bundle, then load it like a deferred script
|
|
12
|
+
updateConfig({ vite: { plugins: [vitePlugin()] } });
|
|
13
|
+
injectScript(
|
|
14
|
+
"head-inline",
|
|
15
|
+
`(() => {
|
|
16
|
+
const script = document.createElement("script");
|
|
17
|
+
script.src = ${JSON.stringify(scriptUrl(config.base))};
|
|
18
|
+
document.head.appendChild(script);
|
|
19
|
+
})();`
|
|
20
|
+
);
|
|
15
21
|
}
|
|
16
22
|
}
|
|
17
23
|
};
|
package/plugins/vite.js
CHANGED
|
@@ -1,11 +1,32 @@
|
|
|
1
|
+
import { createReadStream } from "node:fs";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { scriptUrl } from "./script-url.js";
|
|
4
|
+
|
|
5
|
+
// Served by the dev server itself, so the URL works wherever the package is installed
|
|
6
|
+
// (hoisted monorepos, pnpm stores, linked packages) and regardless of `server.fs.allow`
|
|
7
|
+
const SCRIPT_FILE = fileURLToPath(new URL("../dist/index.js", import.meta.url));
|
|
8
|
+
|
|
1
9
|
export default function pixelMirror() {
|
|
2
10
|
return {
|
|
3
11
|
name: "pixel-mirror",
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
apply: "serve",
|
|
13
|
+
configureServer(server) {
|
|
14
|
+
server.middlewares.use(scriptUrl(server.config.base), (_req, res) => {
|
|
15
|
+
createReadStream(SCRIPT_FILE)
|
|
16
|
+
.on("open", () => {
|
|
17
|
+
res.setHeader("Content-Type", "text/javascript; charset=utf-8");
|
|
18
|
+
res.setHeader("Cache-Control", "no-cache");
|
|
19
|
+
})
|
|
20
|
+
.on("error", () => {
|
|
21
|
+
res.statusCode = 404;
|
|
22
|
+
res.setHeader("Content-Type", "text/plain; charset=utf-8");
|
|
23
|
+
res.end(`pixel-mirror: ${SCRIPT_FILE} not found. Run the package build first.`);
|
|
24
|
+
})
|
|
25
|
+
.pipe(res);
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
transformIndexHtml(_html, context) {
|
|
29
|
+
return [{ tag: "script", attrs: { src: scriptUrl(context.server.config.base), defer: true }, injectTo: "head" }];
|
|
9
30
|
}
|
|
10
31
|
};
|
|
11
32
|
}
|