ds-one 0.2.0-alpha.2 → 0.2.5-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/DS1/{utils/language.ts → 0-face/i18n.ts} +197 -2
  2. package/DS1/0-face/preferences.ts +23 -0
  3. package/DS1/0-face/pricing.ts +57 -0
  4. package/DS1/1-root/one.css +1 -1
  5. package/DS1/2-core/ds-button.ts +1 -1
  6. package/DS1/2-core/ds-cycle.ts +17 -18
  7. package/DS1/2-core/{ds-year.ts → ds-date.ts} +4 -4
  8. package/DS1/2-core/ds-input.ts +1 -0
  9. package/DS1/2-core/ds-text.ts +1 -1
  10. package/DS1/2-core/ds-tooltip.ts +4 -3
  11. package/DS1/3-unit/doublenav-v1.ts +105 -0
  12. package/DS1/3-unit/{ds-doublenav.ts → ds-portfolio-doublenav.ts} +4 -5
  13. package/DS1/3-unit/ds-portfolio-panel.ts +27 -0
  14. package/DS1/3-unit/ds-portfolio-singlenav.ts +79 -0
  15. package/DS1/3-unit/list-v1.ts +24 -0
  16. package/DS1/3-unit/{ds-panel.ts → panel-v1.ts} +2 -3
  17. package/DS1/3-unit/row-v1.ts +52 -0
  18. package/DS1/3-unit/{ds-singlenav.ts → singlenav-v1.ts} +4 -5
  19. package/DS1/4-page/ds-grid.ts +1 -1
  20. package/DS1/index.ts +39 -37
  21. package/README.md +3 -3
  22. package/dist/0-face/{2025-04-23-device.d.ts → device.d.ts} +1 -1
  23. package/dist/0-face/device.d.ts.map +1 -0
  24. package/dist/{utils/language.d.ts → 0-face/i18n.d.ts} +1 -1
  25. package/dist/0-face/i18n.d.ts.map +1 -0
  26. package/dist/{utils/language.js → 0-face/i18n.js} +141 -2
  27. package/dist/0-face/preferences.d.ts +9 -0
  28. package/dist/0-face/preferences.d.ts.map +1 -0
  29. package/dist/0-face/preferences.js +14 -0
  30. package/dist/0-face/pricing.d.ts +15 -0
  31. package/dist/0-face/pricing.d.ts.map +1 -0
  32. package/dist/0-face/pricing.js +46 -0
  33. package/dist/0-face/theme.d.ts.map +1 -0
  34. package/dist/2-core/ds-button.js +1 -1
  35. package/dist/2-core/ds-cycle.js +15 -15
  36. package/dist/2-core/{ds-year.d.ts → ds-date.d.ts} +4 -4
  37. package/dist/2-core/ds-date.d.ts.map +1 -0
  38. package/dist/2-core/{ds-year.js → ds-date.js} +4 -4
  39. package/dist/2-core/ds-input.d.ts +1 -0
  40. package/dist/2-core/ds-input.d.ts.map +1 -0
  41. package/dist/2-core/ds-input.js +1 -0
  42. package/dist/2-core/ds-text.js +1 -1
  43. package/dist/2-core/ds-tooltip.d.ts.map +1 -1
  44. package/dist/2-core/ds-tooltip.js +4 -2
  45. package/dist/3-unit/{ds-doublenav.d.ts → ds-portfolio-doublenav.d.ts} +4 -4
  46. package/dist/3-unit/ds-portfolio-doublenav.d.ts.map +1 -0
  47. package/dist/3-unit/{ds-doublenav.js → ds-portfolio-doublenav.js} +4 -4
  48. package/dist/3-unit/{ds-panel.d.ts → ds-portfolio-panel.d.ts} +3 -3
  49. package/dist/3-unit/ds-portfolio-panel.d.ts.map +1 -0
  50. package/dist/3-unit/{ds-panel.js → ds-portfolio-panel.js} +3 -3
  51. package/dist/3-unit/{ds-singlenav.d.ts → ds-portfolio-singlenav.d.ts} +4 -4
  52. package/dist/3-unit/ds-portfolio-singlenav.d.ts.map +1 -0
  53. package/dist/3-unit/{ds-singlenav.js → ds-portfolio-singlenav.js} +4 -4
  54. package/dist/4-page/ds-grid.js +1 -1
  55. package/dist/ds-one.bundle.js +2087 -3806
  56. package/dist/ds-one.bundle.js.map +4 -4
  57. package/dist/ds-one.bundle.min.js +74 -740
  58. package/dist/ds-one.bundle.min.js.map +4 -4
  59. package/dist/index.d.ts +16 -26
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +32 -34
  62. package/package.json +2 -2
  63. package/DS1/0-face/2025-04-23-language.ts +0 -4
  64. package/DS1/2-core/ds-article.ts +0 -454
  65. package/DS1/2-core/ds-attributes.ts +0 -155
  66. package/DS1/2-core/ds-downloadcv.ts +0 -146
  67. package/DS1/2-core/ds-header.ts +0 -82
  68. package/DS1/2-core/ds-home.ts +0 -168
  69. package/DS1/2-core/ds-link.ts +0 -121
  70. package/DS1/2-core/ds-markdown.ts +0 -252
  71. package/DS1/2-core/ds-price.ts +0 -108
  72. package/DS1/2-core/ds-squarecircle.ts +0 -155
  73. package/DS1/2-core/ds-title.ts +0 -139
  74. package/DS1/2-core/ds-viewtoggle.ts +0 -83
  75. package/DS1/utils/cdn-loader.ts +0 -232
  76. package/DS1/utils/keys.json +0 -41
  77. package/DS1/utils/pricing.ts +0 -24
  78. package/DS1/utils/scroll.ts +0 -184
  79. package/DS1/utils/settings.ts +0 -23
  80. package/DS1/utils/viewMode.ts +0 -55
  81. package/dist/0-face/2025-04-23-device.d.ts.map +0 -1
  82. package/dist/0-face/2025-04-23-language.d.ts +0 -1
  83. package/dist/0-face/2025-04-23-language.d.ts.map +0 -1
  84. package/dist/0-face/2025-04-23-language.js +0 -3
  85. package/dist/2-core/article-v1.d.ts +0 -129
  86. package/dist/2-core/article-v1.d.ts.map +0 -1
  87. package/dist/2-core/article-v1.js +0 -361
  88. package/dist/2-core/attributes-v1.d.ts +0 -47
  89. package/dist/2-core/attributes-v1.d.ts.map +0 -1
  90. package/dist/2-core/attributes-v1.js +0 -128
  91. package/dist/2-core/cycle-v1.d.ts +0 -66
  92. package/dist/2-core/cycle-v1.d.ts.map +0 -1
  93. package/dist/2-core/cycle-v1.js +0 -586
  94. package/dist/2-core/downloadcv-v1.d.ts +0 -58
  95. package/dist/2-core/downloadcv-v1.d.ts.map +0 -1
  96. package/dist/2-core/downloadcv-v1.js +0 -119
  97. package/dist/2-core/ds-article.d.ts +0 -129
  98. package/dist/2-core/ds-article.d.ts.map +0 -1
  99. package/dist/2-core/ds-article.js +0 -361
  100. package/dist/2-core/ds-attributes.d.ts +0 -47
  101. package/dist/2-core/ds-attributes.d.ts.map +0 -1
  102. package/dist/2-core/ds-attributes.js +0 -128
  103. package/dist/2-core/ds-button.figma.d.ts +0 -2
  104. package/dist/2-core/ds-button.figma.d.ts.map +0 -1
  105. package/dist/2-core/ds-button.figma.js +0 -6
  106. package/dist/2-core/ds-downloadcv.d.ts +0 -58
  107. package/dist/2-core/ds-downloadcv.d.ts.map +0 -1
  108. package/dist/2-core/ds-downloadcv.js +0 -119
  109. package/dist/2-core/ds-header.d.ts +0 -28
  110. package/dist/2-core/ds-header.d.ts.map +0 -1
  111. package/dist/2-core/ds-header.js +0 -66
  112. package/dist/2-core/ds-home.d.ts +0 -26
  113. package/dist/2-core/ds-home.d.ts.map +0 -1
  114. package/dist/2-core/ds-home.js +0 -148
  115. package/dist/2-core/ds-link.d.ts +0 -35
  116. package/dist/2-core/ds-link.d.ts.map +0 -1
  117. package/dist/2-core/ds-link.js +0 -85
  118. package/dist/2-core/ds-markdown.d.ts +0 -7
  119. package/dist/2-core/ds-markdown.d.ts.map +0 -1
  120. package/dist/2-core/ds-markdown.js +0 -240
  121. package/dist/2-core/ds-price.d.ts +0 -46
  122. package/dist/2-core/ds-price.d.ts.map +0 -1
  123. package/dist/2-core/ds-price.js +0 -72
  124. package/dist/2-core/ds-squarecircle.d.ts +0 -50
  125. package/dist/2-core/ds-squarecircle.d.ts.map +0 -1
  126. package/dist/2-core/ds-squarecircle.js +0 -133
  127. package/dist/2-core/ds-title.d.ts +0 -50
  128. package/dist/2-core/ds-title.d.ts.map +0 -1
  129. package/dist/2-core/ds-title.js +0 -103
  130. package/dist/2-core/ds-viewtoggle.d.ts +0 -27
  131. package/dist/2-core/ds-viewtoggle.d.ts.map +0 -1
  132. package/dist/2-core/ds-viewtoggle.js +0 -49
  133. package/dist/2-core/ds-year.d.ts.map +0 -1
  134. package/dist/2-core/header-v1.d.ts +0 -28
  135. package/dist/2-core/header-v1.d.ts.map +0 -1
  136. package/dist/2-core/header-v1.js +0 -66
  137. package/dist/2-core/home-v1.d.ts +0 -26
  138. package/dist/2-core/home-v1.d.ts.map +0 -1
  139. package/dist/2-core/home-v1.js +0 -148
  140. package/dist/2-core/icon-v1.d.ts +0 -28
  141. package/dist/2-core/icon-v1.d.ts.map +0 -1
  142. package/dist/2-core/icon-v1.js +0 -297
  143. package/dist/2-core/link-v1.d.ts +0 -35
  144. package/dist/2-core/link-v1.d.ts.map +0 -1
  145. package/dist/2-core/link-v1.js +0 -85
  146. package/dist/2-core/markdown-v1.d.ts +0 -7
  147. package/dist/2-core/markdown-v1.d.ts.map +0 -1
  148. package/dist/2-core/markdown-v1.js +0 -240
  149. package/dist/2-core/price-v1.d.ts +0 -46
  150. package/dist/2-core/price-v1.d.ts.map +0 -1
  151. package/dist/2-core/price-v1.js +0 -72
  152. package/dist/2-core/squarecircle-v1.d.ts +0 -50
  153. package/dist/2-core/squarecircle-v1.d.ts.map +0 -1
  154. package/dist/2-core/squarecircle-v1.js +0 -133
  155. package/dist/2-core/text-v1.d.ts +0 -48
  156. package/dist/2-core/text-v1.d.ts.map +0 -1
  157. package/dist/2-core/text-v1.js +0 -83
  158. package/dist/2-core/title-v1.d.ts +0 -50
  159. package/dist/2-core/title-v1.d.ts.map +0 -1
  160. package/dist/2-core/title-v1.js +0 -103
  161. package/dist/2-core/tooltip-v1.d.ts +0 -39
  162. package/dist/2-core/tooltip-v1.d.ts.map +0 -1
  163. package/dist/2-core/tooltip-v1.js +0 -145
  164. package/dist/2-core/viewtoggle-v1.d.ts +0 -27
  165. package/dist/2-core/viewtoggle-v1.d.ts.map +0 -1
  166. package/dist/2-core/viewtoggle-v1.js +0 -49
  167. package/dist/2-core/year-v1.d.ts +0 -16
  168. package/dist/2-core/year-v1.d.ts.map +0 -1
  169. package/dist/2-core/year-v1.js +0 -21
  170. package/dist/3-unit/ds-doublenav.d.ts.map +0 -1
  171. package/dist/3-unit/ds-panel.d.ts.map +0 -1
  172. package/dist/3-unit/ds-singlenav.d.ts.map +0 -1
  173. package/dist/utils/cdn-loader.d.ts +0 -19
  174. package/dist/utils/cdn-loader.d.ts.map +0 -1
  175. package/dist/utils/cdn-loader.js +0 -160
  176. package/dist/utils/keys.json +0 -41
  177. package/dist/utils/language.d.ts.map +0 -1
  178. package/dist/utils/pricing.d.ts +0 -8
  179. package/dist/utils/pricing.d.ts.map +0 -1
  180. package/dist/utils/pricing.js +0 -14
  181. package/dist/utils/scroll.d.ts +0 -34
  182. package/dist/utils/scroll.d.ts.map +0 -1
  183. package/dist/utils/scroll.js +0 -140
  184. package/dist/utils/settings.d.ts +0 -9
  185. package/dist/utils/settings.d.ts.map +0 -1
  186. package/dist/utils/settings.js +0 -14
  187. package/dist/utils/theme.d.ts.map +0 -1
  188. package/dist/utils/viewMode.d.ts +0 -14
  189. package/dist/utils/viewMode.d.ts.map +0 -1
  190. package/dist/utils/viewMode.js +0 -46
  191. /package/DS1/0-face/{2025-04-23-device.ts → device.ts} +0 -0
  192. /package/DS1/{utils → 0-face}/theme.ts +0 -0
  193. /package/DS1/{x Icon → x-icon}/1x.svg +0 -0
  194. /package/DS1/{x Icon → x-icon}/1xdots.svg +0 -0
  195. /package/DS1/{x Icon → x-icon}/1xgrid.svg +0 -0
  196. /package/DS1/{x Icon → x-icon}/1xlines.svg +0 -0
  197. /package/DS1/{x Icon → x-icon}/2x.svg +0 -0
  198. /package/DS1/{x Icon → x-icon}/2xdots.svg +0 -0
  199. /package/DS1/{x Icon → x-icon}/2xgrid.svg +0 -0
  200. /package/DS1/{x Icon → x-icon}/2xlines.svg +0 -0
  201. /package/DS1/{x Icon → x-icon}/big.svg +0 -0
  202. /package/DS1/{x Icon → x-icon}/blank.svg +0 -0
  203. /package/DS1/{x Icon → x-icon}/check.svg +0 -0
  204. /package/DS1/{x Icon → x-icon}/close.svg +0 -0
  205. /package/DS1/{x Icon → x-icon}/collapse.svg +0 -0
  206. /package/DS1/{x Icon → x-icon}/color.svg +0 -0
  207. /package/DS1/{x Icon → x-icon}/column.svg +0 -0
  208. /package/DS1/{x Icon → x-icon}/default.svg +0 -0
  209. /package/DS1/{x Icon → x-icon}/delete.svg +0 -0
  210. /package/DS1/{x Icon → x-icon}/do.svg +0 -0
  211. /package/DS1/{x Icon → x-icon}/down.svg +0 -0
  212. /package/DS1/{x Icon → x-icon}/duplicate.svg +0 -0
  213. /package/DS1/{x Icon → x-icon}/email.svg +0 -0
  214. /package/DS1/{x Icon → x-icon}/expand.svg +0 -0
  215. /package/DS1/{x Icon → x-icon}/gallery.svg +0 -0
  216. /package/DS1/{x Icon → x-icon}/group.svg +0 -0
  217. /package/DS1/{x Icon → x-icon}/head.svg +0 -0
  218. /package/DS1/{x Icon → x-icon}/icon.svg +0 -0
  219. /package/DS1/{x Icon → x-icon}/left.svg +0 -0
  220. /package/DS1/{x Icon → x-icon}/lock.svg +0 -0
  221. /package/DS1/{x Icon → x-icon}/mic.svg +0 -0
  222. /package/DS1/{x Icon → x-icon}/minimize.svg +0 -0
  223. /package/DS1/{x Icon → x-icon}/more.svg +0 -0
  224. /package/DS1/{x Icon → x-icon}/note.svg +0 -0
  225. /package/DS1/{x Icon → x-icon}/open.svg +0 -0
  226. /package/DS1/{x Icon → x-icon}/page.svg +0 -0
  227. /package/DS1/{x Icon → x-icon}/plus.svg +0 -0
  228. /package/DS1/{x Icon → x-icon}/rewind.svg +0 -0
  229. /package/DS1/{x Icon → x-icon}/right.svg +0 -0
  230. /package/DS1/{x Icon → x-icon}/row..svg +0 -0
  231. /package/DS1/{x Icon → x-icon}/search.svg +0 -0
  232. /package/DS1/{x Icon → x-icon}/see.svg +0 -0
  233. /package/DS1/{x Icon → x-icon}/star.svg +0 -0
  234. /package/DS1/{x Icon → x-icon}/title.svg +0 -0
  235. /package/DS1/{x Icon → x-icon}/undo.svg +0 -0
  236. /package/DS1/{x Icon → x-icon}/ungroup.svg +0 -0
  237. /package/DS1/{x Icon → x-icon}/unhead.svg +0 -0
  238. /package/DS1/{x Icon → x-icon}/unicon.svg +0 -0
  239. /package/DS1/{x Icon → x-icon}/unlock.svg +0 -0
  240. /package/DS1/{x Icon → x-icon}/unmic.svg +0 -0
  241. /package/DS1/{x Icon → x-icon}/unsee.svg +0 -0
  242. /package/DS1/{x Icon → x-icon}/unstar.svg +0 -0
  243. /package/DS1/{x Icon → x-icon}/untitle.svg +0 -0
  244. /package/DS1/{x Icon → x-icon}/up.svg +0 -0
  245. /package/dist/0-face/{2025-04-23-device.js → device.js} +0 -0
  246. /package/dist/{utils → 0-face}/theme.d.ts +0 -0
  247. /package/dist/{utils → 0-face}/theme.js +0 -0
