ds-one 0.2.0-alpha.2 → 0.2.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigator,e=window,n=t&&(t.userAgent||t.vendor)||e&&e.opera||"",r=/Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(n),s=(t&&t.maxTouchPoints||0)>1,a=e?Math.min(e.innerWidth||0,e.innerHeight||0)<=820:!1;return r||s&&a}function Tn(){let t=Qe(),e=navigator,n=window,i=(e&&e.maxTouchPoints||0)>1,s=typeof document<"u"?document.documentElement.clientWidth:n?.innerWidth||0,a=typeof document<"u"?document.documentElement.clientHeight:n?.innerHeight||0,g=t&&Math.min(s,a)>=600;return{isMobile:t,isTablet:g,isDesktop:!t,isTouchCapable:i,deviceType:t?g?"tablet":"mobile":"desktop",userAgent:e&&(e.userAgent||e.vendor)||"",screenWidth:s,screenHeight:a}}function Xe(){let t=Tn();if(t.isMobile&&typeof document<"u"){let r=t.screenWidth/280;document.documentElement.style.setProperty("--scaling-factor-mobile",r.toFixed(3)),console.log(`[DS one] Mobile device detected - ${t.deviceType} (${t.screenWidth}x${t.screenHeight}), scaling factor: ${r.toFixed(2)}`)}else typeof document<"u"&&document.documentElement.style.setProperty("--scaling-factor-mobile","1"),console.log(`[DS one] Desktop device detected (${t.screenWidth}x${t.screenHeight})`);return typeof window<"u"&&window.DS_ONE_DEBUG&&console.log("[DS one] Device Info:",{type:t.deviceType,isMobile:t.isMobile,isTablet:t.isTablet,isDesktop:t.isDesktop,isTouchCapable:t.isTouchCapable,viewport:`${t.screenWidth}x${t.screenHeight}`,userAgent:t.userAgent}),t}if(typeof window<"u"){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{Xe()}):Xe();let t;window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{Xe()},100)})}var Et=!1,Nn=["./keys.json","./tekst.json","./tekster.json","./language.json","./languages.json","./translations.json","./translate.json","./i18n.json","./locales.json","./strings.json","./text.json","./texts.json"];function In(t){if(!t)return null;let e=t.trim();return e?e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||/^https?:\/\//i.test(e)?e:`./${e}`:null}function Mn(){if(typeof document>"u")return null;let e=document.querySelector("script[data-ds-one-translations]")?.getAttribute("data-ds-one-translations");if(e)return e;let n=document.querySelector('meta[name="ds-one:translations"]')?.getAttribute("content");if(n)return n;let r=document.querySelector('link[rel="ds-one-translations"]')?.getAttribute("href");return r||null}function Hn(){let t=new Set,e=typeof window<"u"?window.DS_ONE_TRANSLATIONS_FILE:null,n=Mn(),r=i=>{let s=In(i??"");s&&t.add(s)};return r(e??null),r(n),Nn.forEach(i=>r(i)),Array.from(t)}function On(t){return!t||typeof t!="object"?!1:Object.values(t).every(e=>e&&typeof e=="object")}async function Vn(t){try{console.log(`[DS one] Attempting to fetch translations from: ${t}`);let e=await fetch(t);if(!e.ok)return console.log(`[DS one] Failed to fetch ${t} (${e.status})`),null;let n=await e.json();if(console.log(`[DS one] Successfully fetched JSON from ${t}`),!On(n))return console.warn(`[DS one] Invalid translation format in ${t}. Expected object with language codes as keys.`),null;let r=Object.keys(n);return r.length===0?(console.warn(`[DS one] No languages found in ${t}`),null):(console.log(`[DS one] Valid translations found: ${r.join(", ")}`),n)}catch(e){return e instanceof TypeError&&e.message.includes("Failed to fetch")?(console.log(`[DS one] Network error fetching ${t}`),null):(console.error(`[DS one] Error loading external translations from ${t}:`,e),null)}}async function At(){if(Et||(Et=!0,typeof window>"u"))return!1;if(window.DS_ONE_TRANSLATIONS&&Object.keys(window.DS_ONE_TRANSLATIONS).length>0)return console.log(`[DS one] Translations already loaded (${Object.keys(window.DS_ONE_TRANSLATIONS).length} languages), skipping auto-load`),!0;let t=Hn();for(let e of t){let n=await Vn(e);if(!n)continue;window.DS_ONE_TRANSLATIONS=n;let r=Object.keys(n);return console.log(`[DS one] External translations loaded from ${e}: ${r.length} language(s) \u2013 ${r.join(", ")}`),window.dispatchEvent(new CustomEvent("translations-ready")),!0}return console.info(`[DS one] No external translations found. Looked in: ${t.join(", ")}. Using bundled translations.`),!1}typeof window<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{At()}):At());var ve=globalThis,ye=ve.ShadowRoot&&(ve.ShadyCSS===void 0||ve.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,et=Symbol(),Lt=new WeakMap,G=class{constructor(e,n,r){if(this._$cssResult$=!0,r!==et)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=n}get styleSheet(){let e=this.o,n=this.t;if(ye&&e===void 0){let r=n!==void 0&&n.length===1;r&&(e=Lt.get(n)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),r&&Lt.set(n,e))}return e}toString(){return this.cssText}},Tt=t=>new G(typeof t=="string"?t:t+"",void 0,et),c=(t,...e)=>{let n=t.length===1?t[0]:e.reduce(((r,i,s)=>r+(a=>{if(a._$cssResult$===!0)return a.cssText;if(typeof a=="number")return a;throw Error("Value passed to 'css' function must be a 'css' function result: "+a+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[s+1]),t[0]);return new G(n,t,et)},Nt=(t,e)=>{if(ye)t.adoptedStyleSheets=e.map((n=>n instanceof CSSStyleSheet?n:n.styleSheet));else for(let n of e){let r=document.createElement("style"),i=ve.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,t.appendChild(r)}},tt=ye?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(let r of e.cssRules)n+=r.cssText;return Tt(n)})(t):t;var{is:Dn,defineProperty:Pn,getOwnPropertyDescriptor:Un,getOwnPropertyNames:Rn,getOwnPropertySymbols:jn,getPrototypeOf:Wn}=Object,H=globalThis,It=H.trustedTypes,zn=It?It.emptyScript:"",Bn=H.reactiveElementPolyfillSupport,Z=(t,e)=>t,nt={toAttribute(t,e){switch(e){case Boolean:t=t?zn:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=t!==null;break;case Number:n=t===null?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch{n=null}}return n}},Ht=(t,e)=>!Dn(t,e),Mt={attribute:!0,type:String,converter:nt,reflect:!1,useDefault:!1,hasChanged:Ht};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),H.litPropertyMetadata??(H.litPropertyMetadata=new WeakMap);var N=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??(this.l=[])).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,n=Mt){if(n.state&&(n.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((n=Object.create(n)).wrapped=!0),this.elementProperties.set(e,n),!n.noAccessor){let r=Symbol(),i=this.getPropertyDescriptor(e,r,n);i!==void 0&&Pn(this.prototype,e,i)}}static getPropertyDescriptor(e,n,r){let{get:i,set:s}=Un(this.prototype,e)??{get(){return this[n]},set(a){this[n]=a}};return{get:i,set(a){let g=i?.call(this);s?.call(this,a),this.requestUpdate(e,g,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Mt}static _$Ei(){if(this.hasOwnProperty(Z("elementProperties")))return;let e=Wn(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(Z("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Z("properties"))){let n=this.properties,r=[...Rn(n),...jn(n)];for(let i of r)this.createProperty(i,n[i])}let e=this[Symbol.metadata];if(e!==null){let n=litPropertyMetadata.get(e);if(n!==void 0)for(let[r,i]of n)this.elementProperties.set(r,i)}this._$Eh=new Map;for(let[n,r]of this.elementProperties){let i=this._$Eu(n,r);i!==void 0&&this._$Eh.set(i,n)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let n=[];if(Array.isArray(e)){let r=new Set(e.flat(1/0).reverse());for(let i of r)n.unshift(tt(i))}else e!==void 0&&n.push(tt(e));return n}static _$Eu(e,n){let r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??(this._$EO=new Set)).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,n=this.constructor.elementProperties;for(let r of n.keys())this.hasOwnProperty(r)&&(e.set(r,this[r]),delete this[r]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Nt(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,n,r){this._$AK(e,r)}_$ET(e,n){let r=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,r);if(i!==void 0&&r.reflect===!0){let s=(r.converter?.toAttribute!==void 0?r.converter:nt).toAttribute(n,r.type);this._$Em=e,s==null?this.removeAttribute(i):this.setAttribute(i,s),this._$Em=null}}_$AK(e,n){let r=this.constructor,i=r._$Eh.get(e);if(i!==void 0&&this._$Em!==i){let s=r.getPropertyOptions(i),a=typeof s.converter=="function"?{fromAttribute:s.converter}:s.converter?.fromAttribute!==void 0?s.converter:nt;this._$Em=i;let g=a.fromAttribute(n,s.type);this[i]=g??this._$Ej?.get(i)??g,this._$Em=null}}requestUpdate(e,n,r){if(e!==void 0){let i=this.constructor,s=this[e];if(r??(r=i.getPropertyOptions(e)),!((r.hasChanged??Ht)(s,n)||r.useDefault&&r.reflect&&s===this._$Ej?.get(e)&&!this.hasAttribute(i._$Eu(e,r))))return;this.C(e,n,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,n,{useDefault:r,reflect:i,wrapped:s},a){r&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,a??n??this[e]),s!==!0||a!==void 0)||(this._$AL.has(e)||(this.hasUpdated||r||(n=void 0),this._$AL.set(e,n)),i===!0&&this._$Em!==e&&(this._$Eq??(this._$Eq=new Set)).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(n){Promise.reject(n)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(let[i,s]of this._$Ep)this[i]=s;this._$Ep=void 0}let r=this.constructor.elementProperties;if(r.size>0)for(let[i,s]of r){let{wrapped:a}=s,g=this[i];a!==!0||this._$AL.has(i)||g===void 0||this.C(i,void 0,s,g)}}let e=!1,n=this._$AL;try{e=this.shouldUpdate(n),e?(this.willUpdate(n),this._$EO?.forEach((r=>r.hostUpdate?.())),this.update(n)):this._$EM()}catch(r){throw e=!1,this._$EM(),r}e&&this._$AE(n)}willUpdate(e){}_$AE(e){this._$EO?.forEach((n=>n.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&(this._$Eq=this._$Eq.forEach((n=>this._$ET(n,this[n])))),this._$EM()}updated(e){}firstUpdated(e){}};N.elementStyles=[],N.shadowRootOptions={mode:"open"},N[Z("elementProperties")]=new Map,N[Z("finalized")]=new Map,Bn?.({ReactiveElement:N}),(H.reactiveElementVersions??(H.reactiveElementVersions=[])).push("2.1.1");var Y=globalThis,we=Y.trustedTypes,Ot=we?we.createPolicy("lit-html",{createHTML:t=>t}):void 0,it="$lit$",I=`lit$${Math.random().toFixed(9).slice(2)}$`,st="?"+I,qn=`<${st}>`,P=document,X=()=>P.createComment(""),Q=t=>t===null||typeof t!="object"&&typeof t!="function",ot=Array.isArray,jt=t=>ot(t)||typeof t?.[Symbol.iterator]=="function",rt=`[
2
- \f\r]`,J=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Vt=/-->/g,Dt=/>/g,V=RegExp(`>|${rt}(?:([^\\s"'>=/]+)(${rt}*=${rt}*(?:[^
3
- \f\r"'\`<>=]|("|')|))|$)`,"g"),Pt=/'/g,Ut=/"/g,Wt=/^(?:script|style|textarea|title)$/i,at=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),o=at(1),zt=at(2),Ur=at(3),M=Symbol.for("lit-noChange"),w=Symbol.for("lit-nothing"),Rt=new WeakMap,D=P.createTreeWalker(P,129);function Bt(t,e){if(!ot(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ot!==void 0?Ot.createHTML(e):e}var qt=(t,e)=>{let n=t.length-1,r=[],i,s=e===2?"<svg>":e===3?"<math>":"",a=J;for(let g=0;g<n;g++){let u=t[g],p,v,d=-1,A=0;for(;A<u.length&&(a.lastIndex=A,v=a.exec(u),v!==null);)A=a.lastIndex,a===J?v[1]==="!--"?a=Vt:v[1]!==void 0?a=Dt:v[2]!==void 0?(Wt.test(v[2])&&(i=RegExp("</"+v[2],"g")),a=V):v[3]!==void 0&&(a=V):a===V?v[0]===">"?(a=i??J,d=-1):v[1]===void 0?d=-2:(d=a.lastIndex-v[2].length,p=v[1],a=v[3]===void 0?V:v[3]==='"'?Ut:Pt):a===Ut||a===Pt?a=V:a===Vt||a===Dt?a=J:(a=V,i=void 0);let f=a===V&&t[g+1].startsWith("/>")?" ":"";s+=a===J?u+qn:d>=0?(r.push(p),u.slice(0,d)+it+u.slice(d)+I+f):u+I+(d===-2?g:f)}return[Bt(t,s+(t[n]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),r]},ee=class t{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let s=0,a=0,g=e.length-1,u=this.parts,[p,v]=qt(e,n);if(this.el=t.createElement(p,r),D.currentNode=this.el.content,n===2||n===3){let d=this.el.content.firstChild;d.replaceWith(...d.childNodes)}for(;(i=D.nextNode())!==null&&u.length<g;){if(i.nodeType===1){if(i.hasAttributes())for(let d of i.getAttributeNames())if(d.endsWith(it)){let A=v[a++],f=i.getAttribute(d).split(I),C=/([.?@])?(.*)/.exec(A);u.push({type:1,index:s,name:C[2],strings:f,ctor:C[1]==="."?xe:C[1]==="?"?_e:C[1]==="@"?$e:R}),i.removeAttribute(d)}else d.startsWith(I)&&(u.push({type:6,index:s}),i.removeAttribute(d));if(Wt.test(i.tagName)){let d=i.textContent.split(I),A=d.length-1;if(A>0){i.textContent=we?we.emptyScript:"";for(let f=0;f<A;f++)i.append(d[f],X()),D.nextNode(),u.push({type:2,index:++s});i.append(d[A],X())}}}else if(i.nodeType===8)if(i.data===st)u.push({type:2,index:s});else{let d=-1;for(;(d=i.data.indexOf(I,d+1))!==-1;)u.push({type:7,index:s}),d+=I.length-1}s++}}static createElement(e,n){let r=P.createElement("template");return r.innerHTML=e,r}};function U(t,e,n=t,r){if(e===M)return e;let i=r!==void 0?n._$Co?.[r]:n._$Cl,s=Q(e)?void 0:e._$litDirective$;return i?.constructor!==s&&(i?._$AO?.(!1),s===void 0?i=void 0:(i=new s(t),i._$AT(t,n,r)),r!==void 0?(n._$Co??(n._$Co=[]))[r]=i:n._$Cl=i),i!==void 0&&(e=U(t,i._$AS(t,e.values),i,r)),e}var be=class{constructor(e,n){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:n},parts:r}=this._$AD,i=(e?.creationScope??P).importNode(n,!0);D.currentNode=i;let s=D.nextNode(),a=0,g=0,u=r[0];for(;u!==void 0;){if(a===u.index){let p;u.type===2?p=new W(s,s.nextSibling,this,e):u.type===1?p=new u.ctor(s,u.name,u.strings,this,e):u.type===6&&(p=new Se(s,this,e)),this._$AV.push(p),u=r[++g]}a!==u?.index&&(s=D.nextNode(),a++)}return D.currentNode=P,i}p(e){let n=0;for(let r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}},W=class t{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,n,r,i){this.type=2,this._$AH=w,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,n=this._$AM;return n!==void 0&&e?.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=U(this,e,n),Q(e)?e===w||e==null||e===""?(this._$AH!==w&&this._$AR(),this._$AH=w):e!==this._$AH&&e!==M&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):jt(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==w&&Q(this._$AH)?this._$AA.nextSibling.data=e:this.T(P.createTextNode(e)),this._$AH=e}$(e){let{values:n,_$litType$:r}=e,i=typeof r=="number"?this._$AC(e):(r.el===void 0&&(r.el=ee.createElement(Bt(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===i)this._$AH.p(n);else{let s=new be(i,this),a=s.u(this.options);s.p(n),this.T(a),this._$AH=s}}_$AC(e){let n=Rt.get(e.strings);return n===void 0&&Rt.set(e.strings,n=new ee(e)),n}k(e){ot(this._$AH)||(this._$AH=[],this._$AR());let n=this._$AH,r,i=0;for(let s of e)i===n.length?n.push(r=new t(this.O(X()),this.O(X()),this,this.options)):r=n[i],r._$AI(s),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){for(this._$AP?.(!1,!0,n);e!==this._$AB;){let r=e.nextSibling;e.remove(),e=r}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},R=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,n,r,i,s){this.type=1,this._$AH=w,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=s,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=w}_$AI(e,n=this,r,i){let s=this.strings,a=!1;if(s===void 0)e=U(this,e,n,0),a=!Q(e)||e!==this._$AH&&e!==M,a&&(this._$AH=e);else{let g=e,u,p;for(e=s[0],u=0;u<s.length-1;u++)p=U(this,g[r+u],n,u),p===M&&(p=this._$AH[u]),a||(a=!Q(p)||p!==this._$AH[u]),p===w?e=w:e!==w&&(e+=(p??"")+s[u+1]),this._$AH[u]=p}a&&!i&&this.j(e)}j(e){e===w?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},xe=class extends R{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===w?void 0:e}},_e=class extends R{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==w)}},$e=class extends R{constructor(e,n,r,i,s){super(e,n,r,i,s),this.type=5}_$AI(e,n=this){if((e=U(this,e,n,0)??w)===M)return;let r=this._$AH,i=e===w&&r!==w||e.capture!==r.capture||e.once!==r.once||e.passive!==r.passive,s=e!==w&&(r===w||i);i&&this.element.removeEventListener(this.name,this,r),s&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Se=class{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){U(this,e)}},Ft={M:it,P:I,A:st,C:1,L:qt,R:be,D:jt,V:U,I:W,H:R,N:_e,U:$e,B:xe,F:Se},Fn=Y.litHtmlPolyfillSupport;Fn?.(ee,W),(Y.litHtmlVersions??(Y.litHtmlVersions=[])).push("3.3.1");var Kt=(t,e,n)=>{let r=n?.renderBefore??e,i=r._$litPart$;if(i===void 0){let s=n?.renderBefore??null;r._$litPart$=i=new W(e.insertBefore(X(),s),s,void 0,n??{})}return i._$AI(t),i};var te=globalThis,l=class extends N{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var n;let e=super.createRenderRoot();return(n=this.renderOptions).renderBefore??(n.renderBefore=e.firstChild),e}update(e){let n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=Kt(n,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return M}};l._$litElement$=!0,l.finalized=!0,te.litElementHydrateSupport?.({LitElement:l});var Kn=te.litElementPolyfillSupport;Kn?.({LitElement:l});(te.litElementVersions??(te.litElementVersions=[])).push("4.2.1");var Gt={en:{language:"Language",theme:"Theme",home:"Home",about:"About",contact:"Contact",welcome:"Welcome",description:"Description",learnMore:"Learn More",copyright:"\xA9 2025",siteTitle:"Site Title",downloadCV:"Download CV"},da:{language:"Sprog",theme:"Tema",home:"Hjem",about:"Om",contact:"Kontakt",welcome:"Velkommen",description:"Beskrivelse",learnMore:"L\xE6r Mere",copyright:"\xA9 2025",siteTitle:"Site Titel",downloadCV:"Download CV"},ja:{language:"\u8A00\u8A9E",theme:"\u30C6\u30FC\u30DE",home:"\u30DB\u30FC\u30E0",about:"\u306B\u3064\u3044\u3066",contact:"\u304A\u554F\u3044\u5408\u308F\u305B",welcome:"\u3088\u3046\u3053\u305D",description:"\u8AAC\u660E",learnMore:"\u8A73\u7D30\u3092\u898B\u308B",copyright:"\xA9 2025",siteTitle:"\u30B5\u30A4\u30C8\u30BF\u30A4\u30C8\u30EB",downloadCV:"CV\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9"}};var tn=["da","nb","sv","pt","es","zh","ko","ja","en","de"],Zn=new Map(tn.map((t,e)=>[t,e])),Zt={da:"Danish","da-dk":"Danish",nb:"Norwegian","nb-no":"Norwegian",sv:"Swedish","sv-se":"Swedish",de:"German","de-de":"German",en:"English","en-us":"English",pt:"Portuguese","pt-pt":"Portuguese","pt-br":"Portuguese (Brazil)",es:"Spanish","es-es":"Spanish","es-mx":"Spanish (Mexico)",zh:"Chinese","zh-hans":"Chinese (Simplified)","zh-hant":"Chinese (Traditional)",ja:"Japanese","ja-jp":"Japanese",ko:"Korean","ko-kr":"Korean"},Jt=new Map,Yt=!1;function Ce(){return typeof window<"u"&&window.DS_ONE_TRANSLATIONS?window.DS_ONE_TRANSLATIONS:Gt}var T=Ce(),lt=new Map,k="en";function ne(t){return t?t.toLowerCase().split(/[-_]/)[0]??"":""}function Xt(t){let e=ne(t),n=Zn.get(e);return typeof n=="number"?n:tn.length}function nn(t){return[...t].sort((e,n)=>{let r=Xt(e),i=Xt(n);return r!==i?r-i:e.localeCompare(n)})}function Jn(t,e){let n=t?.replace("_","-");if(n)try{let r=Jt.get(n);r||(r=new Intl.DisplayNames([n],{type:"language"}),Jt.set(n,r));let i=e.replace("_","-"),s=r.of(i);if(s&&s!==i)return s;let a=r.of(ne(i));if(a)return a}catch{Yt||(console.info("[DS one] Intl.DisplayNames is not available, using fallback language names."),Yt=!0)}}function Yn(t){let e=t.toLowerCase().replace("_","-"),n=Zt[e];if(n)return n;let r=ne(e);return Zt[r]}function rn(t,e={}){if(!t)return"";let n=[];e.locale&&n.push(e.locale),typeof navigator<"u"&&(Array.isArray(navigator.languages)&&n.push(...navigator.languages),navigator.language&&n.push(navigator.language)),n.push(k),n.push("en");let r=new Set;for(let a of n){if(!a||r.has(a))continue;r.add(a);let g=Jn(a,t);if(g)return g}let i=Yn(t);if(i)return i;let s=ne(t);return s?s.toUpperCase():t}var Qt={da:"da","da-dk":"da",no:"nb",nb:"nb","nb-no":"nb",nn:"nn","nn-no":"nn",sv:"sv","sv-se":"sv",pt:"pt","pt-pt":"pt","pt-br":"pt",es:"es","es-es":"es","es-mx":"es",zh:"zh","zh-cn":"zh","zh-hans":"zh","zh-tw":"zh","zh-hant":"zh",ko:"ko","ko-kr":"ko",ja:"ja","ja-jp":"ja",en:"en","en-us":"en","en-gb":"en",de:"de","de-de":"de"};function en(t){if(!t)return null;let e=t.toLowerCase().replace("_","-"),n=Qt[e];if(n)return n;let r=ne(e),i=Qt[r];return i||t}function Xn(){if(typeof navigator>"u")return k;let t=navigator.language;if(t){let e=en(t);if(e)return e}if(Array.isArray(navigator.languages))for(let e of navigator.languages){let n=en(e);if(n)return n}return k}var ei=typeof window<"u"?window.localStorage?.getItem("ds-one:language")??void 0:void 0,$={value:localStorage.getItem("language")||Xn(),set:function(t){this.value=t,localStorage.setItem("language",t),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))}};typeof window<"u"&&window.addEventListener("translations-ready",()=>{T=Ce(),window.dispatchEvent(new CustomEvent("translations-loaded")),window.notionDataLoaded=!0;let t=$.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))});setTimeout(()=>{window.dispatchEvent(new CustomEvent("translations-loaded")),window.notionDataLoaded=!0;let t=$.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))},100);function E(t){let e=$.value;return T?.[e]?.[t]?T[e][t]:e!==k&&T?.[k]?.[t]?T[k][t]:(console.warn(`[translate] No translation found for key "${t}"`),t)}function ti(t,e=$.value){if(!t)return!1;let n=T?.[e];return!!(n&&Object.prototype.hasOwnProperty.call(n,t)||e!==k&&T?.[k]&&Object.prototype.hasOwnProperty.call(T[k],t))}function x(t){return E(t)}async function sn(t,e=$.value){if(!t||!T||!T[e])return null;let n=T[e][t];return n||(e!==k&&T[k]?.[t]?T[k][t]:null)}function ni(t,e,n=$.value){if(!t)return;Qn(n).set(t,e)}function Qn(t){return lt.has(t)||lt.set(t,new Map),lt.get(t)}function ri(){let t=Ce();if(t&&Object.keys(t).length>0){let e=Object.keys(t);return Promise.resolve(nn(e))}return Promise.resolve([k])}function ct(){let t=Ce();return t&&Object.keys(t).length>0?nn(Object.keys(t)):[k]}function ii(t,e){console.log(`Loading additional translations for ${t}:`,Object.keys(e).length,"keys")}function dt(t){localStorage.setItem("language",t),$.set(t),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))}var re=class extends l{constructor(){super(),this._handleLanguageChange=()=>{this._updateText()},this.variant="title",this.disabled=!1,this.bold=!1,this["no-background"]=!1,this.blank=!1,this.notionKey=null,this.key="",this.fallback="",this.language="en-US",this.defaultText="",this.href="",this._loading=!1,this._notionText=null}connectedCallback(){super.connectedCallback(),this._updateText(),window.addEventListener("language-changed",this._handleLanguageChange)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this._handleLanguageChange)}updated(e){super.updated(e),(e.has("key")||e.has("defaultText"))&&this._updateText()}_updateText(){this.key?this._notionText=x(this.key):this._notionText=this.defaultText||this.fallback||null,this.requestUpdate()}render(){return o`
1
+ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigator,e=window,i=t&&(t.userAgent||t.vendor)||e&&e.opera||"",n=/Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(i),s=(t&&t.maxTouchPoints||0)>1,a=e?Math.min(e.innerWidth||0,e.innerHeight||0)<=820:!1;return n||s&&a}function Ni(){let t=Qe(),e=navigator,i=window,r=(e&&e.maxTouchPoints||0)>1,s=typeof document<"u"?document.documentElement.clientWidth:i?.innerWidth||0,a=typeof document<"u"?document.documentElement.clientHeight:i?.innerHeight||0,g=t&&Math.min(s,a)>=600;return{isMobile:t,isTablet:g,isDesktop:!t,isTouchCapable:r,deviceType:t?g?"tablet":"mobile":"desktop",userAgent:e&&(e.userAgent||e.vendor)||"",screenWidth:s,screenHeight:a}}function Xe(){let t=Ni();if(t.isMobile&&typeof document<"u"){let n=t.screenWidth/280;document.documentElement.style.setProperty("--scaling-factor-mobile",n.toFixed(3)),console.log(`[DS one] Mobile device detected - ${t.deviceType} (${t.screenWidth}x${t.screenHeight}), scaling factor: ${n.toFixed(2)}`)}else typeof document<"u"&&document.documentElement.style.setProperty("--scaling-factor-mobile","1"),console.log(`[DS one] Desktop device detected (${t.screenWidth}x${t.screenHeight})`);return typeof window<"u"&&window.DS_ONE_DEBUG&&console.log("[DS one] Device Info:",{type:t.deviceType,isMobile:t.isMobile,isTablet:t.isTablet,isDesktop:t.isDesktop,isTouchCapable:t.isTouchCapable,viewport:`${t.screenWidth}x${t.screenHeight}`,userAgent:t.userAgent}),t}if(typeof window<"u"){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{Xe()}):Xe();let t;window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{Xe()},100)})}var Et=!1,Tt="./translations.json";function At(t){if(!t)return null;let e=t.trim();return e?e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||/^https?:\/\//i.test(e)?e:`./${e}`:null}function Ii(){if(typeof document>"u")return null;let e=document.querySelector("script[data-ds-one-translations]")?.getAttribute("data-ds-one-translations");if(e)return e;let i=document.querySelector('meta[name="ds-one:translations"]')?.getAttribute("content");if(i)return i;let n=document.querySelector('link[rel="ds-one-translations"]')?.getAttribute("href");return n||null}function Mi(){let t=[],e=typeof window<"u"?window.DS_ONE_TRANSLATIONS_FILE:null,i=Ii(),n=At(e??"");n&&t.push(n);let r=At(i??"");return r&&!t.includes(r)&&t.push(r),t.length===0&&t.push(Tt),t}function Hi(t){return!t||typeof t!="object"?!1:Object.values(t).every(e=>e&&typeof e=="object")}async function Oi(t){try{let e=await fetch(t);if(!e.ok)return null;let i=await e.json();return Hi(i)?Object.keys(i).length===0?(console.warn(`[DS one] No languages found in ${t}`),null):i:(console.warn(`[DS one] Invalid translation format in ${t}. Expected object with language codes as keys.`),null)}catch{return null}}async function Lt(){if(Et||(Et=!0,typeof window>"u"))return!1;if(window.DS_ONE_TRANSLATIONS&&Object.keys(window.DS_ONE_TRANSLATIONS).length>0)return console.log(`[DS one] Translations already loaded (${Object.keys(window.DS_ONE_TRANSLATIONS).length} languages), skipping auto-load`),!0;let t=Mi();for(let e of t){let i=await Oi(e);if(!i)continue;window.DS_ONE_TRANSLATIONS=i;let n=Object.keys(i);return console.log(`[DS one] External translations loaded from ${e}: ${n.length} language(s) \u2013 ${n.join(", ")}`),window.dispatchEvent(new CustomEvent("translations-ready")),!0}return console.info(`[DS one] No external translations found at ${t[0]??Tt}. Using bundled translations.`),!1}typeof window<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{Lt()}):Lt());var ve=globalThis,ye=ve.ShadowRoot&&(ve.ShadyCSS===void 0||ve.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,et=Symbol(),Nt=new WeakMap,G=class{constructor(e,i,n){if(this._$cssResult$=!0,n!==et)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=i}get styleSheet(){let e=this.o,i=this.t;if(ye&&e===void 0){let n=i!==void 0&&i.length===1;n&&(e=Nt.get(i)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&Nt.set(i,e))}return e}toString(){return this.cssText}},It=t=>new G(typeof t=="string"?t:t+"",void 0,et),c=(t,...e)=>{let i=t.length===1?t[0]:e.reduce(((n,r,s)=>n+(a=>{if(a._$cssResult$===!0)return a.cssText;if(typeof a=="number")return a;throw Error("Value passed to 'css' function must be a 'css' function result: "+a+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+t[s+1]),t[0]);return new G(i,t,et)},Mt=(t,e)=>{if(ye)t.adoptedStyleSheets=e.map((i=>i instanceof CSSStyleSheet?i:i.styleSheet));else for(let i of e){let n=document.createElement("style"),r=ve.litNonce;r!==void 0&&n.setAttribute("nonce",r),n.textContent=i.cssText,t.appendChild(n)}},tt=ye?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let i="";for(let n of e.cssRules)i+=n.cssText;return It(i)})(t):t;var{is:Vi,defineProperty:Di,getOwnPropertyDescriptor:Pi,getOwnPropertyNames:Ui,getOwnPropertySymbols:Ri,getPrototypeOf:Wi}=Object,H=globalThis,Ht=H.trustedTypes,ji=Ht?Ht.emptyScript:"",zi=H.reactiveElementPolyfillSupport,Z=(t,e)=>t,it={toAttribute(t,e){switch(e){case Boolean:t=t?ji:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=t!==null;break;case Number:i=t===null?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch{i=null}}return i}},Vt=(t,e)=>!Vi(t,e),Ot={attribute:!0,type:String,converter:it,reflect:!1,useDefault:!1,hasChanged:Vt};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),H.litPropertyMetadata??(H.litPropertyMetadata=new WeakMap);var N=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??(this.l=[])).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,i=Ot){if(i.state&&(i.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((i=Object.create(i)).wrapped=!0),this.elementProperties.set(e,i),!i.noAccessor){let n=Symbol(),r=this.getPropertyDescriptor(e,n,i);r!==void 0&&Di(this.prototype,e,r)}}static getPropertyDescriptor(e,i,n){let{get:r,set:s}=Pi(this.prototype,e)??{get(){return this[i]},set(a){this[i]=a}};return{get:r,set(a){let g=r?.call(this);s?.call(this,a),this.requestUpdate(e,g,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Ot}static _$Ei(){if(this.hasOwnProperty(Z("elementProperties")))return;let e=Wi(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(Z("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Z("properties"))){let i=this.properties,n=[...Ui(i),...Ri(i)];for(let r of n)this.createProperty(r,i[r])}let e=this[Symbol.metadata];if(e!==null){let i=litPropertyMetadata.get(e);if(i!==void 0)for(let[n,r]of i)this.elementProperties.set(n,r)}this._$Eh=new Map;for(let[i,n]of this.elementProperties){let r=this._$Eu(i,n);r!==void 0&&this._$Eh.set(r,i)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let i=[];if(Array.isArray(e)){let n=new Set(e.flat(1/0).reverse());for(let r of n)i.unshift(tt(r))}else e!==void 0&&i.push(tt(e));return i}static _$Eu(e,i){let n=i.attribute;return n===!1?void 0:typeof n=="string"?n:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??(this._$EO=new Set)).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,i=this.constructor.elementProperties;for(let n of i.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Mt(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,i,n){this._$AK(e,n)}_$ET(e,i){let n=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,n);if(r!==void 0&&n.reflect===!0){let s=(n.converter?.toAttribute!==void 0?n.converter:it).toAttribute(i,n.type);this._$Em=e,s==null?this.removeAttribute(r):this.setAttribute(r,s),this._$Em=null}}_$AK(e,i){let n=this.constructor,r=n._$Eh.get(e);if(r!==void 0&&this._$Em!==r){let s=n.getPropertyOptions(r),a=typeof s.converter=="function"?{fromAttribute:s.converter}:s.converter?.fromAttribute!==void 0?s.converter:it;this._$Em=r;let g=a.fromAttribute(i,s.type);this[r]=g??this._$Ej?.get(r)??g,this._$Em=null}}requestUpdate(e,i,n){if(e!==void 0){let r=this.constructor,s=this[e];if(n??(n=r.getPropertyOptions(e)),!((n.hasChanged??Vt)(s,i)||n.useDefault&&n.reflect&&s===this._$Ej?.get(e)&&!this.hasAttribute(r._$Eu(e,n))))return;this.C(e,i,n)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,i,{useDefault:n,reflect:r,wrapped:s},a){n&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,a??i??this[e]),s!==!0||a!==void 0)||(this._$AL.has(e)||(this.hasUpdated||n||(i=void 0),this._$AL.set(e,i)),r===!0&&this._$Em!==e&&(this._$Eq??(this._$Eq=new Set)).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(i){Promise.reject(i)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(let[r,s]of this._$Ep)this[r]=s;this._$Ep=void 0}let n=this.constructor.elementProperties;if(n.size>0)for(let[r,s]of n){let{wrapped:a}=s,g=this[r];a!==!0||this._$AL.has(r)||g===void 0||this.C(r,void 0,s,g)}}let e=!1,i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),this._$EO?.forEach((n=>n.hostUpdate?.())),this.update(i)):this._$EM()}catch(n){throw e=!1,this._$EM(),n}e&&this._$AE(i)}willUpdate(e){}_$AE(e){this._$EO?.forEach((i=>i.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&(this._$Eq=this._$Eq.forEach((i=>this._$ET(i,this[i])))),this._$EM()}updated(e){}firstUpdated(e){}};N.elementStyles=[],N.shadowRootOptions={mode:"open"},N[Z("elementProperties")]=new Map,N[Z("finalized")]=new Map,zi?.({ReactiveElement:N}),(H.reactiveElementVersions??(H.reactiveElementVersions=[])).push("2.1.1");var Y=globalThis,we=Y.trustedTypes,Dt=we?we.createPolicy("lit-html",{createHTML:t=>t}):void 0,rt="$lit$",I=`lit$${Math.random().toFixed(9).slice(2)}$`,st="?"+I,Bi=`<${st}>`,P=document,X=()=>P.createComment(""),Q=t=>t===null||typeof t!="object"&&typeof t!="function",ot=Array.isArray,zt=t=>ot(t)||typeof t?.[Symbol.iterator]=="function",nt=`[
2
+ \f\r]`,J=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Pt=/-->/g,Ut=/>/g,V=RegExp(`>|${nt}(?:([^\\s"'>=/]+)(${nt}*=${nt}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Rt=/'/g,Wt=/"/g,Bt=/^(?:script|style|textarea|title)$/i,at=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),o=at(1),qt=at(2),Un=at(3),M=Symbol.for("lit-noChange"),w=Symbol.for("lit-nothing"),jt=new WeakMap,D=P.createTreeWalker(P,129);function Ft(t,e){if(!ot(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Dt!==void 0?Dt.createHTML(e):e}var Kt=(t,e)=>{let i=t.length-1,n=[],r,s=e===2?"<svg>":e===3?"<math>":"",a=J;for(let g=0;g<i;g++){let u=t[g],p,v,d=-1,A=0;for(;A<u.length&&(a.lastIndex=A,v=a.exec(u),v!==null);)A=a.lastIndex,a===J?v[1]==="!--"?a=Pt:v[1]!==void 0?a=Ut:v[2]!==void 0?(Bt.test(v[2])&&(r=RegExp("</"+v[2],"g")),a=V):v[3]!==void 0&&(a=V):a===V?v[0]===">"?(a=r??J,d=-1):v[1]===void 0?d=-2:(d=a.lastIndex-v[2].length,p=v[1],a=v[3]===void 0?V:v[3]==='"'?Wt:Rt):a===Wt||a===Rt?a=V:a===Pt||a===Ut?a=J:(a=V,r=void 0);let f=a===V&&t[g+1].startsWith("/>")?" ":"";s+=a===J?u+Bi:d>=0?(n.push(p),u.slice(0,d)+rt+u.slice(d)+I+f):u+I+(d===-2?g:f)}return[Ft(t,s+(t[i]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),n]},ee=class t{constructor({strings:e,_$litType$:i},n){let r;this.parts=[];let s=0,a=0,g=e.length-1,u=this.parts,[p,v]=Kt(e,i);if(this.el=t.createElement(p,n),D.currentNode=this.el.content,i===2||i===3){let d=this.el.content.firstChild;d.replaceWith(...d.childNodes)}for(;(r=D.nextNode())!==null&&u.length<g;){if(r.nodeType===1){if(r.hasAttributes())for(let d of r.getAttributeNames())if(d.endsWith(rt)){let A=v[a++],f=r.getAttribute(d).split(I),C=/([.?@])?(.*)/.exec(A);u.push({type:1,index:s,name:C[2],strings:f,ctor:C[1]==="."?xe:C[1]==="?"?_e:C[1]==="@"?$e:R}),r.removeAttribute(d)}else d.startsWith(I)&&(u.push({type:6,index:s}),r.removeAttribute(d));if(Bt.test(r.tagName)){let d=r.textContent.split(I),A=d.length-1;if(A>0){r.textContent=we?we.emptyScript:"";for(let f=0;f<A;f++)r.append(d[f],X()),D.nextNode(),u.push({type:2,index:++s});r.append(d[A],X())}}}else if(r.nodeType===8)if(r.data===st)u.push({type:2,index:s});else{let d=-1;for(;(d=r.data.indexOf(I,d+1))!==-1;)u.push({type:7,index:s}),d+=I.length-1}s++}}static createElement(e,i){let n=P.createElement("template");return n.innerHTML=e,n}};function U(t,e,i=t,n){if(e===M)return e;let r=n!==void 0?i._$Co?.[n]:i._$Cl,s=Q(e)?void 0:e._$litDirective$;return r?.constructor!==s&&(r?._$AO?.(!1),s===void 0?r=void 0:(r=new s(t),r._$AT(t,i,n)),n!==void 0?(i._$Co??(i._$Co=[]))[n]=r:i._$Cl=r),r!==void 0&&(e=U(t,r._$AS(t,e.values),r,n)),e}var be=class{constructor(e,i){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:i},parts:n}=this._$AD,r=(e?.creationScope??P).importNode(i,!0);D.currentNode=r;let s=D.nextNode(),a=0,g=0,u=n[0];for(;u!==void 0;){if(a===u.index){let p;u.type===2?p=new j(s,s.nextSibling,this,e):u.type===1?p=new u.ctor(s,u.name,u.strings,this,e):u.type===6&&(p=new Se(s,this,e)),this._$AV.push(p),u=n[++g]}a!==u?.index&&(s=D.nextNode(),a++)}return D.currentNode=P,r}p(e){let i=0;for(let n of this._$AV)n!==void 0&&(n.strings!==void 0?(n._$AI(e,n,i),i+=n.strings.length-2):n._$AI(e[i])),i++}},j=class t{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,i,n,r){this.type=2,this._$AH=w,this._$AN=void 0,this._$AA=e,this._$AB=i,this._$AM=n,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,i=this._$AM;return i!==void 0&&e?.nodeType===11&&(e=i.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,i=this){e=U(this,e,i),Q(e)?e===w||e==null||e===""?(this._$AH!==w&&this._$AR(),this._$AH=w):e!==this._$AH&&e!==M&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):zt(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==w&&Q(this._$AH)?this._$AA.nextSibling.data=e:this.T(P.createTextNode(e)),this._$AH=e}$(e){let{values:i,_$litType$:n}=e,r=typeof n=="number"?this._$AC(e):(n.el===void 0&&(n.el=ee.createElement(Ft(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===r)this._$AH.p(i);else{let s=new be(r,this),a=s.u(this.options);s.p(i),this.T(a),this._$AH=s}}_$AC(e){let i=jt.get(e.strings);return i===void 0&&jt.set(e.strings,i=new ee(e)),i}k(e){ot(this._$AH)||(this._$AH=[],this._$AR());let i=this._$AH,n,r=0;for(let s of e)r===i.length?i.push(n=new t(this.O(X()),this.O(X()),this,this.options)):n=i[r],n._$AI(s),r++;r<i.length&&(this._$AR(n&&n._$AB.nextSibling,r),i.length=r)}_$AR(e=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);e!==this._$AB;){let n=e.nextSibling;e.remove(),e=n}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},R=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,i,n,r,s){this.type=1,this._$AH=w,this._$AN=void 0,this.element=e,this.name=i,this._$AM=r,this.options=s,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=w}_$AI(e,i=this,n,r){let s=this.strings,a=!1;if(s===void 0)e=U(this,e,i,0),a=!Q(e)||e!==this._$AH&&e!==M,a&&(this._$AH=e);else{let g=e,u,p;for(e=s[0],u=0;u<s.length-1;u++)p=U(this,g[n+u],i,u),p===M&&(p=this._$AH[u]),a||(a=!Q(p)||p!==this._$AH[u]),p===w?e=w:e!==w&&(e+=(p??"")+s[u+1]),this._$AH[u]=p}a&&!r&&this.j(e)}j(e){e===w?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},xe=class extends R{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===w?void 0:e}},_e=class extends R{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==w)}},$e=class extends R{constructor(e,i,n,r,s){super(e,i,n,r,s),this.type=5}_$AI(e,i=this){if((e=U(this,e,i,0)??w)===M)return;let n=this._$AH,r=e===w&&n!==w||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,s=e!==w&&(n===w||r);r&&this.element.removeEventListener(this.name,this,n),s&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Se=class{constructor(e,i,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=i,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){U(this,e)}},Gt={M:rt,P:I,A:st,C:1,L:Kt,R:be,D:zt,V:U,I:j,H:R,N:_e,U:$e,B:xe,F:Se},qi=Y.litHtmlPolyfillSupport;qi?.(ee,j),(Y.litHtmlVersions??(Y.litHtmlVersions=[])).push("3.3.1");var Zt=(t,e,i)=>{let n=i?.renderBefore??e,r=n._$litPart$;if(r===void 0){let s=i?.renderBefore??null;n._$litPart$=r=new j(e.insertBefore(X(),s),s,void 0,i??{})}return r._$AI(t),r};var te=globalThis,l=class extends N{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var i;let e=super.createRenderRoot();return(i=this.renderOptions).renderBefore??(i.renderBefore=e.firstChild),e}update(e){let i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=Zt(i,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return M}};l._$litElement$=!0,l.finalized=!0,te.litElementHydrateSupport?.({LitElement:l});var Fi=te.litElementPolyfillSupport;Fi?.({LitElement:l});(te.litElementVersions??(te.litElementVersions=[])).push("4.2.1");var Jt={en:{language:"Language",theme:"Theme",home:"Home",about:"About",contact:"Contact",welcome:"Welcome",description:"Description",learnMore:"Learn More",copyright:"\xA9 2025",siteTitle:"Site Title",downloadCV:"Download CV"},da:{language:"Sprog",theme:"Tema",home:"Hjem",about:"Om",contact:"Kontakt",welcome:"Velkommen",description:"Beskrivelse",learnMore:"L\xE6r Mere",copyright:"\xA9 2025",siteTitle:"Site Titel",downloadCV:"Download CV"},ja:{language:"\u8A00\u8A9E",theme:"\u30C6\u30FC\u30DE",home:"\u30DB\u30FC\u30E0",about:"\u306B\u3064\u3044\u3066",contact:"\u304A\u554F\u3044\u5408\u308F\u305B",welcome:"\u3088\u3046\u3053\u305D",description:"\u8AAC\u660E",learnMore:"\u8A73\u7D30\u3092\u898B\u308B",copyright:"\xA9 2025",siteTitle:"\u30B5\u30A4\u30C8\u30BF\u30A4\u30C8\u30EB",downloadCV:"CV\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9"}};var ni=["da","nb","sv","pt","es","zh","ko","ja","en","de"],Gi=new Map(ni.map((t,e)=>[t,e])),Yt={da:"Danish","da-dk":"Danish",nb:"Norwegian","nb-no":"Norwegian",sv:"Swedish","sv-se":"Swedish",de:"German","de-de":"German",en:"English","en-us":"English",pt:"Portuguese","pt-pt":"Portuguese","pt-br":"Portuguese (Brazil)",es:"Spanish","es-es":"Spanish","es-mx":"Spanish (Mexico)",zh:"Chinese","zh-hans":"Chinese (Simplified)","zh-hant":"Chinese (Traditional)",ja:"Japanese","ja-jp":"Japanese",ko:"Korean","ko-kr":"Korean"},Xt=new Map,Qt=!1;function Ce(){return typeof window<"u"&&window.DS_ONE_TRANSLATIONS?window.DS_ONE_TRANSLATIONS:Jt}var T=Ce(),lt=new Map,k="en";function ie(t){return t?t.toLowerCase().split(/[-_]/)[0]??"":""}function ei(t){let e=ie(t),i=Gi.get(e);return typeof i=="number"?i:ni.length}function ri(t){return[...t].sort((e,i)=>{let n=ei(e),r=ei(i);return n!==r?n-r:e.localeCompare(i)})}function Zi(t,e){let i=t?.replace("_","-");if(i)try{let n=Xt.get(i);n||(n=new Intl.DisplayNames([i],{type:"language"}),Xt.set(i,n));let r=e.replace("_","-"),s=n.of(r);if(s&&s!==r)return s;let a=n.of(ie(r));if(a)return a}catch{Qt||(console.info("[DS one] Intl.DisplayNames is not available, using fallback language names."),Qt=!0)}}function Ji(t){let e=t.toLowerCase().replace("_","-"),i=Yt[e];if(i)return i;let n=ie(e);return Yt[n]}function si(t,e={}){if(!t)return"";let i=[];e.locale&&i.push(e.locale),typeof navigator<"u"&&(Array.isArray(navigator.languages)&&i.push(...navigator.languages),navigator.language&&i.push(navigator.language)),i.push(k),i.push("en");let n=new Set;for(let a of i){if(!a||n.has(a))continue;n.add(a);let g=Zi(a,t);if(g)return g}let r=Ji(t);if(r)return r;let s=ie(t);return s?s.toUpperCase():t}var ti={da:"da","da-dk":"da",no:"nb",nb:"nb","nb-no":"nb",nn:"nn","nn-no":"nn",sv:"sv","sv-se":"sv",pt:"pt","pt-pt":"pt","pt-br":"pt",es:"es","es-es":"es","es-mx":"es",zh:"zh","zh-cn":"zh","zh-hans":"zh","zh-tw":"zh","zh-hant":"zh",ko:"ko","ko-kr":"ko",ja:"ja","ja-jp":"ja",en:"en","en-us":"en","en-gb":"en",de:"de","de-de":"de"};function ii(t){if(!t)return null;let e=t.toLowerCase().replace("_","-"),i=ti[e];if(i)return i;let n=ie(e),r=ti[n];return r||t}function Yi(){if(typeof navigator>"u")return k;let t=navigator.language;if(t){let e=ii(t);if(e)return e}if(Array.isArray(navigator.languages))for(let e of navigator.languages){let i=ii(e);if(i)return i}return k}var er=typeof window<"u"?window.localStorage?.getItem("ds-one:language")??void 0:void 0,$={value:localStorage.getItem("language")||Yi(),set:function(t){this.value=t,localStorage.setItem("language",t),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))}};typeof window<"u"&&window.addEventListener("translations-ready",()=>{T=Ce(),window.dispatchEvent(new CustomEvent("translations-loaded")),window.notionDataLoaded=!0;let t=$.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))});setTimeout(()=>{window.dispatchEvent(new CustomEvent("translations-loaded")),window.notionDataLoaded=!0;let t=$.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))},100);function E(t){let e=$.value;return T?.[e]?.[t]?T[e][t]:e!==k&&T?.[k]?.[t]?T[k][t]:(console.warn(`[translate] No translation found for key "${t}"`),t)}function tr(t,e=$.value){if(!t)return!1;let i=T?.[e];return!!(i&&Object.prototype.hasOwnProperty.call(i,t)||e!==k&&T?.[k]&&Object.prototype.hasOwnProperty.call(T[k],t))}function x(t){return E(t)}async function oi(t,e=$.value){if(!t||!T||!T[e])return null;let i=T[e][t];return i||(e!==k&&T[k]?.[t]?T[k][t]:null)}function ir(t,e,i=$.value){if(!t)return;Xi(i).set(t,e)}function Xi(t){return lt.has(t)||lt.set(t,new Map),lt.get(t)}function nr(){let t=Ce();if(t&&Object.keys(t).length>0){let e=Object.keys(t);return Promise.resolve(ri(e))}return Promise.resolve([k])}function ct(){let t=Ce();return t&&Object.keys(t).length>0?ri(Object.keys(t)):[k]}function rr(t,e){console.log(`Loading additional translations for ${t}:`,Object.keys(e).length,"keys")}function dt(t){localStorage.setItem("language",t),$.set(t),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))}var ne=class extends l{constructor(){super(),this._handleLanguageChange=()=>{this._updateText()},this.variant="title",this.disabled=!1,this.bold=!1,this["no-background"]=!1,this.blank=!1,this.notionKey=null,this.key="",this.fallback="",this.language="en-US",this.defaultText="",this.href="",this._loading=!1,this._notionText=null}connectedCallback(){super.connectedCallback(),this._updateText(),window.addEventListener("language-changed",this._handleLanguageChange)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this._handleLanguageChange)}updated(e){super.updated(e),(e.has("key")||e.has("defaultText"))&&this._updateText()}_updateText(){this.key?this._notionText=x(this.key):this._notionText=this.defaultText||this.fallback||null,this.requestUpdate()}render(){return o`
4
4
  <button
5
5
  class=${this.variant}
6
6
  ?disabled=${this.disabled}
@@ -10,7 +10,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
10
10
  >
11
11
  ${this._notionText?this._notionText:o`<slot></slot>`}
12
12
  </button>
13
- `}_handleClick(e){if(this.disabled){e.preventDefault(),e.stopPropagation();return}if(this.href){e.preventDefault(),e.stopPropagation(),this.blank?window.open(this.href,"_blank","noopener,noreferrer"):window.location.href=this.href;return}}};re.properties={variant:{type:String,reflect:!0},disabled:{type:Boolean,reflect:!0},bold:{type:Boolean,reflect:!0},"no-background":{type:Boolean,reflect:!0,attribute:"no-background"},blank:{type:Boolean,reflect:!0},notionKey:{type:String,attribute:"notion-key"},key:{type:String},fallback:{type:String},language:{type:String},defaultText:{type:String,attribute:"default-text"},href:{type:String},_loading:{type:Boolean,state:!0},_notionText:{type:String,state:!0}};re.styles=c`
13
+ `}_handleClick(e){if(this.disabled){e.preventDefault(),e.stopPropagation();return}if(this.href){e.preventDefault(),e.stopPropagation(),this.blank?window.open(this.href,"_blank","noopener,noreferrer"):window.location.href=this.href;return}}};ne.properties={variant:{type:String,reflect:!0},disabled:{type:Boolean,reflect:!0},bold:{type:Boolean,reflect:!0},"no-background":{type:Boolean,reflect:!0,attribute:"no-background"},blank:{type:Boolean,reflect:!0},notionKey:{type:String,attribute:"notion-key"},key:{type:String},fallback:{type:String},language:{type:String},defaultText:{type:String,attribute:"default-text"},href:{type:String},_loading:{type:Boolean,state:!0},_notionText:{type:String,state:!0}};ne.styles=c`
14
14
  button {
15
15
  max-height: calc(var(--08) * var(--scaling-factor));
16
16
  border: none;
@@ -60,7 +60,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
60
60
  .loading {
61
61
  opacity: 0.7;
62
62
  }
63
- `;customElements.define("ds-button",re);var ke=class extends l{static get properties(){return{key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},fallback:{type:String,reflect:!0},_text:{type:String,state:!0}}}constructor(){super(),this.key="",this.defaultValue="",this.fallback="",this._text="",this.boundHandlers={languageChanged:(()=>{console.log("Language changed event received in ds-text"),this._loadText()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundHandlers.languageChanged)}updated(e){super.updated(e),(e.has("key")||e.has("defaultValue"))&&this._loadText()}_loadText(){if(!this.key){this._text=this.defaultValue||this.fallback||"";return}try{let e=x(this.key);this._text=e||this.defaultValue||this.fallback||this.key}catch(e){console.error("Error loading text for key:",this.key,e),this._text=this.defaultValue||this.fallback||this.key}this.requestUpdate()}render(){return o`<span>${this._text||this.defaultValue||this.key}</span>`}};ke.styles=c`
63
+ `;customElements.define("ds-button",ne);var ke=class extends l{static get properties(){return{key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},fallback:{type:String,reflect:!0},_text:{type:String,state:!0}}}constructor(){super(),this.key="",this.defaultValue="",this.fallback="",this._text="",this.boundHandlers={languageChanged:(()=>{console.log("Language changed event received in ds-text"),this._loadText()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundHandlers.languageChanged)}updated(e){super.updated(e),(e.has("key")||e.has("defaultValue"))&&this._loadText()}_loadText(){if(!this.key){this._text=this.defaultValue||this.fallback||"";return}try{let e=x(this.key);this._text=e||this.defaultValue||this.fallback||this.key}catch(e){console.error("Error loading text for key:",this.key,e),this._text=this.defaultValue||this.fallback||this.key}this.requestUpdate()}render(){return o`<span>${this._text||this.defaultValue||this.key}</span>`}};ke.styles=c`
64
64
  :host {
65
65
  display: inline;
66
66
  }
@@ -68,7 +68,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
68
68
  .loading {
69
69
  opacity: 0.6;
70
70
  }
71
- `;customElements.define("ds-text",ke);var Ee={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ie=t=>(...e)=>({_$litDirective$:t,values:e}),z=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,n,r){this._$Ct=e,this._$AM=n,this._$Ci=r}_$AS(e,n){return this.update(e,n)}update(e,n){return this.render(...n)}};var se=class extends z{constructor(e){if(super(e),this.it=w,e.type!==Ee.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===w||e==null)return this._t=void 0,this.it=e;if(e===M)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let n=[e];return n.raw=n,this._t={_$litType$:this.constructor.resultType,strings:n,values:[]}}};se.directiveName="unsafeHTML",se.resultType=1;var on=ie(se);var B=class t extends l{get type(){return this._type}set type(e){let n=this._type;this._type=e,this.requestUpdate("type",n)}constructor(){super(),this._type="",this.size="1em",this.color="currentColor",this.background="transparent",console.log("Icon constructor",this._type)}connectedCallback(){super.connectedCallback(),console.log("Icon connected",this._type)}renderIcon(){if(console.log("renderIcon called with type:",this._type),!this._type||this._type==="")return console.log("No type specified, rendering default slot"),o`<div class="icon-container"><slot></slot></div>`;let e=t.iconNameToSvgMap[this._type.toLowerCase()];if(e)return o`<div class="icon-container">${on(e)}</div>`;switch(this._type.toLowerCase()){case"close":return console.log("Rendering close icon"),o`
71
+ `;customElements.define("ds-text",ke);var Ee={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},re=t=>(...e)=>({_$litDirective$:t,values:e}),z=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,i,n){this._$Ct=e,this._$AM=i,this._$Ci=n}_$AS(e,i){return this.update(e,i)}update(e,i){return this.render(...i)}};var se=class extends z{constructor(e){if(super(e),this.it=w,e.type!==Ee.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===w||e==null)return this._t=void 0,this.it=e;if(e===M)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let i=[e];return i.raw=i,this._t={_$litType$:this.constructor.resultType,strings:i,values:[]}}};se.directiveName="unsafeHTML",se.resultType=1;var ai=re(se);var B=class t extends l{get type(){return this._type}set type(e){let i=this._type;this._type=e,this.requestUpdate("type",i)}constructor(){super(),this._type="",this.size="1em",this.color="currentColor",this.background="transparent",console.log("Icon constructor",this._type)}connectedCallback(){super.connectedCallback(),console.log("Icon connected",this._type)}renderIcon(){if(console.log("renderIcon called with type:",this._type),!this._type||this._type==="")return console.log("No type specified, rendering default slot"),o`<div class="icon-container"><slot></slot></div>`;let e=t.iconNameToSvgMap[this._type.toLowerCase()];if(e)return o`<div class="icon-container">${ai(e)}</div>`;switch(this._type.toLowerCase()){case"close":return console.log("Rendering close icon"),o`
72
72
  <div class="icon-container">
73
73
  <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
74
74
  <path
@@ -261,7 +261,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
261
261
  :host {
262
262
  --notes-style-color: #ffb6b9;
263
263
  }
264
- `;B.iconNameToSvgMap=(()=>{try{let t=import.meta.glob("../x Icon/*.svg",{as:"raw",eager:!0}),e={};for(let[n,r]of Object.entries(t)){let s=(n.split("/").pop()??"").replace(/\.svg$/i,"").toLowerCase();s&&(e[s]=r)}return e}catch(t){return console.warn("Icon: failed to glob SVGs from x Icon/; falling back only to inline switch icons.",t),{}}})();customElements.define("ds-icon",B);console.log("Icon component registered with custom elements registry");var Ae=class extends l{static get properties(){return{href:{type:String,reflect:!0},_text:{type:String,state:!0}}}constructor(){super(),this.href="",this._text="",this.boundHandlers={languageChanged:(()=>{this._loadText()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundHandlers.languageChanged)}updated(e){super.updated(e),e.has("href")&&this._loadText()}_loadText(){try{let e=x("link");this._text=e||"Link"}catch(e){console.error("Error loading text for key 'link':",e),this._text="Link"}this.requestUpdate()}render(){return this.href?o`
264
+ `;B.iconNameToSvgMap=(()=>{try{let t=import.meta.glob("../x Icon/*.svg",{as:"raw",eager:!0}),e={};for(let[i,n]of Object.entries(t)){let s=(i.split("/").pop()??"").replace(/\.svg$/i,"").toLowerCase();s&&(e[s]=n)}return e}catch(t){return console.warn("Icon: failed to glob SVGs from x Icon/; falling back only to inline switch icons.",t),{}}})();customElements.define("ds-icon",B);console.log("Icon component registered with custom elements registry");var Ae=class extends l{static get properties(){return{href:{type:String,reflect:!0},_text:{type:String,state:!0}}}constructor(){super(),this.href="",this._text="",this.boundHandlers={languageChanged:(()=>{this._loadText()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundHandlers.languageChanged)}updated(e){super.updated(e),e.has("href")&&this._loadText()}_loadText(){try{let e=x("link");this._text=e||"Link"}catch(e){console.error("Error loading text for key 'link':",e),this._text="Link"}this.requestUpdate()}render(){return this.href?o`
265
265
  <a href="${this.href}" target="_blank" rel="noopener noreferrer">
266
266
  ${this._text}
267
267
  <ds-icon type="open"></ds-icon>
@@ -281,7 +281,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
281
281
  display: inline-block;
282
282
  vertical-align: middle;
283
283
  }
284
- `;customElements.define("ds-link",Ae);var er=Object.defineProperty,tr=(t,e,n)=>e in t?er(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ht=(t,e,n)=>(tr(t,typeof e!="symbol"?e+"":e,n),n),nr=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)},ut=(t,e)=>{if(Object(e)!==e)throw TypeError('Cannot use the "in" operator on this value');return t.has(e)},Le=(t,e,n)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,n)},an=(t,e,n)=>(nr(t,e,"access private method"),n);function ln(t,e){return Object.is(t,e)}var b=null,oe=!1,Te=1,Ne=Symbol("SIGNAL");function q(t){let e=b;return b=t,e}function rr(){return b}function ir(){return oe}var vt={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Ie(t){if(oe)throw new Error(typeof ngDevMode<"u"&&ngDevMode?"Assertion error: signal read during notification phase":"");if(b===null)return;b.consumerOnSignalRead(t);let e=b.nextProducerIndex++;if(F(b),e<b.producerNode.length&&b.producerNode[e]!==t&&ft(b)){let n=b.producerNode[e];Me(n,b.producerIndexOfThis[e])}b.producerNode[e]!==t&&(b.producerNode[e]=t,b.producerIndexOfThis[e]=ft(b)?hn(t,b,e):0),b.producerLastReadVersion[e]=t.version}function sr(){Te++}function cn(t){if(!(!t.dirty&&t.lastCleanEpoch===Te)){if(!t.producerMustRecompute(t)&&!dr(t)){t.dirty=!1,t.lastCleanEpoch=Te;return}t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=Te}}function dn(t){if(t.liveConsumerNode===void 0)return;let e=oe;oe=!0;try{for(let n of t.liveConsumerNode)n.dirty||ar(n)}finally{oe=e}}function or(){return b?.consumerAllowSignalWrites!==!1}function ar(t){var e;t.dirty=!0,dn(t),(e=t.consumerMarkedDirty)==null||e.call(t.wrapper??t)}function lr(t){return t&&(t.nextProducerIndex=0),q(t)}function cr(t,e){if(q(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(ft(t))for(let n=t.nextProducerIndex;n<t.producerNode.length;n++)Me(t.producerNode[n],t.producerIndexOfThis[n]);for(;t.producerNode.length>t.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function dr(t){F(t);for(let e=0;e<t.producerNode.length;e++){let n=t.producerNode[e],r=t.producerLastReadVersion[e];if(r!==n.version||(cn(n),r!==n.version))return!0}return!1}function hn(t,e,n){var r;if(yt(t),F(t),t.liveConsumerNode.length===0){(r=t.watched)==null||r.call(t.wrapper);for(let i=0;i<t.producerNode.length;i++)t.producerIndexOfThis[i]=hn(t.producerNode[i],t,i)}return t.liveConsumerIndexOfThis.push(n),t.liveConsumerNode.push(e)-1}function Me(t,e){var n;if(yt(t),F(t),typeof ngDevMode<"u"&&ngDevMode&&e>=t.liveConsumerNode.length)throw new Error(`Assertion error: active consumer index ${e} is out of bounds of ${t.liveConsumerNode.length} consumers)`);if(t.liveConsumerNode.length===1){(n=t.unwatched)==null||n.call(t.wrapper);for(let i=0;i<t.producerNode.length;i++)Me(t.producerNode[i],t.producerIndexOfThis[i])}let r=t.liveConsumerNode.length-1;if(t.liveConsumerNode[e]=t.liveConsumerNode[r],t.liveConsumerIndexOfThis[e]=t.liveConsumerIndexOfThis[r],t.liveConsumerNode.length--,t.liveConsumerIndexOfThis.length--,e<t.liveConsumerNode.length){let i=t.liveConsumerIndexOfThis[e],s=t.liveConsumerNode[e];F(s),s.producerIndexOfThis[i]=e}}function ft(t){var e;return t.consumerIsAlwaysLive||(((e=t?.liveConsumerNode)==null?void 0:e.length)??0)>0}function F(t){t.producerNode??(t.producerNode=[]),t.producerIndexOfThis??(t.producerIndexOfThis=[]),t.producerLastReadVersion??(t.producerLastReadVersion=[])}function yt(t){t.liveConsumerNode??(t.liveConsumerNode=[]),t.liveConsumerIndexOfThis??(t.liveConsumerIndexOfThis=[])}function un(t){if(cn(t),Ie(t),t.value===mt)throw t.error;return t.value}function hr(t){let e=Object.create(ur);e.computation=t;let n=()=>un(e);return n[Ne]=e,n}var pt=Symbol("UNSET"),gt=Symbol("COMPUTING"),mt=Symbol("ERRORED"),ur={...vt,value:pt,dirty:!0,error:null,equal:ln,producerMustRecompute(t){return t.value===pt||t.value===gt},producerRecomputeValue(t){if(t.value===gt)throw new Error("Detected cycle in computations.");let e=t.value;t.value=gt;let n=lr(t),r,i=!1;try{r=t.computation.call(t.wrapper),i=e!==pt&&e!==mt&&t.equal.call(t.wrapper,e,r)}catch(s){r=mt,t.error=s}finally{cr(t,n)}if(i){t.value=e;return}t.value=r,t.version++}};function pr(){throw new Error}var gr=pr;function fr(){gr()}function mr(t){let e=Object.create(wr);e.value=t;let n=()=>(Ie(e),e.value);return n[Ne]=e,n}function vr(){return Ie(this),this.value}function yr(t,e){or()||fr(),t.equal.call(t.wrapper,t.value,e)||(t.value=e,br(t))}var wr={...vt,equal:ln,value:void 0};function br(t){t.version++,sr(),dn(t)}var _=Symbol("node"),S;(t=>{var e,n,r,i,s,a;class g{constructor(v,d={}){Le(this,n),ht(this,e);let f=mr(v)[Ne];if(this[_]=f,f.wrapper=this,d){let C=d.equals;C&&(f.equal=C),f.watched=d[t.subtle.watched],f.unwatched=d[t.subtle.unwatched]}}get(){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return vr.call(this[_])}set(v){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(ir())throw new Error("Writes to signals not permitted during Watcher callback");let d=this[_];yr(d,v)}}e=_,n=new WeakSet,r=function(){},t.isState=p=>typeof p=="object"&&ut(n,p),t.State=g;class u{constructor(v,d){Le(this,s),ht(this,i);let f=hr(v)[Ne];if(f.consumerAllowSignalWrites=!0,this[_]=f,f.wrapper=this,d){let C=d.equals;C&&(f.equal=C),f.watched=d[t.subtle.watched],f.unwatched=d[t.subtle.unwatched]}}get(){if(!(0,t.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return un(this[_])}}i=_,s=new WeakSet,a=function(){},t.isComputed=p=>typeof p=="object"&&ut(s,p),t.Computed=u,(p=>{var v,d,A,f,C;function _n(y){let m,h=null;try{h=q(null),m=y()}finally{q(h)}return m}p.untrack=_n;function $n(y){var m;if(!(0,t.isComputed)(y)&&!(0,t.isWatcher)(y))throw new TypeError("Called introspectSources without a Computed or Watcher argument");return((m=y[_].producerNode)==null?void 0:m.map(h=>h.wrapper))??[]}p.introspectSources=$n;function Sn(y){var m;if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called introspectSinks without a Signal argument");return((m=y[_].liveConsumerNode)==null?void 0:m.map(h=>h.wrapper))??[]}p.introspectSinks=Sn;function Cn(y){if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called hasSinks without a Signal argument");let m=y[_].liveConsumerNode;return m?m.length>0:!1}p.hasSinks=Cn;function kn(y){if(!(0,t.isComputed)(y)&&!(0,t.isWatcher)(y))throw new TypeError("Called hasSources without a Computed or Watcher argument");let m=y[_].producerNode;return m?m.length>0:!1}p.hasSources=kn;class En{constructor(m){Le(this,d),Le(this,f),ht(this,v);let h=Object.create(vt);h.wrapper=this,h.consumerMarkedDirty=m,h.consumerIsAlwaysLive=!0,h.consumerAllowSignalWrites=!1,h.producerNode=[],this[_]=h}watch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");an(this,f,C).call(this,m);let h=this[_];h.dirty=!1;let L=q(h);for(let me of m)Ie(me[_]);q(L)}unwatch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");an(this,f,C).call(this,m);let h=this[_];F(h);for(let L=h.producerNode.length-1;L>=0;L--)if(m.includes(h.producerNode[L].wrapper)){Me(h.producerNode[L],h.producerIndexOfThis[L]);let me=h.producerNode.length-1;if(h.producerNode[L]=h.producerNode[me],h.producerIndexOfThis[L]=h.producerIndexOfThis[me],h.producerNode.length--,h.producerIndexOfThis.length--,h.nextProducerIndex--,L<h.producerNode.length){let Ln=h.producerIndexOfThis[L],kt=h.producerNode[L];yt(kt),kt.liveConsumerIndexOfThis[Ln]=L}}}getPending(){if(!(0,t.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[_].producerNode.filter(h=>h.dirty).map(h=>h.wrapper)}}v=_,d=new WeakSet,A=function(){},f=new WeakSet,C=function(y){for(let m of y)if(!(0,t.isComputed)(m)&&!(0,t.isState)(m))throw new TypeError("Called watch/unwatch without a Computed or State argument")},t.isWatcher=y=>ut(d,y),p.Watcher=En;function An(){var y;return(y=rr())==null?void 0:y.wrapper}p.currentComputed=An,p.watched=Symbol("watched"),p.unwatched=Symbol("unwatched")})(t.subtle||(t.subtle={}))})(S||(S={}));var ki=Symbol("SignalWatcherBrand"),Ei=new FinalizationRegistry((({watcher:t,signal:e})=>{t.unwatch(e)}));var{I:Ii}=Ft;var pn=t=>t.strings===void 0;var ae=(t,e)=>{let n=t._$AN;if(n===void 0)return!1;for(let r of n)r._$AO?.(e,!1),ae(r,e);return!0},He=t=>{let e,n;do{if((e=t._$AM)===void 0)break;n=e._$AN,n.delete(t),t=e}while(n?.size===0)},gn=t=>{for(let e;e=t._$AM;t=e){let n=e._$AN;if(n===void 0)e._$AN=n=new Set;else if(n.has(t))break;n.add(t),$r(e)}};function xr(t){this._$AN!==void 0?(He(this),this._$AM=t,gn(this)):this._$AM=t}function _r(t,e=!1,n=0){let r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(e)if(Array.isArray(r))for(let s=n;s<r.length;s++)ae(r[s],!1),He(r[s]);else r!=null&&(ae(r,!1),He(r));else ae(this,t)}var $r=t=>{t.type==Ee.CHILD&&(t._$AP??(t._$AP=_r),t._$AQ??(t._$AQ=xr))},Oe=class extends z{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,r){super._$AT(e,n,r),gn(this),this.isConnected=e._$AU}_$AO(e,n=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),n&&(ae(this,e),He(this))}setValue(e){if(pn(this._$Ct))this._$Ct._$AI(e,this);else{let n=[...this._$Ct._$AH];n[this._$Ci]=e,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}};var Ve=class extends Oe{_$Sl(){if(this._$Su!==void 0)return;this._$SW=new S.Computed((()=>{var n;return(n=this._$Sj)===null||n===void 0?void 0:n.get()}));let e=this._$Su=new S.subtle.Watcher((()=>{var n;(n=this._$SO)===null||n===void 0||n._(this),e.watch()}));e.watch(this._$SW)}_$Sp(){var e;this._$Su!==void 0&&(this._$Su.unwatch(this._$SW),this._$SW=void 0,this._$Su=void 0,(e=this._$SO)===null||e===void 0||e.m(this))}commit(){this.setValue(S.subtle.untrack((()=>{var e;return(e=this._$SW)===null||e===void 0?void 0:e.get()})))}render(e){return S.subtle.untrack((()=>e.get()))}update(e,[n]){var r,i;return(r=this._$SO)!==null&&r!==void 0||(this._$SO=(i=e.options)===null||i===void 0?void 0:i.host),n!==this._$Sj&&this._$Sj!==void 0&&this._$Sp(),this._$Sj=n,this._$Sl(),S.subtle.untrack((()=>this._$SW.get()))}disconnected(){this._$Sp()}reconnected(){this._$Sl()}},wt=ie(Ve);var bt=t=>(e,...n)=>t(e,...n.map((r=>r instanceof S.State||r instanceof S.Computed?wt(r):r))),Sr=bt(o),Cr=bt(zt);var Xi=S.State,Qi=S.Computed,fn=(t,e)=>new S.State(t,e);function kr(){if(typeof window>"u")return"light";let t=window.localStorage?.getItem("ds-one:theme");return t==="light"||t==="dark"?t:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var O=fn(kr());function De(t){if(t!==O.get()&&(O.set(t),typeof window<"u")){try{window.localStorage?.setItem("ds-one:theme",t)}catch(n){console.warn("ds-one: unable to persist theme preference",n)}let e=window.document?.documentElement;e&&(e.classList.remove("light-theme","dark-theme"),e.classList.add(`${t}-theme`)),window.dispatchEvent(new CustomEvent("theme-changed",{detail:{theme:t}}))}}if(typeof window<"u"){let t=O.get(),e=window.document?.documentElement;e&&(e.classList.remove("light-theme","dark-theme"),e.classList.add(`${t}-theme`))}function j(t){if(!(typeof window>"u"))try{let e=window.localStorage?.getItem("ds-one:settings"),r={...e?JSON.parse(e):{},...t};window.localStorage?.setItem("ds-one:settings",JSON.stringify(r))}catch(e){console.warn("ds-one: unable to persist settings",e)}}var Er=t=>{localStorage.setItem("accentColor",t)},_t=()=>localStorage.getItem("accentColor")||"--blue",xt=()=>{let t=_t();document.documentElement.style.setProperty("--accent-color",`var(${t})`)},Ar=t=>{localStorage.setItem("notesStyleMedium",t)},mn=()=>localStorage.getItem("notesStyleMedium")||"note",vn=t=>{localStorage.setItem("pageStyle",t)},le=()=>localStorage.getItem("pageStyle")||"note",Pe=class extends l{static get properties(){return{type:{type:String},values:{type:Array},label:{type:String},currentValue:{type:String,state:!0},translationsReady:{type:Boolean,state:!0},disabled:{type:Boolean,state:!0},variant:{type:String}}}constructor(){super(),this.type="",this.values=[],this.label="",this.currentValue="",this.translationsReady=!1,this.disabled=!1,this.variant="",this.boundHandlers={translationsLoaded:this.handleTranslationsLoaded.bind(this),languageChanged:this.handleLanguageChanged.bind(this),handleLanguageChanged:this.handleLanguageChanged.bind(this),handleThemeChanged:this.handleThemeChanged.bind(this),handleAccentColorChanged:this.handleAccentColorChanged.bind(this),handleNoteBehaviorChanged:this.handleNoteBehaviorChanged.bind(this)}}connectedCallback(){super.connectedCallback(),window.addEventListener("translations-loaded",this.boundHandlers.translationsLoaded),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("theme-changed",this.boundHandlers.handleThemeChanged),window.addEventListener("accent-color-changed",this.boundHandlers.handleAccentColorChanged),window.addEventListener("page-style-changed",this.boundHandlers.handleNoteBehaviorChanged),this.initializeValues()}async initializeValues(){if(this.type==="language"){let e=ct();this.values=e,this.currentValue=$.value,this.label=this.getLabel()}else if(this.type==="theme"){this.values=["light","dark"];let e=O.get();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="accent-color"){this.values=["--light-green","--green","--light-blue","--blue","--pink","--red","--orange","--yellow"];let e=_t();this.currentValue=e,xt(),this.label=this.getLabel()}else if(this.type==="notes-style-medium"){this.values=["default","big","gallery"];let e=mn();this.currentValue=e;let n=le();this.disabled=n==="note",this.label=this.getLabel()}else if(this.type==="page-style"){this.values=["note","page"];let e=le();this.currentValue=e,this.label=this.getLabel()}else this.type==="icon-only"&&(this.values=["note","page"],this.currentValue=this.values[0],this.label="");this.requestUpdate()}ensureThemeInitialized(){if(!localStorage.getItem("theme")){let r=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";localStorage.setItem("theme",r),document.documentElement.classList.add(`${r}-theme`)}}attributeChangedCallback(e,n,r){super.attributeChangedCallback(e,n,r),e==="type"&&n!==r&&this.initializeValues()}async setupInitialValue(){if(this.type==="language"){let e=$.value;this.currentValue=e,this.label=this.getLabel()}else if(this.type==="theme"){let e=O.get();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="accent-color"){let e=_t();this.currentValue=e,xt(),this.label=this.getLabel()}else if(this.type==="notes-style-medium"){let e=mn();this.currentValue=e;let n=le();this.disabled=n==="note",this.label=this.getLabel()}else if(this.type==="page-style"){let e=le();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="icon-only"){let e=le();this.currentValue=e,this.label=""}this.requestUpdate()}handleSettingsChanges(){this.setupInitialValue()}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("translations-loaded",this.boundHandlers.translationsLoaded),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("theme-changed",this.boundHandlers.handleThemeChanged),window.removeEventListener("accent-color-changed",this.boundHandlers.handleAccentColorChanged),window.removeEventListener("page-style-changed",this.boundHandlers.handleNoteBehaviorChanged)}handleButtonClick(e){if(e.preventDefault(),e.stopPropagation(),!this.disabled){if(this.type==="language"){let r=(this.values.indexOf(this.currentValue)+1)%this.values.length,i=this.values[r];this.currentValue=i,document.startViewTransition?document.startViewTransition(()=>{dt(i)}):dt(i),j({language:i}),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:i}}))}else if(this.type==="theme"){let r=(this.values.indexOf(this.currentValue)+1)%this.values.length,i=this.values[r];this.currentValue=i,De(i),j({theme:i})}else if(this.type==="accent-color"){let r=(this.values.indexOf(this.currentValue)+1)%this.values.length,i=this.values[r];this.currentValue=i,Er(i),xt(),j({accentColor:i}),window.dispatchEvent(new CustomEvent("accent-color-changed",{detail:{color:i}}))}else if(this.type==="notes-style-medium"){let r=(this.values.indexOf(this.currentValue)+1)%this.values.length,i=this.values[r];this.currentValue=i,Ar(i),j({notesStyleMedium:i}),window.dispatchEvent(new CustomEvent("notes-style-medium-changed",{detail:{style:i}}))}else if(this.type==="page-style"){let r=(this.values.indexOf(this.currentValue)+1)%this.values.length,i=this.values[r];this.currentValue=i,vn(i),j({pageStyle:i}),window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:i}}))}else if(this.type==="icon-only"){let r=(this.values.indexOf(this.currentValue)+1)%this.values.length,i=this.values[r];this.currentValue=i,vn(i),j({pageStyle:i}),this.label="",window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:i}}))}this.label=this.getLabel(),this.requestUpdate()}}getValueDisplay(e){if(this.type==="language")return rn(e,{locale:$.value});if(this.type==="theme"){if(this.translationsReady){let n=E(`themes.${e}`);if(n&&n!==`themes.${e}`)return n}return e}else{if(this.type==="accent-color")return this.getColorName(e);if(this.type==="notes-style-medium")return this.getNotesStyleIcon(e);if(this.type==="page-style"){if(this.translationsReady){let n=E(e==="note"?"note":"page");if(n&&n!==(e==="note"?"note":"page"))return n}return e}else if(this.type==="icon-only")return e==="note"?o`<ds-icon type="note"></ds-icon>`:e==="page"?o`<ds-icon type="page"></ds-icon>`:o`<span>${e}</span>`}return e}getColorName(e){let r={"--red":"red","--orange":"orange","--yellow":"yellow","--light-green":"lightGreen","--green":"green","--light-blue":"lightBlue","--blue":"blue","--pink":"pink"}[e];if(r&&this.translationsReady){let i=E(r);if(i&&i!==r)return i}return e.replace("--","").replace("-"," ")}getNotesStyleIcon(e){return e==="page"?o`<ds-icon type="page"></ds-icon>`:e==="note"?o`<ds-icon type="note"></ds-icon>`:e==="default"?o`<ds-icon type="default"></ds-icon>`:e==="big"?o`<ds-icon type="big"></ds-icon>`:e==="gallery"?o`<ds-icon type="gallery"></ds-icon>`:o`<span>${e}</span>`}getLabel(){if(this.type==="language"){if(this.translationsReady){let e=E("language");if(e&&e!=="language")return e}return"Language"}else if(this.type==="theme"){if(this.translationsReady){let e=E("theme");if(e&&e!=="theme")return e}return"Theme"}else if(this.type==="accent-color"){if(this.translationsReady){let e=E("accentColor");if(e&&e!=="accentColor")return e}return"Accent Color"}else if(this.type==="notes-style-medium"){if(this.translationsReady){let e=E("notesStyle");if(e&&e!=="notesStyle")return e}return"Notes Style"}else if(this.type==="page-style"){if(this.translationsReady){let e=E("clickingItem");if(e&&e!=="clickingItem")return e}return"Clic"}else if(this.type==="icon-only")return"";return this.label}render(){return o`
284
+ `;customElements.define("ds-link",Ae);var Qi=Object.defineProperty,en=(t,e,i)=>e in t?Qi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,ht=(t,e,i)=>(en(t,typeof e!="symbol"?e+"":e,i),i),tn=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},ut=(t,e)=>{if(Object(e)!==e)throw TypeError('Cannot use the "in" operator on this value');return t.has(e)},Le=(t,e,i)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,i)},li=(t,e,i)=>(tn(t,e,"access private method"),i);function ci(t,e){return Object.is(t,e)}var b=null,oe=!1,Te=1,Ne=Symbol("SIGNAL");function q(t){let e=b;return b=t,e}function nn(){return b}function rn(){return oe}var vt={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Ie(t){if(oe)throw new Error(typeof ngDevMode<"u"&&ngDevMode?"Assertion error: signal read during notification phase":"");if(b===null)return;b.consumerOnSignalRead(t);let e=b.nextProducerIndex++;if(F(b),e<b.producerNode.length&&b.producerNode[e]!==t&&ft(b)){let i=b.producerNode[e];Me(i,b.producerIndexOfThis[e])}b.producerNode[e]!==t&&(b.producerNode[e]=t,b.producerIndexOfThis[e]=ft(b)?ui(t,b,e):0),b.producerLastReadVersion[e]=t.version}function sn(){Te++}function di(t){if(!(!t.dirty&&t.lastCleanEpoch===Te)){if(!t.producerMustRecompute(t)&&!dn(t)){t.dirty=!1,t.lastCleanEpoch=Te;return}t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=Te}}function hi(t){if(t.liveConsumerNode===void 0)return;let e=oe;oe=!0;try{for(let i of t.liveConsumerNode)i.dirty||an(i)}finally{oe=e}}function on(){return b?.consumerAllowSignalWrites!==!1}function an(t){var e;t.dirty=!0,hi(t),(e=t.consumerMarkedDirty)==null||e.call(t.wrapper??t)}function ln(t){return t&&(t.nextProducerIndex=0),q(t)}function cn(t,e){if(q(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(ft(t))for(let i=t.nextProducerIndex;i<t.producerNode.length;i++)Me(t.producerNode[i],t.producerIndexOfThis[i]);for(;t.producerNode.length>t.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function dn(t){F(t);for(let e=0;e<t.producerNode.length;e++){let i=t.producerNode[e],n=t.producerLastReadVersion[e];if(n!==i.version||(di(i),n!==i.version))return!0}return!1}function ui(t,e,i){var n;if(yt(t),F(t),t.liveConsumerNode.length===0){(n=t.watched)==null||n.call(t.wrapper);for(let r=0;r<t.producerNode.length;r++)t.producerIndexOfThis[r]=ui(t.producerNode[r],t,r)}return t.liveConsumerIndexOfThis.push(i),t.liveConsumerNode.push(e)-1}function Me(t,e){var i;if(yt(t),F(t),typeof ngDevMode<"u"&&ngDevMode&&e>=t.liveConsumerNode.length)throw new Error(`Assertion error: active consumer index ${e} is out of bounds of ${t.liveConsumerNode.length} consumers)`);if(t.liveConsumerNode.length===1){(i=t.unwatched)==null||i.call(t.wrapper);for(let r=0;r<t.producerNode.length;r++)Me(t.producerNode[r],t.producerIndexOfThis[r])}let n=t.liveConsumerNode.length-1;if(t.liveConsumerNode[e]=t.liveConsumerNode[n],t.liveConsumerIndexOfThis[e]=t.liveConsumerIndexOfThis[n],t.liveConsumerNode.length--,t.liveConsumerIndexOfThis.length--,e<t.liveConsumerNode.length){let r=t.liveConsumerIndexOfThis[e],s=t.liveConsumerNode[e];F(s),s.producerIndexOfThis[r]=e}}function ft(t){var e;return t.consumerIsAlwaysLive||(((e=t?.liveConsumerNode)==null?void 0:e.length)??0)>0}function F(t){t.producerNode??(t.producerNode=[]),t.producerIndexOfThis??(t.producerIndexOfThis=[]),t.producerLastReadVersion??(t.producerLastReadVersion=[])}function yt(t){t.liveConsumerNode??(t.liveConsumerNode=[]),t.liveConsumerIndexOfThis??(t.liveConsumerIndexOfThis=[])}function pi(t){if(di(t),Ie(t),t.value===mt)throw t.error;return t.value}function hn(t){let e=Object.create(un);e.computation=t;let i=()=>pi(e);return i[Ne]=e,i}var pt=Symbol("UNSET"),gt=Symbol("COMPUTING"),mt=Symbol("ERRORED"),un={...vt,value:pt,dirty:!0,error:null,equal:ci,producerMustRecompute(t){return t.value===pt||t.value===gt},producerRecomputeValue(t){if(t.value===gt)throw new Error("Detected cycle in computations.");let e=t.value;t.value=gt;let i=ln(t),n,r=!1;try{n=t.computation.call(t.wrapper),r=e!==pt&&e!==mt&&t.equal.call(t.wrapper,e,n)}catch(s){n=mt,t.error=s}finally{cn(t,i)}if(r){t.value=e;return}t.value=n,t.version++}};function pn(){throw new Error}var gn=pn;function fn(){gn()}function mn(t){let e=Object.create(wn);e.value=t;let i=()=>(Ie(e),e.value);return i[Ne]=e,i}function vn(){return Ie(this),this.value}function yn(t,e){on()||fn(),t.equal.call(t.wrapper,t.value,e)||(t.value=e,bn(t))}var wn={...vt,equal:ci,value:void 0};function bn(t){t.version++,sn(),hi(t)}var _=Symbol("node"),S;(t=>{var e,i,n,r,s,a;class g{constructor(v,d={}){Le(this,i),ht(this,e);let f=mn(v)[Ne];if(this[_]=f,f.wrapper=this,d){let C=d.equals;C&&(f.equal=C),f.watched=d[t.subtle.watched],f.unwatched=d[t.subtle.unwatched]}}get(){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return vn.call(this[_])}set(v){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(rn())throw new Error("Writes to signals not permitted during Watcher callback");let d=this[_];yn(d,v)}}e=_,i=new WeakSet,n=function(){},t.isState=p=>typeof p=="object"&&ut(i,p),t.State=g;class u{constructor(v,d){Le(this,s),ht(this,r);let f=hn(v)[Ne];if(f.consumerAllowSignalWrites=!0,this[_]=f,f.wrapper=this,d){let C=d.equals;C&&(f.equal=C),f.watched=d[t.subtle.watched],f.unwatched=d[t.subtle.unwatched]}}get(){if(!(0,t.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return pi(this[_])}}r=_,s=new WeakSet,a=function(){},t.isComputed=p=>typeof p=="object"&&ut(s,p),t.Computed=u,(p=>{var v,d,A,f,C;function $i(y){let m,h=null;try{h=q(null),m=y()}finally{q(h)}return m}p.untrack=$i;function Si(y){var m;if(!(0,t.isComputed)(y)&&!(0,t.isWatcher)(y))throw new TypeError("Called introspectSources without a Computed or Watcher argument");return((m=y[_].producerNode)==null?void 0:m.map(h=>h.wrapper))??[]}p.introspectSources=Si;function Ci(y){var m;if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called introspectSinks without a Signal argument");return((m=y[_].liveConsumerNode)==null?void 0:m.map(h=>h.wrapper))??[]}p.introspectSinks=Ci;function ki(y){if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called hasSinks without a Signal argument");let m=y[_].liveConsumerNode;return m?m.length>0:!1}p.hasSinks=ki;function Ei(y){if(!(0,t.isComputed)(y)&&!(0,t.isWatcher)(y))throw new TypeError("Called hasSources without a Computed or Watcher argument");let m=y[_].producerNode;return m?m.length>0:!1}p.hasSources=Ei;class Ai{constructor(m){Le(this,d),Le(this,f),ht(this,v);let h=Object.create(vt);h.wrapper=this,h.consumerMarkedDirty=m,h.consumerIsAlwaysLive=!0,h.consumerAllowSignalWrites=!1,h.producerNode=[],this[_]=h}watch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");li(this,f,C).call(this,m);let h=this[_];h.dirty=!1;let L=q(h);for(let me of m)Ie(me[_]);q(L)}unwatch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");li(this,f,C).call(this,m);let h=this[_];F(h);for(let L=h.producerNode.length-1;L>=0;L--)if(m.includes(h.producerNode[L].wrapper)){Me(h.producerNode[L],h.producerIndexOfThis[L]);let me=h.producerNode.length-1;if(h.producerNode[L]=h.producerNode[me],h.producerIndexOfThis[L]=h.producerIndexOfThis[me],h.producerNode.length--,h.producerIndexOfThis.length--,h.nextProducerIndex--,L<h.producerNode.length){let Ti=h.producerIndexOfThis[L],kt=h.producerNode[L];yt(kt),kt.liveConsumerIndexOfThis[Ti]=L}}}getPending(){if(!(0,t.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[_].producerNode.filter(h=>h.dirty).map(h=>h.wrapper)}}v=_,d=new WeakSet,A=function(){},f=new WeakSet,C=function(y){for(let m of y)if(!(0,t.isComputed)(m)&&!(0,t.isState)(m))throw new TypeError("Called watch/unwatch without a Computed or State argument")},t.isWatcher=y=>ut(d,y),p.Watcher=Ai;function Li(){var y;return(y=nn())==null?void 0:y.wrapper}p.currentComputed=Li,p.watched=Symbol("watched"),p.unwatched=Symbol("unwatched")})(t.subtle||(t.subtle={}))})(S||(S={}));var kr=Symbol("SignalWatcherBrand"),Er=new FinalizationRegistry((({watcher:t,signal:e})=>{t.unwatch(e)}));var{I:Ir}=Gt;var gi=t=>t.strings===void 0;var ae=(t,e)=>{let i=t._$AN;if(i===void 0)return!1;for(let n of i)n._$AO?.(e,!1),ae(n,e);return!0},He=t=>{let e,i;do{if((e=t._$AM)===void 0)break;i=e._$AN,i.delete(t),t=e}while(i?.size===0)},fi=t=>{for(let e;e=t._$AM;t=e){let i=e._$AN;if(i===void 0)e._$AN=i=new Set;else if(i.has(t))break;i.add(t),$n(e)}};function xn(t){this._$AN!==void 0?(He(this),this._$AM=t,fi(this)):this._$AM=t}function _n(t,e=!1,i=0){let n=this._$AH,r=this._$AN;if(r!==void 0&&r.size!==0)if(e)if(Array.isArray(n))for(let s=i;s<n.length;s++)ae(n[s],!1),He(n[s]);else n!=null&&(ae(n,!1),He(n));else ae(this,t)}var $n=t=>{t.type==Ee.CHILD&&(t._$AP??(t._$AP=_n),t._$AQ??(t._$AQ=xn))},Oe=class extends z{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,i,n){super._$AT(e,i,n),fi(this),this.isConnected=e._$AU}_$AO(e,i=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),i&&(ae(this,e),He(this))}setValue(e){if(gi(this._$Ct))this._$Ct._$AI(e,this);else{let i=[...this._$Ct._$AH];i[this._$Ci]=e,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}};var Ve=class extends Oe{_$Sl(){if(this._$Su!==void 0)return;this._$SW=new S.Computed((()=>{var i;return(i=this._$Sj)===null||i===void 0?void 0:i.get()}));let e=this._$Su=new S.subtle.Watcher((()=>{var i;(i=this._$SO)===null||i===void 0||i._(this),e.watch()}));e.watch(this._$SW)}_$Sp(){var e;this._$Su!==void 0&&(this._$Su.unwatch(this._$SW),this._$SW=void 0,this._$Su=void 0,(e=this._$SO)===null||e===void 0||e.m(this))}commit(){this.setValue(S.subtle.untrack((()=>{var e;return(e=this._$SW)===null||e===void 0?void 0:e.get()})))}render(e){return S.subtle.untrack((()=>e.get()))}update(e,[i]){var n,r;return(n=this._$SO)!==null&&n!==void 0||(this._$SO=(r=e.options)===null||r===void 0?void 0:r.host),i!==this._$Sj&&this._$Sj!==void 0&&this._$Sp(),this._$Sj=i,this._$Sl(),S.subtle.untrack((()=>this._$SW.get()))}disconnected(){this._$Sp()}reconnected(){this._$Sl()}},wt=re(Ve);var bt=t=>(e,...i)=>t(e,...i.map((n=>n instanceof S.State||n instanceof S.Computed?wt(n):n))),Sn=bt(o),Cn=bt(qt);var Xr=S.State,Qr=S.Computed,mi=(t,e)=>new S.State(t,e);function kn(){if(typeof window>"u")return"light";let t=window.localStorage?.getItem("ds-one:theme");return t==="light"||t==="dark"?t:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}var O=mi(kn());function De(t){if(t!==O.get()&&(O.set(t),typeof window<"u")){try{window.localStorage?.setItem("ds-one:theme",t)}catch(i){console.warn("ds-one: unable to persist theme preference",i)}let e=window.document?.documentElement;e&&(e.classList.remove("light-theme","dark-theme"),e.classList.add(`${t}-theme`)),window.dispatchEvent(new CustomEvent("theme-changed",{detail:{theme:t}}))}}if(typeof window<"u"){let t=O.get(),e=window.document?.documentElement;e&&(e.classList.remove("light-theme","dark-theme"),e.classList.add(`${t}-theme`))}function W(t){if(!(typeof window>"u"))try{let e=window.localStorage?.getItem("ds-one:settings"),n={...e?JSON.parse(e):{},...t};window.localStorage?.setItem("ds-one:settings",JSON.stringify(n))}catch(e){console.warn("ds-one: unable to persist settings",e)}}var En=t=>{localStorage.setItem("accentColor",t)},_t=()=>localStorage.getItem("accentColor")||"--blue",xt=()=>{let t=_t();document.documentElement.style.setProperty("--accent-color",`var(${t})`)},An=t=>{localStorage.setItem("notesStyleMedium",t)},vi=()=>localStorage.getItem("notesStyleMedium")||"note",yi=t=>{localStorage.setItem("pageStyle",t)},le=()=>localStorage.getItem("pageStyle")||"note",Pe=class extends l{static get properties(){return{type:{type:String},values:{type:Array},label:{type:String},currentValue:{type:String,state:!0},translationsReady:{type:Boolean,state:!0},disabled:{type:Boolean,state:!0},variant:{type:String}}}constructor(){super(),this.type="",this.values=[],this.label="",this.currentValue="",this.translationsReady=!1,this.disabled=!1,this.variant="",this.boundHandlers={translationsLoaded:this.handleTranslationsLoaded.bind(this),languageChanged:this.handleLanguageChanged.bind(this),handleLanguageChanged:this.handleLanguageChanged.bind(this),handleThemeChanged:this.handleThemeChanged.bind(this),handleAccentColorChanged:this.handleAccentColorChanged.bind(this),handleNoteBehaviorChanged:this.handleNoteBehaviorChanged.bind(this)}}connectedCallback(){super.connectedCallback(),window.addEventListener("translations-loaded",this.boundHandlers.translationsLoaded),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("theme-changed",this.boundHandlers.handleThemeChanged),window.addEventListener("accent-color-changed",this.boundHandlers.handleAccentColorChanged),window.addEventListener("page-style-changed",this.boundHandlers.handleNoteBehaviorChanged),this.initializeValues()}async initializeValues(){if(this.type==="language"){let e=ct();this.values=e,this.currentValue=$.value,this.label=this.getLabel()}else if(this.type==="theme"){this.values=["light","dark"];let e=O.get();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="accent-color"){this.values=["--light-green","--green","--light-blue","--blue","--pink","--red","--orange","--yellow"];let e=_t();this.currentValue=e,xt(),this.label=this.getLabel()}else if(this.type==="notes-style-medium"){this.values=["default","big","gallery"];let e=vi();this.currentValue=e;let i=le();this.disabled=i==="note",this.label=this.getLabel()}else if(this.type==="page-style"){this.values=["note","page"];let e=le();this.currentValue=e,this.label=this.getLabel()}else this.type==="icon-only"&&(this.values=["note","page"],this.currentValue=this.values[0],this.label="");this.requestUpdate()}ensureThemeInitialized(){if(!localStorage.getItem("theme")){let n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";localStorage.setItem("theme",n),document.documentElement.classList.add(`${n}-theme`)}}attributeChangedCallback(e,i,n){super.attributeChangedCallback(e,i,n),e==="type"&&i!==n&&this.initializeValues()}async setupInitialValue(){if(this.type==="language"){let e=$.value;this.currentValue=e,this.label=this.getLabel()}else if(this.type==="theme"){let e=O.get();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="accent-color"){let e=_t();this.currentValue=e,xt(),this.label=this.getLabel()}else if(this.type==="notes-style-medium"){let e=vi();this.currentValue=e;let i=le();this.disabled=i==="note",this.label=this.getLabel()}else if(this.type==="page-style"){let e=le();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="icon-only"){let e=le();this.currentValue=e,this.label=""}this.requestUpdate()}handleSettingsChanges(){this.setupInitialValue()}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("translations-loaded",this.boundHandlers.translationsLoaded),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("theme-changed",this.boundHandlers.handleThemeChanged),window.removeEventListener("accent-color-changed",this.boundHandlers.handleAccentColorChanged),window.removeEventListener("page-style-changed",this.boundHandlers.handleNoteBehaviorChanged)}handleButtonClick(e){if(e.preventDefault(),e.stopPropagation(),!this.disabled){if(this.type==="language"){let n=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[n];this.currentValue=r,document.startViewTransition?document.startViewTransition(()=>{dt(r)}):dt(r),W({language:r}),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:r}}))}else if(this.type==="theme"){let n=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[n];this.currentValue=r,De(r),W({theme:r})}else if(this.type==="accent-color"){let n=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[n];this.currentValue=r,En(r),xt(),W({accentColor:r}),window.dispatchEvent(new CustomEvent("accent-color-changed",{detail:{color:r}}))}else if(this.type==="notes-style-medium"){let n=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[n];this.currentValue=r,An(r),W({notesStyleMedium:r}),window.dispatchEvent(new CustomEvent("notes-style-medium-changed",{detail:{style:r}}))}else if(this.type==="page-style"){let n=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[n];this.currentValue=r,yi(r),W({pageStyle:r}),window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:r}}))}else if(this.type==="icon-only"){let n=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[n];this.currentValue=r,yi(r),W({pageStyle:r}),this.label="",window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:r}}))}this.label=this.getLabel(),this.requestUpdate()}}getValueDisplay(e){if(this.type==="language")return si(e,{locale:$.value});if(this.type==="theme"){if(this.translationsReady){let i=E(`themes.${e}`);if(i&&i!==`themes.${e}`)return i}return e}else{if(this.type==="accent-color")return this.getColorName(e);if(this.type==="notes-style-medium")return this.getNotesStyleIcon(e);if(this.type==="page-style"){if(this.translationsReady){let i=E(e==="note"?"note":"page");if(i&&i!==(e==="note"?"note":"page"))return i}return e}else if(this.type==="icon-only")return e==="note"?o`<ds-icon type="note"></ds-icon>`:e==="page"?o`<ds-icon type="page"></ds-icon>`:o`<span>${e}</span>`}return e}getColorName(e){let n={"--red":"red","--orange":"orange","--yellow":"yellow","--light-green":"lightGreen","--green":"green","--light-blue":"lightBlue","--blue":"blue","--pink":"pink"}[e];if(n&&this.translationsReady){let r=E(n);if(r&&r!==n)return r}return e.replace("--","").replace("-"," ")}getNotesStyleIcon(e){return e==="page"?o`<ds-icon type="page"></ds-icon>`:e==="note"?o`<ds-icon type="note"></ds-icon>`:e==="default"?o`<ds-icon type="default"></ds-icon>`:e==="big"?o`<ds-icon type="big"></ds-icon>`:e==="gallery"?o`<ds-icon type="gallery"></ds-icon>`:o`<span>${e}</span>`}getLabel(){if(this.type==="language"){if(this.translationsReady){let e=E("language");if(e&&e!=="language")return e}return"Language"}else if(this.type==="theme"){if(this.translationsReady){let e=E("theme");if(e&&e!=="theme")return e}return"Theme"}else if(this.type==="accent-color"){if(this.translationsReady){let e=E("accentColor");if(e&&e!=="accentColor")return e}return"Accent Color"}else if(this.type==="notes-style-medium"){if(this.translationsReady){let e=E("notesStyle");if(e&&e!=="notesStyle")return e}return"Notes Style"}else if(this.type==="page-style"){if(this.translationsReady){let e=E("clickingItem");if(e&&e!=="clickingItem")return e}return"Clic"}else if(this.type==="icon-only")return"";return this.label}render(){return o`
285
285
  <div class="cycle-container">
286
286
  ${this.type!=="icon-only"?o`<span class="cycle-label">${this.label}</span>`:""}
287
287
  <div
@@ -305,7 +305,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
305
305
  `:""}
306
306
  </div>
307
307
  </div>
308
- `}async waitForTranslations(){return new Promise(e=>{if(this.translationsReady){e();return}let n=()=>{this.translationsReady=!0,e()};window.addEventListener("translations-loaded",n,{once:!0}),setTimeout(()=>{this.translationsReady=!0,e()},5e3)})}handleTranslationsLoaded(){if(this.translationsReady=!0,this.type==="language"){let e=ct();this.values=e}this.setupInitialValue()}handleLanguageChanged(){this.setupInitialValue()}handleThemeChanged(){this.setupInitialValue()}handleAccentColorChanged(){this.setupInitialValue()}handleNoteBehaviorChanged(){this.setupInitialValue()}};Pe.styles=c`
308
+ `}async waitForTranslations(){return new Promise(e=>{if(this.translationsReady){e();return}let i=()=>{this.translationsReady=!0,e()};window.addEventListener("translations-loaded",i,{once:!0}),setTimeout(()=>{this.translationsReady=!0,e()},5e3)})}handleTranslationsLoaded(){if(this.translationsReady=!0,this.type==="language"){let e=ct();this.values=e}this.setupInitialValue()}handleLanguageChanged(){this.setupInitialValue()}handleThemeChanged(){this.setupInitialValue()}handleAccentColorChanged(){this.setupInitialValue()}handleNoteBehaviorChanged(){this.setupInitialValue()}};Pe.styles=c`
309
309
  .cycle-container {
310
310
  display: flex;
311
311
  justify-content: space-between;
@@ -316,7 +316,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
316
316
  .cycle-label {
317
317
  color: var(--text-color-primary);
318
318
  }
319
- `;customElements.define("ds-cycle",Pe);var ce=class extends l{constructor(){super(),this.key="",this.defaultValue="",this._text="",this._visible=!1,this.boundWindowHandlers={languageChanged:(()=>{this._loadText()}),translationsLoaded:(()=>{this._loadText()})},this.boundHostHandlers={mouseenter:(()=>{this._visible=!0,this.requestUpdate()}),mouseleave:(()=>{this._visible=!1,this.requestUpdate()}),focusin:(()=>{this._visible=!0,this.requestUpdate()}),focusout:(()=>{this._visible=!1,this.requestUpdate()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundWindowHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundWindowHandlers.translationsLoaded),this.addEventListener("mouseenter",this.boundHostHandlers.mouseenter),this.addEventListener("mouseleave",this.boundHostHandlers.mouseleave),this.addEventListener("focusin",this.boundHostHandlers.focusin),this.addEventListener("focusout",this.boundHostHandlers.focusout)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundWindowHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundWindowHandlers.translationsLoaded),this.removeEventListener("mouseenter",this.boundHostHandlers.mouseenter),this.removeEventListener("mouseleave",this.boundHostHandlers.mouseleave),this.removeEventListener("focusin",this.boundHostHandlers.focusin),this.removeEventListener("focusout",this.boundHostHandlers.focusout)}updated(e){(e.has("key")||e.has("defaultValue"))&&this._loadText()}async _loadText(){if(!this.key){this._text=this.defaultValue||"",this.requestUpdate();return}try{let e=await sn(this.key);if(e){this._text=e,this.requestUpdate();return}let n=E(this.key);this._text=n&&n!==this.key?n:this.defaultValue||this.key}catch(e){console.error("ds-tooltip: error loading text for key",this.key,e),this._text=this.defaultValue||this.key}this.requestUpdate()}render(){let e=["bubble",this._visible?"visible":""].join(" ");return o`
319
+ `;customElements.define("ds-cycle",Pe);var ce=class extends l{constructor(){super(),this.key="",this.defaultValue="",this._text="",this._visible=!1,this.boundWindowHandlers={languageChanged:(()=>{this._loadText()}),translationsLoaded:(()=>{this._loadText()})},this.boundHostHandlers={mouseenter:(()=>{this._visible=!0,this.requestUpdate()}),mouseleave:(()=>{this._visible=!1,this.requestUpdate()}),focusin:(()=>{this._visible=!0,this.requestUpdate()}),focusout:(()=>{this._visible=!1,this.requestUpdate()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundWindowHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundWindowHandlers.translationsLoaded),this.addEventListener("mouseenter",this.boundHostHandlers.mouseenter),this.addEventListener("mouseleave",this.boundHostHandlers.mouseleave),this.addEventListener("focusin",this.boundHostHandlers.focusin),this.addEventListener("focusout",this.boundHostHandlers.focusout)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundWindowHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundWindowHandlers.translationsLoaded),this.removeEventListener("mouseenter",this.boundHostHandlers.mouseenter),this.removeEventListener("mouseleave",this.boundHostHandlers.mouseleave),this.removeEventListener("focusin",this.boundHostHandlers.focusin),this.removeEventListener("focusout",this.boundHostHandlers.focusout)}updated(e){(e.has("key")||e.has("defaultValue"))&&this._loadText()}async _loadText(){if(!this.key){this._text=this.defaultValue||"",this.requestUpdate();return}try{let e=await oi(this.key);if(e){this._text=e,this.requestUpdate();return}let i=E(this.key);this._text=i&&i!==this.key?i:this.defaultValue||this.key}catch(e){console.error("ds-tooltip: error loading text for key",this.key,e),this._text=this.defaultValue||this.key}this.requestUpdate()}render(){let e=["bubble",this._visible?"visible":""].join(" ");return o`
320
320
  <span class="slot-wrapper"><slot></slot></span>
321
321
  ${this._text?o`<div class="${e}">${this._text}</div>`:null}
322
322
  `}};ce.properties={key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{state:!0},_visible:{state:!0}};ce.styles=c`
@@ -364,7 +364,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
364
364
  .bubble.visible {
365
365
  opacity: 1;
366
366
  }
367
- `;customElements.define("ds-tooltip",ce);var yn={en:"$42",de:"42 \u20AC",fr:"42 \u20AC",es:"42 \u20AC"};function wn({language:t,country:e}){let n=t.toLowerCase(),r=yn[n]??yn.en;return e?`${r} (${e.toUpperCase()})`:r}var Ue=class extends l{static get properties(){return{country:{type:String,reflect:!0},region:{type:String,reflect:!0},_label:{type:String,state:!0},_loading:{type:Boolean,state:!0}}}constructor(){super(),this.country="",this.region="",this._label="",this._loading=!0,this.boundHandlers={languageChanged:(()=>{this._loadPrice()})}}connectedCallback(){super.connectedCallback(),this._loadPrice(),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundHandlers.languageChanged)}updated(e){super.updated(e),(e.has("country")||e.has("region"))&&this._loadPrice()}_loadPrice(){this._loading=!0;let e=$.value,n=this.region||this.country,r=wn({language:e,country:n});this._label=r,this._loading=!1,this.requestUpdate()}render(){return o`<span class="${this._loading?"loading":""}"
367
+ `;customElements.define("ds-tooltip",ce);var wi={en:"$42",de:"42 \u20AC",fr:"42 \u20AC",es:"42 \u20AC"};function bi({language:t,country:e}){let i=t.toLowerCase(),n=wi[i]??wi.en;return e?`${n} (${e.toUpperCase()})`:n}var Ue=class extends l{static get properties(){return{country:{type:String,reflect:!0},region:{type:String,reflect:!0},_label:{type:String,state:!0},_loading:{type:Boolean,state:!0}}}constructor(){super(),this.country="",this.region="",this._label="",this._loading=!0,this.boundHandlers={languageChanged:(()=>{this._loadPrice()})}}connectedCallback(){super.connectedCallback(),this._loadPrice(),window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("translations-loaded",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("translations-loaded",this.boundHandlers.languageChanged)}updated(e){super.updated(e),(e.has("country")||e.has("region"))&&this._loadPrice()}_loadPrice(){this._loading=!0;let e=$.value,i=this.region||this.country,n=bi({language:e,country:i});this._label=n,this._loading=!1,this.requestUpdate()}render(){return o`<span class="${this._loading?"loading":""}"
368
368
  >${this._label}</span
369
369
  >`}};Ue.styles=c`
370
370
  :host {
@@ -398,7 +398,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
398
398
  </div>
399
399
  `:o`<div class="markdown-container">
400
400
  <p>No content available</p>
401
- </div>`}renderMarkdown(e){let n=e.replace(/^### (.*$)/gim,"<h3>$1</h3>").replace(/^## (.*$)/gim,"<h2>$1</h2>").replace(/^# (.*$)/gim,"<h1>$1</h1>").replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/```([\s\S]*?)```/g,"<pre><code>$1</code></pre>").replace(/`(.*?)`/g,"<code>$1</code>").replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2">$1</a>').replace(/\n/g,"<br>");return o`${n}`}},Re.properties={content:{type:String},title:{type:String},language:{type:String},guideId:{type:String}},Re.styles=c`
401
+ </div>`}renderMarkdown(e){let i=e.replace(/^### (.*$)/gim,"<h3>$1</h3>").replace(/^## (.*$)/gim,"<h2>$1</h2>").replace(/^# (.*$)/gim,"<h1>$1</h1>").replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\*(.*?)\*/g,"<em>$1</em>").replace(/```([\s\S]*?)```/g,"<pre><code>$1</code></pre>").replace(/`(.*?)`/g,"<code>$1</code>").replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2">$1</a>').replace(/\n/g,"<br>");return o`${i}`}},Re.properties={content:{type:String},title:{type:String},language:{type:String},guideId:{type:String}},Re.styles=c`
402
402
  :host {
403
403
  display: block;
404
404
  font-family:
@@ -561,7 +561,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
561
561
  height: auto;
562
562
  margin: 1rem 0;
563
563
  }
564
- `,Re));var de=class extends l{constructor(){super(...arguments),this.state="active"}connectedCallback(){super.connectedCallback(),this._isMobileDevice()&&(this.state="disabled")}_isMobileDevice(){let e=globalThis.navigator,n=globalThis.window,r=e&&(e.userAgent||e.vendor)||n&&n.opera||"",i=/Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(r),a=(e&&e.maxTouchPoints||0)>1,g=n?Math.min(n.innerWidth||0,n.innerHeight||0)<=820:!1;return i||a&&g}updated(){this._isMobileDevice()&&this.state!=="disabled"&&(this.state="disabled")}_navigateHome(){this.state!=="disabled"&&(window.location.href="./home.html")}_onKeyDown(e){this.state!=="disabled"&&(e?.key==="Enter"||e?.key===" ")&&(e.preventDefault(),this._navigateHome())}render(){let e=this.state==="disabled";return o`
564
+ `,Re));var de=class extends l{constructor(){super(...arguments),this.state="active"}connectedCallback(){super.connectedCallback(),this._isMobileDevice()&&(this.state="disabled")}_isMobileDevice(){let e=globalThis.navigator,i=globalThis.window,n=e&&(e.userAgent||e.vendor)||i&&i.opera||"",r=/Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(n),a=(e&&e.maxTouchPoints||0)>1,g=i?Math.min(i.innerWidth||0,i.innerHeight||0)<=820:!1;return r||a&&g}updated(){this._isMobileDevice()&&this.state!=="disabled"&&(this.state="disabled")}_navigateHome(){this.state!=="disabled"&&(window.location.href="./home.html")}_onKeyDown(e){this.state!=="disabled"&&(e?.key==="Enter"||e?.key===" ")&&(e.preventDefault(),this._navigateHome())}render(){let e=this.state==="disabled";return o`
565
565
  <div class="hover-fill"></div>
566
566
  <div
567
567
  class="home ${e?"is-disabled":"is-active"}"
@@ -646,14 +646,14 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
646
646
  .label {
647
647
  font-size: var(--type-size-default);
648
648
  }
649
- `;customElements.define("ds-home",de);var je=class extends l{render(){let e=new Date().getFullYear();return o`<span>${e}</span>`}};je.styles=c`
649
+ `;customElements.define("ds-home",de);var We=class extends l{render(){let e=new Date().getFullYear();return o`<span>${e}</span>`}};We.styles=c`
650
650
  :host {
651
651
  display: inline;
652
652
  font-family: var(--typeface, var(--typeface-regular));
653
653
  font-size: inherit;
654
654
  color: inherit;
655
655
  }
656
- `;customElements.define("ds-year",je);var We=class extends l{static get properties(){return{gridarea:{type:String,reflect:!0},key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{type:String,state:!0}}}set gridarea(e){let n=this._gridArea;this._gridArea=e,this.style.gridArea=e,this.requestUpdate("gridarea",n)}get gridarea(){return this._gridArea}constructor(){super(),this._gridArea="",this.key="",this.defaultValue="",this._text="",this.boundHandlers={languageChanged:(()=>{this._loadText()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged)}updated(e){(e.has("key")||e.has("defaultValue"))&&this._loadText()}_loadText(){if(!this.key){this._text=this.defaultValue||"";return}try{let e=x(this.key);this._text=e||this.defaultValue||this.key}catch(e){console.error(`[ds-title] Error loading text for key "${this.key}":`,e),this._text=this.defaultValue||this.key}}firstUpdated(){this.hasAttribute("gridarea")&&(this.style.gridArea=this.getAttribute("gridarea")||"")}render(){let e=this.key&&this._text;return o` <h1>${e?this._text:o`<slot></slot>`}</h1> `}};We.styles=c`
656
+ `;customElements.define("ds-year",We);var je=class extends l{static get properties(){return{gridarea:{type:String,reflect:!0},key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{type:String,state:!0}}}set gridarea(e){let i=this._gridArea;this._gridArea=e,this.style.gridArea=e,this.requestUpdate("gridarea",i)}get gridarea(){return this._gridArea}constructor(){super(),this._gridArea="",this.key="",this.defaultValue="",this._text="",this.boundHandlers={languageChanged:(()=>{this._loadText()})}}connectedCallback(){super.connectedCallback(),this._loadText(),window.addEventListener("language-changed",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged)}updated(e){(e.has("key")||e.has("defaultValue"))&&this._loadText()}_loadText(){if(!this.key){this._text=this.defaultValue||"";return}try{let e=x(this.key);this._text=e||this.defaultValue||this.key}catch(e){console.error(`[ds-title] Error loading text for key "${this.key}":`,e),this._text=this.defaultValue||this.key}}firstUpdated(){this.hasAttribute("gridarea")&&(this.style.gridArea=this.getAttribute("gridarea")||"")}render(){let e=this.key&&this._text;return o` <h1>${e?this._text:o`<slot></slot>`}</h1> `}};je.styles=c`
657
657
  :host {
658
658
  display: flex;
659
659
  padding: calc(2px * var(--scaling-factor));
@@ -677,7 +677,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
677
677
  margin: 0;
678
678
  width: 100%;
679
679
  }
680
- `;customElements.define("ds-title",We);var ze=class extends l{static get properties(){return{gridarea:{type:String,reflect:!0}}}set gridarea(e){let n=this._gridArea;this._gridArea=e,this.style.gridArea=e,this.requestUpdate("gridarea",n)}get gridarea(){return this._gridArea}constructor(){super(),this._gridArea=""}firstUpdated(){this.hasAttribute("gridarea")&&(this.style.gridArea=this.getAttribute("gridarea")||"")}render(){return o`
680
+ `;customElements.define("ds-title",je);var ze=class extends l{static get properties(){return{gridarea:{type:String,reflect:!0}}}set gridarea(e){let i=this._gridArea;this._gridArea=e,this.style.gridArea=e,this.requestUpdate("gridarea",i)}get gridarea(){return this._gridArea}constructor(){super(),this._gridArea=""}firstUpdated(){this.hasAttribute("gridarea")&&(this.style.gridArea=this.getAttribute("gridarea")||"")}render(){return o`
681
681
  <h2
682
682
  style="display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; width: 100%;"
683
683
  >
@@ -769,7 +769,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
769
769
  .status-indicator.not-started {
770
770
  background-color: #b1b4b9;
771
771
  }
772
- `;customElements.define("ds-attributes",Be);var he=class extends l{constructor(){super(),this._handleLanguageChange=()=>{this._resolveUrl()},this.urlEn="",this.urlDa="",this.urlJa="",this.filename="cv",this._activeUrl=""}connectedCallback(){super.connectedCallback(),this._resolveUrl(),window.addEventListener("language-changed",this._handleLanguageChange)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this._handleLanguageChange)}updated(e){(e.has("urlEn")||e.has("urlDa")||e.has("urlJa"))&&this._resolveUrl()}_resolveUrl(){let n=(($.value||"en-US").split("-")[0]||"en").toLowerCase(),r="";n==="da"?r=this.urlDa||this.urlEn||this.urlJa:n==="ja"?r=this.urlJa||this.urlEn||this.urlDa:r=this.urlEn||this.urlDa||this.urlJa,this._activeUrl=r||""}async _download(){if(!this._activeUrl){console.warn("[ds-downloadcv] No URL available");return}console.log("[ds-downloadcv] Attempting download from:",this._activeUrl);try{let e=await fetch(this._activeUrl,{mode:"cors"});if(console.log("[ds-downloadcv] Fetch response:",e.status,e.statusText),!e.ok)throw new Error(`HTTP ${e.status}`);let n=await e.blob(),r=($.value||"en-US").split("-")[0].toLowerCase(),i=this._inferExtFromUrl(this._activeUrl)||"pdf",s=`${this.filename||"cv"}-${r}.${i}`,a=URL.createObjectURL(n),g=document.createElement("a");g.href=a,g.download=s,document.body.appendChild(g),g.click(),g.remove(),URL.revokeObjectURL(a),console.log("[ds-downloadcv] Download triggered successfully")}catch(e){console.error("[ds-downloadcv] Fetch failed, using fallback:",e),window.open(this._activeUrl,"_blank","noopener,noreferrer")}}_inferExtFromUrl(e){let n=e.indexOf("?"),r=n>=0?e.slice(0,n):e,i=r.lastIndexOf(".");if(i===-1)return null;let s=r.slice(i+1).toLowerCase();return s.length>5?null:s}render(){let e=!this._activeUrl;return o`
772
+ `;customElements.define("ds-attributes",Be);var he=class extends l{constructor(){super(),this._handleLanguageChange=()=>{this._resolveUrl()},this.urlEn="",this.urlDa="",this.urlJa="",this.filename="cv",this._activeUrl=""}connectedCallback(){super.connectedCallback(),this._resolveUrl(),window.addEventListener("language-changed",this._handleLanguageChange)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this._handleLanguageChange)}updated(e){(e.has("urlEn")||e.has("urlDa")||e.has("urlJa"))&&this._resolveUrl()}_resolveUrl(){let i=(($.value||"en-US").split("-")[0]||"en").toLowerCase(),n="";i==="da"?n=this.urlDa||this.urlEn||this.urlJa:i==="ja"?n=this.urlJa||this.urlEn||this.urlDa:n=this.urlEn||this.urlDa||this.urlJa,this._activeUrl=n||""}async _download(){if(!this._activeUrl){console.warn("[ds-downloadcv] No URL available");return}console.log("[ds-downloadcv] Attempting download from:",this._activeUrl);try{let e=await fetch(this._activeUrl,{mode:"cors"});if(console.log("[ds-downloadcv] Fetch response:",e.status,e.statusText),!e.ok)throw new Error(`HTTP ${e.status}`);let i=await e.blob(),n=($.value||"en-US").split("-")[0].toLowerCase(),r=this._inferExtFromUrl(this._activeUrl)||"pdf",s=`${this.filename||"cv"}-${n}.${r}`,a=URL.createObjectURL(i),g=document.createElement("a");g.href=a,g.download=s,document.body.appendChild(g),g.click(),g.remove(),URL.revokeObjectURL(a),console.log("[ds-downloadcv] Download triggered successfully")}catch(e){console.error("[ds-downloadcv] Fetch failed, using fallback:",e),window.open(this._activeUrl,"_blank","noopener,noreferrer")}}_inferExtFromUrl(e){let i=e.indexOf("?"),n=i>=0?e.slice(0,i):e,r=n.lastIndexOf(".");if(r===-1)return null;let s=n.slice(r+1).toLowerCase();return s.length>5?null:s}render(){let e=!this._activeUrl;return o`
773
773
  <ds-button
774
774
  variant="primary"
775
775
  .disabled=${e}
@@ -780,12 +780,12 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
780
780
  :host {
781
781
  display: inline-flex;
782
782
  }
783
- `;customElements.define("ds-downloadcv",he);var bn="ds-view-mode",$t="text";function K(){if(typeof window>"u")return $t;try{let t=localStorage.getItem(bn);return t==="image"||t==="text"?t:$t}catch{return $t}}function St(t){if(!(typeof window>"u"))try{localStorage.setItem(bn,t),window.dispatchEvent(new CustomEvent("view-mode-changed",{detail:t}))}catch(e){console.warn("Failed to save view mode:",e)}}function Rs(){let e=K()==="text"?"image":"text";return St(e),e}var qe=class extends l{static get properties(){return{imgLightDesktop:{type:String,reflect:!0,attribute:"img-light-desktop"},imgDarkDesktop:{type:String,reflect:!0,attribute:"img-dark-desktop"},imgLightMobile:{type:String,reflect:!0,attribute:"img-light-mobile"},imgDarkMobile:{type:String,reflect:!0,attribute:"img-dark-mobile"},src:{type:String,reflect:!0},alt:{type:String,reflect:!0},imageToggle:{type:Boolean,reflect:!0,attribute:"image-toggle"},imageOnlyWidth:{type:Number,reflect:!0,attribute:"image-only-width"},priority:{type:Boolean,reflect:!0},externalToggle:{type:Boolean,reflect:!0,attribute:"external-toggle"},mobileKey:{type:String,reflect:!0,attribute:"mobile-key"},desktopKey:{type:String,reflect:!0,attribute:"desktop-key"},textKey:{type:String,reflect:!0,attribute:"text-key"},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{type:String,state:!0},_currentImage:{type:String,state:!0},_imageVisible:{type:Boolean,state:!0},_shouldAnimate:{type:Boolean,state:!0}}}constructor(){super(),this._toggleImage=()=>{this._shouldAnimate=!0,this._imageVisible=!this._imageVisible,this.requestUpdate()},this._handleImageLoad=e=>{e.target.classList.add("loaded")},this.imgLightDesktop="",this.imgDarkDesktop="",this.imgLightMobile="",this.imgDarkMobile="",this.src="",this.alt="",this.imageToggle=!1,this.imageOnlyWidth=480,this.priority=!1,this.externalToggle=!1,this.mobileKey="",this.desktopKey="",this.textKey="",this.defaultValue="",this._text="",this._currentImage="",this._imageVisible=!0,this._shouldAnimate=!1,this._mql=null,this.boundHandlers={languageChanged:(()=>{this._loadText()}),themeChanged:(()=>{this._resolveImage()}),viewportChanged:e=>{this._resolveImage(),this._loadText()},viewModeChanged:(e=>{if(this.imageToggle&&this.externalToggle){let r=e.detail==="image";this._imageVisible!==r&&(this._shouldAnimate=!0,this._imageVisible=r,this.requestUpdate())}})}}updated(e){if(e.has("imageOnlyWidth")){let n=Number(this.imageOnlyWidth)||480;this.style.setProperty("--image-only-width",`${n}px`)}if((e.has("imgLightDesktop")||e.has("imgDarkDesktop")||e.has("imgLightMobile")||e.has("imgDarkMobile")||e.has("src"))&&this._resolveImage(),(e.has("textKey")||e.has("defaultValue")||e.has("mobileKey")||e.has("desktopKey"))&&this._loadText(),e.has("imageToggle")&&!(this.imageToggle&&this.externalToggle)){let r=!this.imageToggle;this._imageVisible!==r&&(this._shouldAnimate=!0,this._imageVisible=r)}}connectedCallback(){if(super.connectedCallback(),this._loadText(),this._resolveImage(),this.imageToggle&&this.externalToggle){let e=K();this._imageVisible=e==="image"}else this._imageVisible=!this.imageToggle;this.style.setProperty("--image-only-width",`${this.imageOnlyWidth}px`);try{this._mql=window.matchMedia("(max-width: 720px)"),this._mql&&this.boundHandlers.viewportChanged&&this._mql.addEventListener("change",this.boundHandlers.viewportChanged)}catch{}window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("theme-changed",this.boundHandlers.themeChanged),this.imageToggle&&this.externalToggle?(window.addEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),setTimeout(()=>{let n=K()==="image";this._imageVisible!==n&&(this._shouldAnimate=!0,this._imageVisible=n,this.requestUpdate())},100)):this.imageToggle&&window.addEventListener("article-toggle",this._toggleImage)}disconnectedCallback(){if(super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("theme-changed",this.boundHandlers.themeChanged),window.removeEventListener("article-toggle",this._toggleImage),window.removeEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),this._mql&&this.boundHandlers.viewportChanged)try{this._mql.removeEventListener("change",this.boundHandlers.viewportChanged)}catch{}}_loadText(){let e=(()=>{try{return window.matchMedia&&window.matchMedia("(max-width: 720px)").matches}catch{return!1}})(),n=(()=>{let r=(this.mobileKey||"").trim(),i=(this.desktopKey||"").trim(),s=(this.textKey||"").trim();return r||i?e?r||s:i||s:s})();if(!n){this._text=this.defaultValue||"";return}try{let r=x(n);this._text=r||this.defaultValue||n}catch(r){console.error(`[ds-article] Error loading text for key "${n}":`,r),this._text=this.defaultValue||n}}_resolveImage(){if(this.src&&typeof this.src=="string"){let i=this.src.startsWith("@")?this.src.slice(1):this.src;this._currentImage=i;return}let e=document.documentElement.getAttribute("data-theme")||"light",n=(()=>{try{return window.matchMedia&&window.matchMedia("(max-width: 720px)").matches}catch{return!1}})(),r="";n?e==="dark"?r=this.imgDarkMobile||this.imgLightMobile:r=this.imgLightMobile||this.imgDarkMobile:e==="dark"?r=this.imgDarkDesktop||this.imgLightDesktop:r=this.imgLightDesktop||this.imgDarkDesktop,typeof r=="string"&&r.startsWith("@")&&(r=r.slice(1)),this._currentImage=r||""}render(){let e=(this.imageToggle?this._imageVisible:!0)&&!!this._currentImage,n=this._shouldAnimate?"fade-in":"";this._shouldAnimate&&(this._shouldAnimate=!1);let r=this._imageVisible?x("hideImage"):x("viewImage");return o`
783
+ `;customElements.define("ds-downloadcv",he);var xi="ds-view-mode",$t="text";function K(){if(typeof window>"u")return $t;try{let t=localStorage.getItem(xi);return t==="image"||t==="text"?t:$t}catch{return $t}}function St(t){if(!(typeof window>"u"))try{localStorage.setItem(xi,t),window.dispatchEvent(new CustomEvent("view-mode-changed",{detail:t}))}catch(e){console.warn("Failed to save view mode:",e)}}function Rs(){let e=K()==="text"?"image":"text";return St(e),e}var qe=class extends l{static get properties(){return{imgLightDesktop:{type:String,reflect:!0,attribute:"img-light-desktop"},imgDarkDesktop:{type:String,reflect:!0,attribute:"img-dark-desktop"},imgLightMobile:{type:String,reflect:!0,attribute:"img-light-mobile"},imgDarkMobile:{type:String,reflect:!0,attribute:"img-dark-mobile"},src:{type:String,reflect:!0},alt:{type:String,reflect:!0},imageToggle:{type:Boolean,reflect:!0,attribute:"image-toggle"},imageOnlyWidth:{type:Number,reflect:!0,attribute:"image-only-width"},priority:{type:Boolean,reflect:!0},externalToggle:{type:Boolean,reflect:!0,attribute:"external-toggle"},mobileKey:{type:String,reflect:!0,attribute:"mobile-key"},desktopKey:{type:String,reflect:!0,attribute:"desktop-key"},textKey:{type:String,reflect:!0,attribute:"text-key"},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{type:String,state:!0},_currentImage:{type:String,state:!0},_imageVisible:{type:Boolean,state:!0},_shouldAnimate:{type:Boolean,state:!0}}}constructor(){super(),this._toggleImage=()=>{this._shouldAnimate=!0,this._imageVisible=!this._imageVisible,this.requestUpdate()},this._handleImageLoad=e=>{e.target.classList.add("loaded")},this.imgLightDesktop="",this.imgDarkDesktop="",this.imgLightMobile="",this.imgDarkMobile="",this.src="",this.alt="",this.imageToggle=!1,this.imageOnlyWidth=480,this.priority=!1,this.externalToggle=!1,this.mobileKey="",this.desktopKey="",this.textKey="",this.defaultValue="",this._text="",this._currentImage="",this._imageVisible=!0,this._shouldAnimate=!1,this._mql=null,this.boundHandlers={languageChanged:(()=>{this._loadText()}),themeChanged:(()=>{this._resolveImage()}),viewportChanged:e=>{this._resolveImage(),this._loadText()},viewModeChanged:(e=>{if(this.imageToggle&&this.externalToggle){let n=e.detail==="image";this._imageVisible!==n&&(this._shouldAnimate=!0,this._imageVisible=n,this.requestUpdate())}})}}updated(e){if(e.has("imageOnlyWidth")){let i=Number(this.imageOnlyWidth)||480;this.style.setProperty("--image-only-width",`${i}px`)}if((e.has("imgLightDesktop")||e.has("imgDarkDesktop")||e.has("imgLightMobile")||e.has("imgDarkMobile")||e.has("src"))&&this._resolveImage(),(e.has("textKey")||e.has("defaultValue")||e.has("mobileKey")||e.has("desktopKey"))&&this._loadText(),e.has("imageToggle")&&!(this.imageToggle&&this.externalToggle)){let n=!this.imageToggle;this._imageVisible!==n&&(this._shouldAnimate=!0,this._imageVisible=n)}}connectedCallback(){if(super.connectedCallback(),this._loadText(),this._resolveImage(),this.imageToggle&&this.externalToggle){let e=K();this._imageVisible=e==="image"}else this._imageVisible=!this.imageToggle;this.style.setProperty("--image-only-width",`${this.imageOnlyWidth}px`);try{this._mql=window.matchMedia("(max-width: 720px)"),this._mql&&this.boundHandlers.viewportChanged&&this._mql.addEventListener("change",this.boundHandlers.viewportChanged)}catch{}window.addEventListener("language-changed",this.boundHandlers.languageChanged),window.addEventListener("theme-changed",this.boundHandlers.themeChanged),this.imageToggle&&this.externalToggle?(window.addEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),setTimeout(()=>{let i=K()==="image";this._imageVisible!==i&&(this._shouldAnimate=!0,this._imageVisible=i,this.requestUpdate())},100)):this.imageToggle&&window.addEventListener("article-toggle",this._toggleImage)}disconnectedCallback(){if(super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged),window.removeEventListener("theme-changed",this.boundHandlers.themeChanged),window.removeEventListener("article-toggle",this._toggleImage),window.removeEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),this._mql&&this.boundHandlers.viewportChanged)try{this._mql.removeEventListener("change",this.boundHandlers.viewportChanged)}catch{}}_loadText(){let e=(()=>{try{return window.matchMedia&&window.matchMedia("(max-width: 720px)").matches}catch{return!1}})(),i=(()=>{let n=(this.mobileKey||"").trim(),r=(this.desktopKey||"").trim(),s=(this.textKey||"").trim();return n||r?e?n||s:r||s:s})();if(!i){this._text=this.defaultValue||"";return}try{let n=x(i);this._text=n||this.defaultValue||i}catch(n){console.error(`[ds-article] Error loading text for key "${i}":`,n),this._text=this.defaultValue||i}}_resolveImage(){if(this.src&&typeof this.src=="string"){let r=this.src.startsWith("@")?this.src.slice(1):this.src;this._currentImage=r;return}let e=document.documentElement.getAttribute("data-theme")||"light",i=(()=>{try{return window.matchMedia&&window.matchMedia("(max-width: 720px)").matches}catch{return!1}})(),n="";i?e==="dark"?n=this.imgDarkMobile||this.imgLightMobile:n=this.imgLightMobile||this.imgDarkMobile:e==="dark"?n=this.imgDarkDesktop||this.imgLightDesktop:n=this.imgLightDesktop||this.imgDarkDesktop,typeof n=="string"&&n.startsWith("@")&&(n=n.slice(1)),this._currentImage=n||""}render(){let e=(this.imageToggle?this._imageVisible:!0)&&!!this._currentImage,i=this._shouldAnimate?"fade-in":"";this._shouldAnimate&&(this._shouldAnimate=!1);let n=this._imageVisible?x("hideImage"):x("viewImage");return o`
784
784
  <div class="container">
785
785
  ${this.imageToggle&&!this.externalToggle?o`<button @click="${this._toggleImage}" class="toggle-button">
786
- ${r}
786
+ ${n}
787
787
  </button>`:""}
788
- ${e?o`<figure class="media ${n}">
788
+ ${e?o`<figure class="media ${i}">
789
789
  <img
790
790
  src="${this._currentImage}"
791
791
  alt="${this.alt||""}"
@@ -794,7 +794,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
794
794
  decoding="async"
795
795
  @load="${this._handleImageLoad}"
796
796
  />
797
- </figure>`:o`<p class="copy ${n}">${this._text}</p>`}
797
+ </figure>`:o`<p class="copy ${i}">${this._text}</p>`}
798
798
  </div>
799
799
  `}};qe.styles=c`
800
800
  :host {
@@ -863,17 +863,17 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
863
863
  .toggle-button:hover {
864
864
  opacity: 0.7;
865
865
  }
866
- `;customElements.define("ds-article",qe);var Fe=class extends l{constructor(){super(),this._toggle=()=>{let e=this._mode==="image"?"text":"image";St(e)},this._mode=K(),this.boundHandlers={viewModeChanged:(e=>{let n=e.detail==="image"?"image":"text";this._mode!==n&&(this._mode=n)}),languageChanged:(()=>{this.requestUpdate()})}}connectedCallback(){super.connectedCallback(),window.addEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),window.addEventListener("language-changed",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),window.removeEventListener("language-changed",this.boundHandlers.languageChanged)}render(){let e=this._mode==="image"?x("hideImage"):x("viewImage");return o`
866
+ `;customElements.define("ds-article",qe);var Fe=class extends l{constructor(){super(),this._toggle=()=>{let e=this._mode==="image"?"text":"image";St(e)},this._mode=K(),this.boundHandlers={viewModeChanged:(e=>{let i=e.detail==="image"?"image":"text";this._mode!==i&&(this._mode=i)}),languageChanged:(()=>{this.requestUpdate()})}}connectedCallback(){super.connectedCallback(),window.addEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),window.addEventListener("language-changed",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("view-mode-changed",this.boundHandlers.viewModeChanged),window.removeEventListener("language-changed",this.boundHandlers.languageChanged)}render(){let e=this._mode==="image"?x("hideImage"):x("viewImage");return o`
867
867
  <ds-button variant="primary" @click=${this._toggle}>${e}</ds-button>
868
- `}};Fe.properties={_mode:{type:String,state:!0}};customElements.define("ds-viewtoggle",Fe);var Ke=class extends l{static get properties(){return{type:{type:String,reflect:!0},shape:{type:String,reflect:!0},href:{type:String},project:{type:String,reflect:!0},loading:{type:Boolean,reflect:!0}}}constructor(){super(),this.type="theme-toggle",this.shape="circle",this.href="",this.project="",this.loading=!1}_handleClick(e){if(this.type==="theme-toggle"){e.preventDefault();let n=O.get()==="light"?"dark":"light";De(n)}}connectedCallback(){super.connectedCallback(),this.addEventListener("click",e=>{this._handleClick(e)})}render(){let e=o`<div
868
+ `}};Fe.properties={_mode:{type:String,state:!0}};customElements.define("ds-viewtoggle",Fe);var Ke=class extends l{static get properties(){return{type:{type:String,reflect:!0},shape:{type:String,reflect:!0},href:{type:String},project:{type:String,reflect:!0},loading:{type:Boolean,reflect:!0}}}constructor(){super(),this.type="theme-toggle",this.shape="circle",this.href="",this.project="",this.loading=!1}_handleClick(e){if(this.type==="theme-toggle"){e.preventDefault();let i=O.get()==="light"?"dark":"light";De(i)}}connectedCallback(){super.connectedCallback(),this.addEventListener("click",e=>{this._handleClick(e)})}render(){let e=o`<div
869
869
  class="container"
870
- @click="${n=>{this._handleClick(n)}}"
870
+ @click="${i=>{this._handleClick(i)}}"
871
871
  ></div>`;return this.type==="link"&&this.href?o`
872
872
  <a href="${this.href}" @click="${this._handleClick}">${e}</a>
873
873
  `:o`
874
874
  <div
875
875
  class="wrapper"
876
- @click="${n=>{this._handleClick(n)}}"
876
+ @click="${i=>{this._handleClick(i)}}"
877
877
  >
878
878
  ${e}
879
879
  </div>
@@ -973,8 +973,8 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
973
973
  height: calc(var(--1) * var(--scaling-factor));
974
974
  gap: calc(var(--025) * var(--scaling-factor));
975
975
  }
976
- `;customElements.define("ds-row",ue);var Je=class extends l{static get properties(){return{type:{type:String,reflect:!0},to:{type:String,reflect:!0}}}constructor(){super(),this.type="work"}render(){let e=this.getNavConfig(),n=this.to||e.href;return o`
977
- <a href="${n}">
976
+ `;customElements.define("ds-row",ue);var Je=class extends l{static get properties(){return{type:{type:String,reflect:!0},to:{type:String,reflect:!0}}}constructor(){super(),this.type="work"}render(){let e=this.getNavConfig(),i=this.to||e.href;return o`
977
+ <a href="${i}">
978
978
  <ds-text key="${e.key}"></ds-text>
979
979
  <ds-icon type="right"></ds-icon>
980
980
  </a>
@@ -1053,7 +1053,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1053
1053
  ${this.showStatus?o`<div class="header-cell">Status</div>`:""}
1054
1054
  </div>
1055
1055
  <div class="table-body">
1056
- ${this.data.map((e,n)=>o`
1056
+ ${this.data.map((e,i)=>o`
1057
1057
  <div class="data-cell product-cell">${e.product}</div>
1058
1058
  <div class="data-cell users-cell">${e.users}</div>
1059
1059
  <div class="data-cell retention-cell">${e.retention}</div>
@@ -1146,7 +1146,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1146
1146
  grid-template-columns: 1fr 60px 60px 60px;
1147
1147
  }
1148
1148
  }
1149
- `;customElements.define("ds-table",pe);var ge=class extends l{constructor(){super(...arguments),this._isMobile=!1}connectedCallback(){if(super.connectedCallback(),this._isMobile=Qe(),console.log(`[ds-grid] Mobile device: ${this._isMobile}`),this._isMobile&&(this.classList.add("mobile"),console.log("[ds-grid] Mobile class added")),this._isMobile&&typeof window<"u"){let e=window.innerWidth,n=14,r=.5,i=(n-1)*r,s=(e-i)/n;console.log(`[ds-grid] Mobile grid: ${n} columns \xD7 ${s.toFixed(2)}px + ${i}px gaps = ${e}px`),this.style.setProperty("--mobile-column-size",`${s}px`),this.style.setProperty("--mobile-gap",`${r}px`)}}updated(){this._isMobile?this.classList.add("mobile"):this.classList.remove("mobile")}render(){return o``}};ge.properties={align:{type:String},_isMobile:{type:Boolean,state:!0}};ge.styles=c`
1149
+ `;customElements.define("ds-table",pe);var ge=class extends l{constructor(){super(...arguments),this._isMobile=!1}connectedCallback(){if(super.connectedCallback(),this._isMobile=Qe(),console.log(`[ds-grid] Mobile device: ${this._isMobile}`),this._isMobile&&(this.classList.add("mobile"),console.log("[ds-grid] Mobile class added")),this._isMobile&&typeof window<"u"){let e=window.innerWidth,i=14,n=.5,r=(i-1)*n,s=(e-r)/i;console.log(`[ds-grid] Mobile grid: ${i} columns \xD7 ${s.toFixed(2)}px + ${r}px gaps = ${e}px`),this.style.setProperty("--mobile-column-size",`${s}px`),this.style.setProperty("--mobile-gap",`${n}px`)}}updated(){this._isMobile?this.classList.add("mobile"):this.classList.remove("mobile")}render(){return o``}};ge.properties={align:{type:String},_isMobile:{type:Boolean,state:!0}};ge.styles=c`
1150
1150
  :host {
1151
1151
  margin-top: 0.5px !important;
1152
1152
  margin-left: 0.5px !important;
@@ -1205,11 +1205,11 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1205
1205
  right: 0;
1206
1206
  transform: none;
1207
1207
  }
1208
- `;customElements.define("ds-grid",ge);var fe=class extends l{render(){let e=this.debug||this.mode==="debug",n=this.mode==="company";return o`
1208
+ `;customElements.define("ds-grid",ge);var fe=class extends l{render(){let e=this.debug||this.mode==="debug",i=this.mode==="company";return o`
1209
1209
  <slot></slot>
1210
1210
  ${e?o`
1211
1211
  <div class="debug-overlay">
1212
- ${n?o`
1212
+ ${i?o`
1213
1213
  <div class="debug-area debug-header">header</div>
1214
1214
  <div class="debug-area debug-content">content</div>
1215
1215
  <div class="debug-area debug-footer">footer</div>
@@ -1368,7 +1368,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1368
1368
  grid-area: content;
1369
1369
  border-color: rgba(71, 231, 71, 0.63);
1370
1370
  }
1371
- `;customElements.define("ds-layout",fe);var Ct="ds-scroll-position";function xn(){if(!(typeof window>"u"))try{let t={x:window.scrollX,y:window.scrollY};sessionStorage.setItem(Ct,JSON.stringify(t))}catch(t){console.warn("[DS one] Failed to save scroll position:",t)}}function Lr(){if(typeof window>"u")return null;try{let t=sessionStorage.getItem(Ct);if(!t)return null;let e=JSON.parse(t);return typeof e.x=="number"&&typeof e.y=="number"&&!isNaN(e.x)&&!isNaN(e.y)?e:null}catch(t){return console.warn("[DS one] Failed to retrieve scroll position:",t),null}}function Tr(t={}){if(typeof window>"u")return!1;let e=Lr();if(!e)return!1;try{return requestAnimationFrame(()=>{window.scrollTo({left:e.x,top:e.y,behavior:t.smooth?"smooth":"instant"}),t.clear&&Nr(),window.dispatchEvent(new CustomEvent("scroll-restored",{detail:e}))}),!0}catch(n){return console.warn("[DS one] Failed to restore scroll position:",n),!1}}function Nr(){if(!(typeof window>"u"))try{sessionStorage.removeItem(Ct)}catch(t){console.warn("[DS one] Failed to clear scroll position:",t)}}function Ir(t={}){if(typeof window>"u")return;let{autoSave:e=!0,autoRestore:n=!0,smooth:r=!1,clearOnRestore:i=!1}=t;if(e&&(window.addEventListener("beforeunload",()=>{xn()}),window.addEventListener("pagehide",()=>{xn()})),n){let s=()=>{Tr({smooth:r,clear:i})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",s):s()}}typeof window<"u"&&Ir({autoSave:!0,autoRestore:!0,smooth:!1,clearOnRestore:!1});export{qe as Article,Be as Attributes,re as Button,Pe as Cycle,Ye as DoubleNav,he as DownloadCV,pe as DsTable,ge as Grid,ze as Header,de as Home,B as Icon,fe as Layout,Ae as Link,Ge as List,Ze as Panel,Ue as Price,ue as Row,Je as SingleNav,Ke as SquareCircle,ke as Text,We as Title,ce as Tooltip,Fe as ViewToggle,je as Year,Nr as clearScrollPosition,$ as currentLanguage,O as currentTheme,Qe as detectMobileDevice,ri as getAvailableLanguages,ct as getAvailableLanguagesSync,Xn as getBrowserLanguage,Tn as getDeviceInfo,rn as getLanguageDisplayName,sn as getNotionText,wn as getPriceLabel,Lr as getScrollPosition,x as getText,K as getViewMode,ti as hasTranslation,Xe as initDeviceDetection,Ir as initScrollManagement,ii as loadTranslations,Tr as restoreScrollPosition,xn as saveScrollPosition,j as saveSettings,dt as setLanguage,ni as setNotionText,De as setTheme,St as setViewMode,Rs as toggleViewMode,E as translate};
1371
+ `;customElements.define("ds-layout",fe);var Ct="ds-scroll-position";function _i(){if(!(typeof window>"u"))try{let t={x:window.scrollX,y:window.scrollY};sessionStorage.setItem(Ct,JSON.stringify(t))}catch(t){console.warn("[DS one] Failed to save scroll position:",t)}}function Ln(){if(typeof window>"u")return null;try{let t=sessionStorage.getItem(Ct);if(!t)return null;let e=JSON.parse(t);return typeof e.x=="number"&&typeof e.y=="number"&&!isNaN(e.x)&&!isNaN(e.y)?e:null}catch(t){return console.warn("[DS one] Failed to retrieve scroll position:",t),null}}function Tn(t={}){if(typeof window>"u")return!1;let e=Ln();if(!e)return!1;try{return requestAnimationFrame(()=>{window.scrollTo({left:e.x,top:e.y,behavior:t.smooth?"smooth":"instant"}),t.clear&&Nn(),window.dispatchEvent(new CustomEvent("scroll-restored",{detail:e}))}),!0}catch(i){return console.warn("[DS one] Failed to restore scroll position:",i),!1}}function Nn(){if(!(typeof window>"u"))try{sessionStorage.removeItem(Ct)}catch(t){console.warn("[DS one] Failed to clear scroll position:",t)}}function In(t={}){if(typeof window>"u")return;let{autoSave:e=!0,autoRestore:i=!0,smooth:n=!1,clearOnRestore:r=!1}=t;if(e&&(window.addEventListener("beforeunload",()=>{_i()}),window.addEventListener("pagehide",()=>{_i()})),i){let s=()=>{Tn({smooth:n,clear:r})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",s):s()}}typeof window<"u"&&In({autoSave:!0,autoRestore:!0,smooth:!1,clearOnRestore:!1});export{qe as Article,Be as Attributes,ne as Button,Pe as Cycle,Ye as DoubleNav,he as DownloadCV,pe as DsTable,ge as Grid,ze as Header,de as Home,B as Icon,fe as Layout,Ae as Link,Ge as List,Ze as Panel,Ue as Price,ue as Row,Je as SingleNav,Ke as SquareCircle,ke as Text,je as Title,ce as Tooltip,Fe as ViewToggle,We as Year,Nn as clearScrollPosition,$ as currentLanguage,O as currentTheme,Qe as detectMobileDevice,nr as getAvailableLanguages,ct as getAvailableLanguagesSync,Yi as getBrowserLanguage,Ni as getDeviceInfo,si as getLanguageDisplayName,oi as getNotionText,bi as getPriceLabel,Ln as getScrollPosition,x as getText,K as getViewMode,tr as hasTranslation,Xe as initDeviceDetection,In as initScrollManagement,rr as loadTranslations,Tn as restoreScrollPosition,_i as saveScrollPosition,W as saveSettings,dt as setLanguage,ir as setNotionText,De as setTheme,St as setViewMode,Rs as toggleViewMode,E as translate};
1372
1372
  /*! Bundled license information:
1373
1373
 
1374
1374
  @lit/reactive-element/css-tag.js: