ds-one 0.2.5-alpha.17 → 0.2.5-alpha.19

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 (199) hide show
  1. package/DS1/0-face/device.ts +130 -0
  2. package/DS1/0-face/scaling.ts +152 -0
  3. package/DS1/1-root/one.css +48 -18
  4. package/DS1/2-core/ds-banner.ts +3 -77
  5. package/DS1/2-core/ds-button.ts +3 -67
  6. package/DS1/2-core/ds-card.ts +137 -0
  7. package/DS1/2-core/ds-cycle.ts +3 -22
  8. package/DS1/2-core/ds-date.ts +3 -9
  9. package/DS1/2-core/ds-gap.ts +3 -75
  10. package/DS1/2-core/ds-icon.ts +3 -33
  11. package/DS1/2-core/ds-input.ts +306 -1
  12. package/DS1/2-core/ds-pagedots.ts +52 -0
  13. package/DS1/2-core/ds-text.ts +3 -29
  14. package/DS1/2-core/ds-tooltip.ts +3 -49
  15. package/DS1/2-core/styles/ds-banner.css +77 -0
  16. package/DS1/2-core/styles/ds-button.css +67 -0
  17. package/DS1/2-core/styles/ds-cycle.css +21 -0
  18. package/DS1/2-core/styles/ds-date.css +9 -0
  19. package/DS1/2-core/styles/ds-gap.css +93 -0
  20. package/DS1/2-core/styles/ds-icon.css +30 -0
  21. package/DS1/2-core/styles/ds-input.css +46 -0
  22. package/DS1/2-core/styles/ds-pagedots.css +27 -0
  23. package/DS1/2-core/styles/ds-text.css +29 -0
  24. package/DS1/2-core/styles/ds-tooltip.css +49 -0
  25. package/DS1/3-unit/ds-accordion.ts +3 -46
  26. package/DS1/3-unit/ds-form.ts +304 -0
  27. package/DS1/3-unit/ds-list.ts +5 -14
  28. package/DS1/3-unit/ds-row.ts +3 -19
  29. package/DS1/3-unit/ds-table.ts +3 -85
  30. package/DS1/3-unit/styles/ds-accordion.css +46 -0
  31. package/DS1/3-unit/styles/ds-list.css +9 -0
  32. package/DS1/3-unit/styles/ds-row.css +19 -0
  33. package/DS1/3-unit/styles/ds-table.css +80 -0
  34. package/DS1/4-page/ds-container.ts +3 -35
  35. package/DS1/4-page/ds-grid.ts +3 -56
  36. package/DS1/4-page/ds-layout.ts +528 -50
  37. package/DS1/4-page/styles/ds-container.css +35 -0
  38. package/DS1/4-page/styles/ds-grid.css +56 -0
  39. package/DS1/4-page/styles/ds-layout.css +251 -0
  40. package/DS1/index.ts +7 -2
  41. package/DS1/vite-env.d.ts +9 -0
  42. package/DS1/x-icon/2x.svg +4 -0
  43. package/DS1/x-icon/2xdots.svg +18 -0
  44. package/DS1/x-icon/2xgrid.svg +6 -0
  45. package/DS1/x-icon/2xlines.svg +6 -0
  46. package/DS1/x-icon/4x4.svg +18 -0
  47. package/DS1/x-icon/apple.svg +4 -0
  48. package/DS1/x-icon/avatar.svg +4 -0
  49. package/DS1/x-icon/big.svg +4 -0
  50. package/DS1/x-icon/blank.svg +3 -0
  51. package/DS1/x-icon/check.svg +3 -0
  52. package/DS1/x-icon/close.svg +3 -0
  53. package/DS1/x-icon/collapse.svg +3 -0
  54. package/DS1/x-icon/color.svg +4 -0
  55. package/DS1/x-icon/column.svg +5 -0
  56. package/DS1/x-icon/default.svg +3 -0
  57. package/DS1/x-icon/delete.svg +5 -0
  58. package/DS1/x-icon/dictate.svg +6 -0
  59. package/DS1/x-icon/do.svg +3 -0
  60. package/DS1/x-icon/down.svg +3 -0
  61. package/DS1/x-icon/duplicate.svg +4 -0
  62. package/DS1/x-icon/gallery.svg +5 -0
  63. package/DS1/x-icon/google.svg +6 -0
  64. package/DS1/x-icon/head.svg +5 -0
  65. package/DS1/x-icon/home.svg +3 -0
  66. package/DS1/x-icon/icon.svg +4 -0
  67. package/DS1/x-icon/in.svg +4 -0
  68. package/DS1/x-icon/lock.svg +5 -0
  69. package/DS1/x-icon/loop.svg +5 -0
  70. package/DS1/x-icon/mic.svg +5 -0
  71. package/DS1/x-icon/minimize.svg +3 -0
  72. package/DS1/x-icon/more.svg +5 -0
  73. package/DS1/x-icon/neutral.svg +6 -0
  74. package/DS1/x-icon/note.svg +6 -0
  75. package/DS1/x-icon/page.svg +4 -0
  76. package/DS1/x-icon/plus.svg +3 -0
  77. package/DS1/x-icon/rewind.svg +4 -0
  78. package/DS1/x-icon/row.svg +5 -0
  79. package/DS1/x-icon/sdown.svg +3 -0
  80. package/DS1/x-icon/search.svg +4 -0
  81. package/DS1/x-icon/see.svg +4 -0
  82. package/DS1/x-icon/ship.svg +5 -0
  83. package/DS1/x-icon/star.svg +3 -0
  84. package/DS1/x-icon/status.svg +4 -0
  85. package/DS1/x-icon/sup.svg +3 -0
  86. package/DS1/x-icon/title.svg +3 -0
  87. package/DS1/x-icon/undo.svg +3 -0
  88. package/DS1/x-icon/ungroup.svg +4 -0
  89. package/DS1/x-icon/unhead.svg +3 -0
  90. package/DS1/x-icon/unicon.svg +3 -0
  91. package/DS1/x-icon/unlock.svg +5 -0
  92. package/DS1/x-icon/unmic.svg +6 -0
  93. package/DS1/x-icon/unsee.svg +5 -0
  94. package/DS1/x-icon/unstar.svg +3 -0
  95. package/DS1/x-icon/untitle.svg +3 -0
  96. package/DS1/x-icon/up.svg +3 -0
  97. package/README.md +2 -2
  98. package/dist/0-face/device.d.ts +5 -0
  99. package/dist/0-face/device.d.ts.map +1 -1
  100. package/dist/0-face/device.js +105 -0
  101. package/dist/0-face/scaling.d.ts +48 -0
  102. package/dist/0-face/scaling.d.ts.map +1 -0
  103. package/dist/0-face/scaling.js +114 -0
  104. package/dist/2-core/ds-banner.d.ts.map +1 -1
  105. package/dist/2-core/ds-banner.js +3 -77
  106. package/dist/2-core/ds-button.d.ts.map +1 -1
  107. package/dist/2-core/ds-button.js +3 -67
  108. package/dist/2-core/ds-card.d.ts +39 -0
  109. package/dist/2-core/ds-card.d.ts.map +1 -0
  110. package/dist/2-core/ds-card.js +119 -0
  111. package/dist/2-core/ds-cycle.d.ts.map +1 -1
  112. package/dist/2-core/ds-cycle.js +3 -22
  113. package/dist/2-core/ds-date.d.ts.map +1 -1
  114. package/dist/2-core/ds-date.js +3 -9
  115. package/dist/2-core/ds-gap.d.ts.map +1 -1
  116. package/dist/2-core/ds-gap.js +3 -75
  117. package/dist/2-core/ds-icon.d.ts.map +1 -1
  118. package/dist/2-core/ds-icon.js +3 -33
  119. package/dist/2-core/ds-input.d.ts +127 -0
  120. package/dist/2-core/ds-input.d.ts.map +1 -1
  121. package/dist/2-core/ds-input.js +252 -1
  122. package/dist/2-core/ds-pagedots.d.ts +32 -0
  123. package/dist/2-core/ds-pagedots.d.ts.map +1 -0
  124. package/dist/2-core/ds-pagedots.js +36 -0
  125. package/dist/2-core/ds-text.d.ts.map +1 -1
  126. package/dist/2-core/ds-text.js +3 -29
  127. package/dist/2-core/ds-tooltip.d.ts.map +1 -1
  128. package/dist/2-core/ds-tooltip.js +3 -49
  129. package/dist/2-core/styles/ds-banner.css +77 -0
  130. package/dist/2-core/styles/ds-button.css +67 -0
  131. package/dist/2-core/styles/ds-cycle.css +21 -0
  132. package/dist/2-core/styles/ds-date.css +9 -0
  133. package/dist/2-core/styles/ds-gap.css +93 -0
  134. package/dist/2-core/styles/ds-icon.css +30 -0
  135. package/dist/2-core/styles/ds-input.css +46 -0
  136. package/dist/2-core/styles/ds-pagedots.css +26 -0
  137. package/dist/2-core/styles/ds-text.css +29 -0
  138. package/dist/2-core/styles/ds-tooltip.css +49 -0
  139. package/dist/3-unit/ds-accordion.d.ts.map +1 -1
  140. package/dist/3-unit/ds-accordion.js +3 -46
  141. package/dist/3-unit/ds-form.d.ts +70 -0
  142. package/dist/3-unit/ds-form.d.ts.map +1 -0
  143. package/dist/3-unit/ds-form.js +232 -0
  144. package/dist/3-unit/ds-list.d.ts.map +1 -1
  145. package/dist/3-unit/ds-list.js +5 -11
  146. package/dist/3-unit/ds-row.d.ts.map +1 -1
  147. package/dist/3-unit/ds-row.js +3 -19
  148. package/dist/3-unit/ds-table.d.ts.map +1 -1
  149. package/dist/3-unit/ds-table.js +3 -85
  150. package/dist/3-unit/styles/ds-accordion.css +46 -0
  151. package/dist/3-unit/styles/ds-list.css +9 -0
  152. package/dist/3-unit/styles/ds-row.css +19 -0
  153. package/dist/3-unit/styles/ds-table.css +80 -0
  154. package/dist/4-page/ds-container.d.ts.map +1 -1
  155. package/dist/4-page/ds-container.js +3 -35
  156. package/dist/4-page/ds-grid.d.ts.map +1 -1
  157. package/dist/4-page/ds-grid.js +3 -56
  158. package/dist/4-page/ds-layout.d.ts +1 -1
  159. package/dist/4-page/ds-layout.d.ts.map +1 -1
  160. package/dist/4-page/ds-layout.js +528 -50
  161. package/dist/4-page/styles/ds-container.css +35 -0
  162. package/dist/4-page/styles/ds-grid.css +56 -0
  163. package/dist/4-page/styles/ds-layout.css +251 -0
  164. package/dist/ds-one.bundle.css +700 -0
  165. package/dist/ds-one.bundle.css.map +7 -0
  166. package/dist/ds-one.bundle.js +1370 -535
  167. package/dist/ds-one.bundle.js.map +4 -4
  168. package/dist/ds-one.bundle.min.css +2 -0
  169. package/dist/ds-one.bundle.min.css.map +7 -0
  170. package/dist/ds-one.bundle.min.js +783 -527
  171. package/dist/ds-one.bundle.min.js.map +4 -4
  172. package/dist/index.d.ts +7 -2
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +7 -2
  175. package/package.json +1 -1
  176. package/dist/3-unit/doublenav-v1.d.ts +0 -51
  177. package/dist/3-unit/doublenav-v1.d.ts.map +0 -1
  178. package/dist/3-unit/doublenav-v1.js +0 -88
  179. package/dist/3-unit/ds-portfolio-doublenav.d.ts +0 -51
  180. package/dist/3-unit/ds-portfolio-doublenav.d.ts.map +0 -1
  181. package/dist/3-unit/ds-portfolio-doublenav.js +0 -88
  182. package/dist/3-unit/ds-portfolio-panel.d.ts +0 -11
  183. package/dist/3-unit/ds-portfolio-panel.d.ts.map +0 -1
  184. package/dist/3-unit/ds-portfolio-panel.js +0 -16
  185. package/dist/3-unit/ds-portfolio-singlenav.d.ts +0 -32
  186. package/dist/3-unit/ds-portfolio-singlenav.d.ts.map +0 -1
  187. package/dist/3-unit/ds-portfolio-singlenav.js +0 -62
  188. package/dist/3-unit/list-v1.d.ts +0 -11
  189. package/dist/3-unit/list-v1.d.ts.map +0 -1
  190. package/dist/3-unit/list-v1.js +0 -15
  191. package/dist/3-unit/panel-v1.d.ts +0 -11
  192. package/dist/3-unit/panel-v1.d.ts.map +0 -1
  193. package/dist/3-unit/panel-v1.js +0 -16
  194. package/dist/3-unit/row-v1.d.ts +0 -25
  195. package/dist/3-unit/row-v1.d.ts.map +0 -1
  196. package/dist/3-unit/row-v1.js +0 -32
  197. package/dist/3-unit/singlenav-v1.d.ts +0 -32
  198. package/dist/3-unit/singlenav-v1.d.ts.map +0 -1
  199. package/dist/3-unit/singlenav-v1.js +0 -62
