material-inspired-component-library 5.0.1 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +6 -2
  2. package/components/alert/README.md +1 -1
  3. package/components/appbar/README.md +1 -1
  4. package/components/badge/README.md +1 -1
  5. package/components/button/README.md +9 -1
  6. package/components/button/index.ts +21 -37
  7. package/components/datepicker/README.md +146 -0
  8. package/components/datepicker/index.scss +2 -1
  9. package/components/datepicker/index.ts +210 -109
  10. package/components/iconbutton/README.md +10 -1
  11. package/components/iconbutton/index.ts +21 -37
  12. package/components/list/README.md +22 -7
  13. package/components/sidesheet/README.md +3 -3
  14. package/components/textfield/README.md +2 -2
  15. package/components/textfield/index.ts +56 -0
  16. package/components/timepicker/README.md +8 -9
  17. package/components/timepicker/index.ts +5 -5
  18. package/dist/alert.css +1 -1
  19. package/dist/appbar.css +1 -1
  20. package/dist/badge.css +1 -1
  21. package/dist/bottomsheet.css +1 -1
  22. package/dist/button.css +1 -1
  23. package/dist/card.css +1 -1
  24. package/dist/checkbox.css +1 -1
  25. package/dist/components/button/index.d.ts +2 -1
  26. package/dist/components/iconbutton/index.d.ts +2 -1
  27. package/dist/datepicker.css +1 -1
  28. package/dist/dialog.css +1 -1
  29. package/dist/divider.css +1 -1
  30. package/dist/foundations.css +1 -1
  31. package/dist/iconbutton.css +1 -1
  32. package/dist/list.css +1 -1
  33. package/dist/menu.css +1 -1
  34. package/dist/micl.css +1 -1
  35. package/dist/micl.js +1 -1
  36. package/dist/navigationrail.css +1 -1
  37. package/dist/radio.css +1 -1
  38. package/dist/select.css +1 -1
  39. package/dist/sidesheet.css +1 -1
  40. package/dist/slider.css +1 -1
  41. package/dist/stepper.css +1 -1
  42. package/dist/switch.css +1 -1
  43. package/dist/textfield.css +1 -1
  44. package/dist/timepicker.css +1 -1
  45. package/docs/accordion.html +20 -20
  46. package/docs/alert.html +10 -10
  47. package/docs/bottomsheet.html +9 -9
  48. package/docs/button.html +16 -16
  49. package/docs/datepicker.html +133 -9
  50. package/docs/dialog.html +5 -5
  51. package/docs/docs.js +22 -1
  52. package/docs/iconbutton.html +8 -8
  53. package/docs/index.html +18 -17
  54. package/docs/list.html +14 -14
  55. package/docs/menu.html +12 -12
  56. package/docs/micl.css +1 -1
  57. package/docs/micl.js +1 -1
  58. package/docs/navigationrail.html +2 -2
  59. package/docs/sidesheet.html +4 -4
  60. package/docs/slider.html +2 -2
  61. package/docs/textfield.html +24 -24
  62. package/docs/themes/gray/dark-hc.css +51 -0
  63. package/docs/themes/gray/dark-mc.css +51 -0
  64. package/docs/themes/gray/dark.css +51 -0
  65. package/docs/themes/gray/light-hc.css +51 -0
  66. package/docs/themes/gray/light-mc.css +51 -0
  67. package/docs/themes/gray/light.css +51 -0
  68. package/docs/themes/gray/theme.css +306 -0
  69. package/docs/themes/greenery/dark-hc.css +51 -0
  70. package/docs/themes/greenery/dark-mc.css +51 -0
  71. package/docs/themes/greenery/dark.css +51 -0
  72. package/docs/themes/greenery/light-hc.css +51 -0
  73. package/docs/themes/greenery/light-mc.css +51 -0
  74. package/docs/themes/greenery/light.css +51 -0
  75. package/docs/themes/greenery/theme.css +306 -0
  76. package/docs/themes/hermana/dark-hc.css +51 -0
  77. package/docs/themes/hermana/dark-mc.css +51 -0
  78. package/docs/themes/hermana/dark.css +51 -0
  79. package/docs/themes/hermana/light-hc.css +51 -0
  80. package/docs/themes/hermana/light-mc.css +51 -0
  81. package/docs/themes/hermana/light.css +51 -0
  82. package/docs/themes/hermana/theme.css +306 -0
  83. package/docs/themes/illuminating/dark-hc.css +51 -0
  84. package/docs/themes/illuminating/dark-mc.css +51 -0
  85. package/docs/themes/illuminating/dark.css +51 -0
  86. package/docs/themes/illuminating/light-hc.css +51 -0
  87. package/docs/themes/illuminating/light-mc.css +51 -0
  88. package/docs/themes/illuminating/light.css +51 -0
  89. package/docs/themes/illuminating/theme.css +306 -0
  90. package/docs/themes/magenta/dark-hc.css +51 -0
  91. package/docs/themes/magenta/dark-mc.css +51 -0
  92. package/docs/themes/magenta/dark.css +51 -0
  93. package/docs/themes/magenta/light-hc.css +51 -0
  94. package/docs/themes/magenta/light-mc.css +51 -0
  95. package/docs/themes/magenta/light.css +51 -0
  96. package/docs/themes/magenta/theme.css +306 -0
  97. package/docs/themes/mocha/dark-hc.css +51 -0
  98. package/docs/themes/mocha/dark-mc.css +51 -0
  99. package/docs/themes/mocha/dark.css +51 -0
  100. package/docs/themes/mocha/light-hc.css +51 -0
  101. package/docs/themes/mocha/light-mc.css +51 -0
  102. package/docs/themes/mocha/light.css +51 -0
  103. package/docs/themes/mocha/theme.css +306 -0
  104. package/docs/themes/peri/dark-hc.css +51 -0
  105. package/docs/themes/peri/dark-mc.css +51 -0
  106. package/docs/themes/peri/dark.css +51 -0
  107. package/docs/themes/peri/light-hc.css +51 -0
  108. package/docs/themes/peri/light-mc.css +51 -0
  109. package/docs/themes/peri/light.css +51 -0
  110. package/docs/themes/peri/theme.css +306 -0
  111. package/docs/timepicker.html +1 -1
  112. package/foundations/index.scss +4 -1
  113. package/package.json +1 -1
  114. package/themes/gray/dark-hc.css +51 -0
  115. package/themes/gray/dark-mc.css +51 -0
  116. package/themes/gray/dark.css +51 -0
  117. package/themes/gray/light-hc.css +51 -0
  118. package/themes/gray/light-mc.css +51 -0
  119. package/themes/gray/light.css +51 -0
  120. package/themes/gray/theme.css +306 -0
  121. package/themes/greenery/dark-hc.css +51 -0
  122. package/themes/greenery/dark-mc.css +51 -0
  123. package/themes/greenery/dark.css +51 -0
  124. package/themes/greenery/light-hc.css +51 -0
  125. package/themes/greenery/light-mc.css +51 -0
  126. package/themes/greenery/light.css +51 -0
  127. package/themes/greenery/theme.css +306 -0
  128. package/themes/hermana/dark-hc.css +51 -0
  129. package/themes/hermana/dark-mc.css +51 -0
  130. package/themes/hermana/dark.css +51 -0
  131. package/themes/hermana/light-hc.css +51 -0
  132. package/themes/hermana/light-mc.css +51 -0
  133. package/themes/hermana/light.css +51 -0
  134. package/themes/hermana/theme.css +306 -0
  135. package/themes/illuminating/dark-hc.css +51 -0
  136. package/themes/illuminating/dark-mc.css +51 -0
  137. package/themes/illuminating/dark.css +51 -0
  138. package/themes/illuminating/light-hc.css +51 -0
  139. package/themes/illuminating/light-mc.css +51 -0
  140. package/themes/illuminating/light.css +51 -0
  141. package/themes/illuminating/theme.css +306 -0
  142. package/themes/magenta/dark-hc.css +51 -0
  143. package/themes/magenta/dark-mc.css +51 -0
  144. package/themes/magenta/dark.css +51 -0
  145. package/themes/magenta/light-hc.css +51 -0
  146. package/themes/magenta/light-mc.css +51 -0
  147. package/themes/magenta/light.css +51 -0
  148. package/themes/magenta/theme.css +306 -0
  149. package/themes/mocha/dark-hc.css +51 -0
  150. package/themes/mocha/dark-mc.css +51 -0
  151. package/themes/mocha/dark.css +51 -0
  152. package/themes/mocha/light-hc.css +51 -0
  153. package/themes/mocha/light-mc.css +51 -0
  154. package/themes/mocha/light.css +51 -0
  155. package/themes/mocha/theme.css +306 -0
  156. package/themes/peri/dark-hc.css +51 -0
  157. package/themes/peri/dark-mc.css +51 -0
  158. package/themes/peri/dark.css +51 -0
  159. package/themes/peri/light-hc.css +51 -0
  160. package/themes/peri/light-mc.css +51 -0
  161. package/themes/peri/light.css +51 -0
  162. package/themes/peri/theme.css +306 -0
