vanilla-breeze 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/cdn/components/adr-record.js +383 -0
  2. package/dist/cdn/components/adr-wc.js +403 -0
  3. package/dist/cdn/components/analytics-panel.js +34 -0
  4. package/dist/cdn/components/author-index.js +3 -0
  5. package/dist/cdn/components/brand-mark.js +2 -0
  6. package/dist/cdn/components/calendar-wc.js +2 -2
  7. package/dist/cdn/components/carousel-wc.js +1 -1
  8. package/dist/cdn/components/chart-wc.js +25 -25
  9. package/dist/cdn/components/color-palette.js +13 -7
  10. package/dist/cdn/components/comment-wc.js +2 -0
  11. package/dist/cdn/components/consent-banner.js +1 -1
  12. package/dist/cdn/components/content-lens.js +2 -0
  13. package/dist/cdn/components/day-view.js +2 -0
  14. package/dist/cdn/components/empathy-map.js +42 -25
  15. package/dist/cdn/components/flow-diagram.js +2 -0
  16. package/dist/cdn/components/font-pairer.js +108 -0
  17. package/dist/cdn/components/gantt-chart.js +2 -0
  18. package/dist/cdn/components/geo-map.js +7 -7
  19. package/dist/cdn/components/glossary-wc.js +2 -0
  20. package/dist/cdn/components/gradient-builder.js +52 -0
  21. package/dist/cdn/components/highlight-wc.js +3 -0
  22. package/dist/cdn/components/manifest.json +134 -26
  23. package/dist/cdn/components/markdown-viewer.js +3 -3
  24. package/dist/cdn/components/motion-specimen.js +21 -0
  25. package/dist/cdn/components/note-wc.js +3 -0
  26. package/dist/cdn/components/notification-wc.js +37 -0
  27. package/dist/cdn/components/page-info.js +55 -24
  28. package/dist/cdn/components/page-toc.js +1 -1
  29. package/dist/cdn/components/popularity-index.js +9 -0
  30. package/dist/cdn/components/print-page.js +1 -1
  31. package/dist/cdn/components/recently-visited.js +3 -0
  32. package/dist/cdn/components/review-surface.js +541 -0
  33. package/dist/cdn/components/selection-menu.js +2 -0
  34. package/dist/cdn/components/semantic-palette.js +30 -0
  35. package/dist/cdn/components/settings-panel.js +55 -51
  36. package/dist/cdn/components/share-wc.js +2 -2
  37. package/dist/cdn/components/site-map-wc.js +2 -0
  38. package/dist/cdn/components/spacing-specimen.js +5 -5
  39. package/dist/cdn/components/split-surface.js +1 -1
  40. package/dist/cdn/components/text-reader.js +2 -2
  41. package/dist/cdn/components/theme-export.js +18 -0
  42. package/dist/cdn/components/theme-picker.js +58 -58
  43. package/dist/cdn/components/token-specimen.js +25 -20
  44. package/dist/cdn/components/topic-map.js +3 -0
  45. package/dist/cdn/components/trust-filter.js +4 -0
  46. package/dist/cdn/components/type-specimen.js +16 -13
  47. package/dist/cdn/components/user-journey.js +48 -30
  48. package/dist/cdn/components/user-persona.js +17 -15
  49. package/dist/cdn/components/user-story.js +55 -22
  50. package/dist/cdn/components/watch-wc.js +3 -0
  51. package/dist/cdn/components/week-view.js +2 -0
  52. package/dist/cdn/components/work-item.js +446 -0
  53. package/dist/cdn/packs/design-system.full.js +124 -47
  54. package/dist/cdn/packs/effects.full.js +1 -1
  55. package/dist/cdn/packs/kawaii.full.css +1 -1
  56. package/dist/cdn/packs/kawaii.full.js +1 -1
  57. package/dist/cdn/packs/kawaii.theme.css +1 -1
  58. package/dist/cdn/packs/manifest.json +10 -40
  59. package/dist/cdn/packs/prototype.full.js +1 -1
  60. package/dist/cdn/packs/ui.full.css +1 -1
  61. package/dist/cdn/packs/ui.full.js +50 -50
  62. package/dist/cdn/packs/ux-planning.full.css +1 -1
  63. package/dist/cdn/packs/ux-planning.full.js +1546 -92
  64. package/dist/cdn/themes/8bit.css +1 -1
  65. package/dist/cdn/themes/alpha1999.css +1 -1
  66. package/dist/cdn/themes/bauhaus.css +1 -1
  67. package/dist/cdn/themes/brutalist.css +1 -1
  68. package/dist/cdn/themes/claymorphism.css +1 -1
  69. package/dist/cdn/themes/cottagecore.css +1 -1
  70. package/dist/cdn/themes/cyber.css +1 -1
  71. package/dist/cdn/themes/genai.css +1 -1
  72. package/dist/cdn/themes/glassmorphism.css +1 -1
  73. package/dist/cdn/themes/kawaii.css +1 -1
  74. package/dist/cdn/themes/magna.css +1 -1
  75. package/dist/cdn/themes/manifest.json +20 -20
  76. package/dist/cdn/themes/nes.css +1 -1
  77. package/dist/cdn/themes/neumorphism.css +1 -1
  78. package/dist/cdn/themes/organic.css +1 -1
  79. package/dist/cdn/themes/rough.css +1 -1
  80. package/dist/cdn/themes/startup.css +1 -1
  81. package/dist/cdn/themes/super2026.css +1 -1
  82. package/dist/cdn/themes/terminal.css +1 -1
  83. package/dist/cdn/themes/vaporwave.css +1 -1
  84. package/dist/cdn/themes/win9x.css +1 -1
  85. package/dist/cdn/vanilla-breeze-charts.js +25 -25
  86. package/dist/cdn/vanilla-breeze-core.css +1 -1
  87. package/dist/cdn/vanilla-breeze-core.js +119 -47
  88. package/dist/cdn/vanilla-breeze-dev.js +1 -1
  89. package/dist/cdn/vanilla-breeze-extras.js +154 -74
  90. package/dist/cdn/vanilla-breeze.css +1 -1
  91. package/dist/cdn/vanilla-breeze.js +1988 -248
  92. package/package.json +8 -6
  93. package/dist/cdn/packs/retro.bundle.js +0 -2
  94. package/dist/cdn/packs/retro.components.js +0 -1
  95. package/dist/cdn/packs/retro.effects.css +0 -2
  96. package/dist/cdn/packs/retro.effects.js +0 -16
  97. package/dist/cdn/packs/retro.full.css +0 -5
  98. package/dist/cdn/packs/retro.full.js +0 -16
  99. package/dist/cdn/packs/retro.theme.css +0 -2
