vanilla-breeze 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/custom-elements.json +13966 -11505
  2. package/dist/cdn/components/accordion-wc.js +1 -1
  3. package/dist/cdn/components/activity-feed.js +1 -1
  4. package/dist/cdn/components/ai-chat.js +9 -6
  5. package/dist/cdn/components/ai-summary.js +4 -2
  6. package/dist/cdn/components/analytics-panel.js +19 -21
  7. package/dist/cdn/components/audio-player.js +17 -7
  8. package/dist/cdn/components/audio-visualizer.js +3 -3
  9. package/dist/cdn/components/author-index.js +2 -2
  10. package/dist/cdn/components/brand-mark.js +1 -1
  11. package/dist/cdn/components/bread-crumb.js +1 -1
  12. package/dist/cdn/components/calendar-wc.js +2 -2
  13. package/dist/cdn/components/card-list.js +1 -1
  14. package/dist/cdn/components/carousel-wc.js +1 -1
  15. package/dist/cdn/components/change-set.js +1 -11
  16. package/dist/cdn/components/chart-wc.js +32 -32
  17. package/dist/cdn/components/chat-input.js +1 -1
  18. package/dist/cdn/components/chat-window.js +1 -1
  19. package/dist/cdn/components/color-picker.js +1 -1
  20. package/dist/cdn/components/combo-box.js +1 -1
  21. package/dist/cdn/components/command-palette.js +1 -1
  22. package/dist/cdn/components/comment-box.js +49 -49
  23. package/dist/cdn/components/comment-thread.js +32 -32
  24. package/dist/cdn/components/comment-wc.js +1 -1
  25. package/dist/cdn/components/compare-surface.js +1 -1
  26. package/dist/cdn/components/consent-banner.js +1 -1
  27. package/dist/cdn/components/content-lens.js +1 -1
  28. package/dist/cdn/components/content-swap.js +1 -1
  29. package/dist/cdn/components/context-menu.js +1 -1
  30. package/dist/cdn/components/data-table.js +1 -1
  31. package/dist/cdn/components/date-picker.js +1 -1
  32. package/dist/cdn/components/day-view.js +1 -1
  33. package/dist/cdn/components/diagram-wc.js +2 -2
  34. package/dist/cdn/components/drag-surface.js +1 -1
  35. package/dist/cdn/components/drop-down.js +1 -1
  36. package/dist/cdn/components/emoji-picker.js +1 -1
  37. package/dist/cdn/components/flow-diagram.js +1 -1
  38. package/dist/cdn/components/foot-notes.js +1 -1
  39. package/dist/cdn/components/form-field.js +1 -1
  40. package/dist/cdn/components/geo-map.js +4 -4
  41. package/dist/cdn/components/glossary-index.js +1 -1
  42. package/dist/cdn/components/glossary-wc.js +1 -1
  43. package/dist/cdn/components/heading-links.js +1 -1
  44. package/dist/cdn/components/highlight-wc.js +2 -2
  45. package/dist/cdn/components/image-gallery.js +1 -1
  46. package/dist/cdn/components/image-map.js +1 -1
  47. package/dist/cdn/components/include-file.js +1 -1
  48. package/dist/cdn/components/manifest.json +100 -100
  49. package/dist/cdn/components/markdown-editor.js +1 -1
  50. package/dist/cdn/components/markdown-viewer.js +11 -11
  51. package/dist/cdn/components/nav-bar.js +1 -1
  52. package/dist/cdn/components/note-wc.js +2 -2
  53. package/dist/cdn/components/notification-wc.js +4 -4
  54. package/dist/cdn/components/page-info.js +2 -2
  55. package/dist/cdn/components/page-stats.js +1 -1
  56. package/dist/cdn/components/page-toc.js +1 -1
  57. package/dist/cdn/components/page-tools.js +1 -1
  58. package/dist/cdn/components/page-tour.js +5 -5
  59. package/dist/cdn/components/pager-wc.js +1 -1
  60. package/dist/cdn/components/poll-wc.js +1 -1
  61. package/dist/cdn/components/pop-over.js +1 -1
  62. package/dist/cdn/components/popularity-index.js +4 -4
  63. package/dist/cdn/components/print-page.js +1 -1
  64. package/dist/cdn/components/progress-tracker.js +1 -1
  65. package/dist/cdn/components/qr-code.js +1 -1
  66. package/dist/cdn/components/reaction-bar.js +1 -1
  67. package/dist/cdn/components/reader-view.js +3 -3
  68. package/dist/cdn/components/reading-progress.js +1 -1
  69. package/dist/cdn/components/recently-visited.js +7 -7
  70. package/dist/cdn/components/score-card.js +2 -2
  71. package/dist/cdn/components/selection-menu.js +1 -1
  72. package/dist/cdn/components/settings-panel.js +4 -4
  73. package/dist/cdn/components/share-wc.js +2 -2
  74. package/dist/cdn/components/short-cuts.js +1 -1
  75. package/dist/cdn/components/site-index.js +6 -6
  76. package/dist/cdn/components/site-map.js +1 -1
  77. package/dist/cdn/components/site-search.js +3 -3
  78. package/dist/cdn/components/slide-accept.js +1 -1
  79. package/dist/cdn/components/social-embed.js +1 -1
  80. package/dist/cdn/components/split-surface.js +1 -1
  81. package/dist/cdn/components/star-rating.js +1 -1
  82. package/dist/cdn/components/status-wc.js +1 -1
  83. package/dist/cdn/components/stepper-wc.js +1 -1
  84. package/dist/cdn/components/tab-set.js +1 -1
  85. package/dist/cdn/components/text-reader.js +2 -2
  86. package/dist/cdn/components/theme-picker.js +44 -44
  87. package/dist/cdn/components/time-index.js +2 -2
  88. package/dist/cdn/components/time-picker.js +1 -1
  89. package/dist/cdn/components/toast-msg.js +1 -1
  90. package/dist/cdn/components/tool-tip.js +1 -1
  91. package/dist/cdn/components/topic-map.js +3 -3
  92. package/dist/cdn/components/trust-filter.js +3 -3
  93. package/dist/cdn/components/version-switcher.js +3 -13
  94. package/dist/cdn/components/video-player.js +1 -1
  95. package/dist/cdn/components/watch-wc.js +2 -2
  96. package/dist/cdn/components/week-view.js +1 -1
  97. package/dist/cdn/components/youtube-player.js +1 -1
  98. package/dist/cdn/packs/effects.full.js +1 -1
  99. package/dist/cdn/packs/kawaii.effects.css +1 -1
  100. package/dist/cdn/packs/kawaii.full.css +1 -1
  101. package/dist/cdn/packs/kawaii.full.js +4 -4
  102. package/dist/cdn/packs/manifest.json +7 -7
  103. package/dist/cdn/packs/memphis.full.css +1 -1
  104. package/dist/cdn/packs/memphis.theme.css +1 -1
  105. package/dist/cdn/packs/ui.full.js +46 -46
  106. package/dist/cdn/themes/8bit.css +1 -1
  107. package/dist/cdn/themes/8bit.tokens.json +1 -1
  108. package/dist/cdn/themes/alpha1999-dark.tokens.json +1 -1
  109. package/dist/cdn/themes/alpha1999.tokens.json +1 -1
  110. package/dist/cdn/themes/art-deco-dark.tokens.json +33 -1
  111. package/dist/cdn/themes/art-deco.css +1 -1
  112. package/dist/cdn/themes/art-deco.tokens.json +23 -1
  113. package/dist/cdn/themes/bauhaus-dark.tokens.json +23 -1
  114. package/dist/cdn/themes/bauhaus.css +1 -1
  115. package/dist/cdn/themes/bauhaus.tokens.json +1 -1
  116. package/dist/cdn/themes/brutalist-dark.tokens.json +33 -1
  117. package/dist/cdn/themes/brutalist.css +1 -1
  118. package/dist/cdn/themes/brutalist.tokens.json +23 -1
  119. package/dist/cdn/themes/catppuccin-frappe.tokens.json +1 -1
  120. package/dist/cdn/themes/catppuccin-latte-dark.tokens.json +1 -1
  121. package/dist/cdn/themes/catppuccin-latte.tokens.json +1 -1
  122. package/dist/cdn/themes/catppuccin-macchiato.tokens.json +1 -1
  123. package/dist/cdn/themes/catppuccin-mocha.tokens.json +1 -1
  124. package/dist/cdn/themes/classic-dark.tokens.json +1 -1
  125. package/dist/cdn/themes/classic.tokens.json +1 -1
  126. package/dist/cdn/themes/claymorphism-dark.tokens.json +33 -1
  127. package/dist/cdn/themes/claymorphism.css +1 -1
  128. package/dist/cdn/themes/claymorphism.tokens.json +23 -1
  129. package/dist/cdn/themes/clinical-dark.tokens.json +1 -1
  130. package/dist/cdn/themes/clinical.tokens.json +1 -1
  131. package/dist/cdn/themes/cottagecore-dark.tokens.json +1 -1
  132. package/dist/cdn/themes/cottagecore.css +1 -1
  133. package/dist/cdn/themes/cottagecore.tokens.json +1 -1
  134. package/dist/cdn/themes/cyber.css +1 -1
  135. package/dist/cdn/themes/cyber.tokens.json +1 -1
  136. package/dist/cdn/themes/dawn-dark.tokens.json +33 -1
  137. package/dist/cdn/themes/dawn.css +1 -1
  138. package/dist/cdn/themes/dawn.tokens.json +23 -1
  139. package/dist/cdn/themes/dracula.tokens.json +1 -1
  140. package/dist/cdn/themes/dusk.css +1 -1
  141. package/dist/cdn/themes/dusk.tokens.json +1 -1
  142. package/dist/cdn/themes/editorial-dark.tokens.json +1 -1
  143. package/dist/cdn/themes/editorial.css +1 -1
  144. package/dist/cdn/themes/editorial.tokens.json +1 -1
  145. package/dist/cdn/themes/financial-dark.tokens.json +1 -1
  146. package/dist/cdn/themes/financial.tokens.json +1 -1
  147. package/dist/cdn/themes/genai.css +1 -1
  148. package/dist/cdn/themes/genai.tokens.json +1 -1
  149. package/dist/cdn/themes/glassmorphism-dark.tokens.json +1 -1
  150. package/dist/cdn/themes/glassmorphism.tokens.json +1 -1
  151. package/dist/cdn/themes/government-dark.tokens.json +1 -1
  152. package/dist/cdn/themes/government.tokens.json +1 -1
  153. package/dist/cdn/themes/gruvbox-dark.tokens.json +1 -1
  154. package/dist/cdn/themes/gruvbox.tokens.json +1 -1
  155. package/dist/cdn/themes/high-noon-dark.tokens.json +23 -1
  156. package/dist/cdn/themes/high-noon.css +1 -1
  157. package/dist/cdn/themes/high-noon.tokens.json +1 -1
  158. package/dist/cdn/themes/journal-dark.tokens.json +33 -1
  159. package/dist/cdn/themes/journal.css +1 -1
  160. package/dist/cdn/themes/journal.tokens.json +23 -1
  161. package/dist/cdn/themes/kawaii-dark.tokens.json +1 -1
  162. package/dist/cdn/themes/kawaii.css +1 -1
  163. package/dist/cdn/themes/kawaii.tokens.json +1 -1
  164. package/dist/cdn/themes/magna-dark.tokens.json +1 -1
  165. package/dist/cdn/themes/magna.tokens.json +1 -1
  166. package/dist/cdn/themes/manifest.json +26 -50
  167. package/dist/cdn/themes/midnight.tokens.json +1 -1
  168. package/dist/cdn/themes/minimal-dark.tokens.json +1 -1
  169. package/dist/cdn/themes/minimal.tokens.json +1 -1
  170. package/dist/cdn/themes/modern-dark.tokens.json +1 -1
  171. package/dist/cdn/themes/modern.tokens.json +1 -1
  172. package/dist/cdn/themes/nes-dark.tokens.json +1 -1
  173. package/dist/cdn/themes/nes.css +1 -1
  174. package/dist/cdn/themes/nes.tokens.json +1 -1
  175. package/dist/cdn/themes/neumorphism-dark.tokens.json +1 -1
  176. package/dist/cdn/themes/neumorphism.css +1 -1
  177. package/dist/cdn/themes/neumorphism.tokens.json +1 -1
  178. package/dist/cdn/themes/nord-dark.tokens.json +33 -1
  179. package/dist/cdn/themes/nord.css +1 -1
  180. package/dist/cdn/themes/nord.tokens.json +23 -1
  181. package/dist/cdn/themes/organic-dark.tokens.json +1 -1
  182. package/dist/cdn/themes/organic.css +1 -1
  183. package/dist/cdn/themes/organic.tokens.json +1 -1
  184. package/dist/cdn/themes/rose-pine-dark.tokens.json +1 -1
  185. package/dist/cdn/themes/rose-pine.tokens.json +1 -1
  186. package/dist/cdn/themes/rough-dark.tokens.json +1 -1
  187. package/dist/cdn/themes/rough.css +1 -1
  188. package/dist/cdn/themes/rough.tokens.json +1 -1
  189. package/dist/cdn/themes/solarized-dark.tokens.json +23 -1
  190. package/dist/cdn/themes/solarized.css +1 -1
  191. package/dist/cdn/themes/solarized.tokens.json +23 -1
  192. package/dist/cdn/themes/startup-dark.tokens.json +1 -1
  193. package/dist/cdn/themes/startup.tokens.json +1 -1
  194. package/dist/cdn/themes/super2026-dark.tokens.json +33 -1
  195. package/dist/cdn/themes/super2026.css +1 -1
  196. package/dist/cdn/themes/super2026.tokens.json +23 -1
  197. package/dist/cdn/themes/swiss-dark.tokens.json +1 -1
  198. package/dist/cdn/themes/swiss.css +1 -1
  199. package/dist/cdn/themes/swiss.tokens.json +1 -1
  200. package/dist/cdn/themes/terminal.css +1 -1
  201. package/dist/cdn/themes/terminal.tokens.json +1 -1
  202. package/dist/cdn/themes/tokyo-night-dark.tokens.json +33 -1
  203. package/dist/cdn/themes/tokyo-night.css +1 -1
  204. package/dist/cdn/themes/tokyo-night.tokens.json +23 -1
  205. package/dist/cdn/themes/vaporwave-dark.tokens.json +33 -1
  206. package/dist/cdn/themes/vaporwave.css +1 -1
  207. package/dist/cdn/themes/vaporwave.tokens.json +23 -1
  208. package/dist/cdn/themes/win9x-dark.tokens.json +15 -4
  209. package/dist/cdn/themes/win9x.css +1 -1
  210. package/dist/cdn/themes/win9x.tokens.json +1 -1
  211. package/dist/cdn/vanilla-breeze-autoload.js +663 -0
  212. package/dist/cdn/vanilla-breeze-charts.css +1 -1
  213. package/dist/cdn/vanilla-breeze-charts.js +32 -32
  214. package/dist/cdn/vanilla-breeze-core.css +1 -1
  215. package/dist/cdn/vanilla-breeze-core.js +78 -80
  216. package/dist/cdn/vanilla-breeze-dev.css +1 -1
  217. package/dist/cdn/vanilla-breeze-extras.js +47 -37
  218. package/dist/cdn/vanilla-breeze.css +1 -1
  219. package/dist/cdn/vanilla-breeze.js +180 -177
  220. package/package.json +12 -7
  221. package/dist/cdn/themes/amber.css +0 -2
  222. package/dist/cdn/themes/anthropic.css +0 -2
  223. package/dist/cdn/themes/anthropic.tokens.json +0 -564
  224. package/dist/cdn/themes/coral.css +0 -2
  225. package/dist/cdn/themes/emerald.css +0 -2
  226. package/dist/cdn/themes/forest.css +0 -2
  227. package/dist/cdn/themes/ibm.css +0 -2
  228. package/dist/cdn/themes/ibm.tokens.json +0 -568
  229. package/dist/cdn/themes/indigo.css +0 -2
  230. package/dist/cdn/themes/lavender.css +0 -2
  231. package/dist/cdn/themes/mcdonalds.css +0 -2
  232. package/dist/cdn/themes/mcdonalds.tokens.json +0 -533
  233. package/dist/cdn/themes/ocean.css +0 -2
  234. package/dist/cdn/themes/rose.css +0 -2
  235. package/dist/cdn/themes/slate.css +0 -2
  236. package/dist/cdn/themes/starbucks.css +0 -2
  237. package/dist/cdn/themes/starbucks.tokens.json +0 -593
  238. package/dist/cdn/themes/sunset.css +0 -2