package/docs/micl.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.micl=t():e.micl=t()}(self,()=>(()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};return(()=>{e.r(t),e.d(t,{default:()=>Y});const n="dialog.micl-bottomsheet",i=(()=>{const e=e=>{let t=parseInt(e.dataset.miclfitheight||"0",10),n=parseInt(window.getComputedStyle(e).getPropertyValue("max-block-size"),10),i=(e.dataset.miclsnapheights||"").split(",").map(Number).filter(e=>!isNaN(e)&&e>=0&&e<=n);return t<1&&(t=Math.min(e.getBoundingClientRect().height,n),e.dataset.miclfitheight=`${t}`),[...new Set(i.concat([t]).sort())]},t=(t,n)=>{let i=t.getBoundingClientRect().height,a=e(t);return a.filter(e=>e>i+4)[0]||a[n?a.length-1:0]},i=(e,t)=>{t<1?(delete e.dataset.miclfitheight,e.style.removeProperty("--md-sys-bottomsheet-height"),e[e.popover?"hidePopover":"close"]()):e.style.setProperty("--md-sys-bottomsheet-height",`${t}px`)};return{initialize:a=>{if(!a.matches(n)||a.dataset.miclinitialized)return;a.dataset.miclinitialized="1";const r=a.querySelector(".micl-bottomsheet__headline");if(!r)return;const l=r.querySelector(".micl-bottomsheet__draghandle");l?.addEventListener("click",()=>{i(a,t(a,!1))});let o,c,s=!1,d=!1;function m(e){const t=e.clientY;s&&Math.abs(o-t)>4&&(s=!1,d=!0,a.classList.add("micl-bottomsheet--resizing")),d&&i(a,c+o-t)}function p(n){s=!1,a.classList.remove("micl-bottomsheet--resizing"),d&&(d=!1,n.clientY<o?i(a,t(a,!0)):a.getBoundingClientRect().height<48?i(a,0):i(a,(t=>{let n=t.getBoundingClientRect().height,i=e(t),a=i.filter(e=>e<n-4);return a[a.length-1]||i[0]})(a)),document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",p))}r.addEventListener("mousedown",e=>{e.eventPhase===Event.AT_TARGET&&(s=!0,e.preventDefault(),o=e.clientY,c=a.getBoundingClientRect().height,document.addEventListener("mousemove",m),document.addEventListener("mouseup",p))})},cleanup:e=>{e.matches(n)&&(e.classList.remove("micl-bottomsheet--resizing"),delete e.dataset.miclinitialized,delete e.dataset.miclfitheight)}}})(),a="button[popovertarget],button.micl-button--toggle",r=(()=>{const e=e=>{e.target&&e.target instanceof HTMLButtonElement&&(e.target.popoverTargetElement instanceof HTMLDialogElement&&(e.target.popoverTargetElement.open?e.target.popoverTargetElement.close():e.target.popoverTargetElement.showModal()),e.target.classList.contains("micl-button--toggle")&&(e.target.classList.add("micl-button--toggled"),e.target.classList.toggle("micl-button--selected"),e.target.dataset.miclalt&&([e.target.textContent,e.target.dataset.miclalt]=[e.target.dataset.miclalt,e.target.textContent])))};return{initialize:t=>{t.matches("button[popovertarget],button.micl-button--toggle")&&!t.dataset.miclinitialized&&(t.dataset.miclinitialized="1",(t.popoverTargetElement instanceof HTMLDialogElement&&!t.popoverTargetElement.hasAttribute("popover")||t.classList.contains("micl-button--toggle"))&&t.addEventListener("click",e))},cleanup:t=>{t.matches("button[popovertarget],button.micl-button--toggle")&&(document.removeEventListener("click",e),delete t.dataset.miclinitialized)}}})(),l=".micl-checkbox-group",o=(()=>{const e=e=>{const t=e.querySelector(".micl-checkbox__parent");return t?.closest(l)===e?t:null},t=n=>{const i=e(n);if(!i)return!1;let a=0,r=0;return n.querySelectorAll('input[type="checkbox"].micl-checkbox').forEach(e=>{if(e!==i){const i=e.closest(l);i===n?(a++,e.checked&&!e.indeterminate&&r++):e.classList.contains("micl-checkbox__parent")&&i?.parentElement?.closest(l)===n&&(a++,t(i)&&r++)}}),0===r?(i.checked=!1,i.indeterminate=!1):r===a?(i.checked=!0,i.indeterminate=!1):(i.checked=!0,i.indeterminate=!0),r===a},n=(e,t)=>{e.querySelectorAll('input[type="checkbox"].micl-checkbox').forEach(i=>{const a=i.closest(l);a===e?i.checked=t:i.classList.contains("micl-checkbox__parent")&&a?.parentElement?.closest(l)===e&&(i.checked=t,n(a,t))})},i=(i,a)=>{const r=e(i);if(!r)return;a===r&&n(i,a.checked);let o,c=i;do{o=c,c=c.parentElement?.closest(l)}while(c);t(o)};return{initialize:e=>{e.matches(l)&&!e.dataset.miclinitialized&&(e.dataset.miclinitialized="1",e.addEventListener("change",t=>{const n=t.target;n.classList.contains("micl-checkbox")&&(t.stopPropagation(),i(e,n))}),i(e,null))}}})(),c="dialog.micl-dialog.micl-datepicker",s=new WeakMap,d=(new Intl.DateTimeFormat).resolvedOptions().locale,m=e=>e instanceof HTMLInputElement||e instanceof HTMLButtonElement,p=(()=>{try{const e=new Intl.Locale(d).getWeekInfo?.();if(e)return 7===e.firstDay?0:e.firstDay}catch{}return/US|CA|MX/i.test(d)?0:1})(),u=e=>{const t=new Date(e);return t.setHours(0,0,0,0),t},g=e=>!isNaN(e.getTime()),h=(e,t)=>{if(e)if(e.firstElementChild){let n=e.firstChild;for(;n;){if(n.nodeType===Node.TEXT_NODE)return void(n.nodeValue=t);n=n.nextSibling}e.appendChild(document.createTextNode(t))}else e.textContent=t},f=(e,t)=>{const n=[],i=new Date(e,t,1).getDay(),a=new Date(e,t,1-(i-p+7)%7),r=e=>e.toString().padStart(2,"0");for(let e=0;e<42;e++)n.push({date:new Date(a),val:`${a.getFullYear()}-${r(a.getMonth()+1)}-${r(a.getDate())}`,isCurrentMonth:a.getMonth()===t}),a.setDate(a.getDate()+1);return n},y=(e,t,n,i=!1)=>{if(i){const n=document.createDocumentFragment(),i=new Date,a=i.getDay()-p;i.setDate(i.getDate()-a);for(let e=0;e<7;e++){const t=document.createElement("span");t.style.gridArea=`1 / ${e+1}`,t.textContent=i.toLocaleDateString(d,{weekday:"narrow"}),t.title=i.toLocaleDateString(d,{weekday:"long"}),n.appendChild(t),i.setDate(i.getDate()+1)}t.forEach((e,t)=>{const i=document.createElement("time"),a=Math.floor(t/7)+2,r=t%7+1;i.style.gridArea=`${a} / ${r}`,n.appendChild(i)}),e.appendChild(n)}const a=u(new Date);e.querySelectorAll("time").forEach((e,i)=>{const r=t[i];e.dateTime=r.val,e.textContent=r.date.getDate().toString();const l=r.date.getTime()===n.selected.getTime(),o=r.date.getTime()===a.getTime();e.className="",r.isCurrentMonth||e.classList.add("micl-datepicker__outside"),l&&e.classList.add("micl-datepicker__selected"),o&&e.classList.add("micl-datepicker__today")})},v=(e,t,n=0)=>{const i=e.querySelector(".micl-dialog__content"),a=i?.querySelector(".micl-datepicker__calendars");if(!a)return;const r="micl-startleft",l="micl-startright",o="micl-moveleft",c="micl-moveright";if(a.classList.remove(o,c,r,l),a.offsetWidth,0!==n){const e=a.querySelector(".micl-datepicker__calendar");if(!e)return;const i=document.createElement("div"),s=document.createElement("div");i.classList.add("micl-datepicker__calendar"),s.classList.add("micl-datepicker__calendar-inner");const d=f(t.viewDate.getFullYear(),t.viewDate.getMonth());y(s,d,t,!0);const m=n>0,p=m?r:l,u=m?o:c;i.appendChild(s),m?a.appendChild(i):a.prepend(i),a.classList.add("micl-no-transition",p),a.offsetWidth,requestAnimationFrame(()=>{a.classList.remove("micl-no-transition",p),a.classList.add(u)});const g=()=>{a.removeEventListener("transitionend",g),setTimeout(()=>{a.classList.remove(u),e.parentElement===a&&e.remove(),a.classList.add("micl-no-transition",r),a.offsetWidth,a.classList.remove("micl-no-transition",r)},0)};a.addEventListener("transitionend",g)}else{let e=a.querySelector(".micl-datepicker__calendar");e||(e=document.createElement("div"),e.classList.add("micl-datepicker__calendar"),e=a.appendChild(e));let n=e.querySelector(".micl-datepicker__calendar-inner");n||(n=document.createElement("div"),n.classList.add("micl-datepicker__calendar-inner"),e.appendChild(n));const i=f(t.viewDate.getFullYear(),t.viewDate.getMonth());y(n,i,t,0===n.querySelectorAll("time").length)}const s=i?.querySelector(".micl-datepicker__input input");if(s){const e=e=>e.toString().padStart(2,"0");s.value=`${t.selected.getFullYear()}-${e(t.selected.getMonth()+1)}-${e(t.selected.getDate())}`}h(e.querySelector("h1, h2, h3, h4, h5, h6, .micl-heading"),t.selected.toLocaleDateString(d,{weekday:"short",day:"numeric",month:"short"})),h(e.querySelector(".micl-datepicker__month"),t.viewDate.toLocaleDateString(d,{month:"short"})),h(e.querySelector(".micl-datepicker__year"),t.viewDate.toLocaleDateString(d,e.classList.contains("micl-dialog--docked")?{year:"numeric"}:{month:"long",year:"numeric"})),["months","years"].forEach(n=>{const i="months"===n?t.viewDate.getMonth():t.viewDate.getFullYear(),a=e.querySelector(`.micl-datepicker__${n} input[value="${i}"]`);a&&(a.checked=!0)})},E=(e,t)=>{"months"!==t&&"years"!==t||e.querySelector(`.micl-datepicker__${t}.micl-datepicker__view-hidden`)||(t="calendars"),["calendars","input","month-selector","year-selector"].forEach(n=>{let i="input"===t;"calendars"!==n&&"input"!==n||(i=t!==n),e.querySelector(`.micl-datepicker__${n}`)?.classList.toggle("micl-datepicker__view-hidden",i)});const n=e.querySelector(".micl-dialog__content");if(!n)return;const i=parseInt(window.getComputedStyle(n).getPropertyValue("max-block-size"),10);[".micl-datepicker__months",".micl-datepicker__years"].forEach(e=>{const a=n.querySelector(e);if(!a)return;const r=a.querySelector("input:checked");let l=!1;if(r&&e.substring(18)===t){const e=window.getComputedStyle(a).getPropertyValue("transition-duration"),t=parseFloat(e)*(e.includes("ms")?1:1e3),o=a.scrollHeight-i,c=(i-48)/2;if(r.offsetTop>c){let e=r.offsetTop-c-24;e>o&&(e=o);const i=performance.now(),s=a=>{const r=Math.min((a-i)/t,1);n.scrollTop=e*r,r<1&&requestAnimationFrame(s)};a.classList.remove("micl-datepicker__view-hidden"),requestAnimationFrame(s),l=null,a.addEventListener("transitionend",function t(i){"height"!==i.propertyName&&"block-size"!==i.propertyName||(n.scrollTop=e,a.removeEventListener("transitionend",t))})}}else l=!0;null!==l&&a.classList.toggle("micl-datepicker__view-hidden",l)})},L=(e,t,n)=>{const i=s.get(e);if(!i)return;const a=new Date(i.viewDate);"month"===n?a.setMonth(a.getMonth()+t):a.setFullYear(a.getFullYear()+t),i.min&&a<i.min||i.max&&a>i.max||(i.viewDate=a,v(e,i,"month"===n?t:0))},k={keydown:e=>{if(!(e instanceof KeyboardEvent&&e.target instanceof Element))return;const t=e.target.closest(c);if(t)switch(e.key){case"Enter":case" ":e.target instanceof HTMLInputElement&&"date"===e.target.type&&e.preventDefault();break;case"M":case"Y":E(t,"M"===e.key?"months":"years");break;case"PageUp":case"PageDown":L(t,"PageUp"===e.key?1:-1,e.shiftKey?"year":"month")}},initialize:e=>{if(e.dataset.miclinitialized)return;const t=e.querySelector("form"),n=e.querySelector(".micl-dialog__content");t&&n&&(e.dataset.miclinitialized="1",e.addEventListener("click",t=>{const n=t.target,i=n.closest("button");if(i){const t=i.parentElement?.classList.contains("micl-datepicker__month-selector"),n=i.classList.contains("micl-datepicker__next"),a=i.classList.contains("micl-datepicker__previous");if(n||a)return void L(e,n?1:-1,t?"month":"year")}n.closest(".micl-datepicker__month")&&E(e,"months"),n.closest(".micl-datepicker__year")&&E(e,"years");const a=n.closest(".micl-datepicker__inputmode");if(a){const t=a.textContent;a.textContent=a.dataset.alticon||t,a.dataset.alticon=t;const n=!!e.querySelector(".micl-datepicker__input.micl-datepicker__view-hidden");E(e,n?"input":"calendars")}const r=n.closest("time");if(r&&r.dateTime&&((e,t)=>{const n=s.get(e);if(!n)return;const i=t.split("-").map(Number);n.selected=new Date(i[0],i[1]-1,i[2]),n.viewDate=new Date(n.selected),v(e,n)})(e,r.dateTime),n instanceof HTMLInputElement&&("miclmonth"===n.name||"miclyear"===n.name)){const t=s.get(e);if(t){const i=parseInt(n.value,10);"miclmonth"===n.name?t.viewDate.setMonth(i):t.viewDate.setFullYear(i),v(e,t),E(e,"calendars")}}}),e.addEventListener("beforetoggle",t=>{if("open"!==t.newState)return;let n=document.activeElement;if(m(n)&&(n.dataset.datepicker||n.getAttribute("popovertarget"))||(n=document.querySelector(`[data-datepicker="${e.id}"],[popovertarget="${e.id}"]`)),!m(n))return;let i=new Date,a=null,r=null;if(n instanceof HTMLInputElement)"date"===n.type&&n.valueAsDate?i=n.valueAsDate:n.value&&(i=new Date(n.value)),n.min&&(a=new Date(n.min)),n.max&&(r=new Date(n.max));else{const e=new Date(n.value||n.textContent);g(e)&&(i=e)}g(i)||(i=new Date),i=u(i),s.set(e,{invoker:n,selected:i,viewDate:new Date(i),min:a,max:r}),((e,t,n)=>{["months","years"].forEach(i=>{const a=e.querySelector(`.micl-datepicker__${i}`);if(a){a.innerHTML="";const e=document.createDocumentFragment();if("months"===i){const t=new Intl.DateTimeFormat(void 0,{month:"long"});for(let n=0;n<12;n++){const i=document.createElement("label");i.innerHTML=`<span class="material-symbols-outlined">check</span><input type="radio" name="miclmonth" value="${n}"> ${t.format(new Date(2e3,n,1))}`,e.appendChild(i)}}else for(let i=t;i<=n;i++){const t=document.createElement("label");t.innerHTML=`<input type="radio" name="miclyear" value="${i}"> ${i}`,e.appendChild(t)}const r=document.createElement("div");r.classList.add(`micl-datepicker__${i}-inner`),a.appendChild(r).appendChild(e)}})})(e,a?a.getFullYear():1900,r?r.getFullYear():2099),E(e,"calendars"),v(e,s.get(e))}),e.addEventListener("close",()=>{const t=s.get(e);if(!t||!t.invoker||""===e.returnValue)return;const n=e=>e.toString().padStart(2,"0"),i=`${t.selected.getFullYear()}-${n(t.selected.getMonth()+1)}-${n(t.selected.getDate())}`;t.invoker.value=i,t.invoker instanceof HTMLInputElement?(t.invoker.dispatchEvent(new Event("change",{bubbles:!0})),t.invoker.dispatchEvent(new Event("input",{bubbles:!0}))):t.invoker.textContent=t.selected.toLocaleDateString()}))}},_=".micl-list-item-one,.micl-list-item-two,.micl-list-item-three",b=(()=>{const e=e=>!!e&&e.classList.contains("micl-list-item--disabled");return{keydown:t=>{if(!(t instanceof KeyboardEvent&&t.target instanceof Element&&t.target.matches(".micl-list-item-one,.micl-list-item-two,.micl-list-item-three")))return;const n=t.target.parentElement;if(!n)return;let i=[];if(n instanceof HTMLDetailsElement?i=Array.from(n.parentElement?.children||[]).map(t=>{let n=t.querySelector(":scope > summary");return e(n)?null:n}).filter(e=>!!e):n instanceof HTMLUListElement&&(i=Array.from(n.children).map(t=>t instanceof HTMLLIElement&&!e(t)?t:null).filter(e=>!!e)),0===i.length)return;let a=i.findIndex(e=>(e=>!!e&&e.matches(":has(input[type=checkbox]:checked)"))(e)),r=i.findIndex(e=>0===e.tabIndex),l=r;switch(t.key){case"ArrowDown":l=(r+1)%i.length,t.preventDefault();break;case"ArrowUp":l=(r-1+i.length)%i.length,t.preventDefault();break;case"Tab":-1===a?0!==r&&(i[r].tabIndex=-1,i[0].tabIndex=0):a!==r&&(i[r].tabIndex=-1,i[a].tabIndex=0);break;case"Enter":case" ":const e=t.target.querySelector("input[type=checkbox]");e instanceof HTMLInputElement&&(e.checked=!e.checked)}if(l!==r){i[r].tabIndex=-1,i[l].tabIndex=0,i[l].focus();const e=i[l].querySelector(":scope > button");e?.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}))}}}})(),S=".micl-menu[popover]",x=(()=>{const e=(e,t)=>{const n=e.getBoundingClientRect(),i=t.getBoundingClientRect();return(n.x>i.x?"right ":"left ")+(n.y>i.y?"bottom":"top")};return{initialize:t=>{if(!t.matches(".micl-menu[popover]")||t.dataset.miclinitialized)return;t.dataset.miclinitialized="1";const n=document.querySelector(`[popovertarget="${t.id}"]`);n&&t.addEventListener("beforetoggle",i=>{"open"===i.oldState&&(t.style.transformOrigin=e(n,t))}),n&&t.addEventListener("toggle",i=>{"closed"===i.oldState&&(t.style.transformOrigin=e(n,t))}),t.querySelectorAll(":scope > ul.micl-list > li > button[popovertarget]").forEach(e=>{if(e.popoverTargetElement?.matches(".micl-menu[popover]")){let t,n=`--${e.popoverTargetElement.id}`;e.popoverTargetElement instanceof HTMLElement&&(e.style.setProperty("anchor-name",n),e.popoverTargetElement.style.insetBlockStart=`anchor(${n} start)`,e.popoverTargetElement.style.insetInlineStart=`anchor(${n} end)`),e.addEventListener("mouseenter",()=>{e.popoverTargetElement instanceof HTMLElement&&e.popoverTargetElement.showPopover()}),e.addEventListener("mouseleave",()=>{t=setTimeout(()=>{e.popoverTargetElement instanceof HTMLElement&&!e.popoverTargetElement.matches(":hover")&&e.popoverTargetElement.hidePopover()},100)}),e.popoverTargetElement.addEventListener("mouseenter",()=>{clearTimeout(t)}),e.popoverTargetElement.addEventListener("mouseleave",()=>{e.popoverTargetElement instanceof HTMLElement&&e.popoverTargetElement.hidePopover()})}})}}})(),w=".micl-navigationrail__item[for]:not(.micl-navigationrail__item--disabled)",T={keydown:e=>{if(!(e instanceof KeyboardEvent&&e.target instanceof HTMLLabelElement&&e.target.matches(w)))return;const t=document.getElementById(e.target.htmlFor);if(t)switch(e.key){case"Enter":case" ":e.preventDefault(),t.checked||(t.checked=!t.checked)}}},C="input[type=range].micl-slider-xs,input[type=range].micl-slider-s,input[type=range].micl-slider-m,input[type=range].micl-slider-l,input[type=range].micl-slider-xl",M=(()=>{const e=String.fromCharCode(8226),t=String.fromCharCode(8201),n=e=>e.parentElement?.classList.contains("micl-slider__container")?e.parentElement:null,i=(e,t)=>{e.dataset.miclsliderticks=t},a=e=>{let t=JSON.stringify(e.value+""),i=n(e);i&&(i.style.setProperty("--md-sys-slider-value",e.value),i.style.setProperty("--md-sys-slider-tip",t)),e.style.setProperty("--md-sys-slider-value",e.value),e.style.setProperty("--md-sys-slider-tip",t)};return{initialize:r=>{if(!r.matches(C))return;(e=>{let t=e.max||"100";n(e)?.style.setProperty("--md-sys-slider-max",t),e.style.setProperty("--md-sys-slider-max",t)})(r),(e=>{let t=e.min||"0";n(e)?.style.setProperty("--md-sys-slider-min",t),e.style.setProperty("--md-sys-slider-min",t)})(r),a(r),(e=>{let t=n(e);if(t){const n=window.getComputedStyle(e);["--md-sys-slider-handle-height","--md-sys-slider-track-height"].forEach(e=>{t.style.setProperty(e,n.getPropertyValue(e))})}})(r);const l=parseFloat(r.max),o=parseFloat(r.min),c=r.getBoundingClientRect(),s=((e,t,n)=>{const i=[];return e.list&&t>n&&e.list.querySelectorAll("option[value]").forEach(e=>{let a=parseFloat(e.value);!isNaN(a)&&a>=n&&a<=t&&i.push(a)}),i})(r,l,o).sort((e,t)=>e-t).map(e=>Math.round(100*(e-o)/(l-o)));if(s.length>0){const n=document.createElement("canvas"),a=n.getContext("2d");if(a){a.font=window.getComputedStyle(r).getPropertyValue("font");let n=a.measureText(t).width,l=a.measureText(e).width,o=c.width-10,d=0,m="";s.forEach(i=>{let a=o*i/100,r=Math.round((a-d)/n)-1;for(let e=0;e<r;e++)m+=t,d+=n;m+=e,d+=l}),i(r,m)}n.remove()}else i(r,e)},input:e=>{e.target.matches(C)&&e.target instanceof HTMLInputElement&&!e.target.disabled&&a(e.target)}}})(),D=(()=>{const e=e=>"willValidate"in e,t=t=>{const n=t.target;e(n)&&n.setCustomValidity("")},n=e=>{const n=e.dataset.miclvalidateMessage||"";if(n&&e.matches("[data-miclvalidate-checkboxes-name]")){const i=e.dataset.miclvalidateCheckboxesName||"",a=e.dataset.miclvalidateCheckboxesCountEqual||"",r=e.dataset.miclvalidateCheckboxesCountMax||"",l=e.dataset.miclvalidateCheckboxesCountMin||"";if(i&&(a||r||l)){const o=e.querySelectorAll(`input[type="checkbox"][name="${i}"]:checked`).length,c=parseInt(a,10),s=parseInt(r,10),d=parseInt(l,10);let m=!isNaN(c)&&o!=c||!isNaN(s)&&o>s||!isNaN(d)&&o<d;e.setCustomValidity(m?n:"");const p=e.querySelector(`input[type="checkbox"][name="${i}"]`);p&&(p.setCustomValidity(m?n:""),m?p.addEventListener("change",t):p.removeEventListener("change",t))}}},i=(t,i)=>{let a=!1;return t.querySelectorAll("fieldset").forEach(n),Array.from(t.elements).forEach(t=>{if(e(t)&&t.willValidate){t.checkValidity()||(a=!0);let n=(t=>{if(!t.parentElement||!e(t))return!1;let n=!1;return t instanceof HTMLInputElement&&"checkbox"===t.type&&t.classList.contains("micl-checkbox")?n=(e=>(e.classList.toggle("micl-checkbox--error",!!e.validationMessage),!1))(t):(t.parentElement.classList.contains("micl-textfield-outlined")||t.parentElement.classList.contains("micl-textfield-filled"))&&(n=((e,t)=>{e.classList.toggle("micl-textfield--error",!!t);const n=e.querySelector(".micl-textfield__supporting-text");return n&&(t?(n.dataset.micltext||(n.dataset.micltext=n.textContent),n.textContent=t):"micltext"in n.dataset&&(n.textContent=n.dataset.micltext||"")),!!t&&!!n})(t.parentElement,t.validationMessage)),n})(t);!n&&i&&t.reportValidity()}}),!a};return{validateFieldSet:(e,t)=>(n(e),i(e,t)),validateForm:(e,t)=>i(e,t)}})(),q=".micl-stepper",A=".micl-stepper__action-back,.micl-stepper__action-next",$=".micl-stepper__header button[role=tab][aria-controls]",I="micl-stepper__step",H="."+I,P=(()=>{const e=e=>e.querySelector(`${H}[aria-current=step]`)||n(e,e.querySelector(H)),t=(e,t)=>Array.from(e.querySelectorAll(H)).indexOf(t)+1,n=(e,t)=>{if(!t)return null;let n=0;e.querySelectorAll(H).forEach((e,i)=>{e.setAttribute("aria-current",e===t?"step":"false"),e===t&&(n=i)});const i=e.querySelectorAll($).item(n);return e.querySelectorAll($).forEach((e,t)=>{e.setAttribute("aria-selected",e===i?"true":"false")}),r(e,t),t},i=e=>{const t=e.currentTarget;"transform"===e.propertyName&&t&&(t.classList.remove("micl-stepper__step--fromselected","micl-stepper__step--toselected"),t.removeEventListener("transitionend",i))},a=e=>e.classList.contains("micl-stepper__action-back"),r=(e,n)=>{((e,t)=>{Array.from(e.querySelectorAll(A)).forEach(e=>{const n=a(e)?"previousElementSibling":"nextElementSibling",i=t[n]?.classList.contains(I);e.classList.toggle("micl-hidden",!i)})})(e,n),((e,n)=>{const i=t(e,n);e.querySelectorAll("[data-step]").forEach(e=>{const t=e.dataset.step!=`${i}`;e.classList.toggle("micl-hidden",t)})})(e,n),((e,n)=>{const i=t(e,n),a=e.querySelectorAll(H).length,r=!e.classList.contains("micl-stepper--nonlinear"),l=(t,n)=>{e.querySelectorAll(t).forEach(e=>{e.textContent=n})};l(".micl-stepper__progress-current",`${i}`),l(".micl-stepper__progress-total",`${a}`),e.querySelectorAll(".micl-stepper__progress-dots").forEach(e=>{const t=document.createDocumentFragment();e.innerHTML="";for(let e=1;e<=a;e++){let n=document.createElement("span");n.classList.add("micl-stepper__progress-dot"),(r&&e<=i||!r&&e===i)&&n.classList.add("micl-stepper__progress--done"),t.appendChild(n)}e.appendChild(t)}),e.querySelectorAll($).forEach((e,t)=>{e.classList.toggle("micl-stepper__progress--done",r?t+1<=i:t+1===i)})})(e,n)};return{initialize:t=>{if(!t.matches(q)||t.dataset.miclinitialized)return;t.dataset.miclinitialized="1";const l=e(t),o=t.querySelector(".micl-stepper__header");l&&(r(t,l),o?.querySelectorAll("button[role=tab][aria-controls]").forEach(e=>{e.addEventListener("click",()=>{if("ariaControlsElements"in Element.prototype&&e.ariaControlsElements)n(t,e.ariaControlsElements[0]);else{const i=e.getAttribute("aria-controls");i&&n(t,document.getElementById(i))}})})),Array.from(t.querySelectorAll(A)).forEach(r=>{r.addEventListener("click",function(r){const l=a(this),o=e(t);if(!o||!l&&o instanceof HTMLFieldSetElement&&!D.validateFieldSet(o,!0))return void(l||r.stopImmediatePropagation());const c=o[l?"previousElementSibling":"nextElementSibling"];c?.classList.contains(I)&&((e,t,a)=>{t.addEventListener("transitionend",i),t.classList.add("micl-stepper__step--fromselected"),t.offsetHeight,a.addEventListener("transitionend",i),a.classList.add("micl-stepper__step--toselected"),a.offsetHeight,n(e,a)})(t,o,c)},!0)}),t instanceof HTMLFormElement&&t.addEventListener("submit",e=>{e.submitter?.classList.contains("micl-form--dosubmit")||e.preventDefault(),D.validateForm(t,!0)||e.stopImmediatePropagation()},!0)}}})(),z=".micl-textfield-outlined > input,.micl-textfield-filled > input",N=".micl-textfield-outlined > textarea,.micl-textfield-filled > textarea",F=".micl-textfield-filled > select,.micl-textfield-outlined > select",B=(()=>{const e=e=>{if(!e.parentElement||e instanceof HTMLSelectElement||!e.maxLength)return;const t=e.parentElement.querySelector(".micl-textfield__character-counter");t&&(t.textContent=`${e.value.length}/${e.maxLength}`)};return{initialize:t=>{if(!t.dataset.miclinitialized){if(t.dataset.miclinitialized="1",t.value&&(t.dataset.miclvalue="1"),t instanceof HTMLSelectElement&&t.addEventListener("mousedown",()=>{const e=t.getBoundingClientRect(),n=e.top,i=window.innerHeight-e.bottom;!t.matches(":open")&&t.style.setProperty("--md-sys-select-picker-origin",n>i?"left bottom":"left top")}),t.matches("input[type=time][data-timepicker],input[type=date][data-datepicker]")){const e=t.dataset.timepicker?document.getElementById(t.dataset.timepicker):t.dataset.datepicker?document.getElementById(t.dataset.datepicker):null;e instanceof HTMLDialogElement&&(t.addEventListener("click",t=>{t.preventDefault(),e.showModal()}),t.addEventListener("keydown",t=>{if(t instanceof KeyboardEvent)switch(t.key){case"Enter":case" ":t.preventDefault(),e.showModal()}}))}e(t)}},input:t=>{t.target.matches(`${z},${F},${N}`)&&t.target.dataset.miclinitialized&&!t.target.disabled&&(t.target.value?t.target.dataset.miclvalue="1":delete t.target.dataset.miclvalue,e(t.target))}}})(),O="dialog.micl-dialog.micl-timepicker",V=(()=>{const e=(()=>{try{const e=new Intl.DateTimeFormat(void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return"h11"===e||"h12"===e}catch(e){return!1}})(),t=(e,t)=>e.querySelector(t),n=e=>e instanceof HTMLInputElement||e instanceof HTMLButtonElement,i=e=>!!e&&!e.classList.contains("micl-hidden"),a=(e,t)=>{e.classList.toggle("micl-timepicker--selected",t)},r=t=>"hour"===t?{min:e?1:0,max:e?12:23}:{min:0,max:59},l=(e,t,n)=>{e.querySelectorAll("data").forEach(e=>e.classList.remove("micl-timepicker__time--selected"));const i=e.querySelector(`data[data-${t}][value="${n}"]`);let a="";i?(a=window.getComputedStyle(i).getPropertyValue("--micl-angle"),i.classList.add("micl-timepicker__time--selected")):"minute"===t&&(a=`${Math.round(360*parseInt(n,10)/60-90)}deg`),a&&e.style.setProperty("--micl-angle",a)},o=(n,i,a,r,o=!0)=>{let c=parseInt(a||"0",10);if(isNaN(c))return;const s=t(n,`input[name=${i}]`);if(s){if("hour"===i&&r&&e){const e=n.querySelector(".micl-timepicker__am"),t=n.querySelector(".micl-timepicker__pm");c>12?(t&&(t.checked=!0),c-=12):e&&(e.checked=!0)}if(s.value=`${c}`.padStart(2,"0"),o){const e=t(n,".micl-timepicker__dial");if(!e)return;l(e,i,s.value)}}},c=(t,n,i)=>{if("ArrowDown"!==i.key&&"ArrowUp"!==i.key)return;i.preventDefault();const{max:a,min:l}=r(n.name);let c=parseInt(n.value,10)||0;if(c+="ArrowUp"===i.key?1:-1,(c<l||c>a)&&(c=c<l?a:l,"hour"===n.name&&e)){const e=t.querySelector("input[name=period]:not(:checked)");e?.click()}o(t,n.name,`${c}`)};return{initialize:s=>{if(s.dataset.miclinitialized)return;const d=t(s,"form"),m=t(s,".micl-timepicker__inputmode"),p=t(s,".micl-timepicker__dial"),u=[t(s,"input[name=hour]"),t(s,"input[name=minute]")].filter(e=>null!==e);if(!d||u.length<2)return;s.dataset.miclinitialized="1",u.forEach((t,n)=>{(t=>{const{min:n,max:i}=r(t.name);let a;a="hour"===t.name?e?"(0[1-9]|1[0-2])":"(0[0-9]|1[0-9]|2[0-3])":"(0[0-9]|[1-5][0-9])";const l={maxlength:"2",pattern:a,inputmode:"numeric",autocomplete:"off",role:"spinbutton",min:String(n),max:String(i)};for(const e in l)t.setAttribute(e,l[e])})(t),p&&t.toggleAttribute("readonly",i(p)),t.addEventListener("keydown",c.bind(null,s,t)),t.addEventListener("focus",()=>{a(u[0===n?1:0],!1),a(t,!0),p&&(((e,t)=>{e.querySelectorAll("data").forEach(e=>{e.dataset[t]&&(e.textContent=e.dataset[t],e.value=e.dataset[t].padStart(2,"0")),e.classList.contains("micl-timepicker__dial-inner")&&e.classList["hour"===t?"remove":"add"]("micl-hidden")})})(p,t.name),l(p,t.name,t.value))}),t.addEventListener("blur",()=>{i(p)||((e=>{const{max:t,min:n}=r(e.name);let i=parseInt(e.value,10);isNaN(i)&&(i=n),i>t&&(i=t),i<0&&(i=n),e.value=String(i).padStart(2,"0")})(t),a(t,!1))})});const g=s.querySelector(".micl-timepicker__period");if(g&&e&&(["am","pm"].forEach(e=>{let t=document.createElement("input");t.type="radio",t.name="period",t.classList.add(`micl-timepicker__${e}`),t.value=e,t.ariaLabel=e.toUpperCase(),g.appendChild(t)}),g.classList.toggle("micl-hidden",!e)),m?.addEventListener("click",()=>{const e=m.textContent;m.textContent=m.dataset.alticon||e,m.dataset.alticon=e,p?.classList.toggle("micl-hidden"),u.forEach(e=>{e.toggleAttribute("readonly",i(p))}),i(p)&&u[0].focus()}),p){((t,n)=>{let i=e?300:270;for(let t=e?1:0;t<=(e?12:23);t++){const a=document.createElement("data");a.value=`${t}`.padStart(2,"0"),a.textContent=`${t}`,a.dataset.hour=`${t}`,a.style.setProperty("--micl-angle",`${i}deg`),!e&&t>=12?a.classList.add("micl-timepicker__dial-inner"):a.dataset.minute=""+5*t%60,n.appendChild(a),i=(i+30)%360}const a=document.createElement("span");a.classList.add("micl-timepicker__track"),n.appendChild(a)})(0,p);const t=(e,t)=>{const n=document.elementFromPoint(e,t);n&&"DATA"===n.tagName&&o(s,s.querySelector("input[name=hour].micl-timepicker--selected")?"hour":"minute",n.value)};p.addEventListener("pointerdown",e=>{p.classList.add("micl-timepicker__dial--dragging"),t(e.clientX,e.clientY),p.setPointerCapture(e.pointerId)}),p.addEventListener("pointermove",e=>{p.classList.contains("micl-timepicker__dial--dragging")&&t(e.clientX,e.clientY)});const n=e=>{p.classList.remove("micl-timepicker__dial--dragging"),p.releasePointerCapture(e.pointerId)};p.addEventListener("pointerup",n),p.addEventListener("pointercancel",n)}s.addEventListener("beforetoggle",e=>{if("open"===e.oldState)return;let t=document.activeElement;if(n(t)&&(t.dataset.timepicker||t.popoverTargetElement)||(t=document.querySelector(`[data-timepicker="${s.id}"],[popovertarget="${s.id}"]`)),!n(t))return;s._miclInvoker=t;const i=(t.value||t.textContent).split(":");2===i.length&&(o(s,"hour",i[0],!0),o(s,"minute",i[1],!1,!1))}),s.addEventListener("close",()=>{if(!s.returnValue)return;let t=s._miclInvoker;if(t||(t=document.querySelector(`[data-timepicker="${s.id}"],[popovertarget="${s.id}"]`)),!n(t))return;const i=d.elements;let a=parseInt(i.namedItem("hour")?.value||"0",10);if(isNaN(a))return;e&&"pm"===i.namedItem("period")?.value&&(a+=12);const r=parseInt(i.namedItem("minute")?.value||"0",10);if(isNaN(r))return;const l=`${a}`.padStart(2,"0")+":"+`${r}`.padStart(2,"0");t.value=l,t instanceof HTMLInputElement?(t.dispatchEvent(new Event("change",{bubbles:!0})),t.dispatchEvent(new Event("input",{bubbles:!0}))):t.textContent=l})}}})(),Y=(()=>{const e={[n]:{component:i,type:HTMLDialogElement},[a]:{component:r,type:HTMLButtonElement},[l]:{component:o,type:HTMLElement},[c]:{component:k,type:HTMLDialogElement},[_]:{component:b,type:HTMLElement},[S]:{component:x,type:HTMLElement},[w]:{component:T,type:HTMLLabelElement},[F]:{component:B,type:HTMLSelectElement},[C]:{component:M,type:HTMLInputElement},[q]:{component:P,type:HTMLElement},[N]:{component:B,type:HTMLTextAreaElement},[z]:{component:B,type:HTMLInputElement},[O]:{component:V,type:HTMLDialogElement}},t=Object.keys(e).join(","),s=t=>{for(const[n,{component:i,type:a}]of Object.entries(e))if(t.matches(n)&&t instanceof a&&"function"==typeof i.initialize)return void i.initialize(t)},d=e=>{e.querySelectorAll(t).forEach(s),e.querySelectorAll('[class*="micl-"]').forEach(e=>{"1"===window.getComputedStyle(e).getPropertyValue("--micl-ripple")&&e.addEventListener("pointerdown",t=>{if(t.currentTarget.classList.contains("micl-card--nonactionable"))return;t.stopPropagation();let n=e.getBoundingClientRect();e.style.setProperty("--micl-x",t.clientX-n.left+"px"),e.style.setProperty("--micl-y",t.clientY-n.top+"px")})}),document.documentElement.style.setProperty("--md-sys-scrollbar-thumb-color",window.getComputedStyle(document.body).getPropertyValue("--md-sys-color-outline").trim())},m=t=>{for(const[n,{component:i,type:a}]of Object.entries(e))if(t.matches(n)&&t instanceof a&&"function"==typeof i.cleanup)return void i.cleanup(t)},p=e=>{e.querySelectorAll(t).forEach(m)},u=t=>{for(const[n,{component:i,type:a}]of Object.entries(e))if("function"==typeof i[t.type]&&t.target.closest(n)instanceof a)return void i[t.type]?.(t)},g=()=>{new MutationObserver(e=>{e.forEach(e=>{"childList"===e.type&&(e.addedNodes.forEach(e=>{e instanceof HTMLElement&&(e.matches(t)&&s(e),e.querySelectorAll(t).forEach(s))}),e.removedNodes.forEach(e=>{e instanceof HTMLElement&&(e.matches(t)&&m(e),p(e))}))})}).observe(document.body,{childList:!0,subtree:!0}),d(document),document.addEventListener("input",u),document.addEventListener("keydown",u)},h=()=>{document.removeEventListener("DOMContentLoaded",h),g()};return"loading"!==document.readyState?g():document.addEventListener("DOMContentLoaded",h),{initialize:()=>d(document),cleanup:()=>p(document)}})()})(),t})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.micl=t():e.micl=t()}(self,()=>(()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};return(()=>{e.r(t),e.d(t,{default:()=>U});const n="dialog.micl-bottomsheet",i=(()=>{const e=e=>{let t=parseInt(e.dataset.miclfitheight||"0",10),n=parseInt(window.getComputedStyle(e).getPropertyValue("max-block-size"),10),i=(e.dataset.miclsnapheights||"").split(",").map(Number).filter(e=>!isNaN(e)&&e>=0&&e<=n);return t<1&&(t=Math.min(e.getBoundingClientRect().height,n),e.dataset.miclfitheight=`${t}`),[...new Set(i.concat([t]).sort())]},t=(t,n)=>{let i=t.getBoundingClientRect().height,a=e(t);return a.filter(e=>e>i+4)[0]||a[n?a.length-1:0]},i=(e,t)=>{t<1?(delete e.dataset.miclfitheight,e.style.removeProperty("--md-sys-bottomsheet-height"),e[e.popover?"hidePopover":"close"]()):e.style.setProperty("--md-sys-bottomsheet-height",`${t}px`)};return{initialize:a=>{if(!a.matches(n)||a.dataset.miclinitialized)return;a.dataset.miclinitialized="1";const r=a.querySelector(".micl-bottomsheet__headline");if(!r)return;const l=r.querySelector(".micl-bottomsheet__draghandle");l?.addEventListener("click",()=>{i(a,t(a,!1))});let o,c,s=!1,m=!1;function d(e){const t=e.clientY;s&&Math.abs(o-t)>4&&(s=!1,m=!0,a.classList.add("micl-bottomsheet--resizing")),m&&i(a,c+o-t)}function p(n){s=!1,a.classList.remove("micl-bottomsheet--resizing"),m&&(m=!1,n.clientY<o?i(a,t(a,!0)):a.getBoundingClientRect().height<48?i(a,0):i(a,(t=>{let n=t.getBoundingClientRect().height,i=e(t),a=i.filter(e=>e<n-4);return a[a.length-1]||i[0]})(a)),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",p))}r.addEventListener("mousedown",e=>{e.eventPhase===Event.AT_TARGET&&(s=!0,e.preventDefault(),o=e.clientY,c=a.getBoundingClientRect().height,document.addEventListener("mousemove",d),document.addEventListener("mouseup",p))})},cleanup:e=>{e.matches(n)&&(e.classList.remove("micl-bottomsheet--resizing"),delete e.dataset.miclinitialized,delete e.dataset.miclfitheight)}}})(),a="button.micl-button--toggle",r={command:e=>{const t=e.target;t.matches(a)&&!t.disabled&&"--micl-toggle"===e.command&&(t.classList.add("micl-button--toggled"),t.classList.toggle("micl-button--selected"))},initialize:function(e){e.matches(a)&&!e.dataset.miclinitialized&&(e.dataset.miclinitialized="1",e.addEventListener("command",this.command))},cleanup:function(e){e.matches(a)&&(document.removeEventListener("command",this.command),delete e.dataset.miclinitialized)}},l=".micl-checkbox-group",o=(()=>{const e=e=>{const t=e.querySelector(".micl-checkbox__parent");return t?.closest(l)===e?t:null},t=n=>{const i=e(n);if(!i)return!1;let a=0,r=0;return n.querySelectorAll('input[type="checkbox"].micl-checkbox').forEach(e=>{if(e!==i){const i=e.closest(l);i===n?(a++,e.checked&&!e.indeterminate&&r++):e.classList.contains("micl-checkbox__parent")&&i?.parentElement?.closest(l)===n&&(a++,t(i)&&r++)}}),0===r?(i.checked=!1,i.indeterminate=!1):r===a?(i.checked=!0,i.indeterminate=!1):(i.checked=!0,i.indeterminate=!0),r===a},n=(e,t)=>{e.querySelectorAll('input[type="checkbox"].micl-checkbox').forEach(i=>{const a=i.closest(l);a===e?i.checked=t:i.classList.contains("micl-checkbox__parent")&&a?.parentElement?.closest(l)===e&&(i.checked=t,n(a,t))})},i=(i,a)=>{const r=e(i);if(!r)return;a===r&&n(i,a.checked);let o,c=i;do{o=c,c=c.parentElement?.closest(l)}while(c);t(o)};return{initialize:e=>{e.matches(l)&&!e.dataset.miclinitialized&&(e.dataset.miclinitialized="1",e.addEventListener("change",t=>{const n=t.target;n.classList.contains("micl-checkbox")&&(t.stopPropagation(),i(e,n))}),i(e,null))}}})(),c="dialog.micl-dialog.micl-datepicker",s=new WeakMap,m=(new Intl.DateTimeFormat).resolvedOptions().locale,d={input:new Intl.DateTimeFormat(m,{year:"numeric",month:"2-digit",day:"2-digit"}),header:new Intl.DateTimeFormat(m,{weekday:"short",day:"numeric",month:"short"}),monthLong:new Intl.DateTimeFormat(void 0,{month:"long"}),monthShort:new Intl.DateTimeFormat(m,{month:"short"}),weekdayNarrow:new Intl.DateTimeFormat(m,{weekday:"narrow"}),weekdayLong:new Intl.DateTimeFormat(m,{weekday:"long"})},p=e=>{const t=new Date(e);return t.setHours(0,0,0,0),t},u=e=>{const t=(e.getMonth()+1).toString().padStart(2,"0"),n=e.getDate().toString().padStart(2,"0");return`${e.getFullYear()}-${t}-${n}`},h=()=>d.input.formatToParts(new Date(2025,0,15)).map(e=>{switch(e.type){case"day":return"DD";case"month":return"MM";case"year":return"YYYY";case"literal":return e.value;default:return""}}).join("").trim(),g=(()=>{try{const e=new Intl.Locale(m).getWeekInfo?.();if(e)return 7===e.firstDay?0:e.firstDay}catch{}return/US|CA|MX/i.test(m)?0:1})(),f=e=>!isNaN(e.getTime()),y=(e,t)=>{if(e)if(e.firstElementChild){let n=e.firstChild;for(;n;){if(n.nodeType===Node.TEXT_NODE)return void(n.nodeValue=t);n=n.nextSibling}e.appendChild(document.createTextNode(t))}else e.textContent=t},v=(e,t)=>{const n=new Date(e,t,1).getDay(),i=new Date(e,t,1-(n-g+7)%7);return Array.from({length:42},(e,n)=>{const a=new Date(i);return a.setDate(i.getDate()+n),{date:a,val:u(a),isCurrentMonth:a.getMonth()===t}})},E=(e,t,n,i=!1)=>{if(i){const n=(()=>{const e=new Date,t=e.getDay()-g;e.setDate(e.getDate()-t);const n=document.createDocumentFragment();for(let t=0;t<7;t++){const i=document.createElement("span");i.style.gridArea=`1 / ${t+1}`,i.textContent=d.weekdayNarrow.format(e),i.title=d.weekdayLong.format(e),n.appendChild(i),e.setDate(e.getDate()+1)}return n})();t.forEach((e,t)=>{const i=document.createElement("time"),a=Math.floor(t/7)+2,r=t%7+1;i.style.gridArea=`${a} / ${r}`,n.appendChild(i)}),e.appendChild(n)}const a=p(new Date);e.querySelectorAll("time").forEach((e,i)=>{const r=t[i];e.dateTime=r.val,e.textContent=r.date.getDate().toString();const l=r.date.getTime()===n.selected.getTime(),o=r.date.getTime()===a.getTime();e.className="",r.isCurrentMonth||e.classList.add("micl-datepicker__outside"),l&&e.classList.add("micl-datepicker__selected"),o&&e.classList.add("micl-datepicker__today")})},L=(e,t,n=0)=>{const i=e.querySelector(".micl-dialog__content"),a=i?.querySelector(".micl-datepicker__calendars");if(!a)return;const r="micl-startleft",l="micl-startright",o="micl-moveleft",c="micl-moveright";if(a.classList.remove(o,c,r,l),a.offsetWidth,0!==n){const e=a.querySelector(".micl-datepicker__calendar");if(!e)return;const i=document.createElement("div"),s=document.createElement("div");i.classList.add("micl-datepicker__calendar"),s.classList.add("micl-datepicker__calendar-inner");const m=v(t.viewDate.getFullYear(),t.viewDate.getMonth());E(s,m,t,!0);const d=n>0,p=d?r:l,u=d?o:c;i.appendChild(s),d?a.appendChild(i):a.prepend(i),a.classList.add("micl-no-transition",p),a.offsetWidth,requestAnimationFrame(()=>{a.classList.remove("micl-no-transition",p),a.classList.add(u)});const h=()=>{a.removeEventListener("transitionend",h),setTimeout(()=>{a.classList.remove(u),e.parentElement===a&&e.remove(),a.classList.add("micl-no-transition",r),a.offsetWidth,a.classList.remove("micl-no-transition",r)},0)};a.addEventListener("transitionend",h)}else{let e=a.querySelector(".micl-datepicker__calendar");e||(e=document.createElement("div"),e.classList.add("micl-datepicker__calendar"),e=a.appendChild(e));let n=e.querySelector(".micl-datepicker__calendar-inner");n||(n=document.createElement("div"),n.classList.add("micl-datepicker__calendar-inner"),e.appendChild(n));const i=v(t.viewDate.getFullYear(),t.viewDate.getMonth());E(n,i,t,0===n.querySelectorAll("time").length)}const s=i?.querySelector(".micl-datepicker__input input");s&&(s.value=d.input.format(t.selected),s.value?s.dataset.miclvalue="1":delete s.dataset.miclvalue,s.dataset.micldateformat||(s.dataset.micldateformat=h())),y(e.querySelector("h1, h2, h3, h4, h5, h6, .micl-heading"),d.header.format(t.selected)),y(e.querySelector(".micl-datepicker__month"),d.monthShort.format(t.viewDate)),y(e.querySelector(".micl-datepicker__year"),t.viewDate.toLocaleDateString(m,e.classList.contains("micl-dialog--docked")?{year:"numeric"}:{month:"long",year:"numeric"}));const p=e.querySelector(`.micl-datepicker__months input[value="${t.viewDate.getMonth()}"]`);p&&(p.checked=!0);const u=e.querySelector(`.micl-datepicker__years input[value="${t.viewDate.getFullYear()}"]`);u&&(u.checked=!0)},k=(e,t)=>{"months"!==t&&"years"!==t||e.querySelector(`.micl-datepicker__${t}.micl-datepicker__view-hidden`)||(t="calendars"),["calendars","input","month-selector","year-selector"].forEach(n=>{let i="input"===t;"calendars"!==n&&"input"!==n||(i=t!==n),e.querySelector(`.micl-datepicker__${n}`)?.classList.toggle("micl-datepicker__view-hidden",i)});const n=e.querySelector(".micl-dialog__content");if(!n)return;const i=parseInt(window.getComputedStyle(n).getPropertyValue("max-block-size"),10);[".micl-datepicker__months",".micl-datepicker__years"].forEach(e=>{const a=n.querySelector(e);if(!a)return;const r=a.querySelector("input:checked");let l=!1;if(r&&e.substring(18)===t){const e=window.getComputedStyle(a).getPropertyValue("transition-duration"),t=parseFloat(e)*(e.includes("ms")?1:1e3),o=a.scrollHeight-i,c=(i-48)/2;if(r.offsetTop>c){let e=r.offsetTop-c-24;e>o&&(e=o);const i=performance.now(),s=a=>{const r=Math.min((a-i)/t,1);n.scrollTop=e*r,r<1&&requestAnimationFrame(s)};a.classList.remove("micl-datepicker__view-hidden"),requestAnimationFrame(s),l=null,a.addEventListener("transitionend",function t(i){"height"!==i.propertyName&&"block-size"!==i.propertyName||(n.scrollTop=e,a.removeEventListener("transitionend",t))})}}else l=!0;null!==l&&a.classList.toggle("micl-datepicker__view-hidden",l)});const a=e.querySelector(".micl-datepicker__inputmode[data-miclalt]");a&&(a.dataset.miclalticon||(a.dataset.miclalticon=a.textContent),a.textContent=("input"===t?a.dataset.miclalt:a.dataset.miclalticon)||"")},_=(e,t,n)=>{const i=s.get(e);if(!i)return;const a=new Date(i.viewDate);"month"===n?a.setMonth(a.getMonth()+t):a.setFullYear(a.getFullYear()+t);const r=i.min&&a<i.min,l=i.max&&a>i.max;r||l?e.querySelector(".micl-datepicker__calendars")?.animate([{transform:"translateX(0)"},{transform:`translateX(${r?8:-8}px)`},{transform:"translateX(0)"}],{duration:500,easing:"ease-in-out"}):(i.viewDate=a,L(e,i,"month"===n?t:0))},b=(e,t,n=!1)=>{const i=s.get(e);if(!i)return;let a=[];if(n){const e=h();if(t.length===e.length){let n="",i="",r="";for(let a=0;a<e.length;a++)switch(e[a]){case"D":n+=t[a];break;case"M":i+=t[a];break;case"Y":r+=t[a]}a=[parseInt(r,10),parseInt(i,10)-1,parseInt(n,10)]}}else a=t.split("-").map(Number),a[1]--;3===a.length&&(i.selected=new Date(a[0],a[1],a[2]),i.viewDate=new Date(i.selected),L(e,i))},w={keydown:e=>{if(!(e instanceof KeyboardEvent&&e.target instanceof Element))return;const t=e.target.closest(c);if(t)switch(e.key){case"Enter":case" ":e.target instanceof HTMLInputElement&&"date"===e.target.type&&e.preventDefault();break;case"M":k(t,"months");break;case"Y":k(t,"years");break;case"PageUp":case"PageDown":_(t,"PageUp"===e.key?1:-1,e.shiftKey?"year":"month")}},initialize:e=>{if(e.dataset.miclinitialized)return;const t=e.querySelector("form"),n=e.querySelector(".micl-dialog__content");t&&n&&(e.dataset.miclinitialized="1",e.addEventListener("click",t=>{const n=t.target,i=n.closest("button");if(i){const t=i.parentElement?.classList.contains("micl-datepicker__month-selector"),n=i.classList.contains("micl-datepicker__next"),a=i.classList.contains("micl-datepicker__previous");if(n||a)return void _(e,n?1:-1,t?"month":"year")}n.closest(".micl-datepicker__month")&&k(e,"months"),n.closest(".micl-datepicker__year")&&k(e,"years"),n.closest(".micl-datepicker__inputmode")&&k(e,e.querySelector(".micl-datepicker__input.micl-datepicker__view-hidden")?"input":"calendars");const a=n.closest("time");if(a&&a.dateTime&&b(e,a.dateTime),n instanceof HTMLInputElement&&("miclmonth"===n.name||"miclyear"===n.name)){const t=s.get(e);if(t){const i=parseInt(n.value,10);"miclmonth"===n.name?t.viewDate.setMonth(i):t.viewDate.setFullYear(i),t.viewDate<t.min?t.viewDate=t.min:t.viewDate>t.max&&(t.viewDate=t.max),L(e,t),k(e,"calendars")}}}),e.addEventListener("beforetoggle",t=>{if("open"!==t.newState)return;const n=e=>e instanceof HTMLInputElement||e instanceof HTMLButtonElement;let i=document.activeElement;if(n(i)&&(i.dataset.datepicker||i.popoverTargetElement||i.commandForElement)||(i=document.querySelector(`[data-datepicker="${e.id}"],[popovertarget="${e.id}"],[commandfor="${e.id}"]`)),!n(i))return;let a=new Date,r=new Date(1900,0,1),l=new Date(2099,11,31);if(i instanceof HTMLInputElement)"date"===i.type&&i.valueAsDate?a=i.valueAsDate:i.value&&(a=new Date(i.value)),i.min&&(r=new Date(i.min)),i.max&&(l=new Date(i.max));else{const e=new Date(i.value||i.textContent);f(e)&&(a=e)}f(a)||(a=new Date),a=p(a);const o={invoker:i,selected:a,viewDate:new Date(a),min:r,max:l};s.set(e,o),((e,t,n)=>{const i=t.getFullYear(),a=n.getFullYear();["months","years"].forEach(r=>{const l=e.querySelector(`.micl-datepicker__${r}`);if(!l)return;l.innerHTML="";const o=document.createDocumentFragment(),c=n.getMonth();if("months"===r){const e=[];let i=new Date(t.getFullYear(),t.getMonth(),1);for(;i<=n||i.getMonth()===c&&i.getFullYear()===a;)e.push(i.getMonth()),i.setMonth(i.getMonth()+1);[...new Set(e.sort((e,t)=>e-t))].forEach(e=>{const t=document.createElement("label");t.innerHTML=`<span class="material-symbols-outlined">check</span><input type="radio" name="miclmonth" value="${e}"> ${d.monthLong.format(new Date(2e3,e,1))}`,o.appendChild(t)})}else for(let e=i;e<=a;e++){const t=document.createElement("label");t.innerHTML=`<input type="radio" name="miclyear" value="${e}"> ${e}`,o.appendChild(t)}const s=document.createElement("div");s.classList.add(`micl-datepicker__${r}-inner`),l.appendChild(s).appendChild(o)})})(e,r,l),k(e,"calendars"),L(e,o),e.querySelector(".micl-datepicker__input input")?.addEventListener("blur",t=>{const n=t.target;b(e,n.value,!0)},{once:!0})}),e.addEventListener("close",()=>{const t=s.get(e);t?.invoker&&""!==e.returnValue&&(t.invoker.value=u(t.selected),t.invoker instanceof HTMLInputElement?(t.invoker.dispatchEvent(new Event("change",{bubbles:!0})),t.invoker.dispatchEvent(new Event("input",{bubbles:!0}))):t.invoker.textContent=t.selected.toLocaleDateString())}))}},S=".micl-list-item-one,.micl-list-item-two,.micl-list-item-three",x=(()=>{const e=e=>!!e&&e.classList.contains("micl-list-item--disabled");return{keydown:t=>{if(!(t instanceof KeyboardEvent&&t.target instanceof Element&&t.target.matches(".micl-list-item-one,.micl-list-item-two,.micl-list-item-three")))return;const n=t.target.parentElement;if(!n)return;let i=[];if(n instanceof HTMLDetailsElement?i=Array.from(n.parentElement?.children||[]).map(t=>{let n=t.querySelector(":scope > summary");return e(n)?null:n}).filter(e=>!!e):n instanceof HTMLUListElement&&(i=Array.from(n.children).map(t=>t instanceof HTMLLIElement&&!e(t)?t:null).filter(e=>!!e)),0===i.length)return;let a=i.findIndex(e=>(e=>!!e&&e.matches(":has(input[type=checkbox]:checked)"))(e)),r=i.findIndex(e=>0===e.tabIndex),l=r;switch(t.key){case"ArrowDown":l=(r+1)%i.length,t.preventDefault();break;case"ArrowUp":l=(r-1+i.length)%i.length,t.preventDefault();break;case"Tab":-1===a?0!==r&&(i[r].tabIndex=-1,i[0].tabIndex=0):a!==r&&(i[r].tabIndex=-1,i[a].tabIndex=0);break;case"Enter":case" ":const e=t.target.querySelector("input[type=checkbox]");e instanceof HTMLInputElement&&(e.checked=!e.checked)}if(l!==r){i[r].tabIndex=-1,i[l].tabIndex=0,i[l].focus();const e=i[l].querySelector(":scope > button");e?.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0,cancelable:!0,view:window}))}}}})(),T=".micl-menu[popover]",D=(()=>{const e=(e,t)=>{const n=e.getBoundingClientRect(),i=t.getBoundingClientRect();return(n.x>i.x?"right ":"left ")+(n.y>i.y?"bottom":"top")};return{initialize:t=>{if(!t.matches(".micl-menu[popover]")||t.dataset.miclinitialized)return;t.dataset.miclinitialized="1";const n=document.querySelector(`[popovertarget="${t.id}"]`);n&&t.addEventListener("beforetoggle",i=>{"open"===i.oldState&&(t.style.transformOrigin=e(n,t))}),n&&t.addEventListener("toggle",i=>{"closed"===i.oldState&&(t.style.transformOrigin=e(n,t))}),t.querySelectorAll(":scope > ul.micl-list > li > button[popovertarget]").forEach(e=>{if(e.popoverTargetElement?.matches(".micl-menu[popover]")){let t,n=`--${e.popoverTargetElement.id}`;e.popoverTargetElement instanceof HTMLElement&&(e.style.setProperty("anchor-name",n),e.popoverTargetElement.style.insetBlockStart=`anchor(${n} start)`,e.popoverTargetElement.style.insetInlineStart=`anchor(${n} end)`),e.addEventListener("mouseenter",()=>{e.popoverTargetElement instanceof HTMLElement&&e.popoverTargetElement.showPopover()}),e.addEventListener("mouseleave",()=>{t=setTimeout(()=>{e.popoverTargetElement instanceof HTMLElement&&!e.popoverTargetElement.matches(":hover")&&e.popoverTargetElement.hidePopover()},100)}),e.popoverTargetElement.addEventListener("mouseenter",()=>{clearTimeout(t)}),e.popoverTargetElement.addEventListener("mouseleave",()=>{e.popoverTargetElement instanceof HTMLElement&&e.popoverTargetElement.hidePopover()})}})}}})(),M=".micl-navigationrail__item[for]:not(.micl-navigationrail__item--disabled)",C={keydown:e=>{if(!(e instanceof KeyboardEvent&&e.target instanceof HTMLLabelElement&&e.target.matches(M)))return;const t=document.getElementById(e.target.htmlFor);if(t)switch(e.key){case"Enter":case" ":e.preventDefault(),t.checked||(t.checked=!t.checked)}}},q="input[type=range].micl-slider-xs,input[type=range].micl-slider-s,input[type=range].micl-slider-m,input[type=range].micl-slider-l,input[type=range].micl-slider-xl",I=(()=>{const e=String.fromCharCode(8226),t=String.fromCharCode(8201),n=e=>e.parentElement?.classList.contains("micl-slider__container")?e.parentElement:null,i=(e,t)=>{e.dataset.miclsliderticks=t},a=e=>{let t=JSON.stringify(e.value+""),i=n(e);i&&(i.style.setProperty("--md-sys-slider-value",e.value),i.style.setProperty("--md-sys-slider-tip",t)),e.style.setProperty("--md-sys-slider-value",e.value),e.style.setProperty("--md-sys-slider-tip",t)};return{initialize:r=>{if(!r.matches(q))return;(e=>{let t=e.max||"100";n(e)?.style.setProperty("--md-sys-slider-max",t),e.style.setProperty("--md-sys-slider-max",t)})(r),(e=>{let t=e.min||"0";n(e)?.style.setProperty("--md-sys-slider-min",t),e.style.setProperty("--md-sys-slider-min",t)})(r),a(r),(e=>{let t=n(e);if(t){const n=window.getComputedStyle(e);["--md-sys-slider-handle-height","--md-sys-slider-track-height"].forEach(e=>{t.style.setProperty(e,n.getPropertyValue(e))})}})(r);const l=parseFloat(r.max),o=parseFloat(r.min),c=r.getBoundingClientRect(),s=((e,t,n)=>{const i=[];return e.list&&t>n&&e.list.querySelectorAll("option[value]").forEach(e=>{let a=parseFloat(e.value);!isNaN(a)&&a>=n&&a<=t&&i.push(a)}),i})(r,l,o).sort((e,t)=>e-t).map(e=>Math.round(100*(e-o)/(l-o)));if(s.length>0){const n=document.createElement("canvas"),a=n.getContext("2d");if(a){a.font=window.getComputedStyle(r).getPropertyValue("font");let n=a.measureText(t).width,l=a.measureText(e).width,o=c.width-10,m=0,d="";s.forEach(i=>{let a=o*i/100,r=Math.round((a-m)/n)-1;for(let e=0;e<r;e++)d+=t,m+=n;d+=e,m+=l}),i(r,d)}n.remove()}else i(r,e)},input:e=>{e.target.matches(q)&&e.target instanceof HTMLInputElement&&!e.target.disabled&&a(e.target)}}})(),A=(()=>{const e=e=>"willValidate"in e,t=t=>{const n=t.target;e(n)&&n.setCustomValidity("")},n=e=>{const n=e.dataset.miclvalidateMessage||"";if(n&&e.matches("[data-miclvalidate-checkboxes-name]")){const i=e.dataset.miclvalidateCheckboxesName||"",a=e.dataset.miclvalidateCheckboxesCountEqual||"",r=e.dataset.miclvalidateCheckboxesCountMax||"",l=e.dataset.miclvalidateCheckboxesCountMin||"";if(i&&(a||r||l)){const o=e.querySelectorAll(`input[type="checkbox"][name="${i}"]:checked`).length,c=parseInt(a,10),s=parseInt(r,10),m=parseInt(l,10);let d=!isNaN(c)&&o!=c||!isNaN(s)&&o>s||!isNaN(m)&&o<m;e.setCustomValidity(d?n:"");const p=e.querySelector(`input[type="checkbox"][name="${i}"]`);p&&(p.setCustomValidity(d?n:""),d?p.addEventListener("change",t):p.removeEventListener("change",t))}}},i=(t,i)=>{let a=!1;return t.querySelectorAll("fieldset").forEach(n),Array.from(t.elements).forEach(t=>{if(e(t)&&t.willValidate){t.checkValidity()||(a=!0);let n=(t=>{if(!t.parentElement||!e(t))return!1;let n=!1;return t instanceof HTMLInputElement&&"checkbox"===t.type&&t.classList.contains("micl-checkbox")?n=(e=>(e.classList.toggle("micl-checkbox--error",!!e.validationMessage),!1))(t):(t.parentElement.classList.contains("micl-textfield-outlined")||t.parentElement.classList.contains("micl-textfield-filled"))&&(n=((e,t)=>{e.classList.toggle("micl-textfield--error",!!t);const n=e.querySelector(".micl-textfield__supporting-text");return n&&(t?(n.dataset.micltext||(n.dataset.micltext=n.textContent),n.textContent=t):"micltext"in n.dataset&&(n.textContent=n.dataset.micltext||"")),!!t&&!!n})(t.parentElement,t.validationMessage)),n})(t);!n&&i&&t.reportValidity()}}),!a};return{validateFieldSet:(e,t)=>(n(e),i(e,t)),validateForm:(e,t)=>i(e,t)}})(),$=".micl-stepper",H=".micl-stepper__action-back,.micl-stepper__action-next",P=".micl-stepper__header button[role=tab][aria-controls]",F="micl-stepper__step",z="."+F,N=(()=>{const e=e=>e.querySelector(`${z}[aria-current=step]`)||n(e,e.querySelector(z)),t=(e,t)=>Array.from(e.querySelectorAll(z)).indexOf(t)+1,n=(e,t)=>{if(!t)return null;let n=0;e.querySelectorAll(z).forEach((e,i)=>{e.setAttribute("aria-current",e===t?"step":"false"),e===t&&(n=i)});const i=e.querySelectorAll(P).item(n);return e.querySelectorAll(P).forEach((e,t)=>{e.setAttribute("aria-selected",e===i?"true":"false")}),r(e,t),t},i=e=>{const t=e.currentTarget;"transform"===e.propertyName&&t&&(t.classList.remove("micl-stepper__step--fromselected","micl-stepper__step--toselected"),t.removeEventListener("transitionend",i))},a=e=>e.classList.contains("micl-stepper__action-back"),r=(e,n)=>{((e,t)=>{Array.from(e.querySelectorAll(H)).forEach(e=>{const n=a(e)?"previousElementSibling":"nextElementSibling",i=t[n]?.classList.contains(F);e.classList.toggle("micl-hidden",!i)})})(e,n),((e,n)=>{const i=t(e,n);e.querySelectorAll("[data-step]").forEach(e=>{const t=e.dataset.step!=`${i}`;e.classList.toggle("micl-hidden",t)})})(e,n),((e,n)=>{const i=t(e,n),a=e.querySelectorAll(z).length,r=!e.classList.contains("micl-stepper--nonlinear"),l=(t,n)=>{e.querySelectorAll(t).forEach(e=>{e.textContent=n})};l(".micl-stepper__progress-current",`${i}`),l(".micl-stepper__progress-total",`${a}`),e.querySelectorAll(".micl-stepper__progress-dots").forEach(e=>{const t=document.createDocumentFragment();e.innerHTML="";for(let e=1;e<=a;e++){let n=document.createElement("span");n.classList.add("micl-stepper__progress-dot"),(r&&e<=i||!r&&e===i)&&n.classList.add("micl-stepper__progress--done"),t.appendChild(n)}e.appendChild(t)}),e.querySelectorAll(P).forEach((e,t)=>{e.classList.toggle("micl-stepper__progress--done",r?t+1<=i:t+1===i)})})(e,n)};return{initialize:t=>{if(!t.matches($)||t.dataset.miclinitialized)return;t.dataset.miclinitialized="1";const l=e(t),o=t.querySelector(".micl-stepper__header");l&&(r(t,l),o?.querySelectorAll("button[role=tab][aria-controls]").forEach(e=>{e.addEventListener("click",()=>{if("ariaControlsElements"in Element.prototype&&e.ariaControlsElements)n(t,e.ariaControlsElements[0]);else{const i=e.getAttribute("aria-controls");i&&n(t,document.getElementById(i))}})})),Array.from(t.querySelectorAll(H)).forEach(r=>{r.addEventListener("click",function(r){const l=a(this),o=e(t);if(!o||!l&&o instanceof HTMLFieldSetElement&&!A.validateFieldSet(o,!0))return void(l||r.stopImmediatePropagation());const c=o[l?"previousElementSibling":"nextElementSibling"];c?.classList.contains(F)&&((e,t,a)=>{t.addEventListener("transitionend",i),t.classList.add("micl-stepper__step--fromselected"),t.offsetHeight,a.addEventListener("transitionend",i),a.classList.add("micl-stepper__step--toselected"),a.offsetHeight,n(e,a)})(t,o,c)},!0)}),t instanceof HTMLFormElement&&t.addEventListener("submit",e=>{e.submitter?.classList.contains("micl-form--dosubmit")||e.preventDefault(),A.validateForm(t,!0)||e.stopImmediatePropagation()},!0)}}})(),Y=".micl-textfield-outlined > input,.micl-textfield-filled > input",O=".micl-textfield-outlined > textarea,.micl-textfield-filled > textarea",B=".micl-textfield-filled > select,.micl-textfield-outlined > select",V=(()=>{const e=e=>{if(!e.parentElement||e instanceof HTMLSelectElement||!e.maxLength)return;const t=e.parentElement.querySelector(".micl-textfield__character-counter");t&&(t.textContent=`${e.value.length}/${e.maxLength}`)};return{initialize:t=>{if(!t.dataset.miclinitialized){if(t.dataset.miclinitialized="1",t.value&&(t.dataset.miclvalue="1"),t instanceof HTMLSelectElement&&t.addEventListener("mousedown",()=>{const e=t.getBoundingClientRect(),n=e.top,i=window.innerHeight-e.bottom;!t.matches(":open")&&t.style.setProperty("--md-sys-select-picker-origin",n>i?"left bottom":"left top")}),t.matches("input[type=time][data-timepicker],input[type=date][data-datepicker]")){const e=t.dataset.timepicker?document.getElementById(t.dataset.timepicker):t.dataset.datepicker?document.getElementById(t.dataset.datepicker):null;e instanceof HTMLDialogElement&&(t.addEventListener("click",t=>{t.preventDefault(),e.showModal()}),t.addEventListener("keydown",t=>{if(t instanceof KeyboardEvent)switch(t.key){case"Enter":case" ":t.preventDefault(),e.showModal()}}))}e(t)}},input:t=>{t.target.matches(`${Y},${B},${O}`)&&t.target.dataset.miclinitialized&&!t.target.disabled&&(t.target instanceof HTMLInputElement&&t.target.dataset.micldateformat&&((e,t)=>{const n=(e.dataset.micldateformat||"").match(/([DMY]{2,4})([^DMY])?([DMY]{2,4})([^DMY])?([DMY]{2,4})/);if(!n)return;const i=[{type:n[1],length:n[1].length,separator:n[2]||""},{type:n[3],length:n[3].length,separator:n[4]||""},{type:n[5],length:n[5].length,separator:""}];e.maxLength=i.reduce((e,t)=>e+t.length+(t.separator?1:0),0);let a=e.value.replace(/\D/g,""),r="",l=0,o=e.selectionStart||0;for(let e=0;e<i.length;e++){const t=i[e];if(a.length<l)break;const n=a.substring(l,l+t.length);r+=n,l+=n.length,n.length===t.length&&t.separator&&(r+=t.separator)}const c=e.value.length;e.value=r.substring(0,e.maxLength);const s=e.value.length;t.startsWith("deleteContent")?o>0&&e.setSelectionRange(o,o):s>c&&s>o?e.setSelectionRange(s,s):e.setSelectionRange(o,o)})(t.target,t.inputType),t.target.value?t.target.dataset.miclvalue="1":delete t.target.dataset.miclvalue,e(t.target))}}})(),R="dialog.micl-dialog.micl-timepicker",j=(()=>{const e=(()=>{try{const e=new Intl.DateTimeFormat(void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return"h11"===e||"h12"===e}catch(e){return!1}})(),t=(e,t)=>e.querySelector(t),n=e=>e instanceof HTMLInputElement||e instanceof HTMLButtonElement,i=e=>!!e&&!e.classList.contains("micl-hidden"),a=(e,t)=>{e.classList.toggle("micl-timepicker--selected",t)},r=t=>"hour"===t?{min:e?1:0,max:e?12:23}:{min:0,max:59},l=(e,t,n)=>{e.querySelectorAll("data").forEach(e=>e.classList.remove("micl-timepicker__time--selected"));const i=e.querySelector(`data[data-${t}][value="${n}"]`);let a="";i?(a=window.getComputedStyle(i).getPropertyValue("--micl-angle"),i.classList.add("micl-timepicker__time--selected")):"minute"===t&&(a=`${Math.round(360*parseInt(n,10)/60-90)}deg`),a&&e.style.setProperty("--micl-angle",a)},o=(n,i,a,r,o=!0)=>{let c=parseInt(a||"0",10);if(isNaN(c))return;const s=t(n,`input[name=${i}]`);if(s){if("hour"===i&&r&&e){const e=n.querySelector(".micl-timepicker__am"),t=n.querySelector(".micl-timepicker__pm");c>12?(t&&(t.checked=!0),c-=12):e&&(e.checked=!0)}if(s.value=`${c}`.padStart(2,"0"),o){const e=t(n,".micl-timepicker__dial");if(!e)return;l(e,i,s.value)}}},c=(t,n,i)=>{if("ArrowDown"!==i.key&&"ArrowUp"!==i.key)return;i.preventDefault();const{max:a,min:l}=r(n.name);let c=parseInt(n.value,10)||0;if(c+="ArrowUp"===i.key?1:-1,(c<l||c>a)&&(c=c<l?a:l,"hour"===n.name&&e)){const e=t.querySelector("input[name=period]:not(:checked)");e?.click()}o(t,n.name,`${c}`)};return{initialize:s=>{if(s.dataset.miclinitialized)return;const m=t(s,"form"),d=t(s,".micl-timepicker__inputmode"),p=t(s,".micl-timepicker__dial"),u=[t(s,"input[name=hour]"),t(s,"input[name=minute]")].filter(e=>null!==e);if(!m||u.length<2)return;s.dataset.miclinitialized="1",u.forEach((t,n)=>{(t=>{const{min:n,max:i}=r(t.name);let a;a="hour"===t.name?e?"(0[1-9]|1[0-2])":"(0[0-9]|1[0-9]|2[0-3])":"(0[0-9]|[1-5][0-9])";const l={maxlength:"2",pattern:a,inputmode:"numeric",autocomplete:"off",role:"spinbutton",min:String(n),max:String(i)};for(const e in l)t.setAttribute(e,l[e])})(t),p&&t.toggleAttribute("readonly",i(p)),t.addEventListener("keydown",c.bind(null,s,t)),t.addEventListener("focus",()=>{a(u[0===n?1:0],!1),a(t,!0),p&&(((e,t)=>{e.querySelectorAll("data").forEach(e=>{e.dataset[t]&&(e.textContent=e.dataset[t],e.value=e.dataset[t].padStart(2,"0")),e.classList.contains("micl-timepicker__dial-inner")&&e.classList["hour"===t?"remove":"add"]("micl-hidden")})})(p,t.name),l(p,t.name,t.value))}),t.addEventListener("blur",()=>{i(p)||((e=>{const{max:t,min:n}=r(e.name);let i=parseInt(e.value,10);isNaN(i)&&(i=n),i>t&&(i=t),i<0&&(i=n),e.value=String(i).padStart(2,"0")})(t),a(t,!1))})});const h=s.querySelector(".micl-timepicker__period");if(h&&e&&(["am","pm"].forEach(e=>{let t=document.createElement("input");t.type="radio",t.name="period",t.classList.add(`micl-timepicker__${e}`),t.value=e,t.ariaLabel=e.toUpperCase(),h.appendChild(t)}),h.classList.toggle("micl-hidden",!e)),d?.addEventListener("click",()=>{const e=d.textContent;d.textContent=d.dataset.miclalt||e,d.dataset.miclalt=e,p?.classList.toggle("micl-hidden"),u.forEach(e=>{e.toggleAttribute("readonly",i(p))}),i(p)&&u[0].focus()}),p){((t,n)=>{let i=e?300:270;for(let t=e?1:0;t<=(e?12:23);t++){const a=document.createElement("data");a.value=`${t}`.padStart(2,"0"),a.textContent=`${t}`,a.dataset.hour=`${t}`,a.style.setProperty("--micl-angle",`${i}deg`),!e&&t>=12?a.classList.add("micl-timepicker__dial-inner"):a.dataset.minute=""+5*t%60,n.appendChild(a),i=(i+30)%360}const a=document.createElement("span");a.classList.add("micl-timepicker__track"),n.appendChild(a)})(0,p);const t=(e,t)=>{const n=document.elementFromPoint(e,t);n&&"DATA"===n.tagName&&o(s,s.querySelector("input[name=hour].micl-timepicker--selected")?"hour":"minute",n.value)};p.addEventListener("pointerdown",e=>{p.classList.add("micl-timepicker__dial--dragging"),t(e.clientX,e.clientY),p.setPointerCapture(e.pointerId)}),p.addEventListener("pointermove",e=>{p.classList.contains("micl-timepicker__dial--dragging")&&t(e.clientX,e.clientY)});const n=e=>{p.classList.remove("micl-timepicker__dial--dragging"),p.releasePointerCapture(e.pointerId)};p.addEventListener("pointerup",n),p.addEventListener("pointercancel",n)}s.addEventListener("beforetoggle",e=>{if("open"===e.oldState)return;let t=document.activeElement;if(n(t)&&(t.dataset.timepicker||t.popoverTargetElement||t.commandForElement)||(t=document.querySelector(`[data-timepicker="${s.id}"],[popovertarget="${s.id}"],[commandfor="${s.id}"]`)),!n(t))return;s._miclInvoker=t;const i=(t.value||t.textContent).split(":");2===i.length&&(o(s,"hour",i[0],!0),o(s,"minute",i[1],!1,!1))}),s.addEventListener("close",()=>{if(!s.returnValue)return;let t=s._miclInvoker;if(t||(t=document.querySelector(`[data-timepicker="${s.id}"],[popovertarget="${s.id}"],[commandfor="${s.id}"]`)),!n(t))return;const i=m.elements;let a=parseInt(i.namedItem("hour")?.value||"0",10);if(isNaN(a))return;e&&"pm"===i.namedItem("period")?.value&&(a+=12);const r=parseInt(i.namedItem("minute")?.value||"0",10);if(isNaN(r))return;const l=`${a}`.padStart(2,"0")+":"+`${r}`.padStart(2,"0");t.value=l,t instanceof HTMLInputElement?(t.dispatchEvent(new Event("change",{bubbles:!0})),t.dispatchEvent(new Event("input",{bubbles:!0}))):t.textContent=l})}}})(),U=(()=>{const e={[n]:{component:i,type:HTMLDialogElement},[a]:{component:r,type:HTMLButtonElement},[l]:{component:o,type:HTMLElement},[c]:{component:w,type:HTMLDialogElement},[S]:{component:x,type:HTMLElement},[T]:{component:D,type:HTMLElement},[M]:{component:C,type:HTMLLabelElement},[B]:{component:V,type:HTMLSelectElement},[q]:{component:I,type:HTMLInputElement},[$]:{component:N,type:HTMLElement},[O]:{component:V,type:HTMLTextAreaElement},[Y]:{component:V,type:HTMLInputElement},[R]:{component:j,type:HTMLDialogElement}},t=Object.keys(e).join(","),s=t=>{for(const[n,{component:i,type:a}]of Object.entries(e))if(t.matches(n)&&t instanceof a&&"function"==typeof i.initialize)return void i.initialize(t)},m=e=>{e.querySelectorAll(t).forEach(s),e.querySelectorAll('[class*="micl-"]').forEach(e=>{"1"===window.getComputedStyle(e).getPropertyValue("--micl-ripple")&&e.addEventListener("pointerdown",t=>{if(t.currentTarget.classList.contains("micl-card--nonactionable"))return;t.stopPropagation();let n=e.getBoundingClientRect();e.style.setProperty("--micl-x",t.clientX-n.left+"px"),e.style.setProperty("--micl-y",t.clientY-n.top+"px")})}),document.documentElement.style.setProperty("--md-sys-scrollbar-thumb-color",window.getComputedStyle(document.body).getPropertyValue("--md-sys-color-outline").trim())},d=t=>{for(const[n,{component:i,type:a}]of Object.entries(e))if(t.matches(n)&&t instanceof a&&"function"==typeof i.cleanup)return void i.cleanup(t)},p=e=>{e.querySelectorAll(t).forEach(d)},u=t=>{for(const[n,{component:i,type:a}]of Object.entries(e))if("function"==typeof i[t.type]&&t.target.closest(n)instanceof a)return void i[t.type]?.(t)},h=()=>{new MutationObserver(e=>{e.forEach(e=>{"childList"===e.type&&(e.addedNodes.forEach(e=>{e instanceof HTMLElement&&(e.matches(t)&&s(e),e.querySelectorAll(t).forEach(s))}),e.removedNodes.forEach(e=>{e instanceof HTMLElement&&(e.matches(t)&&d(e),p(e))}))})}).observe(document.body,{childList:!0,subtree:!0}),m(document),document.addEventListener("input",u),document.addEventListener("keydown",u)},g=()=>{document.removeEventListener("DOMContentLoaded",g),h()};return"loading"!==document.readyState?h():document.addEventListener("DOMContentLoaded",g),{initialize:()=>m(document),cleanup:()=>p(document)}})()})(),t})());
@@ -23,7 +23,7 @@
23
23
  <dialog id="mynavigationrail1" class="micl-navigationrail" closedby="closerequest">