@@ -1,4 +1,4 @@
1
- var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for(var e in t)X(l,e,{get:t[e],enumerable:!0})};function $(l,t,e){let i=Math.pow(2,e),o=l*Math.PI/180,s=(t+180)/360*i,a=(1-Math.log(Math.tan(o)+1/Math.cos(o))/Math.PI)/2*i,n=Math.floor(s),r=Math.floor(a),c=Math.round((s-n)*256),h=Math.round((a-r)*256);return{tileX:n,tileY:r,pixelX:c,pixelY:h}}function S(l,t,e){let i=256*Math.pow(2,e),o=l/i*360-180;return{lat:Math.atan(Math.sinh(Math.PI*(1-2*t/i)))*180/Math.PI,lng:o}}function v(l,t,e,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 k=A(()=>{});var P={};Y(P,{MapInteraction:()=>E});var E,F=A(()=>{k();E=class{#o;#a;#t;#m;#g;#s=0;#i=0;#r=15;#u=1;#f=19;#l=0;#n=0;#c=new Map;#e=null;#v=0;#b=0;#y=!1;#w=0;#x=0;constructor({shadow:t,host:e,lat:i,lng:o,zoom:s,provider:a,onDeactivate:n}){this.#o=t,this.#a=e,this.#m=a,this.#g=n,this.#r=s,this.#t=t.querySelector('[part="tiles"]'),this.#e=t.querySelector('[part="marker"]');let r=256*Math.pow(2,s),c=i*Math.PI/180;this.#s=(o+180)/360*r,this.#i=(1-Math.log(Math.tan(c)+1/Math.cos(c))/Math.PI)/2*r,this.#v=this.#s,this.#b=this.#i,this.#l=this.#a.offsetWidth||400,this.#n=this.#a.offsetHeight||300,this.#t.innerHTML="",this.#t.style.transform="",this.#e&&(this.#e.style.position="absolute",this.#e.style.top="",this.#e.style.left="",this.#t.appendChild(this.#e)),this.#S(),this.#h()}#S(){this.#t.addEventListener("pointerdown",this.#N),this.#t.addEventListener("wheel",this.#A,{passive:!1}),this.#a.addEventListener("keydown",this.#L)}#N=t=>{t.button===0&&(t.preventDefault(),this.#y=!0,this.#w=t.clientX,this.#x=t.clientY,this.#t.setPointerCapture(t.pointerId),this.#t.setAttribute("data-dragging",""),this.#t.addEventListener("pointermove",this.#M),this.#t.addEventListener("pointerup",this.#k))};#M=t=>{if(!this.#y)return;let e=t.clientX-this.#w,i=t.clientY-this.#x;this.#w=t.clientX,this.#x=t.clientY,this.#s-=e,this.#i-=i,this.#d(),this.#h()};#k=t=>{this.#y=!1,this.#t.releasePointerCapture(t.pointerId),this.#t.removeAttribute("data-dragging"),this.#t.removeEventListener("pointermove",this.#M),this.#t.removeEventListener("pointerup",this.#k),this.#p()};#A=t=>{t.preventDefault();let e=t.ctrlKey?-t.deltaY*.01:-Math.sign(t.deltaY),i=Math.round(Math.max(this.#u,Math.min(this.#f,this.#r+e)));if(i===this.#r)return;let o=this.#a.getBoundingClientRect(),s=t.clientX-o.left,a=t.clientY-o.top;this.#E(i,s,a)};#L=t=>{switch(t.key){case"ArrowLeft":t.preventDefault(),this.#s-=80,this.#d(),this.#h(),this.#p();break;case"ArrowRight":t.preventDefault(),this.#s+=80,this.#d(),this.#h(),this.#p();break;case"ArrowUp":t.preventDefault(),this.#i-=80,this.#d(),this.#h(),this.#p();break;case"ArrowDown":t.preventDefault(),this.#i+=80,this.#d(),this.#h(),this.#p();break;case"+":case"=":t.preventDefault(),this.#E(this.#r+1,this.#l/2,this.#n/2);break;case"-":t.preventDefault(),this.#E(this.#r-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.#f,t)),t===this.#r)return;let o=this.#s-this.#l/2,s=this.#i-this.#n/2,a=o+e,n=s+i,r=Math.pow(2,t-this.#r);this.#s=a*r-e+this.#l/2,this.#i=n*r-i+this.#n/2,this.#v*=r,this.#b*=r,this.#r=t,this.#$(),this.#d(),this.#h(),this.#p()}#d(){let t=256*Math.pow(2,this.#r);this.#s=(this.#s%t+t)%t,this.#i=Math.max(this.#n/2,Math.min(t-this.#n/2,this.#i))}#h(){let t=-(this.#s-this.#l/2),e=-(this.#i-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.#r,e=Math.pow(2,t),i=this.#s-this.#l/2,o=this.#i-this.#n/2,s=i+this.#l,a=o+this.#n,n=Math.floor(i/256)-1,r=Math.max(0,Math.floor(o/256)-1),c=Math.ceil(s/256)+1,h=Math.min(e,Math.ceil(a/256)+1);for(let d=r;d<h;d++)for(let u=n;u<c;u++){let f=(u%e+e)%e,b=`${t}/${f}/${d}`;this.#c.has(b)||this.#C(t,u,d,f)}}#C(t,e,i,o){let s=`${t}/${o}/${i}`;if(this.#c.has(s))return;let a=e*256,n=i*256,r=document.createElement("img");r.src=v(this.#m,t,o,i),r.alt="",r.draggable=!1,r.style.left=a+"px",r.style.top=n+"px",r.style.width="256px",r.style.height="256px",r._wx=a,r._wy=n,this.#c.set(s,r),this.#t.appendChild(r)}#P(){let t=this.#s-this.#l/2,e=this.#i-this.#n/2,i=512;for(let[o,s]of this.#c){let a=s._wx,n=s._wy;(a+256<t-i||a>t+this.#l+i||n+256<e-i||n>e+this.#n+i)&&(s.remove(),this.#c.delete(o))}}#F(){if(!this.#e)return;let t=this.#e.offsetWidth||32;this.#e.style.left=`${Math.round(this.#v-t/2)}px`,this.#e.style.top=`${Math.round(this.#b-t)}px`,this.#e.style.transform=""}#p(){let{lat:t,lng:e}=S(this.#s,this.#i,this.#r);this.#a.dispatchEvent(new CustomEvent("geo-map:move",{bubbles:!0,detail:{lat:+t.toFixed(6),lng:+e.toFixed(6),zoom:this.#r}}))}#$(){for(let t of this.#c.values())t.remove();this.#c.clear()}destroy(){if(this.#t.removeEventListener("pointerdown",this.#N),this.#t.removeEventListener("wheel",this.#A),this.#a.removeEventListener("keydown",this.#L),this.#t.removeEventListener("pointermove",this.#M),this.#t.removeEventListener("pointerup",this.#k),this.#e&&this.#e.parentNode===this.#t){let t=this.#o.querySelector('[part="container"]');t&&(t.insertBefore(this.#e,this.#t.nextSibling),this.#e.style.position="",this.#e.style.left="",this.#e.style.top="",this.#e.style.transform="")}this.#$(),this.#a.removeAttribute("data-interactive-active")}}});var g=class extends HTMLElement{#o=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let t of this.#o)t();this.#o=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,o){t.addEventListener(e,i,o),this.#o.push(()=>t.removeEventListener(e,i,o))}setup(){}teardown(){}};var L=`
1
+ var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for(var e in t)X(l,e,{get:t[e],enumerable:!0})};function S(l,t,e){let i=Math.pow(2,e),r=l*Math.PI/180,o=(t+180)/360*i,n=(1-Math.log(Math.tan(r)+1/Math.cos(r))/Math.PI)/2*i,a=Math.floor(o),s=Math.floor(n),h=Math.round((o-a)*256),c=Math.round((n-s)*256);return{tileX:a,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 k=A(()=>{});var P={};Y(P,{MapInteraction:()=>E});var E,F=A(()=>{k();E=class{#r;#n;#t;#f;#m;#g;#i=0;#o=0;#s=15;#u=1;#N=19;#l=0;#a=0;#c=new Map;#e=null;#v=0;#b=0;#y=!1;#w=0;#x=0;constructor({shadow:t,host:e,lat:i,lng:r,zoom:o,provider:n,tileUrl:a,onDeactivate:s}){this.#r=t,this.#n=e,this.#f=n,this.#m=a||"",this.#g=s,this.#s=o,this.#t=t.querySelector('[part="tiles"]'),this.#e=t.querySelector('[part="marker"]');let h=256*Math.pow(2,o),c=i*Math.PI/180;this.#i=(r+180)/360*h,this.#o=(1-Math.log(Math.tan(c)+1/Math.cos(c))/Math.PI)/2*h,this.#v=this.#i,this.#b=this.#o,this.#l=this.#n.offsetWidth||400,this.#a=this.#n.offsetHeight||300,this.#t.innerHTML="",this.#t.style.transform="",this.#e&&(this.#e.style.position="absolute",this.#e.style.top="",this.#e.style.left="",this.#t.appendChild(this.#e)),this.#T(),this.#h()}#T(){this.#t.addEventListener("pointerdown",this.#A),this.#t.addEventListener("wheel",this.#L,{passive:!1}),this.#n.addEventListener("keydown",this.#S)}#A=t=>{t.button===0&&(t.preventDefault(),this.#y=!0,this.#w=t.clientX,this.#x=t.clientY,this.#t.setPointerCapture(t.pointerId),this.#t.setAttribute("data-dragging",""),this.#t.addEventListener("pointermove",this.#M),this.#t.addEventListener("pointerup",this.#k))};#M=t=>{if(!this.#y)return;let e=t.clientX-this.#w,i=t.clientY-this.#x;this.#w=t.clientX,this.#x=t.clientY,this.#i-=e,this.#o-=i,this.#d(),this.#h()};#k=t=>{this.#y=!1,this.#t.releasePointerCapture(t.pointerId),this.#t.removeAttribute("data-dragging"),this.#t.removeEventListener("pointermove",this.#M),this.#t.removeEventListener("pointerup",this.#k),this.#p()};#L=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.#s+e)));if(i===this.#s)return;let r=this.#n.getBoundingClientRect(),o=t.clientX-r.left,n=t.clientY-r.top;this.#E(i,o,n)};#S=t=>{switch(t.key){case"ArrowLeft":t.preventDefault(),this.#i-=80,this.#d(),this.#h(),this.#p();break;case"ArrowRight":t.preventDefault(),this.#i+=80,this.#d(),this.#h(),this.#p();break;case"ArrowUp":t.preventDefault(),this.#o-=80,this.#d(),this.#h(),this.#p();break;case"ArrowDown":t.preventDefault(),this.#o+=80,this.#d(),this.#h(),this.#p();break;case"+":case"=":t.preventDefault(),this.#E(this.#s+1,this.#l/2,this.#a/2);break;case"-":t.preventDefault(),this.#E(this.#s-1,this.#l/2,this.#a/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.#s)return;let r=this.#i-this.#l/2,o=this.#o-this.#a/2,n=r+e,a=o+i,s=Math.pow(2,t-this.#s);this.#i=n*s-e+this.#l/2,this.#o=a*s-i+this.#a/2,this.#v*=s,this.#b*=s,this.#s=t,this.#$(),this.#d(),this.#h(),this.#p()}#d(){let t=256*Math.pow(2,this.#s);this.#i=(this.#i%t+t)%t,this.#o=Math.max(this.#a/2,Math.min(t-this.#a/2,this.#o))}#h(){let t=-(this.#i-this.#l/2),e=-(this.#o-this.#a/2);this.#t.style.transform=`translate(${Math.round(t)}px, ${Math.round(e)}px)`,this.#C(),this.#F(),this.#z()}#C(){let t=this.#s,e=Math.pow(2,t),i=this.#i-this.#l/2,r=this.#o-this.#a/2,o=i+this.#l,n=r+this.#a,a=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(n/256)+1);for(let d=s;d<c;d++)for(let u=a;u<h;u++){let f=(u%e+e)%e,b=`${t}/${f}/${d}`;this.#c.has(b)||this.#P(t,u,d,f)}}#P(t,e,i,r){let o=`${t}/${r}/${i}`;if(this.#c.has(o))return;let n=e*256,a=i*256,s=document.createElement("img");s.src=v(this.#f,t,r,i,this.#m),s.alt="",s.draggable=!1,s.style.left=n+"px",s.style.top=a+"px",s.style.width="256px",s.style.height="256px",s._wx=n,s._wy=a,this.#c.set(o,s),this.#t.appendChild(s)}#F(){let t=this.#i-this.#l/2,e=this.#o-this.#a/2,i=512;for(let[r,o]of this.#c){let n=o._wx,a=o._wy;(n+256<t-i||n>t+this.#l+i||a+256<e-i||a>e+this.#a+i)&&(o.remove(),this.#c.delete(r))}}#z(){if(!this.#e)return;let t=this.#e.offsetWidth||32;this.#e.style.left=`${Math.round(this.#v-t/2)}px`,this.#e.style.top=`${Math.round(this.#b-t)}px`,this.#e.style.transform=""}#p(){let{lat:t,lng:e}=$(this.#i,this.#o,this.#s);this.#n.dispatchEvent(new CustomEvent("geo-map:move",{bubbles:!0,detail:{lat:+t.toFixed(6),lng:+e.toFixed(6),zoom:this.#s}}))}#$(){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.#L),this.#n.removeEventListener("keydown",this.#S),this.#t.removeEventListener("pointermove",this.#M),this.#t.removeEventListener("pointerup",this.#k),this.#e&&this.#e.parentNode===this.#t){let t=this.#r.querySelector('[part="container"]');t&&(t.insertBefore(this.#e,this.#t.nextSibling),this.#e.style.position="",this.#e.style.left="",this.#e.style.top="",this.#e.style.transform="")}this.#$(),this.#n.removeAttribute("data-interactive-active")}}});var g=class extends HTMLElement{#r=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let t of this.#r)t();this.#r=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,i,r){t.addEventListener(e,i,r),this.#r.push(()=>t.removeEventListener(e,i,r))}setup(){}teardown(){}};var L=`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
@@ -180,19 +180,19 @@ var X=Object.defineProperty;var A=(l,t)=>()=>(l&&(t=l(l=0)),t);var Y=(l,t)=>{for
180
180
  text-align: center;
181
181
  padding: 1rem;
182
182
  }
183
- `;k();var j=window.matchMedia("(prefers-reduced-motion: reduce)");var T=new Map;function C(l,t,e={}){let i=e.priority??10,o={impl:t,bundle:e.bundle,contract:e.contract,priority:i},s=T.get(l);if(customElements.get(l)){if(!s||s.priority>=i){s&&s.priority===i&&s.impl!==t&&console.warn(`[VB Bundle] Tag <${l}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${l}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=i){s.priority===i&&console.warn(`[VB Bundle] Tag <${l}> already registered by "${s.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}T.set(l,o),customElements.define(l,t)}function _(l){return`<svg viewBox="0 0 24 36" fill="none" xmlns="http://www.w3.org/2000/svg">
183
+ `;k();var H=window.matchMedia("(prefers-reduced-motion: reduce)");var T=new Map;function C(l,t,e={}){let i=e.priority??10,r={impl:t,bundle:e.bundle,contract:e.contract,priority:i},o=T.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}T.set(l,r),customElements.define(l,t)}function _(l){return`<svg viewBox="0 0 24 36" fill="none" xmlns="http://www.w3.org/2000/svg">
184
184
  <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
185
  <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","interactive","static-only","src","place"]}#o=null;#a=!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 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.#m(i);if(n)return n}let o=this.querySelector("address[data-lat][data-lng]");if(o){let n=parseFloat(o.dataset.lat??""),r=parseFloat(o.dataset.lng??"");if(!isNaN(n)&&!isNaN(r))return{lat:n,lng:r}}let s=this.getAttribute("place");if(s){let n=this.#g(s);if(n)return n}let a=document.querySelector('meta[name="geo.position"]');if(a){let r=(a.getAttribute("content")||"").split(";");if(r.length===2){let c=parseFloat(r[0]),h=parseFloat(r[1]);if(!isNaN(c)&&!isNaN(h))return{lat:c,lng:h}}}return null}#m(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),o=parseFloat(e.dataset.lng);if(!isNaN(i)&&!isNaN(o))return{lat:i,lng:o}}return e.tagName==="SCRIPT"&&e.type==="application/ld+json"?this.#s(e):null}#g(t){let e=document.querySelectorAll('script[type="application/ld+json"]');for(let i of e)try{let o=JSON.parse(i.textContent);if(o.name===t){let s=o.geo;if(s){let a=parseFloat(s.latitude),n=parseFloat(s.longitude);if(!isNaN(a)&&!isNaN(n))return{lat:a,lng:n}}}}catch{}return null}#s(t){try{let i=JSON.parse(t.textContent).geo;if(i){let o=parseFloat(i.latitude),s=parseFloat(i.longitude);if(!isNaN(o)&&!isNaN(s))return{lat:o,lng:s}}}catch{}return null}setup(){this.render(),this.loadTiles(),this.#i()}attributeChangedCallback(t,e,i){e!==i&&this.isConnected&&(this.#o&&this.#f(),this.render(),this.loadTiles(),this.#i())}teardown(){this.#o&&(this.#o.destroy(),this.#o=null)}render(){let t=this.#t(),e=t?.lat??NaN,i=t?.lng??NaN,o=!isNaN(e)&&!isNaN(i);this.children.length>0?this.setAttribute("data-has-caption",""):this.removeAttribute("data-has-caption");let a=o?`Map of ${e.toFixed(4)}, ${i.toFixed(4)}`:"Map",n=this.showMarker&&o?`<div part="marker" aria-hidden="true">${_(this.markerColor)}</div>`:"",c=o&&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=`
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"]}#r=null;#n=!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 a=this.#f(i);if(a)return a}let r=this.querySelector("address[data-lat][data-lng]");if(r){let a=parseFloat(r.dataset.lat??""),s=parseFloat(r.dataset.lng??"");if(!isNaN(a)&&!isNaN(s))return{lat:a,lng:s}}let o=this.getAttribute("place");if(o){let a=this.#m(o);if(a)return a}let n=document.querySelector('meta[name="geo.position"]');if(n){let s=(n.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 n=parseFloat(o.latitude),a=parseFloat(o.longitude);if(!isNaN(n)&&!isNaN(a))return{lat:n,lng:a}}}}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.#i()}attributeChangedCallback(t,e,i){e!==i&&this.isConnected&&(this.#r&&this.#u(),this.render(),this.loadTiles(),this.#i())}teardown(){this.#r&&(this.#r.destroy(),this.#r=null)}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 n=r?`Map of ${e.toFixed(4)}, ${i.toFixed(4)}`:"Map",a=this.showMarker&&r?`<div part="marker" aria-hidden="true">${_(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=`
187
187
  <style>${L}</style>
188
188
  <div part="container">
189
- <div part="tiles" role="img" aria-label="${a}"></div>
190
- ${n}
191
- ${c}
189
+ <div part="tiles" role="img" aria-label="${n}"></div>
190
+ ${a}
191
+ ${h}
192
192
  <div part="caption"><slot></slot></div>
193
193
  <div part="attribution">
194
194
  <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener">&copy; OpenStreetMap</a>
195
195
  </div>
196
196
  </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 o=this.zoom,s=this.provider,{tileX:a,tileY:n,pixelX:r,pixelY:c}=$(e,i,o),h=this.shadowRoot.querySelector('[part="tiles"]');if(!h)return;h.innerHTML="";let d=this,u=d.offsetWidth||400,f=d.offsetHeight||300,b=Math.round(u/2-256-r),z=Math.round(f/2-256-c);h.style.transform=`translate(${b}px, ${z}px)`;let y=0,m=0,w=9;for(let x=-1;x<=1;x++)for(let M=-1;M<=1;M++){let D=a+M,q=n+x,R=v(s,o,D,q),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:o}}))}),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:o}}))}),h.appendChild(p)}}#i(){let t=this.shadowRoot.querySelector('[part="overlay"]');if(!t)return;let e=t.querySelector('[part="activate"]');t.addEventListener("mouseenter",()=>this.#r(),{once:!0}),e&&e.addEventListener("focus",()=>this.#r(),{once:!0}),e&&e.addEventListener("click",()=>this.#u()),this.interactive==="eager"&&requestAnimationFrame(()=>this.#u())}#r(){if(this.#a)return;this.#a=!0;let t=this.provider,e;t==="carto-light"||t==="carto-dark"?e="https://basemaps.cartocdn.com":e="https://tile.openstreetmap.org";let i=document.createElement("link");i.rel="preconnect",i.href=e,i.crossOrigin="",document.head.appendChild(i)}async#u(){if(this.#o)return;let t=this.#t(),e=t?.lat??NaN,i=t?.lng??NaN;if(isNaN(e)||isNaN(i))return;let{MapInteraction:o}=await Promise.resolve().then(()=>(F(),P));this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.focus(),this.setAttribute("data-interactive-active",""),this.#o=new o({shadow:this.shadowRoot,host:this,lat:e,lng:i,zoom:this.zoom,provider:this.provider,onDeactivate:()=>this.#f()}),this.dispatchEvent(new CustomEvent("geo-map:activate",{bubbles:!0,detail:{lat:e,lng:i,zoom:this.zoom}}))}#f(){this.#o&&(this.#o.destroy(),this.#o=null,this.removeAttribute("data-interactive-active"),this.render(),this.loadTiles(),this.#i())}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}}))}};C("geo-map",N);export{N as GeoMap};
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:n,tileY:a,pixelX:s,pixelY:h}=S(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),z=Math.round(f/2-256-h);c.style.transform=`translate(${b}px, ${z}px)`;let y=0,m=0,w=9;for(let x=-1;x<=1;x++)for(let M=-1;M<=1;M++){let D=n+M,q=a+x,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)}}#i(){let t=this.shadowRoot.querySelector('[part="overlay"]');if(!t)return;let e=t.querySelector('[part="activate"]');t.addEventListener("mouseenter",()=>this.#o(),{once:!0}),e&&e.addEventListener("focus",()=>this.#o(),{once:!0}),e&&e.addEventListener("click",()=>this.#s()),this.interactive==="eager"&&requestAnimationFrame(()=>this.#s())}#o(){if(this.#n)return;let t=this.tileUrl;if(t)try{let o=new URL(t,location.origin);if(o.origin===location.origin){this.#n=!0;return}this.#n=!0;let n=document.createElement("link");n.rel="preconnect",n.href=o.origin,n.crossOrigin="",document.head.appendChild(n);return}catch{}this.#n=!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#s(){if(this.#r)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(()=>(F(),P));this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.focus(),this.setAttribute("data-interactive-active",""),this.#r=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.#r&&(this.#r.destroy(),this.#r=null,this.removeAttribute("data-interactive-active"),this.render(),this.loadTiles(),this.#i())}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}}))}};C("geo-map",N);export{N as GeoMap};
198
198
  //# sourceMappingURL=geo-map.js.map