@@ -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 Ve(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigator,e=window,n=t&&(t.userAgent||t.vendor)||e&&e.opera||"",s=/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),i=(t&&t.maxTouchPoints||0)>1,o=e?Math.min(e.innerWidth||0,e.innerHeight||0)<=820:!1;return s||i&&o}function cn(){let t=Ve(),e=navigator,n=window,r=(e&&e.maxTouchPoints||0)>1,i=typeof document<"u"?document.documentElement.clientWidth:n?.innerWidth||0,o=typeof document<"u"?document.documentElement.clientHeight:n?.innerHeight||0,p=t&&Math.min(i,o)>=600;return{isMobile:t,isTablet:p,isDesktop:!t,isTouchCapable:r,deviceType:t?p?"tablet":"mobile":"desktop",userAgent:e&&(e.userAgent||e.vendor)||"",screenWidth:i,screenHeight:o}}function He(){let t=cn();if(t.isMobile&&typeof document<"u"){let s=t.screenWidth/280;document.documentElement.style.setProperty("--scaling-factor-mobile",s.toFixed(3)),console.log(`[DS one] Mobile device detected - ${t.deviceType} (${t.screenWidth}x${t.screenHeight}), scaling factor: ${s.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",()=>{He()}):He();let t;window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{He()},100)})}var dn={},vt=["da","nb","sv","pt","es","zh","ko","ja","en","de"],un=new Map(vt.map((t,e)=>[t,e])),lt={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"},ct=new Map,dt=!1,yt="./translations.json",ut=!1;function ht(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 hn(){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 s=document.querySelector('link[rel="ds-one-translations"]')?.getAttribute("href");return s||null}function pn(){let t=[],e=typeof window<"u"?window.DS_ONE_TRANSLATIONS_FILE:null,n=hn(),s=ht(e??"");s&&t.push(s);let r=ht(n??"");return r&&!t.includes(r)&&t.push(r),t.length===0&&t.push(yt),t}function fn(t){return!t||typeof t!="object"?!1:Object.values(t).every(e=>e&&typeof e=="object")}async function gn(t){try{let e=await fetch(t);if(!e.ok)return null;let n=await e.json();return fn(n)?Object.keys(n).length===0?(console.warn(`[DS one] No languages found in ${t}`),null):n:(console.warn(`[DS one] Invalid translation format in ${t}. Expected object with language codes as keys.`),null)}catch{return null}}async function pt(){if(ut||(ut=!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=pn();for(let e of t){let n=await gn(e);if(!n)continue;window.DS_ONE_TRANSLATIONS=n;let s=Object.keys(n);return console.log(`[DS one] External translations loaded from ${e}: ${s.length} language(s) \u2013 ${s.join(", ")}`),window.dispatchEvent(new CustomEvent("translations-ready")),!0}return console.info(`[DS one] No external translations found at ${t[0]??yt}. Using bundled translations.`),!1}function pe(){return typeof window<"u"&&window.DS_ONE_TRANSLATIONS?window.DS_ONE_TRANSLATIONS:dn}var E=pe(),Re=new Map,S="en";function F(t){return t?t.toLowerCase().split(/[-_]/)[0]??"":""}function ft(t){let e=F(t),n=un.get(e);return typeof n=="number"?n:vt.length}function bt(t){return[...t].sort((e,n)=>{let s=ft(e),r=ft(n);return s!==r?s-r:e.localeCompare(n)})}function mn(t,e){let n=t?.replace("_","-");if(n)try{let s=ct.get(n);s||(s=new Intl.DisplayNames([n],{type:"language"}),ct.set(n,s));let r=e.replace("_","-"),i=s.of(r);if(i&&i!==r)return i;let o=s.of(F(r));if(o)return o}catch{dt||(console.info("[DS one] Intl.DisplayNames is not available, using fallback language names."),dt=!0)}}function vn(t){let e=t.toLowerCase().replace("_","-"),n=lt[e];if(n)return n;let s=F(e);return lt[s]}function wt(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(S),n.push("en");let s=new Set;for(let o of n){if(!o||s.has(o))continue;s.add(o);let p=mn(o,t);if(p)return p}let r=vn(t);if(r)return r;let i=F(t);return i?i.toUpperCase():t}var gt={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 mt(t){if(!t)return null;let e=t.toLowerCase().replace("_","-"),n=gt[e];if(n)return n;let s=F(e),r=gt[s];return r||t}function yn(){if(typeof navigator>"u")return S;let t=navigator.language;if(t){let e=mt(t);if(e)return e}if(Array.isArray(navigator.languages))for(let e of navigator.languages){let n=mt(e);if(n)return n}return S}var ls=typeof window<"u"?window.localStorage?.getItem("ds-one:language")??void 0:void 0,L={value:localStorage.getItem("language")||yn(),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"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{pt()}):pt());typeof window<"u"&&window.addEventListener("translations-ready",()=>{E=pe(),window.dispatchEvent(new CustomEvent("translations-loaded")),window.notionDataLoaded=!0;let t=L.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=L.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))},100);function T(t){let e=L.value;return E?.[e]?.[t]?E[e][t]:e!==S&&E?.[S]?.[t]?E[S][t]:(console.warn(`[translate] No translation found for key "${t}"`),t)}function cs(t,e=L.value){if(!t)return!1;let n=E?.[e];return!!(n&&Object.prototype.hasOwnProperty.call(n,t)||e!==S&&E?.[S]&&Object.prototype.hasOwnProperty.call(E[S],t))}function fe(t){return T(t)}async function _t(t,e=L.value){if(!t||!E||!E[e])return null;let n=E[e][t];return n||(e!==S&&E[S]?.[t]?E[S][t]:null)}function ds(t,e,n=L.value){if(!t)return;bn(n).set(t,e)}function bn(t){return Re.has(t)||Re.set(t,new Map),Re.get(t)}function us(){let t=pe();if(t&&Object.keys(t).length>0){let e=Object.keys(t);return Promise.resolve(bt(e))}return Promise.resolve([S])}function De(){let t=pe();return t&&Object.keys(t).length>0?bt(Object.keys(t)):[S]}function hs(t,e){console.log(`Loading additional translations for ${t}:`,Object.keys(e).length,"keys")}function Ue(t){localStorage.setItem("language",t),L.set(t),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))}function P(t){if(!(typeof window>"u"))try{let e=window.localStorage?.getItem("ds-one:preferences"),s={...e?JSON.parse(e):{},...t};window.localStorage?.setItem("ds-one:preferences",JSON.stringify(s))}catch(e){console.warn("ds-one: unable to persist preferences",e)}}var wn={da:"kr.",nb:"kr.",sv:"kr.",de:"\u20AC",en:"$",pt:"\u20AC",es:"\u20AC",zh:"\xA5",ja:"\xA5",ko:"\u20A9"};function gs(t){let{language:e,country:n}=t;if(n){let r=n.toUpperCase();if(r==="US"||r==="USA")return"$";if(r==="GB"||r==="UK")return"\xA3";if(r==="JP"||r==="JPN"||r==="CN"||r==="CHN")return"\xA5";if(r==="KR"||r==="KOR")return"\u20A9"}let s=e.toLowerCase().split(/[-_]/)[0];return wn[s]||"$"}var _n=Object.defineProperty,xn=(t,e,n)=>e in t?_n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,We=(t,e,n)=>(xn(t,typeof e!="symbol"?e+"":e,n),n),$n=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)},je=(t,e)=>{if(Object(e)!==e)throw TypeError('Cannot use the "in" operator on this value');return t.has(e)},ge=(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)},xt=(t,e,n)=>($n(t,e,"access private method"),n);function $t(t,e){return Object.is(t,e)}var w=null,G=!1,me=1,ve=Symbol("SIGNAL");function U(t){let e=w;return w=t,e}function Sn(){return w}function An(){return G}var Ge={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 ye(t){if(G)throw new Error(typeof ngDevMode<"u"&&ngDevMode?"Assertion error: signal read during notification phase":"");if(w===null)return;w.consumerOnSignalRead(t);let e=w.nextProducerIndex++;if(W(w),e<w.producerNode.length&&w.producerNode[e]!==t&&qe(w)){let n=w.producerNode[e];be(n,w.producerIndexOfThis[e])}w.producerNode[e]!==t&&(w.producerNode[e]=t,w.producerIndexOfThis[e]=qe(w)?Ct(t,w,e):0),w.producerLastReadVersion[e]=t.version}function Cn(){me++}function St(t){if(!(!t.dirty&&t.lastCleanEpoch===me)){if(!t.producerMustRecompute(t)&&!Nn(t)){t.dirty=!1,t.lastCleanEpoch=me;return}t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=me}}function At(t){if(t.liveConsumerNode===void 0)return;let e=G;G=!0;try{for(let n of t.liveConsumerNode)n.dirty||Tn(n)}finally{G=e}}function En(){return w?.consumerAllowSignalWrites!==!1}function Tn(t){var e;t.dirty=!0,At(t),(e=t.consumerMarkedDirty)==null||e.call(t.wrapper??t)}function Ln(t){return t&&(t.nextProducerIndex=0),U(t)}function kn(t,e){if(U(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(qe(t))for(let n=t.nextProducerIndex;n<t.producerNode.length;n++)be(t.producerNode[n],t.producerIndexOfThis[n]);for(;t.producerNode.length>t.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Nn(t){W(t);for(let e=0;e<t.producerNode.length;e++){let n=t.producerNode[e],s=t.producerLastReadVersion[e];if(s!==n.version||(St(n),s!==n.version))return!0}return!1}function Ct(t,e,n){var s;if(Ze(t),W(t),t.liveConsumerNode.length===0){(s=t.watched)==null||s.call(t.wrapper);for(let r=0;r<t.producerNode.length;r++)t.producerIndexOfThis[r]=Ct(t.producerNode[r],t,r)}return t.liveConsumerIndexOfThis.push(n),t.liveConsumerNode.push(e)-1}function be(t,e){var n;if(Ze(t),W(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 r=0;r<t.producerNode.length;r++)be(t.producerNode[r],t.producerIndexOfThis[r])}let s=t.liveConsumerNode.length-1;if(t.liveConsumerNode[e]=t.liveConsumerNode[s],t.liveConsumerIndexOfThis[e]=t.liveConsumerIndexOfThis[s],t.liveConsumerNode.length--,t.liveConsumerIndexOfThis.length--,e<t.liveConsumerNode.length){let r=t.liveConsumerIndexOfThis[e],i=t.liveConsumerNode[e];W(i),i.producerIndexOfThis[r]=e}}function qe(t){var e;return t.consumerIsAlwaysLive||(((e=t?.liveConsumerNode)==null?void 0:e.length)??0)>0}function W(t){t.producerNode??(t.producerNode=[]),t.producerIndexOfThis??(t.producerIndexOfThis=[]),t.producerLastReadVersion??(t.producerLastReadVersion=[])}function Ze(t){t.liveConsumerNode??(t.liveConsumerNode=[]),t.liveConsumerIndexOfThis??(t.liveConsumerIndexOfThis=[])}function Et(t){if(St(t),ye(t),t.value===Fe)throw t.error;return t.value}function In(t){let e=Object.create(On);e.computation=t;let n=()=>Et(e);return n[ve]=e,n}var ze=Symbol("UNSET"),Be=Symbol("COMPUTING"),Fe=Symbol("ERRORED"),On={...Ge,value:ze,dirty:!0,error:null,equal:$t,producerMustRecompute(t){return t.value===ze||t.value===Be},producerRecomputeValue(t){if(t.value===Be)throw new Error("Detected cycle in computations.");let e=t.value;t.value=Be;let n=Ln(t),s,r=!1;try{s=t.computation.call(t.wrapper),r=e!==ze&&e!==Fe&&t.equal.call(t.wrapper,e,s)}catch(i){s=Fe,t.error=i}finally{kn(t,n)}if(r){t.value=e;return}t.value=s,t.version++}};function Pn(){throw new Error}var Mn=Pn;function Hn(){Mn()}function Vn(t){let e=Object.create(Un);e.value=t;let n=()=>(ye(e),e.value);return n[ve]=e,n}function Rn(){return ye(this),this.value}function Dn(t,e){En()||Hn(),t.equal.call(t.wrapper,t.value,e)||(t.value=e,Wn(t))}var Un={...Ge,equal:$t,value:void 0};function Wn(t){t.version++,Cn(),At(t)}var _=Symbol("node"),x;(t=>{var e,n,s,r,i,o;class p{constructor(m,l={}){ge(this,n),We(this,e);let f=Vn(m)[ve];if(this[_]=f,f.wrapper=this,l){let $=l.equals;$&&(f.equal=$),f.watched=l[t.subtle.watched],f.unwatched=l[t.subtle.unwatched]}}get(){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return Rn.call(this[_])}set(m){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(An())throw new Error("Writes to signals not permitted during Watcher callback");let l=this[_];Dn(l,m)}}e=_,n=new WeakSet,s=function(){},t.isState=u=>typeof u=="object"&&je(n,u),t.State=p;class d{constructor(m,l){ge(this,i),We(this,r);let f=In(m)[ve];if(f.consumerAllowSignalWrites=!0,this[_]=f,f.wrapper=this,l){let $=l.equals;$&&(f.equal=$),f.watched=l[t.subtle.watched],f.unwatched=l[t.subtle.unwatched]}}get(){if(!(0,t.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return Et(this[_])}}r=_,i=new WeakSet,o=function(){},t.isComputed=u=>typeof u=="object"&&je(i,u),t.Computed=d,(u=>{var m,l,A,f,$;function en(v){let g,c=null;try{c=U(null),g=v()}finally{U(c)}return g}u.untrack=en;function tn(v){var g;if(!(0,t.isComputed)(v)&&!(0,t.isWatcher)(v))throw new TypeError("Called introspectSources without a Computed or Watcher argument");return((g=v[_].producerNode)==null?void 0:g.map(c=>c.wrapper))??[]}u.introspectSources=tn;function nn(v){var g;if(!(0,t.isComputed)(v)&&!(0,t.isState)(v))throw new TypeError("Called introspectSinks without a Signal argument");return((g=v[_].liveConsumerNode)==null?void 0:g.map(c=>c.wrapper))??[]}u.introspectSinks=nn;function sn(v){if(!(0,t.isComputed)(v)&&!(0,t.isState)(v))throw new TypeError("Called hasSinks without a Signal argument");let g=v[_].liveConsumerNode;return g?g.length>0:!1}u.hasSinks=sn;function rn(v){if(!(0,t.isComputed)(v)&&!(0,t.isWatcher)(v))throw new TypeError("Called hasSources without a Computed or Watcher argument");let g=v[_].producerNode;return g?g.length>0:!1}u.hasSources=rn;class on{constructor(g){ge(this,l),ge(this,f),We(this,m);let c=Object.create(Ge);c.wrapper=this,c.consumerMarkedDirty=g,c.consumerIsAlwaysLive=!0,c.consumerAllowSignalWrites=!1,c.producerNode=[],this[_]=c}watch(...g){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");xt(this,f,$).call(this,g);let c=this[_];c.dirty=!1;let C=U(c);for(let he of g)ye(he[_]);U(C)}unwatch(...g){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");xt(this,f,$).call(this,g);let c=this[_];W(c);for(let C=c.producerNode.length-1;C>=0;C--)if(g.includes(c.producerNode[C].wrapper)){be(c.producerNode[C],c.producerIndexOfThis[C]);let he=c.producerNode.length-1;if(c.producerNode[C]=c.producerNode[he],c.producerIndexOfThis[C]=c.producerIndexOfThis[he],c.producerNode.length--,c.producerIndexOfThis.length--,c.nextProducerIndex--,C<c.producerNode.length){let ln=c.producerIndexOfThis[C],at=c.producerNode[C];Ze(at),at.liveConsumerIndexOfThis[ln]=C}}}getPending(){if(!(0,t.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[_].producerNode.filter(c=>c.dirty).map(c=>c.wrapper)}}m=_,l=new WeakSet,A=function(){},f=new WeakSet,$=function(v){for(let g of v)if(!(0,t.isComputed)(g)&&!(0,t.isState)(g))throw new TypeError("Called watch/unwatch without a Computed or State argument")},t.isWatcher=v=>je(l,v),u.Watcher=on;function an(){var v;return(v=Sn())==null?void 0:v.wrapper}u.currentComputed=an,u.watched=Symbol("watched"),u.unwatched=Symbol("unwatched")})(t.subtle||(t.subtle={}))})(x||(x={}));var bs=Symbol("SignalWatcherBrand"),ws=new FinalizationRegistry((({watcher:t,signal:e})=>{t.unwatch(e)}));var we={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Z=t=>(...e)=>({_$litDirective$:t,values:e}),j=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,n,s){this._$Ct=e,this._$AM=n,this._$Ci=s}_$AS(e,n){return this.update(e,n)}update(e,n){return this.render(...n)}};var J=globalThis,_e=J.trustedTypes,Tt=_e?_e.createPolicy("lit-html",{createHTML:t=>t}):void 0,Je="$lit$",k=`lit$${Math.random().toFixed(9).slice(2)}$`,Ye="?"+k,jn=`<${Ye}>`,V=document,Y=()=>V.createComment(""),X=t=>t===null||typeof t!="object"&&typeof t!="function",Xe=Array.isArray,Pt=t=>Xe(t)||typeof t?.[Symbol.iterator]=="function",Ke=`[
2
+ \f\r]`,K=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Lt=/-->/g,kt=/>/g,M=RegExp(`>|${Ke}(?:([^\\s"'>=/]+)(${Ke}*=${Ke}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Nt=/'/g,It=/"/g,Mt=/^(?:script|style|textarea|title)$/i,Qe=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),a=Qe(1),Ht=Qe(2),As=Qe(3),N=Symbol.for("lit-noChange"),b=Symbol.for("lit-nothing"),Ot=new WeakMap,H=V.createTreeWalker(V,129);function Vt(t,e){if(!Xe(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Tt!==void 0?Tt.createHTML(e):e}var Rt=(t,e)=>{let n=t.length-1,s=[],r,i=e===2?"<svg>":e===3?"<math>":"",o=K;for(let p=0;p<n;p++){let d=t[p],u,m,l=-1,A=0;for(;A<d.length&&(o.lastIndex=A,m=o.exec(d),m!==null);)A=o.lastIndex,o===K?m[1]==="!--"?o=Lt:m[1]!==void 0?o=kt:m[2]!==void 0?(Mt.test(m[2])&&(r=RegExp("</"+m[2],"g")),o=M):m[3]!==void 0&&(o=M):o===M?m[0]===">"?(o=r??K,l=-1):m[1]===void 0?l=-2:(l=o.lastIndex-m[2].length,u=m[1],o=m[3]===void 0?M:m[3]==='"'?It:Nt):o===It||o===Nt?o=M:o===Lt||o===kt?o=K:(o=M,r=void 0);let f=o===M&&t[p+1].startsWith("/>")?" ":"";i+=o===K?d+jn:l>=0?(s.push(u),d.slice(0,l)+Je+d.slice(l)+k+f):d+k+(l===-2?p:f)}return[Vt(t,i+(t[n]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),s]},Q=class t{constructor({strings:e,_$litType$:n},s){let r;this.parts=[];let i=0,o=0,p=e.length-1,d=this.parts,[u,m]=Rt(e,n);if(this.el=t.createElement(u,s),H.currentNode=this.el.content,n===2||n===3){let l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(r=H.nextNode())!==null&&d.length<p;){if(r.nodeType===1){if(r.hasAttributes())for(let l of r.getAttributeNames())if(l.endsWith(Je)){let A=m[o++],f=r.getAttribute(l).split(k),$=/([.?@])?(.*)/.exec(A);d.push({type:1,index:i,name:$[2],strings:f,ctor:$[1]==="."?$e:$[1]==="?"?Se:$[1]==="@"?Ae:D}),r.removeAttribute(l)}else l.startsWith(k)&&(d.push({type:6,index:i}),r.removeAttribute(l));if(Mt.test(r.tagName)){let l=r.textContent.split(k),A=l.length-1;if(A>0){r.textContent=_e?_e.emptyScript:"";for(let f=0;f<A;f++)r.append(l[f],Y()),H.nextNode(),d.push({type:2,index:++i});r.append(l[A],Y())}}}else if(r.nodeType===8)if(r.data===Ye)d.push({type:2,index:i});else{let l=-1;for(;(l=r.data.indexOf(k,l+1))!==-1;)d.push({type:7,index:i}),l+=k.length-1}i++}}static createElement(e,n){let s=V.createElement("template");return s.innerHTML=e,s}};function R(t,e,n=t,s){if(e===N)return e;let r=s!==void 0?n._$Co?.[s]:n._$Cl,i=X(e)?void 0:e._$litDirective$;return r?.constructor!==i&&(r?._$AO?.(!1),i===void 0?r=void 0:(r=new i(t),r._$AT(t,n,s)),s!==void 0?(n._$Co??(n._$Co=[]))[s]=r:n._$Cl=r),r!==void 0&&(e=R(t,r._$AS(t,e.values),r,s)),e}var xe=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:s}=this._$AD,r=(e?.creationScope??V).importNode(n,!0);H.currentNode=r;let i=H.nextNode(),o=0,p=0,d=s[0];for(;d!==void 0;){if(o===d.index){let u;d.type===2?u=new z(i,i.nextSibling,this,e):d.type===1?u=new d.ctor(i,d.name,d.strings,this,e):d.type===6&&(u=new Ce(i,this,e)),this._$AV.push(u),d=s[++p]}o!==d?.index&&(i=H.nextNode(),o++)}return H.currentNode=V,r}p(e){let n=0;for(let s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(e,s,n),n+=s.strings.length-2):s._$AI(e[n])),n++}},z=class t{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,n,s,r){this.type=2,this._$AH=b,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=s,this.options=r,this._$Cv=r?.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=R(this,e,n),X(e)?e===b||e==null||e===""?(this._$AH!==b&&this._$AR(),this._$AH=b):e!==this._$AH&&e!==N&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Pt(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!==b&&X(this._$AH)?this._$AA.nextSibling.data=e:this.T(V.createTextNode(e)),this._$AH=e}$(e){let{values:n,_$litType$:s}=e,r=typeof s=="number"?this._$AC(e):(s.el===void 0&&(s.el=Q.createElement(Vt(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===r)this._$AH.p(n);else{let i=new xe(r,this),o=i.u(this.options);i.p(n),this.T(o),this._$AH=i}}_$AC(e){let n=Ot.get(e.strings);return n===void 0&&Ot.set(e.strings,n=new Q(e)),n}k(e){Xe(this._$AH)||(this._$AH=[],this._$AR());let n=this._$AH,s,r=0;for(let i of e)r===n.length?n.push(s=new t(this.O(Y()),this.O(Y()),this,this.options)):s=n[r],s._$AI(i),r++;r<n.length&&(this._$AR(s&&s._$AB.nextSibling,r),n.length=r)}_$AR(e=this._$AA.nextSibling,n){for(this._$AP?.(!1,!0,n);e!==this._$AB;){let s=e.nextSibling;e.remove(),e=s}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},D=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,n,s,r,i){this.type=1,this._$AH=b,this._$AN=void 0,this.element=e,this.name=n,this._$AM=r,this.options=i,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=b}_$AI(e,n=this,s,r){let i=this.strings,o=!1;if(i===void 0)e=R(this,e,n,0),o=!X(e)||e!==this._$AH&&e!==N,o&&(this._$AH=e);else{let p=e,d,u;for(e=i[0],d=0;d<i.length-1;d++)u=R(this,p[s+d],n,d),u===N&&(u=this._$AH[d]),o||(o=!X(u)||u!==this._$AH[d]),u===b?e=b:e!==b&&(e+=(u??"")+i[d+1]),this._$AH[d]=u}o&&!r&&this.j(e)}j(e){e===b?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},$e=class extends D{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===b?void 0:e}},Se=class extends D{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==b)}},Ae=class extends D{constructor(e,n,s,r,i){super(e,n,s,r,i),this.type=5}_$AI(e,n=this){if((e=R(this,e,n,0)??b)===N)return;let s=this._$AH,r=e===b&&s!==b||e.capture!==s.capture||e.once!==s.once||e.passive!==s.passive,i=e!==b&&(s===b||r);r&&this.element.removeEventListener(this.name,this,s),i&&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)}},Ce=class{constructor(e,n,s){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(e){R(this,e)}},Dt={M:Je,P:k,A:Ye,C:1,L:Rt,R:xe,D:Pt,V:R,I:z,H:D,N:Se,U:Ae,B:$e,F:Ce},zn=J.litHtmlPolyfillSupport;zn?.(Q,z),(J.litHtmlVersions??(J.litHtmlVersions=[])).push("3.3.1");var Ut=(t,e,n)=>{let s=n?.renderBefore??e,r=s._$litPart$;if(r===void 0){let i=n?.renderBefore??null;s._$litPart$=r=new z(e.insertBefore(Y(),i),i,void 0,n??{})}return r._$AI(t),r};var{I:Ts}=Dt;var Wt=t=>t.strings===void 0;var ee=(t,e)=>{let n=t._$AN;if(n===void 0)return!1;for(let s of n)s._$AO?.(e,!1),ee(s,e);return!0},Ee=t=>{let e,n;do{if((e=t._$AM)===void 0)break;n=e._$AN,n.delete(t),t=e}while(n?.size===0)},jt=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),Fn(e)}};function Bn(t){this._$AN!==void 0?(Ee(this),this._$AM=t,jt(this)):this._$AM=t}function qn(t,e=!1,n=0){let s=this._$AH,r=this._$AN;if(r!==void 0&&r.size!==0)if(e)if(Array.isArray(s))for(let i=n;i<s.length;i++)ee(s[i],!1),Ee(s[i]);else s!=null&&(ee(s,!1),Ee(s));else ee(this,t)}var Fn=t=>{t.type==we.CHILD&&(t._$AP??(t._$AP=qn),t._$AQ??(t._$AQ=Bn))},Te=class extends j{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,s){super._$AT(e,n,s),jt(this),this.isConnected=e._$AU}_$AO(e,n=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),n&&(ee(this,e),Ee(this))}setValue(e){if(Wt(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 Le=class extends Te{_$Sl(){if(this._$Su!==void 0)return;this._$SW=new x.Computed((()=>{var n;return(n=this._$Sj)===null||n===void 0?void 0:n.get()}));let e=this._$Su=new x.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(x.subtle.untrack((()=>{var e;return(e=this._$SW)===null||e===void 0?void 0:e.get()})))}render(e){return x.subtle.untrack((()=>e.get()))}update(e,[n]){var s,r;return(s=this._$SO)!==null&&s!==void 0||(this._$SO=(r=e.options)===null||r===void 0?void 0:r.host),n!==this._$Sj&&this._$Sj!==void 0&&this._$Sp(),this._$Sj=n,this._$Sl(),x.subtle.untrack((()=>this._$SW.get()))}disconnected(){this._$Sp()}reconnected(){this._$Sl()}},et=Z(Le);var tt=t=>(e,...n)=>t(e,...n.map((s=>s instanceof x.State||s instanceof x.Computed?et(s):s))),Gn=tt(a),Zn=tt(Ht);var Zs=x.State,Ks=x.Computed,zt=(t,e)=>new x.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 B=zt(Kn());function Bt(t){if(t!==B.get()&&(B.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=B.get(),e=window.document?.documentElement;e&&(e.classList.remove("light-theme","dark-theme"),e.classList.add(`${t}-theme`))}var ke=globalThis,Ne=ke.ShadowRoot&&(ke.ShadyCSS===void 0||ke.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,nt=Symbol(),qt=new WeakMap,te=class{constructor(e,n,s){if(this._$cssResult$=!0,s!==nt)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(Ne&&e===void 0){let s=n!==void 0&&n.length===1;s&&(e=qt.get(n)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),s&&qt.set(n,e))}return e}toString(){return this.cssText}},Ft=t=>new te(typeof t=="string"?t:t+"",void 0,nt),y=(t,...e)=>{let n=t.length===1?t[0]:e.reduce(((s,r,i)=>s+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+t[i+1]),t[0]);return new te(n,t,nt)},Gt=(t,e)=>{if(Ne)t.adoptedStyleSheets=e.map((n=>n instanceof CSSStyleSheet?n:n.styleSheet));else for(let n of e){let s=document.createElement("style"),r=ke.litNonce;r!==void 0&&s.setAttribute("nonce",r),s.textContent=n.cssText,t.appendChild(s)}},st=Ne?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(let s of e.cssRules)n+=s.cssText;return Ft(n)})(t):t;var{is:Jn,defineProperty:Yn,getOwnPropertyDescriptor:Xn,getOwnPropertyNames:Qn,getOwnPropertySymbols:es,getPrototypeOf:ts}=Object,O=globalThis,Zt=O.trustedTypes,ns=Zt?Zt.emptyScript:"",ss=O.reactiveElementPolyfillSupport,ne=(t,e)=>t,rt={toAttribute(t,e){switch(e){case Boolean:t=t?ns: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}},Jt=(t,e)=>!Jn(t,e),Kt={attribute:!0,type:String,converter:rt,reflect:!1,useDefault:!1,hasChanged:Jt};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),O.litPropertyMetadata??(O.litPropertyMetadata=new WeakMap);var I=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=Kt){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 s=Symbol(),r=this.getPropertyDescriptor(e,s,n);r!==void 0&&Yn(this.prototype,e,r)}}static getPropertyDescriptor(e,n,s){let{get:r,set:i}=Xn(this.prototype,e)??{get(){return this[n]},set(o){this[n]=o}};return{get:r,set(o){let p=r?.call(this);i?.call(this,o),this.requestUpdate(e,p,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Kt}static _$Ei(){if(this.hasOwnProperty(ne("elementProperties")))return;let e=ts(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(ne("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ne("properties"))){let n=this.properties,s=[...Qn(n),...es(n)];for(let r of s)this.createProperty(r,n[r])}let e=this[Symbol.metadata];if(e!==null){let n=litPropertyMetadata.get(e);if(n!==void 0)for(let[s,r]of n)this.elementProperties.set(s,r)}this._$Eh=new Map;for(let[n,s]of this.elementProperties){let r=this._$Eu(n,s);r!==void 0&&this._$Eh.set(r,n)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let n=[];if(Array.isArray(e)){let s=new Set(e.flat(1/0).reverse());for(let r of s)n.unshift(st(r))}else e!==void 0&&n.push(st(e));return n}static _$Eu(e,n){let s=n.attribute;return s===!1?void 0:typeof s=="string"?s: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 s of n.keys())this.hasOwnProperty(s)&&(e.set(s,this[s]),delete this[s]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Gt(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,s){this._$AK(e,s)}_$ET(e,n){let s=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,s);if(r!==void 0&&s.reflect===!0){let i=(s.converter?.toAttribute!==void 0?s.converter:rt).toAttribute(n,s.type);this._$Em=e,i==null?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(e,n){let s=this.constructor,r=s._$Eh.get(e);if(r!==void 0&&this._$Em!==r){let i=s.getPropertyOptions(r),o=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:rt;this._$Em=r;let p=o.fromAttribute(n,i.type);this[r]=p??this._$Ej?.get(r)??p,this._$Em=null}}requestUpdate(e,n,s){if(e!==void 0){let r=this.constructor,i=this[e];if(s??(s=r.getPropertyOptions(e)),!((s.hasChanged??Jt)(i,n)||s.useDefault&&s.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(r._$Eu(e,s))))return;this.C(e,n,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,n,{useDefault:s,reflect:r,wrapped:i},o){s&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,o??n??this[e]),i!==!0||o!==void 0)||(this._$AL.has(e)||(this.hasUpdated||s||(n=void 0),this._$AL.set(e,n)),r===!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[r,i]of this._$Ep)this[r]=i;this._$Ep=void 0}let s=this.constructor.elementProperties;if(s.size>0)for(let[r,i]of s){let{wrapped:o}=i,p=this[r];o!==!0||this._$AL.has(r)||p===void 0||this.C(r,void 0,i,p)}}let e=!1,n=this._$AL;try{e=this.shouldUpdate(n),e?(this.willUpdate(n),this._$EO?.forEach((s=>s.hostUpdate?.())),this.update(n)):this._$EM()}catch(s){throw e=!1,this._$EM(),s}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){}};I.elementStyles=[],I.shadowRootOptions={mode:"open"},I[ne("elementProperties")]=new Map,I[ne("finalized")]=new Map,ss?.({ReactiveElement:I}),(O.reactiveElementVersions??(O.reactiveElementVersions=[])).push("2.1.1");var se=globalThis,h=class extends I{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=Ut(n,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return N}};h._$litElement$=!0,h.finalized=!0,se.litElementHydrateSupport?.({LitElement:h});var rs=se.litElementPolyfillSupport;rs?.({LitElement:h});(se.litElementVersions??(se.litElementVersions=[])).push("4.2.1");var re=class extends h{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=fe(this.key):this._notionText=this.defaultText||this.fallback||null,this.requestUpdate()}render(){return a`
4
4
  <button
5
5
  class=${this.variant}
6
6
  ?disabled=${this.disabled}
@@ -8,9 +8,9 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
8
8
  ?no-background=${this["no-background"]}
9
9
  @click=${this._handleClick}
10
10
  >
11
- ${this._notionText?this._notionText:o`<slot></slot>`}
11
+ ${this._notionText?this._notionText:a`<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}}};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=y`
14
14
  button {
15
15
  max-height: calc(var(--08) * var(--scaling-factor));
16
16
  border: none;
@@ -60,15 +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`
64
- :host {
65
- display: inline;
66
- }
67
-
68
- .loading {
69
- opacity: 0.6;
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`
63
+ `;customElements.define("ds-button",re);var ie=class extends j{constructor(e){if(super(e),this.it=b,e.type!==we.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===b||e==null)return this._t=void 0,this.it=e;if(e===N)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:[]}}};ie.directiveName="unsafeHTML",ie.resultType=1;var Yt=Z(ie);var q=class t extends h{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"),a`<div class="icon-container"><slot></slot></div>`;let e=t.iconNameToSvgMap[this._type.toLowerCase()];if(e)return a`<div class="icon-container">${Yt(e)}</div>`;switch(this._type.toLowerCase()){case"close":return console.log("Rendering close icon"),a`
72
64
  <div class="icon-container">
73
65
  <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
74
66
  <path
@@ -76,7 +68,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
76
68
  />
77
69
  </svg>
78
70
  </div>
79
- `;case"page":return console.log("Rendering page icon"),o`
71
+ `;case"page":return console.log("Rendering page icon"),a`
80
72
  <div class="icon-container">
81
73
  <svg viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
82
74
  <rect
@@ -91,7 +83,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
91
83
  />
92
84
  </svg>
93
85
  </div>
94
- `;case"note":return console.log("Rendering note icon"),o`
86
+ `;case"note":return console.log("Rendering note icon"),a`
95
87
  <div class="icon-container">
96
88
  <svg viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
97
89
  <rect
@@ -110,7 +102,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
110
102
  />
111
103
  </svg>
112
104
  </div>
113
- `;case"default":return console.log("Rendering default icon"),o`
105
+ `;case"default":return console.log("Rendering default icon"),a`
114
106
  <div class="icon-container">
115
107
  <svg
116
108
  width="17"
@@ -137,7 +129,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
137
129
  />
138
130
  </svg>
139
131
  </div>
140
- `;case"big":return console.log("Rendering big icon"),o`
132
+ `;case"big":return console.log("Rendering big icon"),a`
141
133
  <div class="icon-container">
142
134
  <svg
143
135
  width="17"
@@ -176,7 +168,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
176
168
  </defs>
177
169
  </svg>
178
170
  </div>
179
- `;case"gallery":return console.log("Rendering gallery icon"),o`
171
+ `;case"gallery":return console.log("Rendering gallery icon"),a`
180
172
  <div class="icon-container">
181
173
  <svg
182
174
  width="17"
@@ -211,7 +203,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
211
203
  </defs>
212
204
  </svg>
213
205
  </div>
214
- `;case"check":return console.log("Rendering check icon"),o`
206
+ `;case"check":return console.log("Rendering check icon"),a`
215
207
  <div class="icon-container">
216
208
  <svg
217
209
  viewBox="0 0 17 17"
@@ -230,7 +222,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
230
222
  />
231
223
  </svg>
232
224
  </div>
233
- `;default:return console.log(`Unknown icon type: ${this._type}, rendering default slot`),o`<div class="icon-container"><slot></slot></div>`}}updated(e){console.log("Icon updated",e),this.style.setProperty("--icon-size",this.size),this.style.setProperty("--icon-color",this.color),this.style.setProperty("--icon-background",this.background)}render(){return console.log("Icon render",this._type),this.renderIcon()}};B.properties={type:{type:String,reflect:!0}};B.styles=c`
225
+ `;default:return console.log(`Unknown icon type: ${this._type}, rendering default slot`),a`<div class="icon-container"><slot></slot></div>`}}updated(e){console.log("Icon updated",e),this.style.setProperty("--icon-size",this.size),this.style.setProperty("--icon-color",this.color),this.style.setProperty("--icon-background",this.background)}render(){return console.log("Icon render",this._type),this.renderIcon()}};q.properties={type:{type:String,reflect:!0}};q.styles=y`
234
226
  :host {
235
227
  display: inline-flex;
236
228
  justify-content: center;
@@ -261,29 +253,9 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
261
253
  :host {
262
254
  --notes-style-color: #ffb6b9;
263
255
  }
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`
265
- <a href="${this.href}" target="_blank" rel="noopener noreferrer">
266
- ${this._text}
267
- <ds-icon type="open"></ds-icon>
268
- </a>
269
- `:o`<span>${this._text}</span>`}};Ae.styles=c`
270
- :host {
271
- display: inline;
272
- font-family: var(--typeface);
273
- }
274
-
275
- a {
276
- color: inherit;
277
- text-decoration: none;
278
- }
279
-
280
- ds-icon {
281
- display: inline-block;
282
- vertical-align: middle;
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`
256
+ `;q.iconNameToSvgMap=(()=>{try{let t=import.meta.glob("../x Icon/*.svg",{as:"raw",eager:!0}),e={};for(let[n,s]of Object.entries(t)){let i=(n.split("/").pop()??"").replace(/\.svg$/i,"").toLowerCase();i&&(e[i]=s)}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",q);console.log("Icon component registered with custom elements registry");var is=t=>{localStorage.setItem("accentColor",t)},ot=()=>localStorage.getItem("accentColor")||"--blue",it=()=>{let t=ot();document.documentElement.style.setProperty("--accent-color",`var(${t})`)},os=t=>{localStorage.setItem("notesStyleMedium",t)},Xt=()=>localStorage.getItem("notesStyleMedium")||"note",Qt=t=>{localStorage.setItem("pageStyle",t)},oe=()=>localStorage.getItem("pageStyle")||"note",Ie=class extends h{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=De();this.values=e,this.currentValue=L.value,this.label=this.getLabel()}else if(this.type==="theme"){this.values=["light","dark"];let e=B.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=ot();this.currentValue=e,it(),this.label=this.getLabel()}else if(this.type==="notes-style-medium"){this.values=["default","big","gallery"];let e=Xt();this.currentValue=e;let n=oe();this.disabled=n==="note",this.label=this.getLabel()}else if(this.type==="page-style"){this.values=["note","page"];let e=oe();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 s=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";localStorage.setItem("theme",s),document.documentElement.classList.add(`${s}-theme`)}}attributeChangedCallback(e,n,s){super.attributeChangedCallback(e,n,s),e==="type"&&n!==s&&this.initializeValues()}async setupInitialValue(){if(this.type==="language"){let e=L.value;this.currentValue=e,this.label=this.getLabel()}else if(this.type==="theme"){let e=B.get();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="accent-color"){let e=ot();this.currentValue=e,it(),this.label=this.getLabel()}else if(this.type==="notes-style-medium"){let e=Xt();this.currentValue=e;let n=oe();this.disabled=n==="note",this.label=this.getLabel()}else if(this.type==="page-style"){let e=oe();this.currentValue=e,this.label=this.getLabel()}else if(this.type==="icon-only"){let e=oe();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 s=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[s];this.currentValue=r,document.startViewTransition?document.startViewTransition(()=>{Ue(r)}):Ue(r),P({language:r}),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:r}}))}else if(this.type==="theme"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[s];this.currentValue=r,Bt(r),P({theme:r})}else if(this.type==="accent-color"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[s];this.currentValue=r,is(r),it(),P({accentColor:r}),window.dispatchEvent(new CustomEvent("accent-color-changed",{detail:{color:r}}))}else if(this.type==="notes-style-medium"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[s];this.currentValue=r,os(r),P({notesStyleMedium:r}),window.dispatchEvent(new CustomEvent("notes-style-medium-changed",{detail:{style:r}}))}else if(this.type==="page-style"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[s];this.currentValue=r,Qt(r),P({pageStyle:r}),window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:r}}))}else if(this.type==="icon-only"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,r=this.values[s];this.currentValue=r,Qt(r),P({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 wt(e,{locale:L.value});if(this.type==="theme"){if(this.translationsReady){let n=T(`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=T(e==="note"?"note":"page");if(n&&n!==(e==="note"?"note":"page"))return n}return e}else if(this.type==="icon-only")return e==="note"?a`<ds-icon type="note"></ds-icon>`:e==="page"?a`<ds-icon type="page"></ds-icon>`:a`<span>${e}</span>`}return e}getColorName(e){let s={"--red":"red","--orange":"orange","--yellow":"yellow","--light-green":"lightGreen","--green":"green","--light-blue":"lightBlue","--blue":"blue","--pink":"pink"}[e];if(s&&this.translationsReady){let r=T(s);if(r&&r!==s)return r}return e.replace("--","").replace("-"," ")}getNotesStyleIcon(e){return e==="page"?a`<ds-icon type="page"></ds-icon>`:e==="note"?a`<ds-icon type="note"></ds-icon>`:e==="default"?a`<ds-icon type="default"></ds-icon>`:e==="big"?a`<ds-icon type="big"></ds-icon>`:e==="gallery"?a`<ds-icon type="gallery"></ds-icon>`:a`<span>${e}</span>`}getLabel(){if(this.type==="language"){if(this.translationsReady){let e=T("language");if(e&&e!=="language")return e}return"Language"}else if(this.type==="theme"){if(this.translationsReady){let e=T("theme");if(e&&e!=="theme")return e}return"Theme"}else if(this.type==="accent-color"){if(this.translationsReady){let e=T("accentColor");if(e&&e!=="accentColor")return e}return"Accent Color"}else if(this.type==="notes-style-medium"){if(this.translationsReady){let e=T("notesStyle");if(e&&e!=="notesStyle")return e}return"Notes Style"}else if(this.type==="page-style"){if(this.translationsReady){let e=T("clickingItem");if(e&&e!=="clickingItem")return e}return"Clic"}else if(this.type==="icon-only")return"";return this.label}render(){return a`
285
257
  <div class="cycle-container">
286
- ${this.type!=="icon-only"?o`<span class="cycle-label">${this.label}</span>`:""}
258
+ ${this.type!=="icon-only"?a`<span class="cycle-label">${this.label}</span>`:""}
287
259
  <div
288
260
  style="display: flex; align-items: center; ${this.type==="icon-only"?"justify-content: center;":""}"
289
261
  >
@@ -292,12 +264,12 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
292
264
  ?disabled=${this.disabled}
293
265
  @click=${this.handleButtonClick}
294
266
  >
295
- ${this.type==="notes-style-medium"||this.type==="icon-only"?o`<span
267
+ ${this.type==="notes-style-medium"||this.type==="icon-only"?a`<span
296
268
  style="display: inline-flex; align-items: center; gap: var(--025)"
297
269
  >${this.getValueDisplay(this.currentValue)}</span
298
- >`:o`<span>${this.getValueDisplay(this.currentValue)}</span>`}
270
+ >`:a`<span>${this.getValueDisplay(this.currentValue)}</span>`}
299
271
  </ds-button>
300
- ${this.type==="accent-color"?o`
272
+ ${this.type==="accent-color"?a`
301
273
  <div
302
274
  class="color-preview"
303
275
  style="background-color: var(${this.currentValue})"
@@ -305,7 +277,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
305
277
  `:""}
306
278
  </div>
307
279
  </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`
280
+ `}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=De();this.values=e}this.setupInitialValue()}handleLanguageChanged(){this.setupInitialValue()}handleThemeChanged(){this.setupInitialValue()}handleAccentColorChanged(){this.setupInitialValue()}handleNoteBehaviorChanged(){this.setupInitialValue()}};Ie.styles=y`
309
281
  .cycle-container {
310
282
  display: flex;
311
283
  justify-content: space-between;
@@ -316,10 +288,18 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
316
288
  .cycle-label {
317
289
  color: var(--text-color-primary);
318
290
  }
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`
291
+ `;customElements.define("ds-cycle",Ie);var Oe=class extends h{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=fe(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 a`<span>${this._text||this.defaultValue||this.key}</span>`}};Oe.styles=y`
292
+ :host {
293
+ display: inline;
294
+ }
295
+
296
+ .loading {
297
+ opacity: 0.6;
298
+ }
299
+ `;customElements.define("ds-text",Oe);var ae=class extends h{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 _t(this.key);if(e){this._text=e,this.requestUpdate();return}let n=T(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 a`
320
300
  <span class="slot-wrapper"><slot></slot></span>
321
- ${this._text?o`<div class="${e}">${this._text}</div>`:null}
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`
301
+ ${this._text?a`<div class="${e}">${this._text}</div>`:null}
302
+ `}};ae.properties={key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{state:!0},_visible:{state:!0}};ae.styles=y`
323
303
  :host {
324
304
  position: relative;
325
305
  display: inline-block;
@@ -342,7 +322,9 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
342
322
  pointer-events: none;
343
323
  height: calc(var(--08) * var(--scaling-factor));
344
324
  opacity: 0;
345
- transition: opacity 120ms ease, transform 120ms ease;
325
+ transition:
326
+ opacity 120ms ease,
327
+ transform 120ms ease;
346
328
  background-color: light-dark(var(--black), var(--white));
347
329
  color: light-dark(var(--white), var(--black));
348
330
  border-radius: 0;
@@ -364,599 +346,21 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
364
346
  .bubble.visible {
365
347
  opacity: 1;
366
348
  }
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":""}"
368
- >${this._label}</span
369
- >`}};Ue.styles=c`
370
- :host {
371
- display: inline;
372
- }
373
- .loading {
374
- opacity: 0.6;
375
- }
376
- `;customElements.define("ds-price",Ue);var Re;customElements.define("ds-markdown",(Re=class extends l{constructor(){super(...arguments),this.content="",this.title="",this.language="",this.guideId=""}render(){return this.content?o`
377
- <div class="markdown-container">
378
- ${this.title?o`
379
- <div class="markdown-header">
380
- <h1 class="markdown-title">${this.title}</h1>
381
- <div class="markdown-meta">
382
- ${this.language?o`
383
- <span class="markdown-category"
384
- >${this.language}</span
385
- >
386
- `:""}
387
- ${this.guideId?o`
388
- <span class="markdown-tag"
389
- >Guide ID: ${this.guideId}</span
390
- >
391
- `:""}
392
- </div>
393
- </div>
394
- `:""}
395
- <div class="markdown-content">
396
- ${this.renderMarkdown(this.content)}
397
- </div>
398
- </div>
399
- `:o`<div class="markdown-container">
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`
402
- :host {
403
- display: block;
404
- font-family:
405
- -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
406
- Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
407
- line-height: 1.6;
408
- color: #333;
409
- }
410
-
411
- .markdown-container {
412
- max-width: 800px;
413
- margin: 0 auto;
414
- }
415
-
416
- .markdown-header {
417
- padding-bottom: 1rem;
418
- }
419
-
420
- .markdown-title {
421
- font-weight: 700;
422
- margin: 0 0 0.5rem 0;
423
- color: #2c3e50;
424
- }
425
-
426
- .markdown-meta {
427
- display: flex;
428
- gap: 1rem;
429
- font-size: 0.9rem;
430
- color: #666;
431
- flex-wrap: wrap;
432
- }
433
-
434
- .markdown-category {
435
- background: #e3f2fd;
436
- color: #1976d2;
437
- padding: 0.25rem 0.5rem;
438
- border-radius: 4px;
439
- font-weight: 500;
440
- }
441
-
442
- .markdown-tags {
443
- display: flex;
444
- gap: 0.5rem;
445
- flex-wrap: wrap;
446
- }
447
-
448
- .markdown-tag {
449
- background: #f5f5f5;
450
- color: #666;
451
- padding: 0.25rem 0.5rem;
452
- border-radius: 4px;
453
- font-size: 0.8rem;
454
- }
455
-
456
- .markdown-content {
457
- font-size: 1rem;
458
- }
459
-
460
- .markdown-content h1,
461
- .markdown-content h2,
462
- .markdown-content h3,
463
- .markdown-content h4,
464
- .markdown-content h5,
465
- .markdown-content h6 {
466
- margin-bottom: 1rem;
467
- font-weight: 600;
468
- line-height: 1.3;
469
- }
470
-
471
- .markdown-content h1 {
472
- font-size: 1.8rem;
473
- color: #2c3e50;
474
- }
475
-
476
- .markdown-content h2 {
477
- font-size: 1.5rem;
478
- color: #34495e;
479
- }
480
-
481
- .markdown-content h3 {
482
- font-size: 1.3rem;
483
- color: #2c3e50;
484
- }
485
-
486
- .markdown-content h4 {
487
- font-size: 1.1rem;
488
- color: #34495e;
489
- }
490
-
491
- .markdown-content p {
492
- margin-bottom: 1rem;
493
- line-height: 1.7;
494
- }
495
-
496
- .markdown-content ul,
497
- .markdown-content ol {
498
- }
499
-
500
- .markdown-content li {
501
- margin-bottom: 0.5rem;
502
- }
503
-
504
- .markdown-content blockquote {
505
- border-left: 4px solid #3498db;
506
- padding-left: 1rem;
507
- margin: 1.5rem 0;
508
- font-style: italic;
509
- color: #555;
510
- }
511
-
512
- .markdown-content code {
513
- background: #f8f9fa;
514
- padding: 0.2rem 0.4rem;
515
- border-radius: 3px;
516
- font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace;
517
- font-size: 0.9em;
518
- }
519
-
520
- .markdown-content pre {
521
- background: #f8f9fa;
522
- padding: 1rem;
523
- border-radius: 5px;
524
- overflow-x: auto;
525
- margin: 1.5rem 0;
526
- }
527
-
528
- .markdown-content pre code {
529
- background: none;
530
- padding: 0;
531
- }
532
-
533
- .markdown-content table {
534
- width: 100%;
535
- border-collapse: collapse;
536
- margin: 1.5rem 0;
537
- }
538
-
539
- .markdown-content th,
540
- .markdown-content td {
541
- padding: 0.75rem;
542
- text-align: left;
543
- }
544
-
545
- .markdown-content th {
546
- background: #f8f9fa;
547
- font-weight: 600;
548
- }
549
-
550
- .markdown-content a {
551
- color: #3498db;
552
- text-decoration: none;
553
- }
554
-
555
- .markdown-content a:hover {
556
- text-decoration: underline;
557
- }
558
-
559
- .markdown-content img {
560
- max-width: 100%;
561
- height: auto;
562
- margin: 1rem 0;
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`
565
- <div class="hover-fill"></div>
566
- <div
567
- class="home ${e?"is-disabled":"is-active"}"
568
- role="button"
569
- aria-disabled="${String(e)}"
570
- tabindex="${e?-1:0}"
571
- @click="${this._navigateHome}"
572
- @keydown="${this._onKeyDown}"
573
- >
574
- <ds-text key="home"></ds-text>
575
- </div>
576
- `}};de.properties={state:{type:String,reflect:!0}};de.styles=c`
577
- :host {
578
- /* local sizing vars, derived from one.css */
579
- --home-visible: calc(var(--1) * 0.1); /* 2px */
580
-
581
- position: relative;
582
- display: flex; /* expand hover zone horizontally */
583
- width: 100%; /* take the whole row width of the app container */
584
- height: calc(
585
- var(--1) * var(--scaling-factor)
586
- ); /* provide hover zone under the tab */
587
- font-family: var(--typeface);
588
- overflow: hidden; /* hide the part above the host */
589
- }
590
-
591
- /* Disabled: preserve full hover area space but keep inactive */
592
- :host([state="disabled"]) {
593
- height: var(--1); /* keep same layout height as active */
594
- overflow: hidden;
595
- }
596
-
597
- .home {
598
- position: absolute;
599
- left: 0;
600
- width: calc(var(--4) * var(--scaling-factor));
601
- height: calc(var(--1) * var(--scaling-factor));
602
- margin: 0 calc(var(--1) * var(--scaling-factor));
603
- display: flex;
604
- align-items: center;
605
- background: var(--accent-color);
606
- color: light-dark(var(--black), var(--black));
607
- user-select: none;
608
- transition: top 120ms ease;
609
- }
610
-
611
- /* Inner text spacing without affecting the 80px outer width */
612
- .home > ds-text {
613
- padding: 0 calc(var(--1) * 0.15 * var(--scaling-factor));
614
- box-sizing: border-box;
615
- height: 100%;
616
- display: inline-flex;
617
- align-items: center;
618
- }
619
-
620
- /* invisible flex filler to extend hover area to the right */
621
- .hover-fill {
622
- flex: 1 1 auto;
623
- }
624
-
625
- /* Active: hidden until hover */
626
- .home.is-active {
627
- cursor: pointer;
628
- /* Hide above, leave a 2px strip visible */
629
- top: calc(var(--home-visible) - var(--1));
630
- }
631
-
632
- /* Reveal the tab when hovering anywhere in the host area
633
- (the host is 80x20, while the tab starts hidden above) */
634
- :host(:hover) .home.is-active {
635
- top: 0;
636
- }
637
-
638
- /* Disabled: stays hidden and not interactive */
639
- .home.is-disabled {
640
- top: calc(var(--home-visible) - var(--1));
641
- cursor: default;
642
- pointer-events: none;
643
- color: var(--accent-color);
644
- }
645
-
646
- .label {
647
- font-size: var(--type-size-default);
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`
349
+ `;customElements.define("ds-tooltip",ae);var Pe=class extends h{render(){let e=new Date().getFullYear();return a`<span>${e}</span>`}};Pe.styles=y`
650
350
  :host {
651
351
  display: inline;
652
352
  font-family: var(--typeface, var(--typeface-regular));
653
353
  font-size: inherit;
654
354
  color: inherit;
655
355
  }
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`
657
- :host {
658
- display: flex;
659
- padding: calc(2px * var(--scaling-factor));
660
- align-items: flex-start;
661
- }
662
-
663
- h1 {
664
- display: block;
665
- place-content: center;
666
- font-family: var(--typeface);
667
- color: light-dark(var(--black), var(--white));
668
- font-size: calc(36px * var(--scaling-factor));
669
- font-weight: 500;
670
- align-items: center;
671
- letter-spacing: -0.72px;
672
- margin: 0;
673
- height: 45px;
674
- }
675
-
676
- ::slotted(*) {
677
- margin: 0;
678
- width: 100%;
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`
681
- <h2
682
- style="display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; width: 100%;"
683
- >
684
- <slot></slot>
685
- </h2>
686
- `}};ze.styles=c`
687
- :host {
688
- display: flex;
689
- padding: calc(2px * var(--scaling-factor));
690
- align-items: flex-start;
691
- width: 100%;
692
- }
693
-
694
- h2 {
695
- display: flex;
696
- place-content: center;
697
- font-family: var(--typeface);
698
- color: light-dark(var(--black), var(--white));
699
- align-items: center;
700
- font-weight: 500;
701
- font-size: calc(14px * var(--scaling-factor));
702
- margin: 0;
703
- width: 100%;
704
- }
705
-
706
- ::slotted(*) {
707
- margin: 0;
708
- }
709
- `;customElements.define("ds-header",ze);var Be=class extends l{static get properties(){return{year:{type:String,reflect:!0},category:{type:String,reflect:!0},status:{type:String,reflect:!0},type:{type:String,reflect:!0}}}constructor(){super(),this.year="",this.category="",this.status="",this.type="project",this.boundHandlers={languageChanged:(()=>{this.requestUpdate()})}}connectedCallback(){super.connectedCallback(),window.addEventListener("language-changed",this.boundHandlers.languageChanged)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("language-changed",this.boundHandlers.languageChanged)}_getStatusClass(e){return e.includes("Done")?"done":e.includes("Ongoing")?"ongoing":e.includes("Pending")?"pending":e.includes("NotStarted")?"not-started":"pending"}render(){return o`
710
- ${this.year?o`
711
- <div class="attribute-row">${x(this.year)||this.year}</div>
712
- `:""}
713
- ${this.category?o`
714
- <div class="attribute-row">
715
- ${this.type==="work"?o`<span
716
- class="status-indicator ${this._getStatusClass(this.status)}"
717
- ></span>`:""}
718
- ${x(this.category)||this.category}
719
- </div>
720
- `:""}
721
- ${this.status&&this.type==="project"?o`
722
- <div class="attribute-row">
723
- <span
724
- class="status-indicator ${this._getStatusClass(this.status)}"
725
- ></span>
726
- ${x(this.status)||this.status}
727
- </div>
728
- `:""}
729
- `}};Be.styles=c`
730
- :host {
731
- display: flex;
732
- flex-direction: row;
733
- gap: calc(16px * var(--scaling-factor));
734
- align-items: flex-start;
735
- }
736
-
737
- .attribute-row {
738
- display: inline-flex;
739
- height: calc(20px * var(--scaling-factor));
740
- padding: 0px calc(2px * var(--scaling-factor));
741
- align-items: flex-start;
742
- gap: calc(5px * var(--scaling-factor));
743
- font-family: var(--typeface);
744
- font-size: calc(14px * var(--scaling-factor));
745
- color: light-dark(var(--slate), var(--slate-dark));
746
- }
747
-
748
- .status-indicator {
749
- width: calc(8px * var(--scaling-factor));
750
- height: calc(8px * var(--scaling-factor));
751
- display: inline-block;
752
- transition:
753
- background 0.2s,
754
- border-radius 0.2s;
755
- }
756
-
757
- .status-indicator.done {
758
- background-color: green;
759
- }
760
-
761
- .status-indicator.ongoing {
762
- background-color: #30adec;
763
- }
764
-
765
- .status-indicator.pending {
766
- background-color: #f6c71c;
767
- }
768
-
769
- .status-indicator.not-started {
770
- background-color: #b1b4b9;
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`
773
- <ds-button
774
- variant="primary"
775
- .disabled=${e}
776
- default-text=${E("downloadCV")}
777
- @click=${()=>this._download()}
778
- ></ds-button>
779
- `}};he.properties={urlEn:{type:String,attribute:"url-en",reflect:!0},urlDa:{type:String,attribute:"url-da",reflect:!0},urlJa:{type:String,attribute:"url-ja",reflect:!0},filename:{type:String,reflect:!0},_activeUrl:{type:String,state:!0}};he.styles=c`
780
- :host {
781
- display: inline-flex;
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`
784
- <div class="container">
785
- ${this.imageToggle&&!this.externalToggle?o`<button @click="${this._toggleImage}" class="toggle-button">
786
- ${r}
787
- </button>`:""}
788
- ${e?o`<figure class="media ${n}">
789
- <img
790
- src="${this._currentImage}"
791
- alt="${this.alt||""}"
792
- loading="${this.priority?"eager":"lazy"}"
793
- fetchpriority="${this.priority?"high":"auto"}"
794
- decoding="async"
795
- @load="${this._handleImageLoad}"
796
- />
797
- </figure>`:o`<p class="copy ${n}">${this._text}</p>`}
798
- </div>
799
- `}};qe.styles=c`
800
- :host {
801
- display: block;
802
- font-family: var(--typeface);
803
- overflow-wrap: break-word;
804
- word-wrap: break-word;
805
- word-break: break-word;
806
- hyphens: auto;
807
- color: light-dark(var(--black), var(--white));
808
- line-height: calc(20px * var(--scaling-factor));
809
- padding: calc(2px * var(--scaling-factor));
810
- }
811
-
812
- .container {
813
- position: relative;
814
- width: min(100%, var(--image-only-width));
815
- }
816
-
817
- figure.media,
818
- .copy {
819
- margin: 0;
820
- width: 100%;
821
- overflow: hidden;
822
- display: block;
823
- margin-bottom: calc(8px * var(--scaling-factor));
824
- }
825
-
826
- .fade-in {
827
- animation: fade-in 0.25s ease;
828
- }
829
-
830
- @keyframes fade-in {
831
- from {
832
- opacity: 0;
833
- }
834
- to {
835
- opacity: 1;
836
- }
837
- }
838
-
839
- img {
840
- display: block;
841
- width: 100%;
842
- height: auto;
843
- opacity: 0;
844
- transition: opacity 0.2s ease-in-out;
845
- }
846
-
847
- img.loaded {
848
- opacity: 1;
849
- }
850
-
851
- .toggle-button {
852
- background: none;
853
- border: none;
854
- color: inherit;
855
- cursor: pointer;
856
- font-family: var(--typeface);
857
- font-size: calc(14px * var(--scaling-factor));
858
- margin-bottom: calc(8px * var(--scaling-factor));
859
- padding: 0;
860
- text-decoration: underline;
861
- }
862
-
863
- .toggle-button:hover {
864
- opacity: 0.7;
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`
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
869
- class="container"
870
- @click="${n=>{this._handleClick(n)}}"
871
- ></div>`;return this.type==="link"&&this.href?o`
872
- <a href="${this.href}" @click="${this._handleClick}">${e}</a>
873
- `:o`
874
- <div
875
- class="wrapper"
876
- @click="${n=>{this._handleClick(n)}}"
877
- >
878
- ${e}
879
- </div>
880
- `}};Ke.styles=c`
881
- :host {
882
- background-color: light-dark(var(--black), var(--white));
883
- display: block;
884
- width: calc(120px * var(--scaling-factor));
885
- height: calc(120px * var(--scaling-factor));
886
- cursor: pointer;
887
- pointer-events: auto;
888
- position: relative;
889
- z-index: 1;
890
- }
891
-
892
- :host([shape="circle"]) {
893
- border-radius: 9999px;
894
- }
895
-
896
- :host([shape="circle"]) .wrapper,
897
- :host([shape="circle"]) .container {
898
- border-radius: 9999px;
899
- }
900
-
901
- .wrapper {
902
- width: 100%;
903
- height: 100%;
904
- cursor: pointer;
905
- pointer-events: auto;
906
- }
907
-
908
- .container {
909
- width: 100%;
910
- height: 100%;
911
- background-color: inherit;
912
- cursor: pointer;
913
- pointer-events: auto;
914
- }
915
-
916
- .container:hover {
917
- opacity: 0.8;
918
- }
919
-
920
- a {
921
- display: block;
922
- width: 100%;
923
- height: 100%;
924
- text-decoration: none;
925
- cursor: pointer;
926
- pointer-events: auto;
927
- }
928
-
929
- :host([loading]) {
930
- animation: gentle-pulse 2s ease-in-out infinite;
931
- }
932
-
933
- @keyframes gentle-pulse {
934
- 0% {
935
- opacity: 1;
936
- }
937
- 50% {
938
- opacity: 0.7;
939
- }
940
- 100% {
941
- opacity: 1;
942
- }
943
- }
944
- `;customElements.define("ds-squarecircle",Ke);var Ge=class extends l{render(){return o`<slot></slot>`}};Ge.styles=c`
356
+ `;customElements.define("ds-date",Pe);var Me=class extends h{render(){return a`<slot></slot>`}};Me.styles=y`
945
357
  :host {
946
358
  display: flex;
947
359
  flex-direction: column;
948
360
  gap: 0;
949
361
  width: 100%;
950
362
  }
951
- `;customElements.define("ds-list",Ge);var Ze=class extends l{render(){return o`<slot></slot>`}};Ze.styles=c`
952
- :host {
953
- display: flex;
954
- flex-direction: row;
955
- height: var(--08);
956
- align-items: end;
957
- gap: var(--025);
958
- }
959
- `;customElements.define("ds-panel",Ze);var ue=class extends l{constructor(){super(),this.type="fill"}render(){return o`<slot></slot>`}};ue.properties={type:{type:String,reflect:!0}};ue.styles=c`
363
+ `;customElements.define("ds-list",Me);var le=class extends h{constructor(){super(),this.type="fill"}render(){return a`<slot></slot>`}};le.properties={type:{type:String,reflect:!0}};le.styles=y`
960
364
  :host {
961
365
  display: flex;
962
366
  align-items: end;
@@ -973,97 +377,27 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
973
377
  height: calc(var(--1) * var(--scaling-factor));
974
378
  gap: calc(var(--025) * var(--scaling-factor));
975
379
  }
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}">
978
- <ds-text key="${e.key}"></ds-text>
979
- <ds-icon type="right"></ds-icon>
980
- </a>
981
- `}getNavConfig(){switch(this.type){case"projects":return{href:"/projects",key:"projects"};case"work":return{href:"/",key:"workExperience"}}}};Je.styles=c`
982
- :host {
983
- display: flex;
984
- justify-content: end;
985
- gap: calc(5px * var(--scaling-factor));
986
- padding: calc(2px * var(--scaling-factor));
987
- align-items: center;
988
- }
989
-
990
- a {
991
- display: inline-flex;
992
- align-items: center;
993
- gap: calc(5px * var(--scaling-factor));
994
- text-decoration: none;
995
- color: inherit;
996
- }
997
- `;customElements.define("ds-singlenav",Je);var Ye=class extends l{static get properties(){return{previous:{type:String,reflect:!0},next:{type:String,reflect:!0},previousText:{type:String,reflect:!0,attribute:"previous-text"},nextText:{type:String,reflect:!0,attribute:"next-text"},overlay:{type:String,reflect:!0}}}constructor(){super(),this.previous="",this.next="",this.previousText="",this.nextText="",this.overlay=""}render(){return o`
998
- ${this.previous?o`
999
- <a href="${this.previous}" class="nav-previous">
1000
- <ds-icon type="left"></ds-icon>
1001
- <ds-text>${this.previousText||"Previous"}</ds-text>
1002
- </a>
1003
- `:o`<div></div>`}
1004
- ${this.next?o`
1005
- <a href="${this.next}" class="nav-next">
1006
- <ds-text>${this.nextText||"Next"}</ds-text>
1007
- <ds-icon type="right"></ds-icon>
1008
- </a>
1009
- `:o`<div></div>`}
1010
- `}};Ye.styles=c`
1011
- :host {
1012
- display: flex;
1013
- justify-content: space-between;
1014
- gap: calc(5px * var(--scaling-factor));
1015
- padding: calc(2px * var(--scaling-factor));
1016
- align-items: center;
1017
- }
1018
-
1019
- a {
1020
- display: inline-flex;
1021
- align-items: center;
1022
- gap: calc(5px * var(--scaling-factor));
1023
- text-decoration: none;
1024
- color: inherit;
1025
- }
1026
-
1027
- .nav-previous {
1028
- justify-self: start;
1029
- }
1030
-
1031
- .nav-next {
1032
- justify-self: end;
1033
- }
1034
-
1035
- .nav-previous ds-icon {
1036
- order: -1;
1037
- }
1038
-
1039
- .nav-next ds-icon {
1040
- padding-top: 3px;
1041
- }
1042
-
1043
- .nav-previous ds-icon {
1044
- padding-top: 3px;
1045
- }
1046
- `;customElements.define("ds-doublenav",Ye);var pe=class extends l{constructor(){super(),this.data=[],this.columns=["Product","Users","Retention"],this.showStatus=!0}render(){return o`
380
+ `;customElements.define("ds-row",le);var ce=class extends h{constructor(){super(),this.data=[],this.columns=["Product","Users","Retention"],this.showStatus=!0}render(){return a`
1047
381
  <div class="table-container">
1048
382
  <div class="table-header">
1049
383
 
1050
384
  <div class="header-cell product-cell">Product</div>
1051
385
  <div class="header-cell users-cell">Users</div>
1052
386
  <div class="header-cell retention-cell">Retention</div>
1053
- ${this.showStatus?o`<div class="header-cell">Status</div>`:""}
387
+ ${this.showStatus?a`<div class="header-cell">Status</div>`:""}
1054
388
  </div>
1055
389
  <div class="table-body">
1056
- ${this.data.map((e,n)=>o`
390
+ ${this.data.map((e,n)=>a`
1057
391
  <div class="data-cell product-cell">${e.product}</div>
1058
392
  <div class="data-cell users-cell">${e.users}</div>
1059
393
  <div class="data-cell retention-cell">${e.retention}</div>
1060
- ${this.showStatus?o`<div class="data-cell status-cell">
394
+ ${this.showStatus?a`<div class="data-cell status-cell">
1061
395
  ${e.status||"Pending"}
1062
396
  </div>`:""}
1063
397
  `)}
1064
398
  </div>
1065
399
  </div>
1066
- `}};pe.properties={data:{type:Array},columns:{type:Array},showStatus:{type:Boolean,attribute:"show-status"}};pe.styles=c`
400
+ `}};ce.properties={data:{type:Array},columns:{type:Array},showStatus:{type:Boolean,attribute:"show-status"}};ce.styles=y`
1067
401
  :host {
1068
402
  display: block;
1069
403
  width: 100%;
@@ -1146,7 +480,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1146
480
  grid-template-columns: 1fr 60px 60px 60px;
1147
481
  }
1148
482
  }
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`
483
+ `;customElements.define("ds-table",ce);var de=class extends h{constructor(){super(...arguments),this._isMobile=!1}connectedCallback(){if(super.connectedCallback(),this._isMobile=Ve(),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,s=.5,r=(n-1)*s,i=(e-r)/n;console.log(`[ds-grid] Mobile grid: ${n} columns \xD7 ${i.toFixed(2)}px + ${r}px gaps = ${e}px`),this.style.setProperty("--mobile-column-size",`${i}px`),this.style.setProperty("--mobile-gap",`${s}px`)}}updated(){this._isMobile?this.classList.add("mobile"):this.classList.remove("mobile")}render(){return a``}};de.properties={align:{type:String},_isMobile:{type:Boolean,state:!0}};de.styles=y`
1150
484
  :host {
1151
485
  margin-top: 0.5px !important;
1152
486
  margin-left: 0.5px !important;
@@ -1205,15 +539,15 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1205
539
  right: 0;
1206
540
  transform: none;
1207
541
  }
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`
542
+ `;customElements.define("ds-grid",de);var ue=class extends h{render(){let e=this.debug||this.mode==="debug",n=this.mode==="company";return a`
1209
543
  <slot></slot>
1210
- ${e?o`
544
+ ${e?a`
1211
545
  <div class="debug-overlay">
1212
- ${n?o`
546
+ ${n?a`
1213
547
  <div class="debug-area debug-header">header</div>
1214
548
  <div class="debug-area debug-content">content</div>
1215
549
  <div class="debug-area debug-footer">footer</div>
1216
- `:o`
550
+ `:a`
1217
551
  <div class="debug-area debug-square">square</div>
1218
552
  <div class="debug-area debug-title">title</div>
1219
553
  <div class="debug-area debug-header">header</div>
@@ -1224,7 +558,7 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1224
558
  `}
1225
559
  </div>
1226
560
  `:""}
1227
- `}};fe.properties={mode:{type:String},align:{type:String},debug:{type:Boolean}};fe.styles=c`
561
+ `}};ue.properties={mode:{type:String},align:{type:String},debug:{type:Boolean}};ue.styles=y`
1228
562
  :host {
1229
563
  display: grid;
1230
564
  grid-template-columns: 120px 480px 40px;
@@ -1368,35 +702,9 @@ function Qe(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1368
702
  grid-area: content;
1369
703
  border-color: rgba(71, 231, 71, 0.63);
1370
704
  }
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};
705
+ `;customElements.define("ds-layout",ue);export{re as Button,Ie as Cycle,Pe as DateComponent,ce as DsTable,de as Grid,q as Icon,ue as Layout,Me as List,le as Row,Oe as Text,ae as Tooltip,L as currentLanguage,B as currentTheme,Ve as detectMobileDevice,us as getAvailableLanguages,De as getAvailableLanguagesSync,yn as getBrowserLanguage,cn as getDeviceInfo,wt as getLanguageDisplayName,_t as getNotionText,gs as getPriceLabel,fe as getText,cs as hasTranslation,He as initDeviceDetection,hs as loadTranslations,P as savePreferences,Ue as setLanguage,ds as setNotionText,Bt as setTheme,T as translate};
1372
706
  /*! Bundled license information:
1373
707
 
1374
- @lit/reactive-element/css-tag.js:
1375
- (**
1376
- * @license
1377
- * Copyright 2019 Google LLC
1378
- * SPDX-License-Identifier: BSD-3-Clause
1379
- *)
1380
-
1381
- @lit/reactive-element/reactive-element.js:
1382
- lit-html/lit-html.js:
1383
- lit-element/lit-element.js:
1384
- lit-html/directive.js:
1385
- lit-html/directives/unsafe-html.js:
1386
- lit-html/async-directive.js:
1387
- (**
1388
- * @license
1389
- * Copyright 2017 Google LLC
1390
- * SPDX-License-Identifier: BSD-3-Clause
1391
- *)
1392
-
1393
- lit-html/is-server.js:
1394
- (**
1395
- * @license
1396
- * Copyright 2022 Google LLC
1397
- * SPDX-License-Identifier: BSD-3-Clause
1398
- *)
1399
-
1400
708
  signal-polyfill/dist/index.js:
1401
709
  (**
1402
710
  * @license
@@ -1432,11 +740,37 @@ signal-polyfill/dist/index.js:
1432
740
  * SPDX-License-Identifier: BSD-3-Clause
1433
741
  *)
1434
742
 
743
+ lit-html/directive.js:
744
+ lit-html/lit-html.js:
745
+ lit-html/async-directive.js:
746
+ @lit/reactive-element/reactive-element.js:
747
+ lit-element/lit-element.js:
748
+ lit-html/directives/unsafe-html.js:
749
+ (**
750
+ * @license
751
+ * Copyright 2017 Google LLC
752
+ * SPDX-License-Identifier: BSD-3-Clause
753
+ *)
754
+
1435
755
  lit-html/directive-helpers.js:
1436
756
  (**
1437
757
  * @license
1438
758
  * Copyright 2020 Google LLC
1439
759
  * SPDX-License-Identifier: BSD-3-Clause
1440
760
  *)
761
+
762
+ @lit/reactive-element/css-tag.js:
763
+ (**
764
+ * @license
765
+ * Copyright 2019 Google LLC
766
+ * SPDX-License-Identifier: BSD-3-Clause
767
+ *)
768
+
769
+ lit-html/is-server.js:
770
+ (**
771
+ * @license
772
+ * Copyright 2022 Google LLC
773
+ * SPDX-License-Identifier: BSD-3-Clause
774
+ *)
1441
775
  */
1442
776
  //# sourceMappingURL=ds-one.bundle.min.js.map