24
24
  <!-- <nav id="mynavigationrail1" class="micl-navigationrail" popover="manual"> -->
25
25
  <div class="micl-navigationrail__headline">
26
- <button type="button" class="micl-iconbutton-standard-s micl-button--toggle material-symbols-outlined" popovertarget="mynavigationrail1" data-miclalt="menu_open" aria-label="Toggle navigation rail">menu</button>
26
+ <button type="button" class="micl-iconbutton-standard-s micl-button--toggle material-symbols-outlined" command="close" commandfor="mynavigationrail1" data-miclalt="menu_open" aria-label="Toggle navigation rail">menu</button>
27
27
  </div>
28
28
  <div class="micl-navigationrail__content">
29
29
  <input type="radio" id="item1" name="navitem" value="email_inbox" checked>
@@ -54,7 +54,7 @@
54
54
  <main class="micl-body">
55
55
  <section class="micl-pane">
56
56
  <header class="micl-appbar micl-appbar--large">
57
- <button type="button" class="micl-iconbutton-standard-m micl-button--toggle material-symbols-outlined" style="margin:8px 0 0 8px" popovertarget="mynavigationrail1" aria-label="Toggle navigation rail">menu</button>
57
+ <button type="button" class="micl-iconbutton-standard-m micl-button--toggle material-symbols-outlined" style="margin:8px 0 0 8px" command="show-modal" commandfor="mynavigationrail1" aria-label="Toggle navigation rail">menu</button>
58
58
  <div class="micl-appbar__headline">