@@ -0,0 +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","")}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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}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};
2
+ //# sourceMappingURL=glossary-wc.js.map
@@ -0,0 +1,52 @@
1
+ var A=window.matchMedia("(prefers-reduced-motion: reduce)");var x=new Map;function w(r,o,s={}){let t=s.priority??10,i={impl:o,bundle:s.bundle,contract:s.contract,priority:t},e=x.get(r);if(customElements.get(r)){if(!e||e.priority>=t){e&&e.priority===t&&e.impl!==o&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${e.bundle}" (priority ${e.priority}). Skipping "${s.bundle}".`);return}console.warn(`[VB Bundle] Tag <${r}> defined by "${e.bundle}" cannot be replaced (customElements.define is permanent). "${s.bundle}" has higher priority but arrived late.`);return}if(e&&e.priority>=t){e.priority===t&&console.warn(`[VB Bundle] Tag <${r}> already registered by "${e.bundle}". Skipping "${s.bundle}" (first wins at equal priority).`);return}x.set(r,i),customElements.define(r,o)}var u=class extends HTMLElement{#t=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let o of this.#t)o();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(o,s,t,i){o.addEventListener(s,t,i),this.#t.push(()=>o.removeEventListener(s,t,i))}setup(){}teardown(){}};function E(r,{type:o="linear",angle:s=90,interpolation:t="oklab"}={}){if(r.length<2)return"transparent";let e=[...r].sort((a,d)=>a.position-d.position).map(a=>`${a.color} ${a.position}%`).join(", "),n=t!=="srgb"?` in ${t}`:"";return o==="radial"?`radial-gradient(circle${n}, ${e})`:`linear-gradient(${s}deg${n}, ${e})`}function g(r){if(!r)return k();let o=r.split(",").map(s=>s.trim()).filter(Boolean);return o.length<2?k():o.map((s,t)=>({color:s,position:Math.round(t/(o.length-1)*100)}))}function k(){return[{color:"#6366f1",position:0},{color:"#ec4899",position:100}]}var m=class extends u{static observedAttributes=["colors","type","angle","interpolation","show-export","show-controls"];#t=[];#e="linear";#o=90;#s="oklab";setup(){this.#t=g(this.getAttribute("colors")),this.#e=this.getAttribute("type")||"linear",this.#o=Number(this.getAttribute("angle"))||90,this.#s=this.getAttribute("interpolation")||"oklab",this.#r()}attributeChangedCallback(o,s,t){s===t||!this.isConnected||(o==="colors"&&(this.#t=g(t)),o==="type"&&(this.#e=t||"linear"),o==="angle"&&(this.#o=Number(t)||90),o==="interpolation"&&(this.#s=t||"oklab"),this.#r())}get css(){return E(this.#t,{type:this.#e,angle:this.#o,interpolation:this.#s})}#r(){let o=this.hasAttribute("show-export"),s=this.getAttribute("show-controls")!=="false",t=this.css,i="var(--size-m, 1rem)",e="var(--size-s, 0.75rem)",n="var(--size-xs, 0.5rem)",a="var(--radius-m, 0.5rem)",d="var(--color-border, #ddd)",y="var(--color-surface, #fff)",h="var(--color-text-muted, #666)",f="var(--font-mono, monospace)",b="var(--font-size-sm, 0.875rem)",p="var(--font-size-xs, 0.75rem)",S=`<div class="gb-preview" style="height:4rem;border-radius:${a};background:${t};border:1px solid ${d}"></div>`,$=`font:inherit;font-size:${b};padding:0.25rem 0.5rem;border:1px solid ${d};border-radius:4px;background:${y}`,v="";s&&(v=`<div style="display:flex;flex-direction:column;gap:${e};font-size:${b}">
2
+ <div style="display:flex;flex-wrap:wrap;gap:${i};align-items:center">
3
+ <label style="display:flex;align-items:center;gap:${n}">
4
+ Type
5
+ <select class="gb-type" style="${$}">
6
+ <option value="linear"${this.#e==="linear"?" selected":""}>Linear</option>
7
+ <option value="radial"${this.#e==="radial"?" selected":""}>Radial</option>
8
+ </select>
9
+ </label>
10
+ <label style="display:flex;align-items:center;gap:${n}${this.#e==="radial"?";opacity:0.4;pointer-events:none":""}">
11
+ Angle
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:${f};font-size:${p}">${this.#o}\xB0</span>
14
+ </label>
15
+ </div>
16
+ <label style="display:inline-flex;align-items:center;gap:${n}">
17
+ Color Space
18
+ <select class="gb-space" style="${$}">
19
+ <option value="oklab"${this.#s==="oklab"?" selected":""}>oklab</option>
20
+ <option value="oklch"${this.#s==="oklch"?" selected":""}>oklch</option>
21
+ <option value="srgb"${this.#s==="srgb"?" selected":""}>sRGB</option>
22
+ </select>
23
+ </label>
24
+ </div>`);let C=[...this.#t].map((l,c)=>({...l,origIndex:c})).sort((l,c)=>l.position-c.position).map(l=>{let c=l.origIndex;return`<div style="display:flex;align-items:center;gap:0.375rem" data-stop="${c}">
25
+ <input type="color" value="${l.color}" class="gb-stop-color" data-i="${c}"
26
+ style="width:1.75rem;height:1.75rem;padding:0;border:1px solid ${d};border-radius:4px;cursor:pointer;flex-shrink:0">
27
+ <input type="range" min="0" max="100" value="${l.position}" class="gb-stop-pos-range" data-i="${c}"
28
+ style="flex:1;min-width:3rem;max-width:8rem;accent-color:${l.color}">
29
+ <span style="font-family:${f};font-size:${p};min-width:2.5em;text-align:right" class="gb-stop-pos-label" data-i="${c}">${l.position}%</span>
30
+ ${this.#t.length>2?`<button type="button" class="gb-remove" data-i="${c}"
31
+ style="all:unset;cursor:pointer;font-size:1rem;color:${h};padding:0 0.25rem" title="Remove stop">&times;</button>`:""}
32
+ </div>`}).join(""),q=`<button type="button" class="gb-add"
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:${i}">
35
+ ${S}
36
+ ${v}
37
+ <div style="display:flex;flex-direction:column;gap:${n}">
38
+ <span style="font-size:${p};font-weight:600;color:${h};text-transform:uppercase;letter-spacing:0.05em">Color Stops</span>
39
+ ${C}
40
+ ${q}
41
+ </div>
42
+ <div style="display:flex;flex-direction:column;gap:${n}">
43
+ <span style="font-size:${p};font-weight:600;color:${h};text-transform:uppercase;letter-spacing:0.05em">Code</span>
44
+ <div style="display:flex;align-items:start;gap:${n}">
45
+ <div style="flex:1;font-family:${f};font-size:${p};padding:${e};background:var(--color-surface-raised,#f5f5f5);border-radius:${a};word-break:break-all;color:var(--color-text,#222)" class="gb-css-output">${t}</div>
46
+ ${o?`<button type="button" class="gb-copy"
47
+ style="all:unset;cursor:pointer;font-size:${p};padding:0.35rem 0.75rem;border:1px solid ${d};border-radius:4px;background:${y};white-space:nowrap;flex-shrink:0">Copy CSS</button>`:""}
48
+ </div>
49
+ </div>
50
+ </div>
51
+ `,this.#a()}#a(){this.querySelector(".gb-type")?.addEventListener("change",t=>{this.#e=t.target.value,this.#r(),this.#i()});let o=this.querySelector(".gb-angle"),s=this.querySelector(".gb-angle-value");o?.addEventListener("input",t=>{this.#o=Number(t.target.value),s&&(s.textContent=`${this.#o}\xB0`);let i=this.querySelector(".gb-preview");i&&(i.style.background=this.css),this.#i()}),this.querySelector(".gb-space")?.addEventListener("change",t=>{this.#s=t.target.value,this.#r(),this.#i()}),this.querySelectorAll(".gb-stop-color").forEach(t=>{t.addEventListener("input",i=>{let e=Number(i.target.dataset.i);this.#t[e].color=i.target.value,this.#n(),this.#i()})}),this.querySelectorAll(".gb-stop-pos-range").forEach(t=>{t.addEventListener("input",i=>{let e=Number(i.target.dataset.i),n=Math.max(0,Math.min(100,Number(i.target.value)||0));this.#t[e].position=n;let a=this.querySelector(`.gb-stop-pos-label[data-i="${e}"]`);a&&(a.textContent=`${n}%`),this.#n(),this.#i()})}),this.querySelectorAll(".gb-remove").forEach(t=>{t.addEventListener("click",i=>{let e=Number(i.target.dataset.i);this.#t.splice(e,1),this.#r(),this.#i()})}),this.querySelector(".gb-add")?.addEventListener("click",()=>{let t=this.#t[this.#t.length-1],i=this.#t[this.#t.length-2],e=Math.round((i.position+t.position)/2);this.#t.splice(this.#t.length-1,0,{color:"#888888",position:e}),this.#r(),this.#i()}),this.querySelector(".gb-copy")?.addEventListener("click",t=>{navigator.clipboard?.writeText(this.css);let i=t.target,e=i.textContent;i.textContent="Copied!",setTimeout(()=>{i.textContent=e},1500)})}#n(){let o=this.css,s=this.querySelector(".gb-preview");s&&(s.style.background=o);let t=this.querySelector(".gb-css-output");t&&(t.textContent=o)}#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}}))}};w("gradient-builder",m);export{m as GradientBuilder};
52
+ //# sourceMappingURL=gradient-builder.js.map
@@ -0,0 +1,3 @@
1
+ var C=class extends HTMLElement{#t=[];connectedCallback(){this.hasAttribute("data-upgraded")||this.setup()!==!1&&this.setAttribute("data-upgraded","")}disconnectedCallback(){for(let t of this.#t)t();this.#t=[],this.removeAttribute("data-upgraded"),this.teardown()}listen(t,e,n,i){t.addEventListener(e,n,i),this.#t.push(()=>t.removeEventListener(e,n,i))}setup(){}teardown(){}};var ot=window.matchMedia("(prefers-reduced-motion: reduce)");var M=new Map;function P(o,t,e={}){let n=e.priority??10,i={impl:t,bundle:e.bundle,contract:e.contract,priority:n},s=M.get(o);if(customElements.get(o)){if(!s||s.priority>=n){s&&s.priority===n&&s.impl!==t&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${s.bundle}" (priority ${s.priority}). Skipping "${e.bundle}".`);return}console.warn(`[VB Bundle] Tag <${o}> defined by "${s.bundle}" cannot be replaced (customElements.define is permanent). "${e.bundle}" has higher priority but arrived late.`);return}if(s&&s.priority>=n){s.priority===n&&console.warn(`[VB Bundle] Tag <${o}> already registered by "${s.bundle}". Skipping "${e.bundle}" (first wins at equal priority).`);return}M.set(o,i),customElements.define(o,t)}function G(){let o=globalThis.localStorage;if(!o)throw new Error("VBStore: localStorage is not available in this environment");return{async getRaw(t){return o.getItem(t)},async setRaw(t,e){o.setItem(t,e)},async removeRaw(t){o.removeItem(t)},async keys(t){let e=[];for(let n=0;n<o.length;n++){let i=o.key(n);i&&i.startsWith(t)&&e.push(i)}return e}}}var S=null;function g(){return S||(S=G()),S}function N(o,t){if(typeof o!="string"||!o)throw new TypeError("VBStore: namespace must be a non-empty string");if(typeof t!="string"||!t)throw new TypeError("VBStore: key must be a non-empty string");return`vb:${o}:${t}`}function F(o){if(typeof o!="string"||!o)throw new TypeError("VBStore: namespace must be a non-empty string");return`vb:${o}:`}function I(o){try{let t=JSON.parse(o);if(t&&typeof t=="object"&&typeof t.timestamp=="number")return t}catch{}return null}var k={configure(o={}){S=o.backend??null},async set(o,t,e){let n={data:e,timestamp:Date.now()};await g().setRaw(N(o,t),JSON.stringify(n))},async get(o,t,e){let n=await g().getRaw(N(o,t));if(n==null)return null;let i=I(n);return!i||e?.maxAge!=null&&Date.now()-i.timestamp>e.maxAge?null:i.data},async remove(o,t){await g().removeRaw(N(o,t))},async list(o){let t=F(o),e=await g().keys(t),n=[];for(let i of e){let s=await g().getRaw(i);if(s==null)continue;let r=I(s);r&&n.push({key:i.slice(t.length),data:r.data,timestamp:r.timestamp})}return n},async clear(o){let t=F(o),e=await g().keys(t);for(let n of e)await g().removeRaw(n)},async clearAll(){let o=await g().keys("vb:");for(let t of o)await g().removeRaw(t)},async setMany(o,t){for(let[e,n]of t)await k.set(o,e,n)}};var $="[data-highlights]",q="highlights",j=["yellow","green","blue","pink"],D=8,O=8,J=typeof CSS<"u"&&"highlights"in CSS;function _(o){let t=2166136261;for(let e=0;e<o.length;e++)t^=o.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function z(){return"hn-"+crypto.randomUUID().slice(0,8)}function W(o,t){return getComputedStyle(o).getPropertyValue(`--highlight-${t}`).trim()}var v=null,w=0;function Y(o){if(v){w++;return}v=new CSSStyleSheet;let t=o.map(e=>`::highlight(hn-${e}) { background-color: var(--highlight-${e}); text-decoration-line: underline; text-decoration-color: var(--highlight-${e}); text-underline-offset: 2px; }`).join(`
2
+ `);v.replaceSync(t),document.adoptedStyleSheets=[...document.adoptedStyleSheets,v],w=1}function Q(){w--,w<=0&&v&&(document.adoptedStyleSheets=document.adoptedStyleSheets.filter(o=>o!==v),v=null,w=0)}var d=null,x=null;function Z(){return d||(d=document.createElement("div"),d.className="hn-toolbar",d.setAttribute("role","toolbar"),d.setAttribute("aria-label","Highlight tools"),d.setAttribute("popover","auto"),d.hidden=!0,document.body.appendChild(d),d.addEventListener("toggle",o=>{o.newState==="closed"&&(d.hidden=!0,x=null)}),d)}function L(o,t,e){let n=Z();n.innerHTML="",x=t;let i=t.colors,s=t.element,r=e?.color,h=document.createElement("div");if(h.className="hn-swatches",h.setAttribute("role","group"),h.setAttribute("aria-label","Highlight colors"),i.forEach((a,l)=>{let c=document.createElement("button");c.type="button",c.className="hn-swatch",c.dataset.color=a,c.setAttribute("aria-label",`Highlight ${a}${r===a?" (current)":""}`),c.setAttribute("tabindex",l===0?"0":"-1");let f=W(s,a);f&&(c.style.backgroundColor=f),r===a&&c.setAttribute("aria-pressed","true"),c.addEventListener("click",()=>{e?t._changeColor(e.id,a):t._createFromSelection(a),E()}),h.appendChild(c)}),n.appendChild(h),e){let a=document.createElement("span");a.className="hn-separator",a.setAttribute("aria-hidden","true"),n.appendChild(a);let l=document.createElement("button");l.type="button",l.className="hn-action",l.textContent=e.note?"Edit Note":"Add Note",l.addEventListener("click",()=>{X(t,e),E()}),n.appendChild(l);let c=document.createElement("button");c.type="button",c.className="hn-action hn-action-remove",c.textContent="Remove",c.addEventListener("click",()=>{t.removeHighlight(e.id),E()}),n.appendChild(c)}h.addEventListener("keydown",a=>{let l=[...h.querySelectorAll("button")],c=l.indexOf(document.activeElement);if(c<0)return;let f=-1;if(a.key==="ArrowRight"||a.key==="ArrowDown")a.preventDefault(),f=(c+1)%l.length;else if(a.key==="ArrowLeft"||a.key==="ArrowUp")a.preventDefault(),f=(c-1+l.length)%l.length;else if(a.key==="Escape"){E();return}f>=0&&(l[c].setAttribute("tabindex","-1"),l[f].setAttribute("tabindex","0"),l[f].focus())}),n.hidden=!1;try{n.showPopover()}catch{}tt(o),requestAnimationFrame(()=>{let a=n.querySelector(".hn-swatch");a&&a.focus()})}var u=null;function X(o,t){y();let e=o.element,n=b(e,t.startOffset,t.endOffset);if(!n)return;u=document.createElement("div"),u.className="hn-note-panel",u.setAttribute("role","dialog"),u.setAttribute("aria-label","Private note");let i=document.createElement("header");i.className="hn-note-header",i.innerHTML="<small>PRIVATE NOTE</small>",u.appendChild(i);let s=document.createElement("blockquote");s.className="hn-note-quote",s.textContent=t.text.length>80?t.text.slice(0,80)+"\u2026":t.text,u.appendChild(s);let r=document.createElement("textarea");r.className="hn-note-textarea",r.placeholder="Add a note\u2026",r.value=t.note||"",r.rows=3,r.setAttribute("aria-label","Note for highlighted text"),u.appendChild(r);let h=document.createElement("footer");h.className="hn-note-actions";let a=document.createElement("button");a.type="button",a.className="hn-action hn-action-save",a.textContent="Save",a.addEventListener("click",()=>{o._updateNote(t.id,r.value.trim()),y()});let l=document.createElement("button");l.type="button",l.className="hn-action",l.textContent="Cancel",l.addEventListener("click",()=>y()),h.append(a,l),u.appendChild(h),r.addEventListener("keydown",m=>{m.key==="Escape"&&(m.preventDefault(),y()),m.key==="Enter"&&(m.metaKey||m.ctrlKey)&&(m.preventDefault(),o._updateNote(t.id,r.value.trim()),y())}),e.style.position="relative",e.appendChild(u);let c=n.getClientRects()[0],f=e.getBoundingClientRect();if(c){let m=c.top-f.top;u.style.top=`${m}px`}requestAnimationFrame(()=>{r.focus(),document.addEventListener("pointerdown",K)})}function K(o){u&&!u.contains(o.target)&&y()}function y(){u&&(document.removeEventListener("pointerdown",K),u.remove(),u=null)}function tt(o){d&&requestAnimationFrame(()=>{let t=d.getBoundingClientRect(),e=t.width||200,n=t.height||40,i=o.top-n-D,s=o.left+o.width/2-e/2;i<O&&(i=o.bottom+D);let r=window.innerWidth-e-O;s=Math.max(O,Math.min(s,r)),d.style.top=`${i}px`,d.style.left=`${s}px`})}function E(){if(d){try{d.hidePopover()}catch{}d.hidden=!0,x=null}}var p=null;function R(o){p||(p=document.createElement("div"),p.setAttribute("aria-live","polite"),p.setAttribute("aria-atomic","true"),p.className="hn-sr-only",document.body.appendChild(p)),p.textContent="",requestAnimationFrame(()=>{p.textContent=o})}function V(o,t,e){let n=document.createTreeWalker(o,NodeFilter.SHOW_TEXT),i=0;for(;n.nextNode();){if(n.currentNode===t)return i+e;i+=(n.currentNode.textContent??"").length}return-1}function b(o,t,e){let n=document.createTreeWalker(o,NodeFilter.SHOW_TEXT),i=0,s=null,r=0,h=null,a=0;for(;n.nextNode();){let l=n.currentNode,c=(l.textContent??"").length;if(!s&&i+c>t&&(s=l,r=t-i),i+c>=e){h=l,a=e-i;break}i+=c}if(!s||!h)return null;try{let l=document.createRange();return l.setStart(s,Math.min(r,(s.textContent??"").length)),l.setEnd(h,Math.min(a,(h.textContent??"").length)),l}catch{return null}}var B=class{#t;#o;#i;#n;#e=[];#a=!J;#l;#c;#h=!1;#d=[];constructor(t){this.#t=t,this.#n=t.hasAttribute("data-highlights-readonly");let e=t.dataset.highlights;this.#o=e&&e!==""?e:location.pathname;let n=t.dataset.highlightsColors;this.#i=n?n.split(",").map(i=>i.trim()).filter(Boolean):[...j],this.#a||Y(this.#i),this.#r(),this.#n||(this.#l=this.#m.bind(this),this.#c=this.#p.bind(this),t.addEventListener("pointerup",this.#l),t.addEventListener("click",this.#c)),t.setAttribute("data-highlights-init",""),this.#y().then(()=>{this.#h||this.#r()})}get colors(){return[...this.#i]}get element(){return this.#t}getHighlights(){return this.#e.map(t=>({...t}))}removeHighlight(t){let e=this.#e.findIndex(n=>n.id===t);e<0||(this.#e.splice(e,1),this.#s(),this.#r(),this.#u("highlights:removed",{id:t}),R("Highlight removed"))}clearAll(){this.#e=[],this.#s(),this.#r()}exportHighlights(){return JSON.stringify({version:1,highlights:this.#e})}importHighlights(t){try{let e=typeof t=="string"?JSON.parse(t):t;if(!e.highlights||!Array.isArray(e.highlights))return;this.#e=e.highlights,this.#s(),this.#r()}catch{}}destroy(){if(!this.#h){if(this.#h=!0,this.#l&&this.#t.removeEventListener("pointerup",this.#l),this.#c&&this.#t.removeEventListener("click",this.#c),this.#a)this.#t.querySelectorAll("mark[data-hn-id]").forEach(t=>{let e=t.parentNode;for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t),e.normalize()});else{for(let t of this.#i)CSS.highlights.delete(`hn-${t}`);Q()}this.#f(),this.#t.removeAttribute("data-highlights-init"),x===this&&E(),y()}}#m(){requestAnimationFrame(()=>{if(this.#h||this.#t.hasAttribute("data-selection-menu"))return;let t=window.getSelection();if(!t||t.isCollapsed||!t.toString().trim())return;let e=t.getRangeAt(0);if(!this.#t.contains(e.commonAncestorContainer))return;let n=e.getBoundingClientRect();L(n,this,null)})}#p(t){if(this.#t.hasAttribute("data-selection-menu"))return;let e=t.target.closest?.(".hn-margin-annotation");if(e){let i=e.dataset.hnId,s=this.#e.find(r=>r.id===i);if(s){X(this,s);return}}let n=t.target.closest?.("mark[data-hn-id]");if(n){let i=n.dataset.hnId,s=this.#e.find(r=>r.id===i);if(s){this.#u("highlights:clicked",{id:i});let r=n.getBoundingClientRect();L(r,this,s);return}}if(!this.#a){let i=this.#b(t.clientX,t.clientY);if(i){this.#u("highlights:clicked",{id:i.id});let s=b(this.#t,i.startOffset,i.endOffset);s&&L(s.getBoundingClientRect(),this,i)}}}#b(t,e){for(let n of this.#e){let i=b(this.#t,n.startOffset,n.endOffset);if(!i)continue;let s=i.getClientRects();for(let r of s)if(t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom)return n}return null}_createFromSelection(t){let e=window.getSelection();if(!e||e.isCollapsed)return;let n=e.getRangeAt(0);if(!this.#t.contains(n.commonAncestorContainer))return;let i=V(this.#t,n.startContainer,n.startOffset),s=V(this.#t,n.endContainer,n.endOffset);if(i<0||s<0||i>=s)return;let r=e.toString().trim(),h={id:z(),startOffset:i,endOffset:s,text:r,color:t,note:"",created:Date.now()};this.#e.push(h),this.#s(),this.#r(),e.removeAllRanges(),this.#u("highlights:added",{id:h.id,text:r,color:t,note:""}),R("Highlight added")}_changeColor(t,e){let n=this.#e.find(i=>i.id===t);n&&(n.color=e,this.#s(),this.#r())}_updateNote(t,e){let n=this.#e.find(i=>i.id===t);n&&(n.note=e,this.#s(),this.#g(),this.#u("highlights:note-changed",{id:t,note:e}),R("Note saved"))}async#y(){let t=await k.get(q,this.#o);if(!t||!Array.isArray(t.highlights))return;let e=_(this.#t.textContent);t.contentHash&&t.contentHash!==e?(this.#e=t.highlights.filter(n=>{let i=b(this.#t,n.startOffset,n.endOffset);return i?i.toString().trim()===n.text:!1}),this.#s()):this.#e=t.highlights}#s(){let t={version:1,contentHash:_(this.#t.textContent),highlights:this.#e};k.set(q,this.#o,t).catch(()=>{})}#r(){this.#a?this.#A():this.#v(),this.#g()}#v(){let t=new Map;for(let e of this.#i)t.set(e,[]);for(let e of this.#e){let n=b(this.#t,e.startOffset,e.endOffset);n&&t.has(e.color)&&t.get(e.color).push(n)}for(let[e,n]of t){let i=`hn-${e}`;n.length===0?CSS.highlights.delete(i):CSS.highlights.set(i,new Highlight(...n))}}#A(){this.#t.querySelectorAll("mark[data-hn-id]").forEach(e=>{let n=e.parentNode;for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e)}),this.#t.normalize();let t=[...this.#e].sort((e,n)=>n.startOffset-e.startOffset);for(let e of t){let n=b(this.#t,e.startOffset,e.endOffset);if(!n)continue;let i=W(this.#t,e.color),s=document.createElement("mark");s.dataset.hnId=e.id,s.dataset.hnColor=e.color,i&&(s.style.backgroundColor=i,s.style.textDecorationColor=i);try{n.surroundContents(s)}catch{let r=n.extractContents();s.appendChild(r),n.insertNode(s)}}}#f(){for(let t of this.#d)t.remove();this.#d=[]}#g(){if(this.#f(),this.#e.length===0)return;getComputedStyle(this.#t).position==="static"&&(this.#t.style.position="relative");for(let e of this.#e){let n=b(this.#t,e.startOffset,e.endOffset);if(!n)continue;let i=n.getClientRects();if(i.length===0)continue;let s=i[0],r=this.#t.getBoundingClientRect(),h=s.top-r.top,a=document.createElement("span");a.className="hn-margin-annotation",a.dataset.hnId=e.id,a.setAttribute("aria-hidden","true"),a.style.top=`${h}px`,e.note?(a.innerHTML='<span class="hn-note-indicator">*</span> You highlighted',a.classList.add("hn-has-note")):a.textContent="You highlighted",this.#t.appendChild(a),this.#d.push(a)}}#u(t,e={}){this.#t.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0}))}},T=new WeakMap;function A(o){if(T.has(o))return T.get(o);let t=new B(o);return T.set(o,t),t}function U(o=document){o.querySelectorAll($).forEach(t=>{t.hasAttribute("data-highlights-init")||A(t)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>U()):U();var et=new MutationObserver(o=>{for(let t of o)for(let e of t.addedNodes){if(e.nodeType!==Node.ELEMENT_NODE)continue;let n=e;n.matches($)&&A(n),n.querySelectorAll($).forEach(i=>{i.hasAttribute("data-highlights-init")||A(i)})}});et.observe(document.documentElement,{childList:!0,subtree:!0});var nt=["yellow","green","blue","pink"],H=class extends C{#t=null;#o="yellow";#i=!1;#n=null;setup(){this.#i=!!this.closest("selection-menu"),this.#i?this.#e():this.#c()}teardown(){this.#t?.destroy(),this.#t=null,this.#n?.remove(),this.#n=null}#e(){let t=this.#d(),e=document.createElement("button");e.type="button",e.setAttribute("aria-label","Highlight selection");let n=document.createElement("icon-wc");n.setAttribute("name","highlighter"),n.setAttribute("size","sm"),n.setAttribute("aria-hidden","true"),e.appendChild(n),e.addEventListener("click",i=>{i.stopPropagation(),this.#a()}),this.appendChild(e),this.#n=document.createElement("div"),this.#n.className="highlight-color-dropdown",this.#n.setAttribute("role","group"),this.#n.setAttribute("aria-label","Highlight color"),this.#n.hidden=!0,t.forEach(i=>{let s=document.createElement("button");s.type="button",s.className="highlight-color-swatch",s.dataset.color=i,s.setAttribute("aria-label",`${i}`),s.setAttribute("aria-pressed",i===this.#o?"true":"false"),s.style.backgroundColor=`var(--highlight-${i})`,s.addEventListener("click",r=>{r.stopPropagation(),this.#o=i,this.#n.querySelectorAll(".highlight-color-swatch").forEach(h=>h.setAttribute("aria-pressed",h.dataset.color===i?"true":"false")),this.#n.hidden=!0,this.#l()}),this.#n.appendChild(s)}),this.appendChild(this.#n)}#a(){this.#n&&(this.#n.hidden=!this.#n.hidden)}#l(){let t=this.closest("selection-menu");if(!t)return;let e=t.getSelection();if(!e)return;let n=e.target;if(n.hasAttribute("data-highlights-init"))this.#t||(this.#t=A(n));else{let i=this.getAttribute("storage-key")||"";n.setAttribute("data-highlights",i),this.hasAttribute("colors")&&n.setAttribute("data-highlights-colors",this.getAttribute("colors")),this.#t=A(n)}this.#t._createFromSelection(this.#o),t.dismiss()}#c(){let t=this.#h();if(!t)return!1;let e=this.getAttribute("storage-key")||"";t.setAttribute("data-highlights",e),this.hasAttribute("colors")&&t.setAttribute("data-highlights-colors",this.getAttribute("colors")),this.hasAttribute("readonly")&&t.setAttribute("data-highlights-readonly",""),this.#t=A(t)}#h(){let t=this.getAttribute("for");return t?document.getElementById(t):this.firstElementChild}#d(){let t=this.getAttribute("colors");return t?t.split(",").map(e=>e.trim()).filter(Boolean):[...nt]}getHighlights(){return this.#t?.getHighlights()??[]}removeHighlight(t){this.#t?.removeHighlight(t)}clearAll(){this.#t?.clearAll()}exportHighlights(){return this.#t?.exportHighlights()??'{"version":1,"highlights":[]}'}importHighlights(t){this.#t?.importHighlights(t)}};P("highlight-wc",H);
3
+ //# sourceMappingURL=highlight-wc.js.map
@@ -3,6 +3,14 @@
3
3
  "file": "accordion-wc.js",
4
4
  "size": 3816
5
5
  },
6
+ "adr-wc": {
7
+ "file": "adr-wc.js",
8
+ "size": 20859
9
+ },
10
+ "analytics-panel": {
11
+ "file": "analytics-panel.js",
12
+ "size": 4731
13
+ },
6
14
  "audio-player": {
7
15
  "file": "audio-player.js",
8
16
  "size": 17509
@@ -11,9 +19,17 @@
11
19
  "file": "audio-visualizer.js",
12
20
  "size": 5143
13
21
  },
22
+ "author-index": {
23
+ "file": "author-index.js",
24
+ "size": 3649
25
+ },
26
+ "brand-mark": {
27
+ "file": "brand-mark.js",
28
+ "size": 3208
29
+ },
14
30
  "calendar-wc": {
15
31
  "file": "calendar-wc.js",
16
- "size": 13825
32
+ "size": 16619
17
33
  },
18
34
  "card-list": {
19
35
  "file": "card-list.js",
@@ -21,7 +37,7 @@
21
37
  },
22
38
  "carousel-wc": {
23
39
  "file": "carousel-wc.js",
24
- "size": 14193
40
+ "size": 14271
25
41
  },
26
42
  "change-set": {
27
43
  "file": "change-set.js",
@@ -29,7 +45,7 @@
29
45
  },
30
46
  "chart-wc": {
31
47
  "file": "chart-wc.js",
32
- "size": 77042
48
+ "size": 77228
33
49
  },
34
50
  "chat-input": {
35
51
  "file": "chat-input.js",
@@ -41,7 +57,7 @@
41
57
  },
42
58
  "color-palette": {
43
59
  "file": "color-palette.js",
44
- "size": 4630
60
+ "size": 7335
45
61
  },
46
62
  "color-picker": {
47
63
  "file": "color-picker.js",
@@ -55,6 +71,10 @@
55
71
  "file": "command-palette.js",
56
72
  "size": 8226
57
73
  },
74
+ "comment-wc": {
75
+ "file": "comment-wc.js",
76
+ "size": 2292
77
+ },
58
78
  "compare-surface": {
59
79
  "file": "compare-surface.js",
60
80
  "size": 3245
@@ -65,7 +85,11 @@
65
85
  },
66
86
  "consent-banner": {
67
87
  "file": "consent-banner.js",
68
- "size": 3333
88
+ "size": 4827
89
+ },
90
+ "content-lens": {
91
+ "file": "content-lens.js",
92
+ "size": 3278
69
93
  },
70
94
  "content-swap": {
71
95
  "file": "content-swap.js",
@@ -83,6 +107,10 @@
83
107
  "file": "date-picker.js",
84
108
  "size": 15558
85
109
  },
110
+ "day-view": {
111
+ "file": "day-view.js",
112
+ "size": 4584
113
+ },
86
114
  "drag-surface": {
87
115
  "file": "drag-surface.js",
88
116
  "size": 8550
@@ -97,7 +125,15 @@
97
125
  },
98
126
  "empathy-map": {
99
127
  "file": "empathy-map.js",
100
- "size": 26916
128
+ "size": 28190
129
+ },
130
+ "flow-diagram": {
131
+ "file": "flow-diagram.js",
132
+ "size": 6314
133
+ },
134
+ "font-pairer": {
135
+ "file": "font-pairer.js",
136
+ "size": 20803
101
137
  },
102
138
  "foot-notes": {
103
139
  "file": "foot-notes.js",
@@ -107,18 +143,34 @@
107
143
  "file": "form-field.js",
108
144
  "size": 2816
109
145
  },
146
+ "gantt-chart": {
147
+ "file": "gantt-chart.js",
148
+ "size": 12677
149
+ },
110
150
  "geo-map": {
111
151
  "file": "geo-map.js",
112
- "size": 16571
152
+ "size": 17050
113
153
  },
114
154
  "glossary-index": {
115
155
  "file": "glossary-index.js",
116
156
  "size": 2438
117
157
  },
158
+ "glossary-wc": {
159
+ "file": "glossary-wc.js",
160
+ "size": 9630
161
+ },
162
+ "gradient-builder": {
163
+ "file": "gradient-builder.js",
164
+ "size": 8712
165
+ },
118
166
  "heading-links": {
119
167
  "file": "heading-links.js",
120
168
  "size": 3060
121
169
  },
170
+ "highlight-wc": {
171
+ "file": "highlight-wc.js",
172
+ "size": 17180
173
+ },
122
174
  "image-gallery": {
123
175
  "file": "image-gallery.js",
124
176
  "size": 14090
@@ -145,15 +197,23 @@
145
197
  },
146
198
  "markdown-viewer": {
147
199
  "file": "markdown-viewer.js",
148
- "size": 44627
200
+ "size": 44642
201
+ },
202
+ "motion-specimen": {
203
+ "file": "motion-specimen.js",
204
+ "size": 5400
205
+ },
206
+ "note-wc": {
207
+ "file": "note-wc.js",
208
+ "size": 15737
209
+ },
210
+ "notification-wc": {
211
+ "file": "notification-wc.js",
212
+ "size": 14814
149
213
  },
150
214
  "page-info": {
151
215
  "file": "page-info.js",
152
- "size": 4880
153
- },
154
- "page-meta": {
155
- "file": "page-meta.js",
156
- "size": 2255
216
+ "size": 11157
157
217
  },
158
218
  "page-stats": {
159
219
  "file": "page-stats.js",
@@ -161,7 +221,7 @@
161
221
  },
162
222
  "page-toc": {
163
223
  "file": "page-toc.js",
164
- "size": 4441
224
+ "size": 4674
165
225
  },
166
226
  "page-tools": {
167
227
  "file": "page-tools.js",
@@ -175,9 +235,13 @@
175
235
  "file": "palette-generator.js",
176
236
  "size": 8914
177
237
  },
238
+ "popularity-index": {
239
+ "file": "popularity-index.js",
240
+ "size": 3148
241
+ },
178
242
  "print-page": {
179
243
  "file": "print-page.js",
180
- "size": 2212
244
+ "size": 2584
181
245
  },
182
246
  "qr-code": {
183
247
  "file": "qr-code.js",
@@ -187,13 +251,29 @@
187
251
  "file": "reader-view.js",
188
252
  "size": 11161
189
253
  },
254
+ "recently-visited": {
255
+ "file": "recently-visited.js",
256
+ "size": 3755
257
+ },
258
+ "review-surface": {
259
+ "file": "review-surface.js",
260
+ "size": 32715
261
+ },
262
+ "selection-menu": {
263
+ "file": "selection-menu.js",
264
+ "size": 3000
265
+ },
266
+ "semantic-palette": {
267
+ "file": "semantic-palette.js",
268
+ "size": 14520
269
+ },
190
270
  "settings-panel": {
191
271
  "file": "settings-panel.js",
192
- "size": 48817
272
+ "size": 51399
193
273
  },
194
274
  "share-wc": {
195
275
  "file": "share-wc.js",
196
- "size": 7656
276
+ "size": 8367
197
277
  },
198
278
  "short-cuts": {
199
279
  "file": "short-cuts.js",
@@ -207,6 +287,10 @@
207
287
  "file": "site-map.js",
208
288
  "size": 2969
209
289
  },
290
+ "site-map-wc": {
291
+ "file": "site-map-wc.js",
292
+ "size": 23446
293
+ },
210
294
  "site-search": {
211
295
  "file": "site-search.js",
212
296
  "size": 7805
@@ -221,11 +305,11 @@
221
305
  },
222
306
  "spacing-specimen": {
223
307
  "file": "spacing-specimen.js",
224
- "size": 2967
308
+ "size": 4269
225
309
  },
226
310
  "split-surface": {
227
311
  "file": "split-surface.js",
228
- "size": 4887
312
+ "size": 6467
229
313
  },
230
314
  "star-rating": {
231
315
  "file": "star-rating.js",
@@ -241,11 +325,15 @@
241
325
  },
242
326
  "text-reader": {
243
327
  "file": "text-reader.js",
244
- "size": 8886
328
+ "size": 11772
329
+ },
330
+ "theme-export": {
331
+ "file": "theme-export.js",
332
+ "size": 5108
245
333
  },
246
334
  "theme-picker": {
247
335
  "file": "theme-picker.js",
248
- "size": 36294
336
+ "size": 38944
249
337
  },
250
338
  "time-index": {
251
339
  "file": "time-index.js",
@@ -261,32 +349,52 @@
261
349
  },
262
350
  "token-specimen": {
263
351
  "file": "token-specimen.js",
264
- "size": 6550
352
+ "size": 9013
265
353
  },
266
354
  "tool-tip": {
267
355
  "file": "tool-tip.js",
268
356
  "size": 6004
269
357
  },
358
+ "topic-map": {
359
+ "file": "topic-map.js",
360
+ "size": 2990
361
+ },
362
+ "trust-filter": {
363
+ "file": "trust-filter.js",
364
+ "size": 4916
365
+ },
270
366
  "type-specimen": {
271
367
  "file": "type-specimen.js",
272
- "size": 3508
368
+ "size": 5320
273
369
  },
274
370
  "user-journey": {
275
371
  "file": "user-journey.js",
276
- "size": 17434
372
+ "size": 18734
277
373
  },
278
374
  "user-persona": {
279
375
  "file": "user-persona.js",
280
- "size": 14554
376
+ "size": 19327
281
377
  },
282
378
  "user-story": {
283
379
  "file": "user-story.js",
284
- "size": 18154
380
+ "size": 20925
285
381
  },
286
382
  "video-player": {
287
383
  "file": "video-player.js",
288
384
  "size": 31128
289
385
  },
386
+ "watch-wc": {
387
+ "file": "watch-wc.js",
388
+ "size": 21630
389
+ },
390
+ "week-view": {
391
+ "file": "week-view.js",
392
+ "size": 6361
393
+ },
394
+ "work-item": {
395
+ "file": "work-item.js",
396
+ "size": 23409
397
+ },
290
398
  "youtube-player": {
291
399
  "file": "youtube-player.js",
292
400
  "size": 3461