vanilla-breeze 0.2.0 → 0.3.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/custom-elements.json +11251 -18739
- package/dist/cdn/components/icon-wc.js +2 -2
- package/dist/cdn/components/manifest.json +2 -146
- package/dist/cdn/components/settings-panel.js +3 -3
- package/dist/cdn/components/theme-picker.js +12 -12
- package/dist/cdn/packs/journal.effects.css +2 -0
- package/dist/cdn/packs/journal.full.css +2 -0
- package/dist/cdn/packs/manifest.json +11 -21
- package/dist/cdn/packs/ui.full.js +4 -4
- package/dist/cdn/themes/8bit.tokens.json +1 -1
- package/dist/cdn/themes/alpha1999-dark.tokens.json +1 -1
- package/dist/cdn/themes/alpha1999.tokens.json +1 -1
- package/dist/cdn/themes/anthropic.tokens.json +1 -1
- package/dist/cdn/themes/art-deco-dark.tokens.json +1 -1
- package/dist/cdn/themes/art-deco.tokens.json +1 -1
- package/dist/cdn/themes/bauhaus-dark.tokens.json +1 -1
- package/dist/cdn/themes/bauhaus.tokens.json +1 -1
- package/dist/cdn/themes/brutalist-dark.tokens.json +1 -1
- package/dist/cdn/themes/brutalist.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-frappe.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-latte-dark.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-latte.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-macchiato.tokens.json +1 -1
- package/dist/cdn/themes/catppuccin-mocha.tokens.json +1 -1
- package/dist/cdn/themes/classic-dark.tokens.json +1 -1
- package/dist/cdn/themes/classic.tokens.json +1 -1
- package/dist/cdn/themes/claymorphism-dark.tokens.json +1 -1
- package/dist/cdn/themes/claymorphism.tokens.json +1 -1
- package/dist/cdn/themes/clinical-dark.tokens.json +1 -1
- package/dist/cdn/themes/clinical.tokens.json +1 -1
- package/dist/cdn/themes/cottagecore-dark.tokens.json +1 -1
- package/dist/cdn/themes/cottagecore.tokens.json +1 -1
- package/dist/cdn/themes/cyber.tokens.json +1 -1
- package/dist/cdn/themes/dawn-dark.tokens.json +1 -1
- package/dist/cdn/themes/dawn.tokens.json +1 -1
- package/dist/cdn/themes/dracula.tokens.json +1 -1
- package/dist/cdn/themes/dusk.tokens.json +1 -1
- package/dist/cdn/themes/editorial-dark.tokens.json +1 -1
- package/dist/cdn/themes/editorial.tokens.json +1 -1
- package/dist/cdn/themes/financial-dark.tokens.json +1 -1
- package/dist/cdn/themes/financial.tokens.json +1 -1
- package/dist/cdn/themes/genai.tokens.json +1 -1
- package/dist/cdn/themes/glassmorphism-dark.tokens.json +1 -1
- package/dist/cdn/themes/glassmorphism.tokens.json +1 -1
- package/dist/cdn/themes/government-dark.tokens.json +1 -1
- package/dist/cdn/themes/government.tokens.json +1 -1
- package/dist/cdn/themes/gruvbox-dark.tokens.json +1 -1
- package/dist/cdn/themes/gruvbox.tokens.json +1 -1
- package/dist/cdn/themes/high-noon-dark.tokens.json +1 -1
- package/dist/cdn/themes/high-noon.tokens.json +1 -1
- package/dist/cdn/themes/ibm.tokens.json +1 -1
- package/dist/cdn/themes/journal-dark.tokens.json +406 -0
- package/dist/cdn/themes/journal.css +2 -0
- package/dist/cdn/themes/journal.tokens.json +583 -0
- package/dist/cdn/themes/kawaii-dark.tokens.json +1 -1
- package/dist/cdn/themes/kawaii.tokens.json +1 -1
- package/dist/cdn/themes/magna-dark.tokens.json +1 -1
- package/dist/cdn/themes/magna.tokens.json +1 -1
- package/dist/cdn/themes/manifest.json +7 -0
- package/dist/cdn/themes/mcdonalds.tokens.json +1 -1
- package/dist/cdn/themes/midnight.tokens.json +1 -1
- package/dist/cdn/themes/minimal-dark.tokens.json +1 -1
- package/dist/cdn/themes/minimal.tokens.json +1 -1
- package/dist/cdn/themes/modern-dark.tokens.json +1 -1
- package/dist/cdn/themes/modern.tokens.json +1 -1
- package/dist/cdn/themes/nes-dark.tokens.json +1 -1
- package/dist/cdn/themes/nes.tokens.json +1 -1
- package/dist/cdn/themes/neumorphism-dark.tokens.json +1 -1
- package/dist/cdn/themes/neumorphism.tokens.json +1 -1
- package/dist/cdn/themes/nord-dark.tokens.json +1 -1
- package/dist/cdn/themes/nord.tokens.json +1 -1
- package/dist/cdn/themes/organic-dark.tokens.json +1 -1
- package/dist/cdn/themes/organic.tokens.json +1 -1
- package/dist/cdn/themes/rose-pine-dark.tokens.json +1 -1
- package/dist/cdn/themes/rose-pine.tokens.json +1 -1
- package/dist/cdn/themes/rough-dark.tokens.json +1 -1
- package/dist/cdn/themes/rough.tokens.json +1 -1
- package/dist/cdn/themes/solarized-dark.tokens.json +1 -1
- package/dist/cdn/themes/solarized.tokens.json +1 -1
- package/dist/cdn/themes/starbucks.tokens.json +1 -1
- package/dist/cdn/themes/startup-dark.tokens.json +1 -1
- package/dist/cdn/themes/startup.tokens.json +1 -1
- package/dist/cdn/themes/super2026-dark.tokens.json +1 -1
- package/dist/cdn/themes/super2026.tokens.json +1 -1
- package/dist/cdn/themes/swiss-dark.tokens.json +1 -1
- package/dist/cdn/themes/swiss.tokens.json +1 -1
- package/dist/cdn/themes/terminal.tokens.json +1 -1
- package/dist/cdn/themes/tokyo-night-dark.tokens.json +1 -1
- package/dist/cdn/themes/tokyo-night.tokens.json +1 -1
- package/dist/cdn/themes/vaporwave-dark.tokens.json +1 -1
- package/dist/cdn/themes/vaporwave.tokens.json +1 -1
- package/dist/cdn/themes/win9x-dark.tokens.json +1 -1
- package/dist/cdn/themes/win9x.tokens.json +1 -1
- package/dist/cdn/vanilla-breeze-core.js +17 -17
- package/dist/cdn/vanilla-breeze-extras.js +36 -222
- package/dist/cdn/vanilla-breeze.css +1 -1
- package/dist/cdn/vanilla-breeze.js +232 -2608
- package/package.json +2 -3
- package/dist/cdn/components/accessibility-specimen.js +0 -11
- package/dist/cdn/components/adr-wc.js +0 -403
- package/dist/cdn/components/breakpoint-specimen.js +0 -26
- package/dist/cdn/components/burndown-chart.js +0 -2
- package/dist/cdn/components/capacity-plan.js +0 -25
- package/dist/cdn/components/color-palette.js +0 -16
- package/dist/cdn/components/component-sampler.js +0 -45
- package/dist/cdn/components/empathy-map.js +0 -582
- package/dist/cdn/components/font-pairer.js +0 -108
- package/dist/cdn/components/gantt-chart.js +0 -2
- package/dist/cdn/components/gradient-builder.js +0 -52
- package/dist/cdn/components/impact-effort.js +0 -2
- package/dist/cdn/components/iron-triangle.js +0 -2
- package/dist/cdn/components/kanban-board.js +0 -2
- package/dist/cdn/components/layout-specimen.js +0 -35
- package/dist/cdn/components/motion-specimen.js +0 -21
- package/dist/cdn/components/palette-generator.js +0 -15
- package/dist/cdn/components/product-roadmap.js +0 -3
- package/dist/cdn/components/quadrant-grid.js +0 -3
- package/dist/cdn/components/quality-target.js +0 -12
- package/dist/cdn/components/requirement-card.js +0 -122
- package/dist/cdn/components/review-surface.js +0 -535
- package/dist/cdn/components/risk-register.js +0 -25
- package/dist/cdn/components/semantic-palette.js +0 -30
- package/dist/cdn/components/spacing-specimen.js +0 -6
- package/dist/cdn/components/story-map.js +0 -2
- package/dist/cdn/components/theme-catalog.js +0 -28
- package/dist/cdn/components/theme-export.js +0 -26
- package/dist/cdn/components/theme-import.js +0 -44
- package/dist/cdn/components/token-specimen.js +0 -26
- package/dist/cdn/components/traceability-matrix.js +0 -3
- package/dist/cdn/components/type-specimen.js +0 -19
- package/dist/cdn/components/user-journey.js +0 -366
- package/dist/cdn/components/user-persona.js +0 -402
- package/dist/cdn/components/user-story.js +0 -411
- package/dist/cdn/components/work-item.js +0 -447
- package/dist/cdn/packs/design-system.full.css +0 -2
- package/dist/cdn/packs/design-system.full.js +0 -175
- package/dist/cdn/packs/ux-planning.full.css +0 -2
- package/dist/cdn/packs/ux-planning.full.js +0 -3160
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function u({basePath:o,set:n,name:e}){return`${o}/${n}/${e}.svg`}function h(o,n=document){let e=o.getAttribute("data-icon-set");if(e)return e;let t=o.closest("[data-icon-set]")
|
|
1
|
+
function u({basePath:o,set:n,name:e}){return`${o}/${n}/${e}.svg`}function h(o,n=document){let e=o.getAttribute("data-icon-set");if(e)return e;let t=o.closest("[data-icon-set]")?.getAttribute("data-icon-set");return t||n.documentElement.dataset.iconSet||"lucide"}function m(o=document){return o.documentElement.dataset.iconPath||"/cdn/icons"}function l(o){let n=o.getAttribute("data-icon");if(!n){o.style.removeProperty("--vb-icon");return}let e=u({basePath:m(document),set:h(o,document),name:n});o.style.setProperty("--vb-icon",`url("${e}")`)}function a(o=document){for(let n of o.querySelectorAll("[data-icon]"))l(n)}var f=!1;function y(){if(f)return;f=!0,a(),new MutationObserver(n=>{for(let e of n)if(e.type==="attributes"){let t=e.target;t.hasAttribute&&t.hasAttribute("data-icon")&&l(t),e.attributeName==="data-icon-set"&&a(t)}else for(let t of e.addedNodes){if(t.nodeType!==1)continue;let i=t;i.hasAttribute("data-icon")&&l(i),a(i)}}).observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-icon","data-icon-set"]})}typeof document<"u"&&y();var b=`
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
align-items: center;
|
|
@@ -59,7 +59,7 @@ svg {
|
|
|
59
59
|
:host([hidden]) {
|
|
60
60
|
display: none;
|
|
61
61
|
}
|
|
62
|
-
`;var
|
|
62
|
+
`;var $=window.matchMedia("(prefers-reduced-motion: reduce)");var g=new Map;function p(o,n,e={}){let t=e.priority??10,i={impl:n,bundle:e.bundle,contract:e.contract,priority:t},r=g.get(o);if(customElements.get(o)){if(!r||r.priority>=t){r&&r.priority===t&&r.impl!==n&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${o}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=t){r.priority===t&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${r.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}g.set(o,i),customElements.define(o,n)}var s=new Map,c=new Map,d=class o extends HTMLElement{static#e=new Set;static#t=null;static#o(){o.#t||(o.#t=new MutationObserver(n=>{for(let e of n)if(e.attributeName==="data-icon-set")for(let t of o.#e)t.hasAttribute("set")||(t.render(),t.loadIcon())}),o.#t?.observe(document.documentElement,{attributes:!0,attributeFilter:["data-icon-set"]}))}static get observedAttributes(){return["name","set","size","label"]}constructor(){super(),this.attachShadow({mode:"open"})}get name(){return this.getAttribute("name")||""}get set(){return this.getAttribute("set")||document.documentElement.dataset.iconSet||"lucide"}get size(){return this.getAttribute("size")||"md"}get label(){return this.getAttribute("label")}get basePath(){return this.getAttribute("base-path")||document.documentElement.dataset.iconPath||"/cdn/icons"}get iconPath(){return`${this.basePath}/${this.set}/${this.name}.svg`}render(){this.shadowRoot.innerHTML=`
|
|
63
63
|
<style>${b}</style>
|
|
64
64
|
<slot></slot>
|
|
65
65
|
`}async loadIcon(){if(!this.name){this.setError("No icon name specified");return}let n=`${this.set}/${this.name}`;if(s.has(n)){this.displayIcon(s.get(n));return}try{let e=await this.#n(this.set,n);this.displayIcon(e)}catch(e){let t="lucide";if(this.set!==t){let i=`${t}/${this.name}`;if(s.has(i)){this.displayIcon(s.get(i));return}try{let r=await this.#n(t,i);this.displayIcon(r);return}catch{}}this.setError(e.message)}}async#n(n,e){return c.has(e)||c.set(e,this.#i(n).then(t=>(s.set(e,t),c.delete(e),t)).catch(t=>{throw c.delete(e),t})),c.get(e)}async#i(n){let e=`${this.basePath}/${n}/${this.name}.svg`,t=await fetch(e);if(!t.ok)throw new Error(`Icon not found: ${this.name}`);let i=await t.text();if(!i.includes("<svg"))throw new Error(`Invalid SVG: ${this.name}`);return i}displayIcon(n){let i=new DOMParser().parseFromString(n,"image/svg+xml").querySelector("svg");if(!i){this.setError("Invalid SVG content");return}i.removeAttribute("width"),i.removeAttribute("height"),this.label?(i.setAttribute("role","img"),i.setAttribute("aria-label",this.label)):i.setAttribute("aria-hidden","true"),this.removeAttribute("data-error");let r=this.shadowRoot?.querySelector("slot");r&&r.replaceWith(i)}setError(n){this.setAttribute("data-error","true"),console.warn(`icon-wc: ${n}`);let e=this.shadowRoot?.querySelector("slot");e&&(e.textContent="")}connectedCallback(){o.#e.add(this),o.#o(),this.render(),this.loadIcon(),this._onThemeChange=()=>{let n=this.shadowRoot?.querySelector("svg");n&&(n.style.stroke="none",requestAnimationFrame(()=>{n.style.stroke=""}))},window.addEventListener("vb:theme-change",this._onThemeChange),this.setAttribute("data-upgraded","")}disconnectedCallback(){this.removeAttribute("data-upgraded"),o.#e.delete(this),this._onThemeChange&&window.removeEventListener("vb:theme-change",this._onThemeChange)}attributeChangedCallback(n,e,t){if(e!==t&&this.isConnected){if(n==="name"||n==="set")this.render(),this.loadIcon();else if(n==="label"){let i=this.shadowRoot?.querySelector("svg");i&&(t?(i.setAttribute("role","img"),i.setAttribute("aria-label",t)):(i.removeAttribute("role"),i.setAttribute("aria-hidden","true")))}}}};p("icon-wc",d);export{d as IconWc};
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"accessibility-specimen": {
|
|
3
|
-
"file": "accessibility-specimen.js",
|
|
4
|
-
"size": 5726
|
|
5
|
-
},
|
|
6
2
|
"accordion-wc": {
|
|
7
3
|
"file": "accordion-wc.js",
|
|
8
4
|
"size": 4948
|
|
@@ -11,10 +7,6 @@
|
|
|
11
7
|
"file": "activity-feed.js",
|
|
12
8
|
"size": 7248
|
|
13
9
|
},
|
|
14
|
-
"adr-wc": {
|
|
15
|
-
"file": "adr-wc.js",
|
|
16
|
-
"size": 21563
|
|
17
|
-
},
|
|
18
10
|
"ai-chat": {
|
|
19
11
|
"file": "ai-chat.js",
|
|
20
12
|
"size": 11845
|
|
@@ -47,22 +39,10 @@
|
|
|
47
39
|
"file": "bread-crumb.js",
|
|
48
40
|
"size": 3858
|
|
49
41
|
},
|
|
50
|
-
"breakpoint-specimen": {
|
|
51
|
-
"file": "breakpoint-specimen.js",
|
|
52
|
-
"size": 4323
|
|
53
|
-
},
|
|
54
|
-
"burndown-chart": {
|
|
55
|
-
"file": "burndown-chart.js",
|
|
56
|
-
"size": 4534
|
|
57
|
-
},
|
|
58
42
|
"calendar-wc": {
|
|
59
43
|
"file": "calendar-wc.js",
|
|
60
44
|
"size": 20148
|
|
61
45
|
},
|
|
62
|
-
"capacity-plan": {
|
|
63
|
-
"file": "capacity-plan.js",
|
|
64
|
-
"size": 5958
|
|
65
|
-
},
|
|
66
46
|
"card-list": {
|
|
67
47
|
"file": "card-list.js",
|
|
68
48
|
"size": 6071
|
|
@@ -87,10 +67,6 @@
|
|
|
87
67
|
"file": "chat-window.js",
|
|
88
68
|
"size": 7593
|
|
89
69
|
},
|
|
90
|
-
"color-palette": {
|
|
91
|
-
"file": "color-palette.js",
|
|
92
|
-
"size": 9854
|
|
93
|
-
},
|
|
94
70
|
"color-picker": {
|
|
95
71
|
"file": "color-picker.js",
|
|
96
72
|
"size": 18016
|
|
@@ -119,10 +95,6 @@
|
|
|
119
95
|
"file": "compare-surface.js",
|
|
120
96
|
"size": 3550
|
|
121
97
|
},
|
|
122
|
-
"component-sampler": {
|
|
123
|
-
"file": "component-sampler.js",
|
|
124
|
-
"size": 4874
|
|
125
|
-
},
|
|
126
98
|
"consent-banner": {
|
|
127
99
|
"file": "consent-banner.js",
|
|
128
100
|
"size": 5136
|
|
@@ -167,18 +139,10 @@
|
|
|
167
139
|
"file": "emoji-picker.js",
|
|
168
140
|
"size": 33202
|
|
169
141
|
},
|
|
170
|
-
"empathy-map": {
|
|
171
|
-
"file": "empathy-map.js",
|
|
172
|
-
"size": 30478
|
|
173
|
-
},
|
|
174
142
|
"flow-diagram": {
|
|
175
143
|
"file": "flow-diagram.js",
|
|
176
144
|
"size": 8245
|
|
177
145
|
},
|
|
178
|
-
"font-pairer": {
|
|
179
|
-
"file": "font-pairer.js",
|
|
180
|
-
"size": 23283
|
|
181
|
-
},
|
|
182
146
|
"foot-notes": {
|
|
183
147
|
"file": "foot-notes.js",
|
|
184
148
|
"size": 3643
|
|
@@ -187,10 +151,6 @@
|
|
|
187
151
|
"file": "form-field.js",
|
|
188
152
|
"size": 3132
|
|
189
153
|
},
|
|
190
|
-
"gantt-chart": {
|
|
191
|
-
"file": "gantt-chart.js",
|
|
192
|
-
"size": 14359
|
|
193
|
-
},
|
|
194
154
|
"geo-map": {
|
|
195
155
|
"file": "geo-map.js",
|
|
196
156
|
"size": 18771
|
|
@@ -203,10 +163,6 @@
|
|
|
203
163
|
"file": "glossary-wc.js",
|
|
204
164
|
"size": 10686
|
|
205
165
|
},
|
|
206
|
-
"gradient-builder": {
|
|
207
|
-
"file": "gradient-builder.js",
|
|
208
|
-
"size": 11190
|
|
209
|
-
},
|
|
210
166
|
"heading-links": {
|
|
211
167
|
"file": "heading-links.js",
|
|
212
168
|
"size": 5341
|
|
@@ -223,26 +179,10 @@
|
|
|
223
179
|
"file": "image-map.js",
|
|
224
180
|
"size": 8461
|
|
225
181
|
},
|
|
226
|
-
"impact-effort": {
|
|
227
|
-
"file": "impact-effort.js",
|
|
228
|
-
"size": 8181
|
|
229
|
-
},
|
|
230
182
|
"include-file": {
|
|
231
183
|
"file": "include-file.js",
|
|
232
184
|
"size": 3852
|
|
233
185
|
},
|
|
234
|
-
"iron-triangle": {
|
|
235
|
-
"file": "iron-triangle.js",
|
|
236
|
-
"size": 16124
|
|
237
|
-
},
|
|
238
|
-
"kanban-board": {
|
|
239
|
-
"file": "kanban-board.js",
|
|
240
|
-
"size": 13036
|
|
241
|
-
},
|
|
242
|
-
"layout-specimen": {
|
|
243
|
-
"file": "layout-specimen.js",
|
|
244
|
-
"size": 7340
|
|
245
|
-
},
|
|
246
186
|
"markdown-editor": {
|
|
247
187
|
"file": "markdown-editor.js",
|
|
248
188
|
"size": 4420
|
|
@@ -251,10 +191,6 @@
|
|
|
251
191
|
"file": "markdown-viewer.js",
|
|
252
192
|
"size": 45110
|
|
253
193
|
},
|
|
254
|
-
"motion-specimen": {
|
|
255
|
-
"file": "motion-specimen.js",
|
|
256
|
-
"size": 5695
|
|
257
|
-
},
|
|
258
194
|
"nav-bar": {
|
|
259
195
|
"file": "nav-bar.js",
|
|
260
196
|
"size": 4675
|
|
@@ -291,10 +227,6 @@
|
|
|
291
227
|
"file": "pager-wc.js",
|
|
292
228
|
"size": 6202
|
|
293
229
|
},
|
|
294
|
-
"palette-generator": {
|
|
295
|
-
"file": "palette-generator.js",
|
|
296
|
-
"size": 11383
|
|
297
|
-
},
|
|
298
230
|
"poll-wc": {
|
|
299
231
|
"file": "poll-wc.js",
|
|
300
232
|
"size": 6198
|
|
@@ -311,10 +243,6 @@
|
|
|
311
243
|
"file": "print-page.js",
|
|
312
244
|
"size": 2879
|
|
313
245
|
},
|
|
314
|
-
"product-roadmap": {
|
|
315
|
-
"file": "product-roadmap.js",
|
|
316
|
-
"size": 9383
|
|
317
|
-
},
|
|
318
246
|
"progress-tracker": {
|
|
319
247
|
"file": "progress-tracker.js",
|
|
320
248
|
"size": 3906
|
|
@@ -323,14 +251,6 @@
|
|
|
323
251
|
"file": "qr-code.js",
|
|
324
252
|
"size": 10321
|
|
325
253
|
},
|
|
326
|
-
"quadrant-grid": {
|
|
327
|
-
"file": "quadrant-grid.js",
|
|
328
|
-
"size": 7358
|
|
329
|
-
},
|
|
330
|
-
"quality-target": {
|
|
331
|
-
"file": "quality-target.js",
|
|
332
|
-
"size": 17464
|
|
333
|
-
},
|
|
334
254
|
"reaction-bar": {
|
|
335
255
|
"file": "reaction-bar.js",
|
|
336
256
|
"size": 8923
|
|
@@ -347,18 +267,6 @@
|
|
|
347
267
|
"file": "recently-visited.js",
|
|
348
268
|
"size": 6281
|
|
349
269
|
},
|
|
350
|
-
"requirement-card": {
|
|
351
|
-
"file": "requirement-card.js",
|
|
352
|
-
"size": 8821
|
|
353
|
-
},
|
|
354
|
-
"review-surface": {
|
|
355
|
-
"file": "review-surface.js",
|
|
356
|
-
"size": 35411
|
|
357
|
-
},
|
|
358
|
-
"risk-register": {
|
|
359
|
-
"file": "risk-register.js",
|
|
360
|
-
"size": 4641
|
|
361
|
-
},
|
|
362
270
|
"score-card": {
|
|
363
271
|
"file": "score-card.js",
|
|
364
272
|
"size": 11160
|
|
@@ -367,13 +275,9 @@
|
|
|
367
275
|
"file": "selection-menu.js",
|
|
368
276
|
"size": 6822
|
|
369
277
|
},
|
|
370
|
-
"semantic-palette": {
|
|
371
|
-
"file": "semantic-palette.js",
|
|
372
|
-
"size": 16965
|
|
373
|
-
},
|
|
374
278
|
"settings-panel": {
|
|
375
279
|
"file": "settings-panel.js",
|
|
376
|
-
"size":
|
|
280
|
+
"size": 53022
|
|
377
281
|
},
|
|
378
282
|
"share-wc": {
|
|
379
283
|
"file": "share-wc.js",
|
|
@@ -403,10 +307,6 @@
|
|
|
403
307
|
"file": "social-embed.js",
|
|
404
308
|
"size": 4850
|
|
405
309
|
},
|
|
406
|
-
"spacing-specimen": {
|
|
407
|
-
"file": "spacing-specimen.js",
|
|
408
|
-
"size": 4568
|
|
409
|
-
},
|
|
410
310
|
"split-surface": {
|
|
411
311
|
"file": "split-surface.js",
|
|
412
312
|
"size": 6814
|
|
@@ -423,10 +323,6 @@
|
|
|
423
323
|
"file": "stepper-wc.js",
|
|
424
324
|
"size": 12270
|
|
425
325
|
},
|
|
426
|
-
"story-map": {
|
|
427
|
-
"file": "story-map.js",
|
|
428
|
-
"size": 8446
|
|
429
|
-
},
|
|
430
326
|
"tab-set": {
|
|
431
327
|
"file": "tab-set.js",
|
|
432
328
|
"size": 4572
|
|
@@ -435,21 +331,9 @@
|
|
|
435
331
|
"file": "text-reader.js",
|
|
436
332
|
"size": 12067
|
|
437
333
|
},
|
|
438
|
-
"theme-catalog": {
|
|
439
|
-
"file": "theme-catalog.js",
|
|
440
|
-
"size": 12733
|
|
441
|
-
},
|
|
442
|
-
"theme-export": {
|
|
443
|
-
"file": "theme-export.js",
|
|
444
|
-
"size": 14974
|
|
445
|
-
},
|
|
446
|
-
"theme-import": {
|
|
447
|
-
"file": "theme-import.js",
|
|
448
|
-
"size": 13266
|
|
449
|
-
},
|
|
450
334
|
"theme-picker": {
|
|
451
335
|
"file": "theme-picker.js",
|
|
452
|
-
"size":
|
|
336
|
+
"size": 41693
|
|
453
337
|
},
|
|
454
338
|
"time-index": {
|
|
455
339
|
"file": "time-index.js",
|
|
@@ -463,10 +347,6 @@
|
|
|
463
347
|
"file": "toast-msg.js",
|
|
464
348
|
"size": 4335
|
|
465
349
|
},
|
|
466
|
-
"token-specimen": {
|
|
467
|
-
"file": "token-specimen.js",
|
|
468
|
-
"size": 9320
|
|
469
|
-
},
|
|
470
350
|
"tool-tip": {
|
|
471
351
|
"file": "tool-tip.js",
|
|
472
352
|
"size": 7736
|
|
@@ -475,30 +355,10 @@
|
|
|
475
355
|
"file": "topic-map.js",
|
|
476
356
|
"size": 5138
|
|
477
357
|
},
|
|
478
|
-
"traceability-matrix": {
|
|
479
|
-
"file": "traceability-matrix.js",
|
|
480
|
-
"size": 5316
|
|
481
|
-
},
|
|
482
358
|
"trust-filter": {
|
|
483
359
|
"file": "trust-filter.js",
|
|
484
360
|
"size": 5204
|
|
485
361
|
},
|
|
486
|
-
"type-specimen": {
|
|
487
|
-
"file": "type-specimen.js",
|
|
488
|
-
"size": 5615
|
|
489
|
-
},
|
|
490
|
-
"user-journey": {
|
|
491
|
-
"file": "user-journey.js",
|
|
492
|
-
"size": 21328
|
|
493
|
-
},
|
|
494
|
-
"user-persona": {
|
|
495
|
-
"file": "user-persona.js",
|
|
496
|
-
"size": 23400
|
|
497
|
-
},
|
|
498
|
-
"user-story": {
|
|
499
|
-
"file": "user-story.js",
|
|
500
|
-
"size": 22499
|
|
501
|
-
},
|
|
502
362
|
"version-switcher": {
|
|
503
363
|
"file": "version-switcher.js",
|
|
504
364
|
"size": 19088
|
|
@@ -515,10 +375,6 @@
|
|
|
515
375
|
"file": "week-view.js",
|
|
516
376
|
"size": 7787
|
|
517
377
|
},
|
|
518
|
-
"work-item": {
|
|
519
|
-
"file": "work-item.js",
|
|
520
|
-
"size": 24573
|
|
521
|
-
},
|
|
522
378
|
"youtube-player": {
|
|
523
379
|
"file": "youtube-player.js",
|
|
524
380
|
"size": 3763
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var je=Object.defineProperty;var ge=(t,e)=>()=>(t&&(e=t(t=0)),e);var me=(t,e)=>{for(var a in e)je(t,a,{get:e[a],enumerable:!0})};var U={};me(U,{destroyStickyManager:()=>tt,initStickyManager:()=>et});function T(){let t=document.documentElement;if(!t.hasAttribute("data-sticky"))return;let e=document.querySelector("header");e&&!e.hasAttribute("data-sticky")&&(e.dataset.sticky="",Z=!0);let a=document.querySelector("header[data-sticky]"),s=a?a.getBoundingClientRect().height:0;t.style.setProperty("--sticky-offset",`${s}px`)}function Le(){T()}function et(){if(j)return;j=!0,T(),requestAnimationFrame(T),document.fonts?.ready?.then(T),window.addEventListener("resize",T,{passive:!0}),document.addEventListener("toggle",Le,!0),Q=new ResizeObserver(T);let t=document.querySelector("header[data-sticky]");t&&Q.observe(t)}function tt(){if(j){if(j=!1,window.removeEventListener("resize",T),document.removeEventListener("toggle",Le,!0),Q?.disconnect(),Z){let t=document.querySelector("header[data-sticky]");t&&delete t.dataset.sticky,Z=!1}document.documentElement.style.removeProperty("--sticky-offset")}}var j,Q,Z,W=ge(()=>{j=!1,Z=!1});var Re={};me(Re,{SoundManager:()=>at});var qe,ee,at,Ie=ge(()=>{qe="vb-sound",ee={enabled:!1,volume:.5},at={_ctx:null,_enabled:!1,_volume:.5,_initialized:!1,init(){if(this._initialized)return this;let t=this._load();return this._enabled=t.enabled,this._volume=t.volume,this._initialized=!0,this},_getContext(){return this._ctx||(this._ctx=new(window.AudioContext||window.webkitAudioContext)),this._ctx.state==="suspended"&&this._ctx.resume(),this._ctx},_load(){try{let t=localStorage.getItem(qe);return t?{...ee,...JSON.parse(t)}:{...ee}}catch{return{...ee}}},_save(t){try{let e=this._load();localStorage.setItem(qe,JSON.stringify({...e,...t}))}catch{}},_playTone(t,e,a="sine"){if(!this._enabled)return;let s=this._getContext(),r=s.createOscillator(),n=s.createGain();r.connect(n),n.connect(s.destination),r.frequency.value=t,r.type=a,n.gain.value=this._volume*.3,r.start(),n.gain.exponentialRampToValueAtTime(.01,s.currentTime+e),r.stop(s.currentTime+e)},enable(){this._enabled=!0,this._save({enabled:!0}),this.play("click")},disable(){this._enabled=!1,this._save({enabled:!1})},toggle(){return this._enabled?this.disable():this.enable(),this._enabled},isEnabled(){return this._enabled},setVolume(t){this._volume=Math.max(0,Math.min(1,t)),this._save({volume:this._volume})},getVolume(){return this._volume},play(t){if(this._enabled)switch(t){case"click":this._playTone(800,.1);break;case"success":this._playTone(523,.1),setTimeout(()=>this._playTone(659,.1),100),setTimeout(()=>this._playTone(784,.15),200);break;case"error":this._playTone(200,.15,"sawtooth"),setTimeout(()=>this._playTone(180,.2,"sawtooth"),150);break;case"notification":this._playTone(880,.1),setTimeout(()=>this._playTone(1100,.15),100);break;case"soft":this._playTone(600,.05);break;case"tick":this._playTone(1200,.02,"square");break}},getState(){return{enabled:this._enabled,volume:this._volume}}}});var rt=window.matchMedia("(prefers-reduced-motion: reduce)");var pe=new Map;function ye(t,e,a={}){let s=a.priority??10,r={impl:e,bundle:a.bundle,contract:a.contract,priority:s},n=pe.get(t);if(customElements.get(t)){if(!n||n.priority>=s){n&&n.priority===s&&n.impl!==e&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${a.bundle}".`);return}console.warn(`[VB Bundle] Tag <${t}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${a.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=s){n.priority===s&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${n.bundle}". Skipping "${a.bundle}" (first wins at equal priority).`);return}pe.set(t,r),customElements.define(t,e)}var R=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let e of this.#t)e();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,a,s,r){e.addEventListener(a,s,r),this.#t.push(()=>e.removeEventListener(a,s,r))}setup(){}teardown(){}setState(e,a){this.#e||(this.#e=this.attachInternals());let s=this.#e.states;try{a?s.add(e):s.delete(e)}catch{let r=`--${e}`;a?s.add(r):s.delete(r)}}_adoptInternals(e){this.#e||(this.#e=e)}};var x=new Map,z=new Map;var fe=null;function be(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(fe)return fe;if(typeof document<"u"){let t=document.querySelectorAll('script[src*="vanilla-breeze"]');for(let e of t){let a=e.getAttribute("src");if(a){let s=a.lastIndexOf("/");if(s!==-1)return a.slice(0,s)}}}return"/cdn"}var Ue=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),We=new Set(["kawaii","memphis"]);function N(t){return We.has(t)}function ze(t,e){return`${e}/themes/${t}.css`}function we(t,e){if(!N(t))return Promise.resolve();if(z.has(t))return z.get(t);let a=import(`${e}/packs/${t}.full.js`).catch(()=>{});return z.set(t,a),a}function Ne(t,e){let a=be(),s=()=>{(N(e)||t.hasAttribute("data-vb-pack"))&&we(e,a)};return t.getAttribute("data-vb-theme-state")==="error"?Promise.reject(new Error(`Failed to load theme: ${e}`)):t.getAttribute("data-vb-theme-state")==="ready"||t.sheet?(s(),Promise.resolve()):new Promise((r,n)=>{let i=()=>{t.setAttribute("data-vb-theme-state","ready"),g(),s(),r(void 0)},c=()=>{t.setAttribute("data-vb-theme-state","error"),x.delete(e),g(),n(new Error(`Failed to load theme: ${e}`))},g=()=>{t.removeEventListener("load",i),t.removeEventListener("error",c)};t.addEventListener("load",i,{once:!0}),t.addEventListener("error",c,{once:!0})})}async function D(t){if(!t||Ue.has(t))return;if(x.has(t))return x.get(t);if(typeof document<"u"){let s=document.querySelector(`link[data-vb-theme="${t}"]`);if(s){let r=Ne(s,t);return x.set(t,r),r}}let e=be(),a=N(t)?Xe(t,e):Ke(t,e);return x.set(t,a),a}async function Ke(t,e){let a=ze(t,e);return new Promise((s,r)=>{let n=document.querySelector(`link[data-vb-theme-preload="${t}"]`);n&&n.remove();let i=document.createElement("link");i.rel="stylesheet",i.href=a,i.setAttribute("data-vb-theme",t),i.setAttribute("data-vb-theme-state","loading"),i.onload=()=>{i.setAttribute("data-vb-theme-state","ready"),s()},i.onerror=()=>{i.setAttribute("data-vb-theme-state","error"),i.remove(),x.delete(t),r(new Error(`Failed to load theme: ${t}`))},document.head.appendChild(i)})}function Xe(t,e){let a=`${e}/packs/${t}.theme.css`,s=`${e}/packs/${t}.effects.css`;return new Promise((r,n)=>{let i=document.querySelector(`link[data-vb-theme-preload="${t}"]`);i&&i.remove();let c=document.createElement("link");c.rel="stylesheet",c.href=a,c.setAttribute("data-vb-theme",t),c.setAttribute("data-vb-pack",t),c.setAttribute("data-vb-theme-state","loading"),c.onload=()=>{c.setAttribute("data-vb-theme-state","ready");let g=document.createElement("link");g.rel="stylesheet",g.href=s,g.setAttribute("data-vb-pack-effects",t),document.head.appendChild(g),we(t,e),r()},c.onerror=()=>{c.setAttribute("data-vb-theme-state","error"),c.remove(),x.delete(t),n(new Error(`Failed to load pack: ${t}`))},document.head.appendChild(c)})}var ve=[{id:"default",name:"Default",swatchBg:"#3b82f6",seeds:{}},{id:"ocean",name:"Ocean",swatchBg:"#0891b2",seeds:{"--hue-primary":200,"--hue-secondary":180,"--hue-accent":45,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"45%","--chroma-secondary":.1,"--lightness-accent":"70%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"forest",name:"Forest",swatchBg:"#059669",seeds:{"--hue-primary":145,"--hue-secondary":90,"--hue-accent":30,"--lightness-primary":"45%","--chroma-primary":.15,"--lightness-secondary":"55%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"55%","--chroma-primary":.12}},{id:"sunset",name:"Sunset",swatchBg:"#ea580c",seeds:{"--hue-primary":25,"--hue-secondary":0,"--hue-accent":280,"--lightness-primary":"60%","--chroma-primary":.2,"--lightness-secondary":"55%","--chroma-secondary":.18,"--lightness-accent":"55%","--chroma-accent":.18},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.16}},{id:"rose",name:"Rose",swatchBg:"#e11d48",seeds:{"--hue-primary":350,"--hue-secondary":330,"--hue-accent":200,"--lightness-primary":"55%","--chroma-primary":.18,"--lightness-secondary":"50%","--chroma-secondary":.14,"--lightness-accent":"60%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.14}},{id:"lavender",name:"Lavender",swatchBg:"#a855f7",seeds:{"--hue-primary":280,"--hue-secondary":300,"--hue-accent":60,"--lightness-primary":"55%","--chroma-primary":.14,"--lightness-secondary":"50%","--chroma-secondary":.12,"--lightness-accent":"70%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.12}},{id:"coral",name:"Coral",swatchBg:"#f97316",seeds:{"--hue-primary":15,"--hue-secondary":25,"--hue-accent":180,"--lightness-primary":"60%","--chroma-primary":.18,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"55%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.15}},{id:"slate",name:"Slate",swatchBg:"#64748b",seeds:{"--hue-primary":220,"--hue-secondary":210,"--hue-accent":45,"--lightness-primary":"48%","--chroma-primary":.1,"--lightness-secondary":"45%","--chroma-secondary":.06,"--lightness-accent":"68%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.08}},{id:"emerald",name:"Emerald",swatchBg:"#10b981",seeds:{"--hue-primary":160,"--hue-secondary":140,"--hue-accent":30,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"48%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"amber",name:"Amber",swatchBg:"#f59e0b",seeds:{"--hue-primary":45,"--hue-secondary":30,"--hue-accent":240,"--lightness-primary":"60%","--chroma-primary":.16,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"52%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"68%","--chroma-primary":.14}},{id:"indigo",name:"Indigo",swatchBg:"#6366f1",seeds:{"--hue-primary":250,"--hue-secondary":270,"--hue-accent":35,"--lightness-primary":"48%","--chroma-primary":.18,"--lightness-secondary":"45%","--chroma-secondary":.14,"--lightness-accent":"68%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"62%","--chroma-primary":.14}}],Se=[{id:"default",name:"Default",hue:210,shape:"balanced",character:"The default",swatchBg:"#3b82f6",tier:"core"},{id:"modern",name:"Modern",hue:270,shape:"rounded",character:"Vibrant & elevated",swatchBg:"#6366f1",tier:"core"},{id:"minimal",name:"Minimal",hue:240,shape:"sharp",character:"Clean & flat",swatchBg:"#71717a",tier:"core"},{id:"classic",name:"Classic",hue:220,shape:"subtle",character:"Serif & elegant",swatchBg:"#92400e",tier:"core"}],K=[{id:"swiss",name:"Swiss",icon:"grid-3x3",character:"Precision grid",swatchBg:"#ff3e00",swatchFg:"white",tier:"showcase",category:"Design"},{id:"brutalist",name:"Brutalist",icon:"square",character:"Raw, industrial",swatchBg:"#1a1a1a",swatchFg:"#f5f5f5",tier:"showcase",category:"Design"},{id:"art-deco",name:"Art Deco",icon:"crown",character:"1920s luxury",swatchBg:"#1A1A1A",swatchFg:"#C9A84C",tier:"showcase",category:"Design"},{id:"editorial",name:"Editorial",icon:"newspaper",character:"Magazine elegance",swatchBg:"#1a1a1a",swatchFg:"#c9a227",tier:"showcase",category:"Content"},{id:"genai",name:"GenAI",icon:"sparkles",character:"AI aesthetic",swatchBg:"#1a0a2e",swatchFg:"#a855f7",tier:"showcase",category:"Modern"},{id:"glassmorphism",name:"Glass",icon:"glass-water",character:"Frosted surfaces",swatchBg:"#667eea",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"startup",name:"Startup",icon:"rocket",character:"SaaS energy",swatchBg:"#4f46e5",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"organic",name:"Organic",icon:"leaf",character:"Natural, handcrafted",swatchBg:"#2d5016",swatchFg:"#faf5e6",tier:"showcase",category:"Creative"},{id:"rough",name:"Rough",icon:"pencil",character:"Hand-drawn sketch",swatchBg:"#f5f0e8",swatchFg:"#3a3a3a",tier:"showcase",category:"Creative"},{id:"cyber",name:"Cyber",icon:"zap",character:"Neon futuristic",swatchBg:"#0a0a1a",swatchFg:"#00ff88",tier:"showcase",category:"Creative"},{id:"vaporwave",name:"Vaporwave",icon:"radio",character:"Neon dreamy",swatchBg:"#2b0040",swatchFg:"#ff6ad5",tier:"showcase",category:"Aesthetic"},{id:"neumorphism",name:"Neumorph",icon:"circle",character:"Soft embossed",swatchBg:"#e0e0e0",swatchFg:"#a0a0a0",tier:"showcase",category:"Aesthetic"},{id:"bauhaus",name:"Bauhaus",icon:"shapes",character:"Geometric",swatchBg:"#F1FAEE",swatchFg:"#E63946",tier:"showcase",category:"Aesthetic"},{id:"claymorphism",name:"Clay",icon:"circle-dot",character:"Puffy 3D",swatchBg:"#f0f0f5",swatchFg:"#FF6B9D",tier:"showcase",category:"Aesthetic"},{id:"alpha1999",name:"Alpha1999",icon:"orbit",character:"Space retro-fi",swatchBg:"#0a0a14",swatchFg:"#d4880f",tier:"showcase",category:"Signature"},{id:"super2026",name:"Super2026",icon:"triangle",character:"Supergraphic bold",swatchBg:"#f5f0e6",swatchFg:"#c23616",tier:"showcase",category:"Signature"},{id:"magna",name:"Magna",icon:"orbit",character:"Odyssey 2 retro",swatchBg:"#0d0b14",swatchFg:"#f97316",tier:"showcase",category:"Signature"},{id:"win9x",name:"Win9x",icon:"monitor",character:"Classic desktop",swatchBg:"#008080",swatchFg:"#c0c0c0",tier:"showcase",category:"OS Styles"},{id:"nes",name:"NES",icon:"joystick",character:"Console pixels",swatchBg:"#bcbcbc",swatchFg:"#e40521",tier:"showcase",category:"OS Styles"},{id:"8bit",name:"8-Bit",icon:"gamepad-2",character:"Retro pixel art",swatchBg:"#000080",swatchFg:"#ffff00",tier:"showcase",category:"OS Styles"}],X=[{id:"nord",name:"Nord",icon:"snowflake",character:"Arctic calm",swatchBg:"#2E3440",swatchFg:"#81A1C1",tier:"community",category:"Editor Palettes"},{id:"solarized",name:"Solarized",icon:"sun-dim",character:"Engineered precision",swatchBg:"#002B36",swatchFg:"#268BD2",tier:"community",category:"Editor Palettes"},{id:"dracula",name:"Dracula",icon:"moon-star",character:"Dark elegance",swatchBg:"#282A36",swatchFg:"#BD93F9",tier:"community",category:"Editor Palettes"},{id:"catppuccin-mocha",name:"Catppuccin",icon:"coffee",character:"Warm pastels",swatchBg:"#1E1E2E",swatchFg:"#CBA6F7",tier:"community",category:"Editor Palettes"},{id:"catppuccin-latte",name:"Ctp Latte",icon:"coffee",character:"Cozy daytime",swatchBg:"#eff1f5",swatchFg:"#8839ef",tier:"community",category:"Editor Palettes"},{id:"catppuccin-frappe",name:"Ctp Frapp\xE9",icon:"coffee",character:"Cool twilight",swatchBg:"#303446",swatchFg:"#ca9ee6",tier:"community",category:"Editor Palettes"},{id:"catppuccin-macchiato",name:"Ctp Macchiato",icon:"coffee",character:"Deep blue",swatchBg:"#24273a",swatchFg:"#c6a0f6",tier:"community",category:"Editor Palettes"},{id:"gruvbox",name:"Gruvbox",icon:"palette",character:"Retro warmth",swatchBg:"#282828",swatchFg:"#ebdbb2",tier:"community",category:"Editor Palettes"},{id:"tokyo-night",name:"Tokyo Night",icon:"moon",character:"Night-owl vibes",swatchBg:"#1a1b26",swatchFg:"#7aa2f7",tier:"community",category:"Editor Palettes"},{id:"rose-pine",name:"Ros\xE9 Pine",icon:"flower-2",character:"Muted elegance",swatchBg:"#191724",swatchFg:"#ebbcba",tier:"community",category:"Editor Palettes"},{id:"cottagecore",name:"Cottagecore",icon:"flower-2",character:"Pastoral",swatchBg:"#fdf8f0",swatchFg:"#7d8c6d",tier:"community",category:"Niche"},{id:"terminal",name:"Terminal",icon:"terminal",character:"Retro CRT",swatchBg:"#0d1117",swatchFg:"#00ff00",tier:"community",category:"Niche"},{id:"clinical",name:"Clinical",icon:"heart-pulse",character:"Sterile precision",swatchBg:"#ffffff",swatchFg:"#0077b6",tier:"community",category:"Industry"},{id:"financial",name:"Financial",icon:"landmark",character:"Navy + gold",swatchBg:"#1b2a4a",swatchFg:"#c9a84c",tier:"community",category:"Industry"},{id:"government",name:"Government",icon:"shield",character:"Official",swatchBg:"#002868",swatchFg:"#bf0a30",tier:"community",category:"Industry"},{id:"dawn",name:"Dawn",icon:"sunrise",character:"Golden morning",swatchBg:"#fef3e2",swatchFg:"#d4a574",tier:"community",category:"Mood/Time"},{id:"dusk",name:"Dusk",icon:"sunset",character:"Twilight",swatchBg:"#1a1b2e",swatchFg:"#e5a858",tier:"community",category:"Mood/Time"},{id:"midnight",name:"Midnight",icon:"moon",character:"Deep night",swatchBg:"#0d1117",swatchFg:"#58a6ff",tier:"community",category:"Mood/Time"},{id:"high-noon",name:"High Noon",icon:"sun",character:"Maximum bright",swatchBg:"#ffffff",swatchFg:"#e63946",tier:"community",category:"Mood/Time"}],ke=[{id:"kawaii",name:"Kawaii",icon:"heart",character:"Cute aesthetic",swatchBg:"#ffb7c5",swatchFg:"#ff69b4",tier:"showcase",category:"Packs"},{id:"memphis",name:"Memphis",icon:"star",character:"Bold patterns",swatchBg:"#FFF8F0",swatchFg:"#d03040",tier:"showcase",category:"Packs"}];var ct=[...K,...X],dt=[...Se,...K,...X,...ke],_=t=>K.filter(e=>e.category===t),Ee=[{label:"Style",themes:Se,tier:"core"},{label:"Design",themes:_("Design"),tier:"showcase"},{label:"Content",themes:_("Content"),tier:"showcase"},{label:"Modern",themes:_("Modern"),tier:"showcase"},{label:"Creative",themes:_("Creative"),tier:"showcase"},{label:"Aesthetic",themes:_("Aesthetic"),tier:"showcase"},{label:"Signature",themes:_("Signature"),tier:"showcase"},{label:"OS Styles",themes:_("OS Styles"),tier:"showcase"},{label:"Packs",themes:ke,tier:"showcase"},{label:"More Themes",themes:X,tier:"community"}];function Ye(){let t=globalThis.localStorage;if(!t)throw new Error("VBStore: localStorage is not available in this environment");return{async getRaw(e){return t.getItem(e)},async setRaw(e,a){t.setItem(e,a)},async removeRaw(e){t.removeItem(e)},async keys(e){let a=[];for(let s=0;s<t.length;s++){let r=t.key(s);r&&r.startsWith(e)&&a.push(r)}return a}}}var I=null;function v(){return I||(I=Ye()),I}function Y(t,e){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");if(typeof e!="string"||!e)throw new TypeError("VBStore: key must be a non-empty string");return`vb:${t}:${e}`}function xe(t){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${t}:`}function _e(t){try{let e=JSON.parse(t);if(e&&typeof e=="object"&&typeof e.timestamp=="number")return e}catch{}return null}var u={configure(t={}){I=t.backend??null},async set(t,e,a){let s={data:a,timestamp:Date.now()};await v().setRaw(Y(t,e),JSON.stringify(s))},async get(t,e,a){let s=await v().getRaw(Y(t,e));if(s==null)return null;let r=_e(s);return!r||a?.maxAge!=null&&Date.now()-r.timestamp>a.maxAge?null:r.data},async remove(t,e){await v().removeRaw(Y(t,e))},async list(t){let e=xe(t),a=await v().keys(e),s=[];for(let r of a){let n=await v().getRaw(r);if(n==null)continue;let i=_e(n);i&&s.push({key:r.slice(e.length),data:i.data,timestamp:i.timestamp})}return s},async clear(t){let e=xe(t),a=await v().keys(e);for(let s of a)await v().removeRaw(s)},async clearAll(){let t=await v().keys("vb:");for(let e of t)await v().removeRaw(e)},async setMany(t,e){for(let[a,s]of e)await u.set(t,a,s)}};var H="theme",V="current",B={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""},Be=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],h=null,l={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let t=await u.get(H,V);h=t?{...B,...t}:{...B};try{await D(h.brand)}catch{h.brand="default"}return this.apply(h),this._watchSystemPreference(),this._watchRootAttributes(),this._watchCrossDocumentStorage(),h})(),this._initPromise)},_watchCrossDocumentStorage(){typeof window>"u"||window.addEventListener("storage",async t=>{if(t.key!==`vb:${H}:${V}`||!t.newValue)return;let e;try{e=JSON.parse(t.newValue)?.data}catch{return}if(!e||typeof e!="object")return;let a={...B,...h,...e};if(a.brand&&a.brand!==h?.brand)try{await D(a.brand)}catch{a.brand="default"}h=a,this.apply(h||{})})},load(){return h?{...h}:{...B}},save(t){let e={...h??B,...t};return h=e,u.set(H,V,e).catch(()=>{}),e},apply({mode:t="auto",brand:e="default",borderStyle:a="",iconSet:s="",fluid:r="",backdrop:n="",backdropChrome:i="",pageBgType:c="",pageBgColor:g="",pageBgGradStart:y="",pageBgGradEnd:p="",pageBgGradDir:b=""}={}){let d=document.documentElement;d.dataset.mode=t==="auto"?this.getEffectiveMode():t;let M=(d.dataset.theme||"").split(" ").filter(P=>P.startsWith("a11y-")),m=e!=="default"?[e,...M]:[...M];m.length?d.dataset.theme=m.join(" "):delete d.dataset.theme;let S=a||this._readCSSHint("--theme-border-style");S&&S!=="clean"?d.dataset.borderStyle=S:delete d.dataset.borderStyle;let o=s||this._readCSSHint("--theme-icon-set");if(o&&o!=="lucide"?d.dataset.iconSet=o:delete d.dataset.iconSet,r?d.dataset.fluid=r:delete d.dataset.fluid,n?d.dataset.backdrop=n:delete d.dataset.backdrop,i&&i!=="card"?d.dataset.backdropChrome=i:delete d.dataset.backdropChrome,c==="color"&&g)d.style.setProperty("--page-bg-color",g),d.style.removeProperty("--page-bg-gradient");else if(c==="gradient"&&y&&p){let P=b||"to bottom";d.style.setProperty("--page-bg-gradient",`linear-gradient(${P}, ${y}, ${p})`),d.style.removeProperty("--page-bg-color")}else d.style.removeProperty("--page-bg-color"),d.style.removeProperty("--page-bg-gradient");let w=this.load().accent||"default";this._applyAccent(w),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:t,brand:e,accent:w,borderStyle:S,iconSet:o,fluid:r,backdrop:n,backdropChrome:i,pageBgType:c,effectiveMode:this.getEffectiveMode()}}))},setMode(t){let e=this.save({mode:t});this.apply(e)},async setBrand(t){try{await D(t)}catch(a){console.warn(`[VB] Theme "${t}" failed to load, using default`,a),t="default"}let e=this.save({brand:t});this.apply(e)},setAccent(t){this.save({accent:t}),this._applyAccent(t),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}}))},setBorderStyle(t){let e=this.save({borderStyle:t});this.apply(e)},setIconSet(t){let e=this.save({iconSet:t});this.apply(e)},setFluid(t){let e=this.save({fluid:t});this.apply(e)},setBackdrop(t){let e=this.save({backdrop:t});this.apply(e)},setBackdropChrome(t){let e=this.save({backdropChrome:t});this.apply(e)},setPageBg({type:t="",color:e="",gradStart:a="",gradEnd:s="",gradDir:r=""}={}){let n=this.save({pageBgType:t,pageBgColor:e,pageBgGradStart:a,pageBgGradEnd:s,pageBgGradDir:r});this.apply(n)},getEffectiveMode(){let{mode:t}=this.load();return t!=="auto"?t:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},getState(){let{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:n,backdrop:i,backdropChrome:c,pageBgType:g,pageBgColor:y,pageBgGradStart:p,pageBgGradEnd:b,pageBgGradDir:d}=this.load();return{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:n,backdrop:i,backdropChrome:c,pageBgType:g,pageBgColor:y,pageBgGradStart:p,pageBgGradEnd:b,pageBgGradDir:d,effectiveMode:this.getEffectiveMode()}},toggleMode(){let e=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(e)},reset(){h={...B},u.remove(H,V).catch(()=>{});let t=document.documentElement;t.style.removeProperty("--page-bg-color"),t.style.removeProperty("--page-bg-gradient");for(let e of Be)t.style.removeProperty(e);this.apply(B)},_readCSSHint(t){return getComputedStyle(document.documentElement).getPropertyValue(t).trim()},_applyAccent(t){let e=document.documentElement,a=ve.find(s=>s.id===t);for(let s of Be)e.style.removeProperty(s);if(!(!a||!a.seeds||Object.keys(a.seeds).length===0)){for(let[s,r]of Object.entries(a.seeds))e.style.setProperty(s,String(r));if(a.seedsDark&&this.getEffectiveMode()==="dark")for(let[s,r]of Object.entries(a.seedsDark))e.style.setProperty(s,String(r))}},_watchRootAttributes(){this._rootObserver||(this._rootObserver=new MutationObserver(t=>{for(let e of t)e.attributeName==="data-theme"?this._syncFromDataTheme():e.attributeName==="data-mode"&&this._syncFromDataMode()}),this._rootObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme","data-mode"]}))},_syncFromDataTheme(){if(!h)return;let a=(document.documentElement.dataset.theme||"").split(/\s+/).filter(Boolean).find(s=>!s.startsWith("a11y-"))||"default";a!==h.brand&&(h.brand=a,D(a).catch(()=>{}),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_syncFromDataMode(){if(!h)return;let t=document.documentElement.dataset.mode||"auto",e=h.mode==="auto"?this.getEffectiveMode():h.mode;t!==e&&(h.mode=t,window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_watchSystemPreference(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{let e=this.load();e.mode==="auto"&&this.apply(e)})}};var Ce="environment",Te="preferences",J={timeOfDay:!1,seasonal:!1},Je=900*1e3,E={...J};function C(t,e,a){return t+(e-t)*Math.min(1,Math.max(0,a))}var O={_timer:null,_baseHues:null,_timeOverride:null,_monthOverride:null,async init(){let t=await u.get(Ce,Te);E=t?{...J,...t}:{...J},(E.timeOfDay||E.seasonal)&&(this._captureBaseHues(),this._update(),this._startLoop()),window.addEventListener("vb:theme-change",()=>{this._hasActiveSource()&&requestAnimationFrame(()=>{this._captureBaseHues(),this._update()})})},load(){return{...E}},save(t){return E={...E,...t},u.set(Ce,Te,E).catch(()=>{}),{...E}},setTimeOverride(t){this._timeOverride=t,this._hasActiveSource()&&this._update()},setMonthOverride(t){this._monthOverride=t,this._hasActiveSource()&&this._update()},setSource(t,e){let a=this.save({[t]:e});e?(this._captureBaseHues(),this._update(),this._startLoop()):this._hasActiveSource(a)?this._update():(this._clearModifiers(),this._stopLoop())},_hasActiveSource(t){let e=t||this.load();return e.timeOfDay||e.seasonal},_captureBaseHues(){let t=document.documentElement;t.style.removeProperty("--hue-primary"),t.style.removeProperty("--hue-secondary"),t.style.removeProperty("--hue-accent");let e=t.getAttribute("data-theme");if(e){let a=`[data-theme~="${e}"]`;for(let s of document.styleSheets)try{for(let r=0;r<s.cssRules.length;r++){let n=s.cssRules[r];if(n.selectorText?.includes(a)&&!n.selectorText.includes("dark")){let i=n.style?.getPropertyValue("--hue-primary");if(i){this._baseHues={primary:parseFloat(i)||260,secondary:parseFloat(n.style.getPropertyValue("--hue-secondary"))||200,accent:parseFloat(n.style.getPropertyValue("--hue-accent"))||30};return}}}}catch{}}this._baseHues={primary:260,secondary:200,accent:30}},_update(){let t=this.load(),e=0;t.timeOfDay&&(e+=this._getTimeOfDayOffset()),t.seasonal&&(e+=this._getSeasonalOffset());let a=document.documentElement;e!==0&&this._baseHues?(a.style.setProperty("--hue-primary",String(this._baseHues.primary+e)),a.style.setProperty("--hue-secondary",String(this._baseHues.secondary+e)),a.style.setProperty("--hue-accent",String(this._baseHues.accent+e*.5))):e===0&&this._clearModifiers()},_clearModifiers(){let t=document.documentElement;t.style.removeProperty("--hue-primary"),t.style.removeProperty("--hue-secondary"),t.style.removeProperty("--hue-accent")},_getTimeOfDayOffset(){let t=this._timeOverride??new Date().getHours()+new Date().getMinutes()/60;return t<5?-20:t<7?C(-20,20,(t-5)/2):t<10?C(20,5,(t-7)/3):t<14?C(5,0,(t-10)/4):t<17?C(0,-5,(t-14)/3):t<19?C(-5,15,(t-17)/2):t<21?C(15,-10,(t-19)/2):C(-10,-20,(t-21)/8)},_getHemisphere(){return window.__VB_ENV_LOCATION?.hemisphere||"north"},_getSeasonalOffset(){let t=this._monthOverride??new Date().getMonth(),a=this._getHemisphere()==="south"?(t+6)%12:t;return a>=2&&a<=4?5:a>=5&&a<=7?10:a>=8&&a<=10?-5:-10},_startLoop(){this._timer||(this._timer=setInterval(()=>this._update(),Je))},_stopLoop(){this._timer&&clearInterval(this._timer),this._timer=null}};var G=null;function Me(){return"0.2.0-eb7b5882"}function Qe(){let t=document.querySelectorAll('script[src*="vanilla-breeze"]'),e="/cdn/sw.js";for(let a of t){let s=a.getAttribute("src");if(s){let r=s.lastIndexOf("/");if(r!==-1){e=s.slice(0,r)+"/sw.js";break}}}return e}function Pe(){return G||(G=navigator.serviceWorker?.ready??Promise.reject(new Error("SW not supported"))),G}function $e(t){return new Promise((e,a)=>{navigator.serviceWorker?.controller?Ae(navigator.serviceWorker.controller,t,e,a):Pe().then(s=>{let r=s.active||s.waiting||s.installing;r?Ae(r,t,e,a):a(new Error("No active service worker"))}).catch(a)})}function Ae(t,e,a,s){let r=new MessageChannel;r.port1.onmessage=n=>a(n.data),r.port1.onmessageerror=()=>s(new Error("Message error")),t.postMessage({type:e},[r.port2]),setTimeout(()=>s(new Error("SW message timeout")),5e3)}async function Fe(){return $e("GET_STATUS")}async function De(){return $e("CLEAR_CACHE")}async function Oe(){let t=await Pe();return await t.update(),{updated:!!t.waiting}}function Ze(){return typeof window>"u"||!("serviceWorker"in navigator)?!1:window.__VB_SERVICE_WORKER?!0:document.querySelector('meta[name="vb-service-worker"]')?.content==="true"}if(Ze()){let t=Qe();window.addEventListener("load",()=>{G=navigator.serviceWorker.register(t).catch(e=>{console.warn("[VB] Service worker registration failed:",e)})})}var $=null,f="settings",L={motionFx:!0,sounds:!1},te=class extends R{#t=null;#e=null;#s=!1;#r=[];#a={...L};#n=!1;setup(){return this.#A(),!0}async#A(){await this.#M(),this.#P(),this.#F(),this.#i(),this.listen(window,"vb:theme-change",this.#g),this.listen(window,"vb:extensions-change",this.#g),this.listen(window,"vb:a11y-themes-change",this.#g)}teardown(){}get data(){return{a11yThemes:[...this.#r],extensions:{...this.#a},sticky:this.#n}}set data(e){if(!e||typeof e!="object")return;let a=[];Array.isArray(e.a11yThemes)&&(this.#r=[...e.a11yThemes],a.push(u.set(f,"a11y",this.#r))),e.extensions&&typeof e.extensions=="object"&&(this.#a={...L,...e.extensions},a.push(u.set(f,"extensions",this.#a))),e.sticky!=null&&(this.#n=!!e.sticky,a.push(u.set(f,"sticky",this.#n?"on":"off"))),Promise.all(a).then(()=>{this.#i?.(),this.dispatchEvent(new CustomEvent("settings-panel:data-changed",{detail:{data:this.data,source:"property"},bubbles:!0}))})}async#M(){let[e,a,s]=await Promise.all([u.get(f,"a11y"),u.get(f,"extensions"),u.get(f,"sticky")]);this.#r=Array.isArray(e)?e:[],this.#a={...L,...a??{}},this.#n=s==="on"}#b(e){return e!==""&&e!==void 0}#d(e){return e==="compact"?"compact":e==="spacious"?"spacious":"default"}#w(e,a){return e?a==="compact"?"compact":a==="spacious"?"spacious":"default":""}#v(){return this.#n}#S(e){return e!==""&&e!==void 0}#l(e){return e==="flush"?"flush":e==="elevated"?"elevated":"default"}#k(e,a){return e?a==="flush"?"flush":a==="elevated"?"elevated":"default":""}#h(e){if(!e)return"card";let a=e.split(/\s+/);for(let s of a)if(s==="stretch"||s==="integrated")return s;return"card"}#u(e){return e?e.split(/\s+/).includes("fixed"):!1}#E(e,a){let s=[];return e&&e!=="card"&&s.push(e),a&&s.push("fixed"),s.join(" ")||"card"}#P(){this.#t=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button"),this.#t||(this.#t=document.createElement("button"),this.#t.setAttribute("data-trigger",""),this.#t.setAttribute("aria-label","Site settings"),this.#t.className="settings-trigger",this.#t.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg>',this.prepend(this.#t)),this.#t.setAttribute("aria-haspopup","dialog"),this.#t.setAttribute("aria-expanded","false"),this.#e=document.createElement("div"),this.#e.className="settings-panel",this.#e.setAttribute("role","dialog"),this.#e.setAttribute("aria-label","Site settings");let e=`settings-panel-${crypto.randomUUID().slice(0,8)}`;this.#e.id=e,this.#t.setAttribute("aria-controls",e),this.#e.innerHTML=this.#$(),this.appendChild(this.#e)}#$(){let{mode:e,brand:a,fluid:s,backdrop:r,backdropChrome:n,pageBgType:i,pageBgColor:c,pageBgGradStart:g,pageBgGradEnd:y,pageBgGradDir:p}=l.getState(),b=this.#c(),d=this.#f(),A=this.#b(s),M=this.#d(s),m=this.#S(r),S=this.#l(r);return`
|
|
1
|
+
var Ge=Object.defineProperty;var ge=(t,e)=>()=>(t&&(e=t(t=0)),e);var me=(t,e)=>{for(var a in e)Ge(t,a,{get:e[a],enumerable:!0})};var W={};me(W,{destroyStickyManager:()=>at,initStickyManager:()=>tt});function T(){let t=document.documentElement;if(!t.hasAttribute("data-sticky"))return;let e=document.querySelector("header");e&&!e.hasAttribute("data-sticky")&&(e.dataset.sticky="",Z=!0);let a=document.querySelector("header[data-sticky]"),s=a?a.getBoundingClientRect().height:0;t.style.setProperty("--sticky-offset",`${s}px`)}function Le(){T()}function tt(){if(G)return;G=!0,T(),requestAnimationFrame(T),document.fonts?.ready?.then(T),window.addEventListener("resize",T,{passive:!0}),document.addEventListener("toggle",Le,!0),Q=new ResizeObserver(T);let t=document.querySelector("header[data-sticky]");t&&Q.observe(t)}function at(){if(G){if(G=!1,window.removeEventListener("resize",T),document.removeEventListener("toggle",Le,!0),Q?.disconnect(),Z){let t=document.querySelector("header[data-sticky]");t&&delete t.dataset.sticky,Z=!1}document.documentElement.style.removeProperty("--sticky-offset")}}var G,Q,Z,U=ge(()=>{G=!1,Z=!1});var Re={};me(Re,{SoundManager:()=>st});var qe,ee,st,Ie=ge(()=>{qe="vb-sound",ee={enabled:!1,volume:.5},st={_ctx:null,_enabled:!1,_volume:.5,_initialized:!1,init(){if(this._initialized)return this;let t=this._load();return this._enabled=t.enabled,this._volume=t.volume,this._initialized=!0,this},_getContext(){return this._ctx||(this._ctx=new(window.AudioContext||window.webkitAudioContext)),this._ctx.state==="suspended"&&this._ctx.resume(),this._ctx},_load(){try{let t=localStorage.getItem(qe);return t?{...ee,...JSON.parse(t)}:{...ee}}catch{return{...ee}}},_save(t){try{let e=this._load();localStorage.setItem(qe,JSON.stringify({...e,...t}))}catch{}},_playTone(t,e,a="sine"){if(!this._enabled)return;let s=this._getContext(),r=s.createOscillator(),n=s.createGain();r.connect(n),n.connect(s.destination),r.frequency.value=t,r.type=a,n.gain.value=this._volume*.3,r.start(),n.gain.exponentialRampToValueAtTime(.01,s.currentTime+e),r.stop(s.currentTime+e)},enable(){this._enabled=!0,this._save({enabled:!0}),this.play("click")},disable(){this._enabled=!1,this._save({enabled:!1})},toggle(){return this._enabled?this.disable():this.enable(),this._enabled},isEnabled(){return this._enabled},setVolume(t){this._volume=Math.max(0,Math.min(1,t)),this._save({volume:this._volume})},getVolume(){return this._volume},play(t){if(this._enabled)switch(t){case"click":this._playTone(800,.1);break;case"success":this._playTone(523,.1),setTimeout(()=>this._playTone(659,.1),100),setTimeout(()=>this._playTone(784,.15),200);break;case"error":this._playTone(200,.15,"sawtooth"),setTimeout(()=>this._playTone(180,.2,"sawtooth"),150);break;case"notification":this._playTone(880,.1),setTimeout(()=>this._playTone(1100,.15),100);break;case"soft":this._playTone(600,.05);break;case"tick":this._playTone(1200,.02,"square");break}},getState(){return{enabled:this._enabled,volume:this._volume}}}});var nt=window.matchMedia("(prefers-reduced-motion: reduce)");var pe=new Map;function ye(t,e,a={}){let s=a.priority??10,r={impl:e,bundle:a.bundle,contract:a.contract,priority:s},n=pe.get(t);if(customElements.get(t)){if(!n||n.priority>=s){n&&n.priority===s&&n.impl!==e&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${a.bundle}".`);return}console.warn(`[VB Bundle] Tag <${t}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${a.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=s){n.priority===s&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${n.bundle}". Skipping "${a.bundle}" (first wins at equal priority).`);return}pe.set(t,r),customElements.define(t,e)}var R=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let e of this.#t)e();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,a,s,r){e.addEventListener(a,s,r),this.#t.push(()=>e.removeEventListener(a,s,r))}setup(){}teardown(){}setState(e,a){this.#e||(this.#e=this.attachInternals());let s=this.#e.states;try{a?s.add(e):s.delete(e)}catch{let r=`--${e}`;a?s.add(r):s.delete(r)}}_adoptInternals(e){this.#e||(this.#e=e)}};var _=new Map,z=new Map;var fe=null;function be(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(fe)return fe;if(typeof document<"u"){let t=document.querySelectorAll('script[src*="vanilla-breeze"]');for(let e of t){let a=e.getAttribute("src");if(a){let s=a.lastIndexOf("/");if(s!==-1)return a.slice(0,s)}}}return"/cdn"}var We=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),Ue=new Set(["kawaii","memphis"]);function N(t){return Ue.has(t)}function ze(t,e){return`${e}/themes/${t}.css`}function we(t,e){if(!N(t))return Promise.resolve();if(z.has(t))return z.get(t);let a=import(`${e}/packs/${t}.full.js`).catch(()=>{});return z.set(t,a),a}function Ne(t,e){let a=be(),s=()=>{(N(e)||t.hasAttribute("data-vb-pack"))&&we(e,a)};return t.getAttribute("data-vb-theme-state")==="error"?Promise.reject(new Error(`Failed to load theme: ${e}`)):t.getAttribute("data-vb-theme-state")==="ready"||t.sheet?(s(),Promise.resolve()):new Promise((r,n)=>{let i=()=>{t.setAttribute("data-vb-theme-state","ready"),g(),s(),r(void 0)},c=()=>{t.setAttribute("data-vb-theme-state","error"),_.delete(e),g(),n(new Error(`Failed to load theme: ${e}`))},g=()=>{t.removeEventListener("load",i),t.removeEventListener("error",c)};t.addEventListener("load",i,{once:!0}),t.addEventListener("error",c,{once:!0})})}async function D(t){if(!t||We.has(t))return;if(_.has(t))return _.get(t);if(typeof document<"u"){let s=document.querySelector(`link[data-vb-theme="${t}"]`);if(s){let r=Ne(s,t);return _.set(t,r),r}}let e=be(),a=N(t)?Xe(t,e):Ke(t,e);return _.set(t,a),a}async function Ke(t,e){let a=ze(t,e);return new Promise((s,r)=>{let n=document.querySelector(`link[data-vb-theme-preload="${t}"]`);n&&n.remove();let i=document.createElement("link");i.rel="stylesheet",i.href=a,i.setAttribute("data-vb-theme",t),i.setAttribute("data-vb-theme-state","loading"),i.onload=()=>{i.setAttribute("data-vb-theme-state","ready"),s()},i.onerror=()=>{i.setAttribute("data-vb-theme-state","error"),i.remove(),_.delete(t),r(new Error(`Failed to load theme: ${t}`))},document.head.appendChild(i)})}function Xe(t,e){let a=`${e}/packs/${t}.theme.css`,s=`${e}/packs/${t}.effects.css`;return new Promise((r,n)=>{let i=document.querySelector(`link[data-vb-theme-preload="${t}"]`);i&&i.remove();let c=document.createElement("link");c.rel="stylesheet",c.href=a,c.setAttribute("data-vb-theme",t),c.setAttribute("data-vb-pack",t),c.setAttribute("data-vb-theme-state","loading"),c.onload=()=>{c.setAttribute("data-vb-theme-state","ready");let g=document.createElement("link");g.rel="stylesheet",g.href=s,g.setAttribute("data-vb-pack-effects",t),document.head.appendChild(g),we(t,e),r()},c.onerror=()=>{c.setAttribute("data-vb-theme-state","error"),c.remove(),_.delete(t),n(new Error(`Failed to load pack: ${t}`))},document.head.appendChild(c)})}var ve=[{id:"default",name:"Default",swatchBg:"#3b82f6",seeds:{}},{id:"ocean",name:"Ocean",swatchBg:"#0891b2",seeds:{"--hue-primary":200,"--hue-secondary":180,"--hue-accent":45,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"45%","--chroma-secondary":.1,"--lightness-accent":"70%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"forest",name:"Forest",swatchBg:"#059669",seeds:{"--hue-primary":145,"--hue-secondary":90,"--hue-accent":30,"--lightness-primary":"45%","--chroma-primary":.15,"--lightness-secondary":"55%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"55%","--chroma-primary":.12}},{id:"sunset",name:"Sunset",swatchBg:"#ea580c",seeds:{"--hue-primary":25,"--hue-secondary":0,"--hue-accent":280,"--lightness-primary":"60%","--chroma-primary":.2,"--lightness-secondary":"55%","--chroma-secondary":.18,"--lightness-accent":"55%","--chroma-accent":.18},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.16}},{id:"rose",name:"Rose",swatchBg:"#e11d48",seeds:{"--hue-primary":350,"--hue-secondary":330,"--hue-accent":200,"--lightness-primary":"55%","--chroma-primary":.18,"--lightness-secondary":"50%","--chroma-secondary":.14,"--lightness-accent":"60%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.14}},{id:"lavender",name:"Lavender",swatchBg:"#a855f7",seeds:{"--hue-primary":280,"--hue-secondary":300,"--hue-accent":60,"--lightness-primary":"55%","--chroma-primary":.14,"--lightness-secondary":"50%","--chroma-secondary":.12,"--lightness-accent":"70%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.12}},{id:"coral",name:"Coral",swatchBg:"#f97316",seeds:{"--hue-primary":15,"--hue-secondary":25,"--hue-accent":180,"--lightness-primary":"60%","--chroma-primary":.18,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"55%","--chroma-accent":.12},seedsDark:{"--lightness-primary":"65%","--chroma-primary":.15}},{id:"slate",name:"Slate",swatchBg:"#64748b",seeds:{"--hue-primary":220,"--hue-secondary":210,"--hue-accent":45,"--lightness-primary":"48%","--chroma-primary":.1,"--lightness-secondary":"45%","--chroma-secondary":.06,"--lightness-accent":"68%","--chroma-accent":.15},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.08}},{id:"emerald",name:"Emerald",swatchBg:"#10b981",seeds:{"--hue-primary":160,"--hue-secondary":140,"--hue-accent":30,"--lightness-primary":"50%","--chroma-primary":.15,"--lightness-secondary":"48%","--chroma-secondary":.12,"--lightness-accent":"65%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"60%","--chroma-primary":.12}},{id:"amber",name:"Amber",swatchBg:"#f59e0b",seeds:{"--hue-primary":45,"--hue-secondary":30,"--hue-accent":240,"--lightness-primary":"60%","--chroma-primary":.16,"--lightness-secondary":"55%","--chroma-secondary":.15,"--lightness-accent":"52%","--chroma-accent":.14},seedsDark:{"--lightness-primary":"68%","--chroma-primary":.14}},{id:"indigo",name:"Indigo",swatchBg:"#6366f1",seeds:{"--hue-primary":250,"--hue-secondary":270,"--hue-accent":35,"--lightness-primary":"48%","--chroma-primary":.18,"--lightness-secondary":"45%","--chroma-secondary":.14,"--lightness-accent":"68%","--chroma-accent":.16},seedsDark:{"--lightness-primary":"62%","--chroma-primary":.14}}],Se=[{id:"default",name:"Default",hue:210,shape:"balanced",character:"The default",swatchBg:"#3b82f6",tier:"core"},{id:"modern",name:"Modern",hue:270,shape:"rounded",character:"Vibrant & elevated",swatchBg:"#6366f1",tier:"core"},{id:"minimal",name:"Minimal",hue:240,shape:"sharp",character:"Clean & flat",swatchBg:"#71717a",tier:"core"},{id:"classic",name:"Classic",hue:220,shape:"subtle",character:"Serif & elegant",swatchBg:"#92400e",tier:"core"}],K=[{id:"swiss",name:"Swiss",icon:"grid-3x3",character:"Precision grid",swatchBg:"#ff3e00",swatchFg:"white",tier:"showcase",category:"Design"},{id:"brutalist",name:"Brutalist",icon:"square",character:"Raw, industrial",swatchBg:"#1a1a1a",swatchFg:"#f5f5f5",tier:"showcase",category:"Design"},{id:"art-deco",name:"Art Deco",icon:"crown",character:"1920s luxury",swatchBg:"#1A1A1A",swatchFg:"#C9A84C",tier:"showcase",category:"Design"},{id:"editorial",name:"Editorial",icon:"newspaper",character:"Magazine elegance",swatchBg:"#1a1a1a",swatchFg:"#c9a227",tier:"showcase",category:"Content"},{id:"genai",name:"GenAI",icon:"sparkles",character:"AI aesthetic",swatchBg:"#1a0a2e",swatchFg:"#a855f7",tier:"showcase",category:"Modern"},{id:"glassmorphism",name:"Glass",icon:"glass-water",character:"Frosted surfaces",swatchBg:"#667eea",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"startup",name:"Startup",icon:"rocket",character:"SaaS energy",swatchBg:"#4f46e5",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"organic",name:"Organic",icon:"leaf",character:"Natural, handcrafted",swatchBg:"#2d5016",swatchFg:"#faf5e6",tier:"showcase",category:"Creative"},{id:"rough",name:"Rough",icon:"pencil",character:"Hand-drawn sketch",swatchBg:"#f5f0e8",swatchFg:"#3a3a3a",tier:"showcase",category:"Creative"},{id:"cyber",name:"Cyber",icon:"zap",character:"Neon futuristic",swatchBg:"#0a0a1a",swatchFg:"#00ff88",tier:"showcase",category:"Creative"},{id:"journal",name:"Journal",icon:"notebook-pen",character:"Dot-grid bullet journal",swatchBg:"#f3ecdc",swatchFg:"#27313f",tier:"showcase",category:"Creative"},{id:"vaporwave",name:"Vaporwave",icon:"radio",character:"Neon dreamy",swatchBg:"#2b0040",swatchFg:"#ff6ad5",tier:"showcase",category:"Aesthetic"},{id:"neumorphism",name:"Neumorph",icon:"circle",character:"Soft embossed",swatchBg:"#e0e0e0",swatchFg:"#a0a0a0",tier:"showcase",category:"Aesthetic"},{id:"bauhaus",name:"Bauhaus",icon:"shapes",character:"Geometric",swatchBg:"#F1FAEE",swatchFg:"#E63946",tier:"showcase",category:"Aesthetic"},{id:"claymorphism",name:"Clay",icon:"circle-dot",character:"Puffy 3D",swatchBg:"#f0f0f5",swatchFg:"#FF6B9D",tier:"showcase",category:"Aesthetic"},{id:"alpha1999",name:"Alpha1999",icon:"orbit",character:"Space retro-fi",swatchBg:"#0a0a14",swatchFg:"#d4880f",tier:"showcase",category:"Signature"},{id:"super2026",name:"Super2026",icon:"triangle",character:"Supergraphic bold",swatchBg:"#f5f0e6",swatchFg:"#c23616",tier:"showcase",category:"Signature"},{id:"magna",name:"Magna",icon:"orbit",character:"Odyssey 2 retro",swatchBg:"#0d0b14",swatchFg:"#f97316",tier:"showcase",category:"Signature"},{id:"win9x",name:"Win9x",icon:"monitor",character:"Classic desktop",swatchBg:"#008080",swatchFg:"#c0c0c0",tier:"showcase",category:"OS Styles"},{id:"nes",name:"NES",icon:"joystick",character:"Console pixels",swatchBg:"#bcbcbc",swatchFg:"#e40521",tier:"showcase",category:"OS Styles"},{id:"8bit",name:"8-Bit",icon:"gamepad-2",character:"Retro pixel art",swatchBg:"#000080",swatchFg:"#ffff00",tier:"showcase",category:"OS Styles"}],X=[{id:"nord",name:"Nord",icon:"snowflake",character:"Arctic calm",swatchBg:"#2E3440",swatchFg:"#81A1C1",tier:"community",category:"Editor Palettes"},{id:"solarized",name:"Solarized",icon:"sun-dim",character:"Engineered precision",swatchBg:"#002B36",swatchFg:"#268BD2",tier:"community",category:"Editor Palettes"},{id:"dracula",name:"Dracula",icon:"moon-star",character:"Dark elegance",swatchBg:"#282A36",swatchFg:"#BD93F9",tier:"community",category:"Editor Palettes"},{id:"catppuccin-mocha",name:"Catppuccin",icon:"coffee",character:"Warm pastels",swatchBg:"#1E1E2E",swatchFg:"#CBA6F7",tier:"community",category:"Editor Palettes"},{id:"catppuccin-latte",name:"Ctp Latte",icon:"coffee",character:"Cozy daytime",swatchBg:"#eff1f5",swatchFg:"#8839ef",tier:"community",category:"Editor Palettes"},{id:"catppuccin-frappe",name:"Ctp Frapp\xE9",icon:"coffee",character:"Cool twilight",swatchBg:"#303446",swatchFg:"#ca9ee6",tier:"community",category:"Editor Palettes"},{id:"catppuccin-macchiato",name:"Ctp Macchiato",icon:"coffee",character:"Deep blue",swatchBg:"#24273a",swatchFg:"#c6a0f6",tier:"community",category:"Editor Palettes"},{id:"gruvbox",name:"Gruvbox",icon:"palette",character:"Retro warmth",swatchBg:"#282828",swatchFg:"#ebdbb2",tier:"community",category:"Editor Palettes"},{id:"tokyo-night",name:"Tokyo Night",icon:"moon",character:"Night-owl vibes",swatchBg:"#1a1b26",swatchFg:"#7aa2f7",tier:"community",category:"Editor Palettes"},{id:"rose-pine",name:"Ros\xE9 Pine",icon:"flower-2",character:"Muted elegance",swatchBg:"#191724",swatchFg:"#ebbcba",tier:"community",category:"Editor Palettes"},{id:"cottagecore",name:"Cottagecore",icon:"flower-2",character:"Pastoral",swatchBg:"#fdf8f0",swatchFg:"#7d8c6d",tier:"community",category:"Niche"},{id:"terminal",name:"Terminal",icon:"terminal",character:"Retro CRT",swatchBg:"#0d1117",swatchFg:"#00ff00",tier:"community",category:"Niche"},{id:"clinical",name:"Clinical",icon:"heart-pulse",character:"Sterile precision",swatchBg:"#ffffff",swatchFg:"#0077b6",tier:"community",category:"Industry"},{id:"financial",name:"Financial",icon:"landmark",character:"Navy + gold",swatchBg:"#1b2a4a",swatchFg:"#c9a84c",tier:"community",category:"Industry"},{id:"government",name:"Government",icon:"shield",character:"Official",swatchBg:"#002868",swatchFg:"#bf0a30",tier:"community",category:"Industry"},{id:"dawn",name:"Dawn",icon:"sunrise",character:"Golden morning",swatchBg:"#fef3e2",swatchFg:"#d4a574",tier:"community",category:"Mood/Time"},{id:"dusk",name:"Dusk",icon:"sunset",character:"Twilight",swatchBg:"#1a1b2e",swatchFg:"#e5a858",tier:"community",category:"Mood/Time"},{id:"midnight",name:"Midnight",icon:"moon",character:"Deep night",swatchBg:"#0d1117",swatchFg:"#58a6ff",tier:"community",category:"Mood/Time"},{id:"high-noon",name:"High Noon",icon:"sun",character:"Maximum bright",swatchBg:"#ffffff",swatchFg:"#e63946",tier:"community",category:"Mood/Time"}],ke=[{id:"kawaii",name:"Kawaii",icon:"heart",character:"Cute aesthetic",swatchBg:"#ffb7c5",swatchFg:"#ff69b4",tier:"showcase",category:"Packs"},{id:"memphis",name:"Memphis",icon:"star",character:"Bold patterns",swatchBg:"#FFF8F0",swatchFg:"#d03040",tier:"showcase",category:"Packs"}];var dt=[...K,...X],lt=[...Se,...K,...X,...ke],B=t=>K.filter(e=>e.category===t),Ee=[{label:"Style",themes:Se,tier:"core"},{label:"Design",themes:B("Design"),tier:"showcase"},{label:"Content",themes:B("Content"),tier:"showcase"},{label:"Modern",themes:B("Modern"),tier:"showcase"},{label:"Creative",themes:B("Creative"),tier:"showcase"},{label:"Aesthetic",themes:B("Aesthetic"),tier:"showcase"},{label:"Signature",themes:B("Signature"),tier:"showcase"},{label:"OS Styles",themes:B("OS Styles"),tier:"showcase"},{label:"Packs",themes:ke,tier:"showcase"},{label:"More Themes",themes:X,tier:"community"}];function Je(){let t=globalThis.localStorage;if(!t)throw new Error("VBStore: localStorage is not available in this environment");return{async getRaw(e){return t.getItem(e)},async setRaw(e,a){t.setItem(e,a)},async removeRaw(e){t.removeItem(e)},async keys(e){let a=[];for(let s=0;s<t.length;s++){let r=t.key(s);r&&r.startsWith(e)&&a.push(r)}return a}}}var I=null;function v(){return I||(I=Je()),I}function J(t,e){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");if(typeof e!="string"||!e)throw new TypeError("VBStore: key must be a non-empty string");return`vb:${t}:${e}`}function xe(t){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${t}:`}function _e(t){try{let e=JSON.parse(t);if(e&&typeof e=="object"&&typeof e.timestamp=="number")return e}catch{}return null}var u={configure(t={}){I=t.backend??null},async set(t,e,a){let s={data:a,timestamp:Date.now()};await v().setRaw(J(t,e),JSON.stringify(s))},async get(t,e,a){let s=await v().getRaw(J(t,e));if(s==null)return null;let r=_e(s);return!r||a?.maxAge!=null&&Date.now()-r.timestamp>a.maxAge?null:r.data},async remove(t,e){await v().removeRaw(J(t,e))},async list(t){let e=xe(t),a=await v().keys(e),s=[];for(let r of a){let n=await v().getRaw(r);if(n==null)continue;let i=_e(n);i&&s.push({key:r.slice(e.length),data:i.data,timestamp:i.timestamp})}return s},async clear(t){let e=xe(t),a=await v().keys(e);for(let s of a)await v().removeRaw(s)},async clearAll(){let t=await v().keys("vb:");for(let e of t)await v().removeRaw(e)},async setMany(t,e){for(let[a,s]of e)await u.set(t,a,s)}};var H="theme",V="current",S={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""};function Ye(t,e){return t?t.brand||S.brand:(e||"").split(/\s+/).find(s=>s&&!s.startsWith("a11y-"))||S.brand}var Be=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],l=null,h={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let t=await u.get(H,V);l=t?{...S,...t}:{...S},l.brand=Ye(t,document.documentElement.dataset.theme);try{await D(l.brand)}catch{l.brand="default"}return this.apply(l),this._watchSystemPreference(),this._watchRootAttributes(),this._watchCrossDocumentStorage(),l})(),this._initPromise)},_watchCrossDocumentStorage(){typeof window>"u"||window.addEventListener("storage",async t=>{if(t.key!==`vb:${H}:${V}`||!t.newValue)return;let e;try{e=JSON.parse(t.newValue)?.data}catch{return}if(!e||typeof e!="object")return;let a={...S,...l,...e};if(a.brand&&a.brand!==l?.brand)try{await D(a.brand)}catch{a.brand="default"}l=a,this.apply(l||{})})},load(){return l?{...l}:{...S}},save(t){let e={...l??S,...t};return l=e,u.set(H,V,e).catch(()=>{}),e},apply({mode:t="auto",brand:e="default",borderStyle:a="",iconSet:s="",fluid:r="",backdrop:n="",backdropChrome:i="",pageBgType:c="",pageBgColor:g="",pageBgGradStart:y="",pageBgGradEnd:p="",pageBgGradDir:b=""}={}){let d=document.documentElement;d.dataset.mode=t==="auto"?this.getEffectiveMode():t;let M=(d.dataset.theme||"").split(" ").filter(P=>P.startsWith("a11y-")),m=e!=="default"?[e,...M]:[...M];m.length?d.dataset.theme=m.join(" "):delete d.dataset.theme;let k=a||this._readCSSHint("--theme-border-style");k&&k!=="clean"?d.dataset.borderStyle=k:delete d.dataset.borderStyle;let o=s||this._readCSSHint("--theme-icon-set");if(o&&o!=="lucide"?d.dataset.iconSet=o:delete d.dataset.iconSet,r?d.dataset.fluid=r:delete d.dataset.fluid,n?d.dataset.backdrop=n:delete d.dataset.backdrop,i&&i!=="card"?d.dataset.backdropChrome=i:delete d.dataset.backdropChrome,c==="color"&&g)d.style.setProperty("--page-bg-color",g),d.style.removeProperty("--page-bg-gradient");else if(c==="gradient"&&y&&p){let P=b||"to bottom";d.style.setProperty("--page-bg-gradient",`linear-gradient(${P}, ${y}, ${p})`),d.style.removeProperty("--page-bg-color")}else d.style.removeProperty("--page-bg-color"),d.style.removeProperty("--page-bg-gradient");let w=this.load().accent||"default";this._applyAccent(w),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:t,brand:e,accent:w,borderStyle:k,iconSet:o,fluid:r,backdrop:n,backdropChrome:i,pageBgType:c,effectiveMode:this.getEffectiveMode()}}))},setMode(t){let e=this.save({mode:t});this.apply(e)},async setBrand(t){try{await D(t)}catch(a){console.warn(`[VB] Theme "${t}" failed to load, using default`,a),t="default"}let e=this.save({brand:t});this.apply(e)},setAccent(t){this.save({accent:t}),this._applyAccent(t),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}}))},setBorderStyle(t){let e=this.save({borderStyle:t});this.apply(e)},setIconSet(t){let e=this.save({iconSet:t});this.apply(e)},setFluid(t){let e=this.save({fluid:t});this.apply(e)},setBackdrop(t){let e=this.save({backdrop:t});this.apply(e)},setBackdropChrome(t){let e=this.save({backdropChrome:t});this.apply(e)},setPageBg({type:t="",color:e="",gradStart:a="",gradEnd:s="",gradDir:r=""}={}){let n=this.save({pageBgType:t,pageBgColor:e,pageBgGradStart:a,pageBgGradEnd:s,pageBgGradDir:r});this.apply(n)},getEffectiveMode(){let{mode:t}=this.load();return t!=="auto"?t:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},getState(){let{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:n,backdrop:i,backdropChrome:c,pageBgType:g,pageBgColor:y,pageBgGradStart:p,pageBgGradEnd:b,pageBgGradDir:d}=this.load();return{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:n,backdrop:i,backdropChrome:c,pageBgType:g,pageBgColor:y,pageBgGradStart:p,pageBgGradEnd:b,pageBgGradDir:d,effectiveMode:this.getEffectiveMode()}},toggleMode(){let e=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(e)},reset(){l={...S},u.remove(H,V).catch(()=>{});let t=document.documentElement;t.style.removeProperty("--page-bg-color"),t.style.removeProperty("--page-bg-gradient");for(let e of Be)t.style.removeProperty(e);this.apply(S)},_readCSSHint(t){return getComputedStyle(document.documentElement).getPropertyValue(t).trim()},_applyAccent(t){let e=document.documentElement,a=ve.find(s=>s.id===t);for(let s of Be)e.style.removeProperty(s);if(!(!a||!a.seeds||Object.keys(a.seeds).length===0)){for(let[s,r]of Object.entries(a.seeds))e.style.setProperty(s,String(r));if(a.seedsDark&&this.getEffectiveMode()==="dark")for(let[s,r]of Object.entries(a.seedsDark))e.style.setProperty(s,String(r))}},_watchRootAttributes(){this._rootObserver||(this._rootObserver=new MutationObserver(t=>{for(let e of t)e.attributeName==="data-theme"?this._syncFromDataTheme():e.attributeName==="data-mode"&&this._syncFromDataMode()}),this._rootObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme","data-mode"]}))},_syncFromDataTheme(){if(!l)return;let a=(document.documentElement.dataset.theme||"").split(/\s+/).filter(Boolean).find(s=>!s.startsWith("a11y-"))||"default";a!==l.brand&&(l.brand=a,D(a).catch(()=>{}),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_syncFromDataMode(){if(!l)return;let t=document.documentElement.dataset.mode||"auto",e=l.mode==="auto"?this.getEffectiveMode():l.mode;t!==e&&(l.mode=t,window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_watchSystemPreference(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{let e=this.load();e.mode==="auto"&&this.apply(e)})}};var Ce="environment",Te="preferences",Y={timeOfDay:!1,seasonal:!1},Qe=900*1e3,x={...Y};function C(t,e,a){return t+(e-t)*Math.min(1,Math.max(0,a))}var O={_timer:null,_baseHues:null,_timeOverride:null,_monthOverride:null,async init(){let t=await u.get(Ce,Te);x=t?{...Y,...t}:{...Y},(x.timeOfDay||x.seasonal)&&(this._captureBaseHues(),this._update(),this._startLoop()),window.addEventListener("vb:theme-change",()=>{this._hasActiveSource()&&requestAnimationFrame(()=>{this._captureBaseHues(),this._update()})})},load(){return{...x}},save(t){return x={...x,...t},u.set(Ce,Te,x).catch(()=>{}),{...x}},setTimeOverride(t){this._timeOverride=t,this._hasActiveSource()&&this._update()},setMonthOverride(t){this._monthOverride=t,this._hasActiveSource()&&this._update()},setSource(t,e){let a=this.save({[t]:e});e?(this._captureBaseHues(),this._update(),this._startLoop()):this._hasActiveSource(a)?this._update():(this._clearModifiers(),this._stopLoop())},_hasActiveSource(t){let e=t||this.load();return e.timeOfDay||e.seasonal},_captureBaseHues(){let t=document.documentElement;t.style.removeProperty("--hue-primary"),t.style.removeProperty("--hue-secondary"),t.style.removeProperty("--hue-accent");let e=t.getAttribute("data-theme");if(e){let a=`[data-theme~="${e}"]`;for(let s of document.styleSheets)try{for(let r=0;r<s.cssRules.length;r++){let n=s.cssRules[r];if(n.selectorText?.includes(a)&&!n.selectorText.includes("dark")){let i=n.style?.getPropertyValue("--hue-primary");if(i){this._baseHues={primary:parseFloat(i)||260,secondary:parseFloat(n.style.getPropertyValue("--hue-secondary"))||200,accent:parseFloat(n.style.getPropertyValue("--hue-accent"))||30};return}}}}catch{}}this._baseHues={primary:260,secondary:200,accent:30}},_update(){let t=this.load(),e=0;t.timeOfDay&&(e+=this._getTimeOfDayOffset()),t.seasonal&&(e+=this._getSeasonalOffset());let a=document.documentElement;e!==0&&this._baseHues?(a.style.setProperty("--hue-primary",String(this._baseHues.primary+e)),a.style.setProperty("--hue-secondary",String(this._baseHues.secondary+e)),a.style.setProperty("--hue-accent",String(this._baseHues.accent+e*.5))):e===0&&this._clearModifiers()},_clearModifiers(){let t=document.documentElement;t.style.removeProperty("--hue-primary"),t.style.removeProperty("--hue-secondary"),t.style.removeProperty("--hue-accent")},_getTimeOfDayOffset(){let t=this._timeOverride??new Date().getHours()+new Date().getMinutes()/60;return t<5?-20:t<7?C(-20,20,(t-5)/2):t<10?C(20,5,(t-7)/3):t<14?C(5,0,(t-10)/4):t<17?C(0,-5,(t-14)/3):t<19?C(-5,15,(t-17)/2):t<21?C(15,-10,(t-19)/2):C(-10,-20,(t-21)/8)},_getHemisphere(){return window.__VB_ENV_LOCATION?.hemisphere||"north"},_getSeasonalOffset(){let t=this._monthOverride??new Date().getMonth(),a=this._getHemisphere()==="south"?(t+6)%12:t;return a>=2&&a<=4?5:a>=5&&a<=7?10:a>=8&&a<=10?-5:-10},_startLoop(){this._timer||(this._timer=setInterval(()=>this._update(),Qe))},_stopLoop(){this._timer&&clearInterval(this._timer),this._timer=null}};var j=null;function Me(){return"0.3.1-289faf69"}function Ze(){let t=document.querySelectorAll('script[src*="vanilla-breeze"]'),e="/cdn/sw.js";for(let a of t){let s=a.getAttribute("src");if(s){let r=s.lastIndexOf("/");if(r!==-1){e=s.slice(0,r)+"/sw.js";break}}}return e}function Pe(){return j||(j=navigator.serviceWorker?.ready??Promise.reject(new Error("SW not supported"))),j}function $e(t){return new Promise((e,a)=>{navigator.serviceWorker?.controller?Ae(navigator.serviceWorker.controller,t,e,a):Pe().then(s=>{let r=s.active||s.waiting||s.installing;r?Ae(r,t,e,a):a(new Error("No active service worker"))}).catch(a)})}function Ae(t,e,a,s){let r=new MessageChannel;r.port1.onmessage=n=>a(n.data),r.port1.onmessageerror=()=>s(new Error("Message error")),t.postMessage({type:e},[r.port2]),setTimeout(()=>s(new Error("SW message timeout")),5e3)}async function Fe(){return $e("GET_STATUS")}async function De(){return $e("CLEAR_CACHE")}async function Oe(){let t=await Pe();return await t.update(),{updated:!!t.waiting}}function et(){return typeof window>"u"||!("serviceWorker"in navigator)?!1:window.__VB_SERVICE_WORKER?!0:document.querySelector('meta[name="vb-service-worker"]')?.content==="true"}if(et()){let t=Ze();window.addEventListener("load",()=>{j=navigator.serviceWorker.register(t).catch(e=>{console.warn("[VB] Service worker registration failed:",e)})})}var $=null,f="settings",L={motionFx:!0,sounds:!1},te=class extends R{#t=null;#e=null;#s=!1;#r=[];#a={...L};#n=!1;setup(){return this.#A(),!0}async#A(){await this.#M(),this.#P(),this.#F(),this.#i(),this.listen(window,"vb:theme-change",this.#g),this.listen(window,"vb:extensions-change",this.#g),this.listen(window,"vb:a11y-themes-change",this.#g)}teardown(){}get data(){return{a11yThemes:[...this.#r],extensions:{...this.#a},sticky:this.#n}}set data(e){if(!e||typeof e!="object")return;let a=[];Array.isArray(e.a11yThemes)&&(this.#r=[...e.a11yThemes],a.push(u.set(f,"a11y",this.#r))),e.extensions&&typeof e.extensions=="object"&&(this.#a={...L,...e.extensions},a.push(u.set(f,"extensions",this.#a))),e.sticky!=null&&(this.#n=!!e.sticky,a.push(u.set(f,"sticky",this.#n?"on":"off"))),Promise.all(a).then(()=>{this.#i?.(),this.dispatchEvent(new CustomEvent("settings-panel:data-changed",{detail:{data:this.data,source:"property"},bubbles:!0}))})}async#M(){let[e,a,s]=await Promise.all([u.get(f,"a11y"),u.get(f,"extensions"),u.get(f,"sticky")]);this.#r=Array.isArray(e)?e:[],this.#a={...L,...a??{}},this.#n=s==="on"}#b(e){return e!==""&&e!==void 0}#d(e){return e==="compact"?"compact":e==="spacious"?"spacious":"default"}#w(e,a){return e?a==="compact"?"compact":a==="spacious"?"spacious":"default":""}#v(){return this.#n}#S(e){return e!==""&&e!==void 0}#l(e){return e==="flush"?"flush":e==="elevated"?"elevated":"default"}#k(e,a){return e?a==="flush"?"flush":a==="elevated"?"elevated":"default":""}#h(e){if(!e)return"card";let a=e.split(/\s+/);for(let s of a)if(s==="stretch"||s==="integrated")return s;return"card"}#u(e){return e?e.split(/\s+/).includes("fixed"):!1}#E(e,a){let s=[];return e&&e!=="card"&&s.push(e),a&&s.push("fixed"),s.join(" ")||"card"}#P(){this.#t=this.querySelector(":scope > [data-trigger]")||this.querySelector(":scope > button"),this.#t||(this.#t=document.createElement("button"),this.#t.setAttribute("data-trigger",""),this.#t.setAttribute("aria-label","Site settings"),this.#t.className="settings-trigger",this.#t.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/></svg>',this.prepend(this.#t)),this.#t.setAttribute("aria-haspopup","dialog"),this.#t.setAttribute("aria-expanded","false"),this.#e=document.createElement("div"),this.#e.className="settings-panel",this.#e.setAttribute("role","dialog"),this.#e.setAttribute("aria-label","Site settings");let e=`settings-panel-${crypto.randomUUID().slice(0,8)}`;this.#e.id=e,this.#t.setAttribute("aria-controls",e),this.#e.innerHTML=this.#$(),this.appendChild(this.#e)}#$(){let{mode:e,brand:a,fluid:s,backdrop:r,backdropChrome:n,pageBgType:i,pageBgColor:c,pageBgGradStart:g,pageBgGradEnd:y,pageBgGradDir:p}=h.getState(),b=this.#c(),d=this.#f(),A=this.#b(s),M=this.#d(s),m=this.#S(r),k=this.#l(r);return`
|
|
2
2
|
<header class="settings-header">
|
|
3
3
|
<strong>Settings</strong>
|
|
4
4
|
<button type="button" class="settings-close" aria-label="Close settings">
|
|
@@ -85,7 +85,7 @@ var je=Object.defineProperty;var ge=(t,e)=>()=>(t&&(e=t(t=0)),e);var me=(t,e)=>{
|
|
|
85
85
|
<legend class="visually-hidden">Backdrop style</legend>
|
|
86
86
|
${["default","flush","elevated"].map(o=>`
|
|
87
87
|
<label>
|
|
88
|
-
<input type="radio" name="settings-backdrop" value="${o}" ${
|
|
88
|
+
<input type="radio" name="settings-backdrop" value="${o}" ${k===o?"checked":""} />
|
|
89
89
|
${o[0].toUpperCase()+o.slice(1)}
|
|
90
90
|
</label>
|
|
91
91
|
`).join("")}
|
|
@@ -191,5 +191,5 @@ var je=Object.defineProperty;var ge=(t,e)=>()=>(t&&(e=t(t=0)),e);var me=(t,e)=>{
|
|
|
191
191
|
<footer class="settings-footer">
|
|
192
192
|
<button type="button" class="settings-reset">Reset to Defaults</button>
|
|
193
193
|
</footer>
|
|
194
|
-
`}#F(){this.#t.addEventListener("click",this.#D),this.listen(document,"click",this.#O),this.listen(document,"keydown",this.#L),this.#e.querySelector(".settings-close")?.addEventListener("click",()=>this.close()),this.#e.querySelectorAll('input[name="settings-mode"]').forEach(e=>{e.addEventListener("change",this.#q)}),this.#e.querySelector("#settings-theme")?.addEventListener("change",this.#R),this.#e.querySelector("input[data-fluid-toggle]")?.addEventListener("change",this.#I),this.#e.querySelectorAll('input[name="settings-density"]').forEach(e=>{e.addEventListener("change",this.#H)}),this.#e.querySelector("input[data-backdrop-toggle]")?.addEventListener("change",this.#V),this.#e.querySelectorAll('input[name="settings-backdrop"]').forEach(e=>{e.addEventListener("change",this.#G)}),this.#e.querySelectorAll('input[name="settings-backdrop-chrome"]').forEach(e=>{e.addEventListener("change",this.#j)}),this.#e.querySelector("input[data-backdrop-fixed]")?.addEventListener("change",this.#U),this.#e.querySelector("input[data-sticky-toggle]")?.addEventListener("change",this.#W),this.#e.querySelector('[name="settings-page-bg"]')?.addEventListener("change",this.#z),this.#e.querySelector('[name="settings-page-bg-color"]')?.addEventListener("input",this.#o),this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.addEventListener("input",this.#o),this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.addEventListener("input",this.#o),this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.addEventListener("change",this.#o),this.#e.querySelectorAll("input[data-a11y]").forEach(e=>{e.addEventListener("change",this.#N)}),this.#e.querySelectorAll("input[data-ext]").forEach(e=>{e.addEventListener("change",this.#K)}),this.#e.querySelectorAll("input[data-env]").forEach(e=>{e.addEventListener("change",this.#X)}),this.#e.querySelector(".settings-reset")?.addEventListener("click",this.#Y),this.#e.querySelector('[data-action="clear-cache"]')?.addEventListener("click",this.#Z),this.#e.querySelector('[data-action="check-update"]')?.addEventListener("click",this.#ee),this.#T()}#D=e=>{e.stopPropagation(),this.toggle()};#O=e=>{this.#s&&!this.contains(e.target)&&this.close()};#L=e=>{e.key==="Escape"&&this.#s&&(e.preventDefault(),this.close(),this.#t?.focus())};#q=e=>{l.setMode(e.target.value)};#R=async e=>{let a=e.target;a.disabled=!0;try{await l.setBrand(a.value),this.#J()}catch{console.warn("[VB] Theme load failed, using default")}finally{a.disabled=!1}};#I=e=>{let a=e.target.checked,s=this.#d(l.getState().fluid)||"default";l.setFluid(this.#w(a,s)),this.#x(a)};#H=e=>{l.setFluid(this.#w(!0,e.target.value))};#V=e=>{let a=e.target.checked,s=this.#l(l.getState().backdrop)||"default";l.setBackdrop(this.#k(a,s)),this.#_(a)};#G=e=>{l.setBackdrop(this.#k(!0,e.target.value))};#j=e=>{let a=this.#u(l.getState().backdropChrome);l.setBackdropChrome(this.#E(e.target.value,a))};#U=e=>{let a=this.#h(l.getState().backdropChrome);l.setBackdropChrome(this.#E(a,e.target.checked))};#W=async e=>{let a=e.target.checked;this.#n=a,await u.set(f,"sticky",a?"on":"off");let s=document.querySelector("header");if(a){document.documentElement.dataset.sticky="",s&&(s.dataset.sticky="");let{initStickyManager:r}=await Promise.resolve().then(()=>(W(),U));r()}else{delete document.documentElement.dataset.sticky,s&&delete s.dataset.sticky;let{destroyStickyManager:r}=await Promise.resolve().then(()=>(W(),U));r()}};#z=e=>{let a=e.target.value;if(this.#m(a),a==="color"){let s=this.#e.querySelector('[name="settings-page-bg-color"]')?.value||"#1a1a2e";l.setPageBg({type:a,color:s})}else if(a==="gradient"){let s=this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.value||"#1a1a2e",r=this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.value||"#16213e",n=this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";l.setPageBg({type:a,gradStart:s,gradEnd:r,gradDir:n})}else l.setPageBg({})};#o=()=>{let e=this.#e.querySelector('[name="settings-page-bg"]')?.value||"";if(e==="color"){let a=this.#e.querySelector('[name="settings-page-bg-color"]')?.value||"";l.setPageBg({type:e,color:a})}else if(e==="gradient"){let a=this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.value||"",s=this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.value||"",r=this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";l.setPageBg({type:e,gradStart:a,gradEnd:s,gradDir:r})}};#N=e=>{let a=e.target.dataset.a11y,s=this.#c();if(e.target.checked&&!s.includes(a))s.push(a);else if(!e.target.checked){let r=s.indexOf(a);r!==-1&&s.splice(r,1)}this.#B(s),this.#p(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:s}))};#K=e=>{let a=e.target.dataset.ext,s=e.target.checked;this.#Q(a,s),this.#C()};#X=e=>{let a=e.target.dataset.env,s=e.target.checked;O.setSource(a,s)};#Y=()=>{confirm("Reset all settings to defaults?")&&(l.reset(),this.#B([]),this.#p(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:[]})),this.#a={...L},u.remove(f,"extensions").catch(()=>{}),this.#C(),this.#n=!1,u.remove(f,"sticky").catch(()=>{}),delete document.documentElement.dataset.sticky,Promise.resolve().then(()=>(W(),U)).then(e=>e.destroyStickyManager()).catch(()=>{}),O.setSource("timeOfDay",!1),O.setSource("seasonal",!1),this.#i())};#g=()=>{this.#i()};#i(){let{mode:e,brand:a,fluid:s,backdrop:r,backdropChrome:n,pageBgType:i,pageBgColor:c,pageBgGradStart:g,pageBgGradEnd:y,pageBgGradDir:p}=l.getState(),b=this.#c(),d=this.#f(),A=this.#b(s),M=this.#d(s),m=this.#S(r),S=this.#l(r),o=this.#e.querySelector(`input[name="settings-mode"][value="${e}"]`);o&&(o.checked=!0);let w=this.#e.querySelector("#settings-theme");w&&(w.value=a||"default");let P=this.#e.querySelector("input[data-fluid-toggle]");P&&(P.checked=A);let ae=this.#e.querySelector(`input[name="settings-density"][value="${M}"]`);ae&&(ae.checked=!0),this.#x(A);let se=this.#e.querySelector("input[data-backdrop-toggle]");se&&(se.checked=m);let re=this.#e.querySelector(`input[name="settings-backdrop"][value="${S}"]`);re&&(re.checked=!0);let He=this.#h(n),ne=this.#e.querySelector(`input[name="settings-backdrop-chrome"][value="${He}"]`);ne&&(ne.checked=!0);let ie=this.#e.querySelector("input[data-backdrop-fixed]");ie&&(ie.checked=this.#u(n)),this.#_(m);let oe=this.#e.querySelector('[name="settings-page-bg"]');oe&&(oe.value=i||"");let ce=this.#e.querySelector('[name="settings-page-bg-color"]');ce&&c&&(ce.value=c);let de=this.#e.querySelector('[name="settings-page-bg-grad-start"]');de&&g&&(de.value=g);let le=this.#e.querySelector('[name="settings-page-bg-grad-end"]');le&&y&&(le.value=y);let he=this.#e.querySelector('[name="settings-page-bg-grad-dir"]');he&&p&&(he.value=p),m&&this.#m(i||""),this.#e.querySelectorAll("input[data-a11y]").forEach(F=>{let k=F;k.checked=b.includes(k.dataset.a11y||"")}),this.#e.querySelectorAll("input[data-ext]").forEach(F=>{let k=F,q=k.dataset.ext,Ge=d[q];k.checked=Ge??L[q]});let ue=this.#e.querySelector("input[data-sticky-toggle]");ue&&(ue.checked=this.#v());let Ve=this.#y();this.#e.querySelectorAll("input[data-env]").forEach(F=>{let k=F,q=k.dataset.env;k.checked=Ve[q]??!1})}#x(e){let a=this.#e.querySelector(".density-row");a&&(a.hidden=!e)}#_(e){if(this.#e.querySelectorAll(".backdrop-row").forEach(a=>{a.hidden=!e}),e){let a=this.#e.querySelector('[name="settings-page-bg"]')?.value||"";this.#m(a)}}#m(e){let a=this.#e.querySelector(".page-bg-color-row"),s=this.#e.querySelector(".page-bg-grad-row"),r=this.#e.querySelector(".page-bg-grad-dir-row");a&&(a.hidden=e!=="color"),s&&(s.hidden=e!=="gradient"),r&&(r.hidden=e!=="gradient")}#c(){return[...this.#r]}#B(e){this.#r=[...e],u.set(f,"a11y",this.#r).catch(()=>{})}#p(){let e=this.#c(),{brand:a}=l.getState(),s=document.documentElement,r=a!=="default"?[a,...e]:[...e];r.length?s.dataset.theme=r.join(" "):delete s.dataset.theme}#J(){this.#p()}#y(){return O.load()}#f(){return{...this.#a}}#Q(e,a){this.#a={...this.#a,[e]:a},u.set(f,"extensions",this.#a).catch(()=>{})}async#C(){let e=this.#f(),a=document.documentElement;e.motionFx?delete a.dataset.motionReduced:a.dataset.motionReduced="",e.sounds?($||($=(await Promise.resolve().then(()=>(Ie(),Re))).SoundManager),$.init(),$.enable()):$&&$.disable(),window.dispatchEvent(new CustomEvent("vb:extensions-change",{detail:e}))}async#T(){let e=this.#e.querySelector("[data-sw-status] span");if(e){if(!("serviceWorker"in navigator)){e.textContent="Not supported";return}try{let s=(await Fe()).cachedURLs?.length??0;e.textContent=`Active (${s} cached files)`}catch{e.textContent="Not registered"}}}#Z=async e=>{let a=e.target;a.disabled=!0,a.textContent="Clearing\u2026";try{await De(),a.textContent="Cleared!",this.#T(),setTimeout(()=>{a.textContent="Clear Cache",a.disabled=!1},2e3)}catch{a.textContent="Failed",setTimeout(()=>{a.textContent="Clear Cache",a.disabled=!1},2e3)}};#ee=async e=>{let a=e.target;a.disabled=!0,a.textContent="Checking\u2026";try{let{updated:s}=await Oe();a.textContent=s?"Update available!":"Up to date",setTimeout(()=>{a.textContent="Check for Updates",a.disabled=!1},2e3)}catch{a.textContent="Failed",setTimeout(()=>{a.textContent="Check for Updates",a.disabled=!1},2e3)}};open(){this.#s||(this.#s=!0,this.setAttribute("open",""),this.#t?.setAttribute("aria-expanded","true"),this.#i(),this.#te())}#te(){let e=this.getBoundingClientRect(),a=this.#e;a.style.removeProperty("top"),a.style.removeProperty("bottom"),a.style.removeProperty("left"),a.style.removeProperty("right");let s=a.getBoundingClientRect(),r=window.innerWidth,n=window.innerHeight,i=e.top,c=n-e.bottom;i<s.height&&c>i?(a.style.top="calc(100% + 8px)",a.style.bottom="auto"):(a.style.bottom="calc(100% + 8px)",a.style.top="auto");let g=r-e.right,y=e.left,p=s.width;e.right<p&&y<g?(a.style.left="0",a.style.right="auto"):(a.style.right="0",a.style.left="auto")}close(){this.#s&&(this.#s=!1,this.removeAttribute("open"),this.#t?.setAttribute("aria-expanded","false"))}toggle(){this.#s?this.close():this.open()}};ye("settings-panel",te);export{te as SettingsPanel};
|
|
194
|
+
`}#F(){this.#t.addEventListener("click",this.#D),this.listen(document,"click",this.#O),this.listen(document,"keydown",this.#L),this.#e.querySelector(".settings-close")?.addEventListener("click",()=>this.close()),this.#e.querySelectorAll('input[name="settings-mode"]').forEach(e=>{e.addEventListener("change",this.#q)}),this.#e.querySelector("#settings-theme")?.addEventListener("change",this.#R),this.#e.querySelector("input[data-fluid-toggle]")?.addEventListener("change",this.#I),this.#e.querySelectorAll('input[name="settings-density"]').forEach(e=>{e.addEventListener("change",this.#H)}),this.#e.querySelector("input[data-backdrop-toggle]")?.addEventListener("change",this.#V),this.#e.querySelectorAll('input[name="settings-backdrop"]').forEach(e=>{e.addEventListener("change",this.#j)}),this.#e.querySelectorAll('input[name="settings-backdrop-chrome"]').forEach(e=>{e.addEventListener("change",this.#G)}),this.#e.querySelector("input[data-backdrop-fixed]")?.addEventListener("change",this.#W),this.#e.querySelector("input[data-sticky-toggle]")?.addEventListener("change",this.#U),this.#e.querySelector('[name="settings-page-bg"]')?.addEventListener("change",this.#z),this.#e.querySelector('[name="settings-page-bg-color"]')?.addEventListener("input",this.#o),this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.addEventListener("input",this.#o),this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.addEventListener("input",this.#o),this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.addEventListener("change",this.#o),this.#e.querySelectorAll("input[data-a11y]").forEach(e=>{e.addEventListener("change",this.#N)}),this.#e.querySelectorAll("input[data-ext]").forEach(e=>{e.addEventListener("change",this.#K)}),this.#e.querySelectorAll("input[data-env]").forEach(e=>{e.addEventListener("change",this.#X)}),this.#e.querySelector(".settings-reset")?.addEventListener("click",this.#J),this.#e.querySelector('[data-action="clear-cache"]')?.addEventListener("click",this.#Z),this.#e.querySelector('[data-action="check-update"]')?.addEventListener("click",this.#ee),this.#T()}#D=e=>{e.stopPropagation(),this.toggle()};#O=e=>{this.#s&&!this.contains(e.target)&&this.close()};#L=e=>{e.key==="Escape"&&this.#s&&(e.preventDefault(),this.close(),this.#t?.focus())};#q=e=>{h.setMode(e.target.value)};#R=async e=>{let a=e.target;a.disabled=!0;try{await h.setBrand(a.value),this.#Y()}catch{console.warn("[VB] Theme load failed, using default")}finally{a.disabled=!1}};#I=e=>{let a=e.target.checked,s=this.#d(h.getState().fluid)||"default";h.setFluid(this.#w(a,s)),this.#x(a)};#H=e=>{h.setFluid(this.#w(!0,e.target.value))};#V=e=>{let a=e.target.checked,s=this.#l(h.getState().backdrop)||"default";h.setBackdrop(this.#k(a,s)),this.#_(a)};#j=e=>{h.setBackdrop(this.#k(!0,e.target.value))};#G=e=>{let a=this.#u(h.getState().backdropChrome);h.setBackdropChrome(this.#E(e.target.value,a))};#W=e=>{let a=this.#h(h.getState().backdropChrome);h.setBackdropChrome(this.#E(a,e.target.checked))};#U=async e=>{let a=e.target.checked;this.#n=a,await u.set(f,"sticky",a?"on":"off");let s=document.querySelector("header");if(a){document.documentElement.dataset.sticky="",s&&(s.dataset.sticky="");let{initStickyManager:r}=await Promise.resolve().then(()=>(U(),W));r()}else{delete document.documentElement.dataset.sticky,s&&delete s.dataset.sticky;let{destroyStickyManager:r}=await Promise.resolve().then(()=>(U(),W));r()}};#z=e=>{let a=e.target.value;if(this.#m(a),a==="color"){let s=this.#e.querySelector('[name="settings-page-bg-color"]')?.value||"#1a1a2e";h.setPageBg({type:a,color:s})}else if(a==="gradient"){let s=this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.value||"#1a1a2e",r=this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.value||"#16213e",n=this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";h.setPageBg({type:a,gradStart:s,gradEnd:r,gradDir:n})}else h.setPageBg({})};#o=()=>{let e=this.#e.querySelector('[name="settings-page-bg"]')?.value||"";if(e==="color"){let a=this.#e.querySelector('[name="settings-page-bg-color"]')?.value||"";h.setPageBg({type:e,color:a})}else if(e==="gradient"){let a=this.#e.querySelector('[name="settings-page-bg-grad-start"]')?.value||"",s=this.#e.querySelector('[name="settings-page-bg-grad-end"]')?.value||"",r=this.#e.querySelector('[name="settings-page-bg-grad-dir"]')?.value||"to bottom";h.setPageBg({type:e,gradStart:a,gradEnd:s,gradDir:r})}};#N=e=>{let a=e.target.dataset.a11y,s=this.#c();if(e.target.checked&&!s.includes(a))s.push(a);else if(!e.target.checked){let r=s.indexOf(a);r!==-1&&s.splice(r,1)}this.#B(s),this.#p(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:s}))};#K=e=>{let a=e.target.dataset.ext,s=e.target.checked;this.#Q(a,s),this.#C()};#X=e=>{let a=e.target.dataset.env,s=e.target.checked;O.setSource(a,s)};#J=()=>{confirm("Reset all settings to defaults?")&&(h.reset(),this.#B([]),this.#p(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:[]})),this.#a={...L},u.remove(f,"extensions").catch(()=>{}),this.#C(),this.#n=!1,u.remove(f,"sticky").catch(()=>{}),delete document.documentElement.dataset.sticky,Promise.resolve().then(()=>(U(),W)).then(e=>e.destroyStickyManager()).catch(()=>{}),O.setSource("timeOfDay",!1),O.setSource("seasonal",!1),this.#i())};#g=()=>{this.#i()};#i(){let{mode:e,brand:a,fluid:s,backdrop:r,backdropChrome:n,pageBgType:i,pageBgColor:c,pageBgGradStart:g,pageBgGradEnd:y,pageBgGradDir:p}=h.getState(),b=this.#c(),d=this.#f(),A=this.#b(s),M=this.#d(s),m=this.#S(r),k=this.#l(r),o=this.#e.querySelector(`input[name="settings-mode"][value="${e}"]`);o&&(o.checked=!0);let w=this.#e.querySelector("#settings-theme");w&&(w.value=a||"default");let P=this.#e.querySelector("input[data-fluid-toggle]");P&&(P.checked=A);let ae=this.#e.querySelector(`input[name="settings-density"][value="${M}"]`);ae&&(ae.checked=!0),this.#x(A);let se=this.#e.querySelector("input[data-backdrop-toggle]");se&&(se.checked=m);let re=this.#e.querySelector(`input[name="settings-backdrop"][value="${k}"]`);re&&(re.checked=!0);let He=this.#h(n),ne=this.#e.querySelector(`input[name="settings-backdrop-chrome"][value="${He}"]`);ne&&(ne.checked=!0);let ie=this.#e.querySelector("input[data-backdrop-fixed]");ie&&(ie.checked=this.#u(n)),this.#_(m);let oe=this.#e.querySelector('[name="settings-page-bg"]');oe&&(oe.value=i||"");let ce=this.#e.querySelector('[name="settings-page-bg-color"]');ce&&c&&(ce.value=c);let de=this.#e.querySelector('[name="settings-page-bg-grad-start"]');de&&g&&(de.value=g);let le=this.#e.querySelector('[name="settings-page-bg-grad-end"]');le&&y&&(le.value=y);let he=this.#e.querySelector('[name="settings-page-bg-grad-dir"]');he&&p&&(he.value=p),m&&this.#m(i||""),this.#e.querySelectorAll("input[data-a11y]").forEach(F=>{let E=F;E.checked=b.includes(E.dataset.a11y||"")}),this.#e.querySelectorAll("input[data-ext]").forEach(F=>{let E=F,q=E.dataset.ext,je=d[q];E.checked=je??L[q]});let ue=this.#e.querySelector("input[data-sticky-toggle]");ue&&(ue.checked=this.#v());let Ve=this.#y();this.#e.querySelectorAll("input[data-env]").forEach(F=>{let E=F,q=E.dataset.env;E.checked=Ve[q]??!1})}#x(e){let a=this.#e.querySelector(".density-row");a&&(a.hidden=!e)}#_(e){if(this.#e.querySelectorAll(".backdrop-row").forEach(a=>{a.hidden=!e}),e){let a=this.#e.querySelector('[name="settings-page-bg"]')?.value||"";this.#m(a)}}#m(e){let a=this.#e.querySelector(".page-bg-color-row"),s=this.#e.querySelector(".page-bg-grad-row"),r=this.#e.querySelector(".page-bg-grad-dir-row");a&&(a.hidden=e!=="color"),s&&(s.hidden=e!=="gradient"),r&&(r.hidden=e!=="gradient")}#c(){return[...this.#r]}#B(e){this.#r=[...e],u.set(f,"a11y",this.#r).catch(()=>{})}#p(){let e=this.#c(),{brand:a}=h.getState(),s=document.documentElement,r=a!=="default"?[a,...e]:[...e];r.length?s.dataset.theme=r.join(" "):delete s.dataset.theme}#Y(){this.#p()}#y(){return O.load()}#f(){return{...this.#a}}#Q(e,a){this.#a={...this.#a,[e]:a},u.set(f,"extensions",this.#a).catch(()=>{})}async#C(){let e=this.#f(),a=document.documentElement;e.motionFx?delete a.dataset.motionReduced:a.dataset.motionReduced="",e.sounds?($||($=(await Promise.resolve().then(()=>(Ie(),Re))).SoundManager),$.init(),$.enable()):$&&$.disable(),window.dispatchEvent(new CustomEvent("vb:extensions-change",{detail:e}))}async#T(){let e=this.#e.querySelector("[data-sw-status] span");if(e){if(!("serviceWorker"in navigator)){e.textContent="Not supported";return}try{let s=(await Fe()).cachedURLs?.length??0;e.textContent=`Active (${s} cached files)`}catch{e.textContent="Not registered"}}}#Z=async e=>{let a=e.target;a.disabled=!0,a.textContent="Clearing\u2026";try{await De(),a.textContent="Cleared!",this.#T(),setTimeout(()=>{a.textContent="Clear Cache",a.disabled=!1},2e3)}catch{a.textContent="Failed",setTimeout(()=>{a.textContent="Clear Cache",a.disabled=!1},2e3)}};#ee=async e=>{let a=e.target;a.disabled=!0,a.textContent="Checking\u2026";try{let{updated:s}=await Oe();a.textContent=s?"Update available!":"Up to date",setTimeout(()=>{a.textContent="Check for Updates",a.disabled=!1},2e3)}catch{a.textContent="Failed",setTimeout(()=>{a.textContent="Check for Updates",a.disabled=!1},2e3)}};open(){this.#s||(this.#s=!0,this.setAttribute("open",""),this.#t?.setAttribute("aria-expanded","true"),this.#i(),this.#te())}#te(){let e=this.getBoundingClientRect(),a=this.#e;a.style.removeProperty("top"),a.style.removeProperty("bottom"),a.style.removeProperty("left"),a.style.removeProperty("right");let s=a.getBoundingClientRect(),r=window.innerWidth,n=window.innerHeight,i=e.top,c=n-e.bottom;i<s.height&&c>i?(a.style.top="calc(100% + 8px)",a.style.bottom="auto"):(a.style.bottom="calc(100% + 8px)",a.style.top="auto");let g=r-e.right,y=e.left,p=s.width;e.right<p&&y<g?(a.style.left="0",a.style.right="auto"):(a.style.right="0",a.style.left="auto")}close(){this.#s&&(this.#s=!1,this.removeAttribute("open"),this.#t?.setAttribute("aria-expanded","false"))}toggle(){this.#s?this.close():this.open()}};ye("settings-panel",te);export{te as SettingsPanel};
|
|
195
195
|
//# sourceMappingURL=settings-panel.js.map
|