59
59
  <h1>Navigation rails</h1>
60
60
  <p class="micl-appbar__subtitle">Showcasing MICL navigation rails</p>
@@ -83,9 +83,9 @@
83
83
 
84
84
  <dialog id="mysidesheet3" class="micl-sidesheet" closedby="closerequest" aria-labelledby="title1" tabindex="-1">
85
85
  <div class="micl-sidesheet__headline">
86
- <button class="micl-iconbutton-standard-s material-symbols-outlined">arrow_back</button>
86
+ <button class="micl-iconbutton-standard-s material-symbols-outlined" aria-label="Back">arrow_back</button>
87
87
  <h2 id="title3">Title</h2>
88
- <button class="micl-iconbutton-standard-s material-symbols-outlined" popovertarget="mysidesheet3">close</button>
88
+ <button class="micl-iconbutton-standard-s material-symbols-outlined" command="close" commandfor="mysidesheet3">close</button>
89
89
  </div>
90
90
  <div class="micl-sidesheet__content">
91
91
  <p class="md-sys-typescale-body-medium">Make your selection:</p>
@@ -113,10 +113,10 @@
113
113
  <hr class="micl-divider">
114
114
  <div class="micl-sidesheet__actions">
115
115
  <button type="button" class="micl-button-filled-s">Save</button>