@@ -1,33 +1,15 @@
1
- function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigator,e=window,r=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(r),i=(t&&t.maxTouchPoints||0)>1,o=e?Math.min(e.innerWidth||0,e.innerHeight||0)<=820:!1;return s||i&&o}function cr(){let t=De(),e=navigator,r=window,n=(e&&e.maxTouchPoints||0)>1,i=typeof document<"u"?document.documentElement.clientWidth:r?.innerWidth||0,o=typeof document<"u"?document.documentElement.clientHeight:r?.innerHeight||0,f=t&&Math.min(i,o)>=600;return{isMobile:t,isTablet:f,isDesktop:!t,isTouchCapable:n,deviceType:t?f?"tablet":"mobile":"desktop",userAgent:e&&(e.userAgent||e.vendor)||"",screenWidth:i,screenHeight:o}}function Me(){let t=cr();if(t.isMobile&&typeof document<"u"){let s=t.screenWidth/280;document.documentElement.style.setProperty("--sf",s.toFixed(3)),document.documentElement.style.setProperty("--sf",s.toFixed(3)),document.documentElement.classList.add("mobile"),document.documentElement.classList.remove("desktop"),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("--sf","1"),document.documentElement.style.setProperty("--sf","1"),document.documentElement.classList.add("desktop"),document.documentElement.classList.remove("mobile")),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",()=>{Me()}):Me();let t;window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{Me()},100)})}var dr={},yt=["da","de","en","es","fr","it","ja","pt","sv","zh"],ur=new Map(yt.map((t,e)=>[t,e])),ct={da:"Danish","da-dk":"Danish",de:"German","de-de":"German",en:"English","en-us":"English",es:"Spanish","es-es":"Spanish",fr:"French","fr-fr":"French",it:"Italian","it-it":"Italian",ja:"Japanese","ja-jp":"Japanese",pt:"Portuguese","pt-pt":"Portuguese",sv:"Swedish","sv-se":"Swedish",zh:"Chinese","zh-cn":"Chinese","zh-tw":"Chinese","zh-hans":"Chinese","zh-hant":"Chinese"},dt=new Map,ut=!1,wt="./translations.json",ht=!1;function pt(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 hr(){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 r=document.querySelector('meta[name="ds-one:translations"]')?.getAttribute("content");if(r)return r;let s=document.querySelector('link[rel="ds-one-translations"]')?.getAttribute("href");return s||null}function pr(){let t=[],e=typeof window<"u"?window.DS_ONE_TRANSLATIONS_FILE:null,r=hr(),s=pt(e??"");s&&t.push(s);let n=pt(r??"");return n&&!t.includes(n)&&t.push(n),t.length===0&&t.push(wt),t}function fr(t){return!t||typeof t!="object"?!1:Object.values(t).every(e=>e&&typeof e=="object")}async function gr(t){try{let e=await fetch(t);if(!e.ok)return null;let r=await e.json();return fr(r)?Object.keys(r).length===0?(console.warn(`[DS one] No languages found in ${t}`),null):r:(console.warn(`[DS one] Invalid translation format in ${t}. Expected object with language codes as keys.`),null)}catch{return null}}async function ft(){if(ht||(ht=!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=pr();for(let e of t){let r=await gr(e);if(!r)continue;window.DS_ONE_TRANSLATIONS=r;let s=Object.keys(r);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]??wt}. Using bundled translations.`),!1}function ge(){return typeof window<"u"&&window.DS_ONE_TRANSLATIONS?window.DS_ONE_TRANSLATIONS:dr}var N=ge(),E="en";function F(t){return t?t.toLowerCase().split(/[-_]/)[0]??"":""}function gt(t){let e=F(t),r=ur.get(e);return typeof r=="number"?r:yt.length}function bt(t){return[...t].sort((e,r)=>{let s=gt(e),n=gt(r);return s!==n?s-n:e.localeCompare(r)})}function mr(t,e){let r=t?.replace("_","-");if(r)try{let s=dt.get(r);s||(s=new Intl.DisplayNames([r],{type:"language"}),dt.set(r,s));let n=e.replace("_","-"),i=s.of(n);if(i&&i!==n)return i;let o=s.of(F(n));if(o)return o}catch{ut||(console.info("[DS one] Intl.DisplayNames is not available, using fallback language names."),ut=!0)}}function vr(t){let e=t.toLowerCase().replace("_","-"),r=ct[e];if(r)return r;let s=F(e);return ct[s]}function xt(t,e={}){if(!t)return"";let r=[];e.locale&&r.push(e.locale),typeof navigator<"u"&&(Array.isArray(navigator.languages)&&r.push(...navigator.languages),navigator.language&&r.push(navigator.language)),r.push(E),r.push("en");let s=new Set;for(let o of r){if(!o||s.has(o))continue;s.add(o);let f=mr(o,t);if(f)return f}let n=vr(t);if(n)return n;let i=F(t);return i?i.toUpperCase():t}var mt={da:"da","da-dk":"da",de:"de","de-de":"de",en:"en","en-us":"en","en-gb":"en",es:"es","es-es":"es","es-mx":"es",fr:"fr","fr-fr":"fr",it:"it","it-it":"it",ja:"ja","ja-jp":"ja",pt:"pt","pt-pt":"pt","pt-br":"pt",sv:"sv","sv-se":"sv",zh:"zh","zh-cn":"zh","zh-hans":"zh","zh-tw":"zh","zh-hant":"zh"};function vt(t){if(!t)return null;let e=t.toLowerCase().replace("_","-"),r=mt[e];if(r)return r;let s=F(e),n=mt[s];return n||t}function yr(){if(typeof navigator>"u")return E;let t=navigator.language;if(t){let e=vt(t);if(e)return e}if(Array.isArray(navigator.languages))for(let e of navigator.languages){let r=vt(e);if(r)return r}return E}var as=typeof window<"u"?window.localStorage?.getItem("ds-one:language")??void 0:void 0,S={value:localStorage.getItem("language")||yr(),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",()=>{ft()}):ft());typeof window<"u"&&window.addEventListener("translations-ready",()=>{N=ge(),window.dispatchEvent(new CustomEvent("translations-loaded"));let t=S.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))});setTimeout(()=>{window.dispatchEvent(new CustomEvent("translations-loaded"));let t=S.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))},100);function O(t){let e=S.value;return N?.[e]?.[t]?N[e][t]:e!==E&&N?.[E]?.[t]?N[E][t]:(console.warn(`[DS one (Internationalization)] No translation found for key "${t}"`),t)}function ls(t,e=S.value){if(!t)return!1;let r=N?.[e];return!!(r&&Object.prototype.hasOwnProperty.call(r,t)||e!==E&&N?.[E]&&Object.prototype.hasOwnProperty.call(N[E],t))}function _t(t){return O(t)}function cs(){let t=ge();if(t&&Object.keys(t).length>0){let e=Object.keys(t);return Promise.resolve(bt(e))}return Promise.resolve([E])}function Re(){let t=ge();return t&&Object.keys(t).length>0?bt(Object.keys(t)):[E]}function ds(t,e){console.log(`Loading additional translations for ${t}:`,Object.keys(e).length,"keys")}function Ue(t){localStorage.setItem("language",t),S.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 wr={da:"kr.",nb:"kr.",sv:"kr.",de:"\u20AC",en:"$",pt:"\u20AC",es:"\u20AC",zh:"\xA5",ja:"\xA5",ko:"\u20A9"};function ps(t){let{language:e,country:r}=t;if(r){let n=r.toUpperCase();if(n==="US"||n==="USA")return"$";if(n==="GB"||n==="UK")return"\xA3";if(n==="JP"||n==="JPN"||n==="CN"||n==="CHN")return"\xA5";if(n==="KR"||n==="KOR")return"\u20A9"}let s=e.toLowerCase().split(/[-_]/)[0];return wr[s]||"$"}var br=Object.defineProperty,xr=(t,e,r)=>e in t?br(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,We=(t,e,r)=>(xr(t,typeof e!="symbol"?e+"":e,r),r),_r=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)},je=(t,e)=>{if(Object(e)!==e)throw TypeError('Cannot use the "in" operator on this value');return t.has(e)},me=(t,e,r)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,r)},$t=(t,e,r)=>(_r(t,e,"access private method"),r);function St(t,e){return Object.is(t,e)}var b=null,G=!1,ve=1,ye=Symbol("SIGNAL");function R(t){let e=b;return b=t,e}function $r(){return b}function Sr(){return G}var Ke={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 we(t){if(G)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(U(b),e<b.producerNode.length&&b.producerNode[e]!==t&&Fe(b)){let r=b.producerNode[e];be(r,b.producerIndexOfThis[e])}b.producerNode[e]!==t&&(b.producerNode[e]=t,b.producerIndexOfThis[e]=Fe(b)?Et(t,b,e):0),b.producerLastReadVersion[e]=t.version}function Ar(){ve++}function At(t){if(!(!t.dirty&&t.lastCleanEpoch===ve)){if(!t.producerMustRecompute(t)&&!Lr(t)){t.dirty=!1,t.lastCleanEpoch=ve;return}t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=ve}}function Ct(t){if(t.liveConsumerNode===void 0)return;let e=G;G=!0;try{for(let r of t.liveConsumerNode)r.dirty||Er(r)}finally{G=e}}function Cr(){return b?.consumerAllowSignalWrites!==!1}function Er(t){var e;t.dirty=!0,Ct(t),(e=t.consumerMarkedDirty)==null||e.call(t.wrapper??t)}function kr(t){return t&&(t.nextProducerIndex=0),R(t)}function Tr(t,e){if(R(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(Fe(t))for(let r=t.nextProducerIndex;r<t.producerNode.length;r++)be(t.producerNode[r],t.producerIndexOfThis[r]);for(;t.producerNode.length>t.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Lr(t){U(t);for(let e=0;e<t.producerNode.length;e++){let r=t.producerNode[e],s=t.producerLastReadVersion[e];if(s!==r.version||(At(r),s!==r.version))return!0}return!1}function Et(t,e,r){var s;if(Ze(t),U(t),t.liveConsumerNode.length===0){(s=t.watched)==null||s.call(t.wrapper);for(let n=0;n<t.producerNode.length;n++)t.producerIndexOfThis[n]=Et(t.producerNode[n],t,n)}return t.liveConsumerIndexOfThis.push(r),t.liveConsumerNode.push(e)-1}function be(t,e){var r;if(Ze(t),U(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){(r=t.unwatched)==null||r.call(t.wrapper);for(let n=0;n<t.producerNode.length;n++)be(t.producerNode[n],t.producerIndexOfThis[n])}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 n=t.liveConsumerIndexOfThis[e],i=t.liveConsumerNode[e];U(i),i.producerIndexOfThis[n]=e}}function Fe(t){var e;return t.consumerIsAlwaysLive||(((e=t?.liveConsumerNode)==null?void 0:e.length)??0)>0}function U(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 kt(t){if(At(t),we(t),t.value===Ge)throw t.error;return t.value}function Nr(t){let e=Object.create(Ir);e.computation=t;let r=()=>kt(e);return r[ye]=e,r}var Be=Symbol("UNSET"),qe=Symbol("COMPUTING"),Ge=Symbol("ERRORED"),Ir={...Ke,value:Be,dirty:!0,error:null,equal:St,producerMustRecompute(t){return t.value===Be||t.value===qe},producerRecomputeValue(t){if(t.value===qe)throw new Error("Detected cycle in computations.");let e=t.value;t.value=qe;let r=kr(t),s,n=!1;try{s=t.computation.call(t.wrapper),n=e!==Be&&e!==Ge&&t.equal.call(t.wrapper,e,s)}catch(i){s=Ge,t.error=i}finally{Tr(t,r)}if(n){t.value=e;return}t.value=s,t.version++}};function Or(){throw new Error}var Pr=Or;function Hr(){Pr()}function Vr(t){let e=Object.create(Dr);e.value=t;let r=()=>(we(e),e.value);return r[ye]=e,r}function zr(){return we(this),this.value}function Mr(t,e){Cr()||Hr(),t.equal.call(t.wrapper,t.value,e)||(t.value=e,Rr(t))}var Dr={...Ke,equal:St,value:void 0};function Rr(t){t.version++,Ar(),Ct(t)}var x=Symbol("node"),_;(t=>{var e,r,s,n,i,o;class f{constructor(v,l={}){me(this,r),We(this,e);let g=Vr(v)[ye];if(this[x]=g,g.wrapper=this,l){let $=l.equals;$&&(g.equal=$),g.watched=l[t.subtle.watched],g.unwatched=l[t.subtle.unwatched]}}get(){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return zr.call(this[x])}set(v){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(Sr())throw new Error("Writes to signals not permitted during Watcher callback");let l=this[x];Mr(l,v)}}e=x,r=new WeakSet,s=function(){},t.isState=u=>typeof u=="object"&&je(r,u),t.State=f;class d{constructor(v,l){me(this,i),We(this,n);let g=Nr(v)[ye];if(g.consumerAllowSignalWrites=!0,this[x]=g,g.wrapper=this,l){let $=l.equals;$&&(g.equal=$),g.watched=l[t.subtle.watched],g.unwatched=l[t.subtle.unwatched]}}get(){if(!(0,t.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return kt(this[x])}}n=x,i=new WeakSet,o=function(){},t.isComputed=u=>typeof u=="object"&&je(i,u),t.Computed=d,(u=>{var v,l,A,g,$;function tr(y){let m,c=null;try{c=R(null),m=y()}finally{R(c)}return m}u.untrack=tr;function rr(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[x].producerNode)==null?void 0:m.map(c=>c.wrapper))??[]}u.introspectSources=rr;function sr(y){var m;if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called introspectSinks without a Signal argument");return((m=y[x].liveConsumerNode)==null?void 0:m.map(c=>c.wrapper))??[]}u.introspectSinks=sr;function nr(y){if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called hasSinks without a Signal argument");let m=y[x].liveConsumerNode;return m?m.length>0:!1}u.hasSinks=nr;function ir(y){if(!(0,t.isComputed)(y)&&!(0,t.isWatcher)(y))throw new TypeError("Called hasSources without a Computed or Watcher argument");let m=y[x].producerNode;return m?m.length>0:!1}u.hasSources=ir;class or{constructor(m){me(this,l),me(this,g),We(this,v);let c=Object.create(Ke);c.wrapper=this,c.consumerMarkedDirty=m,c.consumerIsAlwaysLive=!0,c.consumerAllowSignalWrites=!1,c.producerNode=[],this[x]=c}watch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");$t(this,g,$).call(this,m);let c=this[x];c.dirty=!1;let C=R(c);for(let fe of m)we(fe[x]);R(C)}unwatch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");$t(this,g,$).call(this,m);let c=this[x];U(c);for(let C=c.producerNode.length-1;C>=0;C--)if(m.includes(c.producerNode[C].wrapper)){be(c.producerNode[C],c.producerIndexOfThis[C]);let fe=c.producerNode.length-1;if(c.producerNode[C]=c.producerNode[fe],c.producerIndexOfThis[C]=c.producerIndexOfThis[fe],c.producerNode.length--,c.producerIndexOfThis.length--,c.nextProducerIndex--,C<c.producerNode.length){let lr=c.producerIndexOfThis[C],lt=c.producerNode[C];Ze(lt),lt.liveConsumerIndexOfThis[lr]=C}}}getPending(){if(!(0,t.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[x].producerNode.filter(c=>c.dirty).map(c=>c.wrapper)}}v=x,l=new WeakSet,A=function(){},g=new WeakSet,$=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=>je(l,y),u.Watcher=or;function ar(){var y;return(y=$r())==null?void 0:y.wrapper}u.currentComputed=ar,u.watched=Symbol("watched"),u.unwatched=Symbol("unwatched")})(t.subtle||(t.subtle={}))})(_||(_={}));var vs=Symbol("SignalWatcherBrand"),ys=new FinalizationRegistry((({watcher:t,signal:e})=>{t.unwatch(e)}));var xe={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},K=t=>(...e)=>({_$litDirective$:t,values:e}),W=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,r,s){this._$Ct=e,this._$AM=r,this._$Ci=s}_$AS(e,r){return this.update(e,r)}update(e,r){return this.render(...r)}};var J=globalThis,_e=J.trustedTypes,Tt=_e?_e.createPolicy("lit-html",{createHTML:t=>t}):void 0,Ye="$lit$",k=`lit$${Math.random().toFixed(9).slice(2)}$`,Xe="?"+k,Ur=`<${Xe}>`,z=document,Y=()=>z.createComment(""),X=t=>t===null||typeof t!="object"&&typeof t!="function",Qe=Array.isArray,Ht=t=>Qe(t)||typeof t?.[Symbol.iterator]=="function",Je=`[
2
- \f\r]`,Z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Lt=/-->/g,Nt=/>/g,H=RegExp(`>|${Je}(?:([^\\s"'>=/]+)(${Je}*=${Je}*(?:[^
3
- \f\r"'\`<>=]|("|')|))|$)`,"g"),It=/'/g,Ot=/"/g,Vt=/^(?:script|style|textarea|title)$/i,et=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),a=et(1),zt=et(2),$s=et(3),T=Symbol.for("lit-noChange"),w=Symbol.for("lit-nothing"),Pt=new WeakMap,V=z.createTreeWalker(z,129);function Mt(t,e){if(!Qe(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Tt!==void 0?Tt.createHTML(e):e}var Dt=(t,e)=>{let r=t.length-1,s=[],n,i=e===2?"<svg>":e===3?"<math>":"",o=Z;for(let f=0;f<r;f++){let d=t[f],u,v,l=-1,A=0;for(;A<d.length&&(o.lastIndex=A,v=o.exec(d),v!==null);)A=o.lastIndex,o===Z?v[1]==="!--"?o=Lt:v[1]!==void 0?o=Nt:v[2]!==void 0?(Vt.test(v[2])&&(n=RegExp("</"+v[2],"g")),o=H):v[3]!==void 0&&(o=H):o===H?v[0]===">"?(o=n??Z,l=-1):v[1]===void 0?l=-2:(l=o.lastIndex-v[2].length,u=v[1],o=v[3]===void 0?H:v[3]==='"'?Ot:It):o===Ot||o===It?o=H:o===Lt||o===Nt?o=Z:(o=H,n=void 0);let g=o===H&&t[f+1].startsWith("/>")?" ":"";i+=o===Z?d+Ur:l>=0?(s.push(u),d.slice(0,l)+Ye+d.slice(l)+k+g):d+k+(l===-2?f:g)}return[Mt(t,i+(t[r]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),s]},Q=class t{constructor({strings:e,_$litType$:r},s){let n;this.parts=[];let i=0,o=0,f=e.length-1,d=this.parts,[u,v]=Dt(e,r);if(this.el=t.createElement(u,s),V.currentNode=this.el.content,r===2||r===3){let l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(n=V.nextNode())!==null&&d.length<f;){if(n.nodeType===1){if(n.hasAttributes())for(let l of n.getAttributeNames())if(l.endsWith(Ye)){let A=v[o++],g=n.getAttribute(l).split(k),$=/([.?@])?(.*)/.exec(A);d.push({type:1,index:i,name:$[2],strings:g,ctor:$[1]==="."?Se:$[1]==="?"?Ae:$[1]==="@"?Ce:D}),n.removeAttribute(l)}else l.startsWith(k)&&(d.push({type:6,index:i}),n.removeAttribute(l));if(Vt.test(n.tagName)){let l=n.textContent.split(k),A=l.length-1;if(A>0){n.textContent=_e?_e.emptyScript:"";for(let g=0;g<A;g++)n.append(l[g],Y()),V.nextNode(),d.push({type:2,index:++i});n.append(l[A],Y())}}}else if(n.nodeType===8)if(n.data===Xe)d.push({type:2,index:i});else{let l=-1;for(;(l=n.data.indexOf(k,l+1))!==-1;)d.push({type:7,index:i}),l+=k.length-1}i++}}static createElement(e,r){let s=z.createElement("template");return s.innerHTML=e,s}};function M(t,e,r=t,s){if(e===T)return e;let n=s!==void 0?r._$Co?.[s]:r._$Cl,i=X(e)?void 0:e._$litDirective$;return n?.constructor!==i&&(n?._$AO?.(!1),i===void 0?n=void 0:(n=new i(t),n._$AT(t,r,s)),s!==void 0?(r._$Co??(r._$Co=[]))[s]=n:r._$Cl=n),n!==void 0&&(e=M(t,n._$AS(t,e.values),n,s)),e}var $e=class{constructor(e,r){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=r}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:r},parts:s}=this._$AD,n=(e?.creationScope??z).importNode(r,!0);V.currentNode=n;let i=V.nextNode(),o=0,f=0,d=s[0];for(;d!==void 0;){if(o===d.index){let u;d.type===2?u=new j(i,i.nextSibling,this,e):d.type===1?u=new d.ctor(i,d.name,d.strings,this,e):d.type===6&&(u=new Ee(i,this,e)),this._$AV.push(u),d=s[++f]}o!==d?.index&&(i=V.nextNode(),o++)}return V.currentNode=z,n}p(e){let r=0;for(let s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(e,s,r),r+=s.strings.length-2):s._$AI(e[r])),r++}},j=class t{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,r,s,n){this.type=2,this._$AH=w,this._$AN=void 0,this._$AA=e,this._$AB=r,this._$AM=s,this.options=n,this._$Cv=n?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,r=this._$AM;return r!==void 0&&e?.nodeType===11&&(e=r.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,r=this){e=M(this,e,r),X(e)?e===w||e==null||e===""?(this._$AH!==w&&this._$AR(),this._$AH=w):e!==this._$AH&&e!==T&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Ht(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&&X(this._$AH)?this._$AA.nextSibling.data=e:this.T(z.createTextNode(e)),this._$AH=e}$(e){let{values:r,_$litType$:s}=e,n=typeof s=="number"?this._$AC(e):(s.el===void 0&&(s.el=Q.createElement(Mt(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===n)this._$AH.p(r);else{let i=new $e(n,this),o=i.u(this.options);i.p(r),this.T(o),this._$AH=i}}_$AC(e){let r=Pt.get(e.strings);return r===void 0&&Pt.set(e.strings,r=new Q(e)),r}k(e){Qe(this._$AH)||(this._$AH=[],this._$AR());let r=this._$AH,s,n=0;for(let i of e)n===r.length?r.push(s=new t(this.O(Y()),this.O(Y()),this,this.options)):s=r[n],s._$AI(i),n++;n<r.length&&(this._$AR(s&&s._$AB.nextSibling,n),r.length=n)}_$AR(e=this._$AA.nextSibling,r){for(this._$AP?.(!1,!0,r);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,r,s,n,i){this.type=1,this._$AH=w,this._$AN=void 0,this.element=e,this.name=r,this._$AM=n,this.options=i,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=w}_$AI(e,r=this,s,n){let i=this.strings,o=!1;if(i===void 0)e=M(this,e,r,0),o=!X(e)||e!==this._$AH&&e!==T,o&&(this._$AH=e);else{let f=e,d,u;for(e=i[0],d=0;d<i.length-1;d++)u=M(this,f[s+d],r,d),u===T&&(u=this._$AH[d]),o||(o=!X(u)||u!==this._$AH[d]),u===w?e=w:e!==w&&(e+=(u??"")+i[d+1]),this._$AH[d]=u}o&&!n&&this.j(e)}j(e){e===w?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Se=class extends D{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===w?void 0:e}},Ae=class extends D{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==w)}},Ce=class extends D{constructor(e,r,s,n,i){super(e,r,s,n,i),this.type=5}_$AI(e,r=this){if((e=M(this,e,r,0)??w)===T)return;let s=this._$AH,n=e===w&&s!==w||e.capture!==s.capture||e.once!==s.once||e.passive!==s.passive,i=e!==w&&(s===w||n);n&&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)}},Ee=class{constructor(e,r,s){this.element=e,this.type=6,this._$AN=void 0,this._$AM=r,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(e){M(this,e)}},Rt={M:Ye,P:k,A:Xe,C:1,L:Dt,R:$e,D:Ht,V:M,I:j,H:D,N:Ae,U:Ce,B:Se,F:Ee},Wr=J.litHtmlPolyfillSupport;Wr?.(Q,j),(J.litHtmlVersions??(J.litHtmlVersions=[])).push("3.3.1");var Ut=(t,e,r)=>{let s=r?.renderBefore??e,n=s._$litPart$;if(n===void 0){let i=r?.renderBefore??null;s._$litPart$=n=new j(e.insertBefore(Y(),i),i,void 0,r??{})}return n._$AI(t),n};var{I:Cs}=Rt;var Wt=t=>t.strings===void 0;var ee=(t,e)=>{let r=t._$AN;if(r===void 0)return!1;for(let s of r)s._$AO?.(e,!1),ee(s,e);return!0},ke=t=>{let e,r;do{if((e=t._$AM)===void 0)break;r=e._$AN,r.delete(t),t=e}while(r?.size===0)},jt=t=>{for(let e;e=t._$AM;t=e){let r=e._$AN;if(r===void 0)e._$AN=r=new Set;else if(r.has(t))break;r.add(t),qr(e)}};function jr(t){this._$AN!==void 0?(ke(this),this._$AM=t,jt(this)):this._$AM=t}function Br(t,e=!1,r=0){let s=this._$AH,n=this._$AN;if(n!==void 0&&n.size!==0)if(e)if(Array.isArray(s))for(let i=r;i<s.length;i++)ee(s[i],!1),ke(s[i]);else s!=null&&(ee(s,!1),ke(s));else ee(this,t)}var qr=t=>{t.type==xe.CHILD&&(t._$AP??(t._$AP=Br),t._$AQ??(t._$AQ=jr))},Te=class extends W{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,r,s){super._$AT(e,r,s),jt(this),this.isConnected=e._$AU}_$AO(e,r=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),r&&(ee(this,e),ke(this))}setValue(e){if(Wt(this._$Ct))this._$Ct._$AI(e,this);else{let r=[...this._$Ct._$AH];r[this._$Ci]=e,this._$Ct._$AI(r,this,0)}}disconnected(){}reconnected(){}};var Le=class extends Te{_$Sl(){if(this._$Su!==void 0)return;this._$SW=new _.Computed((()=>{var r;return(r=this._$Sj)===null||r===void 0?void 0:r.get()}));let e=this._$Su=new _.subtle.Watcher((()=>{var r;(r=this._$SO)===null||r===void 0||r._(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(_.subtle.untrack((()=>{var e;return(e=this._$SW)===null||e===void 0?void 0:e.get()})))}render(e){return _.subtle.untrack((()=>e.get()))}update(e,[r]){var s,n;return(s=this._$SO)!==null&&s!==void 0||(this._$SO=(n=e.options)===null||n===void 0?void 0:n.host),r!==this._$Sj&&this._$Sj!==void 0&&this._$Sp(),this._$Sj=r,this._$Sl(),_.subtle.untrack((()=>this._$SW.get()))}disconnected(){this._$Sp()}reconnected(){this._$Sl()}},tt=K(Le);var rt=t=>(e,...r)=>t(e,...r.map((s=>s instanceof _.State||s instanceof _.Computed?tt(s):s))),Fr=rt(a),Gr=rt(zt);var Fs=_.State,Gs=_.Computed,Bt=(t,e)=>new _.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 B=Bt(Kr());function qt(t){if(t!==B.get()&&(B.set(t),typeof window<"u")){try{window.localStorage?.setItem("ds-one:theme",t)}catch(r){console.warn("ds-one: unable to persist theme preference",r)}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 Ne=globalThis,Ie=Ne.ShadowRoot&&(Ne.ShadyCSS===void 0||Ne.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,st=Symbol(),Ft=new WeakMap,te=class{constructor(e,r,s){if(this._$cssResult$=!0,s!==st)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=r}get styleSheet(){let e=this.o,r=this.t;if(Ie&&e===void 0){let s=r!==void 0&&r.length===1;s&&(e=Ft.get(r)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),s&&Ft.set(r,e))}return e}toString(){return this.cssText}},Gt=t=>new te(typeof t=="string"?t:t+"",void 0,st),p=(t,...e)=>{let r=t.length===1?t[0]:e.reduce(((s,n,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.")})(n)+t[i+1]),t[0]);return new te(r,t,st)},Kt=(t,e)=>{if(Ie)t.adoptedStyleSheets=e.map((r=>r instanceof CSSStyleSheet?r:r.styleSheet));else for(let r of e){let s=document.createElement("style"),n=Ne.litNonce;n!==void 0&&s.setAttribute("nonce",n),s.textContent=r.cssText,t.appendChild(s)}},nt=Ie?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let r="";for(let s of e.cssRules)r+=s.cssText;return Gt(r)})(t):t;var{is:Zr,defineProperty:Jr,getOwnPropertyDescriptor:Yr,getOwnPropertyNames:Xr,getOwnPropertySymbols:Qr,getPrototypeOf:es}=Object,I=globalThis,Zt=I.trustedTypes,ts=Zt?Zt.emptyScript:"",rs=I.reactiveElementPolyfillSupport,re=(t,e)=>t,it={toAttribute(t,e){switch(e){case Boolean:t=t?ts:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let r=t;switch(e){case Boolean:r=t!==null;break;case Number:r=t===null?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch{r=null}}return r}},Yt=(t,e)=>!Zr(t,e),Jt={attribute:!0,type:String,converter:it,reflect:!1,useDefault:!1,hasChanged:Yt};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),I.litPropertyMetadata??(I.litPropertyMetadata=new WeakMap);var L=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,r=Jt){if(r.state&&(r.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((r=Object.create(r)).wrapped=!0),this.elementProperties.set(e,r),!r.noAccessor){let s=Symbol(),n=this.getPropertyDescriptor(e,s,r);n!==void 0&&Jr(this.prototype,e,n)}}static getPropertyDescriptor(e,r,s){let{get:n,set:i}=Yr(this.prototype,e)??{get(){return this[r]},set(o){this[r]=o}};return{get:n,set(o){let f=n?.call(this);i?.call(this,o),this.requestUpdate(e,f,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Jt}static _$Ei(){if(this.hasOwnProperty(re("elementProperties")))return;let e=es(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(re("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(re("properties"))){let r=this.properties,s=[...Xr(r),...Qr(r)];for(let n of s)this.createProperty(n,r[n])}let e=this[Symbol.metadata];if(e!==null){let r=litPropertyMetadata.get(e);if(r!==void 0)for(let[s,n]of r)this.elementProperties.set(s,n)}this._$Eh=new Map;for(let[r,s]of this.elementProperties){let n=this._$Eu(r,s);n!==void 0&&this._$Eh.set(n,r)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let r=[];if(Array.isArray(e)){let s=new Set(e.flat(1/0).reverse());for(let n of s)r.unshift(nt(n))}else e!==void 0&&r.push(nt(e));return r}static _$Eu(e,r){let s=r.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,r=this.constructor.elementProperties;for(let s of r.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 Kt(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,r,s){this._$AK(e,s)}_$ET(e,r){let s=this.constructor.elementProperties.get(e),n=this.constructor._$Eu(e,s);if(n!==void 0&&s.reflect===!0){let i=(s.converter?.toAttribute!==void 0?s.converter:it).toAttribute(r,s.type);this._$Em=e,i==null?this.removeAttribute(n):this.setAttribute(n,i),this._$Em=null}}_$AK(e,r){let s=this.constructor,n=s._$Eh.get(e);if(n!==void 0&&this._$Em!==n){let i=s.getPropertyOptions(n),o=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:it;this._$Em=n;let f=o.fromAttribute(r,i.type);this[n]=f??this._$Ej?.get(n)??f,this._$Em=null}}requestUpdate(e,r,s){if(e!==void 0){let n=this.constructor,i=this[e];if(s??(s=n.getPropertyOptions(e)),!((s.hasChanged??Yt)(i,r)||s.useDefault&&s.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(n._$Eu(e,s))))return;this.C(e,r,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,r,{useDefault:s,reflect:n,wrapped:i},o){s&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,o??r??this[e]),i!==!0||o!==void 0)||(this._$AL.has(e)||(this.hasUpdated||s||(r=void 0),this._$AL.set(e,r)),n===!0&&this._$Em!==e&&(this._$Eq??(this._$Eq=new Set)).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(r){Promise.reject(r)}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[n,i]of this._$Ep)this[n]=i;this._$Ep=void 0}let s=this.constructor.elementProperties;if(s.size>0)for(let[n,i]of s){let{wrapped:o}=i,f=this[n];o!==!0||this._$AL.has(n)||f===void 0||this.C(n,void 0,i,f)}}let e=!1,r=this._$AL;try{e=this.shouldUpdate(r),e?(this.willUpdate(r),this._$EO?.forEach((s=>s.hostUpdate?.())),this.update(r)):this._$EM()}catch(s){throw e=!1,this._$EM(),s}e&&this._$AE(r)}willUpdate(e){}_$AE(e){this._$EO?.forEach((r=>r.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((r=>this._$ET(r,this[r])))),this._$EM()}updated(e){}firstUpdated(e){}};L.elementStyles=[],L.shadowRootOptions={mode:"open"},L[re("elementProperties")]=new Map,L[re("finalized")]=new Map,rs?.({ReactiveElement:L}),(I.reactiveElementVersions??(I.reactiveElementVersions=[])).push("2.1.1");var se=globalThis,h=class extends L{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var r;let e=super.createRenderRoot();return(r=this.renderOptions).renderBefore??(r.renderBefore=e.firstChild),e}update(e){let r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=Ut(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return T}};h._$litElement$=!0,h.finalized=!0,se.litElementHydrateSupport?.({LitElement:h});var ss=se.litElementPolyfillSupport;ss?.({LitElement:h});(se.litElementVersions??(se.litElementVersions=[])).push("4.2.1");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._currentLanguage=S.value,this.boundHandlers={languageChanged:(()=>{console.log("Language changed event received in ds-text"),this._currentLanguage=S.value,this._updateLanguageAttribute(),this._loadText(),this.requestUpdate()})}}connectedCallback(){super.connectedCallback(),this._currentLanguage=S.value,this._updateLanguageAttribute(),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()}_updateLanguageAttribute(){let r=(this._currentLanguage||S.value||"").toLowerCase().split(/[-_]/).filter(Boolean),s=r[0]||"";if(s==="ja"){this.setAttribute("data-language","ja");return}if(s==="zh"){let n=r.includes("hans")||r.includes("cn")||r.includes("sg"),i=r.includes("hant")||r.includes("tw")||r.includes("hk")||r.includes("mo");n?this.setAttribute("data-language","zh-hans"):i?this.setAttribute("data-language","zh-hant"):this.setAttribute("data-language","zh");return}this.removeAttribute("data-language")}_loadText(){if(!this.key){this._text=this.defaultValue||this.fallback||"",this._updateLanguageAttribute(),this.requestUpdate();return}try{let e=_t(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._updateLanguageAttribute(),this.requestUpdate()}render(){return a`<span>${this._text||this.defaultValue||this.key}</span>`}};Oe.styles=p`
4
- :host {
5
- display: inline;
6
- font-family: var(--typeface-regular);
7
- font-size: var(--type-size-default);
8
- font-weight: var(--type-weight-default);
9
- line-height: calc(var(--type-lineheight-default) * var(--sf));
10
- letter-spacing: calc(var(--type-letterspacing-default) * var(--sf));
11
- text-align: var(--text-align-default);
12
- text-transform: var(--text-transform-default);
13
- text-decoration: var(--text-decoration-default);
14
- }
15
-
16
- :host([data-language="ja"]) {
17
- font-family: var(--typeface-regular-jp);
18
- }
19
-
20
- :host([data-language="zh"]),
21
- :host([data-language="zh-hant"]) {
22
- font-family: var(--typeface-regular-zh-hant);
23
- font-weight: 800;
24
- }
25
-
26
- :host([data-language="zh-hans"]) {
27
- font-family: var(--typeface-regular-zh-hans);
28
- font-weight: 800;
29
- }
30
- `;customElements.define("ds-text",Oe);var ne=class extends h{constructor(){super(),this.variant="title",this.disabled=!1,this.bold=!1,this["no-background"]=!1,this.blank=!1,this.key="",this.fallback="",this.language="en-US",this.defaultText="",this.href="",this._loading=!1}connectedCallback(){super.connectedCallback()}render(){let e=this.key||this.defaultText||this.fallback;return a`
1
+ function Ze(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigator,e=window,r=t&&(t.userAgent||t.vendor)||e&&e.opera||"",a=/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),i=(t&&t.maxTouchPoints||0)>1,n=e?Math.min(e.innerWidth||0,e.innerHeight||0)<=820:!1;return a||i&&n}function Ir(){let t=Ze(),e=navigator,r=window,o=(e&&e.maxTouchPoints||0)>1,i=typeof document<"u"?document.documentElement.clientWidth:r?.innerWidth||0,n=typeof document<"u"?document.documentElement.clientHeight:r?.innerHeight||0,l=t&&Math.min(i,n)>=600;return{isMobile:t,isTablet:l,isDesktop:!t,isTouchCapable:o,deviceType:t?l?"tablet":"mobile":"desktop",userAgent:e&&(e.userAgent||e.vendor)||"",screenWidth:i,screenHeight:n}}function Ge(){let t=Ir();if(t.isMobile&&typeof document<"u"){let a=t.screenWidth/280;document.documentElement.style.setProperty("--sf",a.toFixed(3)),document.documentElement.style.setProperty("--sf",a.toFixed(3)),document.documentElement.classList.add("mobile"),document.documentElement.classList.remove("desktop"),console.log(`[DS one] Mobile device detected - ${t.deviceType} (${t.screenWidth}x${t.screenHeight}), scaling factor: ${a.toFixed(2)}`)}else typeof document<"u"&&(document.documentElement.style.setProperty("--sf","1"),document.documentElement.style.setProperty("--sf","1"),document.documentElement.classList.add("desktop"),document.documentElement.classList.remove("mobile")),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",()=>{Ge()}):Ge();let t;window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{Ge()},100)})}function Ka(){if(typeof document>"u"||typeof window>"u")return;let t=document.querySelector('meta[name="viewport"]');t||(t=document.createElement("meta"),t.setAttribute("name","viewport"),document.head.appendChild(t)),t.setAttribute("content","width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no");let e=document.createElement("style");e.id="ds-one-applike-style",e.textContent=`
2
+ * {
3
+ touch-action: pan-x pan-y !important;
4
+ -ms-touch-action: pan-x pan-y !important;
5
+ }
6
+ html, body {
7
+ touch-action: pan-x pan-y !important;
8
+ -ms-touch-action: pan-x pan-y !important;
9
+ }
10
+ `;let r=document.getElementById("ds-one-applike-style");r&&r.remove(),document.head.appendChild(e);let a=0,o=0,i=l=>{if(l instanceof TouchEvent){if(l.touches.length>1){l.preventDefault(),l.stopPropagation();return}let c=Date.now();if(l.type==="touchstart"){if(c-a<300){l.preventDefault(),l.stopPropagation();return}o=c}else if(l.type==="touchend"){if(c-o<300&&c-a<300){l.preventDefault(),l.stopPropagation();return}a=c}else if(l.type==="touchmove"&&l.touches.length>1){l.preventDefault(),l.stopPropagation();return}}if(l instanceof WheelEvent&&(l.ctrlKey||l.metaKey)){l.preventDefault(),l.stopPropagation();return}},n={passive:!1,capture:!0};document.addEventListener("touchstart",i,n),document.addEventListener("touchmove",i,n),document.addEventListener("touchend",i,n),document.addEventListener("touchcancel",i,n),document.addEventListener("wheel",i,n),document.addEventListener("gesturestart",l=>{l.preventDefault(),l.stopPropagation()},n),document.addEventListener("gesturechange",l=>{l.preventDefault(),l.stopPropagation()},n),document.addEventListener("gestureend",l=>{l.preventDefault(),l.stopPropagation()},n)}var Or={},At=["da","de","en","es","fr","it","ja","pt","sv","zh"],Pr=new Map(At.map((t,e)=>[t,e])),bt={da:"Danish","da-dk":"Danish",de:"German","de-de":"German",en:"English","en-us":"English",es:"Spanish","es-es":"Spanish",fr:"French","fr-fr":"French",it:"Italian","it-it":"Italian",ja:"Japanese","ja-jp":"Japanese",pt:"Portuguese","pt-pt":"Portuguese",sv:"Swedish","sv-se":"Swedish",zh:"Chinese","zh-cn":"Chinese","zh-tw":"Chinese","zh-hans":"Chinese","zh-hant":"Chinese"},wt=new Map,xt=!1,Lt="./translations.json",_t=!1;function $t(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 zr(){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 r=document.querySelector('meta[name="ds-one:translations"]')?.getAttribute("content");if(r)return r;let a=document.querySelector('link[rel="ds-one-translations"]')?.getAttribute("href");return a||null}function Vr(){let t=[],e=typeof window<"u"?window.DS_ONE_TRANSLATIONS_FILE:null,r=zr(),a=$t(e??"");a&&t.push(a);let o=$t(r??"");return o&&!t.includes(o)&&t.push(o),t.length===0&&t.push(Lt),t}function Hr(t){return!t||typeof t!="object"?!1:Object.values(t).every(e=>e&&typeof e=="object")}async function Mr(t){try{let e=await fetch(t);if(!e.ok)return null;let r=await e.json();return Hr(r)?Object.keys(r).length===0?(console.warn(`[DS one] No languages found in ${t}`),null):r:(console.warn(`[DS one] Invalid translation format in ${t}. Expected object with language codes as keys.`),null)}catch{return null}}async function St(){if(_t||(_t=!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=Vr();for(let e of t){let r=await Mr(e);if(!r)continue;window.DS_ONE_TRANSLATIONS=r;let a=Object.keys(r);return console.log(`[DS one] External translations loaded from ${e}: ${a.length} language(s) \u2013 ${a.join(", ")}`),window.dispatchEvent(new CustomEvent("translations-ready")),!0}return console.info(`[DS one] No external translations found at ${t[0]??Lt}. Using bundled translations.`),!1}function _e(){return typeof window<"u"&&window.DS_ONE_TRANSLATIONS?window.DS_ONE_TRANSLATIONS:Or}var I=_e(),E="en";function G(t){return t?t.toLowerCase().split(/[-_]/)[0]??"":""}function kt(t){let e=G(t),r=Pr.get(e);return typeof r=="number"?r:At.length}function Tt(t){return[...t].sort((e,r)=>{let a=kt(e),o=kt(r);return a!==o?a-o:e.localeCompare(r)})}function Dr(t,e){let r=t?.replace("_","-");if(r)try{let a=wt.get(r);a||(a=new Intl.DisplayNames([r],{type:"language"}),wt.set(r,a));let o=e.replace("_","-"),i=a.of(o);if(i&&i!==o)return i;let n=a.of(G(o));if(n)return n}catch{xt||(console.info("[DS one] Intl.DisplayNames is not available, using fallback language names."),xt=!0)}}function Rr(t){let e=t.toLowerCase().replace("_","-"),r=bt[e];if(r)return r;let a=G(e);return bt[a]}function Nt(t,e={}){if(!t)return"";let r=[];e.locale&&r.push(e.locale),typeof navigator<"u"&&(Array.isArray(navigator.languages)&&r.push(...navigator.languages),navigator.language&&r.push(navigator.language)),r.push(E),r.push("en");let a=new Set;for(let n of r){if(!n||a.has(n))continue;a.add(n);let l=Dr(n,t);if(l)return l}let o=Rr(t);if(o)return o;let i=G(t);return i?i.toUpperCase():t}var Ct={da:"da","da-dk":"da",de:"de","de-de":"de",en:"en","en-us":"en","en-gb":"en",es:"es","es-es":"es","es-mx":"es",fr:"fr","fr-fr":"fr",it:"it","it-it":"it",ja:"ja","ja-jp":"ja",pt:"pt","pt-pt":"pt","pt-br":"pt",sv:"sv","sv-se":"sv",zh:"zh","zh-cn":"zh","zh-hans":"zh","zh-tw":"zh","zh-hant":"zh"};function Et(t){if(!t)return null;let e=t.toLowerCase().replace("_","-"),r=Ct[e];if(r)return r;let a=G(e),o=Ct[a];return o||t}function Ur(){if(typeof navigator>"u")return E;let t=navigator.language;if(t){let e=Et(t);if(e)return e}if(Array.isArray(navigator.languages))for(let e of navigator.languages){let r=Et(e);if(r)return r}return E}var Ga=typeof window<"u"?window.localStorage?.getItem("ds-one:language")??void 0:void 0,S={value:localStorage.getItem("language")||Ur(),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",()=>{St()}):St());typeof window<"u"&&window.addEventListener("translations-ready",()=>{I=_e(),window.dispatchEvent(new CustomEvent("translations-loaded"));let t=S.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))});setTimeout(()=>{window.dispatchEvent(new CustomEvent("translations-loaded"));let t=S.value;window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))},100);function P(t){let e=S.value;return I?.[e]?.[t]?I[e][t]:e!==E&&I?.[E]?.[t]?I[E][t]:(console.warn(`[DS one (Internationalization)] No translation found for key "${t}"`),t)}function Za(t,e=S.value){if(!t)return!1;let r=I?.[e];return!!(r&&Object.prototype.hasOwnProperty.call(r,t)||e!==E&&I?.[E]&&Object.prototype.hasOwnProperty.call(I[E],t))}function U(t){return P(t)}function Ja(){let t=_e();if(t&&Object.keys(t).length>0){let e=Object.keys(t);return Promise.resolve(Tt(e))}return Promise.resolve([E])}function Je(){let t=_e();return t&&Object.keys(t).length>0?Tt(Object.keys(t)):[E]}function Ya(t,e){console.log(`Loading additional translations for ${t}:`,Object.keys(e).length,"keys")}function Ye(t){localStorage.setItem("language",t),S.set(t),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:t},bubbles:!0,composed:!0}))}function z(t){if(!(typeof window>"u"))try{let e=window.localStorage?.getItem("ds-one:preferences"),a={...e?JSON.parse(e):{},...t};window.localStorage?.setItem("ds-one:preferences",JSON.stringify(a))}catch(e){console.warn("ds-one: unable to persist preferences",e)}}var jr={da:"kr.",nb:"kr.",sv:"kr.",de:"\u20AC",en:"$",pt:"\u20AC",es:"\u20AC",zh:"\xA5",ja:"\xA5",ko:"\u20A9"};function eo(t){let{language:e,country:r}=t;if(r){let o=r.toUpperCase();if(o==="US"||o==="USA")return"$";if(o==="GB"||o==="UK")return"\xA3";if(o==="JP"||o==="JPN"||o==="CN"||o==="CHN")return"\xA5";if(o==="KR"||o==="KOR")return"\u20A9"}let a=e.toLowerCase().split(/[-_]/)[0];return jr[a]||"$"}var Br=Object.defineProperty,Wr=(t,e,r)=>e in t?Br(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Xe=(t,e,r)=>(Wr(t,typeof e!="symbol"?e+"":e,r),r),qr=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)},Qe=(t,e)=>{if(Object(e)!==e)throw TypeError('Cannot use the "in" operator on this value');return t.has(e)},$e=(t,e,r)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,r)},It=(t,e,r)=>(qr(t,e,"access private method"),r);function Ot(t,e){return Object.is(t,e)}var w=null,Z=!1,Se=1,ke=Symbol("SIGNAL");function j(t){let e=w;return w=t,e}function Kr(){return w}function Fr(){return Z}var ot={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 Ce(t){if(Z)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(B(w),e<w.producerNode.length&&w.producerNode[e]!==t&&rt(w)){let r=w.producerNode[e];Ee(r,w.producerIndexOfThis[e])}w.producerNode[e]!==t&&(w.producerNode[e]=t,w.producerIndexOfThis[e]=rt(w)?Vt(t,w,e):0),w.producerLastReadVersion[e]=t.version}function Gr(){Se++}function Pt(t){if(!(!t.dirty&&t.lastCleanEpoch===Se)){if(!t.producerMustRecompute(t)&&!Qr(t)){t.dirty=!1,t.lastCleanEpoch=Se;return}t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=Se}}function zt(t){if(t.liveConsumerNode===void 0)return;let e=Z;Z=!0;try{for(let r of t.liveConsumerNode)r.dirty||Jr(r)}finally{Z=e}}function Zr(){return w?.consumerAllowSignalWrites!==!1}function Jr(t){var e;t.dirty=!0,zt(t),(e=t.consumerMarkedDirty)==null||e.call(t.wrapper??t)}function Yr(t){return t&&(t.nextProducerIndex=0),j(t)}function Xr(t,e){if(j(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(rt(t))for(let r=t.nextProducerIndex;r<t.producerNode.length;r++)Ee(t.producerNode[r],t.producerIndexOfThis[r]);for(;t.producerNode.length>t.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Qr(t){B(t);for(let e=0;e<t.producerNode.length;e++){let r=t.producerNode[e],a=t.producerLastReadVersion[e];if(a!==r.version||(Pt(r),a!==r.version))return!0}return!1}function Vt(t,e,r){var a;if(it(t),B(t),t.liveConsumerNode.length===0){(a=t.watched)==null||a.call(t.wrapper);for(let o=0;o<t.producerNode.length;o++)t.producerIndexOfThis[o]=Vt(t.producerNode[o],t,o)}return t.liveConsumerIndexOfThis.push(r),t.liveConsumerNode.push(e)-1}function Ee(t,e){var r;if(it(t),B(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){(r=t.unwatched)==null||r.call(t.wrapper);for(let o=0;o<t.producerNode.length;o++)Ee(t.producerNode[o],t.producerIndexOfThis[o])}let a=t.liveConsumerNode.length-1;if(t.liveConsumerNode[e]=t.liveConsumerNode[a],t.liveConsumerIndexOfThis[e]=t.liveConsumerIndexOfThis[a],t.liveConsumerNode.length--,t.liveConsumerIndexOfThis.length--,e<t.liveConsumerNode.length){let o=t.liveConsumerIndexOfThis[e],i=t.liveConsumerNode[e];B(i),i.producerIndexOfThis[o]=e}}function rt(t){var e;return t.consumerIsAlwaysLive||(((e=t?.liveConsumerNode)==null?void 0:e.length)??0)>0}function B(t){t.producerNode??(t.producerNode=[]),t.producerIndexOfThis??(t.producerIndexOfThis=[]),t.producerLastReadVersion??(t.producerLastReadVersion=[])}function it(t){t.liveConsumerNode??(t.liveConsumerNode=[]),t.liveConsumerIndexOfThis??(t.liveConsumerIndexOfThis=[])}function Ht(t){if(Pt(t),Ce(t),t.value===at)throw t.error;return t.value}function ea(t){let e=Object.create(ta);e.computation=t;let r=()=>Ht(e);return r[ke]=e,r}var et=Symbol("UNSET"),tt=Symbol("COMPUTING"),at=Symbol("ERRORED"),ta={...ot,value:et,dirty:!0,error:null,equal:Ot,producerMustRecompute(t){return t.value===et||t.value===tt},producerRecomputeValue(t){if(t.value===tt)throw new Error("Detected cycle in computations.");let e=t.value;t.value=tt;let r=Yr(t),a,o=!1;try{a=t.computation.call(t.wrapper),o=e!==et&&e!==at&&t.equal.call(t.wrapper,e,a)}catch(i){a=at,t.error=i}finally{Xr(t,r)}if(o){t.value=e;return}t.value=a,t.version++}};function ra(){throw new Error}var aa=ra;function oa(){aa()}function ia(t){let e=Object.create(la);e.value=t;let r=()=>(Ce(e),e.value);return r[ke]=e,r}function sa(){return Ce(this),this.value}function na(t,e){Zr()||oa(),t.equal.call(t.wrapper,t.value,e)||(t.value=e,ca(t))}var la={...ot,equal:Ot,value:void 0};function ca(t){t.version++,Gr(),zt(t)}var x=Symbol("node"),_;(t=>{var e,r,a,o,i,n;class l{constructor(v,u={}){$e(this,r),Xe(this,e);let f=ia(v)[ke];if(this[x]=f,f.wrapper=this,u){let $=u.equals;$&&(f.equal=$),f.watched=u[t.subtle.watched],f.unwatched=u[t.subtle.unwatched]}}get(){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return sa.call(this[x])}set(v){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(Fr())throw new Error("Writes to signals not permitted during Watcher callback");let u=this[x];na(u,v)}}e=x,r=new WeakSet,a=function(){},t.isState=h=>typeof h=="object"&&Qe(r,h),t.State=l;class c{constructor(v,u){$e(this,i),Xe(this,o);let f=ea(v)[ke];if(f.consumerAllowSignalWrites=!0,this[x]=f,f.wrapper=this,u){let $=u.equals;$&&(f.equal=$),f.watched=u[t.subtle.watched],f.unwatched=u[t.subtle.unwatched]}}get(){if(!(0,t.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return Ht(this[x])}}o=x,i=new WeakSet,n=function(){},t.isComputed=h=>typeof h=="object"&&Qe(i,h),t.Computed=c,(h=>{var v,u,k,f,$;function Sr(y){let m,p=null;try{p=j(null),m=y()}finally{j(p)}return m}h.untrack=Sr;function kr(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[x].producerNode)==null?void 0:m.map(p=>p.wrapper))??[]}h.introspectSources=kr;function Cr(y){var m;if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called introspectSinks without a Signal argument");return((m=y[x].liveConsumerNode)==null?void 0:m.map(p=>p.wrapper))??[]}h.introspectSinks=Cr;function Er(y){if(!(0,t.isComputed)(y)&&!(0,t.isState)(y))throw new TypeError("Called hasSinks without a Signal argument");let m=y[x].liveConsumerNode;return m?m.length>0:!1}h.hasSinks=Er;function Ar(y){if(!(0,t.isComputed)(y)&&!(0,t.isWatcher)(y))throw new TypeError("Called hasSources without a Computed or Watcher argument");let m=y[x].producerNode;return m?m.length>0:!1}h.hasSources=Ar;class Lr{constructor(m){$e(this,u),$e(this,f),Xe(this,v);let p=Object.create(ot);p.wrapper=this,p.consumerMarkedDirty=m,p.consumerIsAlwaysLive=!0,p.consumerAllowSignalWrites=!1,p.producerNode=[],this[x]=p}watch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");It(this,f,$).call(this,m);let p=this[x];p.dirty=!1;let C=j(p);for(let xe of m)Ce(xe[x]);j(C)}unwatch(...m){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");It(this,f,$).call(this,m);let p=this[x];B(p);for(let C=p.producerNode.length-1;C>=0;C--)if(m.includes(p.producerNode[C].wrapper)){Ee(p.producerNode[C],p.producerIndexOfThis[C]);let xe=p.producerNode.length-1;if(p.producerNode[C]=p.producerNode[xe],p.producerIndexOfThis[C]=p.producerIndexOfThis[xe],p.producerNode.length--,p.producerIndexOfThis.length--,p.nextProducerIndex--,C<p.producerNode.length){let Nr=p.producerIndexOfThis[C],yt=p.producerNode[C];it(yt),yt.liveConsumerIndexOfThis[Nr]=C}}}getPending(){if(!(0,t.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[x].producerNode.filter(p=>p.dirty).map(p=>p.wrapper)}}v=x,u=new WeakSet,k=function(){},f=new WeakSet,$=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=>Qe(u,y),h.Watcher=Lr;function Tr(){var y;return(y=Kr())==null?void 0:y.wrapper}h.currentComputed=Tr,h.watched=Symbol("watched"),h.unwatched=Symbol("unwatched")})(t.subtle||(t.subtle={}))})(_||(_={}));var oo=Symbol("SignalWatcherBrand"),io=new FinalizationRegistry((({watcher:t,signal:e})=>{t.unwatch(e)}));var Ae={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},J=t=>(...e)=>({_$litDirective$:t,values:e}),W=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,r,a){this._$Ct=e,this._$AM=r,this._$Ci=a}_$AS(e,r){return this.update(e,r)}update(e,r){return this.render(...r)}};var X=globalThis,Le=X.trustedTypes,Mt=Le?Le.createPolicy("lit-html",{createHTML:t=>t}):void 0,nt="$lit$",A=`lit$${Math.random().toFixed(9).slice(2)}$`,lt="?"+A,da=`<${lt}>`,M=document,Q=()=>M.createComment(""),ee=t=>t===null||typeof t!="object"&&typeof t!="function",ct=Array.isArray,Wt=t=>ct(t)||typeof t?.[Symbol.iterator]=="function",st=`[
11
+ \f\r]`,Y=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Dt=/-->/g,Rt=/>/g,V=RegExp(`>|${st}(?:([^\\s"'>=/]+)(${st}*=${st}*(?:[^
12
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Ut=/'/g,jt=/"/g,qt=/^(?:script|style|textarea|title)$/i,dt=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),s=dt(1),Kt=dt(2),uo=dt(3),L=Symbol.for("lit-noChange"),b=Symbol.for("lit-nothing"),Bt=new WeakMap,H=M.createTreeWalker(M,129);function Ft(t,e){if(!ct(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Mt!==void 0?Mt.createHTML(e):e}var Gt=(t,e)=>{let r=t.length-1,a=[],o,i=e===2?"<svg>":e===3?"<math>":"",n=Y;for(let l=0;l<r;l++){let c=t[l],h,v,u=-1,k=0;for(;k<c.length&&(n.lastIndex=k,v=n.exec(c),v!==null);)k=n.lastIndex,n===Y?v[1]==="!--"?n=Dt:v[1]!==void 0?n=Rt:v[2]!==void 0?(qt.test(v[2])&&(o=RegExp("</"+v[2],"g")),n=V):v[3]!==void 0&&(n=V):n===V?v[0]===">"?(n=o??Y,u=-1):v[1]===void 0?u=-2:(u=n.lastIndex-v[2].length,h=v[1],n=v[3]===void 0?V:v[3]==='"'?jt:Ut):n===jt||n===Ut?n=V:n===Dt||n===Rt?n=Y:(n=V,o=void 0);let f=n===V&&t[l+1].startsWith("/>")?" ":"";i+=n===Y?c+da:u>=0?(a.push(h),c.slice(0,u)+nt+c.slice(u)+A+f):c+A+(u===-2?l:f)}return[Ft(t,i+(t[r]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),a]},te=class t{constructor({strings:e,_$litType$:r},a){let o;this.parts=[];let i=0,n=0,l=e.length-1,c=this.parts,[h,v]=Gt(e,r);if(this.el=t.createElement(h,a),H.currentNode=this.el.content,r===2||r===3){let u=this.el.content.firstChild;u.replaceWith(...u.childNodes)}for(;(o=H.nextNode())!==null&&c.length<l;){if(o.nodeType===1){if(o.hasAttributes())for(let u of o.getAttributeNames())if(u.endsWith(nt)){let k=v[n++],f=o.getAttribute(u).split(A),$=/([.?@])?(.*)/.exec(k);c.push({type:1,index:i,name:$[2],strings:f,ctor:$[1]==="."?Ne:$[1]==="?"?Ie:$[1]==="@"?Oe:R}),o.removeAttribute(u)}else u.startsWith(A)&&(c.push({type:6,index:i}),o.removeAttribute(u));if(qt.test(o.tagName)){let u=o.textContent.split(A),k=u.length-1;if(k>0){o.textContent=Le?Le.emptyScript:"";for(let f=0;f<k;f++)o.append(u[f],Q()),H.nextNode(),c.push({type:2,index:++i});o.append(u[k],Q())}}}else if(o.nodeType===8)if(o.data===lt)c.push({type:2,index:i});else{let u=-1;for(;(u=o.data.indexOf(A,u+1))!==-1;)c.push({type:7,index:i}),u+=A.length-1}i++}}static createElement(e,r){let a=M.createElement("template");return a.innerHTML=e,a}};function D(t,e,r=t,a){if(e===L)return e;let o=a!==void 0?r._$Co?.[a]:r._$Cl,i=ee(e)?void 0:e._$litDirective$;return o?.constructor!==i&&(o?._$AO?.(!1),i===void 0?o=void 0:(o=new i(t),o._$AT(t,r,a)),a!==void 0?(r._$Co??(r._$Co=[]))[a]=o:r._$Cl=o),o!==void 0&&(e=D(t,o._$AS(t,e.values),o,a)),e}var Te=class{constructor(e,r){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=r}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:r},parts:a}=this._$AD,o=(e?.creationScope??M).importNode(r,!0);H.currentNode=o;let i=H.nextNode(),n=0,l=0,c=a[0];for(;c!==void 0;){if(n===c.index){let h;c.type===2?h=new q(i,i.nextSibling,this,e):c.type===1?h=new c.ctor(i,c.name,c.strings,this,e):c.type===6&&(h=new Pe(i,this,e)),this._$AV.push(h),c=a[++l]}n!==c?.index&&(i=H.nextNode(),n++)}return H.currentNode=M,o}p(e){let r=0;for(let a of this._$AV)a!==void 0&&(a.strings!==void 0?(a._$AI(e,a,r),r+=a.strings.length-2):a._$AI(e[r])),r++}},q=class t{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,r,a,o){this.type=2,this._$AH=b,this._$AN=void 0,this._$AA=e,this._$AB=r,this._$AM=a,this.options=o,this._$Cv=o?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,r=this._$AM;return r!==void 0&&e?.nodeType===11&&(e=r.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,r=this){e=D(this,e,r),ee(e)?e===b||e==null||e===""?(this._$AH!==b&&this._$AR(),this._$AH=b):e!==this._$AH&&e!==L&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Wt(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&&ee(this._$AH)?this._$AA.nextSibling.data=e:this.T(M.createTextNode(e)),this._$AH=e}$(e){let{values:r,_$litType$:a}=e,o=typeof a=="number"?this._$AC(e):(a.el===void 0&&(a.el=te.createElement(Ft(a.h,a.h[0]),this.options)),a);if(this._$AH?._$AD===o)this._$AH.p(r);else{let i=new Te(o,this),n=i.u(this.options);i.p(r),this.T(n),this._$AH=i}}_$AC(e){let r=Bt.get(e.strings);return r===void 0&&Bt.set(e.strings,r=new te(e)),r}k(e){ct(this._$AH)||(this._$AH=[],this._$AR());let r=this._$AH,a,o=0;for(let i of e)o===r.length?r.push(a=new t(this.O(Q()),this.O(Q()),this,this.options)):a=r[o],a._$AI(i),o++;o<r.length&&(this._$AR(a&&a._$AB.nextSibling,o),r.length=o)}_$AR(e=this._$AA.nextSibling,r){for(this._$AP?.(!1,!0,r);e!==this._$AB;){let a=e.nextSibling;e.remove(),e=a}}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,r,a,o,i){this.type=1,this._$AH=b,this._$AN=void 0,this.element=e,this.name=r,this._$AM=o,this.options=i,a.length>2||a[0]!==""||a[1]!==""?(this._$AH=Array(a.length-1).fill(new String),this.strings=a):this._$AH=b}_$AI(e,r=this,a,o){let i=this.strings,n=!1;if(i===void 0)e=D(this,e,r,0),n=!ee(e)||e!==this._$AH&&e!==L,n&&(this._$AH=e);else{let l=e,c,h;for(e=i[0],c=0;c<i.length-1;c++)h=D(this,l[a+c],r,c),h===L&&(h=this._$AH[c]),n||(n=!ee(h)||h!==this._$AH[c]),h===b?e=b:e!==b&&(e+=(h??"")+i[c+1]),this._$AH[c]=h}n&&!o&&this.j(e)}j(e){e===b?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Ne=class extends R{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===b?void 0:e}},Ie=class extends R{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==b)}},Oe=class extends R{constructor(e,r,a,o,i){super(e,r,a,o,i),this.type=5}_$AI(e,r=this){if((e=D(this,e,r,0)??b)===L)return;let a=this._$AH,o=e===b&&a!==b||e.capture!==a.capture||e.once!==a.once||e.passive!==a.passive,i=e!==b&&(a===b||o);o&&this.element.removeEventListener(this.name,this,a),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)}},Pe=class{constructor(e,r,a){this.element=e,this.type=6,this._$AN=void 0,this._$AM=r,this.options=a}get _$AU(){return this._$AM._$AU}_$AI(e){D(this,e)}},Zt={M:nt,P:A,A:lt,C:1,L:Gt,R:Te,D:Wt,V:D,I:q,H:R,N:Ie,U:Oe,B:Ne,F:Pe},ua=X.litHtmlPolyfillSupport;ua?.(te,q),(X.litHtmlVersions??(X.litHtmlVersions=[])).push("3.3.1");var Jt=(t,e,r)=>{let a=r?.renderBefore??e,o=a._$litPart$;if(o===void 0){let i=r?.renderBefore??null;a._$litPart$=o=new q(e.insertBefore(Q(),i),i,void 0,r??{})}return o._$AI(t),o};var{I:go}=Zt;var Yt=t=>t.strings===void 0;var re=(t,e)=>{let r=t._$AN;if(r===void 0)return!1;for(let a of r)a._$AO?.(e,!1),re(a,e);return!0},ze=t=>{let e,r;do{if((e=t._$AM)===void 0)break;r=e._$AN,r.delete(t),t=e}while(r?.size===0)},Xt=t=>{for(let e;e=t._$AM;t=e){let r=e._$AN;if(r===void 0)e._$AN=r=new Set;else if(r.has(t))break;r.add(t),ga(e)}};function ha(t){this._$AN!==void 0?(ze(this),this._$AM=t,Xt(this)):this._$AM=t}function pa(t,e=!1,r=0){let a=this._$AH,o=this._$AN;if(o!==void 0&&o.size!==0)if(e)if(Array.isArray(a))for(let i=r;i<a.length;i++)re(a[i],!1),ze(a[i]);else a!=null&&(re(a,!1),ze(a));else re(this,t)}var ga=t=>{t.type==Ae.CHILD&&(t._$AP??(t._$AP=pa),t._$AQ??(t._$AQ=ha))},Ve=class extends W{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,r,a){super._$AT(e,r,a),Xt(this),this.isConnected=e._$AU}_$AO(e,r=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),r&&(re(this,e),ze(this))}setValue(e){if(Yt(this._$Ct))this._$Ct._$AI(e,this);else{let r=[...this._$Ct._$AH];r[this._$Ci]=e,this._$Ct._$AI(r,this,0)}}disconnected(){}reconnected(){}};var He=class extends Ve{_$Sl(){if(this._$Su!==void 0)return;this._$SW=new _.Computed((()=>{var r;return(r=this._$Sj)===null||r===void 0?void 0:r.get()}));let e=this._$Su=new _.subtle.Watcher((()=>{var r;(r=this._$SO)===null||r===void 0||r._(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(_.subtle.untrack((()=>{var e;return(e=this._$SW)===null||e===void 0?void 0:e.get()})))}render(e){return _.subtle.untrack((()=>e.get()))}update(e,[r]){var a,o;return(a=this._$SO)!==null&&a!==void 0||(this._$SO=(o=e.options)===null||o===void 0?void 0:o.host),r!==this._$Sj&&this._$Sj!==void 0&&this._$Sp(),this._$Sj=r,this._$Sl(),_.subtle.untrack((()=>this._$SW.get()))}disconnected(){this._$Sp()}reconnected(){this._$Sl()}},ut=J(He);var ht=t=>(e,...r)=>t(e,...r.map((a=>a instanceof _.State||a instanceof _.Computed?ut(a):a))),fa=ht(s),ma=ht(Kt);var Po=_.State,zo=_.Computed,ae=(t,e)=>new _.State(t,e);var va={mode:"auto",baseWidth:280,minScale:.75,maxScale:2},Re=ae(1),De=ae(va);function ya(t,e=De.get()){if(e.mode==="fixed")return 1;let r=t/e.baseWidth,a=Math.max(e.minScale,Math.min(e.maxScale,r));return Number(a.toFixed(3))}function jo(t){let r={...De.get(),...t};De.set(r),typeof window<"u"&&Me()}function Me(){if(typeof window>"u"||typeof document>"u")return;let t=document.documentElement.clientWidth,e=De.get(),r=ya(t,e);Re.set(r),document.documentElement.style.setProperty("--sf",r.toString()),window.dispatchEvent(new CustomEvent("scaling-changed",{detail:{scalingFactor:r,config:e}}))}function Bo(){return Re.get()}function Wo(t){return t*Re.get()}function qo(t){let e=Re.get();return e===0?t:t/e}function Qt(){if(typeof window>"u")return;Me();let t;window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{Me()},100)}),window.addEventListener("orientationchange",()=>{setTimeout(Me,100)})}typeof window<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Qt):Qt());function ba(){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 K=ae(ba());function er(t){if(t!==K.get()&&(K.set(t),typeof window<"u")){try{window.localStorage?.setItem("ds-one:theme",t)}catch(r){console.warn("ds-one: unable to persist theme preference",r)}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=K.get(),e=window.document?.documentElement;e&&(e.classList.remove("light-theme","dark-theme"),e.classList.add(`${t}-theme`))}var Ue=globalThis,je=Ue.ShadowRoot&&(Ue.ShadyCSS===void 0||Ue.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,pt=Symbol(),tr=new WeakMap,oe=class{constructor(e,r,a){if(this._$cssResult$=!0,a!==pt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=r}get styleSheet(){let e=this.o,r=this.t;if(je&&e===void 0){let a=r!==void 0&&r.length===1;a&&(e=tr.get(r)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),a&&tr.set(r,e))}return e}toString(){return this.cssText}},g=t=>new oe(typeof t=="string"?t:t+"",void 0,pt),T=(t,...e)=>{let r=t.length===1?t[0]:e.reduce(((a,o,i)=>a+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+t[i+1]),t[0]);return new oe(r,t,pt)},rr=(t,e)=>{if(je)t.adoptedStyleSheets=e.map((r=>r instanceof CSSStyleSheet?r:r.styleSheet));else for(let r of e){let a=document.createElement("style"),o=Ue.litNonce;o!==void 0&&a.setAttribute("nonce",o),a.textContent=r.cssText,t.appendChild(a)}},gt=je?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let r="";for(let a of e.cssRules)r+=a.cssText;return g(r)})(t):t;var{is:wa,defineProperty:xa,getOwnPropertyDescriptor:_a,getOwnPropertyNames:$a,getOwnPropertySymbols:Sa,getPrototypeOf:ka}=Object,O=globalThis,ar=O.trustedTypes,Ca=ar?ar.emptyScript:"",Ea=O.reactiveElementPolyfillSupport,ie=(t,e)=>t,ft={toAttribute(t,e){switch(e){case Boolean:t=t?Ca:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let r=t;switch(e){case Boolean:r=t!==null;break;case Number:r=t===null?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch{r=null}}return r}},ir=(t,e)=>!wa(t,e),or={attribute:!0,type:String,converter:ft,reflect:!1,useDefault:!1,hasChanged:ir};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),O.litPropertyMetadata??(O.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,r=or){if(r.state&&(r.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((r=Object.create(r)).wrapped=!0),this.elementProperties.set(e,r),!r.noAccessor){let a=Symbol(),o=this.getPropertyDescriptor(e,a,r);o!==void 0&&xa(this.prototype,e,o)}}static getPropertyDescriptor(e,r,a){let{get:o,set:i}=_a(this.prototype,e)??{get(){return this[r]},set(n){this[r]=n}};return{get:o,set(n){let l=o?.call(this);i?.call(this,n),this.requestUpdate(e,l,a)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??or}static _$Ei(){if(this.hasOwnProperty(ie("elementProperties")))return;let e=ka(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(ie("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ie("properties"))){let r=this.properties,a=[...$a(r),...Sa(r)];for(let o of a)this.createProperty(o,r[o])}let e=this[Symbol.metadata];if(e!==null){let r=litPropertyMetadata.get(e);if(r!==void 0)for(let[a,o]of r)this.elementProperties.set(a,o)}this._$Eh=new Map;for(let[r,a]of this.elementProperties){let o=this._$Eu(r,a);o!==void 0&&this._$Eh.set(o,r)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let r=[];if(Array.isArray(e)){let a=new Set(e.flat(1/0).reverse());for(let o of a)r.unshift(gt(o))}else e!==void 0&&r.push(gt(e));return r}static _$Eu(e,r){let a=r.attribute;return a===!1?void 0:typeof a=="string"?a: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,r=this.constructor.elementProperties;for(let a of r.keys())this.hasOwnProperty(a)&&(e.set(a,this[a]),delete this[a]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return rr(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,r,a){this._$AK(e,a)}_$ET(e,r){let a=this.constructor.elementProperties.get(e),o=this.constructor._$Eu(e,a);if(o!==void 0&&a.reflect===!0){let i=(a.converter?.toAttribute!==void 0?a.converter:ft).toAttribute(r,a.type);this._$Em=e,i==null?this.removeAttribute(o):this.setAttribute(o,i),this._$Em=null}}_$AK(e,r){let a=this.constructor,o=a._$Eh.get(e);if(o!==void 0&&this._$Em!==o){let i=a.getPropertyOptions(o),n=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:ft;this._$Em=o;let l=n.fromAttribute(r,i.type);this[o]=l??this._$Ej?.get(o)??l,this._$Em=null}}requestUpdate(e,r,a){if(e!==void 0){let o=this.constructor,i=this[e];if(a??(a=o.getPropertyOptions(e)),!((a.hasChanged??ir)(i,r)||a.useDefault&&a.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(o._$Eu(e,a))))return;this.C(e,r,a)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,r,{useDefault:a,reflect:o,wrapped:i},n){a&&!(this._$Ej??(this._$Ej=new Map)).has(e)&&(this._$Ej.set(e,n??r??this[e]),i!==!0||n!==void 0)||(this._$AL.has(e)||(this.hasUpdated||a||(r=void 0),this._$AL.set(e,r)),o===!0&&this._$Em!==e&&(this._$Eq??(this._$Eq=new Set)).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(r){Promise.reject(r)}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[o,i]of this._$Ep)this[o]=i;this._$Ep=void 0}let a=this.constructor.elementProperties;if(a.size>0)for(let[o,i]of a){let{wrapped:n}=i,l=this[o];n!==!0||this._$AL.has(o)||l===void 0||this.C(o,void 0,i,l)}}let e=!1,r=this._$AL;try{e=this.shouldUpdate(r),e?(this.willUpdate(r),this._$EO?.forEach((a=>a.hostUpdate?.())),this.update(r)):this._$EM()}catch(a){throw e=!1,this._$EM(),a}e&&this._$AE(r)}willUpdate(e){}_$AE(e){this._$EO?.forEach((r=>r.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((r=>this._$ET(r,this[r])))),this._$EM()}updated(e){}firstUpdated(e){}};N.elementStyles=[],N.shadowRootOptions={mode:"open"},N[ie("elementProperties")]=new Map,N[ie("finalized")]=new Map,Ea?.({ReactiveElement:N}),(O.reactiveElementVersions??(O.reactiveElementVersions=[])).push("2.1.1");var se=globalThis,d=class extends N{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var r;let e=super.createRenderRoot();return(r=this.renderOptions).renderBefore??(r.renderBefore=e.firstChild),e}update(e){let r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=Jt(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return L}};d._$litElement$=!0,d.finalized=!0,se.litElementHydrateSupport?.({LitElement:d});var Aa=se.litElementPolyfillSupport;Aa?.({LitElement:d});(se.litElementVersions??(se.litElementVersions=[])).push("4.2.1");var sr={};var Be=class extends d{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._currentLanguage=S.value,this.boundHandlers={languageChanged:(()=>{console.log("Language changed event received in ds-text"),this._currentLanguage=S.value,this._updateLanguageAttribute(),this._loadText(),this.requestUpdate()})}}connectedCallback(){super.connectedCallback(),this._currentLanguage=S.value,this._updateLanguageAttribute(),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()}_updateLanguageAttribute(){let r=(this._currentLanguage||S.value||"").toLowerCase().split(/[-_]/).filter(Boolean),a=r[0]||"";if(a==="ja"){this.setAttribute("data-language","ja");return}if(a==="zh"){let o=r.includes("hans")||r.includes("cn")||r.includes("sg"),i=r.includes("hant")||r.includes("tw")||r.includes("hk")||r.includes("mo");o?this.setAttribute("data-language","zh-hans"):i?this.setAttribute("data-language","zh-hant"):this.setAttribute("data-language","zh");return}this.removeAttribute("data-language")}_loadText(){if(!this.key){this._text=this.defaultValue||this.fallback||"",this._updateLanguageAttribute(),this.requestUpdate();return}try{let e=U(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._updateLanguageAttribute(),this.requestUpdate()}render(){return s`<span>${this._text||this.defaultValue||this.key}</span>`}};Be.styles=g(sr);customElements.define("ds-text",Be);var nr={};var ne=class extends d{constructor(){super(),this.variant="title",this.disabled=!1,this.bold=!1,this["no-background"]=!1,this.blank=!1,this.key="",this.fallback="",this.language="en-US",this.defaultText="",this.href="",this._loading=!1}connectedCallback(){super.connectedCallback()}render(){let e=this.key||this.defaultText||this.fallback;return s`
31
13
  <button
32
14
  class=${this.variant}
33
15
  ?disabled=${this.disabled}
@@ -35,78 +17,121 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
35
17
  ?no-background=${this["no-background"]}
36
18
  @click=${this._handleClick}
37
19
  >
38
- ${e?a`<ds-text
20
+ ${e?s`<ds-text
39
21
  .key=${this.key}
40
22
  .defaultValue=${this.defaultText}
41
23
  .fallback=${this.fallback}
42
- ></ds-text>`:a`<slot></slot>`}
24
+ ></ds-text>`:s`<slot></slot>`}
43
25
  </button>
44
- `}_handleClick(e){if(this.disabled){e.preventDefault(),e.stopPropagation();return}if(this.href){e.preventDefault(),e.stopPropagation(),this.blank?window.open(this.href,"_blank","noopener,noreferrer"):window.location.href=this.href;return}}};ne.properties={variant:{type:String,reflect:!0},disabled:{type:Boolean,reflect:!0},bold:{type:Boolean,reflect:!0},"no-background":{type:Boolean,reflect:!0,attribute:"no-background"},blank:{type:Boolean,reflect:!0},key:{type:String},fallback:{type:String},language:{type:String},defaultText:{type:String,attribute:"default-text"},href:{type:String},_loading:{type:Boolean,state:!0}};ne.styles=p`
45
- button {
46
- max-height: calc(var(--08) * var(--sf));
47
- display: inline-flex;
48
- align-items: center;
49
- justify-content: center;
26
+ `}_handleClick(e){if(this.disabled){e.preventDefault(),e.stopPropagation();return}if(this.href){e.preventDefault(),e.stopPropagation(),this.blank?window.open(this.href,"_blank","noopener,noreferrer"):window.location.href=this.href;return}}};ne.properties={variant:{type:String,reflect:!0},disabled:{type:Boolean,reflect:!0},bold:{type:Boolean,reflect:!0},"no-background":{type:Boolean,reflect:!0,attribute:"no-background"},blank:{type:Boolean,reflect:!0},key:{type:String},fallback:{type:String},language:{type:String},defaultText:{type:String,attribute:"default-text"},href:{type:String},_loading:{type:Boolean,state:!0}};ne.styles=g(nr);customElements.define("ds-button",ne);var lr={};var le=class extends d{constructor(){super(...arguments),this.textKey="",this.actionKey="",this.href="",this.mailto="",this.subjectKey="",this.describeKey="",this.appVersionKey="",this.variant="warning",this.version="",this._showVersion=!1,this._boundUpdate=()=>this.requestUpdate()}connectedCallback(){super.connectedCallback(),window.addEventListener("translations-loaded",this._boundUpdate),window.addEventListener("language-changed",this._boundUpdate)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("translations-loaded",this._boundUpdate),window.removeEventListener("language-changed",this._boundUpdate)}_toggleVersion(){this.version&&(this._showVersion=!this._showVersion)}_getMailtoHref(){if(this.href&&this.href!=="#")return this.href;if(this.mailto)try{let e=this.subjectKey?U(this.subjectKey)||this.subjectKey:"Issue report",r=this.describeKey?U(this.describeKey)||this.describeKey:"Describe the issue:",a=this.appVersionKey?U(this.appVersionKey)||this.appVersionKey:"App version:",o=`${r}
27
+
28
+
29
+ ${a} ${this.version||""}`;return`mailto:${this.mailto}?subject=${encodeURIComponent(e)}&body=${encodeURIComponent(o)}`}catch{return`mailto:${this.mailto}?subject=Issue%20report&body=Describe%20the%20issue%3A%0A%0A%0AApp%20version%3A%20${this.version||""}`}return"#"}render(){let e=this._getMailtoHref();return s`
30
+ <div class="text-wrapper" @click=${this._toggleVersion}>
31
+ ${this._showVersion&&this.version?s`<ds-text default-value=${this.version}></ds-text>`:s`<ds-text key=${this.textKey}><slot></slot></ds-text>`}
32
+ </div>
33
+ ${this.actionKey?s`
34
+ <div class="action-wrapper">
35
+ <a href=${e}>
36
+ <ds-text key=${this.actionKey}></ds-text>
37
+ </a>
38
+ </div>
39
+ `:""}
40
+ `}};le.properties={textKey:{type:String,attribute:"text-key"},actionKey:{type:String,attribute:"action-key"},href:{type:String},mailto:{type:String},subjectKey:{type:String,attribute:"subject-key"},describeKey:{type:String,attribute:"describe-key"},appVersionKey:{type:String,attribute:"app-version-key"},variant:{type:String},version:{type:String},_showVersion:{type:Boolean,state:!0}};le.styles=g(lr);customElements.define("ds-banner",le);var ce=class extends d{constructor(){super(),this.variant="default",this.elevation=1,this.interactive=!1,this.disabled=!1,this.padding="medium"}render(){return s`
41
+ <div class="card-content" part="content">
42
+ <slot></slot>
43
+ </div>
44
+ `}};ce.properties={variant:{type:String,reflect:!0},elevation:{type:Number,reflect:!0},interactive:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},padding:{type:String,reflect:!0}};ce.styles=T`
45
+ :host {
46
+ display: block;
47
+ box-sizing: border-box;
48
+ border-radius: calc(var(--025) * var(--sf, 1));
49
+ background-color: var(--card-background, var(--surface-color, #fff));
50
+ color: var(--text-color-primary);
51
+ transition:
52
+ box-shadow 0.2s ease,
53
+ transform 0.2s ease;
54
+ }
55
+
56
+ :host([variant="default"]) {
57
+ background-color: var(--card-background, var(--surface-color, #fff));
58
+ border: 1px solid var(--border-color, rgba(0, 0, 0, 0.1));
59
+ }
60
+
61
+ :host([variant="outlined"]) {
62
+ background-color: transparent;
63
+ border: 1px solid var(--border-color, rgba(0, 0, 0, 0.2));
64
+ }
65
+
66
+ :host([variant="elevated"]) {
67
+ background-color: var(--card-background, var(--surface-color, #fff));
50
68
  border: none;
51
- cursor: pointer;
52
- padding: 0 calc(0.5px * var(--sf));
53
- color: var(--button-text-color);
54
- font-family: var(--typeface-regular);
69
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
55
70
  }
56
71
 
57
- button.title {
58
- background-color: var(--button-background-color-secondary);
59
- color: var(--button-text-color);
72
+ :host([variant="filled"]) {
73
+ background-color: var(
74
+ --card-background-filled,
75
+ var(--surface-color-secondary, #f5f5f5)
76
+ );
77
+ border: none;
60
78
  }
61
79
 
62
- button.primary {
63
- background-color: var(--accent-color);
64
- color: var(--button-text-color);
65
- text-decoration-line: none;
66
- font-family: var(--typeface-regular);
80
+ :host([elevation="0"]) {
81
+ box-shadow: none;
67
82
  }
68
83
 
69
- button.secondary {
70
- background-color: var(--button-background-color-secondary);
71
- color: var(--button-text-color);
72
- font-family: var(--typeface-regular);
84
+ :host([elevation="1"]) {
85
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
73
86
  }
74
87
 
75
- button.text {
76
- background-color: transparent;
77
- color: var(--button-color, var(--button-text-color));
78
- font-family: var(--typeface-regular);
79
- padding: 0;
80
- text-decoration: none;
88
+ :host([elevation="2"]) {
89
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
81
90
  }
82
91
 
83
- button.text:hover {
84
- opacity: 0.8;
85
- text-decoration: none;
92
+ :host([elevation="3"]) {
93
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);
86
94
  }
87
95
 
88
- button[bold] {
89
- font-weight: var(--type-weight-bold);
90
- font-family: var(--typeface-medium);
96
+ :host([interactive]) {
97
+ cursor: pointer;
91
98
  }
92
99
 
93
- button[no-background] {
94
- background-color: transparent;
95
- max-height: var(--1);
100
+ :host([interactive]:hover:not([disabled])) {
101
+ transform: translateY(-2px);
102
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
103
+ }
104
+
105
+ :host([interactive]:active:not([disabled])) {
106
+ transform: translateY(0);
107
+ }
108
+
109
+ :host([disabled]) {
110
+ opacity: 0.5;
111
+ pointer-events: none;
112
+ }
113
+
114
+ :host([padding="none"]) {
96
115
  padding: 0;
97
- color: var(--button-color, var(--button-text-color-secondary));
98
116
  }
99
117
 
100
- button[no-background][bold] {
101
- font-weight: var(--type-weight-bold);
102
- font-family: var(--typeface-medium);
103
- color: var(--button-color, var(--button-text-color-secondary));
118
+ :host([padding="small"]) {
119
+ padding: calc(var(--025) * var(--sf, 1));
104
120
  }
105
121
 
106
- .loading {
107
- opacity: 0.7;
122
+ :host([padding="medium"]) {
123
+ padding: calc(var(--05) * var(--sf, 1));
108
124
  }
109
- `;customElements.define("ds-button",ne);var ie=class extends W{constructor(e){if(super(e),this.it=w,e.type!==xe.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===T)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 r=[e];return r.raw=r,this._t={_$litType$:this.constructor.resultType,strings:r,values:[]}}};ie.directiveName="unsafeHTML",ie.resultType=1;var Xt=K(ie);var q=class t extends h{get type(){return this._type}set type(e){let r=this._type;this._type=e,this.requestUpdate("type",r)}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">${Xt(e)}</div>`;switch(this._type.toLowerCase()){case"close":return console.log("Rendering close icon"),a`
125
+
126
+ :host([padding="large"]) {
127
+ padding: calc(var(--1) * var(--sf, 1));
128
+ }
129
+
130
+ .card-content {
131
+ width: 100%;
132
+ height: 100%;
133
+ }
134
+ `;customElements.define("ds-card",ce);var de=class extends W{constructor(e){if(super(e),this.it=b,e.type!==Ae.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===L)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 r=[e];return r.raw=r,this._t={_$litType$:this.constructor.resultType,strings:r,values:[]}}};de.directiveName="unsafeHTML",de.resultType=1;var cr=J(de);var dr={};var F=class t extends d{get type(){return this._type}set type(e){let r=this._type;this._type=e,this.requestUpdate("type",r)}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"),s`<div class="icon-container"><slot></slot></div>`;let e=t.iconNameToSvgMap[this._type.toLowerCase()];if(e)return s`<div class="icon-container">${cr(e)}</div>`;switch(this._type.toLowerCase()){case"close":return console.log("Rendering close icon"),s`
110
135
  <div class="icon-container">
111
136
  <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
112
137
  <path
@@ -114,7 +139,7 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
114
139
  />
115
140
  </svg>
116
141
  </div>
117
- `;case"page":return console.log("Rendering page icon"),a`
142
+ `;case"page":return console.log("Rendering page icon"),s`
118
143
  <div class="icon-container">
119
144
  <svg viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
120
145
  <rect
@@ -129,7 +154,7 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
129
154
  />
130
155
  </svg>
131
156
  </div>
132
- `;case"note":return console.log("Rendering note icon"),a`
157
+ `;case"note":return console.log("Rendering note icon"),s`
133
158
  <div class="icon-container">
134
159
  <svg viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
135
160
  <rect
@@ -148,7 +173,7 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
148
173
  />
149
174
  </svg>
150
175
  </div>
151
- `;case"default":return console.log("Rendering default icon"),a`
176
+ `;case"default":return console.log("Rendering default icon"),s`
152
177
  <div class="icon-container">
153
178
  <svg
154
179
  width="17"
@@ -175,7 +200,7 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
175
200
  />
176
201
  </svg>
177
202
  </div>
178
- `;case"big":return console.log("Rendering big icon"),a`
203
+ `;case"big":return console.log("Rendering big icon"),s`
179
204
  <div class="icon-container">
180
205
  <svg
181
206
  width="17"
@@ -214,7 +239,7 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
214
239
  </defs>
215
240
  </svg>
216
241
  </div>
217
- `;case"gallery":return console.log("Rendering gallery icon"),a`
242
+ `;case"gallery":return console.log("Rendering gallery icon"),s`
218
243
  <div class="icon-container">
219
244
  <svg
220
245
  width="17"
@@ -249,7 +274,7 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
249
274
  </defs>
250
275
  </svg>
251
276
  </div>
252
- `;case"check":return console.log("Rendering check icon"),a`
277
+ `;case"check":return console.log("Rendering check icon"),s`
253
278
  <div class="icon-container">
254
279
  <svg
255
280
  viewBox="0 0 17 17"
@@ -268,245 +293,189 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
268
293
  />
269
294
  </svg>
270
295
  </div>
271
- `;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=p`
272
- :host {
273
- display: inline-flex;
274
- justify-content: center;
275
- align-items: center;
276
- width: calc(16px * var(--sf));
277
- height: calc(16px * var(--sf));
278
- }
279
-
280
- svg {
281
- width: 100%;
282
- height: 100%;
283
- fill: var(--icon-color, currentColor);
284
- }
285
-
286
- path {
287
- fill: var(--icon-color, currentColor);
288
- }
289
-
290
- .icon-container {
291
- display: flex;
292
- justify-content: center;
293
- align-items: center;
294
- width: calc(16px * var(--sf));
295
- height: calc(16px * var(--sf));
296
- }
297
-
298
- /* Notes style color variable for future implementation */
299
- :host {
300
- --notes-style-color: #ffb6b9;
301
- }
302
- `;q.iconNameToSvgMap=(()=>{try{let t=import.meta.glob("../x Icon/*.svg",{as:"raw",eager:!0}),e={};for(let[r,s]of Object.entries(t)){let i=(r.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 ns=t=>{localStorage.setItem("accentColor",t)},at=()=>localStorage.getItem("accentColor")||"--sharp-blue",ot=()=>{let t=at();document.documentElement.style.setProperty("--accent-color",`var(${t})`)},is=t=>{localStorage.setItem("notesStyleMedium",t)},Qt=()=>localStorage.getItem("notesStyleMedium")||"note",er=t=>{localStorage.setItem("pageStyle",t)},oe=()=>localStorage.getItem("pageStyle")||"note",Pe=class extends h{static get properties(){return{type:{type:String},values:{type:Array},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.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=Re();this.values=e,this.currentValue=S.value}else if(this.type==="theme"){this.values=["light","dark"];let e=B.get();this.currentValue=e}else if(this.type==="accent-color"){this.values=["--apple-green","--every-green","--zenith-blue","--sharp-blue","--pink","--tuned-red","--orange","--yellow"];let e=at();this.currentValue=e,ot()}else if(this.type==="notes-style-medium"){this.values=["default","big","gallery"];let e=Qt();this.currentValue=e;let r=oe();this.disabled=r==="note"}else if(this.type==="page-style"){this.values=["note","page"];let e=oe();this.currentValue=e}else this.type==="icon-only"&&(this.values=["note","page"],this.currentValue=this.values[0]);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,r,s){super.attributeChangedCallback(e,r,s),e==="type"&&r!==s&&this.initializeValues()}async setupInitialValue(){if(this.type==="language"){let e=S.value;this.currentValue=e}else if(this.type==="theme"){let e=B.get();this.currentValue=e}else if(this.type==="accent-color"){let e=at();this.currentValue=e,ot()}else if(this.type==="notes-style-medium"){let e=Qt();this.currentValue=e;let r=oe();this.disabled=r==="note"}else if(this.type==="page-style"){let e=oe();this.currentValue=e}else if(this.type==="icon-only"){let e=oe();this.currentValue=e}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,n=this.values[s];this.currentValue=n,document.startViewTransition?document.startViewTransition(()=>{Ue(n)}):Ue(n),P({language:n}),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:n}}))}else if(this.type==="theme"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,n=this.values[s];this.currentValue=n,qt(n),P({theme:n})}else if(this.type==="accent-color"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,n=this.values[s];this.currentValue=n,ns(n),ot(),P({accentColor:n}),window.dispatchEvent(new CustomEvent("accent-color-changed",{detail:{color:n}}))}else if(this.type==="notes-style-medium"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,n=this.values[s];this.currentValue=n,is(n),P({notesStyleMedium:n}),window.dispatchEvent(new CustomEvent("notes-style-medium-changed",{detail:{style:n}}))}else if(this.type==="page-style"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,n=this.values[s];this.currentValue=n,er(n),P({pageStyle:n}),window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:n}}))}else if(this.type==="icon-only"){let s=(this.values.indexOf(this.currentValue)+1)%this.values.length,n=this.values[s];this.currentValue=n,er(n),P({pageStyle:n}),window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:n}}))}this.requestUpdate()}}getValueDisplay(e){if(this.type==="language")return xt(e,{locale:S.value});if(this.type==="theme"){if(this.translationsReady){let r=O(e);if(r&&r!==e)return r}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 r=O(e==="note"?"note":"page");if(r&&r!==(e==="note"?"note":"page"))return r}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}getColorKey(e){return{"--tuned-red":"red","--orange":"orange","--yellow":"yellow","--apple-green":"appleGreen","--every-green":"green","--zenith-blue":"lightBlue","--sharp-blue":"blue","--pink":"pink"}[e]||e.replace("--","").replace("-"," ")}getColorName(e){let s={"--tuned-red":"red","--orange":"orange","--yellow":"yellow","--apple-green":"appleGreen","--every-green":"green","--zenith-blue":"lightBlue","--sharp-blue":"blue","--pink":"pink"}[e];if(s&&this.translationsReady){let n=O(s);if(n&&n!==s)return n}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>`}render(){return a`
296
+ `;default:return console.log(`Unknown icon type: ${this._type}, rendering default slot`),s`<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()}};F.properties={type:{type:String,reflect:!0}};F.styles=g(dr);F.iconNameToSvgMap=(()=>{try{let t=import.meta.glob("../x Icon/*.svg",{as:"raw",eager:!0}),e={};for(let[r,a]of Object.entries(t)){let i=(r.split("/").pop()??"").replace(/\.svg$/i,"").toLowerCase();i&&(e[i]=a)}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",F);console.log("Icon component registered with custom elements registry");var ur={};var Pa=t=>{localStorage.setItem("accentColor",t)},vt=()=>localStorage.getItem("accentColor")||"--sharp-blue",mt=()=>{let t=vt();document.documentElement.style.setProperty("--accent-color",`var(${t})`)},za=t=>{localStorage.setItem("notesStyleMedium",t)},hr=()=>localStorage.getItem("notesStyleMedium")||"note",pr=t=>{localStorage.setItem("pageStyle",t)},ue=()=>localStorage.getItem("pageStyle")||"note",We=class extends d{static get properties(){return{type:{type:String},values:{type:Array},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.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=Je();this.values=e,this.currentValue=S.value}else if(this.type==="theme"){this.values=["light","dark"];let e=K.get();this.currentValue=e}else if(this.type==="accent-color"){this.values=["--apple-green","--every-green","--zenith-blue","--sharp-blue","--pink","--tuned-red","--orange","--yellow"];let e=vt();this.currentValue=e,mt()}else if(this.type==="notes-style-medium"){this.values=["default","big","gallery"];let e=hr();this.currentValue=e;let r=ue();this.disabled=r==="note"}else if(this.type==="page-style"){this.values=["note","page"];let e=ue();this.currentValue=e}else this.type==="icon-only"&&(this.values=["note","page"],this.currentValue=this.values[0]);this.requestUpdate()}ensureThemeInitialized(){if(!localStorage.getItem("theme")){let a=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";localStorage.setItem("theme",a),document.documentElement.classList.add(`${a}-theme`)}}attributeChangedCallback(e,r,a){super.attributeChangedCallback(e,r,a),e==="type"&&r!==a&&this.initializeValues()}async setupInitialValue(){if(this.type==="language"){let e=S.value;this.currentValue=e}else if(this.type==="theme"){let e=K.get();this.currentValue=e}else if(this.type==="accent-color"){let e=vt();this.currentValue=e,mt()}else if(this.type==="notes-style-medium"){let e=hr();this.currentValue=e;let r=ue();this.disabled=r==="note"}else if(this.type==="page-style"){let e=ue();this.currentValue=e}else if(this.type==="icon-only"){let e=ue();this.currentValue=e}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 a=(this.values.indexOf(this.currentValue)+1)%this.values.length,o=this.values[a];this.currentValue=o,document.startViewTransition?document.startViewTransition(()=>{Ye(o)}):Ye(o),z({language:o}),window.dispatchEvent(new CustomEvent("language-changed",{detail:{language:o}}))}else if(this.type==="theme"){let a=(this.values.indexOf(this.currentValue)+1)%this.values.length,o=this.values[a];this.currentValue=o,er(o),z({theme:o})}else if(this.type==="accent-color"){let a=(this.values.indexOf(this.currentValue)+1)%this.values.length,o=this.values[a];this.currentValue=o,Pa(o),mt(),z({accentColor:o}),window.dispatchEvent(new CustomEvent("accent-color-changed",{detail:{color:o}}))}else if(this.type==="notes-style-medium"){let a=(this.values.indexOf(this.currentValue)+1)%this.values.length,o=this.values[a];this.currentValue=o,za(o),z({notesStyleMedium:o}),window.dispatchEvent(new CustomEvent("notes-style-medium-changed",{detail:{style:o}}))}else if(this.type==="page-style"){let a=(this.values.indexOf(this.currentValue)+1)%this.values.length,o=this.values[a];this.currentValue=o,pr(o),z({pageStyle:o}),window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:o}}))}else if(this.type==="icon-only"){let a=(this.values.indexOf(this.currentValue)+1)%this.values.length,o=this.values[a];this.currentValue=o,pr(o),z({pageStyle:o}),window.dispatchEvent(new CustomEvent("page-style-changed",{detail:{behavior:o}}))}this.requestUpdate()}}getValueDisplay(e){if(this.type==="language")return Nt(e,{locale:S.value});if(this.type==="theme"){if(this.translationsReady){let r=P(e);if(r&&r!==e)return r}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 r=P(e==="note"?"note":"page");if(r&&r!==(e==="note"?"note":"page"))return r}return e}else if(this.type==="icon-only")return e==="note"?s`<ds-icon type="note"></ds-icon>`:e==="page"?s`<ds-icon type="page"></ds-icon>`:s`<span>${e}</span>`}return e}getColorKey(e){return{"--tuned-red":"red","--orange":"orange","--yellow":"yellow","--apple-green":"appleGreen","--every-green":"green","--zenith-blue":"lightBlue","--sharp-blue":"blue","--pink":"pink"}[e]||e.replace("--","").replace("-"," ")}getColorName(e){let a={"--tuned-red":"red","--orange":"orange","--yellow":"yellow","--apple-green":"appleGreen","--every-green":"green","--zenith-blue":"lightBlue","--sharp-blue":"blue","--pink":"pink"}[e];if(a&&this.translationsReady){let o=P(a);if(o&&o!==a)return o}return e.replace("--","").replace("-"," ")}getNotesStyleIcon(e){return e==="page"?s`<ds-icon type="page"></ds-icon>`:e==="note"?s`<ds-icon type="note"></ds-icon>`:e==="default"?s`<ds-icon type="default"></ds-icon>`:e==="big"?s`<ds-icon type="big"></ds-icon>`:e==="gallery"?s`<ds-icon type="gallery"></ds-icon>`:s`<span>${e}</span>`}render(){return s`
303
297
  <div class="cycle">
304
298
  <ds-button
305
299
  variant=${this.variant||(this.type==="language"||this.type==="theme"?"secondary":"primary")}
306
300
  ?disabled=${this.disabled}
307
301
  @click=${this.handleButtonClick}
308
302
  >
309
- ${this.type==="notes-style-medium"||this.type==="icon-only"?a`<span
303
+ ${this.type==="notes-style-medium"||this.type==="icon-only"?s`<span
310
304
  style="display: inline-flex; align-items: center; gap: var(--025)"
311
305
  >${this.getValueDisplay(this.currentValue)}</span
312
- >`:this.type==="language"?a`<ds-text
306
+ >`:this.type==="language"?s`<ds-text
313
307
  default-value=${this.getValueDisplay(this.currentValue)}
314
- ></ds-text>`:this.type==="theme"?a`<ds-text
308
+ ></ds-text>`:this.type==="theme"?s`<ds-text
315
309
  key=${this.currentValue}
316
310
  default-value=${this.currentValue}
317
- ></ds-text>`:this.type==="accent-color"?a`<ds-text
311
+ ></ds-text>`:this.type==="accent-color"?s`<ds-text
318
312
  key=${this.getColorKey(this.currentValue)}
319
313
  default-value=${this.getColorName(this.currentValue)}
320
- ></ds-text>`:this.type==="page-style"?a`<ds-text
314
+ ></ds-text>`:this.type==="page-style"?s`<ds-text
321
315
  key=${this.currentValue}
322
316
  default-value=${this.currentValue}
323
- ></ds-text>`:a`<ds-text
317
+ ></ds-text>`:s`<ds-text
324
318
  default-value=${this.getValueDisplay(this.currentValue)}
325
319
  ></ds-text>`}
326
320
  </ds-button>
327
321
 
328
- ${this.type==="accent-color"?a`
322
+ ${this.type==="accent-color"?s`
329
323
  <div
330
324
  class="color-preview"
331
325
  style="background-color: var(${this.currentValue})"
332
326
  ></div>
333
327
  `:""}
334
328
  </div>
335
- `}async waitForTranslations(){return new Promise(e=>{if(this.translationsReady){e();return}let r=()=>{this.translationsReady=!0,e()};window.addEventListener("translations-loaded",r,{once:!0}),setTimeout(()=>{this.translationsReady=!0,e()},5e3)})}handleTranslationsLoaded(){if(this.translationsReady=!0,this.type==="language"){let e=Re();this.values=e}this.setupInitialValue()}handleLanguageChanged(){this.setupInitialValue()}handleThemeChanged(){this.setupInitialValue()}handleAccentColorChanged(){this.setupInitialValue()}handleNoteBehaviorChanged(){this.setupInitialValue()}};Pe.styles=p`
336
- :host {
337
- display: inline-flex;
338
- align-items: center;
339
- }
340
-
341
- .cycle {
342
- display: inline-flex;
343
- align-items: center;
344
- gap: var(--025);
345
- }
329
+ `}async waitForTranslations(){return new Promise(e=>{if(this.translationsReady){e();return}let r=()=>{this.translationsReady=!0,e()};window.addEventListener("translations-loaded",r,{once:!0}),setTimeout(()=>{this.translationsReady=!0,e()},5e3)})}handleTranslationsLoaded(){if(this.translationsReady=!0,this.type==="language"){let e=Je();this.values=e}this.setupInitialValue()}handleLanguageChanged(){this.setupInitialValue()}handleThemeChanged(){this.setupInitialValue()}handleAccentColorChanged(){this.setupInitialValue()}handleNoteBehaviorChanged(){this.setupInitialValue()}};We.styles=g(ur);customElements.define("ds-cycle",We);var gr={};var qe=class extends d{render(){let e=new Date().getFullYear();return s`<span>${e}</span>`}};qe.styles=g(gr);customElements.define("ds-date",qe);var fr={};var he=class extends d{constructor(){super(),this.size=""}render(){return s``}};he.properties={size:{type:String,reflect:!0}};he.styles=g(fr);customElements.define("ds-gap",he);var pe=class extends d{constructor(){super(),this.type="text",this.name="",this.value="",this.placeholder="",this.placeholderKey="",this.label="",this.labelKey="",this.disabled=!1,this.readonly=!1,this.required=!1,this.autofocus=!1,this.autocomplete="off",this.pattern="",this.minlength=0,this.maxlength=0,this.min="",this.max="",this.step="",this.variant="default",this.error="",this.errorKey="",this._focused=!1}_handleInput(e){let r=e.target;this.value=r.value,this.dispatchEvent(new CustomEvent("input-change",{detail:{value:this.value,name:this.name},bubbles:!0}))}_handleFocus(){this._focused=!0,this.dispatchEvent(new CustomEvent("input-focus",{bubbles:!0}))}_handleBlur(){this._focused=!1,this.dispatchEvent(new CustomEvent("input-blur",{bubbles:!0}))}focus(){this.shadowRoot?.querySelector("input")?.focus()}blur(){this.shadowRoot?.querySelector("input")?.blur()}select(){this.shadowRoot?.querySelector("input")?.select()}render(){let e=!!(this.error||this.errorKey);return s`
330
+ <div class="input-wrapper">
331
+ ${this.label||this.labelKey?s`
332
+ <label for="input">
333
+ ${this.labelKey?s`<ds-text .key=${this.labelKey}></ds-text>`:this.label}
334
+ </label>
335
+ `:null}
336
+
337
+ <div class="input-container">
338
+ <input
339
+ id="input"
340
+ .type=${this.type}
341
+ .name=${this.name}
342
+ .value=${this.value}
343
+ .placeholder=${this.placeholder}
344
+ ?disabled=${this.disabled}
345
+ ?readonly=${this.readonly}
346
+ ?required=${this.required}
347
+ ?autofocus=${this.autofocus}
348
+ autocomplete=${this.autocomplete}
349
+ pattern=${this.pattern||""}
350
+ minlength=${this.minlength||""}
351
+ maxlength=${this.maxlength||""}
352
+ min=${this.min}
353
+ max=${this.max}
354
+ step=${this.step}
355
+ class=${e?"has-error":""}
356
+ @input=${this._handleInput}
357
+ @focus=${this._handleFocus}
358
+ @blur=${this._handleBlur}
359
+ />
360
+ </div>
346
361
 
347
- .color-preview {
348
- width: var(--05);
349
- height: var(--05);
350
- border-radius: 999px;
351
- border: 1px solid
352
- color-mix(in srgb, var(--text-color-primary) 20%, transparent);
353
- flex: 0 0 auto;
354
- }
355
- `;customElements.define("ds-cycle",Pe);var ae=class extends h{constructor(){super(),this.size=""}render(){return a``}};ae.properties={size:{type:String,reflect:!0}};ae.styles=p`
362
+ ${e?s`
363
+ <div class="error-message">
364
+ ${this.errorKey?s`<ds-text .key=${this.errorKey}></ds-text>`:this.error}
365
+ </div>
366
+ `:null}
367
+ </div>
368
+ `}};pe.properties={type:{type:String,reflect:!0},name:{type:String,reflect:!0},value:{type:String},placeholder:{type:String},placeholderKey:{type:String,attribute:"placeholder-key"},label:{type:String},labelKey:{type:String,attribute:"label-key"},disabled:{type:Boolean,reflect:!0},readonly:{type:Boolean,reflect:!0},required:{type:Boolean,reflect:!0},autofocus:{type:Boolean},autocomplete:{type:String},pattern:{type:String},minlength:{type:Number},maxlength:{type:Number},min:{type:String},max:{type:String},step:{type:String},variant:{type:String,reflect:!0},error:{type:String},errorKey:{type:String,attribute:"error-key"},_focused:{type:Boolean,state:!0}};pe.styles=T`
356
369
  :host {
357
370
  display: block;
358
371
  width: 100%;
359
- /* Default if no attribute is provided */
360
- --gap-size: var(--unit);
361
- height: var(--gap-size);
362
- flex: 0 0 auto;
363
372
  }
364
373
 
365
- /* Semantic sizing tokens (from DS1/1-root/one.css) */
366
- :host([tenth]) {
367
- --gap-size: var(--tenth);
368
- }
369
- :host([quarter]) {
370
- --gap-size: var(--quarter);
371
- }
372
- :host([half]) {
373
- --gap-size: var(--half);
374
- }
375
- :host([eight-tenth]) {
376
- --gap-size: var(--eight-tenth);
377
- }
378
- :host([unit]) {
379
- --gap-size: var(--unit);
380
- }
381
- :host([double]) {
382
- --gap-size: var(--double);
383
- }
384
- :host([triple]) {
385
- --gap-size: var(--triple);
386
- }
387
- :host([quad]) {
388
- --gap-size: var(--quad);
389
- }
390
- :host([oct]) {
391
- --gap-size: var(--oct);
392
- }
393
- :host([dozen]) {
394
- --gap-size: var(--dozen);
374
+ .input-wrapper {
375
+ display: flex;
376
+ flex-direction: column;
377
+ gap: calc(var(--025) * var(--sf, 1));
378
+ width: 100%;
395
379
  }
396
380
 
397
- /* Raw scale sizing (size="...") */
398
- :host([size="01"]) {
399
- --gap-size: var(--01);
400
- }
401
- :host([size="025"]) {
402
- --gap-size: var(--025);
403
- }
404
- :host([size="05"]) {
405
- --gap-size: var(--05);
406
- }
407
- :host([size="08"]) {
408
- --gap-size: var(--08);
409
- }
410
- :host([size="1"]) {
411
- --gap-size: var(--1);
412
- }
413
- :host([size="2"]) {
414
- --gap-size: var(--2);
381
+ label {
382
+ font-family: var(--typeface-regular);
383
+ font-size: calc(12px * var(--sf, 1));
384
+ color: var(--text-color-secondary);
415
385
  }
416
- :host([size="3"]) {
417
- --gap-size: var(--3);
386
+
387
+ .input-container {
388
+ position: relative;
389
+ display: flex;
390
+ align-items: center;
391
+ width: 100%;
418
392
  }
419
- :host([size="4"]) {
420
- --gap-size: var(--4);
393
+
394
+ input {
395
+ width: 100%;
396
+ height: calc(var(--1) * var(--sf, 1));
397
+ padding: 0 calc(var(--025) * var(--sf, 1));
398
+ font-family: var(--typeface-regular);
399
+ font-size: calc(14px * var(--sf, 1));
400
+ color: var(--text-color-primary);
401
+ background-color: var(--input-background, transparent);
402
+ border: 1px solid var(--input-border-color, var(--border-color, #ccc));
403
+ border-radius: calc(var(--025) * var(--sf, 1));
404
+ outline: none;
405
+ transition:
406
+ border-color 0.2s ease,
407
+ box-shadow 0.2s ease;
408
+ box-sizing: border-box;
421
409
  }
422
- :host([size="8"]) {
423
- --gap-size: var(--8);
410
+
411
+ input::placeholder {
412
+ color: var(--text-color-tertiary, #999);
424
413
  }
425
- :host([size="12"]) {
426
- --gap-size: var(--12);
414
+
415
+ input:focus {
416
+ border-color: var(--accent-color, #007aff);
417
+ box-shadow: 0 0 0 2px var(--input-focus-ring, rgba(0, 122, 255, 0.2));
427
418
  }
428
- `;customElements.define("ds-gap",ae);var le=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()}_loadText(){if(!this.key){this._text=this.defaultValue||"",this.requestUpdate();return}try{let e=O(this.key);this._text=e&&e!==this.key?e: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`
429
- <span class="slot-wrapper"><slot></slot></span>
430
- ${this._text?a`<div class="${e}">${this._text}</div>`:null}
431
- `}};le.properties={key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{state:!0},_visible:{state:!0}};le.styles=p`
432
- :host {
433
- position: relative;
434
- display: inline-block;
419
+
420
+ input:disabled {
421
+ opacity: 0.5;
422
+ cursor: not-allowed;
423
+ background-color: var(--input-disabled-background, #f5f5f5);
435
424
  }
436
425
 
437
- .slot-wrapper {
438
- display: inline-flex;
439
- align-items: center;
426
+ input:read-only {
427
+ background-color: var(--input-readonly-background, #fafafa);
440
428
  }
441
429
 
442
- .bubble {
443
- display: flex;
444
- align-items: center;
445
- justify-content: center;
446
- position: absolute;
447
- left: 50%;
448
- bottom: 100%;
449
- transform: translate(-50%, calc(-2px * var(--sf)));
450
- z-index: 1000;
451
- pointer-events: none;
452
- height: calc(var(--08) * var(--sf));
453
- opacity: 0;
454
- transition:
455
- opacity 120ms ease,
456
- transform 120ms ease;
457
- background-color: light-dark(var(--black), var(--white));
458
- color: light-dark(var(--white), var(--black));
459
- border-radius: 0;
460
- font-size: var(--type-size-default);
461
- padding: 0px calc(1px * var(--sf));
462
- font-family: var(
463
- --typeface-regular,
464
- -apple-system,
465
- BlinkMacSystemFont,
466
- "Segoe UI",
467
- Roboto,
468
- sans-serif
430
+ :host([variant="filled"]) input {
431
+ background-color: var(
432
+ --input-filled-background,
433
+ var(--surface-color-secondary, #f5f5f5)
469
434
  );
470
- font-weight: 500;
471
- white-space: nowrap;
472
- min-width: max-content;
435
+ border: none;
436
+ border-bottom: 2px solid var(--border-color, #ccc);
437
+ border-radius: calc(var(--025) * var(--sf, 1))
438
+ calc(var(--025) * var(--sf, 1)) 0 0;
473
439
  }
474
440
 
475
- .bubble.visible {
476
- opacity: 1;
441
+ :host([variant="filled"]) input:focus {
442
+ border-bottom-color: var(--accent-color, #007aff);
443
+ box-shadow: none;
477
444
  }
478
- `;customElements.define("ds-tooltip",le);var He=class extends h{render(){let e=new Date().getFullYear();return a`<span>${e}</span>`}};He.styles=p`
479
- :host {
480
- display: inline;
481
- font-family: var(--typeface-regular, var(--typeface-regular-regular));
482
- font-size: inherit;
483
- color: inherit;
445
+
446
+ :host([variant="outlined"]) input {
447
+ background-color: transparent;
448
+ border: 2px solid var(--border-color, #ccc);
484
449
  }
485
- `;customElements.define("ds-date",He);var Ve=class extends h{render(){return a`<slot></slot>`}};Ve.styles=p`
486
- :host {
487
- display: flex;
488
- flex-direction: column;
489
- gap: 0;
490
- width: 100%;
450
+
451
+ :host([variant="outlined"]) input:focus {
452
+ border-color: var(--accent-color, #007aff);
491
453
  }
492
- `;customElements.define("ds-list",Ve);var ce=class extends h{constructor(){super(),this.type="fill"}render(){return a`<slot></slot>`}};ce.properties={type:{type:String,reflect:!0}};ce.styles=p`
493
- :host {
494
- display: flex;
495
- align-items: end;
496
- width: calc(240px * var(--sf));
454
+
455
+ .error-message {
456
+ font-family: var(--typeface-regular);
457
+ font-size: calc(12px * var(--sf, 1));
458
+ color: var(--error-color, #ff3b30);
459
+ margin-top: calc(var(--025) * var(--sf, 1));
497
460
  }
498
461
 
499
- :host([type="fill"]) {
500
- justify-content: space-between;
501
- height: calc(var(--1) * var(--sf));
462
+ :host([required]) label::after {
463
+ content: " *";
464
+ color: var(--error-color, #ff3b30);
502
465
  }
503
466
 
504
- :host([type="centered"]) {
505
- justify-content: center;
506
- height: calc(var(--1) * var(--sf));
507
- gap: calc(var(--025) * var(--sf));
467
+ /* Error state */
468
+ input.has-error {
469
+ border-color: var(--error-color, #ff3b30);
508
470
  }
509
- `;customElements.define("ds-row",ce);var de=class extends h{constructor(){super(),this.summaryKey="",this.detailsKey="",this.open=!1}render(){return a`
471
+
472
+ input.has-error:focus {
473
+ box-shadow: 0 0 0 2px rgba(255, 59, 48, 0.2);
474
+ }
475
+ `;customElements.define("ds-input",pe);var mr={};var ge=class extends d{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()}_loadText(){if(!this.key){this._text=this.defaultValue||"",this.requestUpdate();return}try{let e=P(this.key);this._text=e&&e!==this.key?e: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 s`
476
+ <span class="slot-wrapper"><slot></slot></span>
477
+ ${this._text?s`<div class="${e}">${this._text}</div>`:null}
478
+ `}};ge.properties={key:{type:String,reflect:!0},defaultValue:{type:String,reflect:!0,attribute:"default-value"},_text:{state:!0},_visible:{state:!0}};ge.styles=g(mr);customElements.define("ds-tooltip",ge);var vr={};var fe=class extends d{constructor(){super(),this.type="fill"}render(){return s`<slot></slot>`}};fe.properties={type:{type:String,reflect:!0}};fe.styles=g(vr);customElements.define("ds-row",fe);var yr={};var me=class extends d{constructor(){super(),this.summaryKey="",this.detailsKey="",this.open=!1}render(){return s`
510
479
  <details ?open=${this.open}>
511
480
  <summary>
512
481
  <ds-row class="summaryRow" type="centered">
@@ -531,293 +500,237 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
531
500
  <ds-text class="detailsText" .key=${this.detailsKey}></ds-text>
532
501
  </div>
533
502
  </details>
534
- `}};de.properties={summaryKey:{type:String,attribute:"summary-key"},detailsKey:{type:String,attribute:"details-key"},open:{type:Boolean,reflect:!0}};de.styles=p`
503
+ `}};me.properties={summaryKey:{type:String,attribute:"summary-key"},detailsKey:{type:String,attribute:"details-key"},open:{type:Boolean,reflect:!0}};me.styles=g(yr);customElements.define("ds-accordion",me);var ve=class extends d{constructor(){super(),this.action="",this.method="post",this.name="",this.novalidate=!1,this.autocomplete="on",this._isSubmitting=!1}getFormData(){let e={},a=this.shadowRoot?.querySelector("slot")?.assignedElements({flatten:!0})||[];for(let o of a)this._collectFormData(o,e);return e}_collectFormData(e,r){let a=e.getAttribute("name")||e.name;if(a){let i=e.value;i!==void 0&&(e instanceof HTMLInputElement&&(e.type==="checkbox"||e.type==="radio")?e.type==="checkbox"?r[a]=e.checked:e.type==="radio"&&e.checked&&(r[a]=i):r[a]=i)}(e.shadowRoot?.querySelectorAll("*")||e.querySelectorAll("*")).forEach(i=>{this._collectFormData(i,r)})}validate(){let e={valid:!0,errors:{}};if(this.novalidate)return e;let a=this.shadowRoot?.querySelector("slot")?.assignedElements({flatten:!0})||[];for(let o of a)this._validateElement(o,e);return e}_validateElement(e,r){let a=e.getAttribute("name")||e.name;if(e.tagName.toLowerCase()==="ds-input"){let i=e;i.required&&!i.value&&(r.valid=!1,r.errors[a||"unknown"]="This field is required")}(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)&&(e.checkValidity()||(r.valid=!1,r.errors[a||"unknown"]=e.validationMessage)),(e.shadowRoot?.querySelectorAll("*")||e.querySelectorAll("*")).forEach(i=>{this._validateElement(i,r)})}reset(){let r=this.shadowRoot?.querySelector("slot")?.assignedElements({flatten:!0})||[];for(let a of r)this._resetElement(a);this.dispatchEvent(new CustomEvent("form-reset",{bubbles:!0}))}_resetElement(e){(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)&&(e instanceof HTMLInputElement&&e.type==="checkbox"?e.checked=!1:e.value=""),e.tagName.toLowerCase()==="ds-input"&&(e.value=""),(e.shadowRoot?.querySelectorAll("*")||e.querySelectorAll("*")).forEach(a=>{this._resetElement(a)})}async submit(){if(this._isSubmitting)return;let e=this.validate();if(!e.valid){this.dispatchEvent(new CustomEvent("form-invalid",{detail:e.errors,bubbles:!0}));return}this._isSubmitting=!0;let r=this.getFormData();if(this.dispatchEvent(new CustomEvent("form-submit",{detail:{data:r},bubbles:!0})),this.action)try{let a=await fetch(this.action,{method:this.method.toUpperCase(),headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});this.dispatchEvent(new CustomEvent("form-response",{detail:{response:a,data:r},bubbles:!0}))}catch(a){this.dispatchEvent(new CustomEvent("form-error",{detail:{error:a,data:r},bubbles:!0}))}this._isSubmitting=!1}_handleSubmit(e){e.preventDefault(),this.submit()}_handleKeydown(e){e.key==="Enter"&&!e.shiftKey&&e.target.tagName.toLowerCase()!=="textarea"&&(e.preventDefault(),this.submit())}render(){return s`
504
+ <form
505
+ .action=${this.action}
506
+ .method=${this.method}
507
+ .name=${this.name}
508
+ ?novalidate=${this.novalidate}
509
+ autocomplete=${this.autocomplete}
510
+ @submit=${this._handleSubmit}
511
+ @keydown=${this._handleKeydown}
512
+ >
513
+ <slot></slot>
514
+ </form>
515
+ `}};ve.properties={action:{type:String},method:{type:String},name:{type:String},novalidate:{type:Boolean,reflect:!0},autocomplete:{type:String},_isSubmitting:{type:Boolean,state:!0}};ve.styles=T`
535
516
  :host {
536
517
  display: block;
537
- width: calc(240px * var(--sf));
538
- color: var(--text-color-primary);
539
- }
540
-
541
- details {
542
518
  width: 100%;
543
519
  }
544
520
 
545
- summary {
546
- cursor: pointer;
547
- user-select: none;
548
- list-style: none;
549
- outline: none;
550
- }
551
-
552
- summary::-webkit-details-marker {
553
- display: none;
554
- }
555
-
556
- .summaryRow {
521
+ form {
522
+ display: flex;
523
+ flex-direction: column;
524
+ gap: calc(var(--05) * var(--sf, 1));
557
525
  width: 100%;
558
526
  }
559
527
 
560
- ds-icon.chevron {
561
- transform: rotate(0deg);
562
- transition: transform 140ms ease;
563
- }
564
-
565
- details[open] ds-icon.chevron {
566
- transform: rotate(180deg);
567
- }
568
-
569
- .detailsBody {
570
- padding-top: calc(var(--half) * var(--sf));
528
+ ::slotted(*) {
529
+ width: 100%;
571
530
  }
572
531
 
573
- .detailsText {
574
- display: block;
575
- white-space: normal;
576
- text-align: left;
532
+ :host([disabled]) {
533
+ opacity: 0.6;
534
+ pointer-events: none;
577
535
  }
578
- `;customElements.define("ds-accordion",de);var ue=class extends h{constructor(){super(),this.data=[],this.columns=["Product","Users","Retention"],this.showStatus=!0}render(){return a`
536
+ `;customElements.define("ds-form",ve);var br={};var Ke=class extends d{render(){return s`<slot></slot>`}};Ke.styles=g(br);customElements.define("ds-list",Ke);var wr={};var ye=class extends d{constructor(){super(),this.data=[],this.columns=["Product","Users","Retention"],this.showStatus=!0}render(){return s`
579
537
  <div class="table-container">
580
538
  <div class="table-header">
581
539
  <div class="header-cell product-cell">Product</div>
582
540
  <div class="header-cell users-cell">Users</div>
583
541
  <div class="header-cell retention-cell">Retention</div>
584
- ${this.showStatus?a`<div class="header-cell">Status</div>`:""}
542
+ ${this.showStatus?s`<div class="header-cell">Status</div>`:""}
585
543
  </div>
586
544
  <div class="table-body">
587
- ${this.data.map((e,r)=>a`
545
+ ${this.data.map((e,r)=>s`
588
546
  <div class="data-cell product-cell">${e.product}</div>
589
547
  <div class="data-cell users-cell">${e.users}</div>
590
548
  <div class="data-cell retention-cell">${e.retention}</div>
591
- ${this.showStatus?a`<div class="data-cell status-cell">
549
+ ${this.showStatus?s`<div class="data-cell status-cell">
592
550
  ${e.status||"Pending"}
593
551
  </div>`:""}
594
552
  `)}
595
553
  </div>
596
554
  </div>
597
- `}};ue.properties={data:{type:Array},columns:{type:Array},showStatus:{type:Boolean,attribute:"show-status"}};ue.styles=p`
598
- :host {
599
- display: block;
600
- width: 100%;
601
- }
602
-
603
- .table-container {
604
- display: flex;
605
- flex-direction: column;
606
- width: 100%;
607
- }
608
-
609
- .table-header {
610
- display: grid;
611
- grid-template-columns: 160px 80px 80px 80px;
612
- height: 20px;
613
- width: 400px;
614
- }
615
-
616
- .table-body {
617
- display: grid;
618
- grid-template-columns: 160px 80px 80px 80px;
619
- border: 1px solid var(--black);
620
- width: 400px;
621
- }
622
-
623
- .header-cell {
624
- height: 20px;
625
- display: flex;
626
- align-items: center;
627
- justify-content: left;
628
- padding: 0 2px;
629
- font-family: var(--typeface-regular);
630
- font-size: var(--type-size-default);
631
- font-weight: var(--type-weight-default);
632
- line-height: var(--type-lineheight-default);
633
- color: var(--black);
634
- letter-spacing: -0.26px;
635
- }
636
-
637
- .data-cell {
638
- height: 20px;
639
- margin-top: -1px;
640
- display: flex;
641
- align-items: center;
642
- justify-content: left;
643
-
644
- outline: 1px solid var(--black);
645
-
646
- font-family: var(--typeface-regular);
647
- font-size: var(--type-size-default);
648
- font-weight: var(--type-weight-default);
649
- line-height: var(--type-lineheight-default);
650
- color: var(--black);
651
- letter-spacing: -0.26px;
652
- }
653
-
654
- .status-cell {
655
- background-color: var(--apple-green);
656
- }
657
-
658
- .product-cell {
659
- text-align: left;
660
- justify-content: flex-start;
661
- }
662
-
663
- .users-cell,
664
- .retention-cell {
665
- text-align: center;
666
- }
667
-
668
- .status-cell {
669
- text-align: center;
670
- }
671
-
672
- /* Responsive adjustments */
673
- @media (max-width: 480px) {
674
- .table-header,
675
- .table-body {
676
- width: 100%;
677
- grid-template-columns: 1fr 60px 60px 60px;
678
- }
679
- }
680
- `;customElements.define("ds-table",ue);var ze=class extends h{render(){return a`<slot></slot>`}};ze.styles=p`
681
- :host {
682
- display: flex;
683
- width: 100%;
684
- max-width: 100%;
685
- flex-direction: column;
686
- background-color: var(--background-color);
687
- box-sizing: border-box;
688
- }
689
-
690
- /* Ensure children don't overflow */
691
- :host ::slotted(*) {
692
- max-width: 100%;
693
- box-sizing: border-box;
694
- }
695
-
696
- /* Mobile: 100% width */
697
- @media (max-width: 820px) {
698
- :host {
699
- width: 100%;
700
- max-width: 100%;
701
- }
702
- }
703
-
704
- /* Desktop: max-width 1000px, centered */
705
- @media (min-width: 821px) {
706
- :host {
707
- max-width: 1000px;
708
- margin-left: auto;
709
- margin-right: auto;
710
- width: 100%;
711
- }
712
- }
713
- `;customElements.define("ds-container",ze);var he=class extends h{connectedCallback(){super.connectedCallback(),this.updateMobileClass(),this.resizeObserver=()=>{this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.updateMobileClass()},100)},window.addEventListener("resize",this.resizeObserver)}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver&&window.removeEventListener("resize",this.resizeObserver),this.resizeTimeout&&clearTimeout(this.resizeTimeout)}updateMobileClass(){De()?(this.classList.add("mobile"),this.classList.remove("desktop")):(this.classList.add("desktop"),this.classList.remove("mobile"))}render(){return a``}};he.properties={align:{type:String}};he.styles=p`
714
- :host {
715
- margin-top: 0.5px !important;
716
- margin-left: 0.5px !important;
717
- display: grid;
718
- width: 1440px;
719
- height: 1280px;
720
- grid-template-columns: repeat(auto-fill, 19px);
721
- grid-template-rows: repeat(auto-fill, 19px);
722
- gap: 1px;
723
- row-rule: calc(1px * var(--sf)) solid var(--grid-color);
724
- column-rule: calc(1px * var(--sf)) solid var(--grid-color);
725
- outline: calc(1px * var(--sf)) solid var(--yellow);
726
- position: fixed;
727
- top: 0;
728
- left: 50%;
729
- transform: translateX(-50%);
730
- pointer-events: none;
731
- z-index: 300;
732
- }
733
-
734
- /* DO NOT CHANGE THIS GRID CODE FOR MOBILE. ITS PERFECT FOR MOBILE. */
735
- :host(.mobile) {
736
- width: calc(100% - calc(1px * var(--sf)));
737
- max-width: 100vw;
738
- margin-left: 0.5px !important;
739
- margin-top: 0 !important;
740
- box-sizing: border-box;
741
- position: fixed;
742
- top: calc(0.5px * var(--sf));
743
- left: 50%;
744
- transform: translateX(-50%);
745
- pointer-events: none;
746
- z-index: 300;
747
- gap: calc(1px * var(--sf));
748
- grid-template-columns: repeat(14, calc(19px * var(--sf)));
749
- grid-template-rows: repeat(auto-fill, calc(19px * var(--sf)));
750
- }
751
-
752
- :host([align="left"]) {
753
- left: 0;
754
- transform: none;
755
- }
756
-
757
- :host([align="center"]) {
758
- left: 50%;
759
- transform: translateX(-50%);
760
- }
761
-
762
- :host([align="right"]) {
763
- left: auto;
764
- right: 0;
765
- transform: none;
766
- }
767
- `;customElements.define("ds-grid",he);var pe=class extends h{constructor(){super(...arguments),this.mode="portfolio"}render(){let e=this.view||this.mode==="view",r=this.mode==="portfolio",s=this.mode==="company",n=this.mode==="app";return a`
555
+ `}};ye.properties={data:{type:Array},columns:{type:Array},showStatus:{type:Boolean,attribute:"show-status"}};ye.styles=g(wr);customElements.define("ds-table",ye);var xr={};var Fe=class extends d{render(){return s`<slot></slot>`}};Fe.styles=g(xr);customElements.define("ds-container",Fe);var _r={};var be=class extends d{connectedCallback(){super.connectedCallback(),this.updateMobileClass(),this.resizeObserver=()=>{this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.updateMobileClass()},100)},window.addEventListener("resize",this.resizeObserver)}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver&&window.removeEventListener("resize",this.resizeObserver),this.resizeTimeout&&clearTimeout(this.resizeTimeout)}updateMobileClass(){Ze()?(this.classList.add("mobile"),this.classList.remove("desktop")):(this.classList.add("desktop"),this.classList.remove("mobile"))}render(){return s``}};be.properties={align:{type:String}};be.styles=g(_r);customElements.define("ds-grid",be);var $r={};var we=class extends d{constructor(){super(...arguments),this.mode="portfolio"}render(){let e=this.view||this.mode==="view",r=this.mode==="portfolio",a=this.mode==="company",o=this.mode==="app",i=this.mode==="list",n=this.mode==="home";return s`
768
556
  <slot></slot>
769
- ${e?a`
557
+ ${e?s`
770
558
  <div class="view-overlay">
771
- ${n?a`
559
+ ${n?s`
772
560
  <div class="view-area view-banner">
773
- <ds-text key="banner">banner</ds-text>
561
+ <div class="grid-area-label">
562
+ <ds-text key="banner" default-value="banner"></ds-text>
563
+ </div>
774
564
  </div>
775
565
  <div class="view-area view-header">
776
- <ds-text key="header">header</ds-text>
566
+ <div class="grid-area-label">
567
+ <ds-text key="header" default-value="header"></ds-text>
568
+ </div>
777
569
  </div>
778
-
779
- <div class="view-area view-main">
780
- <ds-text key="main">main</ds-text>
570
+ <div class="view-area view-message">
571
+ <div class="grid-area-label">
572
+ <ds-text
573
+ key="message"
574
+ default-value="message"
575
+ ></ds-text>
576
+ </div>
781
577
  </div>
782
- <div class="view-area view-footer">
783
- <ds-text key="footer">footer</ds-text>
578
+ <div class="view-area view-lists">
579
+ <div class="grid-area-label">
580
+ <ds-text key="lists" default-value="lists"></ds-text>
581
+ </div>
784
582
  </div>
785
- `:s?a`
786
- <div class="view-area view-header">
787
- <ds-text key="header">header</ds-text>
583
+ <div class="view-area view-footer">
584
+ <div class="grid-area-label">
585
+ <ds-text key="footer" default-value="footer"></ds-text>
788
586
  </div>
789
- <div class="view-area view-content">
790
- <ds-text key="content">content</ds-text>
587
+ </div>
588
+ `:i?s`
589
+ <div class="view-area view-banner">
590
+ <div class="grid-area-label">
591
+ <ds-text
592
+ key="banner"
593
+ default-value="banner"
594
+ ></ds-text>
595
+ </div>
791
596
  </div>
792
- <div class="view-area view-footer">
793
- <ds-text key="footer">footer</ds-text>
597
+ <div class="view-area view-header">
598
+ <div class="grid-area-label">
599
+ <ds-text
600
+ key="header"
601
+ default-value="header"
602
+ ></ds-text>
603
+ </div>
794
604
  </div>
795
- `:r?a`
796
- <div class="view-area view-square">
797
- <ds-text key="square">square</ds-text>
605
+ <div class="view-area view-board">
606
+ <div class="grid-area-label">
607
+ <ds-text key="board" default-value="board"></ds-text>
798
608
  </div>
799
- <div class="view-area view-title">
800
- <ds-text key="title">title</ds-text>
609
+ </div>
610
+ `:o?s`
611
+ <div class="view-area view-banner">
612
+ <div class="grid-area-label">
613
+ <ds-text
614
+ key="banner"
615
+ default-value="banner"
616
+ ></ds-text>
617
+ </div>
801
618
  </div>
802
619
  <div class="view-area view-header">
803
- <ds-text key="header">header</ds-text>
804
- </div>
805
- <div class="view-area view-projects">
806
- <ds-text key="projects">projects</ds-text>
620
+ <div class="grid-area-label">
621
+ <ds-text
622
+ key="header"
623
+ default-value="header"
624
+ ></ds-text>
625
+ </div>
807
626
  </div>
808
- <div class="view-area view-bio">
809
- <ds-text key="bio">bio</ds-text>
627
+ <div class="view-area view-main">
628
+ <div class="grid-area-label">
629
+ <ds-text key="main" default-value="main"></ds-text>
630
+ </div>
810
631
  </div>
811
- <div class="view-area view-nav">
812
- <ds-text key="nav">nav</ds-text>
632
+ <div class="view-area view-page-dots">
633
+ <div class="grid-area-label">
634
+ <ds-text
635
+ key="pageDots"
636
+ default-value="page-dots"
637
+ ></ds-text>
638
+ </div>
813
639
  </div>
814
640
  <div class="view-area view-footer">
815
- <ds-text key="footer">footer</ds-text>
641
+ <div class="grid-area-label">
642
+ <ds-text
643
+ key="footer"
644
+ default-value="footer"
645
+ ></ds-text>
646
+ </div>
816
647
  </div>
817
- `:""}
648
+ `:a?s`
649
+ <div class="view-area view-header">
650
+ <div class="grid-area-label">
651
+ <ds-text
652
+ key="header"
653
+ default-value="header"
654
+ ></ds-text>
655
+ </div>
656
+ </div>
657
+ <div class="view-area view-content">
658
+ <div class="grid-area-label">
659
+ <ds-text
660
+ key="content"
661
+ default-value="content"
662
+ ></ds-text>
663
+ </div>
664
+ </div>
665
+ <div class="view-area view-footer">
666
+ <div class="grid-area-label">
667
+ <ds-text
668
+ key="footer"
669
+ default-value="footer"
670
+ ></ds-text>
671
+ </div>
672
+ </div>
673
+ `:r?s`
674
+ <div class="view-area view-square">
675
+ <div class="grid-area-label">
676
+ <ds-text
677
+ key="square"
678
+ default-value="square"
679
+ ></ds-text>
680
+ </div>
681
+ </div>
682
+ <div class="view-area view-title">
683
+ <div class="grid-area-label">
684
+ <ds-text
685
+ key="title"
686
+ default-value="title"
687
+ ></ds-text>
688
+ </div>
689
+ </div>
690
+ <div class="view-area view-header">
691
+ <div class="grid-area-label">
692
+ <ds-text
693
+ key="header"
694
+ default-value="header"
695
+ ></ds-text>
696
+ </div>
697
+ </div>
698
+ <div class="view-area view-projects">
699
+ <div class="grid-area-label">
700
+ <ds-text
701
+ key="projects"
702
+ default-value="projects"
703
+ ></ds-text>
704
+ </div>
705
+ </div>
706
+ <div class="view-area view-bio">
707
+ <div class="grid-area-label">
708
+ <ds-text
709
+ key="bio"
710
+ default-value="bio"
711
+ ></ds-text>
712
+ </div>
713
+ </div>
714
+ <div class="view-area view-nav">
715
+ <div class="grid-area-label">
716
+ <ds-text
717
+ key="nav"
718
+ default-value="nav"
719
+ ></ds-text>
720
+ </div>
721
+ </div>
722
+ <div class="view-area view-footer">
723
+ <div class="grid-area-label">
724
+ <ds-text
725
+ key="footer"
726
+ default-value="footer"
727
+ ></ds-text>
728
+ </div>
729
+ </div>
730
+ `:""}
818
731
  </div>
819
732
  `:""}
820
- `}};pe.properties={mode:{type:String},align:{type:String},view:{type:Boolean}};pe.styles=p`
733
+ `}};we.properties={mode:{type:String},align:{type:String},view:{type:Boolean}};we.styles=[g($r),T`
821
734
  :host {
822
735
  display: grid;
823
736
  position: relative;
@@ -873,7 +786,9 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
873
786
  :host([align="left"]),
874
787
  :host([mode="portfolio"][align="left"]),
875
788
  :host([mode="company"][align="left"]),
876
- :host([mode="app"][align="left"]) {
789
+ :host([mode="app"][align="left"]),
790
+ :host([mode="list"][align="left"]),
791
+ :host([mode="home"][align="left"]) {
877
792
  margin: 0;
878
793
  justify-self: start;
879
794
  }
@@ -881,7 +796,9 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
881
796
  :host([align="center"]),
882
797
  :host([mode="portfolio"][align="center"]),
883
798
  :host([mode="company"][align="center"]),
884
- :host([mode="app"][align="center"]) {
799
+ :host([mode="app"][align="center"]),
800
+ :host([mode="list"][align="center"]),
801
+ :host([mode="home"][align="center"]) {
885
802
  margin: 0 auto;
886
803
  justify-self: center;
887
804
  }
@@ -889,7 +806,9 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
889
806
  :host([align="right"]),
890
807
  :host([mode="portfolio"][align="right"]),
891
808
  :host([mode="company"][align="right"]),
892
- :host([mode="app"][align="right"]) {
809
+ :host([mode="app"][align="right"]),
810
+ :host([mode="list"][align="right"]),
811
+ :host([mode="home"][align="right"]) {
893
812
  margin: 0 0 0 auto;
894
813
  justify-self: end;
895
814
  }
@@ -897,20 +816,10 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
897
816
  /* App mode - Base */
898
817
  :host([mode="app"]) {
899
818
  --app-cols: 100%;
900
- --app-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
901
- calc(var(--unit) * var(--sf)) calc(var(--double) * var(--sf))
902
- calc(var(--dozen) * var(--sf)) calc(var(--quad) * var(--sf))
903
- calc(var(--unit) * var(--sf));
904
- --app-areas: "banner" "." "header" "." "main" "." "footer";
905
819
  --app-overlay-cols: 100%;
906
- --app-overlay-rows: calc(var(--unit) * var(--sf))
907
- calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
908
- calc(var(--double) * var(--sf)) calc(var(--dozen) * var(--sf))
909
- calc(var(--quad) * var(--sf)) calc(var(--unit) * var(--sf));
910
- --app-overlay-areas: "banner" "." "header" "." "main" "." "footer";
911
820
  grid-template-columns: var(--app-cols);
912
- grid-template-rows: var(--app-rows);
913
- grid-template-areas: var(--app-areas);
821
+ grid-template-rows: var(--app-layout);
822
+ grid-template-areas: var(--app-layout-areas);
914
823
  min-height: 100vh;
915
824
  background-color: transparent;
916
825
  width: calc(240px * var(--sf, 1));
@@ -920,8 +829,58 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
920
829
 
921
830
  :host([mode="app"]) .view-overlay {
922
831
  grid-template-columns: var(--app-overlay-cols);
923
- grid-template-rows: var(--app-overlay-rows);
924
- grid-template-areas: var(--app-overlay-areas);
832
+ grid-template-rows: var(--app-layout);
833
+ grid-template-areas: var(--app-layout-areas);
834
+ }
835
+
836
+ /* List mode - Base */
837
+ :host([mode="list"]) {
838
+ --list-cols: 100%;
839
+ --list-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
840
+ calc(var(--unit) * var(--sf)) calc(var(--twenty) * var(--sf));
841
+ --list-areas: "banner" "." "header" "board";
842
+ --list-overlay-cols: 100%;
843
+ --list-overlay-rows: calc(var(--unit) * var(--sf))
844
+ calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))
845
+ calc(var(--twenty) * var(--sf));
846
+ --list-overlay-areas: "banner" "." "header" "board";
847
+ grid-template-columns: var(--list-cols);
848
+ grid-template-rows: var(--list-rows);
849
+ grid-template-areas: var(--list-areas);
850
+ min-height: 100vh;
851
+ background-color: transparent;
852
+ width: calc(240px * var(--sf, 1));
853
+ max-width: calc(240px * var(--sf, 1));
854
+ margin: 0 auto;
855
+ }
856
+
857
+ :host([mode="list"]) .view-overlay {
858
+ grid-template-columns: var(--list-overlay-cols);
859
+ grid-template-rows: var(--list-overlay-rows);
860
+ grid-template-areas: var(--list-overlay-areas);
861
+ }
862
+
863
+ /* Home mode - Base */
864
+ :host([mode="home"]) {
865
+ --home-cols: 100%;
866
+ --home-areas: "banner" "." "header" "." "message" "lists" "." "footer";
867
+ --home-overlay-cols: 100%;
868
+ --home-overlay-areas: "banner" "." "header" "." "message" "lists" "."
869
+ "footer";
870
+ grid-template-columns: var(--home-cols);
871
+ grid-template-rows: var(--home-layout);
872
+ grid-template-areas: var(--home-areas);
873
+ min-height: 100vh;
874
+ background-color: transparent;
875
+ width: calc(240px * var(--sf, 1));
876
+ max-width: calc(240px * var(--sf, 1));
877
+ margin: 0 auto;
878
+ }
879
+
880
+ :host([mode="home"]) .view-overlay {
881
+ grid-template-columns: var(--home-overlay-cols);
882
+ grid-template-rows: var(--home-layout);
883
+ grid-template-areas: var(--home-overlay-areas);
925
884
  }
926
885
 
927
886
  .view-overlay {
@@ -951,52 +910,333 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
951
910
  transparent
952
911
  );
953
912
  opacity: 1;
913
+ position: relative;
914
+ }
915
+
916
+ .grid-area-label {
917
+ position: absolute;
918
+ top: calc(-20px * var(--sf, 1));
919
+ left: 0;
920
+ height: calc(20px * var(--sf, 1));
921
+ width: fit-content;
922
+ display: inline-flex;
923
+ align-items: center;
924
+ justify-content: center;
925
+ padding: 0 calc(4px * var(--sf, 1));
926
+ border-radius: calc(2px * var(--sf, 1));
927
+ z-index: 10000;
928
+ pointer-events: none;
929
+ white-space: nowrap;
930
+ }
931
+
932
+ /* Banner label stays inside the area (first item) */
933
+ :host([mode="app"]) .view-area.view-banner .grid-area-label,
934
+ :host([mode="list"]) .view-area.view-banner .grid-area-label,
935
+ :host([mode="home"]) .view-area.view-banner .grid-area-label,
936
+ :host([mode="company"]) .view-area.view-header .grid-area-label,
937
+ :host([mode="portfolio"]) .view-area.view-square .grid-area-label {
938
+ top: 0;
939
+ }
940
+
941
+ .grid-area-label ds-text {
942
+ font-size: calc(11px * var(--sf, 1));
943
+ line-height: 1;
944
+ color: white;
945
+ text-transform: lowercase;
954
946
  }
955
947
 
956
948
  :host([mode="portfolio"]) .view-area:nth-of-type(1) {
957
949
  background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
958
950
  }
951
+ :host([mode="portfolio"]) .view-area:nth-of-type(1) .grid-area-label {
952
+ background-image:
953
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
954
+ linear-gradient(
955
+ 90deg,
956
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
957
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
958
+ );
959
+ }
959
960
  :host([mode="portfolio"]) .view-area:nth-of-type(2) {
960
961
  border-color: var(--sharp-blue);
961
962
  }
963
+ :host([mode="portfolio"]) .view-area:nth-of-type(2) .grid-area-label {
964
+ background-image:
965
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
966
+ linear-gradient(
967
+ 90deg,
968
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
969
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
970
+ );
971
+ }
962
972
  :host([mode="portfolio"]) .view-area:nth-of-type(3) {
963
973
  border-color: var(--yellow);
964
974
  }
975
+ :host([mode="portfolio"]) .view-area:nth-of-type(3) .grid-area-label {
976
+ background-image:
977
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
978
+ linear-gradient(
979
+ 90deg,
980
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
981
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
982
+ );
983
+ }
965
984
  :host([mode="portfolio"]) .view-area:nth-of-type(4) {
966
985
  border-color: var(--apple-green);
967
986
  }
987
+ :host([mode="portfolio"]) .view-area:nth-of-type(4) .grid-area-label {
988
+ background-image:
989
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
990
+ linear-gradient(
991
+ 90deg,
992
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
993
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
994
+ );
995
+ }
968
996
  :host([mode="portfolio"]) .view-area:nth-of-type(5) {
969
997
  border-color: var(--pink);
970
998
  }
999
+ :host([mode="portfolio"]) .view-area:nth-of-type(5) .grid-area-label {
1000
+ background-image:
1001
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1002
+ linear-gradient(
1003
+ 90deg,
1004
+ color-mix(in srgb, var(--pink) 70%, black) 0%,
1005
+ color-mix(in srgb, var(--pink) 70%, black) 100%
1006
+ );
1007
+ }
971
1008
  :host([mode="portfolio"]) .view-area:nth-of-type(6) {
972
1009
  border-color: var(--orange);
973
1010
  }
1011
+ :host([mode="portfolio"]) .view-area:nth-of-type(6) .grid-area-label {
1012
+ background-image:
1013
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1014
+ linear-gradient(
1015
+ 90deg,
1016
+ color-mix(in srgb, var(--orange) 70%, black) 0%,
1017
+ color-mix(in srgb, var(--orange) 70%, black) 100%
1018
+ );
1019
+ }
974
1020
  :host([mode="portfolio"]) .view-area:nth-of-type(7) {
975
1021
  border-color: var(--zenith-blue);
976
1022
  }
1023
+ :host([mode="portfolio"]) .view-area:nth-of-type(7) .grid-area-label {
1024
+ background-image:
1025
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1026
+ linear-gradient(
1027
+ 90deg,
1028
+ color-mix(in srgb, var(--zenith-blue) 70%, black) 0%,
1029
+ color-mix(in srgb, var(--zenith-blue) 70%, black) 100%
1030
+ );
1031
+ }
977
1032
 
978
1033
  :host([mode="company"]) .view-area:nth-of-type(1) {
979
1034
  border-color: var(--tuned-red);
980
1035
  }
1036
+ :host([mode="company"]) .view-area:nth-of-type(1) .grid-area-label {
1037
+ background-image:
1038
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1039
+ linear-gradient(
1040
+ 90deg,
1041
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
1042
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
1043
+ );
1044
+ }
981
1045
  :host([mode="company"]) .view-area:nth-of-type(2) {
982
1046
  border-color: var(--sharp-blue);
983
1047
  }
1048
+ :host([mode="company"]) .view-area:nth-of-type(2) .grid-area-label {
1049
+ background-image:
1050
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1051
+ linear-gradient(
1052
+ 90deg,
1053
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
1054
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
1055
+ );
1056
+ }
984
1057
  :host([mode="company"]) .view-area:nth-of-type(3) {
985
1058
  border-color: var(--yellow);
986
1059
  }
1060
+ :host([mode="company"]) .view-area:nth-of-type(3) .grid-area-label {
1061
+ background-image:
1062
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1063
+ linear-gradient(
1064
+ 90deg,
1065
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
1066
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
1067
+ );
1068
+ }
987
1069
 
988
1070
  :host([mode="app"]) .view-area:nth-of-type(1) {
989
1071
  background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
990
1072
  }
1073
+ :host([mode="app"]) .view-area:nth-of-type(1) .grid-area-label {
1074
+ background-image:
1075
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1076
+ linear-gradient(
1077
+ 90deg,
1078
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
1079
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
1080
+ );
1081
+ }
991
1082
  :host([mode="app"]) .view-area:nth-of-type(2) {
992
1083
  background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);
993
1084
  }
1085
+ :host([mode="app"]) .view-area:nth-of-type(2) .grid-area-label {
1086
+ background-image:
1087
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1088
+ linear-gradient(
1089
+ 90deg,
1090
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
1091
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
1092
+ );
1093
+ }
994
1094
  :host([mode="app"]) .view-area:nth-of-type(3) {
995
1095
  background-color: color-mix(in srgb, var(--yellow) 25%, transparent);
996
1096
  }
1097
+ :host([mode="app"]) .view-area:nth-of-type(3) .grid-area-label {
1098
+ background-image:
1099
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1100
+ linear-gradient(
1101
+ 90deg,
1102
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
1103
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
1104
+ );
1105
+ }
997
1106
  :host([mode="app"]) .view-area:nth-of-type(4) {
998
1107
  background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);
999
1108
  }
1109
+ :host([mode="app"]) .view-area:nth-of-type(4) .grid-area-label {
1110
+ background-image:
1111
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1112
+ linear-gradient(
1113
+ 90deg,
1114
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
1115
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
1116
+ );
1117
+ }
1118
+ :host([mode="app"]) .view-area:nth-of-type(5) {
1119
+ background-color: color-mix(in srgb, var(--pink) 25%, transparent);
1120
+ }
1121
+ :host([mode="app"]) .view-area:nth-of-type(5) .grid-area-label {
1122
+ background-image:
1123
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1124
+ linear-gradient(
1125
+ 90deg,
1126
+ color-mix(in srgb, var(--pink) 70%, black) 0%,
1127
+ color-mix(in srgb, var(--pink) 70%, black) 100%
1128
+ );
1129
+ }
1130
+
1131
+ :host([mode="list"]) .view-area:nth-of-type(1) {
1132
+ background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
1133
+ }
1134
+ :host([mode="list"]) .view-area:nth-of-type(1) .grid-area-label {
1135
+ background-image:
1136
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1137
+ linear-gradient(
1138
+ 90deg,
1139
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
1140
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
1141
+ );
1142
+ }
1143
+ :host([mode="list"]) .view-area:nth-of-type(2) {
1144
+ background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);
1145
+ }
1146
+ :host([mode="list"]) .view-area:nth-of-type(2) .grid-area-label {
1147
+ background-image:
1148
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1149
+ linear-gradient(
1150
+ 90deg,
1151
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
1152
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
1153
+ );
1154
+ }
1155
+ :host([mode="list"]) .view-area:nth-of-type(3) {
1156
+ background-color: color-mix(in srgb, var(--yellow) 25%, transparent);
1157
+ }
1158
+ :host([mode="list"]) .view-area:nth-of-type(3) .grid-area-label {
1159
+ background-image:
1160
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1161
+ linear-gradient(
1162
+ 90deg,
1163
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
1164
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
1165
+ );
1166
+ }
1167
+ :host([mode="list"]) .view-area:nth-of-type(4) {
1168
+ background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);
1169
+ }
1170
+ :host([mode="list"]) .view-area:nth-of-type(4) .grid-area-label {
1171
+ background-image:
1172
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1173
+ linear-gradient(
1174
+ 90deg,
1175
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
1176
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
1177
+ );
1178
+ }
1179
+
1180
+ :host([mode="home"]) .view-area:nth-of-type(1) {
1181
+ background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);
1182
+ }
1183
+ :host([mode="home"]) .view-area:nth-of-type(1) .grid-area-label {
1184
+ background-image:
1185
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1186
+ linear-gradient(
1187
+ 90deg,
1188
+ color-mix(in srgb, var(--tuned-red) 70%, black) 0%,
1189
+ color-mix(in srgb, var(--tuned-red) 70%, black) 100%
1190
+ );
1191
+ }
1192
+ :host([mode="home"]) .view-area:nth-of-type(2) {
1193
+ background-color: color-mix(in srgb, var(--sharp-blue) 25%, transparent);
1194
+ }
1195
+ :host([mode="home"]) .view-area:nth-of-type(2) .grid-area-label {
1196
+ background-image:
1197
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1198
+ linear-gradient(
1199
+ 90deg,
1200
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,
1201
+ color-mix(in srgb, var(--sharp-blue) 70%, black) 100%
1202
+ );
1203
+ }
1204
+ :host([mode="home"]) .view-area:nth-of-type(3) {
1205
+ background-color: color-mix(in srgb, var(--yellow) 25%, transparent);
1206
+ }
1207
+ :host([mode="home"]) .view-area:nth-of-type(3) .grid-area-label {
1208
+ background-image:
1209
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1210
+ linear-gradient(
1211
+ 90deg,
1212
+ color-mix(in srgb, var(--yellow) 70%, black) 0%,
1213
+ color-mix(in srgb, var(--yellow) 70%, black) 100%
1214
+ );
1215
+ }
1216
+ :host([mode="home"]) .view-area:nth-of-type(4) {
1217
+ background-color: color-mix(in srgb, var(--apple-green) 25%, transparent);
1218
+ }
1219
+ :host([mode="home"]) .view-area:nth-of-type(4) .grid-area-label {
1220
+ background-image:
1221
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1222
+ linear-gradient(
1223
+ 90deg,
1224
+ color-mix(in srgb, var(--apple-green) 70%, black) 0%,
1225
+ color-mix(in srgb, var(--apple-green) 70%, black) 100%
1226
+ );
1227
+ }
1228
+ :host([mode="home"]) .view-area:nth-of-type(5) {
1229
+ background-color: color-mix(in srgb, var(--pink) 25%, transparent);
1230
+ }
1231
+ :host([mode="home"]) .view-area:nth-of-type(5) .grid-area-label {
1232
+ background-image:
1233
+ linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
1234
+ linear-gradient(
1235
+ 90deg,
1236
+ color-mix(in srgb, var(--pink) 70%, black) 0%,
1237
+ color-mix(in srgb, var(--pink) 70%, black) 100%
1238
+ );
1239
+ }
1000
1240
 
1001
1241
  .view-square {
1002
1242
  grid-area: square;
@@ -1037,7 +1277,23 @@ function De(){if(typeof navigator>"u"||typeof window>"u")return!1;let t=navigato
1037
1277
  .view-main {
1038
1278
  grid-area: main;
1039
1279
  }
1040
- `;customElements.define("ds-layout",pe);export{de as Accordion,ne as Button,ze as Container,Pe as Cycle,He as DateComponent,ue as DsTable,ae as Gap,he as Grid,q as Icon,pe as Layout,Ve as List,ce as Row,Oe as Text,le as Tooltip,S as currentLanguage,B as currentTheme,De as detectMobileDevice,cs as getAvailableLanguages,Re as getAvailableLanguagesSync,yr as getBrowserLanguage,cr as getDeviceInfo,xt as getLanguageDisplayName,ps as getPriceLabel,_t as getText,ls as hasTranslation,Me as initDeviceDetection,ds as loadTranslations,P as savePreferences,Ue as setLanguage,qt as setTheme,O as translate};
1280
+
1281
+ .view-page-dots {
1282
+ grid-area: page-dots;
1283
+ }
1284
+
1285
+ .view-board {
1286
+ grid-area: board;
1287
+ }
1288
+
1289
+ .view-message {
1290
+ grid-area: message;
1291
+ }
1292
+
1293
+ .view-lists {
1294
+ grid-area: lists;
1295
+ }
1296
+ `];customElements.define("ds-layout",we);export{me as Accordion,le as Banner,ne as Button,ce as Card,Fe as Container,We as Cycle,qe as DateComponent,ye as DsTable,ve as Form,he as Gap,be as Grid,F as Icon,pe as Input,we as Layout,Ke as List,fe as Row,Be as Text,ge as Tooltip,Ka as applike,ya as calculateScalingFactor,S as currentLanguage,K as currentTheme,Ze as detectMobileDevice,Ja as getAvailableLanguages,Je as getAvailableLanguagesSync,Ur as getBrowserLanguage,Ir as getDeviceInfo,Nt as getLanguageDisplayName,eo as getPriceLabel,Bo as getScalingFactor,U as getText,Za as hasTranslation,Ge as initDeviceDetection,Qt as initScaling,Ya as loadTranslations,z as savePreferences,Wo as scale,De as scalingConfig,Re as scalingFactor,Ye as setLanguage,jo as setScalingConfig,er as setTheme,P as translate,qo as unscale,Me as updateScalingFactor};
1041
1297
  /*! Bundled license information:
1042
1298
 
1043
1299
  signal-polyfill/dist/index.js: