vanilla-breeze 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/components/accordion-wc.js +1 -1
- package/dist/cdn/components/analytics-panel.js +1 -1
- package/dist/cdn/components/audio-player.js +1 -1
- package/dist/cdn/components/audio-visualizer.js +2 -2
- package/dist/cdn/components/author-index.js +1 -1
- package/dist/cdn/components/brand-mark.js +1 -1
- package/dist/cdn/components/calendar-wc.js +2 -2
- package/dist/cdn/components/card-list.js +1 -1
- package/dist/cdn/components/carousel-wc.js +1 -1
- package/dist/cdn/components/change-set.js +1 -1
- package/dist/cdn/components/chart-wc.js +11 -11
- package/dist/cdn/components/chat-input.js +1 -1
- package/dist/cdn/components/chat-window.js +1 -1
- package/dist/cdn/components/color-palette.js +4 -4
- package/dist/cdn/components/color-picker.js +1 -1
- package/dist/cdn/components/combo-box.js +1 -1
- package/dist/cdn/components/command-palette.js +1 -1
- package/dist/cdn/components/comment-wc.js +1 -1
- package/dist/cdn/components/compare-surface.js +1 -1
- package/dist/cdn/components/component-sampler.js +4 -4
- package/dist/cdn/components/consent-banner.js +1 -1
- package/dist/cdn/components/content-lens.js +1 -1
- package/dist/cdn/components/content-swap.js +1 -1
- package/dist/cdn/components/context-menu.js +1 -1
- package/dist/cdn/components/data-table.js +1 -1
- package/dist/cdn/components/date-picker.js +1 -1
- package/dist/cdn/components/day-view.js +1 -1
- package/dist/cdn/components/drag-surface.js +1 -1
- package/dist/cdn/components/drop-down.js +1 -1
- package/dist/cdn/components/emoji-picker.js +1 -1
- package/dist/cdn/components/flow-diagram.js +1 -1
- package/dist/cdn/components/font-pairer.js +1 -1
- package/dist/cdn/components/foot-notes.js +1 -1
- package/dist/cdn/components/form-field.js +1 -1
- package/dist/cdn/components/gantt-chart.js +1 -1
- package/dist/cdn/components/geo-map.js +3 -3
- package/dist/cdn/components/glossary-index.js +1 -1
- package/dist/cdn/components/glossary-wc.js +1 -1
- package/dist/cdn/components/gradient-builder.js +1 -1
- package/dist/cdn/components/heading-links.js +1 -1
- package/dist/cdn/components/highlight-wc.js +2 -2
- package/dist/cdn/components/image-gallery.js +1 -1
- package/dist/cdn/components/image-map.js +1 -1
- package/dist/cdn/components/impact-effort.js +1 -1
- package/dist/cdn/components/include-file.js +1 -1
- package/dist/cdn/components/kanban-board.js +1 -1
- package/dist/cdn/components/manifest.json +95 -95
- package/dist/cdn/components/markdown-editor.js +1 -1
- package/dist/cdn/components/markdown-viewer.js +1 -1
- package/dist/cdn/components/motion-specimen.js +3 -3
- package/dist/cdn/components/note-wc.js +1 -1
- package/dist/cdn/components/notification-wc.js +4 -4
- package/dist/cdn/components/page-info.js +20 -20
- package/dist/cdn/components/page-stats.js +1 -1
- package/dist/cdn/components/page-toc.js +1 -1
- package/dist/cdn/components/page-tools.js +1 -1
- package/dist/cdn/components/page-tour.js +2 -2
- package/dist/cdn/components/palette-generator.js +1 -1
- package/dist/cdn/components/popularity-index.js +1 -1
- package/dist/cdn/components/print-page.js +1 -1
- package/dist/cdn/components/qr-code.js +1 -1
- package/dist/cdn/components/reader-view.js +2 -2
- package/dist/cdn/components/recently-visited.js +26 -2
- package/dist/cdn/components/selection-menu.js +1 -1
- package/dist/cdn/components/semantic-palette.js +1 -1
- package/dist/cdn/components/settings-panel.js +2 -2
- package/dist/cdn/components/share-wc.js +1 -1
- package/dist/cdn/components/short-cuts.js +1 -1
- package/dist/cdn/components/site-index.js +1 -1
- package/dist/cdn/components/site-map-wc.js +1 -1
- package/dist/cdn/components/site-map.js +1 -1
- package/dist/cdn/components/site-search.js +3 -3
- package/dist/cdn/components/slide-accept.js +1 -1
- package/dist/cdn/components/social-embed.js +1 -1
- package/dist/cdn/components/spacing-specimen.js +2 -2
- package/dist/cdn/components/split-surface.js +1 -1
- package/dist/cdn/components/star-rating.js +1 -1
- package/dist/cdn/components/story-map.js +1 -1
- package/dist/cdn/components/tab-set.js +1 -1
- package/dist/cdn/components/text-reader.js +2 -2
- package/dist/cdn/components/theme-export.js +1 -1
- package/dist/cdn/components/theme-picker.js +3 -3
- package/dist/cdn/components/time-index.js +1 -1
- package/dist/cdn/components/time-picker.js +1 -1
- package/dist/cdn/components/toast-msg.js +1 -1
- package/dist/cdn/components/token-specimen.js +6 -6
- package/dist/cdn/components/tool-tip.js +1 -1
- package/dist/cdn/components/topic-map.js +3 -2
- package/dist/cdn/components/trust-filter.js +3 -3
- package/dist/cdn/components/type-specimen.js +1 -1
- package/dist/cdn/components/user-story.js +8 -8
- package/dist/cdn/components/video-player.js +4 -4
- package/dist/cdn/components/watch-wc.js +2 -2
- package/dist/cdn/components/week-view.js +1 -1
- package/dist/cdn/components/work-item.js +14 -14
- package/dist/cdn/components/youtube-player.js +1 -1
- package/dist/cdn/packs/design-system.full.js +15 -15
- package/dist/cdn/packs/effects.full.js +1 -1
- package/dist/cdn/packs/manifest.json +5 -5
- package/dist/cdn/packs/ui.full.css +1 -1
- package/dist/cdn/packs/ui.full.js +5 -5
- package/dist/cdn/packs/ux-planning.full.js +119 -119
- package/dist/cdn/vanilla-breeze-charts.css +1 -1
- package/dist/cdn/vanilla-breeze-charts.js +11 -11
- package/dist/cdn/vanilla-breeze-core.css +1 -1
- package/dist/cdn/vanilla-breeze-core.js +21 -21
- package/dist/cdn/vanilla-breeze-extras.js +3 -3
- package/dist/cdn/vanilla-breeze.css +1 -1
- package/dist/cdn/vanilla-breeze.js +210 -185
- package/package.json +5 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var oe=Object.defineProperty;var ce=(t,e)=>()=>(t&&(e=t(t=0)),e);var le=(t,e)=>{for(var a in e)oe(t,a,{get:e[a],enumerable:!0})};var ie={};le(ie,{SoundManager:()=>ye});var ne,z,ye,re=ce(()=>{ne="vb-sound",z={enabled:!1,volume:.5},ye={_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(ne);return t?{...z,...JSON.parse(t)}:{...z}}catch{return{...z}}},_save(t){try{let e=this._load();localStorage.setItem(ne,JSON.stringify({...e,...t}))}catch{}},_playTone(t,e,a="sine"){if(!this._enabled)return;let s=this._getContext(),r=s.createOscillator(),i=s.createGain();r.connect(i),i.connect(s.destination),r.frequency.value=t,r.type=a,i.gain.value=this._volume*.3,r.start(),i.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 be=window.matchMedia("(prefers-reduced-motion: reduce)");var X=new Map;function K(t,e,a={}){let s=a.priority??10,r={impl:e,bundle:a.bundle,contract:a.contract,priority:s},i=X.get(t);if(customElements.get(t)){if(!i||i.priority>=s){i&&i.priority===s&&i.impl!==e&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${a.bundle}".`);return}console.warn(`[VB Bundle] Tag <${t}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${a.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=s){i.priority===s&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${i.bundle}". Skipping "${a.bundle}" (first wins at equal priority).`);return}X.set(t,r),customElements.define(t,e)}var T=class extends HTMLElement{#i=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let e of this.#i)e();this.#i=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,a,s,r){e.addEventListener(a,s,r),this.#i.push(()=>e.removeEventListener(a,s,r))}setup(){}teardown(){}};var y=new Map,F=new Map;var J=null;function Q(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(J)return J;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 de=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),he=new Set(["kawaii","memphis"]);function P(t){return he.has(t)}function me(t,e){return`${e}/themes/${t}.css`}function Z(t,e){if(!P(t))return Promise.resolve();if(F.has(t))return F.get(t);let a=import(`${e}/packs/${t}.full.js`).catch(()=>{});return F.set(t,a),a}function ue(t,e){let a=Q(),s=()=>{(P(e)||t.hasAttribute("data-vb-pack"))&&Z(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,i)=>{let n=()=>{t.setAttribute("data-vb-theme-state","ready"),c(),s(),r()},o=()=>{t.setAttribute("data-vb-theme-state","error"),y.delete(e),c(),i(new Error(`Failed to load theme: ${e}`))},c=()=>{t.removeEventListener("load",n),t.removeEventListener("error",o)};t.addEventListener("load",n,{once:!0}),t.addEventListener("error",o,{once:!0})})}async function B(t){if(!t||de.has(t))return;if(y.has(t))return y.get(t);if(typeof document<"u"){let s=document.querySelector(`link[data-vb-theme="${t}"]`);if(s){let r=ue(s,t);return y.set(t,r),r}}let e=Q(),a=P(t)?ge(t,e):pe(t,e);return y.set(t,a),a}async function pe(t,e){let a=me(t,e);return new Promise((s,r)=>{let i=document.querySelector(`link[data-vb-theme-preload="${t}"]`);i&&i.remove();let n=document.createElement("link");n.rel="stylesheet",n.href=a,n.setAttribute("data-vb-theme",t),n.setAttribute("data-vb-theme-state","loading"),n.onload=()=>{n.setAttribute("data-vb-theme-state","ready"),s()},n.onerror=()=>{n.setAttribute("data-vb-theme-state","error"),n.remove(),y.delete(t),r(new Error(`Failed to load theme: ${t}`))},document.head.appendChild(n)})}function ge(t,e){let a=`${e}/packs/${t}.theme.css`,s=`${e}/packs/${t}.effects.css`;return new Promise((r,i)=>{let n=document.querySelector(`link[data-vb-theme-preload="${t}"]`);n&&n.remove();let o=document.createElement("link");o.rel="stylesheet",o.href=a,o.setAttribute("data-vb-theme",t),o.setAttribute("data-vb-pack",t),o.setAttribute("data-vb-theme-state","loading"),o.onload=()=>{o.setAttribute("data-vb-theme-state","ready");let c=document.createElement("link");c.rel="stylesheet",c.href=s,c.setAttribute("data-vb-pack-effects",t),document.head.appendChild(c),Z(t,e),r()},o.onerror=()=>{o.setAttribute("data-vb-theme-state","error"),o.remove(),y.delete(t),i(new Error(`Failed to load pack: ${t}`))},document.head.appendChild(o)})}var D=[{id:"auto",name:"Auto",icon:"monitor"},{id:"light",name:"Light",icon:"sun"},{id:"dark",name:"Dark",icon:"moon"}],E=[{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}}],A=[{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"}],L=[{id:"swiss",name:"Swiss",icon:"grid-3x3",character:"Precision grid",swatchBg:"#ff3e00",swatchFg:"white",tier:"showcase",category:"Design"},{id:"brutalist",name:"Brutalist",icon:"square",character:"Raw, industrial",swatchBg:"#1a1a1a",swatchFg:"#f5f5f5",tier:"showcase",category:"Design"},{id:"art-deco",name:"Art Deco",icon:"crown",character:"1920s luxury",swatchBg:"#1A1A1A",swatchFg:"#C9A84C",tier:"showcase",category:"Design"},{id:"editorial",name:"Editorial",icon:"newspaper",character:"Magazine elegance",swatchBg:"#1a1a1a",swatchFg:"#c9a227",tier:"showcase",category:"Content"},{id:"genai",name:"GenAI",icon:"sparkles",character:"AI aesthetic",swatchBg:"#1a0a2e",swatchFg:"#a855f7",tier:"showcase",category:"Modern"},{id:"glassmorphism",name:"Glass",icon:"glass-water",character:"Frosted surfaces",swatchBg:"#667eea",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"startup",name:"Startup",icon:"rocket",character:"SaaS energy",swatchBg:"#4f46e5",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"organic",name:"Organic",icon:"leaf",character:"Natural, handcrafted",swatchBg:"#2d5016",swatchFg:"#faf5e6",tier:"showcase",category:"Creative"},{id:"rough",name:"Rough",icon:"pencil",character:"Hand-drawn sketch",swatchBg:"#f5f0e8",swatchFg:"#3a3a3a",tier:"showcase",category:"Creative"},{id:"cyber",name:"Cyber",icon:"zap",character:"Neon futuristic",swatchBg:"#0a0a1a",swatchFg:"#00ff88",tier:"showcase",category:"Creative"},{id:"vaporwave",name:"Vaporwave",icon:"radio",character:"Neon dreamy",swatchBg:"#2b0040",swatchFg:"#ff6ad5",tier:"showcase",category:"Aesthetic"},{id:"neumorphism",name:"Neumorph",icon:"circle",character:"Soft embossed",swatchBg:"#e0e0e0",swatchFg:"#a0a0a0",tier:"showcase",category:"Aesthetic"},{id:"bauhaus",name:"Bauhaus",icon:"shapes",character:"Geometric",swatchBg:"#F1FAEE",swatchFg:"#E63946",tier:"showcase",category:"Aesthetic"},{id:"claymorphism",name:"Clay",icon:"circle-dot",character:"Puffy 3D",swatchBg:"#f0f0f5",swatchFg:"#FF6B9D",tier:"showcase",category:"Aesthetic"},{id:"alpha1999",name:"Alpha1999",icon:"orbit",character:"Space retro-fi",swatchBg:"#0a0a14",swatchFg:"#d4880f",tier:"showcase",category:"Signature"},{id:"super2026",name:"Super2026",icon:"triangle",character:"Supergraphic bold",swatchBg:"#f5f0e6",swatchFg:"#c23616",tier:"showcase",category:"Signature"},{id:"magna",name:"Magna",icon:"orbit",character:"Odyssey 2 retro",swatchBg:"#0d0b14",swatchFg:"#f97316",tier:"showcase",category:"Signature"},{id:"win9x",name:"Win9x",icon:"monitor",character:"Classic desktop",swatchBg:"#008080",swatchFg:"#c0c0c0",tier:"showcase",category:"OS Styles"},{id:"nes",name:"NES",icon:"joystick",character:"Console pixels",swatchBg:"#bcbcbc",swatchFg:"#e40521",tier:"showcase",category:"OS Styles"},{id:"8bit",name:"8-Bit",icon:"gamepad-2",character:"Retro pixel art",swatchBg:"#000080",swatchFg:"#ffff00",tier:"showcase",category:"OS Styles"}],S=[{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"}],O=[{id:"",name:"Fixed",icon:"ruler",description:"Static token values"},{id:"default",name:"Fluid",icon:"move-diagonal-2",description:"Smooth viewport scaling"},{id:"compact",name:"Compact",icon:"minimize-2",description:"Tighter fluid range"},{id:"spacious",name:"Spacious",icon:"maximize-2",description:"Generous fluid range"}],R=[{id:"a11y-high-contrast",name:"High Contrast",icon:"contrast",description:"AAA contrast (7:1+)"},{id:"a11y-large-text",name:"Large Text",icon:"type",description:"25% larger fonts"},{id:"a11y-dyslexia",name:"Dyslexia",icon:"book-open",description:"Readable typography"}],I=[{id:"motionFx",name:"Motion Effects",icon:"sparkles",description:"Hover & enter animations"},{id:"sounds",name:"Sound Effects",icon:"volume-2",description:"Audio feedback"}],$e=[...L,...S],ke=[...A,...L,...S,...ee],w=t=>L.filter(e=>e.category===t),q=[{label:"Style",themes:A,tier:"core"},{label:"Design",themes:w("Design"),tier:"showcase"},{label:"Content",themes:w("Content"),tier:"showcase"},{label:"Modern",themes:w("Modern"),tier:"showcase"},{label:"Creative",themes:w("Creative"),tier:"showcase"},{label:"Aesthetic",themes:w("Aesthetic"),tier:"showcase"},{label:"Signature",themes:w("Signature"),tier:"showcase"},{label:"OS Styles",themes:w("OS Styles"),tier:"showcase"},{label:"Packs",themes:ee,tier:"showcase"},{label:"More Themes",themes:S,tier:"community"}];function fe(){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 C=null;function f(){return C||(C=fe()),C}function H(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 te(t){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${t}:`}function ae(t){try{let e=JSON.parse(t);if(e&&typeof e=="object"&&typeof e.timestamp=="number")return e}catch{}return null}var p={configure(t={}){C=t.backend??null},async set(t,e,a){let s={data:a,timestamp:Date.now()};await f().setRaw(H(t,e),JSON.stringify(s))},async get(t,e,a){let s=await f().getRaw(H(t,e));if(s==null)return null;let r=ae(s);return!r||a?.maxAge!=null&&Date.now()-r.timestamp>a.maxAge?null:r.data},async remove(t,e){await f().removeRaw(H(t,e))},async list(t){let e=te(t),a=await f().keys(e),s=[];for(let r of a){let i=await f().getRaw(r);if(i==null)continue;let n=ae(i);n&&s.push({key:r.slice(e.length),data:n.data,timestamp:n.timestamp})}return s},async clear(t){let e=te(t),a=await f().keys(e);for(let s of a)await f().removeRaw(s)},async clearAll(){let t=await f().keys("vb:");for(let e of t)await f().removeRaw(e)},async setMany(t,e){for(let[a,s]of e)await p.set(t,a,s)}};var j="theme",V="current",b={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""},se=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],d=null,m={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let t=await p.get(j,V);d=t?{...b,...t}:{...b};try{await B(d.brand)}catch{d.brand="default"}return this.apply(d),this._watchSystemPreference(),this._watchRootAttributes(),d})(),this._initPromise)},load(){return d?{...d}:{...b}},save(t){let e={...d??b,...t};return d=e,p.set(j,V,e).catch(()=>{}),e},apply({mode:t="auto",brand:e="default",borderStyle:a="",iconSet:s="",fluid:r="",backdrop:i="",backdropChrome:n="",pageBgType:o="",pageBgColor:c="",pageBgGradStart:g="",pageBgGradEnd:u="",pageBgGradDir:h=""}={}){let l=document.documentElement;l.dataset.mode=t==="auto"?this.getEffectiveMode():t;let N=(l.dataset.theme||"").split(" ").filter(M=>M.startsWith("a11y-")),Y=e!=="default"?[e,...N]:[...N];Y.length?l.dataset.theme=Y.join(" "):delete l.dataset.theme;let $=a||this._readCSSHint("--theme-border-style");$&&$!=="clean"?l.dataset.borderStyle=$:delete l.dataset.borderStyle;let k=s||this._readCSSHint("--theme-icon-set");if(k&&k!=="lucide"?l.dataset.iconSet=k:delete l.dataset.iconSet,r?l.dataset.fluid=r:delete l.dataset.fluid,i?l.dataset.backdrop=i:delete l.dataset.backdrop,n&&n!=="card"?l.dataset.backdropChrome=n:delete l.dataset.backdropChrome,o==="color"&&c)l.style.setProperty("--page-bg-color",c),l.style.removeProperty("--page-bg-gradient");else if(o==="gradient"&&g&&u){let M=h||"to bottom";l.style.setProperty("--page-bg-gradient",`linear-gradient(${M}, ${g}, ${u})`),l.style.removeProperty("--page-bg-color")}else l.style.removeProperty("--page-bg-color"),l.style.removeProperty("--page-bg-gradient");let W=this.load().accent||"default";this._applyAccent(W),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:t,brand:e,accent:W,borderStyle:$,iconSet:k,fluid:r,backdrop:i,backdropChrome:n,pageBgType:o,effectiveMode:this.getEffectiveMode()}}))},setMode(t){let e=this.save({mode:t});this.apply(e)},async setBrand(t){try{await B(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 i=this.save({pageBgType:t,pageBgColor:e,pageBgGradStart:a,pageBgGradEnd:s,pageBgGradDir:r});this.apply(i)},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:i,backdrop:n,backdropChrome:o,pageBgType:c,pageBgColor:g,pageBgGradStart:u,pageBgGradEnd:h,pageBgGradDir:l}=this.load();return{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:i,backdrop:n,backdropChrome:o,pageBgType:c,pageBgColor:g,pageBgGradStart:u,pageBgGradEnd:h,pageBgGradDir:l,effectiveMode:this.getEffectiveMode()}},toggleMode(){let e=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(e)},reset(){d={...b},p.remove(j,V).catch(()=>{});let t=document.documentElement;t.style.removeProperty("--page-bg-color"),t.style.removeProperty("--page-bg-gradient");for(let e of se)t.style.removeProperty(e);this.apply(b)},_readCSSHint(t){return getComputedStyle(document.documentElement).getPropertyValue(t).trim()},_applyAccent(t){let e=document.documentElement,a=E.find(s=>s.id===t);for(let s of se)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(!d)return;let a=(document.documentElement.dataset.theme||"").split(/\s+/).filter(Boolean).find(s=>!s.startsWith("a11y-"))||"default";a!==d.brand&&(d.brand=a,B(a).catch(()=>{}),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_syncFromDataMode(){if(!d)return;let t=document.documentElement.dataset.mode||"auto",e=d.mode==="auto"?this.getEffectiveMode():d.mode;t!==e&&(d.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 v=null,x="settings",_={motionFx:!0,sounds:!1},G=class t extends T{static#i=200;#t;#e;#a=!1;#s=!1;#g=!1;#c=null;#f=!1;#l=[];#r={..._};#n=()=>this.#E();async setup(){this.#s=this.getAttribute("variant")==="inline",this.#g=this.hasAttribute("compact"),await Promise.all([m.init(),this.#S()]),this.#$(),this.#A(),this.#v(),this.listen(window,"vb:theme-change",this.#I),this.#b(),this.#h()}async#S(){let[e,a]=await Promise.all([p.get(x,"a11y"),p.get(x,"extensions")]);this.#l=Array.isArray(e)?e:[],this.#r={..._,...a??{}}}teardown(){window.removeEventListener("scroll",this.#n,{capture:!0}),window.removeEventListener("resize",this.#n),this.#p()}#$(){this.#s||(this.#t=this.querySelector(":scope > [data-trigger]"),this.#t||(this.#t=this.querySelector(":scope > button")),this.#t||(this.#t=document.createElement("button"),this.#t.setAttribute("data-trigger",""),this.#t.innerHTML=`
|
|
1
|
+
var oe=Object.defineProperty;var ce=(t,e)=>()=>(t&&(e=t(t=0)),e);var le=(t,e)=>{for(var a in e)oe(t,a,{get:e[a],enumerable:!0})};var ie={};le(ie,{SoundManager:()=>ye});var ne,z,ye,re=ce(()=>{ne="vb-sound",z={enabled:!1,volume:.5},ye={_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(ne);return t?{...z,...JSON.parse(t)}:{...z}}catch{return{...z}}},_save(t){try{let e=this._load();localStorage.setItem(ne,JSON.stringify({...e,...t}))}catch{}},_playTone(t,e,a="sine"){if(!this._enabled)return;let s=this._getContext(),r=s.createOscillator(),i=s.createGain();r.connect(i),i.connect(s.destination),r.frequency.value=t,r.type=a,i.gain.value=this._volume*.3,r.start(),i.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 be=window.matchMedia("(prefers-reduced-motion: reduce)");var X=new Map;function K(t,e,a={}){let s=a.priority??10,r={impl:e,bundle:a.bundle,contract:a.contract,priority:s},i=X.get(t);if(customElements.get(t)){if(!i||i.priority>=s){i&&i.priority===s&&i.impl!==e&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${a.bundle}".`);return}console.warn(`[VB Bundle] Tag <${t}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${a.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=s){i.priority===s&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${i.bundle}". Skipping "${a.bundle}" (first wins at equal priority).`);return}X.set(t,r),customElements.define(t,e)}var T=class extends HTMLElement{#i=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let e of this.#i)e();this.#i=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,a,s,r){e.addEventListener(a,s,r),this.#i.push(()=>e.removeEventListener(a,s,r))}setup(){}teardown(){}};var y=new Map,F=new Map;var J=null;function Q(){if(typeof window<"u"&&window.__VB_THEME_BASE)return String(window.__VB_THEME_BASE).replace(/\/$/,"");if(J)return J;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 de=new Set(["default","a11y-high-contrast","a11y-large-text","a11y-dyslexia","modern","minimal","classic"]),he=new Set(["kawaii","memphis"]);function P(t){return he.has(t)}function me(t,e){return`${e}/themes/${t}.css`}function Z(t,e){if(!P(t))return Promise.resolve();if(F.has(t))return F.get(t);let a=import(`${e}/packs/${t}.full.js`).catch(()=>{});return F.set(t,a),a}function ue(t,e){let a=Q(),s=()=>{(P(e)||t.hasAttribute("data-vb-pack"))&&Z(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,i)=>{let n=()=>{t.setAttribute("data-vb-theme-state","ready"),c(),s(),r()},o=()=>{t.setAttribute("data-vb-theme-state","error"),y.delete(e),c(),i(new Error(`Failed to load theme: ${e}`))},c=()=>{t.removeEventListener("load",n),t.removeEventListener("error",o)};t.addEventListener("load",n,{once:!0}),t.addEventListener("error",o,{once:!0})})}async function B(t){if(!t||de.has(t))return;if(y.has(t))return y.get(t);if(typeof document<"u"){let s=document.querySelector(`link[data-vb-theme="${t}"]`);if(s){let r=ue(s,t);return y.set(t,r),r}}let e=Q(),a=P(t)?ge(t,e):pe(t,e);return y.set(t,a),a}async function pe(t,e){let a=me(t,e);return new Promise((s,r)=>{let i=document.querySelector(`link[data-vb-theme-preload="${t}"]`);i&&i.remove();let n=document.createElement("link");n.rel="stylesheet",n.href=a,n.setAttribute("data-vb-theme",t),n.setAttribute("data-vb-theme-state","loading"),n.onload=()=>{n.setAttribute("data-vb-theme-state","ready"),s()},n.onerror=()=>{n.setAttribute("data-vb-theme-state","error"),n.remove(),y.delete(t),r(new Error(`Failed to load theme: ${t}`))},document.head.appendChild(n)})}function ge(t,e){let a=`${e}/packs/${t}.theme.css`,s=`${e}/packs/${t}.effects.css`;return new Promise((r,i)=>{let n=document.querySelector(`link[data-vb-theme-preload="${t}"]`);n&&n.remove();let o=document.createElement("link");o.rel="stylesheet",o.href=a,o.setAttribute("data-vb-theme",t),o.setAttribute("data-vb-pack",t),o.setAttribute("data-vb-theme-state","loading"),o.onload=()=>{o.setAttribute("data-vb-theme-state","ready");let c=document.createElement("link");c.rel="stylesheet",c.href=s,c.setAttribute("data-vb-pack-effects",t),document.head.appendChild(c),Z(t,e),r()},o.onerror=()=>{o.setAttribute("data-vb-theme-state","error"),o.remove(),y.delete(t),i(new Error(`Failed to load pack: ${t}`))},document.head.appendChild(o)})}var D=[{id:"auto",name:"Auto",icon:"monitor"},{id:"light",name:"Light",icon:"sun"},{id:"dark",name:"Dark",icon:"moon"}],E=[{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}}],A=[{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"}],L=[{id:"swiss",name:"Swiss",icon:"grid-3x3",character:"Precision grid",swatchBg:"#ff3e00",swatchFg:"white",tier:"showcase",category:"Design"},{id:"brutalist",name:"Brutalist",icon:"square",character:"Raw, industrial",swatchBg:"#1a1a1a",swatchFg:"#f5f5f5",tier:"showcase",category:"Design"},{id:"art-deco",name:"Art Deco",icon:"crown",character:"1920s luxury",swatchBg:"#1A1A1A",swatchFg:"#C9A84C",tier:"showcase",category:"Design"},{id:"editorial",name:"Editorial",icon:"newspaper",character:"Magazine elegance",swatchBg:"#1a1a1a",swatchFg:"#c9a227",tier:"showcase",category:"Content"},{id:"genai",name:"GenAI",icon:"sparkles",character:"AI aesthetic",swatchBg:"#1a0a2e",swatchFg:"#a855f7",tier:"showcase",category:"Modern"},{id:"glassmorphism",name:"Glass",icon:"glass-water",character:"Frosted surfaces",swatchBg:"#667eea",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"startup",name:"Startup",icon:"rocket",character:"SaaS energy",swatchBg:"#4f46e5",swatchFg:"#ffffff",tier:"showcase",category:"Modern"},{id:"organic",name:"Organic",icon:"leaf",character:"Natural, handcrafted",swatchBg:"#2d5016",swatchFg:"#faf5e6",tier:"showcase",category:"Creative"},{id:"rough",name:"Rough",icon:"pencil",character:"Hand-drawn sketch",swatchBg:"#f5f0e8",swatchFg:"#3a3a3a",tier:"showcase",category:"Creative"},{id:"cyber",name:"Cyber",icon:"zap",character:"Neon futuristic",swatchBg:"#0a0a1a",swatchFg:"#00ff88",tier:"showcase",category:"Creative"},{id:"vaporwave",name:"Vaporwave",icon:"radio",character:"Neon dreamy",swatchBg:"#2b0040",swatchFg:"#ff6ad5",tier:"showcase",category:"Aesthetic"},{id:"neumorphism",name:"Neumorph",icon:"circle",character:"Soft embossed",swatchBg:"#e0e0e0",swatchFg:"#a0a0a0",tier:"showcase",category:"Aesthetic"},{id:"bauhaus",name:"Bauhaus",icon:"shapes",character:"Geometric",swatchBg:"#F1FAEE",swatchFg:"#E63946",tier:"showcase",category:"Aesthetic"},{id:"claymorphism",name:"Clay",icon:"circle-dot",character:"Puffy 3D",swatchBg:"#f0f0f5",swatchFg:"#FF6B9D",tier:"showcase",category:"Aesthetic"},{id:"alpha1999",name:"Alpha1999",icon:"orbit",character:"Space retro-fi",swatchBg:"#0a0a14",swatchFg:"#d4880f",tier:"showcase",category:"Signature"},{id:"super2026",name:"Super2026",icon:"triangle",character:"Supergraphic bold",swatchBg:"#f5f0e6",swatchFg:"#c23616",tier:"showcase",category:"Signature"},{id:"magna",name:"Magna",icon:"orbit",character:"Odyssey 2 retro",swatchBg:"#0d0b14",swatchFg:"#f97316",tier:"showcase",category:"Signature"},{id:"win9x",name:"Win9x",icon:"monitor",character:"Classic desktop",swatchBg:"#008080",swatchFg:"#c0c0c0",tier:"showcase",category:"OS Styles"},{id:"nes",name:"NES",icon:"joystick",character:"Console pixels",swatchBg:"#bcbcbc",swatchFg:"#e40521",tier:"showcase",category:"OS Styles"},{id:"8bit",name:"8-Bit",icon:"gamepad-2",character:"Retro pixel art",swatchBg:"#000080",swatchFg:"#ffff00",tier:"showcase",category:"OS Styles"}],S=[{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"}],O=[{id:"",name:"Fixed",icon:"ruler",description:"Static token values"},{id:"default",name:"Fluid",icon:"move-diagonal-2",description:"Smooth viewport scaling"},{id:"compact",name:"Compact",icon:"minimize-2",description:"Tighter fluid range"},{id:"spacious",name:"Spacious",icon:"maximize-2",description:"Generous fluid range"}],R=[{id:"a11y-high-contrast",name:"High Contrast",icon:"contrast",description:"AAA contrast (7:1+)"},{id:"a11y-large-text",name:"Large Text",icon:"type",description:"25% larger fonts"},{id:"a11y-dyslexia",name:"Dyslexia",icon:"book-open",description:"Readable typography"}],I=[{id:"motionFx",name:"Motion Effects",icon:"sparkles",description:"Hover & enter animations"},{id:"sounds",name:"Sound Effects",icon:"volume-2",description:"Audio feedback"}],$e=[...L,...S],ke=[...A,...L,...S,...ee],w=t=>L.filter(e=>e.category===t),q=[{label:"Style",themes:A,tier:"core"},{label:"Design",themes:w("Design"),tier:"showcase"},{label:"Content",themes:w("Content"),tier:"showcase"},{label:"Modern",themes:w("Modern"),tier:"showcase"},{label:"Creative",themes:w("Creative"),tier:"showcase"},{label:"Aesthetic",themes:w("Aesthetic"),tier:"showcase"},{label:"Signature",themes:w("Signature"),tier:"showcase"},{label:"OS Styles",themes:w("OS Styles"),tier:"showcase"},{label:"Packs",themes:ee,tier:"showcase"},{label:"More Themes",themes:S,tier:"community"}];function fe(){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 C=null;function f(){return C||(C=fe()),C}function H(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 te(t){if(typeof t!="string"||!t)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${t}:`}function ae(t){try{let e=JSON.parse(t);if(e&&typeof e=="object"&&typeof e.timestamp=="number")return e}catch{}return null}var p={configure(t={}){C=t.backend??null},async set(t,e,a){let s={data:a,timestamp:Date.now()};await f().setRaw(H(t,e),JSON.stringify(s))},async get(t,e,a){let s=await f().getRaw(H(t,e));if(s==null)return null;let r=ae(s);return!r||a?.maxAge!=null&&Date.now()-r.timestamp>a.maxAge?null:r.data},async remove(t,e){await f().removeRaw(H(t,e))},async list(t){let e=te(t),a=await f().keys(e),s=[];for(let r of a){let i=await f().getRaw(r);if(i==null)continue;let n=ae(i);n&&s.push({key:r.slice(e.length),data:n.data,timestamp:n.timestamp})}return s},async clear(t){let e=te(t),a=await f().keys(e);for(let s of a)await f().removeRaw(s)},async clearAll(){let t=await f().keys("vb:");for(let e of t)await f().removeRaw(e)},async setMany(t,e){for(let[a,s]of e)await p.set(t,a,s)}};var j="theme",V="current",b={mode:"auto",brand:"default",accent:"default",borderStyle:"",iconSet:"",fluid:"",backdrop:"",backdropChrome:"",pageBgType:"",pageBgColor:"",pageBgGradStart:"",pageBgGradEnd:"",pageBgGradDir:""},se=["--hue-primary","--hue-secondary","--hue-accent","--lightness-primary","--chroma-primary","--lightness-secondary","--chroma-secondary","--lightness-accent","--chroma-accent"],d=null,m={_initPromise:null,async init(){return this._initPromise?this._initPromise:(this._initPromise=(async()=>{let t=await p.get(j,V);d=t?{...b,...t}:{...b};try{await B(d.brand)}catch{d.brand="default"}return this.apply(d),this._watchSystemPreference(),this._watchRootAttributes(),d})(),this._initPromise)},load(){return d?{...d}:{...b}},save(t){let e={...d??b,...t};return d=e,p.set(j,V,e).catch(()=>{}),e},apply({mode:t="auto",brand:e="default",borderStyle:a="",iconSet:s="",fluid:r="",backdrop:i="",backdropChrome:n="",pageBgType:o="",pageBgColor:c="",pageBgGradStart:g="",pageBgGradEnd:u="",pageBgGradDir:h=""}={}){let l=document.documentElement;l.dataset.mode=t==="auto"?this.getEffectiveMode():t;let N=(l.dataset.theme||"").split(" ").filter(M=>M.startsWith("a11y-")),Y=e!=="default"?[e,...N]:[...N];Y.length?l.dataset.theme=Y.join(" "):delete l.dataset.theme;let $=a||this._readCSSHint("--theme-border-style");$&&$!=="clean"?l.dataset.borderStyle=$:delete l.dataset.borderStyle;let k=s||this._readCSSHint("--theme-icon-set");if(k&&k!=="lucide"?l.dataset.iconSet=k:delete l.dataset.iconSet,r?l.dataset.fluid=r:delete l.dataset.fluid,i?l.dataset.backdrop=i:delete l.dataset.backdrop,n&&n!=="card"?l.dataset.backdropChrome=n:delete l.dataset.backdropChrome,o==="color"&&c)l.style.setProperty("--page-bg-color",c),l.style.removeProperty("--page-bg-gradient");else if(o==="gradient"&&g&&u){let M=h||"to bottom";l.style.setProperty("--page-bg-gradient",`linear-gradient(${M}, ${g}, ${u})`),l.style.removeProperty("--page-bg-color")}else l.style.removeProperty("--page-bg-color"),l.style.removeProperty("--page-bg-gradient");let W=this.load().accent||"default";this._applyAccent(W),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{mode:t,brand:e,accent:W,borderStyle:$,iconSet:k,fluid:r,backdrop:i,backdropChrome:n,pageBgType:o,effectiveMode:this.getEffectiveMode()}}))},setMode(t){let e=this.save({mode:t});this.apply(e)},async setBrand(t){try{await B(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 i=this.save({pageBgType:t,pageBgColor:e,pageBgGradStart:a,pageBgGradEnd:s,pageBgGradDir:r});this.apply(i)},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:i,backdrop:n,backdropChrome:o,pageBgType:c,pageBgColor:g,pageBgGradStart:u,pageBgGradEnd:h,pageBgGradDir:l}=this.load();return{mode:t,brand:e,accent:a,borderStyle:s,iconSet:r,fluid:i,backdrop:n,backdropChrome:o,pageBgType:c,pageBgColor:g,pageBgGradStart:u,pageBgGradEnd:h,pageBgGradDir:l,effectiveMode:this.getEffectiveMode()}},toggleMode(){let e=this.getEffectiveMode()==="dark"?"light":"dark";this.setMode(e)},reset(){d={...b},p.remove(j,V).catch(()=>{});let t=document.documentElement;t.style.removeProperty("--page-bg-color"),t.style.removeProperty("--page-bg-gradient");for(let e of se)t.style.removeProperty(e);this.apply(b)},_readCSSHint(t){return getComputedStyle(document.documentElement).getPropertyValue(t).trim()},_applyAccent(t){let e=document.documentElement,a=E.find(s=>s.id===t);for(let s of se)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(!d)return;let a=(document.documentElement.dataset.theme||"").split(/\s+/).filter(Boolean).find(s=>!s.startsWith("a11y-"))||"default";a!==d.brand&&(d.brand=a,B(a).catch(()=>{}),window.dispatchEvent(new CustomEvent("vb:theme-change",{detail:{...this.getState()}})))},_syncFromDataMode(){if(!d)return;let t=document.documentElement.dataset.mode||"auto",e=d.mode==="auto"?this.getEffectiveMode():d.mode;t!==e&&(d.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 v=null,x="settings",_={motionFx:!0,sounds:!1},G=class t extends T{static#i=200;#t;#e;#a=!1;#s=!1;#g=!1;#c=null;#f=!1;#l=[];#r={..._};#n=()=>this.#E();async setup(){this.#s=this.getAttribute("variant")==="inline",this.#g=this.hasAttribute("compact"),await Promise.all([m.init(),this.#S()]),this.#$(),this.#A(),this.#v(),this.listen(window,"vb:theme-change",this.#I),this.#b(),this.#h()}async#S(){let[e,a]=await Promise.all([p.get(x,"a11y"),p.get(x,"extensions")]);this.#l=Array.isArray(e)?e:[],this.#r={..._,...a??{}}}teardown(){window.removeEventListener("scroll",this.#n,{capture:!0}),window.removeEventListener("resize",this.#n),this.#p()}#$(){this.#s||(this.#t=this.querySelector(":scope > [data-trigger]"),this.#t||(this.#t=this.querySelector(":scope > button")),this.#t||(this.#t=document.createElement("button"),this.#t.setAttribute("data-trigger",""),this.#t.innerHTML=`
|
|
2
2
|
<icon-wc name="palette" label="Theme settings"></icon-wc>
|
|
3
3
|
`,this.prepend(this.#t)),this.#t.setAttribute("aria-haspopup","dialog"),this.#t.setAttribute("aria-expanded","false")),this.#e=document.createElement("div"),this.#e.className="panel",this.#e.setAttribute("role","dialog"),this.#e.setAttribute("aria-label","Theme settings"),this.#s||(this.#e.id=`theme-panel-${crypto.randomUUID().slice(0,8)}`,this.#t.setAttribute("aria-controls",this.#e.id)),this.#e.innerHTML=this.#k(),this.appendChild(this.#e)}#k(){return this.#g?this.#B():this.#T()}#m(e,a){let s=e.swatchBg,r=e.swatchFg||"white",i=e.icon||"";return`
|
|
4
4
|
<label class="swatch-cell" title="${e.character?`${e.name} \u2014 ${e.character}`:e.name}">
|
|
@@ -10,7 +10,7 @@ var oe=Object.defineProperty;var ce=(t,e)=>()=>(t&&(e=t(t=0)),e);var le=(t,e)=>{
|
|
|
10
10
|
/>
|
|
11
11
|
<span class="swatch-visual" style="--swatch-bg: ${s}; --swatch-fg: ${r}">
|
|
12
12
|
${i?`<icon-wc name="${i}"></icon-wc>`:""}
|
|
13
|
-
<span class="
|
|
13
|
+
<span class="visually-hidden">${e.name}</span>
|
|
14
14
|
</span>
|
|
15
15
|
</label>
|
|
16
16
|
`}#T(){let{mode:e,brand:a,fluid:s,accent:r}=m.getState(),i=q.filter(n=>n.tier==="showcase");return`
|
|
@@ -41,7 +41,7 @@ var oe=Object.defineProperty;var ce=(t,e)=>()=>(t&&(e=t(t=0)),e);var le=(t,e)=>{
|
|
|
41
41
|
<label class="accent-dot" title="${n.name}">
|
|
42
42
|
<input type="radio" name="theme-accent" value="${n.id}" ${r===n.id?"checked":""} />
|
|
43
43
|
<span class="accent-dot-visual" style="background: ${n.swatchBg}"></span>
|
|
44
|
-
<span class="
|
|
44
|
+
<span class="visually-hidden">${n.name}</span>
|
|
45
45
|
</label>
|
|
46
46
|
`).join("")}
|
|
47
47
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var p=window.matchMedia("(prefers-reduced-motion: reduce)");var d=new Map;function u(i,e,n={}){let t=n.priority??10,o={impl:e,bundle:n.bundle,contract:n.contract,priority:t},r=d.get(i);if(customElements.get(i)){if(!r||r.priority>=t){r&&r.priority===t&&r.impl!==e&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${i}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=t){r.priority===t&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${r.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}d.set(i,o),customElements.define(i,e)}var a=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let e of this.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,n,t,o){e.addEventListener(n,t,o),this.#e.push(()=>e.removeEventListener(n,t,o))}setup(){}teardown(){}};function m(i){let e=(Date.now()-i.getTime())/1e3;if(e<0)return null;if(e<60)return"just now";if(e<3600){let t=Math.floor(e/60);return`${t} minute${t!==1?"s":""} ago`}if(e<86400){let t=Math.floor(e/3600);return`${t} hour${t!==1?"s":""} ago`}if(e<2592e3){let t=Math.floor(e/86400);return`${t} day${t!==1?"s":""} ago`}if(e<31536e3){let t=Math.floor(e/2592e3);return`${t} month${t!==1?"s":""} ago`}let n=Math.floor(e/31536e3);return`${n} year${n!==1?"s":""} ago`}function c(i=document){for(let e of i.querySelectorAll("time[data-relative]")){let n=e.getAttribute("datetime");if(!n)continue;let t=m(new Date(n));t&&(e.textContent=t)}}var f;function h(){c(),f||(f=setInterval(()=>c(),6e4))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",h,{once:!0}):h();var l=class extends a{setup(){c(this),this.#e();let e=this.getAttribute("updates-src");e&&this.#i(e)}#e(){let e=document.createElement("nav");e.setAttribute("data-timeline-controls",""),e.setAttribute("aria-label","Timeline controls");let n=document.createElement("button");if(n.type="button",n.textContent="Oldest first",n.addEventListener("click",()=>{this.#n(),n.textContent=this.#t?"Latest first":"Oldest first"}),e.append(n),this.hasAttribute("versions")){let t=this.#o();if(t.length>0){let o=document.createElement("select");o.setAttribute("aria-label","Filter by version"),o.innerHTML='<option value="">All versions</option>'+t.map(r=>`<option value="${r}">${r}</option>`).join(""),o.addEventListener("change",()=>this.#r(o.value)),e.append(o)}}this.prepend(e)}#t=!1;#n(){this.#t=!this.#t;let e=this.querySelector(".changelog-entries")||this,n=[...e.children].filter(t=>t.tagName==="SECTION"||t.tagName==="ARTICLE");n.reverse();for(let t of n)e.append(t)}#o(){let e=this.querySelectorAll(".version-tag"),n=new Set;for(let t of e){let o=t.textContent.trim();o&&n.add(o)}return[...n]}#r(e){let n=this.querySelectorAll('section[id^="v"]');for(let t of n)t.hidden=e&&t.id!==e.replace(/\./g,"-").replace(/^v/,"v");if(!n.length){let t=this.querySelectorAll(".changelog-entries article");for(let o of t){let r=o.querySelector(".version-tag");o.hidden=e&&r?.textContent.trim()!==e}}}async#i(e){try{let n=await fetch(e);if(!n.ok)return;let t=await n.json();if(!Array.isArray(t)||!t.length)return;let o=document.createElement("section");o.setAttribute("aria-labelledby","recent-pages-heading"),o.innerHTML=`
|
|
1
|
+
var p=window.matchMedia("(prefers-reduced-motion: reduce)");var d=new Map;function u(i,e,n={}){let t=n.priority??10,o={impl:e,bundle:n.bundle,contract:n.contract,priority:t},r=d.get(i);if(customElements.get(i)){if(!r||r.priority>=t){r&&r.priority===t&&r.impl!==e&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${i}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=t){r.priority===t&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${r.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}d.set(i,o),customElements.define(i,e)}var a=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),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,n,t,o){e.addEventListener(n,t,o),this.#e.push(()=>e.removeEventListener(n,t,o))}setup(){}teardown(){}};function m(i){let e=(Date.now()-i.getTime())/1e3;if(e<0)return null;if(e<60)return"just now";if(e<3600){let t=Math.floor(e/60);return`${t} minute${t!==1?"s":""} ago`}if(e<86400){let t=Math.floor(e/3600);return`${t} hour${t!==1?"s":""} ago`}if(e<2592e3){let t=Math.floor(e/86400);return`${t} day${t!==1?"s":""} ago`}if(e<31536e3){let t=Math.floor(e/2592e3);return`${t} month${t!==1?"s":""} ago`}let n=Math.floor(e/31536e3);return`${n} year${n!==1?"s":""} ago`}function c(i=document){for(let e of i.querySelectorAll("time[data-relative]")){let n=e.getAttribute("datetime");if(!n)continue;let t=m(new Date(n));t&&(e.textContent=t)}}var f;function h(){c(),f||(f=setInterval(()=>c(),6e4))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",h,{once:!0}):h();var l=class extends a{setup(){c(this),this.#e();let e=this.getAttribute("updates-src");e&&this.#i(e)}#e(){let e=document.createElement("nav");e.setAttribute("data-timeline-controls",""),e.setAttribute("aria-label","Timeline controls");let n=document.createElement("button");if(n.type="button",n.textContent="Oldest first",n.addEventListener("click",()=>{this.#n(),n.textContent=this.#t?"Latest first":"Oldest first"}),e.append(n),this.hasAttribute("versions")){let t=this.#o();if(t.length>0){let o=document.createElement("select");o.setAttribute("aria-label","Filter by version"),o.innerHTML='<option value="">All versions</option>'+t.map(r=>`<option value="${r}">${r}</option>`).join(""),o.addEventListener("change",()=>this.#r(o.value)),e.append(o)}}this.prepend(e)}#t=!1;#n(){this.#t=!this.#t;let e=this.querySelector(".changelog-entries")||this,n=[...e.children].filter(t=>t.tagName==="SECTION"||t.tagName==="ARTICLE");n.reverse();for(let t of n)e.append(t)}#o(){let e=this.querySelectorAll(".version-tag"),n=new Set;for(let t of e){let o=t.textContent.trim();o&&n.add(o)}return[...n]}#r(e){let n=this.querySelectorAll('section[id^="v"]');for(let t of n)t.hidden=e&&t.id!==e.replace(/\./g,"-").replace(/^v/,"v");if(!n.length){let t=this.querySelectorAll(".changelog-entries article");for(let o of t){let r=o.querySelector(".version-tag");o.hidden=e&&r?.textContent.trim()!==e}}}async#i(e){try{let n=await fetch(e);if(!n.ok)return;let t=await n.json();if(!Array.isArray(t)||!t.length)return;let o=document.createElement("section");o.setAttribute("aria-labelledby","recent-pages-heading"),o.innerHTML=`
|
|
2
2
|
<h2 id="recent-pages-heading">Recently Updated Pages</h2>
|
|
3
3
|
<ul class="recent-pages">
|
|
4
4
|
${t.slice(0,10).map(s=>`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var E=window.matchMedia("(prefers-reduced-motion: reduce)");var b=new Map;function A(n,t,e={}){let i=e.priority??10,r={impl:t,bundle:e.bundle,contract:e.contract,priority:i},s=b.get(n);if(customElements.get(n)){if(!s||s.priority>=i){s&&s.priority===i&&s.impl!==t&&console.warn(`[VB Bundle] Tag <${n}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${n}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=i){s.priority===i&&console.warn(`[VB Bundle] Tag <${n}> already registered by "${s.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}b.set(n,r),customElements.define(n,t)}var p=class extends HTMLElement{#c=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let t of this.#c)t();this.#c=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,r){t.addEventListener(e,i,r),this.#c.push(()=>t.removeEventListener(e,i,r))}setup(){}teardown(){}};function v(){try{let n=new Intl.DateTimeFormat(void 0,{hour:"numeric"}).resolvedOptions();return n.hourCycle==="h12"||n.hourCycle==="h11"?"12h":"24h"}catch{return"12h"}}function u(n){return String(n).padStart(2,"0")}function c(n){if(!n)return null;let t=n.split(":").map(Number);return{h:t[0]||0,m:t[1]||0,s:t[2]||0}}function d(n,t,e,i){return i?`${u(n)}:${u(t)}:${u(e)}`:`${u(n)}:${u(t)}`}function y(n,t,e,i,r){if(r==="12h"){let s=n>=12?"PM":"AM",h=n%12||12;return i?`${h}:${u(t)}:${u(e)} ${s}`:`${h}:${u(t)} ${s}`}return d(n,t,e,i)}function g(n){let t=n.trim();if(!t)return null;let e=t.match(/\s*(am|pm|a\.m\.|p\.m\.|a|p)\s*$/i),i=null,r=t;e&&(i=e[1].toLowerCase().replace(/\./g,"").startsWith("p")?"PM":"AM",r=t.slice(0,e.index).trim());let s=r.split(/[:.]/);if(s.length<1||s.length>3)return null;let h=Number(s[0]),l=s.length>1?Number(s[1]):0,o=s.length>2?Number(s[2]):0;if(isNaN(h)||isNaN(l)||isNaN(o)||l<0||l>59||o<0||o>59)return null;let a=h;if(i){if(a<1||a>12)return null;i==="AM"?a=a===12?0:a:a=a===12?12:a+12}else if(a<0||a>23)return null;return{h:a,m:l,s:o}}function x(n,t,e){return n>e?t:n<t?e:n}var f=class extends p{static formAssociated=!0;#c;#n;#e;#g;#d;#a;#r=[];#u;#h;#p;#t=0;#i=0;#s=0;#o="AM";#L=null;#q=null;#v=60;#S;#F=0;#l=!1;#M;constructor(){super(),this.#c=this.attachInternals()}setup(){if(this.#n=this.querySelector(':scope > input[type="time"]'),!this.#n)return!1;this.#v=Number(this.#n.getAttribute("step"))||60,this.#p=this.#v<60,this.#L=c(this.#n.getAttribute("min")),this.#q=c(this.#n.getAttribute("max")),this.#h=this.getAttribute("data-format")||v();let t=c(this.#n.value);t&&(this.#t=t.h,this.#i=t.m,this.#s=t.s),this.#S=this.#n.value,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#n.setAttribute("tabindex","-1"),this.#n.setAttribute("aria-hidden","true"),this.#n.style.cssText="position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;",this.#O(),this.#V(),this.#P(),this.#x(),this.#k(),this.#C(),this.listen(document,"click",this.#H),(this.#n.disabled||this.hasAttribute("disabled"))&&(this.setAttribute("data-disabled",""),this.#e.disabled=!0)}#O(){this.#g=document.createElement("div"),this.#g.className="time-trigger",this.#e=document.createElement("input"),this.#e.type="text",this.#e.className="time-input",this.#e.setAttribute("role","combobox"),this.#e.setAttribute("aria-haspopup","listbox"),this.#e.setAttribute("aria-expanded","false"),this.#e.setAttribute("autocomplete","off"),this.#e.setAttribute("placeholder","Type a time\u2026"),this.#g.appendChild(this.#e),this.#d=document.createElement("button"),this.#d.type="button",this.#d.className="time-trigger-icon",this.#d.setAttribute("aria-label","Toggle time spinner"),this.#d.setAttribute("tabindex","-1");let t=document.createElement("icon-wc");t.setAttribute("name","clock"),t.setAttribute("size","sm"),t.setAttribute("aria-hidden","true"),this.#d.appendChild(t),this.#g.appendChild(this.#d),this.appendChild(this.#g),this.listen(this.#d,"click",e=>{e.stopPropagation(),this.#l?this.#f():this.#T(),this.#e.focus()}),this.listen(this.#e,"focus",()=>this.#e.select()),this.listen(this.#e,"keydown",this.#I),this.listen(this.#e,"blur",this.#R)}#V(){this.#M=`tp-${Math.random().toString(36).slice(2,8)}`,this.#a=document.createElement("div"),this.#a.className="time-panel",this.#a.id=this.#M,this.#a.setAttribute("role","group"),this.#a.setAttribute("aria-label","Time spinners"),this.#e.setAttribute("aria-controls",this.#M);let t=this.#h==="12h"?1:0,e=this.#h==="12h"?12:23,i=this.#w("Hours",t,e,1);this.#a.appendChild(i.el),this.#r.push(i),this.#a.appendChild(this.#N());let r=this.#v>=60?Math.max(1,Math.round(this.#v/60)):1,s=this.#w("Minutes",0,59,r);if(this.#a.appendChild(s.el),this.#r.push(s),this.#p){this.#a.appendChild(this.#N());let h=this.#w("Seconds",0,59,this.#v);this.#a.appendChild(h.el),this.#r.push(h)}this.#h==="12h"&&(this.#u=document.createElement("button"),this.#u.type="button",this.#u.className="period-toggle",this.#u.setAttribute("aria-label","Toggle AM/PM"),this.#u.textContent=this.#o,this.#a.appendChild(this.#u),this.listen(this.#u,"click",()=>{this.#o=this.#o==="AM"?"PM":"AM",this.#u.textContent=this.#o,this.#t=this.#B(this.#$(),this.#o),this.#A()}),this.listen(this.#u,"keydown",h=>{h.key==="ArrowLeft"&&(h.preventDefault(),this.#E(this.#r.length-1)),h.key==="Escape"&&(h.preventDefault(),this.#f(),this.#e.focus())})),this.appendChild(this.#a)}#w(t,e,i,r){let s=document.createElement("div");s.className="time-spinner",s.setAttribute("role","spinbutton"),s.setAttribute("aria-label",t),s.setAttribute("aria-valuemin",String(e)),s.setAttribute("aria-valuemax",String(i)),s.setAttribute("tabindex","0");let h=document.createElement("button");h.type="button",h.className="time-inc",h.setAttribute("aria-hidden","true"),h.setAttribute("tabindex","-1"),h.innerHTML="▲";let l=document.createElement("span");l.className="time-value";let o=document.createElement("button");o.type="button",o.className="time-dec",o.setAttribute("aria-hidden","true"),o.setAttribute("tabindex","-1"),o.innerHTML="▼",s.appendChild(h),s.appendChild(l),s.appendChild(o);let a={el:s,valueEl:l,label:t,min:e,max:i,step:r};return this.listen(h,"click",()=>{this.#b(a,r)}),this.listen(o,"click",()=>{this.#b(a,-r)}),this.listen(s,"keydown",m=>{this.#j(m,a)}),this.listen(s,"focus",()=>{this.#F=this.#r.indexOf(a)}),a}#N(){let t=document.createElement("span");return t.className="time-sep",t.setAttribute("aria-hidden","true"),t.textContent=":",t}#T(){this.#l||(this.#l=!0,this.#a.setAttribute("data-open",""),this.#e.setAttribute("aria-expanded","true"))}#f(){this.#l&&(this.#l=!1,this.#a.removeAttribute("data-open"),this.#e.setAttribute("aria-expanded","false"))}#H=t=>{this.#l&&!this.contains(t.target)&&this.#f()};#I=t=>{switch(t.key){case"Enter":{t.preventDefault(),t.stopPropagation();let e=g(this.#e.value);e&&(this.#t=e.h,this.#i=e.m,this.#s=e.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A()),this.#x(),this.#l&&this.#f();return}case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.#l||this.#T(),requestAnimationFrame(()=>this.#E(0));return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#l&&this.#f(),this.#x();return;case"Tab":this.#l&&this.#f();return}};#R=t=>{if(t.relatedTarget&&this.contains(t.relatedTarget))return;let e=this.#e.value.trim();if(e){let i=g(e);i&&(this.#t=i.h,this.#i=i.m,this.#s=i.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#k(),this.#C(),this.dispatchEvent(new CustomEvent("time-picker:change",{bubbles:!0,detail:{value:d(this.#t,this.#i,this.#s,this.#p),hours:this.#t,minutes:this.#i,seconds:this.#s}})))}this.#x(),this.#l&&this.#f(),this.#n.dispatchEvent(new Event("blur",{bubbles:!0}))};#j=(t,e)=>{let i=this.#r.indexOf(e);switch(t.key){case"ArrowUp":t.preventDefault(),this.#b(e,e.step);break;case"ArrowDown":t.preventDefault(),this.#b(e,-e.step);break;case"ArrowRight":t.preventDefault(),i<this.#r.length-1?this.#E(i+1):this.#u&&this.#u.focus();break;case"ArrowLeft":t.preventDefault(),i>0&&this.#E(i-1);break;case"PageUp":t.preventDefault(),this.#b(e,e.step*(e.label==="Hours"?1:10));break;case"PageDown":t.preventDefault(),this.#b(e,-e.step*(e.label==="Hours"?1:10));break;case"Home":t.preventDefault(),this.#y(e,e.min);break;case"End":t.preventDefault(),this.#y(e,e.max);break;case"Escape":t.preventDefault(),this.#f(),this.#e.focus();break;default:/^\d$/.test(t.key)&&(t.preventDefault(),this.#U(t.key,e))}};#m="";#D=0;#U(t,e){clearTimeout(this.#D),this.#m+=t;let i=Number(this.#m);if(this.#m.length>=2||i*10>e.max){let r=Math.min(Math.max(i,e.min),e.max);this.#y(e,r),this.#m=""}else this.#D=setTimeout(()=>{let r=Number(this.#m),s=Math.min(Math.max(r,e.min),e.max);this.#y(e,s),this.#m=""},800)}#b(t,e){let i;t.label==="Hours"?i=this.#h==="12h"?this.#$():this.#t:t.label==="Minutes"?i=this.#i:i=this.#s;let r=x(i+e,t.min,t.max);this.#y(t,r)}#y(t,e){t.label==="Hours"?this.#h==="12h"?this.#t=this.#B(e,this.#o):this.#t=e:t.label==="Minutes"?this.#i=e:this.#s=e,this.#A()}#A(){this.#P(),this.#x(),this.#k(),this.#C(),this.dispatchEvent(new CustomEvent("time-picker:change",{bubbles:!0,detail:{value:d(this.#t,this.#i,this.#s,this.#p),hours:this.#t,minutes:this.#i,seconds:this.#s}}))}#P(){let t=this.#h==="12h"?this.#$():this.#t;this.#r[0].valueEl.textContent=u(t),this.#r[0].el.setAttribute("aria-valuenow",String(t)),this.#r[0].el.setAttribute("aria-valuetext",this.#h==="12h"?`${t} ${this.#o}`:String(t)),this.#r[1].valueEl.textContent=u(this.#i),this.#r[1].el.setAttribute("aria-valuenow",String(this.#i)),this.#p&&this.#r[2]&&(this.#r[2].valueEl.textContent=u(this.#s),this.#r[2].el.setAttribute("aria-valuenow",String(this.#s))),this.#u&&(this.#u.textContent=this.#o)}#x(){this.#t!==void 0&&(this.#e.value=y(this.#t,this.#i,this.#s,this.#p,this.#h))}#k(){let t=d(this.#t,this.#i,this.#s,this.#p);this.#c.setFormValue(t),this.#n.value=t,this.#n.dispatchEvent(new Event("input",{bubbles:!0}))}#C(){if((this.hasAttribute("required")||this.#n.hasAttribute("required"))&&!this.#n.value){this.#c.setValidity({valueMissing:!0},"Please select a time",this.#e||this);return}this.#c.setValidity({})}#B(t,e){return e==="AM"?t===12?0:t:t===12?12:t+12}#$(){if(this.#h==="24h")return this.#t;let t=this.#t%12;return t===0?12:t}#E(t){this.#r[t]?.el.focus()}formResetCallback(){let t=c(this.#S);t?(this.#t=t.h,this.#i=t.m,this.#s=t.s):(this.#t=0,this.#i=0,this.#s=0),this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A()}formStateRestoreCallback(t){if(!t)return;let e=c(t);e&&(this.#t=e.h,this.#i=e.m,this.#s=e.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A())}get value(){return d(this.#t,this.#i,this.#s,this.#p)}set value(t){let e=c(t);e&&(this.#t=e.h,this.#i=e.m,this.#s=e.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A())}};A("time-picker",f);export{f as TimePicker};
|
|
1
|
+
var x=window.matchMedia("(prefers-reduced-motion: reduce)");var b=new Map;function A(n,t,e={}){let i=e.priority??10,r={impl:t,bundle:e.bundle,contract:e.contract,priority:i},s=b.get(n);if(customElements.get(n)){if(!s||s.priority>=i){s&&s.priority===i&&s.impl!==t&&console.warn(`[VB Bundle] Tag <${n}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${n}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=i){s.priority===i&&console.warn(`[VB Bundle] Tag <${n}> already registered by "${s.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}b.set(n,r),customElements.define(n,t)}var p=class extends HTMLElement{#c=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let t of this.#c)t();this.#c=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,r){t.addEventListener(e,i,r),this.#c.push(()=>t.removeEventListener(e,i,r))}setup(){}teardown(){}};function g(){try{let n=new Intl.DateTimeFormat(void 0,{hour:"numeric"}).resolvedOptions();return n.hourCycle==="h12"||n.hourCycle==="h11"?"12h":"24h"}catch{return"12h"}}function u(n){return String(n).padStart(2,"0")}function c(n){if(!n)return null;let t=n.split(":").map(Number);return{h:t[0]||0,m:t[1]||0,s:t[2]||0}}function d(n,t,e,i){return i?`${u(n)}:${u(t)}:${u(e)}`:`${u(n)}:${u(t)}`}function y(n,t,e,i,r){if(r==="12h"){let s=n>=12?"PM":"AM",h=n%12||12;return i?`${h}:${u(t)}:${u(e)} ${s}`:`${h}:${u(t)} ${s}`}return d(n,t,e,i)}function v(n){let t=n.trim();if(!t)return null;let e=t.match(/\s*(am|pm|a\.m\.|p\.m\.|a|p)\s*$/i),i=null,r=t;e&&(i=e[1].toLowerCase().replace(/\./g,"").startsWith("p")?"PM":"AM",r=t.slice(0,e.index).trim());let s=r.split(/[:.]/);if(s.length<1||s.length>3)return null;let h=Number(s[0]),l=s.length>1?Number(s[1]):0,o=s.length>2?Number(s[2]):0;if(isNaN(h)||isNaN(l)||isNaN(o)||l<0||l>59||o<0||o>59)return null;let a=h;if(i){if(a<1||a>12)return null;i==="AM"?a=a===12?0:a:a=a===12?12:a+12}else if(a<0||a>23)return null;return{h:a,m:l,s:o}}function E(n,t,e){return n>e?t:n<t?e:n}var f=class extends p{static formAssociated=!0;#c;#n;#e;#v;#d;#a;#r=[];#u;#h;#p;#t=0;#i=0;#s=0;#o="AM";#L=null;#q=null;#g=60;#S;#F=0;#l=!1;#M;constructor(){super(),this.#c=this.attachInternals()}setup(){if(this.#n=this.querySelector(':scope > input[type="time"]'),!this.#n)return!1;this.#g=Number(this.#n.getAttribute("step"))||60,this.#p=this.#g<60,this.#L=c(this.#n.getAttribute("min")),this.#q=c(this.#n.getAttribute("max")),this.#h=this.getAttribute("data-format")||g();let t=c(this.#n.value);t&&(this.#t=t.h,this.#i=t.m,this.#s=t.s),this.#S=this.#n.value,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#n.setAttribute("tabindex","-1"),this.#n.setAttribute("aria-hidden","true"),this.#n.style.cssText="position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;overflow:hidden;",this.#O(),this.#V(),this.#P(),this.#E(),this.#k(),this.#C(),this.listen(document,"click",this.#H),(this.#n.disabled||this.hasAttribute("disabled"))&&(this.setAttribute("data-disabled",""),this.#e.disabled=!0)}#O(){this.#v=document.createElement("div"),this.#v.className="time-trigger",this.#e=document.createElement("input"),this.#e.type="text",this.#e.className="time-input",this.#e.setAttribute("role","combobox"),this.#e.setAttribute("aria-haspopup","listbox"),this.#e.setAttribute("aria-expanded","false"),this.#e.setAttribute("autocomplete","off"),this.#e.setAttribute("placeholder","Type a time\u2026"),this.#v.appendChild(this.#e),this.#d=document.createElement("button"),this.#d.type="button",this.#d.className="time-trigger-icon",this.#d.setAttribute("aria-label","Toggle time spinner"),this.#d.setAttribute("tabindex","-1");let t=document.createElement("icon-wc");t.setAttribute("name","clock"),t.setAttribute("size","sm"),t.setAttribute("aria-hidden","true"),this.#d.appendChild(t),this.#v.appendChild(this.#d),this.appendChild(this.#v),this.listen(this.#d,"click",e=>{e.stopPropagation(),this.#l?this.#f():this.#T(),this.#e.focus()}),this.listen(this.#e,"focus",()=>this.#e.select()),this.listen(this.#e,"keydown",this.#I),this.listen(this.#e,"blur",this.#R)}#V(){this.#M=`tp-${Math.random().toString(36).slice(2,8)}`,this.#a=document.createElement("div"),this.#a.className="time-panel",this.#a.id=this.#M,this.#a.setAttribute("role","group"),this.#a.setAttribute("aria-label","Time spinners"),this.#e.setAttribute("aria-controls",this.#M);let t=this.#h==="12h"?1:0,e=this.#h==="12h"?12:23,i=this.#w("Hours",t,e,1);this.#a.appendChild(i.el),this.#r.push(i),this.#a.appendChild(this.#N());let r=this.#g>=60?Math.max(1,Math.round(this.#g/60)):1,s=this.#w("Minutes",0,59,r);if(this.#a.appendChild(s.el),this.#r.push(s),this.#p){this.#a.appendChild(this.#N());let h=this.#w("Seconds",0,59,this.#g);this.#a.appendChild(h.el),this.#r.push(h)}this.#h==="12h"&&(this.#u=document.createElement("button"),this.#u.type="button",this.#u.className="period-toggle",this.#u.setAttribute("aria-label","Toggle AM/PM"),this.#u.textContent=this.#o,this.#a.appendChild(this.#u),this.listen(this.#u,"click",()=>{this.#o=this.#o==="AM"?"PM":"AM",this.#u.textContent=this.#o,this.#t=this.#B(this.#$(),this.#o),this.#A()}),this.listen(this.#u,"keydown",h=>{h.key==="ArrowLeft"&&(h.preventDefault(),this.#x(this.#r.length-1)),h.key==="Escape"&&(h.preventDefault(),this.#f(),this.#e.focus())})),this.appendChild(this.#a)}#w(t,e,i,r){let s=document.createElement("div");s.className="time-spinner",s.setAttribute("role","spinbutton"),s.setAttribute("aria-label",t),s.setAttribute("aria-valuemin",String(e)),s.setAttribute("aria-valuemax",String(i)),s.setAttribute("tabindex","0");let h=document.createElement("button");h.type="button",h.className="time-inc",h.setAttribute("aria-hidden","true"),h.setAttribute("tabindex","-1"),h.innerHTML="▲";let l=document.createElement("span");l.className="time-value";let o=document.createElement("button");o.type="button",o.className="time-dec",o.setAttribute("aria-hidden","true"),o.setAttribute("tabindex","-1"),o.innerHTML="▼",s.appendChild(h),s.appendChild(l),s.appendChild(o);let a={el:s,valueEl:l,label:t,min:e,max:i,step:r};return this.listen(h,"click",()=>{this.#b(a,r)}),this.listen(o,"click",()=>{this.#b(a,-r)}),this.listen(s,"keydown",m=>{this.#j(m,a)}),this.listen(s,"focus",()=>{this.#F=this.#r.indexOf(a)}),a}#N(){let t=document.createElement("span");return t.className="time-sep",t.setAttribute("aria-hidden","true"),t.textContent=":",t}#T(){this.#l||(this.#l=!0,this.#a.setAttribute("data-open",""),this.#e.setAttribute("aria-expanded","true"))}#f(){this.#l&&(this.#l=!1,this.#a.removeAttribute("data-open"),this.#e.setAttribute("aria-expanded","false"))}#H=t=>{this.#l&&!this.contains(t.target)&&this.#f()};#I=t=>{switch(t.key){case"Enter":{t.preventDefault(),t.stopPropagation();let e=v(this.#e.value);e&&(this.#t=e.h,this.#i=e.m,this.#s=e.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A()),this.#E(),this.#l&&this.#f();return}case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.#l||this.#T(),requestAnimationFrame(()=>this.#x(0));return;case"Escape":t.preventDefault(),t.stopPropagation(),this.#l&&this.#f(),this.#E();return;case"Tab":this.#l&&this.#f();return}};#R=t=>{if(t.relatedTarget&&this.contains(t.relatedTarget))return;let e=this.#e.value.trim();if(e){let i=v(e);i&&(this.#t=i.h,this.#i=i.m,this.#s=i.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#k(),this.#C(),this.dispatchEvent(new CustomEvent("time-picker:change",{bubbles:!0,detail:{value:d(this.#t,this.#i,this.#s,this.#p),hours:this.#t,minutes:this.#i,seconds:this.#s}})))}this.#E(),this.#l&&this.#f(),this.#n.dispatchEvent(new Event("blur",{bubbles:!0}))};#j=(t,e)=>{let i=this.#r.indexOf(e);switch(t.key){case"ArrowUp":t.preventDefault(),this.#b(e,e.step);break;case"ArrowDown":t.preventDefault(),this.#b(e,-e.step);break;case"ArrowRight":t.preventDefault(),i<this.#r.length-1?this.#x(i+1):this.#u&&this.#u.focus();break;case"ArrowLeft":t.preventDefault(),i>0&&this.#x(i-1);break;case"PageUp":t.preventDefault(),this.#b(e,e.step*(e.label==="Hours"?1:10));break;case"PageDown":t.preventDefault(),this.#b(e,-e.step*(e.label==="Hours"?1:10));break;case"Home":t.preventDefault(),this.#y(e,e.min);break;case"End":t.preventDefault(),this.#y(e,e.max);break;case"Escape":t.preventDefault(),this.#f(),this.#e.focus();break;default:/^\d$/.test(t.key)&&(t.preventDefault(),this.#U(t.key,e))}};#m="";#D=0;#U(t,e){clearTimeout(this.#D),this.#m+=t;let i=Number(this.#m);if(this.#m.length>=2||i*10>e.max){let r=Math.min(Math.max(i,e.min),e.max);this.#y(e,r),this.#m=""}else this.#D=setTimeout(()=>{let r=Number(this.#m),s=Math.min(Math.max(r,e.min),e.max);this.#y(e,s),this.#m=""},800)}#b(t,e){let i;t.label==="Hours"?i=this.#h==="12h"?this.#$():this.#t:t.label==="Minutes"?i=this.#i:i=this.#s;let r=E(i+e,t.min,t.max);this.#y(t,r)}#y(t,e){t.label==="Hours"?this.#h==="12h"?this.#t=this.#B(e,this.#o):this.#t=e:t.label==="Minutes"?this.#i=e:this.#s=e,this.#A()}#A(){this.#P(),this.#E(),this.#k(),this.#C(),this.dispatchEvent(new CustomEvent("time-picker:change",{bubbles:!0,detail:{value:d(this.#t,this.#i,this.#s,this.#p),hours:this.#t,minutes:this.#i,seconds:this.#s}}))}#P(){let t=this.#h==="12h"?this.#$():this.#t;this.#r[0].valueEl.textContent=u(t),this.#r[0].el.setAttribute("aria-valuenow",String(t)),this.#r[0].el.setAttribute("aria-valuetext",this.#h==="12h"?`${t} ${this.#o}`:String(t)),this.#r[1].valueEl.textContent=u(this.#i),this.#r[1].el.setAttribute("aria-valuenow",String(this.#i)),this.#p&&this.#r[2]&&(this.#r[2].valueEl.textContent=u(this.#s),this.#r[2].el.setAttribute("aria-valuenow",String(this.#s))),this.#u&&(this.#u.textContent=this.#o)}#E(){this.#t!==void 0&&(this.#e.value=y(this.#t,this.#i,this.#s,this.#p,this.#h))}#k(){let t=d(this.#t,this.#i,this.#s,this.#p);this.#c.setFormValue(t),this.#n.value=t,this.#n.dispatchEvent(new Event("input",{bubbles:!0}))}#C(){if((this.hasAttribute("required")||this.#n.hasAttribute("required"))&&!this.#n.value){this.#c.setValidity({valueMissing:!0},"Please select a time",this.#e||this);return}this.#c.setValidity({})}#B(t,e){return e==="AM"?t===12?0:t:t===12?12:t+12}#$(){if(this.#h==="24h")return this.#t;let t=this.#t%12;return t===0?12:t}#x(t){this.#r[t]?.el.focus()}formResetCallback(){let t=c(this.#S);t?(this.#t=t.h,this.#i=t.m,this.#s=t.s):(this.#t=0,this.#i=0,this.#s=0),this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A()}formStateRestoreCallback(t){if(!t)return;let e=c(t);e&&(this.#t=e.h,this.#i=e.m,this.#s=e.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A())}get value(){return d(this.#t,this.#i,this.#s,this.#p)}set value(t){let e=c(t);e&&(this.#t=e.h,this.#i=e.m,this.#s=e.s,this.#h==="12h"&&(this.#o=this.#t>=12?"PM":"AM"),this.#A())}};A("time-picker",f);export{f as TimePicker};
|
|
2
2
|
//# sourceMappingURL=time-picker.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var c=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let e of this.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,t,s,n){e.addEventListener(t,s,n),this.#e.push(()=>e.removeEventListener(t,s,n))}setup(){}teardown(){}};var b=window.matchMedia("(prefers-reduced-motion: reduce)");var l=new Map;function h(o,e,t={}){let s=t.priority??10,n={impl:e,bundle:t.bundle,contract:t.contract,priority:s},i=l.get(o);if(customElements.get(o)){if(!i||i.priority>=s){i&&i.priority===s&&i.impl!==e&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${o}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=s){i.priority===s&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${i.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}l.set(o,n),customElements.define(o,e)}var u=class extends c{#e=[];#t=[];static get observedAttributes(){return["position","max"]}setup(){this.setAttribute("role","region"),this.setAttribute("aria-label","Notifications"),this.setAttribute("aria-live","polite")}teardown(){this.#t.forEach(e=>{e._dismissTimer&&clearTimeout(e._dismissTimer)}),this.#e=[],this.#t=[]}show(e){let{message:t,variant:s="info",duration:n=this.#o(),dismissible:i=!0,action:r,onAction:a}=e,d=this.#r({message:t,variant:s,dismissible:i,action:r,onAction:a}),
|
|
1
|
+
var c=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),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,s,n){e.addEventListener(t,s,n),this.#e.push(()=>e.removeEventListener(t,s,n))}setup(){}teardown(){}};var b=window.matchMedia("(prefers-reduced-motion: reduce)");var l=new Map;function h(o,e,t={}){let s=t.priority??10,n={impl:e,bundle:t.bundle,contract:t.contract,priority:s},i=l.get(o);if(customElements.get(o)){if(!i||i.priority>=s){i&&i.priority===s&&i.impl!==e&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${o}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=s){i.priority===s&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${i.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}l.set(o,n),customElements.define(o,e)}var u=class extends c{#e=[];#t=[];static get observedAttributes(){return["position","max"]}setup(){this.setAttribute("role","region"),this.setAttribute("aria-label","Notifications"),this.setAttribute("aria-live","polite")}teardown(){this.#t.forEach(e=>{e._dismissTimer&&clearTimeout(e._dismissTimer)}),this.#e=[],this.#t=[]}show(e){let{message:t,variant:s="info",duration:n=this.#o(),dismissible:i=!0,action:r,onAction:a}=e,d=this.#r({message:t,variant:s,dismissible:i,action:r,onAction:a}),m=this.#a();return this.#t.length>=m?this.#e.push({toast:d,duration:n}):this.#s(d,n),d}#r({message:e,variant:t,dismissible:s,action:n,onAction:i}){let r=document.createElement("div");r.className="toast",r.setAttribute("role",t==="error"||t==="warning"?"alert":"status"),r.setAttribute("data-variant",t);let a={info:"ⓘ",success:"✓",warning:"⚠",error:"✗"};return r.innerHTML=`
|
|
2
2
|
<span class="icon" aria-hidden="true">${a[t]||a.info}</span>
|
|
3
3
|
<span class="message">${this.#n(e)}</span>
|
|
4
4
|
${n?`<button type="button" class="action">${this.#n(n)}</button>`:""}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
var E=window.matchMedia("(prefers-reduced-motion: reduce)");var f=new Map;function p(i,t,o={}){let e=o.priority??10,r={impl:t,bundle:o.bundle,contract:o.contract,priority:e},n=f.get(i);if(customElements.get(i)){if(!n||n.priority>=e){n&&n.priority===e&&n.impl!==t&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${o.bundle}".`);return}console.warn(`[VB Bundle] Tag <${i}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${o.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=e){n.priority===e&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${n.bundle}". Skipping "${o.bundle}" (first wins at equal priority).`);return}f.set(i,r),customElements.define(i,t)}var m=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let t of this.#e)t();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,o,e,r){t.addEventListener(o,e,r),this.#e.push(()=>t.removeEventListener(o,e,r))}setup(){}teardown(){}};var h={shadow:{prefix:"--shadow-",tokens:"xs,s,m,l,xl,2xl"},radius:{prefix:"--radius-",tokens:"xs,s,m,l,xl,2xl,full"},border:{prefix:"--border-width-",tokens:"thin,medium,thick"},color:{prefix:"--color-",tokens:"primary,secondary,accent,success,warning,error,info"},size:{prefix:"--size-",tokens:"3xs,2xs,xs,s,m,l,xl,2xl,3xl"},icon:{prefix:"",tokens:"home,search,settings,user,bell,heart,star,check,x,chevron-right,menu,trash"}},v={shadow:b,radius:
|
|
1
|
+
var E=window.matchMedia("(prefers-reduced-motion: reduce)");var f=new Map;function p(i,t,o={}){let e=o.priority??10,r={impl:t,bundle:o.bundle,contract:o.contract,priority:e},n=f.get(i);if(customElements.get(i)){if(!n||n.priority>=e){n&&n.priority===e&&n.impl!==t&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${o.bundle}".`);return}console.warn(`[VB Bundle] Tag <${i}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${o.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=e){n.priority===e&&console.warn(`[VB Bundle] Tag <${i}> already registered by "${n.bundle}". Skipping "${o.bundle}" (first wins at equal priority).`);return}f.set(i,r),customElements.define(i,t)}var m=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),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,o,e,r){t.addEventListener(o,e,r),this.#e.push(()=>t.removeEventListener(o,e,r))}setup(){}teardown(){}};var h={shadow:{prefix:"--shadow-",tokens:"xs,s,m,l,xl,2xl"},radius:{prefix:"--radius-",tokens:"xs,s,m,l,xl,2xl,full"},border:{prefix:"--border-width-",tokens:"thin,medium,thick"},color:{prefix:"--color-",tokens:"primary,secondary,accent,success,warning,error,info"},size:{prefix:"--size-",tokens:"3xs,2xs,xs,s,m,l,xl,2xl,3xl"},icon:{prefix:"",tokens:"home,search,settings,user,bell,heart,star,check,x,chevron-right,menu,trash"}},v={shadow:b,radius:g,border:x,color:w,size:$,icon:k},u=class extends m{static observedAttributes=["type","tokens","prefix","show-values","label","size","icon-set","editable","target"];setup(){this.#e()}attributeChangedCallback(){this.isConnected&&this.#e()}#e(){let t=this.getAttribute("type")||"shadow",o=h[t]||h.shadow,e=this.getAttribute("prefix")||o.prefix,r=this.getAttribute("tokens")||o.tokens,n=this.getAttribute("show-values")!=="false",a=this.getAttribute("label")||"",s=r.split(",").map(y=>y.trim()),l=v[t]||v.shadow,c="";a&&(c+=`<p style="font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-muted,#666);margin-block-end:0.75rem;font-family:var(--font-sans,system-ui)">${a}</p>`),c+=l(s,e,n,this),this.innerHTML=c;let d=this.hasAttribute("editable")&&t!=="icon";n&&t!=="icon"?requestAnimationFrame(()=>{this.#n(t,e,s),d&&this.#t(t,e)}):d&&requestAnimationFrame(()=>this.#t(t,e))}#t(t,o){let e=getComputedStyle(this);this.querySelectorAll("[data-token-value]").forEach(r=>{let n=r.dataset.tokenValue,a=e.getPropertyValue(`${o}${n}`).trim(),s=document.createElement("input");s.type=t==="color"&&/^#[0-9a-f]{3,8}$/i.test(a)?"color":"text",s.value=a||"",s.className="ts-edit",s.setAttribute("data-token",n),s.setAttribute("aria-label",`${n} value`),s.style.cssText=`font-family:var(--font-mono,monospace);font-size:0.625rem;padding:0.125rem 0.25rem;border:1px solid var(--color-border,#ccc);border-radius:var(--radius-s,0.25rem);background:var(--color-surface,#fff);color:var(--color-text,#222);inline-size:${t==="color"?"3rem":"100%"};${t==="color"?"block-size:1.5rem;padding:0;":"max-inline-size:8rem;"}`,r.replaceWith(s),this.listen(s,"change",()=>this.#r(s,o)),this.listen(s,"keydown",l=>{l.key==="Enter"&&this.#r(s,o)})})}#r(t,o){let e=t.getAttribute("data-token"),r=t.value.trim();if(!e||!r)return;let n=this.#o(),a=`${o}${e}`;n&&n.style.setProperty(a,r),this.dispatchEvent(new CustomEvent("token-specimen:change",{bubbles:!0,detail:{name:e,value:r,token:a,target:this.getAttribute("target")||":root"}}))}#o(){let t=this.getAttribute("target")||":root";try{return t===":root"?document.documentElement:document.querySelector(t)}catch{return document.documentElement}}#n(t,o,e){let r=getComputedStyle(this);this.querySelectorAll("[data-token-value]").forEach(n=>{let a=n.dataset.tokenValue,s=r.getPropertyValue(`${o}${a}`).trim();if(t==="radius"||t==="size"){let l=this.querySelector(`[data-token-sample="${a}"]`);if(l){let c=t==="radius"?"borderRadius":"width",d=t==="size"?l.getBoundingClientRect().width:null;n.textContent=d!=null?`${Math.round(d*100)/100}px`:s||"\u2014"}}else n.textContent=s||"\u2014"})}};function b(i,t,o){let e='<div role="list" style="display:flex;flex-wrap:wrap;gap:1rem;align-items:end">';for(let r of i)e+=`<div role="listitem" style="text-align:center">
|
|
2
2
|
<div style="width:7rem;height:5rem;background:var(--color-surface,#fff);border-radius:var(--radius-m,0.5rem);box-shadow:var(${t}${r})" aria-hidden="true"></div>
|
|
3
3
|
<p style="font-family:var(--font-mono,monospace);font-size:0.75rem;color:var(--color-text-muted,#666);margin-block-start:0.5rem">${r}</p>
|
|
4
4
|
${o?`<p data-token-value="${r}" style="font-family:var(--font-mono,monospace);font-size:0.625rem;color:var(--color-text-muted,#999);max-width:7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap"></p>`:""}
|
|
5
|
-
</div>`;return e+="</div>",e}function
|
|
5
|
+
</div>`;return e+="</div>",e}function g(i,t,o){let e='<div role="list" style="display:flex;flex-wrap:wrap;gap:1rem;align-items:end">';for(let r of i)e+=`<div role="listitem" style="text-align:center">
|
|
6
6
|
<div data-token-sample="${r}" style="width:4.5rem;height:4.5rem;background:var(--color-primary,oklch(55% 0.2 260));border-radius:var(${t}${r});display:flex;align-items:center;justify-content:center;color:#fff;font-size:0.75rem;font-family:var(--font-mono,monospace)" aria-hidden="true">${r}</div>
|
|
7
7
|
${o?`<p data-token-value="${r}" style="font-family:var(--font-mono,monospace);font-size:0.625rem;color:var(--color-text-muted,#999);margin-block-start:0.25rem"></p>`:""}
|
|
8
|
-
</div>`;return e+="</div>",e}function
|
|
8
|
+
</div>`;return e+="</div>",e}function x(i,t,o){let e='<div role="list" style="display:flex;flex-direction:column;gap:0.75rem">';for(let r of i)e+=`<div role="listitem" style="display:grid;grid-template-columns:4rem 1fr auto;align-items:center;gap:0.75rem">
|
|
9
9
|
<span style="font-family:var(--font-mono,monospace);font-size:0.875rem;color:var(--color-text-muted,#666);text-align:end">${r}</span>
|
|
10
10
|
<div style="border-block-start:var(${t}${r}) solid var(--color-text,#333);min-inline-size:4rem" aria-hidden="true"></div>
|
|
11
11
|
${o?`<span data-token-value="${r}" style="font-family:var(--font-mono,monospace);font-size:0.75rem;color:var(--color-text-muted,#666);font-variant-numeric:tabular-nums"></span>`:""}
|
|
12
|
-
</div>`;return e+="</div>",e}function
|
|
12
|
+
</div>`;return e+="</div>",e}function w(i,t,o){let e='<div role="list" style="display:flex;flex-wrap:wrap;gap:0.75rem">';for(let r of i)e+=`<div role="listitem" style="text-align:center">
|
|
13
13
|
<div style="width:4rem;height:3rem;background:var(${t}${r});border-radius:var(--radius-s,0.25rem);border:1px solid var(--color-border,#ddd)" aria-hidden="true"></div>
|
|
14
14
|
<p style="font-family:var(--font-mono,monospace);font-size:0.625rem;color:var(--color-text-muted,#666);margin-block-start:0.25rem">${r}</p>
|
|
15
15
|
${o?`<p data-token-value="${r}" style="font-family:var(--font-mono,monospace);font-size:0.5625rem;color:var(--color-text-muted,#999);max-width:4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap"></p>`:""}
|
|
16
|
-
</div>`;return e+="</div>",e}function
|
|
16
|
+
</div>`;return e+="</div>",e}function $(i,t,o){let e='<div role="list" style="display:flex;flex-direction:column;gap:0.25rem">';for(let r of i)e+=`<div role="listitem" style="display:grid;grid-template-columns:3rem 1fr auto;align-items:center;gap:0.75rem;min-block-size:1.75rem">
|
|
17
17
|
<span style="font-family:var(--font-mono,monospace);font-size:0.875rem;color:var(--color-text-muted,#666);text-align:end">${r}</span>
|
|
18
18
|
<div data-token-sample="${r}" style="display:block;block-size:var(--size-m,1rem);min-inline-size:2px;inline-size:var(${t}${r});background:var(--color-interactive,oklch(55% 0.2 260));border-radius:var(--radius-s,0.25rem)" aria-hidden="true"></div>
|
|
19
19
|
${o?`<span data-token-value="${r}" style="font-family:var(--font-mono,monospace);font-size:0.75rem;color:var(--color-text-muted,#666);font-variant-numeric:tabular-nums;min-inline-size:3.5rem;text-align:end"></span>`:""}
|
|
20
|
-
</div>`;return e+="</div>",e}function
|
|
20
|
+
</div>`;return e+="</div>",e}function k(i,t,o,e){let r=e?.getAttribute("size")||"md",n=e?.getAttribute("icon-set")||"",a=n?` set="${n}"`:"",s='<div role="list" style="display:flex;flex-wrap:wrap;gap:1rem">';for(let l of i)s+=`<div role="listitem" style="display:flex;flex-direction:column;align-items:center;gap:0.375rem;min-inline-size:4.5rem">
|
|
21
21
|
<span style="display:inline-flex;align-items:center;justify-content:center;padding:var(--size-s,0.75rem);background:var(--color-surface-raised,#f5f5f5);border-radius:var(--radius-s,0.25rem);border:1px solid var(--color-border,#ddd);color:var(--color-text,#222)">
|
|
22
22
|
<icon-wc name="${l}" size="${r}"${a}></icon-wc>
|
|
23
23
|
</span>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var a=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let t of this.#e)t();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,o,n){t.addEventListener(e,o,n),this.#e.push(()=>t.removeEventListener(e,o,n))}setup(){}teardown(){}};var b=window.matchMedia("(prefers-reduced-motion: reduce)");var c=new Map;function d(r,t,e={}){let o=e.priority??10,n={impl:t,bundle:e.bundle,contract:e.contract,priority:o},i=c.get(r);if(customElements.get(r)){if(!i||i.priority>=o){i&&i.priority===o&&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>=o){i.priority===o&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}c.set(r,n),customElements.define(r,t)}var u=CSS.supports("anchor-name","--test"),f=new Set(["BUTTON","A","AREA"]);function p(r){return document.documentElement.hasAttribute("data-interest-polyfill")?!0:"interestForElement"in HTMLButtonElement.prototype?f.has(r.tagName):!1}var l=class extends a{#e;#t;#r;#s;#a=!u;#i=!1;#o=!1;#h;setup(){this.#i=this.getAttribute("variant")==="card",this.#i?this.#b():this.#m()}#m(){if(this.#e=this.querySelector(":scope > :not(template)"),!this.#e)return;this.#o=p(this.#e);let t=this.querySelector(":scope > template[data-tooltip]"),e=this.getAttribute("content"),o=this.#e.getAttribute("title");if(!t&&!e&&!o)return;o&&(this.#h=o,this.#e.removeAttribute("title")),this.#t=document.createElement("div"),this.#t.className="tooltip",this.#t.setAttribute("role","tooltip"),this.#t.setAttribute("popover","hint"),t?this.#t.innerHTML=t.innerHTML:this.#t.textContent=e||o,this.#t.id=`tooltip-${crypto.randomUUID().slice(0,8)}`;let n=this.getAttribute("position")||"top";this.#t.dataset.tooltipPosition=n;let i=document.createElement("span");if(i.className="tooltip-arrow",i.setAttribute("aria-hidden","true"),this.#t.appendChild(i),this.appendChild(this.#t),u){let s=`--tooltip-anchor-${this.#t.id}`;this.#e.style.anchorName=s,this.#t.style.positionAnchor=s,this.#t.setAttribute("data-anchor","")}this.#o?(this.#e.setAttribute("interestfor",this.#t.id),this.#e.hasAttribute("aria-describedby")||this.#e.setAttribute("aria-describedby",this.#t.id),this.#a&&this.listen(this.#t,"toggle",this.#l)):(this.#e.setAttribute("aria-describedby",this.#t.id),this.listen(this.#e,"mouseenter",this.#c),this.listen(this.#e,"mouseleave",this.#n),this.listen(this.#e,"focus",this.#d),this.listen(this.#e,"blur",this.#g),this.listen(this.#t,"mouseenter",this.#u),this.listen(this.#t,"mouseleave",this.#n))}#b(){this.#e=this.querySelector(":scope > [data-trigger]");let t=this.querySelector(":scope > [data-content]");!this.#e||!t||(this.#o=p(this.#e),this.#t=document.createElement("div"),this.#t.className="hover-card",this.#t.setAttribute("popover","manual"),this.#t.id=`hc-${crypto.randomUUID().slice(0,8)}`,this.#t.appendChild(t),t.removeAttribute("data-content"),t.hidden=!1,this.appendChild(this.#t),this.#o?(this.#e.setAttribute("interestfor",this.#t.id),this.listen(this.#t,"toggle",this.#l)):(this.listen(this.#e,"mouseenter",this.#c),this.listen(this.#e,"mouseleave",this.#n),this.listen(this.#e,"focus",this.#d),this.listen(this.#e,"blur",this.#n),this.listen(this.#t,"mouseenter",this.#u),this.listen(this.#t,"mouseleave",this.#n),this.listen(document,"keydown",this.#w)))}teardown(){this.#e&&(this.#o&&this.#e.removeAttribute("interestfor"),this.#h&&(this.#e.setAttribute("title",this.#h),this.#h=void 0)),this.#t&&(this.#t.remove(),this.#t=null),clearTimeout(this.#r),clearTimeout(this.#s)}#l=t=>{t.newState==="open"?(this.#i?this.#f():this.#a&&this.#p(),this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0}))):this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0}))};#c=()=>{clearTimeout(this.#s);let t=this.#i?300:200,e=parseInt(this.getAttribute("delay")||String(t),10);this.#r=setTimeout(()=>this.show(),e)};#n=()=>{clearTimeout(this.#r);let t=this.#i?200:100;this.#s=setTimeout(()=>this.hide(),t)};#d=()=>{clearTimeout(this.#s),this.show()};#g=()=>{clearTimeout(this.#r),this.hide()};#u=()=>{clearTimeout(this.#s)};#w=t=>{t.key==="Escape"&&this.isVisible&&this.hide()};show(){!this.#t||this.isVisible||(this.#t.showPopover(),this.#i?this.#f():this.#a&&this.#p(),this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0})))}hide(){!this.#t||!this.isVisible||(this.#t.hidePopover(),this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0})))}#p(){if(!this.#e||!this.#t)return;let t=this.#e.getBoundingClientRect(),e=this.#t.getBoundingClientRect(),o=this.getAttribute("position")||"top",n=8,i,s;switch(o){case"bottom":i=t.bottom+n,s=t.left+(t.width-e.width)/2;break;case"left":i=t.top+(t.height-e.height)/2,s=t.left-e.width-n;break;case"right":i=t.top+(t.height-e.height)/2,s=t.right+n;break;default:i=t.top-e.height-n,s=t.left+(t.width-e.width)/2;break}let h=8;s=Math.max(h,Math.min(s,window.innerWidth-e.width-h)),i=Math.max(h,Math.min(i,window.innerHeight-e.height-h)),this.#t.style.top=`${i}px`,this.#t.style.left=`${s}px`}#f(){if(!this.#e||!this.#t)return;let t=this.#e.getBoundingClientRect(),e=this.#t.getBoundingClientRect(),o=this.getAttribute("position")||"bottom",n=8,i=8,s,h;h=t.left+(t.width-e.width)/2,h=Math.max(i,Math.min(h,window.innerWidth-e.width-i)),o==="top"?(s=t.top-e.height-n,s<i&&(s=t.bottom+n)):(s=t.bottom+n,s+e.height>window.innerHeight-i&&(s=t.top-e.height-n)),this.#t.style.position="fixed",this.#t.style.top=`${s}px`,this.#t.style.left=`${h}px`}get isVisible(){return this.#t?.matches(":popover-open")??!1}};d("tool-tip",l);export{l as ToolTip};
|
|
1
|
+
var a=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),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,o,n){t.addEventListener(e,o,n),this.#e.push(()=>t.removeEventListener(e,o,n))}setup(){}teardown(){}};var b=window.matchMedia("(prefers-reduced-motion: reduce)");var c=new Map;function d(r,t,e={}){let o=e.priority??10,n={impl:t,bundle:e.bundle,contract:e.contract,priority:o},i=c.get(r);if(customElements.get(r)){if(!i||i.priority>=o){i&&i.priority===o&&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>=o){i.priority===o&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}c.set(r,n),customElements.define(r,t)}var u=CSS.supports("anchor-name","--test"),f=new Set(["BUTTON","A","AREA"]);function p(r){return document.documentElement.hasAttribute("data-interest-polyfill")?!0:"interestForElement"in HTMLButtonElement.prototype?f.has(r.tagName):!1}var l=class extends a{#e;#t;#r;#s;#a=!u;#i=!1;#o=!1;#h;setup(){this.#i=this.getAttribute("variant")==="card",this.#i?this.#b():this.#m()}#m(){if(this.#e=this.querySelector(":scope > :not(template)"),!this.#e)return;this.#o=p(this.#e);let t=this.querySelector(":scope > template[data-tooltip]"),e=this.getAttribute("content"),o=this.#e.getAttribute("title");if(!t&&!e&&!o)return;o&&(this.#h=o,this.#e.removeAttribute("title")),this.#t=document.createElement("div"),this.#t.className="tooltip",this.#t.setAttribute("role","tooltip"),this.#t.setAttribute("popover","hint"),t?this.#t.innerHTML=t.innerHTML:this.#t.textContent=e||o,this.#t.id=`tooltip-${crypto.randomUUID().slice(0,8)}`;let n=this.getAttribute("position")||"top";this.#t.dataset.tooltipPosition=n;let i=document.createElement("span");if(i.className="tooltip-arrow",i.setAttribute("aria-hidden","true"),this.#t.appendChild(i),this.appendChild(this.#t),u){let s=`--tooltip-anchor-${this.#t.id}`;this.#e.style.anchorName=s,this.#t.style.positionAnchor=s,this.#t.setAttribute("data-anchor","")}this.#o?(this.#e.setAttribute("interestfor",this.#t.id),this.#e.hasAttribute("aria-describedby")||this.#e.setAttribute("aria-describedby",this.#t.id),this.#a&&this.listen(this.#t,"toggle",this.#l)):(this.#e.setAttribute("aria-describedby",this.#t.id),this.listen(this.#e,"mouseenter",this.#c),this.listen(this.#e,"mouseleave",this.#n),this.listen(this.#e,"focus",this.#d),this.listen(this.#e,"blur",this.#g),this.listen(this.#t,"mouseenter",this.#u),this.listen(this.#t,"mouseleave",this.#n))}#b(){this.#e=this.querySelector(":scope > [data-trigger]");let t=this.querySelector(":scope > [data-content]");!this.#e||!t||(this.#o=p(this.#e),this.#t=document.createElement("div"),this.#t.className="hover-card",this.#t.setAttribute("popover","manual"),this.#t.id=`hc-${crypto.randomUUID().slice(0,8)}`,this.#t.appendChild(t),t.removeAttribute("data-content"),t.hidden=!1,this.appendChild(this.#t),this.#o?(this.#e.setAttribute("interestfor",this.#t.id),this.listen(this.#t,"toggle",this.#l)):(this.listen(this.#e,"mouseenter",this.#c),this.listen(this.#e,"mouseleave",this.#n),this.listen(this.#e,"focus",this.#d),this.listen(this.#e,"blur",this.#n),this.listen(this.#t,"mouseenter",this.#u),this.listen(this.#t,"mouseleave",this.#n),this.listen(document,"keydown",this.#w)))}teardown(){this.#e&&(this.#o&&this.#e.removeAttribute("interestfor"),this.#h&&(this.#e.setAttribute("title",this.#h),this.#h=void 0)),this.#t&&(this.#t.remove(),this.#t=null),clearTimeout(this.#r),clearTimeout(this.#s)}#l=t=>{t.newState==="open"?(this.#i?this.#f():this.#a&&this.#p(),this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0}))):this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0}))};#c=()=>{clearTimeout(this.#s);let t=this.#i?300:200,e=parseInt(this.getAttribute("delay")||String(t),10);this.#r=setTimeout(()=>this.show(),e)};#n=()=>{clearTimeout(this.#r);let t=this.#i?200:100;this.#s=setTimeout(()=>this.hide(),t)};#d=()=>{clearTimeout(this.#s),this.show()};#g=()=>{clearTimeout(this.#r),this.hide()};#u=()=>{clearTimeout(this.#s)};#w=t=>{t.key==="Escape"&&this.isVisible&&this.hide()};show(){!this.#t||this.isVisible||(this.#t.showPopover(),this.#i?this.#f():this.#a&&this.#p(),this.dispatchEvent(new CustomEvent("tool-tip:show",{bubbles:!0})))}hide(){!this.#t||!this.isVisible||(this.#t.hidePopover(),this.dispatchEvent(new CustomEvent("tool-tip:hide",{bubbles:!0})))}#p(){if(!this.#e||!this.#t)return;let t=this.#e.getBoundingClientRect(),e=this.#t.getBoundingClientRect(),o=this.getAttribute("position")||"top",n=8,i,s;switch(o){case"bottom":i=t.bottom+n,s=t.left+(t.width-e.width)/2;break;case"left":i=t.top+(t.height-e.height)/2,s=t.left-e.width-n;break;case"right":i=t.top+(t.height-e.height)/2,s=t.right+n;break;default:i=t.top-e.height-n,s=t.left+(t.width-e.width)/2;break}let h=8;s=Math.max(h,Math.min(s,window.innerWidth-e.width-h)),i=Math.max(h,Math.min(i,window.innerHeight-e.height-h)),this.#t.style.top=`${i}px`,this.#t.style.left=`${s}px`}#f(){if(!this.#e||!this.#t)return;let t=this.#e.getBoundingClientRect(),e=this.#t.getBoundingClientRect(),o=this.getAttribute("position")||"bottom",n=8,i=8,s,h;h=t.left+(t.width-e.width)/2,h=Math.max(i,Math.min(h,window.innerWidth-e.width-i)),o==="top"?(s=t.top-e.height-n,s<i&&(s=t.bottom+n)):(s=t.bottom+n,s+e.height>window.innerHeight-i&&(s=t.top-e.height-n)),this.#t.style.position="fixed",this.#t.style.top=`${s}px`,this.#t.style.left=`${h}px`}get isVisible(){return this.#t?.matches(":popover-open")??!1}};d("tool-tip",l);export{l as ToolTip};
|
|
2
2
|
//# sourceMappingURL=tool-tip.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
var
|
|
2
|
-
`)}#
|
|
1
|
+
var N=window.matchMedia("(prefers-reduced-motion: reduce)");var L=new Map;function v(a,s,e={}){let n=e.priority??10,c={impl:s,bundle:e.bundle,contract:e.contract,priority:n},o=L.get(a);if(customElements.get(a)){if(!o||o.priority>=n){o&&o.priority===n&&o.impl!==s&&console.warn(`[VB Bundle] Tag <${a}> already registered by "${o.bundle}" (priority ${o.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${a}> defined by "${o.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(o&&o.priority>=n){o.priority===n&&console.warn(`[VB Bundle] Tag <${a}> already registered by "${o.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}L.set(a,c),customElements.define(a,s)}var A=class extends HTMLElement{#t=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let s of this.#t)s();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(s,e,n,c){s.addEventListener(e,n,c),this.#t.push(()=>s.removeEventListener(e,n,c))}setup(){}teardown(){}};var S=class extends A{setup(){let s=this.getAttribute("data-lens-src")||this.getAttribute("src"),e=this.getAttribute("data-vocabulary-src")||"/vocabulary.json";s?this.#t(s,e).catch(()=>{}):this.#n()}async#t(s,e){let[n,c]=await Promise.all([this.#e(s),this.#e(e)]);if(n.error){this.#o(`Could not load ${s}: ${n.error}`);return}if(c.error){this.#o(`Could not load ${e}: ${c.error}`);return}let o=Array.isArray(n.data)?n.data:n.data.pages||[],u=c.data;this.#r(o,u),this.#n()}async#e(s){try{let e=await fetch(s);if(!e.ok)throw new Error(`status ${e.status}`);return{data:await e.json()}}catch(e){return{error:e.message}}}#r(s,e){let n=Array.isArray(e?.concepts)?e.concepts:[],c=Array.isArray(e?.["skos:hasTopConcept"])?e["skos:hasTopConcept"]:[],o=new Map;for(let t of n)t&&t["@id"]&&o.set(t["@id"],t);let u=new Map,p=new Map;function w(t,r){!t||!r||!o.has(t)||!o.has(r)||(u.has(t)||u.set(t,new Set),u.get(t).add(r),p.has(r)||p.set(r,new Set),p.get(r).add(t))}for(let t of n){let r=t["@id"],y=T(t["skos:broader"]);for(let $ of y)w($,r);let d=T(t["skos:narrower"]);for(let $ of d)w(r,$)}let h=new Map,m=[];for(let t of s){let r=Array.isArray(t.concepts)?t.concepts:[];if(r.length===0){m.push(t);continue}let y=!1;for(let d of r)o.has(d)&&(h.has(d)||h.set(d,[]),h.get(d).push(t),y=!0);y||m.push(t)}let b=new Map,g=new Set;function k(t){if(b.has(t))return b.get(t);if(g.has(t))return 0;g.add(t);let r=(h.get(t)||[]).length,y=0,d=u.get(t);if(d)for(let x of d)y+=k(x);g.delete(t);let $=r+y;return b.set(t,$),$}let i=c.filter(t=>o.has(t));i.length===0&&(i=n.map(t=>t["@id"]).filter(t=>t&&!p.has(t)));let f=this.hasAttribute("expand-all"),l=[`<h2 class="topic-map-heading">Topics <small>(${s.length} pages)</small></h2>`];for(let t of i)l.push(this.#s(t,o,u,h,k,f,0));if(m.length){let t=f?" open":"";l.push(`<details${t} data-topic-node="__uncategorized">`),l.push(`<summary><span class="topic-name">Uncategorized</span> <span class="topic-count">${m.length}</span></summary>`),l.push('<ul class="topic-pages">');for(let r of m)l.push(`<li><a href="${M(r.url)}">${C(r.title||r.url)}</a></li>`);l.push("</ul>"),l.push("</details>")}this.innerHTML=l.join(`
|
|
2
|
+
`)}#s(s,e,n,c,o,u,p){let w=e.get(s);if(!w)return"";let h=w["skos:prefLabel"]||s,m=o(s),b=c.get(s)||[],g=n.get(s),k=u||p<1?" open":"",i=[];if(i.push(`<details${k} data-topic-node="${M(s)}">`),i.push(`<summary><a class="topic-name" href="/topics/${M(s)}/">${C(h)}</a> <span class="topic-count">${m}</span></summary>`),b.length){i.push('<ul class="topic-pages">');for(let f of b)i.push(`<li><a href="${M(f.url)}">${C(f.title||f.url)}</a></li>`);i.push("</ul>")}if(g&&g.size){let f=[...g].sort((E,l)=>{let t=(e.get(E)?.["skos:prefLabel"]||E).toLowerCase(),r=(e.get(l)?.["skos:prefLabel"]||l).toLowerCase();return t.localeCompare(r)});for(let E of f)i.push(this.#s(E,e,n,c,o,u,p+1))}return i.push("</details>"),i.join(`
|
|
3
|
+
`)}#o(s){if(this.children.length>0)return;let e=document.createElement("p");e.setAttribute("data-topic-map-error",""),e.textContent=s,this.append(e)}#n(){}};function T(a){return a==null?[]:Array.isArray(a)?a:[a]}function C(a){return String(a??"").replace(/[&<>]/g,s=>({"&":"&","<":"<",">":">"})[s])}function M(a){return String(a??"").replace(/[&<>"]/g,s=>({"&":"&","<":"<",">":">",'"':"""})[s])}v("topic-map",S);export{S as TopicMap};
|
|
3
4
|
//# sourceMappingURL=topic-map.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var m=window.matchMedia("(prefers-reduced-motion: reduce)");var d=new Map;function f(r,n,e={}){let t=e.priority??10,o={impl:n,bundle:e.bundle,contract:e.contract,priority:t},s=d.get(r);if(customElements.get(r)){if(!s||s.priority>=t){s&&s.priority===t&&s.impl!==n&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=t){s.priority===t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${s.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}d.set(r,o),customElements.define(r,n)}var
|
|
2
|
-
`),this.querySelector("form").addEventListener("change",t=>{if(t.target.matches('input[type="checkbox"]')){let o=t.target.getAttribute("data-dim"),s=t.target.value,i=this.#e[o];t.target.checked?i.add(s):i.delete(s),this.#n()}}),this.querySelector("form").addEventListener("reset",()=>{for(let t of Object.values(this.#e))t.clear();setTimeout(()=>this.#n(),0)})}#s(n){let e=new Set;for(let t of this.#t){let o=t[n];if(o)if(n==="provenance")for(let s of String(o).split(/\s+/).filter(Boolean))e.add(s);else e.add(o)}return[...e].sort()}#a(n){if(this.#e.provenance.size&&!(n.provenance||"").split(/\s+/).filter(Boolean).some(t=>this.#e.provenance.has(t))||this.#e.review.size&&!this.#e.review.has(n.review)||this.#e.status.size&&!this.#e.status.has(n.status))return!1;if(this.#e.signed.size){let e=this.#e.signed,t=!!n.signed;if(e.has("yes")&&!t||e.has("no")&&t)return!1;e.has("yes")&&e.has("no")}return!0}#n(){let n=this.querySelector("[data-trust-filter-results]");if(!n)return;let e=this.#t.filter(s=>this.#a(s)),t=[];if(t.push(`<p class="trust-filter-count">${e.length} of ${this.#t.length} pages</p>`),e.length){t.push('<ul class="trust-filter-list">');for(let s of e){let i=[s.provenance?`<span class="trust-filter-prov" data-provenance="${
|
|
3
|
-
`);let o={};for(let[s,i]of Object.entries(this.#e))o[s]=[...i];this.dispatchEvent(new CustomEvent("trust-filter:change",{detail:{selected:o,count:e.length},bubbles:!0}))}#r(n){let e=document.createElement("p");e.setAttribute("data-trust-filter-error",""),e.textContent=n,this.innerHTML="",this.append(e)}};function a(r){return String(r??"").replace(/[&<>]/g,n=>({"&":"&","<":"<",">":">"})[n])}function
|
|
1
|
+
var m=window.matchMedia("(prefers-reduced-motion: reduce)");var d=new Map;function f(r,n,e={}){let t=e.priority??10,o={impl:n,bundle:e.bundle,contract:e.contract,priority:t},s=d.get(r);if(customElements.get(r)){if(!s||s.priority>=t){s&&s.priority===t&&s.impl!==n&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=t){s.priority===t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${s.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}d.set(r,o),customElements.define(r,n)}var l=class extends HTMLElement{#t=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let n of this.#t)n();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(n,e,t,o){n.addEventListener(e,t,o),this.#t.push(()=>n.removeEventListener(e,t,o))}setup(){}teardown(){}};var u=class extends l{#t=[];#e={provenance:new Set,review:new Set,status:new Set,signed:new Set};setup(){let n=this.getAttribute("data-lens-src")||this.getAttribute("src");if(!n){this.#r("No data source \u2014 set data-lens-src or src to a pages.json URL.");return}this.#o(n).catch(()=>{})}async#o(n){let e;try{let t=await fetch(n);if(!t.ok)throw new Error(`status ${t.status}`);e=await t.json()}catch(t){this.#r(`Could not load ${n}: ${t.message}`);return}this.#t=Array.isArray(e)?e:e.pages||[],this.#i(),this.#n()}#i(){let n=[{key:"provenance",label:"How was it made",values:this.#s("provenance")},{key:"review",label:"Review",values:this.#s("review")},{key:"status",label:"Status",values:this.#s("status")},{key:"signed",label:"Signed",values:["yes","no"]}],e=['<form data-trust-filter-controls aria-label="Filter pages">'];for(let t of n)if(t.values.length!==0){e.push(`<fieldset data-dim="${t.key}"><legend>${a(t.label)}</legend>`);for(let o of t.values){let s=`tf-${t.key}-${h(o)}`;e.push(`<label for="${s}"><input type="checkbox" id="${s}" data-dim="${c(t.key)}" value="${c(o)}"> <span>${a(p(o))}</span></label>`)}e.push("</fieldset>")}e.push('<button type="reset" class="ghost">Clear all</button>'),e.push("</form>"),e.push('<output data-trust-filter-results aria-live="polite"></output>'),this.innerHTML=e.join(`
|
|
2
|
+
`),this.querySelector("form").addEventListener("change",t=>{if(t.target.matches('input[type="checkbox"]')){let o=t.target.getAttribute("data-dim"),s=t.target.value,i=this.#e[o];t.target.checked?i.add(s):i.delete(s),this.#n()}}),this.querySelector("form").addEventListener("reset",()=>{for(let t of Object.values(this.#e))t.clear();setTimeout(()=>this.#n(),0)})}#s(n){let e=new Set;for(let t of this.#t){let o=t[n];if(o)if(n==="provenance")for(let s of String(o).split(/\s+/).filter(Boolean))e.add(s);else e.add(o)}return[...e].sort()}#a(n){if(this.#e.provenance.size&&!(n.provenance||"").split(/\s+/).filter(Boolean).some(t=>this.#e.provenance.has(t))||this.#e.review.size&&!this.#e.review.has(n.review)||this.#e.status.size&&!this.#e.status.has(n.status))return!1;if(this.#e.signed.size){let e=this.#e.signed,t=!!n.signed;if(e.has("yes")&&!t||e.has("no")&&t)return!1;e.has("yes")&&e.has("no")}return!0}#n(){let n=this.querySelector("[data-trust-filter-results]");if(!n)return;let e=this.#t.filter(s=>this.#a(s)),t=[];if(t.push(`<p class="trust-filter-count">${e.length} of ${this.#t.length} pages</p>`),e.length){t.push('<ul class="trust-filter-list">');for(let s of e){let i=[s.provenance?`<span class="trust-filter-prov" data-provenance="${c(s.provenance)}">${a(s.provenance)}</span>`:"",s.review&&s.review!=="unreviewed"?`<span>${a(s.review)}</span>`:"",s.status&&s.status!=="published"?`<span>${a(s.status)}</span>`:"",s.signed?'<span class="trust-filter-signed">signed</span>':""].filter(Boolean).join(" \xB7 ");t.push(`<li><a href="${c(s.url)}">${a(s.title||s.url)}</a>${i?`<small>${i}</small>`:""}</li>`)}t.push("</ul>")}n.innerHTML=t.join(`
|
|
3
|
+
`);let o={};for(let[s,i]of Object.entries(this.#e))o[s]=[...i];this.dispatchEvent(new CustomEvent("trust-filter:change",{detail:{selected:o,count:e.length},bubbles:!0}))}#r(n){let e=document.createElement("p");e.setAttribute("data-trust-filter-error",""),e.textContent=n,this.innerHTML="",this.append(e)}};function a(r){return String(r??"").replace(/[&<>]/g,n=>({"&":"&","<":"<",">":">"})[n])}function c(r){return String(r??"").replace(/[&<>"]/g,n=>({"&":"&","<":"<",">":">",'"':"""})[n])}function h(r){return String(r).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function p(r){return String(r).replace(/-/g," ").replace(/\b\w/g,n=>n.toUpperCase())}f("trust-filter",u);export{u as TrustFilter};
|
|
4
4
|
//# sourceMappingURL=trust-filter.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var w=window.matchMedia("(prefers-reduced-motion: reduce)");var p=new Map;function u(r,e,s={}){let n=s.priority??10,o={impl:e,bundle:s.bundle,contract:s.contract,priority:n},i=p.get(r);if(customElements.get(r)){if(!i||i.priority>=n){i&&i.priority===n&&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>=n){i.priority===n&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}". Skipping "${s.bundle}" (first wins at equal priority).`);return}p.set(r,o),customElements.define(r,e)}var l=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let e of this.#e)e();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,s,n,o){e.addEventListener(s,n,o),this.#e.push(()=>e.removeEventListener(s,n,o))}setup(){}teardown(){}};var b=["system-ui","Georgia","Inter, sans-serif",'"JetBrains Mono", monospace',"Verdana","Cambria","ui-serif"],c=class extends l{static observedAttributes=["font-family","label","sample","show-scale","show-weights","show-characters","weights","editable","target","token"];setup(){this.#e(),this.#t()}attributeChangedCallback(){this.isConnected&&(this.#e(),this.#t())}#e(){let e=this.getAttribute("font-family")||"system-ui",s=this.getAttribute("label")||e.replace(/['"]/g,"").split(",")[0],n=this.getAttribute("sample")||"The quick brown fox jumps over the lazy dog",o=this.hasAttribute("show-scale"),i=this.hasAttribute("show-weights"),m=this.hasAttribute("show-characters"),f=(this.getAttribute("weights")||"300,400,500,600,700").split(",").map(t=>t.trim()),a="",h=this.hasAttribute("editable")?`<input type="text" class="specimen-font-input" value="${e.replace(/"/g,""")}" aria-label="Font family" style="font:inherit;padding:0.25rem 0.5rem;border:1px solid var(--color-border,#ccc);border-radius:var(--radius-s,0.25rem);min-inline-size:18rem;max-inline-size:100%;font-family:${e};font-size:var(--font-size-sm,0.875rem)">
|
|
1
|
+
var w=window.matchMedia("(prefers-reduced-motion: reduce)");var p=new Map;function u(r,e,s={}){let n=s.priority??10,o={impl:e,bundle:s.bundle,contract:s.contract,priority:n},i=p.get(r);if(customElements.get(r)){if(!i||i.priority>=n){i&&i.priority===n&&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>=n){i.priority===n&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${i.bundle}". Skipping "${s.bundle}" (first wins at equal priority).`);return}p.set(r,o),customElements.define(r,e)}var l=class extends HTMLElement{#e=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),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,n,o){e.addEventListener(s,n,o),this.#e.push(()=>e.removeEventListener(s,n,o))}setup(){}teardown(){}};var b=["system-ui","Georgia","Inter, sans-serif",'"JetBrains Mono", monospace',"Verdana","Cambria","ui-serif"],c=class extends l{static observedAttributes=["font-family","label","sample","show-scale","show-weights","show-characters","weights","editable","target","token"];setup(){this.#e(),this.#t()}attributeChangedCallback(){this.isConnected&&(this.#e(),this.#t())}#e(){let e=this.getAttribute("font-family")||"system-ui",s=this.getAttribute("label")||e.replace(/['"]/g,"").split(",")[0],n=this.getAttribute("sample")||"The quick brown fox jumps over the lazy dog",o=this.hasAttribute("show-scale"),i=this.hasAttribute("show-weights"),m=this.hasAttribute("show-characters"),f=(this.getAttribute("weights")||"300,400,500,600,700").split(",").map(t=>t.trim()),a="",h=this.hasAttribute("editable")?`<input type="text" class="specimen-font-input" value="${e.replace(/"/g,""")}" aria-label="Font family" style="font:inherit;padding:0.25rem 0.5rem;border:1px solid var(--color-border,#ccc);border-radius:var(--radius-s,0.25rem);min-inline-size:18rem;max-inline-size:100%;font-family:${e};font-size:var(--font-size-sm,0.875rem)">
|
|
2
2
|
<span class="specimen-quick" style="display:inline-flex;flex-wrap:wrap;gap:0.25rem;margin-inline-start:0.5rem">
|
|
3
3
|
${b.map(t=>`<button type="button" class="specimen-quick-btn" data-font="${t.replace(/"/g,""")}" style="font:inherit;font-size:var(--font-size-xs,0.75rem);padding:0.125rem 0.5rem;border:1px solid var(--color-border,#ccc);border-radius:999px;background:var(--color-surface,#fff);color:var(--color-text,#222);cursor:pointer">${t.split(",")[0].replace(/["']/g,"")}</button>`).join("")}
|
|
4
4
|
</span>`:`<span class="specimen-label">${s}</span>`;if(a+=`<div class="specimen-header" style="font-family:${e}">
|