116
- <button type="button" class="micl-button-outlined-s">Cancel</button>
116
+ <button type="button" class="micl-button-outlined-s" command="close" commandfor="mysidesheet3">Cancel</button>
117
117
  </div>
118
118
  </dialog>
119
- <button type="button" class="micl-button-outlined-m" popovertarget="mysidesheet3">Open Modal Sheet</button>
119
+ <button type="button" class="micl-button-outlined-m" command="show-modal" commandfor="mysidesheet3">Open Modal Sheet</button>
120
120
  </div>
121
121
  </div>
122
122
  </div>
package/docs/slider.html CHANGED
@@ -58,7 +58,7 @@
58
58
  <option value="100"></option>
59
59
  </datalist>
60
60
  <div class="range micl-slider__container">
61
- <span class="micl-slider__icon material-symbols-outlined">volume_up</span>
61
+ <span class="micl-slider__icon material-symbols-outlined" aria-hidden="true">volume_up</span>
62
62
  <input type="range" class="micl-slider-m" min="3.5" max="12.5" value="9.5" step="0.5">
63
63
  </div>
64
64
  <input type="range" class="micl-slider-l" value="0">
@@ -91,7 +91,7 @@
91
91
  <option value="100"></option>
92
92
  </datalist>
93
93
  <div class="micl-slider__container">