@@ -1,13 +1,13 @@
1
- var $=window.matchMedia("(prefers-reduced-motion: reduce)");var y=new Map;function b(r,e,s={}){let t=s.priority??10,i={impl:e,bundle:s.bundle,contract:s.contract,priority:t},n=y.get(r);if(customElements.get(r)){if(!n||n.priority>=t){n&&n.priority===t&&n.impl!==e&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${s.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${s.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=t){n.priority===t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${n.bundle}". Skipping "${s.bundle}" (first wins at equal priority).`);return}y.set(r,i),customElements.define(r,e)}var c=class extends HTMLElement{#e=[];#t;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.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,s,t,i){e.addEventListener(s,t,i),this.#e.push(()=>e.removeEventListener(s,t,i))}setup(){}teardown(){}setState(e,s){this.#t||(this.#t=this.attachInternals());let t=this.#t.states;try{s?t.add(e):t.delete(e)}catch{let i=`--${e}`;s?t.add(i):t.delete(i)}}_adoptInternals(e){this.#t||(this.#t=e)}};var f=class r extends c{static STORAGE_KEY="vb:recently-visited";static PAUSE_KEY="vb:recently-visited:paused";static SHOW_ANCHORS_KEY="vb:recently-visited:show-anchors";setup(){this.#s(),this.#t()}get entries(){try{let e=localStorage.getItem(r.STORAGE_KEY);return e?JSON.parse(e):[]}catch{return[]}}disconnect(){this.#e&&(window.removeEventListener("storage",this.#e),this.#e=null)}#e=null;#t(){let e=new Set([r.STORAGE_KEY,r.PAUSE_KEY,r.SHOW_ANCHORS_KEY]);this.#e=s=>{s.key&&e.has(s.key)&&this.#s()},window.addEventListener("storage",this.#e)}#r(){try{return localStorage.getItem(r.PAUSE_KEY)==="1"}catch{return!1}}#i(e){try{e?localStorage.setItem(r.PAUSE_KEY,"1"):localStorage.removeItem(r.PAUSE_KEY)}catch{}}#n(){try{return localStorage.getItem(r.SHOW_ANCHORS_KEY)==="1"}catch{return!1}}#o(e){try{e?localStorage.setItem(r.SHOW_ANCHORS_KEY,"1"):localStorage.removeItem(r.SHOW_ANCHORS_KEY)}catch{}}#a(){try{let e=localStorage.getItem(r.STORAGE_KEY);if(!e)return[];let s=JSON.parse(e);return Array.isArray(s)?s:[]}catch{return[]}}#c(e){try{localStorage.setItem(r.STORAGE_KEY,JSON.stringify(e))}catch{}}#l(){let e=parseInt(this.getAttribute("limit")||"25",10);return Number.isFinite(e)&&e>0?e:25}#h(e){let s=new Map;for(let t of e){let i=t.url,n=s.get(i);n||(n={url:i,title:t.title,ts:t.ts,anchors:[]},s.set(i,n)),t.ts>n.ts&&(n.ts=t.ts,t.title&&(n.title=t.title)),t.hash&&n.anchors.push({hash:t.hash,hashTitle:t.hashTitle||t.hash.slice(1)||t.hash,ts:t.ts})}for(let t of s.values())t.anchors.sort((i,n)=>n.ts-i.ts);return[...s.values()].sort((t,i)=>i.ts-t.ts)}#s(){let e=this.#a(),s=this.#h(e).slice(0,this.#l()),t=this.getAttribute("empty-text")||"No recently visited pages yet.",i=this.#r(),n=this.#n(),p=i?"Resume tracking":"Pause tracking",g=i?"play":"pause",m=n?"Hide anchor visits":"Show anchor visits",E=e.length===0,o=[];if(o.push('<header class="recently-visited-header">'),o.push('<h2 class="recently-visited-heading">Recently visited</h2>'),o.push('<menu class="recently-visited-actions">'),o.push(`<li><button type="button"
1
+ var $=window.matchMedia("(prefers-reduced-motion: reduce)");var y=new Map;function b(r,e,s={}){let t=s.priority??10,n={impl:e,bundle:s.bundle,contract:s.contract,priority:t},i=y.get(r);if(customElements.get(r)){if(!i||i.priority>=t){i&&i.priority===t&&i.impl!==e&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${s.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${s.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=t){i.priority===t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}". Skipping "${s.bundle}" (first wins at equal priority).`);return}y.set(r,n),customElements.define(r,e)}var c=class extends HTMLElement{#e=[];#t;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.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,s,t,n){e.addEventListener(s,t,n),this.#e.push(()=>e.removeEventListener(s,t,n))}_reinit(){for(let e of this.#e)e();this.#e=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}setup(){}teardown(){}setState(e,s){this.#t||(this.#t=this.attachInternals());let t=this.#t.states;try{s?t.add(e):t.delete(e)}catch{let n=`--${e}`;s?t.add(n):t.delete(n)}}_adoptInternals(e){this.#t||(this.#t=e)}};var f=class r extends c{static STORAGE_KEY="vb:recently-visited";static PAUSE_KEY="vb:recently-visited:paused";static SHOW_ANCHORS_KEY="vb:recently-visited:show-anchors";setup(){this.#s(),this.#t()}get entries(){try{let e=localStorage.getItem(r.STORAGE_KEY);return e?JSON.parse(e):[]}catch{return[]}}disconnect(){this.#e&&(window.removeEventListener("storage",this.#e),this.#e=null)}#e=null;#t(){let e=new Set([r.STORAGE_KEY,r.PAUSE_KEY,r.SHOW_ANCHORS_KEY]);this.#e=s=>{s.key&&e.has(s.key)&&this.#s()},window.addEventListener("storage",this.#e)}#r(){try{return localStorage.getItem(r.PAUSE_KEY)==="1"}catch{return!1}}#n(e){try{e?localStorage.setItem(r.PAUSE_KEY,"1"):localStorage.removeItem(r.PAUSE_KEY)}catch{}}#i(){try{return localStorage.getItem(r.SHOW_ANCHORS_KEY)==="1"}catch{return!1}}#o(e){try{e?localStorage.setItem(r.SHOW_ANCHORS_KEY,"1"):localStorage.removeItem(r.SHOW_ANCHORS_KEY)}catch{}}#a(){try{let e=localStorage.getItem(r.STORAGE_KEY);if(!e)return[];let s=JSON.parse(e);return Array.isArray(s)?s:[]}catch{return[]}}#c(e){try{localStorage.setItem(r.STORAGE_KEY,JSON.stringify(e))}catch{}}#l(){let e=parseInt(this.getAttribute("limit")||"25",10);return Number.isFinite(e)&&e>0?e:25}#h(e){let s=new Map;for(let t of e){let n=t.url,i=s.get(n);i||(i={url:n,title:t.title,ts:t.ts,anchors:[]},s.set(n,i)),t.ts>i.ts&&(i.ts=t.ts,t.title&&(i.title=t.title)),t.hash&&i.anchors.push({hash:t.hash,hashTitle:t.hashTitle||t.hash.slice(1)||t.hash,ts:t.ts})}for(let t of s.values())t.anchors.sort((n,i)=>i.ts-n.ts);return[...s.values()].sort((t,n)=>n.ts-t.ts)}#s(){let e=this.#a(),s=this.#h(e).slice(0,this.#l()),t=this.getAttribute("empty-text")||"No recently visited pages yet.",n=this.#r(),i=this.#i(),p=n?"Resume tracking":"Pause tracking",g=n?"play":"pause",m=i?"Hide anchor visits":"Show anchor visits",v=e.length===0,o=[];if(o.push('<header class="recently-visited-header">'),o.push('<h2 class="recently-visited-heading">Recently visited</h2>'),o.push('<menu class="recently-visited-actions">'),o.push(`<li><button type="button"
2
2
  data-recently-visited-pause
3
3
  class="icon-button"
4
- aria-pressed="${i}"
4
+ aria-pressed="${n}"
5
5
  aria-label="${p}"
6
6
  title="${p}"
7
7
  ><icon-wc name="${g}" size="sm"></icon-wc></button></li>`),o.push(`<li><button type="button"
8
8
  data-recently-visited-anchors
9
9
  class="icon-button"
10
- aria-pressed="${n}"
10
+ aria-pressed="${i}"
11
11
  aria-label="${m}"
12
12
  title="${m}"
13
13
  ><icon-wc name="hash" size="sm"></icon-wc></button></li>`),o.push(`<li><button type="button"
@@ -15,13 +15,13 @@ var $=window.matchMedia("(prefers-reduced-motion: reduce)");var y=new Map;functi
15
15
  class="icon-button"
16
16
  aria-label="Clear history"
17
17
  title="Clear history"
18
- ${E?"disabled":""}
19
- ><icon-wc name="trash-2" size="sm"></icon-wc></button></li>`),o.push("</menu>"),o.push("</header>"),o.push('<p class="recently-visited-explainer"><small>Stored on this device only. Never sent to a server.</small></p>'),s.length===0)o.push(`<p class="recently-visited-empty">${l(t)}</p>`);else{o.push('<ol class="recently-visited-list">');for(let a of s)if(n&&a.anchors.length>0){let v=a.anchors.map(u=>`<li><a href="${h(a.url)}${h(u.hash)}">${l(u.hashTitle)}</a><small>${d(u.ts)}</small></li>`).join(""),S=a.anchors.length===1?"1 anchor":`${a.anchors.length} anchors`;o.push(`<li class="has-anchors"><details>
18
+ ${v?"disabled":""}
19
+ ><icon-wc name="trash-2" size="sm"></icon-wc></button></li>`),o.push("</menu>"),o.push("</header>"),o.push('<p class="recently-visited-explainer"><small>Stored on this device only. Never sent to a server.</small></p>'),s.length===0)o.push(`<p class="recently-visited-empty">${l(t)}</p>`);else{o.push('<ol class="recently-visited-list">');for(let a of s)if(i&&a.anchors.length>0){let E=a.anchors.map(u=>`<li><a href="${h(a.url)}${h(u.hash)}">${l(u.hashTitle)}</a><small>${d(u.ts)}</small></li>`).join(""),S=a.anchors.length===1?"1 anchor":`${a.anchors.length} anchors`;o.push(`<li class="has-anchors"><details>
20
20
  <summary>
21
21
  <a href="${h(a.url)}">${l(a.title||a.url)}</a>
22
22
  <small>${S} &middot; ${d(a.ts)}</small>
23
23
  </summary>
24
- <ul class="recently-visited-anchors">${v}</ul>
24
+ <ul class="recently-visited-anchors">${E}</ul>
25
25
  </details></li>`)}else o.push(`<li><a href="${h(a.url)}">${l(a.title||a.url)}</a><small>${d(a.ts)}</small></li>`);o.push("</ol>")}this.innerHTML=o.join(`
26
- `),this.#u()}#u(){let e=this.querySelector("[data-recently-visited-clear]");e&&e.addEventListener("click",()=>{this.#c([]),this.#s(),this.dispatchEvent(new CustomEvent("recently-visited:clear",{bubbles:!0}))});let s=this.querySelector("[data-recently-visited-pause]");s&&s.addEventListener("click",()=>{this.#i(!this.#r()),this.#s(),this.dispatchEvent(new CustomEvent("recently-visited:pause-toggle",{bubbles:!0,detail:{paused:this.#r()}}))});let t=this.querySelector("[data-recently-visited-anchors]");t&&t.addEventListener("click",()=>{this.#o(!this.#n()),this.#s(),this.dispatchEvent(new CustomEvent("recently-visited:anchors-toggle",{bubbles:!0,detail:{showAnchors:this.#n()}}))})}};function l(r){return String(r??"").replace(/[&<>]/g,e=>({"&":"&amp;","<":"&lt;",">":"&gt;"})[e])}function h(r){return String(r??"").replace(/[&<>"]/g,e=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[e])}function d(r){let e=Date.now()-r;return e<6e4?"just now":e<36e5?`${Math.floor(e/6e4)}m ago`:e<864e5?`${Math.floor(e/36e5)}h ago`:`${Math.floor(e/864e5)}d ago`}b("recently-visited",f);export{f as RecentlyVisited};
26
+ `),this.#u()}#u(){let e=this.querySelector("[data-recently-visited-clear]");e&&e.addEventListener("click",()=>{this.#c([]),this.#s(),this.dispatchEvent(new CustomEvent("recently-visited:clear",{bubbles:!0}))});let s=this.querySelector("[data-recently-visited-pause]");s&&s.addEventListener("click",()=>{this.#n(!this.#r()),this.#s(),this.dispatchEvent(new CustomEvent("recently-visited:pause-toggle",{bubbles:!0,detail:{paused:this.#r()}}))});let t=this.querySelector("[data-recently-visited-anchors]");t&&t.addEventListener("click",()=>{this.#o(!this.#i()),this.#s(),this.dispatchEvent(new CustomEvent("recently-visited:anchors-toggle",{bubbles:!0,detail:{showAnchors:this.#i()}}))})}};function l(r){return String(r??"").replace(/[&<>]/g,e=>({"&":"&amp;","<":"&lt;",">":"&gt;"})[e])}function h(r){return String(r??"").replace(/[&<>"]/g,e=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[e])}function d(r){let e=Date.now()-r;return e<6e4?"just now":e<36e5?`${Math.floor(e/6e4)}m ago`:e<864e5?`${Math.floor(e/36e5)}h ago`:`${Math.floor(e/864e5)}d ago`}b("recently-visited",f);export{f as RecentlyVisited};
27
27
  //# sourceMappingURL=recently-visited.js.map
@@ -183,7 +183,7 @@ var c=`
183
183
  background: color-mix(in oklch, var(--_muted) 18%, transparent);
184
184
  }
185
185
  }
186
- `;var n=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,t,r,o){e.addEventListener(t,r,o),this.#t.push(()=>e.removeEventListener(t,r,o))}setup(){}teardown(){}setState(e,t){this.#e||(this.#e=this.attachInternals());let r=this.#e.states;try{t?r.add(e):r.delete(e)}catch{let o=`--${e}`;t?r.add(o):r.delete(o)}}_adoptInternals(e){this.#e||(this.#e=e)}};var m=window.matchMedia("(prefers-reduced-motion: reduce)");var l=new Map;function d(s,e,t={}){let r=t.priority??10,o={impl:e,bundle:t.bundle,contract:t.contract,priority:r},a=l.get(s);if(customElements.get(s)){if(!a||a.priority>=r){a&&a.priority===r&&a.impl!==e&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${a.bundle}" (priority ${a.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${s}> defined by "${a.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(a&&a.priority>=r){a.priority===r&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${a.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}l.set(s,o),customElements.define(s,e)}var u=new Set(["up","down","flat"]),h=["change","sparkline","description","icon"],p=`
186
+ `;var n=class extends HTMLElement{#e=[];#t;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.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,t,r,o){e.addEventListener(t,r,o),this.#e.push(()=>e.removeEventListener(t,r,o))}_reinit(){for(let e of this.#e)e();this.#e=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}setup(){}teardown(){}setState(e,t){this.#t||(this.#t=this.attachInternals());let r=this.#t.states;try{t?r.add(e):r.delete(e)}catch{let o=`--${e}`;t?r.add(o):r.delete(o)}}_adoptInternals(e){this.#t||(this.#t=e)}};var m=window.matchMedia("(prefers-reduced-motion: reduce)");var l=new Map;function d(s,e,t={}){let r=t.priority??10,o={impl:e,bundle:t.bundle,contract:t.contract,priority:r},a=l.get(s);if(customElements.get(s)){if(!a||a.priority>=r){a&&a.priority===r&&a.impl!==e&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${a.bundle}" (priority ${a.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${s}> defined by "${a.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(a&&a.priority>=r){a.priority===r&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${a.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}l.set(s,o),customElements.define(s,e)}var u=new Set(["up","down","flat"]),h=["change","sparkline","description","icon"],p=`
187
187
  <style>${c}</style>
188
188
  <div class="card" part="card">
189
189
  <span class="title" part="title"><slot name="title"></slot></span>
@@ -193,5 +193,5 @@ var c=`
193
193
  <span class="description" part="description"><slot name="description" data-slot="description"></slot></span>
194
194
  <span class="icon" part="icon"><slot name="icon" data-slot="icon"></slot></span>
195
195
  </div>
196
- `,i=class extends n{static get observedAttributes(){return["trend","loading"]}setup(){if(this.shadowRoot)for(let e of h){let t=this.shadowRoot.querySelector(`slot[name="${e}"]`);this.#t(e,t)}else{let e=this.attachShadow({mode:"open"});e.innerHTML=p;for(let t of h){let r=e.querySelector(`slot[name="${t}"]`);r?.addEventListener("slotchange",()=>this.#t(t,r)),this.#t(t,r)}}this.#e(),this.#r(),this.#a()}attributeChangedCallback(e){this.isConnected&&(e==="trend"?this.#e():e==="loading"&&this.#r())}#t(e,t){let r=!!t&&t.assignedNodes({flatten:!0}).some(o=>o.nodeType===Node.ELEMENT_NODE||o.nodeType===Node.TEXT_NODE&&o.textContent.trim().length>0);this.setState(`has-${e}`,r)}#e(){let e=(this.getAttribute("trend")||"").toLowerCase();for(let t of u)this.setState(`trend-${t}`,t===e)}#r(){this.setState("loading",this.hasAttribute("loading"))}#a(){let e=this.closest("a[href]");this.setState("interactive",!!e)}};d("score-card",i);export{i as ScoreCard};
196
+ `,i=class extends n{static get observedAttributes(){return["trend","loading"]}setup(){if(this.shadowRoot)for(let e of h){let t=this.shadowRoot.querySelector(`slot[name="${e}"]`);this.#e(e,t)}else{let e=this.attachShadow({mode:"open"});e.innerHTML=p;for(let t of h){let r=e.querySelector(`slot[name="${t}"]`);r?.addEventListener("slotchange",()=>this.#e(t,r)),this.#e(t,r)}}this.#t(),this.#r(),this.#a()}attributeChangedCallback(e){this.isConnected&&(e==="trend"?this.#t():e==="loading"&&this.#r())}#e(e,t){let r=!!t&&t.assignedNodes({flatten:!0}).some(o=>o.nodeType===Node.ELEMENT_NODE||o.nodeType===Node.TEXT_NODE&&o.textContent.trim().length>0);this.setState(`has-${e}`,r)}#t(){let e=(this.getAttribute("trend")||"").toLowerCase();for(let t of u)this.setState(`trend-${t}`,t===e)}#r(){this.setState("loading",this.hasAttribute("loading"))}#a(){let e=this.closest("a[href]");this.setState("interactive",!!e)}};d("score-card",i);export{i as ScoreCard};
197
197
  //# sourceMappingURL=score-card.js.map
@@ -1,2 +1,2 @@
1
- var c=class extends HTMLElement{#e=[];#s;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 t of this.#e)t();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,s,i){t.addEventListener(e,s,i),this.#e.push(()=>t.removeEventListener(e,s,i))}setup(){}teardown(){}setState(t,e){this.#s||(this.#s=this.attachInternals());let s=this.#s.states;try{e?s.add(t):s.delete(t)}catch{let i=`--${t}`;e?s.add(i):s.delete(i)}}_adoptInternals(t){this.#s||(this.#s=t)}};var w=window.matchMedia("(prefers-reduced-motion: reduce)");var f=new Map;function h(r,t,e={}){let s=e.priority??10,i={impl:t,bundle:e.bundle,contract:e.contract,priority:s},o=f.get(r);if(customElements.get(r)){if(!o||o.priority>=s){o&&o.priority===s&&o.impl!==t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${o.bundle}" (priority ${o.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${o.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(o&&o.priority>=s){o.priority===s&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${o.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}f.set(r,i),customElements.define(r,t)}var l=CSS.supports("anchor-name","--x"),b=CSS.supports("position-area","bottom"),g=0,d=class extends c{#e=null;#s=null;#o=null;#t=null;setup(){this.id||(this.id=`pop-over-${++g}`);let t=this.dataset.mode||"auto";this.hasAttribute("popover")||this.setAttribute("popover",t),this.#n(),this.#a(),this.#o=e=>{let s=e.newState==="open"?"show":"hide";this.dispatchEvent(new CustomEvent(`pop-over:${s}`,{detail:{state:e.newState},bubbles:!0,composed:!0})),!l&&e.newState==="open"&&this.#e&&this.#r()},this.listen(this,"beforetoggle",this.#o),l||(this.#t=()=>{this.matches(":popover-open")&&this.#e&&this.#r()},this.listen(window,"resize",this.#t),this.listen(window,"scroll",this.#t,{capture:!0,passive:!0}))}show(){this.matches(":popover-open")||this.showPopover()}hide(){this.matches(":popover-open")&&this.hidePopover()}toggle(){this.matches(":popover-open")?this.hide():this.show()}get open(){return this.matches(":popover-open")}#n(){let t=this.dataset.anchor;t?this.#e=document.getElementById(t)||document.querySelector(t):this.#e=document.querySelector(`[popovertarget="${CSS.escape(this.id)}"]`)}#a(){if(!(!this.#e||!l)&&(this.#s=`--pop-over-anchor-${this.id}`,this.#e.style.setProperty("anchor-name",this.#s),this.style.setProperty("position-anchor",this.#s),this.setAttribute("data-anchor-name",this.#s||""),!b)){let t=this.dataset.position||"bottom";this.#c(t)}}#c(t){let e="var(--_pop-over-offset, var(--size-xs))",s={top:{bottom:`calc(anchor(top) + ${e})`,left:"anchor(left)"},bottom:{top:`calc(anchor(bottom) + ${e})`,left:"anchor(left)"},left:{right:`calc(anchor(left) + ${e})`,top:"anchor(top)"},right:{left:`calc(anchor(right) + ${e})`,top:"anchor(top)"}},i=t.split("-")[0],o=s[i]||s.bottom;Object.entries(o).forEach(([a,n])=>this.style.setProperty(a,n))}#r(){if(!this.#e)return;let t=this.#e.getBoundingClientRect(),e=this.dataset.position||"bottom",s=this.#i(),i,o;switch(e.split("-")[0]){case"top":i=t.top-this.offsetHeight-s,o=t.left;break;case"left":i=t.top,o=t.left-this.offsetWidth-s;break;case"right":i=t.top,o=t.right+s;break;default:i=t.bottom+s,o=t.left;break}e.endsWith("-end")&&(e.startsWith("top")||e.startsWith("bottom")?o=t.right-this.offsetWidth:i=t.bottom-this.offsetHeight),this.style.position="fixed",this.style.top=`${Math.round(i)}px`,this.style.left=`${Math.round(o)}px`,this.style.margin="0"}#i(){let t={none:0,xs:4,s:8,m:16,l:24};return t[this.dataset.offset]??t.xs}};h("pop-over",d);var m=8,u=8,y=0,p=class extends c{#e=null;#s=new Set;#o=!1;#t;setup(){let t=this.querySelector(":scope > pop-over[data-selection-menu-host]");if(t)this.#t=t;else{this.#t=document.createElement("pop-over"),this.#t.setAttribute("data-selection-menu-host",""),this.#t.dataset.mode="manual",this.#t.id=`selection-menu-${++y}`;let e=[...this.children];for(let s of e)s!==this.#t&&this.#t.appendChild(s);this.appendChild(this.#t)}this.hidden=!1,this.#n(),this.listen(document,"pointerup",this.#a),this.listen(document,"pointerdown",this.#h),this.listen(document,"keydown",this.#l),this.id&&new MutationObserver(()=>this.#n()).observe(document.body,{childList:!0,subtree:!0,attributeFilter:["data-selection-menu"]})}getSelection(){return this.#e?{...this.#e}:null}dismiss(){this.#i()}get actions(){return[...(this.#t||this).children].map(e=>({tag:e.tagName.toLowerCase(),attrs:Object.fromEntries([...e.attributes].map(s=>[s.name,s.value])),html:e.innerHTML||void 0}))}set actions(t){let e=Array.isArray(t)?t:[],s=this.#t||this;for(;s.firstChild;)s.firstChild.remove();for(let i of e){if(i instanceof Element){s.appendChild(i);continue}if(!i?.tag)continue;let o=document.createElement(i.tag);if(i.attrs)for(let[a,n]of Object.entries(i.attrs))n==null||n===!1||o.setAttribute(a,n===!0?"":String(n));i.html&&(o.innerHTML=i.html),s.appendChild(o)}this.dispatchEvent(new CustomEvent("selection-menu:actions-changed",{detail:{actions:this.actions,source:"property"},bubbles:!0}))}#n(){this.#s.clear();let t=this.getAttribute("for");if(t){let e=document.getElementById(t);e&&(this.#s.add(e),e.hasAttribute("data-selection-menu")||e.setAttribute("data-selection-menu",this.id||""))}this.id&&document.querySelectorAll(`[data-selection-menu="${this.id}"]`).forEach(e=>{this.#s.add(e)})}#a=()=>{requestAnimationFrame(()=>{this.isConnected&&this.#c()})};#c(){let t=window.getSelection();if(!t||t.isCollapsed||!t.toString().trim())return;let e=t.getRangeAt(0),s=e.commonAncestorContainer,i=s.nodeType===Node.ELEMENT_NODE?s:s.parentElement,o=null;for(let n of this.#s)if(n.contains(i)){o=n;break}if(!o)return;let a=t.toString().trim();this.#e={range:e.cloneRange(),text:a,target:o},this.dispatchEvent(new CustomEvent("selection-menu:select",{detail:{range:this.#e.range,text:a,target:o},bubbles:!0})),this.#r(e.getBoundingClientRect())}#r(t){this.#t&&(this.#t.show(),this.#o=!0,requestAnimationFrame(()=>{let e=this.#t.getBoundingClientRect(),s=e.width||200,i=e.height||40,o=t.top-i-m,a=t.left+t.width/2-s/2;o<u&&(o=t.bottom+m);let n=window.innerWidth-s-u;a=Math.max(u,Math.min(a,n)),this.#t.style.top=`${o}px`,this.#t.style.left=`${a}px`}))}#i(){this.#t&&this.#t.hide(),this.#o=!1,this.#e=null,this.dispatchEvent(new CustomEvent("selection-menu:dismiss",{bubbles:!0}))}#h=t=>{this.#o&&(this.#t?.contains(t.target)||this.contains(t.target)||this.#i())};#l=t=>{t.key==="Escape"&&this.#o&&this.#i()}};h("selection-menu",p);
1
+ var c=class extends HTMLElement{#e=[];#s;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 t of this.#e)t();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,s,o){t.addEventListener(e,s,o),this.#e.push(()=>t.removeEventListener(e,s,o))}_reinit(){for(let t of this.#e)t();this.#e=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}setup(){}teardown(){}setState(t,e){this.#s||(this.#s=this.attachInternals());let s=this.#s.states;try{e?s.add(t):s.delete(t)}catch{let o=`--${t}`;e?s.add(o):s.delete(o)}}_adoptInternals(t){this.#s||(this.#s=t)}};var E=window.matchMedia("(prefers-reduced-motion: reduce)");var p=new Map;function h(r,t,e={}){let s=e.priority??10,o={impl:t,bundle:e.bundle,contract:e.contract,priority:s},i=p.get(r);if(customElements.get(r)){if(!i||i.priority>=s){i&&i.priority===s&&i.impl!==t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=s){i.priority===s&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}p.set(r,o),customElements.define(r,t)}var l=CSS.supports("anchor-name","--x"),b=CSS.supports("position-area","bottom"),g=0,d=class extends c{#e=null;#s=null;#i=null;#t=null;setup(){this.id||(this.id=`pop-over-${++g}`);let t=this.dataset.mode||"auto";this.hasAttribute("popover")||this.setAttribute("popover",t),this.#n(),this.#a(),this.#i=e=>{let s=e.newState==="open"?"show":"hide";this.dispatchEvent(new CustomEvent(`pop-over:${s}`,{detail:{state:e.newState},bubbles:!0,composed:!0})),!l&&e.newState==="open"&&this.#e&&this.#r()},this.listen(this,"beforetoggle",this.#i),l||(this.#t=()=>{this.matches(":popover-open")&&this.#e&&this.#r()},this.listen(window,"resize",this.#t),this.listen(window,"scroll",this.#t,{capture:!0,passive:!0}))}show(){this.matches(":popover-open")||this.showPopover()}hide(){this.matches(":popover-open")&&this.hidePopover()}toggle(){this.matches(":popover-open")?this.hide():this.show()}get open(){return this.matches(":popover-open")}#n(){let t=this.dataset.anchor;t?this.#e=document.getElementById(t)||document.querySelector(t):this.#e=document.querySelector(`[popovertarget="${CSS.escape(this.id)}"]`)}#a(){if(!(!this.#e||!l)&&(this.#s=`--pop-over-anchor-${this.id}`,this.#e.style.setProperty("anchor-name",this.#s),this.style.setProperty("position-anchor",this.#s),this.setAttribute("data-anchor-name",this.#s||""),!b)){let t=this.dataset.position||"bottom";this.#c(t)}}#c(t){let e="var(--_pop-over-offset, var(--size-xs))",s={top:{bottom:`calc(anchor(top) + ${e})`,left:"anchor(left)"},bottom:{top:`calc(anchor(bottom) + ${e})`,left:"anchor(left)"},left:{right:`calc(anchor(left) + ${e})`,top:"anchor(top)"},right:{left:`calc(anchor(right) + ${e})`,top:"anchor(top)"}},o=t.split("-")[0],i=s[o]||s.bottom;Object.entries(i).forEach(([a,n])=>this.style.setProperty(a,n))}#r(){if(!this.#e)return;let t=this.#e.getBoundingClientRect(),e=this.dataset.position||"bottom",s=this.#o(),o,i;switch(e.split("-")[0]){case"top":o=t.top-this.offsetHeight-s,i=t.left;break;case"left":o=t.top,i=t.left-this.offsetWidth-s;break;case"right":o=t.top,i=t.right+s;break;default:o=t.bottom+s,i=t.left;break}e.endsWith("-end")&&(e.startsWith("top")||e.startsWith("bottom")?i=t.right-this.offsetWidth:o=t.bottom-this.offsetHeight),this.style.position="fixed",this.style.top=`${Math.round(o)}px`,this.style.left=`${Math.round(i)}px`,this.style.margin="0"}#o(){let t={none:0,xs:4,s:8,m:16,l:24};return t[this.dataset.offset]??t.xs}};h("pop-over",d);var m=8,u=8,y=0,f=class extends c{#e=null;#s=new Set;#i=!1;#t;setup(){let t=this.querySelector(":scope > pop-over[data-selection-menu-host]");if(t)this.#t=t;else{this.#t=document.createElement("pop-over"),this.#t.setAttribute("data-selection-menu-host",""),this.#t.dataset.mode="manual",this.#t.id=`selection-menu-${++y}`;let e=[...this.children];for(let s of e)s!==this.#t&&this.#t.appendChild(s);this.appendChild(this.#t)}this.hidden=!1,this.#n(),this.listen(document,"pointerup",this.#a),this.listen(document,"pointerdown",this.#h),this.listen(document,"keydown",this.#l),this.id&&new MutationObserver(()=>this.#n()).observe(document.body,{childList:!0,subtree:!0,attributeFilter:["data-selection-menu"]})}getSelection(){return this.#e?{...this.#e}:null}dismiss(){this.#o()}get actions(){return[...(this.#t||this).children].map(e=>({tag:e.tagName.toLowerCase(),attrs:Object.fromEntries([...e.attributes].map(s=>[s.name,s.value])),html:e.innerHTML||void 0}))}set actions(t){let e=Array.isArray(t)?t:[],s=this.#t||this;for(;s.firstChild;)s.firstChild.remove();for(let o of e){if(o instanceof Element){s.appendChild(o);continue}if(!o?.tag)continue;let i=document.createElement(o.tag);if(o.attrs)for(let[a,n]of Object.entries(o.attrs))n==null||n===!1||i.setAttribute(a,n===!0?"":String(n));o.html&&(i.innerHTML=o.html),s.appendChild(i)}this.dispatchEvent(new CustomEvent("selection-menu:actions-changed",{detail:{actions:this.actions,source:"property"},bubbles:!0}))}#n(){this.#s.clear();let t=this.getAttribute("for");if(t){let e=document.getElementById(t);e&&(this.#s.add(e),e.hasAttribute("data-selection-menu")||e.setAttribute("data-selection-menu",this.id||""))}this.id&&document.querySelectorAll(`[data-selection-menu="${this.id}"]`).forEach(e=>{this.#s.add(e)})}#a=()=>{requestAnimationFrame(()=>{this.isConnected&&this.#c()})};#c(){let t=window.getSelection();if(!t||t.isCollapsed||!t.toString().trim())return;let e=t.getRangeAt(0),s=e.commonAncestorContainer,o=s.nodeType===Node.ELEMENT_NODE?s:s.parentElement,i=null;for(let n of this.#s)if(n.contains(o)){i=n;break}if(!i)return;let a=t.toString().trim();this.#e={range:e.cloneRange(),text:a,target:i},this.dispatchEvent(new CustomEvent("selection-menu:select",{detail:{range:this.#e.range,text:a,target:i},bubbles:!0})),this.#r(e.getBoundingClientRect())}#r(t){this.#t&&(this.#t.show(),this.#i=!0,requestAnimationFrame(()=>{let e=this.#t.getBoundingClientRect(),s=e.width||200,o=e.height||40,i=t.top-o-m,a=t.left+t.width/2-s/2;i<u&&(i=t.bottom+m);let n=window.innerWidth-s-u;a=Math.max(u,Math.min(a,n)),this.#t.style.top=`${i}px`,this.#t.style.left=`${a}px`}))}#o(){this.#t&&this.#t.hide(),this.#i=!1,this.#e=null,this.dispatchEvent(new CustomEvent("selection-menu:dismiss",{bubbles:!0}))}#h=t=>{this.#i&&(this.#t?.contains(t.target)||this.contains(t.target)||this.#o())};#l=t=>{t.key==="Escape"&&this.#i&&this.#o()}};h("selection-menu",f);
2
2
  //# sourceMappingURL=selection-menu.js.map
@@ -1,4 +1,4 @@
1
- var ze=Object.defineProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var pe=(t,e)=>{for(var a in e)ze(t,a,{get:e[a],enumerable:!0})};var U={};pe(U,{destroyStickyManager:()=>rt,initStickyManager:()=>st});function A(){let t=document.documentElement;if(!t.hasAttribute("data-sticky"))return;let e=document.querySelector("header");e&&!e.hasAttribute("data-sticky")&&(e.dataset.sticky="",ee=!0);let a=document.querySelector("header[data-sticky]"),s=a?a.getBoundingClientRect().height:0;t.style.setProperty("--sticky-offset",`${s}px`)}function Ie(){A()}function st(){if(W)return;W=!0,A(),requestAnimationFrame(A),document.fonts?.ready?.then(A),window.addEventListener("resize",A,{passive:!0}),document.addEventListener("toggle",Ie,!0),Z=new ResizeObserver(A);let t=document.querySelector("header[data-sticky]");t&&Z.observe(t)}function rt(){if(W){if(W=!1,window.removeEventListener("resize",A),document.removeEventListener("toggle",Ie,!0),Z?.disconnect(),ee){let t=document.querySelector("header[data-sticky]");t&&delete t.dataset.sticky,ee=!1}document.documentElement.style.removeProperty("--sticky-offset")}}var W,Z,ee,z=me(()=>{W=!1,ee=!1});var Ve={};pe(Ve,{SoundManager:()=>nt});var He,te,nt,je=me(()=>{He="vb-sound",te={enabled:!1,volume:.5},nt={_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(He);return t?{...te,...JSON.parse(t)}:{...te}}catch{return{...te}}},_save(t){try{let e=this._load();localStorage.setItem(He,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 ot=window.matchMedia("(prefers-reduced-motion: reduce)");var fe=new Map;function ye(t,e,a={}){let s=a.priority??10,r={impl:e,bundle:a.bundle,contract:a.contract,priority:s},n=fe.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}fe.set(t,r),customElements.define(t,e)}var I=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,N=new Map;var be=null;function we(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(be)return be;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 Ne=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),Ke=new Set(["kawaii","memphis"]);function K(t){return Ke.has(t)}function Xe(t,e){return`${e}/themes/${t}.css`}function ve(t,e){if(!K(t))return Promise.resolve();if(N.has(t))return N.get(t);let a=import(`${e}/packs/${t}.full.js`).catch(()=>{});return N.set(t,a),a}function Je(t,e){let a=we(),s=()=>{(K(e)||t.hasAttribute("data-vb-pack"))&&ve(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 O(t){if(!t||Ne.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=Je(s,t);return _.set(t,r),r}}let e=we(),a=K(t)?Qe(t,e):Ye(t,e);return _.set(t,a),a}async function Ye(t,e){let a=Xe(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 Qe(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),ve(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 Se=[{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}}],ke=[{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"}],X=[{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"}],J=[{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"}],Ee=[{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 ht=[...X,...J],ut=[...ke,...X,...J,...Ee],B=t=>X.filter(e=>e.category===t),xe=[{label:"Style",themes:ke,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:Ee,tier:"showcase"},{label:"More Themes",themes:J,tier:"community"}];function Ze(){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 H=null;function S(){return H||(H=Ze()),H}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 _e(t){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${t}:`}function Be(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={}){H=t.backend??null},async set(t,e,a){let s={data:a,timestamp:Date.now()};await S().setRaw(Y(t,e),JSON.stringify(s))},async get(t,e,a){let s=await S().getRaw(Y(t,e));if(s==null)return null;let r=Be(s);return!r||a?.maxAge!=null&&Date.now()-r.timestamp>a.maxAge?null:r.data},async remove(t,e){await S().removeRaw(Y(t,e))},async list(t){let e=_e(t),a=await S().keys(e),s=[];for(let r of a){let n=await S().getRaw(r);if(n==null)continue;let i=Be(n);i&&s.push({key:r.slice(e.length),data:i.data,timestamp:i.timestamp})}return s},async clear(t){let e=_e(t),a=await S().keys(e);for(let s of a)await S().removeRaw(s)},async clearAll(){let t=await S().keys("vb:");for(let e of t)await S().removeRaw(e)},async setMany(t,e){for(let[a,s]of e)await u.set(t,a,s)}};var V="theme",j="current",y={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""};function Ae(t){return(t||"").split(/\s+/).find(e=>e&&!e.startsWith("a11y-"))||""}function Ce(t,e){return t?.brand&&t.brand!==y.brand?t.brand:Ae(e)||y.brand}var Te=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],l=null,C="",h={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let t=await u.get(V,j);l=t?{...y,...t}:{...y},C=Ae(document.documentElement.dataset.theme),l.brand=Ce(t,C);try{await O(l.brand)}catch{l.brand!==C&&(l.brand=C||y.brand)}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:${V}:${j}`||!t.newValue)return;let e;try{e=JSON.parse(t.newValue)?.data}catch{return}if(!e||typeof e!="object")return;let a={...y,...l,...e};if(a.brand=Ce(e,C),a.brand&&a.brand!==l?.brand)try{await O(a.brand)}catch{a.brand=C||y.brand}l=a,this.apply(l||{})})},load(){return l?{...l}:{...y}},save(t){let e={...l??y,...t};return l=e,u.set(V,j,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:f="",pageBgGradEnd:p="",pageBgGradDir:w=""}={}){let d=document.documentElement;d.dataset.mode=t==="auto"?this.getEffectiveMode():t;let P=(d.dataset.theme||"").split(" ").filter($=>$.startsWith("a11y-")),m=e!=="default"?[e,...P]:[...P];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"&&f&&p){let $=w||"to bottom";d.style.setProperty("--page-bg-gradient",`linear-gradient(${$}, ${f}, ${p})`),d.style.removeProperty("--page-bg-color")}else d.style.removeProperty("--page-bg-color"),d.style.removeProperty("--page-bg-gradient");let v=this.load().accent||"default";this._applyAccent(v),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:t,brand:e,accent:v,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 O(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:f,pageBgGradStart:p,pageBgGradEnd:w,pageBgGradDir:d}=this.load();return{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:n,backdrop:i,backdropChrome:c,pageBgType:g,pageBgColor:f,pageBgGradStart:p,pageBgGradEnd:w,pageBgGradDir:d,effectiveMode:this.getEffectiveMode()}},toggleMode(){let e=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(e)},reset(){l={...y,brand:C||y.brand},u.remove(V,j).catch(()=>{});let t=document.documentElement;t.style.removeProperty("--page-bg-color"),t.style.removeProperty("--page-bg-gradient");for(let e of Te)t.style.removeProperty(e);this.apply(l)},_readCSSHint(t){return getComputedStyle(document.documentElement).getPropertyValue(t).trim()},_applyAccent(t){let e=document.documentElement,a=Se.find(s=>s.id===t);for(let s of Te)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,O(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 Me="environment",Pe="preferences",Q={timeOfDay:!1,seasonal:!1},et=900*1e3,x={...Q};function T(t,e,a){return t+(e-t)*Math.min(1,Math.max(0,a))}var L={_timer:null,_baseHues:null,_timeOverride:null,_monthOverride:null,async init(){let t=await u.get(Me,Pe);x=t?{...Q,...t}:{...Q},(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(Me,Pe,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?T(-20,20,(t-5)/2):t<10?T(20,5,(t-7)/3):t<14?T(5,0,(t-10)/4):t<17?T(0,-5,(t-14)/3):t<19?T(-5,15,(t-17)/2):t<21?T(15,-10,(t-19)/2):T(-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(),et))},_stopLoop(){this._timer&&clearInterval(this._timer),this._timer=null}};var G=null;function Fe(){return"0.4.0-513cbce1"}function tt(){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 De(){return G||(G=navigator.serviceWorker?.ready??Promise.reject(new Error("SW not supported"))),G}function Oe(t){return new Promise((e,a)=>{navigator.serviceWorker?.controller?$e(navigator.serviceWorker.controller,t,e,a):De().then(s=>{let r=s.active||s.waiting||s.installing;r?$e(r,t,e,a):a(new Error("No active service worker"))}).catch(a)})}function $e(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 Le(){return Oe("GET_STATUS")}async function qe(){return Oe("CLEAR_CACHE")}async function Re(){let t=await De();return await t.update(),{updated:!!t.waiting}}function at(){return typeof window>"u"||!("serviceWorker"in navigator)?!1:window.__VB_SERVICE_WORKER?!0:document.querySelector('meta[name="vb-service-worker"]')?.content==="true"}if(at()){let t=tt();window.addEventListener("load",()=>{G=navigator.serviceWorker.register(t).catch(e=>{console.warn("[VB] Service worker registration failed:",e)})})}var F=null,b="settings",q={motionFx:!0,sounds:!1},ae=class extends I{#t=null;#e=null;#s=!1;#r=[];#a={...q};#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(){this.#e?.remove(),this.#e=null}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(b,"a11y",this.#r))),e.extensions&&typeof e.extensions=="object"&&(this.#a={...q,...e.extensions},a.push(u.set(b,"extensions",this.#a))),e.sticky!=null&&(this.#n=!!e.sticky,a.push(u.set(b,"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(b,"a11y"),u.get(b,"extensions"),u.get(b,"sticky")]);this.#r=Array.isArray(e)?e:[],this.#a={...q,...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:f,pageBgGradDir:p}=h.getState(),w=this.#c(),d=this.#y(),M=this.#b(s),P=this.#d(s),m=this.#S(r),k=this.#l(r);return`
1
+ var Ne=Object.defineProperty;var pe=(t,e)=>()=>(t&&(e=t(t=0)),e);var fe=(t,e)=>{for(var a in e)Ne(t,a,{get:e[a],enumerable:!0})};var z={};fe(z,{destroyStickyManager:()=>nt,initStickyManager:()=>rt});function A(){let t=document.documentElement;if(!t.hasAttribute("data-sticky"))return;let e=document.querySelector("header");e&&!e.hasAttribute("data-sticky")&&(e.dataset.sticky="",te=!0);let a=document.querySelector("header[data-sticky]"),s=a?a.getBoundingClientRect().height:0;t.style.setProperty("--sticky-offset",`${s}px`)}function Ve(){A()}function rt(){if(U)return;U=!0,A(),requestAnimationFrame(A),document.fonts?.ready?.then(A),window.addEventListener("resize",A,{passive:!0}),document.addEventListener("toggle",Ve,!0),ee=new ResizeObserver(A);let t=document.querySelector("header[data-sticky]");t&&ee.observe(t)}function nt(){if(U){if(U=!1,window.removeEventListener("resize",A),document.removeEventListener("toggle",Ve,!0),ee?.disconnect(),te){let t=document.querySelector("header[data-sticky]");t&&delete t.dataset.sticky,te=!1}document.documentElement.style.removeProperty("--sticky-offset")}}var U,ee,te,N=pe(()=>{U=!1,te=!1});var Ge={};fe(Ge,{SoundManager:()=>it});var He,ae,it,je=pe(()=>{He="vb-sound",ae={enabled:!1,volume:.5},it={_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(He);return t?{...ae,...JSON.parse(t)}:{...ae}}catch{return{...ae}}},_save(t){try{let e=this._load();localStorage.setItem(He,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 ct=window.matchMedia("(prefers-reduced-motion: reduce)");var ye=new Map;function be(t,e,a={}){let s=a.priority??10,r={impl:e,bundle:a.bundle,contract:a.contract,priority:s},n=ye.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}ye.set(t,r),customElements.define(t,e)}var I=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))}_reinit(){for(let e of this.#t)e();this.#t=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}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,K=new Map;var we=null;function ve(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(we)return we;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 Ke=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),Xe=new Set(["kawaii","memphis"]);function X(t){return Xe.has(t)}function Ye(t,e){return`${e}/themes/${t}.css`}function Se(t,e){if(!X(t))return Promise.resolve();if(K.has(t))return K.get(t);let a=import(`${e}/packs/${t}.full.js`).catch(()=>{});return K.set(t,a),a}function Je(t,e){let a=ve(),s=()=>{(X(e)||t.hasAttribute("data-vb-pack"))&&Se(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 O(t){if(!t||Ke.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=Je(s,t);return x.set(t,r),r}}let e=ve(),a=X(t)?Ze(t,e):Qe(t,e);return x.set(t,a),a}async function Qe(t,e){let a=Ye(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 Ze(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),Se(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 ke=[{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":"58%","--chroma-primary":.12}},{id:"sunset",name:"Sunset",swatchBg:"#ea580c",seeds:{"--hue-primary":25,"--hue-secondary":0,"--hue-accent":280,"--lightness-primary":"57%","--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":"57%","--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":"56%","--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}}],Ee=[{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"}],Y=[{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"}],J=[{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"}],_e=[{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 ut=[...Y,...J],gt=[...Ee,...Y,...J,..._e],B=t=>Y.filter(e=>e.category===t),xe=[{label:"Style",themes:Ee,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:_e,tier:"showcase"},{label:"More Themes",themes:J,tier:"community"}];function et(){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 V="__vbStoreBackend",H=globalThis;function S(){return H[V]||(H[V]=et()),H[V]}function Q(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 Be(t){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${t}:`}function Ce(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={}){H[V]=t.backend??null},async set(t,e,a){let s={data:a,timestamp:Date.now()};await S().setRaw(Q(t,e),JSON.stringify(s))},async get(t,e,a){let s=await S().getRaw(Q(t,e));if(s==null)return null;let r=Ce(s);return!r||a?.maxAge!=null&&Date.now()-r.timestamp>a.maxAge?null:r.data},async remove(t,e){await S().removeRaw(Q(t,e))},async list(t){let e=Be(t),a=await S().keys(e),s=[];for(let r of a){let n=await S().getRaw(r);if(n==null)continue;let i=Ce(n);i&&s.push({key:r.slice(e.length),data:i.data,timestamp:i.timestamp})}return s},async clear(t){let e=Be(t),a=await S().keys(e);for(let s of a)await S().removeRaw(s)},async clearAll(){let t=await S().keys("vb:");for(let e of t)await S().removeRaw(e)},async setMany(t,e){for(let[a,s]of e)await u.set(t,a,s)}};if(typeof window<"u"){let t=window.VB??(window.VB={});t.store??=u}var G="theme",j="current",y={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""};function Me(t){return(t||"").split(/\s+/).find(e=>e&&!e.startsWith("a11y-"))||""}function Te(t,e){return t?.brand&&t.brand!==y.brand?t.brand:Me(e)||y.brand}var Ae=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],l=null,C="",h={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let t=await u.get(G,j);l=t?{...y,...t}:{...y},C=Me(document.documentElement.dataset.theme),l.brand=Te(t,C);try{await O(l.brand)}catch{l.brand!==C&&(l.brand=C||y.brand)}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:${G}:${j}`||!t.newValue)return;let e;try{e=JSON.parse(t.newValue)?.data}catch{return}if(!e||typeof e!="object")return;let a={...y,...l,...e};if(a.brand=Te(e,C),a.brand&&a.brand!==l?.brand)try{await O(a.brand)}catch{a.brand=C||y.brand}l=a,this.apply(l||{})})},load(){return l?{...l}:{...y}},save(t){let e={...l??y,...t};return l=e,u.set(G,j,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:f="",pageBgGradEnd:p="",pageBgGradDir:w=""}={}){let d=document.documentElement;d.dataset.mode=t==="auto"?this.getEffectiveMode():t;let $=(d.dataset.theme||"").split(" ").filter(P=>P.startsWith("a11y-")),m=e!=="default"?[e,...$]:[...$];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"&&f&&p){let P=w||"to bottom";d.style.setProperty("--page-bg-gradient",`linear-gradient(${P}, ${f}, ${p})`),d.style.removeProperty("--page-bg-color")}else d.style.removeProperty("--page-bg-color"),d.style.removeProperty("--page-bg-gradient");let v=this.load().accent||"default";this._applyAccent(v),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:t,brand:e,accent:v,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 O(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:f,pageBgGradStart:p,pageBgGradEnd:w,pageBgGradDir:d}=this.load();return{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:n,backdrop:i,backdropChrome:c,pageBgType:g,pageBgColor:f,pageBgGradStart:p,pageBgGradEnd:w,pageBgGradDir:d,effectiveMode:this.getEffectiveMode()}},toggleMode(){let e=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(e)},reset(){l={...y,brand:C||y.brand},u.remove(G,j).catch(()=>{});let t=document.documentElement;t.style.removeProperty("--page-bg-color"),t.style.removeProperty("--page-bg-gradient");for(let e of Ae)t.style.removeProperty(e);this.apply(l)},_readCSSHint(t){return getComputedStyle(document.documentElement).getPropertyValue(t).trim()},_applyAccent(t){let e=document.documentElement;for(let s of Ae)e.style.removeProperty(s);let a=ke.find(s=>s.id===t);if(!a||!a.seeds||Object.keys(a.seeds).length===0){delete e.dataset.accent;return}e.dataset.accent=a.id},_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,O(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 $e="environment",Pe="preferences",Z={timeOfDay:!1,seasonal:!1},tt=900*1e3,_={...Z};function T(t,e,a){return t+(e-t)*Math.min(1,Math.max(0,a))}var L={_timer:null,_baseHues:null,_timeOverride:null,_monthOverride:null,async init(){let t=await u.get($e,Pe);_=t?{...Z,...t}:{...Z},(_.timeOfDay||_.seasonal)&&(this._captureBaseHues(),this._update(),this._startLoop()),window.addEventListener("vb:theme-change",()=>{this._hasActiveSource()&&requestAnimationFrame(()=>{this._captureBaseHues(),this._update()})})},load(){return{..._}},save(t){return _={..._,...t},u.set($e,Pe,_).catch(()=>{}),{..._}},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?T(-20,20,(t-5)/2):t<10?T(20,5,(t-7)/3):t<14?T(5,0,(t-10)/4):t<17?T(0,-5,(t-14)/3):t<19?T(-5,15,(t-17)/2):t<21?T(15,-10,(t-19)/2):T(-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(),tt))},_stopLoop(){this._timer&&clearInterval(this._timer),this._timer=null}};var W=null;function De(){return"0.5.0-c9fb648d"}function at(){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 Oe(){return W||(W=navigator.serviceWorker?.ready??Promise.reject(new Error("SW not supported"))),W}function Le(t){return new Promise((e,a)=>{navigator.serviceWorker?.controller?Fe(navigator.serviceWorker.controller,t,e,a):Oe().then(s=>{let r=s.active||s.waiting||s.installing;r?Fe(r,t,e,a):a(new Error("No active service worker"))}).catch(a)})}function Fe(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 qe(){return Le("GET_STATUS")}async function Re(){return Le("CLEAR_CACHE")}async function Ie(){let t=await Oe();return await t.update(),{updated:!!t.waiting}}function st(){return typeof window>"u"||!("serviceWorker"in navigator)?!1:window.__VB_SERVICE_WORKER?!0:document.querySelector('meta[name="vb-service-worker"]')?.content==="true"}if(st()){let t=at();window.addEventListener("load",()=>{W=navigator.serviceWorker.register(t).catch(e=>{console.warn("[VB] Service worker registration failed:",e)})})}var F=null,b="settings",q={motionFx:!0,sounds:!1},se=class extends I{#t=null;#e=null;#s=!1;#r=[];#a={...q};#n=!1;setup(){return this.#A(),!0}async#A(){await this.#M(),this.#$(),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(){this.#e?.remove(),this.#e=null}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(b,"a11y",this.#r))),e.extensions&&typeof e.extensions=="object"&&(this.#a={...q,...e.extensions},a.push(u.set(b,"extensions",this.#a))),e.sticky!=null&&(this.#n=!!e.sticky,a.push(u.set(b,"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(b,"a11y"),u.get(b,"extensions"),u.get(b,"sticky")]);this.#r=Array.isArray(e)?e:[],this.#a={...q,...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"}#$(){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.#P(),this.appendChild(this.#e)}#P(){let{mode:e,brand:a,fluid:s,backdrop:r,backdropChrome:n,pageBgType:i,pageBgColor:c,pageBgGradStart:g,pageBgGradEnd:f,pageBgGradDir:p}=h.getState(),w=this.#c(),d=this.#y(),M=this.#b(s),$=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">
@@ -68,7 +68,7 @@ var ze=Object.defineProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var pe=(t,e)=>{
68
68
  <legend class="visually-hidden">Density</legend>
69
69
  ${["compact","default","spacious"].map(o=>`
70
70
  <label>
71
- <input type="radio" name="settings-density" value="${o}" ${P===o?"checked":""} />
71
+ <input type="radio" name="settings-density" value="${o}" ${$===o?"checked":""} />
72
72
  ${o[0].toUpperCase()+o.slice(1)}
73
73
  </label>
74
74
  `).join("")}
@@ -178,7 +178,7 @@ var ze=Object.defineProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var pe=(t,e)=>{
178
178
  <details name="settings">
179
179
  <summary>System</summary>
180
180
  <div class="settings-section system-info">
181
- <p class="system-version">Vanilla Breeze <code>v${Fe()}</code></p>
181
+ <p class="system-version">Vanilla Breeze <code>v${De()}</code></p>
182
182
  <p class="system-sw-status" data-sw-status>Service Worker: <span>checking\u2026</span></p>
183
183
  <footer class="system-actions">
184
184
  <button type="button" data-action="clear-cache">Clear Cache</button>
@@ -191,5 +191,5 @@ var ze=Object.defineProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var pe=(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.#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(b,"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(()=>(z(),U));r()}else{delete document.documentElement.dataset.sticky,s&&delete s.dataset.sticky;let{destroyStickyManager:r}=await Promise.resolve().then(()=>(z(),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";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;L.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={...q},u.remove(b,"extensions").catch(()=>{}),this.#C(),this.#n=!1,u.remove(b,"sticky").catch(()=>{}),delete document.documentElement.dataset.sticky,Promise.resolve().then(()=>(z(),U)).then(e=>e.destroyStickyManager()).catch(()=>{}),L.setSource("timeOfDay",!1),L.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:f,pageBgGradDir:p}=h.getState(),w=this.#c(),d=this.#y(),M=this.#b(s),P=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 v=this.#e.querySelector("#settings-theme");v&&(v.value=a||"default");let $=this.#e.querySelector("input[data-fluid-toggle]");$&&($.checked=M);let se=this.#e.querySelector(`input[name="settings-density"][value="${P}"]`);se&&(se.checked=!0),this.#x(M);let re=this.#e.querySelector("input[data-backdrop-toggle]");re&&(re.checked=m);let ne=this.#e.querySelector(`input[name="settings-backdrop"][value="${k}"]`);ne&&(ne.checked=!0);let Ge=this.#h(n),ie=this.#e.querySelector(`input[name="settings-backdrop-chrome"][value="${Ge}"]`);ie&&(ie.checked=!0);let oe=this.#e.querySelector("input[data-backdrop-fixed]");oe&&(oe.checked=this.#u(n)),this.#_(m);let ce=this.#e.querySelector('[name="settings-page-bg"]');ce&&(ce.value=i||"");let de=this.#e.querySelector('[name="settings-page-bg-color"]');de&&c&&(de.value=c);let le=this.#e.querySelector('[name="settings-page-bg-grad-start"]');le&&g&&(le.value=g);let he=this.#e.querySelector('[name="settings-page-bg-grad-end"]');he&&f&&(he.value=f);let ue=this.#e.querySelector('[name="settings-page-bg-grad-dir"]');ue&&p&&(ue.value=p),m&&this.#m(i||""),this.#e.querySelectorAll("input[data-a11y]").forEach(D=>{let E=D;E.checked=w.includes(E.dataset.a11y||"")}),this.#e.querySelectorAll("input[data-ext]").forEach(D=>{let E=D,R=E.dataset.ext,Ue=d[R];E.checked=Ue??q[R]});let ge=this.#e.querySelector("input[data-sticky-toggle]");ge&&(ge.checked=this.#v());let We=this.#f();this.#e.querySelectorAll("input[data-env]").forEach(D=>{let E=D,R=E.dataset.env;E.checked=We[R]??!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(b,"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()}#f(){return L.load()}#y(){return{...this.#a}}#Q(e,a){this.#a={...this.#a,[e]:a},u.set(b,"extensions",this.#a).catch(()=>{})}async#C(){let e=this.#y(),a=document.documentElement;e.motionFx?delete a.dataset.motionReduced:a.dataset.motionReduced="",e.sounds?(F||(F=(await Promise.resolve().then(()=>(je(),Ve))).SoundManager),F.init(),F.enable()):F&&F.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 Le()).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 qe(),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 Re();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,f=e.left,p=s.width;e.right<p&&f<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",ae);export{ae 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.#V)}),this.#e.querySelector("input[data-backdrop-toggle]")?.addEventListener("change",this.#H),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.#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.#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=>{h.setMode(e.target.value)};#R=async e=>{let a=e.target;a.disabled=!0;try{await h.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(h.getState().fluid)||"default";h.setFluid(this.#w(a,s)),this.#_(a)};#V=e=>{h.setFluid(this.#w(!0,e.target.value))};#H=e=>{let a=e.target.checked,s=this.#l(h.getState().backdrop)||"default";h.setBackdrop(this.#k(a,s)),this.#x(a)};#G=e=>{h.setBackdrop(this.#k(!0,e.target.value))};#j=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(b,"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(()=>(N(),z));r()}else{delete document.documentElement.dataset.sticky,s&&delete s.dataset.sticky;let{destroyStickyManager:r}=await Promise.resolve().then(()=>(N(),z));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;L.setSource(a,s)};#Y=()=>{confirm("Reset all settings to defaults?")&&(h.reset(),this.#B([]),this.#p(),window.dispatchEvent(new CustomEvent("vb:a11y-themes-change",{detail:[]})),this.#a={...q},u.remove(b,"extensions").catch(()=>{}),this.#C(),this.#n=!1,u.remove(b,"sticky").catch(()=>{}),delete document.documentElement.dataset.sticky,Promise.resolve().then(()=>(N(),z)).then(e=>e.destroyStickyManager()).catch(()=>{}),L.setSource("timeOfDay",!1),L.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:f,pageBgGradDir:p}=h.getState(),w=this.#c(),d=this.#y(),M=this.#b(s),$=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 v=this.#e.querySelector("#settings-theme");v&&(v.value=a||"default");let P=this.#e.querySelector("input[data-fluid-toggle]");P&&(P.checked=M);let re=this.#e.querySelector(`input[name="settings-density"][value="${$}"]`);re&&(re.checked=!0),this.#_(M);let ne=this.#e.querySelector("input[data-backdrop-toggle]");ne&&(ne.checked=m);let ie=this.#e.querySelector(`input[name="settings-backdrop"][value="${k}"]`);ie&&(ie.checked=!0);let We=this.#h(n),oe=this.#e.querySelector(`input[name="settings-backdrop-chrome"][value="${We}"]`);oe&&(oe.checked=!0);let ce=this.#e.querySelector("input[data-backdrop-fixed]");ce&&(ce.checked=this.#u(n)),this.#x(m);let de=this.#e.querySelector('[name="settings-page-bg"]');de&&(de.value=i||"");let le=this.#e.querySelector('[name="settings-page-bg-color"]');le&&c&&(le.value=c);let he=this.#e.querySelector('[name="settings-page-bg-grad-start"]');he&&g&&(he.value=g);let ue=this.#e.querySelector('[name="settings-page-bg-grad-end"]');ue&&f&&(ue.value=f);let ge=this.#e.querySelector('[name="settings-page-bg-grad-dir"]');ge&&p&&(ge.value=p),m&&this.#m(i||""),this.#e.querySelectorAll("input[data-a11y]").forEach(D=>{let E=D;E.checked=w.includes(E.dataset.a11y||"")}),this.#e.querySelectorAll("input[data-ext]").forEach(D=>{let E=D,R=E.dataset.ext,ze=d[R];E.checked=ze??q[R]});let me=this.#e.querySelector("input[data-sticky-toggle]");me&&(me.checked=this.#v());let Ue=this.#f();this.#e.querySelectorAll("input[data-env]").forEach(D=>{let E=D,R=E.dataset.env;E.checked=Ue[R]??!1})}#_(e){let a=this.#e.querySelector(".density-row");a&&(a.hidden=!e)}#x(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(b,"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}#J(){this.#p()}#f(){return L.load()}#y(){return{...this.#a}}#Q(e,a){this.#a={...this.#a,[e]:a},u.set(b,"extensions",this.#a).catch(()=>{})}async#C(){let e=this.#y(),a=document.documentElement;e.motionFx?delete a.dataset.motionReduced:a.dataset.motionReduced="",e.sounds?(F||(F=(await Promise.resolve().then(()=>(je(),Ge))).SoundManager),F.init(),F.enable()):F&&F.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 qe()).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 Re(),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 Ie();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,f=e.left,p=s.width;e.right<p&&f<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()}};be("settings-panel",se);export{se as SettingsPanel};
195
195
  //# sourceMappingURL=settings-panel.js.map
@@ -1,4 +1,4 @@
1
- var k=window.matchMedia("(prefers-reduced-motion: reduce)");var b=new Map;function y(e,t,n={}){let i=n.priority??10,o={impl:t,bundle:n.bundle,contract:n.contract,priority:i},r=b.get(e);if(customElements.get(e)){if(!r||r.priority>=i){r&&r.priority===i&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${e}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=i){r.priority===i&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}b.set(e,o),customElements.define(e,t)}var c=class extends HTMLElement{#n=[];#t;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 t of this.#n)t();this.#n=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,n,i,o){t.addEventListener(n,i,o),this.#n.push(()=>t.removeEventListener(n,i,o))}setup(){}teardown(){}setState(t,n){this.#t||(this.#t=this.attachInternals());let i=this.#t.states;try{n?i.add(t):i.delete(t)}catch{let o=`--${t}`;n?i.add(o):i.delete(o)}}_adoptInternals(t){this.#t||(this.#t=t)}};var u="[data-copy], [data-copy-target], [data-paste-target]",g="Copied to clipboard",A="Pasted from clipboard",d=new WeakMap;async function l(e,t={}){if(e==null||e==="")return!1;let{button:n,announceMessage:i=g,duration:o=1500}=t;try{await navigator.clipboard.writeText(e)}catch{return!1}return E({button:n,duration:o,announceMessage:i,eventDetail:{text:e}}),!0}function E({button:e,duration:t,announceMessage:n,eventDetail:i,state:o="copied",eventName:r="copy"}){if(e){e.dataset.state=o;let a=d.get(e);a&&clearTimeout(a),d.set(e,setTimeout(()=>{delete e.dataset.state,d.delete(e)},t)),e.dispatchEvent(new CustomEvent(r,{bubbles:!0,detail:i}))}T(n,e??document.body)}async function S(e,t={}){let{button:n,announceMessage:i=A,duration:o=1500}=t,r;try{r=await navigator.clipboard.readText()}catch{return null}return e&&("value"in e&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)?e.value=r:e.textContent=r,e.dispatchEvent(new Event("input",{bubbles:!0}))),E({button:n,duration:o,announceMessage:i,eventDetail:{text:r},state:"pasted",eventName:"paste"}),r}function v(e=document){e.querySelectorAll(u).forEach(h)}function h(e){e.hasAttribute("data-copy-init")||(e.setAttribute("data-copy-init",""),e.addEventListener("click",()=>{if(e.dataset.pasteTarget){let n=document.querySelector(e.dataset.pasteTarget);if(!n)return;S(n,{button:e});return}let t=C(e);t&&l(t,{button:e})}))}function C(e){if(e.dataset.copy)return e.dataset.copy;if(e.dataset.copyTarget){let t=document.querySelector(e.dataset.copyTarget);if(!t)return"";let n=e.dataset.copyAttr;return n?t.getAttribute(n)??"":t.textContent??""}return""}function T(e,t){let n=document.createElement("div");n.setAttribute("role","status"),n.setAttribute("aria-live","polite"),n.className="visually-hidden",n.textContent=e,t.appendChild(n),setTimeout(()=>n.remove(),1e3)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>v()):v();var $=new MutationObserver(e=>{for(let t of e)for(let n of t.addedNodes){if(n.nodeType!==Node.ELEMENT_NODE)continue;let i=n;i.matches(u)&&h(i),i.querySelectorAll(u).forEach(o=>h(o))}});$.observe(document.documentElement,{childList:!0,subtree:!0});var p=new Map([["x",{label:"X",iconName:"twitter",buildUrl:({url:e,title:t})=>`https://x.com/intent/post?url=${s(e)}&text=${s(t)}`}],["twitter",{label:"X",iconName:"twitter",buildUrl:({url:e,title:t})=>`https://x.com/intent/post?url=${s(e)}&text=${s(t)}`}],["facebook",{label:"Facebook",iconName:"facebook",buildUrl:({url:e})=>`https://www.facebook.com/sharer/sharer.php?u=${s(e)}`}],["linkedin",{label:"LinkedIn",iconName:"linkedin",buildUrl:({url:e})=>`https://www.linkedin.com/sharing/share-offsite/?url=${s(e)}`}],["whatsapp",{label:"WhatsApp",iconName:"whatsapp",iconSet:"custom",buildUrl:({url:e,title:t})=>`https://wa.me/?text=${s(`${t} ${e}`)}`}],["telegram",{label:"Telegram",iconName:"telegram",iconSet:"custom",buildUrl:({url:e,title:t})=>`https://t.me/share/url?url=${s(e)}&text=${s(t)}`}],["bluesky",{label:"Bluesky",iconName:"bluesky",iconSet:"custom",buildUrl:({url:e,title:t})=>`https://bsky.app/intent/compose?text=${s(`${t} ${e}`)}`}],["mastodon",{label:"Mastodon",iconName:"mastodon",iconSet:"custom",buildUrl:({url:e,title:t},n="mastodon.social")=>`https://${n}/share?text=${s(`${t} ${e}`)}`}],["email",{label:"Email",iconName:"mail",buildUrl:({url:e,title:t,text:n})=>`mailto:?subject=${s(t)}&body=${s(`${n}
1
+ var k=window.matchMedia("(prefers-reduced-motion: reduce)");var b=new Map;function y(e,t,n={}){let i=n.priority??10,o={impl:t,bundle:n.bundle,contract:n.contract,priority:i},r=b.get(e);if(customElements.get(e)){if(!r||r.priority>=i){r&&r.priority===i&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${e}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=i){r.priority===i&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}b.set(e,o),customElements.define(e,t)}var c=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 t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,n,i,o){t.addEventListener(n,i,o),this.#t.push(()=>t.removeEventListener(n,i,o))}_reinit(){for(let t of this.#t)t();this.#t=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}setup(){}teardown(){}setState(t,n){this.#e||(this.#e=this.attachInternals());let i=this.#e.states;try{n?i.add(t):i.delete(t)}catch{let o=`--${t}`;n?i.add(o):i.delete(o)}}_adoptInternals(t){this.#e||(this.#e=t)}};var u="[data-copy], [data-copy-target], [data-paste-target]",w="Copied to clipboard",A="Pasted from clipboard",d=new WeakMap;async function l(e,t={}){if(e==null||e==="")return!1;let{button:n,announceMessage:i=w,duration:o=1500}=t;try{await navigator.clipboard.writeText(e)}catch{return!1}return E({button:n,duration:o,announceMessage:i,eventDetail:{text:e}}),!0}function E({button:e,duration:t,announceMessage:n,eventDetail:i,state:o="copied",eventName:r="copy"}){if(e){e.dataset.state=o;let a=d.get(e);a&&clearTimeout(a),d.set(e,setTimeout(()=>{delete e.dataset.state,d.delete(e)},t)),e.dispatchEvent(new CustomEvent(r,{bubbles:!0,detail:i}))}T(n,e??document.body)}async function C(e,t={}){let{button:n,announceMessage:i=A,duration:o=1500}=t,r;try{r=await navigator.clipboard.readText()}catch{return null}return e&&("value"in e&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)?e.value=r:e.textContent=r,e.dispatchEvent(new Event("input",{bubbles:!0}))),E({button:n,duration:o,announceMessage:i,eventDetail:{text:r},state:"pasted",eventName:"paste"}),r}function v(e=document){e.querySelectorAll(u).forEach(h)}function h(e){e.hasAttribute("data-copy-init")||(e.setAttribute("data-copy-init",""),e.addEventListener("click",()=>{if(e.dataset.pasteTarget){let n=document.querySelector(e.dataset.pasteTarget);if(!n)return;C(n,{button:e});return}let t=S(e);t&&l(t,{button:e})}))}function S(e){if(e.dataset.copy)return e.dataset.copy;if(e.dataset.copyTarget){let t=document.querySelector(e.dataset.copyTarget);if(!t)return"";let n=e.dataset.copyAttr;return n?t.getAttribute(n)??"":t.textContent??""}return""}function T(e,t){let n=document.createElement("div");n.setAttribute("role","status"),n.setAttribute("aria-live","polite"),n.className="visually-hidden",n.textContent=e,t.appendChild(n),setTimeout(()=>n.remove(),1e3)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>v()):v();var $=new MutationObserver(e=>{for(let t of e)for(let n of t.addedNodes){if(n.nodeType!==Node.ELEMENT_NODE)continue;let i=n;i.matches(u)&&h(i),i.querySelectorAll(u).forEach(o=>h(o))}});$.observe(document.documentElement,{childList:!0,subtree:!0});var p=new Map([["x",{label:"X",iconName:"twitter",buildUrl:({url:e,title:t})=>`https://x.com/intent/post?url=${s(e)}&text=${s(t)}`}],["twitter",{label:"X",iconName:"twitter",buildUrl:({url:e,title:t})=>`https://x.com/intent/post?url=${s(e)}&text=${s(t)}`}],["facebook",{label:"Facebook",iconName:"facebook",buildUrl:({url:e})=>`https://www.facebook.com/sharer/sharer.php?u=${s(e)}`}],["linkedin",{label:"LinkedIn",iconName:"linkedin",buildUrl:({url:e})=>`https://www.linkedin.com/sharing/share-offsite/?url=${s(e)}`}],["whatsapp",{label:"WhatsApp",iconName:"whatsapp",iconSet:"custom",buildUrl:({url:e,title:t})=>`https://wa.me/?text=${s(`${t} ${e}`)}`}],["telegram",{label:"Telegram",iconName:"telegram",iconSet:"custom",buildUrl:({url:e,title:t})=>`https://t.me/share/url?url=${s(e)}&text=${s(t)}`}],["bluesky",{label:"Bluesky",iconName:"bluesky",iconSet:"custom",buildUrl:({url:e,title:t})=>`https://bsky.app/intent/compose?text=${s(`${t} ${e}`)}`}],["mastodon",{label:"Mastodon",iconName:"mastodon",iconSet:"custom",buildUrl:({url:e,title:t},n="mastodon.social")=>`https://${n}/share?text=${s(`${t} ${e}`)}`}],["email",{label:"Email",iconName:"mail",buildUrl:({url:e,title:t,text:n})=>`mailto:?subject=${s(t)}&body=${s(`${n}
2
2
 
3
- ${e}`)}`}],["copy",{label:"Copy link",iconName:"link",buildUrl:()=>""}]]),f="x,linkedin,bluesky,mastodon,whatsapp,email,copy";function s(e){return encodeURIComponent(e)}var m=class extends c{#n;#t;#o;#i="";#r=null;#e=null;get url(){return this.#n}set url(t){this.#n=t}get title(){return this.#t??""}set title(t){this.#t=t}get text(){return this.#o}set text(t){this.#o=t}setup(){if(this.#l(),this.#d(),this.closest("selection-menu")){this.#u(),this.setAttribute("data-tier-resolved","selection");return}this.#i==="native"?this.#h():this.#i==="hidden"?this.style.display="none":this.children.length>0?this.#f():this.#p(),this.setAttribute("data-tier-resolved",this.#i)}teardown(){this.removeAttribute("data-tier-resolved"),this.#r&&(clearTimeout(this.#r),this.#r=null),this.#e&&(this.#e.removeEventListener("click",this.#s),this.#e.remove(),this.#e=null),this.querySelector(".share-trigger")?.remove()}async share(){this.#i==="native"&&await this.#a()}#l(){this.#n=this.getAttribute("url")||document.querySelector('link[rel="canonical"]')?.getAttribute("href")||location.href,this.#t=this.getAttribute("title")||document.querySelector('meta[property="og:title"]')?.getAttribute("content")||document.title,this.#o=this.getAttribute("text")||document.querySelector('meta[name="description"]')?.getAttribute("content")||document.querySelector('meta[property="og:description"]')?.getAttribute("content")||""}#d(){let t=this.getAttribute("tier");if(t==="platforms"||t==="native"){t==="native"&&!navigator.share?this.#i="hidden":this.#i=t;return}if((this.getAttribute("platforms")||f)==="native-only"){this.#i=typeof navigator.share=="function"?"native":"hidden";return}this.#i=typeof navigator.share=="function"?"native":"platforms"}#u(){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Share selection");let n=document.createElement("icon-wc");n.setAttribute("name","share-2"),n.setAttribute("size","sm"),n.setAttribute("aria-hidden","true"),t.appendChild(n),t.addEventListener("click",()=>{let i=this.closest("selection-menu"),r=i?.getSelection?.()?.text||window.getSelection()?.toString()||"";r&&navigator.share?navigator.share({text:`"${r}" \u2014 ${location.href}`}).catch(()=>{}):r&&l(`"${r}" \u2014 ${location.href}`,{button:t,announceMessage:"Selection copied"}),i?.dismiss?.()}),this.appendChild(t)}#h(){let t=this.getAttribute("label")||"Share",n=document.createElement("button");n.type="button",n.className="share-trigger",n.setAttribute("aria-label","Share this page"),n.innerHTML=`<icon-wc name="share-2" size="sm" aria-hidden="true"></icon-wc><span class="share-label">${t}</span>`,n.addEventListener("click",this.#m),this.appendChild(n)}#p(){let t=(this.getAttribute("platforms")||f).split(",").map(n=>n.trim()).filter(Boolean);this.#e=document.createElement("nav"),this.#e.setAttribute("aria-label","Share this page");for(let n of t){let i=p.get(n);if(!i)continue;let o=document.createElement("button");o.type="button",o.dataset.platform=n,o.setAttribute("aria-label",n==="copy"?"Copy link":`Share on ${i.label}`);let r=i.iconSet?` set="${i.iconSet}"`:"";o.innerHTML=`<icon-wc name="${i.iconName}" size="sm"${r} aria-hidden="true"></icon-wc><span class="share-label">${i.label}</span>`,this.#e.appendChild(o)}this.#e.addEventListener("click",this.#s),this.appendChild(this.#e)}#f(){if(this.querySelector("nav"))this.#e=this.querySelector("nav");else{let i=document.createElement("nav");for(i.setAttribute("aria-label","Share this page");this.firstChild;)i.appendChild(this.firstChild);this.appendChild(i),this.#e=i}let t=this.querySelectorAll("a[data-platform]");for(let i of t){let o=i.getAttribute("href")||"";i.setAttribute("href",o.replace(/\{url\}/g,encodeURIComponent(this.#n||"")).replace(/\{title\}/g,encodeURIComponent(this.#t||"")).replace(/\{text\}/g,encodeURIComponent(this.#o||"")))}let n=this.querySelectorAll('[data-platform="copy"]');for(let i of n)i.addEventListener("click",this.#c);this.#e.addEventListener("click",this.#s)}#m=async()=>{await this.#a()};async#a(){let t={url:this.#n||"",title:this.#t||"",text:this.#o||""};this.dispatchEvent(new CustomEvent("share-wc:open",{detail:{platform:"native"},bubbles:!0}));try{if(navigator.canShare&&!navigator.canShare(t))throw new Error("Payload not shareable");await navigator.share(t),this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:"native"},bubbles:!0}))}catch(n){n.name!=="AbortError"&&this.dispatchEvent(new CustomEvent("share-wc:error",{detail:{platform:"native",error:n},bubbles:!0}))}}#s=t=>{let n=t.target.closest("[data-platform]");if(!n)return;let i=n.dataset.platform;if(i==="copy"){this.#c(t,n);return}if(n.tagName==="A"||!i)return;let o=p.get(i);if(!o)return;this.dispatchEvent(new CustomEvent("share-wc:open",{detail:{platform:i},bubbles:!0}));let r={url:this.#n||"",title:this.#t||"",text:this.#o||""};if(i==="email")location.href=o.buildUrl(r);else if(i==="mastodon"){let a=this.getAttribute("mastodon-instance")||"mastodon.social",w=o.buildUrl(r,a);window.open(w,"_blank","noopener,noreferrer")}else window.open(o.buildUrl(r),"_blank","noopener,noreferrer");this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:i},bubbles:!0}))};#c=async(t,n)=>{let i=n||t?.target?.closest('[data-platform="copy"]');if(!i)return;if(!await l(this.#n||"",{button:i,announceMessage:"Link copied to clipboard",duration:2e3})){this.dispatchEvent(new CustomEvent("share-wc:error",{detail:{platform:"copy"},bubbles:!0}));return}let r=i.querySelector(".share-label"),a=r?.textContent;r&&(r.textContent="Copied!"),this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:"copy"},bubbles:!0})),this.#r&&clearTimeout(this.#r),this.#r=setTimeout(()=>{r&&a&&(r.textContent=a),this.#r=null},2e3)}};y("share-wc",m);export{m as ShareWc};
3
+ ${e}`)}`}],["copy",{label:"Copy link",iconName:"link",buildUrl:()=>""}]]),f="x,linkedin,bluesky,mastodon,whatsapp,email,copy";function s(e){return encodeURIComponent(e)}var m=class extends c{#t;#e;#o;#i="";#r=null;#n=null;get url(){return this.#t}set url(t){this.#t=t}get title(){return this.#e??""}set title(t){this.#e=t}get text(){return this.#o}set text(t){this.#o=t}setup(){if(this.#l(),this.#d(),this.closest("selection-menu")){this.#u(),this.setAttribute("data-tier-resolved","selection");return}this.#i==="native"?this.#h():this.#i==="hidden"?this.style.display="none":this.children.length>0?this.#f():this.#p(),this.setAttribute("data-tier-resolved",this.#i)}teardown(){this.removeAttribute("data-tier-resolved"),this.#r&&(clearTimeout(this.#r),this.#r=null),this.#n&&(this.#n.removeEventListener("click",this.#s),this.#n.remove(),this.#n=null),this.querySelector(".share-trigger")?.remove()}async share(){this.#i==="native"&&await this.#a()}#l(){this.#t=this.getAttribute("url")||document.querySelector('link[rel="canonical"]')?.getAttribute("href")||location.href,this.#e=this.getAttribute("title")||document.querySelector('meta[property="og:title"]')?.getAttribute("content")||document.title,this.#o=this.getAttribute("text")||document.querySelector('meta[name="description"]')?.getAttribute("content")||document.querySelector('meta[property="og:description"]')?.getAttribute("content")||""}#d(){let t=this.getAttribute("tier");if(t==="platforms"||t==="native"){t==="native"&&!navigator.share?this.#i="hidden":this.#i=t;return}if((this.getAttribute("platforms")||f)==="native-only"){this.#i=typeof navigator.share=="function"?"native":"hidden";return}this.#i=typeof navigator.share=="function"?"native":"platforms"}#u(){let t=document.createElement("button");t.type="button",t.setAttribute("aria-label","Share selection");let n=document.createElement("icon-wc");n.setAttribute("name","share-2"),n.setAttribute("size","sm"),n.setAttribute("aria-hidden","true"),t.appendChild(n),t.addEventListener("click",()=>{let i=this.closest("selection-menu"),r=i?.getSelection?.()?.text||window.getSelection()?.toString()||"";r&&navigator.share?navigator.share({text:`"${r}" \u2014 ${location.href}`}).catch(()=>{}):r&&l(`"${r}" \u2014 ${location.href}`,{button:t,announceMessage:"Selection copied"}),i?.dismiss?.()}),this.appendChild(t)}#h(){let t=this.getAttribute("label")||"Share",n=document.createElement("button");n.type="button",n.className="share-trigger",n.setAttribute("aria-label","Share this page"),n.innerHTML=`<icon-wc name="share-2" size="sm" aria-hidden="true"></icon-wc><span class="share-label">${t}</span>`,n.addEventListener("click",this.#m),this.appendChild(n)}#p(){let t=(this.getAttribute("platforms")||f).split(",").map(n=>n.trim()).filter(Boolean);this.#n=document.createElement("nav"),this.#n.setAttribute("aria-label","Share this page");for(let n of t){let i=p.get(n);if(!i)continue;let o=document.createElement("button");o.type="button",o.dataset.platform=n,o.setAttribute("aria-label",n==="copy"?"Copy link":`Share on ${i.label}`);let r=i.iconSet?` set="${i.iconSet}"`:"";o.innerHTML=`<icon-wc name="${i.iconName}" size="sm"${r} aria-hidden="true"></icon-wc><span class="share-label">${i.label}</span>`,this.#n.appendChild(o)}this.#n.addEventListener("click",this.#s),this.appendChild(this.#n)}#f(){if(this.querySelector("nav"))this.#n=this.querySelector("nav");else{let i=document.createElement("nav");for(i.setAttribute("aria-label","Share this page");this.firstChild;)i.appendChild(this.firstChild);this.appendChild(i),this.#n=i}let t=this.querySelectorAll("a[data-platform]");for(let i of t){let o=i.getAttribute("href")||"";i.setAttribute("href",o.replace(/\{url\}/g,encodeURIComponent(this.#t||"")).replace(/\{title\}/g,encodeURIComponent(this.#e||"")).replace(/\{text\}/g,encodeURIComponent(this.#o||"")))}let n=this.querySelectorAll('[data-platform="copy"]');for(let i of n)i.addEventListener("click",this.#c);this.#n.addEventListener("click",this.#s)}#m=async()=>{await this.#a()};async#a(){let t={url:this.#t||"",title:this.#e||"",text:this.#o||""};this.dispatchEvent(new CustomEvent("share-wc:open",{detail:{platform:"native"},bubbles:!0}));try{if(navigator.canShare&&!navigator.canShare(t))throw new Error("Payload not shareable");await navigator.share(t),this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:"native"},bubbles:!0}))}catch(n){n.name!=="AbortError"&&this.dispatchEvent(new CustomEvent("share-wc:error",{detail:{platform:"native",error:n},bubbles:!0}))}}#s=t=>{let n=t.target.closest("[data-platform]");if(!n)return;let i=n.dataset.platform;if(i==="copy"){this.#c(t,n);return}if(n.tagName==="A"||!i)return;let o=p.get(i);if(!o)return;this.dispatchEvent(new CustomEvent("share-wc:open",{detail:{platform:i},bubbles:!0}));let r={url:this.#t||"",title:this.#e||"",text:this.#o||""};if(i==="email")location.href=o.buildUrl(r);else if(i==="mastodon"){let a=this.getAttribute("mastodon-instance")||"mastodon.social",g=o.buildUrl(r,a);window.open(g,"_blank","noopener,noreferrer")}else window.open(o.buildUrl(r),"_blank","noopener,noreferrer");this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:i},bubbles:!0}))};#c=async(t,n)=>{let i=n||t?.target?.closest('[data-platform="copy"]');if(!i)return;if(!await l(this.#t||"",{button:i,announceMessage:"Link copied to clipboard",duration:2e3})){this.dispatchEvent(new CustomEvent("share-wc:error",{detail:{platform:"copy"},bubbles:!0}));return}let r=i.querySelector(".share-label"),a=r?.textContent;r&&(r.textContent="Copied!"),this.dispatchEvent(new CustomEvent("share-wc:success",{detail:{platform:"copy"},bubbles:!0})),this.#r&&clearTimeout(this.#r),this.#r=setTimeout(()=>{r&&a&&(r.textContent=a),this.#r=null},2e3)}};y("share-wc",m);export{m as ShareWc};
4
4
  //# sourceMappingURL=share-wc.js.map
@@ -1,2 +1,2 @@
1
- var H=window.matchMedia("(prefers-reduced-motion: reduce)");var g=new Map;function E(e,t,n={}){let o=n.priority??10,s={impl:t,bundle:n.bundle,contract:n.contract,priority:o},r=g.get(e);if(customElements.get(e)){if(!r||r.priority>=o){r&&r.priority===o&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${e}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=o){r.priority===o&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}g.set(e,s),customElements.define(e,t)}var h=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 t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,n,o,s){t.addEventListener(n,o,s),this.#t.push(()=>t.removeEventListener(n,o,s))}setup(){}teardown(){}setState(t,n){this.#e||(this.#e=this.attachInternals());let o=this.#e.states;try{n?o.add(t):o.delete(t)}catch{let s=`--${t}`;n?o.add(s):o.delete(s)}}_adoptInternals(t){this.#e||(this.#e=t)}};var p=/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),k={mac:{meta:"\u2318",cmd:"\u2318",alt:"\u2325",shift:"\u21E7",ctrl:"\u2303"},other:{meta:"Ctrl",cmd:"Ctrl",alt:"Alt",shift:"Shift",ctrl:"Ctrl"}};function w(e){let t=p?k.mac:k.other;return e.split("+").map(n=>{let o=n.trim().toLowerCase();return t[o]??o.toUpperCase()}).join(p?"":"+")}function C(e){let t=e.toLowerCase().split("+").map(o=>o.trim());return{key:t.pop()??"",meta:t.includes("meta")||t.includes("cmd"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt")}}function M(e,t){if(e.key.toLowerCase()!==t.key)return!1;let n,o;return p?(n=t.meta,o=t.ctrl):(n=!1,o=t.meta||t.ctrl),!(n!==e.metaKey||o!==e.ctrlKey||t.shift!==e.shiftKey||t.alt!==e.altKey)}var L=new Set(["INPUT","TEXTAREA","SELECT"]),d=[],N=!1;function S(e){let t=L.has(e.target.tagName)||e.target.isContentEditable;for(let n of d)if(!(t&&!n.global)&&M(e,n.descriptor)){e.preventDefault(),n.callback(e);return}}function $(){N||(document.addEventListener("keydown",S),N=!0)}function x(e,t,n={}){$();let o=C(e),s={combo:e,descriptor:o,callback:t,global:n.global===!0};return d.find(c=>c.combo===e)&&console.warn(`[hotkey-bind] Shortcut "${e}" already bound. Last-connected-wins.`),d.unshift(s),function(){let l=d.indexOf(s);l!==-1&&d.splice(l,1)}}var b=class extends h{#t;#e=null;setup(){this.#n(),this.#e=x("shift+?",()=>{this.#t.open?this.#t.close():this.#o()})}teardown(){this.#e?.(),this.#e=null,this.#t?.remove(),this.#t=null}get shortcuts(){return this.__shortcuts||null}set shortcuts(t){this.__shortcuts=t&&typeof t=="object"?t:null,this.dispatchEvent(new CustomEvent("short-cuts:shortcuts-changed",{detail:{shortcuts:this.__shortcuts,source:"property"},bubbles:!0}))}#n(){this.#t=document.createElement("dialog"),this.#t.className="shortcut-dialog",this.#t.addEventListener("click",t=>{t.target===this.#t&&this.#t.close()}),this.appendChild(this.#t)}#o(){this.#t.innerHTML="";let t=document.createElement("div");t.className="shortcut-header",t.innerHTML="<h2>Keyboard Shortcuts</h2>",this.#t.appendChild(t);let n=document.createElement("div");n.className="shortcut-body";let{getRegisteredCommands:o}=window.__commandRegistry||{},s=new Map;if(s.set("General",[{label:"Show keyboard shortcuts",shortcut:"shift+?"}]),o)for(let[c,l]of o())for(let i of l){if(!i.shortcut)continue;let a=s.get(c)||[];a.push({label:i.label,shortcut:i.shortcut}),s.set(c,a)}let{getHotkeyActions:r}=window.__hotkeyActionRegistry||{};if(r)for(let[c,l]of r()){let i=s.get(c)||[];for(let a of l)i.push({label:a.label,shortcut:a.shortcut});s.set(c,i)}for(let[c,l]of s){let i=document.createElement("div");i.className="shortcut-group";let a=document.createElement("div");a.className="shortcut-group-header",a.textContent=c,i.appendChild(a);for(let y of l){let u=document.createElement("div");u.className="shortcut-row";let f=document.createElement("span");f.className="shortcut-label",f.textContent=y.label;let m=document.createElement("kbd");m.className="shortcut-kbd",m.textContent=w(y.shortcut),u.appendChild(f),u.appendChild(m),i.appendChild(u)}n.appendChild(i)}this.#t.appendChild(n),this.#t.showModal()}};E("short-cuts",b);export{b as ShortCuts};
1
+ var v=window.matchMedia("(prefers-reduced-motion: reduce)");var g=new Map;function E(e,t,n={}){let o=n.priority??10,s={impl:t,bundle:n.bundle,contract:n.contract,priority:o},r=g.get(e);if(customElements.get(e)){if(!r||r.priority>=o){r&&r.priority===o&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${e}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=o){r.priority===o&&console.warn(`[VB Bundle] Tag <${e}> already registered by "${r.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}g.set(e,s),customElements.define(e,t)}var h=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 t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,n,o,s){t.addEventListener(n,o,s),this.#t.push(()=>t.removeEventListener(n,o,s))}_reinit(){for(let t of this.#t)t();this.#t=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}setup(){}teardown(){}setState(t,n){this.#e||(this.#e=this.attachInternals());let o=this.#e.states;try{n?o.add(t):o.delete(t)}catch{let s=`--${t}`;n?o.add(s):o.delete(s)}}_adoptInternals(t){this.#e||(this.#e=t)}};var p=/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),k={mac:{meta:"\u2318",cmd:"\u2318",alt:"\u2325",shift:"\u21E7",ctrl:"\u2303"},other:{meta:"Ctrl",cmd:"Ctrl",alt:"Alt",shift:"Shift",ctrl:"Ctrl"}};function w(e){let t=p?k.mac:k.other;return e.split("+").map(n=>{let o=n.trim().toLowerCase();return t[o]??o.toUpperCase()}).join(p?"":"+")}function C(e){let t=e.toLowerCase().split("+").map(o=>o.trim());return{key:t.pop()??"",meta:t.includes("meta")||t.includes("cmd"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt")}}function M(e,t){if(e.key.toLowerCase()!==t.key)return!1;let n,o;return p?(n=t.meta,o=t.ctrl):(n=!1,o=t.meta||t.ctrl),!(n!==e.metaKey||o!==e.ctrlKey||t.shift!==e.shiftKey||t.alt!==e.altKey)}var L=new Set(["INPUT","TEXTAREA","SELECT"]),d=[],N=!1;function S(e){let t=L.has(e.target.tagName)||e.target.isContentEditable;for(let n of d)if(!(t&&!n.global)&&M(e,n.descriptor)){e.preventDefault(),n.callback(e);return}}function $(){N||(document.addEventListener("keydown",S),N=!0)}function x(e,t,n={}){$();let o=C(e),s={combo:e,descriptor:o,callback:t,global:n.global===!0};return d.find(c=>c.combo===e)&&console.warn(`[hotkey-bind] Shortcut "${e}" already bound. Last-connected-wins.`),d.unshift(s),function(){let l=d.indexOf(s);l!==-1&&d.splice(l,1)}}var b=class extends h{#t;#e=null;setup(){this.#n(),this.#e=x("shift+?",()=>{this.#t.open?this.#t.close():this.#o()})}teardown(){this.#e?.(),this.#e=null,this.#t?.remove(),this.#t=null}get shortcuts(){return this.__shortcuts||null}set shortcuts(t){this.__shortcuts=t&&typeof t=="object"?t:null,this.dispatchEvent(new CustomEvent("short-cuts:shortcuts-changed",{detail:{shortcuts:this.__shortcuts,source:"property"},bubbles:!0}))}#n(){this.#t=document.createElement("dialog"),this.#t.className="shortcut-dialog",this.#t.addEventListener("click",t=>{t.target===this.#t&&this.#t.close()}),this.appendChild(this.#t)}#o(){this.#t.innerHTML="";let t=document.createElement("div");t.className="shortcut-header",t.innerHTML="<h2>Keyboard Shortcuts</h2>",this.#t.appendChild(t);let n=document.createElement("div");n.className="shortcut-body";let{getRegisteredCommands:o}=window.__commandRegistry||{},s=new Map;if(s.set("General",[{label:"Show keyboard shortcuts",shortcut:"shift+?"}]),o)for(let[c,l]of o())for(let i of l){if(!i.shortcut)continue;let a=s.get(c)||[];a.push({label:i.label,shortcut:i.shortcut}),s.set(c,a)}let{getHotkeyActions:r}=window.__hotkeyActionRegistry||{};if(r)for(let[c,l]of r()){let i=s.get(c)||[];for(let a of l)i.push({label:a.label,shortcut:a.shortcut});s.set(c,i)}for(let[c,l]of s){let i=document.createElement("div");i.className="shortcut-group";let a=document.createElement("div");a.className="shortcut-group-header",a.textContent=c,i.appendChild(a);for(let y of l){let u=document.createElement("div");u.className="shortcut-row";let f=document.createElement("span");f.className="shortcut-label",f.textContent=y.label;let m=document.createElement("kbd");m.className="shortcut-kbd",m.textContent=w(y.shortcut),u.appendChild(f),u.appendChild(m),i.appendChild(u)}n.appendChild(i)}this.#t.appendChild(n),this.#t.showModal()}};E("short-cuts",b);export{b as ShortCuts};
2
2
  //# sourceMappingURL=short-cuts.js.map
@@ -1,11 +1,11 @@
1
- var x=window.matchMedia("(prefers-reduced-motion: reduce)");var y=new Map;function S(u,e,t={}){let n=t.priority??10,o={impl:e,bundle:t.bundle,contract:t.contract,priority:n},r=y.get(u);if(customElements.get(u)){if(!r||r.priority>=n){r&&r.priority===n&&r.impl!==e&&console.warn(`[VB Bundle] Tag <${u}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${u}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=n){r.priority===n&&console.warn(`[VB Bundle] Tag <${u}> already registered by "${r.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}y.set(u,o),customElements.define(u,e)}var h=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,t,n,o){e.addEventListener(t,n,o),this.#t.push(()=>e.removeEventListener(t,n,o))}setup(){}teardown(){}setState(e,t){this.#e||(this.#e=this.attachInternals());let n=this.#e.states;try{t?n.add(e):n.delete(e)}catch{let o=`--${e}`;t?n.add(o):n.delete(o)}}_adoptInternals(e){this.#e||(this.#e=e)}};var m=class extends h{#t=null;#e=[];#n=null;setup(){let e=this.getAttribute("src");e?this.#p(e).then(()=>this.#o()):this.#o()}teardown(){this.#t?.disconnect()}#o(){this.#i(),this.#c(),this.#l();let e=this.getAttribute("letters")||"entries";e!=="none"&&this.#a(e==="all"),this.#u()}#i(){let e=this.querySelector('nav[aria-label="Site index"]');e&&(this.#e=[...e.querySelectorAll(":scope > section")])}#c(){let e=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let t of e){let n=t.querySelectorAll(":scope > ul > li"),o=0;for(let i of n){let c=i.querySelectorAll(".index-refs > li").length;o+=c;let l=i.querySelector(".index-term");if(l&&c>0&&!l.querySelector(".index-count")){let d=document.createElement("span");d.className="index-count",d.textContent=`(${c})`,l.after(d)}}let r=t.querySelector("h2");if(r&&o>0&&!r.querySelector(".index-count")){let i=document.createElement("span");i.className="index-count",i.textContent=`(${o})`,r.append(i)}}}#l(){let e=document.createElement("nav");e.setAttribute("data-index-controls",""),e.setAttribute("aria-label","Index controls");let t=this.getAttribute("placeholder")||"Filter index\u2026",n=document.createElement("input");n.type="search",n.placeholder=t,n.setAttribute("aria-label",t),n.setAttribute("data-index-search",""),n.addEventListener("input",()=>this.#r(n.value)),e.append(n);let o=document.createElement("select");o.setAttribute("aria-label","Search scope"),o.innerHTML=`
1
+ var x=window.matchMedia("(prefers-reduced-motion: reduce)");var y=new Map;function S(u,e,t={}){let n=t.priority??10,o={impl:e,bundle:t.bundle,contract:t.contract,priority:n},r=y.get(u);if(customElements.get(u)){if(!r||r.priority>=n){r&&r.priority===n&&r.impl!==e&&console.warn(`[VB Bundle] Tag <${u}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${u}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=n){r.priority===n&&console.warn(`[VB Bundle] Tag <${u}> already registered by "${r.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}y.set(u,o),customElements.define(u,e)}var h=class extends HTMLElement{#e=[];#t;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.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,t,n,o){e.addEventListener(t,n,o),this.#e.push(()=>e.removeEventListener(t,n,o))}_reinit(){for(let e of this.#e)e();this.#e=[],this.teardown(),this.removeAttribute("data-upgraded"),this.isConnected&&this.setup()!==!1&&this.setAttribute("data-upgraded","")}setup(){}teardown(){}setState(e,t){this.#t||(this.#t=this.attachInternals());let n=this.#t.states;try{t?n.add(e):n.delete(e)}catch{let o=`--${e}`;t?n.add(o):n.delete(o)}}_adoptInternals(e){this.#t||(this.#t=e)}};var m=class extends h{#e=null;#t=[];#n=null;setup(){let e=this.getAttribute("src");e?this.#p(e).then(()=>this.#o()):this.#o()}teardown(){this.#e?.disconnect()}#o(){this.#s(),this.#c(),this.#a();let e=this.getAttribute("letters")||"entries";e!=="none"&&this.#l(e==="all"),this.#u()}#s(){let e=this.querySelector('nav[aria-label="Site index"]');e&&(this.#t=[...e.querySelectorAll(":scope > section")])}#c(){let e=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let t of e){let n=t.querySelectorAll(":scope > ul > li"),o=0;for(let s of n){let c=s.querySelectorAll(".index-refs > li").length;o+=c;let a=s.querySelector(".index-term");if(a&&c>0&&!a.querySelector(".index-count")){let d=document.createElement("span");d.className="index-count",d.textContent=`(${c})`,a.after(d)}}let r=t.querySelector("h2");if(r&&o>0&&!r.querySelector(".index-count")){let s=document.createElement("span");s.className="index-count",s.textContent=`(${o})`,r.append(s)}}}#a(){let e=document.createElement("nav");e.setAttribute("data-index-controls",""),e.setAttribute("aria-label","Index controls");let t=this.getAttribute("placeholder")||"Filter index\u2026",n=document.createElement("input");n.type="search",n.placeholder=t,n.setAttribute("aria-label",t),n.setAttribute("data-index-search",""),n.addEventListener("input",()=>this.#r(n.value)),e.append(n);let o=document.createElement("select");o.setAttribute("aria-label","Search scope"),o.innerHTML=`
2
2
  <option value="topic">By Topic</option>
3
3
  <option value="all">All</option>
4
- `,this.getAttribute("filter")==="all"&&(o.value="all"),o.addEventListener("change",()=>this.#r(n.value)),this.#n=o,e.append(o);let i=document.createElement("select");i.setAttribute("aria-label","Sort order"),i.innerHTML=`
4
+ `,this.getAttribute("filter")==="all"&&(o.value="all"),o.addEventListener("change",()=>this.#r(n.value)),this.#n=o,e.append(o);let s=document.createElement("select");s.setAttribute("aria-label","Sort order"),s.innerHTML=`
5
5
  <option value="alpha">Alphabetical</option>
6
6
  <option value="count">Most entries</option>
7
- `;let s=this.getAttribute("sort");s==="count"&&(i.value="count"),i.addEventListener("change",()=>this.#s(i.value)),e.append(i);let c=this.querySelector('nav[aria-label="Site index"]');c?c.before(e):this.prepend(e),s==="count"&&this.#s("count")}#a(e){let t=this.querySelector(".index-jump");t&&t.remove();let n=this.querySelectorAll('nav[aria-label="Site index"] > section'),o=new Set;for(let a of n){let f=a.id?.replace("index-","").toUpperCase();f&&o.add(f)}if(o.size===0)return;let r="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),i=e?r:[...o].sort(),s=document.createElement("nav");s.className="index-jump",s.setAttribute("aria-label","Jump to letter");let c=document.createElement("ol");c.className="inline";for(let a of i){let f=document.createElement("li");if(o.has(a)){let p=document.createElement("a");p.href=`#index-${a.toLowerCase()}`,p.textContent=a,f.append(p)}else{let p=document.createElement("span");p.textContent=a,p.setAttribute("aria-disabled","true"),f.append(p)}c.append(f)}s.append(c);let l=this.querySelector("[data-index-controls]"),d=this.querySelector('nav[aria-label="Site index"]');l?l.after(s):d?d.before(s):this.prepend(s),this.#d(s)}#d(e){let t=e.querySelectorAll("a");if(!t.length)return;let n=this.querySelectorAll('nav[aria-label="Site index"] > section');if(n.length){this.#t=new IntersectionObserver(o=>{for(let r of o)if(r.isIntersecting){let i=r.target.id;for(let s of t){let c=s.getAttribute("href")===`#${i}`;s.setAttribute("aria-current",c?"true":"false")}}},{rootMargin:"-20% 0px -60% 0px"});for(let o of n)this.#t.observe(o)}}#u(){let e=this.getAttribute("limit");if(!e)return;let t=parseInt(e,10);if(!t||t<1)return;let n=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let o of n){let r=[...o.querySelectorAll(":scope > ul > li")];if(r.length<=t)continue;let i=r.slice(t);for(let l of i)l.hidden=!0,l.setAttribute("data-index-overflow","");let s=document.createElement("button");s.type="button",s.setAttribute("data-index-expand",""),s.setAttribute("aria-expanded","false"),s.textContent=`Show ${i.length} more`,s.addEventListener("click",()=>{let l=s.getAttribute("aria-expanded")==="true";for(let d of i)d.hidden=l;s.setAttribute("aria-expanded",String(!l)),s.textContent=l?`Show ${i.length} more`:"Show less"});let c=o.querySelector(":scope > ul");c&&c.after(s)}}#r(e){let t=e.toLowerCase().trim(),n=this.#n?.value||"topic",o=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let r of o){let i=r.querySelectorAll(":scope > ul > li"),s=!1;for(let c of i){let d=c.querySelector(".index-term")?.textContent?.toLowerCase()||"",a=!t||d.includes(t);if(!a&&n==="all"){let f=c.querySelectorAll(".index-refs a");for(let b of f)if((b.textContent||"").toLowerCase().includes(t)){a=!0;break}}c.hidden=!a,a&&(s=!0)}r.hidden=!s}this.#f()}#f(){let e=this.querySelector(".index-jump");if(!e)return;let t=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let n of t){let o=n.id?.replace("index-","").toUpperCase();if(!o)continue;let r=e.querySelector(`a[href="#index-${o.toLowerCase()}"]`);r&&(r.style.opacity=n.hidden?"0.3":"")}}#s(e){let t=this.querySelector('nav[aria-label="Site index"]');if(t){if(e==="alpha")for(let n of this.#e)t.append(n);else if(e==="count"){let n=[...t.querySelectorAll(":scope > section")];n.sort((o,r)=>{let i=o.querySelectorAll(".index-refs > li").length;return r.querySelectorAll(".index-refs > li").length-i});for(let o of n)t.append(o)}}}async#p(e){try{let t=await fetch(e);if(!t.ok)return;let n=await t.json();this.#h(n)}catch{}}#h(e){if(!Array.isArray(e))return;let t={};for(let r of e){let i=(r.term||"")[0]?.toUpperCase()||"#";t[i]||(t[i]=[]),t[i].push(r)}let n=document.createElement("nav");n.setAttribute("aria-label","Site index");for(let[r,i]of Object.entries(t).sort(([s],[c])=>s.localeCompare(c))){let s=document.createElement("section");s.id=`index-${r.toLowerCase()}`,s.innerHTML=`<h2>${r}</h2>`;let c=document.createElement("ul");for(let l of i){let d=document.createElement("li");d.innerHTML=`
8
- <span class="index-term">${l.term}</span>
9
- ${l.refs?`<ul class="index-refs">${l.refs.map(a=>`<li><a href="${a.href}">${a.label}</a>${a.type?` <small>${a.type}</small>`:""}</li>`).join("")}</ul>`:""}
10
- `,c.append(d)}s.append(c),n.append(s)}let o=this.querySelector('nav[aria-label="Site index"]');o?o.replaceWith(n):this.append(n)}};S("site-index",m);export{m as SiteIndex};
7
+ `;let i=this.getAttribute("sort");i==="count"&&(s.value="count"),s.addEventListener("change",()=>this.#i(s.value)),e.append(s);let c=this.querySelector('nav[aria-label="Site index"]');c?c.before(e):this.prepend(e),i==="count"&&this.#i("count")}#l(e){let t=this.querySelector(".index-jump");t&&t.remove();let n=this.querySelectorAll('nav[aria-label="Site index"] > section'),o=new Set;for(let l of n){let f=l.id?.replace("index-","").toUpperCase();f&&o.add(f)}if(o.size===0)return;let r="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),s=e?r:[...o].sort(),i=document.createElement("nav");i.className="index-jump",i.setAttribute("aria-label","Jump to letter");let c=document.createElement("ol");c.className="inline";for(let l of s){let f=document.createElement("li");if(o.has(l)){let p=document.createElement("a");p.href=`#index-${l.toLowerCase()}`,p.textContent=l,f.append(p)}else{let p=document.createElement("span");p.textContent=l,p.setAttribute("aria-disabled","true"),f.append(p)}c.append(f)}i.append(c);let a=this.querySelector("[data-index-controls]"),d=this.querySelector('nav[aria-label="Site index"]');a?a.after(i):d?d.before(i):this.prepend(i),this.#d(i)}#d(e){let t=e.querySelectorAll("a");if(!t.length)return;let n=this.querySelectorAll('nav[aria-label="Site index"] > section');if(n.length){this.#e=new IntersectionObserver(o=>{for(let r of o)if(r.isIntersecting){let s=r.target.id;for(let i of t){let c=i.getAttribute("href")===`#${s}`;i.setAttribute("aria-current",c?"true":"false")}}},{rootMargin:"-20% 0px -60% 0px"});for(let o of n)this.#e.observe(o)}}#u(){let e=this.getAttribute("limit");if(!e)return;let t=parseInt(e,10);if(!t||t<1)return;let n=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let o of n){let r=[...o.querySelectorAll(":scope > ul > li")];if(r.length<=t)continue;let s=r.slice(t);for(let a of s)a.hidden=!0,a.setAttribute("data-index-overflow","");let i=document.createElement("button");i.type="button",i.setAttribute("data-index-expand",""),i.setAttribute("aria-expanded","false"),i.textContent=`Show ${s.length} more`,i.addEventListener("click",()=>{let a=i.getAttribute("aria-expanded")==="true";for(let d of s)d.hidden=a;i.setAttribute("aria-expanded",String(!a)),i.textContent=a?`Show ${s.length} more`:"Show less"});let c=o.querySelector(":scope > ul");c&&c.after(i)}}#r(e){let t=e.toLowerCase().trim(),n=this.#n?.value||"topic",o=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let r of o){let s=r.querySelectorAll(":scope > ul > li"),i=!1;for(let c of s){let d=c.querySelector(".index-term")?.textContent?.toLowerCase()||"",l=!t||d.includes(t);if(!l&&n==="all"){let f=c.querySelectorAll(".index-refs a");for(let b of f)if((b.textContent||"").toLowerCase().includes(t)){l=!0;break}}c.hidden=!l,l&&(i=!0)}r.hidden=!i}this.#f()}#f(){let e=this.querySelector(".index-jump");if(!e)return;let t=this.querySelectorAll('nav[aria-label="Site index"] > section');for(let n of t){let o=n.id?.replace("index-","").toUpperCase();if(!o)continue;let r=e.querySelector(`a[href="#index-${o.toLowerCase()}"]`);r&&(r.style.opacity=n.hidden?"0.3":"")}}#i(e){let t=this.querySelector('nav[aria-label="Site index"]');if(t){if(e==="alpha")for(let n of this.#t)t.append(n);else if(e==="count"){let n=[...t.querySelectorAll(":scope > section")];n.sort((o,r)=>{let s=o.querySelectorAll(".index-refs > li").length;return r.querySelectorAll(".index-refs > li").length-s});for(let o of n)t.append(o)}}}async#p(e){try{let t=await fetch(e);if(!t.ok)return;let n=await t.json();this.#h(n)}catch{}}#h(e){if(!Array.isArray(e))return;let t={};for(let r of e){let s=(r.term||"")[0]?.toUpperCase()||"#";t[s]||(t[s]=[]),t[s].push(r)}let n=document.createElement("nav");n.setAttribute("aria-label","Site index");for(let[r,s]of Object.entries(t).sort(([i],[c])=>i.localeCompare(c))){let i=document.createElement("section");i.id=`index-${r.toLowerCase()}`,i.innerHTML=`<h2>${r}</h2>`;let c=document.createElement("ul");for(let a of s){let d=document.createElement("li");d.innerHTML=`
8
+ <span class="index-term">${a.term}</span>
9
+ ${a.refs?`<ul class="index-refs">${a.refs.map(l=>`<li><a href="${l.href}">${l.label}</a>${l.type?` <small>${l.type}</small>`:""}</li>`).join("")}</ul>`:""}
10
+ `,c.append(d)}i.append(c),n.append(i)}let o=this.querySelector('nav[aria-label="Site index"]');o?o.replaceWith(n):this.append(n)}};S("site-index",m);export{m as SiteIndex};
11
11
  //# sourceMappingURL=site-index.js.map