material-inspired-component-library 5.0.1 → 6.0.0
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.
- package/README.md +6 -2
- package/components/button/README.md +9 -1
- package/components/button/index.ts +21 -37
- package/components/datepicker/README.md +146 -0
- package/components/datepicker/index.scss +2 -1
- package/components/datepicker/index.ts +210 -109
- package/components/iconbutton/README.md +10 -1
- package/components/iconbutton/index.ts +21 -37
- package/components/textfield/index.ts +56 -0
- package/components/timepicker/README.md +8 -9
- package/components/timepicker/index.ts +5 -5
- package/dist/components/button/index.d.ts +2 -1
- package/dist/components/iconbutton/index.d.ts +2 -1
- package/dist/datepicker.css +1 -1
- package/dist/micl.css +1 -1
- package/dist/micl.js +1 -1
- package/docs/bottomsheet.html +3 -3
- package/docs/button.html +16 -16
- package/docs/datepicker.html +133 -9
- package/docs/dialog.html +5 -5
- package/docs/docs.js +22 -1
- package/docs/iconbutton.html +8 -8
- package/docs/index.html +3 -2
- package/docs/micl.css +1 -1
- package/docs/micl.js +1 -1
- package/docs/navigationrail.html +2 -2
- package/docs/sidesheet.html +3 -3
- package/docs/themes/gray/dark-hc.css +51 -0
- package/docs/themes/gray/dark-mc.css +51 -0
- package/docs/themes/gray/dark.css +51 -0
- package/docs/themes/gray/light-hc.css +51 -0
- package/docs/themes/gray/light-mc.css +51 -0
- package/docs/themes/gray/light.css +51 -0
- package/docs/themes/gray/theme.css +306 -0
- package/docs/themes/greenery/dark-hc.css +51 -0
- package/docs/themes/greenery/dark-mc.css +51 -0
- package/docs/themes/greenery/dark.css +51 -0
- package/docs/themes/greenery/light-hc.css +51 -0
- package/docs/themes/greenery/light-mc.css +51 -0
- package/docs/themes/greenery/light.css +51 -0
- package/docs/themes/greenery/theme.css +306 -0
- package/docs/themes/hermana/dark-hc.css +51 -0
- package/docs/themes/hermana/dark-mc.css +51 -0
- package/docs/themes/hermana/dark.css +51 -0
- package/docs/themes/hermana/light-hc.css +51 -0
- package/docs/themes/hermana/light-mc.css +51 -0
- package/docs/themes/hermana/light.css +51 -0
- package/docs/themes/hermana/theme.css +306 -0
- package/docs/themes/illuminating/dark-hc.css +51 -0
- package/docs/themes/illuminating/dark-mc.css +51 -0
- package/docs/themes/illuminating/dark.css +51 -0
- package/docs/themes/illuminating/light-hc.css +51 -0
- package/docs/themes/illuminating/light-mc.css +51 -0
- package/docs/themes/illuminating/light.css +51 -0
- package/docs/themes/illuminating/theme.css +306 -0
- package/docs/themes/magenta/dark-hc.css +51 -0
- package/docs/themes/magenta/dark-mc.css +51 -0
- package/docs/themes/magenta/dark.css +51 -0
- package/docs/themes/magenta/light-hc.css +51 -0
- package/docs/themes/magenta/light-mc.css +51 -0
- package/docs/themes/magenta/light.css +51 -0
- package/docs/themes/magenta/theme.css +306 -0
- package/docs/themes/mocha/dark-hc.css +51 -0
- package/docs/themes/mocha/dark-mc.css +51 -0
- package/docs/themes/mocha/dark.css +51 -0
- package/docs/themes/mocha/light-hc.css +51 -0
- package/docs/themes/mocha/light-mc.css +51 -0
- package/docs/themes/mocha/light.css +51 -0
- package/docs/themes/mocha/theme.css +306 -0
- package/docs/themes/peri/dark-hc.css +51 -0
- package/docs/themes/peri/dark-mc.css +51 -0
- package/docs/themes/peri/dark.css +51 -0
- package/docs/themes/peri/light-hc.css +51 -0
- package/docs/themes/peri/light-mc.css +51 -0
- package/docs/themes/peri/light.css +51 -0
- package/docs/themes/peri/theme.css +306 -0
- package/docs/timepicker.html +2 -2
- package/package.json +1 -1
- package/themes/gray/dark-hc.css +51 -0
- package/themes/gray/dark-mc.css +51 -0
- package/themes/gray/dark.css +51 -0
- package/themes/gray/light-hc.css +51 -0
- package/themes/gray/light-mc.css +51 -0
- package/themes/gray/light.css +51 -0
- package/themes/gray/theme.css +306 -0
- package/themes/greenery/dark-hc.css +51 -0
- package/themes/greenery/dark-mc.css +51 -0
- package/themes/greenery/dark.css +51 -0
- package/themes/greenery/light-hc.css +51 -0
- package/themes/greenery/light-mc.css +51 -0
- package/themes/greenery/light.css +51 -0
- package/themes/greenery/theme.css +306 -0
- package/themes/hermana/dark-hc.css +51 -0
- package/themes/hermana/dark-mc.css +51 -0
- package/themes/hermana/dark.css +51 -0
- package/themes/hermana/light-hc.css +51 -0
- package/themes/hermana/light-mc.css +51 -0
- package/themes/hermana/light.css +51 -0
- package/themes/hermana/theme.css +306 -0
- package/themes/illuminating/dark-hc.css +51 -0
- package/themes/illuminating/dark-mc.css +51 -0
- package/themes/illuminating/dark.css +51 -0
- package/themes/illuminating/light-hc.css +51 -0
- package/themes/illuminating/light-mc.css +51 -0
- package/themes/illuminating/light.css +51 -0
- package/themes/illuminating/theme.css +306 -0
- package/themes/magenta/dark-hc.css +51 -0
- package/themes/magenta/dark-mc.css +51 -0
- package/themes/magenta/dark.css +51 -0
- package/themes/magenta/light-hc.css +51 -0
- package/themes/magenta/light-mc.css +51 -0
- package/themes/magenta/light.css +51 -0
- package/themes/magenta/theme.css +306 -0
- package/themes/mocha/dark-hc.css +51 -0
- package/themes/mocha/dark-mc.css +51 -0
- package/themes/mocha/dark.css +51 -0
- package/themes/mocha/light-hc.css +51 -0
- package/themes/mocha/light-mc.css +51 -0
- package/themes/mocha/light.css +51 -0
- package/themes/mocha/theme.css +306 -0
- package/themes/peri/dark-hc.css +51 -0
- package/themes/peri/dark-mc.css +51 -0
- package/themes/peri/dark.css +51 -0
- package/themes/peri/light-hc.css +51 -0
- package/themes/peri/light-mc.css +51 -0
- package/themes/peri/light.css +51 -0
- package/themes/peri/theme.css +306 -0
package/dist/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})());
|
package/docs/bottomsheet.html
CHANGED
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
</dialog>
|
|
149
149
|
<button type="button" class="micl-button-outlined-m" popovertarget="mybottomsheet3">Open Resizable Sheet</button>
|
|
150
150
|
|
|
151
|
-
<dialog id="mybottomsheet4" class="micl-bottomsheet" closedby="
|
|
151
|
+
<dialog id="mybottomsheet4" class="micl-bottomsheet" closedby="closerequest">
|
|
152
152
|
<div class="micl-bottomsheet__headline">
|
|
153
153
|
<button type="button" class="micl-bottomsheet__draghandle" aria-label="Drag handle"></button>
|
|
154
154
|
</div>
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
</span>
|
|
174
174
|
</li>
|
|
175
175
|
<li class="micl-list-item-one" tabindex="0">
|
|
176
|
-
<button type="button" class="micl-iconbutton-standard-m material-symbols-outlined"
|
|
176
|
+
<button type="button" class="micl-iconbutton-standard-m material-symbols-outlined" command="close" commandfor="mybottomsheet4">close</button>
|
|
177
177
|
</li>
|
|
178
178
|
</ul>
|
|
179
179
|
<hr class="micl-divider">
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
</div>
|
|
199
199
|
</div>
|
|
200
200
|
</dialog>
|
|
201
|
-
<button type="button" class="micl-button-outlined-m"
|
|
201
|
+
<button type="button" class="micl-button-outlined-m" command="show-modal" commandfor="mybottomsheet4">Open Modal Sheet</button>
|
|
202
202
|
</div>
|
|
203
203
|
</div>
|
|
204
204
|
</div>
|
package/docs/button.html
CHANGED
|
@@ -198,40 +198,40 @@
|
|
|
198
198
|
</div>
|
|
199
199
|
<div class="micl-card__content">
|
|
200
200
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px">
|
|
201
|
-
<button type="button" class="micl-button-elevated-m micl-button--toggle">Click</button>
|
|
202
|
-
<button type="button" class="micl-button-elevated-m micl-button--toggle micl-button--selected">Click</button>
|
|
203
|
-
<button type="button" class="micl-button-elevated-m micl-button--square micl-button--toggle">Click</button>
|
|
204
|
-
<button type="button" class="micl-button-elevated-m micl-button--square micl-button--toggle micl-button--selected">Click</button>
|
|
201
|
+
<button type="button" id="btn1" class="micl-button-elevated-m micl-button--toggle" commandfor="btn1" command="--micl-toggle">Click</button>
|
|
202
|
+
<button type="button" id="btn2" class="micl-button-elevated-m micl-button--toggle micl-button--selected" commandfor="btn2" command="--micl-toggle">Click</button>
|
|
203
|
+
<button type="button" id="btn3" class="micl-button-elevated-m micl-button--square micl-button--toggle" commandfor="btn3" command="--micl-toggle">Click</button>
|
|
204
|
+
<button type="button" id="btn4" class="micl-button-elevated-m micl-button--square micl-button--toggle micl-button--selected" commandfor="btn4" command="--micl-toggle">Click</button>
|
|
205
205
|
</div>
|
|
206
206
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px">
|
|
207
|
-
<button type="button" class="micl-button-filled-m micl-button--toggle">
|
|
207
|
+
<button type="button" id="btn5" class="micl-button-filled-m micl-button--toggle" commandfor="btn5" command="--micl-toggle">
|
|
208
208
|
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">edit</span>
|
|
209
209
|
Click
|
|
210
210
|
</button>
|
|
211
|
-
<button type="button" class="micl-button-filled-m micl-button--toggle micl-button--selected">
|
|
211
|
+
<button type="button" id="btn6" class="micl-button-filled-m micl-button--toggle micl-button--selected" commandfor="btn6" command="--micl-toggle">
|
|
212
212
|
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">edit</span>
|
|
213
213
|
Click
|
|
214
214
|
</button>
|
|
215
|
-
<button type="button" class="micl-button-filled-m micl-button--square micl-button--toggle">
|
|
215
|
+
<button type="button" id="btn7" class="micl-button-filled-m micl-button--square micl-button--toggle" commandfor="btn7" command="--micl-toggle">
|
|
216
216
|
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">edit</span>
|
|
217
217
|
Click
|
|
218
218
|
</button>
|
|
219
|
-
<button type="button" class="micl-button-filled-m micl-button--square micl-button--toggle micl-button--selected">
|
|
219
|
+
<button type="button" id="btn8" class="micl-button-filled-m micl-button--square micl-button--toggle micl-button--selected" commandfor="btn8" command="--micl-toggle">
|
|
220
220
|
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">edit</span>
|
|
221
221
|
Click
|
|
222
222
|
</button>
|
|
223
223
|
</div>
|
|
224
224
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px">
|
|
225
|
-
<button type="button" class="micl-button-tonal-m micl-button--toggle">Click</button>
|
|
226
|
-
<button type="button" class="micl-button-tonal-m micl-button--toggle micl-button--selected">Click</button>
|
|
227
|
-
<button type="button" class="micl-button-tonal-m micl-button--square micl-button--toggle">Click</button>
|
|
228
|
-
<button type="button" class="micl-button-tonal-m micl-button--square micl-button--toggle micl-button--selected">Click</button>
|
|
225
|
+
<button type="button" id="btn9" class="micl-button-tonal-m micl-button--toggle" commandfor="btn9" command="--micl-toggle">Click</button>
|
|
226
|
+
<button type="button" id="btn10" class="micl-button-tonal-m micl-button--toggle micl-button--selected" commandfor="btn10" command="--micl-toggle">Click</button>
|
|
227
|
+
<button type="button" id="btn11" class="micl-button-tonal-m micl-button--square micl-button--toggle" commandfor="btn11" command="--micl-toggle">Click</button>
|
|
228
|
+
<button type="button" id="btn12" class="micl-button-tonal-m micl-button--square micl-button--toggle micl-button--selected" commandfor="btn12" command="--micl-toggle">Click</button>
|
|
229
229
|
</div>
|
|
230
230
|
<div style="display:flex;flex-wrap:wrap;gap:8px">
|
|
231
|
-
<button type="button" class="micl-button-outlined-m micl-button--toggle">Click</button>
|
|
232
|
-
<button type="button" class="micl-button-outlined-m micl-button--toggle micl-button--selected">Click</button>
|
|
233
|
-
<button type="button" class="micl-button-outlined-m micl-button--square micl-button--toggle">Click</button>
|
|
234
|
-
<button type="button" class="micl-button-outlined-m micl-button--square micl-button--toggle micl-button--selected">Click</button>
|
|
231
|
+
<button type="button" id="btn13" class="micl-button-outlined-m micl-button--toggle" commandfor="btn13" command="--micl-toggle">Click</button>
|
|
232
|
+
<button type="button" id="btn14" class="micl-button-outlined-m micl-button--toggle micl-button--selected" commandfor="btn14" command="--micl-toggle">Click</button>
|
|
233
|
+
<button type="button" id="btn15" class="micl-button-outlined-m micl-button--square micl-button--toggle" commandfor="btn15" command="--micl-toggle">Click</button>
|
|
234
|
+
<button type="button" id="btn16" class="micl-button-outlined-m micl-button--square micl-button--toggle micl-button--selected" commandfor="btn16" command="--micl-toggle">Click</button>
|
|
235
235
|
</div>
|
|
236
236
|
</div>
|
|
237
237
|
</div>
|
package/docs/datepicker.html
CHANGED
|
@@ -49,12 +49,56 @@
|
|
|
49
49
|
<label for="mytextfield0">Select date</label>
|
|
50
50
|
<input type="date" id="mytextfield0" value="2026-01-10">
|
|
51
51
|
</div>
|
|
52
|
+
|
|
52
53
|
<p class="md-sys-typescale-body-medium">MICL date textfield component with the MICL date picker component</p>
|
|
53
|
-
<div class="micl-textfield-outlined" style="width:fit-content
|
|
54
|
+
<div class="micl-textfield-outlined" style="width:fit-content">
|
|
54
55
|
<label for="mytextfield1">Start date</label>
|
|
55
|
-
<input type="date" id="mytextfield1"
|
|
56
|
+
<input type="date" id="mytextfield1" data-datepicker="mydatepicker1" value="2025-12-02">
|
|
57
|
+
</div>
|
|
58
|
+
<dialog id="mydatepicker1" class="micl-dialog micl-datepicker" closedby="closerequest" aria-labelledby="mytitle1">
|
|
59
|
+
<form method="dialog">
|
|
60
|
+
<div class="micl-dialog__headline">
|
|
61
|
+
<h2 id="mytitle1">Enter dates</h2>
|
|
62
|
+
<span class="micl-dialog__supporting-text">Select date</span>
|
|
63
|
+
<button type="button" class="micl-datepicker__inputmode micl-iconbutton-standard-s material-symbols-outlined" data-miclalt="calendar_today">edit</button>
|
|
64
|
+
<hr class="micl-divider">
|
|
65
|
+
<div class="micl-datepicker__month-selector">
|
|
66
|
+
<button type="button" class="micl-datepicker__previous micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Previous month">chevron_left</button>
|
|
67
|
+
<button type="button" class="micl-datepicker__month micl-button-text-xs">
|
|
68
|
+
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">arrow_drop_down</span>
|
|
69
|
+
</button>
|
|
70
|
+
<button type="button" class="micl-datepicker__next micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Next month">chevron_right</button>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="micl-datepicker__year-selector">
|
|
73
|
+
<button type="button" class="micl-datepicker__previous micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Previous year">chevron_left</button>
|
|
74
|
+
<button type="button" class="micl-datepicker__year micl-button-text-xs">
|
|
75
|
+
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">arrow_drop_down</span>
|
|
76
|
+
</button>
|
|
77
|
+
<button type="button" class="micl-datepicker__next micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Next year">chevron_right</button>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="micl-dialog__content">
|
|
81
|
+
<div class="micl-datepicker__calendars"></div>
|
|
82
|
+
<div class="micl-datepicker__years"></div>
|
|
83
|
+
<div class="micl-datepicker__months"></div>
|
|
84
|
+
<div class="micl-datepicker__input micl-textfield-outlined">
|
|
85
|
+
<label for="mydate1">Date</label>
|
|
86
|
+
<input type="text" id="mydate1">
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="micl-dialog__actions">
|
|
90
|
+
<button class="micl-button-text-s" value="">Cancel</button>
|
|
91
|
+
<button class="micl-button-text-s" value="OK">OK</button>
|
|
92
|
+
</div>
|
|
93
|
+
</form>
|
|
94
|
+
</dialog>
|
|
95
|
+
|
|
96
|
+
<p class="md-sys-typescale-body-medium">MICL date textfield component with a docked MICL date picker component</p>
|
|
97
|
+
<div class="micl-textfield-outlined" style="width:fit-content;anchor-name:--myanchor">
|
|
98
|
+
<label for="mytextfield2">Start date</label>
|
|
99
|
+
<input type="date" id="mytextfield2" data-datepicker="mydatepicker2" value="2025-12-02">
|
|
56
100
|
</div>
|
|
57
|
-
<dialog id="
|
|
101
|
+
<dialog id="mydatepicker2" class="micl-dialog micl-dialog--docked micl-datepicker" style="position-anchor:--myanchor" popover closedby="closerequest">
|
|
58
102
|
<form method="dialog">
|
|
59
103
|
<div class="micl-dialog__headline">
|
|
60
104
|
<span class="micl-dialog__supporting-text">Enter date</span>
|
|
@@ -85,17 +129,60 @@
|
|
|
85
129
|
</form>
|
|
86
130
|
</dialog>
|
|
87
131
|
|
|
132
|
+
<p class="md-sys-typescale-body-medium">MICL date textfield component with limited date range</p>
|
|
133
|
+
<div class="micl-textfield-outlined" style="width:fit-content">
|
|
134
|
+
<label for="mytextfield1">Start date</label>
|
|
135
|
+
<input type="date" id="mytextfield3" min="2025-10-01" max="2026-04-30" data-datepicker="mydatepicker3" value="2025-12-02">
|
|
136
|
+
</div>
|
|
137
|
+
<dialog id="mydatepicker3" class="micl-dialog micl-datepicker" closedby="closerequest" aria-labelledby="mytitle3">
|
|
138
|
+
<form method="dialog">
|
|
139
|
+
<div class="micl-dialog__headline">
|
|
140
|
+
<h2 id="mytitle3">Enter dates</h2>
|
|
141
|
+
<span class="micl-dialog__supporting-text">Select date</span>
|
|
142
|
+
<button type="button" class="micl-datepicker__inputmode micl-iconbutton-standard-s material-symbols-outlined" data-miclalt="calendar_today">edit</button>
|
|
143
|
+
<hr class="micl-divider">
|
|
144
|
+
<div class="micl-datepicker__month-selector">
|
|
145
|
+
<button type="button" class="micl-datepicker__previous micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Previous month">chevron_left</button>
|
|
146
|
+
<button type="button" class="micl-datepicker__month micl-button-text-xs">
|
|
147
|
+
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">arrow_drop_down</span>
|
|
148
|
+
</button>
|
|
149
|
+
<button type="button" class="micl-datepicker__next micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Next month">chevron_right</button>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="micl-datepicker__year-selector">
|
|
152
|
+
<button type="button" class="micl-datepicker__previous micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Previous year">chevron_left</button>
|
|
153
|
+
<button type="button" class="micl-datepicker__year micl-button-text-xs">
|
|
154
|
+
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">arrow_drop_down</span>
|
|
155
|
+
</button>
|
|
156
|
+
<button type="button" class="micl-datepicker__next micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Next year">chevron_right</button>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="micl-dialog__content">
|
|
160
|
+
<div class="micl-datepicker__calendars"></div>
|
|
161
|
+
<div class="micl-datepicker__years"></div>
|
|
162
|
+
<div class="micl-datepicker__months"></div>
|
|
163
|
+
<div class="micl-datepicker__input micl-textfield-outlined">
|
|
164
|
+
<label for="mydate2">Date</label>
|
|
165
|
+
<input type="text" id="mydate2">
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="micl-dialog__actions">
|
|
169
|
+
<button class="micl-button-text-s" value="">Cancel</button>
|
|
170
|
+
<button class="micl-button-text-s" value="OK">OK</button>
|
|
171
|
+
</div>
|
|
172
|
+
</form>
|
|
173
|
+
</dialog>
|
|
174
|
+
|
|
88
175
|
<p class="md-sys-typescale-body-medium">Date input using a MICL button component that opens the MICL date picker</p>
|
|
89
176
|
<div class="micl-flex--vcenter" style="column-gap:8px">
|
|
90
177
|
<label for="mydate" class="md-sys-typescale-body-large">Start date:</label>
|
|
91
|
-
<button type="button" id="mydate" class="micl-button-text-m"
|
|
178
|
+
<button type="button" id="mydate" class="micl-button-text-m" command="show-modal" commandfor="mydatepicker4" value="2026-01-23">23.01.2026</button>
|
|
92
179
|
</div>
|
|
93
|
-
<dialog id="
|
|
180
|
+
<dialog id="mydatepicker4" class="micl-dialog micl-datepicker" closedby="closerequest" aria-labelledby="mytitle4">
|
|
94
181
|
<form method="dialog">
|
|
95
182
|
<div class="micl-dialog__headline">
|
|
96
|
-
<h2 id="
|
|
183
|
+
<h2 id="mytitle4">Enter dates</h2>
|
|
97
184
|
<span class="micl-dialog__supporting-text">Select date</span>
|
|
98
|
-
<button type="button" class="micl-datepicker__inputmode micl-iconbutton-standard-s material-symbols-outlined" data-
|
|
185
|
+
<button type="button" class="micl-datepicker__inputmode micl-iconbutton-standard-s material-symbols-outlined" data-miclalt="calendar_today">edit</button>
|
|
99
186
|
<hr class="micl-divider">
|
|
100
187
|
<div class="micl-datepicker__month-selector">
|
|
101
188
|
<button type="button" class="micl-datepicker__previous micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Previous month">chevron_left</button>
|
|
@@ -117,8 +204,8 @@
|
|
|
117
204
|
<div class="micl-datepicker__years"></div>
|
|
118
205
|
<div class="micl-datepicker__months"></div>
|
|
119
206
|
<div class="micl-datepicker__input micl-textfield-outlined">
|
|
120
|
-
<label for="
|
|
121
|
-
<input type="
|
|
207
|
+
<label for="mydate3">Date</label>
|
|
208
|
+
<input type="text" id="mydate3">
|
|
122
209
|
</div>
|
|
123
210
|
</div>
|
|
124
211
|
<div class="micl-dialog__actions">
|
|
@@ -139,6 +226,43 @@
|
|
|
139
226
|
</div>
|
|
140
227
|
<div class="micl-card__content docs-code">
|
|
141
228
|
<pre tabindex="-1"><code>
|
|
229
|
+
<dialog id="id0" class="micl-dialog micl-datepicker" closedby="closerequest" aria-labelledby="id1">
|
|
230
|
+
<form method="dialog">
|
|
231
|
+
<div class="micl-dialog__headline">
|
|
232
|
+
<h2 id="id1">Enter dates</h2>
|
|
233
|
+
<span class="micl-dialog__supporting-text">Select date</span>
|
|
234
|
+
<button type="button" class="micl-datepicker__inputmode micl-iconbutton-standard-s material-symbols-outlined" data-miclalt="calendar_today">edit</button>
|
|
235
|
+
<hr class="micl-divider">
|
|
236
|
+
<div class="micl-datepicker__month-selector">
|
|
237
|
+
<button type="button" class="micl-datepicker__previous micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Previous month">chevron_left</button>
|
|
238
|
+
<button type="button" class="micl-datepicker__month micl-button-text-xs">
|
|
239
|
+
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">arrow_drop_down</span>
|
|
240
|
+
</button>
|
|
241
|
+
<button type="button" class="micl-datepicker__next micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Next month">chevron_right</button>
|
|
242
|
+
</div>
|
|
243
|
+
<div class="micl-datepicker__year-selector">
|
|
244
|
+
<button type="button" class="micl-datepicker__previous micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Previous year">chevron_left</button>
|
|
245
|
+
<button type="button" class="micl-datepicker__year micl-button-text-xs">
|
|
246
|
+
<span class="micl-button__icon material-symbols-outlined" aria-hidden="true">arrow_drop_down</span>
|
|
247
|
+
</button>
|
|
248
|
+
<button type="button" class="micl-datepicker__next micl-iconbutton-standard-xs material-symbols-outlined" aria-label="Next year">chevron_right</button>
|
|
249
|
+
</div>
|
|
250
|
+
</div>
|
|
251
|
+
<div class="micl-dialog__content">
|
|
252
|
+
<div class="micl-datepicker__calendars"></div>
|
|
253
|
+
<div class="micl-datepicker__years"></div>
|
|
254
|
+
<div class="micl-datepicker__months"></div>
|
|
255
|
+
<div class="micl-datepicker__input micl-textfield-outlined">
|
|
256
|
+
<label for="mydate1">Date</label>
|
|
257
|
+
<input type="text" id="mydate1">
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
<div class="micl-dialog__actions">
|
|
261
|
+
<button class="micl-button-text-s" value="">Cancel</button>
|
|
262
|
+
<button class="micl-button-text-s" value="OK">OK</button>
|
|
263
|
+
</div>
|
|
264
|
+
</form>
|
|
265
|
+
</dialog>
|
|
142
266
|
</code></pre>
|
|
143
267
|
</div>
|
|
144
268
|
</div>
|
package/docs/dialog.html
CHANGED
|
@@ -99,17 +99,17 @@
|
|
|
99
99
|
<button class="micl-button-text-s" value="dodelete">Delete</button>
|
|
100
100
|
</form>
|
|
101
101
|
</dialog>
|
|
102
|
-
<button type="button" class="micl-button-outlined-m micl-button--square"
|
|
102
|
+
<button type="button" class="micl-button-outlined-m micl-button--square" commandfor="mydialog3" command="show-modal">Open Modal Dialog</button>
|
|
103
103
|
|
|
104
|
-
<dialog id="mydialog4" class="micl-dialog micl-dialog--docked" style="position-anchor: --myanchor;width:350px" role="alertdialog" closedby="closerequest" aria-labelledby="mytitle4">
|
|
104
|
+
<dialog id="mydialog4" class="micl-dialog micl-dialog--docked" style="position-anchor: --myanchor;width:350px" popover role="alertdialog" closedby="closerequest" aria-labelledby="mytitle4">
|
|
105
105
|
<div class="micl-dialog__headline">
|
|
106
106
|
<h2 id="mytitle4">Delete selected images?</h2>
|
|
107
107
|
<span class="micl-dialog__supporting-text">Images will be permanently removed from your account and all synchronized devices.</span>
|
|
108
108
|
</div>
|
|
109
|
-
<
|
|
110
|
-
<button class="micl-button-text-s" value="donotdelete">Cancel</button>
|
|
109
|
+
<div class="micl-dialog__actions">
|
|
110
|
+
<button class="micl-button-text-s" value="donotdelete" popovertarget="mydialog4">Cancel</button>
|
|
111
111
|
<button class="micl-button-text-s" value="dodelete">Delete</button>
|
|
112
|
-
</
|
|
112
|
+
</div>
|
|
113
113
|
</dialog>
|
|
114
114
|
<button type="button" class="micl-button-outlined-m micl-button--square" popovertarget="mydialog4" style="anchor-name:--myanchor">Open Anchored Dialog</button>
|
|
115
115
|
|
package/docs/docs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
document.getElementById('settings-placeholder').innerHTML =
|
|
2
|
-
`<button class="micl-iconbutton-
|
|
2
|
+
`<button class="micl-iconbutton-standard-s material-symbols-outlined" popovertarget="settings">dark_mode</button>
|
|
3
3
|
<dialog id="settings" class="micl-dialog" closedby="any" popover>
|
|
4
4
|
<div class="micl-dialog__headline">
|
|
5
5
|
<h2>Settings</h2>
|
|
@@ -17,9 +17,30 @@ document.getElementById('settings-placeholder').innerHTML =
|
|
|
17
17
|
<option class="micl-list-item-one" value="citrine">
|
|
18
18
|
<span class="micl-list-item__text">Citrine</span>
|
|
19
19
|
</option>
|
|
20
|
+
<option class="micl-list-item-one" value="gray">
|
|
21
|
+
<span class="micl-list-item__text">Gray</span>
|
|
22
|
+
</option>
|
|
23
|
+
<option class="micl-list-item-one" value="greenery">
|
|
24
|
+
<span class="micl-list-item__text">Greenery</span>
|
|
25
|
+
</option>
|
|
26
|
+
<option class="micl-list-item-one" value="hermana">
|
|
27
|
+
<span class="micl-list-item__text">Hermana</span>
|
|
28
|
+
</option>
|
|
29
|
+
<option class="micl-list-item-one" value="illuminating">
|
|
30
|
+
<span class="micl-list-item__text">Illuminating</span>
|
|
31
|
+
</option>
|
|
32
|
+
<option class="micl-list-item-one" value="magenta">
|
|
33
|
+
<span class="micl-list-item__text">Magenta</span>
|
|
34
|
+
</option>
|
|
35
|
+
<option class="micl-list-item-one" value="mocha">
|
|
36
|
+
<span class="micl-list-item__text">Mocha</span>
|
|
37
|
+
</option>
|
|
20
38
|
<option class="micl-list-item-one" value="olivegreen">
|
|
21
39
|
<span class="micl-list-item__text">Olive green</span>
|
|
22
40
|
</option>
|
|
41
|
+
<option class="micl-list-item-one" value="peri">
|
|
42
|
+
<span class="micl-list-item__text">Peri</span>
|
|
43
|
+
</option>
|
|
23
44
|
</select>
|
|
24
45
|
</div>
|
|
25
46
|
<div class="micl-textfield-outlined" style="margin-block-start:24px">
|
package/docs/iconbutton.html
CHANGED
|
@@ -269,20 +269,20 @@
|
|
|
269
269
|
</div>
|
|
270
270
|
<div class="micl-card__content">
|
|
271
271
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px">
|
|
272
|
-
<button type="button" class="micl-iconbutton-standard-m micl-button--toggle material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
273
|
-
<button type="button" class="micl-iconbutton-standard-m micl-button--toggle micl-button--selected material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
272
|
+
<button type="button" id="btn1" class="micl-iconbutton-standard-m micl-button--toggle material-symbols-outlined" commandfor="btn1" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
273
|
+
<button type="button" id="btn2" class="micl-iconbutton-standard-m micl-button--toggle micl-button--selected material-symbols-outlined" commandfor="btn2" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
274
274
|
</div>
|
|
275
275
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px">
|
|
276
|
-
<button type="button" class="micl-iconbutton-filled-m micl-button--toggle material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
277
|
-
<button type="button" class="micl-iconbutton-filled-m micl-button--toggle micl-button--selected material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
276
|
+
<button type="button" id="btn3" class="micl-iconbutton-filled-m micl-button--toggle material-symbols-outlined" commandfor="btn3" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
277
|
+
<button type="button" id="btn4" class="micl-iconbutton-filled-m micl-button--toggle micl-button--selected material-symbols-outlined" commandfor="btn4" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
278
278
|
</div>
|
|
279
279
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px">
|
|
280
|
-
<button type="button" class="micl-iconbutton-tonal-m micl-button--toggle material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
281
|
-
<button type="button" class="micl-iconbutton-tonal-m micl-button--toggle micl-button--selected material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
280
|
+
<button type="button" id="btn5" class="micl-iconbutton-tonal-m micl-button--toggle material-symbols-outlined" commandfor="btn5" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
281
|
+
<button type="button" id="btn6" class="micl-iconbutton-tonal-m micl-button--toggle micl-button--selected material-symbols-outlined" commandfor="btn6" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
282
282
|
</div>
|
|
283
283
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px">
|
|
284
|
-
<button type="button" class="micl-iconbutton-outlined-m micl-button--toggle material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
285
|
-
<button type="button" class="micl-iconbutton-outlined-m micl-button--toggle micl-button--selected material-symbols-outlined" aria-label="Control Panel">settings</button>
|
|
284
|
+
<button type="button" id="btn7" class="micl-iconbutton-outlined-m micl-button--toggle material-symbols-outlined" commandfor="btn7" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
285
|
+
<button type="button" id="btn8" class="micl-iconbutton-outlined-m micl-button--toggle micl-button--selected material-symbols-outlined" commandfor="btn8" command="--micl-toggle" aria-label="Control Panel">settings</button>
|
|
286
286
|
</div>
|
|
287
287
|
</div>
|
|
288
288
|
</div>
|
package/docs/index.html
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<body class="micl-window light">
|
|
25
25
|
<dialog id="mynavigationrail" class="micl-navigationrail" closedby="closerequest">
|
|
26
26
|
<div class="micl-navigationrail__headline">
|
|
27
|
-
<button type="button" class="micl-iconbutton-standard-s material-symbols-outlined"
|
|
27
|
+
<button type="button" class="micl-iconbutton-standard-s material-symbols-outlined" command="close" commandfor="mynavigationrail" aria-label="Close navigation rail">menu_open</button>
|
|
28
28
|
</div>
|
|
29
29
|
<div class="micl-navigationrail__content">
|
|
30
30
|
<input type="radio" id="item1" name="navitem" value="email_inbox" checked>
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
<main class="micl-body">
|
|
56
56
|
<section class="micl-pane">
|
|
57
57
|
<header class="micl-appbar micl-appbar--large">
|
|
58
|
-
<button type="button" class="micl-appbar__leading-icon micl-iconbutton-standard-s material-symbols-outlined"
|
|
58
|
+
<button type="button" class="micl-appbar__leading-icon micl-iconbutton-standard-s material-symbols-outlined" command="show-modal" commandfor="mynavigationrail" aria-label="Open navigation rail">menu</button>
|
|
59
59
|
<div class="micl-appbar__headline micl-appbar__headline--center">
|
|
60
60
|
<h1>MICL Showcase</h1>
|
|
61
61
|
</div>
|
|
@@ -374,6 +374,7 @@
|
|
|
374
374
|
<p><a href="button.html" class="md-sys-typescale-body-large">Buttons</a></p>
|
|
375
375
|
<p><a href="card.html" class="md-sys-typescale-body-large">Cards</a></p>
|
|
376
376
|
<p><a href="checkbox.html" class="md-sys-typescale-body-large">Checkboxes</a></p>
|
|
377
|
+
<p><a href="datepicker.html" class="md-sys-typescale-body-large">Date pickers</a></p>
|
|
377
378
|
<p><a href="dialog.html" class="md-sys-typescale-body-large">Dialogs</a></p>
|
|
378
379
|
<p><a href="divider.html" class="md-sys-typescale-body-large">Dividers</a></p>
|
|
379
380
|
<p><a href="iconbutton.html" class="md-sys-typescale-body-large">Icon buttons</a></p>
|