94
- <span class="micl-slider__icon material-symbols-outlined">volume_up</span>
94
+ <span class="micl-slider__icon material-symbols-outlined" aria-hidden="true">volume_up</span>
95
95
  <input type="range" class="micl-slider-m" min="3.5" max="12.5" value="9.5" step="0.5">
96
96
  </div>
97
97
  <div class="micl-slider__container">
@@ -41,36 +41,36 @@
41
41
  <input type="text" id="mytextfield1">
42
42
  </div>
43
43
  <div class="micl-textfield-outlined">
44
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
44
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
45
45
  <label for="mytextfield2">Name</label>
46
46
  <input type="text" id="mytextfield2" value="Marie Curie">
47
47
  </div>
48
48
  <div class="micl-textfield-outlined">
49
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
49
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
50
50
  <label for="mytextfield3">Label text</label>
51
51
  <input type="text" id="mytextfield3">
52
- <span class="micl-textfield__icon-trailing material-symbols-outlined">cancel</span>
52
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">cancel</span>
53
53
  </div>
54
54
  <div class="micl-textfield-outlined">
55
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
55
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
56
56
  <label for="mytextfield4">City</label>
57
57
  <input type="text" id="mytextfield4" disabled value="Paris">
58
- <span class="micl-textfield__icon-trailing material-symbols-outlined">cancel</span>
58
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">cancel</span>
59
59
  </div>
