vanilla-breeze 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +25084 -6649
- package/dist/cdn/components/accessibility-specimen.js +11 -0
- package/dist/cdn/components/accordion-wc.js +1 -1
- package/dist/cdn/components/activity-feed.js +2 -0
- package/dist/cdn/components/adr-wc.js +17 -17
- package/dist/cdn/components/ai-chat.js +28 -0
- package/dist/cdn/components/ai-summary.js +10 -0
- package/dist/cdn/components/analytics-panel.js +5 -5
- package/dist/cdn/components/audio-player.js +3 -3
- package/dist/cdn/components/audio-visualizer.js +2 -2
- package/dist/cdn/components/author-index.js +2 -2
- package/dist/cdn/components/brand-mark.js +1 -1
- package/dist/cdn/components/bread-crumb.js +2 -0
- package/dist/cdn/components/breakpoint-specimen.js +26 -0
- package/dist/cdn/components/burndown-chart.js +2 -0
- package/dist/cdn/components/calendar-wc.js +2 -2
- package/dist/cdn/components/capacity-plan.js +25 -0
- 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 +2 -2
- package/dist/cdn/components/chart-wc.js +58 -36
- 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 +9 -9
- 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-box.js +60 -0
- package/dist/cdn/components/comment-thread.js +60 -0
- 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 +2 -2
- 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/diagram-wc.js +3 -0
- 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/empathy-map.js +41 -43
- package/dist/cdn/components/flow-diagram.js +1 -1
- package/dist/cdn/components/font-pairer.js +81 -81
- 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 +25 -23
- 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 +29 -29
- package/dist/cdn/components/heading-links.js +1 -1
- package/dist/cdn/components/highlight-wc.js +2 -2
- package/dist/cdn/components/icon-wc.js +4 -4
- 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/iron-triangle.js +2 -0
- package/dist/cdn/components/kanban-board.js +1 -1
- package/dist/cdn/components/layout-specimen.js +35 -0
- package/dist/cdn/components/manifest.json +227 -103
- package/dist/cdn/components/markdown-editor.js +1 -1
- package/dist/cdn/components/markdown-viewer.js +12 -12
- package/dist/cdn/components/motion-specimen.js +12 -12
- package/dist/cdn/components/nav-bar.js +2 -0
- package/dist/cdn/components/note-wc.js +2 -2
- package/dist/cdn/components/notification-wc.js +4 -4
- package/dist/cdn/components/page-info.js +4 -4
- 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 +6 -6
- package/dist/cdn/components/pager-wc.js +2 -0
- package/dist/cdn/components/palette-generator.js +11 -11
- package/dist/cdn/components/poll-wc.js +2 -0
- package/dist/cdn/components/pop-over.js +2 -0
- package/dist/cdn/components/popularity-index.js +2 -2
- package/dist/cdn/components/print-page.js +1 -1
- package/dist/cdn/components/product-roadmap.js +3 -0
- package/dist/cdn/components/progress-tracker.js +2 -0
- package/dist/cdn/components/qr-code.js +1 -1
- package/dist/cdn/components/quadrant-grid.js +3 -0
- package/dist/cdn/components/quality-target.js +12 -0
- package/dist/cdn/components/reaction-bar.js +2 -0
- package/dist/cdn/components/reader-view.js +3 -3
- package/dist/cdn/components/reading-progress.js +2 -0
- package/dist/cdn/components/recently-visited.js +10 -10
- package/dist/cdn/components/requirement-card.js +122 -0
- package/dist/cdn/components/review-surface.js +34 -40
- package/dist/cdn/components/risk-register.js +25 -0
- package/dist/cdn/components/roadmap.js +3 -0
- package/dist/cdn/components/score-card.js +197 -0
- package/dist/cdn/components/selection-menu.js +1 -1
- package/dist/cdn/components/semantic-palette.js +15 -15
- package/dist/cdn/components/settings-panel.js +12 -12
- package/dist/cdn/components/share-wc.js +2 -2
- package/dist/cdn/components/short-cuts.js +1 -1
- package/dist/cdn/components/site-index.js +4 -4
- 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 +9 -9
- 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 +5 -5
- package/dist/cdn/components/split-surface.js +1 -1
- package/dist/cdn/components/star-rating.js +1 -1
- package/dist/cdn/components/status-wc.js +2 -0
- package/dist/cdn/components/stepper-wc.js +2 -0
- 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-catalog.js +28 -0
- package/dist/cdn/components/theme-export.js +20 -12
- package/dist/cdn/components/theme-import.js +44 -0
- package/dist/cdn/components/theme-picker.js +29 -26
- package/dist/cdn/components/time-index.js +2 -2
- package/dist/cdn/components/time-picker.js +1 -1
- package/dist/cdn/components/toast-msg.js +3 -3
- package/dist/cdn/components/token-specimen.js +14 -14
- package/dist/cdn/components/tool-tip.js +1 -1
- package/dist/cdn/components/topic-map.js +3 -3
- package/dist/cdn/components/traceability-matrix.js +3 -0
- package/dist/cdn/components/trust-filter.js +3 -3
- package/dist/cdn/components/type-specimen.js +15 -15
- package/dist/cdn/components/user-journey.js +63 -70
- package/dist/cdn/components/user-persona.js +75 -13
- package/dist/cdn/components/user-story.js +12 -11
- package/dist/cdn/components/version-switcher.js +17 -0
- package/dist/cdn/components/video-player.js +3 -3
- 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 +29 -28
- package/dist/cdn/components/youtube-player.js +1 -1
- package/dist/cdn/icons/bold.css +17 -0
- package/dist/cdn/icons/bold.json +1 -0
- package/dist/cdn/icons/custom.css +6 -0
- package/dist/cdn/icons/custom.json +1 -0
- package/dist/cdn/icons/lucide.css +1914 -0
- package/dist/cdn/icons/lucide.json +1 -0
- package/dist/cdn/icons/mage.css +17 -0
- package/dist/cdn/icons/mage.json +1 -0
- package/dist/cdn/icons/phosphor.css +17 -0
- package/dist/cdn/icons/phosphor.json +1 -0
- package/dist/cdn/icons/tabler.css +17 -0
- package/dist/cdn/icons/tabler.json +1 -0
- package/dist/cdn/packs/design-system.full.js +59 -51
- package/dist/cdn/packs/effects.full.js +1 -1
- package/dist/cdn/packs/icons.effects.js +1 -1
- package/dist/cdn/packs/icons.full.js +1 -1
- package/dist/cdn/packs/kawaii.full.css +1 -1
- package/dist/cdn/packs/kawaii.full.js +6 -6
- package/dist/cdn/packs/kawaii.theme.css +1 -1
- package/dist/cdn/packs/manifest.json +11 -11
- package/dist/cdn/packs/ui.full.css +1 -1
- package/dist/cdn/packs/ui.full.js +54 -51
- package/dist/cdn/packs/ux-planning.full.css +1 -1
- package/dist/cdn/packs/ux-planning.full.js +318 -243
- package/dist/cdn/themes/8bit.css +1 -1
- package/dist/cdn/themes/8bit.tokens.json +662 -0
- package/dist/cdn/themes/alpha1999-dark.tokens.json +693 -0
- package/dist/cdn/themes/alpha1999.css +1 -1
- package/dist/cdn/themes/alpha1999.tokens.json +869 -0
- package/dist/cdn/themes/anthropic.css +2 -0
- package/dist/cdn/themes/anthropic.tokens.json +564 -0
- package/dist/cdn/themes/art-deco-dark.tokens.json +407 -0
- package/dist/cdn/themes/art-deco.css +1 -1
- package/dist/cdn/themes/art-deco.tokens.json +581 -0
- package/dist/cdn/themes/bauhaus-dark.tokens.json +260 -0
- package/dist/cdn/themes/bauhaus.css +1 -1
- package/dist/cdn/themes/bauhaus.tokens.json +589 -0
- package/dist/cdn/themes/brutalist-dark.tokens.json +503 -0
- package/dist/cdn/themes/brutalist.tokens.json +677 -0
- package/dist/cdn/themes/catalog/atlassian.tokens.json +303 -0
- package/dist/cdn/themes/catalog/bootstrap.tokens.json +304 -0
- package/dist/cdn/themes/catalog/carbon.tokens.json +301 -0
- package/dist/cdn/themes/catalog/catppuccin-mocha.tokens.json +301 -0
- package/dist/cdn/themes/catalog/govuk.tokens.json +301 -0
- package/dist/cdn/themes/catalog/manifest.json +132 -0
- package/dist/cdn/themes/catalog/material.tokens.json +289 -0
- package/dist/cdn/themes/catalog/salesforce.tokens.json +301 -0
- package/dist/cdn/themes/catalog/tailwind.tokens.json +302 -0
- package/dist/cdn/themes/catppuccin-frappe.css +1 -1
- package/dist/cdn/themes/catppuccin-frappe.tokens.json +608 -0
- package/dist/cdn/themes/catppuccin-latte-dark.tokens.json +472 -0
- package/dist/cdn/themes/catppuccin-latte.css +1 -1
- package/dist/cdn/themes/catppuccin-latte.tokens.json +608 -0
- package/dist/cdn/themes/catppuccin-macchiato.css +1 -1
- package/dist/cdn/themes/catppuccin-macchiato.tokens.json +608 -0
- package/dist/cdn/themes/catppuccin-mocha.tokens.json +608 -0
- package/dist/cdn/themes/classic-dark.tokens.json +503 -0
- package/dist/cdn/themes/classic.tokens.json +640 -0
- package/dist/cdn/themes/claymorphism-dark.tokens.json +493 -0
- package/dist/cdn/themes/claymorphism.css +1 -1
- package/dist/cdn/themes/claymorphism.tokens.json +626 -0
- package/dist/cdn/themes/clinical-dark.tokens.json +472 -0
- package/dist/cdn/themes/clinical.tokens.json +608 -0
- package/dist/cdn/themes/cottagecore-dark.tokens.json +412 -0
- package/dist/cdn/themes/cottagecore.css +1 -1
- package/dist/cdn/themes/cottagecore.tokens.json +544 -0
- package/dist/cdn/themes/cyber.tokens.json +668 -0
- package/dist/cdn/themes/dawn-dark.tokens.json +472 -0
- package/dist/cdn/themes/dawn.css +1 -1
- package/dist/cdn/themes/dawn.tokens.json +608 -0
- package/dist/cdn/themes/dracula.tokens.json +534 -0
- package/dist/cdn/themes/dusk.tokens.json +533 -0
- package/dist/cdn/themes/editorial-dark.tokens.json +400 -0
- package/dist/cdn/themes/editorial.tokens.json +690 -0
- package/dist/cdn/themes/financial-dark.tokens.json +472 -0
- package/dist/cdn/themes/financial.css +1 -1
- package/dist/cdn/themes/financial.tokens.json +607 -0
- package/dist/cdn/themes/genai.tokens.json +534 -0
- package/dist/cdn/themes/glassmorphism-dark.tokens.json +489 -0
- package/dist/cdn/themes/glassmorphism.css +1 -1
- package/dist/cdn/themes/glassmorphism.tokens.json +632 -0
- package/dist/cdn/themes/government-dark.tokens.json +472 -0
- package/dist/cdn/themes/government.tokens.json +608 -0
- package/dist/cdn/themes/gruvbox-dark.tokens.json +472 -0
- package/dist/cdn/themes/gruvbox.tokens.json +608 -0
- package/dist/cdn/themes/high-noon-dark.tokens.json +397 -0
- package/dist/cdn/themes/high-noon.tokens.json +533 -0
- package/dist/cdn/themes/ibm.css +2 -0
- package/dist/cdn/themes/ibm.tokens.json +568 -0
- package/dist/cdn/themes/kawaii-dark.tokens.json +549 -0
- package/dist/cdn/themes/kawaii.css +1 -1
- package/dist/cdn/themes/kawaii.tokens.json +641 -0
- package/dist/cdn/themes/magna-dark.tokens.json +482 -0
- package/dist/cdn/themes/magna.css +1 -1
- package/dist/cdn/themes/magna.tokens.json +632 -0
- package/dist/cdn/themes/manifest.json +162 -62
- package/dist/cdn/themes/mcdonalds.css +2 -0
- package/dist/cdn/themes/mcdonalds.tokens.json +533 -0
- package/dist/cdn/themes/midnight.tokens.json +534 -0
- package/dist/cdn/themes/minimal-dark.tokens.json +294 -0
- package/dist/cdn/themes/minimal.tokens.json +494 -0
- package/dist/cdn/themes/modern-dark.tokens.json +490 -0
- package/dist/cdn/themes/modern.tokens.json +573 -0
- package/dist/cdn/themes/nes-dark.tokens.json +564 -0
- package/dist/cdn/themes/nes.css +1 -1
- package/dist/cdn/themes/nes.tokens.json +687 -0
- package/dist/cdn/themes/neumorphism-dark.tokens.json +471 -0
- package/dist/cdn/themes/neumorphism.css +1 -1
- package/dist/cdn/themes/neumorphism.tokens.json +589 -0
- package/dist/cdn/themes/nord-dark.tokens.json +484 -0
- package/dist/cdn/themes/nord.tokens.json +619 -0
- package/dist/cdn/themes/organic-dark.tokens.json +532 -0
- package/dist/cdn/themes/organic.tokens.json +685 -0
- package/dist/cdn/themes/rose-pine-dark.tokens.json +472 -0
- package/dist/cdn/themes/rose-pine.tokens.json +608 -0
- package/dist/cdn/themes/rough-dark.tokens.json +515 -0
- package/dist/cdn/themes/rough.css +1 -1
- package/dist/cdn/themes/rough.tokens.json +650 -0
- package/dist/cdn/themes/solarized-dark.tokens.json +397 -0
- package/dist/cdn/themes/solarized.tokens.json +532 -0
- package/dist/cdn/themes/starbucks.css +2 -0
- package/dist/cdn/themes/starbucks.tokens.json +593 -0
- package/dist/cdn/themes/startup-dark.tokens.json +522 -0
- package/dist/cdn/themes/startup.css +1 -1
- package/dist/cdn/themes/startup.tokens.json +607 -0
- package/dist/cdn/themes/super2026-dark.tokens.json +667 -0
- package/dist/cdn/themes/super2026.tokens.json +863 -0
- package/dist/cdn/themes/swiss-dark.tokens.json +390 -0
- package/dist/cdn/themes/swiss.tokens.json +750 -0
- package/dist/cdn/themes/terminal.css +1 -1
- package/dist/cdn/themes/terminal.tokens.json +689 -0
- package/dist/cdn/themes/tokyo-night-dark.tokens.json +472 -0
- package/dist/cdn/themes/tokyo-night.tokens.json +608 -0
- package/dist/cdn/themes/vaporwave-dark.tokens.json +413 -0
- package/dist/cdn/themes/vaporwave.tokens.json +549 -0
- package/dist/cdn/themes/win9x-dark.tokens.json +563 -0
- package/dist/cdn/themes/win9x.tokens.json +700 -0
- package/dist/cdn/vanilla-breeze-charts.css +1 -1
- package/dist/cdn/vanilla-breeze-charts.js +58 -36
- package/dist/cdn/vanilla-breeze-core.css +1 -1
- package/dist/cdn/vanilla-breeze-core.js +246 -51
- package/dist/cdn/vanilla-breeze-dev.js +1 -1
- package/dist/cdn/vanilla-breeze-extras.js +90 -80
- package/dist/cdn/vanilla-breeze.css +1 -1
- package/dist/cdn/vanilla-breeze.js +1370 -405
- package/package.json +12 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var p=window.matchMedia("(prefers-reduced-motion: reduce)");var f=new Map;function l(c,e,t={}){let i=t.priority??10,s={impl:e,bundle:t.bundle,contract:t.contract,priority:i},n=f.get(c);if(customElements.get(c)){if(!n||n.priority>=i){n&&n.priority===i&&n.impl!==e&&console.warn(`[VB Bundle] Tag <${c}> already registered by "${n.bundle}" (priority ${n.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${c}> defined by "${n.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(n&&n.priority>=i){n.priority===i&&console.warn(`[VB Bundle] Tag <${c}> already registered by "${n.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}f.set(c,s),customElements.define(c,e)}var d=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let e of this.#t)e();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(e,t,i,s){e.addEventListener(t,i,s),this.#t.push(()=>e.removeEventListener(t,i,s))}setup(){}teardown(){}setState(e,t){this.#e||(this.#e=this.attachInternals());let i=this.#e.states;try{t?i.add(e):i.delete(e)}catch{let s=`--${e}`;t?i.add(s):i.delete(s)}}_adoptInternals(e){this.#e||(this.#e=e)}};var u=class c extends d{static#t=0;#e;#n=[];#s="Back to content";setup(){this.#e=++c.#t,this.hasAttribute("data-back-label")&&(this.#s=this.getAttribute("data-back-label")??this.#s),this.#r(),this.getAttribute("data-mode")==="sidenotes"?this.#a():this.#c()}#r(){let e=[...document.querySelectorAll("foot-note:not([data-enhanced])")];this.#n=e.filter(t=>this.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}#c(){if(this.#n.length===0)return;let e=document.createElement("ol");this.#n.forEach((t,i)=>{let s=i+1,n=`fnref-${this.#e}-${s}`,o=`fn-${this.#e}-${s}`;this.#i(t,s,n,o);let r=this.#o(t,s,n,o);e.appendChild(r)}),this.appendChild(e)}#i(e,t,i,s){e.setAttribute("data-enhanced",""),e.id=i;let n=e.innerHTML,o=document.createElement("span");o.innerHTML=n;let r=document.createElement("a");r.href=`#${s}`,r.setAttribute("aria-describedby",s),r.textContent=`[${t}]`,e.innerHTML="",e.appendChild(o),e.appendChild(r)}#a(){if(this.#n.length===0)return;let e=[];if(this.#n.forEach((t,i)=>{let s=i+1,n=`fnref-${this.#e}-${s}`,o=`fn-${this.#e}-${s}`;t.getAttribute("data-side")==="false"?(this.#i(t,s,n,o),e.push({ref:t,num:s,refId:n,noteId:o})):this.#d(t,s,n,o)}),e.length>0){let t=document.createElement("ol");for(let{ref:i,num:s,refId:n,noteId:o}of e)t.appendChild(this.#o(i,s,n,o));this.appendChild(t)}else this.hidden=!0}#d(e,t,i,s){let n=e.innerHTML;e.setAttribute("data-enhanced",""),e.setAttribute("data-side",""),e.id=i;let o=document.createElement("a");o.href=`#${s}`,o.setAttribute("aria-describedby",s),o.textContent=`[${t}]`;let r=document.createElement("aside");r.className="sidenote",r.id=s,r.setAttribute("role","note"),r.innerHTML=`<span class="sidenote-number">${t}.</span> ${n}`,e.innerHTML="",e.appendChild(o),e.appendChild(r)}#o(e,t,i,s){let n=document.createElement("li");n.id=s;let o=e.querySelector("span"),r=o?o.innerHTML:"",a=document.createElement("a");return a.href=`#${i}`,a.setAttribute("data-backref",""),a.setAttribute("aria-label",this.#s),a.textContent="\u21A9",n.innerHTML=r+" ",n.appendChild(a),n}},h=class extends HTMLElement{};l("foot-notes",u);l("foot-note",h);export{h as FootNote,u as FootNotes};
|
|
2
2
|
//# sourceMappingURL=foot-notes.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var c=window.matchMedia("(prefers-reduced-motion: reduce)");var l=new Map;function u(
|
|
1
|
+
var c=window.matchMedia("(prefers-reduced-motion: reduce)");var l=new Map;function u(s,t,e={}){let i=e.priority??10,n={impl:t,bundle:e.bundle,contract:e.contract,priority:i},r=l.get(s);if(customElements.get(s)){if(!r||r.priority>=i){r&&r.priority===i&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${s}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=i){r.priority===i&&console.warn(`[VB Bundle] Tag <${s}> already registered by "${r.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}l.set(s,n),customElements.define(s,t)}var o=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,n){t.addEventListener(e,i,n),this.#t.push(()=>t.removeEventListener(e,i,n))}setup(){}teardown(){}setState(t,e){this.#e||(this.#e=this.attachInternals());let i=this.#e.states;try{e?i.add(t):i.delete(t)}catch{let n=`--${t}`;e?i.add(n):i.delete(n)}}_adoptInternals(t){this.#e||(this.#e=t)}};var d=["valueMissing","typeMismatch","patternMismatch","tooShort","tooLong","rangeUnderflow","rangeOverflow","stepMismatch","customError"],a=class extends o{#t=null;#e=null;#i=!1;setup(){return this.#t=this.querySelector("input, textarea, select"),this.#e=this.querySelector("output.error")??this.querySelector("output:not(.hint)"),this.#t?(this.listen(this.#t,"blur",()=>this.validate()),this.listen(this.#t,"input",()=>{this.#i&&this.validate()}),!0):!1}teardown(){this.#t=null,this.#e=null,this.#i=!1}validate(){let t=this.#t;if(!t)return!0;t.validity.customError||t.setCustomValidity("");let e=t.checkValidity();return e?(this.#r(t.value?"valid":null),t.removeAttribute("aria-invalid"),this.#e&&(this.#e.textContent="")):(this.#i=!0,this.#r("invalid"),t.setAttribute("aria-invalid","true"),this.#s(t.validity)),e}setError(t){this.#t&&(this.#t.setCustomValidity(t),this.#i=!0,this.#r("invalid"),this.#t.setAttribute("aria-invalid","true"),this.#e&&(this.#e.textContent=t))}clearError(){this.#t&&(this.#t.setCustomValidity(""),this.#r(null),this.#t.removeAttribute("aria-invalid"),this.#i=!1,this.#e&&(this.#e.textContent=""))}get fieldName(){return this.querySelector("label")?.textContent?.trim()??this.#t?.getAttribute("aria-label")??this.#t?.name??this.#t?.id??"Field"}get input(){return this.#t}#r(t){delete this.dataset.valid,delete this.dataset.invalid,t&&(this.dataset[t]="")}#s(t){if(!this.#e)return;let e=this.#t;if(!(!e||!this.#e))for(let i of d){if(!t[i])continue;let n=`data-message-${i.toLowerCase()}`,r=e.getAttribute(n)??e.validationMessage;this.#e.textContent=r;return}}};u("form-field",a);export{a as FormField};
|
|
2
2
|
//# sourceMappingURL=form-field.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var q=window.matchMedia("(prefers-reduced-motion: reduce)");var $=new Map;function k(d,t,i={}){let s=i.priority??10,r={impl:t,bundle:i.bundle,contract:i.contract,priority:s},e=$.get(d);if(customElements.get(d)){if(!e||e.priority>=s){e&&e.priority===s&&e.impl!==t&&console.warn(`[VB Bundle] Tag <${d}> already registered by "${e.bundle}" (priority ${e.priority}). Skipping "${i.bundle}".`);return}console.warn(`[VB Bundle] Tag <${d}> defined by "${e.bundle}" cannot be replaced (customElements.define is permanent). "${i.bundle}" has higher priority but arrived late.`);return}if(e&&e.priority>=s){e.priority===s&&console.warn(`[VB Bundle] Tag <${d}> already registered by "${e.bundle}". Skipping "${i.bundle}" (first wins at equal priority).`);return}$.set(d,r),customElements.define(d,t)}var E=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 t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,i,s,r){t.addEventListener(i,s,r),this.#t.push(()=>t.removeEventListener(i,s,r))}setup(){}teardown(){}};var w=864e5,v=w*7,C=w*30,T=w*91,x=w*365;function N(d){return typeof d=="number"?d:new Date(d).getTime()}function L(d){return d<=v*3?t=>t.toLocaleDateString(void 0,{month:"short",day:"numeric"}):d<=C*3?t=>t.toLocaleDateString(void 0,{month:"short",day:"numeric"}):d<=x?t=>t.toLocaleDateString(void 0,{month:"short",year:"2-digit"}):t=>t.toLocaleDateString(void 0,{year:"numeric"})}function I(d){return d<=v*3?"day":d<=C*3?"week":d<=x?"month":"quarter"}function D(d){return String(d).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var A=class extends E{static get observedAttributes(){return["src","title","view","show-today","show-progress","show-dependencies","compact"]}#t=null;#s=null;#r=null;#i=[];#e=0;#a=0;#n=0;setup(){let t=this.querySelector(":scope > table");if(!t||(this.#i=this.#d(t),this.#i.length===0))return!1;this.#e=Math.min(...this.#i.map(i=>i.start)),this.#a=Math.max(...this.#i.map(i=>i.end)),this.#n=this.#a-this.#e,this.#n<=0&&(this.#n=w),this.#l(t),this.dispatchEvent(new CustomEvent("gantt-chart:ready",{bubbles:!0,detail:{taskCount:this.#i.length,dateRange:{start:new Date(this.#e).toISOString(),end:new Date(this.#a).toISOString()}}}))}teardown(){this.#r&&(this.#r.remove(),this.#r=null),this.#t&&(this.#t.remove(),this.#t=null),this.#s&&(this.#s.remove(),this.#s=null);let t=this.querySelector("table.gc-sr-only");t&&t.classList.remove("gc-sr-only"),this.#i=[]}attributeChangedCallback(t,i,s){i===s||!this.isConnected||(t==="src"?this._loadSrc(s):this.hasAttribute("data-upgraded")&&(this.teardown(),this.removeAttribute("data-upgraded"),this.setup()))}#d(t){let i=t.querySelectorAll("tbody tr"),s=[];for(let r=0;r<i.length;r++){let e=i[r],o=e.querySelectorAll("time[datetime]");if(o.length<2&&!e.hasAttribute("data-milestone"))continue;let l=o[0]?.getAttribute("datetime"),n=o.length>1?o[1].getAttribute("datetime"):l;if(!l)continue;let a=e.querySelector("progress"),u=a?a.value/(a.max||100):0,g=e.cells[0]?.textContent?.trim()||`Task ${r+1}`;s.push({id:e.dataset.taskId||`gc-task-${r}`,name:g,start:N(l),end:N(n),progress:u,group:e.dataset.group||null,depends:e.dataset.depends?e.dataset.depends.split(",").map(c=>c.trim()):[],status:e.dataset.status||null,assignee:e.dataset.assignee||null,milestone:e.hasAttribute("data-milestone"),color:e.dataset.color||null,storyIds:e.dataset.storyIds?e.dataset.storyIds.split(",").map(c=>c.trim()):[],itemIds:e.dataset.itemIds?e.dataset.itemIds.split(",").map(c=>c.trim()):[]})}return s}#l(t){let i=this.getAttribute("title"),s=this.hasAttribute("show-today"),r=this.hasAttribute("show-progress"),e=this.hasAttribute("show-dependencies");i&&(this.#r=document.createElement("h2"),this.#r.className="gc-title",this.#r.textContent=i,this.insertBefore(this.#r,t)),this.#t=document.createElement("div"),this.#t.className="gc-container",this.#t.setAttribute("role","region"),this.#t.setAttribute("aria-label",`Gantt chart${i?": "+i:""}`);let o=this.#u();this.#t.appendChild(o);let l=document.createElement("div");l.className="gc-body";let n=document.createElement("div");n.className="gc-task-list";let a=document.createElement("div");a.className="gc-bars";let u=this.#h();a.appendChild(u);let g=this.#m();for(let[c,f]of g){if(g.size>1&&c){let m=document.createElement("div");m.className="gc-group-header";let h=document.createElement("span");h.className="gc-group-label",h.textContent=c,m.appendChild(h),n.appendChild(m);let p=document.createElement("div");p.className="gc-group-spacer",a.appendChild(p)}for(let m of f){let h=document.createElement("div");h.className="gc-task-row",h.setAttribute("data-task-id",m.id);let p=document.createElement("span");p.className="gc-task-name",p.textContent=m.name,h.appendChild(p);let y=document.createElement("span");y.className="gc-task-dates",y.textContent=`${new Date(m.start).toLocaleDateString()} to ${new Date(m.end).toLocaleDateString()}`,h.appendChild(y),n.appendChild(h);let b=document.createElement("div");b.className="gc-bar-row",m.milestone?b.appendChild(this.#f(m)):b.appendChild(this.#p(m,r)),a.appendChild(b)}}if(s){let c=this.#g();c&&a.appendChild(c)}e&&requestAnimationFrame(()=>{let c=this.#b(a);c&&a.appendChild(c)}),l.appendChild(n),l.appendChild(a),this.#t.appendChild(l),this.insertBefore(this.#t,t),t.classList.add("gc-sr-only"),this.#s=document.createElement("div"),this.#s.className="gc-sr-only",this.#s.setAttribute("role","status"),this.#s.setAttribute("aria-live","polite"),this.#s.setAttribute("aria-atomic","true"),this.appendChild(this.#s),this.listen(this.#t,"click",c=>{let f=c.target.closest(".gc-bar, .gc-milestone");if(!f)return;let m=f.dataset.taskId,h=this.#i.find(p=>p.id===m);h&&(this.#y(`Selected: ${h.name}`),this.dispatchEvent(new CustomEvent("gantt-chart:task-click",{bubbles:!0,detail:{task:h}})))}),this.listen(this.#t,"keydown",c=>{if(c.key==="Enter"||c.key===" "){let f=c.target.closest(".gc-bar, .gc-milestone");f&&(c.preventDefault(),f.click())}})}#u(){let t=document.createElement("div");t.className="gc-timeline-header";let i=document.createElement("div");i.className="gc-timeline-spacer",t.appendChild(i);let s=document.createElement("div");s.className="gc-timeline-dates";let r=this.#o();for(let{position:e,text:o}of r){let l=document.createElement("span");l.className="gc-date-label",l.style.left=`${e}%`,l.textContent=o,s.appendChild(l)}return t.appendChild(s),t}#o(){let t=this.getAttribute("view")||"auto",i=t==="auto"?I(this.#n):t,s=L(this.#n),r=[],e;switch(i){case"day":e=w;break;case"week":e=v;break;case"month":e=C;break;case"quarter":e=T;break;default:e=C}let o=new Date(this.#e);if(i==="week"){let a=o.getDay(),u=a===0?1:a===1?0:8-a;o.setDate(o.getDate()+u)}else if(i==="month")o.setDate(1),o.getTime()<this.#e&&o.setMonth(o.getMonth()+1);else if(i==="quarter"){let a=o.getMonth(),u=Math.ceil((a+1)/3)*3;o.setMonth(u),o.setDate(1)}let l=o.getTime();l>this.#e+e*.5&&r.push({position:0,text:s(new Date(this.#e))});let n=l;for(;n<=this.#a;){let a=(n-this.#e)/this.#n*100;if(a>=0&&a<=100&&r.push({position:a,text:s(new Date(n))}),i==="month"){let u=new Date(n);u.setMonth(u.getMonth()+1),n=u.getTime()}else if(i==="quarter"){let u=new Date(n);u.setMonth(u.getMonth()+3),n=u.getTime()}else n+=e}return r}#h(){let t=document.createElement("div");t.className="gc-grid-lines";let i=this.#o();for(let{position:s}of i){if(s<=0)continue;let r=document.createElement("div");r.className="gc-grid-line",r.style.left=`${s}%`,t.appendChild(r)}return t}#m(){let t=new Map;for(let i of this.#i){let s=i.group||"";t.has(s)||t.set(s,[]),t.get(s).push(i)}return t}#p(t,i){let s=(t.start-this.#e)/this.#n*100,r=(t.end-t.start)/this.#n*100,e=document.createElement("div");if(e.className="gc-bar",e.setAttribute("data-task-id",t.id),e.setAttribute("role","img"),e.setAttribute("tabindex","0"),e.setAttribute("aria-label",`${D(t.name)}: ${new Date(t.start).toLocaleDateString()} to ${new Date(t.end).toLocaleDateString()}`+(t.progress>0?`, ${Math.round(t.progress*100)}% complete`:"")),e.style.left=`${s}%`,e.style.width=`${Math.max(r,.5)}%`,t.status&&e.setAttribute("data-status",t.status),t.color&&e.style.setProperty("--gc-bar-color",t.color),i&&t.progress>0){let o=document.createElement("div");o.className="gc-bar-fill",o.style.width=`${Math.round(t.progress*100)}%`,e.appendChild(o)}if(r>8){let o=document.createElement("span");o.className="gc-bar-label",o.textContent=t.name,e.appendChild(o)}return e}#f(t){let i=(t.start-this.#e)/this.#n*100,s=document.createElement("div");return s.className="gc-milestone",s.setAttribute("data-task-id",t.id),s.setAttribute("role","img"),s.setAttribute("tabindex","0"),s.setAttribute("aria-label",`Milestone: ${D(t.name)}, ${new Date(t.start).toLocaleDateString()}`),s.style.left=`${i}%`,t.status&&s.setAttribute("data-status",t.status),t.color&&s.style.setProperty("--gc-bar-color",t.color),s}#g(){let t=Date.now();if(t<this.#e||t>this.#a)return null;let i=(t-this.#e)/this.#n*100,s=document.createElement("div");s.className="gc-today-line",s.style.left=`${i}%`;let r=document.createElement("span");return r.className="gc-today-label",r.textContent="Today",s.appendChild(r),s}#b(t){if(!this.#i.some(n=>n.depends.length>0))return null;let s="http://www.w3.org/2000/svg",r=document.createElementNS(s,"svg");r.setAttribute("class","gc-deps"),r.style.width="100%",r.style.height="100%";let e=document.createElementNS(s,"defs"),o=document.createElementNS(s,"marker");o.setAttribute("id","gc-arrowhead"),o.setAttribute("markerWidth","8"),o.setAttribute("markerHeight","6"),o.setAttribute("refX","8"),o.setAttribute("refY","3"),o.setAttribute("orient","auto");let l=document.createElementNS(s,"polygon");l.setAttribute("points","0 0, 8 3, 0 6"),l.setAttribute("fill","var(--color-text-muted, #666666)"),o.appendChild(l),e.appendChild(o),r.appendChild(e);for(let n of this.#i)for(let a of n.depends){let u=this.#i.find(M=>M.id===a);if(!u)continue;let g=(u.end-this.#e)/this.#n*100,c=(n.start-this.#e)/this.#n*100,f=this.#c(u.id,t),m=this.#c(n.id,t);if(f===-1||m===-1)continue;let h=36,p=f*h+h/2,y=m*h+h/2,b=document.createElementNS(s,"path"),S=g+(c-g)/2;b.setAttribute("d",`M ${g}% ${p} C ${S}% ${p}, ${S}% ${y}, ${c}% ${y}`),b.setAttribute("class","gc-dep-line"),r.appendChild(b)}return r}#c(t,i){let s=i.querySelectorAll(".gc-bar-row");for(let r=0;r<s.length;r++){let e=s[r].querySelector("[data-task-id]");if(e&&e.dataset.taskId===t)return r}return-1}async _loadSrc(t){if(t)try{let i=await fetch(t);if(!i.ok)throw new Error(`HTTP ${i.status}`);let s=await i.json();for(;this.firstChild;)this.firstChild.remove();let r=document.createElement("table"),e=document.createElement("thead"),o=document.createElement("tr");for(let n of["Task","Start","End","Progress"]){let a=document.createElement("th");a.textContent=n,o.appendChild(a)}e.appendChild(o),r.appendChild(e);let l=document.createElement("tbody");for(let n of s.tasks||[]){let a=document.createElement("tr");n.id&&(a.dataset.taskId=n.id),n.group&&(a.dataset.group=n.group),n.depends&&(a.dataset.depends=Array.isArray(n.depends)?n.depends.join(","):n.depends),n.status&&(a.dataset.status=n.status),n.assignee&&(a.dataset.assignee=n.assignee),n.milestone&&a.setAttribute("data-milestone",""),n.color&&(a.dataset.color=n.color),n.storyIds&&(a.dataset.storyIds=Array.isArray(n.storyIds)?n.storyIds.join(","):n.storyIds),n.itemIds&&(a.dataset.itemIds=Array.isArray(n.itemIds)?n.itemIds.join(","):n.itemIds);let u=document.createElement("td");u.textContent=n.name||"",a.appendChild(u);let g=document.createElement("td"),c=document.createElement("time");c.setAttribute("datetime",n.start),c.textContent=new Date(n.start).toLocaleDateString(void 0,{month:"short",day:"numeric"}),g.appendChild(c),a.appendChild(g);let f=document.createElement("td"),m=document.createElement("time");m.setAttribute("datetime",n.end||n.start),m.textContent=new Date(n.end||n.start).toLocaleDateString(void 0,{month:"short",day:"numeric"}),f.appendChild(m),a.appendChild(f);let h=document.createElement("td"),p=document.createElement("progress");p.value=n.progress||0,p.max=100,p.textContent=`${n.progress||0}%`,h.appendChild(p),a.appendChild(h),l.appendChild(a)}r.appendChild(l),this.appendChild(r),s.title&&this.setAttribute("title",s.title),this.teardown(),this.removeAttribute("data-upgraded"),this.setup()}catch(i){console.warn(`[gantt-chart] Failed to load src="${t}":`,i)}}#y(t){this.#s&&(this.#s.textContent="",requestAnimationFrame(()=>{this.#s&&(this.#s.textContent=t)}))}};k("gantt-chart",A);export{A as GanttChart};
|
|
1
|
+
var q=window.matchMedia("(prefers-reduced-motion: reduce)");var S=new Map;function N(c,t,n={}){let e=n.priority??10,a={impl:t,bundle:n.bundle,contract:n.contract,priority:e},s=S.get(c);if(customElements.get(c)){if(!s||s.priority>=e){s&&s.priority===e&&s.impl!==t&&console.warn(`[VB Bundle] Tag <${c}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${n.bundle}".`);return}console.warn(`[VB Bundle] Tag <${c}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${n.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=e){s.priority===e&&console.warn(`[VB Bundle] Tag <${c}> already registered by "${s.bundle}". Skipping "${n.bundle}" (first wins at equal priority).`);return}S.set(c,a),customElements.define(c,t)}var C=class extends HTMLElement{#e=[];#t;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#e)t();this.#e=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,n,e,a){t.addEventListener(n,e,a),this.#e.push(()=>t.removeEventListener(n,e,a))}setup(){}teardown(){}setState(t,n){this.#t||(this.#t=this.attachInternals());let e=this.#t.states;try{n?e.add(t):e.delete(t)}catch{let a=`--${t}`;n?e.add(a):e.delete(a)}}_adoptInternals(t){this.#t||(this.#t=t)}};var y=864e5,k=y*7,A=y*30,T=y*91,D=y*365;function E(c){return typeof c=="number"?c:new Date(c).getTime()}function I(c){return c<=k*3?t=>t.toLocaleDateString(void 0,{month:"short",day:"numeric"}):c<=A*3?t=>t.toLocaleDateString(void 0,{month:"short",day:"numeric"}):c<=D?t=>t.toLocaleDateString(void 0,{month:"short",year:"2-digit"}):t=>t.toLocaleDateString(void 0,{year:"numeric"})}function L(c){return c<=k*3?"day":c<=A*3?"week":c<=D?"month":"quarter"}function x(c){return String(c).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var v=class c extends C{static get observedAttributes(){return["src","title","view","show-today","show-progress","show-dependencies","compact"]}#e=null;#t=null;#a=null;#i=[];#s=0;#r=0;#n=0;setup(){let t=this.querySelector(":scope > table");return!t||(this.#i=this.#h(t),this.#i.length===0)?!1:(this.#s=Math.min(...this.#i.map(n=>n.start)),this.#r=Math.max(...this.#i.map(n=>n.end)),this.#n=this.#r-this.#s,this.#n<=0&&(this.#n=y),this.#d(t),this.dispatchEvent(new CustomEvent("gantt-chart:ready",{bubbles:!0,detail:{taskCount:this.#i.length,dateRange:{start:new Date(this.#s).toISOString(),end:new Date(this.#r).toISOString()}}})),!0)}teardown(){this.#a&&(this.#a.remove(),this.#a=null),this.#e&&(this.#e.remove(),this.#e=null),this.#t&&(this.#t.remove(),this.#t=null);let t=this.querySelector("table.gc-sr-only");t&&t.classList.remove("gc-sr-only"),this.#i=[]}static#u=0;attributeChangedCallback(t,n,e){n===e||!this.isConnected||(t==="src"?this._loadSrc(e):this.hasAttribute("data-upgraded")&&this.#o())}#o(){let t=()=>{this.teardown(),this.removeAttribute("data-upgraded"),this.setup()};if(this.hasAttribute("data-upgraded")&&"startViewTransition"in document&&!matchMedia("(prefers-reduced-motion: reduce)").matches){let n=`gc-vt-${++c.#u}`;this.style.viewTransitionName=n,document.startViewTransition(t).finished.finally(()=>{this.style.viewTransitionName=""})}else t()}get tasks(){return this.#i}set tasks(t){let n=(t||[]).map((e,a)=>({id:e.id??`gc-task-${a}`,name:e.name??`Task ${a+1}`,start:typeof e.start=="number"?e.start:E(e.start),end:typeof e.end=="number"?e.end:e.end!=null?E(e.end):typeof e.start=="number"?e.start:E(e.start),progress:e.progress??0,group:e.group??null,depends:Array.isArray(e.depends)?e.depends:e.depends?String(e.depends).split(",").map(s=>s.trim()):[],status:e.status??null,assignee:e.assignee??null,milestone:!!e.milestone,color:e.color??null,storyIds:e.storyIds??[],itemIds:e.itemIds??[]}));if((this.#e||this.#a||this.#t)&&(this.#a&&(this.#a.remove(),this.#a=null),this.#e&&(this.#e.remove(),this.#e=null),this.#t&&(this.#t.remove(),this.#t=null)),this.#i=n,n.length>0){this.#s=Math.min(...n.map(a=>a.start)),this.#r=Math.max(...n.map(a=>a.end)),this.#n=this.#r-this.#s,this.#n<=0&&(this.#n=y);let e=this.querySelector(":scope > table");e||(e=document.createElement("table"),e.classList.add("gc-sr-only"),this.appendChild(e)),this.#d(e)}this.dispatchEvent(new CustomEvent("gantt-chart:tasks-changed",{detail:{tasks:n,source:"property"},bubbles:!0}))}#h(t){let n=t.querySelectorAll("tbody tr"),e=[];for(let a=0;a<n.length;a++){let s=n[a],o=s.querySelectorAll("time[datetime]");if(o.length<2&&!s.hasAttribute("data-milestone"))continue;let l=o[0]?.getAttribute("datetime"),i=o.length>1?o[1].getAttribute("datetime"):l;if(!l)continue;let r=s.querySelector("progress"),h=r?r.value/(r.max||100):0,g=s.cells[0]?.textContent?.trim()||`Task ${a+1}`;e.push({id:s.dataset.taskId||`gc-task-${a}`,name:g,start:E(l),end:E(i),progress:h,group:s.dataset.group||null,depends:s.dataset.depends?s.dataset.depends.split(",").map(d=>d.trim()):[],status:s.dataset.status||null,assignee:s.dataset.assignee||null,milestone:s.hasAttribute("data-milestone"),color:s.dataset.color||null,storyIds:s.dataset.storyIds?s.dataset.storyIds.split(",").map(d=>d.trim()):[],itemIds:s.dataset.itemIds?s.dataset.itemIds.split(",").map(d=>d.trim()):[]})}return e}#d(t){let n=this.getAttribute("title"),e=this.hasAttribute("show-today"),a=this.hasAttribute("show-progress"),s=this.hasAttribute("show-dependencies");n&&(this.#a=document.createElement("h2"),this.#a.className="gc-title",this.#a.textContent=n,this.insertBefore(this.#a,t)),this.#e=document.createElement("div"),this.#e.className="gc-container",this.#e.setAttribute("role","region"),this.#e.setAttribute("aria-label",`Gantt chart${n?": "+n:""}`);let o=this.#m();this.#e.appendChild(o);let l=document.createElement("div");l.className="gc-body";let i=document.createElement("div");i.className="gc-task-list";let r=document.createElement("div");r.className="gc-bars";let h=this.#p();r.appendChild(h);let g=this.#f();for(let[d,f]of g){if(g.size>1&&d){let u=document.createElement("div");u.className="gc-group-header";let m=document.createElement("span");m.className="gc-group-label",m.textContent=d,u.appendChild(m),i.appendChild(u);let p=document.createElement("div");p.className="gc-group-spacer",r.appendChild(p)}for(let u of f){let m=document.createElement("div");m.className="gc-task-row",m.setAttribute("data-task-id",u.id);let p=document.createElement("span");p.className="gc-task-name",p.textContent=u.name,m.appendChild(p);let w=document.createElement("span");w.className="gc-task-dates",w.textContent=`${new Date(u.start).toLocaleDateString()} to ${new Date(u.end).toLocaleDateString()}`,m.appendChild(w),i.appendChild(m);let b=document.createElement("div");b.className="gc-bar-row",u.milestone?b.appendChild(this.#b(u)):b.appendChild(this.#g(u,a)),r.appendChild(b)}}if(e){let d=this.#y();d&&r.appendChild(d)}s&&requestAnimationFrame(()=>{let d=this.#w(r);d&&r.appendChild(d)}),l.appendChild(i),l.appendChild(r),this.#e.appendChild(l),this.insertBefore(this.#e,t),t.classList.add("gc-sr-only"),this.#t=document.createElement("div"),this.#t.className="gc-sr-only",this.#t.setAttribute("role","status"),this.#t.setAttribute("aria-live","polite"),this.#t.setAttribute("aria-atomic","true"),this.appendChild(this.#t),this.listen(this.#e,"click",d=>{let f=d.target.closest(".gc-bar, .gc-milestone");if(!f)return;let u=f.dataset.taskId,m=this.#i.find(p=>p.id===u);m&&(this.#E(`Selected: ${m.name}`),this.dispatchEvent(new CustomEvent("gantt-chart:task-click",{bubbles:!0,detail:{task:m}})))}),this.listen(this.#e,"keydown",d=>{let f=d;if(f.key==="Enter"||f.key===" "){let u=f.target.closest(".gc-bar, .gc-milestone");u&&(f.preventDefault(),u.click())}})}#m(){let t=document.createElement("div");t.className="gc-timeline-header";let n=document.createElement("div");n.className="gc-timeline-spacer",t.appendChild(n);let e=document.createElement("div");e.className="gc-timeline-dates";let a=this.#c();for(let{position:s,text:o}of a){let l=document.createElement("span");l.className="gc-date-label",l.style.left=`${s}%`,l.textContent=o,e.appendChild(l)}return t.appendChild(e),t}#c(){let t=this.getAttribute("view")||"auto",n=t==="auto"?L(this.#n):t,e=I(this.#n),a=[],s;switch(n){case"day":s=y;break;case"week":s=k;break;case"month":s=A;break;case"quarter":s=T;break;default:s=A}let o=new Date(this.#s);if(n==="week"){let r=o.getDay(),h=r===0?1:r===1?0:8-r;o.setDate(o.getDate()+h)}else if(n==="month")o.setDate(1),o.getTime()<this.#s&&o.setMonth(o.getMonth()+1);else if(n==="quarter"){let r=o.getMonth(),h=Math.ceil((r+1)/3)*3;o.setMonth(h),o.setDate(1)}let l=o.getTime();l>this.#s+s*.5&&a.push({position:0,text:e(new Date(this.#s))});let i=l;for(;i<=this.#r;){let r=(i-this.#s)/this.#n*100;if(r>=0&&r<=100&&a.push({position:r,text:e(new Date(i))}),n==="month"){let h=new Date(i);h.setMonth(h.getMonth()+1),i=h.getTime()}else if(n==="quarter"){let h=new Date(i);h.setMonth(h.getMonth()+3),i=h.getTime()}else i+=s}return a}#p(){let t=document.createElement("div");t.className="gc-grid-lines";let n=this.#c();for(let{position:e}of n){if(e<=0)continue;let a=document.createElement("div");a.className="gc-grid-line",a.style.left=`${e}%`,t.appendChild(a)}return t}#f(){let t=new Map;for(let n of this.#i){let e=n.group||"";t.has(e)||t.set(e,[]),t.get(e)?.push(n)}return t}#g(t,n){let e=(t.start-this.#s)/this.#n*100,a=(t.end-t.start)/this.#n*100,s=document.createElement("div");if(s.className="gc-bar",s.setAttribute("data-task-id",t.id),s.setAttribute("role","img"),s.setAttribute("tabindex","0"),s.setAttribute("aria-label",`${x(t.name)}: ${new Date(t.start).toLocaleDateString()} to ${new Date(t.end).toLocaleDateString()}`+(t.progress>0?`, ${Math.round(t.progress*100)}% complete`:"")),s.style.left=`${e}%`,s.style.width=`${Math.max(a,.5)}%`,t.status&&s.setAttribute("data-status",t.status),t.color&&s.style.setProperty("--gc-bar-color",t.color),n&&t.progress>0){let o=document.createElement("div");o.className="gc-bar-fill",o.style.width=`${Math.round(t.progress*100)}%`,s.appendChild(o)}if(a>8){let o=document.createElement("span");o.className="gc-bar-label",o.textContent=t.name,s.appendChild(o)}return s}#b(t){let n=(t.start-this.#s)/this.#n*100,e=document.createElement("div");return e.className="gc-milestone",e.setAttribute("data-task-id",t.id),e.setAttribute("role","img"),e.setAttribute("tabindex","0"),e.setAttribute("aria-label",`Milestone: ${x(t.name)}, ${new Date(t.start).toLocaleDateString()}`),e.style.left=`${n}%`,t.status&&e.setAttribute("data-status",t.status),t.color&&e.style.setProperty("--gc-bar-color",t.color),e}#y(){let t=Date.now();if(t<this.#s||t>this.#r)return null;let n=(t-this.#s)/this.#n*100,e=document.createElement("div");e.className="gc-today-line",e.style.left=`${n}%`;let a=document.createElement("span");return a.className="gc-today-label",a.textContent="Today",e.appendChild(a),e}#w(t){if(!this.#i.some(i=>i.depends.length>0))return null;let e="http://www.w3.org/2000/svg",a=document.createElementNS(e,"svg");a.setAttribute("class","gc-deps"),a.style.width="100%",a.style.height="100%";let s=document.createElementNS(e,"defs"),o=document.createElementNS(e,"marker");o.setAttribute("id","gc-arrowhead"),o.setAttribute("markerWidth","8"),o.setAttribute("markerHeight","6"),o.setAttribute("refX","8"),o.setAttribute("refY","3"),o.setAttribute("orient","auto");let l=document.createElementNS(e,"polygon");l.setAttribute("points","0 0, 8 3, 0 6"),l.setAttribute("fill","var(--color-text-muted, #666666)"),o.appendChild(l),s.appendChild(o),a.appendChild(s);for(let i of this.#i)for(let r of i.depends){let h=this.#i.find(M=>M.id===r);if(!h)continue;let g=(h.end-this.#s)/this.#n*100,d=(i.start-this.#s)/this.#n*100,f=this.#l(h.id,t),u=this.#l(i.id,t);if(f===-1||u===-1)continue;let m=36,p=f*m+m/2,w=u*m+m/2,b=document.createElementNS(e,"path"),$=g+(d-g)/2;b.setAttribute("d",`M ${g}% ${p} C ${$}% ${p}, ${$}% ${w}, ${d}% ${w}`),b.setAttribute("class","gc-dep-line"),a.appendChild(b)}return a}#l(t,n){let e=n.querySelectorAll(".gc-bar-row");for(let a=0;a<e.length;a++){let s=e[a].querySelector("[data-task-id]");if(s&&s.dataset.taskId===t)return a}return-1}async _loadSrc(t){if(t)try{let n=await fetch(t);if(!n.ok)throw new Error(`HTTP ${n.status}`);let e=await n.json();for(;this.firstChild;)this.firstChild.remove();let a=document.createElement("table"),s=document.createElement("thead"),o=document.createElement("tr");for(let i of["Task","Start","End","Progress"]){let r=document.createElement("th");r.textContent=i,o.appendChild(r)}s.appendChild(o),a.appendChild(s);let l=document.createElement("tbody");for(let i of e.tasks||[]){let r=document.createElement("tr");i.id&&(r.dataset.taskId=i.id),i.group&&(r.dataset.group=i.group),i.depends&&(r.dataset.depends=Array.isArray(i.depends)?i.depends.join(","):i.depends),i.status&&(r.dataset.status=i.status),i.assignee&&(r.dataset.assignee=i.assignee),i.milestone&&r.setAttribute("data-milestone",""),i.color&&(r.dataset.color=i.color),i.storyIds&&(r.dataset.storyIds=Array.isArray(i.storyIds)?i.storyIds.join(","):i.storyIds),i.itemIds&&(r.dataset.itemIds=Array.isArray(i.itemIds)?i.itemIds.join(","):i.itemIds);let h=document.createElement("td");h.textContent=i.name||"",r.appendChild(h);let g=document.createElement("td"),d=document.createElement("time");d.setAttribute("datetime",i.start),d.textContent=new Date(i.start).toLocaleDateString(void 0,{month:"short",day:"numeric"}),g.appendChild(d),r.appendChild(g);let f=document.createElement("td"),u=document.createElement("time");u.setAttribute("datetime",i.end||i.start),u.textContent=new Date(i.end||i.start).toLocaleDateString(void 0,{month:"short",day:"numeric"}),f.appendChild(u),r.appendChild(f);let m=document.createElement("td"),p=document.createElement("progress");p.value=i.progress||0,p.max=100,p.textContent=`${i.progress||0}%`,m.appendChild(p),r.appendChild(m),l.appendChild(r)}a.appendChild(l),this.appendChild(a),e.title&&this.setAttribute("title",e.title),this.#o()}catch(n){console.warn(`[gantt-chart] Failed to load src="${t}":`,n)}}#E(t){this.#t&&(this.#t.textContent="",requestAnimationFrame(()=>{this.#t&&(this.#t.textContent=t)}))}};N("gantt-chart",v);export{v as GanttChart};
|
|
2
2
|
//# sourceMappingURL=gantt-chart.js.map
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
var
|
|
1
|
+
var I=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var _=(l,t)=>{for(var e in t)I(l,e,{get:t[e],enumerable:!0})};function L(l,t,e){let i=Math.pow(2,e),r=l*Math.PI/180,o=(t+180)/360*i,a=(1-Math.log(Math.tan(r)+1/Math.cos(r))/Math.PI)/2*i,n=Math.floor(o),s=Math.floor(a),h=Math.round((o-n)*256),c=Math.round((a-s)*256);return{tileX:n,tileY:s,pixelX:h,pixelY:c}}function $(l,t,e){let i=256*Math.pow(2,e),r=l/i*360-180;return{lat:Math.atan(Math.sinh(Math.PI*(1-2*t/i)))*180/Math.PI,lng:r}}function v(l,t,e,i,r){if(r)return r.replace("{z}",String(t)).replace("{x}",String(e)).replace("{y}",String(i));switch(l){case"carto-light":return`https://basemaps.cartocdn.com/light_all/${t}/${e}/${i}.png`;case"carto-dark":return`https://basemaps.cartocdn.com/dark_all/${t}/${e}/${i}.png`;default:return`https://tile.openstreetmap.org/${t}/${e}/${i}.png`}}var M=A(()=>{});var z={};_(z,{MapInteraction:()=>E});var E,P=A(()=>{M();E=class{#o;#e;#t;#f;#m;#g;#r=0;#s=0;#a=15;#u=1;#N=19;#l=0;#n=0;#c=new Map;#i=null;#v=0;#b=0;#y=!1;#w=0;#k=0;constructor({shadow:t,host:e,lat:i,lng:r,zoom:o,provider:a,tileUrl:n,onDeactivate:s}){this.#o=t,this.#e=e,this.#f=a,this.#m=n||"",this.#g=s,this.#a=o,this.#t=t.querySelector('[part="tiles"]'),this.#i=t.querySelector('[part="marker"]');let h=256*Math.pow(2,o),c=i*Math.PI/180;this.#r=(r+180)/360*h,this.#s=(1-Math.log(Math.tan(c)+1/Math.cos(c))/Math.PI)/2*h,this.#v=this.#r,this.#b=this.#s,this.#l=this.#e.offsetWidth||400,this.#n=this.#e.offsetHeight||300,this.#t.innerHTML="",this.#t.style.transform="",this.#i&&(this.#i.style.position="absolute",this.#i.style.top="",this.#i.style.left="",this.#t.appendChild(this.#i)),this.#C(),this.#h()}#C(){this.#t.addEventListener("pointerdown",this.#A),this.#t.addEventListener("wheel",this.#S,{passive:!1}),this.#e.addEventListener("keydown",this.#L)}#A=t=>{t.button===0&&(t.preventDefault(),this.#y=!0,this.#w=t.clientX,this.#k=t.clientY,this.#t.setPointerCapture(t.pointerId),this.#t.setAttribute("data-dragging",""),this.#t.addEventListener("pointermove",this.#x),this.#t.addEventListener("pointerup",this.#M))};#x=t=>{if(!this.#y)return;let e=t.clientX-this.#w,i=t.clientY-this.#k;this.#w=t.clientX,this.#k=t.clientY,this.#r-=e,this.#s-=i,this.#d(),this.#h()};#M=t=>{this.#y=!1,this.#t.releasePointerCapture(t.pointerId),this.#t.removeAttribute("data-dragging"),this.#t.removeEventListener("pointermove",this.#x),this.#t.removeEventListener("pointerup",this.#M),this.#p()};#S=t=>{t.preventDefault();let e=t.ctrlKey?-t.deltaY*.01:-Math.sign(t.deltaY),i=Math.round(Math.max(this.#u,Math.min(this.#N,this.#a+e)));if(i===this.#a)return;let r=this.#e.getBoundingClientRect(),o=t.clientX-r.left,a=t.clientY-r.top;this.#E(i,o,a)};#L=t=>{switch(t.key){case"ArrowLeft":t.preventDefault(),this.#r-=80,this.#d(),this.#h(),this.#p();break;case"ArrowRight":t.preventDefault(),this.#r+=80,this.#d(),this.#h(),this.#p();break;case"ArrowUp":t.preventDefault(),this.#s-=80,this.#d(),this.#h(),this.#p();break;case"ArrowDown":t.preventDefault(),this.#s+=80,this.#d(),this.#h(),this.#p();break;case"+":case"=":t.preventDefault(),this.#E(this.#a+1,this.#l/2,this.#n/2);break;case"-":t.preventDefault(),this.#E(this.#a-1,this.#l/2,this.#n/2);break;case"Escape":t.preventDefault(),this.#g();break}};#E(t,e,i){if(t=Math.max(this.#u,Math.min(this.#N,t)),t===this.#a)return;let r=this.#r-this.#l/2,o=this.#s-this.#n/2,a=r+e,n=o+i,s=Math.pow(2,t-this.#a);this.#r=a*s-e+this.#l/2,this.#s=n*s-i+this.#n/2,this.#v*=s,this.#b*=s,this.#a=t,this.#$(),this.#d(),this.#h(),this.#p()}#d(){let t=256*Math.pow(2,this.#a);this.#r=(this.#r%t+t)%t,this.#s=Math.max(this.#n/2,Math.min(t-this.#n/2,this.#s))}#h(){let t=-(this.#r-this.#l/2),e=-(this.#s-this.#n/2);this.#t.style.transform=`translate(${Math.round(t)}px, ${Math.round(e)}px)`,this.#T(),this.#P(),this.#F()}#T(){let t=this.#a,e=Math.pow(2,t),i=this.#r-this.#l/2,r=this.#s-this.#n/2,o=i+this.#l,a=r+this.#n,n=Math.floor(i/256)-1,s=Math.max(0,Math.floor(r/256)-1),h=Math.ceil(o/256)+1,c=Math.min(e,Math.ceil(a/256)+1);for(let d=s;d<c;d++)for(let u=n;u<h;u++){let f=(u%e+e)%e,b=`${t}/${f}/${d}`;this.#c.has(b)||this.#z(t,u,d,f)}}#z(t,e,i,r){let o=`${t}/${r}/${i}`;if(this.#c.has(o))return;let a=e*256,n=i*256,s=document.createElement("img");s.src=v(this.#f,t,r,i,this.#m),s.alt="",s.draggable=!1,s.style.left=a+"px",s.style.top=n+"px",s.style.width="256px",s.style.height="256px",s._wx=a,s._wy=n,this.#c.set(o,s),this.#t.appendChild(s)}#P(){let t=this.#r-this.#l/2,e=this.#s-this.#n/2,i=512;for(let[r,o]of this.#c){let a=o._wx,n=o._wy;(a+256<t-i||a>t+this.#l+i||n+256<e-i||n>e+this.#n+i)&&(o.remove(),this.#c.delete(r))}}#F(){if(!this.#i)return;let t=this.#i.offsetWidth||32;this.#i.style.left=`${Math.round(this.#v-t/2)}px`,this.#i.style.top=`${Math.round(this.#b-t)}px`,this.#i.style.transform=""}#p(){let{lat:t,lng:e}=$(this.#r,this.#s,this.#a);this.#e.dispatchEvent(new CustomEvent("geo-map:move",{bubbles:!0,detail:{lat:+t.toFixed(6),lng:+e.toFixed(6),zoom:this.#a}}))}#$(){for(let t of this.#c.values())t.remove();this.#c.clear()}destroy(){if(this.#t.removeEventListener("pointerdown",this.#A),this.#t.removeEventListener("wheel",this.#S),this.#e.removeEventListener("keydown",this.#L),this.#t.removeEventListener("pointermove",this.#x),this.#t.removeEventListener("pointerup",this.#M),this.#i&&this.#i.parentNode===this.#t){let t=this.#o.querySelector('[part="container"]');t&&(t.insertBefore(this.#i,this.#t.nextSibling),this.#i.style.position="",this.#i.style.left="",this.#i.style.top="",this.#i.style.transform="")}this.#$(),this.#e.removeAttribute("data-interactive-active")}}});var g=class extends HTMLElement{#o=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#o)t();this.#o=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,r){t.addEventListener(e,i,r),this.#o.push(()=>t.removeEventListener(e,i,r))}setup(){}teardown(){}setState(t,e){this.#e||(this.#e=this.attachInternals());let i=this.#e.states;try{e?i.add(t):i.delete(t)}catch{let r=`--${t}`;e?i.add(r):i.delete(r)}}_adoptInternals(t){this.#e||(this.#e=t)}};var S=`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
position: relative;
|
|
5
5
|
overflow: hidden;
|
|
6
6
|
height: var(--geo-map-height, 300px);
|
|
7
7
|
border-radius: var(--geo-map-border-radius, 0.5rem);
|
|
8
|
-
|
|
8
|
+
/* Loading-state placeholder gradient \u2014 derived from VB surface tokens
|
|
9
|
+
so it shifts with the active theme rather than freezing on grey. */
|
|
10
|
+
background: linear-gradient(
|
|
11
|
+
135deg,
|
|
12
|
+
var(--color-surface-raised, #e8e8e8) 0%,
|
|
13
|
+
var(--color-surface-sunken, var(--color-border, #d0d0d0)) 100%
|
|
14
|
+
);
|
|
9
15
|
color-scheme: light dark;
|
|
10
16
|
}
|
|
11
17
|
|
|
@@ -45,13 +51,16 @@ var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for
|
|
|
45
51
|
z-index: 2;
|
|
46
52
|
}
|
|
47
53
|
|
|
48
|
-
/* Caption (slot projection)
|
|
54
|
+
/* Caption (slot projection). Translucent surface over the map; uses
|
|
55
|
+
light-dark() so the pair switches automatically with the page's
|
|
56
|
+
resolved color-scheme (driven by VB tokens). */
|
|
49
57
|
[part="caption"] {
|
|
50
58
|
position: absolute;
|
|
51
59
|
bottom: 0;
|
|
52
60
|
left: 0;
|
|
53
61
|
right: 0;
|
|
54
|
-
background: var(--geo-map-caption-bg, rgba(255, 255, 255, 0.9));
|
|
62
|
+
background: var(--geo-map-caption-bg, light-dark(rgba(255, 255, 255, 0.9), rgba(0, 0, 0, 0.75)));
|
|
63
|
+
color: var(--geo-map-caption-color, var(--color-text, light-dark(#1a1a1a, #e0e0e0)));
|
|
55
64
|
padding: var(--geo-map-caption-padding, 0.5rem 0.75rem);
|
|
56
65
|
font-size: 0.875rem;
|
|
57
66
|
z-index: 3;
|
|
@@ -62,22 +71,15 @@ var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for
|
|
|
62
71
|
display: none;
|
|
63
72
|
}
|
|
64
73
|
|
|
65
|
-
|
|
66
|
-
[part="caption"] {
|
|
67
|
-
background: var(--geo-map-caption-bg, rgba(0, 0, 0, 0.75));
|
|
68
|
-
color: #e0e0e0;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/* Attribution */
|
|
74
|
+
/* Attribution \u2014 translucent surface over the map; same pattern as caption */
|
|
73
75
|
[part="attribution"] {
|
|
74
76
|
position: absolute;
|
|
75
77
|
bottom: 0;
|
|
76
78
|
right: 0;
|
|
77
79
|
padding: 2px 5px;
|
|
78
80
|
font-size: var(--geo-map-attribution-font-size, 0.625rem);
|
|
79
|
-
background: rgba(255, 255, 255, 0.7);
|
|
80
|
-
color: #333;
|
|
81
|
+
background: var(--geo-map-attribution-bg, light-dark(rgba(255, 255, 255, 0.7), rgba(0, 0, 0, 0.6)));
|
|
82
|
+
color: var(--geo-map-attribution-color, var(--color-text, light-dark(#333, #ddd)));
|
|
81
83
|
z-index: 4;
|
|
82
84
|
line-height: 1.4;
|
|
83
85
|
}
|
|
@@ -106,7 +108,7 @@ var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for
|
|
|
106
108
|
align-items: center;
|
|
107
109
|
justify-content: center;
|
|
108
110
|
background: var(--geo-map-overlay-bg, rgba(0, 0, 0, 0.35));
|
|
109
|
-
color: var(--geo-map-overlay-color, #fff);
|
|
111
|
+
color: var(--geo-map-overlay-color, var(--color-text-inverted, #fff));
|
|
110
112
|
opacity: 0;
|
|
111
113
|
transition: opacity 0.2s ease;
|
|
112
114
|
}
|
|
@@ -128,7 +130,7 @@ var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for
|
|
|
128
130
|
}
|
|
129
131
|
|
|
130
132
|
[part="activate"]:focus-visible {
|
|
131
|
-
outline: 2px solid #fff;
|
|
133
|
+
outline: 2px solid var(--color-text-inverted, #fff);
|
|
132
134
|
outline-offset: 4px;
|
|
133
135
|
}
|
|
134
136
|
|
|
@@ -175,24 +177,24 @@ var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for
|
|
|
175
177
|
display: flex;
|
|
176
178
|
align-items: center;
|
|
177
179
|
justify-content: center;
|
|
178
|
-
color: #666;
|
|
180
|
+
color: var(--color-text-muted, #666);
|
|
179
181
|
font-size: 0.875rem;
|
|
180
182
|
text-align: center;
|
|
181
183
|
padding: 1rem;
|
|
182
184
|
}
|
|
183
|
-
`;
|
|
185
|
+
`;M();var j=window.matchMedia("(prefers-reduced-motion: reduce)");var C=new Map;function T(l,t,e={}){let i=e.priority??10,r={impl:t,bundle:e.bundle,contract:e.contract,priority:i},o=C.get(l);if(customElements.get(l)){if(!o||o.priority>=i){o&&o.priority===i&&o.impl!==t&&console.warn(`[VB Bundle] Tag <${l}> already registered by "${o.bundle}" (priority ${o.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${l}> defined by "${o.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(o&&o.priority>=i){o.priority===i&&console.warn(`[VB Bundle] Tag <${l}> already registered by "${o.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}C.set(l,r),customElements.define(l,t)}function B(l){return`<svg viewBox="0 0 24 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
184
186
|
<path d="M12 0C5.373 0 0 5.373 0 12c0 9 12 24 12 24s12-15 12-24C24 5.373 18.627 0 12 0z" fill="${l}"/>
|
|
185
187
|
<circle cx="12" cy="12" r="5" fill="white" opacity="0.9"/>
|
|
186
|
-
</svg>`}var N=class extends g{static get observedAttributes(){return["lat","lng","zoom","marker","marker-color","provider","tile-url","interactive","static-only","src","place"]}#
|
|
187
|
-
<style>${
|
|
188
|
+
</svg>`}var N=class extends g{static get observedAttributes(){return["lat","lng","zoom","marker","marker-color","provider","tile-url","interactive","static-only","src","place"]}#o=null;#e=!1;constructor(){super(),this.attachShadow({mode:"open"})}get lat(){return parseFloat(this.getAttribute("lat")??"")}get lng(){return parseFloat(this.getAttribute("lng")??"")}get zoom(){let t=parseInt(this.getAttribute("zoom")??"",10);return t>=1&&t<=19?t:15}get showMarker(){return this.getAttribute("marker")!=="false"}get markerColor(){return this.getAttribute("marker-color")||"#e74c3c"}get provider(){return this.getAttribute("provider")||"osm"}get tileUrl(){return this.getAttribute("tile-url")||""}get interactive(){let t=this.getAttribute("interactive");return t==="eager"||t==="none"?t:"click"}get staticOnly(){return this.hasAttribute("static-only")}#t(){let t=parseFloat(this.getAttribute("lat")??""),e=parseFloat(this.getAttribute("lng")??"");if(!isNaN(t)&&!isNaN(e))return{lat:t,lng:e};let i=this.getAttribute("src");if(i){let n=this.#f(i);if(n)return n}let r=this.querySelector("address[data-lat][data-lng]");if(r){let n=parseFloat(r.dataset.lat??""),s=parseFloat(r.dataset.lng??"");if(!isNaN(n)&&!isNaN(s))return{lat:n,lng:s}}let o=this.getAttribute("place");if(o){let n=this.#m(o);if(n)return n}let a=document.querySelector('meta[name="geo.position"]');if(a){let s=(a.getAttribute("content")||"").split(";");if(s.length===2){let h=parseFloat(s[0]),c=parseFloat(s[1]);if(!isNaN(h)&&!isNaN(c))return{lat:h,lng:c}}}return null}#f(t){let e=document.getElementById(t);if(!e)return null;if(e.tagName==="ADDRESS"&&e.dataset.lat&&e.dataset.lng){let i=parseFloat(e.dataset.lat),r=parseFloat(e.dataset.lng);if(!isNaN(i)&&!isNaN(r))return{lat:i,lng:r}}return e.tagName==="SCRIPT"&&e.type==="application/ld+json"?this.#g(e):null}#m(t){let e=document.querySelectorAll('script[type="application/ld+json"]');for(let i of e)try{let r=JSON.parse(i.textContent);if(r.name===t){let o=r.geo;if(o){let a=parseFloat(o.latitude),n=parseFloat(o.longitude);if(!isNaN(a)&&!isNaN(n))return{lat:a,lng:n}}}}catch{}return null}#g(t){try{let i=JSON.parse(t.textContent).geo;if(i){let r=parseFloat(i.latitude),o=parseFloat(i.longitude);if(!isNaN(r)&&!isNaN(o))return{lat:r,lng:o}}}catch{}return null}setup(){this.render(),this.loadTiles(),this.#r()}attributeChangedCallback(t,e,i){e!==i&&this.isConnected&&(this.#o&&this.#u(),this.render(),this.loadTiles(),this.#r())}teardown(){this.#o&&(this.#o.destroy(),this.#o=null)}get data(){return{lat:isNaN(this.lat)?void 0:this.lat,lng:isNaN(this.lng)?void 0:this.lng,zoom:this.zoom,marker:this.showMarker,markerColor:this.markerColor}}set data(t){if(!t||typeof t!="object")return;let e=this.data;e.lat===t.lat&&e.lng===t.lng&&e.zoom===t.zoom||(t.lat!=null&&this.setAttribute("lat",String(t.lat)),t.lng!=null&&this.setAttribute("lng",String(t.lng)),t.zoom!=null&&this.setAttribute("zoom",String(t.zoom)),t.marker!=null&&this.setAttribute("marker",t.marker?"true":"false"),t.markerColor&&this.setAttribute("marker-color",t.markerColor),this.dispatchEvent(new CustomEvent("geo-map:data-changed",{detail:{data:this.data,source:"property"},bubbles:!0,composed:!0})))}get markers(){let t=this.#t();return t?[{lat:t.lat,lng:t.lng,color:this.markerColor}]:[]}render(){let t=this.#t(),e=t?.lat??NaN,i=t?.lng??NaN,r=!isNaN(e)&&!isNaN(i);this.children.length>0?this.setAttribute("data-has-caption",""):this.removeAttribute("data-has-caption");let a=r?`Map of ${e.toFixed(4)}, ${i.toFixed(4)}`:"Map",n=this.showMarker&&r?`<div part="marker" aria-hidden="true">${B(this.markerColor)}</div>`:"",h=r&&this.interactive!=="none"&&!this.staticOnly?'<div part="overlay"><button part="activate" aria-label="Activate interactive map" tabindex="0">Click to interact</button></div>':"";this.shadowRoot.innerHTML=`
|
|
189
|
+
<style>${S}</style>
|
|
188
190
|
<div part="container">
|
|
189
|
-
<div part="tiles" role="img" aria-label="${
|
|
190
|
-
${
|
|
191
|
+
<div part="tiles" role="img" aria-label="${a}"></div>
|
|
192
|
+
${n}
|
|
191
193
|
${h}
|
|
192
194
|
<div part="caption"><slot></slot></div>
|
|
193
195
|
<div part="attribution">
|
|
194
196
|
<a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener">© OpenStreetMap</a>
|
|
195
197
|
</div>
|
|
196
198
|
</div>
|
|
197
|
-
`}loadTiles(){let t=this.#t(),e=t?.lat??NaN,i=t?.lng??NaN;if(isNaN(e)||isNaN(i)){this.handleError("Missing or invalid lat/lng coordinates");return}let r=this.zoom,o=this.provider,{tileX:
|
|
199
|
+
`}loadTiles(){let t=this.#t(),e=t?.lat??NaN,i=t?.lng??NaN;if(isNaN(e)||isNaN(i)){this.handleError("Missing or invalid lat/lng coordinates");return}let r=this.zoom,o=this.provider,{tileX:a,tileY:n,pixelX:s,pixelY:h}=L(e,i,r),c=this.shadowRoot.querySelector('[part="tiles"]');if(!c)return;c.innerHTML="";let d=this,u=d.offsetWidth||400,f=d.offsetHeight||300,b=Math.round(u/2-256-s),F=Math.round(f/2-256-h);c.style.transform=`translate(${b}px, ${F}px)`;let y=0,m=0,w=9;for(let k=-1;k<=1;k++)for(let x=-1;x<=1;x++){let D=a+x,q=n+k,R=v(o,r,D,q,this.tileUrl),p=document.createElement("img");p.src=R,p.alt="",p.loading="lazy",p.draggable=!1,p.addEventListener("load",()=>{y++,y+m===w&&this.dispatchEvent(new CustomEvent("geo-map:ready",{bubbles:!0,detail:{lat:e,lng:i,zoom:r}}))}),p.addEventListener("error",()=>{m++,m===w?this.handleError("Failed to load map tiles"):y+m===w&&this.dispatchEvent(new CustomEvent("geo-map:ready",{bubbles:!0,detail:{lat:e,lng:i,zoom:r}}))}),c.appendChild(p)}}#r(){let t=this.shadowRoot.querySelector('[part="overlay"]');if(!t)return;let e=t.querySelector('[part="activate"]');t.addEventListener("mouseenter",()=>this.#s(),{once:!0}),e&&e.addEventListener("focus",()=>this.#s(),{once:!0}),e&&e.addEventListener("click",()=>this.#a()),this.interactive==="eager"&&requestAnimationFrame(()=>this.#a())}#s(){if(this.#e)return;let t=this.tileUrl;if(t)try{let o=new URL(t,location.origin);if(o.origin===location.origin){this.#e=!0;return}this.#e=!0;let a=document.createElement("link");a.rel="preconnect",a.href=o.origin,a.crossOrigin="",document.head.appendChild(a);return}catch{}this.#e=!0;let e=this.provider,i;e==="carto-light"||e==="carto-dark"?i="https://basemaps.cartocdn.com":i="https://tile.openstreetmap.org";let r=document.createElement("link");r.rel="preconnect",r.href=i,r.crossOrigin="",document.head.appendChild(r)}async#a(){if(this.#o)return;let t=this.#t(),e=t?.lat??NaN,i=t?.lng??NaN;if(isNaN(e)||isNaN(i))return;let{MapInteraction:r}=await Promise.resolve().then(()=>(P(),z));this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.focus(),this.setAttribute("data-interactive-active",""),this.#o=new r({shadow:this.shadowRoot,host:this,lat:e,lng:i,zoom:this.zoom,provider:this.provider,tileUrl:this.tileUrl,onDeactivate:()=>this.#u()}),this.dispatchEvent(new CustomEvent("geo-map:activate",{bubbles:!0,detail:{lat:e,lng:i,zoom:this.zoom}}))}#u(){this.#o&&(this.#o.destroy(),this.#o=null,this.removeAttribute("data-interactive-active"),this.render(),this.loadTiles(),this.#r())}handleError(t){let e=this.shadowRoot.querySelector('[part="container"]');e&&(e.setAttribute("data-state","error"),e.setAttribute("data-error",t)),this.dispatchEvent(new CustomEvent("geo-map:error",{bubbles:!0,detail:{message:t}}))}};T("geo-map",N);export{N as GeoMap};
|
|
198
200
|
//# sourceMappingURL=geo-map.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var m=window.matchMedia("(prefers-reduced-motion: reduce)");var f=new Map;function h(
|
|
1
|
+
var m=window.matchMedia("(prefers-reduced-motion: reduce)");var f=new Map;function h(o,t,e={}){let n=e.priority??10,s={impl:t,bundle:e.bundle,contract:e.contract,priority:n},r=f.get(o);if(customElements.get(o)){if(!r||r.priority>=n){r&&r.priority===n&&r.impl!==t&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${r.bundle}" (priority ${r.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${o}> defined by "${r.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(r&&r.priority>=n){r.priority===n&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${r.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}f.set(o,s),customElements.define(o,t)}var a=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,n,s){t.addEventListener(e,n,s),this.#t.push(()=>t.removeEventListener(e,n,s))}setup(){}teardown(){}setState(t,e){this.#e||(this.#e=this.attachInternals());let n=this.#e.states;try{e?n.add(t):n.delete(t)}catch{let s=`--${t}`;e?n.add(s):n.delete(s)}}_adoptInternals(t){this.#e||(this.#e=t)}};var d=class extends a{#t=null;#e=null;setup(){this.#n(),this.#s()}teardown(){this.#e?.disconnect()}#n(){let t=this.getAttribute("placeholder")||"Filter terms\u2026",e=document.createElement("input");e.type="search",e.placeholder=t,e.setAttribute("aria-label",t),e.setAttribute("data-glossary-search",""),e.addEventListener("input",()=>this.#r(e.value));let n=this.querySelector("main");n?n.prepend(e):this.prepend(e),this.#t=e}#r(t){let e=t.toLowerCase().trim(),n=this.querySelectorAll('.glossary-section, section[id^="glossary-"]');for(let s of n){let r=s.querySelectorAll("dt"),i=!1;for(let c of r){let p=c.textContent?.toLowerCase()||"",l=!e||p.includes(e),u=c.nextElementSibling;c.hidden=!l,u?.tagName==="DD"&&(u.hidden=!l),l&&(i=!0)}s.hidden=!i}}#s(){let t=this.querySelectorAll(".glossary-jump a");if(!t.length)return;let e=this.querySelectorAll('.glossary-section, section[id^="glossary-"]');if(e.length){this.#e=new IntersectionObserver(n=>{for(let s of n)if(s.isIntersecting){let r=s.target.id;for(let i of t){let c=i.getAttribute("href")===`#${r}`;i.setAttribute("aria-current",c?"true":"false")}}},{rootMargin:"-20% 0px -60% 0px"});for(let n of e)this.#e.observe(n)}}};h("glossary-index",d);export{d as GlossaryIndex};
|
|
2
2
|
//# sourceMappingURL=glossary-index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var y=window.matchMedia("(prefers-reduced-motion: reduce)");var b=new Map;function C(a,i,t={}){let e=t.priority??10,r={impl:i,bundle:t.bundle,contract:t.contract,priority:e},s=b.get(a);if(customElements.get(a)){if(!s||s.priority>=e){s&&s.priority===e&&s.impl!==i&&console.warn(`[VB Bundle] Tag <${a}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${t.bundle}".`);return}console.warn(`[VB Bundle] Tag <${a}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${t.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=e){s.priority===e&&console.warn(`[VB Bundle] Tag <${a}> already registered by "${s.bundle}". Skipping "${t.bundle}" (first wins at equal priority).`);return}b.set(a,r),customElements.define(a,i)}var u=class extends HTMLElement{#n=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0})))}disconnectedCallback(){for(let i of this.#n)i();this.#n=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(i,t,e,r){i.addEventListener(t,e,r),this.#n.push(()=>i.removeEventListener(t,e,r))}setup(){}teardown(){}};function m(a){return String(a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var p={user:'<path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/>',pencil:'<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/><path d="m15 5 4 4"/>',check:'<path d="M20 6 9 17l-5-5"/>',target:'<circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/>',alertTriangle:'<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/>',messageCircle:'<path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"/>',lightbulb:'<path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"/><path d="M9 18h6"/><path d="M10 22h4"/>',wrench:'<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"/>',heart:'<path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"/>',mapPin:'<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"/><circle cx="12" cy="10" r="3"/>',checkCircle:'<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><path d="m9 11 3 3L22 4"/>',x:'<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',download:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/>',send:'<path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"/><path d="m21.854 2.147-10.94 10.939"/>'},v={says:{label:"Says",icon:p.messageCircle,color:"#3b82f6"},thinks:{label:"Thinks",icon:p.lightbulb,color:"#8b5cf6"},does:{label:"Does",icon:p.wrench,color:"#f59e0b"},feels:{label:"Feels",icon:p.heart,color:"#ef4444"}};var g=class a extends u{static get observedAttributes(){return["src","compact","title","searchable"]}static#n=0;#c=null;#i=null;#r=null;#t=null;#s=null;#l="";#a=null;#e=[];#o=[];#h=new Map;#d=new Map;setup(){this.#l=`gloss-${++a.#n}`;let i=this.querySelector(":scope > dl");if(!i)return!1;let t=[...i.querySelectorAll(":scope > div[data-term-id]")];if(t.length===0)return!1;this.#e=t.map(s=>{let o=s.getAttribute("data-term-id")||"",d=s.getAttribute("data-category")||"Uncategorized",c=s.querySelector("dt"),h=s.querySelector("dd"),n=c?c.textContent.trim():"",l=h?h.textContent.trim():"";return s.id=o,{id:o,term:n,definition:l,category:d,el:s}});let e=new Set;this.#o=[];for(let s of this.#e)e.has(s.category)||(e.add(s.category),this.#o.push(s.category));i.remove(),this.#u();let r=this.getAttribute("src");if(r){this._loadSrc(r);return}this.dispatchEvent(new CustomEvent("glossary-wc:ready",{bubbles:!0,detail:{termCount:this.#e.length,categories:[...this.#o]}}))}teardown(){this.#a&&clearTimeout(this.#a);let i=this.querySelector(".gloss-title");i&&i.remove(),this.#c?.parentElement&&this.#c.parentElement.remove(),this.#i&&this.#i.remove(),this.#s&&this.#s.remove(),this.#t&&this.#t.remove(),this.#c=null,this.#i=null,this.#r=null,this.#t=null,this.#s=null,this.#e=[],this.#o=[],this.#h=new Map,this.#d=new Map}#u(){let i=this.getAttribute("title");if(i){let t=document.createElement("h2");t.className="gloss-title",t.textContent=i,this.#r=document.createElement("output"),this.#r.className="gloss-count",this.#r.textContent=String(this.#e.length),t.appendChild(this.#r),this.appendChild(t)}if(this.hasAttribute("searchable")){let t=document.createElement("div");t.className="gloss-search";let e=document.createElement("input");e.type="search",e.className="gloss-search-input",e.setAttribute("placeholder","Search terms\u2026"),e.setAttribute("aria-label","Search glossary terms"),t.appendChild(e),this.appendChild(t),this.#c=e,this.listen(e,"input",this.#f)}this.#p(),this.#s=document.createElement("div"),this.#s.className="gloss-categories",this.#s.setAttribute("role","region"),this.#s.setAttribute("aria-label","Glossary terms"),this.appendChild(this.#s);for(let t of this.#o){let e=this.#e.filter(r=>r.category===t);this.#m(t,e)}this.#t=document.createElement("div"),this.#t.className="gloss-live-region",this.#t.setAttribute("role","status"),this.#t.setAttribute("aria-live","polite"),this.#t.setAttribute("aria-atomic","true"),this.appendChild(this.#t)}#p(){this.#i=document.createElement("nav"),this.#i.className="gloss-jump-bar",this.#i.setAttribute("aria-label","Alphabet navigation");let i=new Set;for(let t of this.#e){let e=t.term.charAt(0).toUpperCase();/[A-Z]/.test(e)&&i.add(e)}for(let t=65;t<=90;t++){let e=String.fromCharCode(t),r=document.createElement("a");r.textContent=e,r.className="gloss-jump-letter",i.has(e)?(r.href=`#${this.#l}-letter-${e}`,r.setAttribute("data-active","")):(r.setAttribute("aria-disabled","true"),r.setAttribute("tabindex","-1")),this.#i.appendChild(r)}this.appendChild(this.#i)}#m(i,t){let e=document.createElement("section");e.className="gloss-category",e.setAttribute("data-category",i);let r=document.createElement("header");r.className="gloss-category-header";let s=document.createElement("button");s.type="button",s.className="gloss-category-toggle",s.setAttribute("aria-expanded","true"),s.innerHTML=`<span class="gloss-category-label">${m(i)}</span><output class="gloss-category-count">${t.length}</output><span class="gloss-chevron" aria-hidden="true"></span>`,r.appendChild(s),e.appendChild(r),this.#h.set(i,s);let o=document.createElement("dl");o.className="gloss-term-list";let d=[...t].sort((n,l)=>n.term.localeCompare(l.term)),c=[],h="";for(let n of d){let l=n.term.charAt(0).toUpperCase();if(/[A-Z]/.test(l)&&l!==h){h=l;let f=document.createElement("span");f.id=`${this.#l}-letter-${l}`,f.className="gloss-letter-anchor",o.appendChild(f)}n.el.className="gloss-term",n.el.id=n.id,o.appendChild(n.el),c.push(n.el)}this.#d.set(i,c),e.appendChild(o),this.#s.appendChild(e),this.listen(s,"click",()=>{let n=s.getAttribute("aria-expanded")==="true";s.setAttribute("aria-expanded",String(!n)),o.hidden=n})}#f=i=>{this.#a&&clearTimeout(this.#a),this.#a=setTimeout(()=>{let t=i.target.value.toLowerCase().trim();this.#g(t)},150)};#g(i){let t=0;for(let e of this.#e)i===""||e.term.toLowerCase().includes(i)||e.definition.toLowerCase().includes(i)?(e.el.removeAttribute("hidden"),t++):e.el.setAttribute("hidden","");for(let e of this.#o){let r=this.#d.get(e)||[],s=r[0]?.closest(".gloss-category");if(!s)continue;if(r.some(d=>!d.hasAttribute("hidden"))){s.removeAttribute("hidden");let d=r.filter(h=>!h.hasAttribute("hidden")).length,c=s.querySelector(".gloss-category-count");c&&(c.textContent=String(d))}else s.setAttribute("hidden","")}this.#r&&(this.#r.textContent=i===""?String(this.#e.length):`${t} / ${this.#e.length}`),i!==""&&this.#t&&(this.#t.textContent="",requestAnimationFrame(()=>{this.#t&&(this.#t.textContent=`${t} term${t!==1?"s":""} found`)})),this.dispatchEvent(new CustomEvent("glossary-wc:search",{bubbles:!0,detail:{query:i,matchCount:t}}))}attributeChangedCallback(i,t,e){t===e||!this.isConnected||i==="src"&&this._loadSrc(e)}async _loadSrc(i){if(i)try{let t=await fetch(i);if(!t.ok)throw new Error(`HTTP ${t.status}`);let e=await t.json();for(;this.firstChild;)this.firstChild.remove();let r=document.createElement("dl");for(let s of e.terms||[]){let o=document.createElement("div");o.setAttribute("data-term-id",s.id||""),o.setAttribute("data-category",s.category||"Uncategorized");let d=document.createElement("dt");d.textContent=s.term||"";let c=document.createElement("dd"),h=s.definition||"";if(s.seeAlso&&s.seeAlso.length>0){let n=s.seeAlso.map(l=>`<a href="#${m(l)}">${m(this.#b(l))}</a>`).join(", ");h+=` See also: ${n}.`}c.innerHTML=h,o.appendChild(d),o.appendChild(c),r.appendChild(o)}this.appendChild(r),e.title&&!this.getAttribute("title")&&this.setAttribute("title",e.title),this.teardown(),this.removeAttribute("data-upgraded"),this.setup()}catch(t){console.warn(`[glossary-wc] Failed to load src="${i}":`,t)}}#b(i){return i.replace(/[-_]/g," ").replace(/\b\w/g,t=>t.toUpperCase())}};C("glossary-wc",g);export{g as GlossaryWc};
|
|
1
|
+
var C=window.matchMedia("(prefers-reduced-motion: reduce)");var b=new Map;function y(c,t,e={}){let s=e.priority??10,r={impl:t,bundle:e.bundle,contract:e.contract,priority:s},i=b.get(c);if(customElements.get(c)){if(!i||i.priority>=s){i&&i.priority===s&&i.impl!==t&&console.warn(`[VB Bundle] Tag <${c}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${c}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=s){i.priority===s&&console.warn(`[VB Bundle] Tag <${c}> already registered by "${i.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}b.set(c,r),customElements.define(c,t)}var u=class extends HTMLElement{#a=[];#s;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#a)t();this.#a=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,s,r){t.addEventListener(e,s,r),this.#a.push(()=>t.removeEventListener(e,s,r))}setup(){}teardown(){}setState(t,e){this.#s||(this.#s=this.attachInternals());let s=this.#s.states;try{e?s.add(t):s.delete(t)}catch{let r=`--${t}`;e?s.add(r):s.delete(r)}}_adoptInternals(t){this.#s||(this.#s=t)}};function m(c){return String(c).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var p={user:'<path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/>',pencil:'<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/><path d="m15 5 4 4"/>',check:'<path d="M20 6 9 17l-5-5"/>',target:'<circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/>',alertTriangle:'<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/>',messageCircle:'<path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"/>',lightbulb:'<path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"/><path d="M9 18h6"/><path d="M10 22h4"/>',wrench:'<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"/>',heart:'<path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"/>',mapPin:'<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"/><circle cx="12" cy="10" r="3"/>',checkCircle:'<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><path d="m9 11 3 3L22 4"/>',x:'<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',download:'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/>',send:'<path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"/><path d="m21.854 2.147-10.94 10.939"/>'},v={says:{label:"Says",icon:p.messageCircle,color:"#3b82f6"},thinks:{label:"Thinks",icon:p.lightbulb,color:"#8b5cf6"},does:{label:"Does",icon:p.wrench,color:"#f59e0b"},feels:{label:"Feels",icon:p.heart,color:"#ef4444"}};var g=class c extends u{static get observedAttributes(){return["src","compact","title","searchable"]}static#a=0;#s=null;#r=null;#o=null;#t=null;#i=null;#l="";#c=null;#e=[];#n=[];#h=new Map;#d=new Map;setup(){this.#l=`gloss-${++c.#a}`;let t=this.querySelector(":scope > dl");if(!t)return!1;let e=[...t.querySelectorAll(":scope > div[data-term-id]")];if(e.length===0)return!1;this.#e=e.map(i=>{let o=i.getAttribute("data-term-id")||"",a=i.getAttribute("data-category")||"Uncategorized",l=i.querySelector("dt"),h=i.querySelector("dd"),n=l?l.textContent.trim():"",d=h?h.textContent.trim():"";return i.id=o,{id:o,term:n,definition:d,category:a,el:i}});let s=new Set;this.#n=[];for(let i of this.#e)s.has(i.category)||(s.add(i.category),this.#n.push(i.category));t.remove(),this.#u();let r=this.getAttribute("src");if(r){this._loadSrc(r);return}return this.dispatchEvent(new CustomEvent("glossary-wc:ready",{bubbles:!0,detail:{termCount:this.#e.length,categories:[...this.#n]}})),!0}get terms(){return this.#e.map(t=>({id:t.id,term:t.term,definition:t.definition,category:t.category}))}set terms(t){let e=Array.isArray(t)?t:[];for(;this.firstChild;)this.firstChild.remove();let s=document.createElement("dl");for(let r of e){let i=document.createElement("div");i.setAttribute("data-term-id",r.id||""),r.category&&i.setAttribute("data-category",r.category);let o=document.createElement("dt");o.textContent=r.term||"";let a=document.createElement("dd");a.textContent=r.definition||"",i.appendChild(o),i.appendChild(a),s.appendChild(i)}this.appendChild(s),this.teardown(),this.removeAttribute("data-upgraded"),this.setup(),this.dispatchEvent(new CustomEvent("glossary-wc:terms-changed",{detail:{terms:e,source:"property"},bubbles:!0}))}teardown(){this.#c&&clearTimeout(this.#c);let t=this.querySelector(".gloss-title");t&&t.remove(),this.#s?.parentElement&&this.#s.parentElement.remove(),this.#r&&this.#r.remove(),this.#i&&this.#i.remove(),this.#t&&this.#t.remove(),this.#s=null,this.#r=null,this.#o=null,this.#t=null,this.#i=null,this.#e=[],this.#n=[],this.#h=new Map,this.#d=new Map}#u(){let t=this.getAttribute("title");if(t){let e=document.createElement("h2");e.className="gloss-title",e.textContent=t,this.#o=document.createElement("output"),this.#o.className="gloss-count",this.#o.textContent=String(this.#e.length),e.appendChild(this.#o),this.appendChild(e)}if(this.hasAttribute("searchable")){let e=document.createElement("div");e.className="gloss-search";let s=document.createElement("input");s.type="search",s.className="gloss-search-input",s.setAttribute("placeholder","Search terms\u2026"),s.setAttribute("aria-label","Search glossary terms"),e.appendChild(s),this.appendChild(e),this.#s=s,this.listen(s,"input",this.#f)}this.#p(),this.#i=document.createElement("div"),this.#i.className="gloss-categories",this.#i.setAttribute("role","region"),this.#i.setAttribute("aria-label","Glossary terms"),this.appendChild(this.#i);for(let e of this.#n){let s=this.#e.filter(r=>r.category===e);this.#m(e,s)}this.#t=document.createElement("div"),this.#t.className="gloss-live-region",this.#t.setAttribute("role","status"),this.#t.setAttribute("aria-live","polite"),this.#t.setAttribute("aria-atomic","true"),this.appendChild(this.#t)}#p(){this.#r=document.createElement("nav"),this.#r.className="gloss-jump-bar",this.#r.setAttribute("aria-label","Alphabet navigation");let t=new Set;for(let e of this.#e){let s=e.term.charAt(0).toUpperCase();/[A-Z]/.test(s)&&t.add(s)}for(let e=65;e<=90;e++){let s=String.fromCharCode(e),r=document.createElement("a");r.textContent=s,r.className="gloss-jump-letter",t.has(s)?(r.href=`#${this.#l}-letter-${s}`,r.setAttribute("data-active","")):(r.setAttribute("aria-disabled","true"),r.setAttribute("tabindex","-1")),this.#r.appendChild(r)}this.appendChild(this.#r)}#m(t,e){let s=document.createElement("section");s.className="gloss-category",s.setAttribute("data-category",t);let r=document.createElement("header");r.className="gloss-category-header";let i=document.createElement("button");i.type="button",i.className="gloss-category-toggle",i.setAttribute("aria-expanded","true"),i.innerHTML=`<span class="gloss-category-label">${m(t)}</span><output class="gloss-category-count">${e.length}</output><span class="gloss-chevron" aria-hidden="true"></span>`,r.appendChild(i),s.appendChild(r),this.#h.set(t,i);let o=document.createElement("dl");o.className="gloss-term-list";let a=[...e].sort((n,d)=>n.term.localeCompare(d.term)),l=[],h="";for(let n of a){let d=n.term.charAt(0).toUpperCase();if(/[A-Z]/.test(d)&&d!==h){h=d;let f=document.createElement("span");f.id=`${this.#l}-letter-${d}`,f.className="gloss-letter-anchor",o.appendChild(f)}n.el.className="gloss-term",n.el.id=n.id,o.appendChild(n.el),l.push(n.el)}this.#d.set(t,l),s.appendChild(o),this.#i?.appendChild(s),this.listen(i,"click",()=>{let n=i.getAttribute("aria-expanded")==="true";i.setAttribute("aria-expanded",String(!n)),o.hidden=n})}#f=t=>{this.#c&&clearTimeout(this.#c),this.#c=setTimeout(()=>{let e=t.target.value.toLowerCase().trim();this.#g(e)},150)};#g(t){let e=0;for(let s of this.#e)t===""||s.term.toLowerCase().includes(t)||s.definition.toLowerCase().includes(t)?(s.el.removeAttribute("hidden"),e++):s.el.setAttribute("hidden","");for(let s of this.#n){let r=this.#d.get(s)||[],i=r[0]?.closest(".gloss-category");if(!i)continue;if(r.some(a=>!a.hasAttribute("hidden"))){i.removeAttribute("hidden");let a=r.filter(h=>!h.hasAttribute("hidden")).length,l=i.querySelector(".gloss-category-count");l&&(l.textContent=String(a))}else i.setAttribute("hidden","")}this.#o&&(this.#o.textContent=t===""?String(this.#e.length):`${e} / ${this.#e.length}`),t!==""&&this.#t&&(this.#t.textContent="",requestAnimationFrame(()=>{this.#t&&(this.#t.textContent=`${e} term${e!==1?"s":""} found`)})),this.dispatchEvent(new CustomEvent("glossary-wc:search",{bubbles:!0,detail:{query:t,matchCount:e}}))}attributeChangedCallback(t,e,s){e===s||!this.isConnected||t==="src"&&this._loadSrc(s)}async _loadSrc(t){if(t)try{let e=await fetch(t);if(!e.ok)throw new Error(`HTTP ${e.status}`);let s=await e.json();for(;this.firstChild;)this.firstChild.remove();let r=document.createElement("dl");for(let i of s.terms||[]){let o=document.createElement("div");o.setAttribute("data-term-id",i.id||""),o.setAttribute("data-category",i.category||"Uncategorized");let a=document.createElement("dt");a.textContent=i.term||"";let l=document.createElement("dd"),h=i.definition||"";if(i.seeAlso&&i.seeAlso.length>0){let n=i.seeAlso.map(d=>`<a href="#${m(d)}">${m(this.#b(d))}</a>`).join(", ");h+=` See also: ${n}.`}l.innerHTML=h,o.appendChild(a),o.appendChild(l),r.appendChild(o)}this.appendChild(r),s.title&&!this.getAttribute("title")&&this.setAttribute("title",s.title),this.teardown(),this.removeAttribute("data-upgraded"),this.setup()}catch(e){console.warn(`[glossary-wc] Failed to load src="${t}":`,e)}}#b(t){return t.replace(/[-_]/g," ").replace(/\b\w/g,e=>e.toUpperCase())}};y("glossary-wc",g);export{g as GlossaryWc};
|
|
2
2
|
//# sourceMappingURL=glossary-wc.js.map
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
var
|
|
2
|
-
<div style="display:flex;flex-wrap:wrap;gap:${
|
|
3
|
-
<label style="display:flex;align-items:center;gap:${
|
|
1
|
+
var F=window.matchMedia("(prefers-reduced-motion: reduce)");var C=new Map;function k(t,s,o={}){let e=o.priority??10,n={impl:s,bundle:o.bundle,contract:o.contract,priority:e},i=C.get(t);if(customElements.get(t)){if(!i||i.priority>=e){i&&i.priority===e&&i.impl!==s&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${o.bundle}".`);return}console.warn(`[VB Bundle] Tag <${t}> defined by "${i.bundle}" cannot be replaced (customElements.define is permanent). "${o.bundle}" has higher priority but arrived late.`);return}if(i&&i.priority>=e){i.priority===e&&console.warn(`[VB Bundle] Tag <${t}> already registered by "${i.bundle}". Skipping "${o.bundle}" (first wins at equal priority).`);return}C.set(t,n),customElements.define(t,s)}var p=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let s of this.#t)s();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(s,o,e,n){s.addEventListener(o,e,n),this.#t.push(()=>s.removeEventListener(o,e,n))}setup(){}teardown(){}setState(s,o){this.#e||(this.#e=this.attachInternals());let e=this.#e.states;try{o?e.add(s):e.delete(s)}catch{let n=`--${s}`;o?e.add(n):e.delete(n)}}_adoptInternals(s){this.#e||(this.#e=s)}};var g="[data-copy], [data-copy-target], [data-paste-target]",D="Copied to clipboard",I="Pasted from clipboard",m=new WeakMap;async function v(t,s={}){if(t==null||t==="")return!1;let{button:o,announceMessage:e=D,duration:n=1500}=s;try{await navigator.clipboard.writeText(t)}catch{return!1}return N({button:o,duration:n,announceMessage:e,eventDetail:{text:t}}),!0}function N({button:t,duration:s,announceMessage:o,eventDetail:e,state:n="copied",eventName:i="copy"}){if(t){t.dataset.state=n;let r=m.get(t);r&&clearTimeout(r),m.set(t,setTimeout(()=>{delete t.dataset.state,m.delete(t)},s)),t.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:e}))}_(o,t??document.body)}async function z(t,s={}){let{button:o,announceMessage:e=I,duration:n=1500}=s,i;try{i=await navigator.clipboard.readText()}catch{return null}return t&&("value"in t&&(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)?t.value=i:t.textContent=i,t.dispatchEvent(new Event("input",{bubbles:!0}))),N({button:o,duration:n,announceMessage:e,eventDetail:{text:i},state:"pasted",eventName:"paste"}),i}function A(t=document){t.querySelectorAll(g).forEach(y)}function y(t){t.hasAttribute("data-copy-init")||(t.setAttribute("data-copy-init",""),t.addEventListener("click",()=>{if(t.dataset.pasteTarget){let o=document.querySelector(t.dataset.pasteTarget);if(!o)return;z(o,{button:t});return}let s=B(t);s&&v(s,{button:t})}))}function B(t){if(t.dataset.copy)return t.dataset.copy;if(t.dataset.copyTarget){let s=document.querySelector(t.dataset.copyTarget);if(!s)return"";let o=t.dataset.copyAttr;return o?s.getAttribute(o)??"":s.textContent??""}return""}function _(t,s){let o=document.createElement("div");o.setAttribute("role","status"),o.setAttribute("aria-live","polite"),o.className="visually-hidden",o.textContent=t,s.appendChild(o),setTimeout(()=>o.remove(),1e3)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>A()):A();var R=new MutationObserver(t=>{for(let s of t)for(let o of s.addedNodes){if(o.nodeType!==Node.ELEMENT_NODE)continue;let e=o;e.matches(g)&&y(e),e.querySelectorAll(g).forEach(n=>y(n))}});R.observe(document.documentElement,{childList:!0,subtree:!0});function M(t,{type:s="linear",angle:o=90,interpolation:e="oklab"}={}){if(t.length<2)return"transparent";let i=[...t].sort((a,l)=>a.position-l.position).map(a=>`${a.color} ${a.position}%`).join(", "),r=e!=="srgb"?` in ${e}`:"";return s==="radial"?`radial-gradient(circle${r}, ${i})`:`linear-gradient(${o}deg${r}, ${i})`}function $(t){if(!t)return T();let s=t.split(",").map(o=>o.trim()).filter(Boolean);return s.length<2?T():s.map((o,e)=>({color:o,position:Math.round(e/(s.length-1)*100)}))}function T(){return[{color:"#6366f1",position:0},{color:"#ec4899",position:100}]}var x=class extends p{static observedAttributes=["colors","type","angle","interpolation","show-export","show-controls"];#t=[];#e="linear";#o=90;#s="oklab";setup(){return this.#t=$(this.getAttribute("colors")??""),this.#e=this.getAttribute("type")||"linear",this.#o=Number(this.getAttribute("angle"))||90,this.#s=this.getAttribute("interpolation")||"oklab",this.#n(),!0}attributeChangedCallback(s,o,e){o===e||!this.isConnected||(s==="colors"&&(this.#t=$(e)),s==="type"&&(this.#e=e||"linear"),s==="angle"&&(this.#o=Number(e)||90),s==="interpolation"&&(this.#s=e||"oklab"),this.#n())}get css(){return M(this.#t,{type:this.#e,angle:this.#o,interpolation:this.#s})}#n(){let s=this.hasAttribute("show-export"),o=this.getAttribute("show-controls")!=="false",e=this.css,n="var(--size-m, 1rem)",i="var(--size-s, 0.75rem)",r="var(--size-xs, 0.5rem)",a="var(--radius-m, 0.5rem)",l="var(--color-border, #ddd)",E="var(--color-surface, #fff)",f="var(--color-text-muted, #666)",h="var(--font-mono, monospace)",b="var(--font-size-sm, 0.875rem)",u="var(--font-size-xs, 0.75rem)",L=`<div class="gb-preview" style="height:4rem;border-radius:${a};background:${e};border:1px solid ${l}"></div>`,w=`font:inherit;font-size:${b};padding:0.25rem 0.5rem;border:1px solid ${l};border-radius:4px;background:${E}`,S="";o&&(S=`<div style="display:flex;flex-direction:column;gap:${i};font-size:${b}">
|
|
2
|
+
<div style="display:flex;flex-wrap:wrap;gap:${n};align-items:center">
|
|
3
|
+
<label style="display:flex;align-items:center;gap:${r}">
|
|
4
4
|
Type
|
|
5
|
-
<select class="gb-type" style="${
|
|
5
|
+
<select class="gb-type" style="${w}">
|
|
6
6
|
<option value="linear"${this.#e==="linear"?" selected":""}>Linear</option>
|
|
7
7
|
<option value="radial"${this.#e==="radial"?" selected":""}>Radial</option>
|
|
8
8
|
</select>
|
|
9
9
|
</label>
|
|
10
|
-
<label style="display:flex;align-items:center;gap:${
|
|
10
|
+
<label style="display:flex;align-items:center;gap:${r}${this.#e==="radial"?";opacity:0.4;pointer-events:none":""}">
|
|
11
11
|
Angle
|
|
12
12
|
<input type="range" class="gb-angle" min="0" max="360" value="${this.#o}" style="width:8rem;accent-color:var(--color-interactive,oklch(55% .2 260))">
|
|
13
|
-
<span class="gb-angle-value" style="min-width:2.5em;font-family:${
|
|
13
|
+
<span class="gb-angle-value" style="min-width:2.5em;font-family:${h};font-size:${u}">${this.#o}\xB0</span>
|
|
14
14
|
</label>
|
|
15
15
|
</div>
|
|
16
|
-
<label style="display:inline-flex;align-items:center;gap:${
|
|
16
|
+
<label style="display:inline-flex;align-items:center;gap:${r}">
|
|
17
17
|
Color Space
|
|
18
|
-
<select class="gb-space" style="${
|
|
18
|
+
<select class="gb-space" style="${w}">
|
|
19
19
|
<option value="oklab"${this.#s==="oklab"?" selected":""}>oklab</option>
|
|
20
20
|
<option value="oklch"${this.#s==="oklch"?" selected":""}>oklch</option>
|
|
21
21
|
<option value="srgb"${this.#s==="srgb"?" selected":""}>sRGB</option>
|
|
22
22
|
</select>
|
|
23
23
|
</label>
|
|
24
|
-
</div>`);let
|
|
25
|
-
<input type="color" value="${
|
|
26
|
-
style="width:1.75rem;height:1.75rem;padding:0;border:1px solid ${
|
|
27
|
-
<input type="range" min="0" max="100" value="${
|
|
28
|
-
style="flex:1;min-width:3rem;max-width:8rem;accent-color:${
|
|
29
|
-
<span style="font-family:${
|
|
30
|
-
${this.#t.length>2?`<button type="button" class="gb-remove" data-i="${
|
|
31
|
-
style="all:unset;cursor:pointer;font-size:1rem;color:${
|
|
32
|
-
</div>`}).join(""),
|
|
24
|
+
</div>`);let q=[...this.#t].map((c,d)=>({...c,origIndex:d})).sort((c,d)=>c.position-d.position).map(c=>{let d=c.origIndex;return`<div style="display:flex;align-items:center;gap:0.375rem" data-stop="${d}">
|
|
25
|
+
<input type="color" value="${c.color}" class="gb-stop-color" data-i="${d}"
|
|
26
|
+
style="width:1.75rem;height:1.75rem;padding:0;border:1px solid ${l};border-radius:4px;cursor:pointer;flex-shrink:0">
|
|
27
|
+
<input type="range" min="0" max="100" value="${c.position}" class="gb-stop-pos-range" data-i="${d}"
|
|
28
|
+
style="flex:1;min-width:3rem;max-width:8rem;accent-color:${c.color}">
|
|
29
|
+
<span style="font-family:${h};font-size:${u};min-width:2.5em;text-align:right" class="gb-stop-pos-label" data-i="${d}">${c.position}%</span>
|
|
30
|
+
${this.#t.length>2?`<button type="button" class="gb-remove" data-i="${d}"
|
|
31
|
+
style="all:unset;cursor:pointer;font-size:1rem;color:${f};padding:0 0.25rem" title="Remove stop">×</button>`:""}
|
|
32
|
+
</div>`}).join(""),O=`<button type="button" class="gb-add"
|
|
33
33
|
style="all:unset;cursor:pointer;font-size:${b};color:var(--color-interactive,oklch(55% .2 260));font-weight:600">+ Add Stop</button>`;this.innerHTML=`
|
|
34
|
-
<div style="display:flex;flex-direction:column;gap:${
|
|
34
|
+
<div style="display:flex;flex-direction:column;gap:${n}">
|
|
35
|
+
${L}
|
|
35
36
|
${S}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<span style="font-size:${p};font-weight:600;color:${h};text-transform:uppercase;letter-spacing:0.05em">Color Stops</span>
|
|
39
|
-
${C}
|
|
37
|
+
<div style="display:flex;flex-direction:column;gap:${r}">
|
|
38
|
+
<span style="font-size:${u};font-weight:600;color:${f};text-transform:uppercase;letter-spacing:0.05em">Color Stops</span>
|
|
40
39
|
${q}
|
|
40
|
+
${O}
|
|
41
41
|
</div>
|
|
42
|
-
<div style="display:flex;flex-direction:column;gap:${
|
|
43
|
-
<span style="font-size:${
|
|
44
|
-
<div style="display:flex;align-items:start;gap:${
|
|
45
|
-
<div style="flex:1;font-family:${
|
|
46
|
-
${
|
|
47
|
-
style="all:unset;cursor:pointer;font-size:${
|
|
42
|
+
<div style="display:flex;flex-direction:column;gap:${r}">
|
|
43
|
+
<span style="font-size:${u};font-weight:600;color:${f};text-transform:uppercase;letter-spacing:0.05em">Code</span>
|
|
44
|
+
<div style="display:flex;align-items:start;gap:${r}">
|
|
45
|
+
<div style="flex:1;font-family:${h};font-size:${u};padding:${i};background:var(--color-surface-raised,#f5f5f5);border-radius:${a};word-break:break-all;color:var(--color-text,#222)" class="gb-css-output">${e}</div>
|
|
46
|
+
${s?`<button type="button" class="gb-copy"
|
|
47
|
+
style="all:unset;cursor:pointer;font-size:${u};padding:0.35rem 0.75rem;border:1px solid ${l};border-radius:4px;background:${E};white-space:nowrap;flex-shrink:0">Copy CSS</button>`:""}
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
50
50
|
</div>
|
|
51
|
-
`,this.#a()}#a(){this.querySelector(".gb-type")?.addEventListener("change",
|
|
51
|
+
`,this.#a()}#a(){this.querySelector(".gb-type")?.addEventListener("change",e=>{let n=e.target;this.#e=n.value,this.#n(),this.#i()});let s=this.querySelector(".gb-angle"),o=this.querySelector(".gb-angle-value");s?.addEventListener("input",e=>{let n=e.target;this.#o=Number(n.value),o&&(o.textContent=`${this.#o}\xB0`);let i=this.querySelector(".gb-preview");i&&(i.style.background=this.css),this.#i()}),this.querySelector(".gb-space")?.addEventListener("change",e=>{let n=e.target;this.#s=n.value,this.#n(),this.#i()}),this.querySelectorAll(".gb-stop-color").forEach(e=>{e.addEventListener("input",n=>{let i=n.target,r=Number(i.dataset.i);this.#t[r].color=i.value,this.#r(),this.#i()})}),this.querySelectorAll(".gb-stop-pos-range").forEach(e=>{e.addEventListener("input",n=>{let i=n.target,r=Number(i.dataset.i),a=Math.max(0,Math.min(100,Number(i.value)||0));this.#t[r].position=a;let l=this.querySelector(`.gb-stop-pos-label[data-i="${r}"]`);l&&(l.textContent=`${a}%`),this.#r(),this.#i()})}),this.querySelectorAll(".gb-remove").forEach(e=>{e.addEventListener("click",n=>{let i=n.target,r=Number(i.dataset.i);this.#t.splice(r,1),this.#n(),this.#i()})}),this.querySelector(".gb-add")?.addEventListener("click",()=>{let e=this.#t[this.#t.length-1],n=this.#t[this.#t.length-2],i=Math.round((n.position+e.position)/2);this.#t.splice(this.#t.length-1,0,{color:"#888888",position:i}),this.#n(),this.#i()}),this.querySelector(".gb-copy")?.addEventListener("click",e=>{let n=e.target;n&&v(this.css,{button:n,announceMessage:"Gradient CSS copied"})})}#r(){let s=this.css,o=this.querySelector(".gb-preview");o&&(o.style.background=s);let e=this.querySelector(".gb-css-output");e&&(e.textContent=s)}#i(){this.dispatchEvent(new CustomEvent("gradient-builder:change",{bubbles:!0,detail:{css:this.css,stops:[...this.#t],type:this.#e,angle:this.#o,interpolation:this.#s}}))}};k("gradient-builder",x);export{x as GradientBuilder};
|
|
52
52
|
//# sourceMappingURL=gradient-builder.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var C=window.matchMedia("(prefers-reduced-motion: reduce)");var p=new Map;function m(n,t,e={}){let o=e.priority??10,r={impl:t,bundle:e.bundle,contract:e.contract,priority:o},i=p.get(n);if(customElements.get(n)){if(!i||i.priority>=o){i&&i.priority===o&&i.impl!==t&&console.warn(`[VB Bundle] Tag <${n}> already registered by "${i.bundle}" (priority ${i.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${n}> 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 <${n}> already registered by "${i.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}p.set(n,r),customElements.define(n,t)}var s=class extends HTMLElement{#t=[];#e;connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&(this.setAttribute("data-upgraded",""),queueMicrotask(()=>{this.dispatchEvent(new CustomEvent(`${this.localName}:upgraded`,{bubbles:!0}))}))}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,o,r){t.addEventListener(e,o,r),this.#t.push(()=>t.removeEventListener(e,o,r))}setup(){}teardown(){}setState(t,e){this.#e||(this.#e=this.attachInternals());let o=this.#e.states;try{e?o.add(t):o.delete(t)}catch{let r=`--${t}`;e?o.add(r):o.delete(r)}}_adoptInternals(t){this.#e||(this.#e=t)}};var c="[data-copy], [data-copy-target], [data-paste-target]",y="Copied to clipboard",E="Pasted from clipboard",a=new WeakMap;async function l(n,t={}){if(n==null||n==="")return!1;let{button:e,announceMessage:o=y,duration:r=1500}=t;try{await navigator.clipboard.writeText(n)}catch{return!1}return b({button:e,duration:r,announceMessage:o,eventDetail:{text:n}}),!0}function b({button:n,duration:t,announceMessage:e,eventDetail:o,state:r="copied",eventName:i="copy"}){if(n){n.dataset.state=r;let f=a.get(n);f&&clearTimeout(f),a.set(n,setTimeout(()=>{delete n.dataset.state,a.delete(n)},t)),n.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:o}))}T(e,n??document.body)}async function v(n,t={}){let{button:e,announceMessage:o=E,duration:r=1500}=t,i;try{i=await navigator.clipboard.readText()}catch{return null}return n&&("value"in n&&(n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLSelectElement)?n.value=i:n.textContent=i,n.dispatchEvent(new Event("input",{bubbles:!0}))),b({button:e,duration:r,announceMessage:o,eventDetail:{text:i},state:"pasted",eventName:"paste"}),i}function h(n=document){n.querySelectorAll(c).forEach(d)}function d(n){n.hasAttribute("data-copy-init")||(n.setAttribute("data-copy-init",""),n.addEventListener("click",()=>{if(n.dataset.pasteTarget){let e=document.querySelector(n.dataset.pasteTarget);if(!e)return;v(e,{button:n});return}let t=w(n);t&&l(t,{button:n})}))}function w(n){if(n.dataset.copy)return n.dataset.copy;if(n.dataset.copyTarget){let t=document.querySelector(n.dataset.copyTarget);if(!t)return"";let e=n.dataset.copyAttr;return e?t.getAttribute(e)??"":t.textContent??""}return""}function T(n,t){let e=document.createElement("div");e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.className="visually-hidden",e.textContent=n,t.appendChild(e),setTimeout(()=>e.remove(),1e3)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>h()):h();var A=new MutationObserver(n=>{for(let t of n)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let o=e;o.matches(c)&&d(o),o.querySelectorAll(c).forEach(r=>d(r))}});A.observe(document.documentElement,{childList:!0,subtree:!0});var u=class extends s{#t;#e=new WeakSet;setup(){this.#n(),this.#t=new MutationObserver(t=>{for(let e of t)e.type==="childList"&&this.#n()}),this.#t.observe(this,{childList:!0,subtree:!0})}teardown(){this.#t?.disconnect()}#n(){let e=(this.getAttribute("levels")||"h2,h3").split(",").map(r=>r.trim()).join(","),o=this.querySelectorAll(e);for(let r of o)this.#e.has(r)||(this.#o(r),this.#e.add(r))}#o(t){if(t.closest("dialog, [data-toc-ignore]")||t.hasAttribute("data-toc-ignore")||(t.id||(t.id=this.#r(t.textContent)),t.querySelector(".heading-anchor")))return;let e=document.createElement("a");e.className="heading-anchor",e.href=`#${t.id}`,e.setAttribute("aria-label",`Link to ${t.textContent.trim()}`),e.innerHTML='<icon-wc name="link" size="sm"></icon-wc>',e.addEventListener("click",o=>{o.preventDefault(),this.#i(t,e)}),t.appendChild(e),t.hasAttribute("tabindex")||t.setAttribute("tabindex","-1")}#r(t){let e=t.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").substring(0,50),o=e,r=1;for(;document.getElementById(o);)o=`${e}-${r}`,r++;return o}async#i(t,e){let o=new URL(window.location.href);if(o.hash=t.id,window.history.pushState(null,"",o),t.scrollIntoView({behavior:"smooth",block:"start"}),t.focus(),await l(o.href,{button:e,announceMessage:"Link copied to clipboard"})){let i=e.innerHTML;e.innerHTML='<icon-wc name="check" size="sm"></icon-wc>',e.classList.add("copied"),setTimeout(()=>{e.innerHTML=i,e.classList.remove("copied")},1500)}this.dispatchEvent(new CustomEvent("heading-links:navigate",{bubbles:!0,detail:{id:t.id,url:o.href}}))}};m("heading-links",u);export{u as HeadingLinks};
|
|
2
2
|
//# sourceMappingURL=heading-links.js.map
|