60
60
  <div class="micl-textfield-outlined">
61
61
  <label for="mytextfield5">Multiline text field</label>
62
62
  <textarea id="mytextfield5"></textarea>
63
63
  </div>
64
64
  <div class="micl-textfield-outlined micl-textfield--error">
65
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
65
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
66
66
  <label for="mytextfield6">Label text</label>
67
67
  <input type="text" id="mytextfield6">
68
- <span class="micl-textfield__icon-trailing material-symbols-outlined">cancel</span>
68
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">cancel</span>
69
69
  </div>
70
70
  <div class="micl-textfield-outlined micl-textfield--error">
71
71
  <label for="mytextfield7">Password</label>
72
72
  <input type="password" id="mytextfield7" value="foobar">
73
- <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1">error</span>
73
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1" aria-hidden="true">error</span>
74
74
  <span class="micl-textfield__supporting-text">Include an uppercase letter, a lowercase letter, and a numeric character</span>
75
75
  </div>
76
76
  </div>
@@ -81,7 +81,7 @@
81
81
  <input type="text" name="myname">
82
82
  </div>
83
83
  <div class="micl-textfield-outlined">
84
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
84
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
85
85
  <label for="mytextfield12">Text field</label>
86
86
  <input type="text" id="mytextfield12" value="Outlined">
87
87
  <span class="micl-textfield__supporting-text">Supporting text</span>
@@ -90,13 +90,13 @@
90
90
  <span class="micl-textfield__prefix" aria-label="Euro">€</span>
91
91
  <label for="mytextfield13">Amount</label>
92
92
  <input type="text" id="mytextfield13" value="299.89">
93
- <span class="micl-textfield__icon-trailing material-symbols-outlined">credit_card</span>
93
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">credit_card</span>
94
94
  </div>
95
95
  <div class="micl-textfield-outlined">
96
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
96
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
97
97
  <label for="mytextfield14">City</label>
98
98
  <input type="text" id="mytextfield14" disabled value="Paris">
99
- <span class="micl-textfield__icon-trailing material-symbols-outlined">cancel</span>
99
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">cancel</span>
100
100
  <span class="micl-textfield__supporting-text">This input field is disabled</span>
101
101
  </div>
102
102
  <div class="micl-textfield-outlined">
@@ -104,16 +104,16 @@
104
104
  <textarea id="mytextfield15" rows="3">Text areas are taller than text fields and wrap overflow text onto a new line. They are a fixed height and scroll vertically when the cursor reaches the bottom of the field. </textarea>
105
105
  </div>
106
106
  <div class="micl-textfield-outlined micl-textfield--error">
107
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
107
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
108
108
  <label for="mytextfield16">Label text</label>
109
109
  <input type="text" id="mytextfield16">
110
- <span class="micl-textfield__icon-trailing material-symbols-outlined">cancel</span>
110
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">cancel</span>
111
111
  </div>
112
112
  <div class="micl-textfield-outlined micl-textfield--error">
113
113
  <label for="mytextfield17">Weight</label>
114
114
  <input type="number" id="mytextfield17" value="17800">
115
115
  <span class="micl-textfield__suffix" aria-label="Kilograms">kg</span>
116
- <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1">error</span>
116
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1" aria-hidden="true">error</span>
117
117
  <span class="micl-textfield__supporting-text">Too heavy</span>
118
118
  </div>
119
119
  </div>
@@ -127,7 +127,7 @@
127
127
  <input type="datetime-local" id="mytextfield21">
128
128
  </div>
129
129
  <div class="micl-textfield-filled" style="--md-sys-textfield-prefix-space:2.5em">
130
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
130
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
131
131
  <span class="micl-textfield__prefix" aria-label="Norwegian kroner">NOK</span>
132
132
  <label for="mytextfield22">Amount*</label>
133
133
  <input type="text" id="mytextfield22" required value="">
@@ -137,16 +137,16 @@
137
137
  <span class="micl-textfield__character-counter"></span>
138
138
  <span class="micl-textfield__supporting-text micl-textfield__supporting-text--focus">Enter at least twelve characters</span>
139
139
  <span class="micl-textfield__prefix" aria-label="Euro">€</span>
140
- <span class="micl-textfield__icon-trailing material-symbols-outlined">cancel</span>
140
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">cancel</span>
141
141
  <input type="text" id="mytextfield23" maxlength="24">
142
142
  <label for="mytextfield23">Label text</label>
143
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
143
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
144
144
  </div>
145
145
  <div class="micl-textfield-filled">
146
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
146
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
147
147
  <label for="mytextfield24">City</label>
148
148
  <input type="text" id="mytextfield24" disabled value="Paris">
149
- <span class="micl-textfield__icon-trailing material-symbols-outlined">cancel</span>
149
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" aria-hidden="true">cancel</span>
150
150
  <span class="micl-textfield__supporting-text">This input field is disabled</span>
151
151
  </div>
152
152
  <div class="micl-textfield-filled">
@@ -155,16 +155,16 @@
155
155
  <span class="micl-textfield__character-counter"></span>
156
156
  </div>
157
157
  <div class="micl-textfield-filled micl-textfield--error">
158
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
158
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
159
159
  <label for="mytextfield26">Label text</label>
160
160
  <input type="text" id="mytextfield26">
161
- <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1">error</span>
161
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1" aria-hidden="true">error</span>
162
162
  </div>
163
163
  <div class="micl-textfield-filled micl-textfield--error">
164
- <span class="micl-textfield__icon-leading material-symbols-outlined">search</span>
164
+ <span class="micl-textfield__icon-leading material-symbols-outlined" aria-hidden="true">search</span>
165
165
  <label for="mytextfield27">City</label>
166
166
  <input type="text" id="mytextfield27" maxlength="20" value="Amsterdaaam">
167
- <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1">error</span>
167
+ <span class="micl-textfield__icon-trailing material-symbols-outlined" style="font-variation-settings:'FILL' 1" aria-hidden="true">error</span>
168
168
  <span class="micl-textfield__supporting-text">Incorrect spelling</span>
169
169
  <span class="micl-textfield__character-counter"></span>
170
170
  </div>
@@ -0,0 +1,51 @@
1
+ .dark-high-contrast {
2
+ --md-sys-color-primary: rgb(205 247 255);
3
+ --md-sys-color-surface-tint: rgb(130 211 224);
4
+ --md-sys-color-on-primary: rgb(0 0 0);
5
+ --md-sys-color-primary-container: rgb(126 207 220);
6
+ --md-sys-color-on-primary-container: rgb(0 14 16);
7
+ --md-sys-color-secondary: rgb(218 245 250);
8
+ --md-sys-color-on-secondary: rgb(0 0 0);
9
+ --md-sys-color-secondary-container: rgb(173 199 204);
10
+ --md-sys-color-on-secondary-container: rgb(0 14 16);
11
+ --md-sys-color-tertiary: rgb(237 239 255);
12
+ --md-sys-color-on-tertiary: rgb(0 0 0);
13
+ --md-sys-color-tertiary-container: rgb(182 194 230);
14
+ --md-sys-color-on-tertiary-container: rgb(0 9 37);
15
+ --md-sys-color-error: rgb(255 236 233);
16
+ --md-sys-color-on-error: rgb(0 0 0);
17
+ --md-sys-color-error-container: rgb(255 174 164);
18
+ --md-sys-color-on-error-container: rgb(34 0 1);
19
+ --md-sys-color-background: rgb(14 20 21);
20
+ --md-sys-color-on-background: rgb(222 227 229);
21
+ --md-sys-color-surface: rgb(14 20 21);
22
+ --md-sys-color-on-surface: rgb(255 255 255);
23
+ --md-sys-color-surface-variant: rgb(63 72 74);
24
+ --md-sys-color-on-surface-variant: rgb(255 255 255);
25
+ --md-sys-color-outline: rgb(232 242 243);
26
+ --md-sys-color-outline-variant: rgb(187 196 198);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(222 227 229);
30
+ --md-sys-color-inverse-on-surface: rgb(0 0 0);
31
+ --md-sys-color-inverse-primary: rgb(0 80 89);
32
+ --md-sys-color-primary-fixed: rgb(158 239 253);
33
+ --md-sys-color-on-primary-fixed: rgb(0 0 0);
34
+ --md-sys-color-primary-fixed-dim: rgb(130 211 224);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(0 20 23);
36
+ --md-sys-color-secondary-fixed: rgb(205 231 236);
37
+ --md-sys-color-on-secondary-fixed: rgb(0 0 0);
38
+ --md-sys-color-secondary-fixed-dim: rgb(177 203 208);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(0 20 23);
40
+ --md-sys-color-tertiary-fixed: rgb(218 226 255);
41
+ --md-sys-color-on-tertiary-fixed: rgb(0 0 0);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(186 198 234);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(3 16 44);
44
+ --md-sys-color-surface-dim: rgb(14 20 21);
45
+ --md-sys-color-surface-bright: rgb(75 81 82);
46
+ --md-sys-color-surface-container-lowest: rgb(0 0 0);
47
+ --md-sys-color-surface-container-low: rgb(27 33 34);
48
+ --md-sys-color-surface-container: rgb(43 49 51);
49
+ --md-sys-color-surface-container-high: rgb(54 60 62);
50
+ --md-sys-color-surface-container-highest: rgb(66 72 73);
51
+ }
@@ -0,0 +1,51 @@
1
+ .dark-medium-contrast {
2
+ --md-sys-color-primary: rgb(152 233 247);
3
+ --md-sys-color-surface-tint: rgb(130 211 224);
4
+ --md-sys-color-on-primary: rgb(0 42 48);
5
+ --md-sys-color-primary-container: rgb(73 156 169);
6
+ --md-sys-color-on-primary-container: rgb(0 0 0);
7
+ --md-sys-color-secondary: rgb(199 225 230);
8
+ --md-sys-color-on-secondary: rgb(16 41 45);
9
+ --md-sys-color-secondary-container: rgb(124 149 154);
10
+ --md-sys-color-on-secondary-container: rgb(0 0 0);
11
+ --md-sys-color-tertiary: rgb(209 220 255);
12
+ --md-sys-color-on-tertiary: rgb(25 37 65);
13
+ --md-sys-color-tertiary-container: rgb(132 144 178);
14
+ --md-sys-color-on-tertiary-container: rgb(0 0 0);
15
+ --md-sys-color-error: rgb(255 210 204);
16
+ --md-sys-color-on-error: rgb(84 0 3);
17
+ --md-sys-color-error-container: rgb(255 84 73);
18
+ --md-sys-color-on-error-container: rgb(0 0 0);
19
+ --md-sys-color-background: rgb(14 20 21);
20
+ --md-sys-color-on-background: rgb(222 227 229);
21
+ --md-sys-color-surface: rgb(14 20 21);
22
+ --md-sys-color-on-surface: rgb(255 255 255);
23
+ --md-sys-color-surface-variant: rgb(63 72 74);
24
+ --md-sys-color-on-surface-variant: rgb(212 222 224);
25
+ --md-sys-color-outline: rgb(170 180 181);
26
+ --md-sys-color-outline-variant: rgb(136 146 148);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(222 227 229);
30
+ --md-sys-color-inverse-on-surface: rgb(37 43 44);
31
+ --md-sys-color-inverse-primary: rgb(0 80 89);
32
+ --md-sys-color-primary-fixed: rgb(158 239 253);
33
+ --md-sys-color-on-primary-fixed: rgb(0 20 23);
34
+ --md-sys-color-primary-fixed-dim: rgb(130 211 224);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(0 60 68);
36
+ --md-sys-color-secondary-fixed: rgb(205 231 236);
37
+ --md-sys-color-on-secondary-fixed: rgb(0 20 23);
38
+ --md-sys-color-secondary-fixed-dim: rgb(177 203 208);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(34 58 62);
40
+ --md-sys-color-tertiary-fixed: rgb(218 226 255);
41
+ --md-sys-color-on-tertiary-fixed: rgb(3 16 44);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(186 198 234);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(42 53 83);
44
+ --md-sys-color-surface-dim: rgb(14 20 21);
45
+ --md-sys-color-surface-bright: rgb(63 70 71);
46
+ --md-sys-color-surface-container-lowest: rgb(4 8 9);
47
+ --md-sys-color-surface-container-low: rgb(25 31 32);
48
+ --md-sys-color-surface-container: rgb(35 41 42);
49
+ --md-sys-color-surface-container-high: rgb(45 52 53);
50
+ --md-sys-color-surface-container-highest: rgb(57 63 64);
51
+ }
@@ -0,0 +1,51 @@
1
+ .dark {
2
+ --md-sys-color-primary: rgb(130 211 224);
3
+ --md-sys-color-surface-tint: rgb(130 211 224);
4
+ --md-sys-color-on-primary: rgb(0 54 61);
5
+ --md-sys-color-primary-container: rgb(0 79 88);
6
+ --md-sys-color-on-primary-container: rgb(158 239 253);
7
+ --md-sys-color-secondary: rgb(177 203 208);
8
+ --md-sys-color-on-secondary: rgb(28 52 56);
9
+ --md-sys-color-secondary-container: rgb(51 75 79);
10
+ --md-sys-color-on-secondary-container: rgb(205 231 236);
11
+ --md-sys-color-tertiary: rgb(186 198 234);
12
+ --md-sys-color-on-tertiary: rgb(36 48 77);
13
+ --md-sys-color-tertiary-container: rgb(59 70 100);
14
+ --md-sys-color-on-tertiary-container: rgb(218 226 255);
15
+ --md-sys-color-error: rgb(255 180 171);
16
+ --md-sys-color-on-error: rgb(105 0 5);
17
+ --md-sys-color-error-container: rgb(147 0 10);
18
+ --md-sys-color-on-error-container: rgb(255 218 214);
19
+ --md-sys-color-background: rgb(14 20 21);
20
+ --md-sys-color-on-background: rgb(222 227 229);
21
+ --md-sys-color-surface: rgb(14 20 21);
22
+ --md-sys-color-on-surface: rgb(222 227 229);
23
+ --md-sys-color-surface-variant: rgb(63 72 74);
24
+ --md-sys-color-on-surface-variant: rgb(191 200 202);
25
+ --md-sys-color-outline: rgb(137 146 148);
26
+ --md-sys-color-outline-variant: rgb(63 72 74);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(222 227 229);
30
+ --md-sys-color-inverse-on-surface: rgb(43 49 51);
31
+ --md-sys-color-inverse-primary: rgb(0 104 116);
32
+ --md-sys-color-primary-fixed: rgb(158 239 253);
33
+ --md-sys-color-on-primary-fixed: rgb(0 31 36);
34
+ --md-sys-color-primary-fixed-dim: rgb(130 211 224);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(0 79 88);
36
+ --md-sys-color-secondary-fixed: rgb(205 231 236);
37
+ --md-sys-color-on-secondary-fixed: rgb(5 31 35);
38
+ --md-sys-color-secondary-fixed-dim: rgb(177 203 208);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(51 75 79);
40
+ --md-sys-color-tertiary-fixed: rgb(218 226 255);
41
+ --md-sys-color-on-tertiary-fixed: rgb(14 27 55);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(186 198 234);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(59 70 100);
44
+ --md-sys-color-surface-dim: rgb(14 20 21);
45
+ --md-sys-color-surface-bright: rgb(52 58 59);
46
+ --md-sys-color-surface-container-lowest: rgb(9 15 16);
47
+ --md-sys-color-surface-container-low: rgb(23 29 30);
48
+ --md-sys-color-surface-container: rgb(27 33 34);
49
+ --md-sys-color-surface-container-high: rgb(37 43 44);
50
+ --md-sys-color-surface-container-highest: rgb(48 54 55);
51
+ }
@@ -0,0 +1,51 @@
1
+ .light-high-contrast {
2
+ --md-sys-color-primary: rgb(0 50 56);
3
+ --md-sys-color-surface-tint: rgb(0 104 116);
4
+ --md-sys-color-on-primary: rgb(255 255 255);
5
+ --md-sys-color-primary-container: rgb(0 81 90);
6
+ --md-sys-color-on-primary-container: rgb(255 255 255);
7
+ --md-sys-color-secondary: rgb(23 48 52);
8
+ --md-sys-color-on-secondary: rgb(255 255 255);
9
+ --md-sys-color-secondary-container: rgb(53 77 81);
10
+ --md-sys-color-on-secondary-container: rgb(255 255 255);
11
+ --md-sys-color-tertiary: rgb(32 43 72);
12
+ --md-sys-color-on-tertiary: rgb(255 255 255);
13
+ --md-sys-color-tertiary-container: rgb(61 72 103);
14
+ --md-sys-color-on-tertiary-container: rgb(255 255 255);
15
+ --md-sys-color-error: rgb(96 0 4);
16
+ --md-sys-color-on-error: rgb(255 255 255);
17
+ --md-sys-color-error-container: rgb(152 0 10);
18
+ --md-sys-color-on-error-container: rgb(255 255 255);
19
+ --md-sys-color-background: rgb(245 250 251);
20
+ --md-sys-color-on-background: rgb(23 29 30);
21
+ --md-sys-color-surface: rgb(245 250 251);
22
+ --md-sys-color-on-surface: rgb(0 0 0);
23
+ --md-sys-color-surface-variant: rgb(219 228 230);
24
+ --md-sys-color-on-surface-variant: rgb(0 0 0);
25
+ --md-sys-color-outline: rgb(37 46 47);
26
+ --md-sys-color-outline-variant: rgb(65 75 76);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(43 49 51);
30
+ --md-sys-color-inverse-on-surface: rgb(255 255 255);
31
+ --md-sys-color-inverse-primary: rgb(130 211 224);
32
+ --md-sys-color-primary-fixed: rgb(0 81 90);
33
+ --md-sys-color-on-primary-fixed: rgb(255 255 255);
34
+ --md-sys-color-primary-fixed-dim: rgb(0 57 63);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(255 255 255);
36
+ --md-sys-color-secondary-fixed: rgb(53 77 81);
37
+ --md-sys-color-on-secondary-fixed: rgb(255 255 255);
38
+ --md-sys-color-secondary-fixed-dim: rgb(30 54 58);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(255 255 255);
40
+ --md-sys-color-tertiary-fixed: rgb(61 72 103);
41
+ --md-sys-color-on-tertiary-fixed: rgb(255 255 255);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(38 50 79);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(255 255 255);
44
+ --md-sys-color-surface-dim: rgb(180 186 187);
45
+ --md-sys-color-surface-bright: rgb(245 250 251);
46
+ --md-sys-color-surface-container-lowest: rgb(255 255 255);
47
+ --md-sys-color-surface-container-low: rgb(236 242 243);
48
+ --md-sys-color-surface-container: rgb(222 227 229);
49
+ --md-sys-color-surface-container-high: rgb(207 213 214);
50
+ --md-sys-color-surface-container-highest: rgb(194 199 201);
51
+ }